@genome-spy/core 0.36.0 → 0.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +2615 -2611
- package/dist/index.js +47 -47
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
(function(ge,de){typeof exports=="object"&&typeof module<"u"?de(exports):typeof define=="function"&&define.amd?define(["exports"],de):(ge=typeof globalThis<"u"?globalThis:ge||self,de(ge.genomeSpyEmbed={}))})(this,function(ge){var Ku,
|
|
2
|
-
\r]`),n=t.charCodeAt(0);function r(c,h){var d,g,b=i(c,function(y,w){if(d)return d(y,w-1);g=y,d=h?JS(y,h):
|
|
3
|
-
`)}function s(c,h){return h==null&&(h=
|
|
1
|
+
(function(ge,de){typeof exports=="object"&&typeof module<"u"?de(exports):typeof define=="function"&&define.amd?define(["exports"],de):(ge=typeof globalThis<"u"?globalThis:ge||self,de(ge.genomeSpyEmbed={}))})(this,function(ge){var Ku,Qp,Zo,Ju,ef,Lc,ES,tf,Vp,Br,Yo,xt,hr,Ti,Rc,SS,Wo,Vc,kr,Ta,nf,qp,Oc,_S,Pp,R7,rf,Zp,af,Xo,$o,rn,Ia,Ko,Rr,Na,zc,CS,Pc,DS,Ma,lf,of,Yp,sf,Wp,uf,Xp,Uc,IS,Jo,qc,jc,MS;"use strict";var k7=Object.defineProperty;var L7=(ge,de,Je)=>de in ge?k7(ge,de,{enumerable:!0,configurable:!0,writable:!0,value:Je}):ge[de]=Je;var an=(ge,de,Je)=>(L7(ge,typeof de!="symbol"?de+"":de,Je),Je),Hp=(ge,de,Je)=>{if(!de.has(ge))throw TypeError("Cannot "+Je)};var ie=(ge,de,Je)=>(Hp(ge,de,"read from private field"),Je?Je.call(ge):de.get(ge)),ye=(ge,de,Je)=>{if(de.has(ge))throw TypeError("Cannot add the same private member more than once");de instanceof WeakSet?de.add(ge):de.set(ge,Je)},br=(ge,de,Je,Ni)=>(Hp(ge,de,"write to private field"),Ni?Ni.call(ge,Je):de.set(ge,Je),Je),vS=(ge,de,Je,Ni)=>({set _(Zc){br(ge,de,Zc,Je)},get _(){return ie(ge,de,Ni)}}),fe=(ge,de,Je)=>(Hp(ge,de,"access private method"),Je);function de(t,e,n){return t.fields=e||[],t.fname=n,t}function Je(t){return t==null?null:t.fname}function Ni(t){return t==null?null:t.fields}function Zc(t){return t.length===1?TS(t[0]):NS(t)}const TS=t=>function(e){return e[t]},NS=t=>{const e=t.length;return function(n){for(let r=0;r<e;++r)n=n[t[r]];return n}};function $e(t){throw Error(t)}function FS(t){const e=[],n=t.length;let r=null,i=0,a="",o,s,f;t=t+"";function u(){e.push(a+t.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(f=t[s],f==="\\")a+=t.substring(o,s),a+=t.substring(++s,++s),o=s;else if(f===r)u(),r=null,i=-1;else{if(r)continue;o===i&&f==='"'||o===i&&f==="'"?(o=s+1,r=f):f==="."&&!i?s>o?u():o=s+1:f==="["?(s>o&&u(),i=o=s+1):f==="]"&&(i||$e("Access path missing open bracket: "+t),i>0&&u(),i=0,o=s+1)}return i&&$e("Access path missing closing bracket: "+t),r&&$e("Access path missing closing quote: "+t),s>o&&(s++,u()),e}function cf(t,e,n){const r=FS(t);return t=r.length===1?r[0]:t,de((n&&n.get||Zc)(r),[t],e||t)}cf("id");const hf=de(t=>t,[],"identity");de(()=>0,[],"zero"),de(()=>1,[],"one"),de(()=>!0,[],"true"),de(()=>!1,[],"false");var Xt=Array.isArray;function Dn(t){return t===Object(t)}function In(t){return t[t.length-1]}function es(t){return t==null||t===""?null:+t}const $p=t=>e=>t*Math.exp(e),Kp=t=>e=>Math.log(t*e),BS=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),kS=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,df=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function Yc(t,e,n,r){const i=n(t[0]),a=n(In(t)),o=(a-i)*e;return[r(i-o),r(a-o)]}function LS(t,e){return Yc(t,e,es,hf)}function RS(t,e){var n=Math.sign(t[0]);return Yc(t,e,Kp(n),$p(n))}function OS(t,e,n){return Yc(t,e,df(n),df(1/n))}function gf(t,e,n,r,i){const a=r(t[0]),o=r(In(t)),s=e!=null?r(e):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function Jp(t,e,n){return gf(t,e,n,es,hf)}function em(t,e,n){const r=Math.sign(t[0]);return gf(t,e,n,Kp(r),$p(r))}function Wc(t,e,n,r){return gf(t,e,n,df(r),df(1/r))}function zS(t,e,n,r){return gf(t,e,n,BS(r),kS(r))}function Xc(t){return t!=null?Xt(t)?t:[t]:[]}function PS(t,e,n){let r=t[0],i=t[1],a;return i<r&&(a=i,i=r,r=a),a=i-r,a>=n-e?[e,n]:[r=Math.min(Math.max(r,e),n-a),r+a]}function kt(t){return typeof t=="function"}const US="descending";function tm(t,e,n){n=n||{},e=Xc(e)||[];const r=[],i=[],a={},o=n.comparator||jS;return Xc(t).forEach((s,f)=>{s!=null&&(r.push(e[f]===US?-1:1),i.push(s=kt(s)?s:cf(s,null,n)),(Ni(s)||[]).forEach(u=>a[u]=1))}),i.length===0?null:de(o(i,r),Object.keys(a))}const nm=(t,e)=>(t<e||t==null)&&e!=null?-1:(t>e||e==null)&&t!=null?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e===e?-1:e!==e&&t===t?1:0),jS=(t,e)=>t.length===1?GS(t[0],e[0]):HS(t,e,t.length),GS=(t,e)=>function(n,r){return nm(t(n),t(r))*e},HS=(t,e,n)=>(e.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=t[s],o=nm(a(r),a(i));return o*e[s]});function QS(t){return kt(t)?t:()=>t}function $c(t){for(let e,n,r=1,i=arguments.length;r<i;++r){e=arguments[r];for(n in e)t[n]=e[n]}return t}const VS=Object.prototype.hasOwnProperty;function Fi(t,e){return VS.call(t,e)}function pf(t){return typeof t=="boolean"}function qS(t){return Object.prototype.toString.call(t)==="[object Date]"}function ZS(t){return t&&kt(t[Symbol.iterator])}function Lt(t){return typeof t=="number"}function Ke(t){return typeof t=="string"}function YS(t,e){const n=t[0],r=In(t),i=+e;return i?i===1?r:n+i*(r-n):n}function mf(t){return t&&In(t)-t[0]||0}function bf(t){return Xt(t)?"["+t.map(bf)+"]":Dn(t)||Ke(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function WS(t){return t==null||t===""?null:!t||t==="false"||t==="0"?!1:!!t}const XS=t=>Lt(t)||qS(t)?t:Date.parse(t);function $S(t,e){return e=e||XS,t==null||t===""?null:e(t)}function KS(t){return t==null||t===""?null:t+""}function yf(t){const e={},n=t.length;for(let r=0;r<n;++r)e[t[r]]=!0;return e}var rm={},Kc={},Jc=34,ts=10,eh=13;function im(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function JS(t,e){var n=im(t);return function(r,i){return e(n(r),i,t)}}function am(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Rt(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function e_(t){return t<0?"-"+Rt(-t,6):t>9999?"+"+Rt(t,6):Rt(t,4)}function t_(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":e_(t.getUTCFullYear())+"-"+Rt(t.getUTCMonth()+1,2)+"-"+Rt(t.getUTCDate(),2)+(i?"T"+Rt(e,2)+":"+Rt(n,2)+":"+Rt(r,2)+"."+Rt(i,3)+"Z":r?"T"+Rt(e,2)+":"+Rt(n,2)+":"+Rt(r,2)+"Z":n||e?"T"+Rt(e,2)+":"+Rt(n,2)+"Z":"")}function om(t){var e=new RegExp('["'+t+`
|
|
2
|
+
\r]`),n=t.charCodeAt(0);function r(c,h){var d,g,b=i(c,function(y,w){if(d)return d(y,w-1);g=y,d=h?JS(y,h):im(y)});return b.columns=g||[],b}function i(c,h){var d=[],g=c.length,b=0,y=0,w,E=g<=0,_=!1;c.charCodeAt(g-1)===ts&&--g,c.charCodeAt(g-1)===eh&&--g;function D(){if(E)return Kc;if(_)return _=!1,rm;var N,M=b,R;if(c.charCodeAt(M)===Jc){for(;b++<g&&c.charCodeAt(b)!==Jc||c.charCodeAt(++b)===Jc;);return(N=b)>=g?E=!0:(R=c.charCodeAt(b++))===ts?_=!0:R===eh&&(_=!0,c.charCodeAt(b)===ts&&++b),c.slice(M+1,N-1).replace(/""/g,'"')}for(;b<g;){if((R=c.charCodeAt(N=b++))===ts)_=!0;else if(R===eh)_=!0,c.charCodeAt(b)===ts&&++b;else if(R!==n)continue;return c.slice(M,N)}return E=!0,c.slice(M,g)}for(;(w=D())!==Kc;){for(var T=[];w!==rm&&w!==Kc;)T.push(w),w=D();h&&(T=h(T,y++))==null||d.push(T)}return d}function a(c,h){return c.map(function(d){return h.map(function(g){return l(d[g])}).join(t)})}function o(c,h){return h==null&&(h=am(c)),[h.map(l).join(t)].concat(a(c,h)).join(`
|
|
3
|
+
`)}function s(c,h){return h==null&&(h=am(c)),a(c,h).join(`
|
|
4
4
|
`)}function f(c){return c.map(u).join(`
|
|
5
|
-
`)}function u(c){return c.map(l).join(t)}function l(c){return c==null?"":c instanceof Date?t_(c):e.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:f,formatRow:u,formatValue:l}}var n_=am(" "),r_=n_.parseRows;function i_(t){return t}function a_(t){if(t==null)return i_;var e,n,r=t.scale[0],i=t.scale[1],a=t.translate[0],o=t.translate[1];return function(s,f){f||(e=n=0);var u=2,l=s.length,c=new Array(l);for(c[0]=(e+=s[0])*r+a,c[1]=(n+=s[1])*i+o;u<l;)c[u]=s[u],++u;return c}}function o_(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function s_(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return om(t,n)})}:om(t,e)}function om(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,a=sm(t,e);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function sm(t,e){var n=a_(t.transform),r=t.arcs;function i(l,c){c.length&&c.pop();for(var h=r[l<0?~l:l],d=0,g=h.length;d<g;++d)c.push(n(h[d],d));l<0&&o_(c,g)}function a(l){return n(l)}function o(l){for(var c=[],h=0,d=l.length;h<d;++h)i(l[h],c);return c.length<2&&c.push(c[0]),c}function s(l){for(var c=o(l);c.length<4;)c.push(c[0]);return c}function f(l){return l.map(s)}function u(l){var c=l.type,h;switch(c){case"GeometryCollection":return{type:c,geometries:l.geometries.map(u)};case"Point":h=a(l.coordinates);break;case"MultiPoint":h=l.coordinates.map(a);break;case"LineString":h=o(l.arcs);break;case"MultiLineString":h=l.arcs.map(o);break;case"Polygon":h=f(l.arcs);break;case"MultiPolygon":h=l.arcs.map(f);break;default:return null}return{type:c,coordinates:h}}return u(e)}function u_(t,e){var n={},r={},i={},a=[],o=-1;e.forEach(function(u,l){var c=t.arcs[u<0?~u:u],h;c.length<3&&!c[1][0]&&!c[1][1]&&(h=e[++o],e[o]=u,e[l]=h)}),e.forEach(function(u){var l=s(u),c=l[0],h=l[1],d,g;if(d=i[c])if(delete i[d.end],d.push(u),d.end=h,g=r[h]){delete r[g.start];var b=g===d?d:d.concat(g);r[b.start=d.start]=i[b.end=g.end]=b}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(u),d.start=c,g=i[c]){delete i[g.end];var y=g===d?d:g.concat(d);r[y.start=g.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[u],r[d.start=c]=i[d.end=h]=d});function s(u){var l=t.arcs[u<0?~u:u],c=l[0],h;return t.transform?(h=[0,0],l.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=l[l.length-1],u<0?[h,c]:[c,h]}function f(u,l){for(var c in u){var h=u[c];delete l[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return f(i,r),f(r,i),e.forEach(function(u){n[u<0?~u:u]||a.push([u])}),a}function f_(t){return sm(t,l_.apply(this,arguments))}function l_(t,e,n){var r,i,a;if(arguments.length>1)r=c_(t,e,n);else for(i=0,r=new Array(a=t.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:u_(t,r)}}function c_(t,e,n){var r=[],i=[],a;function o(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:a})}function s(c){c.forEach(o)}function f(c){c.forEach(s)}function u(c){c.forEach(f)}function l(c){switch(a=c,c.type){case"GeometryCollection":c.geometries.forEach(l);break;case"LineString":s(c.arcs);break;case"MultiLineString":case"Polygon":f(c.arcs);break;case"MultiPolygon":u(c.arcs);break}}return l(e),i.forEach(n==null?function(c){r.push(c[0].i)}:function(c){n(c[0].g,c[c.length-1].g)&&r.push(c[0].i)}),r}function rs(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function h_(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function wf(t){let e,n,r;t.length!==2?(e=rs,n=(s,f)=>rs(t(s),f),r=(s,f)=>t(s)-f):(e=t===rs||t===h_?t:d_,n=t,r=t);function i(s,f,u=0,l=s.length){if(u<l){if(e(f,f)!==0)return l;do{const c=u+l>>>1;n(s[c],f)<0?u=c+1:l=c}while(u<l)}return u}function a(s,f,u=0,l=s.length){if(u<l){if(e(f,f)!==0)return l;do{const c=u+l>>>1;n(s[c],f)<=0?u=c+1:l=c}while(u<l)}return u}function o(s,f,u=0,l=s.length){const c=i(s,f,u,l-1);return c>u&&r(s[c-1],f)>-r(s[c],f)?c-1:c}return{left:i,center:o,right:a}}function d_(){return 0}function um(t){return t===null?NaN:+t}const fm=wf(rs),th=fm.right;fm.left,wf(um).center;const Ba=th;function g_(t,e){let n,r;if(e===void 0)for(const i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of t)(a=e(a,++i,t))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class Bi extends Map{constructor(e,n=b_){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(lm(this,e))}has(e){return super.has(lm(this,e))}set(e,n){return super.set(p_(this,e),n)}delete(e){return super.delete(m_(this,e))}}function lm({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function p_({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function m_({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function b_(t){return t!==null&&typeof t=="object"?t.valueOf():t}function nh(t){return t}function xf(t,...e){return cm(t,nh,nh,e)}function y_(t,...e){return cm(t,Array.from,nh,e)}function cm(t,e,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new Bi,f=r[o++];let u=-1;for(const l of a){const c=f(l,++u,a),h=s.get(c);h?h.push(l):s.set(c,[l])}for(const[l,c]of s)s.set(l,i(c,o));return e(s)}(t,0)}var rh=Math.sqrt(50),ih=Math.sqrt(10),ah=Math.sqrt(2);function vf(t,e,n){var r,i=-1,a,o,s;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((r=e<t)&&(a=t,t=e,e=a),(s=hm(t,e,n))===0||!isFinite(s))return[];if(s>0){let f=Math.round(t/s),u=Math.round(e/s);for(f*s<t&&++f,u*s>e&&--u,o=new Array(a=u-f+1);++i<a;)o[i]=(f+i)*s}else{s=-s;let f=Math.round(t*s),u=Math.round(e*s);for(f/s<t&&++f,u/s>e&&--u,o=new Array(a=u-f+1);++i<a;)o[i]=(f+i)/s}return r&&o.reverse(),o}function hm(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=rh?10:a>=ih?5:a>=ah?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=rh?10:a>=ih?5:a>=ah?2:1)}function ki(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=rh?i*=10:a>=ih?i*=5:a>=ah&&(i*=2),e<t?-i:i}function dm(t,e,n=um){if(r=t.length){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,a=Math.floor(i),o=+n(t[a],a,t),s=+n(t[a+1],a+1,t);return o+(s-o)*(i-a)}}function is(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,a=new Array(i);++r<i;)a[r]=t+r*n;return a}function Af(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function w_(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Ef(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function ka(t){return t=Ef(Math.abs(t)),t?t[1]:NaN}function x_(t,e){return function(n,r){for(var i=n.length,a=[],o=0,s=t[0],f=0;i>0&&s>0&&(f+s+1>r&&(s=Math.max(1,r-f)),a.push(n.substring(i-=s,i+s)),!((f+=s+1)>r));)s=t[o=(o+1)%t.length];return a.reverse().join(e)}}function v_(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var A_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Gr(t){if(!(e=A_.exec(t)))throw new Error("invalid format: "+t);var e;return new oh({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Gr.prototype=oh.prototype;function oh(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}oh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function E_(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var gm;function S_(t,e){var n=Ef(t,e);if(!n)return t+"";var r=n[0],i=n[1],a=i-(gm=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Ef(t,Math.max(0,e+a-1))[0]}function pm(t,e){var n=Ef(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const mm={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:w_,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>pm(t*100,e),r:pm,s:S_,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function bm(t){return t}var ym=Array.prototype.map,wm=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function __(t){var e=t.grouping===void 0||t.thousands===void 0?bm:x_(ym.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?bm:v_(ym.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",f=t.nan===void 0?"NaN":t.nan+"";function u(c){c=Gr(c);var h=c.fill,d=c.align,g=c.sign,b=c.symbol,y=c.zero,w=c.width,E=c.comma,_=c.precision,D=c.trim,T=c.type;T==="n"?(E=!0,T="g"):mm[T]||(_===void 0&&(_=12),D=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var N=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",M=b==="$"?r:/[%p]/.test(T)?o:"",R=mm[T],C=/[defgprs%]/.test(T);_=_===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function k(L){var ee=N,ne=M,J,be,Se;if(T==="c")ne=R(L)+ne,L="";else{L=+L;var Te=L<0||1/L<0;if(L=isNaN(L)?f:R(Math.abs(L),_),D&&(L=E_(L)),Te&&+L==0&&g!=="+"&&(Te=!1),ee=(Te?g==="("?g:s:g==="-"||g==="("?"":g)+ee,ne=(T==="s"?wm[8+gm/3]:"")+ne+(Te&&g==="("?")":""),C){for(J=-1,be=L.length;++J<be;)if(Se=L.charCodeAt(J),48>Se||Se>57){ne=(Se===46?i+L.slice(J+1):L.slice(J))+ne,L=L.slice(0,J);break}}}E&&!y&&(L=e(L,1/0));var it=ee.length+L.length+ne.length,et=it<w?new Array(w-it+1).join(h):"";switch(E&&y&&(L=e(et+L,et.length?w-ne.length:1/0),et=""),d){case"<":L=ee+L+ne+et;break;case"=":L=ee+et+L+ne;break;case"^":L=et.slice(0,it=et.length>>1)+ee+L+ne+et.slice(it);break;default:L=et+ee+L+ne;break}return a(L)}return k.toString=function(){return c+""},k}function l(c,h){var d=u((c=Gr(c),c.type="f",c)),g=Math.max(-8,Math.min(8,Math.floor(ka(h)/3)))*3,b=Math.pow(10,-g),y=wm[8+g/3];return function(w){return d(b*w)+y}}return{format:u,formatPrefix:l}}var Sf,pt,sh;C_({thousands:",",grouping:[3],currency:["$",""]});function C_(t){return Sf=__(t),pt=Sf.format,sh=Sf.formatPrefix,Sf}function xm(t){return Math.max(0,-ka(Math.abs(t)))}function vm(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ka(e)/3)))*3-ka(Math.abs(t)))}function Am(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ka(e)-ka(t))+1}var uh=new Date,fh=new Date;function ft(t,e,n,r){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return t(a=new Date(+a)),a},i.ceil=function(a){return t(a=new Date(a-1)),e(a,1),t(a),a},i.round=function(a){var o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=function(a,o){return e(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var f=[],u;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return f;do f.push(u=new Date(+a)),e(a,s),t(a);while(u<a&&a<o);return f},i.filter=function(a){return ft(function(o){if(o>=o)for(;t(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;e(o,-1),!a(o););else for(;--s>=0;)for(;e(o,1),!a(o););})},n&&(i.count=function(a,o){return uh.setTime(+a),fh.setTime(+o),t(uh),t(fh),Math.floor(n(uh,fh))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?function(o){return r(o)%a===0}:function(o){return i.count(0,o)%a===0}):i}),i}var _f=ft(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});_f.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?ft(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):_f};const lh=_f;_f.range;const yr=1e3,an=yr*60,wr=an*60,Li=wr*24,ch=Li*7,Em=Li*30,hh=Li*365;var Sm=ft(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*yr)},function(t,e){return(e-t)/yr},function(t){return t.getUTCSeconds()});const Hr=Sm;Sm.range;var _m=ft(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*yr)},function(t,e){t.setTime(+t+e*an)},function(t,e){return(e-t)/an},function(t){return t.getMinutes()});const dh=_m;_m.range;var Cm=ft(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*yr-t.getMinutes()*an)},function(t,e){t.setTime(+t+e*wr)},function(t,e){return(e-t)/wr},function(t){return t.getHours()});const gh=Cm;Cm.range;var Dm=ft(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*an)/Li,t=>t.getDate()-1);const Ri=Dm;Dm.range;function Oi(t){return ft(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,n){e.setDate(e.getDate()+n*7)},function(e,n){return(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*an)/ch})}var as=Oi(0),Cf=Oi(1),D_=Oi(2),I_=Oi(3),La=Oi(4),M_=Oi(5),T_=Oi(6);as.range,Cf.range,D_.range,I_.range,La.range,M_.range,T_.range;var Im=ft(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const Df=Im;Im.range;var ph=ft(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});ph.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ft(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)})};const Qr=ph;ph.range;var Mm=ft(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*an)},function(t,e){return(e-t)/an},function(t){return t.getUTCMinutes()});const mh=Mm;Mm.range;var Tm=ft(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*wr)},function(t,e){return(e-t)/wr},function(t){return t.getUTCHours()});const bh=Tm;Tm.range;var Nm=ft(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Li},function(t){return t.getUTCDate()-1});const zi=Nm;Nm.range;function Pi(t){return ft(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCDate(e.getUTCDate()+n*7)},function(e,n){return(n-e)/ch})}var os=Pi(0),If=Pi(1),N_=Pi(2),F_=Pi(3),Ra=Pi(4),B_=Pi(5),k_=Pi(6);os.range,If.range,N_.range,F_.range,Ra.range,B_.range,k_.range;var Fm=ft(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const Mf=Fm;Fm.range;var yh=ft(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});yh.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ft(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})};const Vr=yh;yh.range;function Bm(t,e,n,r,i,a){const o=[[Hr,1,yr],[Hr,5,5*yr],[Hr,15,15*yr],[Hr,30,30*yr],[a,1,an],[a,5,5*an],[a,15,15*an],[a,30,30*an],[i,1,wr],[i,3,3*wr],[i,6,6*wr],[i,12,12*wr],[r,1,Li],[r,2,2*Li],[n,1,ch],[e,1,Em],[e,3,3*Em],[t,1,hh]];function s(u,l,c){const h=l<u;h&&([u,l]=[l,u]);const d=c&&typeof c.range=="function"?c:f(u,l,c),g=d?d.range(u,+l+1):[];return h?g.reverse():g}function f(u,l,c){const h=Math.abs(l-u)/c,d=wf(([,,y])=>y).right(o,h);if(d===o.length)return t.every(ki(u/hh,l/hh,c));if(d===0)return lh.every(Math.max(ki(u,l,c),1));const[g,b]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return g.every(b)}return[s,f]}const[L_,R_]=Bm(Vr,Mf,os,zi,bh,mh),[O_,z_]=Bm(Qr,Df,as,Ri,gh,dh),ss="year",us="quarter",fs="month",ls="week",cs="date",Tf="day",wh="dayofyear",hs="hours",ds="minutes",gs="seconds",Nf="milliseconds";[ss,us,fs,ls,cs,Tf,wh,hs,ds,gs,Nf].reduce((t,e,n)=>(t[e]=1+n,t),{});const P_={[ss]:Qr,[us]:Df.every(3),[fs]:Df,[ls]:as,[cs]:Ri,[Tf]:Ri,[wh]:Ri,[hs]:gh,[ds]:dh,[gs]:Hr,[Nf]:lh},U_={[ss]:Vr,[us]:Mf.every(3),[fs]:Mf,[ls]:os,[cs]:zi,[Tf]:zi,[wh]:zi,[hs]:bh,[ds]:mh,[gs]:Hr,[Nf]:lh};function j_(t){return P_[t]}function G_(t){return U_[t]}function xh(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function vh(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function ps(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function km(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,a=t.days,o=t.shortDays,s=t.months,f=t.shortMonths,u=ms(i),l=bs(i),c=ms(a),h=bs(a),d=ms(o),g=bs(o),b=ms(s),y=bs(s),w=ms(f),E=bs(f),_={a:Te,A:it,b:et,B:dr,c:null,d:Um,e:Um,f:cC,g:vC,G:EC,H:uC,I:fC,j:lC,L:jm,m:hC,M:dC,p:ke,q:Ye,Q:Zm,s:Ym,S:gC,u:pC,U:mC,V:bC,w:yC,W:wC,x:null,X:null,y:xC,Y:AC,Z:SC,"%":qm},D={a:Zt,A:Qn,b:gr,B:z,c:null,d:Hm,e:Hm,f:IC,g:zC,G:UC,H:_C,I:CC,j:DC,L:Qm,m:MC,M:TC,p:O,q,Q:Zm,s:Ym,S:NC,u:FC,U:BC,V:kC,w:LC,W:RC,x:null,X:null,y:OC,Y:PC,Z:jC,"%":qm},T={a:k,A:L,b:ee,B:ne,c:J,d:zm,e:zm,f:iC,g:Om,G:Rm,H:Pm,I:Pm,j:eC,L:rC,m:J_,M:tC,p:C,q:K_,Q:oC,s:sC,S:nC,u:Z_,U:Y_,V:W_,w:q_,W:X_,x:be,X:Se,y:Om,Y:Rm,Z:$_,"%":aC};_.x=N(n,_),_.X=N(r,_),_.c=N(e,_),D.x=N(n,D),D.X=N(r,D),D.c=N(e,D);function N(Q,X){return function(S){var v=[],G=-1,V=0,le=Q.length,re,ce,Yt;for(S instanceof Date||(S=new Date(+S));++G<le;)Q.charCodeAt(G)===37&&(v.push(Q.slice(V,G)),(ce=Lm[re=Q.charAt(++G)])!=null?re=Q.charAt(++G):ce=re==="e"?" ":"0",(Yt=X[re])&&(re=Yt(S,ce)),v.push(re),V=G+1);return v.push(Q.slice(V,G)),v.join("")}}function M(Q,X){return function(S){var v=ps(1900,void 0,1),G=R(v,Q,S+="",0),V,le;if(G!=S.length)return null;if("Q"in v)return new Date(v.Q);if("s"in v)return new Date(v.s*1e3+("L"in v?v.L:0));if(X&&!("Z"in v)&&(v.Z=0),"p"in v&&(v.H=v.H%12+v.p*12),v.m===void 0&&(v.m="q"in v?v.q:0),"V"in v){if(v.V<1||v.V>53)return null;"w"in v||(v.w=1),"Z"in v?(V=vh(ps(v.y,0,1)),le=V.getUTCDay(),V=le>4||le===0?If.ceil(V):If(V),V=zi.offset(V,(v.V-1)*7),v.y=V.getUTCFullYear(),v.m=V.getUTCMonth(),v.d=V.getUTCDate()+(v.w+6)%7):(V=xh(ps(v.y,0,1)),le=V.getDay(),V=le>4||le===0?Cf.ceil(V):Cf(V),V=Ri.offset(V,(v.V-1)*7),v.y=V.getFullYear(),v.m=V.getMonth(),v.d=V.getDate()+(v.w+6)%7)}else("W"in v||"U"in v)&&("w"in v||(v.w="u"in v?v.u%7:"W"in v?1:0),le="Z"in v?vh(ps(v.y,0,1)).getUTCDay():xh(ps(v.y,0,1)).getDay(),v.m=0,v.d="W"in v?(v.w+6)%7+v.W*7-(le+5)%7:v.w+v.U*7-(le+6)%7);return"Z"in v?(v.H+=v.Z/100|0,v.M+=v.Z%100,vh(v)):xh(v)}}function R(Q,X,S,v){for(var G=0,V=X.length,le=S.length,re,ce;G<V;){if(v>=le)return-1;if(re=X.charCodeAt(G++),re===37){if(re=X.charAt(G++),ce=T[re in Lm?X.charAt(G++):re],!ce||(v=ce(Q,S,v))<0)return-1}else if(re!=S.charCodeAt(v++))return-1}return v}function C(Q,X,S){var v=u.exec(X.slice(S));return v?(Q.p=l.get(v[0].toLowerCase()),S+v[0].length):-1}function k(Q,X,S){var v=d.exec(X.slice(S));return v?(Q.w=g.get(v[0].toLowerCase()),S+v[0].length):-1}function L(Q,X,S){var v=c.exec(X.slice(S));return v?(Q.w=h.get(v[0].toLowerCase()),S+v[0].length):-1}function ee(Q,X,S){var v=w.exec(X.slice(S));return v?(Q.m=E.get(v[0].toLowerCase()),S+v[0].length):-1}function ne(Q,X,S){var v=b.exec(X.slice(S));return v?(Q.m=y.get(v[0].toLowerCase()),S+v[0].length):-1}function J(Q,X,S){return R(Q,e,X,S)}function be(Q,X,S){return R(Q,n,X,S)}function Se(Q,X,S){return R(Q,r,X,S)}function Te(Q){return o[Q.getDay()]}function it(Q){return a[Q.getDay()]}function et(Q){return f[Q.getMonth()]}function dr(Q){return s[Q.getMonth()]}function ke(Q){return i[+(Q.getHours()>=12)]}function Ye(Q){return 1+~~(Q.getMonth()/3)}function Zt(Q){return o[Q.getUTCDay()]}function Qn(Q){return a[Q.getUTCDay()]}function gr(Q){return f[Q.getUTCMonth()]}function z(Q){return s[Q.getUTCMonth()]}function O(Q){return i[+(Q.getUTCHours()>=12)]}function q(Q){return 1+~~(Q.getUTCMonth()/3)}return{format:function(Q){var X=N(Q+="",_);return X.toString=function(){return Q},X},parse:function(Q){var X=M(Q+="",!1);return X.toString=function(){return Q},X},utcFormat:function(Q){var X=N(Q+="",D);return X.toString=function(){return Q},X},utcParse:function(Q){var X=M(Q+="",!0);return X.toString=function(){return Q},X}}}var Lm={"-":"",_:" ",0:"0"},lt=/^\s*\d+/,H_=/^%/,Q_=/[\\^$*+?|[\]().{}]/g;function xe(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(e)+i:i)}function V_(t){return t.replace(Q_,"\\$&")}function ms(t){return new RegExp("^(?:"+t.map(V_).join("|")+")","i")}function bs(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function q_(t,e,n){var r=lt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Z_(t,e,n){var r=lt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Y_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function W_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function X_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Rm(t,e,n){var r=lt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Om(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function $_(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function K_(t,e,n){var r=lt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function J_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function zm(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function eC(t,e,n){var r=lt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Pm(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function tC(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function nC(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function rC(t,e,n){var r=lt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function iC(t,e,n){var r=lt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function aC(t,e,n){var r=H_.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function oC(t,e,n){var r=lt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function sC(t,e,n){var r=lt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Um(t,e){return xe(t.getDate(),e,2)}function uC(t,e){return xe(t.getHours(),e,2)}function fC(t,e){return xe(t.getHours()%12||12,e,2)}function lC(t,e){return xe(1+Ri.count(Qr(t),t),e,3)}function jm(t,e){return xe(t.getMilliseconds(),e,3)}function cC(t,e){return jm(t,e)+"000"}function hC(t,e){return xe(t.getMonth()+1,e,2)}function dC(t,e){return xe(t.getMinutes(),e,2)}function gC(t,e){return xe(t.getSeconds(),e,2)}function pC(t){var e=t.getDay();return e===0?7:e}function mC(t,e){return xe(as.count(Qr(t)-1,t),e,2)}function Gm(t){var e=t.getDay();return e>=4||e===0?La(t):La.ceil(t)}function bC(t,e){return t=Gm(t),xe(La.count(Qr(t),t)+(Qr(t).getDay()===4),e,2)}function yC(t){return t.getDay()}function wC(t,e){return xe(Cf.count(Qr(t)-1,t),e,2)}function xC(t,e){return xe(t.getFullYear()%100,e,2)}function vC(t,e){return t=Gm(t),xe(t.getFullYear()%100,e,2)}function AC(t,e){return xe(t.getFullYear()%1e4,e,4)}function EC(t,e){var n=t.getDay();return t=n>=4||n===0?La(t):La.ceil(t),xe(t.getFullYear()%1e4,e,4)}function SC(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+xe(e/60|0,"0",2)+xe(e%60,"0",2)}function Hm(t,e){return xe(t.getUTCDate(),e,2)}function _C(t,e){return xe(t.getUTCHours(),e,2)}function CC(t,e){return xe(t.getUTCHours()%12||12,e,2)}function DC(t,e){return xe(1+zi.count(Vr(t),t),e,3)}function Qm(t,e){return xe(t.getUTCMilliseconds(),e,3)}function IC(t,e){return Qm(t,e)+"000"}function MC(t,e){return xe(t.getUTCMonth()+1,e,2)}function TC(t,e){return xe(t.getUTCMinutes(),e,2)}function NC(t,e){return xe(t.getUTCSeconds(),e,2)}function FC(t){var e=t.getUTCDay();return e===0?7:e}function BC(t,e){return xe(os.count(Vr(t)-1,t),e,2)}function Vm(t){var e=t.getUTCDay();return e>=4||e===0?Ra(t):Ra.ceil(t)}function kC(t,e){return t=Vm(t),xe(Ra.count(Vr(t),t)+(Vr(t).getUTCDay()===4),e,2)}function LC(t){return t.getUTCDay()}function RC(t,e){return xe(If.count(Vr(t)-1,t),e,2)}function OC(t,e){return xe(t.getUTCFullYear()%100,e,2)}function zC(t,e){return t=Vm(t),xe(t.getUTCFullYear()%100,e,2)}function PC(t,e){return xe(t.getUTCFullYear()%1e4,e,4)}function UC(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Ra(t):Ra.ceil(t),xe(t.getUTCFullYear()%1e4,e,4)}function jC(){return"+0000"}function qm(){return"%"}function Zm(t){return+t}function Ym(t){return Math.floor(+t/1e3)}var Oa,Ah,Wm,Eh,Xm;GC({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function GC(t){return Oa=km(t),Ah=Oa.format,Wm=Oa.parse,Eh=Oa.utcFormat,Xm=Oa.utcParse,Oa}function ys(t){const e={};return n=>e[n]||(e[n]=t(n))}function HC(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let a=QC(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function QC(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function VC(t){const e=ys(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=Gr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return HC(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,a,o){o=Gr(o??",f");const s=ki(r,i,a),f=Math.max(Math.abs(r),Math.abs(i));let u;if(o.precision==null)switch(o.type){case"s":return isNaN(u=vm(s,f))||(o.precision=u),n(o,f);case"":case"e":case"g":case"p":case"r":{isNaN(u=Am(s,f))||(o.precision=u-(o.type==="e"));break}case"f":case"%":{isNaN(u=xm(s))||(o.precision=u-(o.type==="%")*2);break}}return e(o)}}}qC();function qC(){return VC({format:pt,formatPrefix:sh})}function $m(t,e,n){n=n||{},Dn(n)||$e("Invalid time multi-format specifier: ".concat(n));const r=e(gs),i=e(ds),a=e(hs),o=e(cs),s=e(ls),f=e(fs),u=e(us),l=e(ss),c=t(n[Nf]||".%L"),h=t(n[gs]||":%S"),d=t(n[ds]||"%I:%M"),g=t(n[hs]||"%I %p"),b=t(n[cs]||n[Tf]||"%a %d"),y=t(n[ls]||"%b %d"),w=t(n[fs]||"%B"),E=t(n[us]||"%B"),_=t(n[ss]||"%Y");return D=>(r(D)<D?c:i(D)<D?h:a(D)<D?d:o(D)<D?g:f(D)<D?s(D)<D?b:y:l(D)<D?u(D)<D?w:E:_)(D)}function Km(t){const e=ys(t.format),n=ys(t.utcFormat);return{timeFormat:r=>Ke(r)?e(r):$m(e,j_,r),utcFormat:r=>Ke(r)?n(r):$m(n,G_,r),timeParse:ys(t.parse),utcParse:ys(t.utcParse)}}let Sh;ZC();function ZC(){return Sh=Km({format:Ah,parse:Wm,utcFormat:Eh,utcParse:Xm})}function YC(t){return Km(km(t))}function WC(t){return arguments.length?Sh=YC(t):Sh}const XC=/^(data:|([A-Za-z]+:)?\/\/)/,$C=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,KC=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Jm="file://";function JC(t,e){return n=>({options:n||{},sanitize:t4,load:e4,fileAccess:!!e,file:n4(e),http:i4(t)})}async function e4(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function t4(t,e){e=$c({},this.options,e);const n=this.fileAccess,r={href:null};let i,a,o;const s=$C.test(t.replace(KC,""));(t==null||typeof t!="string"||!s)&&$e("Sanitize failure, invalid URI: "+bf(t));const f=XC.test(t);return(o=e.baseURL)&&!f&&(!t.startsWith("/")&&!o.endsWith("/")&&(t="/"+t),t=o+t),a=(i=t.startsWith(Jm))||e.mode==="file"||e.mode!=="http"&&!f&&n,i?t=t.slice(Jm.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),a=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!a}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function n4(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,a)=>{i?r(i):n(a)})}):r4}async function r4(){$e("No file system access.")}function i4(t){return t?async function(e,n){const r=$c({},this.options.http,n),i=n&&n.response,a=await t(e,r);return a.ok?kt(a[i])?a[i]():a.text():$e(a.status+""+a.statusText)}:a4}async function a4(){$e("No HTTP fetch method available.")}const o4=t=>t!=null&&t===t,s4=t=>t==="true"||t==="false"||t===!0||t===!1,u4=t=>!Number.isNaN(Date.parse(t)),e1=t=>!Number.isNaN(+t)&&!(t instanceof Date),f4=t=>e1(t)&&Number.isInteger(+t),t1={boolean:WS,integer:ts,number:ts,date:$S,string:KS,unknown:hf},Ff=[s4,f4,e1,u4],l4=["boolean","integer","number","date"];function c4(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=Ff.length,i=Ff.map((a,o)=>o+1);for(let a=0,o=0,s,f;a<n;++a)for(f=e?t[a][e]:t[a],s=0;s<r;++s)if(i[s]&&o4(f)&&!Ff[s](f)&&(i[s]=0,++o,o===Ff.length))return"string";return l4[i.reduce((a,o)=>a===0?o:a,0)-1]}function h4(t,e){return e.reduce((n,r)=>(n[r]=c4(t,r),n),{})}function n1(t){const e=function(n,r){const i={delimiter:t};return _h(n,r?$c(r,i):i)};return e.responseType="text",e}function _h(t,e){return e.header&&(t=e.header.map(bf).join(e.delimiter)+`
|
|
6
|
-
`+t),
|
|
5
|
+
`)}function u(c){return c.map(l).join(t)}function l(c){return c==null?"":c instanceof Date?t_(c):e.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:f,formatRow:u,formatValue:l}}var n_=om(" "),r_=n_.parseRows;function i_(t){return t}function a_(t){if(t==null)return i_;var e,n,r=t.scale[0],i=t.scale[1],a=t.translate[0],o=t.translate[1];return function(s,f){f||(e=n=0);var u=2,l=s.length,c=new Array(l);for(c[0]=(e+=s[0])*r+a,c[1]=(n+=s[1])*i+o;u<l;)c[u]=s[u],++u;return c}}function o_(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function s_(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return sm(t,n)})}:sm(t,e)}function sm(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,a=um(t,e);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function um(t,e){var n=a_(t.transform),r=t.arcs;function i(l,c){c.length&&c.pop();for(var h=r[l<0?~l:l],d=0,g=h.length;d<g;++d)c.push(n(h[d],d));l<0&&o_(c,g)}function a(l){return n(l)}function o(l){for(var c=[],h=0,d=l.length;h<d;++h)i(l[h],c);return c.length<2&&c.push(c[0]),c}function s(l){for(var c=o(l);c.length<4;)c.push(c[0]);return c}function f(l){return l.map(s)}function u(l){var c=l.type,h;switch(c){case"GeometryCollection":return{type:c,geometries:l.geometries.map(u)};case"Point":h=a(l.coordinates);break;case"MultiPoint":h=l.coordinates.map(a);break;case"LineString":h=o(l.arcs);break;case"MultiLineString":h=l.arcs.map(o);break;case"Polygon":h=f(l.arcs);break;case"MultiPolygon":h=l.arcs.map(f);break;default:return null}return{type:c,coordinates:h}}return u(e)}function u_(t,e){var n={},r={},i={},a=[],o=-1;e.forEach(function(u,l){var c=t.arcs[u<0?~u:u],h;c.length<3&&!c[1][0]&&!c[1][1]&&(h=e[++o],e[o]=u,e[l]=h)}),e.forEach(function(u){var l=s(u),c=l[0],h=l[1],d,g;if(d=i[c])if(delete i[d.end],d.push(u),d.end=h,g=r[h]){delete r[g.start];var b=g===d?d:d.concat(g);r[b.start=d.start]=i[b.end=g.end]=b}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(u),d.start=c,g=i[c]){delete i[g.end];var y=g===d?d:g.concat(d);r[y.start=g.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[u],r[d.start=c]=i[d.end=h]=d});function s(u){var l=t.arcs[u<0?~u:u],c=l[0],h;return t.transform?(h=[0,0],l.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=l[l.length-1],u<0?[h,c]:[c,h]}function f(u,l){for(var c in u){var h=u[c];delete l[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return f(i,r),f(r,i),e.forEach(function(u){n[u<0?~u:u]||a.push([u])}),a}function f_(t){return um(t,l_.apply(this,arguments))}function l_(t,e,n){var r,i,a;if(arguments.length>1)r=c_(t,e,n);else for(i=0,r=new Array(a=t.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:u_(t,r)}}function c_(t,e,n){var r=[],i=[],a;function o(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:a})}function s(c){c.forEach(o)}function f(c){c.forEach(s)}function u(c){c.forEach(f)}function l(c){switch(a=c,c.type){case"GeometryCollection":c.geometries.forEach(l);break;case"LineString":s(c.arcs);break;case"MultiLineString":case"Polygon":f(c.arcs);break;case"MultiPolygon":u(c.arcs);break}}return l(e),i.forEach(n==null?function(c){r.push(c[0].i)}:function(c){n(c[0].g,c[c.length-1].g)&&r.push(c[0].i)}),r}function ns(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function h_(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function wf(t){let e,n,r;t.length!==2?(e=ns,n=(s,f)=>ns(t(s),f),r=(s,f)=>t(s)-f):(e=t===ns||t===h_?t:d_,n=t,r=t);function i(s,f,u=0,l=s.length){if(u<l){if(e(f,f)!==0)return l;do{const c=u+l>>>1;n(s[c],f)<0?u=c+1:l=c}while(u<l)}return u}function a(s,f,u=0,l=s.length){if(u<l){if(e(f,f)!==0)return l;do{const c=u+l>>>1;n(s[c],f)<=0?u=c+1:l=c}while(u<l)}return u}function o(s,f,u=0,l=s.length){const c=i(s,f,u,l-1);return c>u&&r(s[c-1],f)>-r(s[c],f)?c-1:c}return{left:i,center:o,right:a}}function d_(){return 0}function fm(t){return t===null?NaN:+t}const lm=wf(ns),th=lm.right;lm.left,wf(fm).center;const Fa=th;function g_(t,e){let n,r;if(e===void 0)for(const i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of t)(a=e(a,++i,t))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class Bi extends Map{constructor(e,n=b_){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(cm(this,e))}has(e){return super.has(cm(this,e))}set(e,n){return super.set(p_(this,e),n)}delete(e){return super.delete(m_(this,e))}}function cm({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function p_({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function m_({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function b_(t){return t!==null&&typeof t=="object"?t.valueOf():t}function nh(t){return t}function xf(t,...e){return hm(t,nh,nh,e)}function y_(t,...e){return hm(t,Array.from,nh,e)}function hm(t,e,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new Bi,f=r[o++];let u=-1;for(const l of a){const c=f(l,++u,a),h=s.get(c);h?h.push(l):s.set(c,[l])}for(const[l,c]of s)s.set(l,i(c,o));return e(s)}(t,0)}var rh=Math.sqrt(50),ih=Math.sqrt(10),ah=Math.sqrt(2);function vf(t,e,n){var r,i=-1,a,o,s;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((r=e<t)&&(a=t,t=e,e=a),(s=dm(t,e,n))===0||!isFinite(s))return[];if(s>0){let f=Math.round(t/s),u=Math.round(e/s);for(f*s<t&&++f,u*s>e&&--u,o=new Array(a=u-f+1);++i<a;)o[i]=(f+i)*s}else{s=-s;let f=Math.round(t*s),u=Math.round(e*s);for(f/s<t&&++f,u/s>e&&--u,o=new Array(a=u-f+1);++i<a;)o[i]=(f+i)/s}return r&&o.reverse(),o}function dm(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=rh?10:a>=ih?5:a>=ah?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=rh?10:a>=ih?5:a>=ah?2:1)}function ki(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=rh?i*=10:a>=ih?i*=5:a>=ah&&(i*=2),e<t?-i:i}function gm(t,e,n=fm){if(r=t.length){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,a=Math.floor(i),o=+n(t[a],a,t),s=+n(t[a+1],a+1,t);return o+(s-o)*(i-a)}}function rs(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,a=new Array(i);++r<i;)a[r]=t+r*n;return a}function Af(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function w_(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Ef(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Ba(t){return t=Ef(Math.abs(t)),t?t[1]:NaN}function x_(t,e){return function(n,r){for(var i=n.length,a=[],o=0,s=t[0],f=0;i>0&&s>0&&(f+s+1>r&&(s=Math.max(1,r-f)),a.push(n.substring(i-=s,i+s)),!((f+=s+1)>r));)s=t[o=(o+1)%t.length];return a.reverse().join(e)}}function v_(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var A_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function jr(t){if(!(e=A_.exec(t)))throw new Error("invalid format: "+t);var e;return new oh({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}jr.prototype=oh.prototype;function oh(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}oh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function E_(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var pm;function S_(t,e){var n=Ef(t,e);if(!n)return t+"";var r=n[0],i=n[1],a=i-(pm=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Ef(t,Math.max(0,e+a-1))[0]}function mm(t,e){var n=Ef(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const bm={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:w_,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>mm(t*100,e),r:mm,s:S_,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function ym(t){return t}var wm=Array.prototype.map,xm=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function __(t){var e=t.grouping===void 0||t.thousands===void 0?ym:x_(wm.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?ym:v_(wm.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",f=t.nan===void 0?"NaN":t.nan+"";function u(c){c=jr(c);var h=c.fill,d=c.align,g=c.sign,b=c.symbol,y=c.zero,w=c.width,E=c.comma,_=c.precision,D=c.trim,T=c.type;T==="n"?(E=!0,T="g"):bm[T]||(_===void 0&&(_=12),D=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var N=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",M=b==="$"?r:/[%p]/.test(T)?o:"",R=bm[T],C=/[defgprs%]/.test(T);_=_===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function k(L){var ee=N,ne=M,J,be,Se;if(T==="c")ne=R(L)+ne,L="";else{L=+L;var Te=L<0||1/L<0;if(L=isNaN(L)?f:R(Math.abs(L),_),D&&(L=E_(L)),Te&&+L==0&&g!=="+"&&(Te=!1),ee=(Te?g==="("?g:s:g==="-"||g==="("?"":g)+ee,ne=(T==="s"?xm[8+pm/3]:"")+ne+(Te&&g==="("?")":""),C){for(J=-1,be=L.length;++J<be;)if(Se=L.charCodeAt(J),48>Se||Se>57){ne=(Se===46?i+L.slice(J+1):L.slice(J))+ne,L=L.slice(0,J);break}}}E&&!y&&(L=e(L,1/0));var it=ee.length+L.length+ne.length,et=it<w?new Array(w-it+1).join(h):"";switch(E&&y&&(L=e(et+L,et.length?w-ne.length:1/0),et=""),d){case"<":L=ee+L+ne+et;break;case"=":L=ee+et+L+ne;break;case"^":L=et.slice(0,it=et.length>>1)+ee+L+ne+et.slice(it);break;default:L=et+ee+L+ne;break}return a(L)}return k.toString=function(){return c+""},k}function l(c,h){var d=u((c=jr(c),c.type="f",c)),g=Math.max(-8,Math.min(8,Math.floor(Ba(h)/3)))*3,b=Math.pow(10,-g),y=xm[8+g/3];return function(w){return d(b*w)+y}}return{format:u,formatPrefix:l}}var Sf,pt,sh;C_({thousands:",",grouping:[3],currency:["$",""]});function C_(t){return Sf=__(t),pt=Sf.format,sh=Sf.formatPrefix,Sf}function vm(t){return Math.max(0,-Ba(Math.abs(t)))}function Am(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ba(e)/3)))*3-Ba(Math.abs(t)))}function Em(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Ba(e)-Ba(t))+1}var uh=new Date,fh=new Date;function ft(t,e,n,r){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return t(a=new Date(+a)),a},i.ceil=function(a){return t(a=new Date(a-1)),e(a,1),t(a),a},i.round=function(a){var o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=function(a,o){return e(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var f=[],u;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return f;do f.push(u=new Date(+a)),e(a,s),t(a);while(u<a&&a<o);return f},i.filter=function(a){return ft(function(o){if(o>=o)for(;t(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;e(o,-1),!a(o););else for(;--s>=0;)for(;e(o,1),!a(o););})},n&&(i.count=function(a,o){return uh.setTime(+a),fh.setTime(+o),t(uh),t(fh),Math.floor(n(uh,fh))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?function(o){return r(o)%a===0}:function(o){return i.count(0,o)%a===0}):i}),i}var _f=ft(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});_f.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?ft(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):_f};const lh=_f;_f.range;const yr=1e3,on=yr*60,wr=on*60,Li=wr*24,ch=Li*7,Sm=Li*30,hh=Li*365;var _m=ft(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*yr)},function(t,e){return(e-t)/yr},function(t){return t.getUTCSeconds()});const Gr=_m;_m.range;var Cm=ft(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*yr)},function(t,e){t.setTime(+t+e*on)},function(t,e){return(e-t)/on},function(t){return t.getMinutes()});const dh=Cm;Cm.range;var Dm=ft(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*yr-t.getMinutes()*on)},function(t,e){t.setTime(+t+e*wr)},function(t,e){return(e-t)/wr},function(t){return t.getHours()});const gh=Dm;Dm.range;var Im=ft(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*on)/Li,t=>t.getDate()-1);const Ri=Im;Im.range;function Oi(t){return ft(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,n){e.setDate(e.getDate()+n*7)},function(e,n){return(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*on)/ch})}var is=Oi(0),Cf=Oi(1),D_=Oi(2),I_=Oi(3),ka=Oi(4),M_=Oi(5),T_=Oi(6);is.range,Cf.range,D_.range,I_.range,ka.range,M_.range,T_.range;var Mm=ft(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const Df=Mm;Mm.range;var ph=ft(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});ph.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ft(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)})};const Hr=ph;ph.range;var Tm=ft(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*on)},function(t,e){return(e-t)/on},function(t){return t.getUTCMinutes()});const mh=Tm;Tm.range;var Nm=ft(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*wr)},function(t,e){return(e-t)/wr},function(t){return t.getUTCHours()});const bh=Nm;Nm.range;var Fm=ft(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Li},function(t){return t.getUTCDate()-1});const zi=Fm;Fm.range;function Pi(t){return ft(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCDate(e.getUTCDate()+n*7)},function(e,n){return(n-e)/ch})}var as=Pi(0),If=Pi(1),N_=Pi(2),F_=Pi(3),La=Pi(4),B_=Pi(5),k_=Pi(6);as.range,If.range,N_.range,F_.range,La.range,B_.range,k_.range;var Bm=ft(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const Mf=Bm;Bm.range;var yh=ft(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});yh.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ft(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})};const Qr=yh;yh.range;function km(t,e,n,r,i,a){const o=[[Gr,1,yr],[Gr,5,5*yr],[Gr,15,15*yr],[Gr,30,30*yr],[a,1,on],[a,5,5*on],[a,15,15*on],[a,30,30*on],[i,1,wr],[i,3,3*wr],[i,6,6*wr],[i,12,12*wr],[r,1,Li],[r,2,2*Li],[n,1,ch],[e,1,Sm],[e,3,3*Sm],[t,1,hh]];function s(u,l,c){const h=l<u;h&&([u,l]=[l,u]);const d=c&&typeof c.range=="function"?c:f(u,l,c),g=d?d.range(u,+l+1):[];return h?g.reverse():g}function f(u,l,c){const h=Math.abs(l-u)/c,d=wf(([,,y])=>y).right(o,h);if(d===o.length)return t.every(ki(u/hh,l/hh,c));if(d===0)return lh.every(Math.max(ki(u,l,c),1));const[g,b]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return g.every(b)}return[s,f]}const[L_,R_]=km(Qr,Mf,as,zi,bh,mh),[O_,z_]=km(Hr,Df,is,Ri,gh,dh),os="year",ss="quarter",us="month",fs="week",ls="date",Tf="day",wh="dayofyear",cs="hours",hs="minutes",ds="seconds",Nf="milliseconds";[os,ss,us,fs,ls,Tf,wh,cs,hs,ds,Nf].reduce((t,e,n)=>(t[e]=1+n,t),{});const P_={[os]:Hr,[ss]:Df.every(3),[us]:Df,[fs]:is,[ls]:Ri,[Tf]:Ri,[wh]:Ri,[cs]:gh,[hs]:dh,[ds]:Gr,[Nf]:lh},U_={[os]:Qr,[ss]:Mf.every(3),[us]:Mf,[fs]:as,[ls]:zi,[Tf]:zi,[wh]:zi,[cs]:bh,[hs]:mh,[ds]:Gr,[Nf]:lh};function j_(t){return P_[t]}function G_(t){return U_[t]}function xh(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function vh(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function gs(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Lm(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,a=t.days,o=t.shortDays,s=t.months,f=t.shortMonths,u=ps(i),l=ms(i),c=ps(a),h=ms(a),d=ps(o),g=ms(o),b=ps(s),y=ms(s),w=ps(f),E=ms(f),_={a:Te,A:it,b:et,B:dr,c:null,d:jm,e:jm,f:cC,g:vC,G:EC,H:uC,I:fC,j:lC,L:Gm,m:hC,M:dC,p:ke,q:Ye,Q:Ym,s:Wm,S:gC,u:pC,U:mC,V:bC,w:yC,W:wC,x:null,X:null,y:xC,Y:AC,Z:SC,"%":Zm},D={a:Zt,A:Hn,b:gr,B:z,c:null,d:Qm,e:Qm,f:IC,g:zC,G:UC,H:_C,I:CC,j:DC,L:Vm,m:MC,M:TC,p:O,q,Q:Ym,s:Wm,S:NC,u:FC,U:BC,V:kC,w:LC,W:RC,x:null,X:null,y:OC,Y:PC,Z:jC,"%":Zm},T={a:k,A:L,b:ee,B:ne,c:J,d:Pm,e:Pm,f:iC,g:zm,G:Om,H:Um,I:Um,j:eC,L:rC,m:J_,M:tC,p:C,q:K_,Q:oC,s:sC,S:nC,u:Z_,U:Y_,V:W_,w:q_,W:X_,x:be,X:Se,y:zm,Y:Om,Z:$_,"%":aC};_.x=N(n,_),_.X=N(r,_),_.c=N(e,_),D.x=N(n,D),D.X=N(r,D),D.c=N(e,D);function N(Q,X){return function(S){var v=[],G=-1,V=0,le=Q.length,re,ce,Yt;for(S instanceof Date||(S=new Date(+S));++G<le;)Q.charCodeAt(G)===37&&(v.push(Q.slice(V,G)),(ce=Rm[re=Q.charAt(++G)])!=null?re=Q.charAt(++G):ce=re==="e"?" ":"0",(Yt=X[re])&&(re=Yt(S,ce)),v.push(re),V=G+1);return v.push(Q.slice(V,G)),v.join("")}}function M(Q,X){return function(S){var v=gs(1900,void 0,1),G=R(v,Q,S+="",0),V,le;if(G!=S.length)return null;if("Q"in v)return new Date(v.Q);if("s"in v)return new Date(v.s*1e3+("L"in v?v.L:0));if(X&&!("Z"in v)&&(v.Z=0),"p"in v&&(v.H=v.H%12+v.p*12),v.m===void 0&&(v.m="q"in v?v.q:0),"V"in v){if(v.V<1||v.V>53)return null;"w"in v||(v.w=1),"Z"in v?(V=vh(gs(v.y,0,1)),le=V.getUTCDay(),V=le>4||le===0?If.ceil(V):If(V),V=zi.offset(V,(v.V-1)*7),v.y=V.getUTCFullYear(),v.m=V.getUTCMonth(),v.d=V.getUTCDate()+(v.w+6)%7):(V=xh(gs(v.y,0,1)),le=V.getDay(),V=le>4||le===0?Cf.ceil(V):Cf(V),V=Ri.offset(V,(v.V-1)*7),v.y=V.getFullYear(),v.m=V.getMonth(),v.d=V.getDate()+(v.w+6)%7)}else("W"in v||"U"in v)&&("w"in v||(v.w="u"in v?v.u%7:"W"in v?1:0),le="Z"in v?vh(gs(v.y,0,1)).getUTCDay():xh(gs(v.y,0,1)).getDay(),v.m=0,v.d="W"in v?(v.w+6)%7+v.W*7-(le+5)%7:v.w+v.U*7-(le+6)%7);return"Z"in v?(v.H+=v.Z/100|0,v.M+=v.Z%100,vh(v)):xh(v)}}function R(Q,X,S,v){for(var G=0,V=X.length,le=S.length,re,ce;G<V;){if(v>=le)return-1;if(re=X.charCodeAt(G++),re===37){if(re=X.charAt(G++),ce=T[re in Rm?X.charAt(G++):re],!ce||(v=ce(Q,S,v))<0)return-1}else if(re!=S.charCodeAt(v++))return-1}return v}function C(Q,X,S){var v=u.exec(X.slice(S));return v?(Q.p=l.get(v[0].toLowerCase()),S+v[0].length):-1}function k(Q,X,S){var v=d.exec(X.slice(S));return v?(Q.w=g.get(v[0].toLowerCase()),S+v[0].length):-1}function L(Q,X,S){var v=c.exec(X.slice(S));return v?(Q.w=h.get(v[0].toLowerCase()),S+v[0].length):-1}function ee(Q,X,S){var v=w.exec(X.slice(S));return v?(Q.m=E.get(v[0].toLowerCase()),S+v[0].length):-1}function ne(Q,X,S){var v=b.exec(X.slice(S));return v?(Q.m=y.get(v[0].toLowerCase()),S+v[0].length):-1}function J(Q,X,S){return R(Q,e,X,S)}function be(Q,X,S){return R(Q,n,X,S)}function Se(Q,X,S){return R(Q,r,X,S)}function Te(Q){return o[Q.getDay()]}function it(Q){return a[Q.getDay()]}function et(Q){return f[Q.getMonth()]}function dr(Q){return s[Q.getMonth()]}function ke(Q){return i[+(Q.getHours()>=12)]}function Ye(Q){return 1+~~(Q.getMonth()/3)}function Zt(Q){return o[Q.getUTCDay()]}function Hn(Q){return a[Q.getUTCDay()]}function gr(Q){return f[Q.getUTCMonth()]}function z(Q){return s[Q.getUTCMonth()]}function O(Q){return i[+(Q.getUTCHours()>=12)]}function q(Q){return 1+~~(Q.getUTCMonth()/3)}return{format:function(Q){var X=N(Q+="",_);return X.toString=function(){return Q},X},parse:function(Q){var X=M(Q+="",!1);return X.toString=function(){return Q},X},utcFormat:function(Q){var X=N(Q+="",D);return X.toString=function(){return Q},X},utcParse:function(Q){var X=M(Q+="",!0);return X.toString=function(){return Q},X}}}var Rm={"-":"",_:" ",0:"0"},lt=/^\s*\d+/,H_=/^%/,Q_=/[\\^$*+?|[\]().{}]/g;function xe(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(e)+i:i)}function V_(t){return t.replace(Q_,"\\$&")}function ps(t){return new RegExp("^(?:"+t.map(V_).join("|")+")","i")}function ms(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function q_(t,e,n){var r=lt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Z_(t,e,n){var r=lt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Y_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function W_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function X_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Om(t,e,n){var r=lt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function zm(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function $_(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function K_(t,e,n){var r=lt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function J_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Pm(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function eC(t,e,n){var r=lt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Um(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function tC(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function nC(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function rC(t,e,n){var r=lt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function iC(t,e,n){var r=lt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function aC(t,e,n){var r=H_.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function oC(t,e,n){var r=lt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function sC(t,e,n){var r=lt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function jm(t,e){return xe(t.getDate(),e,2)}function uC(t,e){return xe(t.getHours(),e,2)}function fC(t,e){return xe(t.getHours()%12||12,e,2)}function lC(t,e){return xe(1+Ri.count(Hr(t),t),e,3)}function Gm(t,e){return xe(t.getMilliseconds(),e,3)}function cC(t,e){return Gm(t,e)+"000"}function hC(t,e){return xe(t.getMonth()+1,e,2)}function dC(t,e){return xe(t.getMinutes(),e,2)}function gC(t,e){return xe(t.getSeconds(),e,2)}function pC(t){var e=t.getDay();return e===0?7:e}function mC(t,e){return xe(is.count(Hr(t)-1,t),e,2)}function Hm(t){var e=t.getDay();return e>=4||e===0?ka(t):ka.ceil(t)}function bC(t,e){return t=Hm(t),xe(ka.count(Hr(t),t)+(Hr(t).getDay()===4),e,2)}function yC(t){return t.getDay()}function wC(t,e){return xe(Cf.count(Hr(t)-1,t),e,2)}function xC(t,e){return xe(t.getFullYear()%100,e,2)}function vC(t,e){return t=Hm(t),xe(t.getFullYear()%100,e,2)}function AC(t,e){return xe(t.getFullYear()%1e4,e,4)}function EC(t,e){var n=t.getDay();return t=n>=4||n===0?ka(t):ka.ceil(t),xe(t.getFullYear()%1e4,e,4)}function SC(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+xe(e/60|0,"0",2)+xe(e%60,"0",2)}function Qm(t,e){return xe(t.getUTCDate(),e,2)}function _C(t,e){return xe(t.getUTCHours(),e,2)}function CC(t,e){return xe(t.getUTCHours()%12||12,e,2)}function DC(t,e){return xe(1+zi.count(Qr(t),t),e,3)}function Vm(t,e){return xe(t.getUTCMilliseconds(),e,3)}function IC(t,e){return Vm(t,e)+"000"}function MC(t,e){return xe(t.getUTCMonth()+1,e,2)}function TC(t,e){return xe(t.getUTCMinutes(),e,2)}function NC(t,e){return xe(t.getUTCSeconds(),e,2)}function FC(t){var e=t.getUTCDay();return e===0?7:e}function BC(t,e){return xe(as.count(Qr(t)-1,t),e,2)}function qm(t){var e=t.getUTCDay();return e>=4||e===0?La(t):La.ceil(t)}function kC(t,e){return t=qm(t),xe(La.count(Qr(t),t)+(Qr(t).getUTCDay()===4),e,2)}function LC(t){return t.getUTCDay()}function RC(t,e){return xe(If.count(Qr(t)-1,t),e,2)}function OC(t,e){return xe(t.getUTCFullYear()%100,e,2)}function zC(t,e){return t=qm(t),xe(t.getUTCFullYear()%100,e,2)}function PC(t,e){return xe(t.getUTCFullYear()%1e4,e,4)}function UC(t,e){var n=t.getUTCDay();return t=n>=4||n===0?La(t):La.ceil(t),xe(t.getUTCFullYear()%1e4,e,4)}function jC(){return"+0000"}function Zm(){return"%"}function Ym(t){return+t}function Wm(t){return Math.floor(+t/1e3)}var Ra,Ah,Xm,Eh,$m;GC({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function GC(t){return Ra=Lm(t),Ah=Ra.format,Xm=Ra.parse,Eh=Ra.utcFormat,$m=Ra.utcParse,Ra}function bs(t){const e={};return n=>e[n]||(e[n]=t(n))}function HC(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let a=QC(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function QC(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function VC(t){const e=bs(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=jr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return HC(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,a,o){o=jr(o??",f");const s=ki(r,i,a),f=Math.max(Math.abs(r),Math.abs(i));let u;if(o.precision==null)switch(o.type){case"s":return isNaN(u=Am(s,f))||(o.precision=u),n(o,f);case"":case"e":case"g":case"p":case"r":{isNaN(u=Em(s,f))||(o.precision=u-(o.type==="e"));break}case"f":case"%":{isNaN(u=vm(s))||(o.precision=u-(o.type==="%")*2);break}}return e(o)}}}qC();function qC(){return VC({format:pt,formatPrefix:sh})}function Km(t,e,n){n=n||{},Dn(n)||$e("Invalid time multi-format specifier: ".concat(n));const r=e(ds),i=e(hs),a=e(cs),o=e(ls),s=e(fs),f=e(us),u=e(ss),l=e(os),c=t(n[Nf]||".%L"),h=t(n[ds]||":%S"),d=t(n[hs]||"%I:%M"),g=t(n[cs]||"%I %p"),b=t(n[ls]||n[Tf]||"%a %d"),y=t(n[fs]||"%b %d"),w=t(n[us]||"%B"),E=t(n[ss]||"%B"),_=t(n[os]||"%Y");return D=>(r(D)<D?c:i(D)<D?h:a(D)<D?d:o(D)<D?g:f(D)<D?s(D)<D?b:y:l(D)<D?u(D)<D?w:E:_)(D)}function Jm(t){const e=bs(t.format),n=bs(t.utcFormat);return{timeFormat:r=>Ke(r)?e(r):Km(e,j_,r),utcFormat:r=>Ke(r)?n(r):Km(n,G_,r),timeParse:bs(t.parse),utcParse:bs(t.utcParse)}}let Sh;ZC();function ZC(){return Sh=Jm({format:Ah,parse:Xm,utcFormat:Eh,utcParse:$m})}function YC(t){return Jm(Lm(t))}function WC(t){return arguments.length?Sh=YC(t):Sh}const XC=/^(data:|([A-Za-z]+:)?\/\/)/,$C=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,KC=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,e1="file://";function JC(t,e){return n=>({options:n||{},sanitize:t4,load:e4,fileAccess:!!e,file:n4(e),http:i4(t)})}async function e4(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function t4(t,e){e=$c({},this.options,e);const n=this.fileAccess,r={href:null};let i,a,o;const s=$C.test(t.replace(KC,""));(t==null||typeof t!="string"||!s)&&$e("Sanitize failure, invalid URI: "+bf(t));const f=XC.test(t);return(o=e.baseURL)&&!f&&(!t.startsWith("/")&&!o.endsWith("/")&&(t="/"+t),t=o+t),a=(i=t.startsWith(e1))||e.mode==="file"||e.mode!=="http"&&!f&&n,i?t=t.slice(e1.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),a=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!a}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function n4(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,a)=>{i?r(i):n(a)})}):r4}async function r4(){$e("No file system access.")}function i4(t){return t?async function(e,n){const r=$c({},this.options.http,n),i=n&&n.response,a=await t(e,r);return a.ok?kt(a[i])?a[i]():a.text():$e(a.status+""+a.statusText)}:a4}async function a4(){$e("No HTTP fetch method available.")}const o4=t=>t!=null&&t===t,s4=t=>t==="true"||t==="false"||t===!0||t===!1,u4=t=>!Number.isNaN(Date.parse(t)),t1=t=>!Number.isNaN(+t)&&!(t instanceof Date),f4=t=>t1(t)&&Number.isInteger(+t),n1={boolean:WS,integer:es,number:es,date:$S,string:KS,unknown:hf},Ff=[s4,f4,t1,u4],l4=["boolean","integer","number","date"];function c4(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=Ff.length,i=Ff.map((a,o)=>o+1);for(let a=0,o=0,s,f;a<n;++a)for(f=e?t[a][e]:t[a],s=0;s<r;++s)if(i[s]&&o4(f)&&!Ff[s](f)&&(i[s]=0,++o,o===Ff.length))return"string";return l4[i.reduce((a,o)=>a===0?o:a,0)-1]}function h4(t,e){return e.reduce((n,r)=>(n[r]=c4(t,r),n),{})}function r1(t){const e=function(n,r){const i={delimiter:t};return _h(n,r?$c(r,i):i)};return e.responseType="text",e}function _h(t,e){return e.header&&(t=e.header.map(bf).join(e.delimiter)+`
|
|
6
|
+
`+t),om(e.delimiter).parse(t+"")}_h.responseType="text";function d4(t){return typeof Buffer=="function"&&kt(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function Ch(t,e){const n=e&&e.property?cf(e.property):hf;return Dn(t)&&!d4(t)?g4(n(t),e):n(JSON.parse(t))}Ch.responseType="json";function g4(t,e){return!Xt(t)&&ZS(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const p4={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function i1(t,e){let n,r,i,a;return t=Ch(t,e),e&&e.feature?(n=s_,i=e.feature):e&&e.mesh?(n=f_,i=e.mesh,a=p4[e.filter]):$e("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,a):$e("Invalid TopoJSON object: "+i),r&&r.features||[r]}i1.responseType="json";const Dh={dsv:_h,csv:r1(","),tsv:r1(" "),json:Ch,topojson:i1};function a1(t,e){return arguments.length>1?(Dh[t]=e,this):Fi(Dh,t)?Dh[t]:null}function o1(t,e,n,r){e=e||{};const i=a1(e.type||"json");return i||$e("Unknown data format type: "+e.type),t=i(t,e),e.parse&&m4(t,e.parse,n,r),Fi(t,"columns")&&delete t.columns,t}function m4(t,e,n,r){if(!t.length)return;const i=WC();n=n||i.timeParse,r=r||i.utcParse;let a=t.columns||Object.keys(t[0]),o,s,f,u,l,c;e==="auto"&&(e=h4(t,a)),a=Object.keys(e);const h=a.map(d=>{const g=e[d];let b,y;if(g&&(g.startsWith("date:")||g.startsWith("utc:")))return b=g.split(/:(.+)?/,2),y=b[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(b[0]==="utc"?r:n)(y);if(!n1[g])throw Error("Illegal format pattern: "+d+":"+g);return n1[g]});for(f=0,l=t.length,c=a.length;f<l;++f)for(o=t[f],u=0;u<c;++u)s=a[u],o[s]=h[u](o[s])}const Bf=JC(typeof fetch<"u"&&fetch,null);/**
|
|
7
7
|
* @license
|
|
8
8
|
* Copyright 2017 Google LLC
|
|
9
9
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
10
|
-
*/var Ih;const kf=window,
|
|
10
|
+
*/var Ih;const kf=window,Oa=kf.trustedTypes,s1=Oa?Oa.createPolicy("lit-html",{createHTML:t=>t}):void 0,Vr=`lit$${(Math.random()+"").slice(9)}$`,u1="?"+Vr,b4=`<${u1}>`,za=document,ys=(t="")=>za.createComment(t),ws=t=>t===null||typeof t!="object"&&typeof t!="function",f1=Array.isArray,y4=t=>f1(t)||typeof(t==null?void 0:t[Symbol.iterator])=="function",xs=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,l1=/-->/g,c1=/>/g,Ui=RegExp(`>|[
|
|
11
11
|
\f\r](?:([^\\s"'>=/]+)([
|
|
12
12
|
\f\r]*=[
|
|
13
13
|
\f\r]*(?:[^
|
|
14
|
-
\f\r"'\`<>=]|("|')|))|$)`,"g"),c1=/'/g,h1=/"/g,d1=/^(?:script|style|textarea|title)$/i,w4=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),Zn=w4(1),As=Symbol.for("lit-noChange"),at=Symbol.for("lit-nothing"),g1=new WeakMap,Ua=Pa.createTreeWalker(Pa,129,null,!1),x4=(t,e)=>{const n=t.length-1,r=[];let i,a=e===2?"<svg>":"",o=vs;for(let f=0;f<n;f++){const u=t[f];let l,c,h=-1,d=0;for(;d<u.length&&(o.lastIndex=d,c=o.exec(u),c!==null);)d=o.lastIndex,o===vs?c[1]==="!--"?o=f1:c[1]!==void 0?o=l1:c[2]!==void 0?(d1.test(c[2])&&(i=RegExp("</"+c[2],"g")),o=Ui):c[3]!==void 0&&(o=Ui):o===Ui?c[0]===">"?(o=i??vs,h=-1):c[1]===void 0?h=-2:(h=o.lastIndex-c[2].length,l=c[1],o=c[3]===void 0?Ui:c[3]==='"'?h1:c1):o===h1||o===c1?o=Ui:o===f1||o===l1?o=vs:(o=Ui,i=void 0);const g=o===Ui&&t[f+1].startsWith("/>")?" ":"";a+=o===vs?u+b4:h>=0?(r.push(l),u.slice(0,h)+"$lit$"+u.slice(h)+qr+g):u+qr+(h===-2?(r.push(void 0),f):g)}const s=a+(t[n]||"<?>")+(e===2?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[o1!==void 0?o1.createHTML(s):s,r]};let Mh=class AS{constructor({strings:e,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=e.length-1,f=this.parts,[u,l]=x4(e,n);if(this.el=AS.createElement(u,r),Ua.currentNode=this.el.content,n===2){const c=this.el.content,h=c.firstChild;h.remove(),c.append(...h.childNodes)}for(;(i=Ua.nextNode())!==null&&f.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const c=[];for(const h of i.getAttributeNames())if(h.endsWith("$lit$")||h.startsWith(qr)){const d=l[o++];if(c.push(h),d!==void 0){const g=i.getAttribute(d.toLowerCase()+"$lit$").split(qr),b=/([.?@])?(.*)/.exec(d);f.push({type:1,index:a,name:b[2],strings:g,ctor:b[1]==="."?A4:b[1]==="?"?S4:b[1]==="@"?_4:Lf})}else f.push({type:6,index:a})}for(const h of c)i.removeAttribute(h)}if(d1.test(i.tagName)){const c=i.textContent.split(qr),h=c.length-1;if(h>0){i.textContent=za?za.emptyScript:"";for(let d=0;d<h;d++)i.append(c[d],ws()),Ua.nextNode(),f.push({type:2,index:++a});i.append(c[h],ws())}}}else if(i.nodeType===8)if(i.data===s1)f.push({type:2,index:a});else{let c=-1;for(;(c=i.data.indexOf(qr,c+1))!==-1;)f.push({type:7,index:a}),c+=qr.length-1}a++}}static createElement(e,n){const r=Pa.createElement("template");return r.innerHTML=e,r}};function ja(t,e,n=t,r){var i,a,o,s;if(e===As)return e;let f=r!==void 0?(i=n._$Co)===null||i===void 0?void 0:i[r]:n._$Cl;const u=xs(e)?void 0:e._$litDirective$;return(f==null?void 0:f.constructor)!==u&&((a=f==null?void 0:f._$AO)===null||a===void 0||a.call(f,!1),u===void 0?f=void 0:(f=new u(t),f._$AT(t,n,r)),r!==void 0?((o=(s=n)._$Co)!==null&&o!==void 0?o:s._$Co=[])[r]=f:n._$Cl=f),f!==void 0&&(e=ja(t,f._$AS(t,e.values),f,r)),e}class v4{constructor(e,n){this.u=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(e){var n;const{el:{content:r},parts:i}=this._$AD,a=((n=e==null?void 0:e.creationScope)!==null&&n!==void 0?n:Pa).importNode(r,!0);Ua.currentNode=a;let o=Ua.nextNode(),s=0,f=0,u=i[0];for(;u!==void 0;){if(s===u.index){let l;u.type===2?l=new Es(o,o.nextSibling,this,e):u.type===1?l=new u.ctor(o,u.name,u.strings,this,e):u.type===6&&(l=new C4(o,this,e)),this.u.push(l),u=i[++f]}s!==(u==null?void 0:u.index)&&(o=Ua.nextNode(),s++)}return a}p(e){let n=0;for(const r of this.u)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}}class Es{constructor(e,n,r,i){var a;this.type=2,this._$AH=at,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cm=(a=i==null?void 0:i.isConnected)===null||a===void 0||a}get _$AU(){var e,n;return(n=(e=this._$AM)===null||e===void 0?void 0:e._$AU)!==null&&n!==void 0?n:this._$Cm}get parentNode(){let e=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&e.nodeType===11&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=ja(this,e,n),xs(e)?e===at||e==null||e===""?(this._$AH!==at&&this._$AR(),this._$AH=at):e!==this._$AH&&e!==As&&this.g(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):y4(e)?this.k(e):this.g(e)}O(e,n=this._$AB){return this._$AA.parentNode.insertBefore(e,n)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}g(e){this._$AH!==at&&xs(this._$AH)?this._$AA.nextSibling.data=e:this.T(Pa.createTextNode(e)),this._$AH=e}$(e){var n;const{values:r,_$litType$:i}=e,a=typeof i=="number"?this._$AC(e):(i.el===void 0&&(i.el=Mh.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===a)this._$AH.p(r);else{const o=new v4(a,this),s=o.v(this.options);o.p(r),this.T(s),this._$AH=o}}_$AC(e){let n=g1.get(e.strings);return n===void 0&&g1.set(e.strings,n=new Mh(e)),n}k(e){u1(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const a of e)i===n.length?n.push(r=new Es(this.O(ws()),this.O(ws()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);e&&e!==this._$AB;){const i=e.nextSibling;e.remove(),e=i}}setConnected(e){var n;this._$AM===void 0&&(this._$Cm=e,(n=this._$AP)===null||n===void 0||n.call(this,e))}}class Lf{constructor(e,n,r,i,a){this.type=1,this._$AH=at,this._$AN=void 0,this.element=e,this.name=n,this._$AM=i,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=at}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)e=ja(this,e,n,0),o=!xs(e)||e!==this._$AH&&e!==As,o&&(this._$AH=e);else{const s=e;let f,u;for(e=a[0],f=0;f<a.length-1;f++)u=ja(this,s[r+f],n,f),u===As&&(u=this._$AH[f]),o||(o=!xs(u)||u!==this._$AH[f]),u===at?e=at:e!==at&&(e+=(u??"")+a[f+1]),this._$AH[f]=u}o&&!i&&this.j(e)}j(e){e===at?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class A4 extends Lf{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===at?void 0:e}}const E4=za?za.emptyScript:"";class S4 extends Lf{constructor(){super(...arguments),this.type=4}j(e){e&&e!==at?this.element.setAttribute(this.name,E4):this.element.removeAttribute(this.name)}}class _4 extends Lf{constructor(e,n,r,i,a){super(e,n,r,i,a),this.type=5}_$AI(e,n=this){var r;if((e=(r=ja(this,e,n,0))!==null&&r!==void 0?r:at)===As)return;const i=this._$AH,a=e===at&&i!==at||e.capture!==i.capture||e.once!==i.once||e.passive!==i.passive,o=e!==at&&(i===at||a);a&&this.element.removeEventListener(this.name,this,i),o&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var n,r;typeof this._$AH=="function"?this._$AH.call((r=(n=this.options)===null||n===void 0?void 0:n.host)!==null&&r!==void 0?r:this.element,e):this._$AH.handleEvent(e)}}class C4{constructor(e,n,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){ja(this,e)}}const p1=kf.litHtmlPolyfillSupport;p1==null||p1(Mh,Es),((Ih=kf.litHtmlVersions)!==null&&Ih!==void 0?Ih:kf.litHtmlVersions=[]).push("2.4.0");const m1=(t,e,n)=>{var r,i;const a=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:e;let o=a._$litPart$;if(o===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;a._$litPart$=o=new Es(e.insertBefore(ws(),s),s,void 0,n??{})}return o._$AI(t),o},z7="";function D4(t,e){var n=t.getBoundingClientRect();return[e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop]}function Rf(t,e){return t.length==e.length&&t.every((n,r)=>t[r]===e[r])}function on(t){return Array.isArray(t)?t:typeof t<"u"?[t]:[]}function Ss(t){return t[t.length-1]}class I4{constructor(e){this.container=e,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(e){e!=this._visible&&(this.element.style.display=e?null:"none",this._visible=e)}get visible(){return this._visible}get enabled(){return Ss(this.enabledStack)??!0}pushEnabledState(e){this.enabledStack.push(e),e||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(e){this.mouseCoords=D4(this.container,e);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&M4(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(e){if(!e||!this.enabled||this._isPenalty()){this.visible&&(m1("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}m1(e,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(e,n){e!==this._previousTooltipDatum&&(this._previousTooltipDatum=e,n||(n=r=>Promise.resolve(Zn`${JSON.stringify(r)}`)),n(e).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function M4(t,e){let n=0;for(let r=0;r<t.length;r++)n+=(t[r]-e[r])**2;return Math.sqrt(n)}const T4="RawCode",N4="Literal",F4="Property",B4="Identifier",k4="ArrayExpression",L4="BinaryExpression",R4="CallExpression",O4="ConditionalExpression",z4="LogicalExpression",P4="MemberExpression",U4="ObjectExpression",j4="UnaryExpression";function Mn(t){this.type=t}Mn.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=G4(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function G4(t){switch(t.type){case k4:return t.elements;case L4:case z4:return[t.left,t.right];case R4:return[t.callee].concat(t.arguments);case O4:return[t.test,t.consequent,t.alternate];case P4:return[t.object,t.property];case U4:return t.properties;case F4:return[t.key,t.value];case j4:return[t.argument];case B4:case N4:case T4:default:return[]}}var Yn,te,j,xt,Ie,Of=1,_s=2,ji=3,Zr=4,zf=5,Gi=6,Ot=7,Cs=8,H4=9;Yn={},Yn[Of]="Boolean",Yn[_s]="<end>",Yn[ji]="Identifier",Yn[Zr]="Keyword",Yn[zf]="Null",Yn[Gi]="Numeric",Yn[Ot]="Punctuator",Yn[Cs]="String",Yn[H4]="RegularExpression";var Q4="ArrayExpression",V4="BinaryExpression",q4="CallExpression",Z4="ConditionalExpression",b1="Identifier",Y4="Literal",W4="LogicalExpression",X4="MemberExpression",$4="ObjectExpression",K4="Property",J4="UnaryExpression",ct="Unexpected token %0",eD="Unexpected number",tD="Unexpected string",nD="Unexpected identifier",rD="Unexpected reserved word",iD="Unexpected end of input",Th="Invalid regular expression",Nh="Invalid regular expression: missing /",y1="Octal literals are not allowed in strict mode.",aD="Duplicate data property in object literal not allowed in strict mode",mt="ILLEGAL",Ds="Disabled.",oD=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),sD=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Pf(t,e){if(!t)throw new Error("ASSERT: "+e)}function xr(t){return t>=48&&t<=57}function Fh(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function Is(t){return"01234567".indexOf(t)>=0}function uD(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function Ms(t){return t===10||t===13||t===8232||t===8233}function Ts(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&oD.test(String.fromCharCode(t))}function Uf(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&sD.test(String.fromCharCode(t))}const fD={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function w1(){for(;j<xt;){const t=te.charCodeAt(j);if(uD(t)||Ms(t))++j;else break}}function Bh(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)j<xt&&Fh(te[j])?(r=te[j++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ve({},ct,mt);return String.fromCharCode(i)}function lD(){var t,e,n,r;for(t=te[j],e=0,t==="}"&&ve({},ct,mt);j<xt&&(t=te[j++],!!Fh(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&ve({},ct,mt),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function x1(){var t,e;for(t=te.charCodeAt(j++),e=String.fromCharCode(t),t===92&&(te.charCodeAt(j)!==117&&ve({},ct,mt),++j,t=Bh("u"),(!t||t==="\\"||!Ts(t.charCodeAt(0)))&&ve({},ct,mt),e=t);j<xt&&(t=te.charCodeAt(j),!!Uf(t));)++j,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),te.charCodeAt(j)!==117&&ve({},ct,mt),++j,t=Bh("u"),(!t||t==="\\"||!Uf(t.charCodeAt(0)))&&ve({},ct,mt),e+=t);return e}function cD(){var t,e;for(t=j++;j<xt;){if(e=te.charCodeAt(j),e===92)return j=t,x1();if(Uf(e))++j;else break}return te.slice(t,j)}function hD(){var t,e,n;return t=j,e=te.charCodeAt(j)===92?x1():cD(),e.length===1?n=ji:fD.hasOwnProperty(e)?n=Zr:e==="null"?n=zf:e==="true"||e==="false"?n=Of:n=ji,{type:n,value:e,start:t,end:j}}function kh(){var t=j,e=te.charCodeAt(j),n,r=te[j],i,a,o;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++j,{type:Ot,value:String.fromCharCode(e),start:t,end:j};default:if(n=te.charCodeAt(j+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return j+=2,{type:Ot,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:j};case 33:case 61:return j+=2,te.charCodeAt(j)===61&&++j,{type:Ot,value:te.slice(t,j),start:t,end:j}}}if(o=te.substr(j,4),o===">>>=")return j+=4,{type:Ot,value:o,start:t,end:j};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return j+=3,{type:Ot,value:a,start:t,end:j};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return j+=2,{type:Ot,value:i,start:t,end:j};if(i==="//"&&ve({},ct,mt),"<>=!+-*%&|^/".indexOf(r)>=0)return++j,{type:Ot,value:r,start:t,end:j};ve({},ct,mt)}function dD(t){let e="";for(;j<xt&&Fh(te[j]);)e+=te[j++];return e.length===0&&ve({},ct,mt),Ts(te.charCodeAt(j))&&ve({},ct,mt),{type:Gi,value:parseInt("0x"+e,16),start:t,end:j}}function gD(t){let e="0"+te[j++];for(;j<xt&&Is(te[j]);)e+=te[j++];return(Ts(te.charCodeAt(j))||xr(te.charCodeAt(j)))&&ve({},ct,mt),{type:Gi,value:parseInt(e,8),octal:!0,start:t,end:j}}function v1(){var t,e,n;if(n=te[j],Pf(xr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=j,t="",n!=="."){if(t=te[j++],n=te[j],t==="0"){if(n==="x"||n==="X")return++j,dD(e);if(Is(n))return gD(e);n&&xr(n.charCodeAt(0))&&ve({},ct,mt)}for(;xr(te.charCodeAt(j));)t+=te[j++];n=te[j]}if(n==="."){for(t+=te[j++];xr(te.charCodeAt(j));)t+=te[j++];n=te[j]}if(n==="e"||n==="E")if(t+=te[j++],n=te[j],(n==="+"||n==="-")&&(t+=te[j++]),xr(te.charCodeAt(j)))for(;xr(te.charCodeAt(j));)t+=te[j++];else ve({},ct,mt);return Ts(te.charCodeAt(j))&&ve({},ct,mt),{type:Gi,value:parseFloat(t),start:e,end:j}}function pD(){var t="",e,n,r,i,a=!1;for(e=te[j],Pf(e==="'"||e==='"',"String literal must starts with a quote"),n=j,++j;j<xt;)if(r=te[j++],r===e){e="";break}else if(r==="\\")if(r=te[j++],!r||!Ms(r.charCodeAt(0)))switch(r){case"u":case"x":te[j]==="{"?(++j,t+=lD()):t+=Bh(r);break;case"n":t+=`
|
|
15
|
-
`;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:
|
|
16
|
-
`&&++j;else{if(Ms(r.charCodeAt(0)))break;t+=r}return e!==""&&ve({},ct,mt),{type:Cs,value:t,octal:a,start:n,end:j}}function mD(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";ve({},Th)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ve({},Th)}try{return new RegExp(t,e)}catch{return null}}function bD(){var t,e,n,r,i;for(t=te[j],Pf(t==="/","Regular expression literal must start with a slash"),e=te[j++],n=!1,r=!1;j<xt;)if(t=te[j++],e+=t,t==="\\")t=te[j++],Ms(t.charCodeAt(0))&&ve({},Nh),e+=t;else if(Ms(t.charCodeAt(0)))ve({},Nh);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||ve({},Nh),i=e.substr(1,e.length-2),{value:i,literal:e}}function yD(){var t,e,n;for(e="",n="";j<xt&&(t=te[j],!!Uf(t.charCodeAt(0)));)++j,t==="\\"&&j<xt?ve({},ct,mt):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&ve({},Th,n),{value:n,literal:e}}function wD(){var t,e,n,r;return Ie=null,w1(),t=j,e=bD(),n=yD(),r=mD(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:j}}function xD(t){return t.type===ji||t.type===Zr||t.type===Of||t.type===zf}function A1(){if(w1(),j>=xt)return{type:_s,start:j,end:j};const t=te.charCodeAt(j);return Ts(t)?hD():t===40||t===41||t===59?kh():t===39||t===34?pD():t===46?xr(te.charCodeAt(j+1))?v1():kh():xr(t)?v1():kh()}function zt(){const t=Ie;return j=t.end,Ie=A1(),j=t.end,t}function E1(){const t=j;Ie=A1(),j=t}function vD(t){const e=new Mn(Q4);return e.elements=t,e}function S1(t,e,n){const r=new Mn(t==="||"||t==="&&"?W4:V4);return r.operator=t,r.left=e,r.right=n,r}function AD(t,e){const n=new Mn(q4);return n.callee=t,n.arguments=e,n}function ED(t,e,n){const r=new Mn(Z4);return r.test=t,r.consequent=e,r.alternate=n,r}function Lh(t){const e=new Mn(b1);return e.name=t,e}function Ns(t){const e=new Mn(Y4);return e.value=t.value,e.raw=te.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function _1(t,e,n){const r=new Mn(X4);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function SD(t){const e=new Mn($4);return e.properties=t,e}function C1(t,e,n){const r=new Mn(K4);return r.key=e,r.value=n,r.kind=t,r}function _D(t,e){const n=new Mn(J4);return n.operator=t,n.argument=e,n.prefix=!0,n}function ve(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(a,o)=>(Pf(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=j,n.description=i,n}function jf(t){t.type===_s&&ve(t,iD),t.type===Gi&&ve(t,eD),t.type===Cs&&ve(t,tD),t.type===ji&&ve(t,nD),t.type===Zr&&ve(t,rD),ve(t,ct,t.value)}function vt(t){const e=zt();(e.type!==Ot||e.value!==t)&&jf(e)}function je(t){return Ie.type===Ot&&Ie.value===t}function Rh(t){return Ie.type===Zr&&Ie.value===t}function CD(){const t=[];for(j=Ie.start,vt("[");!je("]");)je(",")?(zt(),t.push(null)):(t.push(Hi()),je("]")||vt(","));return zt(),vD(t)}function D1(){j=Ie.start;const t=zt();return t.type===Cs||t.type===Gi?(t.octal&&ve(t,y1),Ns(t)):Lh(t.value)}function DD(){var t,e,n,r;if(j=Ie.start,t=Ie,t.type===ji)return n=D1(),vt(":"),r=Hi(),C1("init",n,r);if(t.type===_s||t.type===Ot)jf(t);else return e=D1(),vt(":"),r=Hi(),C1("init",e,r)}function ID(){var t=[],e,n,r,i={},a=String;for(j=Ie.start,vt("{");!je("}");)e=DD(),e.key.type===b1?n=e.key.name:n=a(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ve({},aD):i[r]=!0,t.push(e),je("}")||vt(",");return vt("}"),SD(t)}function MD(){vt("(");const t=Oh();return vt(")"),t}const TD={if:1};function ND(){var t,e,n;if(je("("))return MD();if(je("["))return CD();if(je("{"))return ID();if(t=Ie.type,j=Ie.start,t===ji||TD[Ie.value])n=Lh(zt().value);else if(t===Cs||t===Gi)Ie.octal&&ve(Ie,y1),n=Ns(zt());else{if(t===Zr)throw new Error(Ds);t===Of?(e=zt(),e.value=e.value==="true",n=Ns(e)):t===zf?(e=zt(),e.value=null,n=Ns(e)):je("/")||je("/=")?(n=Ns(wD()),E1()):jf(zt())}return n}function FD(){const t=[];if(vt("("),!je(")"))for(;j<xt&&(t.push(Hi()),!je(")"));)vt(",");return vt(")"),t}function BD(){j=Ie.start;const t=zt();return xD(t)||jf(t),Lh(t.value)}function kD(){return vt("."),BD()}function LD(){vt("[");const t=Oh();return vt("]"),t}function RD(){var t,e,n;for(t=ND();;)if(je("."))n=kD(),t=_1(".",t,n);else if(je("("))e=FD(),t=AD(t,e);else if(je("["))n=LD(),t=_1("[",t,n);else break;return t}function I1(){const t=RD();if(Ie.type===Ot&&(je("++")||je("--")))throw new Error(Ds);return t}function Gf(){var t,e;if(Ie.type!==Ot&&Ie.type!==Zr)e=I1();else{if(je("++")||je("--"))throw new Error(Ds);if(je("+")||je("-")||je("~")||je("!"))t=zt(),e=Gf(),e=_D(t.value,e);else{if(Rh("delete")||Rh("void")||Rh("typeof"))throw new Error(Ds);e=I1()}}return e}function M1(t){let e=0;if(t.type!==Ot&&t.type!==Zr)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function OD(){var t,e,n,r,i,a,o,s,f,u;if(t=Ie,f=Gf(),r=Ie,i=M1(r),i===0)return f;for(r.prec=i,zt(),e=[t,Ie],o=Gf(),a=[f,r,o];(i=M1(Ie))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,f=a.pop(),e.pop(),n=S1(s,f,o),a.push(n);r=zt(),r.prec=i,a.push(r),e.push(Ie),n=Gf(),a.push(n)}for(u=a.length-1,n=a[u],e.pop();u>1;)e.pop(),n=S1(a[u-1].value,a[u-2],n),u-=2;return n}function Hi(){var t,e,n;return t=OD(),je("?")&&(zt(),e=Hi(),vt(":"),n=Hi(),t=ED(t,e,n)),t}function Oh(){const t=Hi();if(je(","))throw new Error(Ds);return t}function zD(t){te=t,j=0,xt=te.length,Ie=null,E1();const e=Oh();if(Ie.type!==_s)throw new Error("Unexpect token after expression.");return e}var PD={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function UD(t){function e(o,s,f,u){let l=t(s[0]);return f&&(l=f+"("+l+")",f.lastIndexOf("new ",0)===0&&(l="("+l+")")),l+"."+o+(u<0?"":u===0?"()":"("+s.slice(1).map(t).join(",")+")")}function n(o,s,f){return u=>e(o,u,s,f)}const r="new Date",i="String",a="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&$e("Missing arguments to clamp function."),o.length>3&&$e("Too many arguments to clamp function.");const s=o.map(t);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:a,test:n("test",a),if:function(o){o.length<3&&$e("Missing arguments to if function."),o.length>3&&$e("Too many arguments to if function.");const s=o.map(t);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function jD(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function GD(t){t=t||{};const e=t.allowed?yf(t.allowed):{},n=t.forbidden?yf(t.forbidden):{},r=t.constants||PD,i=(t.functions||UD)(c),a=t.globalvar,o=t.fieldvar,s=kt(a)?a:g=>`${a}["${g}"]`;let f={},u={},l=0;function c(g){if(Ke(g))return g;const b=h[g.type];return b==null&&$e("Unsupported type: "+g.type),b(g)}const h={Literal:g=>g.raw,Identifier:g=>{const b=g.name;return l>0?b:Fi(n,b)?$e("Illegal identifier: "+b):Fi(r,b)?r[b]:Fi(e,b)?b:(f[b]=1,s(b))},MemberExpression:g=>{const b=!g.computed,y=c(g.object);b&&(l+=1);const w=c(g.property);return y===o&&(u[jD(w)]=1),b&&(l-=1),y+(b?"."+w:"["+w+"]")},CallExpression:g=>{g.callee.type!=="Identifier"&&$e("Illegal callee type: "+g.callee.type);const b=g.callee.name,y=g.arguments,w=Fi(i,b)&&i[b];return w||$e("Unrecognized function: "+b),kt(w)?w(y):w+"("+y.map(c).join(",")+")"},ArrayExpression:g=>"["+g.elements.map(c).join(",")+"]",BinaryExpression:g=>"("+c(g.left)+" "+g.operator+" "+c(g.right)+")",UnaryExpression:g=>"("+g.operator+c(g.argument)+")",ConditionalExpression:g=>"("+c(g.test)+"?"+c(g.consequent)+":"+c(g.alternate)+")",LogicalExpression:g=>"("+c(g.left)+g.operator+c(g.right)+")",ObjectExpression:g=>"{"+g.properties.map(c).join(",")+"}",Property:g=>{l+=1;const b=c(g.key);return l-=1,b+":"+c(g.value)}};function d(g){const b={code:c(g),globals:Object.keys(f),fields:Object.keys(u)};return f={},u={},b}return d.functions=i,d.constants=r,d}function zh(t,e={}){const n=GD({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=zD(t),i=n(r),a=Function("datum","global",`"use strict"; return (${i.code});`),o=s=>a(s,e);return o.fields=i.fields,o}catch(r){throw new Error(`Invalid expression: ${t}, ${r.message}`)}}function Wn(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Yr(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const Ph=Symbol("implicit");function Uh(){var t=new Bi,e=[],n=[],r=Ph;function i(a){let o=t.get(a);if(o===void 0){if(r!==Ph)return r;t.set(a,o=e.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new Bi;for(const o of a)t.has(o)||t.set(o,e.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return Uh(e,n).unknown(r)},Wn.apply(i,arguments),i}function Ga(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Fs(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Wr(){}var Qi=.7,Ha=1/Qi,Qa="\\s*([+-]?\\d+)\\s*",Bs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Xn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",HD=/^#([0-9a-f]{3,8})$/,QD=new RegExp(`^rgb\\(${Qa},${Qa},${Qa}\\)$`),VD=new RegExp(`^rgb\\(${Xn},${Xn},${Xn}\\)$`),qD=new RegExp(`^rgba\\(${Qa},${Qa},${Qa},${Bs}\\)$`),ZD=new RegExp(`^rgba\\(${Xn},${Xn},${Xn},${Bs}\\)$`),YD=new RegExp(`^hsl\\(${Bs},${Xn},${Xn}\\)$`),WD=new RegExp(`^hsla\\(${Bs},${Xn},${Xn},${Bs}\\)$`),T1={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Ga(Wr,Xr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:N1,formatHex:N1,formatHex8:XD,formatHsl:$D,formatRgb:F1,toString:F1});function N1(){return this.rgb().formatHex()}function XD(){return this.rgb().formatHex8()}function $D(){return O1(this).formatHsl()}function F1(){return this.rgb().formatRgb()}function Xr(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=HD.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?B1(e):n===3?new ht(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Hf(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Hf(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=QD.exec(t))?new ht(e[1],e[2],e[3],1):(e=VD.exec(t))?new ht(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=qD.exec(t))?Hf(e[1],e[2],e[3],e[4]):(e=ZD.exec(t))?Hf(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=YD.exec(t))?R1(e[1],e[2]/100,e[3]/100,1):(e=WD.exec(t))?R1(e[1],e[2]/100,e[3]/100,e[4]):T1.hasOwnProperty(t)?B1(T1[t]):t==="transparent"?new ht(NaN,NaN,NaN,0):null}function B1(t){return new ht(t>>16&255,t>>8&255,t&255,1)}function Hf(t,e,n,r){return r<=0&&(t=e=n=NaN),new ht(t,e,n,r)}function jh(t){return t instanceof Wr||(t=Xr(t)),t?(t=t.rgb(),new ht(t.r,t.g,t.b,t.opacity)):new ht}function Qf(t,e,n,r){return arguments.length===1?jh(t):new ht(t,e,n,r??1)}function ht(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Ga(ht,Qf,Fs(Wr,{brighter(t){return t=t==null?Ha:Math.pow(Ha,t),new ht(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Qi:Math.pow(Qi,t),new ht(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ht(Vi(this.r),Vi(this.g),Vi(this.b),Vf(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:k1,formatHex:k1,formatHex8:KD,formatRgb:L1,toString:L1}));function k1(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}`}function KD(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}${qi((isNaN(this.opacity)?1:this.opacity)*255)}`}function L1(){const t=Vf(this.opacity);return`${t===1?"rgb(":"rgba("}${Vi(this.r)}, ${Vi(this.g)}, ${Vi(this.b)}${t===1?")":`, ${t})`}`}function Vf(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Vi(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function qi(t){return t=Vi(t),(t<16?"0":"")+t.toString(16)}function R1(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Tn(t,e,n,r)}function O1(t){if(t instanceof Tn)return new Tn(t.h,t.s,t.l,t.opacity);if(t instanceof Wr||(t=Xr(t)),!t)return new Tn;if(t instanceof Tn)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),o=NaN,s=a-i,f=(a+i)/2;return s?(e===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-e)/s+2:o=(e-n)/s+4,s/=f<.5?a+i:2-a-i,o*=60):s=f>0&&f<1?0:o,new Tn(o,s,f,t.opacity)}function Gh(t,e,n,r){return arguments.length===1?O1(t):new Tn(t,e,n,r??1)}function Tn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Ga(Tn,Gh,Fs(Wr,{brighter(t){return t=t==null?Ha:Math.pow(Ha,t),new Tn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Qi:Math.pow(Qi,t),new Tn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new ht(Hh(t>=240?t-240:t+120,i,r),Hh(t,i,r),Hh(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Tn(z1(this.h),qf(this.s),qf(this.l),Vf(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Vf(this.opacity);return`${t===1?"hsl(":"hsla("}${z1(this.h)}, ${qf(this.s)*100}%, ${qf(this.l)*100}%${t===1?")":`, ${t})`}`}}));function z1(t){return t=(t||0)%360,t<0?t+360:t}function qf(t){return Math.max(0,Math.min(1,t||0))}function Hh(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const P1=Math.PI/180,U1=180/Math.PI,Zf=18,j1=.96422,G1=1,H1=.82521,Q1=4/29,Va=6/29,V1=3*Va*Va,JD=Va*Va*Va;function q1(t){if(t instanceof $n)return new $n(t.l,t.a,t.b,t.opacity);if(t instanceof vr)return Z1(t);t instanceof ht||(t=jh(t));var e=Yh(t.r),n=Yh(t.g),r=Yh(t.b),i=Vh((.2225045*e+.7168786*n+.0606169*r)/G1),a,o;return e===n&&n===r?a=o=i:(a=Vh((.4360747*e+.3850649*n+.1430804*r)/j1),o=Vh((.0139322*e+.0971045*n+.7141733*r)/H1)),new $n(116*i-16,500*(a-i),200*(i-o),t.opacity)}function Qh(t,e,n,r){return arguments.length===1?q1(t):new $n(t,e,n,r??1)}function $n(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Ga($n,Qh,Fs(Wr,{brighter(t){return new $n(this.l+Zf*(t??1),this.a,this.b,this.opacity)},darker(t){return new $n(this.l-Zf*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=j1*qh(e),t=G1*qh(t),n=H1*qh(n),new ht(Zh(3.1338561*e-1.6168667*t-.4906146*n),Zh(-.9787684*e+1.9161415*t+.033454*n),Zh(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Vh(t){return t>JD?Math.pow(t,1/3):t/V1+Q1}function qh(t){return t>Va?t*t*t:V1*(t-Q1)}function Zh(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Yh(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function eI(t){if(t instanceof vr)return new vr(t.h,t.c,t.l,t.opacity);if(t instanceof $n||(t=q1(t)),t.a===0&&t.b===0)return new vr(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*U1;return new vr(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Wh(t,e,n,r){return arguments.length===1?eI(t):new vr(t,e,n,r??1)}function vr(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function Z1(t){if(isNaN(t.h))return new $n(t.l,0,0,t.opacity);var e=t.h*P1;return new $n(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}Ga(vr,Wh,Fs(Wr,{brighter(t){return new vr(this.h,this.c,this.l+Zf*(t??1),this.opacity)},darker(t){return new vr(this.h,this.c,this.l-Zf*(t??1),this.opacity)},rgb(){return Z1(this).rgb()}}));var Y1=-.14861,Xh=1.78277,$h=-.29227,Yf=-.90649,ks=1.97294,W1=ks*Yf,X1=ks*Xh,$1=Xh*$h-Yf*Y1;function tI(t){if(t instanceof Zi)return new Zi(t.h,t.s,t.l,t.opacity);t instanceof ht||(t=jh(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=($1*r+W1*e-X1*n)/($1+W1-X1),a=r-i,o=(ks*(n-i)-$h*a)/Yf,s=Math.sqrt(o*o+a*a)/(ks*i*(1-i)),f=s?Math.atan2(o,a)*U1-120:NaN;return new Zi(f<0?f+360:f,s,i,t.opacity)}function Kh(t,e,n,r){return arguments.length===1?tI(t):new Zi(t,e,n,r??1)}function Zi(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Ga(Zi,Kh,Fs(Wr,{brighter(t){return t=t==null?Ha:Math.pow(Ha,t),new Zi(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Qi:Math.pow(Qi,t),new Zi(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*P1,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new ht(255*(e+n*(Y1*r+Xh*i)),255*(e+n*($h*r+Yf*i)),255*(e+n*(ks*r)),this.opacity)}}));function K1(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}function J1(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,s=r<e-1?t[r+2]:2*a-i;return K1((n-r/e)*e,o,i,a,s)}}function eb(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],a=t[r%e],o=t[(r+1)%e],s=t[(r+2)%e];return K1((n-r/e)*e,i,a,o,s)}}const Wf=t=>()=>t;function tb(t,e){return function(n){return t+n*e}}function nI(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Xf(t,e){var n=e-t;return n?tb(t,n>180||n<-180?n-360*Math.round(n/360):n):Wf(isNaN(t)?e:t)}function rI(t){return(t=+t)==1?dt:function(e,n){return n-e?nI(e,n,t):Wf(isNaN(e)?n:e)}}function dt(t,e){var n=e-t;return n?tb(t,n):Wf(isNaN(t)?e:t)}const Jh=function t(e){var n=rI(e);function r(i,a){var o=n((i=Qf(i)).r,(a=Qf(a)).r),s=n(i.g,a.g),f=n(i.b,a.b),u=dt(i.opacity,a.opacity);return function(l){return i.r=o(l),i.g=s(l),i.b=f(l),i.opacity=u(l),i+""}}return r.gamma=t,r}(1);function nb(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=Qf(e[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=t(r),i=t(i),a=t(a),s.opacity=1,function(f){return s.r=r(f),s.g=i(f),s.b=a(f),s+""}}}var iI=nb(J1),aI=nb(eb);function ed(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=t[i]*(1-a)+e[i]*a;return r}}function rb(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function oI(t,e){return(rb(e)?ed:ib)(t,e)}function ib(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=$r(t[o],e[o]);for(;o<n;++o)a[o]=e[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function ab(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Nn(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function ob(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=$r(t[i],e[i]):r[i]=e[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var td=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,nd=new RegExp(td.source,"g");function sI(t){return function(){return t}}function uI(t){return function(e){return t(e)+""}}function sb(t,e){var n=td.lastIndex=nd.lastIndex=0,r,i,a,o=-1,s=[],f=[];for(t=t+"",e=e+"";(r=td.exec(t))&&(i=nd.exec(e));)(a=i.index)>n&&(a=e.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,f.push({i:o,x:Nn(r,i)})),n=nd.lastIndex;return n<e.length&&(a=e.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?f[0]?uI(f[0].x):sI(e):(e=f.length,function(u){for(var l=0,c;l<e;++l)s[(c=f[l]).i]=c.x(u);return s.join("")})}function $r(t,e){var n=typeof e,r;return e==null||n==="boolean"?Wf(e):(n==="number"?Nn:n==="string"?(r=Xr(e))?(e=r,Jh):sb:e instanceof Xr?Jh:e instanceof Date?ab:rb(e)?ed:Array.isArray(e)?ib:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?ob:Nn)(t,e)}function fI(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function lI(t,e){var n=Xf(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Ls(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var ub=180/Math.PI,rd={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function fb(t,e,n,r,i,a){var o,s,f;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(f=t*n+e*r)&&(n-=t*f,r-=e*f),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,f/=s),t*r<e*n&&(t=-t,e=-e,f=-f,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*ub,skewX:Math.atan(f)*ub,scaleX:o,scaleY:s}}var $f;function cI(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?rd:fb(e.a,e.b,e.c,e.d,e.e,e.f)}function hI(t){return t==null||($f||($f=document.createElementNS("http://www.w3.org/2000/svg","g")),$f.setAttribute("transform",t),!(t=$f.transform.baseVal.consolidate()))?rd:(t=t.matrix,fb(t.a,t.b,t.c,t.d,t.e,t.f))}function lb(t,e,n,r){function i(u){return u.length?u.pop()+" ":""}function a(u,l,c,h,d,g){if(u!==c||l!==h){var b=d.push("translate(",null,e,null,n);g.push({i:b-4,x:Nn(u,c)},{i:b-2,x:Nn(l,h)})}else(c||h)&&d.push("translate("+c+e+h+n)}function o(u,l,c,h){u!==l?(u-l>180?l+=360:l-u>180&&(u+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:Nn(u,l)})):l&&c.push(i(c)+"rotate("+l+r)}function s(u,l,c,h){u!==l?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:Nn(u,l)}):l&&c.push(i(c)+"skewX("+l+r)}function f(u,l,c,h,d,g){if(u!==c||l!==h){var b=d.push(i(d)+"scale(",null,",",null,")");g.push({i:b-4,x:Nn(u,c)},{i:b-2,x:Nn(l,h)})}else(c!==1||h!==1)&&d.push(i(d)+"scale("+c+","+h+")")}return function(u,l){var c=[],h=[];return u=t(u),l=t(l),a(u.translateX,u.translateY,l.translateX,l.translateY,c,h),o(u.rotate,l.rotate,c,h),s(u.skewX,l.skewX,c,h),f(u.scaleX,u.scaleY,l.scaleX,l.scaleY,c,h),u=l=null,function(d){for(var g=-1,b=h.length,y;++g<b;)c[(y=h[g]).i]=y.x(d);return c.join("")}}}var dI=lb(cI,"px, ","px)","deg)"),gI=lb(hI,", ",")",")"),pI=1e-12;function cb(t){return((t=Math.exp(t))+1/t)/2}function mI(t){return((t=Math.exp(t))-1/t)/2}function bI(t){return((t=Math.exp(2*t))-1)/(t+1)}const yI=function t(e,n,r){function i(a,o){var s=a[0],f=a[1],u=a[2],l=o[0],c=o[1],h=o[2],d=l-s,g=c-f,b=d*d+g*g,y,w;if(b<pI)w=Math.log(h/u)/e,y=function(M){return[s+M*d,f+M*g,u*Math.exp(e*M*w)]};else{var E=Math.sqrt(b),_=(h*h-u*u+r*b)/(2*u*n*E),D=(h*h-u*u-r*b)/(2*h*n*E),T=Math.log(Math.sqrt(_*_+1)-_),N=Math.log(Math.sqrt(D*D+1)-D);w=(N-T)/e,y=function(M){var R=M*w,C=cb(T),k=u/(n*E)*(C*bI(e*R+T)-mI(T));return[s+k*d,f+k*g,u*C/cb(e*R+T)]}}return y.duration=w*1e3*e/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,f=s*s;return t(o,s,f)},i}(Math.SQRT2,2,4);function hb(t){return function(e,n){var r=t((e=Gh(e)).h,(n=Gh(n)).h),i=dt(e.s,n.s),a=dt(e.l,n.l),o=dt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=a(s),e.opacity=o(s),e+""}}}const wI=hb(Xf);var xI=hb(dt);function vI(t,e){var n=dt((t=Qh(t)).l,(e=Qh(e)).l),r=dt(t.a,e.a),i=dt(t.b,e.b),a=dt(t.opacity,e.opacity);return function(o){return t.l=n(o),t.a=r(o),t.b=i(o),t.opacity=a(o),t+""}}function db(t){return function(e,n){var r=t((e=Wh(e)).h,(n=Wh(n)).h),i=dt(e.c,n.c),a=dt(e.l,n.l),o=dt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=a(s),e.opacity=o(s),e+""}}}const AI=db(Xf);var EI=db(dt);function gb(t){return function e(n){n=+n;function r(i,a){var o=t((i=Kh(i)).h,(a=Kh(a)).h),s=dt(i.s,a.s),f=dt(i.l,a.l),u=dt(i.opacity,a.opacity);return function(l){return i.h=o(l),i.s=s(l),i.l=f(Math.pow(l,n)),i.opacity=u(l),i+""}}return r.gamma=e,r}(1)}const SI=gb(Xf);var _I=gb(dt);function id(t,e){e===void 0&&(e=t,t=$r);for(var n=0,r=e.length-1,i=e[0],a=new Array(r<0?0:r);n<r;)a[n]=t(i,i=e[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function CI(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const DI=Object.freeze(Object.defineProperty({__proto__:null,interpolate:$r,interpolateArray:oI,interpolateBasis:J1,interpolateBasisClosed:eb,interpolateCubehelix:SI,interpolateCubehelixLong:_I,interpolateDate:ab,interpolateDiscrete:fI,interpolateHcl:AI,interpolateHclLong:EI,interpolateHsl:wI,interpolateHslLong:xI,interpolateHue:lI,interpolateLab:vI,interpolateNumber:Nn,interpolateNumberArray:ed,interpolateObject:ob,interpolateRgb:Jh,interpolateRgbBasis:iI,interpolateRgbBasisClosed:aI,interpolateRound:Ls,interpolateString:sb,interpolateTransformCss:dI,interpolateTransformSvg:gI,interpolateZoom:yI,piecewise:id,quantize:CI},Symbol.toStringTag,{value:"Module"}));function II(t){return function(){return t}}function ad(t){return+t}var pb=[0,1];function Pt(t){return t}function od(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:II(isNaN(e)?NaN:.5)}function MI(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function TI(t,e,n){var r=t[0],i=t[1],a=e[0],o=e[1];return i<r?(r=od(i,r),a=n(o,a)):(r=od(r,i),a=n(a,o)),function(s){return a(r(s))}}function NI(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),a=new Array(r),o=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<r;)i[o]=od(t[o],t[o+1]),a[o]=n(e[o],e[o+1]);return function(s){var f=Ba(t,s,1,r)-1;return a[f](i[f](s))}}function Rs(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Kf(){var t=pb,e=pb,n=$r,r,i,a,o=Pt,s,f,u;function l(){var h=Math.min(t.length,e.length);return o!==Pt&&(o=MI(t[0],t[h-1])),s=h>2?NI:TI,f=u=null,c}function c(h){return h==null||isNaN(h=+h)?a:(f||(f=s(t.map(r),e,n)))(r(o(h)))}return c.invert=function(h){return o(i((u||(u=s(e,t.map(r),Nn)))(h)))},c.domain=function(h){return arguments.length?(t=Array.from(h,ad),l()):t.slice()},c.range=function(h){return arguments.length?(e=Array.from(h),l()):e.slice()},c.rangeRound=function(h){return e=Array.from(h),n=Ls,l()},c.clamp=function(h){return arguments.length?(o=h?!0:Pt,l()):o!==Pt},c.interpolate=function(h){return arguments.length?(n=h,l()):n},c.unknown=function(h){return arguments.length?(a=h,c):a},function(h,d){return r=h,i=d,l()}}function mb(){return Kf()(Pt,Pt)}function bb(t,e,n,r){var i=ki(t,e,n),a;switch(r=Gr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(a=vm(i,o))&&(r.precision=a),sh(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=Am(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=xm(i))&&(r.precision=a-(r.type==="%")*2);break}}return pt(r)}function Yi(t){var e=t.domain;return t.ticks=function(n){var r=e();return vf(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return bb(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,a=r.length-1,o=r[i],s=r[a],f,u,l=10;for(s<o&&(u=o,o=s,s=u,u=i,i=a,a=u);l-- >0;){if(u=hm(o,s,n),u===f)return r[i]=o,r[a]=s,e(r);if(u>0)o=Math.floor(o/u)*u,s=Math.ceil(s/u)*u;else if(u<0)o=Math.ceil(o*u)/u,s=Math.floor(s*u)/u;else break;f=u}return t},t}function yb(){var t=mb();return t.copy=function(){return Rs(t,yb())},Wn.apply(t,arguments),Yi(t)}function wb(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,ad),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return wb(t).unknown(e)},t=arguments.length?Array.from(t,ad):[0,1],Yi(n)}function xb(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],a=t[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),t[n]=e.floor(i),t[r]=e.ceil(a),t}function vb(t){return Math.log(t)}function Ab(t){return Math.exp(t)}function FI(t){return-Math.log(-t)}function BI(t){return-Math.exp(-t)}function kI(t){return isFinite(t)?+("1e"+t):t<0?0:t}function LI(t){return t===10?kI:t===Math.E?Math.exp:e=>Math.pow(t,e)}function RI(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function Eb(t){return(e,n)=>-t(-e,n)}function sd(t){const e=t(vb,Ab),n=e.domain;let r=10,i,a;function o(){return i=RI(r),a=LI(r),n()[0]<0?(i=Eb(i),a=Eb(a),t(FI,BI)):t(vb,Ab),e}return e.base=function(s){return arguments.length?(r=+s,o()):r},e.domain=function(s){return arguments.length?(n(s),o()):n()},e.ticks=s=>{const f=n();let u=f[0],l=f[f.length-1];const c=l<u;c&&([u,l]=[l,u]);let h=i(u),d=i(l),g,b;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),u>0){for(;h<=d;++h)for(g=1;g<r;++g)if(b=h<0?g/a(-h):g*a(h),!(b<u)){if(b>l)break;w.push(b)}}else for(;h<=d;++h)for(g=r-1;g>=1;--g)if(b=h>0?g/a(-h):g*a(h),!(b<u)){if(b>l)break;w.push(b)}w.length*2<y&&(w=vf(u,l,y))}else w=vf(h,d,Math.min(d-h,y)).map(a);return c?w.reverse():w},e.tickFormat=(s,f)=>{if(s==null&&(s=10),f==null&&(f=r===10?"s":","),typeof f!="function"&&(!(r%1)&&(f=Gr(f)).precision==null&&(f.trim=!0),f=pt(f)),s===1/0)return f;const u=Math.max(1,r*s/e.ticks().length);return l=>{let c=l/a(Math.round(i(l)));return c*r<r-.5&&(c*=r),c<=u?f(l):""}},e.nice=()=>n(xb(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),e}function ud(){const t=sd(Kf()).domain([1,10]);return t.copy=()=>Rs(t,ud()).base(t.base()),Wn.apply(t,arguments),t}function Sb(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function _b(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function fd(t){var e=1,n=t(Sb(e),_b(e));return n.constant=function(r){return arguments.length?t(Sb(e=+r),_b(e)):e},Yi(n)}function Cb(){var t=fd(Kf());return t.copy=function(){return Rs(t,Cb()).constant(t.constant())},Wn.apply(t,arguments)}function Db(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function OI(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function zI(t){return t<0?-t*t:t*t}function ld(t){var e=t(Pt,Pt),n=1;function r(){return n===1?t(Pt,Pt):n===.5?t(OI,zI):t(Db(n),Db(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},Yi(e)}function cd(){var t=ld(Kf());return t.copy=function(){return Rs(t,cd()).exponent(t.exponent())},Wn.apply(t,arguments),t}function PI(){return cd.apply(null,arguments).exponent(.5)}function Ib(){var t=[],e=[],n=[],r;function i(){var o=0,s=Math.max(1,e.length);for(n=new Array(s-1);++o<s;)n[o-1]=dm(t,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:e[Ba(n,o)]}return a.invertExtent=function(o){var s=e.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},a.domain=function(o){if(!arguments.length)return t.slice();t=[];for(let s of o)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(rs),i()},a.range=function(o){return arguments.length?(e=Array.from(o),i()):e.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return Ib().domain(t).range(e).unknown(r)},Wn.apply(a,arguments)}function Mb(){var t=0,e=1,n=1,r=[.5],i=[0,1],a;function o(f){return f!=null&&f<=f?i[Ba(r,f,0,n)]:a}function s(){var f=-1;for(r=new Array(n);++f<n;)r[f]=((f+1)*e-(f-n)*t)/(n+1);return o}return o.domain=function(f){return arguments.length?([t,e]=f,t=+t,e=+e,s()):[t,e]},o.range=function(f){return arguments.length?(n=(i=Array.from(f)).length-1,s()):i.slice()},o.invertExtent=function(f){var u=i.indexOf(f);return u<0?[NaN,NaN]:u<1?[t,r[0]]:u>=n?[r[n-1],e]:[r[u-1],r[u]]},o.unknown=function(f){return arguments.length&&(a=f),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Mb().domain([t,e]).range(i).unknown(a)},Wn.apply(Yi(o),arguments)}function Tb(){var t=[.5],e=[0,1],n,r=1;function i(a){return a!=null&&a<=a?e[Ba(t,a,0,r)]:n}return i.domain=function(a){return arguments.length?(t=Array.from(a),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(a){return arguments.length?(e=Array.from(a),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(a){var o=e.indexOf(a);return[t[o-1],t[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Tb().domain(t).range(e).unknown(n)},Wn.apply(i,arguments)}function UI(t){return new Date(t)}function jI(t){return t instanceof Date?+t:+new Date(+t)}function hd(t,e,n,r,i,a,o,s,f,u){var l=mb(),c=l.invert,h=l.domain,d=u(".%L"),g=u(":%S"),b=u("%I:%M"),y=u("%I %p"),w=u("%a %d"),E=u("%b %d"),_=u("%B"),D=u("%Y");function T(N){return(f(N)<N?d:s(N)<N?g:o(N)<N?b:a(N)<N?y:r(N)<N?i(N)<N?w:E:n(N)<N?_:D)(N)}return l.invert=function(N){return new Date(c(N))},l.domain=function(N){return arguments.length?h(Array.from(N,jI)):h().map(UI)},l.ticks=function(N){var M=h();return t(M[0],M[M.length-1],N??10)},l.tickFormat=function(N,M){return M==null?T:u(M)},l.nice=function(N){var M=h();return(!N||typeof N.range!="function")&&(N=e(M[0],M[M.length-1],N??10)),N?h(xb(M,N)):l},l.copy=function(){return Rs(l,hd(t,e,n,r,i,a,o,s,f,u))},l}function GI(){return Wn.apply(hd(O_,z_,Qr,Df,as,Ri,gh,dh,Hr,Ah).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function HI(){return Wn.apply(hd(L_,R_,Vr,Mf,os,zi,bh,mh,Hr,Eh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Jf(){var t=0,e=1,n,r,i,a,o=Pt,s=!1,f;function u(c){return c==null||isNaN(c=+c)?f:o(i===0?.5:(c=(a(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}u.domain=function(c){return arguments.length?([t,e]=c,n=a(t=+t),r=a(e=+e),i=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(c){return arguments.length?(s=!!c,u):s},u.interpolator=function(c){return arguments.length?(o=c,u):o};function l(c){return function(h){var d,g;return arguments.length?([d,g]=h,o=c(d,g),u):[o(0),o(1)]}}return u.range=l($r),u.rangeRound=l(Ls),u.unknown=function(c){return arguments.length?(f=c,u):f},function(c){return a=c,n=c(t),r=c(e),i=n===r?0:1/(r-n),u}}function Kr(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function dd(){var t=Yi(Jf()(Pt));return t.copy=function(){return Kr(t,dd())},Yr.apply(t,arguments)}function Nb(){var t=sd(Jf()).domain([1,10]);return t.copy=function(){return Kr(t,Nb()).base(t.base())},Yr.apply(t,arguments)}function Fb(){var t=fd(Jf());return t.copy=function(){return Kr(t,Fb()).constant(t.constant())},Yr.apply(t,arguments)}function gd(){var t=ld(Jf());return t.copy=function(){return Kr(t,gd()).exponent(t.exponent())},Yr.apply(t,arguments)}function QI(){return gd.apply(null,arguments).exponent(.5)}function el(){var t=0,e=.5,n=1,r=1,i,a,o,s,f,u=Pt,l,c=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+l(b))-a)*(r*b<r*a?s:f),u(c?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([t,e,n]=b,i=l(t=+t),a=l(e=+e),o=l(n=+n),s=i===a?0:.5/(a-i),f=a===o?0:.5/(o-a),r=a<i?-1:1,d):[t,e,n]},d.clamp=function(b){return arguments.length?(c=!!b,d):c},d.interpolator=function(b){return arguments.length?(u=b,d):u};function g(b){return function(y){var w,E,_;return arguments.length?([w,E,_]=y,u=id(b,[w,E,_]),d):[u(0),u(.5),u(1)]}}return d.range=g($r),d.rangeRound=g(Ls),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return l=b,i=b(t),a=b(e),o=b(n),s=i===a?0:.5/(a-i),f=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function Bb(){var t=Yi(el()(Pt));return t.copy=function(){return Kr(t,Bb())},Yr.apply(t,arguments)}function kb(){var t=sd(el()).domain([.1,1,10]);return t.copy=function(){return Kr(t,kb()).base(t.base())},Yr.apply(t,arguments)}function Lb(){var t=fd(el());return t.copy=function(){return Kr(t,Lb()).constant(t.constant())},Yr.apply(t,arguments)}function pd(){var t=ld(el());return t.copy=function(){return Kr(t,pd()).exponent(t.exponent())},Yr.apply(t,arguments)}function VI(){return pd.apply(null,arguments).exponent(.5)}function md(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const qI="identity",qa="linear",Jr="log",Os="pow",zs="sqrt",tl="symlog",Rb="time",Ob="utc",Kn="sequential",Za="diverging",bd="quantile",zb="quantize",Pb="threshold",yd="ordinal",wd="point",Ub="band",xd="bin-ordinal",ot="continuous",Ps="discrete",Us="discretizing",sn="interpolating",jb="temporal";function ZI(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function YI(t){return function(e){const n=t.range();let r=e[0],i=e[1],a=-1,o,s,f,u;for(i<r&&(s=r,r=i,i=s),f=0,u=n.length;f<u;++f)n[f]>=r&&n[f]<=i&&(a<0&&(a=f),o=f);if(!(a<0))return r=t.invertExtent(n[a]),i=t.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function vd(){const t=Uh().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,a,o=!1,s=0,f=0,u=.5;delete t.unknown;function l(){const c=e().length,h=r[1]<r[0],d=r[1-h],g=md(c,s,f);let b=r[h-0];i=(d-b)/(g||1),o&&(i=Math.floor(i)),b+=(d-b-i*(c-s))*u,a=i*(1-s),o&&(b=Math.round(b),a=Math.round(a));const y=is(c).map(w=>b+i*w);return n(h?y.reverse():y)}return t.domain=function(c){return arguments.length?(e(c),l()):e()},t.range=function(c){return arguments.length?(r=[+c[0],+c[1]],l()):r.slice()},t.rangeRound=function(c){return r=[+c[0],+c[1]],o=!0,l()},t.bandwidth=function(){return a},t.step=function(){return i},t.round=function(c){return arguments.length?(o=!!c,l()):o},t.padding=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),s=f,l()):s},t.paddingInner=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),l()):s},t.paddingOuter=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),l()):f},t.align=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),l()):u},t.invertRange=function(c){if(c[0]==null||c[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),g=d.length-1;let b=+c[0],y=+c[1],w,E,_;if(!(b!==b||y!==y)&&(y<b&&(_=b,b=y,y=_),!(y<d[0]||b>r[1-h])))return w=Math.max(0,th(d,b)-1),E=b===y?w:th(d,y)-1,b-d[w]>a+1e-10&&++w,h&&(_=w,w=g-E,E=g-_),w>E?void 0:e().slice(w,E+1)},t.invert=function(c){const h=t.invertRange([c,c]);return h&&h[0]},t.copy=function(){return vd().domain(e()).range(r).round(o).paddingInner(s).paddingOuter(f).align(u)},l()}function Gb(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return Gb(e())},t}function WI(){return Gb(vd().paddingInner(1))}var XI=Array.prototype.map;function $I(t){return XI.call(t,ts)}const KI=Array.prototype.slice;function Hb(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(Ba(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=$I(r),n):t.slice()},n.range=function(r){return arguments.length?(e=KI.call(r),n):e.slice()},n.tickFormat=function(r,i){return bb(t[0],In(t),r??10,i)},n.copy=function(){return Hb().domain(n.domain()).range(n.range())},n}const nl={};function JI(t,e,n){const r=function(){const a=e();return a.invertRange||(a.invertRange=a.invert?ZI(a):a.invertExtent?YI(a):void 0),a.type=t,a};return r.metadata=yf(Xc(n)),r}function Ce(t,e,n){return arguments.length>1?(nl[t]=JI(t,e,n),this):eM(t)?nl[t]:void 0}Ce(qI,wb),Ce(qa,yb,ot),Ce(Jr,ud,[ot,Jr]),Ce(Os,cd,ot),Ce(zs,PI,ot),Ce(tl,Cb,ot),Ce(Rb,GI,[ot,jb]),Ce(Ob,HI,[ot,jb]),Ce(Kn,dd,[ot,sn]),Ce("".concat(Kn,"-").concat(qa),dd,[ot,sn]),Ce("".concat(Kn,"-").concat(Jr),Nb,[ot,sn,Jr]),Ce("".concat(Kn,"-").concat(Os),gd,[ot,sn]),Ce("".concat(Kn,"-").concat(zs),QI,[ot,sn]),Ce("".concat(Kn,"-").concat(tl),Fb,[ot,sn]),Ce("".concat(Za,"-").concat(qa),Bb,[ot,sn]),Ce("".concat(Za,"-").concat(Jr),kb,[ot,sn,Jr]),Ce("".concat(Za,"-").concat(Os),pd,[ot,sn]),Ce("".concat(Za,"-").concat(zs),VI,[ot,sn]),Ce("".concat(Za,"-").concat(tl),Lb,[ot,sn]),Ce(bd,Ib,[Us,bd]),Ce(zb,Mb,Us),Ce(Pb,Tb,Us),Ce(xd,Hb,[Ps,Us]),Ce(yd,Uh,Ps),Ce(Ub,vd,Ps),Ce(wd,WI,Ps);function eM(t){return Fi(nl,t)}function js(t,e){const n=nl[t];return n&&n.metadata[e]}function At(t){return js(t,ot)}function ei(t){return js(t,Ps)}function Ya(t){return js(t,Us)}function Qb(t){return js(t,Jr)}function rl(t){return js(t,sn)}function tM(t,e){const n=e[0],r=In(e)-n;return function(i){return t(n+i*r)}}function il(t,e,n){return id(Vb(e||"rgb",n),t)}function nM(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function Vb(t,e){const n=DI[rM(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function rM(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const iM={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},aM={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function qb(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function Zb(t,e){for(const n in t)Ad(n,e(t[n]))}const Yb={};Zb(aM,qb),Zb(iM,t=>il(qb(t)));function Ad(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(Yb[t]=e,this):Yb[t]}function oM(){let t=0;const e=new Map,n=r=>{let i=e.get(r);return i===void 0&&(i=t++,e.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of e.entries())if(i[1]==r)return i[0]},n.domain=()=>[...e.keys()],n}function al(){const t=e=>e;return t.invert=e=>e,t.copy=al,t.invertRange=()=>{},t.type="null",t}function sM(t,e){const n={};e||(e=t.encoding);for(const[r,i]of Object.entries(e)){if(!i)continue;const a=((un(i)&&i.resolutionChannel)??($i(r)&&r))||void 0,o=t.unitView.getScaleResolution(a);n[r]=uM(e[r],o==null?void 0:o.getScale(),t.unitView.getAccessor(r),r)}return n}function uM(t,e,n,r){let i;if(Fn(t)){const a=t.value;i=o=>a,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=a=>{},i.accessor=n,i.constant=n.constant;else{if(!e)if(!$i(r))e=al();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(t)}`);if(i=a=>e(n(a)),ei(e.type)){const a=oM();a.addAll(e.domain()),i.indexer=a}i.constant=n.constant,i.accessor=n,i.scale=e}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(t)}`);return i.invert=e?a=>e.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},i.channelDef=t,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function Fn(t){return t&&"value"in t}function Gs(t){return t&&"field"in t}function Hs(t){return t&&"datum"in t}function un(t){return Gs(t)||Hs(t)||Sd(t)||Wb(t)}function Ed(t,e){const n=t.mark.encoding[e];if(un(n))return n;throw new Error("Not a channel def with scale!")}function Wb(t){return t&&"chrom"in t}function Sd(t){return t&&"expr"in t}const Wa=["x","y"],fM=["x2","y2"],lM=[...Wa,...fM];function Xb(t){return Wa.includes(t)}function Qs(t){return lM.includes(t)}const _d={x:"x2",y:"y2"},$b=Object.fromEntries(Object.entries(_d).map(t=>[t[1],t[0]]));function Vs(t){return t in $b}function cM(t){const e=_d[t];if(e)return e;throw new Error(`${t} has no secondary channel!`)}function Wi(t){return $b[t]??t}function Xi(t){return["color","fill","stroke"].includes(Wi(t))}function ol(t){return["shape","squeeze"].includes(t)}function $i(t){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(t)}function Kb(t){switch(t){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function Jb(t){if(!ol(t))throw new Error("Not a discrete channel: "+t);const e=new Map(Kb(t).map((n,r)=>[n,r]));return n=>{const r=e.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${t}" channel: ${n}`)}}function Be(t,e=t){if(/^[A-Za-z0-9_]+$/.test(t)){const n=new Function("datum",`return datum[${JSON.stringify(t)}]`);return de(n,[t],e)}else return cf(t)}class hM{constructor(){this.accessorCreators=[],this.register(e=>{if(Gs(e))try{const n=Be(e.field);return n.constant=!1,n.fields=Ni(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(e=>Sd(e)?dM(e.expr):void 0),this.register(e=>{if(Hs(e)){const r=QS(e.datum);return r.constant=!0,r.fields=[],r}})}register(e){this.accessorCreators.push(e)}createAccessor(e){for(const n of this.accessorCreators){const r=n(e);if(r)return r}}}function dM(t){const e=zh(t);return e.constant=e.fields.length==0,e}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
|
|
14
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),h1=/'/g,d1=/"/g,g1=/^(?:script|style|textarea|title)$/i,w4=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),qn=w4(1),vs=Symbol.for("lit-noChange"),at=Symbol.for("lit-nothing"),p1=new WeakMap,Pa=za.createTreeWalker(za,129,null,!1),x4=(t,e)=>{const n=t.length-1,r=[];let i,a=e===2?"<svg>":"",o=xs;for(let f=0;f<n;f++){const u=t[f];let l,c,h=-1,d=0;for(;d<u.length&&(o.lastIndex=d,c=o.exec(u),c!==null);)d=o.lastIndex,o===xs?c[1]==="!--"?o=l1:c[1]!==void 0?o=c1:c[2]!==void 0?(g1.test(c[2])&&(i=RegExp("</"+c[2],"g")),o=Ui):c[3]!==void 0&&(o=Ui):o===Ui?c[0]===">"?(o=i??xs,h=-1):c[1]===void 0?h=-2:(h=o.lastIndex-c[2].length,l=c[1],o=c[3]===void 0?Ui:c[3]==='"'?d1:h1):o===d1||o===h1?o=Ui:o===l1||o===c1?o=xs:(o=Ui,i=void 0);const g=o===Ui&&t[f+1].startsWith("/>")?" ":"";a+=o===xs?u+b4:h>=0?(r.push(l),u.slice(0,h)+"$lit$"+u.slice(h)+Vr+g):u+Vr+(h===-2?(r.push(void 0),f):g)}const s=a+(t[n]||"<?>")+(e===2?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[s1!==void 0?s1.createHTML(s):s,r]};let Mh=class AS{constructor({strings:e,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=e.length-1,f=this.parts,[u,l]=x4(e,n);if(this.el=AS.createElement(u,r),Pa.currentNode=this.el.content,n===2){const c=this.el.content,h=c.firstChild;h.remove(),c.append(...h.childNodes)}for(;(i=Pa.nextNode())!==null&&f.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const c=[];for(const h of i.getAttributeNames())if(h.endsWith("$lit$")||h.startsWith(Vr)){const d=l[o++];if(c.push(h),d!==void 0){const g=i.getAttribute(d.toLowerCase()+"$lit$").split(Vr),b=/([.?@])?(.*)/.exec(d);f.push({type:1,index:a,name:b[2],strings:g,ctor:b[1]==="."?A4:b[1]==="?"?S4:b[1]==="@"?_4:Lf})}else f.push({type:6,index:a})}for(const h of c)i.removeAttribute(h)}if(g1.test(i.tagName)){const c=i.textContent.split(Vr),h=c.length-1;if(h>0){i.textContent=Oa?Oa.emptyScript:"";for(let d=0;d<h;d++)i.append(c[d],ys()),Pa.nextNode(),f.push({type:2,index:++a});i.append(c[h],ys())}}}else if(i.nodeType===8)if(i.data===u1)f.push({type:2,index:a});else{let c=-1;for(;(c=i.data.indexOf(Vr,c+1))!==-1;)f.push({type:7,index:a}),c+=Vr.length-1}a++}}static createElement(e,n){const r=za.createElement("template");return r.innerHTML=e,r}};function Ua(t,e,n=t,r){var i,a,o,s;if(e===vs)return e;let f=r!==void 0?(i=n._$Co)===null||i===void 0?void 0:i[r]:n._$Cl;const u=ws(e)?void 0:e._$litDirective$;return(f==null?void 0:f.constructor)!==u&&((a=f==null?void 0:f._$AO)===null||a===void 0||a.call(f,!1),u===void 0?f=void 0:(f=new u(t),f._$AT(t,n,r)),r!==void 0?((o=(s=n)._$Co)!==null&&o!==void 0?o:s._$Co=[])[r]=f:n._$Cl=f),f!==void 0&&(e=Ua(t,f._$AS(t,e.values),f,r)),e}class v4{constructor(e,n){this.u=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(e){var n;const{el:{content:r},parts:i}=this._$AD,a=((n=e==null?void 0:e.creationScope)!==null&&n!==void 0?n:za).importNode(r,!0);Pa.currentNode=a;let o=Pa.nextNode(),s=0,f=0,u=i[0];for(;u!==void 0;){if(s===u.index){let l;u.type===2?l=new As(o,o.nextSibling,this,e):u.type===1?l=new u.ctor(o,u.name,u.strings,this,e):u.type===6&&(l=new C4(o,this,e)),this.u.push(l),u=i[++f]}s!==(u==null?void 0:u.index)&&(o=Pa.nextNode(),s++)}return a}p(e){let n=0;for(const r of this.u)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}}class As{constructor(e,n,r,i){var a;this.type=2,this._$AH=at,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cm=(a=i==null?void 0:i.isConnected)===null||a===void 0||a}get _$AU(){var e,n;return(n=(e=this._$AM)===null||e===void 0?void 0:e._$AU)!==null&&n!==void 0?n:this._$Cm}get parentNode(){let e=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&e.nodeType===11&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=Ua(this,e,n),ws(e)?e===at||e==null||e===""?(this._$AH!==at&&this._$AR(),this._$AH=at):e!==this._$AH&&e!==vs&&this.g(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):y4(e)?this.k(e):this.g(e)}O(e,n=this._$AB){return this._$AA.parentNode.insertBefore(e,n)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}g(e){this._$AH!==at&&ws(this._$AH)?this._$AA.nextSibling.data=e:this.T(za.createTextNode(e)),this._$AH=e}$(e){var n;const{values:r,_$litType$:i}=e,a=typeof i=="number"?this._$AC(e):(i.el===void 0&&(i.el=Mh.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===a)this._$AH.p(r);else{const o=new v4(a,this),s=o.v(this.options);o.p(r),this.T(s),this._$AH=o}}_$AC(e){let n=p1.get(e.strings);return n===void 0&&p1.set(e.strings,n=new Mh(e)),n}k(e){f1(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const a of e)i===n.length?n.push(r=new As(this.O(ys()),this.O(ys()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);e&&e!==this._$AB;){const i=e.nextSibling;e.remove(),e=i}}setConnected(e){var n;this._$AM===void 0&&(this._$Cm=e,(n=this._$AP)===null||n===void 0||n.call(this,e))}}class Lf{constructor(e,n,r,i,a){this.type=1,this._$AH=at,this._$AN=void 0,this.element=e,this.name=n,this._$AM=i,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=at}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)e=Ua(this,e,n,0),o=!ws(e)||e!==this._$AH&&e!==vs,o&&(this._$AH=e);else{const s=e;let f,u;for(e=a[0],f=0;f<a.length-1;f++)u=Ua(this,s[r+f],n,f),u===vs&&(u=this._$AH[f]),o||(o=!ws(u)||u!==this._$AH[f]),u===at?e=at:e!==at&&(e+=(u??"")+a[f+1]),this._$AH[f]=u}o&&!i&&this.j(e)}j(e){e===at?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class A4 extends Lf{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===at?void 0:e}}const E4=Oa?Oa.emptyScript:"";class S4 extends Lf{constructor(){super(...arguments),this.type=4}j(e){e&&e!==at?this.element.setAttribute(this.name,E4):this.element.removeAttribute(this.name)}}class _4 extends Lf{constructor(e,n,r,i,a){super(e,n,r,i,a),this.type=5}_$AI(e,n=this){var r;if((e=(r=Ua(this,e,n,0))!==null&&r!==void 0?r:at)===vs)return;const i=this._$AH,a=e===at&&i!==at||e.capture!==i.capture||e.once!==i.once||e.passive!==i.passive,o=e!==at&&(i===at||a);a&&this.element.removeEventListener(this.name,this,i),o&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var n,r;typeof this._$AH=="function"?this._$AH.call((r=(n=this.options)===null||n===void 0?void 0:n.host)!==null&&r!==void 0?r:this.element,e):this._$AH.handleEvent(e)}}class C4{constructor(e,n,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){Ua(this,e)}}const m1=kf.litHtmlPolyfillSupport;m1==null||m1(Mh,As),((Ih=kf.litHtmlVersions)!==null&&Ih!==void 0?Ih:kf.litHtmlVersions=[]).push("2.4.0");const b1=(t,e,n)=>{var r,i;const a=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:e;let o=a._$litPart$;if(o===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;a._$litPart$=o=new As(e.insertBefore(ys(),s),s,void 0,n??{})}return o._$AI(t),o},z7="";function D4(t,e){var n=t.getBoundingClientRect();return[e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop]}function Rf(t,e){return t.length==e.length&&t.every((n,r)=>t[r]===e[r])}function $t(t){return Array.isArray(t)?t:typeof t<"u"?[t]:[]}function Es(t){return t[t.length-1]}class I4{constructor(e){this.container=e,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(e){e!=this._visible&&(this.element.style.display=e?null:"none",this._visible=e)}get visible(){return this._visible}get enabled(){return Es(this.enabledStack)??!0}pushEnabledState(e){this.enabledStack.push(e),e||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(e){this.mouseCoords=D4(this.container,e);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&M4(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(e){if(!e||!this.enabled||this._isPenalty()){this.visible&&(b1("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}b1(e,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(e,n){e!==this._previousTooltipDatum&&(this._previousTooltipDatum=e,n||(n=r=>Promise.resolve(qn`${JSON.stringify(r)}`)),n(e).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function M4(t,e){let n=0;for(let r=0;r<t.length;r++)n+=(t[r]-e[r])**2;return Math.sqrt(n)}const T4="RawCode",N4="Literal",F4="Property",B4="Identifier",k4="ArrayExpression",L4="BinaryExpression",R4="CallExpression",O4="ConditionalExpression",z4="LogicalExpression",P4="MemberExpression",U4="ObjectExpression",j4="UnaryExpression";function Mn(t){this.type=t}Mn.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=G4(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function G4(t){switch(t.type){case k4:return t.elements;case L4:case z4:return[t.left,t.right];case R4:return[t.callee].concat(t.arguments);case O4:return[t.test,t.consequent,t.alternate];case P4:return[t.object,t.property];case U4:return t.properties;case F4:return[t.key,t.value];case j4:return[t.argument];case B4:case N4:case T4:default:return[]}}var Zn,te,j,vt,Ie,Of=1,Ss=2,ji=3,qr=4,zf=5,Gi=6,Ot=7,_s=8,H4=9;Zn={},Zn[Of]="Boolean",Zn[Ss]="<end>",Zn[ji]="Identifier",Zn[qr]="Keyword",Zn[zf]="Null",Zn[Gi]="Numeric",Zn[Ot]="Punctuator",Zn[_s]="String",Zn[H4]="RegularExpression";var Q4="ArrayExpression",V4="BinaryExpression",q4="CallExpression",Z4="ConditionalExpression",y1="Identifier",Y4="Literal",W4="LogicalExpression",X4="MemberExpression",$4="ObjectExpression",K4="Property",J4="UnaryExpression",ct="Unexpected token %0",eD="Unexpected number",tD="Unexpected string",nD="Unexpected identifier",rD="Unexpected reserved word",iD="Unexpected end of input",Th="Invalid regular expression",Nh="Invalid regular expression: missing /",w1="Octal literals are not allowed in strict mode.",aD="Duplicate data property in object literal not allowed in strict mode",mt="ILLEGAL",Cs="Disabled.",oD=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),sD=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Pf(t,e){if(!t)throw new Error("ASSERT: "+e)}function xr(t){return t>=48&&t<=57}function Fh(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function Ds(t){return"01234567".indexOf(t)>=0}function uD(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function Is(t){return t===10||t===13||t===8232||t===8233}function Ms(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&oD.test(String.fromCharCode(t))}function Uf(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&sD.test(String.fromCharCode(t))}const fD={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function x1(){for(;j<vt;){const t=te.charCodeAt(j);if(uD(t)||Is(t))++j;else break}}function Bh(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)j<vt&&Fh(te[j])?(r=te[j++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ve({},ct,mt);return String.fromCharCode(i)}function lD(){var t,e,n,r;for(t=te[j],e=0,t==="}"&&ve({},ct,mt);j<vt&&(t=te[j++],!!Fh(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&ve({},ct,mt),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function v1(){var t,e;for(t=te.charCodeAt(j++),e=String.fromCharCode(t),t===92&&(te.charCodeAt(j)!==117&&ve({},ct,mt),++j,t=Bh("u"),(!t||t==="\\"||!Ms(t.charCodeAt(0)))&&ve({},ct,mt),e=t);j<vt&&(t=te.charCodeAt(j),!!Uf(t));)++j,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),te.charCodeAt(j)!==117&&ve({},ct,mt),++j,t=Bh("u"),(!t||t==="\\"||!Uf(t.charCodeAt(0)))&&ve({},ct,mt),e+=t);return e}function cD(){var t,e;for(t=j++;j<vt;){if(e=te.charCodeAt(j),e===92)return j=t,v1();if(Uf(e))++j;else break}return te.slice(t,j)}function hD(){var t,e,n;return t=j,e=te.charCodeAt(j)===92?v1():cD(),e.length===1?n=ji:fD.hasOwnProperty(e)?n=qr:e==="null"?n=zf:e==="true"||e==="false"?n=Of:n=ji,{type:n,value:e,start:t,end:j}}function kh(){var t=j,e=te.charCodeAt(j),n,r=te[j],i,a,o;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++j,{type:Ot,value:String.fromCharCode(e),start:t,end:j};default:if(n=te.charCodeAt(j+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return j+=2,{type:Ot,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:j};case 33:case 61:return j+=2,te.charCodeAt(j)===61&&++j,{type:Ot,value:te.slice(t,j),start:t,end:j}}}if(o=te.substr(j,4),o===">>>=")return j+=4,{type:Ot,value:o,start:t,end:j};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return j+=3,{type:Ot,value:a,start:t,end:j};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return j+=2,{type:Ot,value:i,start:t,end:j};if(i==="//"&&ve({},ct,mt),"<>=!+-*%&|^/".indexOf(r)>=0)return++j,{type:Ot,value:r,start:t,end:j};ve({},ct,mt)}function dD(t){let e="";for(;j<vt&&Fh(te[j]);)e+=te[j++];return e.length===0&&ve({},ct,mt),Ms(te.charCodeAt(j))&&ve({},ct,mt),{type:Gi,value:parseInt("0x"+e,16),start:t,end:j}}function gD(t){let e="0"+te[j++];for(;j<vt&&Ds(te[j]);)e+=te[j++];return(Ms(te.charCodeAt(j))||xr(te.charCodeAt(j)))&&ve({},ct,mt),{type:Gi,value:parseInt(e,8),octal:!0,start:t,end:j}}function A1(){var t,e,n;if(n=te[j],Pf(xr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=j,t="",n!=="."){if(t=te[j++],n=te[j],t==="0"){if(n==="x"||n==="X")return++j,dD(e);if(Ds(n))return gD(e);n&&xr(n.charCodeAt(0))&&ve({},ct,mt)}for(;xr(te.charCodeAt(j));)t+=te[j++];n=te[j]}if(n==="."){for(t+=te[j++];xr(te.charCodeAt(j));)t+=te[j++];n=te[j]}if(n==="e"||n==="E")if(t+=te[j++],n=te[j],(n==="+"||n==="-")&&(t+=te[j++]),xr(te.charCodeAt(j)))for(;xr(te.charCodeAt(j));)t+=te[j++];else ve({},ct,mt);return Ms(te.charCodeAt(j))&&ve({},ct,mt),{type:Gi,value:parseFloat(t),start:e,end:j}}function pD(){var t="",e,n,r,i,a=!1;for(e=te[j],Pf(e==="'"||e==='"',"String literal must starts with a quote"),n=j,++j;j<vt;)if(r=te[j++],r===e){e="";break}else if(r==="\\")if(r=te[j++],!r||!Is(r.charCodeAt(0)))switch(r){case"u":case"x":te[j]==="{"?(++j,t+=lD()):t+=Bh(r);break;case"n":t+=`
|
|
15
|
+
`;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:Ds(r)?(i="01234567".indexOf(r),i!==0&&(a=!0),j<vt&&Ds(te[j])&&(a=!0,i=i*8+"01234567".indexOf(te[j++]),"0123".indexOf(r)>=0&&j<vt&&Ds(te[j])&&(i=i*8+"01234567".indexOf(te[j++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&te[j]===`
|
|
16
|
+
`&&++j;else{if(Is(r.charCodeAt(0)))break;t+=r}return e!==""&&ve({},ct,mt),{type:_s,value:t,octal:a,start:n,end:j}}function mD(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";ve({},Th)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ve({},Th)}try{return new RegExp(t,e)}catch{return null}}function bD(){var t,e,n,r,i;for(t=te[j],Pf(t==="/","Regular expression literal must start with a slash"),e=te[j++],n=!1,r=!1;j<vt;)if(t=te[j++],e+=t,t==="\\")t=te[j++],Is(t.charCodeAt(0))&&ve({},Nh),e+=t;else if(Is(t.charCodeAt(0)))ve({},Nh);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||ve({},Nh),i=e.substr(1,e.length-2),{value:i,literal:e}}function yD(){var t,e,n;for(e="",n="";j<vt&&(t=te[j],!!Uf(t.charCodeAt(0)));)++j,t==="\\"&&j<vt?ve({},ct,mt):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&ve({},Th,n),{value:n,literal:e}}function wD(){var t,e,n,r;return Ie=null,x1(),t=j,e=bD(),n=yD(),r=mD(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:j}}function xD(t){return t.type===ji||t.type===qr||t.type===Of||t.type===zf}function E1(){if(x1(),j>=vt)return{type:Ss,start:j,end:j};const t=te.charCodeAt(j);return Ms(t)?hD():t===40||t===41||t===59?kh():t===39||t===34?pD():t===46?xr(te.charCodeAt(j+1))?A1():kh():xr(t)?A1():kh()}function zt(){const t=Ie;return j=t.end,Ie=E1(),j=t.end,t}function S1(){const t=j;Ie=E1(),j=t}function vD(t){const e=new Mn(Q4);return e.elements=t,e}function _1(t,e,n){const r=new Mn(t==="||"||t==="&&"?W4:V4);return r.operator=t,r.left=e,r.right=n,r}function AD(t,e){const n=new Mn(q4);return n.callee=t,n.arguments=e,n}function ED(t,e,n){const r=new Mn(Z4);return r.test=t,r.consequent=e,r.alternate=n,r}function Lh(t){const e=new Mn(y1);return e.name=t,e}function Ts(t){const e=new Mn(Y4);return e.value=t.value,e.raw=te.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function C1(t,e,n){const r=new Mn(X4);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function SD(t){const e=new Mn($4);return e.properties=t,e}function D1(t,e,n){const r=new Mn(K4);return r.key=e,r.value=n,r.kind=t,r}function _D(t,e){const n=new Mn(J4);return n.operator=t,n.argument=e,n.prefix=!0,n}function ve(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(a,o)=>(Pf(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=j,n.description=i,n}function jf(t){t.type===Ss&&ve(t,iD),t.type===Gi&&ve(t,eD),t.type===_s&&ve(t,tD),t.type===ji&&ve(t,nD),t.type===qr&&ve(t,rD),ve(t,ct,t.value)}function At(t){const e=zt();(e.type!==Ot||e.value!==t)&&jf(e)}function je(t){return Ie.type===Ot&&Ie.value===t}function Rh(t){return Ie.type===qr&&Ie.value===t}function CD(){const t=[];for(j=Ie.start,At("[");!je("]");)je(",")?(zt(),t.push(null)):(t.push(Hi()),je("]")||At(","));return zt(),vD(t)}function I1(){j=Ie.start;const t=zt();return t.type===_s||t.type===Gi?(t.octal&&ve(t,w1),Ts(t)):Lh(t.value)}function DD(){var t,e,n,r;if(j=Ie.start,t=Ie,t.type===ji)return n=I1(),At(":"),r=Hi(),D1("init",n,r);if(t.type===Ss||t.type===Ot)jf(t);else return e=I1(),At(":"),r=Hi(),D1("init",e,r)}function ID(){var t=[],e,n,r,i={},a=String;for(j=Ie.start,At("{");!je("}");)e=DD(),e.key.type===y1?n=e.key.name:n=a(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ve({},aD):i[r]=!0,t.push(e),je("}")||At(",");return At("}"),SD(t)}function MD(){At("(");const t=Oh();return At(")"),t}const TD={if:1};function ND(){var t,e,n;if(je("("))return MD();if(je("["))return CD();if(je("{"))return ID();if(t=Ie.type,j=Ie.start,t===ji||TD[Ie.value])n=Lh(zt().value);else if(t===_s||t===Gi)Ie.octal&&ve(Ie,w1),n=Ts(zt());else{if(t===qr)throw new Error(Cs);t===Of?(e=zt(),e.value=e.value==="true",n=Ts(e)):t===zf?(e=zt(),e.value=null,n=Ts(e)):je("/")||je("/=")?(n=Ts(wD()),S1()):jf(zt())}return n}function FD(){const t=[];if(At("("),!je(")"))for(;j<vt&&(t.push(Hi()),!je(")"));)At(",");return At(")"),t}function BD(){j=Ie.start;const t=zt();return xD(t)||jf(t),Lh(t.value)}function kD(){return At("."),BD()}function LD(){At("[");const t=Oh();return At("]"),t}function RD(){var t,e,n;for(t=ND();;)if(je("."))n=kD(),t=C1(".",t,n);else if(je("("))e=FD(),t=AD(t,e);else if(je("["))n=LD(),t=C1("[",t,n);else break;return t}function M1(){const t=RD();if(Ie.type===Ot&&(je("++")||je("--")))throw new Error(Cs);return t}function Gf(){var t,e;if(Ie.type!==Ot&&Ie.type!==qr)e=M1();else{if(je("++")||je("--"))throw new Error(Cs);if(je("+")||je("-")||je("~")||je("!"))t=zt(),e=Gf(),e=_D(t.value,e);else{if(Rh("delete")||Rh("void")||Rh("typeof"))throw new Error(Cs);e=M1()}}return e}function T1(t){let e=0;if(t.type!==Ot&&t.type!==qr)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function OD(){var t,e,n,r,i,a,o,s,f,u;if(t=Ie,f=Gf(),r=Ie,i=T1(r),i===0)return f;for(r.prec=i,zt(),e=[t,Ie],o=Gf(),a=[f,r,o];(i=T1(Ie))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,f=a.pop(),e.pop(),n=_1(s,f,o),a.push(n);r=zt(),r.prec=i,a.push(r),e.push(Ie),n=Gf(),a.push(n)}for(u=a.length-1,n=a[u],e.pop();u>1;)e.pop(),n=_1(a[u-1].value,a[u-2],n),u-=2;return n}function Hi(){var t,e,n;return t=OD(),je("?")&&(zt(),e=Hi(),At(":"),n=Hi(),t=ED(t,e,n)),t}function Oh(){const t=Hi();if(je(","))throw new Error(Cs);return t}function zD(t){te=t,j=0,vt=te.length,Ie=null,S1();const e=Oh();if(Ie.type!==Ss)throw new Error("Unexpect token after expression.");return e}var PD={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function UD(t){function e(o,s,f,u){let l=t(s[0]);return f&&(l=f+"("+l+")",f.lastIndexOf("new ",0)===0&&(l="("+l+")")),l+"."+o+(u<0?"":u===0?"()":"("+s.slice(1).map(t).join(",")+")")}function n(o,s,f){return u=>e(o,u,s,f)}const r="new Date",i="String",a="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&$e("Missing arguments to clamp function."),o.length>3&&$e("Too many arguments to clamp function.");const s=o.map(t);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:a,test:n("test",a),if:function(o){o.length<3&&$e("Missing arguments to if function."),o.length>3&&$e("Too many arguments to if function.");const s=o.map(t);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function jD(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function GD(t){t=t||{};const e=t.allowed?yf(t.allowed):{},n=t.forbidden?yf(t.forbidden):{},r=t.constants||PD,i=(t.functions||UD)(c),a=t.globalvar,o=t.fieldvar,s=kt(a)?a:g=>`${a}["${g}"]`;let f={},u={},l=0;function c(g){if(Ke(g))return g;const b=h[g.type];return b==null&&$e("Unsupported type: "+g.type),b(g)}const h={Literal:g=>g.raw,Identifier:g=>{const b=g.name;return l>0?b:Fi(n,b)?$e("Illegal identifier: "+b):Fi(r,b)?r[b]:Fi(e,b)?b:(f[b]=1,s(b))},MemberExpression:g=>{const b=!g.computed,y=c(g.object);b&&(l+=1);const w=c(g.property);return y===o&&(u[jD(w)]=1),b&&(l-=1),y+(b?"."+w:"["+w+"]")},CallExpression:g=>{g.callee.type!=="Identifier"&&$e("Illegal callee type: "+g.callee.type);const b=g.callee.name,y=g.arguments,w=Fi(i,b)&&i[b];return w||$e("Unrecognized function: "+b),kt(w)?w(y):w+"("+y.map(c).join(",")+")"},ArrayExpression:g=>"["+g.elements.map(c).join(",")+"]",BinaryExpression:g=>"("+c(g.left)+" "+g.operator+" "+c(g.right)+")",UnaryExpression:g=>"("+g.operator+c(g.argument)+")",ConditionalExpression:g=>"("+c(g.test)+"?"+c(g.consequent)+":"+c(g.alternate)+")",LogicalExpression:g=>"("+c(g.left)+g.operator+c(g.right)+")",ObjectExpression:g=>"{"+g.properties.map(c).join(",")+"}",Property:g=>{l+=1;const b=c(g.key);return l-=1,b+":"+c(g.value)}};function d(g){const b={code:c(g),globals:Object.keys(f),fields:Object.keys(u)};return f={},u={},b}return d.functions=i,d.constants=r,d}function zh(t,e={}){const n=GD({forbidden:[],allowed:["datum"],globalvar:"globalThis",fieldvar:"datum"});try{const r=zD(t),i=n(r),a=Function("datum","globalThis",`"use strict"; return (${i.code});`),o=s=>a(s,globalThis);return o.fields=i.fields,o}catch(r){throw new Error(`Invalid expression: ${t}, ${r.message}`)}}function Yn(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Zr(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const Ph=Symbol("implicit");function Uh(){var t=new Bi,e=[],n=[],r=Ph;function i(a){let o=t.get(a);if(o===void 0){if(r!==Ph)return r;t.set(a,o=e.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new Bi;for(const o of a)t.has(o)||t.set(o,e.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return Uh(e,n).unknown(r)},Yn.apply(i,arguments),i}function ja(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Ns(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Yr(){}var Qi=.7,Ga=1/Qi,Ha="\\s*([+-]?\\d+)\\s*",Fs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Wn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",HD=/^#([0-9a-f]{3,8})$/,QD=new RegExp(`^rgb\\(${Ha},${Ha},${Ha}\\)$`),VD=new RegExp(`^rgb\\(${Wn},${Wn},${Wn}\\)$`),qD=new RegExp(`^rgba\\(${Ha},${Ha},${Ha},${Fs}\\)$`),ZD=new RegExp(`^rgba\\(${Wn},${Wn},${Wn},${Fs}\\)$`),YD=new RegExp(`^hsl\\(${Fs},${Wn},${Wn}\\)$`),WD=new RegExp(`^hsla\\(${Fs},${Wn},${Wn},${Fs}\\)$`),N1={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ja(Yr,Wr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:F1,formatHex:F1,formatHex8:XD,formatHsl:$D,formatRgb:B1,toString:B1});function F1(){return this.rgb().formatHex()}function XD(){return this.rgb().formatHex8()}function $D(){return z1(this).formatHsl()}function B1(){return this.rgb().formatRgb()}function Wr(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=HD.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?k1(e):n===3?new ht(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Hf(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Hf(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=QD.exec(t))?new ht(e[1],e[2],e[3],1):(e=VD.exec(t))?new ht(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=qD.exec(t))?Hf(e[1],e[2],e[3],e[4]):(e=ZD.exec(t))?Hf(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=YD.exec(t))?O1(e[1],e[2]/100,e[3]/100,1):(e=WD.exec(t))?O1(e[1],e[2]/100,e[3]/100,e[4]):N1.hasOwnProperty(t)?k1(N1[t]):t==="transparent"?new ht(NaN,NaN,NaN,0):null}function k1(t){return new ht(t>>16&255,t>>8&255,t&255,1)}function Hf(t,e,n,r){return r<=0&&(t=e=n=NaN),new ht(t,e,n,r)}function jh(t){return t instanceof Yr||(t=Wr(t)),t?(t=t.rgb(),new ht(t.r,t.g,t.b,t.opacity)):new ht}function Qf(t,e,n,r){return arguments.length===1?jh(t):new ht(t,e,n,r??1)}function ht(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}ja(ht,Qf,Ns(Yr,{brighter(t){return t=t==null?Ga:Math.pow(Ga,t),new ht(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Qi:Math.pow(Qi,t),new ht(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ht(Vi(this.r),Vi(this.g),Vi(this.b),Vf(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:L1,formatHex:L1,formatHex8:KD,formatRgb:R1,toString:R1}));function L1(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}`}function KD(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}${qi((isNaN(this.opacity)?1:this.opacity)*255)}`}function R1(){const t=Vf(this.opacity);return`${t===1?"rgb(":"rgba("}${Vi(this.r)}, ${Vi(this.g)}, ${Vi(this.b)}${t===1?")":`, ${t})`}`}function Vf(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Vi(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function qi(t){return t=Vi(t),(t<16?"0":"")+t.toString(16)}function O1(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Tn(t,e,n,r)}function z1(t){if(t instanceof Tn)return new Tn(t.h,t.s,t.l,t.opacity);if(t instanceof Yr||(t=Wr(t)),!t)return new Tn;if(t instanceof Tn)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),o=NaN,s=a-i,f=(a+i)/2;return s?(e===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-e)/s+2:o=(e-n)/s+4,s/=f<.5?a+i:2-a-i,o*=60):s=f>0&&f<1?0:o,new Tn(o,s,f,t.opacity)}function Gh(t,e,n,r){return arguments.length===1?z1(t):new Tn(t,e,n,r??1)}function Tn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}ja(Tn,Gh,Ns(Yr,{brighter(t){return t=t==null?Ga:Math.pow(Ga,t),new Tn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Qi:Math.pow(Qi,t),new Tn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new ht(Hh(t>=240?t-240:t+120,i,r),Hh(t,i,r),Hh(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Tn(P1(this.h),qf(this.s),qf(this.l),Vf(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Vf(this.opacity);return`${t===1?"hsl(":"hsla("}${P1(this.h)}, ${qf(this.s)*100}%, ${qf(this.l)*100}%${t===1?")":`, ${t})`}`}}));function P1(t){return t=(t||0)%360,t<0?t+360:t}function qf(t){return Math.max(0,Math.min(1,t||0))}function Hh(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const U1=Math.PI/180,j1=180/Math.PI,Zf=18,G1=.96422,H1=1,Q1=.82521,V1=4/29,Qa=6/29,q1=3*Qa*Qa,JD=Qa*Qa*Qa;function Z1(t){if(t instanceof Xn)return new Xn(t.l,t.a,t.b,t.opacity);if(t instanceof vr)return Y1(t);t instanceof ht||(t=jh(t));var e=Yh(t.r),n=Yh(t.g),r=Yh(t.b),i=Vh((.2225045*e+.7168786*n+.0606169*r)/H1),a,o;return e===n&&n===r?a=o=i:(a=Vh((.4360747*e+.3850649*n+.1430804*r)/G1),o=Vh((.0139322*e+.0971045*n+.7141733*r)/Q1)),new Xn(116*i-16,500*(a-i),200*(i-o),t.opacity)}function Qh(t,e,n,r){return arguments.length===1?Z1(t):new Xn(t,e,n,r??1)}function Xn(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}ja(Xn,Qh,Ns(Yr,{brighter(t){return new Xn(this.l+Zf*(t??1),this.a,this.b,this.opacity)},darker(t){return new Xn(this.l-Zf*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=G1*qh(e),t=H1*qh(t),n=Q1*qh(n),new ht(Zh(3.1338561*e-1.6168667*t-.4906146*n),Zh(-.9787684*e+1.9161415*t+.033454*n),Zh(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Vh(t){return t>JD?Math.pow(t,1/3):t/q1+V1}function qh(t){return t>Qa?t*t*t:q1*(t-V1)}function Zh(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Yh(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function eI(t){if(t instanceof vr)return new vr(t.h,t.c,t.l,t.opacity);if(t instanceof Xn||(t=Z1(t)),t.a===0&&t.b===0)return new vr(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*j1;return new vr(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Wh(t,e,n,r){return arguments.length===1?eI(t):new vr(t,e,n,r??1)}function vr(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function Y1(t){if(isNaN(t.h))return new Xn(t.l,0,0,t.opacity);var e=t.h*U1;return new Xn(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}ja(vr,Wh,Ns(Yr,{brighter(t){return new vr(this.h,this.c,this.l+Zf*(t??1),this.opacity)},darker(t){return new vr(this.h,this.c,this.l-Zf*(t??1),this.opacity)},rgb(){return Y1(this).rgb()}}));var W1=-.14861,Xh=1.78277,$h=-.29227,Yf=-.90649,Bs=1.97294,X1=Bs*Yf,$1=Bs*Xh,K1=Xh*$h-Yf*W1;function tI(t){if(t instanceof Zi)return new Zi(t.h,t.s,t.l,t.opacity);t instanceof ht||(t=jh(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(K1*r+X1*e-$1*n)/(K1+X1-$1),a=r-i,o=(Bs*(n-i)-$h*a)/Yf,s=Math.sqrt(o*o+a*a)/(Bs*i*(1-i)),f=s?Math.atan2(o,a)*j1-120:NaN;return new Zi(f<0?f+360:f,s,i,t.opacity)}function Kh(t,e,n,r){return arguments.length===1?tI(t):new Zi(t,e,n,r??1)}function Zi(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}ja(Zi,Kh,Ns(Yr,{brighter(t){return t=t==null?Ga:Math.pow(Ga,t),new Zi(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Qi:Math.pow(Qi,t),new Zi(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*U1,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new ht(255*(e+n*(W1*r+Xh*i)),255*(e+n*($h*r+Yf*i)),255*(e+n*(Bs*r)),this.opacity)}}));function J1(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}function eb(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,s=r<e-1?t[r+2]:2*a-i;return J1((n-r/e)*e,o,i,a,s)}}function tb(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],a=t[r%e],o=t[(r+1)%e],s=t[(r+2)%e];return J1((n-r/e)*e,i,a,o,s)}}const Wf=t=>()=>t;function nb(t,e){return function(n){return t+n*e}}function nI(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Xf(t,e){var n=e-t;return n?nb(t,n>180||n<-180?n-360*Math.round(n/360):n):Wf(isNaN(t)?e:t)}function rI(t){return(t=+t)==1?dt:function(e,n){return n-e?nI(e,n,t):Wf(isNaN(e)?n:e)}}function dt(t,e){var n=e-t;return n?nb(t,n):Wf(isNaN(t)?e:t)}const Jh=function t(e){var n=rI(e);function r(i,a){var o=n((i=Qf(i)).r,(a=Qf(a)).r),s=n(i.g,a.g),f=n(i.b,a.b),u=dt(i.opacity,a.opacity);return function(l){return i.r=o(l),i.g=s(l),i.b=f(l),i.opacity=u(l),i+""}}return r.gamma=t,r}(1);function rb(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=Qf(e[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=t(r),i=t(i),a=t(a),s.opacity=1,function(f){return s.r=r(f),s.g=i(f),s.b=a(f),s+""}}}var iI=rb(eb),aI=rb(tb);function ed(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=t[i]*(1-a)+e[i]*a;return r}}function ib(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function oI(t,e){return(ib(e)?ed:ab)(t,e)}function ab(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=Xr(t[o],e[o]);for(;o<n;++o)a[o]=e[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function ob(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Nn(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function sb(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=Xr(t[i],e[i]):r[i]=e[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var td=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,nd=new RegExp(td.source,"g");function sI(t){return function(){return t}}function uI(t){return function(e){return t(e)+""}}function ub(t,e){var n=td.lastIndex=nd.lastIndex=0,r,i,a,o=-1,s=[],f=[];for(t=t+"",e=e+"";(r=td.exec(t))&&(i=nd.exec(e));)(a=i.index)>n&&(a=e.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,f.push({i:o,x:Nn(r,i)})),n=nd.lastIndex;return n<e.length&&(a=e.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?f[0]?uI(f[0].x):sI(e):(e=f.length,function(u){for(var l=0,c;l<e;++l)s[(c=f[l]).i]=c.x(u);return s.join("")})}function Xr(t,e){var n=typeof e,r;return e==null||n==="boolean"?Wf(e):(n==="number"?Nn:n==="string"?(r=Wr(e))?(e=r,Jh):ub:e instanceof Wr?Jh:e instanceof Date?ob:ib(e)?ed:Array.isArray(e)?ab:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?sb:Nn)(t,e)}function fI(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function lI(t,e){var n=Xf(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function ks(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var fb=180/Math.PI,rd={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function lb(t,e,n,r,i,a){var o,s,f;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(f=t*n+e*r)&&(n-=t*f,r-=e*f),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,f/=s),t*r<e*n&&(t=-t,e=-e,f=-f,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*fb,skewX:Math.atan(f)*fb,scaleX:o,scaleY:s}}var $f;function cI(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?rd:lb(e.a,e.b,e.c,e.d,e.e,e.f)}function hI(t){return t==null||($f||($f=document.createElementNS("http://www.w3.org/2000/svg","g")),$f.setAttribute("transform",t),!(t=$f.transform.baseVal.consolidate()))?rd:(t=t.matrix,lb(t.a,t.b,t.c,t.d,t.e,t.f))}function cb(t,e,n,r){function i(u){return u.length?u.pop()+" ":""}function a(u,l,c,h,d,g){if(u!==c||l!==h){var b=d.push("translate(",null,e,null,n);g.push({i:b-4,x:Nn(u,c)},{i:b-2,x:Nn(l,h)})}else(c||h)&&d.push("translate("+c+e+h+n)}function o(u,l,c,h){u!==l?(u-l>180?l+=360:l-u>180&&(u+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:Nn(u,l)})):l&&c.push(i(c)+"rotate("+l+r)}function s(u,l,c,h){u!==l?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:Nn(u,l)}):l&&c.push(i(c)+"skewX("+l+r)}function f(u,l,c,h,d,g){if(u!==c||l!==h){var b=d.push(i(d)+"scale(",null,",",null,")");g.push({i:b-4,x:Nn(u,c)},{i:b-2,x:Nn(l,h)})}else(c!==1||h!==1)&&d.push(i(d)+"scale("+c+","+h+")")}return function(u,l){var c=[],h=[];return u=t(u),l=t(l),a(u.translateX,u.translateY,l.translateX,l.translateY,c,h),o(u.rotate,l.rotate,c,h),s(u.skewX,l.skewX,c,h),f(u.scaleX,u.scaleY,l.scaleX,l.scaleY,c,h),u=l=null,function(d){for(var g=-1,b=h.length,y;++g<b;)c[(y=h[g]).i]=y.x(d);return c.join("")}}}var dI=cb(cI,"px, ","px)","deg)"),gI=cb(hI,", ",")",")"),pI=1e-12;function hb(t){return((t=Math.exp(t))+1/t)/2}function mI(t){return((t=Math.exp(t))-1/t)/2}function bI(t){return((t=Math.exp(2*t))-1)/(t+1)}const yI=function t(e,n,r){function i(a,o){var s=a[0],f=a[1],u=a[2],l=o[0],c=o[1],h=o[2],d=l-s,g=c-f,b=d*d+g*g,y,w;if(b<pI)w=Math.log(h/u)/e,y=function(M){return[s+M*d,f+M*g,u*Math.exp(e*M*w)]};else{var E=Math.sqrt(b),_=(h*h-u*u+r*b)/(2*u*n*E),D=(h*h-u*u-r*b)/(2*h*n*E),T=Math.log(Math.sqrt(_*_+1)-_),N=Math.log(Math.sqrt(D*D+1)-D);w=(N-T)/e,y=function(M){var R=M*w,C=hb(T),k=u/(n*E)*(C*bI(e*R+T)-mI(T));return[s+k*d,f+k*g,u*C/hb(e*R+T)]}}return y.duration=w*1e3*e/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,f=s*s;return t(o,s,f)},i}(Math.SQRT2,2,4);function db(t){return function(e,n){var r=t((e=Gh(e)).h,(n=Gh(n)).h),i=dt(e.s,n.s),a=dt(e.l,n.l),o=dt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=a(s),e.opacity=o(s),e+""}}}const wI=db(Xf);var xI=db(dt);function vI(t,e){var n=dt((t=Qh(t)).l,(e=Qh(e)).l),r=dt(t.a,e.a),i=dt(t.b,e.b),a=dt(t.opacity,e.opacity);return function(o){return t.l=n(o),t.a=r(o),t.b=i(o),t.opacity=a(o),t+""}}function gb(t){return function(e,n){var r=t((e=Wh(e)).h,(n=Wh(n)).h),i=dt(e.c,n.c),a=dt(e.l,n.l),o=dt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=a(s),e.opacity=o(s),e+""}}}const AI=gb(Xf);var EI=gb(dt);function pb(t){return function e(n){n=+n;function r(i,a){var o=t((i=Kh(i)).h,(a=Kh(a)).h),s=dt(i.s,a.s),f=dt(i.l,a.l),u=dt(i.opacity,a.opacity);return function(l){return i.h=o(l),i.s=s(l),i.l=f(Math.pow(l,n)),i.opacity=u(l),i+""}}return r.gamma=e,r}(1)}const SI=pb(Xf);var _I=pb(dt);function id(t,e){e===void 0&&(e=t,t=Xr);for(var n=0,r=e.length-1,i=e[0],a=new Array(r<0?0:r);n<r;)a[n]=t(i,i=e[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function CI(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const DI=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Xr,interpolateArray:oI,interpolateBasis:eb,interpolateBasisClosed:tb,interpolateCubehelix:SI,interpolateCubehelixLong:_I,interpolateDate:ob,interpolateDiscrete:fI,interpolateHcl:AI,interpolateHclLong:EI,interpolateHsl:wI,interpolateHslLong:xI,interpolateHue:lI,interpolateLab:vI,interpolateNumber:Nn,interpolateNumberArray:ed,interpolateObject:sb,interpolateRgb:Jh,interpolateRgbBasis:iI,interpolateRgbBasisClosed:aI,interpolateRound:ks,interpolateString:ub,interpolateTransformCss:dI,interpolateTransformSvg:gI,interpolateZoom:yI,piecewise:id,quantize:CI},Symbol.toStringTag,{value:"Module"}));function II(t){return function(){return t}}function ad(t){return+t}var mb=[0,1];function Pt(t){return t}function od(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:II(isNaN(e)?NaN:.5)}function MI(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function TI(t,e,n){var r=t[0],i=t[1],a=e[0],o=e[1];return i<r?(r=od(i,r),a=n(o,a)):(r=od(r,i),a=n(a,o)),function(s){return a(r(s))}}function NI(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),a=new Array(r),o=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<r;)i[o]=od(t[o],t[o+1]),a[o]=n(e[o],e[o+1]);return function(s){var f=Fa(t,s,1,r)-1;return a[f](i[f](s))}}function Ls(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Kf(){var t=mb,e=mb,n=Xr,r,i,a,o=Pt,s,f,u;function l(){var h=Math.min(t.length,e.length);return o!==Pt&&(o=MI(t[0],t[h-1])),s=h>2?NI:TI,f=u=null,c}function c(h){return h==null||isNaN(h=+h)?a:(f||(f=s(t.map(r),e,n)))(r(o(h)))}return c.invert=function(h){return o(i((u||(u=s(e,t.map(r),Nn)))(h)))},c.domain=function(h){return arguments.length?(t=Array.from(h,ad),l()):t.slice()},c.range=function(h){return arguments.length?(e=Array.from(h),l()):e.slice()},c.rangeRound=function(h){return e=Array.from(h),n=ks,l()},c.clamp=function(h){return arguments.length?(o=h?!0:Pt,l()):o!==Pt},c.interpolate=function(h){return arguments.length?(n=h,l()):n},c.unknown=function(h){return arguments.length?(a=h,c):a},function(h,d){return r=h,i=d,l()}}function bb(){return Kf()(Pt,Pt)}function yb(t,e,n,r){var i=ki(t,e,n),a;switch(r=jr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(a=Am(i,o))&&(r.precision=a),sh(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=Em(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=vm(i))&&(r.precision=a-(r.type==="%")*2);break}}return pt(r)}function Yi(t){var e=t.domain;return t.ticks=function(n){var r=e();return vf(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return yb(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,a=r.length-1,o=r[i],s=r[a],f,u,l=10;for(s<o&&(u=o,o=s,s=u,u=i,i=a,a=u);l-- >0;){if(u=dm(o,s,n),u===f)return r[i]=o,r[a]=s,e(r);if(u>0)o=Math.floor(o/u)*u,s=Math.ceil(s/u)*u;else if(u<0)o=Math.ceil(o*u)/u,s=Math.floor(s*u)/u;else break;f=u}return t},t}function wb(){var t=bb();return t.copy=function(){return Ls(t,wb())},Yn.apply(t,arguments),Yi(t)}function xb(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,ad),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return xb(t).unknown(e)},t=arguments.length?Array.from(t,ad):[0,1],Yi(n)}function vb(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],a=t[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),t[n]=e.floor(i),t[r]=e.ceil(a),t}function Ab(t){return Math.log(t)}function Eb(t){return Math.exp(t)}function FI(t){return-Math.log(-t)}function BI(t){return-Math.exp(-t)}function kI(t){return isFinite(t)?+("1e"+t):t<0?0:t}function LI(t){return t===10?kI:t===Math.E?Math.exp:e=>Math.pow(t,e)}function RI(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function Sb(t){return(e,n)=>-t(-e,n)}function sd(t){const e=t(Ab,Eb),n=e.domain;let r=10,i,a;function o(){return i=RI(r),a=LI(r),n()[0]<0?(i=Sb(i),a=Sb(a),t(FI,BI)):t(Ab,Eb),e}return e.base=function(s){return arguments.length?(r=+s,o()):r},e.domain=function(s){return arguments.length?(n(s),o()):n()},e.ticks=s=>{const f=n();let u=f[0],l=f[f.length-1];const c=l<u;c&&([u,l]=[l,u]);let h=i(u),d=i(l),g,b;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),u>0){for(;h<=d;++h)for(g=1;g<r;++g)if(b=h<0?g/a(-h):g*a(h),!(b<u)){if(b>l)break;w.push(b)}}else for(;h<=d;++h)for(g=r-1;g>=1;--g)if(b=h>0?g/a(-h):g*a(h),!(b<u)){if(b>l)break;w.push(b)}w.length*2<y&&(w=vf(u,l,y))}else w=vf(h,d,Math.min(d-h,y)).map(a);return c?w.reverse():w},e.tickFormat=(s,f)=>{if(s==null&&(s=10),f==null&&(f=r===10?"s":","),typeof f!="function"&&(!(r%1)&&(f=jr(f)).precision==null&&(f.trim=!0),f=pt(f)),s===1/0)return f;const u=Math.max(1,r*s/e.ticks().length);return l=>{let c=l/a(Math.round(i(l)));return c*r<r-.5&&(c*=r),c<=u?f(l):""}},e.nice=()=>n(vb(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),e}function ud(){const t=sd(Kf()).domain([1,10]);return t.copy=()=>Ls(t,ud()).base(t.base()),Yn.apply(t,arguments),t}function _b(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function Cb(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function fd(t){var e=1,n=t(_b(e),Cb(e));return n.constant=function(r){return arguments.length?t(_b(e=+r),Cb(e)):e},Yi(n)}function Db(){var t=fd(Kf());return t.copy=function(){return Ls(t,Db()).constant(t.constant())},Yn.apply(t,arguments)}function Ib(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function OI(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function zI(t){return t<0?-t*t:t*t}function ld(t){var e=t(Pt,Pt),n=1;function r(){return n===1?t(Pt,Pt):n===.5?t(OI,zI):t(Ib(n),Ib(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},Yi(e)}function cd(){var t=ld(Kf());return t.copy=function(){return Ls(t,cd()).exponent(t.exponent())},Yn.apply(t,arguments),t}function PI(){return cd.apply(null,arguments).exponent(.5)}function Mb(){var t=[],e=[],n=[],r;function i(){var o=0,s=Math.max(1,e.length);for(n=new Array(s-1);++o<s;)n[o-1]=gm(t,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:e[Fa(n,o)]}return a.invertExtent=function(o){var s=e.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},a.domain=function(o){if(!arguments.length)return t.slice();t=[];for(let s of o)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(ns),i()},a.range=function(o){return arguments.length?(e=Array.from(o),i()):e.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return Mb().domain(t).range(e).unknown(r)},Yn.apply(a,arguments)}function Tb(){var t=0,e=1,n=1,r=[.5],i=[0,1],a;function o(f){return f!=null&&f<=f?i[Fa(r,f,0,n)]:a}function s(){var f=-1;for(r=new Array(n);++f<n;)r[f]=((f+1)*e-(f-n)*t)/(n+1);return o}return o.domain=function(f){return arguments.length?([t,e]=f,t=+t,e=+e,s()):[t,e]},o.range=function(f){return arguments.length?(n=(i=Array.from(f)).length-1,s()):i.slice()},o.invertExtent=function(f){var u=i.indexOf(f);return u<0?[NaN,NaN]:u<1?[t,r[0]]:u>=n?[r[n-1],e]:[r[u-1],r[u]]},o.unknown=function(f){return arguments.length&&(a=f),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Tb().domain([t,e]).range(i).unknown(a)},Yn.apply(Yi(o),arguments)}function Nb(){var t=[.5],e=[0,1],n,r=1;function i(a){return a!=null&&a<=a?e[Fa(t,a,0,r)]:n}return i.domain=function(a){return arguments.length?(t=Array.from(a),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(a){return arguments.length?(e=Array.from(a),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(a){var o=e.indexOf(a);return[t[o-1],t[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Nb().domain(t).range(e).unknown(n)},Yn.apply(i,arguments)}function UI(t){return new Date(t)}function jI(t){return t instanceof Date?+t:+new Date(+t)}function hd(t,e,n,r,i,a,o,s,f,u){var l=bb(),c=l.invert,h=l.domain,d=u(".%L"),g=u(":%S"),b=u("%I:%M"),y=u("%I %p"),w=u("%a %d"),E=u("%b %d"),_=u("%B"),D=u("%Y");function T(N){return(f(N)<N?d:s(N)<N?g:o(N)<N?b:a(N)<N?y:r(N)<N?i(N)<N?w:E:n(N)<N?_:D)(N)}return l.invert=function(N){return new Date(c(N))},l.domain=function(N){return arguments.length?h(Array.from(N,jI)):h().map(UI)},l.ticks=function(N){var M=h();return t(M[0],M[M.length-1],N??10)},l.tickFormat=function(N,M){return M==null?T:u(M)},l.nice=function(N){var M=h();return(!N||typeof N.range!="function")&&(N=e(M[0],M[M.length-1],N??10)),N?h(vb(M,N)):l},l.copy=function(){return Ls(l,hd(t,e,n,r,i,a,o,s,f,u))},l}function GI(){return Yn.apply(hd(O_,z_,Hr,Df,is,Ri,gh,dh,Gr,Ah).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function HI(){return Yn.apply(hd(L_,R_,Qr,Mf,as,zi,bh,mh,Gr,Eh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Jf(){var t=0,e=1,n,r,i,a,o=Pt,s=!1,f;function u(c){return c==null||isNaN(c=+c)?f:o(i===0?.5:(c=(a(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}u.domain=function(c){return arguments.length?([t,e]=c,n=a(t=+t),r=a(e=+e),i=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(c){return arguments.length?(s=!!c,u):s},u.interpolator=function(c){return arguments.length?(o=c,u):o};function l(c){return function(h){var d,g;return arguments.length?([d,g]=h,o=c(d,g),u):[o(0),o(1)]}}return u.range=l(Xr),u.rangeRound=l(ks),u.unknown=function(c){return arguments.length?(f=c,u):f},function(c){return a=c,n=c(t),r=c(e),i=n===r?0:1/(r-n),u}}function $r(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function dd(){var t=Yi(Jf()(Pt));return t.copy=function(){return $r(t,dd())},Zr.apply(t,arguments)}function Fb(){var t=sd(Jf()).domain([1,10]);return t.copy=function(){return $r(t,Fb()).base(t.base())},Zr.apply(t,arguments)}function Bb(){var t=fd(Jf());return t.copy=function(){return $r(t,Bb()).constant(t.constant())},Zr.apply(t,arguments)}function gd(){var t=ld(Jf());return t.copy=function(){return $r(t,gd()).exponent(t.exponent())},Zr.apply(t,arguments)}function QI(){return gd.apply(null,arguments).exponent(.5)}function el(){var t=0,e=.5,n=1,r=1,i,a,o,s,f,u=Pt,l,c=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+l(b))-a)*(r*b<r*a?s:f),u(c?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([t,e,n]=b,i=l(t=+t),a=l(e=+e),o=l(n=+n),s=i===a?0:.5/(a-i),f=a===o?0:.5/(o-a),r=a<i?-1:1,d):[t,e,n]},d.clamp=function(b){return arguments.length?(c=!!b,d):c},d.interpolator=function(b){return arguments.length?(u=b,d):u};function g(b){return function(y){var w,E,_;return arguments.length?([w,E,_]=y,u=id(b,[w,E,_]),d):[u(0),u(.5),u(1)]}}return d.range=g(Xr),d.rangeRound=g(ks),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return l=b,i=b(t),a=b(e),o=b(n),s=i===a?0:.5/(a-i),f=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function kb(){var t=Yi(el()(Pt));return t.copy=function(){return $r(t,kb())},Zr.apply(t,arguments)}function Lb(){var t=sd(el()).domain([.1,1,10]);return t.copy=function(){return $r(t,Lb()).base(t.base())},Zr.apply(t,arguments)}function Rb(){var t=fd(el());return t.copy=function(){return $r(t,Rb()).constant(t.constant())},Zr.apply(t,arguments)}function pd(){var t=ld(el());return t.copy=function(){return $r(t,pd()).exponent(t.exponent())},Zr.apply(t,arguments)}function VI(){return pd.apply(null,arguments).exponent(.5)}function md(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const qI="identity",Va="linear",Kr="log",Rs="pow",Os="sqrt",tl="symlog",Ob="time",zb="utc",$n="sequential",qa="diverging",bd="quantile",Pb="quantize",Ub="threshold",yd="ordinal",wd="point",jb="band",xd="bin-ordinal",ot="continuous",zs="discrete",Ps="discretizing",sn="interpolating",Gb="temporal";function ZI(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function YI(t){return function(e){const n=t.range();let r=e[0],i=e[1],a=-1,o,s,f,u;for(i<r&&(s=r,r=i,i=s),f=0,u=n.length;f<u;++f)n[f]>=r&&n[f]<=i&&(a<0&&(a=f),o=f);if(!(a<0))return r=t.invertExtent(n[a]),i=t.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function vd(){const t=Uh().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,a,o=!1,s=0,f=0,u=.5;delete t.unknown;function l(){const c=e().length,h=r[1]<r[0],d=r[1-h],g=md(c,s,f);let b=r[h-0];i=(d-b)/(g||1),o&&(i=Math.floor(i)),b+=(d-b-i*(c-s))*u,a=i*(1-s),o&&(b=Math.round(b),a=Math.round(a));const y=rs(c).map(w=>b+i*w);return n(h?y.reverse():y)}return t.domain=function(c){return arguments.length?(e(c),l()):e()},t.range=function(c){return arguments.length?(r=[+c[0],+c[1]],l()):r.slice()},t.rangeRound=function(c){return r=[+c[0],+c[1]],o=!0,l()},t.bandwidth=function(){return a},t.step=function(){return i},t.round=function(c){return arguments.length?(o=!!c,l()):o},t.padding=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),s=f,l()):s},t.paddingInner=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),l()):s},t.paddingOuter=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),l()):f},t.align=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),l()):u},t.invertRange=function(c){if(c[0]==null||c[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),g=d.length-1;let b=+c[0],y=+c[1],w,E,_;if(!(b!==b||y!==y)&&(y<b&&(_=b,b=y,y=_),!(y<d[0]||b>r[1-h])))return w=Math.max(0,th(d,b)-1),E=b===y?w:th(d,y)-1,b-d[w]>a+1e-10&&++w,h&&(_=w,w=g-E,E=g-_),w>E?void 0:e().slice(w,E+1)},t.invert=function(c){const h=t.invertRange([c,c]);return h&&h[0]},t.copy=function(){return vd().domain(e()).range(r).round(o).paddingInner(s).paddingOuter(f).align(u)},l()}function Hb(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return Hb(e())},t}function WI(){return Hb(vd().paddingInner(1))}var XI=Array.prototype.map;function $I(t){return XI.call(t,es)}const KI=Array.prototype.slice;function Qb(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(Fa(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=$I(r),n):t.slice()},n.range=function(r){return arguments.length?(e=KI.call(r),n):e.slice()},n.tickFormat=function(r,i){return yb(t[0],In(t),r??10,i)},n.copy=function(){return Qb().domain(n.domain()).range(n.range())},n}const nl={};function JI(t,e,n){const r=function(){const a=e();return a.invertRange||(a.invertRange=a.invert?ZI(a):a.invertExtent?YI(a):void 0),a.type=t,a};return r.metadata=yf(Xc(n)),r}function Ce(t,e,n){return arguments.length>1?(nl[t]=JI(t,e,n),this):eM(t)?nl[t]:void 0}Ce(qI,xb),Ce(Va,wb,ot),Ce(Kr,ud,[ot,Kr]),Ce(Rs,cd,ot),Ce(Os,PI,ot),Ce(tl,Db,ot),Ce(Ob,GI,[ot,Gb]),Ce(zb,HI,[ot,Gb]),Ce($n,dd,[ot,sn]),Ce("".concat($n,"-").concat(Va),dd,[ot,sn]),Ce("".concat($n,"-").concat(Kr),Fb,[ot,sn,Kr]),Ce("".concat($n,"-").concat(Rs),gd,[ot,sn]),Ce("".concat($n,"-").concat(Os),QI,[ot,sn]),Ce("".concat($n,"-").concat(tl),Bb,[ot,sn]),Ce("".concat(qa,"-").concat(Va),kb,[ot,sn]),Ce("".concat(qa,"-").concat(Kr),Lb,[ot,sn,Kr]),Ce("".concat(qa,"-").concat(Rs),pd,[ot,sn]),Ce("".concat(qa,"-").concat(Os),VI,[ot,sn]),Ce("".concat(qa,"-").concat(tl),Rb,[ot,sn]),Ce(bd,Mb,[Ps,bd]),Ce(Pb,Tb,Ps),Ce(Ub,Nb,Ps),Ce(xd,Qb,[zs,Ps]),Ce(yd,Uh,zs),Ce(jb,vd,zs),Ce(wd,WI,zs);function eM(t){return Fi(nl,t)}function Us(t,e){const n=nl[t];return n&&n.metadata[e]}function Et(t){return Us(t,ot)}function Jr(t){return Us(t,zs)}function Za(t){return Us(t,Ps)}function Vb(t){return Us(t,Kr)}function rl(t){return Us(t,sn)}function tM(t,e){const n=e[0],r=In(e)-n;return function(i){return t(n+i*r)}}function il(t,e,n){return id(qb(e||"rgb",n),t)}function nM(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function qb(t,e){const n=DI[rM(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function rM(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const iM={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},aM={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function Zb(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function Yb(t,e){for(const n in t)Ad(n,e(t[n]))}const Wb={};Yb(aM,Zb),Yb(iM,t=>il(Zb(t)));function Ad(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(Wb[t]=e,this):Wb[t]}function oM(){let t=0;const e=new Map,n=r=>{let i=e.get(r);return i===void 0&&(i=t++,e.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of e.entries())if(i[1]==r)return i[0]},n.domain=()=>[...e.keys()],n}function al(){const t=e=>e;return t.invert=e=>e,t.copy=al,t.invertRange=()=>{},t.type="null",t}function sM(t,e){const n={};e||(e=t.encoding);for(const[r,i]of Object.entries(e)){if(!i)continue;const a=((un(i)&&i.resolutionChannel)??($i(r)&&r))||void 0,o=t.unitView.getScaleResolution(a);n[r]=uM(e[r],o==null?void 0:o.getScale(),t.unitView.getAccessor(r),r)}return n}function uM(t,e,n,r){let i;if(Fn(t)){const a=t.value;i=o=>a,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=a=>{},i.accessor=n,i.constant=n.constant;else{if(!e)if(!$i(r))e=al();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(t)}`);if(i=a=>e(n(a)),Jr(e.type)){const a=oM();a.addAll(e.domain()),i.indexer=a}i.constant=n.constant,i.accessor=n,i.scale=e}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(t)}`);return i.invert=e?a=>e.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},i.channelDef=t,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function Fn(t){return t&&"value"in t}function js(t){return t&&"field"in t}function Gs(t){return t&&"datum"in t}function un(t){return js(t)||Gs(t)||Sd(t)||Xb(t)}function Ed(t,e){const n=t.mark.encoding[e];if(un(n))return n;throw new Error("Not a channel def with scale!")}function Xb(t){return t&&"chrom"in t}function Sd(t){return t&&"expr"in t}const Ya=["x","y"],fM=["x2","y2"],lM=[...Ya,...fM];function $b(t){return Ya.includes(t)}function Hs(t){return lM.includes(t)}const _d={x:"x2",y:"y2"},Kb=Object.fromEntries(Object.entries(_d).map(t=>[t[1],t[0]]));function Qs(t){return t in Kb}function cM(t){const e=_d[t];if(e)return e;throw new Error(`${t} has no secondary channel!`)}function Wi(t){return Kb[t]??t}function Xi(t){return["color","fill","stroke"].includes(Wi(t))}function ol(t){return["shape","squeeze"].includes(t)}function $i(t){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(t)}function Jb(t){switch(t){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function ey(t){if(!ol(t))throw new Error("Not a discrete channel: "+t);const e=new Map(Jb(t).map((n,r)=>[n,r]));return n=>{const r=e.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${t}" channel: ${n}`)}}function Be(t,e=t){if(/^[A-Za-z0-9_]+$/.test(t)){const n=new Function("datum",`return datum[${JSON.stringify(t)}]`);return de(n,[t],e)}else return cf(t)}class hM{constructor(){this.accessorCreators=[],this.register(e=>{if(js(e))try{const n=Be(e.field);return n.constant=!1,n.fields=Ni(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(e=>Sd(e)?dM(e.expr):void 0),this.register(e=>{if(Gs(e)){const r=QS(e.datum);return r.constant=!0,r.fields=[],r}})}register(e){this.accessorCreators.push(e)}createAccessor(e){for(const n of this.accessorCreators){const r=n(e);if(r)return r}}}function dM(t){const e=zh(t);return e.constant=e.fields.length==0,e}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
|
|
17
17
|
Available via the MIT license.
|
|
18
|
-
see: http://github.com/greggman/twgl.js for details */const Cd=5120,qs=5121,Dd=5122,Id=5123,Md=5124,Td=5125,Nd=5126,gM=32819,pM=32820,mM=33635,bM=5131,yM=33640,wM=35899,xM=35902,vM=36269,AM=34042,ey={};{const t=ey;t[Cd]=Int8Array,t[qs]=Uint8Array,t[Dd]=Int16Array,t[Id]=Uint16Array,t[Md]=Int32Array,t[Td]=Uint32Array,t[Nd]=Float32Array,t[gM]=Uint16Array,t[pM]=Uint16Array,t[mM]=Uint16Array,t[bM]=Uint16Array,t[yM]=Uint32Array,t[wM]=Uint32Array,t[xM]=Uint32Array,t[vM]=Uint32Array,t[AM]=Uint32Array}function Fd(t){if(t instanceof Int8Array)return Cd;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)return qs;if(t instanceof Int16Array)return Dd;if(t instanceof Uint16Array)return Id;if(t instanceof Int32Array)return Md;if(t instanceof Uint32Array)return Td;if(t instanceof Float32Array)return Nd;throw new Error("unsupported typed array type")}function EM(t){if(t===Int8Array)return Cd;if(t===Uint8Array||t===Uint8ClampedArray)return qs;if(t===Int16Array)return Dd;if(t===Uint16Array)return Id;if(t===Int32Array)return Md;if(t===Uint32Array)return Td;if(t===Float32Array)return Nd;throw new Error("unsupported typed array type")}function SM(t){const e=ey[t];if(!e)throw new Error("unknown gl type");return e}const sl=typeof SharedArrayBuffer<"u"?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};function _M(...t){console.error(...t)}function ty(...t){console.warn(...t)}function CM(t,e){return typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer}function ny(t,e){return typeof WebGLRenderbuffer<"u"&&e instanceof WebGLRenderbuffer}function ul(t,e){return typeof WebGLTexture<"u"&&e instanceof WebGLTexture}function DM(t,e){return typeof WebGLSampler<"u"&&e instanceof WebGLSampler}const ry=35044,Jn=34962,IM=34963,MM=34660,TM=5120,NM=5121,FM=5122,BM=5123,kM=5124,LM=5125,RM=5126,iy={attribPrefix:""};function ay(t,e,n,r,i){t.bindBuffer(e,n),t.bufferData(e,r,i||ry)}function oy(t,e,n,r){if(CM(t,e))return e;n=n||Jn;const i=t.createBuffer();return ay(t,n,i,e,r),i}function sy(t){return t==="indices"}function OM(t){return t instanceof Int8Array||t instanceof Uint8Array}function zM(t){return t===Int8Array||t===Uint8Array}function PM(t){return t.length?t:t.data}const UM=/coord|texture/i,jM=/color|colour/i;function uy(t,e){let n;if(UM.test(t)?n=2:jM.test(t)?n=4:n=3,e%n>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${n} but ${e} values is not evenly divisible by ${n}. You should specify it.`);return n}function GM(t,e){return t.numComponents||t.size||uy(e,PM(t).length)}function Bd(t,e){if(sl(t))return t;if(sl(t.data))return t.data;Array.isArray(t)&&(t={data:t});let n=t.type;return n||(sy(e)?n=Uint16Array:n=Float32Array),new n(t.data)}function HM(t,e){const n={};return Object.keys(e).forEach(function(r){if(!sy(r)){const i=e[r],a=i.attrib||i.name||i.attribName||iy.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!sl(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,f,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,u=i.numComponents||i.size,s=i.type,f=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const l=i.data||i,c=i.type||Float32Array,h=l*c.BYTES_PER_ELEMENT;s=EM(c),f=i.normalize!==void 0?i.normalize:zM(c),u=i.numComponents||i.size||uy(r,l),o=t.createBuffer(),t.bindBuffer(Jn,o),t.bufferData(Jn,h,i.drawType||ry)}else{const l=Bd(i,r);o=oy(t,l,void 0,i.drawType),s=Fd(l),f=i.normalize!==void 0?i.normalize:OM(l),u=GM(i,r)}n[a]={buffer:o,numComponents:u,type:s,normalize:f,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),t.bindBuffer(Jn,null),n}function QM(t,e,n,r){n=Bd(n),r!==void 0?(t.bindBuffer(Jn,e.buffer),t.bufferSubData(Jn,r,n)):ay(t,Jn,e.buffer,n,e.drawType)}function VM(t,e){return e===TM||e===NM?1:e===FM||e===BM?2:e===kM||e===LM||e===RM?4:0}const kd=["position","positions","a_position"];function qM(t,e){let n,r;for(r=0;r<kd.length&&(n=kd[r],!(n in e||(n=iy.attribPrefix+n,n in e)));++r);r===kd.length&&(n=Object.keys(e)[0]);const i=e[n];t.bindBuffer(Jn,i.buffer);const a=t.getBufferParameter(Jn,MM);t.bindBuffer(Jn,null);const o=VM(t,i.type),s=a/o,f=i.numComponents||i.size,u=s/f;if(u%1!==0)throw new Error(`numComponents ${f} not correct for length ${length}`);return u}function ZM(t,e,n){const r=HM(t,e),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=e.indices;if(a){const o=Bd(a,"indices");i.indices=oy(t,o,IM),i.numElements=o.length,i.elementType=Fd(o)}else i.numElements||(i.numElements=qM(t,i.attribs));return i}function Xa(t){return!!t.texStorage2D}const Ld=function(){const t={},e={};function n(r){const i=r.constructor.name;if(!t[i]){for(const a in r)if(typeof r[a]=="number"){const o=e[r[a]];e[r[a]]=o?`${o} | ${a}`:a}t[i]=!0}}return function(i,a){return n(i),e[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),ti={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},$a=sl,fy=function(){let t;return function(){return t=t||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),t}}(),ly=6406,er=6407,Qe=6408,cy=6409,hy=6410,Zs=6402,dy=34041,fl=33071,YM=9728,WM=9729,Ar=3553,Er=34067,ni=32879,ri=35866,ll=34069,XM=34070,$M=34071,KM=34072,JM=34073,e8=34074,Rd=10241,Od=10240,cl=10242,hl=10243,gy=32882,t8=33082,n8=33083,r8=33084,i8=33085,zd=3317,py=3314,my=32878,by=3316,yy=3315,wy=32877,a8=37443,o8=37441,s8=37440,u8=33321,f8=36756,l8=33325,c8=33326,h8=33330,d8=33329,g8=33338,p8=33337,m8=33340,b8=33339,y8=33323,w8=36757,x8=33327,v8=33328,A8=33336,E8=33335,S8=33332,_8=33331,C8=33334,D8=33333,I8=32849,M8=35905,T8=36194,N8=36758,F8=35898,B8=35901,k8=34843,L8=34837,R8=36221,O8=36239,z8=36215,P8=36233,U8=36209,j8=36227,G8=32856,H8=35907,Q8=36759,V8=32855,q8=32854,Z8=32857,Y8=34842,W8=34836,X8=36220,$8=36238,K8=36975,J8=36214,eT=36232,tT=36226,nT=36208,rT=33189,iT=33190,aT=36012,oT=36013,sT=35056,ii=5120,Ve=5121,dl=5122,Ka=5123,gl=5124,Ki=5125,Et=5126,xy=32819,vy=32820,Ay=33635,Bn=5131,Ys=36193,Pd=33640,uT=35899,fT=35902,lT=36269,cT=34042,pl=33319,Ja=33320,ml=6403,eo=36244,to=36248,Ji=36249;let Ud;function bl(t){if(!Ud){const e={};e[ly]={textureFormat:ly,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,Bn,Ys,Et]},e[cy]={textureFormat:cy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,Bn,Ys,Et]},e[hy]={textureFormat:hy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,Bn,Ys,Et]},e[er]={textureFormat:er,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,Bn,Ys,Et,Ay]},e[Qe]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,Bn,Ys,Et,xy,vy]},e[Zs]={textureFormat:Zs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ki,Ka]},e[u8]={textureFormat:ml,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},e[f8]={textureFormat:ml,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[ii]},e[l8]={textureFormat:ml,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Et,Bn]},e[c8]={textureFormat:ml,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Et]},e[h8]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},e[d8]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ii]},e[S8]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ka]},e[_8]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[dl]},e[C8]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ki]},e[D8]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[gl]},e[y8]={textureFormat:pl,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},e[w8]={textureFormat:pl,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[ii]},e[x8]={textureFormat:pl,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Et,Bn]},e[v8]={textureFormat:pl,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Et]},e[A8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},e[E8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ii]},e[g8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ka]},e[p8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[dl]},e[m8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ki]},e[b8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[gl]},e[I8]={textureFormat:er,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},e[M8]={textureFormat:er,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},e[T8]={textureFormat:er,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,Ay]},e[N8]={textureFormat:er,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ii]},e[F8]={textureFormat:er,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,Bn,uT]},e[B8]={textureFormat:er,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,Bn,fT]},e[k8]={textureFormat:er,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Et,Bn]},e[L8]={textureFormat:er,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Et]},e[R8]={textureFormat:to,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},e[O8]={textureFormat:to,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ii]},e[z8]={textureFormat:to,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ka]},e[P8]={textureFormat:to,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[dl]},e[U8]={textureFormat:to,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ki]},e[j8]={textureFormat:to,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[gl]},e[G8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},e[H8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},e[Q8]={textureFormat:Qe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[ii]},e[V8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,vy,Pd]},e[q8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,xy]},e[Z8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Pd]},e[Y8]={textureFormat:Qe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Et,Bn]},e[W8]={textureFormat:Qe,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Et]},e[X8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},e[$8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ii]},e[K8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Pd]},e[J8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ka]},e[eT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[dl]},e[tT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[gl]},e[nT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Ki]},e[rT]={textureFormat:Zs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ka,Ki]},e[iT]={textureFormat:Zs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ki]},e[aT]={textureFormat:Zs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Et]},e[sT]={textureFormat:dy,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cT]},e[oT]={textureFormat:dy,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[lT]},Object.keys(e).forEach(function(n){const r=e[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),Ud=e}return Ud[t]}function hT(t,e){const n=bl(t);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[e];if(r===void 0)throw"unknown internal format";return r}function no(t){const e=bl(t);if(!e)throw"unknown internal format";return{format:e.textureFormat,type:e.type[0]}}function Ey(t){return(t&t-1)===0}function dT(t,e,n,r){if(!Xa(t))return Ey(e)&&Ey(n);const i=bl(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function gT(t){const e=bl(t);if(!e)throw"unknown internal format";return e.textureFilterable}function Sy(t,e,n){return $a(e)?Fd(e):n||Ve}function yl(t,e,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(e===Er?6:1));a%1===0?(n=a,r=a):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function ro(t,e){e.colorspaceConversion!==void 0&&t.pixelStorei(a8,e.colorspaceConversion),e.premultiplyAlpha!==void 0&&t.pixelStorei(o8,e.premultiplyAlpha),e.flipY!==void 0&&t.pixelStorei(s8,e.flipY)}function _y(t){t.pixelStorei(zd,4),Xa(t)&&(t.pixelStorei(py,0),t.pixelStorei(my,0),t.pixelStorei(by,0),t.pixelStorei(yy,0),t.pixelStorei(wy,0))}function pT(t,e,n,r){r.minMag&&(n.call(t,e,Rd,r.minMag),n.call(t,e,Od,r.minMag)),r.min&&n.call(t,e,Rd,r.min),r.mag&&n.call(t,e,Od,r.mag),r.wrap&&(n.call(t,e,cl,r.wrap),n.call(t,e,hl,r.wrap),(e===ni||DM(t,e))&&n.call(t,e,gy,r.wrap)),r.wrapR&&n.call(t,e,gy,r.wrapR),r.wrapS&&n.call(t,e,cl,r.wrapS),r.wrapT&&n.call(t,e,hl,r.wrapT),r.minLod&&n.call(t,e,t8,r.minLod),r.maxLod&&n.call(t,e,n8,r.maxLod),r.baseLevel&&n.call(t,e,r8,r.baseLevel),r.maxLevel&&n.call(t,e,i8,r.maxLevel)}function Cy(t,e,n){const r=n.target||Ar;t.bindTexture(r,e),pT(t,r,t.texParameteri,n)}function mT(t){return t=t||ti.textureColor,$a(t)?t:new Uint8Array([t[0]*255,t[1]*255,t[2]*255,t[3]*255])}function jd(t,e,n,r,i,a){n=n||ti.textureOptions,a=a||Qe;const o=n.target||Ar;if(r=r||n.width,i=i||n.height,t.bindTexture(o,e),dT(t,r,i,a))t.generateMipmap(o);else{const s=gT(a)?WM:YM;t.texParameteri(o,Rd,s),t.texParameteri(o,Od,s),t.texParameteri(o,cl,fl),t.texParameteri(o,hl,fl)}}function Ws(t){return t.auto===!0||t.auto===void 0&&t.level===void 0}function Gd(t,e){return e=e||{},e.cubeFaceOrder||[ll,XM,$M,KM,JM,e8]}function Hd(t,e){const r=Gd(t,e).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function Dy(t,e,n,r){r=r||ti.textureOptions;const i=r.target||Ar,a=r.level||0;let o=n.width,s=n.height;const f=r.internalFormat||r.format||Qe,u=no(f),l=r.format||u.format,c=r.type||u.type;if(ro(t,r),t.bindTexture(i,e),i===Er){const h=n.width,d=n.height;let g,b;if(h/6===d)g=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)g=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)g=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)g=h/2,b=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=fy();y?(y.canvas.width=g,y.canvas.height=g,o=g,s=g,Hd(t,r).forEach(function(w){const E=b[w.ndx*2+0]*g,_=b[w.ndx*2+1]*g;y.drawImage(n,E,_,g,g,0,0,g,g),t.texImage2D(w.face,a,f,l,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=g,s=g,Hd(t,r).forEach(function(w){const E=b[w.ndx*2+0]*g,_=b[w.ndx*2+1]*g;t.texImage2D(w.face,a,f,g,g,0,l,c,null),createImageBitmap(n,E,_,g,g,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(D){ro(t,r),t.bindTexture(i,e),t.texImage2D(w.face,a,f,l,c,D),Ws(r)&&jd(t,e,r,o,s,f)})}))}else if(i===ni||i===ri){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),g=d/h;if(g%1!==0)throw"can not compute 3D dimensions of element";const b=n.width===d?1:0,y=n.height===d?1:0;t.pixelStorei(zd,1),t.pixelStorei(py,n.width),t.pixelStorei(my,0),t.pixelStorei(wy,0),t.texImage3D(i,a,f,h,h,h,0,l,c,null);for(let w=0;w<g;++w){const E=w*h*b,_=w*h*y;t.pixelStorei(by,E),t.pixelStorei(yy,_),t.texSubImage3D(i,a,0,0,w,h,h,1,l,c,n)}_y(t)}else t.texImage2D(i,a,f,l,c,n);Ws(r)&&jd(t,e,r,o,s,f),Cy(t,e,r)}function Xs(){}function bT(t){if(typeof document<"u"){const e=document.createElement("a");return e.href=t,e.hostname===location.hostname&&e.port===location.port&&e.protocol===location.protocol}else{const e=new URL(location.href).origin;return new URL(t,location.href).origin===e}}function yT(t,e){return e===void 0&&!bT(t)?"anonymous":e}function wT(t,e,n){n=n||Xs;let r;if(e=e!==void 0?e:ti.crossOrigin,e=yT(t,e),typeof Image<"u"){r=new Image,e!==void 0&&(r.crossOrigin=e);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const f="couldn't load image: "+t;_M(f),n(f,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=t,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};e&&(s.mode="cors"),fetch(t,s).then(function(f){if(!f.ok)throw f;return f.blob()}).then(function(f){return createImageBitmap(f,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(f){a=f,setTimeout(o)}).catch(function(f){i=f,setTimeout(o)}),r=null}return r}function Iy(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof ImageData<"u"&&t instanceof ImageData||typeof HTMLElement<"u"&&t instanceof HTMLElement}function Qd(t,e,n){return Iy(t)?(setTimeout(function(){n(null,t)}),t):wT(t,e,n)}function Vd(t,e,n){n=n||ti.textureOptions;const r=n.target||Ar;if(t.bindTexture(r,e),n.color===!1)return;const i=mT(n.color);if(r===Er)for(let a=0;a<6;++a)t.texImage2D(ll+a,0,Qe,1,1,0,Qe,Ve,i);else r===ni||r===ri?t.texImage3D(r,0,Qe,1,1,1,0,Qe,Ve,i):t.texImage2D(r,0,Qe,1,1,0,Qe,Ve,i)}function xT(t,e,n,r){return r=r||Xs,n=n||ti.textureOptions,Vd(t,e,n),n=Object.assign({},n),Qd(n.src,n.crossOrigin,function(a,o){a?r(a,e,o):(Dy(t,e,o,n),r(null,e,o))})}function vT(t,e,n,r){r=r||Xs;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const a=n.level||0,o=n.internalFormat||n.format||Qe,s=no(o),f=n.format||s.format,u=n.type||Ve,l=n.target||Ar;if(l!==Er)throw"target must be TEXTURE_CUBE_MAP";Vd(t,e,n),n=Object.assign({},n);let c=6;const h=[],d=Gd(t,n);let g;function b(y){return function(w,E){--c,w?h.push(w):E.width!==E.height?h.push("cubemap face img is not a square: "+E.src):(ro(t,n),t.bindTexture(l,e),c===5?Gd().forEach(function(_){t.texImage2D(_,a,o,f,u,E)}):t.texImage2D(y,a,o,f,u,E),Ws(n)&&t.generateMipmap(l)),c===0&&r(h.length?h:void 0,e,g)}}g=i.map(function(y,w){return Qd(y,n.crossOrigin,b(d[w]))})}function AT(t,e,n,r){r=r||Xs;const i=n.src,a=n.internalFormat||n.format||Qe,o=no(a),s=n.format||o.format,f=n.type||Ve,u=n.target||ri;if(u!==ni&&u!==ri)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Vd(t,e,n),n=Object.assign({},n);let l=i.length;const c=[];let h;const d=n.level||0;let g=n.width,b=n.height;const y=i.length;let w=!0;function E(_){return function(D,T){if(--l,D)c.push(D);else{if(ro(t,n),t.bindTexture(u,e),w){w=!1,g=n.width||T.width,b=n.height||T.height,t.texImage3D(u,d,a,g,b,y,0,s,f,null);for(let N=0;N<y;++N)t.texSubImage3D(u,d,0,0,N,g,b,1,s,f,T)}else{let N=T,M;(T.width!==g||T.height!==b)&&(M=fy(),N=M.canvas,M.canvas.width=g,M.canvas.height=b,M.drawImage(T,0,0,g,b)),t.texSubImage3D(u,d,0,0,_,g,b,1,s,f,N),M&&N===M.canvas&&(M.canvas.width=0,M.canvas.height=0)}Ws(n)&&t.generateMipmap(u)}l===0&&r(c.length?c:void 0,e,h)}}h=i.map(function(_,D){return Qd(_,n.crossOrigin,E(D))})}function My(t,e,n,r){r=r||ti.textureOptions;const i=r.target||Ar;t.bindTexture(i,e);let a=r.width,o=r.height,s=r.depth;const f=r.level||0,u=r.internalFormat||r.format||Qe,l=no(u),c=r.format||l.format,h=r.type||Sy(t,n,l.type);if($a(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=SM(h);n=new y(n)}const d=hT(u,h),g=n.byteLength/d;if(g%1)throw"length wrong size for format: "+Ld(t,c);let b;if(i===ni||i===ri)if(!a&&!o&&!s){const y=Math.cbrt(g);if(y%1!==0)throw"can't guess cube size of array of numElements: "+g;a=y,o=y,s=y}else a&&(!o||!s)?(b=yl(t,i,o,s,g/a),o=b.width,s=b.height):o&&(!a||!s)?(b=yl(t,i,a,s,g/o),a=b.width,s=b.height):(b=yl(t,i,a,o,g/s),a=b.width,o=b.height);else b=yl(t,i,a,o,g),a=b.width,o=b.height;if(_y(t),t.pixelStorei(zd,r.unpackAlignment||1),ro(t,r),i===Er){const y=d/n.BYTES_PER_ELEMENT,w=g/6*y;Hd(t,r).forEach(E=>{const _=w*E.ndx,D=n.subarray(_,_+w);t.texImage2D(E.face,f,u,a,o,0,c,h,D)})}else i===ni||i===ri?t.texImage3D(i,f,u,a,o,s,0,c,h,n):t.texImage2D(i,f,u,a,o,0,c,h,n);return{width:a,height:o,depth:s,type:h}}function ET(t,e,n){const r=n.target||Ar;t.bindTexture(r,e);const i=n.level||0,a=n.internalFormat||n.format||Qe,o=no(a),s=n.format||o.format,f=n.type||o.type;if(ro(t,n),r===Er)for(let u=0;u<6;++u)t.texImage2D(ll+u,i,a,n.width,n.height,0,s,f,null);else r===ni||r===ri?t.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,f,null):t.texImage2D(r,i,a,n.width,n.height,0,s,f,null)}function $s(t,e,n){n=n||Xs,e=e||ti.textureOptions;const r=t.createTexture(),i=e.target||Ar;let a=e.width||1,o=e.height||1;const s=e.internalFormat||Qe;t.bindTexture(i,r),i===Er&&(t.texParameteri(i,cl,fl),t.texParameteri(i,hl,fl));let f=e.src;if(f)if(typeof f=="function"&&(f=f(t,e)),typeof f=="string")xT(t,r,e,n);else if($a(f)||Array.isArray(f)&&(typeof f[0]=="number"||Array.isArray(f[0])||$a(f[0]))){const u=My(t,r,f,e);a=u.width,o=u.height}else Array.isArray(f)&&(typeof f[0]=="string"||Iy(f[0]))?i===Er?vT(t,r,e,n):AT(t,r,e,n):(Dy(t,r,f,e),a=f.width,o=f.height);else ET(t,r,e);return Ws(e)&&jd(t,r,e,a,o,s),Cy(t,r,e),r}function ST(t,e,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||Ar;t.bindTexture(o,e);const s=n.level||0,f=n.internalFormat||n.format||Qe,u=no(f),l=n.format||u.format;let c;const h=n.src;if(h&&($a(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||Sy(t,h,u.type):c=n.type||u.type,o===Er)for(let d=0;d<6;++d)t.texImage2D(ll+d,s,f,r,i,0,l,c,null);else o===ni||o===ri?t.texImage3D(o,s,f,r,i,a,0,l,c,null):t.texImage2D(o,s,f,r,i,0,l,c,null)}const _T=ty,wl=33984,CT=35048,xl=34962,DT=34963,qd=35345,Ty=35718,IT=35721,MT=35971,TT=35382,NT=35396,FT=35398,BT=35392,kT=35395,vl=5126,Ny=35664,Fy=35665,By=35666,Zd=5124,ky=35667,Ly=35668,Ry=35669,Oy=35670,zy=35671,Py=35672,Uy=35673,jy=35674,Gy=35675,Hy=35676,LT=35678,RT=35680,OT=35679,zT=35682,PT=35685,UT=35686,jT=35687,GT=35688,HT=35689,QT=35690,VT=36289,qT=36292,ZT=36293,Yd=5125,Qy=36294,Vy=36295,qy=36296,YT=36298,WT=36299,XT=36300,$T=36303,KT=36306,JT=36307,e6=36308,t6=36311,Al=3553,El=34067,Wd=32879,Sl=35866,ue={};function Zy(t,e){return ue[e].bindPoint}function n6(t,e){return function(n){t.uniform1f(e,n)}}function r6(t,e){return function(n){t.uniform1fv(e,n)}}function i6(t,e){return function(n){t.uniform2fv(e,n)}}function a6(t,e){return function(n){t.uniform3fv(e,n)}}function o6(t,e){return function(n){t.uniform4fv(e,n)}}function Yy(t,e){return function(n){t.uniform1i(e,n)}}function Wy(t,e){return function(n){t.uniform1iv(e,n)}}function Xy(t,e){return function(n){t.uniform2iv(e,n)}}function $y(t,e){return function(n){t.uniform3iv(e,n)}}function Ky(t,e){return function(n){t.uniform4iv(e,n)}}function s6(t,e){return function(n){t.uniform1ui(e,n)}}function u6(t,e){return function(n){t.uniform1uiv(e,n)}}function f6(t,e){return function(n){t.uniform2uiv(e,n)}}function l6(t,e){return function(n){t.uniform3uiv(e,n)}}function c6(t,e){return function(n){t.uniform4uiv(e,n)}}function h6(t,e){return function(n){t.uniformMatrix2fv(e,!1,n)}}function d6(t,e){return function(n){t.uniformMatrix3fv(e,!1,n)}}function g6(t,e){return function(n){t.uniformMatrix4fv(e,!1,n)}}function p6(t,e){return function(n){t.uniformMatrix2x3fv(e,!1,n)}}function m6(t,e){return function(n){t.uniformMatrix3x2fv(e,!1,n)}}function b6(t,e){return function(n){t.uniformMatrix2x4fv(e,!1,n)}}function y6(t,e){return function(n){t.uniformMatrix4x2fv(e,!1,n)}}function w6(t,e){return function(n){t.uniformMatrix3x4fv(e,!1,n)}}function x6(t,e){return function(n){t.uniformMatrix4x3fv(e,!1,n)}}function It(t,e,n,r){const i=Zy(t,e);return Xa(t)?function(a){let o,s;ul(t,a)?(o=a,s=null):(o=a.texture,s=a.sampler),t.uniform1i(r,n),t.activeTexture(wl+n),t.bindTexture(i,o),t.bindSampler(n,s)}:function(a){t.uniform1i(r,n),t.activeTexture(wl+n),t.bindTexture(i,a)}}function Mt(t,e,n,r,i){const a=Zy(t,e),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Xa(t)?function(s){t.uniform1iv(r,o),s.forEach(function(f,u){t.activeTexture(wl+o[u]);let l,c;ul(t,f)?(l=f,c=null):(l=f.texture,c=f.sampler),t.bindSampler(n,c),t.bindTexture(a,l)})}:function(s){t.uniform1iv(r,o),s.forEach(function(f,u){t.activeTexture(wl+o[u]),t.bindTexture(a,f)})}}ue[vl]={Type:Float32Array,size:4,setter:n6,arraySetter:r6},ue[Ny]={Type:Float32Array,size:8,setter:i6,cols:2},ue[Fy]={Type:Float32Array,size:12,setter:a6,cols:3},ue[By]={Type:Float32Array,size:16,setter:o6,cols:4},ue[Zd]={Type:Int32Array,size:4,setter:Yy,arraySetter:Wy},ue[ky]={Type:Int32Array,size:8,setter:Xy,cols:2},ue[Ly]={Type:Int32Array,size:12,setter:$y,cols:3},ue[Ry]={Type:Int32Array,size:16,setter:Ky,cols:4},ue[Yd]={Type:Uint32Array,size:4,setter:s6,arraySetter:u6},ue[Qy]={Type:Uint32Array,size:8,setter:f6,cols:2},ue[Vy]={Type:Uint32Array,size:12,setter:l6,cols:3},ue[qy]={Type:Uint32Array,size:16,setter:c6,cols:4},ue[Oy]={Type:Uint32Array,size:4,setter:Yy,arraySetter:Wy},ue[zy]={Type:Uint32Array,size:8,setter:Xy,cols:2},ue[Py]={Type:Uint32Array,size:12,setter:$y,cols:3},ue[Uy]={Type:Uint32Array,size:16,setter:Ky,cols:4},ue[jy]={Type:Float32Array,size:32,setter:h6,rows:2,cols:2},ue[Gy]={Type:Float32Array,size:48,setter:d6,rows:3,cols:3},ue[Hy]={Type:Float32Array,size:64,setter:g6,rows:4,cols:4},ue[PT]={Type:Float32Array,size:32,setter:p6,rows:2,cols:3},ue[UT]={Type:Float32Array,size:32,setter:b6,rows:2,cols:4},ue[jT]={Type:Float32Array,size:48,setter:m6,rows:3,cols:2},ue[GT]={Type:Float32Array,size:48,setter:w6,rows:3,cols:4},ue[HT]={Type:Float32Array,size:64,setter:y6,rows:4,cols:2},ue[QT]={Type:Float32Array,size:64,setter:x6,rows:4,cols:3},ue[LT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[RT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[OT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Wd},ue[zT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[VT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl},ue[qT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl},ue[ZT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[YT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[WT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Wd},ue[XT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[$T]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl},ue[KT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[JT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Wd},ue[e6]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[t6]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl};function _l(t,e){return function(n){if(n.value)switch(t.disableVertexAttribArray(e),n.value.length){case 4:t.vertexAttrib4fv(e,n.value);break;case 3:t.vertexAttrib3fv(e,n.value);break;case 2:t.vertexAttrib2fv(e,n.value);break;case 1:t.vertexAttrib1fv(e,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else t.bindBuffer(xl,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,n.numComponents||n.size,n.type||vl,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function ai(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4iv(e,n.value);else throw new Error("The length of an integer constant value must be 4!");else t.bindBuffer(xl,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Zd,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Cl(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4uiv(e,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else t.bindBuffer(xl,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Yd,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Xd(t,e,n){const r=n.size,i=n.count;return function(a){t.bindBuffer(xl,a.buffer);const o=a.size||a.numComponents||r,s=o/i,f=a.type||vl,l=ue[f].size*o,c=a.normalize||!1,h=a.offset||0,d=l/i;for(let g=0;g<i;++g)t.enableVertexAttribArray(e+g),t.vertexAttribPointer(e+g,s,f,c,l,h+d*g),a.divisor!==void 0&&t.vertexAttribDivisor(e+g,a.divisor)}}const rt={};rt[vl]={size:4,setter:_l},rt[Ny]={size:8,setter:_l},rt[Fy]={size:12,setter:_l},rt[By]={size:16,setter:_l},rt[Zd]={size:4,setter:ai},rt[ky]={size:8,setter:ai},rt[Ly]={size:12,setter:ai},rt[Ry]={size:16,setter:ai},rt[Yd]={size:4,setter:Cl},rt[Qy]={size:8,setter:Cl},rt[Vy]={size:12,setter:Cl},rt[qy]={size:16,setter:Cl},rt[Oy]={size:4,setter:ai},rt[zy]={size:8,setter:ai},rt[Py]={size:12,setter:ai},rt[Uy]={size:16,setter:ai},rt[jy]={size:4,setter:Xd,count:2},rt[Gy]={size:9,setter:Xd,count:3},rt[Hy]={size:16,setter:Xd,count:4};function Jy(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const v6=/(\.|\[|]|\w+)/g,A6=t=>t>="0"&&t<="9";function ew(t,e,n,r){const i=t.split(v6).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const f=A6(s[0]),u=f?parseInt(s):s;if(f&&(o+=i[a++]),a===i.length){n[u]=e;break}else{const c=i[a++],h=c==="[",d=n[u]||(h?[]:{});n[u]=d,n=d,r[o]=r[o]||function(g){return function(b){aw(g,b)}}(d),o+=c}}}function E6(t,e){let n=0;function r(s,f,u){const l=f.name.endsWith("[0]"),c=f.type,h=ue[c];if(!h)throw new Error(`unknown type: 0x${c.toString(16)}`);let d;if(h.bindPoint){const g=n;n+=f.size,l?d=h.arraySetter(t,c,g,u,f.size):d=h.setter(t,c,g,u,f.size)}else h.arraySetter&&l?d=h.arraySetter(t,u):d=h.setter(t,u);return d.location=u,d}const i={},a={},o=t.getProgramParameter(e,Ty);for(let s=0;s<o;++s){const f=t.getActiveUniform(e,s);if(Jy(f))continue;let u=f.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const l=t.getUniformLocation(e,f.name);if(l){const c=r(e,f,l);i[u]=c,ew(u,c,a,i)}}return i}function S6(t,e){const n={},r=t.getProgramParameter(e,MT);for(let i=0;i<r;++i){const a=t.getTransformFeedbackVarying(e,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function _6(t,e){const n=t.getProgramParameter(e,Ty),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const f=t.getActiveUniform(e,s);r[s].name=f.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const f=s[0],u=s[1];t.getActiveUniforms(e,i,t[f]).forEach(function(l,c){r[c][u]=l})});const a={},o=t.getProgramParameter(e,TT);for(let s=0;s<o;++s){const f=t.getActiveUniformBlockName(e,s),u={index:t.getUniformBlockIndex(e,f),usedByVertexShader:t.getActiveUniformBlockParameter(e,s,NT),usedByFragmentShader:t.getActiveUniformBlockParameter(e,s,FT),size:t.getActiveUniformBlockParameter(e,s,BT),uniformIndices:t.getActiveUniformBlockParameter(e,s,kT)};u.used=u.usedByVertexShader||u.usedByFragmentShader,a[f]=u}return{blockSpecs:a,uniformData:r}}const tw=/\[\d+\]\.$/,C6=(t,e)=>((t+(e-1))/e|0)*e;function D6(t,e,n,r){if(e||n){r=r||1;const a=t.length/4;return function(o){let s=0,f=0;for(let u=0;u<a;++u){for(let l=0;l<r;++l)t[s++]=o[f++];s+=4-r}}}else return function(i){i.length?t.set(i):t[0]=i}}function I6(t,e,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return _T("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),f=t.createBuffer(),u=o.index;t.bindBuffer(qd,f),t.uniformBlockBinding(e,o.index,u);let l=r+".";tw.test(l)&&(l=l.replace(tw,"."));const c={},h={},d={};return o.uniformIndices.forEach(function(g){const b=a[g];let y=b.name;y.startsWith(l)&&(y=y.substr(l.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const E=ue[b.type],_=E.Type,D=w?C6(E.size,16)*b.size:E.size*b.size,T=new _(s,b.offset,D/_.BYTES_PER_ELEMENT);c[y]=T;const N=D6(T,w,E.rows,E.cols);h[y]=N,ew(y,N,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:f,uniforms:c,setters:h}}function nw(t,e,n){return I6(t,e.program,e.uniformBlockSpec,n)}function M6(t,e,n){const i=(e.uniformBlockSpec||e).blockSpecs[n.name];if(i){const a=i.index;return t.bindBufferRange(qd,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function rw(t,e,n){M6(t,e,n)&&t.bufferData(qd,n.array,CT)}function iw(t,e){const n=t.setters;for(const r in e){const i=n[r];if(i){const a=e[r];i(a)}}}function aw(t,e){for(const n in e){const r=t[n];typeof r=="function"?r(e[n]):aw(t[n],e[n])}}function $t(t,...e){const n=t.uniformSetters||t,r=e.length;for(let i=0;i<r;++i){const a=e[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)$t(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function T6(t,e){const n={},r=t.getProgramParameter(e,IT);for(let i=0;i<r;++i){const a=t.getActiveAttrib(e,i);if(Jy(a))continue;const o=t.getAttribLocation(e,a.name),s=rt[a.type],f=s.setter(t,o,s);f.location=o,n[a.name]=f}return n}function N6(t,e){for(const n in e){const r=t[n];r&&r(e[n])}}function io(t,e,n){n.vertexArrayObject?t.bindVertexArray(n.vertexArrayObject):(N6(e.attribSetters||e,n.attribs),n.indices&&t.bindBuffer(DT,n.indices))}function F6(t,e){const n=E6(t,e),r=T6(t,e),i={program:e,uniformSetters:n,attribSetters:r};return Xa(t)&&(i.uniformBlockSpec=_6(t,e),i.transformFeedbackInfo=S6(t,e)),i}const B6=4,ow=5123;function Ks(t,e,n,r,i,a){n=n===void 0?B6:n;const o=e.indices,s=e.elementType,f=r===void 0?e.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?t.drawElementsInstanced(n,f,s===void 0?ow:e.elementType,i,a):t.drawElements(n,f,s===void 0?ow:e.elementType,i):a!==void 0?t.drawArraysInstanced(n,i,f,a):t.drawArrays(n,i,f)}const k6=36160,ea=36161,L6=3553,R6=5121,O6=6402,z6=6408,P6=33190,U6=36012,j6=35056,G6=36013,H6=32854,Q6=32855,V6=36194,sw=33189,uw=6401,fw=36168,$d=34041,q6=36064,Dl=36096,lw=36128,Kd=33306,Jd=33071,e0=9729,cw=[{format:z6,type:R6,min:e0,wrap:Jd},{format:$d}],kn={};kn[$d]=Kd,kn[uw]=lw,kn[fw]=lw,kn[O6]=Dl,kn[sw]=Dl,kn[P6]=Dl,kn[U6]=Dl,kn[j6]=Kd,kn[G6]=Kd;function Z6(t,e){return kn[t]||kn[e]}const oi={};oi[H6]=!0,oi[Q6]=!0,oi[V6]=!0,oi[$d]=!0,oi[sw]=!0,oi[uw]=!0,oi[fw]=!0;function Y6(t){return oi[t]}function W6(t,e,n,r){const i=k6,a=t.createFramebuffer();t.bindFramebuffer(i,a),n=n||t.drawingBufferWidth,r=r||t.drawingBufferHeight,e=e||cw;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return e.forEach(function(f){let u=f.attachment;const l=f.samples,c=f.format;let h=f.attachmentPoint||Z6(c,f.internalFormat);if(h||(h=q6+o++),!u)if(l!==void 0||Y6(c))u=t.createRenderbuffer(),t.bindRenderbuffer(ea,u),l>1?t.renderbufferStorageMultisample(ea,l,c,n,r):t.renderbufferStorage(ea,c,n,r);else{const d=Object.assign({},f);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||e0,d.mag=d.mag||d.minMag||e0,d.wrapS=d.wrapS||d.wrap||Jd,d.wrapT=d.wrapT||d.wrap||Jd),u=$s(t,d)}if(ny(t,u))t.framebufferRenderbuffer(i,h,ea,u);else if(ul(t,u))f.layer!==void 0?t.framebufferTextureLayer(i,h,u,f.level||0,f.layer):t.framebufferTexture2D(i,h,f.target||L6,u,f.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function X6(t,e,n,r,i){r=r||t.drawingBufferWidth,i=i||t.drawingBufferHeight,e.width=r,e.height=i,n=n||cw,n.forEach(function(a,o){const s=e.attachments[o],f=a.format,u=a.samples;if(u!==void 0||ny(t,s))t.bindRenderbuffer(ea,s),u>1?t.renderbufferStorageMultisample(ea,u,f,r,i):t.renderbufferStorage(ea,f,r,i);else if(ul(t,s))ST(t,s,a,r,i);else throw new Error("unknown attachment type")})}function $6(t,e,n){const r=t.createVertexArray();return t.bindVertexArray(r),e.length||(e=[e]),e.forEach(function(i){io(t,i,n)}),t.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const K6=/^(.*?)_/;function J6(t,e){Ld(t,0);const n=t.getExtension(e);if(n){const r={},i=K6.exec(e)[1],a="_"+i;for(const o in n){const s=n[o],f=typeof s=="function",u=f?i:a;let l=o;o.endsWith(u)&&(l=o.substring(0,o.length-u.length)),t[l]!==void 0?!f&&t[l]!==s&&ty(l,t[l],s,o):f?t[l]=function(c){return function(){return c.apply(n,arguments)}}(s):(t[l]=s,r[l]=s)}r.constructor={name:n.constructor.name},Ld(r,0)}return n}const hw=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function dw(t){for(let e=0;e<hw.length;++e)J6(t,hw[e])}function eN(t,e){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=t.getContext(n[i],e),r){dw(r);break}return r}function tN(t,e){return eN(t,e)}const nN=`/***The vertex position wrt the rectangle specified by(x,x2,y,y2).*[0,0]=[x,y],[1,1]=[x2,y2].*The x or y component may contain fractional values if the rectangle*have been tessellated.*/in vec2 frac;uniform vec2 uMinSize;uniform float uMinOpacity;uniform vec4 uCornerRadii;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
|
|
18
|
+
see: http://github.com/greggman/twgl.js for details */const Cd=5120,Vs=5121,Dd=5122,Id=5123,Md=5124,Td=5125,Nd=5126,gM=32819,pM=32820,mM=33635,bM=5131,yM=33640,wM=35899,xM=35902,vM=36269,AM=34042,ty={};{const t=ty;t[Cd]=Int8Array,t[Vs]=Uint8Array,t[Dd]=Int16Array,t[Id]=Uint16Array,t[Md]=Int32Array,t[Td]=Uint32Array,t[Nd]=Float32Array,t[gM]=Uint16Array,t[pM]=Uint16Array,t[mM]=Uint16Array,t[bM]=Uint16Array,t[yM]=Uint32Array,t[wM]=Uint32Array,t[xM]=Uint32Array,t[vM]=Uint32Array,t[AM]=Uint32Array}function Fd(t){if(t instanceof Int8Array)return Cd;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)return Vs;if(t instanceof Int16Array)return Dd;if(t instanceof Uint16Array)return Id;if(t instanceof Int32Array)return Md;if(t instanceof Uint32Array)return Td;if(t instanceof Float32Array)return Nd;throw new Error("unsupported typed array type")}function EM(t){if(t===Int8Array)return Cd;if(t===Uint8Array||t===Uint8ClampedArray)return Vs;if(t===Int16Array)return Dd;if(t===Uint16Array)return Id;if(t===Int32Array)return Md;if(t===Uint32Array)return Td;if(t===Float32Array)return Nd;throw new Error("unsupported typed array type")}function SM(t){const e=ty[t];if(!e)throw new Error("unknown gl type");return e}const sl=typeof SharedArrayBuffer<"u"?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};function _M(...t){console.error(...t)}function ny(...t){console.warn(...t)}function CM(t,e){return typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer}function ry(t,e){return typeof WebGLRenderbuffer<"u"&&e instanceof WebGLRenderbuffer}function ul(t,e){return typeof WebGLTexture<"u"&&e instanceof WebGLTexture}function DM(t,e){return typeof WebGLSampler<"u"&&e instanceof WebGLSampler}const iy=35044,Kn=34962,IM=34963,MM=34660,TM=5120,NM=5121,FM=5122,BM=5123,kM=5124,LM=5125,RM=5126,ay={attribPrefix:""};function oy(t,e,n,r,i){t.bindBuffer(e,n),t.bufferData(e,r,i||iy)}function sy(t,e,n,r){if(CM(t,e))return e;n=n||Kn;const i=t.createBuffer();return oy(t,n,i,e,r),i}function uy(t){return t==="indices"}function OM(t){return t instanceof Int8Array||t instanceof Uint8Array}function zM(t){return t===Int8Array||t===Uint8Array}function PM(t){return t.length?t:t.data}const UM=/coord|texture/i,jM=/color|colour/i;function fy(t,e){let n;if(UM.test(t)?n=2:jM.test(t)?n=4:n=3,e%n>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${n} but ${e} values is not evenly divisible by ${n}. You should specify it.`);return n}function GM(t,e){return t.numComponents||t.size||fy(e,PM(t).length)}function Bd(t,e){if(sl(t))return t;if(sl(t.data))return t.data;Array.isArray(t)&&(t={data:t});let n=t.type;return n||(uy(e)?n=Uint16Array:n=Float32Array),new n(t.data)}function HM(t,e){const n={};return Object.keys(e).forEach(function(r){if(!uy(r)){const i=e[r],a=i.attrib||i.name||i.attribName||ay.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!sl(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,f,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,u=i.numComponents||i.size,s=i.type,f=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const l=i.data||i,c=i.type||Float32Array,h=l*c.BYTES_PER_ELEMENT;s=EM(c),f=i.normalize!==void 0?i.normalize:zM(c),u=i.numComponents||i.size||fy(r,l),o=t.createBuffer(),t.bindBuffer(Kn,o),t.bufferData(Kn,h,i.drawType||iy)}else{const l=Bd(i,r);o=sy(t,l,void 0,i.drawType),s=Fd(l),f=i.normalize!==void 0?i.normalize:OM(l),u=GM(i,r)}n[a]={buffer:o,numComponents:u,type:s,normalize:f,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),t.bindBuffer(Kn,null),n}function QM(t,e,n,r){n=Bd(n),r!==void 0?(t.bindBuffer(Kn,e.buffer),t.bufferSubData(Kn,r,n)):oy(t,Kn,e.buffer,n,e.drawType)}function VM(t,e){return e===TM||e===NM?1:e===FM||e===BM?2:e===kM||e===LM||e===RM?4:0}const kd=["position","positions","a_position"];function qM(t,e){let n,r;for(r=0;r<kd.length&&(n=kd[r],!(n in e||(n=ay.attribPrefix+n,n in e)));++r);r===kd.length&&(n=Object.keys(e)[0]);const i=e[n];t.bindBuffer(Kn,i.buffer);const a=t.getBufferParameter(Kn,MM);t.bindBuffer(Kn,null);const o=VM(t,i.type),s=a/o,f=i.numComponents||i.size,u=s/f;if(u%1!==0)throw new Error(`numComponents ${f} not correct for length ${length}`);return u}function ZM(t,e,n){const r=HM(t,e),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=e.indices;if(a){const o=Bd(a,"indices");i.indices=sy(t,o,IM),i.numElements=o.length,i.elementType=Fd(o)}else i.numElements||(i.numElements=qM(t,i.attribs));return i}function Wa(t){return!!t.texStorage2D}const Ld=function(){const t={},e={};function n(r){const i=r.constructor.name;if(!t[i]){for(const a in r)if(typeof r[a]=="number"){const o=e[r[a]];e[r[a]]=o?`${o} | ${a}`:a}t[i]=!0}}return function(i,a){return n(i),e[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),ei={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Xa=sl,ly=function(){let t;return function(){return t=t||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),t}}(),cy=6406,Jn=6407,Qe=6408,hy=6409,dy=6410,qs=6402,gy=34041,fl=33071,YM=9728,WM=9729,Ar=3553,Er=34067,ti=32879,ni=35866,ll=34069,XM=34070,$M=34071,KM=34072,JM=34073,eT=34074,Rd=10241,Od=10240,cl=10242,hl=10243,py=32882,tT=33082,nT=33083,rT=33084,iT=33085,zd=3317,my=3314,by=32878,yy=3316,wy=3315,xy=32877,aT=37443,oT=37441,sT=37440,uT=33321,fT=36756,lT=33325,cT=33326,hT=33330,dT=33329,gT=33338,pT=33337,mT=33340,bT=33339,yT=33323,wT=36757,xT=33327,vT=33328,AT=33336,ET=33335,ST=33332,_T=33331,CT=33334,DT=33333,IT=32849,MT=35905,TT=36194,NT=36758,FT=35898,BT=35901,kT=34843,LT=34837,RT=36221,OT=36239,zT=36215,PT=36233,UT=36209,jT=36227,GT=32856,HT=35907,QT=36759,VT=32855,qT=32854,ZT=32857,YT=34842,WT=34836,XT=36220,$T=36238,KT=36975,JT=36214,e8=36232,t8=36226,n8=36208,r8=33189,i8=33190,a8=36012,o8=36013,s8=35056,ri=5120,Ve=5121,dl=5122,$a=5123,gl=5124,Ki=5125,St=5126,vy=32819,Ay=32820,Ey=33635,Bn=5131,Zs=36193,Pd=33640,u8=35899,f8=35902,l8=36269,c8=34042,pl=33319,Ka=33320,ml=6403,Ja=36244,eo=36248,Ji=36249;let Ud;function bl(t){if(!Ud){const e={};e[cy]={textureFormat:cy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,Bn,Zs,St]},e[hy]={textureFormat:hy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,Bn,Zs,St]},e[dy]={textureFormat:dy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,Bn,Zs,St]},e[Jn]={textureFormat:Jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,Bn,Zs,St,Ey]},e[Qe]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,Bn,Zs,St,vy,Ay]},e[qs]={textureFormat:qs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ki,$a]},e[uT]={textureFormat:ml,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},e[fT]={textureFormat:ml,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[ri]},e[lT]={textureFormat:ml,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[St,Bn]},e[cT]={textureFormat:ml,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[St]},e[hT]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},e[dT]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ri]},e[ST]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[$a]},e[_T]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[dl]},e[CT]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ki]},e[DT]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[gl]},e[yT]={textureFormat:pl,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},e[wT]={textureFormat:pl,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[ri]},e[xT]={textureFormat:pl,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[St,Bn]},e[vT]={textureFormat:pl,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[St]},e[AT]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},e[ET]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ri]},e[gT]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[$a]},e[pT]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[dl]},e[mT]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ki]},e[bT]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[gl]},e[IT]={textureFormat:Jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},e[MT]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},e[TT]={textureFormat:Jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,Ey]},e[NT]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ri]},e[FT]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[St,Bn,u8]},e[BT]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[St,Bn,f8]},e[kT]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[St,Bn]},e[LT]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[St]},e[RT]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},e[OT]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ri]},e[zT]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[$a]},e[PT]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[dl]},e[UT]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ki]},e[jT]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[gl]},e[GT]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},e[HT]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},e[QT]={textureFormat:Qe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[ri]},e[VT]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,Ay,Pd]},e[qT]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,vy]},e[ZT]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Pd]},e[YT]={textureFormat:Qe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[St,Bn]},e[WT]={textureFormat:Qe,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[St]},e[XT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},e[$T]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ri]},e[KT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Pd]},e[JT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[$a]},e[e8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[dl]},e[t8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[gl]},e[n8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Ki]},e[r8]={textureFormat:qs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[$a,Ki]},e[i8]={textureFormat:qs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ki]},e[a8]={textureFormat:qs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[St]},e[s8]={textureFormat:gy,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[c8]},e[o8]={textureFormat:gy,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[l8]},Object.keys(e).forEach(function(n){const r=e[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),Ud=e}return Ud[t]}function h8(t,e){const n=bl(t);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[e];if(r===void 0)throw"unknown internal format";return r}function to(t){const e=bl(t);if(!e)throw"unknown internal format";return{format:e.textureFormat,type:e.type[0]}}function Sy(t){return(t&t-1)===0}function d8(t,e,n,r){if(!Wa(t))return Sy(e)&&Sy(n);const i=bl(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function g8(t){const e=bl(t);if(!e)throw"unknown internal format";return e.textureFilterable}function _y(t,e,n){return Xa(e)?Fd(e):n||Ve}function yl(t,e,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(e===Er?6:1));a%1===0?(n=a,r=a):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function no(t,e){e.colorspaceConversion!==void 0&&t.pixelStorei(aT,e.colorspaceConversion),e.premultiplyAlpha!==void 0&&t.pixelStorei(oT,e.premultiplyAlpha),e.flipY!==void 0&&t.pixelStorei(sT,e.flipY)}function Cy(t){t.pixelStorei(zd,4),Wa(t)&&(t.pixelStorei(my,0),t.pixelStorei(by,0),t.pixelStorei(yy,0),t.pixelStorei(wy,0),t.pixelStorei(xy,0))}function p8(t,e,n,r){r.minMag&&(n.call(t,e,Rd,r.minMag),n.call(t,e,Od,r.minMag)),r.min&&n.call(t,e,Rd,r.min),r.mag&&n.call(t,e,Od,r.mag),r.wrap&&(n.call(t,e,cl,r.wrap),n.call(t,e,hl,r.wrap),(e===ti||DM(t,e))&&n.call(t,e,py,r.wrap)),r.wrapR&&n.call(t,e,py,r.wrapR),r.wrapS&&n.call(t,e,cl,r.wrapS),r.wrapT&&n.call(t,e,hl,r.wrapT),r.minLod&&n.call(t,e,tT,r.minLod),r.maxLod&&n.call(t,e,nT,r.maxLod),r.baseLevel&&n.call(t,e,rT,r.baseLevel),r.maxLevel&&n.call(t,e,iT,r.maxLevel)}function Dy(t,e,n){const r=n.target||Ar;t.bindTexture(r,e),p8(t,r,t.texParameteri,n)}function m8(t){return t=t||ei.textureColor,Xa(t)?t:new Uint8Array([t[0]*255,t[1]*255,t[2]*255,t[3]*255])}function jd(t,e,n,r,i,a){n=n||ei.textureOptions,a=a||Qe;const o=n.target||Ar;if(r=r||n.width,i=i||n.height,t.bindTexture(o,e),d8(t,r,i,a))t.generateMipmap(o);else{const s=g8(a)?WM:YM;t.texParameteri(o,Rd,s),t.texParameteri(o,Od,s),t.texParameteri(o,cl,fl),t.texParameteri(o,hl,fl)}}function Ys(t){return t.auto===!0||t.auto===void 0&&t.level===void 0}function Gd(t,e){return e=e||{},e.cubeFaceOrder||[ll,XM,$M,KM,JM,eT]}function Hd(t,e){const r=Gd(t,e).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function Iy(t,e,n,r){r=r||ei.textureOptions;const i=r.target||Ar,a=r.level||0;let o=n.width,s=n.height;const f=r.internalFormat||r.format||Qe,u=to(f),l=r.format||u.format,c=r.type||u.type;if(no(t,r),t.bindTexture(i,e),i===Er){const h=n.width,d=n.height;let g,b;if(h/6===d)g=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)g=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)g=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)g=h/2,b=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=ly();y?(y.canvas.width=g,y.canvas.height=g,o=g,s=g,Hd(t,r).forEach(function(w){const E=b[w.ndx*2+0]*g,_=b[w.ndx*2+1]*g;y.drawImage(n,E,_,g,g,0,0,g,g),t.texImage2D(w.face,a,f,l,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=g,s=g,Hd(t,r).forEach(function(w){const E=b[w.ndx*2+0]*g,_=b[w.ndx*2+1]*g;t.texImage2D(w.face,a,f,g,g,0,l,c,null),createImageBitmap(n,E,_,g,g,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(D){no(t,r),t.bindTexture(i,e),t.texImage2D(w.face,a,f,l,c,D),Ys(r)&&jd(t,e,r,o,s,f)})}))}else if(i===ti||i===ni){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),g=d/h;if(g%1!==0)throw"can not compute 3D dimensions of element";const b=n.width===d?1:0,y=n.height===d?1:0;t.pixelStorei(zd,1),t.pixelStorei(my,n.width),t.pixelStorei(by,0),t.pixelStorei(xy,0),t.texImage3D(i,a,f,h,h,h,0,l,c,null);for(let w=0;w<g;++w){const E=w*h*b,_=w*h*y;t.pixelStorei(yy,E),t.pixelStorei(wy,_),t.texSubImage3D(i,a,0,0,w,h,h,1,l,c,n)}Cy(t)}else t.texImage2D(i,a,f,l,c,n);Ys(r)&&jd(t,e,r,o,s,f),Dy(t,e,r)}function Ws(){}function b8(t){if(typeof document<"u"){const e=document.createElement("a");return e.href=t,e.hostname===location.hostname&&e.port===location.port&&e.protocol===location.protocol}else{const e=new URL(location.href).origin;return new URL(t,location.href).origin===e}}function y8(t,e){return e===void 0&&!b8(t)?"anonymous":e}function w8(t,e,n){n=n||Ws;let r;if(e=e!==void 0?e:ei.crossOrigin,e=y8(t,e),typeof Image<"u"){r=new Image,e!==void 0&&(r.crossOrigin=e);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const f="couldn't load image: "+t;_M(f),n(f,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=t,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};e&&(s.mode="cors"),fetch(t,s).then(function(f){if(!f.ok)throw f;return f.blob()}).then(function(f){return createImageBitmap(f,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(f){a=f,setTimeout(o)}).catch(function(f){i=f,setTimeout(o)}),r=null}return r}function My(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof ImageData<"u"&&t instanceof ImageData||typeof HTMLElement<"u"&&t instanceof HTMLElement}function Qd(t,e,n){return My(t)?(setTimeout(function(){n(null,t)}),t):w8(t,e,n)}function Vd(t,e,n){n=n||ei.textureOptions;const r=n.target||Ar;if(t.bindTexture(r,e),n.color===!1)return;const i=m8(n.color);if(r===Er)for(let a=0;a<6;++a)t.texImage2D(ll+a,0,Qe,1,1,0,Qe,Ve,i);else r===ti||r===ni?t.texImage3D(r,0,Qe,1,1,1,0,Qe,Ve,i):t.texImage2D(r,0,Qe,1,1,0,Qe,Ve,i)}function x8(t,e,n,r){return r=r||Ws,n=n||ei.textureOptions,Vd(t,e,n),n=Object.assign({},n),Qd(n.src,n.crossOrigin,function(a,o){a?r(a,e,o):(Iy(t,e,o,n),r(null,e,o))})}function v8(t,e,n,r){r=r||Ws;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const a=n.level||0,o=n.internalFormat||n.format||Qe,s=to(o),f=n.format||s.format,u=n.type||Ve,l=n.target||Ar;if(l!==Er)throw"target must be TEXTURE_CUBE_MAP";Vd(t,e,n),n=Object.assign({},n);let c=6;const h=[],d=Gd(t,n);let g;function b(y){return function(w,E){--c,w?h.push(w):E.width!==E.height?h.push("cubemap face img is not a square: "+E.src):(no(t,n),t.bindTexture(l,e),c===5?Gd().forEach(function(_){t.texImage2D(_,a,o,f,u,E)}):t.texImage2D(y,a,o,f,u,E),Ys(n)&&t.generateMipmap(l)),c===0&&r(h.length?h:void 0,e,g)}}g=i.map(function(y,w){return Qd(y,n.crossOrigin,b(d[w]))})}function A8(t,e,n,r){r=r||Ws;const i=n.src,a=n.internalFormat||n.format||Qe,o=to(a),s=n.format||o.format,f=n.type||Ve,u=n.target||ni;if(u!==ti&&u!==ni)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Vd(t,e,n),n=Object.assign({},n);let l=i.length;const c=[];let h;const d=n.level||0;let g=n.width,b=n.height;const y=i.length;let w=!0;function E(_){return function(D,T){if(--l,D)c.push(D);else{if(no(t,n),t.bindTexture(u,e),w){w=!1,g=n.width||T.width,b=n.height||T.height,t.texImage3D(u,d,a,g,b,y,0,s,f,null);for(let N=0;N<y;++N)t.texSubImage3D(u,d,0,0,N,g,b,1,s,f,T)}else{let N=T,M;(T.width!==g||T.height!==b)&&(M=ly(),N=M.canvas,M.canvas.width=g,M.canvas.height=b,M.drawImage(T,0,0,g,b)),t.texSubImage3D(u,d,0,0,_,g,b,1,s,f,N),M&&N===M.canvas&&(M.canvas.width=0,M.canvas.height=0)}Ys(n)&&t.generateMipmap(u)}l===0&&r(c.length?c:void 0,e,h)}}h=i.map(function(_,D){return Qd(_,n.crossOrigin,E(D))})}function Ty(t,e,n,r){r=r||ei.textureOptions;const i=r.target||Ar;t.bindTexture(i,e);let a=r.width,o=r.height,s=r.depth;const f=r.level||0,u=r.internalFormat||r.format||Qe,l=to(u),c=r.format||l.format,h=r.type||_y(t,n,l.type);if(Xa(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=SM(h);n=new y(n)}const d=h8(u,h),g=n.byteLength/d;if(g%1)throw"length wrong size for format: "+Ld(t,c);let b;if(i===ti||i===ni)if(!a&&!o&&!s){const y=Math.cbrt(g);if(y%1!==0)throw"can't guess cube size of array of numElements: "+g;a=y,o=y,s=y}else a&&(!o||!s)?(b=yl(t,i,o,s,g/a),o=b.width,s=b.height):o&&(!a||!s)?(b=yl(t,i,a,s,g/o),a=b.width,s=b.height):(b=yl(t,i,a,o,g/s),a=b.width,o=b.height);else b=yl(t,i,a,o,g),a=b.width,o=b.height;if(Cy(t),t.pixelStorei(zd,r.unpackAlignment||1),no(t,r),i===Er){const y=d/n.BYTES_PER_ELEMENT,w=g/6*y;Hd(t,r).forEach(E=>{const _=w*E.ndx,D=n.subarray(_,_+w);t.texImage2D(E.face,f,u,a,o,0,c,h,D)})}else i===ti||i===ni?t.texImage3D(i,f,u,a,o,s,0,c,h,n):t.texImage2D(i,f,u,a,o,0,c,h,n);return{width:a,height:o,depth:s,type:h}}function E8(t,e,n){const r=n.target||Ar;t.bindTexture(r,e);const i=n.level||0,a=n.internalFormat||n.format||Qe,o=to(a),s=n.format||o.format,f=n.type||o.type;if(no(t,n),r===Er)for(let u=0;u<6;++u)t.texImage2D(ll+u,i,a,n.width,n.height,0,s,f,null);else r===ti||r===ni?t.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,f,null):t.texImage2D(r,i,a,n.width,n.height,0,s,f,null)}function Xs(t,e,n){n=n||Ws,e=e||ei.textureOptions;const r=t.createTexture(),i=e.target||Ar;let a=e.width||1,o=e.height||1;const s=e.internalFormat||Qe;t.bindTexture(i,r),i===Er&&(t.texParameteri(i,cl,fl),t.texParameteri(i,hl,fl));let f=e.src;if(f)if(typeof f=="function"&&(f=f(t,e)),typeof f=="string")x8(t,r,e,n);else if(Xa(f)||Array.isArray(f)&&(typeof f[0]=="number"||Array.isArray(f[0])||Xa(f[0]))){const u=Ty(t,r,f,e);a=u.width,o=u.height}else Array.isArray(f)&&(typeof f[0]=="string"||My(f[0]))?i===Er?v8(t,r,e,n):A8(t,r,e,n):(Iy(t,r,f,e),a=f.width,o=f.height);else E8(t,r,e);return Ys(e)&&jd(t,r,e,a,o,s),Dy(t,r,e),r}function S8(t,e,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||Ar;t.bindTexture(o,e);const s=n.level||0,f=n.internalFormat||n.format||Qe,u=to(f),l=n.format||u.format;let c;const h=n.src;if(h&&(Xa(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||_y(t,h,u.type):c=n.type||u.type,o===Er)for(let d=0;d<6;++d)t.texImage2D(ll+d,s,f,r,i,0,l,c,null);else o===ti||o===ni?t.texImage3D(o,s,f,r,i,a,0,l,c,null):t.texImage2D(o,s,f,r,i,0,l,c,null)}const _8=ny,wl=33984,C8=35048,xl=34962,D8=34963,qd=35345,Ny=35718,I8=35721,M8=35971,T8=35382,N8=35396,F8=35398,B8=35392,k8=35395,vl=5126,Fy=35664,By=35665,ky=35666,Zd=5124,Ly=35667,Ry=35668,Oy=35669,zy=35670,Py=35671,Uy=35672,jy=35673,Gy=35674,Hy=35675,Qy=35676,L8=35678,R8=35680,O8=35679,z8=35682,P8=35685,U8=35686,j8=35687,G8=35688,H8=35689,Q8=35690,V8=36289,q8=36292,Z8=36293,Yd=5125,Vy=36294,qy=36295,Zy=36296,Y8=36298,W8=36299,X8=36300,$8=36303,K8=36306,J8=36307,e6=36308,t6=36311,Al=3553,El=34067,Wd=32879,Sl=35866,ue={};function Yy(t,e){return ue[e].bindPoint}function n6(t,e){return function(n){t.uniform1f(e,n)}}function r6(t,e){return function(n){t.uniform1fv(e,n)}}function i6(t,e){return function(n){t.uniform2fv(e,n)}}function a6(t,e){return function(n){t.uniform3fv(e,n)}}function o6(t,e){return function(n){t.uniform4fv(e,n)}}function Wy(t,e){return function(n){t.uniform1i(e,n)}}function Xy(t,e){return function(n){t.uniform1iv(e,n)}}function $y(t,e){return function(n){t.uniform2iv(e,n)}}function Ky(t,e){return function(n){t.uniform3iv(e,n)}}function Jy(t,e){return function(n){t.uniform4iv(e,n)}}function s6(t,e){return function(n){t.uniform1ui(e,n)}}function u6(t,e){return function(n){t.uniform1uiv(e,n)}}function f6(t,e){return function(n){t.uniform2uiv(e,n)}}function l6(t,e){return function(n){t.uniform3uiv(e,n)}}function c6(t,e){return function(n){t.uniform4uiv(e,n)}}function h6(t,e){return function(n){t.uniformMatrix2fv(e,!1,n)}}function d6(t,e){return function(n){t.uniformMatrix3fv(e,!1,n)}}function g6(t,e){return function(n){t.uniformMatrix4fv(e,!1,n)}}function p6(t,e){return function(n){t.uniformMatrix2x3fv(e,!1,n)}}function m6(t,e){return function(n){t.uniformMatrix3x2fv(e,!1,n)}}function b6(t,e){return function(n){t.uniformMatrix2x4fv(e,!1,n)}}function y6(t,e){return function(n){t.uniformMatrix4x2fv(e,!1,n)}}function w6(t,e){return function(n){t.uniformMatrix3x4fv(e,!1,n)}}function x6(t,e){return function(n){t.uniformMatrix4x3fv(e,!1,n)}}function It(t,e,n,r){const i=Yy(t,e);return Wa(t)?function(a){let o,s;ul(t,a)?(o=a,s=null):(o=a.texture,s=a.sampler),t.uniform1i(r,n),t.activeTexture(wl+n),t.bindTexture(i,o),t.bindSampler(n,s)}:function(a){t.uniform1i(r,n),t.activeTexture(wl+n),t.bindTexture(i,a)}}function Mt(t,e,n,r,i){const a=Yy(t,e),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Wa(t)?function(s){t.uniform1iv(r,o),s.forEach(function(f,u){t.activeTexture(wl+o[u]);let l,c;ul(t,f)?(l=f,c=null):(l=f.texture,c=f.sampler),t.bindSampler(n,c),t.bindTexture(a,l)})}:function(s){t.uniform1iv(r,o),s.forEach(function(f,u){t.activeTexture(wl+o[u]),t.bindTexture(a,f)})}}ue[vl]={Type:Float32Array,size:4,setter:n6,arraySetter:r6},ue[Fy]={Type:Float32Array,size:8,setter:i6,cols:2},ue[By]={Type:Float32Array,size:12,setter:a6,cols:3},ue[ky]={Type:Float32Array,size:16,setter:o6,cols:4},ue[Zd]={Type:Int32Array,size:4,setter:Wy,arraySetter:Xy},ue[Ly]={Type:Int32Array,size:8,setter:$y,cols:2},ue[Ry]={Type:Int32Array,size:12,setter:Ky,cols:3},ue[Oy]={Type:Int32Array,size:16,setter:Jy,cols:4},ue[Yd]={Type:Uint32Array,size:4,setter:s6,arraySetter:u6},ue[Vy]={Type:Uint32Array,size:8,setter:f6,cols:2},ue[qy]={Type:Uint32Array,size:12,setter:l6,cols:3},ue[Zy]={Type:Uint32Array,size:16,setter:c6,cols:4},ue[zy]={Type:Uint32Array,size:4,setter:Wy,arraySetter:Xy},ue[Py]={Type:Uint32Array,size:8,setter:$y,cols:2},ue[Uy]={Type:Uint32Array,size:12,setter:Ky,cols:3},ue[jy]={Type:Uint32Array,size:16,setter:Jy,cols:4},ue[Gy]={Type:Float32Array,size:32,setter:h6,rows:2,cols:2},ue[Hy]={Type:Float32Array,size:48,setter:d6,rows:3,cols:3},ue[Qy]={Type:Float32Array,size:64,setter:g6,rows:4,cols:4},ue[P8]={Type:Float32Array,size:32,setter:p6,rows:2,cols:3},ue[U8]={Type:Float32Array,size:32,setter:b6,rows:2,cols:4},ue[j8]={Type:Float32Array,size:48,setter:m6,rows:3,cols:2},ue[G8]={Type:Float32Array,size:48,setter:w6,rows:3,cols:4},ue[H8]={Type:Float32Array,size:64,setter:y6,rows:4,cols:2},ue[Q8]={Type:Float32Array,size:64,setter:x6,rows:4,cols:3},ue[L8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[R8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[O8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Wd},ue[z8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[V8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl},ue[q8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl},ue[Z8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[Y8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[W8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Wd},ue[X8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[$8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl},ue[K8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[J8]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Wd},ue[e6]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[t6]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl};function _l(t,e){return function(n){if(n.value)switch(t.disableVertexAttribArray(e),n.value.length){case 4:t.vertexAttrib4fv(e,n.value);break;case 3:t.vertexAttrib3fv(e,n.value);break;case 2:t.vertexAttrib2fv(e,n.value);break;case 1:t.vertexAttrib1fv(e,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else t.bindBuffer(xl,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,n.numComponents||n.size,n.type||vl,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function ii(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4iv(e,n.value);else throw new Error("The length of an integer constant value must be 4!");else t.bindBuffer(xl,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Zd,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Cl(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4uiv(e,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else t.bindBuffer(xl,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Yd,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Xd(t,e,n){const r=n.size,i=n.count;return function(a){t.bindBuffer(xl,a.buffer);const o=a.size||a.numComponents||r,s=o/i,f=a.type||vl,l=ue[f].size*o,c=a.normalize||!1,h=a.offset||0,d=l/i;for(let g=0;g<i;++g)t.enableVertexAttribArray(e+g),t.vertexAttribPointer(e+g,s,f,c,l,h+d*g),a.divisor!==void 0&&t.vertexAttribDivisor(e+g,a.divisor)}}const rt={};rt[vl]={size:4,setter:_l},rt[Fy]={size:8,setter:_l},rt[By]={size:12,setter:_l},rt[ky]={size:16,setter:_l},rt[Zd]={size:4,setter:ii},rt[Ly]={size:8,setter:ii},rt[Ry]={size:12,setter:ii},rt[Oy]={size:16,setter:ii},rt[Yd]={size:4,setter:Cl},rt[Vy]={size:8,setter:Cl},rt[qy]={size:12,setter:Cl},rt[Zy]={size:16,setter:Cl},rt[zy]={size:4,setter:ii},rt[Py]={size:8,setter:ii},rt[Uy]={size:12,setter:ii},rt[jy]={size:16,setter:ii},rt[Gy]={size:4,setter:Xd,count:2},rt[Hy]={size:9,setter:Xd,count:3},rt[Qy]={size:16,setter:Xd,count:4};function ew(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const v6=/(\.|\[|]|\w+)/g,A6=t=>t>="0"&&t<="9";function tw(t,e,n,r){const i=t.split(v6).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const f=A6(s[0]),u=f?parseInt(s):s;if(f&&(o+=i[a++]),a===i.length){n[u]=e;break}else{const c=i[a++],h=c==="[",d=n[u]||(h?[]:{});n[u]=d,n=d,r[o]=r[o]||function(g){return function(b){ow(g,b)}}(d),o+=c}}}function E6(t,e){let n=0;function r(s,f,u){const l=f.name.endsWith("[0]"),c=f.type,h=ue[c];if(!h)throw new Error(`unknown type: 0x${c.toString(16)}`);let d;if(h.bindPoint){const g=n;n+=f.size,l?d=h.arraySetter(t,c,g,u,f.size):d=h.setter(t,c,g,u,f.size)}else h.arraySetter&&l?d=h.arraySetter(t,u):d=h.setter(t,u);return d.location=u,d}const i={},a={},o=t.getProgramParameter(e,Ny);for(let s=0;s<o;++s){const f=t.getActiveUniform(e,s);if(ew(f))continue;let u=f.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const l=t.getUniformLocation(e,f.name);if(l){const c=r(e,f,l);i[u]=c,tw(u,c,a,i)}}return i}function S6(t,e){const n={},r=t.getProgramParameter(e,M8);for(let i=0;i<r;++i){const a=t.getTransformFeedbackVarying(e,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function _6(t,e){const n=t.getProgramParameter(e,Ny),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const f=t.getActiveUniform(e,s);r[s].name=f.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const f=s[0],u=s[1];t.getActiveUniforms(e,i,t[f]).forEach(function(l,c){r[c][u]=l})});const a={},o=t.getProgramParameter(e,T8);for(let s=0;s<o;++s){const f=t.getActiveUniformBlockName(e,s),u={index:t.getUniformBlockIndex(e,f),usedByVertexShader:t.getActiveUniformBlockParameter(e,s,N8),usedByFragmentShader:t.getActiveUniformBlockParameter(e,s,F8),size:t.getActiveUniformBlockParameter(e,s,B8),uniformIndices:t.getActiveUniformBlockParameter(e,s,k8)};u.used=u.usedByVertexShader||u.usedByFragmentShader,a[f]=u}return{blockSpecs:a,uniformData:r}}const nw=/\[\d+\]\.$/,C6=(t,e)=>((t+(e-1))/e|0)*e;function D6(t,e,n,r){if(e||n){r=r||1;const a=t.length/4;return function(o){let s=0,f=0;for(let u=0;u<a;++u){for(let l=0;l<r;++l)t[s++]=o[f++];s+=4-r}}}else return function(i){i.length?t.set(i):t[0]=i}}function I6(t,e,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return _8("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),f=t.createBuffer(),u=o.index;t.bindBuffer(qd,f),t.uniformBlockBinding(e,o.index,u);let l=r+".";nw.test(l)&&(l=l.replace(nw,"."));const c={},h={},d={};return o.uniformIndices.forEach(function(g){const b=a[g];let y=b.name;y.startsWith(l)&&(y=y.substr(l.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const E=ue[b.type],_=E.Type,D=w?C6(E.size,16)*b.size:E.size*b.size,T=new _(s,b.offset,D/_.BYTES_PER_ELEMENT);c[y]=T;const N=D6(T,w,E.rows,E.cols);h[y]=N,tw(y,N,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:f,uniforms:c,setters:h}}function rw(t,e,n){return I6(t,e.program,e.uniformBlockSpec,n)}function M6(t,e,n){const i=(e.uniformBlockSpec||e).blockSpecs[n.name];if(i){const a=i.index;return t.bindBufferRange(qd,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function iw(t,e,n){M6(t,e,n)&&t.bufferData(qd,n.array,C8)}function aw(t,e){const n=t.setters;for(const r in e){const i=n[r];if(i){const a=e[r];i(a)}}}function ow(t,e){for(const n in e){const r=t[n];typeof r=="function"?r(e[n]):ow(t[n],e[n])}}function Kt(t,...e){const n=t.uniformSetters||t,r=e.length;for(let i=0;i<r;++i){const a=e[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)Kt(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function T6(t,e){const n={},r=t.getProgramParameter(e,I8);for(let i=0;i<r;++i){const a=t.getActiveAttrib(e,i);if(ew(a))continue;const o=t.getAttribLocation(e,a.name),s=rt[a.type],f=s.setter(t,o,s);f.location=o,n[a.name]=f}return n}function N6(t,e){for(const n in e){const r=t[n];r&&r(e[n])}}function ro(t,e,n){n.vertexArrayObject?t.bindVertexArray(n.vertexArrayObject):(N6(e.attribSetters||e,n.attribs),n.indices&&t.bindBuffer(D8,n.indices))}function F6(t,e){const n=E6(t,e),r=T6(t,e),i={program:e,uniformSetters:n,attribSetters:r};return Wa(t)&&(i.uniformBlockSpec=_6(t,e),i.transformFeedbackInfo=S6(t,e)),i}const B6=4,sw=5123;function $s(t,e,n,r,i,a){n=n===void 0?B6:n;const o=e.indices,s=e.elementType,f=r===void 0?e.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?t.drawElementsInstanced(n,f,s===void 0?sw:e.elementType,i,a):t.drawElements(n,f,s===void 0?sw:e.elementType,i):a!==void 0?t.drawArraysInstanced(n,i,f,a):t.drawArrays(n,i,f)}const k6=36160,ea=36161,L6=3553,R6=5121,O6=6402,z6=6408,P6=33190,U6=36012,j6=35056,G6=36013,H6=32854,Q6=32855,V6=36194,uw=33189,fw=6401,lw=36168,$d=34041,q6=36064,Dl=36096,cw=36128,Kd=33306,Jd=33071,e0=9729,hw=[{format:z6,type:R6,min:e0,wrap:Jd},{format:$d}],kn={};kn[$d]=Kd,kn[fw]=cw,kn[lw]=cw,kn[O6]=Dl,kn[uw]=Dl,kn[P6]=Dl,kn[U6]=Dl,kn[j6]=Kd,kn[G6]=Kd;function Z6(t,e){return kn[t]||kn[e]}const ai={};ai[H6]=!0,ai[Q6]=!0,ai[V6]=!0,ai[$d]=!0,ai[uw]=!0,ai[fw]=!0,ai[lw]=!0;function Y6(t){return ai[t]}function W6(t,e,n,r){const i=k6,a=t.createFramebuffer();t.bindFramebuffer(i,a),n=n||t.drawingBufferWidth,r=r||t.drawingBufferHeight,e=e||hw;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return e.forEach(function(f){let u=f.attachment;const l=f.samples,c=f.format;let h=f.attachmentPoint||Z6(c,f.internalFormat);if(h||(h=q6+o++),!u)if(l!==void 0||Y6(c))u=t.createRenderbuffer(),t.bindRenderbuffer(ea,u),l>1?t.renderbufferStorageMultisample(ea,l,c,n,r):t.renderbufferStorage(ea,c,n,r);else{const d=Object.assign({},f);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||e0,d.mag=d.mag||d.minMag||e0,d.wrapS=d.wrapS||d.wrap||Jd,d.wrapT=d.wrapT||d.wrap||Jd),u=Xs(t,d)}if(ry(t,u))t.framebufferRenderbuffer(i,h,ea,u);else if(ul(t,u))f.layer!==void 0?t.framebufferTextureLayer(i,h,u,f.level||0,f.layer):t.framebufferTexture2D(i,h,f.target||L6,u,f.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function X6(t,e,n,r,i){r=r||t.drawingBufferWidth,i=i||t.drawingBufferHeight,e.width=r,e.height=i,n=n||hw,n.forEach(function(a,o){const s=e.attachments[o],f=a.format,u=a.samples;if(u!==void 0||ry(t,s))t.bindRenderbuffer(ea,s),u>1?t.renderbufferStorageMultisample(ea,u,f,r,i):t.renderbufferStorage(ea,f,r,i);else if(ul(t,s))S8(t,s,a,r,i);else throw new Error("unknown attachment type")})}function $6(t,e,n){const r=t.createVertexArray();return t.bindVertexArray(r),e.length||(e=[e]),e.forEach(function(i){ro(t,i,n)}),t.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const K6=/^(.*?)_/;function J6(t,e){Ld(t,0);const n=t.getExtension(e);if(n){const r={},i=K6.exec(e)[1],a="_"+i;for(const o in n){const s=n[o],f=typeof s=="function",u=f?i:a;let l=o;o.endsWith(u)&&(l=o.substring(0,o.length-u.length)),t[l]!==void 0?!f&&t[l]!==s&&ny(l,t[l],s,o):f?t[l]=function(c){return function(){return c.apply(n,arguments)}}(s):(t[l]=s,r[l]=s)}r.constructor={name:n.constructor.name},Ld(r,0)}return n}const dw=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function gw(t){for(let e=0;e<dw.length;++e)J6(t,dw[e])}function eN(t,e){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=t.getContext(n[i],e),r){gw(r);break}return r}function tN(t,e){return eN(t,e)}const nN=`/***The vertex position wrt the rectangle specified by(x,x2,y,y2).*[0,0]=[x,y],[1,1]=[x2,y2].*The x or y component may contain fractional values if the rectangle*have been tessellated.*/in vec2 frac;uniform vec2 uMinSize;uniform float uMinOpacity;uniform vec4 uCornerRadii;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
|
|
19
19
|
#if defined(ROUNDED_CORNERS) || defined(STROKED)
|
|
20
20
|
out vec2 vPosInPixels;
|
|
21
21
|
#endif
|
|
@@ -37,20 +37,20 @@ fragColor=distanceToColor(d,vFillColor,vStrokeColor,vHalfStrokeWidth);if(fragCol
|
|
|
37
37
|
#else
|
|
38
38
|
fragColor=vFillColor;
|
|
39
39
|
#endif
|
|
40
|
-
if(uPickingEnabled){fragColor=vPickingColor;}}`,t0="attr_",
|
|
40
|
+
if(uPickingEnabled){fragColor=vPickingColor;}}`,t0="attr_",pw="uDomain_",iN="range_",mw="scale_",bw="getScaled_",n0="uRangeTexture_",yw=3402823466e29;function aN(t){const e=t.match(/^(?:(\w+)-)?(\w+)$/);if(!e)throw new Error("Not a scale type: "+t);return{family:e[1]||"continuous",transform:e[2]}}function oN(t,e){let n;if(ol(t))n=ta(ey(t)(e));else if(Ke(e))if(Xi(t))n=uN(e);else throw new Error(`String values are not supported on the "${t}" channel: ${e}`);else if(pf(e))n=ta(e?1:0);else if(e===null)if(Xi(t))n=ta([0,0,0]);else throw new Error(`null value is not supported on the "${t}" chanel.`);else n=ta(e);return`
|
|
41
41
|
#define ${t}_DEFINED
|
|
42
|
-
${n.type} ${
|
|
42
|
+
${n.type} ${bw}${t}() {
|
|
43
43
|
// Constant value
|
|
44
44
|
return ${n};
|
|
45
|
-
}`}function sN(t,e,n){if(Fn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);if(!e)throw new Error("Scale is undefined");const r=Wi(t),i=t0+t,a=
|
|
46
|
-
${y} ${
|
|
45
|
+
}`}function sN(t,e,n){if(Fn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);if(!e)throw new Error("Scale is undefined");const r=Wi(t),i=t0+t,a=pw+r,o=iN+r,s=Il(e.type),f=s?"vec2":"float",u=e.domain?e.domain().length:void 0;let l;const c=[];c.push(""),c.push("/".repeat(70)),c.push(`// Channel: ${t}`),c.push(""),c.push(`#define ${t}_DEFINED`);const{transform:h}=aN(e.type),d=(M,...R)=>fN.apply(null,[M,"value",...R]);let g;switch(h){case"linear":g=d("scaleLinear","domain",o);break;case"log":g=d("scaleLog","domain",o,e.base());break;case"symlog":g=d("scaleSymlog","domain",o,e.constant());break;case"pow":case"sqrt":g=d("scalePow","domain",o,e.exponent());break;case"index":case"locus":g=d("scaleBandHp","domain",o,e.paddingInner(),e.paddingOuter(),e.align(),n.band??.5);break;case"point":case"band":g=d("scaleBand","domain",o,e.paddingInner(),e.paddingOuter(),e.align(),n.band??.5);break;case"ordinal":case"null":case"identity":g=d("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${e.type}! ${t}: ${JSON.stringify(n)}`)}const b=rl(e.type)||Et(e.type)&&Xi(t)?[0,1]:e.range?e.range():void 0;if(b&&t==r&&b.length&&b.every(Lt)){const M=ww(b);c.push(`const ${M.type} ${o} = ${M};`)}const y=Xi(t)?"vec3":"float";let w;if(Xi(t)){const M=n0+r;if(t==r&&c.push(`uniform sampler2D ${M};`),Et(e.type))w=`getInterpolatedColor(${M}, transformed)`;else if(Jr(e.type)||Za(e.type))w=`getDiscreteColor(${M}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(e.type==="ordinal"||Za(e.type)){const M=n0+r;t==r&&c.push(`uniform sampler2D ${M};`),w=`getDiscreteColor(${M}, int(transformed)).r`}Gs(n)?c.push(`uniform highp ${f} ${i};`):c.push(`in highp ${f} ${i};`);const E=[],_=Et(e.type)&&u>2,D=Za(e.type)||_;if(E.push("int slot = 0;"),D){const M=a;E.push(_?`while (slot < ${M}.length() - 2 && value >= ${M}[slot + 1]) { slot++; }`:`while (slot < ${M}.length() && value >= ${M}[slot]) { slot++; }`)}const T=Et(e.type)||Za(e.type)||["band","point"].includes(e.type);if(g){const M=a;T&&(s?E.push(`vec3 domain = ${M};`):E.push(`vec2 domain = vec2(${M}[slot], ${M}[slot + 1]);`)),E.push(`float transformed = ${g};`),_&&E.push(`transformed = (float(slot) + transformed) / (float(${M}.length() - 1));`)}else E.push("float transformed = float(slot);");"clamp"in e&&e.clamp()&&E.push(`transformed = clampToRange(transformed, ${ww(b)});`),E.push(`return ${w??"transformed"};`),c.push(`
|
|
46
|
+
${y} ${mw}${t}(${f} value) {
|
|
47
47
|
${E.map(M=>` ${M}
|
|
48
48
|
`).join("")}
|
|
49
49
|
}`),c.push(`
|
|
50
|
-
${y} ${
|
|
51
|
-
return ${
|
|
50
|
+
${y} ${bw}${t}() {
|
|
51
|
+
return ${mw}${t}(${i});
|
|
52
52
|
}`);const N=c.join(`
|
|
53
|
-
`);if(T&&t==r){const M=
|
|
53
|
+
`);if(T&&t==r){const M=Et(e.type)||Za(e.type)?u:2;l=s?`highp vec3 ${a};`:`mediump float ${a}[${M}];`}return{glsl:N,domainUniform:l}}function r0(t){if(!Lt(t))throw new Error(`Not a number: ${t}`);if(t==1/0)return""+yw;if(t==-1/0)return""+-yw;{let e=`${t}`;return/^(-)?\d+$/.test(e)&&(e+=".0"),e}}function ta(t){typeof t=="number"&&(t=[t]);const e=t.length;if(e<1||e>4)throw new Error("Invalid number of components: "+e);let n,r;return e>1?(n=`vec${e}`,r=`${n}(${t.map(r0).join(", ")})`):(n="float",r=r0(t[0])),Object.assign(r,{type:n,numComponents:e})}function uN(t){const e=Wr(t).rgb();return ta([e.r,e.g,e.b].map(n=>n/255))}function ww(t){return ta([t[0],Es(t)])}function fN(t,...e){const n=[];for(const r of e)Lt(r)?n.push(r0(r)):Xt(r)?n.push(ta(r)):n.push(r);return`${t}(${n.join(", ")})`}function Il(t){return t=="index"||t=="locus"}const xw=2**11,lN=xw-1;function vw(t,e=[]){const n=t&lN,r=t-n;return e[0]=r,e[1]=n,e}function cN(t){const e=t%xw;return[t-e,e]}function hN(t){return[...cN(t[0]),t[1]-t[0]]}class dN{constructor(e){this.size=e,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(e,n){const r=this.createUpdater(t0+e,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?a=>r(i(a)):a=>r(i(a)))}createUpdater(e,n,r){if(!Lt(this.size))throw new Error("The number of vertices must be defined!");let i,a,o=0;const s=new Float32Array(this.size*n);if(this.arrays[e]={data:s,numComponents:n},n==1){let f=0;const u=l=>{f=+l};i=()=>{s[o++]=f},a=u}else{let f=r??[0];const u=r?l=>{}:l=>{f=l};switch(n){case 1:break;case 2:i=()=>{s[o++]=f[0],s[o++]=f[1]},a=u;break;case 3:i=()=>{s[o++]=f[0],s[o++]=f[1],s[o++]=f[2]},a=u;break;case 4:i=()=>{s[o++]=f[0],s[o++]=f[1],s[o++]=f[2],s[o++]=f[3]},a=u;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),a}_unrollPushAll(){let e="",n="";for(let i=0;i<this.pushers.length;i++)e+=`const p${i} = that.pushers[${i}];
|
|
54
54
|
`,n+=`p${i}();
|
|
55
55
|
`;const r=new Function("that",`${e}
|
|
56
56
|
|
|
@@ -58,7 +58,7 @@ ${y} ${mw}${t}() {
|
|
|
58
58
|
${n}
|
|
59
59
|
that.vertexCount++;
|
|
60
60
|
};
|
|
61
|
-
`);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(e){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](e)}pushFromDatum(e){this.updateFromDatum(e),this.pushAll()}}const
|
|
61
|
+
`);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(e){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](e)}pushFromDatum(e){this.updateFromDatum(e),this.pushAll()}}const io=5,i0=127;function a0(t){const e=[];for(let g=0;g<=i0;g++)e.push(void 0);const n=new Map;for(const g of t.chars)g.id<=i0?e[g.id]=g:n.set(g.id,g);const r=8722;n.has(r)||n.set(r,e["-".charCodeAt(0)]);function i(g){return(g<=i0?e[g]:n.get(g))||e[63]}function a(g){return i(g.charCodeAt(0))}const o=t.common.base,s=a("x"),f=a("X"),u=a("q"),l=s.height-io*2,c=f.height-io*2,h=u.height-s.height+u.yoffset-s.yoffset;function d(g,b=1){let y=0;for(let w=0;w<g.length;w++)y+=i(g.charCodeAt(w)).xadvance;return y/o*b}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:l,capHeight:c,descent:h,common:t.common}}function gN(t,e=0,n=1){return Math.max(e,Math.min(n,t))}const Aw=2**31-1,pN=-(2**31);function mN(t,e,n,r=n){const i=new Int32Array(t);i.fill(Aw);let a=pN,o=!1;const s=new Int32Array(t),f=e[0],l=(e[1]-e[0])/t,c=(y,w)=>{const E=(y-f)/l,_=Math.floor(E);return gN(w&&_==E?_-1:_,0,t-1)};function h(y,w,E){w>a?a=w:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const _=n(y),D=c(_,!1);i[D]>w&&(i[D]=w),s[D]<E&&(s[D]=E)}function d(y,w,E){w>a?a=w:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const _=n(y),D=r(y),T=c(_,!1),N=c(D,!0);for(let M=T;M<=N;M++)i[M]>w&&(i[M]=w),s[M]<E&&(s[M]=E)}const g=(y,w,E=[0,0])=>{const _=c(y,!1),D=c(w,!0),T=i[_],N=Math.max(s[D],T);return E[0]=T,E[1]=N,E},b=()=>{for(let w=1;w<s.length;w++)s[w]<s[w-1]&&(s[w]=s[w-1]);let y=!0;for(let w=i.length-1;w>0;w--)y&&i[w]==Aw?(i[w]=s[w],y=!1):i[w-1]>i[w]&&(i[w-1]=i[w]);return g};if(h.getIndex=b,d.getIndex=b,!o)return n==r?h:d}class Ks{constructor({encoders:e,numVertices:n=void 0,attributes:r=[]}){this.encoders=e,this.variableEncoders=Object.fromEntries(Object.entries(e).filter(([i,a])=>r.includes(i)&&a&&a.scale&&!a.constant)),this.allocatedVertices=n,this.variableBuilder=new dN(n);for(const[i,a]of Object.entries(this.variableEncoders)){const o=a.accessor,s=[0,0],f=Il(a.scale.type),u=a.indexer,l=u?c=>u(o(c)):f?c=>vw(o(c),s):o;this.variableBuilder.addConverter(i,{f:l,numComponents:f?2:1,arrayReference:f?s:void 0})}this.lastOffset=0,this.rangeMap=new Bi([],JSON.stringify)}registerBatch(e){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(e,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(e){for(const[n,r]of e)this.addBatch(n,r)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.pushFromDatum(o),this.addToXIndex(o)}this.registerBatch(e)}prepareXIndexer(e,n=0,r=n+e.length){const i=()=>{this.addToXIndex=f=>{},this.xIndexer=void 0};if(!e.length||r-n<0){i();return}const a=f=>{var u;return f&&Et((u=f.scale)==null?void 0:u.type)&&f},o=a(this.variableEncoders.x),s=a(this.variableEncoders.x2);if(o){const f=o.accessor,u=s?s.accessor:f,l=[f(e[n]),u(e[r-1])];if(l[1]>l[0]){this.xIndexer=mN(50,l,f,u);let c=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,c,d),c=d}}else i()}else i()}addToXIndex(e){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class bN extends Ks{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:e,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(e,n,r=0,i=n.length){if(i<=r)return;const a=this.encoders,[o,s]=this.visibleRange,f=h=>h.accessor||(d=>0),u=f(a.x),l=f(a.x2);this.prepareXIndexer(n,r,i);const c=[0,0];this.updateFrac(c);for(let h=r;h<i;h++){const d=n[h];let g=u(d),b=l(d);if(g>b&&([g,b]=[b,g]),b<o||g>s)continue;g<o&&(g=o),b>s&&(b=s),this.variableBuilder.updateFromDatum(d),c[0]=0,c[1]=0;const y=1;this.variableBuilder.pushAll();for(let w=0;w<=y;w++)c[0]=w/y,c[1]=0,this.variableBuilder.pushAll(),c[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(d)}this.registerBatch(e)}}class yN extends Ks{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:e,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let f=0;f<=s;f++)this.updatePos(f/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(e)}}class wN extends Ks{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}}class xN extends Ks{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}toArrays(){const e=this.variableBuilder.arrays;for(let n of Object.values(e))n.divisor=1;return super.toArrays()}}class vN extends Ks{constructor({encoders:e,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:e,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=e.text.channelDef;this.numberFormat=!Fn(s)&&"format"in s&&s.format?pt(s.format):f=>f,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(e,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,f=this.metadata.common.scaleH;let u=-io;switch(this.properties.baseline){case"top":u+=this.metrics.capHeight;break;case"middle":u+=this.metrics.capHeight/2;break;case"bottom":u-=this.metrics.descent;break}const l=this.encoders.text.accessor||this.encoders.text,c=[0,0];this.updateVertexCoord(c);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const g=n[d],b=this.numberFormat(l(g)),y=Ke(b)?b:b===null?"":""+b;if(y.length==0)continue;this.variableBuilder.updateFromDatum(g);const w=o?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let E=a=="right"?-w:a=="center"?-w/2:0;if(!o){const N=this.metrics.getCharByCode(y.charCodeAt(0));E-=(N.width-N.xadvance)/s/2}let _=-.5,D=1,T=1;for(let N=0;N<y.length;N++){const M=this.metrics.getCharByCode(y.charCodeAt(N)),R=o?1:M.xadvance/s;if(M.id==32){E+=R;continue}o?(T=(M.width+io*2)/M.width,E=-T/2,D=(M.height+io*2)/M.height,_=-.5-io/M.height):(D=M.height/s,_=-(M.height+M.yoffset+u)/s,T=M.width/s);const C=M.x,k=M.y;c[0]=E,c[1]=_+D,h[0]=C/f,h[1]=k/f,this.variableBuilder.pushAll(),c[0]=E+T,c[1]=_+D,h[0]=(C+M.width)/f,h[1]=k/f,this.variableBuilder.pushAll(),c[0]=E,c[1]=_,h[0]=C/f,h[1]=(k+M.height)/f,this.variableBuilder.pushAll(),c[0]=E+T,c[1]=_+D,h[0]=(C+M.width)/f,h[1]=k/f,this.variableBuilder.pushAll(),c[0]=E,c[1]=_,h[0]=C/f,h[1]=(k+M.height)/f,this.variableBuilder.pushAll(),c[0]=E+T,c[1]=_,h[0]=(C+M.width)/f,h[1]=(k+M.height)/f,this.variableBuilder.pushAll(),E+=R}this.addToXIndex(g)}this.registerBatch(e)}}const Ew=`#define PI 3.141593
|
|
62
62
|
uniform View{mediump vec2 uViewOffset;mediump vec2 uViewScale;mediump vec2 uViewportSize;lowp float uDevicePixelRatio;lowp float uViewOpacity;bool uPickingEnabled;};/***Maps a coordinate on the unit scale to a normalized device coordinate.*(0,0)is at the bottom left corner.*/vec4 unitToNdc(vec2 coord){return vec4((coord*uViewScale+uViewOffset)*2.0-1.0,0.0,1.0);}vec4 unitToNdc(float x,float y){return unitToNdc(vec2(x,y));}vec4 pixelsToNdc(vec2 coord){return unitToNdc(coord/uViewportSize);}vec4 pixelsToNdc(float x,float y){return pixelsToNdc(vec2(x,y));}float linearstep(float edge0,float edge1,float x){return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}/***Specialized linearstep for doing antialiasing*/float distanceToRatio(float d){return clamp(d*uDevicePixelRatio+0.5,0.0,1.0);}vec4 distanceToColor(float d,vec4 fill,vec4 stroke,float halfStrokeWidth){if(halfStrokeWidth>0.0){float sd=abs(d)-halfStrokeWidth;return mix(stroke,d<=0.0 ? fill : vec4(0.0),distanceToRatio(sd));}else{return fill*distanceToRatio(-d);}}`,AN="const float inf=1.0/0.0;vec3 getDiscreteColor(sampler2D s,int index){return texelFetch(s,ivec2(index % textureSize(s,0).x,0),0).rgb;}vec3 getInterpolatedColor(sampler2D s,float unitValue){return texture(s,vec2(unitValue,0.0)).rgb;}float clampToRange(float value,vec2 range){return clamp(value,min(range[0],range[1]),max(range[0],range[1]));}float scaleIdentity(float value){return value;}float scaleLinear(float value,vec2 domain,vec2 range){float domainSpan=domain[1]-domain[0];float rangeSpan=range[1]-range[0];return(value-domain[0])/domainSpan*rangeSpan+range[0];}float scaleLog(float value,vec2 domain,vec2 range,float base){return scaleLinear(log(value)/log(base),log(domain)/log(base),range);}float symlog(float value,float constant){return sign(value)*log(abs(value/constant)+1.0);}float scaleSymlog(float value,vec2 domain,vec2 range,float constant){return scaleLinear(symlog(value,constant),vec2(symlog(domain[0],constant),symlog(domain[1],constant)),range);}float scalePow(float value,vec2 domain,vec2 range,float exponent){return scaleLinear(pow(abs(value),exponent)*sign(value),pow(abs(domain),vec2(exponent))*sign(domain),range);}float scaleBand(float value,vec2 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;float n=domainExtent[1]-domainExtent[0];paddingInner=int(n)>1 ? paddingInner : 0.0;float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);return start+(value-domainExtent[0])*step+bandwidth*band;}float scaleBandHp(vec2 value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);float hi=max(value[0]-domainStart[0],-inf);float lo=max(value[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",EN=`/***Describes where a sample facet should be shown. Interpolating between the*current and target positions/heights allows for transitioning between facet*configurations.*/struct SampleFacetPosition{float pos;float height;float targetPos;float targetHeight;};/***Trasition fraction[0,1]between the current and target configurations.*/uniform float uTransitionOffset;
|
|
63
63
|
#if !defined(SAMPLE_FACET_UNIFORM) && !defined(SAMPLE_FACET_TEXTURE)
|
|
64
64
|
SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1.0);}
|
|
@@ -73,30 +73,30 @@ int id=int(getScaled_uniqueId());vPickingColor=vec4(ivec4(id>>0,id>>8,id>>16,0xF
|
|
|
73
73
|
#else
|
|
74
74
|
vPickingColor=vec4(1.0);
|
|
75
75
|
#endif
|
|
76
|
-
return true;}return false;}`,_N="in highp vec4 vPickingColor;",Ml=Symbol("cacheMap");function
|
|
76
|
+
return true;}return false;}`,_N="in highp vec4 vPickingColor;",Ml=Symbol("cacheMap");function ao(t,e,n){let r=Js(t).get(e);return r===void 0&&(r=n(e),Js(t).set(e,r)),r}function Sw(t,e){Js(t).delete(e)}function Tl(t,e){const n=Js(t);for(const r of n.keys())r.startsWith(e)&&n.delete(r);Js(t).delete(e)}function _w(t){t[Ml]=new Map}function Js(t){return t[Ml]||_w(t),t[Ml]}function CN(t,e,n,r){const i=Ke(t)?t:t.name,a=!Ke(t)&&t.extent||[0,1];if(n===void 0&&!Ke(t)&&(n=t.count),i){const o=Ad(i);if(kt(o)){const s=Cw(o,{extent:a,count:n});return Nl(e,{minMag:e.LINEAR,format:e.RGB,height:1,wrap:e.CLAMP_TO_EDGE},s,r)}else{if(Xt(o))return o0(o,e);throw new Error("Unknown scheme: "+i)}}}function DN(t,e="rgb",n,r){const i=il(t,Ke(e)?e:e.type,Ke(e)?void 0:e.gamma),a=Cw(i);return Nl(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},a,r)}function IN(t,e,n,r){const i=Math.max(t.length,n||0),a=new Float32Array(i);for(let o=0;o<i;o++)a[o]=t[o%t.length];return Nl(e,{minMag:e.NEAREST,format:e.RED,internalFormat:e.R32F,height:1},a,r)}function o0(t,e,n,r){const i=Dw(t,n);return Nl(e,{minMag:e.NEAREST,format:e.RGB,height:1},i,r)}function Cw(t,{extent:e=[0,1],reverse:n=!1,count:r=256}={}){const i=e[0],a=Es(e)-i,o=rs(r).map(s=>s/(r-1)).map(s=>i+s/a).map(t);return n&&o.reverse(),Dw(o)}function Dw(t,e){const n=Math.max(t.length,e||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const a=Wr(t[i%t.length]).rgb();r[i*3+0]=a.r,r[i*3+1]=a.g,r[i*3+2]=a.b}return r}class MN{constructor(e,n,r){this._container=e,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const i=document.createElement("canvas");e.appendChild(i);const a=tN(i,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!a)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Wa(a))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(gw(a),a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),this.canvas=i,this.gl=a,this._pickingAttachmentOptions=[{format:a.RGBA,type:a.UNSIGNED_BYTE,minMag:a.LINEAR,wrap:a.CLAMP_TO_EDGE}],this._pickingBufferInfo=W6(a,this._pickingAttachmentOptions),a.bindFramebuffer(a.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(o=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr(),this._clearColor=[0,0,0,0],r){const o=Wr(r).rgb();this._clearColor=[o.r/255,o.g/255,o.b/255,o.opacity]}}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(e,n){const r="#version 300 es",i="precision mediump float;";Xt(n)&&(n=n.join(`
|
|
77
77
|
|
|
78
78
|
`));const a=this.gl,o=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(o);if(!s){const f=[r,i,n].join(`
|
|
79
79
|
|
|
80
|
-
`);s=a.createShader(e),a.shaderSource(s,f),a.compileShader(s),this._shaderCache.set(o,s)}return s}adjustGl(){const e=this.getLogicalCanvasSize();this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`;const n=this.getPhysicalCanvasSize(e);this.canvas.width=n.width,this.canvas.height=n.height,X6(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(e){return e=e||this.getLogicalCanvasSize(),{width:e.width*this.dpr,height:e.height*this.dpr}}getLogicalCanvasSize(){var a;if(this._logicalCanvasSize)return this._logicalCanvasSize;const e=((a=this._sizeSource)==null?void 0:a.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=e.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=e.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(e,n){this._listeners.push({type:e,listener:n})}_emit(e){for(const n of this._listeners)n.type===e&&n.listener()}readPickingPixel(e,n){const r=this.gl;e*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,a=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(e,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,a),r.bindFramebuffer(r.FRAMEBUFFER,null),a}clearAll(){const e=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();e.viewport(0,0,n,r),e.disable(e.SCISSOR_TEST),e.clearColor(...this._clearColor),e.clear(e.COLOR_BUFFER_BIT)}createRangeTexture(e,n=!1){const r=this.rangeTextures.get(e);if(!n&&r)return;function i(o,s){return
|
|
80
|
+
`);s=a.createShader(e),a.shaderSource(s,f),a.compileShader(s),this._shaderCache.set(o,s)}return s}adjustGl(){const e=this.getLogicalCanvasSize();this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`;const n=this.getPhysicalCanvasSize(e);this.canvas.width=n.width,this.canvas.height=n.height,X6(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(e){return e=e||this.getLogicalCanvasSize(),{width:e.width*this.dpr,height:e.height*this.dpr}}getLogicalCanvasSize(){var a;if(this._logicalCanvasSize)return this._logicalCanvasSize;const e=((a=this._sizeSource)==null?void 0:a.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=e.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=e.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(e,n){this._listeners.push({type:e,listener:n})}_emit(e){for(const n of this._listeners)n.type===e&&n.listener()}readPickingPixel(e,n){const r=this.gl;e*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,a=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(e,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,a),r.bindFramebuffer(r.FRAMEBUFFER,null),a}clearAll(){const e=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();e.viewport(0,0,n,r),e.disable(e.SCISSOR_TEST),e.clearColor(...this._clearColor),e.clear(e.COLOR_BUFFER_BIT)}createRangeTexture(e,n=!1){const r=this.rangeTextures.get(e);if(!n&&r)return;function i(o,s){return Jr(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?o??4:o}const a=e.channel;if(Xi(a)){const o=e.getScaleProps(),s=e.getScale(),f=s.range();let u;if(o.scheme)if(s.type=="threshold"&&f)u=o0(f,this.gl,s.domain().length,r);else{let l=Ke(o.scheme)?void 0:o.scheme.count;l=i(l,s),u=CN(o.scheme,this.gl,l,r)}else rl(s.type)||Et(s.type)&&f.length>2?u=DN(f,o.interpolate,this.gl,r):u=o0(f,this.gl,s.domain().length,r);this.rangeTextures.set(e,u)}else{const o=e.getScale();if(o.type==="ordinal"||Za(o.type)){const s=ol(a)?ey(a):u=>u,f=e.getScale().range();this.rangeTextures.set(e,IN(f.map(s),this.gl,o.domain().length,r))}}}}function TN(t,e="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...e.matchAll(r)],a=new Map(i.map((o,s)=>{const f=parseInt(o[1]),u=i[s+1],l=u?u.index:e.length,c=e.substring(o.index,l);return[f-1,c]}));return t.split(`
|
|
81
81
|
`).map((o,s)=>{const f=a.get(s);return`${s+1+n}: ${o}${f?`
|
|
82
82
|
|
|
83
83
|
^^^ ${f}`:""}`}).join(`
|
|
84
84
|
`)}function NN(t,e,n){const r=t.createProgram();t.attachShader(r,e),t.attachShader(r,n),t.linkProgram(r);function i(){let a,o;if(!t.getProgramParameter(r,t.LINK_STATUS)){a=t.getProgramInfoLog(r);for(const f of[e,n])t.getShaderParameter(f,t.COMPILE_STATUS)||(a=t.getShaderInfoLog(f),o=TN(t.getShaderSource(f),a,0)+`
|
|
85
|
-
Error compiling: ${a}`,t.deleteShader(f));t.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function Nl(t,e,n,r){return r?
|
|
85
|
+
Error compiling: ${a}`,t.deleteShader(f));t.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function Nl(t,e,n,r){return r?Ty(t,r,n,e):r=Xs(t,{...e,src:n}),r}function FN(...t){const e={get(n,r,i){for(const a of t){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of t){const o=a();if(r in o)return!0}return!1}};return new Proxy({},e)}function BN(t){return Ke(t)||Lt(t)||pf(t)}const kN="SAMPLE_FACET_UNIFORM",Iw="SAMPLE_FACET_TEXTURE";class eu{constructor(e){this.unitView=e,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.rangeMap=new LN,this.defaultProperties={get clip(){return["x","y"].map(n=>e.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=FN(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const e={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(e.uniqueId={field:"_uniqueId"}),e}fixEncoding(e){return e}get encoding(){return ao(this,"encoding",()=>{const e=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=o=>{const s=this.properties[o];return BN(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(o=>[o,r(o)]).filter(o=>o[1].value!==void 0)),a=this.fixEncoding({...e,...i,...n});for(const o of Object.keys(a))this.getSupportedChannels().includes(o)||delete a[o];return a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=sM(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Iw;if(this.unitView.getLayoutAncestors().find(e=>"samples"in e.spec))return kN}createAndLinkShaders(e,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let a=[];const o=this.getSampleFacetMode();o&&r.push(`#define ${o}`);for(const h of i){let d;if(h in this.encoding)d=h;else continue;const g=this.encoding[d];if(g)if(Fn(g))a.push(oN(d,g.value));else{const b=un(g)&&g.resolutionChannel||d,y=$i(b)?this.unitView.getScaleResolution(b).getScale():al(),w=sN(d,y,g);a.push(w.glsl),w.domainUniform&&this.domainUniforms.push(w.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
|
|
86
86
|
`+this.domainUniforms.map(h=>` ${h}
|
|
87
87
|
`).join("")+`};
|
|
88
88
|
|
|
89
89
|
`:"",u=[`precision highp float;
|
|
90
|
-
`,...r,Aw,AN,s,...a,EN,SN,e],l=[...r,Aw,_N,n],c=this.gl;this.programStatus=NN(c,this.glHelper.compileShader(c.VERTEX_SHADER,u),this.glHelper.compileShader(c.FRAGMENT_SHADER,l))}finalizeGraphicsInitialization(){const e=this.programStatus.getProgramErrors();if(e){e.detail&&console.warn(e.detail);const n=new Error("Cannot create shader program: "+e.message);throw n.view=this.unitView,n}this.programInfo=F6(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=nw(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=nw(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),$t(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[e,n]of Object.entries(this.encoding))if(Hs(n)){const r=this.encoders[e],i=r.indexer?r.indexer(n.datum):Il(r.scale.type)?xw(+n.datum):+n.datum;$t(this.programInfo,{[t0+e]:i})}}deleteGraphicsData(){if(this.bufferInfo){const e=this.gl;for(let n=0;n<8;n++)e.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(e){if(this.gl.bindVertexArray(null),this.bufferInfo&&e.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(e.arrays))r.data&&QM(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=ZM(this.gl,e.arrays,{numElements:e.vertexCount}),this.bufferInfo.allocatedVertices=e.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const e of this.unitView.getLayoutAncestors())if(!e.isPickingSupported())return!1;return!0}prepareRender(e){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=$6(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const f=o.substring(gw.length),u=this.encoding[f],l=un(u)&&u.resolutionChannel||f;if($i(l)){const c=this.unitView.getScaleResolution(l).getScale();i.push(()=>{const h=ei(c.type)?[0,c.domain().length]:c.domain();s(Il(c.type)?hN(h):h)})}}i.push(()=>rw(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(un(s)){const f=un(s)&&s.resolutionChannel||o;if($i(f)){const u=this.unitView.getScaleResolution(f),l=n.rangeTextures.get(u);l&&i.push(()=>$t(this.programInfo,{[n0+o]:l}))}}this.getSampleFacetMode()==Dw&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");$t(this.programInfo,{uSampleFacetTexture:o})});const a=(e.picking??!1)&&this.isPickingParticipant();return i.push(()=>iw(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||e.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(e){const n=e.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(e){}createRenderCallback(e,n){var c;if(!this.bufferInfo){const h=new Error(`${this.getType()} mark has no data. This is bug.`);throw h.view=this.unitView,h}const r=this;let i;const a=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),o=a&&At(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,f=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),g=h.xIndex(d[0]+s,d[1],f),b=g[0],y=g[1]-b;y>0&&e(b,y)}else e(h.offset,h.count)};const u=this.rangeMap.get(void 0).count==0?n.facetId:void 0,l=this.rangeMap.get(u);return n.sampleFacetRenderingOptions?function(){l.count&&r.prepareSampleFacetRendering(n)&&i(l)}:function(){l.count&&i(l)}}setViewport(e,n){e=e.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,f=(a.xOffset??0)+s,u=(a.yOffset??0)+s;let l,c=e;if(a.clip!=="never"&&(a.clip||n)){let h=0,d=0,g;if(n){if(c=e.intersect(n).flatten(),!c.isDefined())return!1;g=[e.width/c.width,e.height/c.height],d=Math.max(0,e.y2-n.y2),h=Math.max(0,e.x2-n.x2)}else g=[1,1];const b=[c.x,o.height-c.y2,c.width,c.height].map(_=>_*r),y=b.map(_=>Math.round(_)),[w,E]=b.map((_,D)=>_-y[D]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),l={uViewOffset:[(f+h+w/r)/c.width,-(u+d-E/r)/c.height],uViewScale:g}}else{if(!e.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),l={uViewOffset:[(e.x+f)/o.width,(o.height-e.y-u-e.height)/o.height],uViewScale:[e.width/o.width,e.height/o.height]}}return iw(this.viewUniformInfo,{...l,uViewportSize:[e.width,e.height],uDevicePixelRatio:r}),rw(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(e,n){}}class LN extends Bi{constructor(){super([],JSON.stringify)}get(e){let n=super.get(e);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(e,n)),n}migrateEntries(e){for(const[n,r]of e.entries())Object.assign(this.get(n),r)}}function s0(t,e){const n=cM(e);let r=t[e]&&{...t[e]},i=t[n]&&{...t[n]};if(!(Fn(r)||Fn(i))){if(r){if(!un(t[e]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};t[e]=r,t[n]=i}}function Iw(t,e){t.stroke||(e?t.stroke={value:null}:t.stroke={resolutionChannel:"color",...t.color}),Fn(t.stroke)&&t.stroke.value===null&&(t.strokeWidth={value:0}),t.strokeOpacity||(t.strokeOpacity={resolutionChannel:"opacity",...t.opacity})}function Mw(t,e){Fn(t.fill)&&t.fill.value===null?t.fillOpacity={value:0}:t.fill||(t.fill={resolutionChannel:"color",...t.color},!e&&!t.fillOpacity&&(t.fillOpacity={value:0})),t.fillOpacity||(e?t.fillOpacity={resolutionChannel:"opacity",...t.opacity}:t.fillOpacity={value:0})}class RN extends tu{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return oo(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&Fn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(e){return s0(e,"x"),s0(e,"y"),Iw(e,this.properties.filled),Mw(e,this.properties.filled),delete e.color,delete e.opacity,e}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){const e=this.properties;return e.cornerRadius||e.cornerRadiusBottomLeft||e.cornerRadiusBottomRight||e.cornerRadiusTopLeft||e.cornerRadiusTopRight}_isStroked(){const e=this.encoding.strokeWidth;return!(Fn(e)&&!e.value)}async initializeGraphics(){await super.initializeGraphics();const e=[];this._isRoundedCorners()&&e.push("ROUNDED_CORNERS"),this._isStroked()&&e.push("STROKED"),this.createAndLinkShaders(nN,rN,e.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;$t(this.programInfo,{uMinSize:[e.minWidth,e.minHeight],uMinOpacity:e.minOpacity,uCornerRadii:[e.cornerRadiusTopRight??e.cornerRadius,e.cornerRadiusBottomRight??e.cornerRadius,e.cornerRadiusTopLeft??e.cornerRadius,e.cornerRadiusBottomLeft??e.cornerRadius]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new bN({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>io(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{Ks(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},e)}findDatumAt(e,n){e=on(e);const r=this.unitView.getCollector().facetBatches.get(e);if(!r)return;const i=this.encoders,a=i.x.scale.type;if(ei(a)){const o=i.x.accessor;return r.find(s=>n==o(s))}else{const o=i.x.accessor,s=i.x2.accessor;return r.find(f=>n>=o(f)&&n<s(f))}}}const ON=`/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform lowp float uMaxRelativePointDiameter;uniform float uScaleFactor;uniform float uMaxPointSize;uniform float uZoomLevel;uniform float uSemanticThreshold;out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){
|
|
90
|
+
`,...r,Ew,AN,s,...a,EN,SN,e],l=[...r,Ew,_N,n],c=this.gl;this.programStatus=NN(c,this.glHelper.compileShader(c.VERTEX_SHADER,u),this.glHelper.compileShader(c.FRAGMENT_SHADER,l))}finalizeGraphicsInitialization(){const e=this.programStatus.getProgramErrors();if(e){e.detail&&console.warn(e.detail);const n=new Error("Cannot create shader program: "+e.message);throw n.view=this.unitView,n}this.programInfo=F6(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=rw(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=rw(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Kt(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[e,n]of Object.entries(this.encoding))if(Gs(n)){const r=this.encoders[e],i=r.indexer?r.indexer(n.datum):Il(r.scale.type)?vw(+n.datum):+n.datum;Kt(this.programInfo,{[t0+e]:i})}}deleteGraphicsData(){if(this.bufferInfo){const e=this.gl;for(let n=0;n<8;n++)e.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(e){if(this.gl.bindVertexArray(null),this.bufferInfo&&e.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(e.arrays))r.data&&QM(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=ZM(this.gl,e.arrays,{numElements:e.vertexCount}),this.bufferInfo.allocatedVertices=e.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const e of this.unitView.getLayoutAncestors())if(!e.isPickingSupported())return!1;return!0}prepareRender(e){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=$6(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const f=o.substring(pw.length),u=this.encoding[f],l=un(u)&&u.resolutionChannel||f;if($i(l)){const c=this.unitView.getScaleResolution(l).getScale();i.push(()=>{const h=Jr(c.type)?[0,c.domain().length]:c.domain();s(Il(c.type)?hN(h):h)})}}i.push(()=>iw(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(un(s)){const f=un(s)&&s.resolutionChannel||o;if($i(f)){const u=this.unitView.getScaleResolution(f),l=n.rangeTextures.get(u);l&&i.push(()=>Kt(this.programInfo,{[n0+o]:l}))}}this.getSampleFacetMode()==Iw&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");Kt(this.programInfo,{uSampleFacetTexture:o})});const a=(e.picking??!1)&&this.isPickingParticipant();return i.push(()=>aw(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||e.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(e){const n=e.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(e){}createRenderCallback(e,n){var c;if(!this.bufferInfo){const h=new Error(`${this.getType()} mark has no data. This is bug.`);throw h.view=this.unitView,h}const r=this;let i;const a=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),o=a&&Et(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,f=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),g=h.xIndex(d[0]+s,d[1],f),b=g[0],y=g[1]-b;y>0&&e(b,y)}else e(h.offset,h.count)};const u=this.rangeMap.get(void 0).count==0?n.facetId:void 0,l=this.rangeMap.get(u);return n.sampleFacetRenderingOptions?function(){l.count&&r.prepareSampleFacetRendering(n)&&i(l)}:function(){l.count&&i(l)}}setViewport(e,n){e=e.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,f=(a.xOffset??0)+s,u=(a.yOffset??0)+s;let l,c=e;if(a.clip!=="never"&&(a.clip||n)){let h=0,d=0,g;if(n){if(c=e.intersect(n).flatten(),!c.isDefined())return!1;g=[e.width/c.width,e.height/c.height],d=Math.max(0,e.y2-n.y2),h=Math.max(0,e.x2-n.x2)}else g=[1,1];const b=[c.x,o.height-c.y2,c.width,c.height].map(_=>_*r),y=b.map(_=>Math.round(_)),[w,E]=b.map((_,D)=>_-y[D]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),l={uViewOffset:[(f+h+w/r)/c.width,-(u+d-E/r)/c.height],uViewScale:g}}else{if(!e.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),l={uViewOffset:[(e.x+f)/o.width,(o.height-e.y-u-e.height)/o.height],uViewScale:[e.width/o.width,e.height/o.height]}}return aw(this.viewUniformInfo,{...l,uViewportSize:[e.width,e.height],uDevicePixelRatio:r}),iw(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(e,n){}}class LN extends Bi{constructor(){super([],JSON.stringify)}get(e){let n=super.get(e);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(e,n)),n}migrateEntries(e){for(const[n,r]of e.entries())Object.assign(this.get(n),r)}}function s0(t,e){const n=cM(e);let r=t[e]&&{...t[e]},i=t[n]&&{...t[n]};if(!(Fn(r)||Fn(i))){if(r){if(!un(t[e]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};t[e]=r,t[n]=i}}function Mw(t,e){t.stroke||(e?t.stroke={value:null}:t.stroke={resolutionChannel:"color",...t.color}),Fn(t.stroke)&&t.stroke.value===null&&(t.strokeWidth={value:0}),t.strokeOpacity||(t.strokeOpacity={resolutionChannel:"opacity",...t.opacity})}function Tw(t,e){Fn(t.fill)&&t.fill.value===null?t.fillOpacity={value:0}:t.fill||(t.fill={resolutionChannel:"color",...t.color},!e&&!t.fillOpacity&&(t.fillOpacity={value:0})),t.fillOpacity||(e?t.fillOpacity={resolutionChannel:"opacity",...t.opacity}:t.fillOpacity={value:0})}class RN extends eu{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return ao(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&Fn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(e){return s0(e,"x"),s0(e,"y"),Mw(e,this.properties.filled),Tw(e,this.properties.filled),delete e.color,delete e.opacity,e}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){const e=this.properties;return e.cornerRadius||e.cornerRadiusBottomLeft||e.cornerRadiusBottomRight||e.cornerRadiusTopLeft||e.cornerRadiusTopRight}_isStroked(){const e=this.encoding.strokeWidth;return!(Fn(e)&&!e.value)}async initializeGraphics(){await super.initializeGraphics();const e=[];this._isRoundedCorners()&&e.push("ROUNDED_CORNERS"),this._isStroked()&&e.push("STROKED"),this.createAndLinkShaders(nN,rN,e.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uMinSize:[e.minWidth,e.minHeight],uMinOpacity:e.minOpacity,uCornerRadii:[e.cornerRadiusTopRight??e.cornerRadius,e.cornerRadiusBottomRight??e.cornerRadius,e.cornerRadiusTopLeft??e.cornerRadius,e.cornerRadiusBottomLeft??e.cornerRadius]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new bN({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>ro(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{$s(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},e)}findDatumAt(e,n){e=$t(e);const r=this.unitView.getCollector().facetBatches.get(e);if(!r)return;const i=this.encoders,a=i.x.scale.type;if(Jr(a)){const o=i.x.accessor;return r.find(s=>n==o(s))}else{const o=i.x.accessor,s=i.x2.accessor;return r.find(f=>n>=o(f)&&n<s(f))}}}const ON=`/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform lowp float uMaxRelativePointDiameter;uniform float uScaleFactor;uniform float uMaxPointSize;uniform float uZoomLevel;uniform float uSemanticThreshold;out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){
|
|
91
91
|
#if defined(dx_DEFINED) || defined(dy_DEFINED)
|
|
92
92
|
return vec2(getScaled_dx(),getScaled_dy())/uViewportSize;
|
|
93
93
|
#else
|
|
94
94
|
return vec2(0.0,0.0);
|
|
95
95
|
#endif
|
|
96
|
-
}void main(void){float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor*getDownscaleFactor(pos);float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,zN="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);uniform bool uInwardStroke;uniform float uGradientStrength;in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float TRIANGLE_UP=2.0;const float CROSS=3.0;const float DIAMOND=4.0;const float TRIANGLE_DOWN=5.0;const float TRIANGLE_RIGHT=6.0;const float TRIANGLE_LEFT=7.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float equilateralTriangle(vec2 p,float r,bool flip,bool swap){if(swap){p.xy=p.yx;}if(flip){p.y=-p.y;}float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r,true,false);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_DOWN){d=equilateralTriangle(p,r,false,false);}else if(vShape==TRIANGLE_RIGHT){d=equilateralTriangle(p,r,false,true);}else if(vShape==TRIANGLE_LEFT){d=equilateralTriangle(p,r,true,true);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",
|
|
97
|
-
`)+`return function propagate(datum) {${
|
|
96
|
+
}void main(void){float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor*getDownscaleFactor(pos);float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,zN="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);uniform bool uInwardStroke;uniform float uGradientStrength;in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float TRIANGLE_UP=2.0;const float CROSS=3.0;const float DIAMOND=4.0;const float TRIANGLE_DOWN=5.0;const float TRIANGLE_RIGHT=6.0;const float TRIANGLE_LEFT=7.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float equilateralTriangle(vec2 p,float r,bool flip,bool swap){if(swap){p.xy=p.yx;}if(flip){p.y=-p.y;}float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r,true,false);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_DOWN){d=equilateralTriangle(p,r,false,false);}else if(vShape==TRIANGLE_RIGHT){d=equilateralTriangle(p,r,false,true);}else if(vShape==TRIANGLE_LEFT){d=equilateralTriangle(p,r,true,true);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",er=1<<0,oi=1<<1,u0=1<<2,PN={};class tt{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const e of this.children)e.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",rs(this.children.length).map(e=>`const child${e} = children[${e}];`).join(`
|
|
97
|
+
`)+`return function propagate(datum) {${rs(this.children.length).map(e=>`child${e}.handle(datum);`).join(`
|
|
98
98
|
`)}}`)(this.children)}setParent(e){this.parent=e}addChild(e){if(e.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(e),e.setParent(this),this._updatePropagator(),this}adopt(e){e.parent&&e.parent.removeChild(e),this.addChild(e)}adoptChildrenOf(e){for(const n of e.children)this.adopt(n)}insertAsParent(e){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");e.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.parent=void 0,e.addChild(this)}removeChild(e){const n=this.children.indexOf(e);if(n>-1)this.children.splice(n,1),e.parent=void 0,this._updatePropagator();else throw new Error("Trying to remove an unknown child node!")}excise(){if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const e=this.children[0];e.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(e){e(this);for(const n of this.children)n.visit(e);e.afterChildren&&e.afterChildren(this)}subtreeToString(e=0){const n=this.children.map(r=>r.subtreeToString(e+1)).join("");return`${" ".repeat(e*2)}* ${this.constructor.name}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
|
|
99
|
-
${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():PN}handle(e){this._propagate(e)}complete(){this.completed=!0;for(const e of this.children)e.complete()}beginBatch(e){for(const n of this.children)n.beginBatch(e)}_propagate(e){}}function Tw(t){return t.type=="file"}function UN(t){return t.type=="facet"}class Nw extends tt{constructor(e){super(),this.k=e.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(e){this.reservoir.push(e),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(e){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=e,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(e){this.ingester(e)}complete(){for(const e of this.reservoir)this._propagate(e);super.complete()}}function jN(t,e,n){const r=new Nw({type:"sample",size:t});for(const i of e)r.handle(n(i));return r.complete(),r.reservoir}const GN={};class HN extends tu{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...GN}}fixEncoding(e){return Iw(e,this.properties.filled),Mw(e,this.properties.filled),delete e.color,delete e.opacity,e}initializeData(){super.initializeData();const e=this.unitView.getAccessor("semanticScore");e&&(this.sampledSemanticScores=Float32Array.from(jN(1e4,this.unitView.getCollector().getData(),e)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(ON,zN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;$t(this.programInfo,{uInwardStroke:e.inwardStroke,uGradientStrength:e.fillGradientStrength,uMaxRelativePointDiameter:1-2*e.sampleFacetPadding})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new wN({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const e=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/e),1/3)}_getMaxPointSize(){const e=this.encoders.size;return e.constant?e(null):e.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const e=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(e<=0)return-1/0;if(e>=1)return 1/0;{const n=this.sampledSemanticScores;return dm(n,e)}}else return-1}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>$t(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>io(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&Ks(n,this.vertexArrayInfo,n.POINTS,i,r)},e)}}const QN="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;uniform float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",VN="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;uniform float uDashTextureSize;uniform float uStrokeDashOffset;uniform lowp int uStrokeCap;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}";class qN extends tu{constructor(e){super(e),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){if(!(e.x&&e.y&&e.x2&&e.y2))if(e.x&&e.x2&&!e.y)e.y={value:.5},e.y2=e.y;else if(e.y&&e.y2&&!e.x)e.x={value:.5},e.x2=e.x;else if(e.x&&!e.y)e.y={value:0},e.y2={value:1},e.x2=e.x;else if(e.y&&!e.x)e.x={value:0},e.x2={value:1},e.y2=e.y;else if(e.x&&e.y&&e.y2)e.x2=e.x;else if(e.y&&e.x&&e.x2)e.y2=e.y;else if(e.y&&e.x)if(!e.x2&&un(e.y)&&e.y.type=="quantitative")e.x2=e.x,e.y2={datum:0};else if(!e.y2&&un(e.x)&&e.x.type=="quantitative")e.y2=e.y,e.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(e));return e}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const e=this.gl,n=ZN(this.properties.strokeDash);this.dashTexture=$s(e,{mag:e.NEAREST,min:e.NEAREST,internalFormat:e.R8,format:e.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(QN,VN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;$t(this.programInfo,{uMinLength:e.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(e.strokeCap)})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new yN({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return this.dashTexture&&n.push(()=>$t(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>io(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>Ks(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),e)}}function ZN(t){if(t.length==0||t.length%2||t.findIndex(a=>Math.round(a)!=a||a<1||a>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(t));const e=t.reduce((a,o)=>a+o),n=new Uint8Array(e);let r=!0,i=0;for(let a of t){for(;a;)n[i++]=r&&255||0,a--;r=!r}return n}const YN=`uniform float uSagittaScaleFactor;uniform float uMinSagittaLength;in vec2 strip;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 a=vec2(getScaled_x(),getScaled_y())*uViewportSize;vec2 b=vec2(getScaled_x2(),getScaled_y2())*uViewportSize;vec2 chordVector=b-a;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float sagitta=max(length(chordVector)/2.0*uSagittaScaleFactor,uMinSagittaLength);bool compress=false;if(compress){float maxSagittaLen=length(chordNormal*uViewportSize);float maxChordLen=length(unitChordVector*uViewportSize);float threshold=maxSagittaLen*0.5;if(sagitta>threshold){float m=(maxSagittaLen-threshold)/(maxChordLen-threshold);sagitta=(sagitta-threshold)*m+threshold;}}vec2 controlOffset=chordNormal*sagitta/0.75;vec2 p1=a;vec2 p2=a+controlOffset;vec2 p3=b+controlOffset;vec2 p4=b;float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);
|
|
99
|
+
${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():PN}handle(e){this._propagate(e)}complete(){this.completed=!0;for(const e of this.children)e.complete()}beginBatch(e){for(const n of this.children)n.beginBatch(e)}_propagate(e){}}function Nw(t){return t.type=="file"}function UN(t){return t.type=="facet"}class Fw extends tt{constructor(e){super(),this.k=e.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(e){this.reservoir.push(e),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(e){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=e,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(e){this.ingester(e)}complete(){for(const e of this.reservoir)this._propagate(e);super.complete()}}function jN(t,e,n){const r=new Fw({type:"sample",size:t});for(const i of e)r.handle(n(i));return r.complete(),r.reservoir}const GN={};class HN extends eu{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...GN}}fixEncoding(e){return Mw(e,this.properties.filled),Tw(e,this.properties.filled),delete e.color,delete e.opacity,e}initializeData(){super.initializeData();const e=this.unitView.getAccessor("semanticScore");e&&(this.sampledSemanticScores=Float32Array.from(jN(1e4,this.unitView.getCollector().getData(),e)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(ON,zN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uInwardStroke:e.inwardStroke,uGradientStrength:e.fillGradientStrength,uMaxRelativePointDiameter:1-2*e.sampleFacetPadding})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new wN({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const e=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/e),1/3)}_getMaxPointSize(){const e=this.encoders.size;return e.constant?e(null):e.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const e=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(e<=0)return-1/0;if(e>=1)return 1/0;{const n=this.sampledSemanticScores;return gm(n,e)}}else return-1}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Kt(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>ro(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&$s(n,this.vertexArrayInfo,n.POINTS,i,r)},e)}}const QN="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;uniform float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",VN="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;uniform float uDashTextureSize;uniform float uStrokeDashOffset;uniform lowp int uStrokeCap;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}";class qN extends eu{constructor(e){super(e),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){if(!(e.x&&e.y&&e.x2&&e.y2))if(e.x&&e.x2&&!e.y)e.y={value:.5},e.y2=e.y;else if(e.y&&e.y2&&!e.x)e.x={value:.5},e.x2=e.x;else if(e.x&&!e.y)e.y={value:0},e.y2={value:1},e.x2=e.x;else if(e.y&&!e.x)e.x={value:0},e.x2={value:1},e.y2=e.y;else if(e.x&&e.y&&e.y2)e.x2=e.x;else if(e.y&&e.x&&e.x2)e.y2=e.y;else if(e.y&&e.x)if(!e.x2&&un(e.y)&&e.y.type=="quantitative")e.x2=e.x,e.y2={datum:0};else if(!e.y2&&un(e.x)&&e.x.type=="quantitative")e.y2=e.y,e.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(e));return e}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const e=this.gl,n=ZN(this.properties.strokeDash);this.dashTexture=Xs(e,{mag:e.NEAREST,min:e.NEAREST,internalFormat:e.R8,format:e.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(QN,VN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uMinLength:e.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(e.strokeCap)})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new yN({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return this.dashTexture&&n.push(()=>Kt(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>ro(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>$s(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),e)}}function ZN(t){if(t.length==0||t.length%2||t.findIndex(a=>Math.round(a)!=a||a<1||a>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(t));const e=t.reduce((a,o)=>a+o),n=new Uint8Array(e);let r=!0,i=0;for(let a of t){for(;a;)n[i++]=r&&255||0,a--;r=!r}return n}const YN=`uniform float uSagittaScaleFactor;uniform float uMinSagittaLength;in vec2 strip;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 a=vec2(getScaled_x(),getScaled_y())*uViewportSize;vec2 b=vec2(getScaled_x2(),getScaled_y2())*uViewportSize;vec2 chordVector=b-a;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float sagitta=max(length(chordVector)/2.0*uSagittaScaleFactor,uMinSagittaLength);bool compress=false;if(compress){float maxSagittaLen=length(chordNormal*uViewportSize);float maxChordLen=length(unitChordVector*uViewportSize);float threshold=maxSagittaLen*0.5;if(sagitta>threshold){float m=(maxSagittaLen-threshold)/(maxChordLen-threshold);sagitta=(sagitta-threshold)*m+threshold;}}vec2 controlOffset=chordNormal*sagitta/0.75;vec2 p1=a;vec2 p2=a+controlOffset;vec2 p3=b+controlOffset;vec2 p4=b;float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);
|
|
100
100
|
#ifdef size2_DEFINED
|
|
101
101
|
float mixedSize=mix(getScaled_size(),getScaled_size2(),t);
|
|
102
102
|
#else
|
|
@@ -108,7 +108,7 @@ vec3 color=mix(getScaled_color(),getScaled_color2(),t);
|
|
|
108
108
|
#else
|
|
109
109
|
vec3 color=getScaled_color();
|
|
110
110
|
#endif
|
|
111
|
-
vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}`,WN="in lowp vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}";class XN extends
|
|
111
|
+
vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}`,WN="in lowp vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}";class XN extends eu{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,sagittaScaleFactor:1,minSagittaLength:1.5}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){return e.x||(e.x2=e.x),e.y2||(e.y2=e.y),e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(YN,WN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uSagittaScaleFactor:e.sagittaScaleFactor,uMinSagittaLength:e.minSagittaLength})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new xN({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();i.arrays.strip={data:$N(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([a,o])=>[a,{...o,data:void 0}])),this.updateBufferInfo(i)}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const a of Object.entries(this.bufferInfo.attribs)){const[o,s]=a;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[o].numComponents*4)}ro(n,this.programInfo,this.bufferInfo),$s(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},e)}}function $N(t){let e=0;const n=[];for(;e<=t;e++)n.push(e/t,.5),n.push(e/t,-.5);return n}const KN=`uniform float uSdfNumerator;uniform vec2 uD;in mediump vec2 vertexCoord;in lowp vec2 textureCoord;uniform vec4 uViewportEdgeFadeWidth;uniform vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;in float width;uniform ivec2 uAlign;
|
|
112
112
|
#ifdef x2_DEFINED
|
|
113
113
|
uniform float uPaddingX;uniform bool uFlushX;
|
|
114
114
|
#endif
|
|
@@ -128,7 +128,7 @@ vec2 pos=applySampleFacet(vec2(x,y));
|
|
|
128
128
|
#ifdef y2_DEFINED
|
|
129
129
|
float y2=getScaled_y2();vec2 pos2=applySampleFacet(vec2(x,y2));if(uLogoLetter){size.y=(pos2.y-pos.y)*uViewportSize.y;pos.y+=(pos2.y-pos.y)/2.0;}else{RangeResult result=positionInsideRange(min(pos.y,pos2.y),max(pos.y,pos2.y),size.y*scale*flushSize.y/uViewportSize.y,uPaddingY/uViewportSize.y,align.y,uFlushY);pos.y=result.pos;scale*=result.scale;}
|
|
130
130
|
#endif
|
|
131
|
-
if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,JN="uniform sampler2D uTexture;uniform bool uLogoLetter;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",eF={left:-1,center:0,right:1},tF={top:-1,middle:0,bottom:1,alphabetic:1};class nF extends tu{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?e.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):e.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(e){for(const n of Wa)this.properties.fitToBand&&s0(e,n);return e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(KN,JN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;$t(this.programInfo,{uPaddingX:e.paddingX,uPaddingY:e.paddingY,uFlushX:!!e.flushX,uFlushY:!!e.flushY,uAlign:[eF[e.align],tF[e.baseline]],uD:[e.dx,-e.dy],uLogoLetter:!!e.logoLetters,uSqueeze:!!e.squeeze,uViewportEdgeFadeWidth:[e.viewportEdgeFadeWidthTop,e.viewportEdgeFadeWidthRight,e.viewportEdgeFadeWidthBottom,e.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[e.viewportEdgeFadeDistanceTop,e.viewportEdgeFadeDistanceRight,e.viewportEdgeFadeDistanceBottom,e.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let a=0;const o="format"in r.text?pt(r.text.format):u=>u;for(const u of n){const l=o(i(u)),c=Ke(l)?l:l===null?"":""+l;a+=c&&c.length||0}const s=new vN({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,this.properties.minBufferSize||0)});s.addBatches(e.facetBatches);const f=s.toArrays();this.rangeMap.migrateEntries(f.rangeMap),this.updateBufferInfo(f)}prepareRender(e){const n=super.prepareRender(e);let r=.35;this.properties.logoLetters&&(r/=2);const i=this.font.metrics.common.base/(this.unitView.context.devicePixelRatio/r);return n.push(()=>$t(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:i})),n.push(()=>io(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>Ks(n,this.vertexArrayInfo,n.TRIANGLES,i,r),e)}}function Fw(t,e,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const g of t)o+=Fl(g.px)+(f0(g)?0:n),s+=Fl(g.grow);o-=n;const f=Math.max(0,e-o),u=r!==void 0?g=>Math.round(g*r)/r:g=>g,l=[],c=[],h=g=>{const b=l.length;if(!b)return;const y=(g?n:0)*(a?-1:1);d-=y;for(let w=0;w<b;w++)c.push({location:d+(w+1)/(b+1)*y,size:0});d+=y,l.length=0};let d=a?Math.max(e,o):0+i;if(t.length==1&&f0(t[0]))return[{location:d,size:0}];for(let g=0;g<t.length;g++){const b=t[g];if(f0(b))l.push(b);else{h(c.length>0);const y=Fl(b.px)+(s?Fl(b.grow)/s*f:0);a&&(d-=y),c.push({location:u(d),size:u(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),c}function rF(t){let e=0,n=0;for(const r of t)e=Math.max(e,r.px??0),n=Math.max(n,r.grow??0);return{px:e,grow:n}}const Op=class{constructor(e,n){ye(this,Ku);this.width=e,this.height=n}addPadding(e){return fe(this,Ku,Hp).call(this,e.width,e.height)}subtractPadding(e){return fe(this,Ku,Hp).call(this,-e.width,-e.height)}};let na=Op;Ku=new WeakSet,Hp=function(e,n){return new Op({px:(this.width.px??0)+e,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};const nu=Object.freeze({px:0,grow:0}),iF=new na(nu,nu);function f0(t){return!t.px&&!t.grow}function Fl(t){return t||0}function aF(t){return t&&(Lt(t.px)||Lt(t.grow))}function Bw(t){if(Ow(t))throw new Error("parseSizeDef does not accept step-based sizes.");if(aF(t))return t;if(Lt(t))return{px:t,grow:0};if(t==="container")return{px:0,grow:1};if(!t)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${t}`)}class St{constructor(e,n,r,i){this.top=e||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(e){return e<=0?this:new St(this.top+e,this.right+e,this.bottom+e,this.left+e)}add(e){return new St(this.top+e.top,this.right+e.right,this.bottom+e.bottom,this.left+e.left)}subtract(e){return new St(this.top-e.top,this.right-e.right,this.bottom-e.bottom,this.left-e.left)}union(e){return new St(Math.max(this.top,e.top),Math.max(this.right,e.right),Math.max(this.bottom,e.bottom),Math.max(this.left,e.left))}getHorizontal(){return new St(0,this.right,0,this.left)}getVertical(){return new St(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(e){return typeof e=="number"?this.createUniformPadding(e):e?this.createFromRecord(e):l0}static createFromRecord(e){return new St(e.top,e.right,e.bottom,e.left)}static zero(){return l0}static createUniformPadding(e){return new St(e,e,e,e)}}const l0=St.createUniformPadding(0);Object.freeze(l0);const oF=/^([A-Za-z]+:)?\/\//;function sF(t,e){if(e&&oF.test(e))return e;const n=t();return n&&e?n.endsWith("/")?n+e:n+"/"+e:n??e}const kw="VISIT_SKIP",ru="VISIT_STOP",Lw=t=>t;class Rw{constructor(e,n,r,i,a){ye(this,Lc);ye(this,tf);ye(this,Yo,{});ye(this,Ju,{});ye(this,ef,{});rn(this,"opacityFunction",Lw);if(!e)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=e.name||a,this.spec=e,this.resolutions={scale:{},axis:{}},Sw(this),this.blockEncodingInheritance=!1,this.contributesToScaleDomain=!0,this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>St.createFromConfig(this.spec.padding))}getOverhang(){return St.zero()}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?fe(this,Lc,ES).call(this):iF)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(e=>e.isConfiguredVisible())}getEffectiveOpacity(){var e;return this.opacityFunction(((e=this.layoutParent)==null?void 0:e.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(e=>e.name).reverse().join("/")}getLayoutAncestors(){return fe(this,tf,Qp).call(this,"layoutParent")}getDataAncestors(){return fe(this,tf,Qp).call(this,"dataParent")}handleBroadcast(e){for(const n of ie(this,Yo)[e.type]||[])n(e)}_addBroadcastHandler(e,n){let r=ie(this,Yo)[e];r||(r=[],ie(this,Yo)[e]=r),r.push(n)}handleInteractionEvent(e,n,r){const i=r?ie(this,Ju):ie(this,ef);for(const a of i[n.type]||[])a(e,n)}addInteractionEventListener(e,n,r){const i=r?ie(this,Ju):ie(this,ef);let a=i[e];a||(a=[],i[e]=a),a.push(n)}visit(e){try{const n=e(this);if(e.postOrder&&e.postOrder(this),n!==ru)return n}catch(n){throw n.view=this,n}}getDescendants(){const e=[];return this.visit(n=>{e.push(n)}),e}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Lw)&&(this.opacityFunction=fF(this))}onBeforeRender(){}render(e,n,r={}){}getEncoding(){const e=this.dataParent&&!this.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...e,...n};for(const[i,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(e){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(e){var r;const n=this.getEncoding().sample;return Gs(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(e){const n=Wi(e);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(e){const n=Wi(e);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(e,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[e]}getConfiguredOrDefaultResolution(e,n){return this.getConfiguredResolution(e,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(e,n)}getDefaultResolution(e,n){return"independent"}getBaseUrl(){return sF(()=>{var e;return(e=this.dataParent)==null?void 0:e.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const e=this.spec.title;if(e)return Ke(e)?e:e.text}_cache(e,n){return oo(this,e,n)}_invalidateCacheByPrefix(e,n="self"){switch(n){case"self":Tl(this,e);break;case"ancestors":for(const r of this.getLayoutAncestors())Tl(r,e);break;case"progeny":this.visit(r=>Tl(r,e));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(e){}}Yo=new WeakMap,Ju=new WeakMap,ef=new WeakMap,Lc=new WeakSet,ES=function(){const e=n=>{var i;let r=this.spec[n];if(Ow(r)){const a=r.step,o=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(ei(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const u=o.domain();s=Ss(u)-u[0]}else throw new Error(`Cannot use step-based size with "${o.type}" scale!`);const f=o;return s=md(s,f.paddingInner(),f.paddingOuter()),{px:s*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(r&&Bw(r))??{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new na(e("width"),e("height")))},tf=new WeakSet,Qp=function(e){const n=[];let r=this;do n.push(r),r=r[e];while(r);return n};function uF(t){return"unitsPerPixel"in t}function fF(t){const e=t.spec.opacity;if(e!==void 0){if(Lt(e))return n=>n*e;if(uF(e)){const n=a=>{var s;const o=(s=t.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=e.channel?n(e.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=ud().domain(e.unitsPerPixel).range(e.values).clamp(!0);return a=>{const s=mf(r.domain())/1e3;return i(s)*a}}}return n=>n}const Ow=t=>!!(t!=null&&t.step);class so extends Rw{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e}*[Symbol.iterator](){}replaceChild(e,n){throw new Error("Not implemented")}visit(e){let n;try{n=e(this)}catch(r){throw r.view=this,r}if(n===ru)return n;if(n!==kw){e.beforeChildren&&e.beforeChildren(this);for(const r of this){const i=r.visit(e);if(i===ru)return i}e.afterChildren&&e.afterChildren(this),e.postOrder&&e.postOrder(this)}}findDescendantByPath(e){for(const n of this)if(n.name===e[0]){if(e.length==1)return n;if(n instanceof so)return n.findDescendantByPath(e.slice(1))}}findChildByName(e){for(const n of this)if(n.name===e)return n}findDescendantByName(e){let n;return this.visit(r=>{if(r.name==e)return n=r,ru}),n}getDefaultResolution(e,n){return"shared"}}const zw=1;function c0(){let t=[0,1],e=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const u=l=>(l+o-t[0])/n*r+e[0];return u.invert=l=>(l-e[0])/r*n+t[0]-o,u.domain=function(l){if(arguments.length){t=g_(l),n=t[1]-t[0];const c=t[0]===0&&t[0]===0;if(n<zw&&!c){n=zw;const h=(t[0]+t[1])/2;t[0]=h-n/2,t[1]=h+n/2}return u}else return t},u.range=function(l){return arguments.length?(e=[...l],r=e[1]-e[0],u):e},u.numberingOffset=function(l){return arguments.length?(s=l,u):s},u.padding=function(l){return arguments.length?(a=l,i=Math.min(1,l),u):i},u.paddingInner=function(l){return arguments.length?(i=Math.min(1,l),u):i},u.paddingOuter=function(l){return arguments.length?(a=l,u):a},u.align=function(l){return arguments.length?(o=Math.max(0,Math.min(1,l)),u):o},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=l=>{const c=u.align(),h=u.numberingOffset();return vf(t[0]-c+h,t[1]-c+h,Math.min(l,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},u.tickFormat=(l,c)=>{if(c)throw new Error("Index scale's tickFormat does not support a specifier!");const d=ki(t[0],t[1],Math.min(l,Math.ceil(n)))<1e5?pt(","):pt(".3s");return g=>d(g+s)},u.copy=()=>c0().domain(t).range(e).paddingInner(i).paddingOuter(a).numberingOffset(s),u}function lF(){const t=c0().numberingOffset(1);let e;t.genome=function(r){return arguments.length?(e=r,t):e},t.ticks=r=>{if(!e)return[];const i=t.domain(),a=t.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],e.totalSize-1)].map(l=>e.toChromosome(l)),f=Math.max(1,ki(i[0],i[1],r)),u=[];for(let l=o.index;l<=s.index;l++){const c=e.chromosomes[l],h=Math.max(c.continuousStart+f,i[0]-(i[0]-c.continuousStart)%f),d=Math.min(c.continuousEnd-f/4,i[1]+1);for(let g=h;g<=d;g+=f){const b=g-a;b>=i[0]&&b<i[1]&&u.push(b)}}return u},t.tickFormat=(r,i)=>{if(!e)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=t.domain(),o=a[1]-a[0],s=t.numberingOffset(),u=ki(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?pt(","):pt(".3s"),l=c=>c-e.toChromosome(c).continuousStart;return c=>u(l(c)+s)};const n=t.copy;return t.copy=()=>n().genome(e),t}function cF(t){return t.type=="locus"}function Bl(t,e,n){if(n=n||[],t.some(o=>o===null)){if(t.every(o=>o===null))return null;throw console.warn(t),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||uo(o)&&uo(s)||uo(o)&&s===!0||o===!0&&Dn(s),a=o=>{for(let s in o){const f=o[s];if(!n.includes(s)&&f!==void 0)if(r[s]!==void 0&&!i(r[s],f))console.warn(`Conflicting property ${s} of ${e}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(uo(u))uo(f)&&(r[s]=Bl([u,f],s));else if(uo(f)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=Bl([{},f],s)}else r[s]=f}}};for(const o of t)a(o);return r}function uo(t){return Dn(t)&&!Array.isArray(t)}/*!
|
|
131
|
+
if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,JN="uniform sampler2D uTexture;uniform bool uLogoLetter;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",eF={left:-1,center:0,right:1},tF={top:-1,middle:0,bottom:1,alphabetic:1};class nF extends eu{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?e.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):e.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(e){for(const n of Ya)this.properties.fitToBand&&s0(e,n);return e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(KN,JN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uPaddingX:e.paddingX,uPaddingY:e.paddingY,uFlushX:!!e.flushX,uFlushY:!!e.flushY,uAlign:[eF[e.align],tF[e.baseline]],uD:[e.dx,-e.dy],uLogoLetter:!!e.logoLetters,uSqueeze:!!e.squeeze,uViewportEdgeFadeWidth:[e.viewportEdgeFadeWidthTop,e.viewportEdgeFadeWidthRight,e.viewportEdgeFadeWidthBottom,e.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[e.viewportEdgeFadeDistanceTop,e.viewportEdgeFadeDistanceRight,e.viewportEdgeFadeDistanceBottom,e.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let a=0;const o="format"in r.text?pt(r.text.format):u=>u;for(const u of n){const l=o(i(u)),c=Ke(l)?l:l===null?"":""+l;a+=c&&c.length||0}const s=new vN({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,this.properties.minBufferSize||0)});s.addBatches(e.facetBatches);const f=s.toArrays();this.rangeMap.migrateEntries(f.rangeMap),this.updateBufferInfo(f)}prepareRender(e){const n=super.prepareRender(e);let r=.35;this.properties.logoLetters&&(r/=2);const i=this.font.metrics.common.base/(this.unitView.context.devicePixelRatio/r);return n.push(()=>Kt(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:i})),n.push(()=>ro(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>$s(n,this.vertexArrayInfo,n.TRIANGLES,i,r),e)}}function Bw(t,e,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const g of t)o+=Fl(g.px)+(f0(g)?0:n),s+=Fl(g.grow);o-=n;const f=Math.max(0,e-o),u=r!==void 0?g=>Math.round(g*r)/r:g=>g,l=[],c=[],h=g=>{const b=l.length;if(!b)return;const y=(g?n:0)*(a?-1:1);d-=y;for(let w=0;w<b;w++)c.push({location:d+(w+1)/(b+1)*y,size:0});d+=y,l.length=0};let d=a?Math.max(e,o):0+i;if(t.length==1&&f0(t[0]))return[{location:d,size:0}];for(let g=0;g<t.length;g++){const b=t[g];if(f0(b))l.push(b);else{h(c.length>0);const y=Fl(b.px)+(s?Fl(b.grow)/s*f:0);a&&(d-=y),c.push({location:u(d),size:u(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),c}function rF(t){let e=0,n=0;for(const r of t)e=Math.max(e,r.px??0),n=Math.max(n,r.grow??0);return{px:e,grow:n}}const zp=class{constructor(e,n){ye(this,Ku);this.width=e,this.height=n}addPadding(e){return fe(this,Ku,Qp).call(this,e.width,e.height)}subtractPadding(e){return fe(this,Ku,Qp).call(this,-e.width,-e.height)}};let na=zp;Ku=new WeakSet,Qp=function(e,n){return new zp({px:(this.width.px??0)+e,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};const tu=Object.freeze({px:0,grow:0}),iF=new na(tu,tu);function f0(t){return!t.px&&!t.grow}function Fl(t){return t||0}function aF(t){return t&&(Lt(t.px)||Lt(t.grow))}function kw(t){if(zw(t))throw new Error("parseSizeDef does not accept step-based sizes.");if(aF(t))return t;if(Lt(t))return{px:t,grow:0};if(t==="container")return{px:0,grow:1};if(!t)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${t}`)}class _t{constructor(e,n,r,i){this.top=e||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(e){return e<=0?this:new _t(this.top+e,this.right+e,this.bottom+e,this.left+e)}add(e){return new _t(this.top+e.top,this.right+e.right,this.bottom+e.bottom,this.left+e.left)}subtract(e){return new _t(this.top-e.top,this.right-e.right,this.bottom-e.bottom,this.left-e.left)}union(e){return new _t(Math.max(this.top,e.top),Math.max(this.right,e.right),Math.max(this.bottom,e.bottom),Math.max(this.left,e.left))}getHorizontal(){return new _t(0,this.right,0,this.left)}getVertical(){return new _t(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(e){return typeof e=="number"?this.createUniformPadding(e):e?this.createFromRecord(e):l0}static createFromRecord(e){return new _t(e.top,e.right,e.bottom,e.left)}static zero(){return l0}static createUniformPadding(e){return new _t(e,e,e,e)}}const l0=_t.createUniformPadding(0);Object.freeze(l0);const oF=/^([A-Za-z]+:)?\/\//;function sF(t,e){if(e&&oF.test(e))return e;const n=t();return n&&e?n.endsWith("/")?n+e:n+"/"+e:n??e}const Lw="VISIT_SKIP",nu="VISIT_STOP",Rw=t=>t;class Ow{constructor(e,n,r,i,a){ye(this,Lc);ye(this,tf);ye(this,Zo,{});ye(this,Ju,{});ye(this,ef,{});an(this,"opacityFunction",Rw);if(!e)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=e.name||a,this.spec=e,this.resolutions={scale:{},axis:{}},_w(this),this.blockEncodingInheritance=!1,this.contributesToScaleDomain=!0,this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>_t.createFromConfig(this.spec.padding))}getOverhang(){return _t.zero()}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?fe(this,Lc,ES).call(this):iF)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(e=>e.isConfiguredVisible())}getEffectiveOpacity(){var e;return this.opacityFunction(((e=this.layoutParent)==null?void 0:e.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(e=>e.name).reverse().join("/")}getLayoutAncestors(){return fe(this,tf,Vp).call(this,"layoutParent")}getDataAncestors(){return fe(this,tf,Vp).call(this,"dataParent")}handleBroadcast(e){for(const n of ie(this,Zo)[e.type]||[])n(e)}_addBroadcastHandler(e,n){let r=ie(this,Zo)[e];r||(r=[],ie(this,Zo)[e]=r),r.push(n)}handleInteractionEvent(e,n,r){const i=r?ie(this,Ju):ie(this,ef);for(const a of i[n.type]||[])a(e,n)}addInteractionEventListener(e,n,r){const i=r?ie(this,Ju):ie(this,ef);let a=i[e];a||(a=[],i[e]=a),a.push(n)}visit(e){try{const n=e(this);if(e.postOrder&&e.postOrder(this),n!==nu)return n}catch(n){throw n.view=this,n}}getDescendants(){const e=[];return this.visit(n=>{e.push(n)}),e}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Rw)&&(this.opacityFunction=fF(this))}onBeforeRender(){}render(e,n,r={}){}getEncoding(){const e=this.dataParent&&!this.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...e,...n};for(const[i,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(e){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(e){var r;const n=this.getEncoding().sample;return js(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(e){const n=Wi(e);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(e){const n=Wi(e);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(e,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[e]}getConfiguredOrDefaultResolution(e,n){return this.getConfiguredResolution(e,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(e,n)}getDefaultResolution(e,n){return"independent"}getBaseUrl(){return sF(()=>{var e;return(e=this.dataParent)==null?void 0:e.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const e=this.spec.title;if(e)return Ke(e)?e:e.text}_cache(e,n){return ao(this,e,n)}_invalidateCacheByPrefix(e,n="self"){switch(n){case"self":Tl(this,e);break;case"ancestors":for(const r of this.getLayoutAncestors())Tl(r,e);break;case"progeny":this.visit(r=>Tl(r,e));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(e){}}Zo=new WeakMap,Ju=new WeakMap,ef=new WeakMap,Lc=new WeakSet,ES=function(){const e=n=>{var i;let r=this.spec[n];if(zw(r)){const a=r.step,o=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(Jr(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const u=o.domain();s=Es(u)-u[0]}else throw new Error(`Cannot use step-based size with "${o.type}" scale!`);const f=o;return s=md(s,f.paddingInner(),f.paddingOuter()),{px:s*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(r&&kw(r))??{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new na(e("width"),e("height")))},tf=new WeakSet,Vp=function(e){const n=[];let r=this;do n.push(r),r=r[e];while(r);return n};function uF(t){return"unitsPerPixel"in t}function fF(t){const e=t.spec.opacity;if(e!==void 0){if(Lt(e))return n=>n*e;if(uF(e)){const n=a=>{var s;const o=(s=t.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=e.channel?n(e.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=ud().domain(e.unitsPerPixel).range(e.values).clamp(!0);return a=>{const s=mf(r.domain())/1e3;return i(s)*a}}}return n=>n}const zw=t=>!!(t!=null&&t.step);class oo extends Ow{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e}*[Symbol.iterator](){}replaceChild(e,n){throw new Error("Not implemented")}visit(e){let n;try{n=e(this)}catch(r){throw r.view=this,r}if(n===nu)return n;if(n!==Lw){e.beforeChildren&&e.beforeChildren(this);for(const r of this){const i=r.visit(e);if(i===nu)return i}e.afterChildren&&e.afterChildren(this),e.postOrder&&e.postOrder(this)}}findDescendantByPath(e){for(const n of this)if(n.name===e[0]){if(e.length==1)return n;if(n instanceof oo)return n.findDescendantByPath(e.slice(1))}}findChildByName(e){for(const n of this)if(n.name===e)return n}findDescendantByName(e){let n;return this.visit(r=>{if(r.name==e)return n=r,nu}),n}getDefaultResolution(e,n){return"shared"}}const Pw=1;function c0(){let t=[0,1],e=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const u=l=>(l+o-t[0])/n*r+e[0];return u.invert=l=>(l-e[0])/r*n+t[0]-o,u.domain=function(l){if(arguments.length){t=g_(l),n=t[1]-t[0];const c=t[0]===0&&t[0]===0;if(n<Pw&&!c){n=Pw;const h=(t[0]+t[1])/2;t[0]=h-n/2,t[1]=h+n/2}return u}else return t.slice()},u.range=function(l){return arguments.length?(e=[...l],r=e[1]-e[0],u):e},u.numberingOffset=function(l){return arguments.length?(s=l,u):s},u.padding=function(l){return arguments.length?(a=l,i=Math.min(1,l),u):i},u.paddingInner=function(l){return arguments.length?(i=Math.min(1,l),u):i},u.paddingOuter=function(l){return arguments.length?(a=l,u):a},u.align=function(l){return arguments.length?(o=Math.max(0,Math.min(1,l)),u):o},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=l=>{const c=u.align(),h=u.numberingOffset();return vf(t[0]-c+h,t[1]-c+h,Math.min(l,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},u.tickFormat=(l,c)=>{if(c)throw new Error("Index scale's tickFormat does not support a specifier!");const d=ki(t[0],t[1],Math.min(l,Math.ceil(n)))<1e5?pt(","):pt(".3s");return g=>d(g+s)},u.copy=()=>c0().domain(t).range(e).paddingInner(i).paddingOuter(a).numberingOffset(s),u}function lF(){const t=c0().numberingOffset(1);let e;t.genome=function(r){return arguments.length?(e=r,t):e},t.ticks=r=>{if(!e)return[];const i=t.domain(),a=t.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],e.totalSize-1)].map(l=>e.toChromosome(l)),f=Math.max(1,ki(i[0],i[1],r)),u=[];for(let l=o.index;l<=s.index;l++){const c=e.chromosomes[l],h=Math.max(c.continuousStart+f,i[0]-(i[0]-c.continuousStart)%f),d=Math.min(c.continuousEnd-f/4,i[1]+1);for(let g=h;g<=d;g+=f){const b=g-a;b>=i[0]&&b<i[1]&&u.push(b)}}return u},t.tickFormat=(r,i)=>{if(!e)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=t.domain(),o=a[1]-a[0],s=t.numberingOffset(),u=ki(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?pt(","):pt(".3s"),l=c=>c-e.toChromosome(c).continuousStart;return c=>u(l(c)+s)};const n=t.copy;return t.copy=()=>n().genome(e),t}function cF(t){return t.type=="locus"}function Bl(t,e,n){if(n=n||[],t.some(o=>o===null)){if(t.every(o=>o===null))return null;throw console.warn(t),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||so(o)&&so(s)||so(o)&&s===!0||o===!0&&Dn(s),a=o=>{for(let s in o){const f=o[s];if(!n.includes(s)&&f!==void 0)if(r[s]!==void 0&&!i(r[s],f))console.warn(`Conflicting property ${s} of ${e}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(so(u))so(f)&&(r[s]=Bl([u,f],s));else if(so(f)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=Bl([{},f],s)}else r[s]=f}}};for(const o of t)a(o);return r}function so(t){return Dn(t)&&!Array.isArray(t)}/*!
|
|
132
132
|
* Adapted from vega-encode:
|
|
133
133
|
* https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
|
|
134
134
|
*
|
|
@@ -136,7 +136,7 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
|
|
|
136
136
|
* All rights reserved.
|
|
137
137
|
*
|
|
138
138
|
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
|
139
|
-
*/function
|
|
139
|
+
*/function Uw(t,e,n){return Lt(e)&&n!=null&&(e=Math.min(e,~~(mf(t.domain())/n)||1)),Dn(e)&&(e.step,e=e.interval),e}function jw(t,e,n){var r=t.range(),i=Math.floor(r[0]),a=Math.ceil(In(r));if(i>a&&(r=a,a=i,i=r),e=e.filter(function(s){return s=t(s),i<=s&&s<=a}),n>0&&e.length>1){for(var o=[e[0],In(e)];e.length>n&&e.length>=3;)e=e.filter(function(s,f){return!(f%2)});e.length<3&&(e=o)}return e}function hF(t,e){return t.bins?jw(t,dF(t.bins,e)):t.ticks?t.ticks(e):t.domain()}function dF(t,e){var n=t.length,r=~~(n/(e||n));return r<2?t.slice():t.filter(function(i,a){return!(a%r)})}function gF(t,e,n){var r=t.tickFormat?t.tickFormat(e,n):n?pt(n):String;if(Vb(t.type)){var i=mF(n);r=t.bins?i:pF(r,i)}return r}function pF(t,e){return function(n){return t(n)?e(n):""}}function mF(t){var e=jr(t||",");if(e.precision==null){switch(e.precision=12,e.type){case"%":e.precision-=2;break;case"e":e.precision-=1;break}return bF(pt(e),pt(".1f")(1)[1])}else return pt(e)}function bF(t,e){return function(n){var r=t(n),i=r.indexOf(e),a,o;if(i<0)return r;for(a=yF(r,i),o=a<r.length?r.slice(a):"";--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function yF(t,e){var n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
|
|
140
140
|
* Adapted from vega-encode:
|
|
141
141
|
* https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
|
|
142
142
|
*
|
|
@@ -144,16 +144,16 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
|
|
|
144
144
|
* All rights reserved.
|
|
145
145
|
*
|
|
146
146
|
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
|
147
|
-
*/const wF="locus",xF="index";var vF=5;function AF(t){const e=t.type;return!t.bins&&(e===qa||e===Os||e===zs)}function jw(t){return At(t)&&![Kn,xF,wF].includes(t)}function Gw(t){return t||{warn:(e,...n)=>console.warn(e,...n)}}var EF=yf(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function Hw(t,e,n){n=Gw(n);for(const r in t)if(!EF[r]){if(r==="padding"&&jw(e.type))continue;kt(e[r])?e[r](t[r]):n.warn("Unsupported scale property: "+r)}NF(e,t,TF(e,t,DF(e,t,n)))}function SF(t,e){const n=_F(t),r=Ce(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!t.domain&&At(i.type)&&(t.domain=[0,0]),Hw(t,i,e),i}function _F(t){var e=t.type,n="",r;return e===Kn?Kn+"-"+qa:(CF(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?Kn+"-":r===3?Za+"-":""),(n+e||qa).toLowerCase())}function CF(t){const e=t.type;return At(e)&&e!==Rb&&e!==Ob&&(t.scheme||t.range&&t.range.length&&t.range.every(Ke))}function DF(t,e,n){if(!t.domain)return 0;n=Gw(n);var r=IF(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,a=t.type,o=e.zero||e.zero===void 0&&AF(t),s,f;return i?(jw(a)&&e.padding&&i[0]!==In(i)&&(i=MF(a,i,e.range,e.padding,e.exponent,e.constant)),(o||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[s]=e.domainMax),e.domainMid!=null&&(f=e.domainMid,(f<i[0]||f>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",f),i.splice(s,0,f))),t.domain(Qw(a,i,n)),a===yd&&t.unknown(e.domainImplicit?Ph:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&Pw(t,e.nice)||null),i.length):0}function IF(t,e,n){return e?(t.domain(Qw(t.type,e,n)),e.length):-1}function MF(t,e,n,r,i,a){var o=Math.abs(In(n)-n[0]),s=o/(o-2*r),f=t===Jr?Jp(e,null,s):t===zs?Wc(e,null,s,.5):t===Os?Wc(e,null,s,i||1):t===tl?zS(e,null,s,a||1):Kp(e,null,s);return e=e.slice(),e[0]=f[0],e[e.length-1]=f[1],e}function Qw(t,e,n){if(Qb(t)){var r=Math.abs(e.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==e.length&&n.warn("Log scale domain includes zero: "+bf(e))}return e}function TF(t,e,n){let r=e.bins;if(r&&!Xt(r)){const i=(r.start==null||r.stop==null)&&t.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?In(i):r.stop,s=r.step;s||$e("Scale bins parameter missing step property."),r=is(a,o+s,s)}return r?t.bins=r:t.bins&&delete t.bins,t.type===xd&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function NF(t,e,n){var r=t.type,i=e.round||!1,a=e.range;if(e.rangeStep!=null)a=FF(r,e,n);else if(e.scheme&&(a=BF(r,e,n),kt(a))){if(t.interpolator)return t.interpolator(a);$e(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&rl(r))return t.interpolator(il(h0(a,e.reverse),e.interpolate,e.interpolateGamma));a&&e.interpolate&&t.interpolate?t.interpolate(Vb(e.interpolate,e.interpolateGamma)):kt(t.round)?t.round(i):kt(t.rangeRound)&&t.interpolate(i?Ls:$r),a&&t.range(h0(a,e.reverse))}function FF(t,e,n){t!==Ub&&t!==wd&&$e("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===wd?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*md(n,i,r)]}function BF(t,e,n){var r=e.schemeExtent,i,a;return Xt(e.scheme)?a=il(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),a=Ad(i),a||$e(`Unrecognized scheme name: ${e.scheme}`)),n=t===Pb?n+1:t===xd?n-1:t===bd||t===zb?+e.schemeCount||vF:n,rl(t)?Vw(a,r,e.reverse):kt(a)?nM(Vw(a,r),n):t===yd?a:a.slice(0,n)}function Vw(t,e,n){return kt(t)&&(e||n)?tM(t,h0(e||[0,1],n)):t}function h0(t,e){return e?t.slice().reverse():t}const qw=pt(",d");function kF(t,e){return t.chrom+":"+qw(Math.floor(t.pos+1))+"-"+(t.chrom!=e.chrom?e.chrom+":":"")+qw(Math.ceil(e.pos))}const LF="https://genomespy.app/data/genomes/";class RF{constructor(e){if(this.config=e,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(e){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:e+"/"+this.config.baseUrl:this.baseUrl=LF;try{this.setChromSizes(OF(await Bf({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(e=>e.name.startsWith("chr"))}setChromSizes(e){let n=0;this.startByIndex=[0];for(let r=0;r<e.length;r++){this.startByIndex.push(n);const i=e[r].size,a={...e[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(e,n){let r=this.cumulativeChromPositions.get(e);if(r===void 0)throw new Error("Unknown chromosome/contig: "+e);return r+ +n}toChromosome(e){if(e>this.totalSize)return;e=Math.floor(e);const n=Ba(this.startByIndex,e)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(e){const n=this.toChromosome(e);if(n)return{chrom:n.name,pos:Math.floor(e)-n.continuousStart}}getChromosome(e){return this.chromosomesByName.get(e)}formatInterval(e){return kF(...this.toChromosomalInterval(e))}toChromosomalInterval(e){const n=this.toChromosomal(e[0]+.5),r=this.toChromosomal(e[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(e){var i;let[n,r]=e;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(e){const n=e[0],r=e[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(e){return this.toDiscreteChromosomeIntervals([this.toChromosomal(e[0]),this.toChromosomal(e[1])])}parseInterval(e){const n=e.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function OF(t){return r_(t).filter(e=>/^chr[0-9A-Z]+$/.test(e[0])).map(([e,n])=>({name:e,size:parseInt(n)}))}function Zw(t){return Dn(t)&&"chrom"in t}function zF(t){return t.every(Zw)}class iu extends Array{constructor(){super(),this.type=void 0}extend(e){return this}extendAll(e){if(e instanceof iu&&e.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${e.type}`);for(const n of e)this.extend(n);return this}extendAllWithAccessor(e,n){for(const r of e)this.extend(n(r));return this}}class d0 extends iu{constructor(){super(),this.type="quantitative"}extend(e){return e==null||Number.isNaN(e)?this:(e=+e,this.length?e<this[0]?this[0]=e:e>this[1]&&(this[1]=e):(this.push(e),this.push(e)),this)}}class Yw extends iu{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(e){return e==null||Number.isNaN(e)?this:(this.uniqueValues.has(e)||(this.uniqueValues.add(e),this.push(e)),this)}}class Ww extends Yw{constructor(){super(),this.type="nominal"}}class PF extends iu{constructor(e){super();let n=0;for(let r=1;r<e.length;r++)n+=Math.sign(e[r]-e[r-1]);if(Math.abs(n)!=e.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(e));e.forEach(r=>this.push(r))}extend(e){if(this.includes(e))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const Xw={quantitative:d0,index:d0,locus:d0,nominal:Ww,ordinal:Yw};function $w(t,e){if(t=="quantitative"&&UF(e)){const n=new PF(e);return n.type=t,n}else if(Xw[t]){const n=new Xw[t];return n.type=t,e&&n.extendAll(e),n}throw new Error("Unknown type: "+t)}function UF(t){return t&&t.length>0&&t.length!=2&&t.every(e=>typeof e=="number")}function jF(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function GF(t,e,n){return t*Math.pow(e/t,n)}Ce("index",c0,["continuous"]),Ce("locus",lF,["continuous"]),Ce("null",al,[]);const Kw="quantitative",Jw="ordinal",ex="nominal",tx="locus",HF="index";class QF{constructor(e){ye(this,kr);ye(this,Rc);ye(this,Xo);ye(this,Lr);ye(this,nf);ye(this,Oc);ye(this,zp);ye(this,rf);ye(this,Br,void 0);ye(this,Wo,new Set);ye(this,Ct,void 0);this.channel=e,this.members=[],this.type=null,this.name=void 0}addEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);ie(this,Wo).add(n)}removeEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);ie(this,Wo).delete(n)}pushUnitView(e,n){var o;const r=Ed(e,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!Vs(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:e,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const e=ie(this,Ct);if(!e)return!1;const n=e.domain();return At(e.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}getScaleProps(){return oo(this,"scaleProps",()=>{const e=fe(this,Rc,SS).call(this);if(e===null||e.type=="null")return{type:"null"};const n={...fe(this,Oc,_S).call(this,this.type),...e};n.type||(n.type=VF(this.channel,this.type));const r=fe(this,Xo,Vc).call(this);return r&&r.length>0?n.domain=r:ei(n.type)&&(n.domain=new Ww),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&ei(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),qF(n,this.channel),n})}getConfiguredDomain(){return fe(this,rf,qp).call(this,e=>Vs(e.channel)?void 0:e.view.getConfiguredDomain(e.channel))}getDataDomain(){return fe(this,rf,qp).call(this,e=>Vs(e.channel)?void 0:e.view.extractDataDomain(e.channel))}reconfigure(){if(ie(this,Ct)&&ie(this,Ct).type!="null"){const e=this.isDomainInitialized(),n=[...ie(this,Ct).domain()];Ew(this,"scaleProps");const r=this.getScaleProps();Hw(r,ie(this,Ct)),At(ie(this,Ct).type)&&br(this,Br,fe(this,nf,Vp).call(this));const i=[...ie(this,Ct).domain()];Rf(i,n)||(fe(this,Lr,Na).call(this)&&e?(ie(this,Ct).domain(n),this.zoomTo(i,500)):fe(this,kr,Ta).call(this))}}getScale(){if(ie(this,Ct))return ie(this,Ct);const e=this.getScaleProps(),n=SF(e);return br(this,Ct,n),cF(n)&&n.genome(this.getGenome()),At(n.type)&&br(this,Br,fe(this,nf,Vp).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var e;return((e=this.getGenome())==null?void 0:e.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return fe(this,Lr,Na).call(this)&&Rf(fe(this,Xo,Vc).call(this),this.getDomain())}isZoomable(){return fe(this,Lr,Na).call(this)&&!!this.getScaleProps().zoom}zoom(e,n,r){if(!fe(this,Lr,Na).call(this))return!1;const i=this.getScale(),a=i.domain();let o=[...a],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=LS(o,r||0),o=Kp(o,s,e);break;case"log":o=RS(o,r||0),o=Jp(o,s,e);break;case"pow":case"sqrt":{const f=i;o=OS(o,r||0,f.exponent()),o=Wc(o,s,e,f.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return ie(this,Br)&&(o=PS(o,ie(this,Br)[0],ie(this,Br)[1])),[0,1].some(f=>o[f]!=a[f])?(i.domain(o),fe(this,kr,Ta).call(this),!0):!1}async zoomTo(e,n=!1){var s;if(pf(n)&&(n=n?700:0),!fe(this,Lr,Na).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(e),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.getScale(),o=a.domain();if(n>0&&o.length==2){const f=o[1]-o[0],u=o[0]+f/2,l=r[1]-r[0],c=r[0]+l/2;await i.transition({duration:n,easingFunction:jF,onUpdate:h=>{const d=GF(f,l,h),g=(f-d)/(f-l),b=g*c+(1-g)*u;a.domain([b-d/2,b+d/2]),fe(this,kr,Ta).call(this)}}),a.domain(r),fe(this,kr,Ta).call(this)}else a.domain(r),i==null||i.requestRender(),fe(this,kr,Ta).call(this)}resetZoom(){if(!fe(this,Lr,Na).call(this))throw new Error("Not a zoomable scale!");const e=this.getDomain(),n=fe(this,Xo,Vc).call(this);return[0,1].some(r=>n[r]!=e[r])?(ie(this,Ct).domain(n),fe(this,kr,Ta).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?mf(ie(this,Br))/mf(this.getScale().domain()):1}getGenome(){var n;if(this.type!=="locus")return;const e=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!e)throw new Error("No genome has been defined!");return e}invertToComplex(e){const n=this.getScale();if("invert"in n){const r=n.invert(e);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(e){const n=this.getGenome();return n?n.toChromosomal(e):e}fromComplex(e){return Zw(e)?this.getGenome().toContinuous(e.chrom,e.pos):e}fromComplexInterval(e){return this.type==="locus"&&zF(e)?this.getGenome().toContinuousInterval(e):e}}Br=new WeakMap,Wo=new WeakMap,Ct=new WeakMap,kr=new WeakSet,Ta=function(){for(const e of ie(this,Wo).values())e({type:"domain",scaleResolution:this})},Rc=new WeakSet,SS=function(){return oo(this,"mergedScaleProps",()=>{const e=this.members.map(n=>Ed(n.view,n.channel).scale).filter(n=>n!==void 0);return Bl(e,"scale",["domain"])})},Xo=new WeakSet,Vc=function(){return this.getConfiguredDomain()??(this.type==tx?this.getGenome().getExtent():this.getDataDomain())},Lr=new WeakSet,Na=function(){const e=this.getScale().type;return At(e)},nf=new WeakSet,Vp=function(){const e=this.getScaleProps(),n=e.zoom;if(ZF(n)&&Xt(n.extent))return this.fromComplexInterval(n.extent);if(n)return e.type=="locus"?this.getGenome().getExtent():ie(this,Ct).domain()},Oc=new WeakSet,_S=function(e){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Qs(n)?r.nice=!this.isExplicitDomain():Xi(n)?r.scheme=e==ex?"tableau10":e==Jw?"blues":"viridis":ol(n)?r.range=Kb(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},zp=new WeakSet,R7=function(){return this.members.map(e=>e.view.getPathString()).join(", ")},rf=new WeakSet,qp=function(e){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.contributesToScaleDomain)).map(e).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function VF(t,e){if(e==HF||e==tx){if(Xb(t))return e;throw new Error(`${t} does not support ${e} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["sample"].includes(t)?"null":n[t]?n[t][[ex,Jw,Kw].indexOf(e)]:e==Kw?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${t}" is not compatible with "${e}" data type. Use of a proper scale may be needed.`);return i}function qF(t,e){Qs(e)&&t.type!=="ordinal"&&(t.range=[0,1]),e=="opacity"&&At(t.type)&&(t.clamp=!0)}function ZF(t){return Dn(t)}function nx(t,e=[]){const n=new Set;t.visit(r=>{for(const i of Object.values(r.resolutions.scale))e.includes(i.channel)||n.add(i)}),n.forEach(r=>r.reconfigure())}function g0(...t){for(const e of t)if(e!==void 0)return e}class YF{constructor(e){this.channel=e,this.members=[]}get scaleResolution(){var e;return(e=Ss(this.members))==null?void 0:e.view.getScaleResolution(this.channel)}pushUnitView(e,n){const r=e.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:e,channel:n})}getAxisProps(){return oo(this,"axisProps",()=>{const e=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return e.length>0&&e.some(n=>n===null)?null:Bl(e.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const e=a=>{var s;const o=Ed(a.view,a.channel);if(!Fn(o))return{member:a,explicitTitle:g0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:g0(Gs(o)?o.field:void 0,Sd(o)?o.expr:void 0)}},n=this.members.map(e),r=n.filter(a=>{var o;if(Vs(a.member.channel)&&!a.explicitTitle){const s=Wi(a.member.channel);return((o=n.find(f=>f.member.view==a.member.view&&f.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>g0(a.explicitTitle,a.implicitTitle)).filter(Ke));return i.size?[...i].join(", "):null}}const WF={point:HN,rect:RN,rule:qN,link:XN,text:nF};class Tt extends so{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e;const o=WF[this.getMarkType()];if(o)this.mark=new o(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.coords=void 0,this.needsAxes={x:!0,y:!0}}render(e,n,r={}){this.isConfiguredVisible()&&(this.coords=n,e.pushView(this,n),e.renderMark(this.mark,r),e.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(e){const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!un(i))continue;const a=Wi(i.resolutionChannel??r);if(!$i(a)||e=="axis"&&!Qs(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,e)=="forced"||o.dataParent instanceof so&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,e)))&&o.getConfiguredOrDefaultResolution(a,e)!="excluded";)o=o.dataParent;e=="axis"&&Qs(r)&&Xb(a)?(o.resolutions[e][a]||(o.resolutions[e][a]=new YF(a)),o.resolutions[e][a].pushUnitView(this,r)):e=="scale"&&$i(r)&&(o.resolutions[e][a]||(o.resolutions[e][a]=new QF(a)),o.resolutions[e][a].pushUnitView(this,r))}}getAccessor(e){return this._cache("accessor/"+e,()=>{const n=this.mark.encoding;if(n&&n[e])return this.context.accessorFactory.createAccessor(n[e])})}getFacetAccessor(e){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(e){if(Vs(e))throw new Error(`getDomain(${e}), must only be called for primary channels!`);const n=this.mark.encoding[e];if(!un(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(e){const n=this._validateDomainQuery(e),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??e);return $w(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(e){const r=this._validateDomainQuery(e).type??"nominal",i=s=>{let f;const u=this.mark.encoding[s];if(u){const l=this.context.accessorFactory.createAccessor(u);if(l)if(f=$w(r),l.constant)f.extend(l({}));else{const c=this.getCollector();c!=null&&c.completed&&c.visitData(h=>f.extend(l(h)))}}return f};let a=i(e);const o=_d[e];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const e=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Wa.map(e).reduce((n,r)=>n*r,1)}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0),e.target=this,!e.stopped&&this.handleInteractionEvent(void 0,e,!1)}getDefaultResolution(e,n){return e=="x"?"shared":"independent"}}class rx extends Rw{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e}}function*p0(t,e=[]){for(const[n,r]of t.entries())if(r instanceof Map)for(const i of p0(r,[...e,n]))yield i;else yield[[...e,n],r]}class ix extends tt{get behavior(){return u0}constructor(e){super(),this.params=e??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new Bi([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(e){this._data.push(e)}beginBatch(e){UN(e)&&(this._data=[],this.facetBatches.set(on(e.facetId),this._data))}complete(){var i,a;const e=(i=this.params)==null?void 0:i.sort,n=e?em(e.field,e.order):void 0,r=o=>{n&&o.sort(n)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const o=this.params.groupby.map(f=>Be(f)),s=xf(this._data,...o);this.facetBatches.clear();for(const[f,u]of p0(s))this.facetBatches.set(f,u)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const f={type:"facet",facetId:o};for(const u of this.children)u.beginBatch(f)}for(const f of s)this._propagate(f)}super.complete();for(const o of this.observers)o(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const e=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of e.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(e){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)e(n[r])}getItemCount(){let e=0;for(const n of this.facetBatches.values())e+=n.length;return e}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class kl{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(e,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=e,this.values[r]=n}pop(){if(this.length===0)return;const e=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let f=this.ids[o],u=this.values[o];const l=this.values[s];if(s<this.length&&l<u&&(o=s,f=this.ids[s],u=l),u>=r)break;this.ids[a]=f,this.values[a]=u,a=o}this.ids[a]=n,this.values[a]=r}return e}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class XF extends tt{get behavior(){return tr}constructor(e){super(),this.params=e,this.startAccessor=Be(e.start),this.endAccessor=Be(e.end),this.chromAccessor=e.chrom?Be(e.chrom):n=>{},this.weightAccessor=e.weight?Be(e.weight):n=>1,this.as={coverage:e.as||"coverage",start:e.asStart||e.start,end:e.asEnd||e.end,chrom:e.asChrom||e.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new kl}reset(){super.reset(),this.initialize()}initialize(){const e=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let f,u,l,c=0,h;const d=this.ends;d.clear();const g=(y,w,E)=>{if(y==w)return;let _=!1;f&&(f[e]===E?(f[n]=w,_=!0):f[e]!=0&&this._propagate(f)),_||(f=this.createSegment(y,w,E,l))},b=()=>{let y;for(;(y=d.peekValue())!==void 0;)g(h,y,c),h=y,c-=d.pop();h=void 0,f&&(this._propagate(f),f=void 0)};this.handle=y=>{const w=i(y);let E;for(;(E=d.peekValue())!==void 0&&E<w;)g(h,E,c),h=E,c-=d.pop();if(r){let D=o(y);D!==u&&(b(),l=D,u=l)}h!==void 0&&g(h,w,c),h=w;const _=s(y);c+=_,d.push(_,a(y))},this.complete=()=>{b(),super.complete()}}}function $F(t,e,n=0,r=t.length){const i=new kl,a=r-n;let o;for(o=0;o<e&&o<a;o++)i.push(o,t[n+o]);for(;o<a;o++){const u=t[n+o];u>=i.peekValue()&&(i.push(o,u),i.pop())}const s=[];let f;for(;(f=i.pop())!==void 0;)s.push(n+f);return s.reverse()}class KF{constructor(e,n=-1/0,r=1/0){this.maxSize=e,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(e,n,r=0){if(e>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(e,n,i);return a>=0?a:this._findSlot(e,n,this.upperChildren[r])}else return r}else return-1}reserve(e,n){if(n-e<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(e,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=e,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class JF extends tt{get behavior(){return u0}constructor(e,n){if(super(),this.params=e,this._data=[],this.channel=e.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Be(this.params.pos),this.posBisector=wf(this.posAccessor),this.scoreAccessor=Be(this.params.score),this.widthAccessor=Be(this.params.width),this.laneAccessor=this.params.lane?Be(this.params.lane):i=>0,this.padding=this.params.padding??0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",i=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const e=this.posAccessor;this._data.sort((n,r)=>e(n)-e(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new KF(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const e=this.resolution.getScale(),n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=e.domain(),i=70,a=$F(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const f=this._data[s],u=e(this.posAccessor(f))*n,l=this.widthAccessor(f)/2+this.padding;this.reservationMaps.get(this.laneAccessor(f)).reserve(u-l,u+l)&&this._propagate(f)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(e){this._data.push(e)}}class eB extends tt{constructor(e){super(),this.params=e,this.predicate=void 0}initialize(){this.predicate=zh(this.params.expr,this.getGlobalObject())}handle(e){this.predicate(e)&&this._propagate(e)}}class tB extends tt{get behavior(){return tr}constructor(e){super();const n=e.index;if(e.fields){const r=on(e.fields).map(a=>Be(a)),i=on(e.as||e.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{const o=r.map((f,u)=>f(a)??[]),s=o[0].length;for(let f=0;f<s;f++){const u=Object.assign({},a);for(let l=0;l<r.length;l++)u[i[l]]=f<o[l].length?o[l][f]:null;n&&(u[n]=f),this._propagate(u)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const nB="0".charCodeAt(0);function*rB(t,e=","){const n=e.charCodeAt(0);let r=0;for(let i=0;i<t.length;i++){const a=t.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-nB}yield r}class iB extends tt{get behavior(){return tr}constructor(e){super();const n=Be(e.exons??"exons"),r=Be(e.start??"start"),[i,a]=e.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),f=s,u=!0;const l=n(o);for(const c of rB(l)){if(u)f=s+c;else{s=f+c;const h=Object.assign({},o);h[i]=f,h[a]=s,this._propagate(h)}u=!u}}}}class aB extends tt{get behavior(){return tr}constructor(e){super();const n=on(e.field).map(a=>Be(a)),r=on(e.separator),i=on(e.as||e.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{if(n.some(f=>!f(a)))return;const o=n.map((f,u)=>f(a).split(r[u]));oB(o,a);const s=o[0].length;for(let f=0;f<s;f++){const u=Object.assign({},a);for(let l=0;l<n.length;l++)u[i[l]]=o[l][f];this._propagate(u)}}}}function oB(t,e){const n=t.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(e))}class sB extends tt{get behavior(){return si}constructor(e){super(),this.params=e,this.as=e.as,this.fn=void 0}initialize(){this.fn=zh(this.params.expr,this.getGlobalObject())}handle(e){e[this.as]=this.fn(e),this._propagate(e)}}class ax extends tt{get behavior(){return si}constructor(e,n){super();const r=e.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const a=Be(e.chrom),o=on(e.pos).map(g=>Be(g)),s=on(e.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const f=on(e.offset);let u;if(f.length==0)u=new Array(o.length).fill(0);else if(f.length==1)u=new Array(o.length).fill(f[0]);else if(f.length==o.length)u=f;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(e.offset)}!`);const l=new Function("datum","chromOffset","posAccessors",s.map((g,b)=>`datum[${JSON.stringify(g)}] = chromOffset + +posAccessors[${b}](datum) - ${u[b]};`).join(`
|
|
148
|
-
`));let c,h=0;const d=g=>{if(g!==c){if(h=i.cumulativeChromPositions.get(g),h===void 0)throw new Error("Unknown chromosome/contig: "+g);c=g}return h};this.handle=g=>{l(g,d(a(g)),o),this._propagate(g)}}}const ox={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class uB extends tt{get behavior(){return si}constructor(e){super();const n=a0(ox),r=Be(e.field),i=e.as,a=e.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const fB=65536;class lB extends tt{get behavior(){return si}constructor(e){super(),this.params=e}reset(){super.reset(),this.initialize()}initialize(){const e=this.params,n=e.as||"lane",r=Lt(e.spacing)?e.spacing:1,i=Be(e.start),a=Be(e.end);if(!e.preference!=!e.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(e.preference){const o=new Float64Array(fB),s=Be(e.preference),f=e.preferredOrder;let u=1/0;this.handle=l=>{const c=i(l);c<u&&o.fill(-1/0),u=c;const h=f.indexOf(s(l));let d=-1;if(h>=0&&o[h]<c)d=h;else{const g=i(l);for(d=0;d<o.length&&!(o[d]<g);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(l)+r,l[n]=d,this._propagate(l)}}else{const o=new kl,s=new kl;let f=-1/0,u=0;this.handle=l=>{const c=i(l);for(;o.length&&(o.peekValue()<=c||c<f);){const d=o.pop();s.push(d,d)}f=c;let h=s.pop();h===void 0&&(h=u++),l[n]=h,this._propagate(l),o.push(h,a(l)+r)}}}}class cB extends tt{get behavior(){return tr}constructor(e){if(super(),e.as&&e.as.length!=e.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=e.fields.map(i=>Be(i)),r=e.as?e.as:n.map(Je);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class hB extends tt{get behavior(){return si}constructor(e){super();const n=new RegExp(e.regex),r=typeof e.as=="string"?[e.as]:e.as,i=Be(e.field);this.handle=a=>{const o=i(a);if(Ke(o)){const s=o.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let f=0;f<r.length;f++)a[r[f]]=s[f+1]}else if(e.skipInvalidInput)for(let f=0;f<r.length;f++)a[r[f]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!e.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class dB extends tt{get behavior(){return tr}constructor(e){super();const n=on(e.columnRegex).map(h=>new RegExp(h)),r=on(e.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=e.skipRegex?new RegExp(e.skipRegex):void 0,a=e.asKey||"sample";let o,s,f;const u=h=>{var y;const d=Object.keys(h),g=new Map;for(const[w,E]of n.entries())for(const _ of d){const D=(y=E.exec(_))==null?void 0:y[1];if(D!==void 0){let T=g.get(D);T||(T=[],g.set(D,T)),T[w]=_}}o=[...g.entries()],s=d.filter(w=>!n.some(E=>E.test(w))&&!(i&&i.test(w)));const b=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map(w=>JSON.stringify(w)+": null")];f=new Function("datum","sampleId",`return {
|
|
147
|
+
*/const wF="locus",xF="index";var vF=5;function AF(t){const e=t.type;return!t.bins&&(e===Va||e===Rs||e===Os)}function Gw(t){return Et(t)&&![$n,xF,wF].includes(t)}function Hw(t){return t||{warn:(e,...n)=>console.warn(e,...n)}}var EF=yf(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function Qw(t,e,n){n=Hw(n);for(const r in t)if(!EF[r]){if(r==="padding"&&Gw(e.type))continue;kt(e[r])?e[r](t[r]):n.warn("Unsupported scale property: "+r)}NF(e,t,TF(e,t,DF(e,t,n)))}function SF(t,e){const n=_F(t),r=Ce(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!t.domain&&Et(i.type)&&(t.domain=[0,0]),Qw(t,i,e),i}function _F(t){var e=t.type,n="",r;return e===$n?$n+"-"+Va:(CF(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?$n+"-":r===3?qa+"-":""),(n+e||Va).toLowerCase())}function CF(t){const e=t.type;return Et(e)&&e!==Ob&&e!==zb&&(t.scheme||t.range&&t.range.length&&t.range.every(Ke))}function DF(t,e,n){if(!t.domain)return 0;n=Hw(n);var r=IF(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,a=t.type,o=e.zero||e.zero===void 0&&AF(t),s,f;return i?(Gw(a)&&e.padding&&i[0]!==In(i)&&(i=MF(a,i,e.range,e.padding,e.exponent,e.constant)),(o||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[s]=e.domainMax),e.domainMid!=null&&(f=e.domainMid,(f<i[0]||f>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",f),i.splice(s,0,f))),t.domain(Vw(a,i,n)),a===yd&&t.unknown(e.domainImplicit?Ph:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&Uw(t,e.nice)||null),i.length):0}function IF(t,e,n){return e?(t.domain(Vw(t.type,e,n)),e.length):-1}function MF(t,e,n,r,i,a){var o=Math.abs(In(n)-n[0]),s=o/(o-2*r),f=t===Kr?em(e,null,s):t===Os?Wc(e,null,s,.5):t===Rs?Wc(e,null,s,i||1):t===tl?zS(e,null,s,a||1):Jp(e,null,s);return e=e.slice(),e[0]=f[0],e[e.length-1]=f[1],e}function Vw(t,e,n){if(Vb(t)){var r=Math.abs(e.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==e.length&&n.warn("Log scale domain includes zero: "+bf(e))}return e}function TF(t,e,n){let r=e.bins;if(r&&!Xt(r)){const i=(r.start==null||r.stop==null)&&t.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?In(i):r.stop,s=r.step;s||$e("Scale bins parameter missing step property."),r=rs(a,o+s,s)}return r?t.bins=r:t.bins&&delete t.bins,t.type===xd&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function NF(t,e,n){var r=t.type,i=e.round||!1,a=e.range;if(e.rangeStep!=null)a=FF(r,e,n);else if(e.scheme&&(a=BF(r,e,n),kt(a))){if(t.interpolator)return t.interpolator(a);$e(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&rl(r))return t.interpolator(il(h0(a,e.reverse),e.interpolate,e.interpolateGamma));a&&e.interpolate&&t.interpolate?t.interpolate(qb(e.interpolate,e.interpolateGamma)):kt(t.round)?t.round(i):kt(t.rangeRound)&&t.interpolate(i?ks:Xr),a&&t.range(h0(a,e.reverse))}function FF(t,e,n){t!==jb&&t!==wd&&$e("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===wd?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*md(n,i,r)]}function BF(t,e,n){var r=e.schemeExtent,i,a;return Xt(e.scheme)?a=il(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),a=Ad(i),a||$e(`Unrecognized scheme name: ${e.scheme}`)),n=t===Ub?n+1:t===xd?n-1:t===bd||t===Pb?+e.schemeCount||vF:n,rl(t)?qw(a,r,e.reverse):kt(a)?nM(qw(a,r),n):t===yd?a:a.slice(0,n)}function qw(t,e,n){return kt(t)&&(e||n)?tM(t,h0(e||[0,1],n)):t}function h0(t,e){return e?t.slice().reverse():t}const Zw=pt(",d");function kF(t,e){return t.chrom+":"+Zw(Math.floor(t.pos+1))+"-"+(t.chrom!=e.chrom?e.chrom+":":"")+Zw(Math.ceil(e.pos))}const LF="https://genomespy.app/data/genomes/";class RF{constructor(e){if(this.config=e,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(e){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:e+"/"+this.config.baseUrl:this.baseUrl=LF;try{this.setChromSizes(OF(await Bf({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(e=>e.name.startsWith("chr"))}setChromSizes(e){let n=0;this.startByIndex=[0];for(let r=0;r<e.length;r++){this.startByIndex.push(n);const i=e[r].size,a={...e[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(e,n){let r=this.cumulativeChromPositions.get(e);if(r===void 0)throw new Error("Unknown chromosome/contig: "+e);return r+ +n}toChromosome(e){if(e>this.totalSize)return;e=Math.floor(e);const n=Fa(this.startByIndex,e)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(e){const n=this.toChromosome(e);if(n)return{chrom:n.name,pos:Math.floor(e)-n.continuousStart}}getChromosome(e){return this.chromosomesByName.get(e)}formatInterval(e){return kF(...this.toChromosomalInterval(e))}toChromosomalInterval(e){const n=this.toChromosomal(e[0]+.5),r=this.toChromosomal(e[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(e){var i;let[n,r]=e;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(e){const n=e[0],r=e[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(e){return this.toDiscreteChromosomeIntervals([this.toChromosomal(e[0]),this.toChromosomal(e[1])])}parseInterval(e){const n=e.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function OF(t){return r_(t).filter(e=>/^chr[0-9A-Z]+$/.test(e[0])).map(([e,n])=>({name:e,size:parseInt(n)}))}function Yw(t){return Dn(t)&&"chrom"in t}function zF(t){return t.every(Yw)}class ru extends Array{constructor(){super(),this.type=void 0}extend(e){return this}extendAll(e){if(e instanceof ru&&e.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${e.type}`);for(const n of e)this.extend(n);return this}extendAllWithAccessor(e,n){for(const r of e)this.extend(n(r));return this}}class d0 extends ru{constructor(){super(),this.type="quantitative"}extend(e){return e==null||Number.isNaN(e)?this:(e=+e,this.length?e<this[0]?this[0]=e:e>this[1]&&(this[1]=e):(this.push(e),this.push(e)),this)}}class Ww extends ru{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(e){return e==null||Number.isNaN(e)?this:(this.uniqueValues.has(e)||(this.uniqueValues.add(e),this.push(e)),this)}}class Xw extends Ww{constructor(){super(),this.type="nominal"}}class PF extends ru{constructor(e){super();let n=0;for(let r=1;r<e.length;r++)n+=Math.sign(e[r]-e[r-1]);if(Math.abs(n)!=e.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(e));e.forEach(r=>this.push(r))}extend(e){if(this.includes(e))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const $w={quantitative:d0,index:d0,locus:d0,nominal:Xw,ordinal:Ww};function Kw(t,e){if(t=="quantitative"&&UF(e)){const n=new PF(e);return n.type=t,n}else if($w[t]){const n=new $w[t];return n.type=t,e&&n.extendAll(e),n}throw new Error("Unknown type: "+t)}function UF(t){return t&&t.length>0&&t.length!=2&&t.every(e=>typeof e=="number")}function jF(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function GF(t,e,n){return t*Math.pow(e/t,n)}Ce("index",c0,["continuous"]),Ce("locus",lF,["continuous"]),Ce("null",al,[]);const Jw="quantitative",ex="ordinal",tx="nominal",nx="locus",HF="index";class QF{constructor(e){ye(this,hr);ye(this,Rc);ye(this,Wo);ye(this,kr);ye(this,nf);ye(this,Oc);ye(this,Pp);ye(this,rf);ye(this,Br,void 0);ye(this,Yo,new Set);ye(this,xt,void 0);this.channel=e,this.members=[],this.type=null,this.name=void 0}addEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);ie(this,Yo).add(n)}removeEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);ie(this,Yo).delete(n)}pushUnitView(e,n){var o;const r=Ed(e,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!Qs(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:e,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const e=ie(this,xt);if(!e)return!1;const n=e.domain();return Et(e.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}getScaleProps(){return ao(this,"scaleProps",()=>{const e=fe(this,Rc,SS).call(this);if(e===null||e.type=="null")return{type:"null"};const n={...fe(this,Oc,_S).call(this,this.type),...e};n.type||(n.type=VF(this.channel,this.type));const r=fe(this,Wo,Vc).call(this);return r&&r.length>0?n.domain=r:Jr(n.type)&&(n.domain=new Xw),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Jr(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),qF(n,this.channel),n})}getConfiguredDomain(){return fe(this,rf,Zp).call(this,e=>Qs(e.channel)?void 0:e.view.getConfiguredDomain(e.channel))}getDataDomain(){return fe(this,rf,Zp).call(this,e=>Qs(e.channel)?void 0:e.view.extractDataDomain(e.channel))}reconfigure(){if(ie(this,xt)&&ie(this,xt).type!="null"){const e=this.isDomainInitialized(),n=ie(this,xt).domain();Sw(this,"scaleProps");const r=this.getScaleProps();if(Qw(r,ie(this,xt)),Et(ie(this,xt).type)&&br(this,Br,fe(this,nf,qp).call(this)),!e){fe(this,hr,Ti).call(this);return}const i=ie(this,xt).domain();Rf(i,n)||(this.isZoomable()?ie(this,xt).domain(n):fe(this,kr,Ta).call(this)?(ie(this,xt).domain(n),this.zoomTo(i,500)):fe(this,hr,Ti).call(this))}}getScale(){if(ie(this,xt))return ie(this,xt);const e=this.getScaleProps(),n=SF(e);return br(this,xt,n),cF(n)&&n.genome(this.getGenome()),Et(n.type)&&br(this,Br,fe(this,nf,qp).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var e;return((e=this.getGenome())==null?void 0:e.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return fe(this,kr,Ta).call(this)&&Rf(fe(this,Wo,Vc).call(this),this.getDomain())}isZoomable(){return fe(this,kr,Ta).call(this)&&!!this.getScaleProps().zoom}zoom(e,n,r){if(!fe(this,kr,Ta).call(this))return!1;const i=this.getScale(),a=i.domain();let o=[...a],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=LS(o,r||0),o=Jp(o,s,e);break;case"log":o=RS(o,r||0),o=em(o,s,e);break;case"pow":case"sqrt":{const f=i;o=OS(o,r||0,f.exponent()),o=Wc(o,s,e,f.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return ie(this,Br)&&(o=PS(o,ie(this,Br)[0],ie(this,Br)[1])),[0,1].some(f=>o[f]!=a[f])?(i.domain(o),fe(this,hr,Ti).call(this),!0):!1}async zoomTo(e,n=!1){var s;if(pf(n)&&(n=n?700:0),!fe(this,kr,Ta).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(e),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.getScale(),o=a.domain();if(n>0&&o.length==2){const f=o[1]-o[0],u=o[0]+f/2,l=r[1]-r[0],c=r[0]+l/2;await i.transition({duration:n,easingFunction:jF,onUpdate:h=>{const d=GF(f,l,h),g=(f-d)/(f-l),b=g*c+(1-g)*u;a.domain([b-d/2,b+d/2]),fe(this,hr,Ti).call(this)}}),a.domain(r),fe(this,hr,Ti).call(this)}else a.domain(r),i==null||i.requestRender(),fe(this,hr,Ti).call(this)}resetZoom(){if(!fe(this,kr,Ta).call(this))throw new Error("Not a zoomable scale!");const e=this.getDomain(),n=fe(this,Wo,Vc).call(this);return[0,1].some(r=>n[r]!=e[r])?(ie(this,xt).domain(n),fe(this,hr,Ti).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?mf(ie(this,Br))/mf(this.getScale().domain()):1}getGenome(){var n;if(this.type!=="locus")return;const e=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!e)throw new Error("No genome has been defined!");return e}invertToComplex(e){const n=this.getScale();if("invert"in n){const r=n.invert(e);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(e){const n=this.getGenome();return n?n.toChromosomal(e):e}fromComplex(e){return Yw(e)?this.getGenome().toContinuous(e.chrom,e.pos):e}fromComplexInterval(e){return this.type==="locus"&&zF(e)?this.getGenome().toContinuousInterval(e):e}}Br=new WeakMap,Yo=new WeakMap,xt=new WeakMap,hr=new WeakSet,Ti=function(){for(const e of ie(this,Yo).values())e({type:"domain",scaleResolution:this})},Rc=new WeakSet,SS=function(){return ao(this,"mergedScaleProps",()=>{const e=this.members.map(n=>Ed(n.view,n.channel).scale).filter(n=>n!==void 0);return Bl(e,"scale",["domain"])})},Wo=new WeakSet,Vc=function(){return this.getConfiguredDomain()??(this.type==nx?this.getGenome().getExtent():this.getDataDomain())},kr=new WeakSet,Ta=function(){const e=this.getScale().type;return Et(e)},nf=new WeakSet,qp=function(){const e=this.getScaleProps(),n=e.zoom;if(ZF(n)&&Xt(n.extent))return this.fromComplexInterval(n.extent);if(n)return e.type=="locus"?this.getGenome().getExtent():ie(this,xt).domain()},Oc=new WeakSet,_S=function(e){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Hs(n)?r.nice=!this.isExplicitDomain():Xi(n)?r.scheme=e==tx?"tableau10":e==ex?"blues":"viridis":ol(n)?r.range=Jb(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Pp=new WeakSet,R7=function(){return this.members.map(e=>e.view.getPathString()).join(", ")},rf=new WeakSet,Zp=function(e){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.contributesToScaleDomain)).map(e).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function VF(t,e){if(e==HF||e==nx){if($b(t))return e;throw new Error(`${t} does not support ${e} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["sample"].includes(t)?"null":n[t]?n[t][[tx,ex,Jw].indexOf(e)]:e==Jw?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${t}" is not compatible with "${e}" data type. Use of a proper scale may be needed.`);return i}function qF(t,e){Hs(e)&&t.type!=="ordinal"&&(t.range=[0,1]),e=="opacity"&&Et(t.type)&&(t.clamp=!0)}function ZF(t){return Dn(t)}function g0(t){const e=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))e.add(i)}for(const r of $t(t)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.contributesToScaleDomain)break;n(i)}}e.forEach(r=>r.reconfigure())}function p0(...t){for(const e of t)if(e!==void 0)return e}class YF{constructor(e){this.channel=e,this.members=[]}get scaleResolution(){var e;return(e=Es(this.members))==null?void 0:e.view.getScaleResolution(this.channel)}pushUnitView(e,n){const r=e.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:e,channel:n})}getAxisProps(){return ao(this,"axisProps",()=>{const e=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return e.length>0&&e.some(n=>n===null)?null:Bl(e.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const e=a=>{var s;const o=Ed(a.view,a.channel);if(!Fn(o))return{member:a,explicitTitle:p0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:p0(js(o)?o.field:void 0,Sd(o)?o.expr:void 0)}},n=this.members.map(e),r=n.filter(a=>{var o;if(Qs(a.member.channel)&&!a.explicitTitle){const s=Wi(a.member.channel);return((o=n.find(f=>f.member.view==a.member.view&&f.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>p0(a.explicitTitle,a.implicitTitle)).filter(Ke));return i.size?[...i].join(", "):null}}const WF={point:HN,rect:RN,rule:qN,link:XN,text:nF};class Tt extends oo{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e;const o=WF[this.getMarkType()];if(o)this.mark=new o(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.coords=void 0,this.needsAxes={x:!0,y:!0}}render(e,n,r={}){this.isConfiguredVisible()&&(this.coords=n,e.pushView(this,n),e.renderMark(this.mark,r),e.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(e){const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!un(i))continue;const a=Wi(i.resolutionChannel??r);if(!$i(a)||e=="axis"&&!Hs(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,e)=="forced"||o.dataParent instanceof oo&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,e)))&&o.getConfiguredOrDefaultResolution(a,e)!="excluded";)o=o.dataParent;e=="axis"&&Hs(r)&&$b(a)?(o.resolutions[e][a]||(o.resolutions[e][a]=new YF(a)),o.resolutions[e][a].pushUnitView(this,r)):e=="scale"&&$i(r)&&(o.resolutions[e][a]||(o.resolutions[e][a]=new QF(a)),o.resolutions[e][a].pushUnitView(this,r))}}getAccessor(e){return this._cache("accessor/"+e,()=>{const n=this.mark.encoding;if(n&&n[e])return this.context.accessorFactory.createAccessor(n[e])})}getFacetAccessor(e){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(e){if(Qs(e))throw new Error(`getDomain(${e}), must only be called for primary channels!`);const n=this.mark.encoding[e];if(!un(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(e){const n=this._validateDomainQuery(e),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??e);return Kw(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(e){const r=this._validateDomainQuery(e).type??"nominal",i=s=>{let f;const u=this.mark.encoding[s];if(u){const l=this.context.accessorFactory.createAccessor(u);if(l)if(f=Kw(r),l.constant)f.extend(l({}));else{const c=this.getCollector();c!=null&&c.completed&&c.visitData(h=>f.extend(l(h)))}}return f};let a=i(e);const o=_d[e];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const e=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Ya.map(e).reduce((n,r)=>n*r,1)}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0),e.target=this,!e.stopped&&this.handleInteractionEvent(void 0,e,!1)}getDefaultResolution(e,n){return e=="x"?"shared":"independent"}}class rx extends Ow{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e}}function*m0(t,e=[]){for(const[n,r]of t.entries())if(r instanceof Map)for(const i of m0(r,[...e,n]))yield i;else yield[[...e,n],r]}class ix extends tt{get behavior(){return u0}constructor(e){super(),this.params=e??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new Bi([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(e){this._data.push(e)}beginBatch(e){UN(e)&&(this._data=[],this.facetBatches.set($t(e.facetId),this._data))}complete(){var i,a;const e=(i=this.params)==null?void 0:i.sort,n=e?tm(e.field,e.order):void 0,r=o=>{n&&o.sort(n)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const o=this.params.groupby.map(f=>Be(f)),s=xf(this._data,...o);this.facetBatches.clear();for(const[f,u]of m0(s))this.facetBatches.set(f,u)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const f={type:"facet",facetId:o};for(const u of this.children)u.beginBatch(f)}for(const f of s)this._propagate(f)}super.complete();for(const o of this.observers)o(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const e=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of e.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(e){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)e(n[r])}getItemCount(){let e=0;for(const n of this.facetBatches.values())e+=n.length;return e}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class kl{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(e,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=e,this.values[r]=n}pop(){if(this.length===0)return;const e=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let f=this.ids[o],u=this.values[o];const l=this.values[s];if(s<this.length&&l<u&&(o=s,f=this.ids[s],u=l),u>=r)break;this.ids[a]=f,this.values[a]=u,a=o}this.ids[a]=n,this.values[a]=r}return e}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class XF extends tt{get behavior(){return er}constructor(e){super(),this.params=e,this.startAccessor=Be(e.start),this.endAccessor=Be(e.end),this.chromAccessor=e.chrom?Be(e.chrom):n=>{},this.weightAccessor=e.weight?Be(e.weight):n=>1,this.as={coverage:e.as||"coverage",start:e.asStart||e.start,end:e.asEnd||e.end,chrom:e.asChrom||e.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new kl}reset(){super.reset(),this.initialize()}initialize(){const e=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let f,u,l,c=0,h;const d=this.ends;d.clear();const g=(y,w,E)=>{if(y==w)return;let _=!1;f&&(f[e]===E?(f[n]=w,_=!0):f[e]!=0&&this._propagate(f)),_||(f=this.createSegment(y,w,E,l))},b=()=>{let y;for(;(y=d.peekValue())!==void 0;)g(h,y,c),h=y,c-=d.pop();h=void 0,f&&(this._propagate(f),f=void 0)};this.handle=y=>{const w=i(y);let E;for(;(E=d.peekValue())!==void 0&&E<w;)g(h,E,c),h=E,c-=d.pop();if(r){let D=o(y);D!==u&&(b(),l=D,u=l)}h!==void 0&&g(h,w,c),h=w;const _=s(y);c+=_,d.push(_,a(y))},this.complete=()=>{b(),super.complete()}}}function $F(t,e,n=0,r=t.length){const i=new kl,a=r-n;let o;for(o=0;o<e&&o<a;o++)i.push(o,t[n+o]);for(;o<a;o++){const u=t[n+o];u>=i.peekValue()&&(i.push(o,u),i.pop())}const s=[];let f;for(;(f=i.pop())!==void 0;)s.push(n+f);return s.reverse()}class KF{constructor(e,n=-1/0,r=1/0){this.maxSize=e,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(e,n,r=0){if(e>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(e,n,i);return a>=0?a:this._findSlot(e,n,this.upperChildren[r])}else return r}else return-1}reserve(e,n){if(n-e<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(e,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=e,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class JF extends tt{get behavior(){return u0}constructor(e,n){if(super(),this.params=e,this._data=[],this.channel=e.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Be(this.params.pos),this.posBisector=wf(this.posAccessor),this.scoreAccessor=Be(this.params.score),this.widthAccessor=Be(this.params.width),this.laneAccessor=this.params.lane?Be(this.params.lane):i=>0,this.padding=this.params.padding??0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",i=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const e=this.posAccessor;this._data.sort((n,r)=>e(n)-e(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new KF(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const e=this.resolution.getScale(),n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=e.domain(),i=70,a=$F(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const f=this._data[s],u=e(this.posAccessor(f))*n,l=this.widthAccessor(f)/2+this.padding;this.reservationMaps.get(this.laneAccessor(f)).reserve(u-l,u+l)&&this._propagate(f)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(e){this._data.push(e)}}class eB extends tt{constructor(e){super(),this.params=e,this.predicate=void 0}initialize(){this.predicate=zh(this.params.expr,this.getGlobalObject())}handle(e){this.predicate(e)&&this._propagate(e)}}class tB extends tt{get behavior(){return er}constructor(e){super();const n=e.index;if(e.fields){const r=$t(e.fields).map(a=>Be(a)),i=$t(e.as||e.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{const o=r.map((f,u)=>f(a)??[]),s=o[0].length;for(let f=0;f<s;f++){const u=Object.assign({},a);for(let l=0;l<r.length;l++)u[i[l]]=f<o[l].length?o[l][f]:null;n&&(u[n]=f),this._propagate(u)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const nB="0".charCodeAt(0);function*rB(t,e=","){const n=e.charCodeAt(0);let r=0;for(let i=0;i<t.length;i++){const a=t.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-nB}yield r}class iB extends tt{get behavior(){return er}constructor(e){super();const n=Be(e.exons??"exons"),r=Be(e.start??"start"),[i,a]=e.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),f=s,u=!0;const l=n(o);for(const c of rB(l)){if(u)f=s+c;else{s=f+c;const h=Object.assign({},o);h[i]=f,h[a]=s,this._propagate(h)}u=!u}}}}class aB extends tt{get behavior(){return er}constructor(e){super();const n=$t(e.field).map(a=>Be(a)),r=$t(e.separator),i=$t(e.as||e.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{if(n.some(f=>!f(a)))return;const o=n.map((f,u)=>f(a).split(r[u]));oB(o,a);const s=o[0].length;for(let f=0;f<s;f++){const u=Object.assign({},a);for(let l=0;l<n.length;l++)u[i[l]]=o[l][f];this._propagate(u)}}}}function oB(t,e){const n=t.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(e))}class sB extends tt{get behavior(){return oi}constructor(e){super(),this.params=e,this.as=e.as,this.fn=void 0}initialize(){this.fn=zh(this.params.expr,this.getGlobalObject())}handle(e){e[this.as]=this.fn(e),this._propagate(e)}}class ax extends tt{get behavior(){return oi}constructor(e,n){super();const r=e.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const a=Be(e.chrom),o=$t(e.pos).map(g=>Be(g)),s=$t(e.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const f=$t(e.offset);let u;if(f.length==0)u=new Array(o.length).fill(0);else if(f.length==1)u=new Array(o.length).fill(f[0]);else if(f.length==o.length)u=f;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(e.offset)}!`);const l=new Function("datum","chromOffset","posAccessors",s.map((g,b)=>`datum[${JSON.stringify(g)}] = chromOffset + +posAccessors[${b}](datum) - ${u[b]};`).join(`
|
|
148
|
+
`));let c,h=0;const d=g=>{if(g!==c){if(h=i.cumulativeChromPositions.get(g),h===void 0)throw new Error("Unknown chromosome/contig: "+g);c=g}return h};this.handle=g=>{l(g,d(a(g)),o),this._propagate(g)}}}const ox={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class uB extends tt{get behavior(){return oi}constructor(e){super();const n=a0(ox),r=Be(e.field),i=e.as,a=e.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const fB=65536;class lB extends tt{get behavior(){return oi}constructor(e){super(),this.params=e}reset(){super.reset(),this.initialize()}initialize(){const e=this.params,n=e.as||"lane",r=Lt(e.spacing)?e.spacing:1,i=Be(e.start),a=Be(e.end);if(!e.preference!=!e.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(e.preference){const o=new Float64Array(fB),s=Be(e.preference),f=e.preferredOrder;let u=1/0;this.handle=l=>{const c=i(l);c<u&&o.fill(-1/0),u=c;const h=f.indexOf(s(l));let d=-1;if(h>=0&&o[h]<c)d=h;else{const g=i(l);for(d=0;d<o.length&&!(o[d]<g);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(l)+r,l[n]=d,this._propagate(l)}}else{const o=new kl,s=new kl;let f=-1/0,u=0;this.handle=l=>{const c=i(l);for(;o.length&&(o.peekValue()<=c||c<f);){const d=o.pop();s.push(d,d)}f=c;let h=s.pop();h===void 0&&(h=u++),l[n]=h,this._propagate(l),o.push(h,a(l)+r)}}}}class cB extends tt{get behavior(){return er}constructor(e){if(super(),e.as&&e.as.length!=e.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=e.fields.map(i=>Be(i)),r=e.as?e.as:n.map(Je);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class hB extends tt{get behavior(){return oi}constructor(e){super();const n=new RegExp(e.regex),r=typeof e.as=="string"?[e.as]:e.as,i=Be(e.field);this.handle=a=>{const o=i(a);if(Ke(o)){const s=o.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let f=0;f<r.length;f++)a[r[f]]=s[f+1]}else if(e.skipInvalidInput)for(let f=0;f<r.length;f++)a[r[f]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!e.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class dB extends tt{get behavior(){return er}constructor(e){super();const n=$t(e.columnRegex).map(h=>new RegExp(h)),r=$t(e.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=e.skipRegex?new RegExp(e.skipRegex):void 0,a=e.asKey||"sample";let o,s,f;const u=h=>{var y;const d=Object.keys(h),g=new Map;for(const[w,E]of n.entries())for(const _ of d){const D=(y=E.exec(_))==null?void 0:y[1];if(D!==void 0){let T=g.get(D);T||(T=[],g.set(D,T)),T[w]=_}}o=[...g.entries()],s=d.filter(w=>!n.some(E=>E.test(w))&&!(i&&i.test(w)));const b=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map(w=>JSON.stringify(w)+": null")];f=new Function("datum","sampleId",`return {
|
|
149
149
|
`+b.join(`,
|
|
150
150
|
`)+`
|
|
151
|
-
};`)},l=h=>{o||u(h);for(const[d,g]of o){const b=f(h,d);for(let y=0;y<g.length;y++)b[r[y]]=h[g[y]];this._propagate(b)}},c=h=>{u(h),l(h),this.handle=l};this.handle=c,this.beginBatch=h=>{Tw(h)&&(this.handle=c),super.beginBatch(h)}}}class gB extends tt{get behavior(){return si}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const e=this.params,n=e.as||["y0","y1"],r=e.sort?em(e.sort.field,e.sort.order):void 0,i=e.field?Be(e.field):()=>1,a=e.groupby.map(l=>Be(l)),o=y_(this.buffer,l=>a.map(c=>c(l)).join()).map(l=>l[1]);let s=l=>!0;if(e.baseField){const l=Be(e.baseField);s=c=>l(c)!==null}let f,u;switch(e.offset){case"normalize":f=(l,c)=>l/c,u=(l,c)=>Af(l,c);break;case"center":f=(l,c)=>l-c/2,u=(l,c)=>Af(l,c);break;case"information":{const l=Math.log2(e.cardinality??4);f=(c,h)=>c/h,u=(c,h)=>{const g=Af(c,E=>+!s(E)),b=Af(c,h),y=b-g;let w=0;for(let E=0;E<c.length;E++){const _=c[E];if(s(_)){const D=h(_)/y;w-=D*Math.log2(D)}}return y/(l-(w+0))*(y/b)}}break;default:f=(l,c)=>l,u=(l,c)=>1}for(const l of o){r&&l.sort(r);const c=u(l,i);let h=0;for(const d of l){const g=h+i(d);s(d)&&(d[n[0]]=f(h,c),d[n[1]]=f(g,c),this._propagate(d),h=g)}}super.complete()}}class pB extends tt{get behavior(){return tr}constructor(e){super();const n=Be(e.field??"sequence"),[r,i]=e.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let f=0;f<s.length;f++){const u=Object.assign({},o);u[r]=f,u[i]=s.charAt(f),this._propagate(u)}}}}class mB extends tt{get behavior(){return tr}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const n=this.params.groupby,r=n.map(a=>Be(a)),i=xf(this.buffer,...r);for(const[a,o]of p0(i)){const s={count:o.length};for(let f=0;f<n.length;f++)s[n[f]]=a[f];this._propagate(s)}super.complete()}}const bB="_uniqueId",sx=1e4,ux=[null];class fx extends tt{get behavior(){return si}constructor(e){super(),this.params=e,this.as=e.as??bB,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(e){e[this.as]=this._nextId(),this._propagate(e)}_nextId(){return++this._id%sx==0&&(this._id=this._getBlock()*sx),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const e=ux.length;return ux[e]=this,this._blocks.push(e),this._usedBlocks++,e}}const yB={aggregate:mB,collect:ix,coverage:XF,filterScoredLabels:JF,filter:eB,flatten:tB,flattenCompressedExons:iB,flattenDelimited:aB,flattenSequence:pB,formula:sB,identifier:fx,linearizeGenomicCoordinate:ax,measureText:uB,pileup:lB,project:cB,regexExtract:hB,regexFold:dB,sample:Nw,stack:gB};function wB(t,e){const n=yB[t.type];if(n)return new n(t,e);throw new Error("Unknown transform: "+t.type)}function lx(t){if(!dx(t)&&!hx(t))return;const e={...t.format};if(e.type??(e.type=hx(t)&&xB(t.url)),e.parse??(e.parse="auto"),!e.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(t));return e}function xB(t){var e;if(Array.isArray(t)&&(t=t[0]),t)return(e=t.match(/\.(csv|tsv|json)/))==null?void 0:e[1]}const cx=t=>typeof t!="object"?vB:AB,vB=t=>({data:t}),AB=t=>t;function hx(t){return"url"in t}class au extends tt{get identifier(){}handle(e){throw new Error("Source does not handle incoming data!")}async load(){}}function dx(t){return"values"in t}class EB extends au{constructor(e,n){var r;if(super(),this.params=e,typeof e.values=="string"&&!((r=e==null?void 0:e.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const e=this.params.values;let n=[],r=i=>i;if(Array.isArray(e))e.length>0&&(n=e,r=cx(e[0]));else if(typeof e=="object")n=[e];else if(typeof e=="string")n=a1(e,lx(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function SB(t){return"url"in t}class _B extends au{constructor(e,n){super(),this.params=e,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const e=this.params.url,n=Array.isArray(e)?e:[e],r=async a=>Bf({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=a1(a,lx(this.params));this.beginBatch({type:"file",url:o});for(const f of s)this._propagate(f)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.reset(),await Promise.all(n.map(a=>r(a).then(i))),this.complete()}}function CB(t){return"sequence"in t}class DB extends au{constructor(e,n){if(super(),this.sequence=e.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const e=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[e]:i});this.complete()}async load(){this.loadSynchronously()}}function IB(t,e,n){return n=(n-t)/(e-t),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class ra extends au{constructor(e,n){if(super(),this.view=e,n){if(n!=="x"&&n!=="y")throw new Error(`Invalid channel specified for the dynamic data source: ${n}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the dynamic data source. Must be either "x" or "y".');if(this.channel=n,this.scaleResolution=this.view.getScaleResolution(n),!this.scaleResolution){const i=[`The dynamic data source cannot find a resolved scale for channel "${n}".`];throw this.view instanceof Tt||i.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(i.join(" "))}const r=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",r),this.view.context.addBroadcastListener("layoutComputed",r)}getAxisLength(){const e=this.scaleResolution.members.map(n=>{var r;return(r=n.view.coords)==null?void 0:r[this.channel==="x"?"width":"height"]}).filter(n=>n>0);return e.length?e.reduce((n,r)=>Math.min(n,r),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(e,n){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(e){this.reset(),this.beginBatch({type:"file"});for(const n of e)this._propagate(n);this.complete(),nx(this.view,[this.channel]),this.requestRender()}}class MB extends ra{constructor(n,r){const i={axis:{},...n};super(r,i.channel);rn(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=u=>25+60*IB(100,700,u),o=Lt(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=Pw(n,o,r.tickMinStep),f=r.values?Uw(n,r.values,s):hF(n,s);if(!Rf(f,this.ticks)){this.ticks=f;const u=gF(n,o,r.format);this.publishData(f.map(l=>({value:l,label:u(l)})))}}}class TB extends ra{constructor(e,n){super(n,e.channel)}async load(){this.publishData(this.genome.chromosomes)}}var Ln=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ia(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function NB(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function r(){if(this instanceof r){var i=[null];i.push.apply(i,arguments);var a=Function.bind.apply(e,i);return new a}return e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}),n}var bt={},Ll={};Ll.byteLength=kB,Ll.toByteArray=RB,Ll.fromByteArray=PB;for(var nr=[],fn=[],FB=typeof Uint8Array<"u"?Uint8Array:Array,m0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fo=0,BB=m0.length;fo<BB;++fo)nr[fo]=m0[fo],fn[m0.charCodeAt(fo)]=fo;fn["-".charCodeAt(0)]=62,fn["_".charCodeAt(0)]=63;function gx(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function kB(t){var e=gx(t),n=e[0],r=e[1];return(n+r)*3/4-r}function LB(t,e,n){return(e+n)*3/4-n}function RB(t){var e,n=gx(t),r=n[0],i=n[1],a=new FB(LB(t,r,i)),o=0,s=i>0?r-4:r,f;for(f=0;f<s;f+=4)e=fn[t.charCodeAt(f)]<<18|fn[t.charCodeAt(f+1)]<<12|fn[t.charCodeAt(f+2)]<<6|fn[t.charCodeAt(f+3)],a[o++]=e>>16&255,a[o++]=e>>8&255,a[o++]=e&255;return i===2&&(e=fn[t.charCodeAt(f)]<<2|fn[t.charCodeAt(f+1)]>>4,a[o++]=e&255),i===1&&(e=fn[t.charCodeAt(f)]<<10|fn[t.charCodeAt(f+1)]<<4|fn[t.charCodeAt(f+2)]>>2,a[o++]=e>>8&255,a[o++]=e&255),a}function OB(t){return nr[t>>18&63]+nr[t>>12&63]+nr[t>>6&63]+nr[t&63]}function zB(t,e,n){for(var r,i=[],a=e;a<n;a+=3)r=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(t[a+2]&255),i.push(OB(r));return i.join("")}function PB(t){for(var e,n=t.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(zB(t,o,o+a>s?s:o+a));return r===1?(e=t[n-1],i.push(nr[e>>2]+nr[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],i.push(nr[e>>10]+nr[e>>4&63]+nr[e<<2&63]+"=")),i.join("")}var b0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */b0.read=function(t,e,n,r,i){var a,o,s=i*8-r-1,f=(1<<s)-1,u=f>>1,l=-7,c=n?i-1:0,h=n?-1:1,d=t[e+c];for(c+=h,a=d&(1<<-l)-1,d>>=-l,l+=s;l>0;a=a*256+t[e+c],c+=h,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=r;l>0;o=o*256+t[e+c],c+=h,l-=8);if(a===0)a=1-u;else{if(a===f)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-u}return(d?-1:1)*o*Math.pow(2,a-r)},b0.write=function(t,e,n,r,i,a){var o,s,f,u=a*8-i-1,l=(1<<u)-1,c=l>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,g=r?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=l):(o=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-o))<1&&(o--,f*=2),o+c>=1?e+=h/f:e+=h*Math.pow(2,1-c),e*f>=2&&(o++,f/=2),o+c>=l?(s=0,o=l):o+c>=1?(s=(e*f-1)*Math.pow(2,i),o=o+c):(s=e*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[n+d]=s&255,d+=g,s/=256,i-=8);for(o=o<<i|s,u+=i;u>0;t[n+d]=o&255,d+=g,o/=256,u-=8);t[n+d-g]|=b*128};/*!
|
|
151
|
+
};`)},l=h=>{o||u(h);for(const[d,g]of o){const b=f(h,d);for(let y=0;y<g.length;y++)b[r[y]]=h[g[y]];this._propagate(b)}},c=h=>{u(h),l(h),this.handle=l};this.handle=c,this.beginBatch=h=>{Nw(h)&&(this.handle=c),super.beginBatch(h)}}}class gB extends tt{get behavior(){return oi}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const e=this.params,n=e.as||["y0","y1"],r=e.sort?tm(e.sort.field,e.sort.order):void 0,i=e.field?Be(e.field):()=>1,a=e.groupby.map(l=>Be(l)),o=y_(this.buffer,l=>a.map(c=>c(l)).join()).map(l=>l[1]);let s=l=>!0;if(e.baseField){const l=Be(e.baseField);s=c=>l(c)!==null}let f,u;switch(e.offset){case"normalize":f=(l,c)=>l/c,u=(l,c)=>Af(l,c);break;case"center":f=(l,c)=>l-c/2,u=(l,c)=>Af(l,c);break;case"information":{const l=Math.log2(e.cardinality??4);f=(c,h)=>c/h,u=(c,h)=>{const g=Af(c,E=>+!s(E)),b=Af(c,h),y=b-g;let w=0;for(let E=0;E<c.length;E++){const _=c[E];if(s(_)){const D=h(_)/y;w-=D*Math.log2(D)}}return y/(l-(w+0))*(y/b)}}break;default:f=(l,c)=>l,u=(l,c)=>1}for(const l of o){r&&l.sort(r);const c=u(l,i);let h=0;for(const d of l){const g=h+i(d);s(d)&&(d[n[0]]=f(h,c),d[n[1]]=f(g,c),this._propagate(d),h=g)}}super.complete()}}class pB extends tt{get behavior(){return er}constructor(e){super();const n=Be(e.field??"sequence"),[r,i]=e.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let f=0;f<s.length;f++){const u=Object.assign({},o);u[r]=f,u[i]=s.charAt(f),this._propagate(u)}}}}class mB extends tt{get behavior(){return er}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const n=this.params.groupby,r=n.map(a=>Be(a)),i=xf(this.buffer,...r);for(const[a,o]of m0(i)){const s={count:o.length};for(let f=0;f<n.length;f++)s[n[f]]=a[f];this._propagate(s)}super.complete()}}const bB="_uniqueId",sx=1e4,ux=[null];class fx extends tt{get behavior(){return oi}constructor(e){super(),this.params=e,this.as=e.as??bB,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(e){e[this.as]=this._nextId(),this._propagate(e)}_nextId(){return++this._id%sx==0&&(this._id=this._getBlock()*sx),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const e=ux.length;return ux[e]=this,this._blocks.push(e),this._usedBlocks++,e}}const yB={aggregate:mB,collect:ix,coverage:XF,filterScoredLabels:JF,filter:eB,flatten:tB,flattenCompressedExons:iB,flattenDelimited:aB,flattenSequence:pB,formula:sB,identifier:fx,linearizeGenomicCoordinate:ax,measureText:uB,pileup:lB,project:cB,regexExtract:hB,regexFold:dB,sample:Fw,stack:gB};function wB(t,e){const n=yB[t.type];if(n)return new n(t,e);throw new Error("Unknown transform: "+t.type)}function lx(t){if(!dx(t)&&!hx(t))return;const e={...t.format};if(e.type??(e.type=hx(t)&&xB(t.url)),e.parse??(e.parse="auto"),!e.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(t));return e}function xB(t){var e;if(Array.isArray(t)&&(t=t[0]),t)return(e=t.match(/\.(csv|tsv|json)/))==null?void 0:e[1]}const cx=t=>typeof t!="object"?vB:AB,vB=t=>({data:t}),AB=t=>t;function hx(t){return"url"in t}class iu extends tt{get identifier(){}handle(e){throw new Error("Source does not handle incoming data!")}async load(){}}function dx(t){return"values"in t}class EB extends iu{constructor(e,n){var r;if(super(),this.params=e,typeof e.values=="string"&&!((r=e==null?void 0:e.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const e=this.params.values;let n=[],r=i=>i;if(Array.isArray(e))e.length>0&&(n=e,r=cx(e[0]));else if(typeof e=="object")n=[e];else if(typeof e=="string")n=o1(e,lx(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function SB(t){return"url"in t}class _B extends iu{constructor(e,n){super(),this.params=e,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const e=this.params.url,n=Array.isArray(e)?e:[e],r=async a=>Bf({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=o1(a,lx(this.params));this.beginBatch({type:"file",url:o});for(const f of s)this._propagate(f)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.reset(),await Promise.all(n.map(a=>r(a).then(i))),this.complete()}}function CB(t){return"sequence"in t}class DB extends iu{constructor(e,n){if(super(),this.sequence=e.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const e=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[e]:i});this.complete()}async load(){this.loadSynchronously()}}function IB(t,e,n){return n=(n-t)/(e-t),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class ra extends iu{constructor(e,n){if(super(),this.view=e,n){if(n!=="x"&&n!=="y")throw new Error(`Invalid channel specified for the dynamic data source: ${n}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the dynamic data source. Must be either "x" or "y".');if(this.channel=n,this.scaleResolution=this.view.getScaleResolution(n),!this.scaleResolution){const i=[`The dynamic data source cannot find a resolved scale for channel "${n}".`];throw this.view instanceof Tt||i.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(i.join(" "))}const r=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",r),this.view.context.addBroadcastListener("layoutComputed",r)}getAxisLength(){const e=this.scaleResolution.members.map(n=>{var r;return(r=n.view.coords)==null?void 0:r[this.channel==="x"?"width":"height"]}).filter(n=>n>0);return e.length?e.reduce((n,r)=>Math.min(n,r),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(e,n){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(e){this.reset(),this.beginBatch({type:"file"});for(const n of e)this._propagate(n);this.complete(),g0(this.view),this.requestRender()}}class MB extends ra{constructor(n,r){const i={axis:{},...n};super(r,i.channel);an(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=u=>25+60*IB(100,700,u),o=Lt(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=Uw(n,o,r.tickMinStep),f=r.values?jw(n,r.values,s):hF(n,s);if(!Rf(f,this.ticks)){this.ticks=f;const u=gF(n,o,r.format);this.publishData(f.map(l=>({value:l,label:u(l)})))}}}class TB extends ra{constructor(e,n){super(n,e.channel)}async load(){this.publishData(this.genome.chromosomes)}}var au=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function ia(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function NB(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function r(){if(this instanceof r){var i=[null];i.push.apply(i,arguments);var a=Function.bind.apply(e,i);return new a}return e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}),n}var bt={},Ll={};Ll.byteLength=kB,Ll.toByteArray=RB,Ll.fromByteArray=PB;for(var tr=[],fn=[],FB=typeof Uint8Array<"u"?Uint8Array:Array,b0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",uo=0,BB=b0.length;uo<BB;++uo)tr[uo]=b0[uo],fn[b0.charCodeAt(uo)]=uo;fn["-".charCodeAt(0)]=62,fn["_".charCodeAt(0)]=63;function gx(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function kB(t){var e=gx(t),n=e[0],r=e[1];return(n+r)*3/4-r}function LB(t,e,n){return(e+n)*3/4-n}function RB(t){var e,n=gx(t),r=n[0],i=n[1],a=new FB(LB(t,r,i)),o=0,s=i>0?r-4:r,f;for(f=0;f<s;f+=4)e=fn[t.charCodeAt(f)]<<18|fn[t.charCodeAt(f+1)]<<12|fn[t.charCodeAt(f+2)]<<6|fn[t.charCodeAt(f+3)],a[o++]=e>>16&255,a[o++]=e>>8&255,a[o++]=e&255;return i===2&&(e=fn[t.charCodeAt(f)]<<2|fn[t.charCodeAt(f+1)]>>4,a[o++]=e&255),i===1&&(e=fn[t.charCodeAt(f)]<<10|fn[t.charCodeAt(f+1)]<<4|fn[t.charCodeAt(f+2)]>>2,a[o++]=e>>8&255,a[o++]=e&255),a}function OB(t){return tr[t>>18&63]+tr[t>>12&63]+tr[t>>6&63]+tr[t&63]}function zB(t,e,n){for(var r,i=[],a=e;a<n;a+=3)r=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(t[a+2]&255),i.push(OB(r));return i.join("")}function PB(t){for(var e,n=t.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(zB(t,o,o+a>s?s:o+a));return r===1?(e=t[n-1],i.push(tr[e>>2]+tr[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],i.push(tr[e>>10]+tr[e>>4&63]+tr[e<<2&63]+"=")),i.join("")}var y0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */y0.read=function(t,e,n,r,i){var a,o,s=i*8-r-1,f=(1<<s)-1,u=f>>1,l=-7,c=n?i-1:0,h=n?-1:1,d=t[e+c];for(c+=h,a=d&(1<<-l)-1,d>>=-l,l+=s;l>0;a=a*256+t[e+c],c+=h,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=r;l>0;o=o*256+t[e+c],c+=h,l-=8);if(a===0)a=1-u;else{if(a===f)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-u}return(d?-1:1)*o*Math.pow(2,a-r)},y0.write=function(t,e,n,r,i,a){var o,s,f,u=a*8-i-1,l=(1<<u)-1,c=l>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,g=r?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=l):(o=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-o))<1&&(o--,f*=2),o+c>=1?e+=h/f:e+=h*Math.pow(2,1-c),e*f>=2&&(o++,f/=2),o+c>=l?(s=0,o=l):o+c>=1?(s=(e*f-1)*Math.pow(2,i),o=o+c):(s=e*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[n+d]=s&255,d+=g,s/=256,i-=8);for(o=o<<i|s,u+=i;u>0;t[n+d]=o&255,d+=g,o/=256,u-=8);t[n+d-g]|=b*128};/*!
|
|
152
152
|
* The buffer module from node.js, for the browser.
|
|
153
153
|
*
|
|
154
154
|
* @author Feross Aboukhadijeh <https://feross.org>
|
|
155
155
|
* @license MIT
|
|
156
|
-
*/(function(t){const e=Ll,n=b0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=s,t.SlowBuffer=E,t.INSPECT_MAX_BYTES=50;const i=2147483647;t.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const x=new Uint8Array(1),p={foo:function(){return 42}};return Object.setPrototypeOf(p,Uint8Array.prototype),Object.setPrototypeOf(x,p),x.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(x){if(x>i)throw new RangeError('The value "'+x+'" is invalid for option "size"');const p=new Uint8Array(x);return Object.setPrototypeOf(p,s.prototype),p}function s(x,p,m){if(typeof x=="number"){if(typeof p=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(x)}return f(x,p,m)}s.poolSize=8192;function f(x,p,m){if(typeof x=="string")return h(x,p);if(ArrayBuffer.isView(x))return g(x);if(x==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x);if(Dt(x,ArrayBuffer)||x&&Dt(x.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Dt(x,SharedArrayBuffer)||x&&Dt(x.buffer,SharedArrayBuffer)))return b(x,p,m);if(typeof x=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const I=x.valueOf&&x.valueOf();if(I!=null&&I!==x)return s.from(I,p,m);const B=y(x);if(B)return B;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof x[Symbol.toPrimitive]=="function")return s.from(x[Symbol.toPrimitive]("string"),p,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x)}s.from=function(x,p,m){return f(x,p,m)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function u(x){if(typeof x!="number")throw new TypeError('"size" argument must be of type number');if(x<0)throw new RangeError('The value "'+x+'" is invalid for option "size"')}function l(x,p,m){return u(x),x<=0?o(x):p!==void 0?typeof m=="string"?o(x).fill(p,m):o(x).fill(p):o(x)}s.alloc=function(x,p,m){return l(x,p,m)};function c(x){return u(x),o(x<0?0:w(x)|0)}s.allocUnsafe=function(x){return c(x)},s.allocUnsafeSlow=function(x){return c(x)};function h(x,p){if((typeof p!="string"||p==="")&&(p="utf8"),!s.isEncoding(p))throw new TypeError("Unknown encoding: "+p);const m=_(x,p)|0;let I=o(m);const B=I.write(x,p);return B!==m&&(I=I.slice(0,B)),I}function d(x){const p=x.length<0?0:w(x.length)|0,m=o(p);for(let I=0;I<p;I+=1)m[I]=x[I]&255;return m}function g(x){if(Dt(x,Uint8Array)){const p=new Uint8Array(x);return b(p.buffer,p.byteOffset,p.byteLength)}return d(x)}function b(x,p,m){if(p<0||x.byteLength<p)throw new RangeError('"offset" is outside of buffer bounds');if(x.byteLength<p+(m||0))throw new RangeError('"length" is outside of buffer bounds');let I;return p===void 0&&m===void 0?I=new Uint8Array(x):m===void 0?I=new Uint8Array(x,p):I=new Uint8Array(x,p,m),Object.setPrototypeOf(I,s.prototype),I}function y(x){if(s.isBuffer(x)){const p=w(x.length)|0,m=o(p);return m.length===0||x.copy(m,0,0,p),m}if(x.length!==void 0)return typeof x.length!="number"||zr(x.length)?o(0):d(x);if(x.type==="Buffer"&&Array.isArray(x.data))return d(x.data)}function w(x){if(x>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return x|0}function E(x){return+x!=x&&(x=0),s.alloc(+x)}s.isBuffer=function(p){return p!=null&&p._isBuffer===!0&&p!==s.prototype},s.compare=function(p,m){if(Dt(p,Uint8Array)&&(p=s.from(p,p.offset,p.byteLength)),Dt(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(p)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(p===m)return 0;let I=p.length,B=m.length;for(let P=0,H=Math.min(I,B);P<H;++P)if(p[P]!==m[P]){I=p[P],B=m[P];break}return I<B?-1:B<I?1:0},s.isEncoding=function(p){switch(String(p).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(p,m){if(!Array.isArray(p))throw new TypeError('"list" argument must be an Array of Buffers');if(p.length===0)return s.alloc(0);let I;if(m===void 0)for(m=0,I=0;I<p.length;++I)m+=p[I].length;const B=s.allocUnsafe(m);let P=0;for(I=0;I<p.length;++I){let H=p[I];if(Dt(H,Uint8Array))P+H.length>B.length?(s.isBuffer(H)||(H=s.from(H)),H.copy(B,P)):Uint8Array.prototype.set.call(B,H,P);else if(s.isBuffer(H))H.copy(B,P);else throw new TypeError('"list" argument must be an Array of Buffers');P+=H.length}return B};function _(x,p){if(s.isBuffer(x))return x.length;if(ArrayBuffer.isView(x)||Dt(x,ArrayBuffer))return x.byteLength;if(typeof x!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof x);const m=x.length,I=arguments.length>2&&arguments[2]===!0;if(!I&&m===0)return 0;let B=!1;for(;;)switch(p){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return ce(x).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return _i(x).length;default:if(B)return I?-1:ce(x).length;p=(""+p).toLowerCase(),B=!0}}s.byteLength=_;function D(x,p,m){let I=!1;if((p===void 0||p<0)&&(p=0),p>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,p>>>=0,m<=p))return"";for(x||(x="utf8");;)switch(x){case"hex":return et(this,p,m);case"utf8":case"utf-8":return J(this,p,m);case"ascii":return Te(this,p,m);case"latin1":case"binary":return it(this,p,m);case"base64":return ne(this,p,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return dr(this,p,m);default:if(I)throw new TypeError("Unknown encoding: "+x);x=(x+"").toLowerCase(),I=!0}}s.prototype._isBuffer=!0;function T(x,p,m){const I=x[p];x[p]=x[m],x[m]=I}s.prototype.swap16=function(){const p=this.length;if(p%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<p;m+=2)T(this,m,m+1);return this},s.prototype.swap32=function(){const p=this.length;if(p%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let m=0;m<p;m+=4)T(this,m,m+3),T(this,m+1,m+2);return this},s.prototype.swap64=function(){const p=this.length;if(p%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let m=0;m<p;m+=8)T(this,m,m+7),T(this,m+1,m+6),T(this,m+2,m+5),T(this,m+3,m+4);return this},s.prototype.toString=function(){const p=this.length;return p===0?"":arguments.length===0?J(this,0,p):D.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(p){if(!s.isBuffer(p))throw new TypeError("Argument must be a Buffer");return this===p?!0:s.compare(this,p)===0},s.prototype.inspect=function(){let p="";const m=t.INSPECT_MAX_BYTES;return p=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(p+=" ... "),"<Buffer "+p+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(p,m,I,B,P){if(Dt(p,Uint8Array)&&(p=s.from(p,p.offset,p.byteLength)),!s.isBuffer(p))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof p);if(m===void 0&&(m=0),I===void 0&&(I=p?p.length:0),B===void 0&&(B=0),P===void 0&&(P=this.length),m<0||I>p.length||B<0||P>this.length)throw new RangeError("out of range index");if(B>=P&&m>=I)return 0;if(B>=P)return-1;if(m>=I)return 1;if(m>>>=0,I>>>=0,B>>>=0,P>>>=0,this===p)return 0;let H=P-B,he=I-m;const He=Math.min(H,he),Le=this.slice(B,P),We=p.slice(m,I);for(let De=0;De<He;++De)if(Le[De]!==We[De]){H=Le[De],he=We[De];break}return H<he?-1:he<H?1:0};function N(x,p,m,I,B){if(x.length===0)return-1;if(typeof m=="string"?(I=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,zr(m)&&(m=B?0:x.length-1),m<0&&(m=x.length+m),m>=x.length){if(B)return-1;m=x.length-1}else if(m<0)if(B)m=0;else return-1;if(typeof p=="string"&&(p=s.from(p,I)),s.isBuffer(p))return p.length===0?-1:M(x,p,m,I,B);if(typeof p=="number")return p=p&255,typeof Uint8Array.prototype.indexOf=="function"?B?Uint8Array.prototype.indexOf.call(x,p,m):Uint8Array.prototype.lastIndexOf.call(x,p,m):M(x,[p],m,I,B);throw new TypeError("val must be string, number or Buffer")}function M(x,p,m,I,B){let P=1,H=x.length,he=p.length;if(I!==void 0&&(I=String(I).toLowerCase(),I==="ucs2"||I==="ucs-2"||I==="utf16le"||I==="utf-16le")){if(x.length<2||p.length<2)return-1;P=2,H/=2,he/=2,m/=2}function He(We,De){return P===1?We[De]:We.readUInt16BE(De*P)}let Le;if(B){let We=-1;for(Le=m;Le<H;Le++)if(He(x,Le)===He(p,We===-1?0:Le-We)){if(We===-1&&(We=Le),Le-We+1===he)return We*P}else We!==-1&&(Le-=Le-We),We=-1}else for(m+he>H&&(m=H-he),Le=m;Le>=0;Le--){let We=!0;for(let De=0;De<he;De++)if(He(x,Le+De)!==He(p,De)){We=!1;break}if(We)return Le}return-1}s.prototype.includes=function(p,m,I){return this.indexOf(p,m,I)!==-1},s.prototype.indexOf=function(p,m,I){return N(this,p,m,I,!0)},s.prototype.lastIndexOf=function(p,m,I){return N(this,p,m,I,!1)};function R(x,p,m,I){m=Number(m)||0;const B=x.length-m;I?(I=Number(I),I>B&&(I=B)):I=B;const P=p.length;I>P/2&&(I=P/2);let H;for(H=0;H<I;++H){const he=parseInt(p.substr(H*2,2),16);if(zr(he))return H;x[m+H]=he}return H}function C(x,p,m,I){return Ci(ce(p,x.length-m),x,m,I)}function k(x,p,m,I){return Ci(Yt(p),x,m,I)}function L(x,p,m,I){return Ci(_i(p),x,m,I)}function ee(x,p,m,I){return Ci(Si(p,x.length-m),x,m,I)}s.prototype.write=function(p,m,I,B){if(m===void 0)B="utf8",I=this.length,m=0;else if(I===void 0&&typeof m=="string")B=m,I=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(I)?(I=I>>>0,B===void 0&&(B="utf8")):(B=I,I=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const P=this.length-m;if((I===void 0||I>P)&&(I=P),p.length>0&&(I<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");B||(B="utf8");let H=!1;for(;;)switch(B){case"hex":return R(this,p,m,I);case"utf8":case"utf-8":return C(this,p,m,I);case"ascii":case"latin1":case"binary":return k(this,p,m,I);case"base64":return L(this,p,m,I);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ee(this,p,m,I);default:if(H)throw new TypeError("Unknown encoding: "+B);B=(""+B).toLowerCase(),H=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ne(x,p,m){return p===0&&m===x.length?e.fromByteArray(x):e.fromByteArray(x.slice(p,m))}function J(x,p,m){m=Math.min(x.length,m);const I=[];let B=p;for(;B<m;){const P=x[B];let H=null,he=P>239?4:P>223?3:P>191?2:1;if(B+he<=m){let He,Le,We,De;switch(he){case 1:P<128&&(H=P);break;case 2:He=x[B+1],(He&192)===128&&(De=(P&31)<<6|He&63,De>127&&(H=De));break;case 3:He=x[B+1],Le=x[B+2],(He&192)===128&&(Le&192)===128&&(De=(P&15)<<12|(He&63)<<6|Le&63,De>2047&&(De<55296||De>57343)&&(H=De));break;case 4:He=x[B+1],Le=x[B+2],We=x[B+3],(He&192)===128&&(Le&192)===128&&(We&192)===128&&(De=(P&15)<<18|(He&63)<<12|(Le&63)<<6|We&63,De>65535&&De<1114112&&(H=De))}}H===null?(H=65533,he=1):H>65535&&(H-=65536,I.push(H>>>10&1023|55296),H=56320|H&1023),I.push(H),B+=he}return Se(I)}const be=4096;function Se(x){const p=x.length;if(p<=be)return String.fromCharCode.apply(String,x);let m="",I=0;for(;I<p;)m+=String.fromCharCode.apply(String,x.slice(I,I+=be));return m}function Te(x,p,m){let I="";m=Math.min(x.length,m);for(let B=p;B<m;++B)I+=String.fromCharCode(x[B]&127);return I}function it(x,p,m){let I="";m=Math.min(x.length,m);for(let B=p;B<m;++B)I+=String.fromCharCode(x[B]);return I}function et(x,p,m){const I=x.length;(!p||p<0)&&(p=0),(!m||m<0||m>I)&&(m=I);let B="";for(let P=p;P<m;++P)B+=Di[x[P]];return B}function dr(x,p,m){const I=x.slice(p,m);let B="";for(let P=0;P<I.length-1;P+=2)B+=String.fromCharCode(I[P]+I[P+1]*256);return B}s.prototype.slice=function(p,m){const I=this.length;p=~~p,m=m===void 0?I:~~m,p<0?(p+=I,p<0&&(p=0)):p>I&&(p=I),m<0?(m+=I,m<0&&(m=0)):m>I&&(m=I),m<p&&(m=p);const B=this.subarray(p,m);return Object.setPrototypeOf(B,s.prototype),B};function ke(x,p,m){if(x%1!==0||x<0)throw new RangeError("offset is not uint");if(x+p>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(p,m,I){p=p>>>0,m=m>>>0,I||ke(p,m,this.length);let B=this[p],P=1,H=0;for(;++H<m&&(P*=256);)B+=this[p+H]*P;return B},s.prototype.readUintBE=s.prototype.readUIntBE=function(p,m,I){p=p>>>0,m=m>>>0,I||ke(p,m,this.length);let B=this[p+--m],P=1;for(;m>0&&(P*=256);)B+=this[p+--m]*P;return B},s.prototype.readUint8=s.prototype.readUInt8=function(p,m){return p=p>>>0,m||ke(p,1,this.length),this[p]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(p,m){return p=p>>>0,m||ke(p,2,this.length),this[p]|this[p+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(p,m){return p=p>>>0,m||ke(p,2,this.length),this[p]<<8|this[p+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),(this[p]|this[p+1]<<8|this[p+2]<<16)+this[p+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),this[p]*16777216+(this[p+1]<<16|this[p+2]<<8|this[p+3])},s.prototype.readBigUInt64LE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const B=m+this[++p]*2**8+this[++p]*2**16+this[++p]*2**24,P=this[++p]+this[++p]*2**8+this[++p]*2**16+I*2**24;return BigInt(B)+(BigInt(P)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const B=m*2**24+this[++p]*2**16+this[++p]*2**8+this[++p],P=this[++p]*2**24+this[++p]*2**16+this[++p]*2**8+I;return(BigInt(B)<<BigInt(32))+BigInt(P)}),s.prototype.readIntLE=function(p,m,I){p=p>>>0,m=m>>>0,I||ke(p,m,this.length);let B=this[p],P=1,H=0;for(;++H<m&&(P*=256);)B+=this[p+H]*P;return P*=128,B>=P&&(B-=Math.pow(2,8*m)),B},s.prototype.readIntBE=function(p,m,I){p=p>>>0,m=m>>>0,I||ke(p,m,this.length);let B=m,P=1,H=this[p+--B];for(;B>0&&(P*=256);)H+=this[p+--B]*P;return P*=128,H>=P&&(H-=Math.pow(2,8*m)),H},s.prototype.readInt8=function(p,m){return p=p>>>0,m||ke(p,1,this.length),this[p]&128?(255-this[p]+1)*-1:this[p]},s.prototype.readInt16LE=function(p,m){p=p>>>0,m||ke(p,2,this.length);const I=this[p]|this[p+1]<<8;return I&32768?I|4294901760:I},s.prototype.readInt16BE=function(p,m){p=p>>>0,m||ke(p,2,this.length);const I=this[p+1]|this[p]<<8;return I&32768?I|4294901760:I},s.prototype.readInt32LE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),this[p]|this[p+1]<<8|this[p+2]<<16|this[p+3]<<24},s.prototype.readInt32BE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),this[p]<<24|this[p+1]<<16|this[p+2]<<8|this[p+3]},s.prototype.readBigInt64LE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const B=this[p+4]+this[p+5]*2**8+this[p+6]*2**16+(I<<24);return(BigInt(B)<<BigInt(32))+BigInt(m+this[++p]*2**8+this[++p]*2**16+this[++p]*2**24)}),s.prototype.readBigInt64BE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const B=(m<<24)+this[++p]*2**16+this[++p]*2**8+this[++p];return(BigInt(B)<<BigInt(32))+BigInt(this[++p]*2**24+this[++p]*2**16+this[++p]*2**8+I)}),s.prototype.readFloatLE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),n.read(this,p,!0,23,4)},s.prototype.readFloatBE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),n.read(this,p,!1,23,4)},s.prototype.readDoubleLE=function(p,m){return p=p>>>0,m||ke(p,8,this.length),n.read(this,p,!0,52,8)},s.prototype.readDoubleBE=function(p,m){return p=p>>>0,m||ke(p,8,this.length),n.read(this,p,!1,52,8)};function Ye(x,p,m,I,B,P){if(!s.isBuffer(x))throw new TypeError('"buffer" argument must be a Buffer instance');if(p>B||p<P)throw new RangeError('"value" argument is out of bounds');if(m+I>x.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(p,m,I,B){if(p=+p,m=m>>>0,I=I>>>0,!B){const he=Math.pow(2,8*I)-1;Ye(this,p,m,I,he,0)}let P=1,H=0;for(this[m]=p&255;++H<I&&(P*=256);)this[m+H]=p/P&255;return m+I},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(p,m,I,B){if(p=+p,m=m>>>0,I=I>>>0,!B){const he=Math.pow(2,8*I)-1;Ye(this,p,m,I,he,0)}let P=I-1,H=1;for(this[m+P]=p&255;--P>=0&&(H*=256);)this[m+P]=p/H&255;return m+I},s.prototype.writeUint8=s.prototype.writeUInt8=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,1,255,0),this[m]=p&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,65535,0),this[m]=p&255,this[m+1]=p>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,65535,0),this[m]=p>>>8,this[m+1]=p&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,4294967295,0),this[m+3]=p>>>24,this[m+2]=p>>>16,this[m+1]=p>>>8,this[m]=p&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,4294967295,0),this[m]=p>>>24,this[m+1]=p>>>16,this[m+2]=p>>>8,this[m+3]=p&255,m+4};function Zt(x,p,m,I,B){v(p,I,B,x,m,7);let P=Number(p&BigInt(4294967295));x[m++]=P,P=P>>8,x[m++]=P,P=P>>8,x[m++]=P,P=P>>8,x[m++]=P;let H=Number(p>>BigInt(32)&BigInt(4294967295));return x[m++]=H,H=H>>8,x[m++]=H,H=H>>8,x[m++]=H,H=H>>8,x[m++]=H,m}function Qn(x,p,m,I,B){v(p,I,B,x,m,7);let P=Number(p&BigInt(4294967295));x[m+7]=P,P=P>>8,x[m+6]=P,P=P>>8,x[m+5]=P,P=P>>8,x[m+4]=P;let H=Number(p>>BigInt(32)&BigInt(4294967295));return x[m+3]=H,H=H>>8,x[m+2]=H,H=H>>8,x[m+1]=H,H=H>>8,x[m]=H,m+8}s.prototype.writeBigUInt64LE=Wt(function(p,m=0){return Zt(this,p,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(p,m=0){return Qn(this,p,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(p,m,I,B){if(p=+p,m=m>>>0,!B){const He=Math.pow(2,8*I-1);Ye(this,p,m,I,He-1,-He)}let P=0,H=1,he=0;for(this[m]=p&255;++P<I&&(H*=256);)p<0&&he===0&&this[m+P-1]!==0&&(he=1),this[m+P]=(p/H>>0)-he&255;return m+I},s.prototype.writeIntBE=function(p,m,I,B){if(p=+p,m=m>>>0,!B){const He=Math.pow(2,8*I-1);Ye(this,p,m,I,He-1,-He)}let P=I-1,H=1,he=0;for(this[m+P]=p&255;--P>=0&&(H*=256);)p<0&&he===0&&this[m+P+1]!==0&&(he=1),this[m+P]=(p/H>>0)-he&255;return m+I},s.prototype.writeInt8=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,1,127,-128),p<0&&(p=255+p+1),this[m]=p&255,m+1},s.prototype.writeInt16LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,32767,-32768),this[m]=p&255,this[m+1]=p>>>8,m+2},s.prototype.writeInt16BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,32767,-32768),this[m]=p>>>8,this[m+1]=p&255,m+2},s.prototype.writeInt32LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,2147483647,-2147483648),this[m]=p&255,this[m+1]=p>>>8,this[m+2]=p>>>16,this[m+3]=p>>>24,m+4},s.prototype.writeInt32BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,2147483647,-2147483648),p<0&&(p=4294967295+p+1),this[m]=p>>>24,this[m+1]=p>>>16,this[m+2]=p>>>8,this[m+3]=p&255,m+4},s.prototype.writeBigInt64LE=Wt(function(p,m=0){return Zt(this,p,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(p,m=0){return Qn(this,p,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function gr(x,p,m,I,B,P){if(m+I>x.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function z(x,p,m,I,B){return p=+p,m=m>>>0,B||gr(x,p,m,4),n.write(x,p,m,I,23,4),m+4}s.prototype.writeFloatLE=function(p,m,I){return z(this,p,m,!0,I)},s.prototype.writeFloatBE=function(p,m,I){return z(this,p,m,!1,I)};function O(x,p,m,I,B){return p=+p,m=m>>>0,B||gr(x,p,m,8),n.write(x,p,m,I,52,8),m+8}s.prototype.writeDoubleLE=function(p,m,I){return O(this,p,m,!0,I)},s.prototype.writeDoubleBE=function(p,m,I){return O(this,p,m,!1,I)},s.prototype.copy=function(p,m,I,B){if(!s.isBuffer(p))throw new TypeError("argument should be a Buffer");if(I||(I=0),!B&&B!==0&&(B=this.length),m>=p.length&&(m=p.length),m||(m=0),B>0&&B<I&&(B=I),B===I||p.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(I<0||I>=this.length)throw new RangeError("Index out of range");if(B<0)throw new RangeError("sourceEnd out of bounds");B>this.length&&(B=this.length),p.length-m<B-I&&(B=p.length-m+I);const P=B-I;return this===p&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,I,B):Uint8Array.prototype.set.call(p,this.subarray(I,B),m),P},s.prototype.fill=function(p,m,I,B){if(typeof p=="string"){if(typeof m=="string"?(B=m,m=0,I=this.length):typeof I=="string"&&(B=I,I=this.length),B!==void 0&&typeof B!="string")throw new TypeError("encoding must be a string");if(typeof B=="string"&&!s.isEncoding(B))throw new TypeError("Unknown encoding: "+B);if(p.length===1){const H=p.charCodeAt(0);(B==="utf8"&&H<128||B==="latin1")&&(p=H)}}else typeof p=="number"?p=p&255:typeof p=="boolean"&&(p=Number(p));if(m<0||this.length<m||this.length<I)throw new RangeError("Out of range index");if(I<=m)return this;m=m>>>0,I=I===void 0?this.length:I>>>0,p||(p=0);let P;if(typeof p=="number")for(P=m;P<I;++P)this[P]=p;else{const H=s.isBuffer(p)?p:s.from(p,B),he=H.length;if(he===0)throw new TypeError('The value "'+p+'" is invalid for argument "value"');for(P=0;P<I-m;++P)this[P+m]=H[P%he]}return this};const q={};function Q(x,p,m){q[x]=class extends m{constructor(){super(),Object.defineProperty(this,"message",{value:p.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${x}]`,this.stack,delete this.name}get code(){return x}set code(B){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:B,writable:!0})}toString(){return`${this.name} [${x}]: ${this.message}`}}}Q("ERR_BUFFER_OUT_OF_BOUNDS",function(x){return x?`${x} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Q("ERR_INVALID_ARG_TYPE",function(x,p){return`The "${x}" argument must be of type number. Received type ${typeof p}`},TypeError),Q("ERR_OUT_OF_RANGE",function(x,p,m){let I=`The value of "${x}" is out of range.`,B=m;return Number.isInteger(m)&&Math.abs(m)>2**32?B=X(String(m)):typeof m=="bigint"&&(B=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(B=X(B)),B+="n"),I+=` It must be ${p}. Received ${B}`,I},RangeError);function X(x){let p="",m=x.length;const I=x[0]==="-"?1:0;for(;m>=I+4;m-=3)p=`_${x.slice(m-3,m)}${p}`;return`${x.slice(0,m)}${p}`}function S(x,p,m){G(p,"offset"),(x[p]===void 0||x[p+m]===void 0)&&V(p,x.length-(m+1))}function v(x,p,m,I,B,P){if(x>m||x<p){const H=typeof p=="bigint"?"n":"";let he;throw P>3?p===0||p===BigInt(0)?he=`>= 0${H} and < 2${H} ** ${(P+1)*8}${H}`:he=`>= -(2${H} ** ${(P+1)*8-1}${H}) and < 2 ** ${(P+1)*8-1}${H}`:he=`>= ${p}${H} and <= ${m}${H}`,new q.ERR_OUT_OF_RANGE("value",he,x)}S(I,B,P)}function G(x,p){if(typeof x!="number")throw new q.ERR_INVALID_ARG_TYPE(p,"number",x)}function V(x,p,m){throw Math.floor(x)!==x?(G(x,m),new q.ERR_OUT_OF_RANGE(m||"offset","an integer",x)):p<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${p}`,x)}const le=/[^+/0-9A-Za-z-_]/g;function re(x){if(x=x.split("=")[0],x=x.trim().replace(le,""),x.length<2)return"";for(;x.length%4!==0;)x=x+"=";return x}function ce(x,p){p=p||1/0;let m;const I=x.length;let B=null;const P=[];for(let H=0;H<I;++H){if(m=x.charCodeAt(H),m>55295&&m<57344){if(!B){if(m>56319){(p-=3)>-1&&P.push(239,191,189);continue}else if(H+1===I){(p-=3)>-1&&P.push(239,191,189);continue}B=m;continue}if(m<56320){(p-=3)>-1&&P.push(239,191,189),B=m;continue}m=(B-55296<<10|m-56320)+65536}else B&&(p-=3)>-1&&P.push(239,191,189);if(B=null,m<128){if((p-=1)<0)break;P.push(m)}else if(m<2048){if((p-=2)<0)break;P.push(m>>6|192,m&63|128)}else if(m<65536){if((p-=3)<0)break;P.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((p-=4)<0)break;P.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return P}function Yt(x){const p=[];for(let m=0;m<x.length;++m)p.push(x.charCodeAt(m)&255);return p}function Si(x,p){let m,I,B;const P=[];for(let H=0;H<x.length&&!((p-=2)<0);++H)m=x.charCodeAt(H),I=m>>8,B=m%256,P.push(B),P.push(I);return P}function _i(x){return e.toByteArray(re(x))}function Ci(x,p,m,I){let B;for(B=0;B<I&&!(B+m>=p.length||B>=x.length);++B)p[B+m]=x[B];return B}function Dt(x,p){return x instanceof p||x!=null&&x.constructor!=null&&x.constructor.name!=null&&x.constructor.name===p.name}function zr(x){return x!==x}const Di=function(){const x="0123456789abcdef",p=new Array(256);for(let m=0;m<16;++m){const I=m*16;for(let B=0;B<16;++B)p[I+B]=x[m]+x[B]}return p}();function Wt(x){return typeof BigInt>"u"?pr:x}function pr(){throw new Error("BigInt not supported")}})(bt);const Kt={},UB=Object.freeze(Object.defineProperty({__proto__:null,default:Kt},Symbol.toStringTag,{value:"Module"})),y0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class rr{async getBufferFromResponse(e){if(typeof e.buffer=="function")return e.buffer();if(typeof e.arrayBuffer=="function"){const n=await e.arrayBuffer();return bt.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(e,n={}){this.baseOverrides={},this.url=e;const r=n.fetch||y0.fetch&&y0.fetch.bind(y0);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(e,n){let r;try{r=await this.fetchImplementation(e,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(e,{...n,cache:"reload"});else throw i}return r}async read(e,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:f={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const u={...this.baseOverrides,...f,headers:{...o,...f.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},l=await this.fetch(this.url,u);if(!l.ok)throw new Error(`HTTP ${l.status} ${l.statusText} ${this.url}`);if(l.status===200&&i===0||l.status===206){const c=await this.getBufferFromResponse(l),h=c.copy(e,n,0,Math.min(r,c.length)),d=l.headers.get("content-range"),g=/\/(\d+)$/.exec(d||"");return g&&g[1]&&(this._stat={size:parseInt(g[1],10)}),{bytesRead:h,buffer:e}}throw l.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${l.status} fetching ${this.url}`)}async readFile(e={}){let n,r;typeof e=="string"?(n=e,r={}):(n=e.encoding,r=e,delete r.encoding);const{headers:i={},signal:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},f=await this.fetch(this.url,s);if(!f)throw new Error("generic-filehandle failed to fetch");if(f.status!==200)throw Object.assign(new Error(`HTTP ${f.status} fetching ${this.url}`),{status:f.status});if(n==="utf8")return f.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(f)}async stat(){if(!this._stat){const e=bt.Buffer.allocUnsafe(10);if(await this.read(e,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}var Sr={};(function(t){var e=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}t.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var f in s)n(s,f)&&(a[f]=s[f])}}return a},t.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,f,u){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+f),u);return}for(var l=0;l<f;l++)a[u+l]=o[s+l]},flattenChunks:function(a){var o,s,f,u,l,c;for(f=0,o=0,s=a.length;o<s;o++)f+=a[o].length;for(c=new Uint8Array(f),u=0,o=0,s=a.length;o<s;o++)l=a[o],c.set(l,u),u+=l.length;return c}},i={arraySet:function(a,o,s,f,u){for(var l=0;l<f;l++)a[u+l]=o[s+l]},flattenChunks:function(a){return[].concat.apply([],a)}};t.setTyped=function(a){a?(t.Buf8=Uint8Array,t.Buf16=Uint16Array,t.Buf32=Int32Array,t.assign(t,r)):(t.Buf8=Array,t.Buf16=Array,t.Buf32=Array,t.assign(t,i))},t.setTyped(e)})(Sr);var ou={},ir={},lo={},jB=Sr,GB=4,px=0,mx=1,HB=2;function co(t){for(var e=t.length;--e>=0;)t[e]=0}var QB=0,bx=1,VB=2,qB=3,ZB=258,w0=29,su=256,uu=su+1+w0,ho=30,x0=19,yx=2*uu+1,aa=15,v0=16,YB=7,A0=256,wx=16,xx=17,vx=18,E0=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Rl=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],WB=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Ax=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],XB=512,_r=new Array((uu+2)*2);co(_r);var fu=new Array(ho*2);co(fu);var lu=new Array(XB);co(lu);var cu=new Array(ZB-qB+1);co(cu);var S0=new Array(w0);co(S0);var Ol=new Array(ho);co(Ol);function _0(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}var Ex,Sx,_x;function C0(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function Cx(t){return t<256?lu[t]:lu[256+(t>>>7)]}function hu(t,e){t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255}function Ut(t,e,n){t.bi_valid>v0-n?(t.bi_buf|=e<<t.bi_valid&65535,hu(t,t.bi_buf),t.bi_buf=e>>v0-t.bi_valid,t.bi_valid+=n-v0):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)}function ar(t,e,n){Ut(t,n[e*2],n[e*2+1])}function Dx(t,e){var n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1}function $B(t){t.bi_valid===16?(hu(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)}function KB(t,e){var n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,f=e.stat_desc.max_length,u,l,c,h,d,g,b=0;for(h=0;h<=aa;h++)t.bl_count[h]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<yx;u++)l=t.heap[u],h=n[n[l*2+1]*2+1]+1,h>f&&(h=f,b++),n[l*2+1]=h,!(l>r)&&(t.bl_count[h]++,d=0,l>=s&&(d=o[l-s]),g=n[l*2],t.opt_len+=g*(h+d),a&&(t.static_len+=g*(i[l*2+1]+d)));if(b!==0){do{for(h=f-1;t.bl_count[h]===0;)h--;t.bl_count[h]--,t.bl_count[h+1]+=2,t.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(l=t.bl_count[h];l!==0;)c=t.heap[--u],!(c>r)&&(n[c*2+1]!==h&&(t.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),l--)}}function Ix(t,e,n){var r=new Array(aa+1),i=0,a,o;for(a=1;a<=aa;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=e;o++){var s=t[o*2+1];s!==0&&(t[o*2]=Dx(r[s]++,s))}}function JB(){var t,e,n,r,i,a=new Array(aa+1);for(n=0,r=0;r<w0-1;r++)for(S0[r]=n,t=0;t<1<<E0[r];t++)cu[n++]=r;for(cu[n-1]=r,i=0,r=0;r<16;r++)for(Ol[r]=i,t=0;t<1<<Rl[r];t++)lu[i++]=r;for(i>>=7;r<ho;r++)for(Ol[r]=i<<7,t=0;t<1<<Rl[r]-7;t++)lu[256+i++]=r;for(e=0;e<=aa;e++)a[e]=0;for(t=0;t<=143;)_r[t*2+1]=8,t++,a[8]++;for(;t<=255;)_r[t*2+1]=9,t++,a[9]++;for(;t<=279;)_r[t*2+1]=7,t++,a[7]++;for(;t<=287;)_r[t*2+1]=8,t++,a[8]++;for(Ix(_r,uu+1,a),t=0;t<ho;t++)fu[t*2+1]=5,fu[t*2]=Dx(t,5);Ex=new _0(_r,E0,su+1,uu,aa),Sx=new _0(fu,Rl,0,ho,aa),_x=new _0(new Array(0),WB,0,x0,YB)}function Mx(t){var e;for(e=0;e<uu;e++)t.dyn_ltree[e*2]=0;for(e=0;e<ho;e++)t.dyn_dtree[e*2]=0;for(e=0;e<x0;e++)t.bl_tree[e*2]=0;t.dyn_ltree[A0*2]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function Tx(t){t.bi_valid>8?hu(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function ek(t,e,n,r){Tx(t),r&&(hu(t,n),hu(t,~n)),jB.arraySet(t.pending_buf,t.window,e,n,t.pending),t.pending+=n}function Nx(t,e,n,r){var i=e*2,a=n*2;return t[i]<t[a]||t[i]===t[a]&&r[e]<=r[n]}function D0(t,e,n){for(var r=t.heap[n],i=n<<1;i<=t.heap_len&&(i<t.heap_len&&Nx(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!Nx(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r}function Fx(t,e,n){var r,i,a=0,o,s;if(t.last_lit!==0)do r=t.pending_buf[t.d_buf+a*2]<<8|t.pending_buf[t.d_buf+a*2+1],i=t.pending_buf[t.l_buf+a],a++,r===0?ar(t,i,e):(o=cu[i],ar(t,o+su+1,e),s=E0[o],s!==0&&(i-=S0[o],Ut(t,i,s)),r--,o=Cx(r),ar(t,o,n),s=Rl[o],s!==0&&(r-=Ol[o],Ut(t,r,s)));while(a<t.last_lit);ar(t,A0,e)}function I0(t,e){var n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,a=e.stat_desc.elems,o,s,f=-1,u;for(t.heap_len=0,t.heap_max=yx,o=0;o<a;o++)n[o*2]!==0?(t.heap[++t.heap_len]=f=o,t.depth[o]=0):n[o*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=f<2?++f:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=f,o=t.heap_len>>1;o>=1;o--)D0(t,n,o);u=a;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],D0(t,n,1),s=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=s,n[u*2]=n[o*2]+n[s*2],t.depth[u]=(t.depth[o]>=t.depth[s]?t.depth[o]:t.depth[s])+1,n[o*2+1]=n[s*2+1]=u,t.heap[1]=u++,D0(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],KB(t,e),Ix(n,f,t.bl_count)}function Bx(t,e,n){var r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)&&(s<u?t.bl_tree[a*2]+=s:a!==0?(a!==i&&t.bl_tree[a*2]++,t.bl_tree[wx*2]++):s<=10?t.bl_tree[xx*2]++:t.bl_tree[vx*2]++,s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4))}function kx(t,e,n){var r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),r=0;r<=n;r++)if(a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)){if(s<u)do ar(t,a,t.bl_tree);while(--s!==0);else a!==0?(a!==i&&(ar(t,a,t.bl_tree),s--),ar(t,wx,t.bl_tree),Ut(t,s-3,2)):s<=10?(ar(t,xx,t.bl_tree),Ut(t,s-3,3)):(ar(t,vx,t.bl_tree),Ut(t,s-11,7));s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4)}}function tk(t){var e;for(Bx(t,t.dyn_ltree,t.l_desc.max_code),Bx(t,t.dyn_dtree,t.d_desc.max_code),I0(t,t.bl_desc),e=x0-1;e>=3&&t.bl_tree[Ax[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e}function nk(t,e,n,r){var i;for(Ut(t,e-257,5),Ut(t,n-1,5),Ut(t,r-4,4),i=0;i<r;i++)Ut(t,t.bl_tree[Ax[i]*2+1],3);kx(t,t.dyn_ltree,e-1),kx(t,t.dyn_dtree,n-1)}function rk(t){var e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return px;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return mx;for(n=32;n<su;n++)if(t.dyn_ltree[n*2]!==0)return mx;return px}var Lx=!1;function ik(t){Lx||(JB(),Lx=!0),t.l_desc=new C0(t.dyn_ltree,Ex),t.d_desc=new C0(t.dyn_dtree,Sx),t.bl_desc=new C0(t.bl_tree,_x),t.bi_buf=0,t.bi_valid=0,Mx(t)}function Rx(t,e,n,r){Ut(t,(QB<<1)+(r?1:0),3),ek(t,e,n,!0)}function ak(t){Ut(t,bx<<1,3),ar(t,A0,_r),$B(t)}function ok(t,e,n,r){var i,a,o=0;t.level>0?(t.strm.data_type===HB&&(t.strm.data_type=rk(t)),I0(t,t.l_desc),I0(t,t.d_desc),o=tk(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&e!==-1?Rx(t,e,n,r):t.strategy===GB||a===i?(Ut(t,(bx<<1)+(r?1:0),3),Fx(t,_r,fu)):(Ut(t,(VB<<1)+(r?1:0),3),nk(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),Fx(t,t.dyn_ltree,t.dyn_dtree)),Mx(t),r&&Tx(t)}function sk(t,e,n){return t.pending_buf[t.d_buf+t.last_lit*2]=e>>>8&255,t.pending_buf[t.d_buf+t.last_lit*2+1]=e&255,t.pending_buf[t.l_buf+t.last_lit]=n&255,t.last_lit++,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(cu[n]+su+1)*2]++,t.dyn_dtree[Cx(e)*2]++),t.last_lit===t.lit_bufsize-1}lo._tr_init=ik,lo._tr_stored_block=Rx,lo._tr_flush_block=ok,lo._tr_tally=sk,lo._tr_align=ak;function uk(t,e,n,r){for(var i=t&65535|0,a=t>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+e[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var Ox=uk;function fk(){for(var t,e=[],n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e}var lk=fk();function ck(t,e,n,r){var i=lk,a=r+n;t^=-1;for(var o=r;o<a;o++)t=t>>>8^i[(t^e[o])&255];return t^-1}var zx=ck,M0={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"},Nt=Sr,ln=lo,Px=Ox,ui=zx,hk=M0,oa=0,dk=1,gk=3,fi=4,Ux=5,or=0,jx=1,cn=-2,pk=-3,T0=-5,mk=-1,bk=1,zl=2,yk=3,wk=4,xk=0,vk=2,Pl=8,Ak=9,Ek=15,Sk=8,_k=29,Ck=256,N0=Ck+1+_k,Dk=30,Ik=19,Mk=2*N0+1,Tk=15,pe=3,li=258,Rn=li+pe+1,Nk=32,Ul=42,F0=69,jl=73,Gl=91,Hl=103,sa=113,du=666,st=1,gu=2,ua=3,go=4,Fk=3;function ci(t,e){return t.msg=hk[e],e}function Gx(t){return(t<<1)-(t>4?9:0)}function hi(t){for(var e=t.length;--e>=0;)t[e]=0}function di(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(Nt.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))}function yt(t,e){ln._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,di(t.strm)}function Ae(t,e){t.pending_buf[t.pending++]=e}function pu(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255}function Bk(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,Nt.arraySet(e,t.input,t.next_in,i,n),t.state.wrap===1?t.adler=Px(t.adler,e,i,n):t.state.wrap===2&&(t.adler=ui(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function Hx(t,e){var n=t.max_chain_length,r=t.strstart,i,a,o=t.prev_length,s=t.nice_match,f=t.strstart>t.w_size-Rn?t.strstart-(t.w_size-Rn):0,u=t.window,l=t.w_mask,c=t.prev,h=t.strstart+li,d=u[r+o-1],g=u[r+o];t.prev_length>=t.good_match&&(n>>=2),s>t.lookahead&&(s=t.lookahead);do if(i=e,!(u[i+o]!==g||u[i+o-1]!==d||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<h);if(a=li-(h-r),r=h-li,a>o){if(t.match_start=e,o=a,a>=s)break;d=u[r+o-1],g=u[r+o]}}while((e=c[e&l])>f&&--n!==0);return o<=t.lookahead?o:t.lookahead}function fa(t){var e=t.w_size,n,r,i,a,o;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Rn)){Nt.arraySet(t.window,t.window,e,e,0),t.match_start-=e,t.strstart-=e,t.block_start-=e,r=t.hash_size,n=r;do i=t.head[--n],t.head[n]=i>=e?i-e:0;while(--r);r=e,n=r;do i=t.prev[--n],t.prev[n]=i>=e?i-e:0;while(--r);a+=e}if(t.strm.avail_in===0)break;if(r=Bk(t.strm,t.window,t.strstart+t.lookahead,a),t.lookahead+=r,t.lookahead+t.insert>=pe)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+pe-1])&t.hash_mask,t.prev[o&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=o,o++,t.insert--,!(t.lookahead+t.insert<pe)););}while(t.lookahead<Rn&&t.strm.avail_in!==0)}function kk(t,e){var n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(fa(t),t.lookahead===0&&e===oa)return st;if(t.lookahead===0)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((t.strstart===0||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,yt(t,!1),t.strm.avail_out===0)||t.strstart-t.block_start>=t.w_size-Rn&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=0,e===fi?(yt(t,!0),t.strm.avail_out===0?ua:go):(t.strstart>t.block_start&&(yt(t,!1),t.strm.avail_out===0),st)}function B0(t,e){for(var n,r;;){if(t.lookahead<Rn){if(fa(t),t.lookahead<Rn&&e===oa)return st;if(t.lookahead===0)break}if(n=0,t.lookahead>=pe&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-Rn&&(t.match_length=Hx(t,n)),t.match_length>=pe)if(r=ln._tr_tally(t,t.strstart-t.match_start,t.match_length-pe),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=pe){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else r=ln._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=t.strstart<pe-1?t.strstart:pe-1,e===fi?(yt(t,!0),t.strm.avail_out===0?ua:go):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:gu}function po(t,e){for(var n,r,i;;){if(t.lookahead<Rn){if(fa(t),t.lookahead<Rn&&e===oa)return st;if(t.lookahead===0)break}if(n=0,t.lookahead>=pe&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=pe-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-Rn&&(t.match_length=Hx(t,n),t.match_length<=5&&(t.strategy===bk||t.match_length===pe&&t.strstart-t.match_start>4096)&&(t.match_length=pe-1)),t.prev_length>=pe&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-pe,r=ln._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-pe),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=pe-1,t.strstart++,r&&(yt(t,!1),t.strm.avail_out===0))return st}else if(t.match_available){if(r=ln._tr_tally(t,0,t.window[t.strstart-1]),r&&yt(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return st}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=ln._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<pe-1?t.strstart:pe-1,e===fi?(yt(t,!0),t.strm.avail_out===0?ua:go):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:gu}function Lk(t,e){for(var n,r,i,a,o=t.window;;){if(t.lookahead<=li){if(fa(t),t.lookahead<=li&&e===oa)return st;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=pe&&t.strstart>0&&(i=t.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=t.strstart+li;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);t.match_length=li-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=pe?(n=ln._tr_tally(t,1,t.match_length-pe),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=ln._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=0,e===fi?(yt(t,!0),t.strm.avail_out===0?ua:go):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:gu}function Rk(t,e){for(var n;;){if(t.lookahead===0&&(fa(t),t.lookahead===0)){if(e===oa)return st;break}if(t.match_length=0,n=ln._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=0,e===fi?(yt(t,!0),t.strm.avail_out===0?ua:go):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:gu}function sr(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}var mo;mo=[new sr(0,0,0,0,kk),new sr(4,4,8,4,B0),new sr(4,5,16,8,B0),new sr(4,6,32,32,B0),new sr(4,4,16,16,po),new sr(8,16,32,32,po),new sr(8,16,128,128,po),new sr(8,32,128,256,po),new sr(32,128,258,1024,po),new sr(32,258,258,4096,po)];function Ok(t){t.window_size=2*t.w_size,hi(t.head),t.max_lazy_match=mo[t.level].max_lazy,t.good_match=mo[t.level].good_length,t.nice_match=mo[t.level].nice_length,t.max_chain_length=mo[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=pe-1,t.match_available=0,t.ins_h=0}function zk(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Pl,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Nt.Buf16(Mk*2),this.dyn_dtree=new Nt.Buf16((2*Dk+1)*2),this.bl_tree=new Nt.Buf16((2*Ik+1)*2),hi(this.dyn_ltree),hi(this.dyn_dtree),hi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Nt.Buf16(Tk+1),this.heap=new Nt.Buf16(2*N0+1),hi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Nt.Buf16(2*N0+1),hi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Qx(t){var e;return!t||!t.state?ci(t,cn):(t.total_in=t.total_out=0,t.data_type=vk,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?Ul:sa,t.adler=e.wrap===2?0:1,e.last_flush=oa,ln._tr_init(e),or)}function Vx(t){var e=Qx(t);return e===or&&Ok(t.state),e}function Pk(t,e){return!t||!t.state||t.state.wrap!==2?cn:(t.state.gzhead=e,or)}function qx(t,e,n,r,i,a){if(!t)return cn;var o=1;if(e===mk&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>Ak||n!==Pl||r<8||r>15||e<0||e>9||a<0||a>wk)return ci(t,cn);r===8&&(r=9);var s=new zk;return t.state=s,s.strm=t,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+pe-1)/pe),s.window=new Nt.Buf8(s.w_size*2),s.head=new Nt.Buf16(s.hash_size),s.prev=new Nt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Nt.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=e,s.strategy=a,s.method=n,Vx(t)}function Uk(t,e){return qx(t,e,Pl,Ek,Sk,xk)}function jk(t,e){var n,r,i,a;if(!t||!t.state||e>Ux||e<0)return t?ci(t,cn):cn;if(r=t.state,!t.output||!t.input&&t.avail_in!==0||r.status===du&&e!==fi)return ci(t,t.avail_out===0?T0:cn);if(r.strm=t,n=r.last_flush,r.last_flush=e,r.status===Ul)if(r.wrap===2)t.adler=0,Ae(r,31),Ae(r,139),Ae(r,8),r.gzhead?(Ae(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Ae(r,r.gzhead.time&255),Ae(r,r.gzhead.time>>8&255),Ae(r,r.gzhead.time>>16&255),Ae(r,r.gzhead.time>>24&255),Ae(r,r.level===9?2:r.strategy>=zl||r.level<2?4:0),Ae(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(Ae(r,r.gzhead.extra.length&255),Ae(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=ui(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=F0):(Ae(r,0),Ae(r,0),Ae(r,0),Ae(r,0),Ae(r,0),Ae(r,r.level===9?2:r.strategy>=zl||r.level<2?4:0),Ae(r,Fk),r.status=sa);else{var o=Pl+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=zl||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=Nk),o+=31-o%31,r.status=sa,pu(r,o),r.strstart!==0&&(pu(r,t.adler>>>16),pu(r,t.adler&65535)),t.adler=1}if(r.status===F0)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=ui(t.adler,r.pending_buf,r.pending-i,i)),di(t),i=r.pending,r.pending===r.pending_buf_size));)Ae(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(t.adler=ui(t.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=jl)}else r.status=jl;if(r.status===jl)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=ui(t.adler,r.pending_buf,r.pending-i,i)),di(t),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,Ae(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(t.adler=ui(t.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=Gl)}else r.status=Gl;if(r.status===Gl)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=ui(t.adler,r.pending_buf,r.pending-i,i)),di(t),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,Ae(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(t.adler=ui(t.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Hl)}else r.status=Hl;if(r.status===Hl&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&di(t),r.pending+2<=r.pending_buf_size&&(Ae(r,t.adler&255),Ae(r,t.adler>>8&255),t.adler=0,r.status=sa)):r.status=sa),r.pending!==0){if(di(t),t.avail_out===0)return r.last_flush=-1,or}else if(t.avail_in===0&&Gx(e)<=Gx(n)&&e!==fi)return ci(t,T0);if(r.status===du&&t.avail_in!==0)return ci(t,T0);if(t.avail_in!==0||r.lookahead!==0||e!==oa&&r.status!==du){var f=r.strategy===zl?Rk(r,e):r.strategy===yk?Lk(r,e):mo[r.level].func(r,e);if((f===ua||f===go)&&(r.status=du),f===st||f===ua)return t.avail_out===0&&(r.last_flush=-1),or;if(f===gu&&(e===dk?ln._tr_align(r):e!==Ux&&(ln._tr_stored_block(r,0,0,!1),e===gk&&(hi(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),di(t),t.avail_out===0))return r.last_flush=-1,or}return e!==fi?or:r.wrap<=0?jx:(r.wrap===2?(Ae(r,t.adler&255),Ae(r,t.adler>>8&255),Ae(r,t.adler>>16&255),Ae(r,t.adler>>24&255),Ae(r,t.total_in&255),Ae(r,t.total_in>>8&255),Ae(r,t.total_in>>16&255),Ae(r,t.total_in>>24&255)):(pu(r,t.adler>>>16),pu(r,t.adler&65535)),di(t),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?or:jx)}function Gk(t){var e;return!t||!t.state?cn:(e=t.state.status,e!==Ul&&e!==F0&&e!==jl&&e!==Gl&&e!==Hl&&e!==sa&&e!==du?ci(t,cn):(t.state=null,e===sa?ci(t,pk):or))}function Hk(t,e){var n=e.length,r,i,a,o,s,f,u,l;if(!t||!t.state||(r=t.state,o=r.wrap,o===2||o===1&&r.status!==Ul||r.lookahead))return cn;for(o===1&&(t.adler=Px(t.adler,e,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&(hi(r.head),r.strstart=0,r.block_start=0,r.insert=0),l=new Nt.Buf8(r.w_size),Nt.arraySet(l,e,n-r.w_size,r.w_size,0),e=l,n=r.w_size),s=t.avail_in,f=t.next_in,u=t.input,t.avail_in=n,t.next_in=0,t.input=e,fa(r);r.lookahead>=pe;){i=r.strstart,a=r.lookahead-(pe-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+pe-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--a);r.strstart=i,r.lookahead=pe-1,fa(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=pe-1,r.match_available=0,t.next_in=f,t.input=u,t.avail_in=s,r.wrap=o,or}ir.deflateInit=Uk,ir.deflateInit2=qx,ir.deflateReset=Vx,ir.deflateResetKeep=Qx,ir.deflateSetHeader=Pk,ir.deflate=jk,ir.deflateEnd=Gk,ir.deflateSetDictionary=Hk,ir.deflateInfo="pako deflate (from Nodeca project)";var la={},Ql=Sr,Zx=!0,Yx=!0;try{String.fromCharCode.apply(null,[0])}catch{Zx=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Yx=!1}for(var mu=new Ql.Buf8(256),gi=0;gi<256;gi++)mu[gi]=gi>=252?6:gi>=248?5:gi>=240?4:gi>=224?3:gi>=192?2:1;mu[254]=mu[254]=1,la.string2buf=function(t){var e,n,r,i,a,o=t.length,s=0;for(i=0;i<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Ql.Buf8(s),a=0,i=0;a<s;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|n&63):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|n&63):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|n&63);return e};function Wx(t,e){if(e<65534&&(t.subarray&&Yx||!t.subarray&&Zx))return String.fromCharCode.apply(null,Ql.shrinkBuf(t,e));for(var n="",r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n}la.buf2binstring=function(t){return Wx(t,t.length)},la.binstring2buf=function(t){for(var e=new Ql.Buf8(t.length),n=0,r=e.length;n<r;n++)e[n]=t.charCodeAt(n);return e},la.buf2string=function(t,e){var n,r,i,a,o=e||t.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=t[n++],i<128){s[r++]=i;continue}if(a=mu[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|t[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return Wx(s,r)},la.utf8border=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+mu[t[n]]>e?n:e};function Qk(){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 Xx=Qk,bu=ir,yu=Sr,k0=la,L0=M0,Vk=Xx,$x=Object.prototype.toString,qk=0,R0=4,bo=0,Kx=1,Jx=2,Zk=-1,Yk=0,Wk=8;function ca(t){if(!(this instanceof ca))return new ca(t);this.options=yu.assign({level:Zk,method:Wk,chunkSize:16384,windowBits:15,memLevel:8,strategy:Yk,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Vk,this.strm.avail_out=0;var n=bu.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==bo)throw new Error(L0[n]);if(e.header&&bu.deflateSetHeader(this.strm,e.header),e.dictionary){var r;if(typeof e.dictionary=="string"?r=k0.string2buf(e.dictionary):$x.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=bu.deflateSetDictionary(this.strm,r),n!==bo)throw new Error(L0[n]);this._dict_set=!0}}ca.prototype.push=function(t,e){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=e===~~e?e:e===!0?R0:qk,typeof t=="string"?n.input=k0.string2buf(t):$x.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new yu.Buf8(r),n.next_out=0,n.avail_out=r),i=bu.deflate(n,a),i!==Kx&&i!==bo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===R0||a===Jx))&&(this.options.to==="string"?this.onData(k0.buf2binstring(yu.shrinkBuf(n.output,n.next_out))):this.onData(yu.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==Kx);return a===R0?(i=bu.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===bo):(a===Jx&&(this.onEnd(bo),n.avail_out=0),!0)},ca.prototype.onData=function(t){this.chunks.push(t)},ca.prototype.onEnd=function(t){t===bo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=yu.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function O0(t,e){var n=new ca(e);if(n.push(t,!0),n.err)throw n.msg||L0[n.err];return n.result}function Xk(t,e){return e=e||{},e.raw=!0,O0(t,e)}function $k(t,e){return e=e||{},e.gzip=!0,O0(t,e)}ou.Deflate=ca,ou.deflate=O0,ou.deflateRaw=Xk,ou.gzip=$k;var wu={},On={},Vl=30,Kk=12,Jk=function(e,n){var r,i,a,o,s,f,u,l,c,h,d,g,b,y,w,E,_,D,T,N,M,R,C,k,L;r=e.state,i=e.next_in,k=e.input,a=i+(e.avail_in-5),o=e.next_out,L=e.output,s=o-(n-e.avail_out),f=o+(e.avail_out-257),u=r.dmax,l=r.wsize,c=r.whave,h=r.wnext,d=r.window,g=r.hold,b=r.bits,y=r.lencode,w=r.distcode,E=(1<<r.lenbits)-1,_=(1<<r.distbits)-1;e:do{b<15&&(g+=k[i++]<<b,b+=8,g+=k[i++]<<b,b+=8),D=y[g&E];t:for(;;){if(T=D>>>24,g>>>=T,b-=T,T=D>>>16&255,T===0)L[o++]=D&65535;else if(T&16){N=D&65535,T&=15,T&&(b<T&&(g+=k[i++]<<b,b+=8),N+=g&(1<<T)-1,g>>>=T,b-=T),b<15&&(g+=k[i++]<<b,b+=8,g+=k[i++]<<b,b+=8),D=w[g&_];n:for(;;){if(T=D>>>24,g>>>=T,b-=T,T=D>>>16&255,T&16){if(M=D&65535,T&=15,b<T&&(g+=k[i++]<<b,b+=8,b<T&&(g+=k[i++]<<b,b+=8)),M+=g&(1<<T)-1,M>u){e.msg="invalid distance too far back",r.mode=Vl;break e}if(g>>>=T,b-=T,T=o-s,M>T){if(T=M-T,T>c&&r.sane){e.msg="invalid distance too far back",r.mode=Vl;break e}if(R=0,C=d,h===0){if(R+=l-T,T<N){N-=T;do L[o++]=d[R++];while(--T);R=o-M,C=L}}else if(h<T){if(R+=l+h-T,T-=h,T<N){N-=T;do L[o++]=d[R++];while(--T);if(R=0,h<N){T=h,N-=T;do L[o++]=d[R++];while(--T);R=o-M,C=L}}}else if(R+=h-T,T<N){N-=T;do L[o++]=d[R++];while(--T);R=o-M,C=L}for(;N>2;)L[o++]=C[R++],L[o++]=C[R++],L[o++]=C[R++],N-=3;N&&(L[o++]=C[R++],N>1&&(L[o++]=C[R++]))}else{R=o-M;do L[o++]=L[R++],L[o++]=L[R++],L[o++]=L[R++],N-=3;while(N>2);N&&(L[o++]=L[R++],N>1&&(L[o++]=L[R++]))}}else if(T&64){e.msg="invalid distance code",r.mode=Vl;break e}else{D=w[(D&65535)+(g&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=Kk;break e}else{e.msg="invalid literal/length code",r.mode=Vl;break e}else{D=y[(D&65535)+(g&(1<<T)-1)];continue t}break}}while(i<a&&o<f);N=b>>3,i-=N,b-=N<<3,g&=(1<<b)-1,e.next_in=i,e.next_out=o,e.avail_in=i<a?5+(a-i):5-(i-a),e.avail_out=o<f?257+(f-o):257-(o-f),r.hold=g,r.bits=b},e2=Sr,yo=15,t2=852,n2=592,r2=0,z0=1,i2=2,eL=[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],tL=[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],nL=[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],rL=[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],iL=function(e,n,r,i,a,o,s,f){var u=f.bits,l=0,c=0,h=0,d=0,g=0,b=0,y=0,w=0,E=0,_=0,D,T,N,M,R,C=null,k=0,L,ee=new e2.Buf16(yo+1),ne=new e2.Buf16(yo+1),J=null,be=0,Se,Te,it;for(l=0;l<=yo;l++)ee[l]=0;for(c=0;c<i;c++)ee[n[r+c]]++;for(g=u,d=yo;d>=1&&ee[d]===0;d--);if(g>d&&(g=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,f.bits=1,0;for(h=1;h<d&&ee[h]===0;h++);for(g<h&&(g=h),w=1,l=1;l<=yo;l++)if(w<<=1,w-=ee[l],w<0)return-1;if(w>0&&(e===r2||d!==1))return-1;for(ne[1]=0,l=1;l<yo;l++)ne[l+1]=ne[l]+ee[l];for(c=0;c<i;c++)n[r+c]!==0&&(s[ne[n[r+c]]++]=c);if(e===r2?(C=J=s,L=19):e===z0?(C=eL,k-=257,J=tL,be-=257,L=256):(C=nL,J=rL,L=-1),_=0,c=0,l=h,R=o,b=g,y=0,N=-1,E=1<<g,M=E-1,e===z0&&E>t2||e===i2&&E>n2)return 1;for(;;){Se=l-y,s[c]<L?(Te=0,it=s[c]):s[c]>L?(Te=J[be+s[c]],it=C[k+s[c]]):(Te=32+64,it=0),D=1<<l-y,T=1<<b,h=T;do T-=D,a[R+(_>>y)+T]=Se<<24|Te<<16|it|0;while(T!==0);for(D=1<<l-1;_&D;)D>>=1;if(D!==0?(_&=D-1,_+=D):_=0,c++,--ee[l]===0){if(l===d)break;l=n[r+s[c]]}if(l>g&&(_&M)!==N){for(y===0&&(y=g),R+=h,b=l-y,w=1<<b;b+y<d&&(w-=ee[b+y],!(w<=0));)b++,w<<=1;if(E+=1<<b,e===z0&&E>t2||e===i2&&E>n2)return 1;N=_&M,a[N]=g<<24|b<<16|R-o|0}}return _!==0&&(a[R+_]=l-y<<24|64<<16|0),f.bits=g,0},Jt=Sr,P0=Ox,ur=zx,aL=Jk,xu=iL,oL=0,a2=1,o2=2,s2=4,sL=5,ql=6,ha=0,uL=1,fL=2,hn=-2,u2=-3,f2=-4,lL=-5,l2=8,c2=1,h2=2,d2=3,g2=4,p2=5,m2=6,b2=7,y2=8,w2=9,x2=10,Zl=11,Cr=12,U0=13,v2=14,j0=15,A2=16,E2=17,S2=18,_2=19,Yl=20,Wl=21,C2=22,D2=23,I2=24,M2=25,T2=26,G0=27,N2=28,F2=29,qe=30,B2=31,cL=32,hL=852,dL=592,gL=15,pL=gL;function k2(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function mL(){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=new Jt.Buf16(320),this.work=new Jt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function L2(t){var e;return!t||!t.state?hn:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=c2,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Jt.Buf32(hL),e.distcode=e.distdyn=new Jt.Buf32(dL),e.sane=1,e.back=-1,ha)}function R2(t){var e;return!t||!t.state?hn:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,L2(t))}function O2(t,e){var n,r;return!t||!t.state||(r=t.state,e<0?(n=0,e=-e):(n=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?hn:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,R2(t))}function z2(t,e){var n,r;return t?(r=new mL,t.state=r,r.window=null,n=O2(t,e),n!==ha&&(t.state=null),n):hn}function bL(t){return z2(t,pL)}var P2=!0,H0,Q0;function yL(t){if(P2){var e;for(H0=new Jt.Buf32(512),Q0=new Jt.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(xu(a2,t.lens,0,288,H0,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;xu(o2,t.lens,0,32,Q0,0,t.work,{bits:5}),P2=!1}t.lencode=H0,t.lenbits=9,t.distcode=Q0,t.distbits=5}function U2(t,e,n,r){var i,a=t.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Jt.Buf8(a.wsize)),r>=a.wsize?(Jt.arraySet(a.window,e,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),Jt.arraySet(a.window,e,n-r,i,a.wnext),r-=i,r?(Jt.arraySet(a.window,e,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function wL(t,e){var n,r,i,a,o,s,f,u,l,c,h,d,g,b,y=0,w,E,_,D,T,N,M,R,C=new Jt.Buf8(4),k,L,ee=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&t.avail_in!==0)return hn;n=t.state,n.mode===Cr&&(n.mode=U0),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,c=s,h=f,R=ha;e:for(;;)switch(n.mode){case c2:if(n.wrap===0){n.mode=U0;break}for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&2&&u===35615){n.check=0,C[0]=u&255,C[1]=u>>>8&255,n.check=ur(n.check,C,2,0),u=0,l=0,n.mode=h2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=qe;break}if((u&15)!==l2){t.msg="unknown compression method",n.mode=qe;break}if(u>>>=4,l-=4,M=(u&15)+8,n.wbits===0)n.wbits=M;else if(M>n.wbits){t.msg="invalid window size",n.mode=qe;break}n.dmax=1<<M,t.adler=n.check=1,n.mode=u&512?x2:Cr,u=0,l=0;break;case h2:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.flags=u,(n.flags&255)!==l2){t.msg="unknown compression method",n.mode=qe;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=qe;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,n.check=ur(n.check,C,2,0)),u=0,l=0,n.mode=d2;case d2:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.time=u),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,C[2]=u>>>16&255,C[3]=u>>>24&255,n.check=ur(n.check,C,4,0)),u=0,l=0,n.mode=g2;case g2:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,n.check=ur(n.check,C,2,0)),u=0,l=0,n.mode=p2;case p2:if(n.flags&1024){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,n.check=ur(n.check,C,2,0)),u=0,l=0}else n.head&&(n.head.extra=null);n.mode=m2;case m2:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(M=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Jt.arraySet(n.head.extra,r,a,d,M)),n.flags&512&&(n.check=ur(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=b2;case b2:if(n.flags&2048){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.name+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&(n.check=ur(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=y2;case y2:if(n.flags&4096){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.comment+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&(n.check=ur(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.comment=null);n.mode=w2;case w2:if(n.flags&512){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=qe;break}u=0,l=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=Cr;break;case x2:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}t.adler=n.check=k2(u),u=0,l=0,n.mode=Zl;case Zl:if(n.havedict===0)return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,fL;t.adler=n.check=1,n.mode=Cr;case Cr:if(e===sL||e===ql)break e;case U0:if(n.last){u>>>=l&7,l-=l&7,n.mode=G0;break}for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}switch(n.last=u&1,u>>>=1,l-=1,u&3){case 0:n.mode=v2;break;case 1:if(yL(n),n.mode=Yl,e===ql){u>>>=2,l-=2;break e}break;case 2:n.mode=E2;break;case 3:t.msg="invalid block type",n.mode=qe}u>>>=2,l-=2;break;case v2:for(u>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=u&65535,u=0,l=0,n.mode=j0,e===ql)break e;case j0:n.mode=A2;case A2:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;Jt.arraySet(i,r,a,d,o),s-=d,a+=d,f-=d,o+=d,n.length-=d;break}n.mode=Cr;break;case E2:for(;l<14;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.nlen=(u&31)+257,u>>>=5,l-=5,n.ndist=(u&31)+1,u>>>=5,l-=5,n.ncode=(u&15)+4,u>>>=4,l-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=S2;case S2:for(;n.have<n.ncode;){for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.lens[ee[n.have++]]=u&7,u>>>=3,l-=3}for(;n.have<19;)n.lens[ee[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,k={bits:n.lenbits},R=xu(oL,n.lens,0,19,n.lencode,0,n.work,k),n.lenbits=k.bits,R){t.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=_2;case _2:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(_<16)u>>>=w,l-=w,n.lens[n.have++]=_;else{if(_===16){for(L=w+2;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u>>>=w,l-=w,n.have===0){t.msg="invalid bit length repeat",n.mode=qe;break}M=n.lens[n.have-1],d=3+(u&3),u>>>=2,l-=2}else if(_===17){for(L=w+3;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=3+(u&7),u>>>=3,l-=3}else{for(L=w+7;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=11+(u&127),u>>>=7,l-=7}if(n.have+d>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=qe;break}for(;d--;)n.lens[n.have++]=M}}if(n.mode===qe)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=qe;break}if(n.lenbits=9,k={bits:n.lenbits},R=xu(a2,n.lens,0,n.nlen,n.lencode,0,n.work,k),n.lenbits=k.bits,R){t.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,k={bits:n.distbits},R=xu(o2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,k),n.distbits=k.bits,R){t.msg="invalid distances set",n.mode=qe;break}if(n.mode=Yl,e===ql)break e;case Yl:n.mode=Wl;case Wl:if(s>=6&&f>=258){t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,aL(t,h),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,n.mode===Cr&&(n.back=-1);break}for(n.back=0;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(E&&!(E&240)){for(D=w,T=E,N=_;y=n.lencode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,n.length=_,E===0){n.mode=T2;break}if(E&32){n.back=-1,n.mode=Cr;break}if(E&64){t.msg="invalid literal/length code",n.mode=qe;break}n.extra=E&15,n.mode=C2;case C2:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=D2;case D2:for(;y=n.distcode[u&(1<<n.distbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(!(E&240)){for(D=w,T=E,N=_;y=n.distcode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,E&64){t.msg="invalid distance code",n.mode=qe;break}n.offset=_,n.extra=E&15,n.mode=I2;case I2:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=qe;break}n.mode=M2;case M2:if(f===0)break e;if(d=h-f,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=qe;break}d>n.wnext?(d-=n.wnext,g=n.wsize-d):g=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,g=o-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[o++]=b[g++];while(--d);n.length===0&&(n.mode=Wl);break;case T2:if(f===0)break e;i[o++]=n.length,f--,n.mode=Wl;break;case G0:if(n.wrap){for(;l<32;){if(s===0)break e;s--,u|=r[a++]<<l,l+=8}if(h-=f,t.total_out+=h,n.total+=h,h&&(t.adler=n.check=n.flags?ur(n.check,i,h,o-h):P0(n.check,i,h,o-h)),h=f,(n.flags?u:k2(u))!==n.check){t.msg="incorrect data check",n.mode=qe;break}u=0,l=0}n.mode=N2;case N2:if(n.wrap&&n.flags){for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=qe;break}u=0,l=0}n.mode=F2;case F2:R=uL;break e;case qe:R=u2;break e;case B2:return f2;case cL:default:return hn}return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,(n.wsize||h!==t.avail_out&&n.mode<qe&&(n.mode<G0||e!==s2))&&U2(t,t.output,t.next_out,h-t.avail_out),c-=t.avail_in,h-=t.avail_out,t.total_in+=c,t.total_out+=h,n.total+=h,n.wrap&&h&&(t.adler=n.check=n.flags?ur(n.check,i,h,t.next_out-h):P0(n.check,i,h,t.next_out-h)),t.data_type=n.bits+(n.last?64:0)+(n.mode===Cr?128:0)+(n.mode===Yl||n.mode===j0?256:0),(c===0&&h===0||e===s2)&&R===ha&&(R=lL),R}function xL(t){if(!t||!t.state)return hn;var e=t.state;return e.window&&(e.window=null),t.state=null,ha}function vL(t,e){var n;return!t||!t.state||(n=t.state,!(n.wrap&2))?hn:(n.head=e,e.done=!1,ha)}function AL(t,e){var n=e.length,r,i,a;return!t||!t.state||(r=t.state,r.wrap!==0&&r.mode!==Zl)?hn:r.mode===Zl&&(i=1,i=P0(i,e,n,0),i!==r.check)?u2:(a=U2(t,e,n,n),a?(r.mode=B2,f2):(r.havedict=1,ha))}On.inflateReset=R2,On.inflateReset2=O2,On.inflateResetKeep=L2,On.inflateInit=bL,On.inflateInit2=z2,On.inflate=wL,On.inflateEnd=xL,On.inflateGetHeader=vL,On.inflateSetDictionary=AL,On.inflateInfo="pako inflate (from Nodeca project)";var j2={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};function EL(){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}var SL=EL,wo=On,vu=Sr,Xl=la,nt=j2,V0=M0,_L=Xx,CL=SL,G2=Object.prototype.toString;function da(t){if(!(this instanceof da))return new da(t);this.options=vu.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new _L,this.strm.avail_out=0;var n=wo.inflateInit2(this.strm,e.windowBits);if(n!==nt.Z_OK)throw new Error(V0[n]);if(this.header=new CL,wo.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Xl.string2buf(e.dictionary):G2.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=wo.inflateSetDictionary(this.strm,e.dictionary),n!==nt.Z_OK)))throw new Error(V0[n])}da.prototype.push=function(t,e){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,f,u,l=!1;if(this.ended)return!1;o=e===~~e?e:e===!0?nt.Z_FINISH:nt.Z_NO_FLUSH,typeof t=="string"?n.input=Xl.binstring2buf(t):G2.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new vu.Buf8(r),n.next_out=0,n.avail_out=r),a=wo.inflate(n,nt.Z_NO_FLUSH),a===nt.Z_NEED_DICT&&i&&(a=wo.inflateSetDictionary(this.strm,i)),a===nt.Z_BUF_ERROR&&l===!0&&(a=nt.Z_OK,l=!1),a!==nt.Z_STREAM_END&&a!==nt.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===nt.Z_STREAM_END||n.avail_in===0&&(o===nt.Z_FINISH||o===nt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Xl.utf8border(n.output,n.next_out),f=n.next_out-s,u=Xl.buf2string(n.output,s),n.next_out=f,n.avail_out=r-f,f&&vu.arraySet(n.output,n.output,s,f,0),this.onData(u)):this.onData(vu.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(l=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==nt.Z_STREAM_END);return a===nt.Z_STREAM_END&&(o=nt.Z_FINISH),o===nt.Z_FINISH?(a=wo.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===nt.Z_OK):(o===nt.Z_SYNC_FLUSH&&(this.onEnd(nt.Z_OK),n.avail_out=0),!0)},da.prototype.onData=function(t){this.chunks.push(t)},da.prototype.onEnd=function(t){t===nt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=vu.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function q0(t,e){var n=new da(e);if(n.push(t,!0),n.err)throw n.msg||V0[n.err];return n.result}function DL(t,e){return e=e||{},e.raw=!0,q0(t,e)}wu.Inflate=da,wu.inflate=q0,wu.inflateRaw=DL,wu.ungzip=q0;var IL=Sr.assign,ML=ou,TL=wu,NL=j2,H2={};IL(H2,ML,TL,NL);var $l=H2;async function xo(t){try{let e,n=0,r=0;const i=[];let a=0,o;do{const f=t.subarray(n);if(o=new $l.Inflate,{strm:e}=o,o.push(f,$l.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=e.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(e.avail_in);const s=new Uint8Array(a);for(let f=0,u=0;f<i.length;f++)s.set(i[f],u),u+=i[f].length;return Buffer.from(s)}catch(e){throw`${e}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):e}}async function Q2(t,e){try{let n;const{minv:r,maxv:i}=e;let a=r.blockPosition,o=r.dataPosition;const s=[],f=[],u=[];let l=0,c=0;do{const g=t.subarray(a-r.blockPosition),b=new $l.Inflate;if({strm:n}=b,b.push(g,$l.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const y=b.result;s.push(y);let w=y.length;f.push(a),u.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const E=a;if(a+=n.next_in,o+=w,E>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),f.push(a),u.push(o),l+=s[c].length;break}l+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(l);for(let g=0,b=0;g<s.length;g++)h.set(s[g],b),b+=s[g].length;return{buffer:Buffer.from(h),cpositions:f,dpositions:u}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}/**
|
|
156
|
+
*/(function(t){const e=Ll,n=y0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=s,t.SlowBuffer=E,t.INSPECT_MAX_BYTES=50;const i=2147483647;t.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const x=new Uint8Array(1),p={foo:function(){return 42}};return Object.setPrototypeOf(p,Uint8Array.prototype),Object.setPrototypeOf(x,p),x.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(x){if(x>i)throw new RangeError('The value "'+x+'" is invalid for option "size"');const p=new Uint8Array(x);return Object.setPrototypeOf(p,s.prototype),p}function s(x,p,m){if(typeof x=="number"){if(typeof p=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(x)}return f(x,p,m)}s.poolSize=8192;function f(x,p,m){if(typeof x=="string")return h(x,p);if(ArrayBuffer.isView(x))return g(x);if(x==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x);if(Dt(x,ArrayBuffer)||x&&Dt(x.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Dt(x,SharedArrayBuffer)||x&&Dt(x.buffer,SharedArrayBuffer)))return b(x,p,m);if(typeof x=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const I=x.valueOf&&x.valueOf();if(I!=null&&I!==x)return s.from(I,p,m);const B=y(x);if(B)return B;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof x[Symbol.toPrimitive]=="function")return s.from(x[Symbol.toPrimitive]("string"),p,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x)}s.from=function(x,p,m){return f(x,p,m)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function u(x){if(typeof x!="number")throw new TypeError('"size" argument must be of type number');if(x<0)throw new RangeError('The value "'+x+'" is invalid for option "size"')}function l(x,p,m){return u(x),x<=0?o(x):p!==void 0?typeof m=="string"?o(x).fill(p,m):o(x).fill(p):o(x)}s.alloc=function(x,p,m){return l(x,p,m)};function c(x){return u(x),o(x<0?0:w(x)|0)}s.allocUnsafe=function(x){return c(x)},s.allocUnsafeSlow=function(x){return c(x)};function h(x,p){if((typeof p!="string"||p==="")&&(p="utf8"),!s.isEncoding(p))throw new TypeError("Unknown encoding: "+p);const m=_(x,p)|0;let I=o(m);const B=I.write(x,p);return B!==m&&(I=I.slice(0,B)),I}function d(x){const p=x.length<0?0:w(x.length)|0,m=o(p);for(let I=0;I<p;I+=1)m[I]=x[I]&255;return m}function g(x){if(Dt(x,Uint8Array)){const p=new Uint8Array(x);return b(p.buffer,p.byteOffset,p.byteLength)}return d(x)}function b(x,p,m){if(p<0||x.byteLength<p)throw new RangeError('"offset" is outside of buffer bounds');if(x.byteLength<p+(m||0))throw new RangeError('"length" is outside of buffer bounds');let I;return p===void 0&&m===void 0?I=new Uint8Array(x):m===void 0?I=new Uint8Array(x,p):I=new Uint8Array(x,p,m),Object.setPrototypeOf(I,s.prototype),I}function y(x){if(s.isBuffer(x)){const p=w(x.length)|0,m=o(p);return m.length===0||x.copy(m,0,0,p),m}if(x.length!==void 0)return typeof x.length!="number"||Or(x.length)?o(0):d(x);if(x.type==="Buffer"&&Array.isArray(x.data))return d(x.data)}function w(x){if(x>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return x|0}function E(x){return+x!=x&&(x=0),s.alloc(+x)}s.isBuffer=function(p){return p!=null&&p._isBuffer===!0&&p!==s.prototype},s.compare=function(p,m){if(Dt(p,Uint8Array)&&(p=s.from(p,p.offset,p.byteLength)),Dt(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(p)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(p===m)return 0;let I=p.length,B=m.length;for(let P=0,H=Math.min(I,B);P<H;++P)if(p[P]!==m[P]){I=p[P],B=m[P];break}return I<B?-1:B<I?1:0},s.isEncoding=function(p){switch(String(p).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(p,m){if(!Array.isArray(p))throw new TypeError('"list" argument must be an Array of Buffers');if(p.length===0)return s.alloc(0);let I;if(m===void 0)for(m=0,I=0;I<p.length;++I)m+=p[I].length;const B=s.allocUnsafe(m);let P=0;for(I=0;I<p.length;++I){let H=p[I];if(Dt(H,Uint8Array))P+H.length>B.length?(s.isBuffer(H)||(H=s.from(H)),H.copy(B,P)):Uint8Array.prototype.set.call(B,H,P);else if(s.isBuffer(H))H.copy(B,P);else throw new TypeError('"list" argument must be an Array of Buffers');P+=H.length}return B};function _(x,p){if(s.isBuffer(x))return x.length;if(ArrayBuffer.isView(x)||Dt(x,ArrayBuffer))return x.byteLength;if(typeof x!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof x);const m=x.length,I=arguments.length>2&&arguments[2]===!0;if(!I&&m===0)return 0;let B=!1;for(;;)switch(p){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return ce(x).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return Si(x).length;default:if(B)return I?-1:ce(x).length;p=(""+p).toLowerCase(),B=!0}}s.byteLength=_;function D(x,p,m){let I=!1;if((p===void 0||p<0)&&(p=0),p>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,p>>>=0,m<=p))return"";for(x||(x="utf8");;)switch(x){case"hex":return et(this,p,m);case"utf8":case"utf-8":return J(this,p,m);case"ascii":return Te(this,p,m);case"latin1":case"binary":return it(this,p,m);case"base64":return ne(this,p,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return dr(this,p,m);default:if(I)throw new TypeError("Unknown encoding: "+x);x=(x+"").toLowerCase(),I=!0}}s.prototype._isBuffer=!0;function T(x,p,m){const I=x[p];x[p]=x[m],x[m]=I}s.prototype.swap16=function(){const p=this.length;if(p%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<p;m+=2)T(this,m,m+1);return this},s.prototype.swap32=function(){const p=this.length;if(p%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let m=0;m<p;m+=4)T(this,m,m+3),T(this,m+1,m+2);return this},s.prototype.swap64=function(){const p=this.length;if(p%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let m=0;m<p;m+=8)T(this,m,m+7),T(this,m+1,m+6),T(this,m+2,m+5),T(this,m+3,m+4);return this},s.prototype.toString=function(){const p=this.length;return p===0?"":arguments.length===0?J(this,0,p):D.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(p){if(!s.isBuffer(p))throw new TypeError("Argument must be a Buffer");return this===p?!0:s.compare(this,p)===0},s.prototype.inspect=function(){let p="";const m=t.INSPECT_MAX_BYTES;return p=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(p+=" ... "),"<Buffer "+p+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(p,m,I,B,P){if(Dt(p,Uint8Array)&&(p=s.from(p,p.offset,p.byteLength)),!s.isBuffer(p))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof p);if(m===void 0&&(m=0),I===void 0&&(I=p?p.length:0),B===void 0&&(B=0),P===void 0&&(P=this.length),m<0||I>p.length||B<0||P>this.length)throw new RangeError("out of range index");if(B>=P&&m>=I)return 0;if(B>=P)return-1;if(m>=I)return 1;if(m>>>=0,I>>>=0,B>>>=0,P>>>=0,this===p)return 0;let H=P-B,he=I-m;const He=Math.min(H,he),Le=this.slice(B,P),We=p.slice(m,I);for(let De=0;De<He;++De)if(Le[De]!==We[De]){H=Le[De],he=We[De];break}return H<he?-1:he<H?1:0};function N(x,p,m,I,B){if(x.length===0)return-1;if(typeof m=="string"?(I=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,Or(m)&&(m=B?0:x.length-1),m<0&&(m=x.length+m),m>=x.length){if(B)return-1;m=x.length-1}else if(m<0)if(B)m=0;else return-1;if(typeof p=="string"&&(p=s.from(p,I)),s.isBuffer(p))return p.length===0?-1:M(x,p,m,I,B);if(typeof p=="number")return p=p&255,typeof Uint8Array.prototype.indexOf=="function"?B?Uint8Array.prototype.indexOf.call(x,p,m):Uint8Array.prototype.lastIndexOf.call(x,p,m):M(x,[p],m,I,B);throw new TypeError("val must be string, number or Buffer")}function M(x,p,m,I,B){let P=1,H=x.length,he=p.length;if(I!==void 0&&(I=String(I).toLowerCase(),I==="ucs2"||I==="ucs-2"||I==="utf16le"||I==="utf-16le")){if(x.length<2||p.length<2)return-1;P=2,H/=2,he/=2,m/=2}function He(We,De){return P===1?We[De]:We.readUInt16BE(De*P)}let Le;if(B){let We=-1;for(Le=m;Le<H;Le++)if(He(x,Le)===He(p,We===-1?0:Le-We)){if(We===-1&&(We=Le),Le-We+1===he)return We*P}else We!==-1&&(Le-=Le-We),We=-1}else for(m+he>H&&(m=H-he),Le=m;Le>=0;Le--){let We=!0;for(let De=0;De<he;De++)if(He(x,Le+De)!==He(p,De)){We=!1;break}if(We)return Le}return-1}s.prototype.includes=function(p,m,I){return this.indexOf(p,m,I)!==-1},s.prototype.indexOf=function(p,m,I){return N(this,p,m,I,!0)},s.prototype.lastIndexOf=function(p,m,I){return N(this,p,m,I,!1)};function R(x,p,m,I){m=Number(m)||0;const B=x.length-m;I?(I=Number(I),I>B&&(I=B)):I=B;const P=p.length;I>P/2&&(I=P/2);let H;for(H=0;H<I;++H){const he=parseInt(p.substr(H*2,2),16);if(Or(he))return H;x[m+H]=he}return H}function C(x,p,m,I){return _i(ce(p,x.length-m),x,m,I)}function k(x,p,m,I){return _i(Yt(p),x,m,I)}function L(x,p,m,I){return _i(Si(p),x,m,I)}function ee(x,p,m,I){return _i(Ei(p,x.length-m),x,m,I)}s.prototype.write=function(p,m,I,B){if(m===void 0)B="utf8",I=this.length,m=0;else if(I===void 0&&typeof m=="string")B=m,I=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(I)?(I=I>>>0,B===void 0&&(B="utf8")):(B=I,I=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const P=this.length-m;if((I===void 0||I>P)&&(I=P),p.length>0&&(I<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");B||(B="utf8");let H=!1;for(;;)switch(B){case"hex":return R(this,p,m,I);case"utf8":case"utf-8":return C(this,p,m,I);case"ascii":case"latin1":case"binary":return k(this,p,m,I);case"base64":return L(this,p,m,I);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ee(this,p,m,I);default:if(H)throw new TypeError("Unknown encoding: "+B);B=(""+B).toLowerCase(),H=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ne(x,p,m){return p===0&&m===x.length?e.fromByteArray(x):e.fromByteArray(x.slice(p,m))}function J(x,p,m){m=Math.min(x.length,m);const I=[];let B=p;for(;B<m;){const P=x[B];let H=null,he=P>239?4:P>223?3:P>191?2:1;if(B+he<=m){let He,Le,We,De;switch(he){case 1:P<128&&(H=P);break;case 2:He=x[B+1],(He&192)===128&&(De=(P&31)<<6|He&63,De>127&&(H=De));break;case 3:He=x[B+1],Le=x[B+2],(He&192)===128&&(Le&192)===128&&(De=(P&15)<<12|(He&63)<<6|Le&63,De>2047&&(De<55296||De>57343)&&(H=De));break;case 4:He=x[B+1],Le=x[B+2],We=x[B+3],(He&192)===128&&(Le&192)===128&&(We&192)===128&&(De=(P&15)<<18|(He&63)<<12|(Le&63)<<6|We&63,De>65535&&De<1114112&&(H=De))}}H===null?(H=65533,he=1):H>65535&&(H-=65536,I.push(H>>>10&1023|55296),H=56320|H&1023),I.push(H),B+=he}return Se(I)}const be=4096;function Se(x){const p=x.length;if(p<=be)return String.fromCharCode.apply(String,x);let m="",I=0;for(;I<p;)m+=String.fromCharCode.apply(String,x.slice(I,I+=be));return m}function Te(x,p,m){let I="";m=Math.min(x.length,m);for(let B=p;B<m;++B)I+=String.fromCharCode(x[B]&127);return I}function it(x,p,m){let I="";m=Math.min(x.length,m);for(let B=p;B<m;++B)I+=String.fromCharCode(x[B]);return I}function et(x,p,m){const I=x.length;(!p||p<0)&&(p=0),(!m||m<0||m>I)&&(m=I);let B="";for(let P=p;P<m;++P)B+=Ci[x[P]];return B}function dr(x,p,m){const I=x.slice(p,m);let B="";for(let P=0;P<I.length-1;P+=2)B+=String.fromCharCode(I[P]+I[P+1]*256);return B}s.prototype.slice=function(p,m){const I=this.length;p=~~p,m=m===void 0?I:~~m,p<0?(p+=I,p<0&&(p=0)):p>I&&(p=I),m<0?(m+=I,m<0&&(m=0)):m>I&&(m=I),m<p&&(m=p);const B=this.subarray(p,m);return Object.setPrototypeOf(B,s.prototype),B};function ke(x,p,m){if(x%1!==0||x<0)throw new RangeError("offset is not uint");if(x+p>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(p,m,I){p=p>>>0,m=m>>>0,I||ke(p,m,this.length);let B=this[p],P=1,H=0;for(;++H<m&&(P*=256);)B+=this[p+H]*P;return B},s.prototype.readUintBE=s.prototype.readUIntBE=function(p,m,I){p=p>>>0,m=m>>>0,I||ke(p,m,this.length);let B=this[p+--m],P=1;for(;m>0&&(P*=256);)B+=this[p+--m]*P;return B},s.prototype.readUint8=s.prototype.readUInt8=function(p,m){return p=p>>>0,m||ke(p,1,this.length),this[p]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(p,m){return p=p>>>0,m||ke(p,2,this.length),this[p]|this[p+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(p,m){return p=p>>>0,m||ke(p,2,this.length),this[p]<<8|this[p+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),(this[p]|this[p+1]<<8|this[p+2]<<16)+this[p+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),this[p]*16777216+(this[p+1]<<16|this[p+2]<<8|this[p+3])},s.prototype.readBigUInt64LE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const B=m+this[++p]*2**8+this[++p]*2**16+this[++p]*2**24,P=this[++p]+this[++p]*2**8+this[++p]*2**16+I*2**24;return BigInt(B)+(BigInt(P)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const B=m*2**24+this[++p]*2**16+this[++p]*2**8+this[++p],P=this[++p]*2**24+this[++p]*2**16+this[++p]*2**8+I;return(BigInt(B)<<BigInt(32))+BigInt(P)}),s.prototype.readIntLE=function(p,m,I){p=p>>>0,m=m>>>0,I||ke(p,m,this.length);let B=this[p],P=1,H=0;for(;++H<m&&(P*=256);)B+=this[p+H]*P;return P*=128,B>=P&&(B-=Math.pow(2,8*m)),B},s.prototype.readIntBE=function(p,m,I){p=p>>>0,m=m>>>0,I||ke(p,m,this.length);let B=m,P=1,H=this[p+--B];for(;B>0&&(P*=256);)H+=this[p+--B]*P;return P*=128,H>=P&&(H-=Math.pow(2,8*m)),H},s.prototype.readInt8=function(p,m){return p=p>>>0,m||ke(p,1,this.length),this[p]&128?(255-this[p]+1)*-1:this[p]},s.prototype.readInt16LE=function(p,m){p=p>>>0,m||ke(p,2,this.length);const I=this[p]|this[p+1]<<8;return I&32768?I|4294901760:I},s.prototype.readInt16BE=function(p,m){p=p>>>0,m||ke(p,2,this.length);const I=this[p+1]|this[p]<<8;return I&32768?I|4294901760:I},s.prototype.readInt32LE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),this[p]|this[p+1]<<8|this[p+2]<<16|this[p+3]<<24},s.prototype.readInt32BE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),this[p]<<24|this[p+1]<<16|this[p+2]<<8|this[p+3]},s.prototype.readBigInt64LE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const B=this[p+4]+this[p+5]*2**8+this[p+6]*2**16+(I<<24);return(BigInt(B)<<BigInt(32))+BigInt(m+this[++p]*2**8+this[++p]*2**16+this[++p]*2**24)}),s.prototype.readBigInt64BE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const B=(m<<24)+this[++p]*2**16+this[++p]*2**8+this[++p];return(BigInt(B)<<BigInt(32))+BigInt(this[++p]*2**24+this[++p]*2**16+this[++p]*2**8+I)}),s.prototype.readFloatLE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),n.read(this,p,!0,23,4)},s.prototype.readFloatBE=function(p,m){return p=p>>>0,m||ke(p,4,this.length),n.read(this,p,!1,23,4)},s.prototype.readDoubleLE=function(p,m){return p=p>>>0,m||ke(p,8,this.length),n.read(this,p,!0,52,8)},s.prototype.readDoubleBE=function(p,m){return p=p>>>0,m||ke(p,8,this.length),n.read(this,p,!1,52,8)};function Ye(x,p,m,I,B,P){if(!s.isBuffer(x))throw new TypeError('"buffer" argument must be a Buffer instance');if(p>B||p<P)throw new RangeError('"value" argument is out of bounds');if(m+I>x.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(p,m,I,B){if(p=+p,m=m>>>0,I=I>>>0,!B){const he=Math.pow(2,8*I)-1;Ye(this,p,m,I,he,0)}let P=1,H=0;for(this[m]=p&255;++H<I&&(P*=256);)this[m+H]=p/P&255;return m+I},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(p,m,I,B){if(p=+p,m=m>>>0,I=I>>>0,!B){const he=Math.pow(2,8*I)-1;Ye(this,p,m,I,he,0)}let P=I-1,H=1;for(this[m+P]=p&255;--P>=0&&(H*=256);)this[m+P]=p/H&255;return m+I},s.prototype.writeUint8=s.prototype.writeUInt8=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,1,255,0),this[m]=p&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,65535,0),this[m]=p&255,this[m+1]=p>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,65535,0),this[m]=p>>>8,this[m+1]=p&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,4294967295,0),this[m+3]=p>>>24,this[m+2]=p>>>16,this[m+1]=p>>>8,this[m]=p&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,4294967295,0),this[m]=p>>>24,this[m+1]=p>>>16,this[m+2]=p>>>8,this[m+3]=p&255,m+4};function Zt(x,p,m,I,B){v(p,I,B,x,m,7);let P=Number(p&BigInt(4294967295));x[m++]=P,P=P>>8,x[m++]=P,P=P>>8,x[m++]=P,P=P>>8,x[m++]=P;let H=Number(p>>BigInt(32)&BigInt(4294967295));return x[m++]=H,H=H>>8,x[m++]=H,H=H>>8,x[m++]=H,H=H>>8,x[m++]=H,m}function Hn(x,p,m,I,B){v(p,I,B,x,m,7);let P=Number(p&BigInt(4294967295));x[m+7]=P,P=P>>8,x[m+6]=P,P=P>>8,x[m+5]=P,P=P>>8,x[m+4]=P;let H=Number(p>>BigInt(32)&BigInt(4294967295));return x[m+3]=H,H=H>>8,x[m+2]=H,H=H>>8,x[m+1]=H,H=H>>8,x[m]=H,m+8}s.prototype.writeBigUInt64LE=Wt(function(p,m=0){return Zt(this,p,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(p,m=0){return Hn(this,p,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(p,m,I,B){if(p=+p,m=m>>>0,!B){const He=Math.pow(2,8*I-1);Ye(this,p,m,I,He-1,-He)}let P=0,H=1,he=0;for(this[m]=p&255;++P<I&&(H*=256);)p<0&&he===0&&this[m+P-1]!==0&&(he=1),this[m+P]=(p/H>>0)-he&255;return m+I},s.prototype.writeIntBE=function(p,m,I,B){if(p=+p,m=m>>>0,!B){const He=Math.pow(2,8*I-1);Ye(this,p,m,I,He-1,-He)}let P=I-1,H=1,he=0;for(this[m+P]=p&255;--P>=0&&(H*=256);)p<0&&he===0&&this[m+P+1]!==0&&(he=1),this[m+P]=(p/H>>0)-he&255;return m+I},s.prototype.writeInt8=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,1,127,-128),p<0&&(p=255+p+1),this[m]=p&255,m+1},s.prototype.writeInt16LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,32767,-32768),this[m]=p&255,this[m+1]=p>>>8,m+2},s.prototype.writeInt16BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,32767,-32768),this[m]=p>>>8,this[m+1]=p&255,m+2},s.prototype.writeInt32LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,2147483647,-2147483648),this[m]=p&255,this[m+1]=p>>>8,this[m+2]=p>>>16,this[m+3]=p>>>24,m+4},s.prototype.writeInt32BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,2147483647,-2147483648),p<0&&(p=4294967295+p+1),this[m]=p>>>24,this[m+1]=p>>>16,this[m+2]=p>>>8,this[m+3]=p&255,m+4},s.prototype.writeBigInt64LE=Wt(function(p,m=0){return Zt(this,p,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(p,m=0){return Hn(this,p,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function gr(x,p,m,I,B,P){if(m+I>x.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function z(x,p,m,I,B){return p=+p,m=m>>>0,B||gr(x,p,m,4),n.write(x,p,m,I,23,4),m+4}s.prototype.writeFloatLE=function(p,m,I){return z(this,p,m,!0,I)},s.prototype.writeFloatBE=function(p,m,I){return z(this,p,m,!1,I)};function O(x,p,m,I,B){return p=+p,m=m>>>0,B||gr(x,p,m,8),n.write(x,p,m,I,52,8),m+8}s.prototype.writeDoubleLE=function(p,m,I){return O(this,p,m,!0,I)},s.prototype.writeDoubleBE=function(p,m,I){return O(this,p,m,!1,I)},s.prototype.copy=function(p,m,I,B){if(!s.isBuffer(p))throw new TypeError("argument should be a Buffer");if(I||(I=0),!B&&B!==0&&(B=this.length),m>=p.length&&(m=p.length),m||(m=0),B>0&&B<I&&(B=I),B===I||p.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(I<0||I>=this.length)throw new RangeError("Index out of range");if(B<0)throw new RangeError("sourceEnd out of bounds");B>this.length&&(B=this.length),p.length-m<B-I&&(B=p.length-m+I);const P=B-I;return this===p&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,I,B):Uint8Array.prototype.set.call(p,this.subarray(I,B),m),P},s.prototype.fill=function(p,m,I,B){if(typeof p=="string"){if(typeof m=="string"?(B=m,m=0,I=this.length):typeof I=="string"&&(B=I,I=this.length),B!==void 0&&typeof B!="string")throw new TypeError("encoding must be a string");if(typeof B=="string"&&!s.isEncoding(B))throw new TypeError("Unknown encoding: "+B);if(p.length===1){const H=p.charCodeAt(0);(B==="utf8"&&H<128||B==="latin1")&&(p=H)}}else typeof p=="number"?p=p&255:typeof p=="boolean"&&(p=Number(p));if(m<0||this.length<m||this.length<I)throw new RangeError("Out of range index");if(I<=m)return this;m=m>>>0,I=I===void 0?this.length:I>>>0,p||(p=0);let P;if(typeof p=="number")for(P=m;P<I;++P)this[P]=p;else{const H=s.isBuffer(p)?p:s.from(p,B),he=H.length;if(he===0)throw new TypeError('The value "'+p+'" is invalid for argument "value"');for(P=0;P<I-m;++P)this[P+m]=H[P%he]}return this};const q={};function Q(x,p,m){q[x]=class extends m{constructor(){super(),Object.defineProperty(this,"message",{value:p.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${x}]`,this.stack,delete this.name}get code(){return x}set code(B){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:B,writable:!0})}toString(){return`${this.name} [${x}]: ${this.message}`}}}Q("ERR_BUFFER_OUT_OF_BOUNDS",function(x){return x?`${x} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Q("ERR_INVALID_ARG_TYPE",function(x,p){return`The "${x}" argument must be of type number. Received type ${typeof p}`},TypeError),Q("ERR_OUT_OF_RANGE",function(x,p,m){let I=`The value of "${x}" is out of range.`,B=m;return Number.isInteger(m)&&Math.abs(m)>2**32?B=X(String(m)):typeof m=="bigint"&&(B=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(B=X(B)),B+="n"),I+=` It must be ${p}. Received ${B}`,I},RangeError);function X(x){let p="",m=x.length;const I=x[0]==="-"?1:0;for(;m>=I+4;m-=3)p=`_${x.slice(m-3,m)}${p}`;return`${x.slice(0,m)}${p}`}function S(x,p,m){G(p,"offset"),(x[p]===void 0||x[p+m]===void 0)&&V(p,x.length-(m+1))}function v(x,p,m,I,B,P){if(x>m||x<p){const H=typeof p=="bigint"?"n":"";let he;throw P>3?p===0||p===BigInt(0)?he=`>= 0${H} and < 2${H} ** ${(P+1)*8}${H}`:he=`>= -(2${H} ** ${(P+1)*8-1}${H}) and < 2 ** ${(P+1)*8-1}${H}`:he=`>= ${p}${H} and <= ${m}${H}`,new q.ERR_OUT_OF_RANGE("value",he,x)}S(I,B,P)}function G(x,p){if(typeof x!="number")throw new q.ERR_INVALID_ARG_TYPE(p,"number",x)}function V(x,p,m){throw Math.floor(x)!==x?(G(x,m),new q.ERR_OUT_OF_RANGE(m||"offset","an integer",x)):p<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${p}`,x)}const le=/[^+/0-9A-Za-z-_]/g;function re(x){if(x=x.split("=")[0],x=x.trim().replace(le,""),x.length<2)return"";for(;x.length%4!==0;)x=x+"=";return x}function ce(x,p){p=p||1/0;let m;const I=x.length;let B=null;const P=[];for(let H=0;H<I;++H){if(m=x.charCodeAt(H),m>55295&&m<57344){if(!B){if(m>56319){(p-=3)>-1&&P.push(239,191,189);continue}else if(H+1===I){(p-=3)>-1&&P.push(239,191,189);continue}B=m;continue}if(m<56320){(p-=3)>-1&&P.push(239,191,189),B=m;continue}m=(B-55296<<10|m-56320)+65536}else B&&(p-=3)>-1&&P.push(239,191,189);if(B=null,m<128){if((p-=1)<0)break;P.push(m)}else if(m<2048){if((p-=2)<0)break;P.push(m>>6|192,m&63|128)}else if(m<65536){if((p-=3)<0)break;P.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((p-=4)<0)break;P.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return P}function Yt(x){const p=[];for(let m=0;m<x.length;++m)p.push(x.charCodeAt(m)&255);return p}function Ei(x,p){let m,I,B;const P=[];for(let H=0;H<x.length&&!((p-=2)<0);++H)m=x.charCodeAt(H),I=m>>8,B=m%256,P.push(B),P.push(I);return P}function Si(x){return e.toByteArray(re(x))}function _i(x,p,m,I){let B;for(B=0;B<I&&!(B+m>=p.length||B>=x.length);++B)p[B+m]=x[B];return B}function Dt(x,p){return x instanceof p||x!=null&&x.constructor!=null&&x.constructor.name!=null&&x.constructor.name===p.name}function Or(x){return x!==x}const Ci=function(){const x="0123456789abcdef",p=new Array(256);for(let m=0;m<16;++m){const I=m*16;for(let B=0;B<16;++B)p[I+B]=x[m]+x[B]}return p}();function Wt(x){return typeof BigInt>"u"?pr:x}function pr(){throw new Error("BigInt not supported")}})(bt);const Jt={},UB=Object.freeze(Object.defineProperty({__proto__:null,default:Jt},Symbol.toStringTag,{value:"Module"})),w0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class nr{async getBufferFromResponse(e){if(typeof e.buffer=="function")return e.buffer();if(typeof e.arrayBuffer=="function"){const n=await e.arrayBuffer();return bt.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(e,n={}){this.baseOverrides={},this.url=e;const r=n.fetch||w0.fetch&&w0.fetch.bind(w0);if(!r)throw new TypeError("no fetch function supplied, and none found in globalThis environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(e,n){let r;try{r=await this.fetchImplementation(e,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(e,{...n,cache:"reload"});else throw i}return r}async read(e,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:f={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const u={...this.baseOverrides,...f,headers:{...o,...f.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},l=await this.fetch(this.url,u);if(!l.ok)throw new Error(`HTTP ${l.status} ${l.statusText} ${this.url}`);if(l.status===200&&i===0||l.status===206){const c=await this.getBufferFromResponse(l),h=c.copy(e,n,0,Math.min(r,c.length)),d=l.headers.get("content-range"),g=/\/(\d+)$/.exec(d||"");return g&&g[1]&&(this._stat={size:parseInt(g[1],10)}),{bytesRead:h,buffer:e}}throw l.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${l.status} fetching ${this.url}`)}async readFile(e={}){let n,r;typeof e=="string"?(n=e,r={}):(n=e.encoding,r=e,delete r.encoding);const{headers:i={},signal:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},f=await this.fetch(this.url,s);if(!f)throw new Error("generic-filehandle failed to fetch");if(f.status!==200)throw Object.assign(new Error(`HTTP ${f.status} fetching ${this.url}`),{status:f.status});if(n==="utf8")return f.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(f)}async stat(){if(!this._stat){const e=bt.Buffer.allocUnsafe(10);if(await this.read(e,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}var Sr={};(function(t){var e=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}t.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var f in s)n(s,f)&&(a[f]=s[f])}}return a},t.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,f,u){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+f),u);return}for(var l=0;l<f;l++)a[u+l]=o[s+l]},flattenChunks:function(a){var o,s,f,u,l,c;for(f=0,o=0,s=a.length;o<s;o++)f+=a[o].length;for(c=new Uint8Array(f),u=0,o=0,s=a.length;o<s;o++)l=a[o],c.set(l,u),u+=l.length;return c}},i={arraySet:function(a,o,s,f,u){for(var l=0;l<f;l++)a[u+l]=o[s+l]},flattenChunks:function(a){return[].concat.apply([],a)}};t.setTyped=function(a){a?(t.Buf8=Uint8Array,t.Buf16=Uint16Array,t.Buf32=Int32Array,t.assign(t,r)):(t.Buf8=Array,t.Buf16=Array,t.Buf32=Array,t.assign(t,i))},t.setTyped(e)})(Sr);var ou={},rr={},fo={},jB=Sr,GB=4,px=0,mx=1,HB=2;function lo(t){for(var e=t.length;--e>=0;)t[e]=0}var QB=0,bx=1,VB=2,qB=3,ZB=258,x0=29,su=256,uu=su+1+x0,co=30,v0=19,yx=2*uu+1,aa=15,A0=16,YB=7,E0=256,wx=16,xx=17,vx=18,S0=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Rl=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],WB=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Ax=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],XB=512,_r=new Array((uu+2)*2);lo(_r);var fu=new Array(co*2);lo(fu);var lu=new Array(XB);lo(lu);var cu=new Array(ZB-qB+1);lo(cu);var _0=new Array(x0);lo(_0);var Ol=new Array(co);lo(Ol);function C0(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}var Ex,Sx,_x;function D0(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function Cx(t){return t<256?lu[t]:lu[256+(t>>>7)]}function hu(t,e){t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255}function Ut(t,e,n){t.bi_valid>A0-n?(t.bi_buf|=e<<t.bi_valid&65535,hu(t,t.bi_buf),t.bi_buf=e>>A0-t.bi_valid,t.bi_valid+=n-A0):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)}function ir(t,e,n){Ut(t,n[e*2],n[e*2+1])}function Dx(t,e){var n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1}function $B(t){t.bi_valid===16?(hu(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)}function KB(t,e){var n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,f=e.stat_desc.max_length,u,l,c,h,d,g,b=0;for(h=0;h<=aa;h++)t.bl_count[h]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<yx;u++)l=t.heap[u],h=n[n[l*2+1]*2+1]+1,h>f&&(h=f,b++),n[l*2+1]=h,!(l>r)&&(t.bl_count[h]++,d=0,l>=s&&(d=o[l-s]),g=n[l*2],t.opt_len+=g*(h+d),a&&(t.static_len+=g*(i[l*2+1]+d)));if(b!==0){do{for(h=f-1;t.bl_count[h]===0;)h--;t.bl_count[h]--,t.bl_count[h+1]+=2,t.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(l=t.bl_count[h];l!==0;)c=t.heap[--u],!(c>r)&&(n[c*2+1]!==h&&(t.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),l--)}}function Ix(t,e,n){var r=new Array(aa+1),i=0,a,o;for(a=1;a<=aa;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=e;o++){var s=t[o*2+1];s!==0&&(t[o*2]=Dx(r[s]++,s))}}function JB(){var t,e,n,r,i,a=new Array(aa+1);for(n=0,r=0;r<x0-1;r++)for(_0[r]=n,t=0;t<1<<S0[r];t++)cu[n++]=r;for(cu[n-1]=r,i=0,r=0;r<16;r++)for(Ol[r]=i,t=0;t<1<<Rl[r];t++)lu[i++]=r;for(i>>=7;r<co;r++)for(Ol[r]=i<<7,t=0;t<1<<Rl[r]-7;t++)lu[256+i++]=r;for(e=0;e<=aa;e++)a[e]=0;for(t=0;t<=143;)_r[t*2+1]=8,t++,a[8]++;for(;t<=255;)_r[t*2+1]=9,t++,a[9]++;for(;t<=279;)_r[t*2+1]=7,t++,a[7]++;for(;t<=287;)_r[t*2+1]=8,t++,a[8]++;for(Ix(_r,uu+1,a),t=0;t<co;t++)fu[t*2+1]=5,fu[t*2]=Dx(t,5);Ex=new C0(_r,S0,su+1,uu,aa),Sx=new C0(fu,Rl,0,co,aa),_x=new C0(new Array(0),WB,0,v0,YB)}function Mx(t){var e;for(e=0;e<uu;e++)t.dyn_ltree[e*2]=0;for(e=0;e<co;e++)t.dyn_dtree[e*2]=0;for(e=0;e<v0;e++)t.bl_tree[e*2]=0;t.dyn_ltree[E0*2]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function Tx(t){t.bi_valid>8?hu(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function ek(t,e,n,r){Tx(t),r&&(hu(t,n),hu(t,~n)),jB.arraySet(t.pending_buf,t.window,e,n,t.pending),t.pending+=n}function Nx(t,e,n,r){var i=e*2,a=n*2;return t[i]<t[a]||t[i]===t[a]&&r[e]<=r[n]}function I0(t,e,n){for(var r=t.heap[n],i=n<<1;i<=t.heap_len&&(i<t.heap_len&&Nx(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!Nx(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r}function Fx(t,e,n){var r,i,a=0,o,s;if(t.last_lit!==0)do r=t.pending_buf[t.d_buf+a*2]<<8|t.pending_buf[t.d_buf+a*2+1],i=t.pending_buf[t.l_buf+a],a++,r===0?ir(t,i,e):(o=cu[i],ir(t,o+su+1,e),s=S0[o],s!==0&&(i-=_0[o],Ut(t,i,s)),r--,o=Cx(r),ir(t,o,n),s=Rl[o],s!==0&&(r-=Ol[o],Ut(t,r,s)));while(a<t.last_lit);ir(t,E0,e)}function M0(t,e){var n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,a=e.stat_desc.elems,o,s,f=-1,u;for(t.heap_len=0,t.heap_max=yx,o=0;o<a;o++)n[o*2]!==0?(t.heap[++t.heap_len]=f=o,t.depth[o]=0):n[o*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=f<2?++f:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=f,o=t.heap_len>>1;o>=1;o--)I0(t,n,o);u=a;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],I0(t,n,1),s=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=s,n[u*2]=n[o*2]+n[s*2],t.depth[u]=(t.depth[o]>=t.depth[s]?t.depth[o]:t.depth[s])+1,n[o*2+1]=n[s*2+1]=u,t.heap[1]=u++,I0(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],KB(t,e),Ix(n,f,t.bl_count)}function Bx(t,e,n){var r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)&&(s<u?t.bl_tree[a*2]+=s:a!==0?(a!==i&&t.bl_tree[a*2]++,t.bl_tree[wx*2]++):s<=10?t.bl_tree[xx*2]++:t.bl_tree[vx*2]++,s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4))}function kx(t,e,n){var r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),r=0;r<=n;r++)if(a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)){if(s<u)do ir(t,a,t.bl_tree);while(--s!==0);else a!==0?(a!==i&&(ir(t,a,t.bl_tree),s--),ir(t,wx,t.bl_tree),Ut(t,s-3,2)):s<=10?(ir(t,xx,t.bl_tree),Ut(t,s-3,3)):(ir(t,vx,t.bl_tree),Ut(t,s-11,7));s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4)}}function tk(t){var e;for(Bx(t,t.dyn_ltree,t.l_desc.max_code),Bx(t,t.dyn_dtree,t.d_desc.max_code),M0(t,t.bl_desc),e=v0-1;e>=3&&t.bl_tree[Ax[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e}function nk(t,e,n,r){var i;for(Ut(t,e-257,5),Ut(t,n-1,5),Ut(t,r-4,4),i=0;i<r;i++)Ut(t,t.bl_tree[Ax[i]*2+1],3);kx(t,t.dyn_ltree,e-1),kx(t,t.dyn_dtree,n-1)}function rk(t){var e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return px;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return mx;for(n=32;n<su;n++)if(t.dyn_ltree[n*2]!==0)return mx;return px}var Lx=!1;function ik(t){Lx||(JB(),Lx=!0),t.l_desc=new D0(t.dyn_ltree,Ex),t.d_desc=new D0(t.dyn_dtree,Sx),t.bl_desc=new D0(t.bl_tree,_x),t.bi_buf=0,t.bi_valid=0,Mx(t)}function Rx(t,e,n,r){Ut(t,(QB<<1)+(r?1:0),3),ek(t,e,n,!0)}function ak(t){Ut(t,bx<<1,3),ir(t,E0,_r),$B(t)}function ok(t,e,n,r){var i,a,o=0;t.level>0?(t.strm.data_type===HB&&(t.strm.data_type=rk(t)),M0(t,t.l_desc),M0(t,t.d_desc),o=tk(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&e!==-1?Rx(t,e,n,r):t.strategy===GB||a===i?(Ut(t,(bx<<1)+(r?1:0),3),Fx(t,_r,fu)):(Ut(t,(VB<<1)+(r?1:0),3),nk(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),Fx(t,t.dyn_ltree,t.dyn_dtree)),Mx(t),r&&Tx(t)}function sk(t,e,n){return t.pending_buf[t.d_buf+t.last_lit*2]=e>>>8&255,t.pending_buf[t.d_buf+t.last_lit*2+1]=e&255,t.pending_buf[t.l_buf+t.last_lit]=n&255,t.last_lit++,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(cu[n]+su+1)*2]++,t.dyn_dtree[Cx(e)*2]++),t.last_lit===t.lit_bufsize-1}fo._tr_init=ik,fo._tr_stored_block=Rx,fo._tr_flush_block=ok,fo._tr_tally=sk,fo._tr_align=ak;function uk(t,e,n,r){for(var i=t&65535|0,a=t>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+e[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var Ox=uk;function fk(){for(var t,e=[],n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e}var lk=fk();function ck(t,e,n,r){var i=lk,a=r+n;t^=-1;for(var o=r;o<a;o++)t=t>>>8^i[(t^e[o])&255];return t^-1}var zx=ck,T0={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"},Nt=Sr,ln=fo,Px=Ox,si=zx,hk=T0,oa=0,dk=1,gk=3,ui=4,Ux=5,ar=0,jx=1,cn=-2,pk=-3,N0=-5,mk=-1,bk=1,zl=2,yk=3,wk=4,xk=0,vk=2,Pl=8,Ak=9,Ek=15,Sk=8,_k=29,Ck=256,F0=Ck+1+_k,Dk=30,Ik=19,Mk=2*F0+1,Tk=15,pe=3,fi=258,Ln=fi+pe+1,Nk=32,Ul=42,B0=69,jl=73,Gl=91,Hl=103,sa=113,du=666,st=1,gu=2,ua=3,ho=4,Fk=3;function li(t,e){return t.msg=hk[e],e}function Gx(t){return(t<<1)-(t>4?9:0)}function ci(t){for(var e=t.length;--e>=0;)t[e]=0}function hi(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(Nt.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))}function yt(t,e){ln._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,hi(t.strm)}function Ae(t,e){t.pending_buf[t.pending++]=e}function pu(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255}function Bk(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,Nt.arraySet(e,t.input,t.next_in,i,n),t.state.wrap===1?t.adler=Px(t.adler,e,i,n):t.state.wrap===2&&(t.adler=si(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function Hx(t,e){var n=t.max_chain_length,r=t.strstart,i,a,o=t.prev_length,s=t.nice_match,f=t.strstart>t.w_size-Ln?t.strstart-(t.w_size-Ln):0,u=t.window,l=t.w_mask,c=t.prev,h=t.strstart+fi,d=u[r+o-1],g=u[r+o];t.prev_length>=t.good_match&&(n>>=2),s>t.lookahead&&(s=t.lookahead);do if(i=e,!(u[i+o]!==g||u[i+o-1]!==d||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<h);if(a=fi-(h-r),r=h-fi,a>o){if(t.match_start=e,o=a,a>=s)break;d=u[r+o-1],g=u[r+o]}}while((e=c[e&l])>f&&--n!==0);return o<=t.lookahead?o:t.lookahead}function fa(t){var e=t.w_size,n,r,i,a,o;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Ln)){Nt.arraySet(t.window,t.window,e,e,0),t.match_start-=e,t.strstart-=e,t.block_start-=e,r=t.hash_size,n=r;do i=t.head[--n],t.head[n]=i>=e?i-e:0;while(--r);r=e,n=r;do i=t.prev[--n],t.prev[n]=i>=e?i-e:0;while(--r);a+=e}if(t.strm.avail_in===0)break;if(r=Bk(t.strm,t.window,t.strstart+t.lookahead,a),t.lookahead+=r,t.lookahead+t.insert>=pe)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+pe-1])&t.hash_mask,t.prev[o&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=o,o++,t.insert--,!(t.lookahead+t.insert<pe)););}while(t.lookahead<Ln&&t.strm.avail_in!==0)}function kk(t,e){var n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(fa(t),t.lookahead===0&&e===oa)return st;if(t.lookahead===0)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((t.strstart===0||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,yt(t,!1),t.strm.avail_out===0)||t.strstart-t.block_start>=t.w_size-Ln&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=0,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):(t.strstart>t.block_start&&(yt(t,!1),t.strm.avail_out===0),st)}function k0(t,e){for(var n,r;;){if(t.lookahead<Ln){if(fa(t),t.lookahead<Ln&&e===oa)return st;if(t.lookahead===0)break}if(n=0,t.lookahead>=pe&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-Ln&&(t.match_length=Hx(t,n)),t.match_length>=pe)if(r=ln._tr_tally(t,t.strstart-t.match_start,t.match_length-pe),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=pe){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else r=ln._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=t.strstart<pe-1?t.strstart:pe-1,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:gu}function go(t,e){for(var n,r,i;;){if(t.lookahead<Ln){if(fa(t),t.lookahead<Ln&&e===oa)return st;if(t.lookahead===0)break}if(n=0,t.lookahead>=pe&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=pe-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-Ln&&(t.match_length=Hx(t,n),t.match_length<=5&&(t.strategy===bk||t.match_length===pe&&t.strstart-t.match_start>4096)&&(t.match_length=pe-1)),t.prev_length>=pe&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-pe,r=ln._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-pe),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=pe-1,t.strstart++,r&&(yt(t,!1),t.strm.avail_out===0))return st}else if(t.match_available){if(r=ln._tr_tally(t,0,t.window[t.strstart-1]),r&&yt(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return st}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=ln._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<pe-1?t.strstart:pe-1,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:gu}function Lk(t,e){for(var n,r,i,a,o=t.window;;){if(t.lookahead<=fi){if(fa(t),t.lookahead<=fi&&e===oa)return st;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=pe&&t.strstart>0&&(i=t.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=t.strstart+fi;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);t.match_length=fi-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=pe?(n=ln._tr_tally(t,1,t.match_length-pe),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=ln._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=0,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:gu}function Rk(t,e){for(var n;;){if(t.lookahead===0&&(fa(t),t.lookahead===0)){if(e===oa)return st;break}if(t.match_length=0,n=ln._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=0,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:gu}function or(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}var po;po=[new or(0,0,0,0,kk),new or(4,4,8,4,k0),new or(4,5,16,8,k0),new or(4,6,32,32,k0),new or(4,4,16,16,go),new or(8,16,32,32,go),new or(8,16,128,128,go),new or(8,32,128,256,go),new or(32,128,258,1024,go),new or(32,258,258,4096,go)];function Ok(t){t.window_size=2*t.w_size,ci(t.head),t.max_lazy_match=po[t.level].max_lazy,t.good_match=po[t.level].good_length,t.nice_match=po[t.level].nice_length,t.max_chain_length=po[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=pe-1,t.match_available=0,t.ins_h=0}function zk(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Pl,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Nt.Buf16(Mk*2),this.dyn_dtree=new Nt.Buf16((2*Dk+1)*2),this.bl_tree=new Nt.Buf16((2*Ik+1)*2),ci(this.dyn_ltree),ci(this.dyn_dtree),ci(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Nt.Buf16(Tk+1),this.heap=new Nt.Buf16(2*F0+1),ci(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Nt.Buf16(2*F0+1),ci(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Qx(t){var e;return!t||!t.state?li(t,cn):(t.total_in=t.total_out=0,t.data_type=vk,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?Ul:sa,t.adler=e.wrap===2?0:1,e.last_flush=oa,ln._tr_init(e),ar)}function Vx(t){var e=Qx(t);return e===ar&&Ok(t.state),e}function Pk(t,e){return!t||!t.state||t.state.wrap!==2?cn:(t.state.gzhead=e,ar)}function qx(t,e,n,r,i,a){if(!t)return cn;var o=1;if(e===mk&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>Ak||n!==Pl||r<8||r>15||e<0||e>9||a<0||a>wk)return li(t,cn);r===8&&(r=9);var s=new zk;return t.state=s,s.strm=t,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+pe-1)/pe),s.window=new Nt.Buf8(s.w_size*2),s.head=new Nt.Buf16(s.hash_size),s.prev=new Nt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Nt.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=e,s.strategy=a,s.method=n,Vx(t)}function Uk(t,e){return qx(t,e,Pl,Ek,Sk,xk)}function jk(t,e){var n,r,i,a;if(!t||!t.state||e>Ux||e<0)return t?li(t,cn):cn;if(r=t.state,!t.output||!t.input&&t.avail_in!==0||r.status===du&&e!==ui)return li(t,t.avail_out===0?N0:cn);if(r.strm=t,n=r.last_flush,r.last_flush=e,r.status===Ul)if(r.wrap===2)t.adler=0,Ae(r,31),Ae(r,139),Ae(r,8),r.gzhead?(Ae(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Ae(r,r.gzhead.time&255),Ae(r,r.gzhead.time>>8&255),Ae(r,r.gzhead.time>>16&255),Ae(r,r.gzhead.time>>24&255),Ae(r,r.level===9?2:r.strategy>=zl||r.level<2?4:0),Ae(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(Ae(r,r.gzhead.extra.length&255),Ae(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=si(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=B0):(Ae(r,0),Ae(r,0),Ae(r,0),Ae(r,0),Ae(r,0),Ae(r,r.level===9?2:r.strategy>=zl||r.level<2?4:0),Ae(r,Fk),r.status=sa);else{var o=Pl+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=zl||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=Nk),o+=31-o%31,r.status=sa,pu(r,o),r.strstart!==0&&(pu(r,t.adler>>>16),pu(r,t.adler&65535)),t.adler=1}if(r.status===B0)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),hi(t),i=r.pending,r.pending===r.pending_buf_size));)Ae(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=jl)}else r.status=jl;if(r.status===jl)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),hi(t),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,Ae(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=Gl)}else r.status=Gl;if(r.status===Gl)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),hi(t),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,Ae(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Hl)}else r.status=Hl;if(r.status===Hl&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&hi(t),r.pending+2<=r.pending_buf_size&&(Ae(r,t.adler&255),Ae(r,t.adler>>8&255),t.adler=0,r.status=sa)):r.status=sa),r.pending!==0){if(hi(t),t.avail_out===0)return r.last_flush=-1,ar}else if(t.avail_in===0&&Gx(e)<=Gx(n)&&e!==ui)return li(t,N0);if(r.status===du&&t.avail_in!==0)return li(t,N0);if(t.avail_in!==0||r.lookahead!==0||e!==oa&&r.status!==du){var f=r.strategy===zl?Rk(r,e):r.strategy===yk?Lk(r,e):po[r.level].func(r,e);if((f===ua||f===ho)&&(r.status=du),f===st||f===ua)return t.avail_out===0&&(r.last_flush=-1),ar;if(f===gu&&(e===dk?ln._tr_align(r):e!==Ux&&(ln._tr_stored_block(r,0,0,!1),e===gk&&(ci(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),hi(t),t.avail_out===0))return r.last_flush=-1,ar}return e!==ui?ar:r.wrap<=0?jx:(r.wrap===2?(Ae(r,t.adler&255),Ae(r,t.adler>>8&255),Ae(r,t.adler>>16&255),Ae(r,t.adler>>24&255),Ae(r,t.total_in&255),Ae(r,t.total_in>>8&255),Ae(r,t.total_in>>16&255),Ae(r,t.total_in>>24&255)):(pu(r,t.adler>>>16),pu(r,t.adler&65535)),hi(t),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?ar:jx)}function Gk(t){var e;return!t||!t.state?cn:(e=t.state.status,e!==Ul&&e!==B0&&e!==jl&&e!==Gl&&e!==Hl&&e!==sa&&e!==du?li(t,cn):(t.state=null,e===sa?li(t,pk):ar))}function Hk(t,e){var n=e.length,r,i,a,o,s,f,u,l;if(!t||!t.state||(r=t.state,o=r.wrap,o===2||o===1&&r.status!==Ul||r.lookahead))return cn;for(o===1&&(t.adler=Px(t.adler,e,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&(ci(r.head),r.strstart=0,r.block_start=0,r.insert=0),l=new Nt.Buf8(r.w_size),Nt.arraySet(l,e,n-r.w_size,r.w_size,0),e=l,n=r.w_size),s=t.avail_in,f=t.next_in,u=t.input,t.avail_in=n,t.next_in=0,t.input=e,fa(r);r.lookahead>=pe;){i=r.strstart,a=r.lookahead-(pe-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+pe-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--a);r.strstart=i,r.lookahead=pe-1,fa(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=pe-1,r.match_available=0,t.next_in=f,t.input=u,t.avail_in=s,r.wrap=o,ar}rr.deflateInit=Uk,rr.deflateInit2=qx,rr.deflateReset=Vx,rr.deflateResetKeep=Qx,rr.deflateSetHeader=Pk,rr.deflate=jk,rr.deflateEnd=Gk,rr.deflateSetDictionary=Hk,rr.deflateInfo="pako deflate (from Nodeca project)";var la={},Ql=Sr,Zx=!0,Yx=!0;try{String.fromCharCode.apply(null,[0])}catch{Zx=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Yx=!1}for(var mu=new Ql.Buf8(256),di=0;di<256;di++)mu[di]=di>=252?6:di>=248?5:di>=240?4:di>=224?3:di>=192?2:1;mu[254]=mu[254]=1,la.string2buf=function(t){var e,n,r,i,a,o=t.length,s=0;for(i=0;i<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Ql.Buf8(s),a=0,i=0;a<s;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|n&63):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|n&63):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|n&63);return e};function Wx(t,e){if(e<65534&&(t.subarray&&Yx||!t.subarray&&Zx))return String.fromCharCode.apply(null,Ql.shrinkBuf(t,e));for(var n="",r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n}la.buf2binstring=function(t){return Wx(t,t.length)},la.binstring2buf=function(t){for(var e=new Ql.Buf8(t.length),n=0,r=e.length;n<r;n++)e[n]=t.charCodeAt(n);return e},la.buf2string=function(t,e){var n,r,i,a,o=e||t.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=t[n++],i<128){s[r++]=i;continue}if(a=mu[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|t[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return Wx(s,r)},la.utf8border=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+mu[t[n]]>e?n:e};function Qk(){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 Xx=Qk,bu=rr,yu=Sr,L0=la,R0=T0,Vk=Xx,$x=Object.prototype.toString,qk=0,O0=4,mo=0,Kx=1,Jx=2,Zk=-1,Yk=0,Wk=8;function ca(t){if(!(this instanceof ca))return new ca(t);this.options=yu.assign({level:Zk,method:Wk,chunkSize:16384,windowBits:15,memLevel:8,strategy:Yk,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Vk,this.strm.avail_out=0;var n=bu.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==mo)throw new Error(R0[n]);if(e.header&&bu.deflateSetHeader(this.strm,e.header),e.dictionary){var r;if(typeof e.dictionary=="string"?r=L0.string2buf(e.dictionary):$x.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=bu.deflateSetDictionary(this.strm,r),n!==mo)throw new Error(R0[n]);this._dict_set=!0}}ca.prototype.push=function(t,e){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=e===~~e?e:e===!0?O0:qk,typeof t=="string"?n.input=L0.string2buf(t):$x.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new yu.Buf8(r),n.next_out=0,n.avail_out=r),i=bu.deflate(n,a),i!==Kx&&i!==mo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===O0||a===Jx))&&(this.options.to==="string"?this.onData(L0.buf2binstring(yu.shrinkBuf(n.output,n.next_out))):this.onData(yu.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==Kx);return a===O0?(i=bu.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===mo):(a===Jx&&(this.onEnd(mo),n.avail_out=0),!0)},ca.prototype.onData=function(t){this.chunks.push(t)},ca.prototype.onEnd=function(t){t===mo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=yu.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function z0(t,e){var n=new ca(e);if(n.push(t,!0),n.err)throw n.msg||R0[n.err];return n.result}function Xk(t,e){return e=e||{},e.raw=!0,z0(t,e)}function $k(t,e){return e=e||{},e.gzip=!0,z0(t,e)}ou.Deflate=ca,ou.deflate=z0,ou.deflateRaw=Xk,ou.gzip=$k;var wu={},Rn={},Vl=30,Kk=12,Jk=function(e,n){var r,i,a,o,s,f,u,l,c,h,d,g,b,y,w,E,_,D,T,N,M,R,C,k,L;r=e.state,i=e.next_in,k=e.input,a=i+(e.avail_in-5),o=e.next_out,L=e.output,s=o-(n-e.avail_out),f=o+(e.avail_out-257),u=r.dmax,l=r.wsize,c=r.whave,h=r.wnext,d=r.window,g=r.hold,b=r.bits,y=r.lencode,w=r.distcode,E=(1<<r.lenbits)-1,_=(1<<r.distbits)-1;e:do{b<15&&(g+=k[i++]<<b,b+=8,g+=k[i++]<<b,b+=8),D=y[g&E];t:for(;;){if(T=D>>>24,g>>>=T,b-=T,T=D>>>16&255,T===0)L[o++]=D&65535;else if(T&16){N=D&65535,T&=15,T&&(b<T&&(g+=k[i++]<<b,b+=8),N+=g&(1<<T)-1,g>>>=T,b-=T),b<15&&(g+=k[i++]<<b,b+=8,g+=k[i++]<<b,b+=8),D=w[g&_];n:for(;;){if(T=D>>>24,g>>>=T,b-=T,T=D>>>16&255,T&16){if(M=D&65535,T&=15,b<T&&(g+=k[i++]<<b,b+=8,b<T&&(g+=k[i++]<<b,b+=8)),M+=g&(1<<T)-1,M>u){e.msg="invalid distance too far back",r.mode=Vl;break e}if(g>>>=T,b-=T,T=o-s,M>T){if(T=M-T,T>c&&r.sane){e.msg="invalid distance too far back",r.mode=Vl;break e}if(R=0,C=d,h===0){if(R+=l-T,T<N){N-=T;do L[o++]=d[R++];while(--T);R=o-M,C=L}}else if(h<T){if(R+=l+h-T,T-=h,T<N){N-=T;do L[o++]=d[R++];while(--T);if(R=0,h<N){T=h,N-=T;do L[o++]=d[R++];while(--T);R=o-M,C=L}}}else if(R+=h-T,T<N){N-=T;do L[o++]=d[R++];while(--T);R=o-M,C=L}for(;N>2;)L[o++]=C[R++],L[o++]=C[R++],L[o++]=C[R++],N-=3;N&&(L[o++]=C[R++],N>1&&(L[o++]=C[R++]))}else{R=o-M;do L[o++]=L[R++],L[o++]=L[R++],L[o++]=L[R++],N-=3;while(N>2);N&&(L[o++]=L[R++],N>1&&(L[o++]=L[R++]))}}else if(T&64){e.msg="invalid distance code",r.mode=Vl;break e}else{D=w[(D&65535)+(g&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=Kk;break e}else{e.msg="invalid literal/length code",r.mode=Vl;break e}else{D=y[(D&65535)+(g&(1<<T)-1)];continue t}break}}while(i<a&&o<f);N=b>>3,i-=N,b-=N<<3,g&=(1<<b)-1,e.next_in=i,e.next_out=o,e.avail_in=i<a?5+(a-i):5-(i-a),e.avail_out=o<f?257+(f-o):257-(o-f),r.hold=g,r.bits=b},e2=Sr,bo=15,t2=852,n2=592,r2=0,P0=1,i2=2,eL=[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],tL=[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],nL=[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],rL=[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],iL=function(e,n,r,i,a,o,s,f){var u=f.bits,l=0,c=0,h=0,d=0,g=0,b=0,y=0,w=0,E=0,_=0,D,T,N,M,R,C=null,k=0,L,ee=new e2.Buf16(bo+1),ne=new e2.Buf16(bo+1),J=null,be=0,Se,Te,it;for(l=0;l<=bo;l++)ee[l]=0;for(c=0;c<i;c++)ee[n[r+c]]++;for(g=u,d=bo;d>=1&&ee[d]===0;d--);if(g>d&&(g=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,f.bits=1,0;for(h=1;h<d&&ee[h]===0;h++);for(g<h&&(g=h),w=1,l=1;l<=bo;l++)if(w<<=1,w-=ee[l],w<0)return-1;if(w>0&&(e===r2||d!==1))return-1;for(ne[1]=0,l=1;l<bo;l++)ne[l+1]=ne[l]+ee[l];for(c=0;c<i;c++)n[r+c]!==0&&(s[ne[n[r+c]]++]=c);if(e===r2?(C=J=s,L=19):e===P0?(C=eL,k-=257,J=tL,be-=257,L=256):(C=nL,J=rL,L=-1),_=0,c=0,l=h,R=o,b=g,y=0,N=-1,E=1<<g,M=E-1,e===P0&&E>t2||e===i2&&E>n2)return 1;for(;;){Se=l-y,s[c]<L?(Te=0,it=s[c]):s[c]>L?(Te=J[be+s[c]],it=C[k+s[c]]):(Te=32+64,it=0),D=1<<l-y,T=1<<b,h=T;do T-=D,a[R+(_>>y)+T]=Se<<24|Te<<16|it|0;while(T!==0);for(D=1<<l-1;_&D;)D>>=1;if(D!==0?(_&=D-1,_+=D):_=0,c++,--ee[l]===0){if(l===d)break;l=n[r+s[c]]}if(l>g&&(_&M)!==N){for(y===0&&(y=g),R+=h,b=l-y,w=1<<b;b+y<d&&(w-=ee[b+y],!(w<=0));)b++,w<<=1;if(E+=1<<b,e===P0&&E>t2||e===i2&&E>n2)return 1;N=_&M,a[N]=g<<24|b<<16|R-o|0}}return _!==0&&(a[R+_]=l-y<<24|64<<16|0),f.bits=g,0},en=Sr,U0=Ox,sr=zx,aL=Jk,xu=iL,oL=0,a2=1,o2=2,s2=4,sL=5,ql=6,ha=0,uL=1,fL=2,hn=-2,u2=-3,f2=-4,lL=-5,l2=8,c2=1,h2=2,d2=3,g2=4,p2=5,m2=6,b2=7,y2=8,w2=9,x2=10,Zl=11,Cr=12,j0=13,v2=14,G0=15,A2=16,E2=17,S2=18,_2=19,Yl=20,Wl=21,C2=22,D2=23,I2=24,M2=25,T2=26,H0=27,N2=28,F2=29,qe=30,B2=31,cL=32,hL=852,dL=592,gL=15,pL=gL;function k2(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function mL(){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=new en.Buf16(320),this.work=new en.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function L2(t){var e;return!t||!t.state?hn:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=c2,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new en.Buf32(hL),e.distcode=e.distdyn=new en.Buf32(dL),e.sane=1,e.back=-1,ha)}function R2(t){var e;return!t||!t.state?hn:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,L2(t))}function O2(t,e){var n,r;return!t||!t.state||(r=t.state,e<0?(n=0,e=-e):(n=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?hn:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,R2(t))}function z2(t,e){var n,r;return t?(r=new mL,t.state=r,r.window=null,n=O2(t,e),n!==ha&&(t.state=null),n):hn}function bL(t){return z2(t,pL)}var P2=!0,Q0,V0;function yL(t){if(P2){var e;for(Q0=new en.Buf32(512),V0=new en.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(xu(a2,t.lens,0,288,Q0,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;xu(o2,t.lens,0,32,V0,0,t.work,{bits:5}),P2=!1}t.lencode=Q0,t.lenbits=9,t.distcode=V0,t.distbits=5}function U2(t,e,n,r){var i,a=t.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new en.Buf8(a.wsize)),r>=a.wsize?(en.arraySet(a.window,e,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),en.arraySet(a.window,e,n-r,i,a.wnext),r-=i,r?(en.arraySet(a.window,e,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function wL(t,e){var n,r,i,a,o,s,f,u,l,c,h,d,g,b,y=0,w,E,_,D,T,N,M,R,C=new en.Buf8(4),k,L,ee=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&t.avail_in!==0)return hn;n=t.state,n.mode===Cr&&(n.mode=j0),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,c=s,h=f,R=ha;e:for(;;)switch(n.mode){case c2:if(n.wrap===0){n.mode=j0;break}for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&2&&u===35615){n.check=0,C[0]=u&255,C[1]=u>>>8&255,n.check=sr(n.check,C,2,0),u=0,l=0,n.mode=h2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=qe;break}if((u&15)!==l2){t.msg="unknown compression method",n.mode=qe;break}if(u>>>=4,l-=4,M=(u&15)+8,n.wbits===0)n.wbits=M;else if(M>n.wbits){t.msg="invalid window size",n.mode=qe;break}n.dmax=1<<M,t.adler=n.check=1,n.mode=u&512?x2:Cr,u=0,l=0;break;case h2:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.flags=u,(n.flags&255)!==l2){t.msg="unknown compression method",n.mode=qe;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=qe;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,n.check=sr(n.check,C,2,0)),u=0,l=0,n.mode=d2;case d2:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.time=u),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,C[2]=u>>>16&255,C[3]=u>>>24&255,n.check=sr(n.check,C,4,0)),u=0,l=0,n.mode=g2;case g2:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,n.check=sr(n.check,C,2,0)),u=0,l=0,n.mode=p2;case p2:if(n.flags&1024){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,n.check=sr(n.check,C,2,0)),u=0,l=0}else n.head&&(n.head.extra=null);n.mode=m2;case m2:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(M=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),en.arraySet(n.head.extra,r,a,d,M)),n.flags&512&&(n.check=sr(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=b2;case b2:if(n.flags&2048){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.name+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&(n.check=sr(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=y2;case y2:if(n.flags&4096){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.comment+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&(n.check=sr(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.comment=null);n.mode=w2;case w2:if(n.flags&512){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=qe;break}u=0,l=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=Cr;break;case x2:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}t.adler=n.check=k2(u),u=0,l=0,n.mode=Zl;case Zl:if(n.havedict===0)return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,fL;t.adler=n.check=1,n.mode=Cr;case Cr:if(e===sL||e===ql)break e;case j0:if(n.last){u>>>=l&7,l-=l&7,n.mode=H0;break}for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}switch(n.last=u&1,u>>>=1,l-=1,u&3){case 0:n.mode=v2;break;case 1:if(yL(n),n.mode=Yl,e===ql){u>>>=2,l-=2;break e}break;case 2:n.mode=E2;break;case 3:t.msg="invalid block type",n.mode=qe}u>>>=2,l-=2;break;case v2:for(u>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=u&65535,u=0,l=0,n.mode=G0,e===ql)break e;case G0:n.mode=A2;case A2:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;en.arraySet(i,r,a,d,o),s-=d,a+=d,f-=d,o+=d,n.length-=d;break}n.mode=Cr;break;case E2:for(;l<14;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.nlen=(u&31)+257,u>>>=5,l-=5,n.ndist=(u&31)+1,u>>>=5,l-=5,n.ncode=(u&15)+4,u>>>=4,l-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=S2;case S2:for(;n.have<n.ncode;){for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.lens[ee[n.have++]]=u&7,u>>>=3,l-=3}for(;n.have<19;)n.lens[ee[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,k={bits:n.lenbits},R=xu(oL,n.lens,0,19,n.lencode,0,n.work,k),n.lenbits=k.bits,R){t.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=_2;case _2:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(_<16)u>>>=w,l-=w,n.lens[n.have++]=_;else{if(_===16){for(L=w+2;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u>>>=w,l-=w,n.have===0){t.msg="invalid bit length repeat",n.mode=qe;break}M=n.lens[n.have-1],d=3+(u&3),u>>>=2,l-=2}else if(_===17){for(L=w+3;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=3+(u&7),u>>>=3,l-=3}else{for(L=w+7;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=11+(u&127),u>>>=7,l-=7}if(n.have+d>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=qe;break}for(;d--;)n.lens[n.have++]=M}}if(n.mode===qe)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=qe;break}if(n.lenbits=9,k={bits:n.lenbits},R=xu(a2,n.lens,0,n.nlen,n.lencode,0,n.work,k),n.lenbits=k.bits,R){t.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,k={bits:n.distbits},R=xu(o2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,k),n.distbits=k.bits,R){t.msg="invalid distances set",n.mode=qe;break}if(n.mode=Yl,e===ql)break e;case Yl:n.mode=Wl;case Wl:if(s>=6&&f>=258){t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,aL(t,h),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,n.mode===Cr&&(n.back=-1);break}for(n.back=0;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(E&&!(E&240)){for(D=w,T=E,N=_;y=n.lencode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,n.length=_,E===0){n.mode=T2;break}if(E&32){n.back=-1,n.mode=Cr;break}if(E&64){t.msg="invalid literal/length code",n.mode=qe;break}n.extra=E&15,n.mode=C2;case C2:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=D2;case D2:for(;y=n.distcode[u&(1<<n.distbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(!(E&240)){for(D=w,T=E,N=_;y=n.distcode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,E&64){t.msg="invalid distance code",n.mode=qe;break}n.offset=_,n.extra=E&15,n.mode=I2;case I2:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=qe;break}n.mode=M2;case M2:if(f===0)break e;if(d=h-f,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=qe;break}d>n.wnext?(d-=n.wnext,g=n.wsize-d):g=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,g=o-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[o++]=b[g++];while(--d);n.length===0&&(n.mode=Wl);break;case T2:if(f===0)break e;i[o++]=n.length,f--,n.mode=Wl;break;case H0:if(n.wrap){for(;l<32;){if(s===0)break e;s--,u|=r[a++]<<l,l+=8}if(h-=f,t.total_out+=h,n.total+=h,h&&(t.adler=n.check=n.flags?sr(n.check,i,h,o-h):U0(n.check,i,h,o-h)),h=f,(n.flags?u:k2(u))!==n.check){t.msg="incorrect data check",n.mode=qe;break}u=0,l=0}n.mode=N2;case N2:if(n.wrap&&n.flags){for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=qe;break}u=0,l=0}n.mode=F2;case F2:R=uL;break e;case qe:R=u2;break e;case B2:return f2;case cL:default:return hn}return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,(n.wsize||h!==t.avail_out&&n.mode<qe&&(n.mode<H0||e!==s2))&&U2(t,t.output,t.next_out,h-t.avail_out),c-=t.avail_in,h-=t.avail_out,t.total_in+=c,t.total_out+=h,n.total+=h,n.wrap&&h&&(t.adler=n.check=n.flags?sr(n.check,i,h,t.next_out-h):U0(n.check,i,h,t.next_out-h)),t.data_type=n.bits+(n.last?64:0)+(n.mode===Cr?128:0)+(n.mode===Yl||n.mode===G0?256:0),(c===0&&h===0||e===s2)&&R===ha&&(R=lL),R}function xL(t){if(!t||!t.state)return hn;var e=t.state;return e.window&&(e.window=null),t.state=null,ha}function vL(t,e){var n;return!t||!t.state||(n=t.state,!(n.wrap&2))?hn:(n.head=e,e.done=!1,ha)}function AL(t,e){var n=e.length,r,i,a;return!t||!t.state||(r=t.state,r.wrap!==0&&r.mode!==Zl)?hn:r.mode===Zl&&(i=1,i=U0(i,e,n,0),i!==r.check)?u2:(a=U2(t,e,n,n),a?(r.mode=B2,f2):(r.havedict=1,ha))}Rn.inflateReset=R2,Rn.inflateReset2=O2,Rn.inflateResetKeep=L2,Rn.inflateInit=bL,Rn.inflateInit2=z2,Rn.inflate=wL,Rn.inflateEnd=xL,Rn.inflateGetHeader=vL,Rn.inflateSetDictionary=AL,Rn.inflateInfo="pako inflate (from Nodeca project)";var j2={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};function EL(){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}var SL=EL,yo=Rn,vu=Sr,Xl=la,nt=j2,q0=T0,_L=Xx,CL=SL,G2=Object.prototype.toString;function da(t){if(!(this instanceof da))return new da(t);this.options=vu.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new _L,this.strm.avail_out=0;var n=yo.inflateInit2(this.strm,e.windowBits);if(n!==nt.Z_OK)throw new Error(q0[n]);if(this.header=new CL,yo.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Xl.string2buf(e.dictionary):G2.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=yo.inflateSetDictionary(this.strm,e.dictionary),n!==nt.Z_OK)))throw new Error(q0[n])}da.prototype.push=function(t,e){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,f,u,l=!1;if(this.ended)return!1;o=e===~~e?e:e===!0?nt.Z_FINISH:nt.Z_NO_FLUSH,typeof t=="string"?n.input=Xl.binstring2buf(t):G2.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new vu.Buf8(r),n.next_out=0,n.avail_out=r),a=yo.inflate(n,nt.Z_NO_FLUSH),a===nt.Z_NEED_DICT&&i&&(a=yo.inflateSetDictionary(this.strm,i)),a===nt.Z_BUF_ERROR&&l===!0&&(a=nt.Z_OK,l=!1),a!==nt.Z_STREAM_END&&a!==nt.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===nt.Z_STREAM_END||n.avail_in===0&&(o===nt.Z_FINISH||o===nt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Xl.utf8border(n.output,n.next_out),f=n.next_out-s,u=Xl.buf2string(n.output,s),n.next_out=f,n.avail_out=r-f,f&&vu.arraySet(n.output,n.output,s,f,0),this.onData(u)):this.onData(vu.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(l=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==nt.Z_STREAM_END);return a===nt.Z_STREAM_END&&(o=nt.Z_FINISH),o===nt.Z_FINISH?(a=yo.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===nt.Z_OK):(o===nt.Z_SYNC_FLUSH&&(this.onEnd(nt.Z_OK),n.avail_out=0),!0)},da.prototype.onData=function(t){this.chunks.push(t)},da.prototype.onEnd=function(t){t===nt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=vu.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function Z0(t,e){var n=new da(e);if(n.push(t,!0),n.err)throw n.msg||q0[n.err];return n.result}function DL(t,e){return e=e||{},e.raw=!0,Z0(t,e)}wu.Inflate=da,wu.inflate=Z0,wu.inflateRaw=DL,wu.ungzip=Z0;var IL=Sr.assign,ML=ou,TL=wu,NL=j2,H2={};IL(H2,ML,TL,NL);var $l=H2;async function wo(t){try{let e,n=0,r=0;const i=[];let a=0,o;do{const f=t.subarray(n);if(o=new $l.Inflate,{strm:e}=o,o.push(f,$l.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=e.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(e.avail_in);const s=new Uint8Array(a);for(let f=0,u=0;f<i.length;f++)s.set(i[f],u),u+=i[f].length;return Buffer.from(s)}catch(e){throw`${e}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):e}}async function Q2(t,e){try{let n;const{minv:r,maxv:i}=e;let a=r.blockPosition,o=r.dataPosition;const s=[],f=[],u=[];let l=0,c=0;do{const g=t.subarray(a-r.blockPosition),b=new $l.Inflate;if({strm:n}=b,b.push(g,$l.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const y=b.result;s.push(y);let w=y.length;f.push(a),u.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const E=a;if(a+=n.next_in,o+=w,E>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),f.push(a),u.push(o),l+=s[c].length;break}l+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(l);for(let g=0,b=0;g<s.length;g++)h.set(s[g],b),b+=s[g].length;return{buffer:Buffer.from(h),cpositions:f,dpositions:u}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}/**
|
|
157
157
|
* @license
|
|
158
158
|
* Copyright 2009 The Closure Library Authors
|
|
159
159
|
* Copyright 2020 Daniel Wirtz / The long.js Authors.
|
|
@@ -171,12 +171,12 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
|
|
|
171
171
|
* limitations under the License.
|
|
172
172
|
*
|
|
173
173
|
* SPDX-License-Identifier: Apache-2.0
|
|
174
|
-
*/var dn=null;try{dn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Ge(t,e,n){this.low=t|0,this.high=e|0,this.unsigned=!!n}Ge.prototype.__isLong__,Object.defineProperty(Ge.prototype,"__isLong__",{value:!0});function _t(t){return(t&&t.__isLong__)===!0}function V2(t){var e=Math.clz32(t&-t);return t?31-e:e}Ge.isLong=_t;var q2={},Z2={};function ga(t,e){var n,r,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(r=Z2[t],r)?r:(n=Ee(t,0,!0),i&&(Z2[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(r=q2[t],r)?r:(n=Ee(t,t<0?-1:0,!1),i&&(q2[t]=n),n))}Ge.fromInt=ga;function gn(t,e){if(isNaN(t))return e?Dr:Pn;if(e){if(t<0)return Dr;if(t>=W2)return ev}else{if(t<=-X2)return jt;if(t+1>=X2)return J2}return t<0?gn(-t,e).neg():Ee(t%vo|0,t/vo|0,e)}Ge.fromNumber=gn;function Ee(t,e,n){return new Ge(t,e,n)}Ge.fromBits=Ee;var Kl=Math.pow;function Z0(t,e,n){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(n=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?Dr:Pn;if(n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Z0(t.substring(1),e,n).neg();for(var i=gn(Kl(n,8)),a=Pn,o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),f=parseInt(t.substring(o,o+s),n);if(s<8){var u=gn(Kl(n,s));a=a.mul(u).add(gn(f))}else a=a.mul(i),a=a.add(gn(f))}return a.unsigned=e,a}Ge.fromString=Z0;function zn(t,e){return typeof t=="number"?gn(t,e):typeof t=="string"?Z0(t,e):Ee(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Ge.fromValue=zn;var Y2=1<<16,FL=1<<24,vo=Y2*Y2,W2=vo*vo,X2=W2/2,$2=ga(FL),Pn=ga(0);Ge.ZERO=Pn;var Dr=ga(0,!0);Ge.UZERO=Dr;var Ao=ga(1);Ge.ONE=Ao;var K2=ga(1,!0);Ge.UONE=K2;var Y0=ga(-1);Ge.NEG_ONE=Y0;var J2=Ee(-1,2147483647,!1);Ge.MAX_VALUE=J2;var ev=Ee(-1,-1,!0);Ge.MAX_UNSIGNED_VALUE=ev;var jt=Ee(0,-2147483648,!1);Ge.MIN_VALUE=jt;var Z=Ge.prototype;Z.toInt=function(){return this.unsigned?this.low>>>0:this.low},Z.toNumber=function(){return this.unsigned?(this.high>>>0)*vo+(this.low>>>0):this.high*vo+(this.low>>>0)},Z.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(jt)){var n=gn(e),r=this.div(n),i=r.mul(n).sub(this);return r.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var a=gn(Kl(e,6),this.unsigned),o=this,s="";;){var f=o.div(a),u=o.sub(f.mul(a)).toInt()>>>0,l=u.toString(e);if(o=f,o.isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},Z.getHighBits=function(){return this.high},Z.getHighBitsUnsigned=function(){return this.high>>>0},Z.getLowBits=function(){return this.low},Z.getLowBitsUnsigned=function(){return this.low>>>0},Z.getNumBitsAbs=function(){if(this.isNegative())return this.eq(jt)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,n=31;n>0&&!(e&1<<n);n--);return this.high!=0?n+33:n+1},Z.isZero=function(){return this.high===0&&this.low===0},Z.eqz=Z.isZero,Z.isNegative=function(){return!this.unsigned&&this.high<0},Z.isPositive=function(){return this.unsigned||this.high>=0},Z.isOdd=function(){return(this.low&1)===1},Z.isEven=function(){return(this.low&1)===0},Z.equals=function(e){return _t(e)||(e=zn(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low},Z.eq=Z.equals,Z.notEquals=function(e){return!this.eq(e)},Z.neq=Z.notEquals,Z.ne=Z.notEquals,Z.lessThan=function(e){return this.comp(e)<0},Z.lt=Z.lessThan,Z.lessThanOrEqual=function(e){return this.comp(e)<=0},Z.lte=Z.lessThanOrEqual,Z.le=Z.lessThanOrEqual,Z.greaterThan=function(e){return this.comp(e)>0},Z.gt=Z.greaterThan,Z.greaterThanOrEqual=function(e){return this.comp(e)>=0},Z.gte=Z.greaterThanOrEqual,Z.ge=Z.greaterThanOrEqual,Z.compare=function(e){if(_t(e)||(e=zn(e)),this.eq(e))return 0;var n=this.isNegative(),r=e.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},Z.comp=Z.compare,Z.negate=function(){return!this.unsigned&&this.eq(jt)?jt:this.not().add(Ao)},Z.neg=Z.negate,Z.add=function(e){_t(e)||(e=zn(e));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=e.high>>>16,s=e.high&65535,f=e.low>>>16,u=e.low&65535,l=0,c=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,l+=c>>>16,c&=65535,l+=n+o,l&=65535,Ee(h<<16|d,l<<16|c,this.unsigned)},Z.subtract=function(e){return _t(e)||(e=zn(e)),this.add(e.neg())},Z.sub=Z.subtract,Z.multiply=function(e){if(this.isZero())return this;if(_t(e)||(e=zn(e)),dn){var n=dn.mul(this.low,this.high,e.low,e.high);return Ee(n,dn.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?Dr:Pn;if(this.eq(jt))return e.isOdd()?jt:Pn;if(e.eq(jt))return this.isOdd()?jt:Pn;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt($2)&&e.lt($2))return gn(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=e.high>>>16,f=e.high&65535,u=e.low>>>16,l=e.low&65535,c=0,h=0,d=0,g=0;return g+=o*l,d+=g>>>16,g&=65535,d+=a*l,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*l+i*u+a*f+o*s,c&=65535,Ee(d<<16|g,c<<16|h,this.unsigned)},Z.mul=Z.multiply,Z.divide=function(e){if(_t(e)||(e=zn(e)),e.isZero())throw Error("division by zero");if(dn){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var n=(this.unsigned?dn.div_u:dn.div_s)(this.low,this.high,e.low,e.high);return Ee(n,dn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Dr:Pn;var r,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Dr;if(e.gt(this.shru(1)))return K2;a=Dr}else{if(this.eq(jt)){if(e.eq(Ao)||e.eq(Y0))return jt;if(e.eq(jt))return Ao;var o=this.shr(1);return r=o.div(e).shl(1),r.eq(Pn)?e.isNegative()?Ao:Y0:(i=this.sub(e.mul(r)),a=r.add(i.div(e)),a)}else if(e.eq(jt))return this.unsigned?Dr:Pn;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=Pn}for(i=this;i.gte(e);){r=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:Kl(2,s-48),u=gn(r),l=u.mul(e);l.isNegative()||l.gt(i);)r-=f,u=gn(r,this.unsigned),l=u.mul(e);u.isZero()&&(u=Ao),a=a.add(u),i=i.sub(l)}return a},Z.div=Z.divide,Z.modulo=function(e){if(_t(e)||(e=zn(e)),dn){var n=(this.unsigned?dn.rem_u:dn.rem_s)(this.low,this.high,e.low,e.high);return Ee(n,dn.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))},Z.mod=Z.modulo,Z.rem=Z.modulo,Z.not=function(){return Ee(~this.low,~this.high,this.unsigned)},Z.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},Z.clz=Z.countLeadingZeros,Z.countTrailingZeros=function(){return this.low?V2(this.low):V2(this.high)+32},Z.ctz=Z.countTrailingZeros,Z.and=function(e){return _t(e)||(e=zn(e)),Ee(this.low&e.low,this.high&e.high,this.unsigned)},Z.or=function(e){return _t(e)||(e=zn(e)),Ee(this.low|e.low,this.high|e.high,this.unsigned)},Z.xor=function(e){return _t(e)||(e=zn(e)),Ee(this.low^e.low,this.high^e.high,this.unsigned)},Z.shiftLeft=function(e){return _t(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ee(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Ee(0,this.low<<e-32,this.unsigned)},Z.shl=Z.shiftLeft,Z.shiftRight=function(e){return _t(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ee(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Ee(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},Z.shr=Z.shiftRight,Z.shiftRightUnsigned=function(e){return _t(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ee(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?Ee(this.high,0,this.unsigned):Ee(this.high>>>e-32,0,this.unsigned)},Z.shru=Z.shiftRightUnsigned,Z.shr_u=Z.shiftRightUnsigned,Z.rotateLeft=function(e){var n;return _t(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Ee(this.high,this.low,this.unsigned):e<32?(n=32-e,Ee(this.low<<e|this.high>>>n,this.high<<e|this.low>>>n,this.unsigned)):(e-=32,n=32-e,Ee(this.high<<e|this.low>>>n,this.low<<e|this.high>>>n,this.unsigned))},Z.rotl=Z.rotateLeft,Z.rotateRight=function(e){var n;return _t(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Ee(this.high,this.low,this.unsigned):e<32?(n=32-e,Ee(this.high<<n|this.low>>>e,this.low<<n|this.high>>>e,this.unsigned)):(e-=32,n=32-e,Ee(this.low<<n|this.high>>>e,this.high<<n|this.low>>>e,this.unsigned))},Z.rotr=Z.rotateRight,Z.toSigned=function(){return this.unsigned?Ee(this.low,this.high,!1):this},Z.toUnsigned=function(){return this.unsigned?this:Ee(this.low,this.high,!0)},Z.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},Z.toBytesLE=function(){var e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]},Z.toBytesBE=function(){var e=this.high,n=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Ge.fromBytes=function(e,n,r){return r?Ge.fromBytesLE(e,n):Ge.fromBytesBE(e,n)},Ge.fromBytesLE=function(e,n){return new Ge(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,n)},Ge.fromBytesBE=function(e,n){return new Ge(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],n)};function tv(t,e){return t.offset+t.lineBytes*Math.floor(e/t.lineLength)+e%t.lineLength}async function BL(t,e){const n=await t.readFile(e);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class kL{constructor({fasta:e,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(e)this.fasta=e;else if(r)this.fasta=new Kt(r);else throw new Error("Need to pass filehandle for fasta or path to localfile");if(n)this.fai=n;else if(i)this.fai=new Kt(i);else if(r)this.fai=new Kt(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=a}async _getIndexes(e){return this.indexes||(this.indexes=BL(this.fai,e)),this.indexes}async getSequenceNames(e){return Object.keys((await this._getIndexes(e)).name)}async getSequenceSizes(e){const n={},r=await this._getIndexes(e),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(e,n){var r;return(r=(await this._getIndexes(n)).name[e])===null||r===void 0?void 0:r.length}async hasReferenceSequence(e,n){return!!(await this._getIndexes(n)).name[e]}async getResiduesById(e,n,r,i){const a=(await this._getIndexes(i)).id[e];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(e,n,r,i){const a=(await this._getIndexes(i)).name[e];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(e,n,r,i){return this.getResiduesByName(e,n,r,i)}async _fetchFromIndexEntry(e,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>e.length)&&(a=e.length),n>=a)return"";const o=tv(e,n),s=tv(e,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const f=Buffer.allocUnsafe(s);return await this.fasta.read(f,0,s,o,i),f.toString("utf8").replace(/\s+/g,"")}}function Au(t){return class extends t{constructor(){super(...arguments);rn(this,"lastQuantizedInterval",[0,0])}quantizeInterval(r,i){return[Math.max(Math.floor(r[0]/i-1)*i,0),Math.min(Math.ceil(r[1]/i+1)*i,this.genome.totalSize)]}checkAndUpdateLastInterval(r){return Rf(this.lastQuantizedInterval,r)?!1:(this.lastQuantizedInterval=r,!0)}}}function Eu(t,e){return!e||/^(data:|([A-Za-z]+:)?\/\/)/.test(t)||t.startsWith("/")?t:(e.endsWith("/")||(e+="/"),e+t)}typeof window<"u"&&(window.Buffer=bt.Buffer);class LL extends Au(ra){constructor(e,n){const r={channel:"x",windowSize:7e3,...e};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");const i=a=>new rr(Eu(a,this.view.getBaseUrl()));this.fasta=new kL({fasta:i(this.params.url),fai:i(this.params.indexUrl??this.params.url+".fai")})}async onDomainChanged(e){const n=this.params.windowSize;if(e[1]-e[0]>n)return;const r=this.quantizeInterval(e,n);if(this.checkAndUpdateLastInterval(r)){const i=this.genome.continuousToDiscreteChromosomeIntervals(r),a=await Promise.all(i.map(o=>this.fasta.getSequence(o.chrom,o.startPos,o.endPos).then(s=>({chrom:o.chrom,start:o.startPos,sequence:s}))));this.publishData(a)}}}const Jl=BigInt(32);function RL(t,e,n){const r=+!!n,i=+!n;return BigInt(t.getInt32(e,n)*i+t.getInt32(e+4,n)*r)<<Jl|BigInt(t.getUint32(e,n)*r+t.getUint32(e+4,n)*i)}function OL(t,e,n){const r=t.getUint32(e,n),i=t.getUint32(e+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<Jl|BigInt(r*a+i*o)}function zL(t,e,n,r){const i=Number(n>>Jl),a=Number(n&BigInt(4294967295));r?(t.setInt32(e+4,i,r),t.setUint32(e,a,r)):(t.setInt32(e,i,r),t.setUint32(e+4,a,r))}function PL(t,e,n,r){const i=Number(n>>Jl),a=Number(n&BigInt(4294967295));r?(t.setUint32(e+4,i,r),t.setUint32(e,a,r)):(t.setUint32(e,i,r),t.setUint32(e+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(t,e){return RL(this,t,e)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(t,e){return OL(this,t,e)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(t,e,n){zL(this,t,e,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(t,e,n){PL(this,t,e,n)});class UL{constructor(e,n){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references=new Map,this.imports=[],this.reverseImports=new Map,this.useContextVariables=!1,this.importPath=e,this.useContextVariables=n}generateVariable(e){const n=[...this.scopes[this.scopes.length-1]];return e&&n.push(e),n.join(".")}generateOption(e){switch(typeof e){case"number":return e.toString();case"string":return this.generateVariable(e);case"function":return`${this.addImport(e)}.call(${this.generateVariable()}, vars)`}}generateError(e){this.pushCode(`throw new Error(${e});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(e){this.code+=e+`
|
|
175
|
-
`}pushPath(e){e&&this.scopes[this.scopes.length-1].push(e)}popPath(e){e&&this.scopes[this.scopes.length-1].pop()}pushScope(e){this.scopes.push([e])}popScope(){this.scopes.pop()}addImport(e){if(!this.importPath)return`(${e})`;let n=this.reverseImports.get(e);return n||(n=this.imports.push(e)-1,this.reverseImports.set(e,n)),`${this.importPath}[${n}]`}addReference(e){this.references.has(e)||this.references.set(e,{resolved:!1,requested:!1})}markResolved(e){const n=this.references.get(e);n&&(n.resolved=!0)}markRequested(e){e.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([e,n])=>!n.resolved&&!n.requested).map(([e,n])=>e)}}const Un=new Map,pa="___parser_",jn={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},ec={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},tc={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1};let Me=class qn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new qn}primitiveGenerateN(e,n){const r=ec[e],i=tc[e];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${jn[e]};`)}primitiveN(e,n,r){return this.setNextParser(e,n,r)}useThisEndian(e){return e+this.endian.toLowerCase()}uint8(e,n={}){return this.primitiveN("uint8",e,n)}uint16(e,n={}){return this.primitiveN(this.useThisEndian("uint16"),e,n)}uint16le(e,n={}){return this.primitiveN("uint16le",e,n)}uint16be(e,n={}){return this.primitiveN("uint16be",e,n)}uint32(e,n={}){return this.primitiveN(this.useThisEndian("uint32"),e,n)}uint32le(e,n={}){return this.primitiveN("uint32le",e,n)}uint32be(e,n={}){return this.primitiveN("uint32be",e,n)}int8(e,n={}){return this.primitiveN("int8",e,n)}int16(e,n={}){return this.primitiveN(this.useThisEndian("int16"),e,n)}int16le(e,n={}){return this.primitiveN("int16le",e,n)}int16be(e,n={}){return this.primitiveN("int16be",e,n)}int32(e,n={}){return this.primitiveN(this.useThisEndian("int32"),e,n)}int32le(e,n={}){return this.primitiveN("int32le",e,n)}int32be(e,n={}){return this.primitiveN("int32be",e,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(e,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),e,n)}int64be(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",e,n)}int64le(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",e,n)}uint64(e,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),e,n)}uint64be(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",e,n)}uint64le(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",e,n)}floatle(e,n={}){return this.primitiveN("floatle",e,n)}floatbe(e,n={}){return this.primitiveN("floatbe",e,n)}doublele(e,n={}){return this.primitiveN("doublele",e,n)}doublebe(e,n={}){return this.primitiveN("doublebe",e,n)}bitN(e,n,r){return r.length=e,this.setNextParser("bit",n,r)}bit1(e,n={}){return this.bitN(1,e,n)}bit2(e,n={}){return this.bitN(2,e,n)}bit3(e,n={}){return this.bitN(3,e,n)}bit4(e,n={}){return this.bitN(4,e,n)}bit5(e,n={}){return this.bitN(5,e,n)}bit6(e,n={}){return this.bitN(6,e,n)}bit7(e,n={}){return this.bitN(7,e,n)}bit8(e,n={}){return this.bitN(8,e,n)}bit9(e,n={}){return this.bitN(9,e,n)}bit10(e,n={}){return this.bitN(10,e,n)}bit11(e,n={}){return this.bitN(11,e,n)}bit12(e,n={}){return this.bitN(12,e,n)}bit13(e,n={}){return this.bitN(13,e,n)}bit14(e,n={}){return this.bitN(14,e,n)}bit15(e,n={}){return this.bitN(15,e,n)}bit16(e,n={}){return this.bitN(16,e,n)}bit17(e,n={}){return this.bitN(17,e,n)}bit18(e,n={}){return this.bitN(18,e,n)}bit19(e,n={}){return this.bitN(19,e,n)}bit20(e,n={}){return this.bitN(20,e,n)}bit21(e,n={}){return this.bitN(21,e,n)}bit22(e,n={}){return this.bitN(22,e,n)}bit23(e,n={}){return this.bitN(23,e,n)}bit24(e,n={}){return this.bitN(24,e,n)}bit25(e,n={}){return this.bitN(25,e,n)}bit26(e,n={}){return this.bitN(26,e,n)}bit27(e,n={}){return this.bitN(27,e,n)}bit28(e,n={}){return this.bitN(28,e,n)}bit29(e,n={}){return this.bitN(29,e,n)}bit30(e,n={}){return this.bitN(30,e,n)}bit31(e,n={}){return this.bitN(31,e,n)}bit32(e,n={}){return this.bitN(32,e,n)}namely(e){return Un.set(e,this),this.alias=e,this}skip(e,n={}){return this.seek(e,n)}seek(e,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:e})}string(e,n){if(!n.zeroTerminated&&!n.length&&!n.greedy)throw new Error("One of length, zeroTerminated, or greedy must be defined for string.");if((n.zeroTerminated||n.length)&&n.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(n.stripNull&&!(n.length||n.greedy))throw new Error("length or greedy must be defined if stripNull is enabled.");return n.encoding=n.encoding||"utf8",this.setNextParser("string",e,n)}buffer(e,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",e,n)}wrapped(e,n){if(typeof n!="object"&&typeof e=="object"&&(n=e,e=""),!n||!n.wrapper||!n.type)throw new Error("Both wrapper and type must be defined for wrapped.");if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for wrapped.");return this.setNextParser("wrapper",e,n)}array(e,n){if(!n.readUntil&&!n.length&&!n.lengthInBytes)throw new Error("One of readUntil, length and lengthInBytes must be defined for array.");if(!n.type)throw new Error("type is required for array.");if(typeof n.type=="string"&&!Un.has(n.type)&&!(n.type in jn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",e,n)}choice(e,n){if(typeof n!="object"&&typeof e=="object"&&(n=e,e=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!Un.has(a)&&!(a in jn))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",e,n)}nest(e,n){if(typeof n!="object"&&typeof e=="object"&&(n=e,e=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof qn)&&!Un.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof qn)&&!e)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",e,n)}pointer(e,n){if(!n.offset)throw new Error("offset is required for pointer.");if(!n.type)throw new Error("type is required for pointer.");if(typeof n.type=="string"&&!(n.type in jn)&&!Un.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",e,n)}saveOffset(e,n={}){return this.setNextParser("saveOffset",e,n)}endianness(e){switch(e.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error('endianness must be one of "little" or "big"')}return this}endianess(e){return this.endianness(e)}useContextVars(e=!0){return this.useContextVariables=e,this}create(e){if(!(e instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=e,this}getContext(e){const n=new UL(e,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${pa+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const e="imports";return this.getContext(e).code}addRawCode(e){e.pushCode("var offset = 0;"),e.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),e.pushCode("vars.$parent = null;"),e.pushCode("vars.$root = vars;"),this.generate(e),this.resolveReferences(e),e.pushCode("delete vars.$parent;"),e.pushCode("delete vars.$root;"),e.pushCode("return vars;")}addAliasedCode(e){return e.pushCode(`function ${pa+this.alias}(offset, context) {`),e.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),e.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),e.pushCode("vars = Object.assign(vars, ctx);"),this.generate(e),e.markResolved(this.alias),this.resolveReferences(e),e.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),e.pushCode("return { offset: offset, result: vars };"),e.pushCode("}"),e}resolveReferences(e){const n=e.getUnresolvedReferences();e.markRequested(n),n.forEach(r=>{var i;(i=Un.get(r))===null||i===void 0||i.addAliasedCode(e)})}compile(){const e="imports",n=this.getContext(e);this.compiled=new Function(e,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let e=NaN;if(Object.keys(jn).indexOf(this.type)>=0)e=jn[this.type];else if(this.type==="string"&&typeof this.options.length=="number")e=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")e=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=jn[this.options.type]:this.options.type instanceof qn&&(n=this.options.type.sizeOf()),e=this.options.length*n}else this.type==="seek"?e=this.options.length:this.type==="nest"?e=this.options.type.sizeOf():this.type||(e=0);return this.next&&(e+=this.next.sizeOf()),e}parse(e){return this.compiled||this.compile(),this.compiled(e,this.constructorFn)}setNextParser(e,n,r){const i=new qn;return i.type=e,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(e){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,e);break;case"bit":this.generateBit(e);break;case"string":this.generateString(e);break;case"buffer":this.generateBuffer(e);break;case"seek":this.generateSeek(e);break;case"nest":this.generateNest(e);break;case"array":this.generateArray(e);break;case"choice":this.generateChoice(e);break;case"pointer":this.generatePointer(e);break;case"saveOffset":this.generateSaveOffset(e);break;case"wrapper":this.generateWrapper(e);break}this.type!=="bit"&&this.generateAssert(e)}const n=e.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(e,n,this.options.formatter),this.generateNext(e)}generateAssert(e){if(!this.options.assert)return;const n=e.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=e.addImport(this.options.assert);e.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":e.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":e.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}e.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),e.pushCode("}")}generateNext(e){return this.next&&(e=this.next.generate(e)),e}generateBit(e){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=e.generateVariable(n.varName),e.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=e.generateTmpVariable();e.pushCode(`var ${r} = 0;`);const i=(l=0)=>{let c=0;for(let h=l;h<e.bitFields.length;h++){const d=e.bitFields[h].options.length;if(c+d>32)break;c+=d}return c},a=l=>(l<=8?(e.pushCode(`${r} = dataView.getUint8(offset);`),l=8):l<=16?(e.pushCode(`${r} = dataView.getUint16(offset);`),l=16):l<=24?(e.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),l=24):(e.pushCode(`${r} = dataView.getUint32(offset);`),l=32),e.pushCode(`offset += ${l/8};`),l);let o=0;const s=this.endian==="be";let f=0,u=0;e.bitFields.forEach((l,c)=>{let h=l.options.length;if(h>u){if(u){const b=-1>>>32-u;e.pushCode(`${l.varName} = (${r} & 0x${b.toString(16)}) << ${h-u};`),h-=u}o=0,u=f=a(i(c)-u)}const d=s?f-o-h:o,g=-1>>>32-h;e.pushCode(`${l.varName} ${h<l.options.length?"|=":"="} ${r} >> ${d} & 0x${g.toString(16)};`),l.options.length===32&&e.pushCode(`${l.varName} >>>= 0`),l.options.assert&&l.generateAssert(e),l.options.formatter&&l.generateFormatter(e,l.varName,l.options.formatter),o+=h,u-=h}),e.bitFields=[]}}generateSeek(e){const n=e.generateOption(this.options.length);e.pushCode(`offset += ${n};`)}generateString(e){const n=e.generateVariable(this.varName),r=e.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;e.pushCode(`var ${r} = offset;`),e.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const f=`offset - ${r} < ${s} ? offset - 1 : offset`;e.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${f}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${f}));`)}else if(this.options.length){const s=e.generateOption(this.options.length);e.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),e.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(e.pushCode(`var ${r} = offset;`),e.pushCode("while(dataView.getUint8(offset++) !== 0);"),e.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(e.pushCode(`var ${r} = offset;`),e.pushCode("while(buffer.length > offset++);"),e.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&e.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(e){const n=e.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=e.generateTmpVariable(),a=e.generateTmpVariable();e.pushCode(`var ${i} = offset;`),e.pushCode(`var ${a} = 0;`),e.pushCode("while (offset < buffer.length) {"),e.pushCode(`${a} = dataView.getUint8(offset);`);const o=e.addImport(r);e.pushCode(`if (${o}.call(${e.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")e.pushCode(`${n} = buffer.subarray(offset);`);else{const r=e.generateOption(this.options.length);e.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),e.pushCode(`offset += ${r};`)}this.options.clone&&e.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(e){const n=e.generateOption(this.options.length),r=e.generateOption(this.options.lengthInBytes),i=this.options.type,a=e.generateTmpVariable(),o=e.generateVariable(this.varName),s=e.generateTmpVariable(),f=this.options.key,u=typeof f=="string";if(u?e.pushCode(`${o} = {};`):e.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?e.pushCode("do {"):this.options.readUntil==="eof"?e.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?e.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):e.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(Un.get(i)){const l=e.generateTmpVariable();if(e.pushCode(`var ${l} = ${pa+i}(offset, {`),e.useContextVariables){const c=e.generateVariable();e.pushCode(`$parent: ${c},`),e.pushCode(`$root: ${c}.$root,`),!this.options.readUntil&&r===void 0&&e.pushCode(`$index: ${n} - ${a},`)}e.pushCode("});"),e.pushCode(`var ${s} = ${l}.result; offset = ${l}.offset;`),i!==this.alias&&e.addReference(i)}else{const l=ec[i],c=tc[i];e.pushCode(`var ${s} = dataView.get${l}(offset, ${c});`),e.pushCode(`offset += ${jn[i]};`)}else if(i instanceof qn){e.pushCode(`var ${s} = {};`);const l=e.generateVariable();e.pushScope(s),e.useContextVariables&&(e.pushCode(`${s}.$parent = ${l};`),e.pushCode(`${s}.$root = ${l}.$root;`),!this.options.readUntil&&r===void 0&&e.pushCode(`${s}.$index = ${n} - ${a};`)),i.generate(e),e.useContextVariables&&(e.pushCode(`delete ${s}.$parent;`),e.pushCode(`delete ${s}.$root;`),e.pushCode(`delete ${s}.$index;`)),e.popScope()}if(u?e.pushCode(`${o}[${s}.${f}] = ${s};`):e.pushCode(`${o}.push(${s});`),e.pushCode("}"),typeof this.options.readUntil=="function"){const l=this.options.readUntil,c=e.addImport(l);e.pushCode(`while (!${c}.call(${e.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(e,n,r){if(typeof r=="string"){const i=e.generateVariable(this.varName);if(Un.has(r)){const a=e.generateTmpVariable();e.pushCode(`var ${a} = ${pa+r}(offset, {`),e.useContextVariables&&(e.pushCode(`$parent: ${i}.$parent,`),e.pushCode(`$root: ${i}.$root,`)),e.pushCode("});"),e.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&e.addReference(r)}else{const a=ec[r],o=tc[r];e.pushCode(`${i} = dataView.get${a}(offset, ${o});`),e.pushCode(`offset += ${jn[r]}`)}}else r instanceof qn&&(e.pushPath(n),r.generate(e),e.popPath(n))}generateChoice(e){const n=e.generateOption(this.options.tag),r=e.generateVariable(this.varName);if(this.varName&&(e.pushCode(`${r} = {};`),e.useContextVariables)){const i=e.generateVariable();e.pushCode(`${r}.$parent = ${i};`),e.pushCode(`${r}.$root = ${i}.$root;`)}e.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];e.pushCode(`case ${a}:`),this.generateChoiceCase(e,this.varName,o),e.pushCode("break;")}e.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(e,this.varName,this.options.defaultChoice):e.generateError(`"Met undefined tag value " + ${n} + " at choice"`),e.pushCode("}"),this.varName&&e.useContextVariables&&(e.pushCode(`delete ${r}.$parent;`),e.pushCode(`delete ${r}.$root;`))}generateNest(e){const n=e.generateVariable(this.varName);if(this.options.type instanceof qn){if(this.varName&&(e.pushCode(`${n} = {};`),e.useContextVariables)){const r=e.generateVariable();e.pushCode(`${n}.$parent = ${r};`),e.pushCode(`${n}.$root = ${r}.$root;`)}e.pushPath(this.varName),this.options.type.generate(e),e.popPath(this.varName),this.varName&&e.useContextVariables&&e.useContextVariables&&(e.pushCode(`delete ${n}.$parent;`),e.pushCode(`delete ${n}.$root;`))}else if(Un.has(this.options.type)){const r=e.generateTmpVariable();if(e.pushCode(`var ${r} = ${pa+this.options.type}(offset, {`),e.useContextVariables){const i=e.generateVariable();e.pushCode(`$parent: ${i},`),e.pushCode(`$root: ${i}.$root,`)}e.pushCode("});"),e.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&e.addReference(this.options.type)}}generateWrapper(e){const n=e.generateVariable(this.varName),r=e.generateTmpVariable();if(typeof this.options.readUntil=="function"){const f=this.options.readUntil,u=e.generateTmpVariable(),l=e.generateTmpVariable();e.pushCode(`var ${u} = offset;`),e.pushCode(`var ${l} = 0;`),e.pushCode("while (offset < buffer.length) {"),e.pushCode(`${l} = dataView.getUint8(offset);`);const c=e.addImport(f);e.pushCode(`if (${c}.call(${e.generateVariable()}, ${l}, buffer.subarray(offset))) break;`),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(`${r} = buffer.subarray(${u}, offset);`)}else if(this.options.readUntil==="eof")e.pushCode(`${r} = buffer.subarray(offset);`);else{const f=e.generateOption(this.options.length);e.pushCode(`${r} = buffer.subarray(offset, offset + ${f});`),e.pushCode(`offset += ${f};`)}this.options.clone&&e.pushCode(`${r} = buffer.constructor.from(${r});`);const i=e.generateTmpVariable(),a=e.generateTmpVariable(),o=e.generateTmpVariable(),s=e.addImport(this.options.wrapper);if(e.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),e.pushCode(`var ${i} = buffer;`),e.pushCode(`var ${a} = offset;`),e.pushCode(`var ${o} = dataView;`),e.pushCode(`buffer = ${r};`),e.pushCode("offset = 0;"),e.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof qn)this.varName&&e.pushCode(`${n} = {};`),e.pushPath(this.varName),this.options.type.generate(e),e.popPath(this.varName);else if(Un.has(this.options.type)){const f=e.generateTmpVariable();e.pushCode(`var ${f} = ${pa+this.options.type}(0);`),e.pushCode(`${n} = ${f}.result;`),this.options.type!==this.alias&&e.addReference(this.options.type)}e.pushCode(`buffer = ${i};`),e.pushCode(`dataView = ${o};`),e.pushCode(`offset = ${a};`)}generateFormatter(e,n,r){if(typeof r=="function"){const i=e.addImport(r);e.pushCode(`${n} = ${i}.call(${e.generateVariable()}, ${n});`)}}generatePointer(e){const n=this.options.type,r=e.generateOption(this.options.offset),i=e.generateTmpVariable(),a=e.generateVariable(this.varName);if(e.pushCode(`var ${i} = offset;`),e.pushCode(`offset = ${r};`),this.options.type instanceof qn){if(e.pushCode(`${a} = {};`),e.useContextVariables){const o=e.generateVariable();e.pushCode(`${a}.$parent = ${o};`),e.pushCode(`${a}.$root = ${o}.$root;`)}e.pushPath(this.varName),this.options.type.generate(e),e.popPath(this.varName),e.useContextVariables&&(e.pushCode(`delete ${a}.$parent;`),e.pushCode(`delete ${a}.$root;`))}else if(Un.has(this.options.type)){const o=e.generateTmpVariable();if(e.pushCode(`var ${o} = ${pa+this.options.type}(offset, {`),e.useContextVariables){const s=e.generateVariable();e.pushCode(`$parent: ${s},`),e.pushCode(`$root: ${s}.$root,`)}e.pushCode("});"),e.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&e.addReference(this.options.type)}else if(Object.keys(jn).indexOf(this.options.type)>=0){const o=ec[n],s=tc[n];e.pushCode(`${a} = dataView.get${o}(offset, ${s});`),e.pushCode(`offset += ${jn[n]};`)}e.pushCode(`offset = ${i};`)}generateSaveOffset(e){const n=e.generateVariable(this.varName);e.pushCode(`${n} = offset`)}};var nv={},W0={},ma={},Su={};Object.defineProperty(Su,"__esModule",{value:!0});function X0(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function rv(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function $0(t,e,n){return e&&rv(t.prototype,e),n&&rv(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function jL(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&K0(t,e)}function Eo(t){return Eo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Eo(t)}function K0(t,e){return K0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},K0(t,e)}function GL(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _u(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function HL(t,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _u(t)}function QL(t){var e=GL();return function(){var r=Eo(t),i;if(e){var a=Eo(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return HL(this,i)}}function VL(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&(t=Eo(t),t!==null););return t}function nc(){return typeof Reflect<"u"&&Reflect.get?nc=Reflect.get.bind():nc=function(e,n,r){var i=VL(e,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?e:r):a.value}},nc.apply(this,arguments)}var iv=function(){function t(){X0(this,t),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return $0(t,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(f){Promise.resolve().then(function(){throw f})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),t}(),J0=function(t){jL(n,t);var e=QL(n);function n(){var r;return X0(this,n),r=e.call(this),r.listeners||iv.call(_u(r)),Object.defineProperty(_u(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(_u(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(_u(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return $0(n,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(i){i.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,i)),nc(Eo(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(iv),av=function(){function t(){X0(this,t),Object.defineProperty(this,"signal",{value:new J0,writable:!0,configurable:!0})}return $0(t,[{key:"abort",value:function(n){var r;try{r=new Event("abort")}catch{typeof document<"u"?document.createEvent?(r=document.createEvent("Event"),r.initEvent("abort",!1,!1)):(r=document.createEventObject(),r.type="abort"):r={type:"abort",bubbles:!1,cancelable:!1}}var i=n;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(r)}},{key:"toString",value:function(){return"[object AbortController]"}}]),t}();typeof Symbol<"u"&&Symbol.toStringTag&&(av.prototype[Symbol.toStringTag]="AbortController",J0.prototype[Symbol.toStringTag]="AbortSignal");function qL(t){return t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof t.Request=="function"&&!t.Request.prototype.hasOwnProperty("signal")||!t.AbortController}function ZL(t){typeof t=="function"&&(t={fetch:t});var e=t,n=e.fetch,r=e.Request,i=r===void 0?n.Request:r,a=e.AbortController,o=e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!qL({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:f};var f=i;(f&&!f.prototype.hasOwnProperty("signal")||s)&&(f=function(h,d){var g;d&&d.signal&&(g=d.signal,delete d.signal);var b=new i(h,d);return g&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:g}),b},f.prototype=i.prototype);var u=n,l=function(h,d){var g=f&&f.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(g){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(g.aborted)return Promise.reject(b);var y=new Promise(function(w,E){g.addEventListener("abort",function(){return E(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,u(h,d)])}return u(h,d)};return{fetch:l,Request:f}}Su.AbortController=av,Su.AbortSignal=J0,Su.abortableFetch=ZL,Object.defineProperty(ma,"__esModule",{value:!0}),ma.AbortSignal=ma.AbortController=void 0;const ov=Su;var rc=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Ln<"u")return Ln;throw new Error("unable to locate global object")};let YL=typeof rc().AbortController>"u"?ov.AbortController:rc().AbortController;ma.AbortController=YL;let WL=typeof rc().AbortController>"u"?ov.AbortSignal:rc().AbortSignal;ma.AbortSignal=WL;var eg={};Object.defineProperty(eg,"__esModule",{value:!0});const XL=ma;class $L{}class KL{constructor(){this.signals=new Set,this.abortController=new XL.AbortController}addSignal(e=new $L){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(e),e.aborted?this.handleAborted(e):typeof e.addEventListener=="function"&&e.addEventListener("abort",()=>{this.handleAborted(e)})}handleAborted(e){this.signals.delete(e),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}eg.default=KL;var tg={};Object.defineProperty(tg,"__esModule",{value:!0});class JL{constructor(){this.callbacks=new Set}addCallback(e=()=>{}){this.callbacks.add(e),e(this.currentMessage)}callback(e){this.currentMessage=e,this.callbacks.forEach(n=>{n(e)})}}tg.default=JL;var sv=Ln&&Ln.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(W0,"__esModule",{value:!0});const eR=ma,tR=sv(eg),nR=sv(tg);class ic{constructor({fill:e,cache:n}){if(typeof e!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=e}static isAbortException(e){return e.name==="AbortError"||e.code==="ERR_ABORTED"||e.message==="AbortError: aborted"||e.message==="Error: aborted"}evict(e,n){this.cache.get(e)===n&&this.cache.delete(e)}fill(e,n,r,i){const a=new tR.default,o=new nR.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,f=>{o.callback(f)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(e,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(e,s)}).catch(f=>{throw console.error(f),f}),this.cache.set(e,s)}static checkSinglePromise(e,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return e.then(i=>(r(),i),i=>{throw r(),i})}has(e){return this.cache.has(e)}get(e,n,r,i){if(!r&&n instanceof eR.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(e);return a?a.aborted&&!a.settled?(this.evict(e,a),this.get(e,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),ic.checkSinglePromise(a.promise,r)):(this.fill(e,n,r,i),ic.checkSinglePromise(this.cache.get(e).promise,r))}delete(e){const n=this.cache.get(e);n&&(n.settled||n.aborter.abort(),this.cache.delete(e))}clear(){const e=this.cache.keys();let n=0;for(let r=e.next();!r.done;r=e.next())this.delete(r.value),n+=1;return n}}W0.default=ic;var rR=Ln&&Ln.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nv,"__esModule",{value:!0});const iR=rR(W0);var ac=nv.default=iR.default,aR=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,n){this.cache.set(e,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const n=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,n),n}}set(e,n){return this.cache.has(e)?this.cache.set(e,n):this._set(e,n),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){const n=this.cache.delete(e);return n&&this._size--,this.oldCache.delete(e)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[n]=e;this.cache.has(n)||(yield e)}}get size(){let e=0;for(const n of this.oldCache.keys())this.cache.has(n)||e++;return this._size+e}};const ng=ia(aR);class pi{constructor(e,n){this.ranges=arguments.length===2?[{min:e,max:n}]:0 in e?Object.assign({},e):[e]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(e){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=e&&r.max>=e)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(e=>new pi(e.min,e.max))}toString(){return this.ranges.map(e=>`[${e.min}-${e.max}]`).join(",")}union(e){const n=this.getRanges().concat(e.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new pi(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new pi(r)}intersection(e){let n=this,r=e;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let f=0,u=0;const l=[];for(;f<o&&u<s;){n=i[f],r=a[u];const c=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=c&&l.push(new pi(c,h)),n.max()>r.max()?u+=1:f+=1}if(l.length===0)throw new Error("found range of length 0");return l.length===1?l[0]:new pi(l)}coverage(){let e=0;const n=this.ranges();for(const r of n)e+=r.max()-r.min()+1;return e}rangeOrder(e,n){let r=e,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const oR=4,uv=0,fv=1,sR=2;function So(t){let e=t.length;for(;--e>=0;)t[e]=0}const uR=0,lv=1,fR=2,lR=3,cR=258,rg=29,Cu=256,Du=Cu+1+rg,_o=30,ig=19,cv=2*Du+1,ba=15,ag=16,hR=7,og=256,hv=16,dv=17,gv=18,sg=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),oc=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),dR=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),pv=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),gR=512,Ir=new Array((Du+2)*2);So(Ir);const Iu=new Array(_o*2);So(Iu);const Mu=new Array(gR);So(Mu);const Tu=new Array(cR-lR+1);So(Tu);const ug=new Array(rg);So(ug);const sc=new Array(_o);So(sc);function fg(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}let mv,bv,yv;function lg(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}const wv=t=>t<256?Mu[t]:Mu[256+(t>>>7)],Nu=(t,e)=>{t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255},Gt=(t,e,n)=>{t.bi_valid>ag-n?(t.bi_buf|=e<<t.bi_valid&65535,Nu(t,t.bi_buf),t.bi_buf=e>>ag-t.bi_valid,t.bi_valid+=n-ag):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},fr=(t,e,n)=>{Gt(t,n[e*2],n[e*2+1])},xv=(t,e)=>{let n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1},pR=t=>{t.bi_valid===16?(Nu(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},mR=(t,e)=>{const n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,f=e.stat_desc.max_length;let u,l,c,h,d,g,b=0;for(h=0;h<=ba;h++)t.bl_count[h]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<cv;u++)l=t.heap[u],h=n[n[l*2+1]*2+1]+1,h>f&&(h=f,b++),n[l*2+1]=h,!(l>r)&&(t.bl_count[h]++,d=0,l>=s&&(d=o[l-s]),g=n[l*2],t.opt_len+=g*(h+d),a&&(t.static_len+=g*(i[l*2+1]+d)));if(b!==0){do{for(h=f-1;t.bl_count[h]===0;)h--;t.bl_count[h]--,t.bl_count[h+1]+=2,t.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(l=t.bl_count[h];l!==0;)c=t.heap[--u],!(c>r)&&(n[c*2+1]!==h&&(t.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),l--)}},vv=(t,e,n)=>{const r=new Array(ba+1);let i=0,a,o;for(a=1;a<=ba;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=e;o++){let s=t[o*2+1];s!==0&&(t[o*2]=xv(r[s]++,s))}},bR=()=>{let t,e,n,r,i;const a=new Array(ba+1);for(n=0,r=0;r<rg-1;r++)for(ug[r]=n,t=0;t<1<<sg[r];t++)Tu[n++]=r;for(Tu[n-1]=r,i=0,r=0;r<16;r++)for(sc[r]=i,t=0;t<1<<oc[r];t++)Mu[i++]=r;for(i>>=7;r<_o;r++)for(sc[r]=i<<7,t=0;t<1<<oc[r]-7;t++)Mu[256+i++]=r;for(e=0;e<=ba;e++)a[e]=0;for(t=0;t<=143;)Ir[t*2+1]=8,t++,a[8]++;for(;t<=255;)Ir[t*2+1]=9,t++,a[9]++;for(;t<=279;)Ir[t*2+1]=7,t++,a[7]++;for(;t<=287;)Ir[t*2+1]=8,t++,a[8]++;for(vv(Ir,Du+1,a),t=0;t<_o;t++)Iu[t*2+1]=5,Iu[t*2]=xv(t,5);mv=new fg(Ir,sg,Cu+1,Du,ba),bv=new fg(Iu,oc,0,_o,ba),yv=new fg(new Array(0),dR,0,ig,hR)},Av=t=>{let e;for(e=0;e<Du;e++)t.dyn_ltree[e*2]=0;for(e=0;e<_o;e++)t.dyn_dtree[e*2]=0;for(e=0;e<ig;e++)t.bl_tree[e*2]=0;t.dyn_ltree[og*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},Ev=t=>{t.bi_valid>8?Nu(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},Sv=(t,e,n,r)=>{const i=e*2,a=n*2;return t[i]<t[a]||t[i]===t[a]&&r[e]<=r[n]},cg=(t,e,n)=>{const r=t.heap[n];let i=n<<1;for(;i<=t.heap_len&&(i<t.heap_len&&Sv(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!Sv(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r},_v=(t,e,n)=>{let r,i,a=0,o,s;if(t.sym_next!==0)do r=t.pending_buf[t.sym_buf+a++]&255,r+=(t.pending_buf[t.sym_buf+a++]&255)<<8,i=t.pending_buf[t.sym_buf+a++],r===0?fr(t,i,e):(o=Tu[i],fr(t,o+Cu+1,e),s=sg[o],s!==0&&(i-=ug[o],Gt(t,i,s)),r--,o=wv(r),fr(t,o,n),s=oc[o],s!==0&&(r-=sc[o],Gt(t,r,s)));while(a<t.sym_next);fr(t,og,e)},hg=(t,e)=>{const n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,a=e.stat_desc.elems;let o,s,f=-1,u;for(t.heap_len=0,t.heap_max=cv,o=0;o<a;o++)n[o*2]!==0?(t.heap[++t.heap_len]=f=o,t.depth[o]=0):n[o*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=f<2?++f:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=f,o=t.heap_len>>1;o>=1;o--)cg(t,n,o);u=a;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],cg(t,n,1),s=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=s,n[u*2]=n[o*2]+n[s*2],t.depth[u]=(t.depth[o]>=t.depth[s]?t.depth[o]:t.depth[s])+1,n[o*2+1]=n[s*2+1]=u,t.heap[1]=u++,cg(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],mR(t,e),vv(n,f,t.bl_count)},Cv=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)&&(s<u?t.bl_tree[a*2]+=s:a!==0?(a!==i&&t.bl_tree[a*2]++,t.bl_tree[hv*2]++):s<=10?t.bl_tree[dv*2]++:t.bl_tree[gv*2]++,s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4))},Dv=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),r=0;r<=n;r++)if(a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)){if(s<u)do fr(t,a,t.bl_tree);while(--s!==0);else a!==0?(a!==i&&(fr(t,a,t.bl_tree),s--),fr(t,hv,t.bl_tree),Gt(t,s-3,2)):s<=10?(fr(t,dv,t.bl_tree),Gt(t,s-3,3)):(fr(t,gv,t.bl_tree),Gt(t,s-11,7));s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4)}},yR=t=>{let e;for(Cv(t,t.dyn_ltree,t.l_desc.max_code),Cv(t,t.dyn_dtree,t.d_desc.max_code),hg(t,t.bl_desc),e=ig-1;e>=3&&t.bl_tree[pv[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e},wR=(t,e,n,r)=>{let i;for(Gt(t,e-257,5),Gt(t,n-1,5),Gt(t,r-4,4),i=0;i<r;i++)Gt(t,t.bl_tree[pv[i]*2+1],3);Dv(t,t.dyn_ltree,e-1),Dv(t,t.dyn_dtree,n-1)},xR=t=>{let e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return uv;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return fv;for(n=32;n<Cu;n++)if(t.dyn_ltree[n*2]!==0)return fv;return uv};let Iv=!1;const vR=t=>{Iv||(bR(),Iv=!0),t.l_desc=new lg(t.dyn_ltree,mv),t.d_desc=new lg(t.dyn_dtree,bv),t.bl_desc=new lg(t.bl_tree,yv),t.bi_buf=0,t.bi_valid=0,Av(t)},Mv=(t,e,n,r)=>{Gt(t,(uR<<1)+(r?1:0),3),Ev(t),Nu(t,n),Nu(t,~n),n&&t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n},AR=t=>{Gt(t,lv<<1,3),fr(t,og,Ir),pR(t)},ER=(t,e,n,r)=>{let i,a,o=0;t.level>0?(t.strm.data_type===sR&&(t.strm.data_type=xR(t)),hg(t,t.l_desc),hg(t,t.d_desc),o=yR(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&e!==-1?Mv(t,e,n,r):t.strategy===oR||a===i?(Gt(t,(lv<<1)+(r?1:0),3),_v(t,Ir,Iu)):(Gt(t,(fR<<1)+(r?1:0),3),wR(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),_v(t,t.dyn_ltree,t.dyn_dtree)),Av(t),r&&Ev(t)},SR=(t,e,n)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=n,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(Tu[n]+Cu+1)*2]++,t.dyn_dtree[wv(e)*2]++),t.sym_next===t.sym_end);var _R=vR,CR=Mv,DR=ER,IR=SR,MR=AR,TR={_tr_init:_R,_tr_stored_block:CR,_tr_flush_block:DR,_tr_tally:IR,_tr_align:MR},Fu=(t,e,n,r)=>{let i=t&65535|0,a=t>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+e[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const NR=()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e},FR=new Uint32Array(NR());var gt=(t,e,n,r)=>{const i=FR,a=r+n;t^=-1;for(let o=r;o<a;o++)t=t>>>8^i[(t^e[o])&255];return t^-1},Co={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"},Bu={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:BR,_tr_stored_block:dg,_tr_flush_block:kR,_tr_tally:mi,_tr_align:LR}=TR,{Z_NO_FLUSH:bi,Z_PARTIAL_FLUSH:RR,Z_FULL_FLUSH:OR,Z_FINISH:pn,Z_BLOCK:Tv,Z_OK:wt,Z_STREAM_END:Nv,Z_STREAM_ERROR:lr,Z_DATA_ERROR:zR,Z_BUF_ERROR:gg,Z_DEFAULT_COMPRESSION:PR,Z_FILTERED:UR,Z_HUFFMAN_ONLY:uc,Z_RLE:jR,Z_FIXED:GR,Z_DEFAULT_STRATEGY:HR,Z_UNKNOWN:QR,Z_DEFLATED:fc}=Bu,VR=9,qR=15,ZR=8,YR=29,pg=256+1+YR,WR=30,XR=19,$R=2*pg+1,KR=15,me=3,yi=258,cr=yi+me+1,JR=32,Do=42,mg=57,bg=69,yg=73,wg=91,xg=103,ya=113,ku=666,Ft=1,Io=2,wa=3,Mo=4,e5=3,xa=(t,e)=>(t.msg=Co[e],e),Fv=t=>t*2-(t>4?9:0),wi=t=>{let e=t.length;for(;--e>=0;)t[e]=0},t5=t=>{let e,n,r,i=t.w_size;e=t.hash_size,r=e;do n=t.head[--r],t.head[r]=n>=i?n-i:0;while(--e);e=i,r=e;do n=t.prev[--r],t.prev[r]=n>=i?n-i:0;while(--e)};let xi=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask;const en=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))},tn=(t,e)=>{kR(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,en(t.strm)},_e=(t,e)=>{t.pending_buf[t.pending++]=e},Lu=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255},vg=(t,e,n,r)=>{let i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,e.set(t.input.subarray(t.next_in,t.next_in+i),n),t.state.wrap===1?t.adler=Fu(t.adler,e,i,n):t.state.wrap===2&&(t.adler=gt(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)},Bv=(t,e)=>{let n=t.max_chain_length,r=t.strstart,i,a,o=t.prev_length,s=t.nice_match;const f=t.strstart>t.w_size-cr?t.strstart-(t.w_size-cr):0,u=t.window,l=t.w_mask,c=t.prev,h=t.strstart+yi;let d=u[r+o-1],g=u[r+o];t.prev_length>=t.good_match&&(n>>=2),s>t.lookahead&&(s=t.lookahead);do if(i=e,!(u[i+o]!==g||u[i+o-1]!==d||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<h);if(a=yi-(h-r),r=h-yi,a>o){if(t.match_start=e,o=a,a>=s)break;d=u[r+o-1],g=u[r+o]}}while((e=c[e&l])>f&&--n!==0);return o<=t.lookahead?o:t.lookahead},To=t=>{const e=t.w_size;let n,r,i;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-cr)&&(t.window.set(t.window.subarray(e,e+e-r),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),t5(t),r+=e),t.strm.avail_in===0)break;if(n=vg(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=n,t.lookahead+t.insert>=me)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=xi(t,t.ins_h,t.window[i+1]);t.insert&&(t.ins_h=xi(t,t.ins_h,t.window[i+me-1]),t.prev[i&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=i,i++,t.insert--,!(t.lookahead+t.insert<me)););}while(t.lookahead<cr&&t.strm.avail_in!==0)},kv=(t,e)=>{let n=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r,i,a,o=0,s=t.strm.avail_in;do{if(r=65535,a=t.bi_valid+42>>3,t.strm.avail_out<a||(a=t.strm.avail_out-a,i=t.strstart-t.block_start,r>i+t.strm.avail_in&&(r=i+t.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&e!==pn||e===bi||r!==i+t.strm.avail_in)))break;o=e===pn&&r===i+t.strm.avail_in?1:0,dg(t,0,0,o),t.pending_buf[t.pending-4]=r,t.pending_buf[t.pending-3]=r>>8,t.pending_buf[t.pending-2]=~r,t.pending_buf[t.pending-1]=~r>>8,en(t.strm),i&&(i>r&&(i=r),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,r-=i),r&&(vg(t.strm,t.strm.output,t.strm.next_out,r),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r)}while(o===0);return s-=t.strm.avail_in,s&&(s>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=s&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-s,t.strm.next_in),t.strstart),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),o?Mo:e!==bi&&e!==pn&&t.strm.avail_in===0&&t.strstart===t.block_start?Io:(a=t.window_size-t.strstart,t.strm.avail_in>a&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,a+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),a>t.strm.avail_in&&(a=t.strm.avail_in),a&&(vg(t.strm,t.window,t.strstart,a),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.high_water<t.strstart&&(t.high_water=t.strstart),a=t.bi_valid+42>>3,a=t.pending_buf_size-a>65535?65535:t.pending_buf_size-a,n=a>t.w_size?t.w_size:a,i=t.strstart-t.block_start,(i>=n||(i||e===pn)&&e!==bi&&t.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=e===pn&&t.strm.avail_in===0&&r===i?1:0,dg(t,t.block_start,r,o),t.block_start+=r,en(t.strm)),o?wa:Ft)},Ag=(t,e)=>{let n,r;for(;;){if(t.lookahead<cr){if(To(t),t.lookahead<cr&&e===bi)return Ft;if(t.lookahead===0)break}if(n=0,t.lookahead>=me&&(t.ins_h=xi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-cr&&(t.match_length=Bv(t,n)),t.match_length>=me)if(r=mi(t,t.strstart-t.match_start,t.match_length-me),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=me){t.match_length--;do t.strstart++,t.ins_h=xi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=xi(t,t.ins_h,t.window[t.strstart+1]);else r=mi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(tn(t,!1),t.strm.avail_out===0))return Ft}return t.insert=t.strstart<me-1?t.strstart:me-1,e===pn?(tn(t,!0),t.strm.avail_out===0?wa:Mo):t.sym_next&&(tn(t,!1),t.strm.avail_out===0)?Ft:Io},No=(t,e)=>{let n,r,i;for(;;){if(t.lookahead<cr){if(To(t),t.lookahead<cr&&e===bi)return Ft;if(t.lookahead===0)break}if(n=0,t.lookahead>=me&&(t.ins_h=xi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=me-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-cr&&(t.match_length=Bv(t,n),t.match_length<=5&&(t.strategy===UR||t.match_length===me&&t.strstart-t.match_start>4096)&&(t.match_length=me-1)),t.prev_length>=me&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-me,r=mi(t,t.strstart-1-t.prev_match,t.prev_length-me),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=xi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=me-1,t.strstart++,r&&(tn(t,!1),t.strm.avail_out===0))return Ft}else if(t.match_available){if(r=mi(t,0,t.window[t.strstart-1]),r&&tn(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return Ft}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=mi(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<me-1?t.strstart:me-1,e===pn?(tn(t,!0),t.strm.avail_out===0?wa:Mo):t.sym_next&&(tn(t,!1),t.strm.avail_out===0)?Ft:Io},n5=(t,e)=>{let n,r,i,a;const o=t.window;for(;;){if(t.lookahead<=yi){if(To(t),t.lookahead<=yi&&e===bi)return Ft;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=me&&t.strstart>0&&(i=t.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=t.strstart+yi;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);t.match_length=yi-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=me?(n=mi(t,1,t.match_length-me),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=mi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(tn(t,!1),t.strm.avail_out===0))return Ft}return t.insert=0,e===pn?(tn(t,!0),t.strm.avail_out===0?wa:Mo):t.sym_next&&(tn(t,!1),t.strm.avail_out===0)?Ft:Io},r5=(t,e)=>{let n;for(;;){if(t.lookahead===0&&(To(t),t.lookahead===0)){if(e===bi)return Ft;break}if(t.match_length=0,n=mi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(tn(t,!1),t.strm.avail_out===0))return Ft}return t.insert=0,e===pn?(tn(t,!0),t.strm.avail_out===0?wa:Mo):t.sym_next&&(tn(t,!1),t.strm.avail_out===0)?Ft:Io};function hr(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}const Ru=[new hr(0,0,0,0,kv),new hr(4,4,8,4,Ag),new hr(4,5,16,8,Ag),new hr(4,6,32,32,Ag),new hr(4,4,16,16,No),new hr(8,16,32,32,No),new hr(8,16,128,128,No),new hr(8,32,128,256,No),new hr(32,128,258,1024,No),new hr(32,258,258,4096,No)],i5=t=>{t.window_size=2*t.w_size,wi(t.head),t.max_lazy_match=Ru[t.level].max_lazy,t.good_match=Ru[t.level].good_length,t.nice_match=Ru[t.level].nice_length,t.max_chain_length=Ru[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=me-1,t.match_available=0,t.ins_h=0};function a5(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=fc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array($R*2),this.dyn_dtree=new Uint16Array((2*WR+1)*2),this.bl_tree=new Uint16Array((2*XR+1)*2),wi(this.dyn_ltree),wi(this.dyn_dtree),wi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(KR+1),this.heap=new Uint16Array(2*pg+1),wi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*pg+1),wi(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Ou=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==Do&&e.status!==mg&&e.status!==bg&&e.status!==yg&&e.status!==wg&&e.status!==xg&&e.status!==ya&&e.status!==ku?1:0},Lv=t=>{if(Ou(t))return xa(t,lr);t.total_in=t.total_out=0,t.data_type=QR;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?mg:e.wrap?Do:ya,t.adler=e.wrap===2?0:1,e.last_flush=-2,BR(e),wt},Rv=t=>{const e=Lv(t);return e===wt&&i5(t.state),e},o5=(t,e)=>Ou(t)||t.state.wrap!==2?lr:(t.state.gzhead=e,wt),Ov=(t,e,n,r,i,a)=>{if(!t)return lr;let o=1;if(e===PR&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>VR||n!==fc||r<8||r>15||e<0||e>9||a<0||a>GR||r===8&&o!==1)return xa(t,lr);r===8&&(r=9);const s=new a5;return t.state=s,s.strm=t,s.status=Do,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+me-1)/me),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=e,s.strategy=a,s.method=n,Rv(t)},s5=(t,e)=>Ov(t,e,fc,qR,ZR,HR),u5=(t,e)=>{if(Ou(t)||e>Tv||e<0)return t?xa(t,lr):lr;const n=t.state;if(!t.output||t.avail_in!==0&&!t.input||n.status===ku&&e!==pn)return xa(t,t.avail_out===0?gg:lr);const r=n.last_flush;if(n.last_flush=e,n.pending!==0){if(en(t),t.avail_out===0)return n.last_flush=-1,wt}else if(t.avail_in===0&&Fv(e)<=Fv(r)&&e!==pn)return xa(t,gg);if(n.status===ku&&t.avail_in!==0)return xa(t,gg);if(n.status===Do&&n.wrap===0&&(n.status=ya),n.status===Do){let i=fc+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=uc||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=JR),i+=31-i%31,Lu(n,i),n.strstart!==0&&(Lu(n,t.adler>>>16),Lu(n,t.adler&65535)),t.adler=1,n.status=ya,en(t),n.pending!==0)return n.last_flush=-1,wt}if(n.status===mg){if(t.adler=0,_e(n,31),_e(n,139),_e(n,8),n.gzhead)_e(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),_e(n,n.gzhead.time&255),_e(n,n.gzhead.time>>8&255),_e(n,n.gzhead.time>>16&255),_e(n,n.gzhead.time>>24&255),_e(n,n.level===9?2:n.strategy>=uc||n.level<2?4:0),_e(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(_e(n,n.gzhead.extra.length&255),_e(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=gt(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=bg;else if(_e(n,0),_e(n,0),_e(n,0),_e(n,0),_e(n,0),_e(n,n.level===9?2:n.strategy>=uc||n.level<2?4:0),_e(n,e5),n.status=ya,en(t),n.pending!==0)return n.last_flush=-1,wt}if(n.status===bg){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,en(t),n.pending!==0)return n.last_flush=-1,wt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=yg}if(n.status===yg){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),en(t),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,_e(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=wg}if(n.status===wg){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),en(t),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,_e(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i))}n.status=xg}if(n.status===xg){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(en(t),n.pending!==0))return n.last_flush=-1,wt;_e(n,t.adler&255),_e(n,t.adler>>8&255),t.adler=0}if(n.status=ya,en(t),n.pending!==0)return n.last_flush=-1,wt}if(t.avail_in!==0||n.lookahead!==0||e!==bi&&n.status!==ku){let i=n.level===0?kv(n,e):n.strategy===uc?r5(n,e):n.strategy===jR?n5(n,e):Ru[n.level].func(n,e);if((i===wa||i===Mo)&&(n.status=ku),i===Ft||i===wa)return t.avail_out===0&&(n.last_flush=-1),wt;if(i===Io&&(e===RR?LR(n):e!==Tv&&(dg(n,0,0,!1),e===OR&&(wi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),en(t),t.avail_out===0))return n.last_flush=-1,wt}return e!==pn?wt:n.wrap<=0?Nv:(n.wrap===2?(_e(n,t.adler&255),_e(n,t.adler>>8&255),_e(n,t.adler>>16&255),_e(n,t.adler>>24&255),_e(n,t.total_in&255),_e(n,t.total_in>>8&255),_e(n,t.total_in>>16&255),_e(n,t.total_in>>24&255)):(Lu(n,t.adler>>>16),Lu(n,t.adler&65535)),en(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?wt:Nv)},f5=t=>{if(Ou(t))return lr;const e=t.state.status;return t.state=null,e===ya?xa(t,zR):wt},l5=(t,e)=>{let n=e.length;if(Ou(t))return lr;const r=t.state,i=r.wrap;if(i===2||i===1&&r.status!==Do||r.lookahead)return lr;if(i===1&&(t.adler=Fu(t.adler,e,n,0)),r.wrap=0,n>=r.w_size){i===0&&(wi(r.head),r.strstart=0,r.block_start=0,r.insert=0);let f=new Uint8Array(r.w_size);f.set(e.subarray(n-r.w_size,n),0),e=f,n=r.w_size}const a=t.avail_in,o=t.next_in,s=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,To(r);r.lookahead>=me;){let f=r.strstart,u=r.lookahead-(me-1);do r.ins_h=xi(r,r.ins_h,r.window[f+me-1]),r.prev[f&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=f,f++;while(--u);r.strstart=f,r.lookahead=me-1,To(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=me-1,r.match_available=0,t.next_in=o,t.input=s,t.avail_in=a,r.wrap=i,wt};var c5=s5,h5=Ov,d5=Rv,g5=Lv,p5=o5,m5=u5,b5=f5,y5=l5,w5="pako deflate (from Nodeca project)",zu={deflateInit:c5,deflateInit2:h5,deflateReset:d5,deflateResetKeep:g5,deflateSetHeader:p5,deflate:m5,deflateEnd:b5,deflateSetDictionary:y5,deflateInfo:w5};const x5=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var v5=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const n=e.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)x5(n,r)&&(t[r]=n[r])}}return t},A5=t=>{let e=0;for(let r=0,i=t.length;r<i;r++)e+=t[r].length;const n=new Uint8Array(e);for(let r=0,i=0,a=t.length;r<a;r++){let o=t[r];n.set(o,i),i+=o.length}return n},lc={assign:v5,flattenChunks:A5};let zv=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{zv=!1}const Pu=new Uint8Array(256);for(let t=0;t<256;t++)Pu[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Pu[254]=Pu[254]=1;var E5=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let e,n,r,i,a,o=t.length,s=0;for(i=0;i<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(s),a=0,i=0;a<s;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|n&63):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|n&63):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|n&63);return e};const S5=(t,e)=>{if(e<65534&&t.subarray&&zv)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let n="";for(let r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n};var _5=(t,e)=>{const n=e||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=t[r++];if(o<128){a[i++]=o;continue}let s=Pu[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|t[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return S5(a,i)},C5=(t,e)=>{e=e||t.length,e>t.length&&(e=t.length);let n=e-1;for(;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+Pu[t[n]]>e?n:e},Uu={string2buf:E5,buf2string:_5,utf8border:C5};function D5(){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 Pv=D5;const Uv=Object.prototype.toString,{Z_NO_FLUSH:I5,Z_SYNC_FLUSH:M5,Z_FULL_FLUSH:T5,Z_FINISH:N5,Z_OK:cc,Z_STREAM_END:F5,Z_DEFAULT_COMPRESSION:B5,Z_DEFAULT_STRATEGY:k5,Z_DEFLATED:L5}=Bu;function Eg(t){this.options=lc.assign({level:B5,method:L5,chunkSize:16384,windowBits:15,memLevel:8,strategy:k5},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Pv,this.strm.avail_out=0;let n=zu.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==cc)throw new Error(Co[n]);if(e.header&&zu.deflateSetHeader(this.strm,e.header),e.dictionary){let r;if(typeof e.dictionary=="string"?r=Uu.string2buf(e.dictionary):Uv.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=zu.deflateSetDictionary(this.strm,r),n!==cc)throw new Error(Co[n]);this._dict_set=!0}}Eg.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(e===~~e?a=e:a=e===!0?N5:I5,typeof t=="string"?n.input=Uu.string2buf(t):Uv.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===M5||a===T5)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=zu.deflate(n,a),i===F5)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=zu.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===cc;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},Eg.prototype.onData=function(t){this.chunks.push(t)},Eg.prototype.onEnd=function(t){t===cc&&(this.result=lc.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const hc=16209,R5=16191;var O5=function(e,n){let r,i,a,o,s,f,u,l,c,h,d,g,b,y,w,E,_,D,T,N,M,R,C,k;const L=e.state;r=e.next_in,C=e.input,i=r+(e.avail_in-5),a=e.next_out,k=e.output,o=a-(n-e.avail_out),s=a+(e.avail_out-257),f=L.dmax,u=L.wsize,l=L.whave,c=L.wnext,h=L.window,d=L.hold,g=L.bits,b=L.lencode,y=L.distcode,w=(1<<L.lenbits)-1,E=(1<<L.distbits)-1;e:do{g<15&&(d+=C[r++]<<g,g+=8,d+=C[r++]<<g,g+=8),_=b[d&w];t:for(;;){if(D=_>>>24,d>>>=D,g-=D,D=_>>>16&255,D===0)k[a++]=_&65535;else if(D&16){T=_&65535,D&=15,D&&(g<D&&(d+=C[r++]<<g,g+=8),T+=d&(1<<D)-1,d>>>=D,g-=D),g<15&&(d+=C[r++]<<g,g+=8,d+=C[r++]<<g,g+=8),_=y[d&E];n:for(;;){if(D=_>>>24,d>>>=D,g-=D,D=_>>>16&255,D&16){if(N=_&65535,D&=15,g<D&&(d+=C[r++]<<g,g+=8,g<D&&(d+=C[r++]<<g,g+=8)),N+=d&(1<<D)-1,N>f){e.msg="invalid distance too far back",L.mode=hc;break e}if(d>>>=D,g-=D,D=a-o,N>D){if(D=N-D,D>l&&L.sane){e.msg="invalid distance too far back",L.mode=hc;break e}if(M=0,R=h,c===0){if(M+=u-D,D<T){T-=D;do k[a++]=h[M++];while(--D);M=a-N,R=k}}else if(c<D){if(M+=u+c-D,D-=c,D<T){T-=D;do k[a++]=h[M++];while(--D);if(M=0,c<T){D=c,T-=D;do k[a++]=h[M++];while(--D);M=a-N,R=k}}}else if(M+=c-D,D<T){T-=D;do k[a++]=h[M++];while(--D);M=a-N,R=k}for(;T>2;)k[a++]=R[M++],k[a++]=R[M++],k[a++]=R[M++],T-=3;T&&(k[a++]=R[M++],T>1&&(k[a++]=R[M++]))}else{M=a-N;do k[a++]=k[M++],k[a++]=k[M++],k[a++]=k[M++],T-=3;while(T>2);T&&(k[a++]=k[M++],T>1&&(k[a++]=k[M++]))}}else if(D&64){e.msg="invalid distance code",L.mode=hc;break e}else{_=y[(_&65535)+(d&(1<<D)-1)];continue n}break}}else if(D&64)if(D&32){L.mode=R5;break e}else{e.msg="invalid literal/length code",L.mode=hc;break e}else{_=b[(_&65535)+(d&(1<<D)-1)];continue t}break}}while(r<i&&a<s);T=g>>3,r-=T,g-=T<<3,d&=(1<<g)-1,e.next_in=r,e.next_out=a,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=a<s?257+(s-a):257-(a-s),L.hold=d,L.bits=g};const Fo=15,jv=852,Gv=592,Hv=0,Sg=1,Qv=2,z5=new Uint16Array([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]),P5=new Uint8Array([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]),U5=new Uint16Array([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]),j5=new Uint8Array([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]);var ju=(t,e,n,r,i,a,o,s)=>{const f=s.bits;let u=0,l=0,c=0,h=0,d=0,g=0,b=0,y=0,w=0,E=0,_,D,T,N,M,R=null,C;const k=new Uint16Array(Fo+1),L=new Uint16Array(Fo+1);let ee=null,ne,J,be;for(u=0;u<=Fo;u++)k[u]=0;for(l=0;l<r;l++)k[e[n+l]]++;for(d=f,h=Fo;h>=1&&k[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(c=1;c<h&&k[c]===0;c++);for(d<c&&(d=c),y=1,u=1;u<=Fo;u++)if(y<<=1,y-=k[u],y<0)return-1;if(y>0&&(t===Hv||h!==1))return-1;for(L[1]=0,u=1;u<Fo;u++)L[u+1]=L[u]+k[u];for(l=0;l<r;l++)e[n+l]!==0&&(o[L[e[n+l]]++]=l);if(t===Hv?(R=ee=o,C=20):t===Sg?(R=z5,ee=P5,C=257):(R=U5,ee=j5,C=0),E=0,l=0,u=c,M=a,g=d,b=0,T=-1,w=1<<d,N=w-1,t===Sg&&w>jv||t===Qv&&w>Gv)return 1;for(;;){ne=u-b,o[l]+1<C?(J=0,be=o[l]):o[l]>=C?(J=ee[o[l]-C],be=R[o[l]-C]):(J=32+64,be=0),_=1<<u-b,D=1<<g,c=D;do D-=_,i[M+(E>>b)+D]=ne<<24|J<<16|be|0;while(D!==0);for(_=1<<u-1;E&_;)_>>=1;if(_!==0?(E&=_-1,E+=_):E=0,l++,--k[u]===0){if(u===h)break;u=e[n+o[l]]}if(u>d&&(E&N)!==T){for(b===0&&(b=d),M+=c,g=u-b,y=1<<g;g+b<h&&(y-=k[g+b],!(y<=0));)g++,y<<=1;if(w+=1<<g,t===Sg&&w>jv||t===Qv&&w>Gv)return 1;T=E&N,i[T]=d<<24|g<<16|M-a|0}}return E!==0&&(i[M+E]=u-b<<24|64<<16|0),s.bits=d,0};const G5=0,Vv=1,qv=2,{Z_FINISH:Zv,Z_BLOCK:H5,Z_TREES:dc,Z_OK:va,Z_STREAM_END:Q5,Z_NEED_DICT:V5,Z_STREAM_ERROR:mn,Z_DATA_ERROR:Yv,Z_MEM_ERROR:Wv,Z_BUF_ERROR:q5,Z_DEFLATED:Xv}=Bu,gc=16180,$v=16181,Kv=16182,Jv=16183,eA=16184,tA=16185,nA=16186,rA=16187,iA=16188,aA=16189,pc=16190,Mr=16191,_g=16192,oA=16193,Cg=16194,sA=16195,uA=16196,fA=16197,lA=16198,mc=16199,bc=16200,cA=16201,hA=16202,dA=16203,gA=16204,pA=16205,Dg=16206,mA=16207,bA=16208,Ze=16209,yA=16210,wA=16211,Z5=852,Y5=592,W5=15,xA=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function X5(){this.strm=null,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=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Aa=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<gc||e.mode>wA?1:0},vA=t=>{if(Aa(t))return mn;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=gc,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(Z5),e.distcode=e.distdyn=new Int32Array(Y5),e.sane=1,e.back=-1,va},AA=t=>{if(Aa(t))return mn;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,vA(t)},EA=(t,e)=>{let n;if(Aa(t))return mn;const r=t.state;return e<0?(n=0,e=-e):(n=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?mn:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,AA(t))},SA=(t,e)=>{if(!t)return mn;const n=new X5;t.state=n,n.strm=t,n.window=null,n.mode=gc;const r=EA(t,e);return r!==va&&(t.state=null),r},$5=t=>SA(t,W5);let _A=!0,Ig,Mg;const K5=t=>{if(_A){Ig=new Int32Array(512),Mg=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(ju(Vv,t.lens,0,288,Ig,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;ju(qv,t.lens,0,32,Mg,0,t.work,{bits:5}),_A=!1}t.lencode=Ig,t.lenbits=9,t.distcode=Mg,t.distbits=5},CA=(t,e,n,r)=>{let i;const a=t.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(e.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(e.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(e.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},J5=(t,e)=>{let n,r,i,a,o,s,f,u,l,c,h,d,g,b,y=0,w,E,_,D,T,N,M,R;const C=new Uint8Array(4);let k,L;const ee=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Aa(t)||!t.output||!t.input&&t.avail_in!==0)return mn;n=t.state,n.mode===Mr&&(n.mode=_g),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,c=s,h=f,R=va;e:for(;;)switch(n.mode){case gc:if(n.wrap===0){n.mode=_g;break}for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0),u=0,l=0,n.mode=$v;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=Ze;break}if((u&15)!==Xv){t.msg="unknown compression method",n.mode=Ze;break}if(u>>>=4,l-=4,M=(u&15)+8,n.wbits===0&&(n.wbits=M),M>15||M>n.wbits){t.msg="invalid window size",n.mode=Ze;break}n.dmax=1<<n.wbits,n.flags=0,t.adler=n.check=1,n.mode=u&512?aA:Mr,u=0,l=0;break;case $v:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.flags=u,(n.flags&255)!==Xv){t.msg="unknown compression method",n.mode=Ze;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=Ze;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0)),u=0,l=0,n.mode=Kv;case Kv:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,C[2]=u>>>16&255,C[3]=u>>>24&255,n.check=gt(n.check,C,4,0)),u=0,l=0,n.mode=Jv;case Jv:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0)),u=0,l=0,n.mode=eA;case eA:if(n.flags&1024){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0)),u=0,l=0}else n.head&&(n.head.extra=null);n.mode=tA;case tA:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(M=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+d),M)),n.flags&512&&n.wrap&4&&(n.check=gt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=nA;case nA:if(n.flags&2048){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.name+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=gt(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=rA;case rA:if(n.flags&4096){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.comment+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=gt(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.comment=null);n.mode=iA;case iA:if(n.flags&512){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&4&&u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=Ze;break}u=0,l=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=Mr;break;case aA:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}t.adler=n.check=xA(u),u=0,l=0,n.mode=pc;case pc:if(n.havedict===0)return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,V5;t.adler=n.check=1,n.mode=Mr;case Mr:if(e===H5||e===dc)break e;case _g:if(n.last){u>>>=l&7,l-=l&7,n.mode=Dg;break}for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}switch(n.last=u&1,u>>>=1,l-=1,u&3){case 0:n.mode=oA;break;case 1:if(K5(n),n.mode=mc,e===dc){u>>>=2,l-=2;break e}break;case 2:n.mode=uA;break;case 3:t.msg="invalid block type",n.mode=Ze}u>>>=2,l-=2;break;case oA:for(u>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=Ze;break}if(n.length=u&65535,u=0,l=0,n.mode=Cg,e===dc)break e;case Cg:n.mode=sA;case sA:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,f-=d,o+=d,n.length-=d;break}n.mode=Mr;break;case uA:for(;l<14;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.nlen=(u&31)+257,u>>>=5,l-=5,n.ndist=(u&31)+1,u>>>=5,l-=5,n.ncode=(u&15)+4,u>>>=4,l-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=Ze;break}n.have=0,n.mode=fA;case fA:for(;n.have<n.ncode;){for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.lens[ee[n.have++]]=u&7,u>>>=3,l-=3}for(;n.have<19;)n.lens[ee[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,k={bits:n.lenbits},R=ju(G5,n.lens,0,19,n.lencode,0,n.work,k),n.lenbits=k.bits,R){t.msg="invalid code lengths set",n.mode=Ze;break}n.have=0,n.mode=lA;case lA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(_<16)u>>>=w,l-=w,n.lens[n.have++]=_;else{if(_===16){for(L=w+2;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u>>>=w,l-=w,n.have===0){t.msg="invalid bit length repeat",n.mode=Ze;break}M=n.lens[n.have-1],d=3+(u&3),u>>>=2,l-=2}else if(_===17){for(L=w+3;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=3+(u&7),u>>>=3,l-=3}else{for(L=w+7;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=11+(u&127),u>>>=7,l-=7}if(n.have+d>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=Ze;break}for(;d--;)n.lens[n.have++]=M}}if(n.mode===Ze)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=Ze;break}if(n.lenbits=9,k={bits:n.lenbits},R=ju(Vv,n.lens,0,n.nlen,n.lencode,0,n.work,k),n.lenbits=k.bits,R){t.msg="invalid literal/lengths set",n.mode=Ze;break}if(n.distbits=6,n.distcode=n.distdyn,k={bits:n.distbits},R=ju(qv,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,k),n.distbits=k.bits,R){t.msg="invalid distances set",n.mode=Ze;break}if(n.mode=mc,e===dc)break e;case mc:n.mode=bc;case bc:if(s>=6&&f>=258){t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,O5(t,h),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,n.mode===Mr&&(n.back=-1);break}for(n.back=0;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(E&&!(E&240)){for(D=w,T=E,N=_;y=n.lencode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,n.length=_,E===0){n.mode=pA;break}if(E&32){n.back=-1,n.mode=Mr;break}if(E&64){t.msg="invalid literal/length code",n.mode=Ze;break}n.extra=E&15,n.mode=cA;case cA:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=hA;case hA:for(;y=n.distcode[u&(1<<n.distbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(!(E&240)){for(D=w,T=E,N=_;y=n.distcode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,E&64){t.msg="invalid distance code",n.mode=Ze;break}n.offset=_,n.extra=E&15,n.mode=dA;case dA:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=Ze;break}n.mode=gA;case gA:if(f===0)break e;if(d=h-f,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=Ze;break}d>n.wnext?(d-=n.wnext,g=n.wsize-d):g=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,g=o-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[o++]=b[g++];while(--d);n.length===0&&(n.mode=bc);break;case pA:if(f===0)break e;i[o++]=n.length,f--,n.mode=bc;break;case Dg:if(n.wrap){for(;l<32;){if(s===0)break e;s--,u|=r[a++]<<l,l+=8}if(h-=f,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?gt(n.check,i,h,o-h):Fu(n.check,i,h,o-h)),h=f,n.wrap&4&&(n.flags?u:xA(u))!==n.check){t.msg="incorrect data check",n.mode=Ze;break}u=0,l=0}n.mode=mA;case mA:if(n.wrap&&n.flags){for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&4&&u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=Ze;break}u=0,l=0}n.mode=bA;case bA:R=Q5;break e;case Ze:R=Yv;break e;case yA:return Wv;case wA:default:return mn}return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,(n.wsize||h!==t.avail_out&&n.mode<Ze&&(n.mode<Dg||e!==Zv))&&CA(t,t.output,t.next_out,h-t.avail_out),c-=t.avail_in,h-=t.avail_out,t.total_in+=c,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?gt(n.check,i,h,t.next_out-h):Fu(n.check,i,h,t.next_out-h)),t.data_type=n.bits+(n.last?64:0)+(n.mode===Mr?128:0)+(n.mode===mc||n.mode===Cg?256:0),(c===0&&h===0||e===Zv)&&R===va&&(R=q5),R},eO=t=>{if(Aa(t))return mn;let e=t.state;return e.window&&(e.window=null),t.state=null,va},tO=(t,e)=>{if(Aa(t))return mn;const n=t.state;return n.wrap&2?(n.head=e,e.done=!1,va):mn},nO=(t,e)=>{const n=e.length;let r,i,a;return Aa(t)||(r=t.state,r.wrap!==0&&r.mode!==pc)?mn:r.mode===pc&&(i=1,i=Fu(i,e,n,0),i!==r.check)?Yv:(a=CA(t,e,n,n),a?(r.mode=yA,Wv):(r.havedict=1,va))};var rO=AA,iO=EA,aO=vA,oO=$5,sO=SA,uO=J5,fO=eO,lO=tO,cO=nO,hO="pako inflate (from Nodeca project)",Tr={inflateReset:rO,inflateReset2:iO,inflateResetKeep:aO,inflateInit:oO,inflateInit2:sO,inflate:uO,inflateEnd:fO,inflateGetHeader:lO,inflateSetDictionary:cO,inflateInfo:hO};function dO(){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}var gO=dO;const DA=Object.prototype.toString,{Z_NO_FLUSH:pO,Z_FINISH:mO,Z_OK:Gu,Z_STREAM_END:Tg,Z_NEED_DICT:Ng,Z_STREAM_ERROR:bO,Z_DATA_ERROR:IA,Z_MEM_ERROR:yO}=Bu;function Hu(t){this.options=lc.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Pv,this.strm.avail_out=0;let n=Tr.inflateInit2(this.strm,e.windowBits);if(n!==Gu)throw new Error(Co[n]);if(this.header=new gO,Tr.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Uu.string2buf(e.dictionary):DA.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=Tr.inflateSetDictionary(this.strm,e.dictionary),n!==Gu)))throw new Error(Co[n])}Hu.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?mO:pO,DA.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=Tr.inflate(n,o),a===Ng&&i&&(a=Tr.inflateSetDictionary(n,i),a===Gu?a=Tr.inflate(n,o):a===IA&&(a=Ng));n.avail_in>0&&a===Tg&&n.state.wrap>0&&t[n.next_in]!==0;)Tr.inflateReset(n),a=Tr.inflate(n,o);switch(a){case bO:case IA:case Ng:case yO:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===Tg))if(this.options.to==="string"){let f=Uu.utf8border(n.output,n.next_out),u=n.next_out-f,l=Uu.buf2string(n.output,f);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(f,f+u),0),this.onData(l)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===Gu&&s===0)){if(a===Tg)return a=Tr.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Hu.prototype.onData=function(t){this.chunks.push(t)},Hu.prototype.onEnd=function(t){t===Gu&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=lc.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function Fg(t,e){const n=new Hu(e);if(n.push(t),n.err)throw n.msg||Co[n.err];return n.result}function wO(t,e){return e=e||{},e.raw=!0,Fg(t,e)}var xO=Hu,vO=Fg,AO=wO,EO=Fg,SO=Bu,_O={Inflate:xO,inflate:vO,inflateRaw:AO,ungzip:EO,constants:SO};const{Inflate:$7,inflate:K7,inflateRaw:CO,ungzip:J7}=_O;var DO=CO;function IO(t){return DO(t.subarray(2))}let MO=class extends Error{constructor(e){super(e),this.code="ERR_ABORTED"}};function TO(t){t.sort((i,a)=>Number(i.offset)-Number(a.offset));const e=[];let n,r;for(const i of t)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):e.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return e}function yc(t){if(t&&t.aborted)if(typeof DOMException>"u"){const e=new MO("aborted");throw e.code="ERR_ABORTED",e}else throw new DOMException("aborted","AbortError")}const NO=1,FO=2,BO=3;function Bg(t,e,n,r){return t<r&&e>=n}function kO(t){const e=t?"big":"little",n=new Me().endianess(e).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Me().endianess(e).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Me().endianess(e).array("blocksToFetch",{length:"cnt",type:new Me().endianess(e).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Me().array("recurOffsets",{length:"cnt",type:new Me().endianess(e).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Me().endianess(e).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Me().endianess(e).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[BO]:new Me().array("items",{length:"itemCount",type:new Me().floatle("score")}),[FO]:new Me().array("items",{length:"itemCount",type:new Me().endianess(e).int32("start").floatle("score")}),[NO]:new Me().array("items",{length:"itemCount",type:new Me().endianess(e).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class MA{constructor(e,n,r,i,a,o){if(this.bbi=e,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new ac({cache:new ng({maxSize:1e3}),fill:async(f,u)=>{const l=Number(f.length),c=Number(f.offset),{buffer:h}=await this.bbi.read(bt.Buffer.alloc(l),0,l,c,{signal:u});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=kO(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(e,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:f,isBigEndian:u}=this,l=o[e];l===void 0&&i.complete();const c={chrId:l,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(bt.Buffer.alloc(48),0,48,Number(f),a));const{buffer:h}=await this.cirTreePromise,d=u?h.readUInt32BE(4):h.readUInt32LE(4);let g=[],b=0;const y=(D,T,N)=>{try{const M=D.subarray(T),R=this.leafParser.parse(M);if(R.blocksToFetch&&(g=g.concat(R.blocksToFetch.filter(C=>w(C)).map(C=>({offset:C.blockOffset,length:C.blockSize})))),R.recurOffsets){const C=R.recurOffsets.filter(k=>w(k)).map(k=>Number(k.blockOffset));C.length>0&&_(C,N+1)}}catch(M){i.error(M)}},w=D=>{const{startChrom:T,startBase:N,endChrom:M,endBase:R}=D;return(T<l||T===l&&N<=r)&&(M>l||M===l&&R>=n)},E=async(D,T,N)=>{try{const M=T.max()-T.min(),R=T.min(),C=await this.featureCache.get(`${M}_${R}`,{length:M,offset:R},a==null?void 0:a.signal);for(const k of D)T.contains(k)&&(y(C,k-R,N),b-=1,b===0&&this.readFeatures(i,g,{...a,request:c}))}catch(M){i.error(M)}},_=(D,T)=>{try{b+=D.length;const N=4+Number(d)*32;let M=new pi(D[0],D[0]+N);for(let R=1;R<D.length;R+=1){const C=new pi(D[R],D[R]+N);M=M.union(C)}M.getRanges().map(R=>E(D,R,T))}catch(N){i.error(N)}};return _([Number(f)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(e,n,r){const i=[];let a=n;const o=new DataView(e.buffer,e.byteOffset,e.length);for(;a<e.byteLength;){const s=o.getUint32(a,!0);a+=4;const f=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const c=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&Bg(f,u,r.start,r.end))&&i.push({start:f,end:u,maxScore:h,minScore:c,summary:!0,score:d/(l||1)})}return i}parseBigBedBlock(e,n,r,i){const a=[];let o=n;for(;o<e.byteLength;){const s=this.bigBedParser.parse(e.subarray(o));a.push({...s,uniqueId:`bb-${r+o}`}),o+=s.offset}return i?a.filter(s=>Bg(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(e,n,r){const i=e.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const f=a.getUint32(o,!0);o+=4;const u=a.getUint32(o,!0);o+=4;const l=a.getUint8(o);o+=2;const c=a.getUint16(o,!0);o+=2;const h=new Array(c);switch(l){case 1:{for(let d=0;d<c;d++){const g=a.getInt32(o,!0);o+=4;const b=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:g,end:b,score:y}}break}case 2:{for(let d=0;d<c;d++){const g=a.getInt32(o,!0);o+=4;const b=a.getFloat32(o,!0);o+=4,h[d]={score:b,start:g,end:g+u}}break}case 3:{for(let d=0;d<c;d++){const g=a.getFloat32(o,!0);o+=4;const b=s+d*f;h[d]={score:g,start:b,end:b+u}}break}}return r?h.filter(d=>Bg(d.start,d.end,r.start,r.end)):h}async readFeatures(e,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,f=TO(n);yc(o),await Promise.all(f.map(async u=>{yc(o);const{length:l,offset:c}=u,h=await this.featureCache.get(`${l}_${c}`,u,o);for(const d of u.blocks){yc(o);let g=Number(d.offset)-Number(u.offset),b=h;switch(a&&(b=IO(h.subarray(g)),g=0),yc(o),i){case"summary":{e.next(this.parseSummaryBlock(b,g,s));break}case"bigwig":{e.next(this.parseBigWigBlock(b,g,s));break}case"bigbed":{e.next(this.parseBigBedBlock(b,g,Number(d.offset)*(1<<8),s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),e.complete()}catch(i){e.error(i)}}}var kg=function(t,e){return kg=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},kg(t,e)};function Lg(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");kg(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function LO(t,e,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(l){try{u(r.next(l))}catch(c){o(c)}}function f(l){try{u(r.throw(l))}catch(c){o(c)}}function u(l){l.done?a(l.value):i(l.value).then(s,f)}u((r=r.apply(t,e||[])).next())})}function TA(t,e){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(u){return function(l){return f([u,l])}}function f(u){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(a=u[0]&2?i.return:u[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,u[1])).done)return a;switch(i=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]<a[3])){n.label=u[1];break}if(u[0]===6&&n.label<a[1]){n.label=a[1],a=u;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(u);break}a[2]&&n.ops.pop(),n.trys.pop();continue}u=e.call(t,n)}catch(l){u=[6,l],i=0}finally{r=a=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function Qu(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function wc(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var r=n.call(t),i,a=[],o;try{for(;(e===void 0||e-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function xc(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,a;r<i;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return t.concat(a||Array.prototype.slice.call(e))}function Bo(t){return this instanceof Bo?(this.v=t,this):new Bo(t)}function RO(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(g,b){a.push([h,d,g,b])>1||s(h,d)})})}function s(h,d){try{f(r[h](d))}catch(g){c(a[0][3],g)}}function f(h){h.value instanceof Bo?Promise.resolve(h.value.v).then(u,l):c(a[0][2],h)}function u(h){s("next",h)}function l(h){s("throw",h)}function c(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function OO(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof Qu=="function"?Qu(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=t[a]&&function(o){return new Promise(function(s,f){o=t[a](o),i(s,f,o.done,o.value)})}}function i(a,o,s,f){Promise.resolve(f).then(function(u){a({value:u,done:s})},o)}}function ut(t){return typeof t=="function"}function NA(t){var e=function(r){Error.call(r),r.stack=new Error().stack},n=t(e);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Rg=NA(function(t){return function(n){t(this),this.message=n?n.length+` errors occurred during unsubscription:
|
|
174
|
+
*/var dn=null;try{dn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Ge(t,e,n){this.low=t|0,this.high=e|0,this.unsigned=!!n}Ge.prototype.__isLong__,Object.defineProperty(Ge.prototype,"__isLong__",{value:!0});function Ct(t){return(t&&t.__isLong__)===!0}function V2(t){var e=Math.clz32(t&-t);return t?31-e:e}Ge.isLong=Ct;var q2={},Z2={};function ga(t,e){var n,r,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(r=Z2[t],r)?r:(n=Ee(t,0,!0),i&&(Z2[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(r=q2[t],r)?r:(n=Ee(t,t<0?-1:0,!1),i&&(q2[t]=n),n))}Ge.fromInt=ga;function gn(t,e){if(isNaN(t))return e?Dr:zn;if(e){if(t<0)return Dr;if(t>=W2)return ev}else{if(t<=-X2)return jt;if(t+1>=X2)return J2}return t<0?gn(-t,e).neg():Ee(t%xo|0,t/xo|0,e)}Ge.fromNumber=gn;function Ee(t,e,n){return new Ge(t,e,n)}Ge.fromBits=Ee;var Kl=Math.pow;function Y0(t,e,n){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(n=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?Dr:zn;if(n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Y0(t.substring(1),e,n).neg();for(var i=gn(Kl(n,8)),a=zn,o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),f=parseInt(t.substring(o,o+s),n);if(s<8){var u=gn(Kl(n,s));a=a.mul(u).add(gn(f))}else a=a.mul(i),a=a.add(gn(f))}return a.unsigned=e,a}Ge.fromString=Y0;function On(t,e){return typeof t=="number"?gn(t,e):typeof t=="string"?Y0(t,e):Ee(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Ge.fromValue=On;var Y2=1<<16,FL=1<<24,xo=Y2*Y2,W2=xo*xo,X2=W2/2,$2=ga(FL),zn=ga(0);Ge.ZERO=zn;var Dr=ga(0,!0);Ge.UZERO=Dr;var vo=ga(1);Ge.ONE=vo;var K2=ga(1,!0);Ge.UONE=K2;var W0=ga(-1);Ge.NEG_ONE=W0;var J2=Ee(-1,2147483647,!1);Ge.MAX_VALUE=J2;var ev=Ee(-1,-1,!0);Ge.MAX_UNSIGNED_VALUE=ev;var jt=Ee(0,-2147483648,!1);Ge.MIN_VALUE=jt;var Z=Ge.prototype;Z.toInt=function(){return this.unsigned?this.low>>>0:this.low},Z.toNumber=function(){return this.unsigned?(this.high>>>0)*xo+(this.low>>>0):this.high*xo+(this.low>>>0)},Z.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(jt)){var n=gn(e),r=this.div(n),i=r.mul(n).sub(this);return r.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var a=gn(Kl(e,6),this.unsigned),o=this,s="";;){var f=o.div(a),u=o.sub(f.mul(a)).toInt()>>>0,l=u.toString(e);if(o=f,o.isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},Z.getHighBits=function(){return this.high},Z.getHighBitsUnsigned=function(){return this.high>>>0},Z.getLowBits=function(){return this.low},Z.getLowBitsUnsigned=function(){return this.low>>>0},Z.getNumBitsAbs=function(){if(this.isNegative())return this.eq(jt)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,n=31;n>0&&!(e&1<<n);n--);return this.high!=0?n+33:n+1},Z.isZero=function(){return this.high===0&&this.low===0},Z.eqz=Z.isZero,Z.isNegative=function(){return!this.unsigned&&this.high<0},Z.isPositive=function(){return this.unsigned||this.high>=0},Z.isOdd=function(){return(this.low&1)===1},Z.isEven=function(){return(this.low&1)===0},Z.equals=function(e){return Ct(e)||(e=On(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low},Z.eq=Z.equals,Z.notEquals=function(e){return!this.eq(e)},Z.neq=Z.notEquals,Z.ne=Z.notEquals,Z.lessThan=function(e){return this.comp(e)<0},Z.lt=Z.lessThan,Z.lessThanOrEqual=function(e){return this.comp(e)<=0},Z.lte=Z.lessThanOrEqual,Z.le=Z.lessThanOrEqual,Z.greaterThan=function(e){return this.comp(e)>0},Z.gt=Z.greaterThan,Z.greaterThanOrEqual=function(e){return this.comp(e)>=0},Z.gte=Z.greaterThanOrEqual,Z.ge=Z.greaterThanOrEqual,Z.compare=function(e){if(Ct(e)||(e=On(e)),this.eq(e))return 0;var n=this.isNegative(),r=e.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},Z.comp=Z.compare,Z.negate=function(){return!this.unsigned&&this.eq(jt)?jt:this.not().add(vo)},Z.neg=Z.negate,Z.add=function(e){Ct(e)||(e=On(e));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=e.high>>>16,s=e.high&65535,f=e.low>>>16,u=e.low&65535,l=0,c=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,l+=c>>>16,c&=65535,l+=n+o,l&=65535,Ee(h<<16|d,l<<16|c,this.unsigned)},Z.subtract=function(e){return Ct(e)||(e=On(e)),this.add(e.neg())},Z.sub=Z.subtract,Z.multiply=function(e){if(this.isZero())return this;if(Ct(e)||(e=On(e)),dn){var n=dn.mul(this.low,this.high,e.low,e.high);return Ee(n,dn.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?Dr:zn;if(this.eq(jt))return e.isOdd()?jt:zn;if(e.eq(jt))return this.isOdd()?jt:zn;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt($2)&&e.lt($2))return gn(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=e.high>>>16,f=e.high&65535,u=e.low>>>16,l=e.low&65535,c=0,h=0,d=0,g=0;return g+=o*l,d+=g>>>16,g&=65535,d+=a*l,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*l+i*u+a*f+o*s,c&=65535,Ee(d<<16|g,c<<16|h,this.unsigned)},Z.mul=Z.multiply,Z.divide=function(e){if(Ct(e)||(e=On(e)),e.isZero())throw Error("division by zero");if(dn){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var n=(this.unsigned?dn.div_u:dn.div_s)(this.low,this.high,e.low,e.high);return Ee(n,dn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Dr:zn;var r,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Dr;if(e.gt(this.shru(1)))return K2;a=Dr}else{if(this.eq(jt)){if(e.eq(vo)||e.eq(W0))return jt;if(e.eq(jt))return vo;var o=this.shr(1);return r=o.div(e).shl(1),r.eq(zn)?e.isNegative()?vo:W0:(i=this.sub(e.mul(r)),a=r.add(i.div(e)),a)}else if(e.eq(jt))return this.unsigned?Dr:zn;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=zn}for(i=this;i.gte(e);){r=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:Kl(2,s-48),u=gn(r),l=u.mul(e);l.isNegative()||l.gt(i);)r-=f,u=gn(r,this.unsigned),l=u.mul(e);u.isZero()&&(u=vo),a=a.add(u),i=i.sub(l)}return a},Z.div=Z.divide,Z.modulo=function(e){if(Ct(e)||(e=On(e)),dn){var n=(this.unsigned?dn.rem_u:dn.rem_s)(this.low,this.high,e.low,e.high);return Ee(n,dn.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))},Z.mod=Z.modulo,Z.rem=Z.modulo,Z.not=function(){return Ee(~this.low,~this.high,this.unsigned)},Z.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},Z.clz=Z.countLeadingZeros,Z.countTrailingZeros=function(){return this.low?V2(this.low):V2(this.high)+32},Z.ctz=Z.countTrailingZeros,Z.and=function(e){return Ct(e)||(e=On(e)),Ee(this.low&e.low,this.high&e.high,this.unsigned)},Z.or=function(e){return Ct(e)||(e=On(e)),Ee(this.low|e.low,this.high|e.high,this.unsigned)},Z.xor=function(e){return Ct(e)||(e=On(e)),Ee(this.low^e.low,this.high^e.high,this.unsigned)},Z.shiftLeft=function(e){return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ee(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Ee(0,this.low<<e-32,this.unsigned)},Z.shl=Z.shiftLeft,Z.shiftRight=function(e){return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ee(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Ee(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},Z.shr=Z.shiftRight,Z.shiftRightUnsigned=function(e){return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ee(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?Ee(this.high,0,this.unsigned):Ee(this.high>>>e-32,0,this.unsigned)},Z.shru=Z.shiftRightUnsigned,Z.shr_u=Z.shiftRightUnsigned,Z.rotateLeft=function(e){var n;return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Ee(this.high,this.low,this.unsigned):e<32?(n=32-e,Ee(this.low<<e|this.high>>>n,this.high<<e|this.low>>>n,this.unsigned)):(e-=32,n=32-e,Ee(this.high<<e|this.low>>>n,this.low<<e|this.high>>>n,this.unsigned))},Z.rotl=Z.rotateLeft,Z.rotateRight=function(e){var n;return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Ee(this.high,this.low,this.unsigned):e<32?(n=32-e,Ee(this.high<<n|this.low>>>e,this.low<<n|this.high>>>e,this.unsigned)):(e-=32,n=32-e,Ee(this.low<<n|this.high>>>e,this.high<<n|this.low>>>e,this.unsigned))},Z.rotr=Z.rotateRight,Z.toSigned=function(){return this.unsigned?Ee(this.low,this.high,!1):this},Z.toUnsigned=function(){return this.unsigned?this:Ee(this.low,this.high,!0)},Z.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},Z.toBytesLE=function(){var e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]},Z.toBytesBE=function(){var e=this.high,n=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Ge.fromBytes=function(e,n,r){return r?Ge.fromBytesLE(e,n):Ge.fromBytesBE(e,n)},Ge.fromBytesLE=function(e,n){return new Ge(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,n)},Ge.fromBytesBE=function(e,n){return new Ge(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],n)};function tv(t,e){return t.offset+t.lineBytes*Math.floor(e/t.lineLength)+e%t.lineLength}async function BL(t,e){const n=await t.readFile(e);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class kL{constructor({fasta:e,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(e)this.fasta=e;else if(r)this.fasta=new Jt(r);else throw new Error("Need to pass filehandle for fasta or path to localfile");if(n)this.fai=n;else if(i)this.fai=new Jt(i);else if(r)this.fai=new Jt(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=a}async _getIndexes(e){return this.indexes||(this.indexes=BL(this.fai,e)),this.indexes}async getSequenceNames(e){return Object.keys((await this._getIndexes(e)).name)}async getSequenceSizes(e){const n={},r=await this._getIndexes(e),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(e,n){var r;return(r=(await this._getIndexes(n)).name[e])===null||r===void 0?void 0:r.length}async hasReferenceSequence(e,n){return!!(await this._getIndexes(n)).name[e]}async getResiduesById(e,n,r,i){const a=(await this._getIndexes(i)).id[e];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(e,n,r,i){const a=(await this._getIndexes(i)).name[e];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(e,n,r,i){return this.getResiduesByName(e,n,r,i)}async _fetchFromIndexEntry(e,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>e.length)&&(a=e.length),n>=a)return"";const o=tv(e,n),s=tv(e,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const f=Buffer.allocUnsafe(s);return await this.fasta.read(f,0,s,o,i),f.toString("utf8").replace(/\s+/g,"")}}function Au(t){return class extends t{constructor(){super(...arguments);an(this,"lastQuantizedInterval",[0,0])}quantizeInterval(r,i){return[Math.max(Math.floor(r[0]/i-1)*i,0),Math.min(Math.ceil(r[1]/i+1)*i,this.genome.totalSize)]}checkAndUpdateLastInterval(r){return Rf(this.lastQuantizedInterval,r)?!1:(this.lastQuantizedInterval=r,!0)}}}function Eu(t,e){return!e||/^(data:|([A-Za-z]+:)?\/\/)/.test(t)||t.startsWith("/")?t:(e.endsWith("/")||(e+="/"),e+t)}typeof window<"u"&&(window.Buffer=bt.Buffer);class LL extends Au(ra){constructor(e,n){const r={channel:"x",windowSize:7e3,...e};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");const i=a=>new nr(Eu(a,this.view.getBaseUrl()));this.fasta=new kL({fasta:i(this.params.url),fai:i(this.params.indexUrl??this.params.url+".fai")})}async onDomainChanged(e){const n=this.params.windowSize;if(e[1]-e[0]>n)return;const r=this.quantizeInterval(e,n);if(this.checkAndUpdateLastInterval(r)){const i=this.genome.continuousToDiscreteChromosomeIntervals(r),a=await Promise.all(i.map(o=>this.fasta.getSequence(o.chrom,o.startPos,o.endPos).then(s=>({chrom:o.chrom,start:o.startPos,sequence:s}))));this.publishData(a)}}}const Jl=BigInt(32);function RL(t,e,n){const r=+!!n,i=+!n;return BigInt(t.getInt32(e,n)*i+t.getInt32(e+4,n)*r)<<Jl|BigInt(t.getUint32(e,n)*r+t.getUint32(e+4,n)*i)}function OL(t,e,n){const r=t.getUint32(e,n),i=t.getUint32(e+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<Jl|BigInt(r*a+i*o)}function zL(t,e,n,r){const i=Number(n>>Jl),a=Number(n&BigInt(4294967295));r?(t.setInt32(e+4,i,r),t.setUint32(e,a,r)):(t.setInt32(e,i,r),t.setUint32(e+4,a,r))}function PL(t,e,n,r){const i=Number(n>>Jl),a=Number(n&BigInt(4294967295));r?(t.setUint32(e+4,i,r),t.setUint32(e,a,r)):(t.setUint32(e,i,r),t.setUint32(e+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(t,e){return RL(this,t,e)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(t,e){return OL(this,t,e)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(t,e,n){zL(this,t,e,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(t,e,n){PL(this,t,e,n)});class UL{constructor(e,n){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references=new Map,this.imports=[],this.reverseImports=new Map,this.useContextVariables=!1,this.importPath=e,this.useContextVariables=n}generateVariable(e){const n=[...this.scopes[this.scopes.length-1]];return e&&n.push(e),n.join(".")}generateOption(e){switch(typeof e){case"number":return e.toString();case"string":return this.generateVariable(e);case"function":return`${this.addImport(e)}.call(${this.generateVariable()}, vars)`}}generateError(e){this.pushCode(`throw new Error(${e});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(e){this.code+=e+`
|
|
175
|
+
`}pushPath(e){e&&this.scopes[this.scopes.length-1].push(e)}popPath(e){e&&this.scopes[this.scopes.length-1].pop()}pushScope(e){this.scopes.push([e])}popScope(){this.scopes.pop()}addImport(e){if(!this.importPath)return`(${e})`;let n=this.reverseImports.get(e);return n||(n=this.imports.push(e)-1,this.reverseImports.set(e,n)),`${this.importPath}[${n}]`}addReference(e){this.references.has(e)||this.references.set(e,{resolved:!1,requested:!1})}markResolved(e){const n=this.references.get(e);n&&(n.resolved=!0)}markRequested(e){e.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([e,n])=>!n.resolved&&!n.requested).map(([e,n])=>e)}}const Pn=new Map,pa="___parser_",Un={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},ec={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},tc={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1};let Me=class Vn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Vn}primitiveGenerateN(e,n){const r=ec[e],i=tc[e];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Un[e]};`)}primitiveN(e,n,r){return this.setNextParser(e,n,r)}useThisEndian(e){return e+this.endian.toLowerCase()}uint8(e,n={}){return this.primitiveN("uint8",e,n)}uint16(e,n={}){return this.primitiveN(this.useThisEndian("uint16"),e,n)}uint16le(e,n={}){return this.primitiveN("uint16le",e,n)}uint16be(e,n={}){return this.primitiveN("uint16be",e,n)}uint32(e,n={}){return this.primitiveN(this.useThisEndian("uint32"),e,n)}uint32le(e,n={}){return this.primitiveN("uint32le",e,n)}uint32be(e,n={}){return this.primitiveN("uint32be",e,n)}int8(e,n={}){return this.primitiveN("int8",e,n)}int16(e,n={}){return this.primitiveN(this.useThisEndian("int16"),e,n)}int16le(e,n={}){return this.primitiveN("int16le",e,n)}int16be(e,n={}){return this.primitiveN("int16be",e,n)}int32(e,n={}){return this.primitiveN(this.useThisEndian("int32"),e,n)}int32le(e,n={}){return this.primitiveN("int32le",e,n)}int32be(e,n={}){return this.primitiveN("int32be",e,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(e,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),e,n)}int64be(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",e,n)}int64le(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",e,n)}uint64(e,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),e,n)}uint64be(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",e,n)}uint64le(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",e,n)}floatle(e,n={}){return this.primitiveN("floatle",e,n)}floatbe(e,n={}){return this.primitiveN("floatbe",e,n)}doublele(e,n={}){return this.primitiveN("doublele",e,n)}doublebe(e,n={}){return this.primitiveN("doublebe",e,n)}bitN(e,n,r){return r.length=e,this.setNextParser("bit",n,r)}bit1(e,n={}){return this.bitN(1,e,n)}bit2(e,n={}){return this.bitN(2,e,n)}bit3(e,n={}){return this.bitN(3,e,n)}bit4(e,n={}){return this.bitN(4,e,n)}bit5(e,n={}){return this.bitN(5,e,n)}bit6(e,n={}){return this.bitN(6,e,n)}bit7(e,n={}){return this.bitN(7,e,n)}bit8(e,n={}){return this.bitN(8,e,n)}bit9(e,n={}){return this.bitN(9,e,n)}bit10(e,n={}){return this.bitN(10,e,n)}bit11(e,n={}){return this.bitN(11,e,n)}bit12(e,n={}){return this.bitN(12,e,n)}bit13(e,n={}){return this.bitN(13,e,n)}bit14(e,n={}){return this.bitN(14,e,n)}bit15(e,n={}){return this.bitN(15,e,n)}bit16(e,n={}){return this.bitN(16,e,n)}bit17(e,n={}){return this.bitN(17,e,n)}bit18(e,n={}){return this.bitN(18,e,n)}bit19(e,n={}){return this.bitN(19,e,n)}bit20(e,n={}){return this.bitN(20,e,n)}bit21(e,n={}){return this.bitN(21,e,n)}bit22(e,n={}){return this.bitN(22,e,n)}bit23(e,n={}){return this.bitN(23,e,n)}bit24(e,n={}){return this.bitN(24,e,n)}bit25(e,n={}){return this.bitN(25,e,n)}bit26(e,n={}){return this.bitN(26,e,n)}bit27(e,n={}){return this.bitN(27,e,n)}bit28(e,n={}){return this.bitN(28,e,n)}bit29(e,n={}){return this.bitN(29,e,n)}bit30(e,n={}){return this.bitN(30,e,n)}bit31(e,n={}){return this.bitN(31,e,n)}bit32(e,n={}){return this.bitN(32,e,n)}namely(e){return Pn.set(e,this),this.alias=e,this}skip(e,n={}){return this.seek(e,n)}seek(e,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:e})}string(e,n){if(!n.zeroTerminated&&!n.length&&!n.greedy)throw new Error("One of length, zeroTerminated, or greedy must be defined for string.");if((n.zeroTerminated||n.length)&&n.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(n.stripNull&&!(n.length||n.greedy))throw new Error("length or greedy must be defined if stripNull is enabled.");return n.encoding=n.encoding||"utf8",this.setNextParser("string",e,n)}buffer(e,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",e,n)}wrapped(e,n){if(typeof n!="object"&&typeof e=="object"&&(n=e,e=""),!n||!n.wrapper||!n.type)throw new Error("Both wrapper and type must be defined for wrapped.");if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for wrapped.");return this.setNextParser("wrapper",e,n)}array(e,n){if(!n.readUntil&&!n.length&&!n.lengthInBytes)throw new Error("One of readUntil, length and lengthInBytes must be defined for array.");if(!n.type)throw new Error("type is required for array.");if(typeof n.type=="string"&&!Pn.has(n.type)&&!(n.type in Un))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",e,n)}choice(e,n){if(typeof n!="object"&&typeof e=="object"&&(n=e,e=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!Pn.has(a)&&!(a in Un))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",e,n)}nest(e,n){if(typeof n!="object"&&typeof e=="object"&&(n=e,e=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof Vn)&&!Pn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Vn)&&!e)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",e,n)}pointer(e,n){if(!n.offset)throw new Error("offset is required for pointer.");if(!n.type)throw new Error("type is required for pointer.");if(typeof n.type=="string"&&!(n.type in Un)&&!Pn.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",e,n)}saveOffset(e,n={}){return this.setNextParser("saveOffset",e,n)}endianness(e){switch(e.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error('endianness must be one of "little" or "big"')}return this}endianess(e){return this.endianness(e)}useContextVars(e=!0){return this.useContextVariables=e,this}create(e){if(!(e instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=e,this}getContext(e){const n=new UL(e,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${pa+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const e="imports";return this.getContext(e).code}addRawCode(e){e.pushCode("var offset = 0;"),e.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),e.pushCode("vars.$parent = null;"),e.pushCode("vars.$root = vars;"),this.generate(e),this.resolveReferences(e),e.pushCode("delete vars.$parent;"),e.pushCode("delete vars.$root;"),e.pushCode("return vars;")}addAliasedCode(e){return e.pushCode(`function ${pa+this.alias}(offset, context) {`),e.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),e.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),e.pushCode("vars = Object.assign(vars, ctx);"),this.generate(e),e.markResolved(this.alias),this.resolveReferences(e),e.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),e.pushCode("return { offset: offset, result: vars };"),e.pushCode("}"),e}resolveReferences(e){const n=e.getUnresolvedReferences();e.markRequested(n),n.forEach(r=>{var i;(i=Pn.get(r))===null||i===void 0||i.addAliasedCode(e)})}compile(){const e="imports",n=this.getContext(e);this.compiled=new Function(e,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let e=NaN;if(Object.keys(Un).indexOf(this.type)>=0)e=Un[this.type];else if(this.type==="string"&&typeof this.options.length=="number")e=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")e=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=Un[this.options.type]:this.options.type instanceof Vn&&(n=this.options.type.sizeOf()),e=this.options.length*n}else this.type==="seek"?e=this.options.length:this.type==="nest"?e=this.options.type.sizeOf():this.type||(e=0);return this.next&&(e+=this.next.sizeOf()),e}parse(e){return this.compiled||this.compile(),this.compiled(e,this.constructorFn)}setNextParser(e,n,r){const i=new Vn;return i.type=e,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(e){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,e);break;case"bit":this.generateBit(e);break;case"string":this.generateString(e);break;case"buffer":this.generateBuffer(e);break;case"seek":this.generateSeek(e);break;case"nest":this.generateNest(e);break;case"array":this.generateArray(e);break;case"choice":this.generateChoice(e);break;case"pointer":this.generatePointer(e);break;case"saveOffset":this.generateSaveOffset(e);break;case"wrapper":this.generateWrapper(e);break}this.type!=="bit"&&this.generateAssert(e)}const n=e.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(e,n,this.options.formatter),this.generateNext(e)}generateAssert(e){if(!this.options.assert)return;const n=e.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=e.addImport(this.options.assert);e.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":e.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":e.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}e.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),e.pushCode("}")}generateNext(e){return this.next&&(e=this.next.generate(e)),e}generateBit(e){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=e.generateVariable(n.varName),e.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=e.generateTmpVariable();e.pushCode(`var ${r} = 0;`);const i=(l=0)=>{let c=0;for(let h=l;h<e.bitFields.length;h++){const d=e.bitFields[h].options.length;if(c+d>32)break;c+=d}return c},a=l=>(l<=8?(e.pushCode(`${r} = dataView.getUint8(offset);`),l=8):l<=16?(e.pushCode(`${r} = dataView.getUint16(offset);`),l=16):l<=24?(e.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),l=24):(e.pushCode(`${r} = dataView.getUint32(offset);`),l=32),e.pushCode(`offset += ${l/8};`),l);let o=0;const s=this.endian==="be";let f=0,u=0;e.bitFields.forEach((l,c)=>{let h=l.options.length;if(h>u){if(u){const b=-1>>>32-u;e.pushCode(`${l.varName} = (${r} & 0x${b.toString(16)}) << ${h-u};`),h-=u}o=0,u=f=a(i(c)-u)}const d=s?f-o-h:o,g=-1>>>32-h;e.pushCode(`${l.varName} ${h<l.options.length?"|=":"="} ${r} >> ${d} & 0x${g.toString(16)};`),l.options.length===32&&e.pushCode(`${l.varName} >>>= 0`),l.options.assert&&l.generateAssert(e),l.options.formatter&&l.generateFormatter(e,l.varName,l.options.formatter),o+=h,u-=h}),e.bitFields=[]}}generateSeek(e){const n=e.generateOption(this.options.length);e.pushCode(`offset += ${n};`)}generateString(e){const n=e.generateVariable(this.varName),r=e.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;e.pushCode(`var ${r} = offset;`),e.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const f=`offset - ${r} < ${s} ? offset - 1 : offset`;e.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${f}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${f}));`)}else if(this.options.length){const s=e.generateOption(this.options.length);e.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),e.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(e.pushCode(`var ${r} = offset;`),e.pushCode("while(dataView.getUint8(offset++) !== 0);"),e.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(e.pushCode(`var ${r} = offset;`),e.pushCode("while(buffer.length > offset++);"),e.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&e.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(e){const n=e.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=e.generateTmpVariable(),a=e.generateTmpVariable();e.pushCode(`var ${i} = offset;`),e.pushCode(`var ${a} = 0;`),e.pushCode("while (offset < buffer.length) {"),e.pushCode(`${a} = dataView.getUint8(offset);`);const o=e.addImport(r);e.pushCode(`if (${o}.call(${e.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")e.pushCode(`${n} = buffer.subarray(offset);`);else{const r=e.generateOption(this.options.length);e.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),e.pushCode(`offset += ${r};`)}this.options.clone&&e.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(e){const n=e.generateOption(this.options.length),r=e.generateOption(this.options.lengthInBytes),i=this.options.type,a=e.generateTmpVariable(),o=e.generateVariable(this.varName),s=e.generateTmpVariable(),f=this.options.key,u=typeof f=="string";if(u?e.pushCode(`${o} = {};`):e.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?e.pushCode("do {"):this.options.readUntil==="eof"?e.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?e.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):e.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(Pn.get(i)){const l=e.generateTmpVariable();if(e.pushCode(`var ${l} = ${pa+i}(offset, {`),e.useContextVariables){const c=e.generateVariable();e.pushCode(`$parent: ${c},`),e.pushCode(`$root: ${c}.$root,`),!this.options.readUntil&&r===void 0&&e.pushCode(`$index: ${n} - ${a},`)}e.pushCode("});"),e.pushCode(`var ${s} = ${l}.result; offset = ${l}.offset;`),i!==this.alias&&e.addReference(i)}else{const l=ec[i],c=tc[i];e.pushCode(`var ${s} = dataView.get${l}(offset, ${c});`),e.pushCode(`offset += ${Un[i]};`)}else if(i instanceof Vn){e.pushCode(`var ${s} = {};`);const l=e.generateVariable();e.pushScope(s),e.useContextVariables&&(e.pushCode(`${s}.$parent = ${l};`),e.pushCode(`${s}.$root = ${l}.$root;`),!this.options.readUntil&&r===void 0&&e.pushCode(`${s}.$index = ${n} - ${a};`)),i.generate(e),e.useContextVariables&&(e.pushCode(`delete ${s}.$parent;`),e.pushCode(`delete ${s}.$root;`),e.pushCode(`delete ${s}.$index;`)),e.popScope()}if(u?e.pushCode(`${o}[${s}.${f}] = ${s};`):e.pushCode(`${o}.push(${s});`),e.pushCode("}"),typeof this.options.readUntil=="function"){const l=this.options.readUntil,c=e.addImport(l);e.pushCode(`while (!${c}.call(${e.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(e,n,r){if(typeof r=="string"){const i=e.generateVariable(this.varName);if(Pn.has(r)){const a=e.generateTmpVariable();e.pushCode(`var ${a} = ${pa+r}(offset, {`),e.useContextVariables&&(e.pushCode(`$parent: ${i}.$parent,`),e.pushCode(`$root: ${i}.$root,`)),e.pushCode("});"),e.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&e.addReference(r)}else{const a=ec[r],o=tc[r];e.pushCode(`${i} = dataView.get${a}(offset, ${o});`),e.pushCode(`offset += ${Un[r]}`)}}else r instanceof Vn&&(e.pushPath(n),r.generate(e),e.popPath(n))}generateChoice(e){const n=e.generateOption(this.options.tag),r=e.generateVariable(this.varName);if(this.varName&&(e.pushCode(`${r} = {};`),e.useContextVariables)){const i=e.generateVariable();e.pushCode(`${r}.$parent = ${i};`),e.pushCode(`${r}.$root = ${i}.$root;`)}e.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];e.pushCode(`case ${a}:`),this.generateChoiceCase(e,this.varName,o),e.pushCode("break;")}e.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(e,this.varName,this.options.defaultChoice):e.generateError(`"Met undefined tag value " + ${n} + " at choice"`),e.pushCode("}"),this.varName&&e.useContextVariables&&(e.pushCode(`delete ${r}.$parent;`),e.pushCode(`delete ${r}.$root;`))}generateNest(e){const n=e.generateVariable(this.varName);if(this.options.type instanceof Vn){if(this.varName&&(e.pushCode(`${n} = {};`),e.useContextVariables)){const r=e.generateVariable();e.pushCode(`${n}.$parent = ${r};`),e.pushCode(`${n}.$root = ${r}.$root;`)}e.pushPath(this.varName),this.options.type.generate(e),e.popPath(this.varName),this.varName&&e.useContextVariables&&e.useContextVariables&&(e.pushCode(`delete ${n}.$parent;`),e.pushCode(`delete ${n}.$root;`))}else if(Pn.has(this.options.type)){const r=e.generateTmpVariable();if(e.pushCode(`var ${r} = ${pa+this.options.type}(offset, {`),e.useContextVariables){const i=e.generateVariable();e.pushCode(`$parent: ${i},`),e.pushCode(`$root: ${i}.$root,`)}e.pushCode("});"),e.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&e.addReference(this.options.type)}}generateWrapper(e){const n=e.generateVariable(this.varName),r=e.generateTmpVariable();if(typeof this.options.readUntil=="function"){const f=this.options.readUntil,u=e.generateTmpVariable(),l=e.generateTmpVariable();e.pushCode(`var ${u} = offset;`),e.pushCode(`var ${l} = 0;`),e.pushCode("while (offset < buffer.length) {"),e.pushCode(`${l} = dataView.getUint8(offset);`);const c=e.addImport(f);e.pushCode(`if (${c}.call(${e.generateVariable()}, ${l}, buffer.subarray(offset))) break;`),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(`${r} = buffer.subarray(${u}, offset);`)}else if(this.options.readUntil==="eof")e.pushCode(`${r} = buffer.subarray(offset);`);else{const f=e.generateOption(this.options.length);e.pushCode(`${r} = buffer.subarray(offset, offset + ${f});`),e.pushCode(`offset += ${f};`)}this.options.clone&&e.pushCode(`${r} = buffer.constructor.from(${r});`);const i=e.generateTmpVariable(),a=e.generateTmpVariable(),o=e.generateTmpVariable(),s=e.addImport(this.options.wrapper);if(e.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),e.pushCode(`var ${i} = buffer;`),e.pushCode(`var ${a} = offset;`),e.pushCode(`var ${o} = dataView;`),e.pushCode(`buffer = ${r};`),e.pushCode("offset = 0;"),e.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Vn)this.varName&&e.pushCode(`${n} = {};`),e.pushPath(this.varName),this.options.type.generate(e),e.popPath(this.varName);else if(Pn.has(this.options.type)){const f=e.generateTmpVariable();e.pushCode(`var ${f} = ${pa+this.options.type}(0);`),e.pushCode(`${n} = ${f}.result;`),this.options.type!==this.alias&&e.addReference(this.options.type)}e.pushCode(`buffer = ${i};`),e.pushCode(`dataView = ${o};`),e.pushCode(`offset = ${a};`)}generateFormatter(e,n,r){if(typeof r=="function"){const i=e.addImport(r);e.pushCode(`${n} = ${i}.call(${e.generateVariable()}, ${n});`)}}generatePointer(e){const n=this.options.type,r=e.generateOption(this.options.offset),i=e.generateTmpVariable(),a=e.generateVariable(this.varName);if(e.pushCode(`var ${i} = offset;`),e.pushCode(`offset = ${r};`),this.options.type instanceof Vn){if(e.pushCode(`${a} = {};`),e.useContextVariables){const o=e.generateVariable();e.pushCode(`${a}.$parent = ${o};`),e.pushCode(`${a}.$root = ${o}.$root;`)}e.pushPath(this.varName),this.options.type.generate(e),e.popPath(this.varName),e.useContextVariables&&(e.pushCode(`delete ${a}.$parent;`),e.pushCode(`delete ${a}.$root;`))}else if(Pn.has(this.options.type)){const o=e.generateTmpVariable();if(e.pushCode(`var ${o} = ${pa+this.options.type}(offset, {`),e.useContextVariables){const s=e.generateVariable();e.pushCode(`$parent: ${s},`),e.pushCode(`$root: ${s}.$root,`)}e.pushCode("});"),e.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&e.addReference(this.options.type)}else if(Object.keys(Un).indexOf(this.options.type)>=0){const o=ec[n],s=tc[n];e.pushCode(`${a} = dataView.get${o}(offset, ${s});`),e.pushCode(`offset += ${Un[n]};`)}e.pushCode(`offset = ${i};`)}generateSaveOffset(e){const n=e.generateVariable(this.varName);e.pushCode(`${n} = offset`)}};var nv={},X0={},ma={},Su={};Object.defineProperty(Su,"__esModule",{value:!0});function $0(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function rv(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function K0(t,e,n){return e&&rv(t.prototype,e),n&&rv(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function jL(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&J0(t,e)}function Ao(t){return Ao=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ao(t)}function J0(t,e){return J0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},J0(t,e)}function GL(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _u(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function HL(t,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _u(t)}function QL(t){var e=GL();return function(){var r=Ao(t),i;if(e){var a=Ao(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return HL(this,i)}}function VL(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&(t=Ao(t),t!==null););return t}function nc(){return typeof Reflect<"u"&&Reflect.get?nc=Reflect.get.bind():nc=function(e,n,r){var i=VL(e,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?e:r):a.value}},nc.apply(this,arguments)}var iv=function(){function t(){$0(this,t),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return K0(t,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(f){Promise.resolve().then(function(){throw f})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),t}(),eg=function(t){jL(n,t);var e=QL(n);function n(){var r;return $0(this,n),r=e.call(this),r.listeners||iv.call(_u(r)),Object.defineProperty(_u(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(_u(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(_u(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return K0(n,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(i){i.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,i)),nc(Ao(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(iv),av=function(){function t(){$0(this,t),Object.defineProperty(this,"signal",{value:new eg,writable:!0,configurable:!0})}return K0(t,[{key:"abort",value:function(n){var r;try{r=new Event("abort")}catch{typeof document<"u"?document.createEvent?(r=document.createEvent("Event"),r.initEvent("abort",!1,!1)):(r=document.createEventObject(),r.type="abort"):r={type:"abort",bubbles:!1,cancelable:!1}}var i=n;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(r)}},{key:"toString",value:function(){return"[object AbortController]"}}]),t}();typeof Symbol<"u"&&Symbol.toStringTag&&(av.prototype[Symbol.toStringTag]="AbortController",eg.prototype[Symbol.toStringTag]="AbortSignal");function qL(t){return t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof t.Request=="function"&&!t.Request.prototype.hasOwnProperty("signal")||!t.AbortController}function ZL(t){typeof t=="function"&&(t={fetch:t});var e=t,n=e.fetch,r=e.Request,i=r===void 0?n.Request:r,a=e.AbortController,o=e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!qL({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:f};var f=i;(f&&!f.prototype.hasOwnProperty("signal")||s)&&(f=function(h,d){var g;d&&d.signal&&(g=d.signal,delete d.signal);var b=new i(h,d);return g&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:g}),b},f.prototype=i.prototype);var u=n,l=function(h,d){var g=f&&f.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(g){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(g.aborted)return Promise.reject(b);var y=new Promise(function(w,E){g.addEventListener("abort",function(){return E(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,u(h,d)])}return u(h,d)};return{fetch:l,Request:f}}Su.AbortController=av,Su.AbortSignal=eg,Su.abortableFetch=ZL,Object.defineProperty(ma,"__esModule",{value:!0}),ma.AbortSignal=ma.AbortController=void 0;const ov=Su;var rc=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate globalThis object")};let YL=typeof rc().AbortController>"u"?ov.AbortController:rc().AbortController;ma.AbortController=YL;let WL=typeof rc().AbortController>"u"?ov.AbortSignal:rc().AbortSignal;ma.AbortSignal=WL;var tg={};Object.defineProperty(tg,"__esModule",{value:!0});const XL=ma;class $L{}class KL{constructor(){this.signals=new Set,this.abortController=new XL.AbortController}addSignal(e=new $L){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(e),e.aborted?this.handleAborted(e):typeof e.addEventListener=="function"&&e.addEventListener("abort",()=>{this.handleAborted(e)})}handleAborted(e){this.signals.delete(e),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}tg.default=KL;var ng={};Object.defineProperty(ng,"__esModule",{value:!0});class JL{constructor(){this.callbacks=new Set}addCallback(e=()=>{}){this.callbacks.add(e),e(this.currentMessage)}callback(e){this.currentMessage=e,this.callbacks.forEach(n=>{n(e)})}}ng.default=JL;var sv=au&&au.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(X0,"__esModule",{value:!0});const eR=ma,tR=sv(tg),nR=sv(ng);class ic{constructor({fill:e,cache:n}){if(typeof e!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=e}static isAbortException(e){return e.name==="AbortError"||e.code==="ERR_ABORTED"||e.message==="AbortError: aborted"||e.message==="Error: aborted"}evict(e,n){this.cache.get(e)===n&&this.cache.delete(e)}fill(e,n,r,i){const a=new tR.default,o=new nR.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,f=>{o.callback(f)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(e,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(e,s)}).catch(f=>{throw console.error(f),f}),this.cache.set(e,s)}static checkSinglePromise(e,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return e.then(i=>(r(),i),i=>{throw r(),i})}has(e){return this.cache.has(e)}get(e,n,r,i){if(!r&&n instanceof eR.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(e);return a?a.aborted&&!a.settled?(this.evict(e,a),this.get(e,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),ic.checkSinglePromise(a.promise,r)):(this.fill(e,n,r,i),ic.checkSinglePromise(this.cache.get(e).promise,r))}delete(e){const n=this.cache.get(e);n&&(n.settled||n.aborter.abort(),this.cache.delete(e))}clear(){const e=this.cache.keys();let n=0;for(let r=e.next();!r.done;r=e.next())this.delete(r.value),n+=1;return n}}X0.default=ic;var rR=au&&au.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nv,"__esModule",{value:!0});const iR=rR(X0);var ac=nv.default=iR.default,aR=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,n){this.cache.set(e,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const n=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,n),n}}set(e,n){return this.cache.has(e)?this.cache.set(e,n):this._set(e,n),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){const n=this.cache.delete(e);return n&&this._size--,this.oldCache.delete(e)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[n]=e;this.cache.has(n)||(yield e)}}get size(){let e=0;for(const n of this.oldCache.keys())this.cache.has(n)||e++;return this._size+e}};const rg=ia(aR);class gi{constructor(e,n){this.ranges=arguments.length===2?[{min:e,max:n}]:0 in e?Object.assign({},e):[e]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(e){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=e&&r.max>=e)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(e=>new gi(e.min,e.max))}toString(){return this.ranges.map(e=>`[${e.min}-${e.max}]`).join(",")}union(e){const n=this.getRanges().concat(e.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new gi(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new gi(r)}intersection(e){let n=this,r=e;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let f=0,u=0;const l=[];for(;f<o&&u<s;){n=i[f],r=a[u];const c=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=c&&l.push(new gi(c,h)),n.max()>r.max()?u+=1:f+=1}if(l.length===0)throw new Error("found range of length 0");return l.length===1?l[0]:new gi(l)}coverage(){let e=0;const n=this.ranges();for(const r of n)e+=r.max()-r.min()+1;return e}rangeOrder(e,n){let r=e,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const oR=4,uv=0,fv=1,sR=2;function Eo(t){let e=t.length;for(;--e>=0;)t[e]=0}const uR=0,lv=1,fR=2,lR=3,cR=258,ig=29,Cu=256,Du=Cu+1+ig,So=30,ag=19,cv=2*Du+1,ba=15,og=16,hR=7,sg=256,hv=16,dv=17,gv=18,ug=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),oc=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),dR=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),pv=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),gR=512,Ir=new Array((Du+2)*2);Eo(Ir);const Iu=new Array(So*2);Eo(Iu);const Mu=new Array(gR);Eo(Mu);const Tu=new Array(cR-lR+1);Eo(Tu);const fg=new Array(ig);Eo(fg);const sc=new Array(So);Eo(sc);function lg(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}let mv,bv,yv;function cg(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}const wv=t=>t<256?Mu[t]:Mu[256+(t>>>7)],Nu=(t,e)=>{t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255},Gt=(t,e,n)=>{t.bi_valid>og-n?(t.bi_buf|=e<<t.bi_valid&65535,Nu(t,t.bi_buf),t.bi_buf=e>>og-t.bi_valid,t.bi_valid+=n-og):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},ur=(t,e,n)=>{Gt(t,n[e*2],n[e*2+1])},xv=(t,e)=>{let n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1},pR=t=>{t.bi_valid===16?(Nu(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},mR=(t,e)=>{const n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,f=e.stat_desc.max_length;let u,l,c,h,d,g,b=0;for(h=0;h<=ba;h++)t.bl_count[h]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<cv;u++)l=t.heap[u],h=n[n[l*2+1]*2+1]+1,h>f&&(h=f,b++),n[l*2+1]=h,!(l>r)&&(t.bl_count[h]++,d=0,l>=s&&(d=o[l-s]),g=n[l*2],t.opt_len+=g*(h+d),a&&(t.static_len+=g*(i[l*2+1]+d)));if(b!==0){do{for(h=f-1;t.bl_count[h]===0;)h--;t.bl_count[h]--,t.bl_count[h+1]+=2,t.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(l=t.bl_count[h];l!==0;)c=t.heap[--u],!(c>r)&&(n[c*2+1]!==h&&(t.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),l--)}},vv=(t,e,n)=>{const r=new Array(ba+1);let i=0,a,o;for(a=1;a<=ba;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=e;o++){let s=t[o*2+1];s!==0&&(t[o*2]=xv(r[s]++,s))}},bR=()=>{let t,e,n,r,i;const a=new Array(ba+1);for(n=0,r=0;r<ig-1;r++)for(fg[r]=n,t=0;t<1<<ug[r];t++)Tu[n++]=r;for(Tu[n-1]=r,i=0,r=0;r<16;r++)for(sc[r]=i,t=0;t<1<<oc[r];t++)Mu[i++]=r;for(i>>=7;r<So;r++)for(sc[r]=i<<7,t=0;t<1<<oc[r]-7;t++)Mu[256+i++]=r;for(e=0;e<=ba;e++)a[e]=0;for(t=0;t<=143;)Ir[t*2+1]=8,t++,a[8]++;for(;t<=255;)Ir[t*2+1]=9,t++,a[9]++;for(;t<=279;)Ir[t*2+1]=7,t++,a[7]++;for(;t<=287;)Ir[t*2+1]=8,t++,a[8]++;for(vv(Ir,Du+1,a),t=0;t<So;t++)Iu[t*2+1]=5,Iu[t*2]=xv(t,5);mv=new lg(Ir,ug,Cu+1,Du,ba),bv=new lg(Iu,oc,0,So,ba),yv=new lg(new Array(0),dR,0,ag,hR)},Av=t=>{let e;for(e=0;e<Du;e++)t.dyn_ltree[e*2]=0;for(e=0;e<So;e++)t.dyn_dtree[e*2]=0;for(e=0;e<ag;e++)t.bl_tree[e*2]=0;t.dyn_ltree[sg*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},Ev=t=>{t.bi_valid>8?Nu(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},Sv=(t,e,n,r)=>{const i=e*2,a=n*2;return t[i]<t[a]||t[i]===t[a]&&r[e]<=r[n]},hg=(t,e,n)=>{const r=t.heap[n];let i=n<<1;for(;i<=t.heap_len&&(i<t.heap_len&&Sv(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!Sv(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r},_v=(t,e,n)=>{let r,i,a=0,o,s;if(t.sym_next!==0)do r=t.pending_buf[t.sym_buf+a++]&255,r+=(t.pending_buf[t.sym_buf+a++]&255)<<8,i=t.pending_buf[t.sym_buf+a++],r===0?ur(t,i,e):(o=Tu[i],ur(t,o+Cu+1,e),s=ug[o],s!==0&&(i-=fg[o],Gt(t,i,s)),r--,o=wv(r),ur(t,o,n),s=oc[o],s!==0&&(r-=sc[o],Gt(t,r,s)));while(a<t.sym_next);ur(t,sg,e)},dg=(t,e)=>{const n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,a=e.stat_desc.elems;let o,s,f=-1,u;for(t.heap_len=0,t.heap_max=cv,o=0;o<a;o++)n[o*2]!==0?(t.heap[++t.heap_len]=f=o,t.depth[o]=0):n[o*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=f<2?++f:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=f,o=t.heap_len>>1;o>=1;o--)hg(t,n,o);u=a;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],hg(t,n,1),s=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=s,n[u*2]=n[o*2]+n[s*2],t.depth[u]=(t.depth[o]>=t.depth[s]?t.depth[o]:t.depth[s])+1,n[o*2+1]=n[s*2+1]=u,t.heap[1]=u++,hg(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],mR(t,e),vv(n,f,t.bl_count)},Cv=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)&&(s<u?t.bl_tree[a*2]+=s:a!==0?(a!==i&&t.bl_tree[a*2]++,t.bl_tree[hv*2]++):s<=10?t.bl_tree[dv*2]++:t.bl_tree[gv*2]++,s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4))},Dv=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),r=0;r<=n;r++)if(a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)){if(s<u)do ur(t,a,t.bl_tree);while(--s!==0);else a!==0?(a!==i&&(ur(t,a,t.bl_tree),s--),ur(t,hv,t.bl_tree),Gt(t,s-3,2)):s<=10?(ur(t,dv,t.bl_tree),Gt(t,s-3,3)):(ur(t,gv,t.bl_tree),Gt(t,s-11,7));s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4)}},yR=t=>{let e;for(Cv(t,t.dyn_ltree,t.l_desc.max_code),Cv(t,t.dyn_dtree,t.d_desc.max_code),dg(t,t.bl_desc),e=ag-1;e>=3&&t.bl_tree[pv[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e},wR=(t,e,n,r)=>{let i;for(Gt(t,e-257,5),Gt(t,n-1,5),Gt(t,r-4,4),i=0;i<r;i++)Gt(t,t.bl_tree[pv[i]*2+1],3);Dv(t,t.dyn_ltree,e-1),Dv(t,t.dyn_dtree,n-1)},xR=t=>{let e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return uv;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return fv;for(n=32;n<Cu;n++)if(t.dyn_ltree[n*2]!==0)return fv;return uv};let Iv=!1;const vR=t=>{Iv||(bR(),Iv=!0),t.l_desc=new cg(t.dyn_ltree,mv),t.d_desc=new cg(t.dyn_dtree,bv),t.bl_desc=new cg(t.bl_tree,yv),t.bi_buf=0,t.bi_valid=0,Av(t)},Mv=(t,e,n,r)=>{Gt(t,(uR<<1)+(r?1:0),3),Ev(t),Nu(t,n),Nu(t,~n),n&&t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n},AR=t=>{Gt(t,lv<<1,3),ur(t,sg,Ir),pR(t)},ER=(t,e,n,r)=>{let i,a,o=0;t.level>0?(t.strm.data_type===sR&&(t.strm.data_type=xR(t)),dg(t,t.l_desc),dg(t,t.d_desc),o=yR(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&e!==-1?Mv(t,e,n,r):t.strategy===oR||a===i?(Gt(t,(lv<<1)+(r?1:0),3),_v(t,Ir,Iu)):(Gt(t,(fR<<1)+(r?1:0),3),wR(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),_v(t,t.dyn_ltree,t.dyn_dtree)),Av(t),r&&Ev(t)},SR=(t,e,n)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=n,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(Tu[n]+Cu+1)*2]++,t.dyn_dtree[wv(e)*2]++),t.sym_next===t.sym_end);var _R=vR,CR=Mv,DR=ER,IR=SR,MR=AR,TR={_tr_init:_R,_tr_stored_block:CR,_tr_flush_block:DR,_tr_tally:IR,_tr_align:MR},Fu=(t,e,n,r)=>{let i=t&65535|0,a=t>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+e[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const NR=()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e},FR=new Uint32Array(NR());var gt=(t,e,n,r)=>{const i=FR,a=r+n;t^=-1;for(let o=r;o<a;o++)t=t>>>8^i[(t^e[o])&255];return t^-1},_o={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"},Bu={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:BR,_tr_stored_block:gg,_tr_flush_block:kR,_tr_tally:pi,_tr_align:LR}=TR,{Z_NO_FLUSH:mi,Z_PARTIAL_FLUSH:RR,Z_FULL_FLUSH:OR,Z_FINISH:pn,Z_BLOCK:Tv,Z_OK:wt,Z_STREAM_END:Nv,Z_STREAM_ERROR:fr,Z_DATA_ERROR:zR,Z_BUF_ERROR:pg,Z_DEFAULT_COMPRESSION:PR,Z_FILTERED:UR,Z_HUFFMAN_ONLY:uc,Z_RLE:jR,Z_FIXED:GR,Z_DEFAULT_STRATEGY:HR,Z_UNKNOWN:QR,Z_DEFLATED:fc}=Bu,VR=9,qR=15,ZR=8,YR=29,mg=256+1+YR,WR=30,XR=19,$R=2*mg+1,KR=15,me=3,bi=258,lr=bi+me+1,JR=32,Co=42,bg=57,yg=69,wg=73,xg=91,vg=103,ya=113,ku=666,Ft=1,Do=2,wa=3,Io=4,e5=3,xa=(t,e)=>(t.msg=_o[e],e),Fv=t=>t*2-(t>4?9:0),yi=t=>{let e=t.length;for(;--e>=0;)t[e]=0},t5=t=>{let e,n,r,i=t.w_size;e=t.hash_size,r=e;do n=t.head[--r],t.head[r]=n>=i?n-i:0;while(--e);e=i,r=e;do n=t.prev[--r],t.prev[r]=n>=i?n-i:0;while(--e)};let wi=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask;const tn=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))},nn=(t,e)=>{kR(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,tn(t.strm)},_e=(t,e)=>{t.pending_buf[t.pending++]=e},Lu=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255},Ag=(t,e,n,r)=>{let i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,e.set(t.input.subarray(t.next_in,t.next_in+i),n),t.state.wrap===1?t.adler=Fu(t.adler,e,i,n):t.state.wrap===2&&(t.adler=gt(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)},Bv=(t,e)=>{let n=t.max_chain_length,r=t.strstart,i,a,o=t.prev_length,s=t.nice_match;const f=t.strstart>t.w_size-lr?t.strstart-(t.w_size-lr):0,u=t.window,l=t.w_mask,c=t.prev,h=t.strstart+bi;let d=u[r+o-1],g=u[r+o];t.prev_length>=t.good_match&&(n>>=2),s>t.lookahead&&(s=t.lookahead);do if(i=e,!(u[i+o]!==g||u[i+o-1]!==d||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<h);if(a=bi-(h-r),r=h-bi,a>o){if(t.match_start=e,o=a,a>=s)break;d=u[r+o-1],g=u[r+o]}}while((e=c[e&l])>f&&--n!==0);return o<=t.lookahead?o:t.lookahead},Mo=t=>{const e=t.w_size;let n,r,i;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-lr)&&(t.window.set(t.window.subarray(e,e+e-r),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),t5(t),r+=e),t.strm.avail_in===0)break;if(n=Ag(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=n,t.lookahead+t.insert>=me)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=wi(t,t.ins_h,t.window[i+1]);t.insert&&(t.ins_h=wi(t,t.ins_h,t.window[i+me-1]),t.prev[i&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=i,i++,t.insert--,!(t.lookahead+t.insert<me)););}while(t.lookahead<lr&&t.strm.avail_in!==0)},kv=(t,e)=>{let n=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r,i,a,o=0,s=t.strm.avail_in;do{if(r=65535,a=t.bi_valid+42>>3,t.strm.avail_out<a||(a=t.strm.avail_out-a,i=t.strstart-t.block_start,r>i+t.strm.avail_in&&(r=i+t.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&e!==pn||e===mi||r!==i+t.strm.avail_in)))break;o=e===pn&&r===i+t.strm.avail_in?1:0,gg(t,0,0,o),t.pending_buf[t.pending-4]=r,t.pending_buf[t.pending-3]=r>>8,t.pending_buf[t.pending-2]=~r,t.pending_buf[t.pending-1]=~r>>8,tn(t.strm),i&&(i>r&&(i=r),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,r-=i),r&&(Ag(t.strm,t.strm.output,t.strm.next_out,r),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r)}while(o===0);return s-=t.strm.avail_in,s&&(s>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=s&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-s,t.strm.next_in),t.strstart),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),o?Io:e!==mi&&e!==pn&&t.strm.avail_in===0&&t.strstart===t.block_start?Do:(a=t.window_size-t.strstart,t.strm.avail_in>a&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,a+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),a>t.strm.avail_in&&(a=t.strm.avail_in),a&&(Ag(t.strm,t.window,t.strstart,a),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.high_water<t.strstart&&(t.high_water=t.strstart),a=t.bi_valid+42>>3,a=t.pending_buf_size-a>65535?65535:t.pending_buf_size-a,n=a>t.w_size?t.w_size:a,i=t.strstart-t.block_start,(i>=n||(i||e===pn)&&e!==mi&&t.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=e===pn&&t.strm.avail_in===0&&r===i?1:0,gg(t,t.block_start,r,o),t.block_start+=r,tn(t.strm)),o?wa:Ft)},Eg=(t,e)=>{let n,r;for(;;){if(t.lookahead<lr){if(Mo(t),t.lookahead<lr&&e===mi)return Ft;if(t.lookahead===0)break}if(n=0,t.lookahead>=me&&(t.ins_h=wi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-lr&&(t.match_length=Bv(t,n)),t.match_length>=me)if(r=pi(t,t.strstart-t.match_start,t.match_length-me),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=me){t.match_length--;do t.strstart++,t.ins_h=wi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=wi(t,t.ins_h,t.window[t.strstart+1]);else r=pi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(nn(t,!1),t.strm.avail_out===0))return Ft}return t.insert=t.strstart<me-1?t.strstart:me-1,e===pn?(nn(t,!0),t.strm.avail_out===0?wa:Io):t.sym_next&&(nn(t,!1),t.strm.avail_out===0)?Ft:Do},To=(t,e)=>{let n,r,i;for(;;){if(t.lookahead<lr){if(Mo(t),t.lookahead<lr&&e===mi)return Ft;if(t.lookahead===0)break}if(n=0,t.lookahead>=me&&(t.ins_h=wi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=me-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-lr&&(t.match_length=Bv(t,n),t.match_length<=5&&(t.strategy===UR||t.match_length===me&&t.strstart-t.match_start>4096)&&(t.match_length=me-1)),t.prev_length>=me&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-me,r=pi(t,t.strstart-1-t.prev_match,t.prev_length-me),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=wi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=me-1,t.strstart++,r&&(nn(t,!1),t.strm.avail_out===0))return Ft}else if(t.match_available){if(r=pi(t,0,t.window[t.strstart-1]),r&&nn(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return Ft}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=pi(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<me-1?t.strstart:me-1,e===pn?(nn(t,!0),t.strm.avail_out===0?wa:Io):t.sym_next&&(nn(t,!1),t.strm.avail_out===0)?Ft:Do},n5=(t,e)=>{let n,r,i,a;const o=t.window;for(;;){if(t.lookahead<=bi){if(Mo(t),t.lookahead<=bi&&e===mi)return Ft;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=me&&t.strstart>0&&(i=t.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=t.strstart+bi;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);t.match_length=bi-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=me?(n=pi(t,1,t.match_length-me),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=pi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(nn(t,!1),t.strm.avail_out===0))return Ft}return t.insert=0,e===pn?(nn(t,!0),t.strm.avail_out===0?wa:Io):t.sym_next&&(nn(t,!1),t.strm.avail_out===0)?Ft:Do},r5=(t,e)=>{let n;for(;;){if(t.lookahead===0&&(Mo(t),t.lookahead===0)){if(e===mi)return Ft;break}if(t.match_length=0,n=pi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(nn(t,!1),t.strm.avail_out===0))return Ft}return t.insert=0,e===pn?(nn(t,!0),t.strm.avail_out===0?wa:Io):t.sym_next&&(nn(t,!1),t.strm.avail_out===0)?Ft:Do};function cr(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}const Ru=[new cr(0,0,0,0,kv),new cr(4,4,8,4,Eg),new cr(4,5,16,8,Eg),new cr(4,6,32,32,Eg),new cr(4,4,16,16,To),new cr(8,16,32,32,To),new cr(8,16,128,128,To),new cr(8,32,128,256,To),new cr(32,128,258,1024,To),new cr(32,258,258,4096,To)],i5=t=>{t.window_size=2*t.w_size,yi(t.head),t.max_lazy_match=Ru[t.level].max_lazy,t.good_match=Ru[t.level].good_length,t.nice_match=Ru[t.level].nice_length,t.max_chain_length=Ru[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=me-1,t.match_available=0,t.ins_h=0};function a5(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=fc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array($R*2),this.dyn_dtree=new Uint16Array((2*WR+1)*2),this.bl_tree=new Uint16Array((2*XR+1)*2),yi(this.dyn_ltree),yi(this.dyn_dtree),yi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(KR+1),this.heap=new Uint16Array(2*mg+1),yi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*mg+1),yi(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Ou=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==Co&&e.status!==bg&&e.status!==yg&&e.status!==wg&&e.status!==xg&&e.status!==vg&&e.status!==ya&&e.status!==ku?1:0},Lv=t=>{if(Ou(t))return xa(t,fr);t.total_in=t.total_out=0,t.data_type=QR;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?bg:e.wrap?Co:ya,t.adler=e.wrap===2?0:1,e.last_flush=-2,BR(e),wt},Rv=t=>{const e=Lv(t);return e===wt&&i5(t.state),e},o5=(t,e)=>Ou(t)||t.state.wrap!==2?fr:(t.state.gzhead=e,wt),Ov=(t,e,n,r,i,a)=>{if(!t)return fr;let o=1;if(e===PR&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>VR||n!==fc||r<8||r>15||e<0||e>9||a<0||a>GR||r===8&&o!==1)return xa(t,fr);r===8&&(r=9);const s=new a5;return t.state=s,s.strm=t,s.status=Co,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+me-1)/me),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=e,s.strategy=a,s.method=n,Rv(t)},s5=(t,e)=>Ov(t,e,fc,qR,ZR,HR),u5=(t,e)=>{if(Ou(t)||e>Tv||e<0)return t?xa(t,fr):fr;const n=t.state;if(!t.output||t.avail_in!==0&&!t.input||n.status===ku&&e!==pn)return xa(t,t.avail_out===0?pg:fr);const r=n.last_flush;if(n.last_flush=e,n.pending!==0){if(tn(t),t.avail_out===0)return n.last_flush=-1,wt}else if(t.avail_in===0&&Fv(e)<=Fv(r)&&e!==pn)return xa(t,pg);if(n.status===ku&&t.avail_in!==0)return xa(t,pg);if(n.status===Co&&n.wrap===0&&(n.status=ya),n.status===Co){let i=fc+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=uc||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=JR),i+=31-i%31,Lu(n,i),n.strstart!==0&&(Lu(n,t.adler>>>16),Lu(n,t.adler&65535)),t.adler=1,n.status=ya,tn(t),n.pending!==0)return n.last_flush=-1,wt}if(n.status===bg){if(t.adler=0,_e(n,31),_e(n,139),_e(n,8),n.gzhead)_e(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),_e(n,n.gzhead.time&255),_e(n,n.gzhead.time>>8&255),_e(n,n.gzhead.time>>16&255),_e(n,n.gzhead.time>>24&255),_e(n,n.level===9?2:n.strategy>=uc||n.level<2?4:0),_e(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(_e(n,n.gzhead.extra.length&255),_e(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=gt(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=yg;else if(_e(n,0),_e(n,0),_e(n,0),_e(n,0),_e(n,0),_e(n,n.level===9?2:n.strategy>=uc||n.level<2?4:0),_e(n,e5),n.status=ya,tn(t),n.pending!==0)return n.last_flush=-1,wt}if(n.status===yg){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,tn(t),n.pending!==0)return n.last_flush=-1,wt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=wg}if(n.status===wg){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),tn(t),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,_e(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=xg}if(n.status===xg){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),tn(t),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,_e(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i))}n.status=vg}if(n.status===vg){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(tn(t),n.pending!==0))return n.last_flush=-1,wt;_e(n,t.adler&255),_e(n,t.adler>>8&255),t.adler=0}if(n.status=ya,tn(t),n.pending!==0)return n.last_flush=-1,wt}if(t.avail_in!==0||n.lookahead!==0||e!==mi&&n.status!==ku){let i=n.level===0?kv(n,e):n.strategy===uc?r5(n,e):n.strategy===jR?n5(n,e):Ru[n.level].func(n,e);if((i===wa||i===Io)&&(n.status=ku),i===Ft||i===wa)return t.avail_out===0&&(n.last_flush=-1),wt;if(i===Do&&(e===RR?LR(n):e!==Tv&&(gg(n,0,0,!1),e===OR&&(yi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),tn(t),t.avail_out===0))return n.last_flush=-1,wt}return e!==pn?wt:n.wrap<=0?Nv:(n.wrap===2?(_e(n,t.adler&255),_e(n,t.adler>>8&255),_e(n,t.adler>>16&255),_e(n,t.adler>>24&255),_e(n,t.total_in&255),_e(n,t.total_in>>8&255),_e(n,t.total_in>>16&255),_e(n,t.total_in>>24&255)):(Lu(n,t.adler>>>16),Lu(n,t.adler&65535)),tn(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?wt:Nv)},f5=t=>{if(Ou(t))return fr;const e=t.state.status;return t.state=null,e===ya?xa(t,zR):wt},l5=(t,e)=>{let n=e.length;if(Ou(t))return fr;const r=t.state,i=r.wrap;if(i===2||i===1&&r.status!==Co||r.lookahead)return fr;if(i===1&&(t.adler=Fu(t.adler,e,n,0)),r.wrap=0,n>=r.w_size){i===0&&(yi(r.head),r.strstart=0,r.block_start=0,r.insert=0);let f=new Uint8Array(r.w_size);f.set(e.subarray(n-r.w_size,n),0),e=f,n=r.w_size}const a=t.avail_in,o=t.next_in,s=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,Mo(r);r.lookahead>=me;){let f=r.strstart,u=r.lookahead-(me-1);do r.ins_h=wi(r,r.ins_h,r.window[f+me-1]),r.prev[f&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=f,f++;while(--u);r.strstart=f,r.lookahead=me-1,Mo(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=me-1,r.match_available=0,t.next_in=o,t.input=s,t.avail_in=a,r.wrap=i,wt};var c5=s5,h5=Ov,d5=Rv,g5=Lv,p5=o5,m5=u5,b5=f5,y5=l5,w5="pako deflate (from Nodeca project)",zu={deflateInit:c5,deflateInit2:h5,deflateReset:d5,deflateResetKeep:g5,deflateSetHeader:p5,deflate:m5,deflateEnd:b5,deflateSetDictionary:y5,deflateInfo:w5};const x5=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var v5=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const n=e.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)x5(n,r)&&(t[r]=n[r])}}return t},A5=t=>{let e=0;for(let r=0,i=t.length;r<i;r++)e+=t[r].length;const n=new Uint8Array(e);for(let r=0,i=0,a=t.length;r<a;r++){let o=t[r];n.set(o,i),i+=o.length}return n},lc={assign:v5,flattenChunks:A5};let zv=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{zv=!1}const Pu=new Uint8Array(256);for(let t=0;t<256;t++)Pu[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Pu[254]=Pu[254]=1;var E5=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let e,n,r,i,a,o=t.length,s=0;for(i=0;i<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(s),a=0,i=0;a<s;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|n&63):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|n&63):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|n&63);return e};const S5=(t,e)=>{if(e<65534&&t.subarray&&zv)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let n="";for(let r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n};var _5=(t,e)=>{const n=e||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=t[r++];if(o<128){a[i++]=o;continue}let s=Pu[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|t[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return S5(a,i)},C5=(t,e)=>{e=e||t.length,e>t.length&&(e=t.length);let n=e-1;for(;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+Pu[t[n]]>e?n:e},Uu={string2buf:E5,buf2string:_5,utf8border:C5};function D5(){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 Pv=D5;const Uv=Object.prototype.toString,{Z_NO_FLUSH:I5,Z_SYNC_FLUSH:M5,Z_FULL_FLUSH:T5,Z_FINISH:N5,Z_OK:cc,Z_STREAM_END:F5,Z_DEFAULT_COMPRESSION:B5,Z_DEFAULT_STRATEGY:k5,Z_DEFLATED:L5}=Bu;function Sg(t){this.options=lc.assign({level:B5,method:L5,chunkSize:16384,windowBits:15,memLevel:8,strategy:k5},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Pv,this.strm.avail_out=0;let n=zu.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==cc)throw new Error(_o[n]);if(e.header&&zu.deflateSetHeader(this.strm,e.header),e.dictionary){let r;if(typeof e.dictionary=="string"?r=Uu.string2buf(e.dictionary):Uv.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=zu.deflateSetDictionary(this.strm,r),n!==cc)throw new Error(_o[n]);this._dict_set=!0}}Sg.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(e===~~e?a=e:a=e===!0?N5:I5,typeof t=="string"?n.input=Uu.string2buf(t):Uv.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===M5||a===T5)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=zu.deflate(n,a),i===F5)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=zu.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===cc;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},Sg.prototype.onData=function(t){this.chunks.push(t)},Sg.prototype.onEnd=function(t){t===cc&&(this.result=lc.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const hc=16209,R5=16191;var O5=function(e,n){let r,i,a,o,s,f,u,l,c,h,d,g,b,y,w,E,_,D,T,N,M,R,C,k;const L=e.state;r=e.next_in,C=e.input,i=r+(e.avail_in-5),a=e.next_out,k=e.output,o=a-(n-e.avail_out),s=a+(e.avail_out-257),f=L.dmax,u=L.wsize,l=L.whave,c=L.wnext,h=L.window,d=L.hold,g=L.bits,b=L.lencode,y=L.distcode,w=(1<<L.lenbits)-1,E=(1<<L.distbits)-1;e:do{g<15&&(d+=C[r++]<<g,g+=8,d+=C[r++]<<g,g+=8),_=b[d&w];t:for(;;){if(D=_>>>24,d>>>=D,g-=D,D=_>>>16&255,D===0)k[a++]=_&65535;else if(D&16){T=_&65535,D&=15,D&&(g<D&&(d+=C[r++]<<g,g+=8),T+=d&(1<<D)-1,d>>>=D,g-=D),g<15&&(d+=C[r++]<<g,g+=8,d+=C[r++]<<g,g+=8),_=y[d&E];n:for(;;){if(D=_>>>24,d>>>=D,g-=D,D=_>>>16&255,D&16){if(N=_&65535,D&=15,g<D&&(d+=C[r++]<<g,g+=8,g<D&&(d+=C[r++]<<g,g+=8)),N+=d&(1<<D)-1,N>f){e.msg="invalid distance too far back",L.mode=hc;break e}if(d>>>=D,g-=D,D=a-o,N>D){if(D=N-D,D>l&&L.sane){e.msg="invalid distance too far back",L.mode=hc;break e}if(M=0,R=h,c===0){if(M+=u-D,D<T){T-=D;do k[a++]=h[M++];while(--D);M=a-N,R=k}}else if(c<D){if(M+=u+c-D,D-=c,D<T){T-=D;do k[a++]=h[M++];while(--D);if(M=0,c<T){D=c,T-=D;do k[a++]=h[M++];while(--D);M=a-N,R=k}}}else if(M+=c-D,D<T){T-=D;do k[a++]=h[M++];while(--D);M=a-N,R=k}for(;T>2;)k[a++]=R[M++],k[a++]=R[M++],k[a++]=R[M++],T-=3;T&&(k[a++]=R[M++],T>1&&(k[a++]=R[M++]))}else{M=a-N;do k[a++]=k[M++],k[a++]=k[M++],k[a++]=k[M++],T-=3;while(T>2);T&&(k[a++]=k[M++],T>1&&(k[a++]=k[M++]))}}else if(D&64){e.msg="invalid distance code",L.mode=hc;break e}else{_=y[(_&65535)+(d&(1<<D)-1)];continue n}break}}else if(D&64)if(D&32){L.mode=R5;break e}else{e.msg="invalid literal/length code",L.mode=hc;break e}else{_=b[(_&65535)+(d&(1<<D)-1)];continue t}break}}while(r<i&&a<s);T=g>>3,r-=T,g-=T<<3,d&=(1<<g)-1,e.next_in=r,e.next_out=a,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=a<s?257+(s-a):257-(a-s),L.hold=d,L.bits=g};const No=15,jv=852,Gv=592,Hv=0,_g=1,Qv=2,z5=new Uint16Array([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]),P5=new Uint8Array([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]),U5=new Uint16Array([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]),j5=new Uint8Array([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]);var ju=(t,e,n,r,i,a,o,s)=>{const f=s.bits;let u=0,l=0,c=0,h=0,d=0,g=0,b=0,y=0,w=0,E=0,_,D,T,N,M,R=null,C;const k=new Uint16Array(No+1),L=new Uint16Array(No+1);let ee=null,ne,J,be;for(u=0;u<=No;u++)k[u]=0;for(l=0;l<r;l++)k[e[n+l]]++;for(d=f,h=No;h>=1&&k[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(c=1;c<h&&k[c]===0;c++);for(d<c&&(d=c),y=1,u=1;u<=No;u++)if(y<<=1,y-=k[u],y<0)return-1;if(y>0&&(t===Hv||h!==1))return-1;for(L[1]=0,u=1;u<No;u++)L[u+1]=L[u]+k[u];for(l=0;l<r;l++)e[n+l]!==0&&(o[L[e[n+l]]++]=l);if(t===Hv?(R=ee=o,C=20):t===_g?(R=z5,ee=P5,C=257):(R=U5,ee=j5,C=0),E=0,l=0,u=c,M=a,g=d,b=0,T=-1,w=1<<d,N=w-1,t===_g&&w>jv||t===Qv&&w>Gv)return 1;for(;;){ne=u-b,o[l]+1<C?(J=0,be=o[l]):o[l]>=C?(J=ee[o[l]-C],be=R[o[l]-C]):(J=32+64,be=0),_=1<<u-b,D=1<<g,c=D;do D-=_,i[M+(E>>b)+D]=ne<<24|J<<16|be|0;while(D!==0);for(_=1<<u-1;E&_;)_>>=1;if(_!==0?(E&=_-1,E+=_):E=0,l++,--k[u]===0){if(u===h)break;u=e[n+o[l]]}if(u>d&&(E&N)!==T){for(b===0&&(b=d),M+=c,g=u-b,y=1<<g;g+b<h&&(y-=k[g+b],!(y<=0));)g++,y<<=1;if(w+=1<<g,t===_g&&w>jv||t===Qv&&w>Gv)return 1;T=E&N,i[T]=d<<24|g<<16|M-a|0}}return E!==0&&(i[M+E]=u-b<<24|64<<16|0),s.bits=d,0};const G5=0,Vv=1,qv=2,{Z_FINISH:Zv,Z_BLOCK:H5,Z_TREES:dc,Z_OK:va,Z_STREAM_END:Q5,Z_NEED_DICT:V5,Z_STREAM_ERROR:mn,Z_DATA_ERROR:Yv,Z_MEM_ERROR:Wv,Z_BUF_ERROR:q5,Z_DEFLATED:Xv}=Bu,gc=16180,$v=16181,Kv=16182,Jv=16183,eA=16184,tA=16185,nA=16186,rA=16187,iA=16188,aA=16189,pc=16190,Mr=16191,Cg=16192,oA=16193,Dg=16194,sA=16195,uA=16196,fA=16197,lA=16198,mc=16199,bc=16200,cA=16201,hA=16202,dA=16203,gA=16204,pA=16205,Ig=16206,mA=16207,bA=16208,Ze=16209,yA=16210,wA=16211,Z5=852,Y5=592,W5=15,xA=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function X5(){this.strm=null,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=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Aa=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<gc||e.mode>wA?1:0},vA=t=>{if(Aa(t))return mn;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=gc,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(Z5),e.distcode=e.distdyn=new Int32Array(Y5),e.sane=1,e.back=-1,va},AA=t=>{if(Aa(t))return mn;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,vA(t)},EA=(t,e)=>{let n;if(Aa(t))return mn;const r=t.state;return e<0?(n=0,e=-e):(n=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?mn:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,AA(t))},SA=(t,e)=>{if(!t)return mn;const n=new X5;t.state=n,n.strm=t,n.window=null,n.mode=gc;const r=EA(t,e);return r!==va&&(t.state=null),r},$5=t=>SA(t,W5);let _A=!0,Mg,Tg;const K5=t=>{if(_A){Mg=new Int32Array(512),Tg=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(ju(Vv,t.lens,0,288,Mg,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;ju(qv,t.lens,0,32,Tg,0,t.work,{bits:5}),_A=!1}t.lencode=Mg,t.lenbits=9,t.distcode=Tg,t.distbits=5},CA=(t,e,n,r)=>{let i;const a=t.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(e.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(e.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(e.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},J5=(t,e)=>{let n,r,i,a,o,s,f,u,l,c,h,d,g,b,y=0,w,E,_,D,T,N,M,R;const C=new Uint8Array(4);let k,L;const ee=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Aa(t)||!t.output||!t.input&&t.avail_in!==0)return mn;n=t.state,n.mode===Mr&&(n.mode=Cg),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,c=s,h=f,R=va;e:for(;;)switch(n.mode){case gc:if(n.wrap===0){n.mode=Cg;break}for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0),u=0,l=0,n.mode=$v;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=Ze;break}if((u&15)!==Xv){t.msg="unknown compression method",n.mode=Ze;break}if(u>>>=4,l-=4,M=(u&15)+8,n.wbits===0&&(n.wbits=M),M>15||M>n.wbits){t.msg="invalid window size",n.mode=Ze;break}n.dmax=1<<n.wbits,n.flags=0,t.adler=n.check=1,n.mode=u&512?aA:Mr,u=0,l=0;break;case $v:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.flags=u,(n.flags&255)!==Xv){t.msg="unknown compression method",n.mode=Ze;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=Ze;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0)),u=0,l=0,n.mode=Kv;case Kv:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,C[2]=u>>>16&255,C[3]=u>>>24&255,n.check=gt(n.check,C,4,0)),u=0,l=0,n.mode=Jv;case Jv:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0)),u=0,l=0,n.mode=eA;case eA:if(n.flags&1024){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0)),u=0,l=0}else n.head&&(n.head.extra=null);n.mode=tA;case tA:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(M=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+d),M)),n.flags&512&&n.wrap&4&&(n.check=gt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=nA;case nA:if(n.flags&2048){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.name+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=gt(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=rA;case rA:if(n.flags&4096){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.comment+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=gt(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.comment=null);n.mode=iA;case iA:if(n.flags&512){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&4&&u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=Ze;break}u=0,l=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=Mr;break;case aA:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}t.adler=n.check=xA(u),u=0,l=0,n.mode=pc;case pc:if(n.havedict===0)return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,V5;t.adler=n.check=1,n.mode=Mr;case Mr:if(e===H5||e===dc)break e;case Cg:if(n.last){u>>>=l&7,l-=l&7,n.mode=Ig;break}for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}switch(n.last=u&1,u>>>=1,l-=1,u&3){case 0:n.mode=oA;break;case 1:if(K5(n),n.mode=mc,e===dc){u>>>=2,l-=2;break e}break;case 2:n.mode=uA;break;case 3:t.msg="invalid block type",n.mode=Ze}u>>>=2,l-=2;break;case oA:for(u>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=Ze;break}if(n.length=u&65535,u=0,l=0,n.mode=Dg,e===dc)break e;case Dg:n.mode=sA;case sA:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,f-=d,o+=d,n.length-=d;break}n.mode=Mr;break;case uA:for(;l<14;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.nlen=(u&31)+257,u>>>=5,l-=5,n.ndist=(u&31)+1,u>>>=5,l-=5,n.ncode=(u&15)+4,u>>>=4,l-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=Ze;break}n.have=0,n.mode=fA;case fA:for(;n.have<n.ncode;){for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.lens[ee[n.have++]]=u&7,u>>>=3,l-=3}for(;n.have<19;)n.lens[ee[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,k={bits:n.lenbits},R=ju(G5,n.lens,0,19,n.lencode,0,n.work,k),n.lenbits=k.bits,R){t.msg="invalid code lengths set",n.mode=Ze;break}n.have=0,n.mode=lA;case lA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(_<16)u>>>=w,l-=w,n.lens[n.have++]=_;else{if(_===16){for(L=w+2;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u>>>=w,l-=w,n.have===0){t.msg="invalid bit length repeat",n.mode=Ze;break}M=n.lens[n.have-1],d=3+(u&3),u>>>=2,l-=2}else if(_===17){for(L=w+3;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=3+(u&7),u>>>=3,l-=3}else{for(L=w+7;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=11+(u&127),u>>>=7,l-=7}if(n.have+d>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=Ze;break}for(;d--;)n.lens[n.have++]=M}}if(n.mode===Ze)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=Ze;break}if(n.lenbits=9,k={bits:n.lenbits},R=ju(Vv,n.lens,0,n.nlen,n.lencode,0,n.work,k),n.lenbits=k.bits,R){t.msg="invalid literal/lengths set",n.mode=Ze;break}if(n.distbits=6,n.distcode=n.distdyn,k={bits:n.distbits},R=ju(qv,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,k),n.distbits=k.bits,R){t.msg="invalid distances set",n.mode=Ze;break}if(n.mode=mc,e===dc)break e;case mc:n.mode=bc;case bc:if(s>=6&&f>=258){t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,O5(t,h),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,n.mode===Mr&&(n.back=-1);break}for(n.back=0;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(E&&!(E&240)){for(D=w,T=E,N=_;y=n.lencode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,n.length=_,E===0){n.mode=pA;break}if(E&32){n.back=-1,n.mode=Mr;break}if(E&64){t.msg="invalid literal/length code",n.mode=Ze;break}n.extra=E&15,n.mode=cA;case cA:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=hA;case hA:for(;y=n.distcode[u&(1<<n.distbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(!(E&240)){for(D=w,T=E,N=_;y=n.distcode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,E&64){t.msg="invalid distance code",n.mode=Ze;break}n.offset=_,n.extra=E&15,n.mode=dA;case dA:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=Ze;break}n.mode=gA;case gA:if(f===0)break e;if(d=h-f,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=Ze;break}d>n.wnext?(d-=n.wnext,g=n.wsize-d):g=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,g=o-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[o++]=b[g++];while(--d);n.length===0&&(n.mode=bc);break;case pA:if(f===0)break e;i[o++]=n.length,f--,n.mode=bc;break;case Ig:if(n.wrap){for(;l<32;){if(s===0)break e;s--,u|=r[a++]<<l,l+=8}if(h-=f,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?gt(n.check,i,h,o-h):Fu(n.check,i,h,o-h)),h=f,n.wrap&4&&(n.flags?u:xA(u))!==n.check){t.msg="incorrect data check",n.mode=Ze;break}u=0,l=0}n.mode=mA;case mA:if(n.wrap&&n.flags){for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&4&&u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=Ze;break}u=0,l=0}n.mode=bA;case bA:R=Q5;break e;case Ze:R=Yv;break e;case yA:return Wv;case wA:default:return mn}return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,(n.wsize||h!==t.avail_out&&n.mode<Ze&&(n.mode<Ig||e!==Zv))&&CA(t,t.output,t.next_out,h-t.avail_out),c-=t.avail_in,h-=t.avail_out,t.total_in+=c,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?gt(n.check,i,h,t.next_out-h):Fu(n.check,i,h,t.next_out-h)),t.data_type=n.bits+(n.last?64:0)+(n.mode===Mr?128:0)+(n.mode===mc||n.mode===Dg?256:0),(c===0&&h===0||e===Zv)&&R===va&&(R=q5),R},eO=t=>{if(Aa(t))return mn;let e=t.state;return e.window&&(e.window=null),t.state=null,va},tO=(t,e)=>{if(Aa(t))return mn;const n=t.state;return n.wrap&2?(n.head=e,e.done=!1,va):mn},nO=(t,e)=>{const n=e.length;let r,i,a;return Aa(t)||(r=t.state,r.wrap!==0&&r.mode!==pc)?mn:r.mode===pc&&(i=1,i=Fu(i,e,n,0),i!==r.check)?Yv:(a=CA(t,e,n,n),a?(r.mode=yA,Wv):(r.havedict=1,va))};var rO=AA,iO=EA,aO=vA,oO=$5,sO=SA,uO=J5,fO=eO,lO=tO,cO=nO,hO="pako inflate (from Nodeca project)",Tr={inflateReset:rO,inflateReset2:iO,inflateResetKeep:aO,inflateInit:oO,inflateInit2:sO,inflate:uO,inflateEnd:fO,inflateGetHeader:lO,inflateSetDictionary:cO,inflateInfo:hO};function dO(){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}var gO=dO;const DA=Object.prototype.toString,{Z_NO_FLUSH:pO,Z_FINISH:mO,Z_OK:Gu,Z_STREAM_END:Ng,Z_NEED_DICT:Fg,Z_STREAM_ERROR:bO,Z_DATA_ERROR:IA,Z_MEM_ERROR:yO}=Bu;function Hu(t){this.options=lc.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Pv,this.strm.avail_out=0;let n=Tr.inflateInit2(this.strm,e.windowBits);if(n!==Gu)throw new Error(_o[n]);if(this.header=new gO,Tr.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Uu.string2buf(e.dictionary):DA.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=Tr.inflateSetDictionary(this.strm,e.dictionary),n!==Gu)))throw new Error(_o[n])}Hu.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?mO:pO,DA.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=Tr.inflate(n,o),a===Fg&&i&&(a=Tr.inflateSetDictionary(n,i),a===Gu?a=Tr.inflate(n,o):a===IA&&(a=Fg));n.avail_in>0&&a===Ng&&n.state.wrap>0&&t[n.next_in]!==0;)Tr.inflateReset(n),a=Tr.inflate(n,o);switch(a){case bO:case IA:case Fg:case yO:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===Ng))if(this.options.to==="string"){let f=Uu.utf8border(n.output,n.next_out),u=n.next_out-f,l=Uu.buf2string(n.output,f);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(f,f+u),0),this.onData(l)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===Gu&&s===0)){if(a===Ng)return a=Tr.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Hu.prototype.onData=function(t){this.chunks.push(t)},Hu.prototype.onEnd=function(t){t===Gu&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=lc.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function Bg(t,e){const n=new Hu(e);if(n.push(t),n.err)throw n.msg||_o[n.err];return n.result}function wO(t,e){return e=e||{},e.raw=!0,Bg(t,e)}var xO=Hu,vO=Bg,AO=wO,EO=Bg,SO=Bu,_O={Inflate:xO,inflate:vO,inflateRaw:AO,ungzip:EO,constants:SO};const{Inflate:$7,inflate:K7,inflateRaw:CO,ungzip:J7}=_O;var DO=CO;function IO(t){return DO(t.subarray(2))}let MO=class extends Error{constructor(e){super(e),this.code="ERR_ABORTED"}};function TO(t){t.sort((i,a)=>Number(i.offset)-Number(a.offset));const e=[];let n,r;for(const i of t)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):e.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return e}function yc(t){if(t&&t.aborted)if(typeof DOMException>"u"){const e=new MO("aborted");throw e.code="ERR_ABORTED",e}else throw new DOMException("aborted","AbortError")}const NO=1,FO=2,BO=3;function kg(t,e,n,r){return t<r&&e>=n}function kO(t){const e=t?"big":"little",n=new Me().endianess(e).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Me().endianess(e).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Me().endianess(e).array("blocksToFetch",{length:"cnt",type:new Me().endianess(e).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Me().array("recurOffsets",{length:"cnt",type:new Me().endianess(e).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Me().endianess(e).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Me().endianess(e).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[BO]:new Me().array("items",{length:"itemCount",type:new Me().floatle("score")}),[FO]:new Me().array("items",{length:"itemCount",type:new Me().endianess(e).int32("start").floatle("score")}),[NO]:new Me().array("items",{length:"itemCount",type:new Me().endianess(e).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class MA{constructor(e,n,r,i,a,o){if(this.bbi=e,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new ac({cache:new rg({maxSize:1e3}),fill:async(f,u)=>{const l=Number(f.length),c=Number(f.offset),{buffer:h}=await this.bbi.read(bt.Buffer.alloc(l),0,l,c,{signal:u});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=kO(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(e,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:f,isBigEndian:u}=this,l=o[e];l===void 0&&i.complete();const c={chrId:l,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(bt.Buffer.alloc(48),0,48,Number(f),a));const{buffer:h}=await this.cirTreePromise,d=u?h.readUInt32BE(4):h.readUInt32LE(4);let g=[],b=0;const y=(D,T,N)=>{try{const M=D.subarray(T),R=this.leafParser.parse(M);if(R.blocksToFetch&&(g=g.concat(R.blocksToFetch.filter(C=>w(C)).map(C=>({offset:C.blockOffset,length:C.blockSize})))),R.recurOffsets){const C=R.recurOffsets.filter(k=>w(k)).map(k=>Number(k.blockOffset));C.length>0&&_(C,N+1)}}catch(M){i.error(M)}},w=D=>{const{startChrom:T,startBase:N,endChrom:M,endBase:R}=D;return(T<l||T===l&&N<=r)&&(M>l||M===l&&R>=n)},E=async(D,T,N)=>{try{const M=T.max()-T.min(),R=T.min(),C=await this.featureCache.get(`${M}_${R}`,{length:M,offset:R},a==null?void 0:a.signal);for(const k of D)T.contains(k)&&(y(C,k-R,N),b-=1,b===0&&this.readFeatures(i,g,{...a,request:c}))}catch(M){i.error(M)}},_=(D,T)=>{try{b+=D.length;const N=4+Number(d)*32;let M=new gi(D[0],D[0]+N);for(let R=1;R<D.length;R+=1){const C=new gi(D[R],D[R]+N);M=M.union(C)}M.getRanges().map(R=>E(D,R,T))}catch(N){i.error(N)}};return _([Number(f)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(e,n,r){const i=[];let a=n;const o=new DataView(e.buffer,e.byteOffset,e.length);for(;a<e.byteLength;){const s=o.getUint32(a,!0);a+=4;const f=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const c=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&kg(f,u,r.start,r.end))&&i.push({start:f,end:u,maxScore:h,minScore:c,summary:!0,score:d/(l||1)})}return i}parseBigBedBlock(e,n,r,i){const a=[];let o=n;for(;o<e.byteLength;){const s=this.bigBedParser.parse(e.subarray(o));a.push({...s,uniqueId:`bb-${r+o}`}),o+=s.offset}return i?a.filter(s=>kg(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(e,n,r){const i=e.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const f=a.getUint32(o,!0);o+=4;const u=a.getUint32(o,!0);o+=4;const l=a.getUint8(o);o+=2;const c=a.getUint16(o,!0);o+=2;const h=new Array(c);switch(l){case 1:{for(let d=0;d<c;d++){const g=a.getInt32(o,!0);o+=4;const b=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:g,end:b,score:y}}break}case 2:{for(let d=0;d<c;d++){const g=a.getInt32(o,!0);o+=4;const b=a.getFloat32(o,!0);o+=4,h[d]={score:b,start:g,end:g+u}}break}case 3:{for(let d=0;d<c;d++){const g=a.getFloat32(o,!0);o+=4;const b=s+d*f;h[d]={score:g,start:b,end:b+u}}break}}return r?h.filter(d=>kg(d.start,d.end,r.start,r.end)):h}async readFeatures(e,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,f=TO(n);yc(o),await Promise.all(f.map(async u=>{yc(o);const{length:l,offset:c}=u,h=await this.featureCache.get(`${l}_${c}`,u,o);for(const d of u.blocks){yc(o);let g=Number(d.offset)-Number(u.offset),b=h;switch(a&&(b=IO(h.subarray(g)),g=0),yc(o),i){case"summary":{e.next(this.parseSummaryBlock(b,g,s));break}case"bigwig":{e.next(this.parseBigWigBlock(b,g,s));break}case"bigbed":{e.next(this.parseBigBedBlock(b,g,Number(d.offset)*(1<<8),s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),e.complete()}catch(i){e.error(i)}}}var Lg=function(t,e){return Lg=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},Lg(t,e)};function Rg(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Lg(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function LO(t,e,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(l){try{u(r.next(l))}catch(c){o(c)}}function f(l){try{u(r.throw(l))}catch(c){o(c)}}function u(l){l.done?a(l.value):i(l.value).then(s,f)}u((r=r.apply(t,e||[])).next())})}function TA(t,e){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(u){return function(l){return f([u,l])}}function f(u){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(a=u[0]&2?i.return:u[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,u[1])).done)return a;switch(i=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]<a[3])){n.label=u[1];break}if(u[0]===6&&n.label<a[1]){n.label=a[1],a=u;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(u);break}a[2]&&n.ops.pop(),n.trys.pop();continue}u=e.call(t,n)}catch(l){u=[6,l],i=0}finally{r=a=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function Qu(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function wc(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var r=n.call(t),i,a=[],o;try{for(;(e===void 0||e-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function xc(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,a;r<i;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return t.concat(a||Array.prototype.slice.call(e))}function Fo(t){return this instanceof Fo?(this.v=t,this):new Fo(t)}function RO(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(g,b){a.push([h,d,g,b])>1||s(h,d)})})}function s(h,d){try{f(r[h](d))}catch(g){c(a[0][3],g)}}function f(h){h.value instanceof Fo?Promise.resolve(h.value.v).then(u,l):c(a[0][2],h)}function u(h){s("next",h)}function l(h){s("throw",h)}function c(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function OO(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof Qu=="function"?Qu(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=t[a]&&function(o){return new Promise(function(s,f){o=t[a](o),i(s,f,o.done,o.value)})}}function i(a,o,s,f){Promise.resolve(f).then(function(u){a({value:u,done:s})},o)}}function ut(t){return typeof t=="function"}function NA(t){var e=function(r){Error.call(r),r.stack=new Error().stack},n=t(e);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Og=NA(function(t){return function(n){t(this),this.message=n?n.length+` errors occurred during unsubscription:
|
|
176
176
|
`+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
|
|
177
|
-
`):"",this.name="UnsubscriptionError",this.errors=n}});function FA(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var Og=function(){function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=Qu(o),f=s.next();!f.done;f=s.next()){var u=f.value;u.remove(this)}}catch(b){e={error:b}}finally{try{f&&!f.done&&(n=s.return)&&n.call(s)}finally{if(e)throw e.error}}else o.remove(this);var l=this.initialTeardown;if(ut(l))try{l()}catch(b){a=b instanceof Rg?b.errors:[b]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var h=Qu(c),d=h.next();!d.done;d=h.next()){var g=d.value;try{kA(g)}catch(b){a=a??[],b instanceof Rg?a=xc(xc([],wc(a)),wc(b.errors)):a.push(b)}}}catch(b){r={error:b}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Rg(a)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)kA(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(e)}},t.prototype._hasParent=function(e){var n=this._parentage;return n===e||Array.isArray(n)&&n.includes(e)},t.prototype._addParent=function(e){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(e),n):n?[n,e]:e},t.prototype._removeParent=function(e){var n=this._parentage;n===e?this._parentage=null:Array.isArray(n)&&FA(n,e)},t.prototype.remove=function(e){var n=this._finalizers;n&&FA(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}();Og.EMPTY;function BA(t){return t instanceof Og||t&&"closed"in t&&ut(t.remove)&&ut(t.add)&&ut(t.unsubscribe)}function kA(t){ut(t)?t():t.unsubscribe()}var LA={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},zg={setTimeout:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=zg.delegate;return i!=null&&i.setTimeout?i.setTimeout.apply(i,xc([t,e],wc(n))):setTimeout.apply(void 0,xc([t,e],wc(n)))},clearTimeout:function(t){var e=zg.delegate;return((e==null?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function RA(t){zg.setTimeout(function(){throw t})}function OA(){}function zO(t){t()}var Pg=function(t){Lg(e,t);function e(n){var r=t.call(this)||this;return r.isStopped=!1,n?(r.destination=n,BA(n)&&n.add(r)):r.destination=GO,r}return e.create=function(n,r,i){return new vc(n,r,i)},e.prototype.next=function(n){this.isStopped||this._next(n)},e.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(n){this.destination.next(n)},e.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(Og),PO=Function.prototype.bind;function Ug(t,e){return PO.call(t,e)}var UO=function(){function t(e){this.partialObserver=e}return t.prototype.next=function(e){var n=this.partialObserver;if(n.next)try{n.next(e)}catch(r){Ac(r)}},t.prototype.error=function(e){var n=this.partialObserver;if(n.error)try{n.error(e)}catch(r){Ac(r)}else Ac(e)},t.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(n){Ac(n)}},t}(),vc=function(t){Lg(e,t);function e(n,r,i){var a=t.call(this)||this,o;if(ut(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&LA.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&Ug(n.next,s),error:n.error&&Ug(n.error,s),complete:n.complete&&Ug(n.complete,s)}):o=n}return a.destination=new UO(o),a}return e}(Pg);function Ac(t){RA(t)}function jO(t){throw t}var GO={closed:!0,next:OA,error:jO,complete:OA},jg=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function zA(t){return t}function HO(t){return t.length===0?zA:t.length===1?t[0]:function(n){return t.reduce(function(r,i){return i(r)},n)}}var bn=function(){function t(e){e&&(this._subscribe=e)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(e,n,r){var i=this,a=VO(e)?e:new vc(e,n,r);return zO(function(){var o=i,s=o.operator,f=o.source;a.add(s?s.call(a,f):f?i._subscribe(a):i._trySubscribe(a))}),a},t.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(n){e.error(n)}},t.prototype.forEach=function(e,n){var r=this;return n=PA(n),new n(function(i,a){var o=new vc({next:function(s){try{e(s)}catch(f){a(f),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},t.prototype._subscribe=function(e){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(e)},t.prototype[jg]=function(){return this},t.prototype.pipe=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return HO(e)(this)},t.prototype.toPromise=function(e){var n=this;return e=PA(e),new e(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},t.create=function(e){return new t(e)},t}();function PA(t){var e;return(e=t??LA.Promise)!==null&&e!==void 0?e:Promise}function QO(t){return t&&ut(t.next)&&ut(t.error)&&ut(t.complete)}function VO(t){return t&&t instanceof Pg||QO(t)&&BA(t)}function qO(t){return ut(t==null?void 0:t.lift)}function ko(t){return function(e){if(qO(e))return e.lift(function(n){try{return t(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function Vu(t,e,n,r,i){return new ZO(t,e,n,r,i)}var ZO=function(t){Lg(e,t);function e(n,r,i,a,o,s){var f=t.call(this,n)||this;return f.onFinalize=o,f.shouldUnsubscribe=s,f._next=r?function(u){try{r(u)}catch(l){n.error(l)}}:t.prototype._next,f._error=a?function(u){try{a(u)}catch(l){n.error(l)}finally{this.unsubscribe()}}:t.prototype._error,f._complete=i?function(){try{i()}catch(u){n.error(u)}finally{this.unsubscribe()}}:t.prototype._complete,f}return e.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;t.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},e}(Pg),YO=new bn(function(t){return t.complete()});function WO(t){return t&&ut(t.schedule)}function UA(t){return t[t.length-1]}function XO(t){return WO(UA(t))?t.pop():void 0}function $O(t,e){return typeof UA(t)=="number"?t.pop():e}var jA=function(t){return t&&typeof t.length=="number"&&typeof t!="function"};function GA(t){return ut(t==null?void 0:t.then)}function HA(t){return ut(t[jg])}function QA(t){return Symbol.asyncIterator&&ut(t==null?void 0:t[Symbol.asyncIterator])}function VA(t){return new TypeError("You provided "+(t!==null&&typeof t=="object"?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function KO(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var qA=KO();function ZA(t){return ut(t==null?void 0:t[qA])}function YA(t){return RO(this,arguments,function(){var n,r,i,a;return TA(this,function(o){switch(o.label){case 0:n=t.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,Bo(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,Bo(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,Bo(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function WA(t){return ut(t==null?void 0:t.getReader)}function Lo(t){if(t instanceof bn)return t;if(t!=null){if(HA(t))return JO(t);if(jA(t))return ez(t);if(GA(t))return tz(t);if(QA(t))return XA(t);if(ZA(t))return nz(t);if(WA(t))return rz(t)}throw VA(t)}function JO(t){return new bn(function(e){var n=t[jg]();if(ut(n.subscribe))return n.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ez(t){return new bn(function(e){for(var n=0;n<t.length&&!e.closed;n++)e.next(t[n]);e.complete()})}function tz(t){return new bn(function(e){t.then(function(n){e.closed||(e.next(n),e.complete())},function(n){return e.error(n)}).then(null,RA)})}function nz(t){return new bn(function(e){var n,r;try{for(var i=Qu(t),a=i.next();!a.done;a=i.next()){var o=a.value;if(e.next(o),e.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}e.complete()})}function XA(t){return new bn(function(e){iz(t,e).catch(function(n){return e.error(n)})})}function rz(t){return XA(YA(t))}function iz(t,e){var n,r,i,a;return LO(this,void 0,void 0,function(){var o,s;return TA(this,function(f){switch(f.label){case 0:f.trys.push([0,5,6,11]),n=OO(t),f.label=1;case 1:return[4,n.next()];case 2:if(r=f.sent(),!!r.done)return[3,4];if(o=r.value,e.next(o),e.closed)return[2];f.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=f.sent(),i={error:s},[3,11];case 6:return f.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:f.sent(),f.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}})})}function vi(t,e,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=e.schedule(function(){n(),i?t.add(this.schedule(null,r)):this.unsubscribe()},r);if(t.add(a),!i)return a}function $A(t,e){return e===void 0&&(e=0),ko(function(n,r){n.subscribe(Vu(r,function(i){return vi(r,t,function(){return r.next(i)},e)},function(){return vi(r,t,function(){return r.complete()},e)},function(i){return vi(r,t,function(){return r.error(i)},e)}))})}function KA(t,e){return e===void 0&&(e=0),ko(function(n,r){r.add(t.schedule(function(){return n.subscribe(r)},e))})}function az(t,e){return Lo(t).pipe(KA(e),$A(e))}function oz(t,e){return Lo(t).pipe(KA(e),$A(e))}function sz(t,e){return new bn(function(n){var r=0;return e.schedule(function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())})})}function uz(t,e){return new bn(function(n){var r;return vi(n,e,function(){r=t[qA](),vi(n,e,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return ut(r==null?void 0:r.return)&&r.return()}})}function JA(t,e){if(!t)throw new Error("Iterable cannot be null");return new bn(function(n){vi(n,e,function(){var r=t[Symbol.asyncIterator]();vi(n,e,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function fz(t,e){return JA(YA(t),e)}function lz(t,e){if(t!=null){if(HA(t))return az(t,e);if(jA(t))return sz(t,e);if(GA(t))return oz(t,e);if(QA(t))return JA(t,e);if(ZA(t))return uz(t,e);if(WA(t))return fz(t,e)}throw VA(t)}function cz(t,e){return e?lz(t,e):Lo(t)}var hz=NA(function(t){return function(){t(this),this.name="EmptyError",this.message="no elements in sequence"}});function eE(t,e){var n=typeof e=="object";return new Promise(function(r,i){var a=new vc({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(e.defaultValue):i(new hz)}});t.subscribe(a)})}function tE(t,e){return ko(function(n,r){var i=0;n.subscribe(Vu(r,function(a){r.next(t.call(e,a,i++))}))})}function dz(t,e,n,r,i,a,o,s){var f=[],u=0,l=0,c=!1,h=function(){c&&!f.length&&!u&&e.complete()},d=function(b){return u<r?g(b):f.push(b)},g=function(b){a&&e.next(b),u++;var y=!1;Lo(n(b,l++)).subscribe(Vu(e,function(w){i==null||i(w),a?d(w):e.next(w)},function(){y=!0},void 0,function(){if(y)try{u--;for(var w=function(){var E=f.shift();o?vi(e,o,function(){return g(E)}):g(E)};f.length&&u<r;)w();h()}catch(E){e.error(E)}}))};return t.subscribe(Vu(e,d,function(){c=!0,h()})),function(){s==null||s()}}function nE(t,e,n){return n===void 0&&(n=1/0),ut(e)?nE(function(r,i){return tE(function(a,o){return e(r,a,i,o)})(Lo(t(r,i)))},n):(typeof e=="number"&&(n=e),ko(function(r,i){return dz(r,i,t,n)}))}function gz(t){return t===void 0&&(t=1/0),nE(zA,t)}function pz(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=XO(t),r=$O(t,1/0),i=t;return i.length?i.length===1?Lo(i[0]):gz(r)(cz(i,n)):YO}function mz(t,e,n,r,i){return function(a,o){var s=n,f=e,u=0;a.subscribe(Vu(o,function(l){var c=u++;f=s?t(f,l,c):(s=!0,l),r&&o.next(f)},i&&function(){s&&o.next(f),o.complete()}))}}function rE(t,e){return ko(mz(t,e,arguments.length>=2,!1,!0))}var bz=function(t,e){return t.push(e),t};function yz(){return ko(function(t,e){rE(bz,[])(t).subscribe(e)})}const iE=-2003829722,Gg=-2021002517;function wz(t){return new TextDecoder().decode(t)}function aE(t){const e=t?"big":"little",n=new Me().endianess(e).int32("magic").uint16("version").uint16("numZoomLevels").uint64("chromTreeOffset").uint64("unzoomedDataOffset").uint64("unzoomedIndexOffset").uint16("fieldCount").uint16("definedFieldCount").uint64("asOffset").uint64("totalSummaryOffset").uint32("uncompressBufSize").uint64("extHeaderOffset").array("zoomLevels",{length:"numZoomLevels",type:new Me().endianess(e).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Me().endianess(e).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Me().endianess(e).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new Me().endianess(e).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class oE{getHeader(e){return this.headerP||(this.headerP=this._getHeader(e).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(e){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=e;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new rr(a);else if(i)this.bbi=new Kt(i);else throw new Error("no file given")}async _getHeader(e){const n=await this._getMainHeader(e),r=await this._readChromTree(n,e);return{...n,...r}}async _getMainHeader(e,n=2e3){const{buffer:r}=await this.bbi.read(bt.Buffer.alloc(n),0,n,0,e),i=this._isBigEndian(r),a=aE(i),o=a.headerParser.parse(r),{magic:s,asOffset:f,totalSummaryOffset:u}=o;if(o.fileType=s===Gg?"bigbed":"bigwig",f>n||u>n)return this._getMainHeader(e,n*2);if(f){const l=Number(o.asOffset);o.autoSql=wz(r.subarray(l,r.indexOf(0,l)))}if(o.totalSummaryOffset>n)return this._getMainHeader(e,n*2);if(o.totalSummaryOffset){const l=r.subarray(Number(o.totalSummaryOffset)),c=a.totalSummaryParser.parse(l);o.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(e){let n=e.readInt32LE(0);if(n===iE||n===Gg)return!1;if(n=e.readInt32BE(0),n===iE||n===Gg)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(e,n){const r=e.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(e.unzoomedDataOffset);const f=Number(e.chromTreeOffset);for(;s%4!==0;)s+=1;const u=s-f,{buffer:l}=await this.bbi.read(bt.Buffer.alloc(u),0,u,Number(f),n),c=aE(r),{keySize:h}=c.chromTreeParser.parse(l),d=new Me().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),g=new Me().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,y=async w=>{let E=w;if(E>=l.length)throw new Error("reading beyond end of buffer");const _=c.isLeafNode.parse(l.subarray(E)),{isLeafNode:D,cnt:T}=_;if(E+=_.offset,D)for(let N=0;N<T;N+=1){const M=d.parse(l.subarray(E));E+=M.offset;const{key:R,refId:C,refSize:k}=M,L={name:R,id:C,length:k};o[this.renameRefSeqs(R)]=C,a[C]=L}else{const N=[];for(let M=0;M<T;M+=1){const R=g.parse(l.subarray(E)),{childOffset:C}=R;E+=R.offset,N.push(y(Number(C)-Number(f)))}await Promise.all(N)}};return await y(b),{refsByName:o,refsByNumber:a}}async getUnzoomedView(e){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(e);return new MA(this.bbi,r,n,a,i>0,o)}async getFeatureStream(e,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(e);let o;const{basesPerSpan:s,scale:f}=i||{};return s?o=await this.getView(1/s,i):f?o=await this.getView(f,i):o=await this.getView(1,i),new bn(u=>{o.readWigData(a,n,r,u,i)})}async getFeatures(e,n,r,i){const a=await this.getFeatureStream(e,n,r,i);return(await eE(a.pipe(yz()))).flat()}}class xz extends oE{async getView(e,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),f=1/e;let u=r.length;a||(u-=1);for(let l=u;l>=0;l-=1){const c=r[l];if(c&&c.reductionLevel<=2*f){const h=Number(c.indexOffset);return new MA(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function vz(t){return t.filter(e=>!!e)}class Az extends oE{constructor(){super(...arguments),this.readIndicesCache=new ac({cache:new ng({maxSize:1}),fill:(e,n)=>this._readIndices({...e,signal:n})})}readIndices(e={}){const{signal:n,...r}=e;return this.readIndicesCache.get(JSON.stringify(r),e,n)}async getView(e,n){return this.getUnzoomedView(n)}async _readIndices(e){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(e),{buffer:i}=await this.bbi.read(bt.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new Me().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:f}=o;if(s===0)return[];const u=20,l=u*s,{buffer:c}=await this.bbi.read(bt.Buffer.alloc(l),0,l,Number(f)),h=new Me().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let g=0;g<s;g+=1)d.push(h.parse(c.subarray(g*u)));return d}async searchExtraIndexBlocks(e,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const a=i.map(async o=>{const{offset:s,field:f}=o,{buffer:u}=await this.bbi.read(bt.Buffer.alloc(32),0,32,Number(s),n),l=r?"big":"little",c=new Me().endianess(l).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:g}=c.parse(u),b=new Me().endianess(l).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Me().array("leafkeys",{length:"cnt",type:new Me().endianess(l).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Me().array("keys",{length:"cnt",type:new Me().endianess(l).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async E=>{const _=Number(E),D=4+h*(d+g),{buffer:T}=await this.bbi.read(bt.Buffer.alloc(D),0,D,_,n),N=b.parse(T);if(N.leafkeys){let M;for(let R=0;R<N.leafkeys.length;R+=1){const{key:C}=N.leafkeys[R];if(e.localeCompare(C)<0&&M)return y(M);M=N.leafkeys[R].offset}return y(M)}for(let M=0;M<N.keys.length;M+=1)if(N.keys[M].key===e)return{...N.keys[M],field:f}},w=32;return y(Number(s)+w)});return vz(await Promise.all(a))}async searchExtraIndex(e,n={}){const r=await this.searchExtraIndexBlocks(e,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new bn(f=>{i.readFeatures(f,[s],n)}).pipe(rE((f,u)=>f.concat(u)),tE(f=>{for(const u of f)u.field=s.field;return f})));return(await eE(pz(...a))).filter(s=>{var f;return((f=s.rest)===null||f===void 0?void 0:f.split(" ")[(s.field||0)-3])===e})}}function Ec(t,e,n=!0){let r,i=o=>{};return function(...s){return new Promise((f,u)=>{const l=()=>{clearTimeout(r),i=c=>{},f(t(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=window.setTimeout(l,e)})}}class Ez extends Au(ra){constructor(n,r){const i={pixelsPerBin:2,channel:"x",...n};super(r,i.channel);rn(this,"reductionLevels",[]);rn(this,"lastRequestId",0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.bbi=new xz({filehandle:new rr(Eu(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=Ec(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.reductionLevels=a.zoomLevels.map(o=>o.reductionLevel).reverse(),this.reductionLevels.push(1)})}async onDomainChanged(n){await this.headerPromise;const r=this.getAxisLength()||700,i=Sz(n,r,this.reductionLevels),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.doDebouncedRequest(o,i)}async doRequest(n,r){const i=await this.getFeatures(n,.5/r/this.params.pixelsPerBin);i.requestId<this.lastRequestId||this.publishData(i.features)}async getFeatures(n,r){let i=++this.lastRequestId;const a=new AbortController,o=this.genome.continuousToDiscreteChromosomeIntervals(n),s=await Promise.all(o.map(f=>this.bbi.getFeatures(f.chrom,f.startPos,f.endPos,{scale:r,signal:a.signal}).then(u=>u.map(l=>({chrom:f.chrom,start:l.start,end:l.end,score:l.score})))));return{requestId:i,abort:()=>a.abort(),features:s.flat()}}}function Sz(t,e,n){const r=(t[1]-t[0])/e;return n.find(i=>i<r)??n.at(-1)}function _z(t,e){function n(){this.constructor=t}n.prototype=e.prototype,t.prototype=new n}function Ro(t,e,n,r){this.message=t,this.expected=e,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Ro)}_z(Ro,Error),Ro.buildMessage=function(t,e){var n={literal:function(u){return'"'+i(u.text)+'"'},class:function(u){var l="",c;for(c=0;c<u.parts.length;c++)l+=u.parts[c]instanceof Array?a(u.parts[c][0])+"-"+a(u.parts[c][1]):a(u.parts[c]);return"["+(u.inverted?"^":"")+l+"]"},any:function(u){return"any character"},end:function(u){return"end of input"},other:function(u){return u.description}};function r(u){return u.charCodeAt(0).toString(16).toUpperCase()}function i(u){return u.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(l){return"\\x0"+r(l)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(l){return"\\x"+r(l)})}function a(u){return u.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(l){return"\\x0"+r(l)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(l){return"\\x"+r(l)})}function o(u){return n[u.type](u)}function s(u){var l=new Array(u.length),c,h;for(c=0;c<u.length;c++)l[c]=o(u[c]);if(l.sort(),l.length>0){for(c=1,h=1;c<l.length;c++)l[c-1]!==l[c]&&(l[h]=l[c],h++);l.length=h}switch(l.length){case 1:return l[0];case 2:return l[0]+" or "+l[1];default:return l.slice(0,-1).join(", ")+", or "+l[l.length-1]}}function f(u){return u?'"'+i(u)+'"':"end of input"}return"Expected "+s(t)+" but "+f(e)+" found."};function Cz(t,e){e=e!==void 0?e:{};var n={},r={declaration:mS},i=mS,a="(",o=Fe("(",!1),s=")",f=Fe(")",!1),u=function(A,U,$,K){return{type:A,name:U,comment:$,fields:K}},l="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),g="table",b=Fe("table",!1),y="auto",w=Fe("auto",!1),E="primary",_=Fe("primary",!1),D="index",T=Fe("index",!1),N="unique",M=Fe("unique",!1),R=function(A,U){return U},C=function(A,U){return A.name&&U.unshift(A),U},k="#",L=Fe("#",!1),ee=";",ne=Fe(";",!1),J=function(A,U,$){return{type:A,name:U,comment:$}},be="[",Se=Fe("[",!1),Te="]",it=Fe("]",!1),et=function(A,U,$,K){return{type:A,size:U,name:$,comment:K}},dr=function(A,U,$,K){return{type:A,vals:U,name:$,comment:K}},ke=",",Ye=Fe(",",!1),Zt=function(A,U){return U.unshift(A),U},Qn="int",gr=Fe("int",!1),z="uint",O=Fe("uint",!1),q="short",Q=Fe("short",!1),X="ushort",S=Fe("ushort",!1),v="byte",G=Fe("byte",!1),V="ubyte",le=Fe("ubyte",!1),re="float",ce=Fe("float",!1),Yt="char",Si=Fe("char",!1),_i="string",Ci=Fe("string",!1),Dt="lstring",zr=Fe("lstring",!1),Di="enum",Wt=Fe("enum",!1),pr="double",x=Fe("double",!1),p="bigint",m=Fe("bigint",!1),I="set",B=Fe("set",!1),P=function(A,U){return A+" "+U},H=/^[a-zA-Z_]/,he=ff([["a","z"],["A","Z"],"_"],!1,!1),He=/^[a-zA-Z0-9_]/,Le=ff([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(A){return hS()},De=/^[^\n\r]/,sS=ff([`
|
|
177
|
+
`):"",this.name="UnsubscriptionError",this.errors=n}});function FA(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var zg=function(){function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=Qu(o),f=s.next();!f.done;f=s.next()){var u=f.value;u.remove(this)}}catch(b){e={error:b}}finally{try{f&&!f.done&&(n=s.return)&&n.call(s)}finally{if(e)throw e.error}}else o.remove(this);var l=this.initialTeardown;if(ut(l))try{l()}catch(b){a=b instanceof Og?b.errors:[b]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var h=Qu(c),d=h.next();!d.done;d=h.next()){var g=d.value;try{kA(g)}catch(b){a=a??[],b instanceof Og?a=xc(xc([],wc(a)),wc(b.errors)):a.push(b)}}}catch(b){r={error:b}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Og(a)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)kA(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(e)}},t.prototype._hasParent=function(e){var n=this._parentage;return n===e||Array.isArray(n)&&n.includes(e)},t.prototype._addParent=function(e){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(e),n):n?[n,e]:e},t.prototype._removeParent=function(e){var n=this._parentage;n===e?this._parentage=null:Array.isArray(n)&&FA(n,e)},t.prototype.remove=function(e){var n=this._finalizers;n&&FA(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}();zg.EMPTY;function BA(t){return t instanceof zg||t&&"closed"in t&&ut(t.remove)&&ut(t.add)&&ut(t.unsubscribe)}function kA(t){ut(t)?t():t.unsubscribe()}var LA={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Pg={setTimeout:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=Pg.delegate;return i!=null&&i.setTimeout?i.setTimeout.apply(i,xc([t,e],wc(n))):setTimeout.apply(void 0,xc([t,e],wc(n)))},clearTimeout:function(t){var e=Pg.delegate;return((e==null?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function RA(t){Pg.setTimeout(function(){throw t})}function OA(){}function zO(t){t()}var Ug=function(t){Rg(e,t);function e(n){var r=t.call(this)||this;return r.isStopped=!1,n?(r.destination=n,BA(n)&&n.add(r)):r.destination=GO,r}return e.create=function(n,r,i){return new vc(n,r,i)},e.prototype.next=function(n){this.isStopped||this._next(n)},e.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(n){this.destination.next(n)},e.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(zg),PO=Function.prototype.bind;function jg(t,e){return PO.call(t,e)}var UO=function(){function t(e){this.partialObserver=e}return t.prototype.next=function(e){var n=this.partialObserver;if(n.next)try{n.next(e)}catch(r){Ac(r)}},t.prototype.error=function(e){var n=this.partialObserver;if(n.error)try{n.error(e)}catch(r){Ac(r)}else Ac(e)},t.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(n){Ac(n)}},t}(),vc=function(t){Rg(e,t);function e(n,r,i){var a=t.call(this)||this,o;if(ut(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&LA.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&jg(n.next,s),error:n.error&&jg(n.error,s),complete:n.complete&&jg(n.complete,s)}):o=n}return a.destination=new UO(o),a}return e}(Ug);function Ac(t){RA(t)}function jO(t){throw t}var GO={closed:!0,next:OA,error:jO,complete:OA},Gg=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function zA(t){return t}function HO(t){return t.length===0?zA:t.length===1?t[0]:function(n){return t.reduce(function(r,i){return i(r)},n)}}var bn=function(){function t(e){e&&(this._subscribe=e)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(e,n,r){var i=this,a=VO(e)?e:new vc(e,n,r);return zO(function(){var o=i,s=o.operator,f=o.source;a.add(s?s.call(a,f):f?i._subscribe(a):i._trySubscribe(a))}),a},t.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(n){e.error(n)}},t.prototype.forEach=function(e,n){var r=this;return n=PA(n),new n(function(i,a){var o=new vc({next:function(s){try{e(s)}catch(f){a(f),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},t.prototype._subscribe=function(e){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(e)},t.prototype[Gg]=function(){return this},t.prototype.pipe=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return HO(e)(this)},t.prototype.toPromise=function(e){var n=this;return e=PA(e),new e(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},t.create=function(e){return new t(e)},t}();function PA(t){var e;return(e=t??LA.Promise)!==null&&e!==void 0?e:Promise}function QO(t){return t&&ut(t.next)&&ut(t.error)&&ut(t.complete)}function VO(t){return t&&t instanceof Ug||QO(t)&&BA(t)}function qO(t){return ut(t==null?void 0:t.lift)}function Bo(t){return function(e){if(qO(e))return e.lift(function(n){try{return t(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function Vu(t,e,n,r,i){return new ZO(t,e,n,r,i)}var ZO=function(t){Rg(e,t);function e(n,r,i,a,o,s){var f=t.call(this,n)||this;return f.onFinalize=o,f.shouldUnsubscribe=s,f._next=r?function(u){try{r(u)}catch(l){n.error(l)}}:t.prototype._next,f._error=a?function(u){try{a(u)}catch(l){n.error(l)}finally{this.unsubscribe()}}:t.prototype._error,f._complete=i?function(){try{i()}catch(u){n.error(u)}finally{this.unsubscribe()}}:t.prototype._complete,f}return e.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;t.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},e}(Ug),YO=new bn(function(t){return t.complete()});function WO(t){return t&&ut(t.schedule)}function UA(t){return t[t.length-1]}function XO(t){return WO(UA(t))?t.pop():void 0}function $O(t,e){return typeof UA(t)=="number"?t.pop():e}var jA=function(t){return t&&typeof t.length=="number"&&typeof t!="function"};function GA(t){return ut(t==null?void 0:t.then)}function HA(t){return ut(t[Gg])}function QA(t){return Symbol.asyncIterator&&ut(t==null?void 0:t[Symbol.asyncIterator])}function VA(t){return new TypeError("You provided "+(t!==null&&typeof t=="object"?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function KO(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var qA=KO();function ZA(t){return ut(t==null?void 0:t[qA])}function YA(t){return RO(this,arguments,function(){var n,r,i,a;return TA(this,function(o){switch(o.label){case 0:n=t.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,Fo(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,Fo(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,Fo(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function WA(t){return ut(t==null?void 0:t.getReader)}function ko(t){if(t instanceof bn)return t;if(t!=null){if(HA(t))return JO(t);if(jA(t))return ez(t);if(GA(t))return tz(t);if(QA(t))return XA(t);if(ZA(t))return nz(t);if(WA(t))return rz(t)}throw VA(t)}function JO(t){return new bn(function(e){var n=t[Gg]();if(ut(n.subscribe))return n.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ez(t){return new bn(function(e){for(var n=0;n<t.length&&!e.closed;n++)e.next(t[n]);e.complete()})}function tz(t){return new bn(function(e){t.then(function(n){e.closed||(e.next(n),e.complete())},function(n){return e.error(n)}).then(null,RA)})}function nz(t){return new bn(function(e){var n,r;try{for(var i=Qu(t),a=i.next();!a.done;a=i.next()){var o=a.value;if(e.next(o),e.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}e.complete()})}function XA(t){return new bn(function(e){iz(t,e).catch(function(n){return e.error(n)})})}function rz(t){return XA(YA(t))}function iz(t,e){var n,r,i,a;return LO(this,void 0,void 0,function(){var o,s;return TA(this,function(f){switch(f.label){case 0:f.trys.push([0,5,6,11]),n=OO(t),f.label=1;case 1:return[4,n.next()];case 2:if(r=f.sent(),!!r.done)return[3,4];if(o=r.value,e.next(o),e.closed)return[2];f.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=f.sent(),i={error:s},[3,11];case 6:return f.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:f.sent(),f.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}})})}function xi(t,e,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=e.schedule(function(){n(),i?t.add(this.schedule(null,r)):this.unsubscribe()},r);if(t.add(a),!i)return a}function $A(t,e){return e===void 0&&(e=0),Bo(function(n,r){n.subscribe(Vu(r,function(i){return xi(r,t,function(){return r.next(i)},e)},function(){return xi(r,t,function(){return r.complete()},e)},function(i){return xi(r,t,function(){return r.error(i)},e)}))})}function KA(t,e){return e===void 0&&(e=0),Bo(function(n,r){r.add(t.schedule(function(){return n.subscribe(r)},e))})}function az(t,e){return ko(t).pipe(KA(e),$A(e))}function oz(t,e){return ko(t).pipe(KA(e),$A(e))}function sz(t,e){return new bn(function(n){var r=0;return e.schedule(function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())})})}function uz(t,e){return new bn(function(n){var r;return xi(n,e,function(){r=t[qA](),xi(n,e,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return ut(r==null?void 0:r.return)&&r.return()}})}function JA(t,e){if(!t)throw new Error("Iterable cannot be null");return new bn(function(n){xi(n,e,function(){var r=t[Symbol.asyncIterator]();xi(n,e,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function fz(t,e){return JA(YA(t),e)}function lz(t,e){if(t!=null){if(HA(t))return az(t,e);if(jA(t))return sz(t,e);if(GA(t))return oz(t,e);if(QA(t))return JA(t,e);if(ZA(t))return uz(t,e);if(WA(t))return fz(t,e)}throw VA(t)}function cz(t,e){return e?lz(t,e):ko(t)}var hz=NA(function(t){return function(){t(this),this.name="EmptyError",this.message="no elements in sequence"}});function eE(t,e){var n=typeof e=="object";return new Promise(function(r,i){var a=new vc({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(e.defaultValue):i(new hz)}});t.subscribe(a)})}function tE(t,e){return Bo(function(n,r){var i=0;n.subscribe(Vu(r,function(a){r.next(t.call(e,a,i++))}))})}function dz(t,e,n,r,i,a,o,s){var f=[],u=0,l=0,c=!1,h=function(){c&&!f.length&&!u&&e.complete()},d=function(b){return u<r?g(b):f.push(b)},g=function(b){a&&e.next(b),u++;var y=!1;ko(n(b,l++)).subscribe(Vu(e,function(w){i==null||i(w),a?d(w):e.next(w)},function(){y=!0},void 0,function(){if(y)try{u--;for(var w=function(){var E=f.shift();o?xi(e,o,function(){return g(E)}):g(E)};f.length&&u<r;)w();h()}catch(E){e.error(E)}}))};return t.subscribe(Vu(e,d,function(){c=!0,h()})),function(){s==null||s()}}function nE(t,e,n){return n===void 0&&(n=1/0),ut(e)?nE(function(r,i){return tE(function(a,o){return e(r,a,i,o)})(ko(t(r,i)))},n):(typeof e=="number"&&(n=e),Bo(function(r,i){return dz(r,i,t,n)}))}function gz(t){return t===void 0&&(t=1/0),nE(zA,t)}function pz(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=XO(t),r=$O(t,1/0),i=t;return i.length?i.length===1?ko(i[0]):gz(r)(cz(i,n)):YO}function mz(t,e,n,r,i){return function(a,o){var s=n,f=e,u=0;a.subscribe(Vu(o,function(l){var c=u++;f=s?t(f,l,c):(s=!0,l),r&&o.next(f)},i&&function(){s&&o.next(f),o.complete()}))}}function rE(t,e){return Bo(mz(t,e,arguments.length>=2,!1,!0))}var bz=function(t,e){return t.push(e),t};function yz(){return Bo(function(t,e){rE(bz,[])(t).subscribe(e)})}const iE=-2003829722,Hg=-2021002517;function wz(t){return new TextDecoder().decode(t)}function aE(t){const e=t?"big":"little",n=new Me().endianess(e).int32("magic").uint16("version").uint16("numZoomLevels").uint64("chromTreeOffset").uint64("unzoomedDataOffset").uint64("unzoomedIndexOffset").uint16("fieldCount").uint16("definedFieldCount").uint64("asOffset").uint64("totalSummaryOffset").uint32("uncompressBufSize").uint64("extHeaderOffset").array("zoomLevels",{length:"numZoomLevels",type:new Me().endianess(e).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Me().endianess(e).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Me().endianess(e).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new Me().endianess(e).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class oE{getHeader(e){return this.headerP||(this.headerP=this._getHeader(e).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(e){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=e;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new nr(a);else if(i)this.bbi=new Jt(i);else throw new Error("no file given")}async _getHeader(e){const n=await this._getMainHeader(e),r=await this._readChromTree(n,e);return{...n,...r}}async _getMainHeader(e,n=2e3){const{buffer:r}=await this.bbi.read(bt.Buffer.alloc(n),0,n,0,e),i=this._isBigEndian(r),a=aE(i),o=a.headerParser.parse(r),{magic:s,asOffset:f,totalSummaryOffset:u}=o;if(o.fileType=s===Hg?"bigbed":"bigwig",f>n||u>n)return this._getMainHeader(e,n*2);if(f){const l=Number(o.asOffset);o.autoSql=wz(r.subarray(l,r.indexOf(0,l)))}if(o.totalSummaryOffset>n)return this._getMainHeader(e,n*2);if(o.totalSummaryOffset){const l=r.subarray(Number(o.totalSummaryOffset)),c=a.totalSummaryParser.parse(l);o.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(e){let n=e.readInt32LE(0);if(n===iE||n===Hg)return!1;if(n=e.readInt32BE(0),n===iE||n===Hg)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(e,n){const r=e.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(e.unzoomedDataOffset);const f=Number(e.chromTreeOffset);for(;s%4!==0;)s+=1;const u=s-f,{buffer:l}=await this.bbi.read(bt.Buffer.alloc(u),0,u,Number(f),n),c=aE(r),{keySize:h}=c.chromTreeParser.parse(l),d=new Me().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),g=new Me().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,y=async w=>{let E=w;if(E>=l.length)throw new Error("reading beyond end of buffer");const _=c.isLeafNode.parse(l.subarray(E)),{isLeafNode:D,cnt:T}=_;if(E+=_.offset,D)for(let N=0;N<T;N+=1){const M=d.parse(l.subarray(E));E+=M.offset;const{key:R,refId:C,refSize:k}=M,L={name:R,id:C,length:k};o[this.renameRefSeqs(R)]=C,a[C]=L}else{const N=[];for(let M=0;M<T;M+=1){const R=g.parse(l.subarray(E)),{childOffset:C}=R;E+=R.offset,N.push(y(Number(C)-Number(f)))}await Promise.all(N)}};return await y(b),{refsByName:o,refsByNumber:a}}async getUnzoomedView(e){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(e);return new MA(this.bbi,r,n,a,i>0,o)}async getFeatureStream(e,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(e);let o;const{basesPerSpan:s,scale:f}=i||{};return s?o=await this.getView(1/s,i):f?o=await this.getView(f,i):o=await this.getView(1,i),new bn(u=>{o.readWigData(a,n,r,u,i)})}async getFeatures(e,n,r,i){const a=await this.getFeatureStream(e,n,r,i);return(await eE(a.pipe(yz()))).flat()}}class xz extends oE{async getView(e,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),f=1/e;let u=r.length;a||(u-=1);for(let l=u;l>=0;l-=1){const c=r[l];if(c&&c.reductionLevel<=2*f){const h=Number(c.indexOffset);return new MA(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function vz(t){return t.filter(e=>!!e)}class Az extends oE{constructor(){super(...arguments),this.readIndicesCache=new ac({cache:new rg({maxSize:1}),fill:(e,n)=>this._readIndices({...e,signal:n})})}readIndices(e={}){const{signal:n,...r}=e;return this.readIndicesCache.get(JSON.stringify(r),e,n)}async getView(e,n){return this.getUnzoomedView(n)}async _readIndices(e){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(e),{buffer:i}=await this.bbi.read(bt.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new Me().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:f}=o;if(s===0)return[];const u=20,l=u*s,{buffer:c}=await this.bbi.read(bt.Buffer.alloc(l),0,l,Number(f)),h=new Me().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let g=0;g<s;g+=1)d.push(h.parse(c.subarray(g*u)));return d}async searchExtraIndexBlocks(e,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const a=i.map(async o=>{const{offset:s,field:f}=o,{buffer:u}=await this.bbi.read(bt.Buffer.alloc(32),0,32,Number(s),n),l=r?"big":"little",c=new Me().endianess(l).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:g}=c.parse(u),b=new Me().endianess(l).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Me().array("leafkeys",{length:"cnt",type:new Me().endianess(l).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Me().array("keys",{length:"cnt",type:new Me().endianess(l).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async E=>{const _=Number(E),D=4+h*(d+g),{buffer:T}=await this.bbi.read(bt.Buffer.alloc(D),0,D,_,n),N=b.parse(T);if(N.leafkeys){let M;for(let R=0;R<N.leafkeys.length;R+=1){const{key:C}=N.leafkeys[R];if(e.localeCompare(C)<0&&M)return y(M);M=N.leafkeys[R].offset}return y(M)}for(let M=0;M<N.keys.length;M+=1)if(N.keys[M].key===e)return{...N.keys[M],field:f}},w=32;return y(Number(s)+w)});return vz(await Promise.all(a))}async searchExtraIndex(e,n={}){const r=await this.searchExtraIndexBlocks(e,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new bn(f=>{i.readFeatures(f,[s],n)}).pipe(rE((f,u)=>f.concat(u)),tE(f=>{for(const u of f)u.field=s.field;return f})));return(await eE(pz(...a))).filter(s=>{var f;return((f=s.rest)===null||f===void 0?void 0:f.split(" ")[(s.field||0)-3])===e})}}function Ec(t,e,n=!0){let r,i=o=>{};return function(...s){return new Promise((f,u)=>{const l=()=>{clearTimeout(r),i=c=>{},f(t(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=window.setTimeout(l,e)})}}class Ez extends Au(ra){constructor(n,r){const i={pixelsPerBin:2,channel:"x",...n};super(r,i.channel);an(this,"reductionLevels",[]);an(this,"lastRequestId",0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.bbi=new xz({filehandle:new nr(Eu(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=Ec(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.reductionLevels=a.zoomLevels.map(o=>o.reductionLevel).reverse(),this.reductionLevels.push(1)})}async onDomainChanged(n){await this.headerPromise;const r=this.getAxisLength()||700,i=Sz(n,r,this.reductionLevels),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.doDebouncedRequest(o,i)}async doRequest(n,r){const i=await this.getFeatures(n,.5/r/this.params.pixelsPerBin);i.requestId<this.lastRequestId||this.publishData(i.features)}async getFeatures(n,r){let i=++this.lastRequestId;const a=new AbortController,o=this.genome.continuousToDiscreteChromosomeIntervals(n),s=await Promise.all(o.map(f=>this.bbi.getFeatures(f.chrom,f.startPos,f.endPos,{scale:r,signal:a.signal}).then(u=>u.map(l=>({chrom:f.chrom,start:l.start,end:l.end,score:l.score})))));return{requestId:i,abort:()=>a.abort(),features:s.flat()}}}function Sz(t,e,n){const r=(t[1]-t[0])/e;return n.find(i=>i<r)??n.at(-1)}function _z(t,e){function n(){this.constructor=t}n.prototype=e.prototype,t.prototype=new n}function Lo(t,e,n,r){this.message=t,this.expected=e,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Lo)}_z(Lo,Error),Lo.buildMessage=function(t,e){var n={literal:function(u){return'"'+i(u.text)+'"'},class:function(u){var l="",c;for(c=0;c<u.parts.length;c++)l+=u.parts[c]instanceof Array?a(u.parts[c][0])+"-"+a(u.parts[c][1]):a(u.parts[c]);return"["+(u.inverted?"^":"")+l+"]"},any:function(u){return"any character"},end:function(u){return"end of input"},other:function(u){return u.description}};function r(u){return u.charCodeAt(0).toString(16).toUpperCase()}function i(u){return u.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(l){return"\\x0"+r(l)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(l){return"\\x"+r(l)})}function a(u){return u.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(l){return"\\x0"+r(l)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(l){return"\\x"+r(l)})}function o(u){return n[u.type](u)}function s(u){var l=new Array(u.length),c,h;for(c=0;c<u.length;c++)l[c]=o(u[c]);if(l.sort(),l.length>0){for(c=1,h=1;c<l.length;c++)l[c-1]!==l[c]&&(l[h]=l[c],h++);l.length=h}switch(l.length){case 1:return l[0];case 2:return l[0]+" or "+l[1];default:return l.slice(0,-1).join(", ")+", or "+l[l.length-1]}}function f(u){return u?'"'+i(u)+'"':"end of input"}return"Expected "+s(t)+" but "+f(e)+" found."};function Cz(t,e){e=e!==void 0?e:{};var n={},r={declaration:mS},i=mS,a="(",o=Fe("(",!1),s=")",f=Fe(")",!1),u=function(A,U,$,K){return{type:A,name:U,comment:$,fields:K}},l="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),g="table",b=Fe("table",!1),y="auto",w=Fe("auto",!1),E="primary",_=Fe("primary",!1),D="index",T=Fe("index",!1),N="unique",M=Fe("unique",!1),R=function(A,U){return U},C=function(A,U){return A.name&&U.unshift(A),U},k="#",L=Fe("#",!1),ee=";",ne=Fe(";",!1),J=function(A,U,$){return{type:A,name:U,comment:$}},be="[",Se=Fe("[",!1),Te="]",it=Fe("]",!1),et=function(A,U,$,K){return{type:A,size:U,name:$,comment:K}},dr=function(A,U,$,K){return{type:A,vals:U,name:$,comment:K}},ke=",",Ye=Fe(",",!1),Zt=function(A,U){return U.unshift(A),U},Hn="int",gr=Fe("int",!1),z="uint",O=Fe("uint",!1),q="short",Q=Fe("short",!1),X="ushort",S=Fe("ushort",!1),v="byte",G=Fe("byte",!1),V="ubyte",le=Fe("ubyte",!1),re="float",ce=Fe("float",!1),Yt="char",Ei=Fe("char",!1),Si="string",_i=Fe("string",!1),Dt="lstring",Or=Fe("lstring",!1),Ci="enum",Wt=Fe("enum",!1),pr="double",x=Fe("double",!1),p="bigint",m=Fe("bigint",!1),I="set",B=Fe("set",!1),P=function(A,U){return A+" "+U},H=/^[a-zA-Z_]/,he=ff([["a","z"],["A","Z"],"_"],!1,!1),He=/^[a-zA-Z0-9_]/,Le=ff([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(A){return hS()},De=/^[^\n\r]/,sS=ff([`
|
|
178
178
|
`,"\r"],!0,!1),A7=function(A){return A.join("").replace(/^"/,"").replace(/"$/,"")},E7=dS("integer"),uS=/^[0-9]/,fS=ff([["0","9"]],!1,!1),S7=function(){return parseInt(hS(),10)},_7=dS("whitespace"),lS=/^[ \t\n\r]/,cS=ff([" "," ",`
|
|
179
|
-
`,"\r"],!1,!1),F=0,Bt=0,Gc=[{line:1,column:1}],mr=0,
|
|
179
|
+
`,"\r"],!1,!1),F=0,Bt=0,Gc=[{line:1,column:1}],mr=0,Up=[],oe=0,Hc;if("startRule"in e){if(!(e.startRule in r))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');i=r[e.startRule]}function hS(){return t.substring(Bt,F)}function Fe(A,U){return{type:"literal",text:A,ignoreCase:U}}function ff(A,U,$){return{type:"class",parts:A,inverted:U,ignoreCase:$}}function C7(){return{type:"end"}}function dS(A){return{type:"other",description:A}}function gS(A){var U=Gc[A],$;if(U)return U;for($=A-1;!Gc[$];)$--;for(U=Gc[$],U={line:U.line,column:U.column};$<A;)t.charCodeAt($)===10?(U.line++,U.column=1):U.column++,$++;return Gc[A]=U,U}function pS(A,U){var $=gS(A),K=gS(U);return{start:{offset:A,line:$.line,column:$.column},end:{offset:U,line:K.line,column:K.column}}}function se(A){F<mr||(F>mr&&(mr=F,Up=[]),Up.push(A))}function D7(A,U,$){return new Lo(Lo.buildMessage(A,U),A,U,$)}function mS(){var A,U,$,K,ae,Ue,Xe,Cn,Di,zr,Ii,Pr,Mi,Ur;return A=F,U=we(),U!==n?($=bS(),$!==n?(K=we(),K!==n?(ae=yS(),ae!==n?(Ue=we(),Ue!==n?(Xe=Qc(),Xe!==n?(Cn=we(),Cn!==n?(t.charCodeAt(F)===40?(Di=a,F++):(Di=n,oe===0&&se(o)),Di!==n?(zr=we(),zr!==n?(Ii=I7(),Ii!==n?(Pr=we(),Pr!==n?(t.charCodeAt(F)===41?(Mi=s,F++):(Mi=n,oe===0&&se(f)),Mi!==n?(Ur=we(),Ur!==n?(Bt=A,U=u($,ae,Xe,Ii),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A}function bS(){var A;return t.substr(F,6)===l?(A=l,F+=6):(A=n,oe===0&&se(c)),A===n&&(t.substr(F,6)===h?(A=h,F+=6):(A=n,oe===0&&se(d)),A===n&&(t.substr(F,5)===g?(A=g,F+=5):(A=n,oe===0&&se(b)))),A}function yS(){var A,U,$,K;return A=Qn(),A===n&&(A=F,U=Qn(),U!==n?($=wS(),$!==n?(U=[U,$],A=U):(F=A,A=n)):(F=A,A=n),A===n&&(A=F,U=Qn(),U!==n?(t.substr(F,4)===y?($=y,F+=4):($=n,oe===0&&se(w)),$!==n?(U=[U,$],A=U):(F=A,A=n)):(F=A,A=n),A===n&&(A=F,U=Qn(),U!==n?($=wS(),$!==n?(t.substr(F,4)===y?(K=y,F+=4):(K=n,oe===0&&se(w)),K!==n?(U=[U,$,K],A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)))),A}function wS(){var A;return t.substr(F,7)===E?(A=E,F+=7):(A=n,oe===0&&se(_)),A===n&&(t.substr(F,5)===D?(A=D,F+=5):(A=n,oe===0&&se(T)),A===n&&(t.substr(F,6)===N?(A=N,F+=6):(A=n,oe===0&&se(M)))),A}function Qc(){var A;return A=xS(),A===n&&(A=we()),A}function I7(){var A,U,$,K,ae,Ue,Xe;if(A=F,U=jp(),U!==n)if($=we(),$!==n){for(K=[],ae=F,Ue=we(),Ue!==n?(Xe=jp(),Xe!==n?(Bt=ae,Ue=R(U,Xe),ae=Ue):(F=ae,ae=n)):(F=ae,ae=n);ae!==n;)K.push(ae),ae=F,Ue=we(),Ue!==n?(Xe=jp(),Xe!==n?(Bt=ae,Ue=R(U,Xe),ae=Ue):(F=ae,ae=n)):(F=ae,ae=n);K!==n?(ae=we(),ae!==n?(Bt=A,U=C(U,K),A=U):(F=A,A=n)):(F=A,A=n)}else F=A,A=n;else F=A,A=n;return A}function M7(){var A;return t.charCodeAt(F)===35?(A=k,F++):(A=n,oe===0&&se(L)),A}function T7(){var A,U,$,K,ae;return A=F,U=we(),U!==n?($=M7(),$!==n?(K=xS(),K!==n?(ae=we(),ae!==n?(U=[U,$,K,ae],A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A}function jp(){var A,U,$,K,ae,Ue,Xe,Cn,Di,zr,Ii,Pr,Mi,Ur;return A=F,U=Gp(),U!==n?($=we(),$!==n?(K=Qn(),K!==n?(ae=we(),ae!==n?(t.charCodeAt(F)===59?(Ue=ee,F++):(Ue=n,oe===0&&se(ne)),Ue!==n?(Xe=we(),Xe!==n?(Cn=Qc(),Cn!==n?(Bt=A,U=J(U,K,Cn),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A===n&&(A=F,U=Gp(),U!==n?($=we(),$!==n?(t.charCodeAt(F)===91?(K=be,F++):(K=n,oe===0&&se(Se)),K!==n?(ae=we(),ae!==n?(Ue=F7(),Ue!==n?(Xe=we(),Xe!==n?(t.charCodeAt(F)===93?(Cn=Te,F++):(Cn=n,oe===0&&se(it)),Cn!==n?(Di=we(),Di!==n?(zr=Qn(),zr!==n?(Ii=we(),Ii!==n?(t.charCodeAt(F)===59?(Pr=ee,F++):(Pr=n,oe===0&&se(ne)),Pr!==n?(Mi=we(),Mi!==n?(Ur=Qc(),Ur!==n?(Bt=A,U=et(U,Ue,zr,Ur),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A===n&&(A=F,U=Gp(),U!==n?($=we(),$!==n?(t.charCodeAt(F)===40?(K=a,F++):(K=n,oe===0&&se(o)),K!==n?(ae=we(),ae!==n?(Ue=N7(),Ue!==n?(Xe=we(),Xe!==n?(t.charCodeAt(F)===41?(Cn=s,F++):(Cn=n,oe===0&&se(f)),Cn!==n?(Di=we(),Di!==n?(zr=Qn(),zr!==n?(Ii=we(),Ii!==n?(t.charCodeAt(F)===59?(Pr=ee,F++):(Pr=n,oe===0&&se(ne)),Pr!==n?(Mi=we(),Mi!==n?(Ur=Qc(),Ur!==n?(Bt=A,U=dr(U,Ue,zr,Ur),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A===n&&(A=T7()))),A}function N7(){var A,U,$,K,ae,Ue,Xe;if(A=F,U=Qn(),U!==n){for($=[],K=F,t.charCodeAt(F)===44?(ae=ke,F++):(ae=n,oe===0&&se(Ye)),ae!==n?(Ue=we(),Ue!==n?(Xe=Qn(),Xe!==n?(Bt=K,ae=R(U,Xe),K=ae):(F=K,K=n)):(F=K,K=n)):(F=K,K=n);K!==n;)$.push(K),K=F,t.charCodeAt(F)===44?(ae=ke,F++):(ae=n,oe===0&&se(Ye)),ae!==n?(Ue=we(),Ue!==n?(Xe=Qn(),Xe!==n?(Bt=K,ae=R(U,Xe),K=ae):(F=K,K=n)):(F=K,K=n)):(F=K,K=n);$!==n?(Bt=A,U=Zt(U,$),A=U):(F=A,A=n)}else F=A,A=n;return A}function Gp(){var A,U,$,K;return t.substr(F,3)===Hn?(A=Hn,F+=3):(A=n,oe===0&&se(gr)),A===n&&(t.substr(F,4)===z?(A=z,F+=4):(A=n,oe===0&&se(O)),A===n&&(t.substr(F,5)===q?(A=q,F+=5):(A=n,oe===0&&se(Q)),A===n&&(t.substr(F,6)===X?(A=X,F+=6):(A=n,oe===0&&se(S)),A===n&&(t.substr(F,4)===v?(A=v,F+=4):(A=n,oe===0&&se(G)),A===n&&(t.substr(F,5)===V?(A=V,F+=5):(A=n,oe===0&&se(le)),A===n&&(t.substr(F,5)===re?(A=re,F+=5):(A=n,oe===0&&se(ce)),A===n&&(t.substr(F,4)===Yt?(A=Yt,F+=4):(A=n,oe===0&&se(Ei)),A===n&&(t.substr(F,6)===Si?(A=Si,F+=6):(A=n,oe===0&&se(_i)),A===n&&(t.substr(F,7)===Dt?(A=Dt,F+=7):(A=n,oe===0&&se(Or)),A===n&&(t.substr(F,4)===Ci?(A=Ci,F+=4):(A=n,oe===0&&se(Wt)),A===n&&(t.substr(F,6)===pr?(A=pr,F+=6):(A=n,oe===0&&se(x)),A===n&&(t.substr(F,6)===p?(A=p,F+=6):(A=n,oe===0&&se(m)),A===n&&(t.substr(F,3)===I?(A=I,F+=3):(A=n,oe===0&&se(B)),A===n&&(A=F,U=bS(),U!==n?($=we(),$!==n?(K=yS(),K!==n?(Bt=A,U=P(U,K),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n))))))))))))))),A}function F7(){var A;return A=B7(),A===n&&(A=Qn()),A}function Qn(){var A,U,$,K,ae;if(A=F,U=F,H.test(t.charAt(F))?($=t.charAt(F),F++):($=n,oe===0&&se(he)),$!==n){for(K=[],He.test(t.charAt(F))?(ae=t.charAt(F),F++):(ae=n,oe===0&&se(Le));ae!==n;)K.push(ae),He.test(t.charAt(F))?(ae=t.charAt(F),F++):(ae=n,oe===0&&se(Le));K!==n?($=[$,K],U=$):(F=U,U=n)}else F=U,U=n;return U!==n&&(Bt=A,U=We()),A=U,A}function xS(){var A,U,$;for(A=F,U=[],De.test(t.charAt(F))?($=t.charAt(F),F++):($=n,oe===0&&se(sS));$!==n;)U.push($),De.test(t.charAt(F))?($=t.charAt(F),F++):($=n,oe===0&&se(sS));return U!==n&&(Bt=A,U=A7(U)),A=U,A}function B7(){var A,U,$,K;if(oe++,A=F,U=we(),U!==n){if($=[],uS.test(t.charAt(F))?(K=t.charAt(F),F++):(K=n,oe===0&&se(fS)),K!==n)for(;K!==n;)$.push(K),uS.test(t.charAt(F))?(K=t.charAt(F),F++):(K=n,oe===0&&se(fS));else $=n;$!==n?(Bt=A,U=S7(),A=U):(F=A,A=n)}else F=A,A=n;return oe--,A===n&&(U=n,oe===0&&se(E7)),A}function we(){var A,U;for(oe++,A=[],lS.test(t.charAt(F))?(U=t.charAt(F),F++):(U=n,oe===0&&se(cS));U!==n;)A.push(U),lS.test(t.charAt(F))?(U=t.charAt(F),F++):(U=n,oe===0&&se(cS));return oe--,A===n&&(U=n,oe===0&&se(_7)),A}if(Hc=i(),Hc!==n&&F===t.length)return Hc;throw Hc!==n&&F<t.length&&se(C7()),D7(Up,mr<t.length?t.charAt(mr):null,mr<t.length?pS(mr,mr+1):pS(mr,mr))}var sE={SyntaxError:Lo,parse:Cz};const Dz=ia(sE),Qg=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
|
|
180
180
|
"bigChain pairwise alignment"
|
|
181
181
|
(
|
|
182
182
|
string chrom; "Reference sequence chromosome or scaffold"
|
|
@@ -335,22 +335,22 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
|
|
|
335
335
|
float score; "Floating point score."
|
|
336
336
|
char[1] leftStatus; "Gap/break annotation for preceding block"
|
|
337
337
|
char[1] rightStatus; "Gap/break annotation for following block"
|
|
338
|
-
)`},Symbol.toStringTag,{value:"Module"}))).map(([t,e])=>[t,sE.parse(e.trim())]));function Qg(t){const e=["uint","int","float","long"];return{...t,fields:t.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&e.includes(n.type),isNumeric:!n.size&&e.includes(n.type)}))}}const Iz={".":0,"-":-1,"+":1};function Mz(t){var e;return t.length>=12&&!Number.isNaN(parseInt(t[9],10))&&((e=t[10])===null||e===void 0?void 0:e.split(",").filter(n=>!!n).length)===parseInt(t[9],10)}class Tz{constructor(e={}){if(e.autoSql)this.autoSql=Qg(Dz.parse(e.autoSql));else if(e.type){if(!Hg[e.type])throw new Error("Type not found");this.autoSql=Qg(Hg[e.type])}else this.autoSql=Qg(Hg.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(e,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(e)?e:e.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&Mz(a))for(let s=0;s<r.fields.length;s++){const f=r.fields[s];let u=a[s];const{isNumeric:l,isArray:c,arrayIsNumeric:h,name:d}=f;if(u==null)break;if(u!=="."){if(l){const g=Number(u);u=Number.isNaN(g)?u:g}else c&&(u=u.split(","),u[u.length-1]===""&&u.pop(),h&&(u=u.map(g=>Number(g))));o[d]=u}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((f,u)=>[s[u]||"field"+u,f])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=Iz[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}class Nz extends Au(ra){constructor(n,r){const i={channel:"x",windowSize:1e6,...n};super(r,i.channel);rn(this,"lastRequestId",0);rn(this,"parser");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.bbi=new Az({filehandle:new rr(Eu(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=Ec(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.parser=new Tz({autoSql:a.autoSql})})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doDebouncedRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){let r=++this.lastRequestId;const i=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),o=await Promise.all(a.map(s=>this.bbi.getFeatures(s.chrom,s.startPos,s.endPos,{signal:i.signal}).then(f=>f.map(u=>this.parser.parseLine(`${s.chrom} ${u.start} ${u.end} ${u.rest}`,{uniqueId:u.uniqueId})))));return{requestId:r,abort:()=>i.abort(),features:o.flat()}}}var Fz=Re,yn=null;try{yn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Re(t,e,n){this.low=t|0,this.high=e|0,this.unsigned=!!n}Re.prototype.__isLong__,Object.defineProperty(Re.prototype,"__isLong__",{value:!0});function Ht(t){return(t&&t.__isLong__)===!0}Re.isLong=Ht;var uE={},fE={};function Ea(t,e){var n,r,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(r=fE[t],r)?r:(n=Oe(t,(t|0)<0?-1:0,!0),i&&(fE[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(r=uE[t],r)?r:(n=Oe(t,t<0?-1:0,!1),i&&(uE[t]=n),n))}Re.fromInt=Ea;function wn(t,e){if(isNaN(t))return e?Sa:xn;if(e){if(t<0)return Sa;if(t>=cE)return mE}else{if(t<=-hE)return Qt;if(t+1>=hE)return pE}return t<0?wn(-t,e).neg():Oe(t%Oo|0,t/Oo|0,e)}Re.fromNumber=wn;function Oe(t,e,n){return new Re(t,e,n)}Re.fromBits=Oe;var Sc=Math.pow;function Vg(t,e,n){if(t.length===0)throw Error("empty string");if(t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return xn;if(typeof e=="number"?(n=e,e=!1):e=!!e,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Vg(t.substring(1),e,n).neg();for(var i=wn(Sc(n,8)),a=xn,o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),f=parseInt(t.substring(o,o+s),n);if(s<8){var u=wn(Sc(n,s));a=a.mul(u).add(wn(f))}else a=a.mul(i),a=a.add(wn(f))}return a.unsigned=e,a}Re.fromString=Vg;function Gn(t,e){return typeof t=="number"?wn(t,e):typeof t=="string"?Vg(t,e):Oe(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Re.fromValue=Gn;var lE=1<<16,Bz=1<<24,Oo=lE*lE,cE=Oo*Oo,hE=cE/2,dE=Ea(Bz),xn=Ea(0);Re.ZERO=xn;var Sa=Ea(0,!0);Re.UZERO=Sa;var zo=Ea(1);Re.ONE=zo;var gE=Ea(1,!0);Re.UONE=gE;var qg=Ea(-1);Re.NEG_ONE=qg;var pE=Oe(-1,2147483647,!1);Re.MAX_VALUE=pE;var mE=Oe(-1,-1,!0);Re.MAX_UNSIGNED_VALUE=mE;var Qt=Oe(0,-2147483648,!1);Re.MIN_VALUE=Qt;var Y=Re.prototype;Y.toInt=function(){return this.unsigned?this.low>>>0:this.low},Y.toNumber=function(){return this.unsigned?(this.high>>>0)*Oo+(this.low>>>0):this.high*Oo+(this.low>>>0)},Y.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Qt)){var n=wn(e),r=this.div(n),i=r.mul(n).sub(this);return r.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var a=wn(Sc(e,6),this.unsigned),o=this,s="";;){var f=o.div(a),u=o.sub(f.mul(a)).toInt()>>>0,l=u.toString(e);if(o=f,o.isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},Y.getHighBits=function(){return this.high},Y.getHighBitsUnsigned=function(){return this.high>>>0},Y.getLowBits=function(){return this.low},Y.getLowBitsUnsigned=function(){return this.low>>>0},Y.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Qt)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,n=31;n>0&&!(e&1<<n);n--);return this.high!=0?n+33:n+1},Y.isZero=function(){return this.high===0&&this.low===0},Y.eqz=Y.isZero,Y.isNegative=function(){return!this.unsigned&&this.high<0},Y.isPositive=function(){return this.unsigned||this.high>=0},Y.isOdd=function(){return(this.low&1)===1},Y.isEven=function(){return(this.low&1)===0},Y.equals=function(e){return Ht(e)||(e=Gn(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low},Y.eq=Y.equals,Y.notEquals=function(e){return!this.eq(e)},Y.neq=Y.notEquals,Y.ne=Y.notEquals,Y.lessThan=function(e){return this.comp(e)<0},Y.lt=Y.lessThan,Y.lessThanOrEqual=function(e){return this.comp(e)<=0},Y.lte=Y.lessThanOrEqual,Y.le=Y.lessThanOrEqual,Y.greaterThan=function(e){return this.comp(e)>0},Y.gt=Y.greaterThan,Y.greaterThanOrEqual=function(e){return this.comp(e)>=0},Y.gte=Y.greaterThanOrEqual,Y.ge=Y.greaterThanOrEqual,Y.compare=function(e){if(Ht(e)||(e=Gn(e)),this.eq(e))return 0;var n=this.isNegative(),r=e.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},Y.comp=Y.compare,Y.negate=function(){return!this.unsigned&&this.eq(Qt)?Qt:this.not().add(zo)},Y.neg=Y.negate,Y.add=function(e){Ht(e)||(e=Gn(e));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=e.high>>>16,s=e.high&65535,f=e.low>>>16,u=e.low&65535,l=0,c=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,l+=c>>>16,c&=65535,l+=n+o,l&=65535,Oe(h<<16|d,l<<16|c,this.unsigned)},Y.subtract=function(e){return Ht(e)||(e=Gn(e)),this.add(e.neg())},Y.sub=Y.subtract,Y.multiply=function(e){if(this.isZero())return xn;if(Ht(e)||(e=Gn(e)),yn){var n=yn.mul(this.low,this.high,e.low,e.high);return Oe(n,yn.get_high(),this.unsigned)}if(e.isZero())return xn;if(this.eq(Qt))return e.isOdd()?Qt:xn;if(e.eq(Qt))return this.isOdd()?Qt:xn;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(dE)&&e.lt(dE))return wn(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=e.high>>>16,f=e.high&65535,u=e.low>>>16,l=e.low&65535,c=0,h=0,d=0,g=0;return g+=o*l,d+=g>>>16,g&=65535,d+=a*l,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*l+i*u+a*f+o*s,c&=65535,Oe(d<<16|g,c<<16|h,this.unsigned)},Y.mul=Y.multiply,Y.divide=function(e){if(Ht(e)||(e=Gn(e)),e.isZero())throw Error("division by zero");if(yn){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var n=(this.unsigned?yn.div_u:yn.div_s)(this.low,this.high,e.low,e.high);return Oe(n,yn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Sa:xn;var r,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Sa;if(e.gt(this.shru(1)))return gE;a=Sa}else{if(this.eq(Qt)){if(e.eq(zo)||e.eq(qg))return Qt;if(e.eq(Qt))return zo;var o=this.shr(1);return r=o.div(e).shl(1),r.eq(xn)?e.isNegative()?zo:qg:(i=this.sub(e.mul(r)),a=r.add(i.div(e)),a)}else if(e.eq(Qt))return this.unsigned?Sa:xn;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=xn}for(i=this;i.gte(e);){r=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:Sc(2,s-48),u=wn(r),l=u.mul(e);l.isNegative()||l.gt(i);)r-=f,u=wn(r,this.unsigned),l=u.mul(e);u.isZero()&&(u=zo),a=a.add(u),i=i.sub(l)}return a},Y.div=Y.divide,Y.modulo=function(e){if(Ht(e)||(e=Gn(e)),yn){var n=(this.unsigned?yn.rem_u:yn.rem_s)(this.low,this.high,e.low,e.high);return Oe(n,yn.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))},Y.mod=Y.modulo,Y.rem=Y.modulo,Y.not=function(){return Oe(~this.low,~this.high,this.unsigned)},Y.and=function(e){return Ht(e)||(e=Gn(e)),Oe(this.low&e.low,this.high&e.high,this.unsigned)},Y.or=function(e){return Ht(e)||(e=Gn(e)),Oe(this.low|e.low,this.high|e.high,this.unsigned)},Y.xor=function(e){return Ht(e)||(e=Gn(e)),Oe(this.low^e.low,this.high^e.high,this.unsigned)},Y.shiftLeft=function(e){return Ht(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Oe(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Oe(0,this.low<<e-32,this.unsigned)},Y.shl=Y.shiftLeft,Y.shiftRight=function(e){return Ht(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Oe(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Oe(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},Y.shr=Y.shiftRight,Y.shiftRightUnsigned=function(e){if(Ht(e)&&(e=e.toInt()),e&=63,e===0)return this;var n=this.high;if(e<32){var r=this.low;return Oe(r>>>e|n<<32-e,n>>>e,this.unsigned)}else return e===32?Oe(n,0,this.unsigned):Oe(n>>>e-32,0,this.unsigned)},Y.shru=Y.shiftRightUnsigned,Y.shr_u=Y.shiftRightUnsigned,Y.toSigned=function(){return this.unsigned?Oe(this.low,this.high,!1):this},Y.toUnsigned=function(){return this.unsigned?this:Oe(this.low,this.high,!0)},Y.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},Y.toBytesLE=function(){var e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]},Y.toBytesBE=function(){var e=this.high,n=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Re.fromBytes=function(e,n,r){return r?Re.fromBytesLE(e,n):Re.fromBytesBE(e,n)},Re.fromBytesLE=function(e,n){return new Re(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,n)},Re.fromBytesBE=function(e,n){return new Re(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],n)};const bE=ia(Fz);let yE=class{constructor(e,n){this.blockPosition=e,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}static min(...e){let n,r=0;for(;!n;r+=1)n=e[r];for(;r<e.length;r+=1)n.compareTo(e[r])>0&&(n=e[r]);return n}};function Po(t,e=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new yE(t[e+7]*1099511627776+t[e+6]*4294967296+t[e+5]*16777216+t[e+4]*65536+t[e+3]*256+t[e+2],t[e+1]<<8|t[e])}let _c=class{constructor(e,n,r,i=void 0){this.minv=e,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(e){return this.minv.compareTo(e.minv)||this.maxv.compareTo(e.maxv)||this.bin-e.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+(1<<16)-this.minv.blockPosition}},wE=class{constructor({filehandle:e,renameRefSeq:n=r=>r}){this.filehandle=e,this.renameRefSeq=n}_findFirstData(e,n){const r=e.firstDataLine;r?e.firstDataLine=r.compareTo(n)>0?n:r:e.firstDataLine=n}async parse(e={}){return this.setupP||(this.setupP=this._parse(e).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(e,n={}){return!!((await this.parse(n)).indices[e]||{}).binIndex}};function kz(t){return new Promise(e=>setTimeout(e,t))}function xE(t){if(t.greaterThan(Number.MAX_SAFE_INTEGER)||t.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return t.toNumber()}function vE(t){if(t&&t.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const e=new Error("aborted");throw e.code="ERR_ABORTED",e}}}async function AE(t){await Promise.resolve(),vE(t)}function Lz(t,e){return e.minv.blockPosition-t.maxv.blockPosition<65e3&&e.maxv.blockPosition-t.minv.blockPosition<5e6}function Rz(t={}){return"aborted"in t?{signal:t}:t}function EE(t,e){const n=[];let r=null;return t.length===0?t:(t.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),t.forEach(i=>{(!e||i.maxv.compareTo(e)>0)&&(r===null?(n.push(i),r=i):Lz(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}const Oz=21578050;function zz(t,e){return t-t%e}function Pz(t,e){return t-t%e+e}class qu extends wE{parsePseudoBin(e,n){return{lineCount:xE(bE.fromBytesLE(Array.prototype.slice.call(e,n+16,n+24),!0))}}async lineCount(e,n={}){const i=(await this.parse(n)).indices[e];if(!i)return-1;const a=i.stats||{};return a.lineCount===void 0?-1:a.lineCount}fetchBai(e={}){return this.baiP||(this.baiP=this.filehandle.readFile(e).catch(n=>{throw this.baiP=void 0,n})),this.baiP}async _parse(){const e={bai:!0,maxBlockSize:65536},n=await this.fetchBai();if(n.readUInt32LE(0)!==Oz)throw new Error("Not a BAI file");e.refCount=n.readInt32LE(4);const i=((1<<(5+1)*3)-1)/7;e.indices=new Array(e.refCount);let a=8;for(let o=0;o<e.refCount;o+=1){const s=n.readInt32LE(a);let f;a+=4;const u={};for(let h=0;h<s;h+=1){const d=n.readUInt32LE(a);if(a+=4,d===i+1)a+=4,f=this.parsePseudoBin(n,a),a+=32;else{if(d>i+1)throw new Error("bai index contains too many bins, please use CSI");{const g=n.readInt32LE(a);a+=4;const b=new Array(g);for(let y=0;y<g;y+=1){const w=Po(n,a),E=Po(n,a+8);a+=16,this._findFirstData(e,w),b[y]=new _c(w,E,d)}u[d]=b}}}const l=n.readInt32LE(a);a+=4;const c=new Array(l);for(let h=0;h<l;h+=1)c[h]=Po(n,a),a+=8,this._findFirstData(e,c[h]);e.indices[o]={binIndex:u,linearIndex:c,stats:f}}return e}async indexCov(e,n,r,i={}){const o=n!==void 0,f=(await this.parse(i)).indices[e];if(!f)return[];const{linearIndex:u=[],stats:l}=f;if(!u.length)return[];const c=r!==void 0?Pz(r,16384):(u.length-1)*16384,h=n!==void 0?zz(n,16384):0;let d;o?d=new Array((c-h)/16384):d=new Array(u.length-1);const g=u[u.length-1].blockPosition;if(c>(u.length-1)*16384)throw new Error("query outside of range of linear index");let b=u[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:u[y+1].blockPosition-b,start:y*16384,end:y*16384+16384},b=u[y+1].blockPosition;return d.map(y=>({...y,score:y.score*l.lineCount/g}))}reg2bins(e,n){return n-=1,[[0,0],[1+(e>>26),1+(n>>26)],[9+(e>>23),9+(n>>23)],[73+(e>>20),73+(n>>20)],[585+(e>>17),585+(n>>17)],[4681+(e>>14),4681+(n>>14)]]}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[e];if(!o)return[];const s=this.reg2bins(n,r),f=[];for(const[d,g]of s)for(let b=d;b<=g;b++)if(o.binIndex[b]){const y=o.binIndex[b];for(let w=0;w<y.length;++w)f.push(new _c(y[w].minv,y[w].maxv,b))}const u=o.linearIndex.length;let l=null;const c=Math.min(n>>14,u-1),h=Math.min(r>>14,u-1);for(let d=c;d<=h;++d){const g=o.linearIndex[d];g&&(!l||g.compareTo(l)<0)&&(l=g)}return EE(f,l)}}const Uz=21582659,jz=38359875;function Gz(t,e){return t*2**e}function SE(t,e){return Math.floor(t/2**e)}let Zg=class extends wE{constructor(e){super(e),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(e){const n=await this.parse();if(!n||!n.indices[e])return-1;const{stats:i}=n.indices[e];return i?i.lineCount:-1}async indexCov(){return[]}parseAuxData(e,n,r){if(r<30)return{};const i={};if(i.formatFlags=e.readInt32LE(n),i.coordinateType=i.formatFlags&65536?"zero-based-half-open":"1-based-closed",i.format={0:"generic",1:"SAM",2:"VCF"}[i.formatFlags&15],!i.format)throw new Error(`invalid Tabix preset format flags ${i.formatFlags}`);i.columnNumbers={ref:e.readInt32LE(n+4),start:e.readInt32LE(n+8),end:e.readInt32LE(n+12)},i.metaValue=e.readInt32LE(n+16),i.metaChar=i.metaValue?String.fromCharCode(i.metaValue):"",i.skipLines=e.readInt32LE(n+20);const a=e.readInt32LE(n+24);return Object.assign(i,this._parseNameBytes(e.subarray(n+28,n+28+a))),i}_parseNameBytes(e){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(e){const n={csi:!0,maxBlockSize:65536},r=await this.filehandle.readFile(e),i=await xo(r);if(i.readUInt32LE(0)===Uz)n.csiVersion=1;else if(i.readUInt32LE(0)===jz)n.csiVersion=2;else throw new Error("Not a CSI file");this.minShift=i.readInt32LE(4),this.depth=i.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=i.readInt32LE(12);a&&Object.assign(n,this.parseAuxData(i,16,a)),n.refCount=i.readInt32LE(16+a),n.indices=new Array(n.refCount);let o=16+a+4;for(let s=0;s<n.refCount;s+=1){await AE(e.signal);const f=i.readInt32LE(o);o+=4;const u={};let l;for(let c=0;c<f;c+=1){const h=i.readUInt32LE(o);if(h>this.maxBinNumber)l=this.parsePseudoBin(i,o+4),o+=4+8+4+16+16;else{const d=Po(i,o+4);this._findFirstData(n,d);const g=i.readInt32LE(o+12);o+=16;const b=new Array(g);for(let y=0;y<g;y+=1){const w=Po(i,o),E=Po(i,o+8);o+=16,b[y]=new _c(w,E,h)}u[h]=b}}n.indices[s]={binIndex:u,stats:l}}return n}parsePseudoBin(e,n){return{lineCount:xE(bE.fromBytesLE(Array.prototype.slice.call(e,n+28,n+36),!0))}}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[e];if(!o)return[];const s=this.reg2bins(n,r),f=[];for(const[u,l]of s)for(let c=u;c<=l;c++)if(o.binIndex[c]){const h=o.binIndex[c];for(let d=0;d<h.length;++d)f.push(new _c(h[d].minv,h[d].maxv,c))}return EE(f,new yE(0,0))}reg2bins(e,n){e-=1,e<1&&(e=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=Gz(1,r*3),r+=1){const s=i+SE(e,a),f=i+SE(n,a);if(f-s+o.length>this.maxBinNumber)throw new Error(`query ${e}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,f])}return o}};var Ai=bt.Buffer,Yg=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(Yg=new Int32Array(Yg));function _E(t){if(Ai.isBuffer(t))return t;var e=typeof Ai.alloc=="function"&&typeof Ai.from=="function";if(typeof t=="number")return e?Ai.alloc(t):new Ai(t);if(typeof t=="string")return e?Ai.from(t):new Ai(t);throw new Error("input must be buffer, number, or string, received "+typeof t)}function Hz(t){var e=_E(4);return e.writeInt32BE(t,0),e}function Wg(t,e){t=_E(t),Ai.isBuffer(e)&&(e=e.readUInt32BE(0));for(var n=~~e^-1,r=0;r<t.length;r++)n=Yg[(n^t[r])&255]^n>>>8;return n^-1}function Xg(){return Hz(Wg.apply(null,arguments))}Xg.signed=function(){return Wg.apply(null,arguments)},Xg.unsigned=function(){return Wg.apply(null,arguments)>>>0};var Qz=Xg;const Vz=ia(Qz);var $g,CE;function qz(){if(CE)return $g;CE=1;var t=function(r,i){return Object.prototype.hasOwnProperty.call(r,i)},e=function(r,i){return Object.prototype.propertyIsEnumerable.call(r,i)};function n(r){if(r==null)throw new TypeError("Cannot convert undefined or null to object");var i=[];for(var a in r)t(r,a)&&e(r,a)&&i.push([a,r[a]]);return i}return $g=n,$g}var Zz=typeof Object.entries=="function"?Object.entries:qz();const Yz=ia(Zz);class Wz{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,n){this.cache.set(e,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const n=this.oldCache.get(e);return this._set(e,n),n}}set(e,n){return this.cache.has(e)?this.cache.set(e,n):this._set(e,n),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){const n=this.cache.delete(e);return n&&this._size--,this.oldCache.delete(e)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[n]=e;this.cache.has(n)||(yield e)}}get size(){let e=0;for(const n of this.oldCache.keys())this.cache.has(n)||e++;return this._size+e}}var Xz=Wz;const $z=ia(Xz),vn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},DE="=ACMGRSVTWYHKDBN".split(""),Zu="MIDNSHP=X???????".split("");class Kz{constructor(e){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=e,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(e){return this[e]?this.data[e]?this.data[e]:(this.data[e]=this[e](),this.data[e]):this._get(e.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(e){return e in this.data?this.data[e]:(this.data[e]=this._parseTag(e),this.data[e])}_tags(){this._parseAllTags();let e=["seq"];this.isSegmentUnmapped()||e.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&e.push("next_segment_position","pair_orientation"),e=e.concat(this._tagList||[]),Object.keys(this.data).forEach(r=>{r[0]!=="_"&&r!=="next_seq_id"&&e.push(r)});const n={};return e.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const e=(this.get("_bin_mq_nl")&65280)>>8;return e===255?void 0:e}score(){return this.get("mq")}qual(){var e;return(e=this.qualRaw())===null||e===void 0?void 0:e.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:e,byteArray:n}=this.bytes,r=e+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const e=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+e-1)}_parseTag(e){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==e;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const f=String.fromCharCode(n[i+2]);i+=3;let u;switch(f){case"A":u=String.fromCharCode(n[i]),i+=1;break;case"i":u=n.readInt32LE(i),i+=4;break;case"I":u=n.readUInt32LE(i),i+=4;break;case"c":u=n.readInt8(i),i+=1;break;case"C":u=n.readUInt8(i),i+=1;break;case"s":u=n.readInt16LE(i),i+=2;break;case"S":u=n.readUInt16LE(i),i+=2;break;case"f":u=n.readFloatLE(i),i+=4;break;case"Z":case"H":for(u="";i<=a;){const l=n[i++];if(l===0)break;u+=String.fromCharCode(l)}break;case"B":{u="";const l=n[i++],c=String.fromCharCode(l),h=n.readInt32LE(i);if(i+=4,c==="i")if(s==="CG")for(let d=0;d<h;d++){const g=n.readInt32LE(i),b=g>>4,y=Zu[g&15];u+=b+y,i+=4}else for(let d=0;d<h;d++)u+=n.readInt32LE(i),d+1<h&&(u+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const g=n.readUInt32LE(i),b=g>>4,y=Zu[g&15];u+=b+y,i+=4}else for(let d=0;d<h;d++)u+=n.readUInt32LE(i),d+1<h&&(u+=","),i+=4;if(c==="s")for(let d=0;d<h;d++)u+=n.readInt16LE(i),d+1<h&&(u+=","),i+=2;if(c==="S")for(let d=0;d<h;d++)u+=n.readUInt16LE(i),d+1<h&&(u+=","),i+=2;if(c==="c")for(let d=0;d<h;d++)u+=n.readInt8(i),d+1<h&&(u+=","),i+=1;if(c==="C")for(let d=0;d<h;d++)u+=n.readUInt8(i),d+1<h&&(u+=","),i+=1;if(c==="f")for(let d=0;d<h;d++)u+=n.readFloatLE(i),d+1<h&&(u+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${f}', tags may be incomplete`),u=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===e)return u;this.data[o]=u}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(e){return e.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),parseInt(n,10)])}isPaired(){return!!(this.flags&vn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&vn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&vn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&vn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&vn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&vn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&vn.BAM_FREAD1)}isRead2(){return!!(this.flags&vn.BAM_FREAD2)}isSecondary(){return!!(this.flags&vn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&vn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&vn.BAM_FDUP)}isSupplementary(){return!!(this.flags&vn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:e,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const a=this.get("seq_length");let o="",s=0,f=e.readInt32LE(i),u=f>>4,l=Zu[f&15];if(l==="S"&&u===a)return i+=4,f=e.readInt32LE(i),u=f>>4,l=Zu[f&15],l!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=u,this.get("CG");for(let c=0;c<r;++c)f=e.readInt32LE(i),u=f>>4,l=Zu[f&15],o+=u+l,l!=="H"&&l!=="S"&&l!=="I"&&(s+=u),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:e,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let f=0;f<i;++f){const u=e[r+f];o+=DE[(u&240)>>4],s++,s<a&&(o+=DE[u&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const e=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=e,a[1]=r,a[2]=n,a[3]=i):(a[2]=e,a[3]=r,a[0]=n,a[1]=i),a.join("")}return null}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const e={};return Object.keys(this).forEach(n=>{n.charAt(0)==="_"||n==="bytes"||(e[n]=this[n])}),e}}function Jz(t){const e=t.split(/\r?\n/),n=[];return e.forEach(r=>{const[i,...a]=r.split(/\t/),o=a.map(s=>{const[f,u]=s.split(":",2);return{tag:f,value:u}});i&&n.push({tag:i.substr(1),data:o})}),n}const eP=21840194,Kg=1<<16;function Jg(t){return[].concat(...t)}async function tP(t){const e=[];for await(const n of t)e.push(n);return e}class nP{constructor({bamFilehandle:e,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:f,csiUrl:u,fetchSizeLimit:l,chunkSizeLimit:c,yieldThreadTime:h=100,renameRefSeqs:d=g=>g}){if(this.featureCache=new ac({cache:new $z({maxSize:50}),fill:async({chunk:g,opts:b},y)=>{const{data:w,cpositions:E,dpositions:_}=await this._readChunk({chunk:g,opts:{...b,signal:y}});return await this.readBamFeatures(w,E,_,g)}}),this.renameRefSeq=d,e)this.bam=e;else if(n)this.bam=new Kt(n);else if(r)this.bam=new rr(r);else throw new Error("unable to initialize bam");if(f)this.index=new Zg({filehandle:f});else if(s)this.index=new Zg({filehandle:new Kt(s)});else if(u)this.index=new Zg({filehandle:new rr(u)});else if(a)this.index=new qu({filehandle:a});else if(i)this.index=new qu({filehandle:new Kt(i)});else if(o)this.index=new qu({filehandle:new rr(o)});else if(n)this.index=new qu({filehandle:new Kt(`${n}.bai`)});else if(r)this.index=new qu({filehandle:new rr(`${r}.bai`)});else throw new Error("unable to infer index format");this.fetchSizeLimit=l||5e8,this.chunkSizeLimit=c||3e8,this.yieldThreadTime=h}async getHeader(e={}){const n=Rz(e),r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const l=await this.bam.read(Buffer.alloc(i+Kg),0,i+Kg,0,n),{bytesRead:c}=l;if({buffer:a}=l,!c)throw new Error("Error reading header");c<i?a=a.subarray(0,c):a=a.subarray(0,i)}else a=await this.bam.readFile(n);const o=await xo(a);if(o.readInt32LE(0)!==eP)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:f,indexToChr:u}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=f,this.indexToChr=u,Jz(this.header)}async getHeaderText(e={}){return await this.getHeader(e),this.header}async _readRefSeqs(e,n,r={}){if(e>n)return this._readRefSeqs(e,n*2,r);const i=n+Kg,{bytesRead:a,buffer:o}=await this.bam.read(Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await xo(o.subarray(0,Math.min(a,n))),f=s.readInt32LE(e);let u=e+4;const l={},c=[];for(let h=0;h<f;h+=1){const d=s.readInt32LE(u),g=this.renameRefSeq(s.toString("utf8",u+4,u+4+d-1)),b=s.readInt32LE(u+d+4);if(l[g]=h,c.push({refName:g,length:b}),u=u+8+d,u>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(e,n*2,r)}return{chrToIndex:l,indexToChr:c}}async getRecordsForRange(e,n,r,i={viewAsPairs:!1,pairAcrossChr:!1,maxInsertSize:2e5}){return Jg(await tP(this.streamRecordsForRange(e,n,r,i)))}async*streamRecordsForRange(e,n,r,i={}){const{signal:a}=i,o=this.chrToIndex&&this.chrToIndex[e];let s;if(!(o>=0))s=[];else if(s=await this.index.blocksForRange(o,n-1,r,i),!s)throw new Error("Error in index fetch");for(let u=0;u<s.length;u+=1){await AE(a);const l=s[u].fetchedSize();if(l>this.chunkSizeLimit)throw new Error(`Too many BAM features. BAM chunk size ${l} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit}`)}const f=s.map(u=>u.fetchedSize()).reduce((u,l)=>u+l,0);if(f>this.fetchSizeLimit)throw new Error(`data size of ${f.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);yield*this._fetchChunkFeatures(s,o,n,r,i)}async*_fetchChunkFeatures(e,n,r,i,a){const{viewAsPairs:o=!1}=a,s=[];let f=!1;for(let u=0;u<e.length;u++){const l=e[u],c=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.signal),h=[];for(let d=0;d<c.length;d+=1){const g=c[d];if(g.seq_id()===n)if(g.get("start")>=i){f=!0;break}else g.get("end")>=r&&h.push(g)}if(s.push(h),yield h,f)break}vE(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(e,n,r){const{pairAcrossChr:i=!1,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(let g=0;g<h.length;g++){const b=h[g].name(),y=h[g].id();d[b]||(d[b]=0),d[b]++,s[y]=1}Yz(d).forEach(([g,b])=>{b===1&&(o[g]=!0)})});const f=[];n.map(h=>{for(let d=0;d<h.length;d++){const g=h[d],b=g.name(),y=g.get("start"),w=g._next_pos(),E=g._next_refid();o[b]&&(i||E===e&&Math.abs(y-w)<a)&&f.push(this.index.blocksForRange(E,w,w+1,r))}});const u=Jg(await Promise.all(f)).sort().filter((h,d,g)=>!d||h.toString()!==g[d-1].toString()),l=u.map(h=>h.fetchedSize()).reduce((h,d)=>h+d,0);if(l>this.fetchSizeLimit)throw new Error(`data size of ${l.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);const c=u.map(async h=>{const{data:d,cpositions:g,dpositions:b,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=await this.readBamFeatures(d,g,b,y),E=[];for(let _=0;_<w.length;_+=1){const D=w[_];o[D.get("name")]&&!s[D.id()]&&E.push(D)}return E});return Jg(await Promise.all(c))}async _readChunk({chunk:e,opts:n}){const r=e.fetchedSize(),{buffer:i,bytesRead:a}=await this.bam.read(Buffer.alloc(r),0,r,e.minv.blockPosition,n),{buffer:o,cpositions:s,dpositions:f}=await Q2(i.subarray(0,Math.min(a,r)),e);return{data:o,cpositions:s,dpositions:f,chunk:e}}async readBamFeatures(e,n,r,i){let a=0;const o=[];let s=0,f=+Date.now();for(;a+4<e.length;){const u=e.readInt32LE(a),l=a+4+u-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(l<e.length){const c=new Kz({bytes:{byteArray:e,start:a,end:l},fileOffset:n?n[s]*256+(a-r[s])+i.minv.dataPosition+1:Vz.signed(e.slice(a,l))});o.push(c),this.yieldThreadTime&&+Date.now()-f>this.yieldThreadTime&&(await kz(1),f=+Date.now())}a=l+1}return o}async hasRefSeq(e){const n=this.chrToIndex&&this.chrToIndex[e];return this.index.hasRefSeq(n)}async lineCount(e){const n=this.chrToIndex&&this.chrToIndex[e];return this.index.lineCount(n)}async indexCov(e,n,r){await this.index.parse();const i=this.chrToIndex&&this.chrToIndex[e];return this.index.indexCov(i,n,r)}async blocksForRange(e,n,r,i){await this.index.parse();const a=this.chrToIndex&&this.chrToIndex[e];return this.index.blocksForRange(a,n,r,i)}}(function(){(function(t){(function(e){var n={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};function r(C){return C&&DataView.prototype.isPrototypeOf(C)}if(n.arrayBuffer)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function(C){return C&&i.indexOf(Object.prototype.toString.call(C))>-1};function o(C){if(typeof C!="string"&&(C=String(C)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(C))throw new TypeError("Invalid character in header field name");return C.toLowerCase()}function s(C){return typeof C!="string"&&(C=String(C)),C}function f(C){var k={next:function(){var L=C.shift();return{done:L===void 0,value:L}}};return n.iterable&&(k[Symbol.iterator]=function(){return k}),k}function u(C){this.map={},C instanceof u?C.forEach(function(k,L){this.append(L,k)},this):Array.isArray(C)?C.forEach(function(k){this.append(k[0],k[1])},this):C&&Object.getOwnPropertyNames(C).forEach(function(k){this.append(k,C[k])},this)}u.prototype.append=function(C,k){C=o(C),k=s(k);var L=this.map[C];this.map[C]=L?L+", "+k:k},u.prototype.delete=function(C){delete this.map[o(C)]},u.prototype.get=function(C){return C=o(C),this.has(C)?this.map[C]:null},u.prototype.has=function(C){return this.map.hasOwnProperty(o(C))},u.prototype.set=function(C,k){this.map[o(C)]=s(k)},u.prototype.forEach=function(C,k){for(var L in this.map)this.map.hasOwnProperty(L)&&C.call(k,this.map[L],L,this)},u.prototype.keys=function(){var C=[];return this.forEach(function(k,L){C.push(L)}),f(C)},u.prototype.values=function(){var C=[];return this.forEach(function(k){C.push(k)}),f(C)},u.prototype.entries=function(){var C=[];return this.forEach(function(k,L){C.push([L,k])}),f(C)},n.iterable&&(u.prototype[Symbol.iterator]=u.prototype.entries);function l(C){if(C.bodyUsed)return Promise.reject(new TypeError("Already read"));C.bodyUsed=!0}function c(C){return new Promise(function(k,L){C.onload=function(){k(C.result)},C.onerror=function(){L(C.error)}})}function h(C){var k=new FileReader,L=c(k);return k.readAsArrayBuffer(C),L}function d(C){var k=new FileReader,L=c(k);return k.readAsText(C),L}function g(C){for(var k=new Uint8Array(C),L=new Array(k.length),ee=0;ee<k.length;ee++)L[ee]=String.fromCharCode(k[ee]);return L.join("")}function b(C){if(C.slice)return C.slice(0);var k=new Uint8Array(C.byteLength);return k.set(new Uint8Array(C)),k.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(C){this._bodyInit=C,C?typeof C=="string"?this._bodyText=C:n.blob&&Blob.prototype.isPrototypeOf(C)?this._bodyBlob=C:n.formData&&FormData.prototype.isPrototypeOf(C)?this._bodyFormData=C:n.searchParams&&URLSearchParams.prototype.isPrototypeOf(C)?this._bodyText=C.toString():n.arrayBuffer&&n.blob&&r(C)?(this._bodyArrayBuffer=b(C.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):n.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(C)||a(C))?this._bodyArrayBuffer=b(C):this._bodyText=C=Object.prototype.toString.call(C):this._bodyText="",this.headers.get("content-type")||(typeof C=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n.searchParams&&URLSearchParams.prototype.isPrototypeOf(C)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n.blob&&(this.blob=function(){var C=l(this);if(C)return C;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?l(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(h)}),this.text=function(){var C=l(this);if(C)return C;if(this._bodyBlob)return d(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(g(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},n.formData&&(this.formData=function(){return this.text().then(D)}),this.json=function(){return this.text().then(JSON.parse)},this}var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function E(C){var k=C.toUpperCase();return w.indexOf(k)>-1?k:C}function _(C,k){k=k||{};var L=k.body;if(C instanceof _){if(C.bodyUsed)throw new TypeError("Already read");this.url=C.url,this.credentials=C.credentials,k.headers||(this.headers=new u(C.headers)),this.method=C.method,this.mode=C.mode,this.signal=C.signal,!L&&C._bodyInit!=null&&(L=C._bodyInit,C.bodyUsed=!0)}else this.url=String(C);if(this.credentials=k.credentials||this.credentials||"same-origin",(k.headers||!this.headers)&&(this.headers=new u(k.headers)),this.method=E(k.method||this.method||"GET"),this.mode=k.mode||this.mode||null,this.signal=k.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&L)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(L)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})};function D(C){var k=new FormData;return C.trim().split("&").forEach(function(L){if(L){var ee=L.split("="),ne=ee.shift().replace(/\+/g," "),J=ee.join("=").replace(/\+/g," ");k.append(decodeURIComponent(ne),decodeURIComponent(J))}}),k}function T(C){var k=new u,L=C.replace(/\r?\n[\t ]+/g," ");return L.split(/\r?\n/).forEach(function(ee){var ne=ee.split(":"),J=ne.shift().trim();if(J){var be=ne.join(":").trim();k.append(J,be)}}),k}y.call(_.prototype);function N(C,k){k||(k={}),this.type="default",this.status=k.status===void 0?200:k.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in k?k.statusText:"OK",this.headers=new u(k.headers),this.url=k.url||"",this._initBody(C)}y.call(N.prototype),N.prototype.clone=function(){return new N(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new u(this.headers),url:this.url})},N.error=function(){var C=new N(null,{status:0,statusText:""});return C.type="error",C};var M=[301,302,303,307,308];N.redirect=function(C,k){if(M.indexOf(k)===-1)throw new RangeError("Invalid status code");return new N(null,{status:k,headers:{location:C}})},e.DOMException=t.DOMException;try{new e.DOMException}catch{e.DOMException=function(k,L){this.message=k,this.name=L;var ee=Error(k);this.stack=ee.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function R(C,k){return new Promise(function(L,ee){var ne=new _(C,k);if(ne.signal&&ne.signal.aborted)return ee(new e.DOMException("Aborted","AbortError"));var J=new XMLHttpRequest;function be(){J.abort()}J.onload=function(){var Se={status:J.status,statusText:J.statusText,headers:T(J.getAllResponseHeaders()||"")};Se.url="responseURL"in J?J.responseURL:Se.headers.get("X-Request-URL");var Te="response"in J?J.response:J.responseText;L(new N(Te,Se))},J.onerror=function(){ee(new TypeError("Network request failed"))},J.ontimeout=function(){ee(new TypeError("Network request failed"))},J.onabort=function(){ee(new e.DOMException("Aborted","AbortError"))},J.open(ne.method,ne.url,!0),ne.credentials==="include"?J.withCredentials=!0:ne.credentials==="omit"&&(J.withCredentials=!1),"responseType"in J&&n.blob&&(J.responseType="blob"),ne.headers.forEach(function(Se,Te){J.setRequestHeader(Te,Se)}),ne.signal&&(ne.signal.addEventListener("abort",be),J.onreadystatechange=function(){J.readyState===4&&ne.signal.removeEventListener("abort",be)}),J.send(typeof ne._bodyInit>"u"?null:ne._bodyInit)})}return R.polyfill=!0,t.fetch||(t.fetch=R,t.Headers=u,t.Request=_,t.Response=N),e.Headers=u,e.Request=_,e.Response=N,e.fetch=R,Object.defineProperty(e,"__esModule",{value:!0}),e})({})})(typeof self<"u"?self:Ln)})();class rP extends Au(ra){constructor(n,r){const i={channel:"x",windowSize:2e4,...n};super(r,i.channel);rn(this,"lastRequestId",0);rn(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");const a=o=>new rr(Eu(o,this.view.getBaseUrl()));this.bam=new nP({bamFilehandle:a(this.params.url),baiFilehandle:a(this.params.indexUrl??this.params.url+".bai")}),this.headerPromise=this.bam.getHeader(),this.headerPromise.then(o=>{var u,l;const s=this.genome.hasChrPrefix(),f=(l=(u=this.bam.indexToChr)==null?void 0:u[0])==null?void 0:l.refName.startsWith("chr");s&&!f?this.chrPrefixFixer=c=>c.replace("chr",""):!s&&f&&(this.chrPrefixFixer=c=>"chr"+c)})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;await this.headerPromise;const i=this.quantizeInterval(n,r);if(this.checkAndUpdateLastInterval(i)){const a=this.genome.continuousToDiscreteChromosomeIntervals(i),o=await Promise.all(a.map(s=>this.bam.getRecordsForRange(this.chrPrefixFixer(s.chrom),s.startPos,s.endPos).then(f=>f.map(u=>({chrom:s.chrom,start:u.get("start"),end:u.get("end"),name:u.get("name"),MD:u.get("MD"),cigar:u.get("cigar"),mapq:u.get("mq"),strand:u.get("strand")===1?"+":"-"})))));this.publishData(o.flat())}}}var ep={exports:{}},Uo=typeof Reflect=="object"?Reflect:null,IE=Uo&&typeof Uo.apply=="function"?Uo.apply:function(e,n,r){return Function.prototype.apply.call(e,n,r)},Cc;Uo&&typeof Uo.ownKeys=="function"?Cc=Uo.ownKeys:Object.getOwnPropertySymbols?Cc=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Cc=function(e){return Object.getOwnPropertyNames(e)};function iP(t){console&&console.warn&&console.warn(t)}var ME=Number.isNaN||function(e){return e!==e};function Ne(){Ne.init.call(this)}ep.exports=Ne,ep.exports.once=uP,Ne.EventEmitter=Ne,Ne.prototype._events=void 0,Ne.prototype._eventsCount=0,Ne.prototype._maxListeners=void 0;var TE=10;function Dc(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(Ne,"defaultMaxListeners",{enumerable:!0,get:function(){return TE},set:function(t){if(typeof t!="number"||t<0||ME(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");TE=t}}),Ne.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ne.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||ME(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function NE(t){return t._maxListeners===void 0?Ne.defaultMaxListeners:t._maxListeners}Ne.prototype.getMaxListeners=function(){return NE(this)},Ne.prototype.emit=function(e){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=e==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var f=a[e];if(f===void 0)return!1;if(typeof f=="function")IE(f,this,n);else for(var u=f.length,l=RE(f,u),r=0;r<u;++r)IE(l[r],this,n);return!0};function FE(t,e,n,r){var i,a,o;if(Dc(n),a=t._events,a===void 0?(a=t._events=Object.create(null),t._eventsCount=0):(a.newListener!==void 0&&(t.emit("newListener",e,n.listener?n.listener:n),a=t._events),o=a[e]),o===void 0)o=a[e]=n,++t._eventsCount;else if(typeof o=="function"?o=a[e]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=NE(t),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=t,s.type=e,s.count=o.length,iP(s)}return t}Ne.prototype.addListener=function(e,n){return FE(this,e,n,!1)},Ne.prototype.on=Ne.prototype.addListener,Ne.prototype.prependListener=function(e,n){return FE(this,e,n,!0)};function aP(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function BE(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=aP.bind(r);return i.listener=n,r.wrapFn=i,i}Ne.prototype.once=function(e,n){return Dc(n),this.on(e,BE(this,e,n)),this},Ne.prototype.prependOnceListener=function(e,n){return Dc(n),this.prependListener(e,BE(this,e,n)),this},Ne.prototype.removeListener=function(e,n){var r,i,a,o,s;if(Dc(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():oP(r,a),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,s||n)}return this},Ne.prototype.off=Ne.prototype.removeListener,Ne.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[e],typeof n=="function")this.removeListener(e,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(e,n[i]);return this};function kE(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?sP(i):RE(i,i.length)}Ne.prototype.listeners=function(e){return kE(this,e,!0)},Ne.prototype.rawListeners=function(e){return kE(this,e,!1)},Ne.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):LE.call(t,e)},Ne.prototype.listenerCount=LE;function LE(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Ne.prototype.eventNames=function(){return this._eventsCount>0?Cc(this._events):[]};function RE(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function oP(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function sP(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function uP(t,e){return new Promise(function(n,r){function i(o){t.removeListener(e,a),r(o)}function a(){typeof t.removeListener=="function"&&t.removeListener("error",i),n([].slice.call(arguments))}OE(t,e,a,{once:!0}),e!=="error"&&fP(t,i,{once:!0})})}function fP(t,e,n){typeof t.on=="function"&&OE(t,"error",e,n)}function OE(t,e,n,r){if(typeof t.on=="function")r.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(a){r.once&&t.removeEventListener(e,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var tp=ep.exports,np={exports:{}};typeof Object.create=="function"?np.exports=function(e,n){n&&(e.super_=n,e.prototype=Object.create(n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:np.exports=function(e,n){if(n){e.super_=n;var r=function(){};r.prototype=n.prototype,e.prototype=new r,e.prototype.constructor=e}};var jo=np.exports,rp,zE;function PE(){return zE||(zE=1,rp=tp.EventEmitter),rp}const UE=NB(UB);var ip,jE;function lP(){if(jE)return ip;jE=1;function t(h,d){var g=Object.keys(h);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(h);d&&(b=b.filter(function(y){return Object.getOwnPropertyDescriptor(h,y).enumerable})),g.push.apply(g,b)}return g}function e(h){for(var d=1;d<arguments.length;d++){var g=arguments[d]!=null?arguments[d]:{};d%2?t(Object(g),!0).forEach(function(b){n(h,b,g[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(h,Object.getOwnPropertyDescriptors(g)):t(Object(g)).forEach(function(b){Object.defineProperty(h,b,Object.getOwnPropertyDescriptor(g,b))})}return h}function n(h,d,g){return d in h?Object.defineProperty(h,d,{value:g,enumerable:!0,configurable:!0,writable:!0}):h[d]=g,h}function r(h,d){if(!(h instanceof d))throw new TypeError("Cannot call a class as a function")}function i(h,d){for(var g=0;g<d.length;g++){var b=d[g];b.enumerable=b.enumerable||!1,b.configurable=!0,"value"in b&&(b.writable=!0),Object.defineProperty(h,b.key,b)}}function a(h,d,g){return d&&i(h.prototype,d),g&&i(h,g),h}var o=bt,s=o.Buffer,f=UE,u=f.inspect,l=u&&u.custom||"inspect";function c(h,d,g){s.prototype.copy.call(h,d,g)}return ip=function(){function h(){r(this,h),this.head=null,this.tail=null,this.length=0}return a(h,[{key:"push",value:function(g){var b={data:g,next:null};this.length>0?this.tail.next=b:this.head=b,this.tail=b,++this.length}},{key:"unshift",value:function(g){var b={data:g,next:this.head};this.length===0&&(this.tail=b),this.head=b,++this.length}},{key:"shift",value:function(){if(this.length!==0){var g=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,g}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(g){if(this.length===0)return"";for(var b=this.head,y=""+b.data;b=b.next;)y+=g+b.data;return y}},{key:"concat",value:function(g){if(this.length===0)return s.alloc(0);for(var b=s.allocUnsafe(g>>>0),y=this.head,w=0;y;)c(y.data,b,w),w+=y.data.length,y=y.next;return b}},{key:"consume",value:function(g,b){var y;return g<this.head.data.length?(y=this.head.data.slice(0,g),this.head.data=this.head.data.slice(g)):g===this.head.data.length?y=this.shift():y=b?this._getString(g):this._getBuffer(g),y}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(g){var b=this.head,y=1,w=b.data;for(g-=w.length;b=b.next;){var E=b.data,_=g>E.length?E.length:g;if(_===E.length?w+=E:w+=E.slice(0,g),g-=_,g===0){_===E.length?(++y,b.next?this.head=b.next:this.head=this.tail=null):(this.head=b,b.data=E.slice(_));break}++y}return this.length-=y,w}},{key:"_getBuffer",value:function(g){var b=s.allocUnsafe(g),y=this.head,w=1;for(y.data.copy(b),g-=y.data.length;y=y.next;){var E=y.data,_=g>E.length?E.length:g;if(E.copy(b,b.length-g,0,_),g-=_,g===0){_===E.length?(++w,y.next?this.head=y.next:this.head=this.tail=null):(this.head=y,y.data=E.slice(_));break}++w}return this.length-=w,b}},{key:l,value:function(g,b){return u(this,e({},b,{depth:0,customInspect:!1}))}}]),h}(),ip}var ap,GE;function HE(){if(GE)return ap;GE=1;function t(o,s){var f=this,u=this._readableState&&this._readableState.destroyed,l=this._writableState&&this._writableState.destroyed;return u||l?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(c){!s&&c?f._writableState?f._writableState.errorEmitted?process.nextTick(n,f):(f._writableState.errorEmitted=!0,process.nextTick(e,f,c)):process.nextTick(e,f,c):s?(process.nextTick(n,f),s(c)):process.nextTick(n,f)}),this)}function e(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var f=o._readableState,u=o._writableState;f&&f.autoDestroy||u&&u.autoDestroy?o.destroy(s):o.emit("error",s)}return ap={destroy:t,undestroy:r,errorOrDestroy:a},ap}var op={},QE;function Go(){if(QE)return op;QE=1;function t(s,f){s.prototype=Object.create(f.prototype),s.prototype.constructor=s,s.__proto__=f}var e={};function n(s,f,u){u||(u=Error);function l(h,d,g){return typeof f=="string"?f:f(h,d,g)}var c=function(h){t(d,h);function d(g,b,y){return h.call(this,l(g,b,y))||this}return d}(u);c.prototype.name=u.name,c.prototype.code=s,e[s]=c}function r(s,f){if(Array.isArray(s)){var u=s.length;return s=s.map(function(l){return String(l)}),u>2?"one of ".concat(f," ").concat(s.slice(0,u-1).join(", "),", or ")+s[u-1]:u===2?"one of ".concat(f," ").concat(s[0]," or ").concat(s[1]):"of ".concat(f," ").concat(s[0])}else return"of ".concat(f," ").concat(String(s))}function i(s,f,u){return s.substr(!u||u<0?0:+u,f.length)===f}function a(s,f,u){return(u===void 0||u>s.length)&&(u=s.length),s.substring(u-f.length,u)===f}function o(s,f,u){return typeof u!="number"&&(u=0),u+f.length>s.length?!1:s.indexOf(f,u)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,f){return'The value "'+f+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,f,u){var l;typeof f=="string"&&i(f,"not ")?(l="must not be",f=f.replace(/^not /,"")):l="must be";var c;if(a(s," argument"))c="The ".concat(s," ").concat(l," ").concat(r(f,"type"));else{var h=o(s,".")?"property":"argument";c='The "'.concat(s,'" ').concat(h," ").concat(l," ").concat(r(f,"type"))}return c+=". Received type ".concat(typeof u),c},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),op.codes=e,op}var sp,VE;function qE(){if(VE)return sp;VE=1;var t=Go().codes.ERR_INVALID_OPT_VALUE;function e(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=e(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var f=o?a:"highWaterMark";throw new t(f,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return sp={getHighWaterMark:n},sp}var up,ZE;function cP(){if(ZE)return up;ZE=1,up=t;function t(n,r){if(e("noDeprecation"))return n;var i=!1;function a(){if(!i){if(e("throwDeprecation"))throw new Error(r);e("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function e(n){try{if(!Ln.localStorage)return!1}catch{return!1}var r=Ln.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return up}var fp,YE;function WE(){if(YE)return fp;YE=1,fp=R;function t(z){var O=this;this.next=null,this.entry=null,this.finish=function(){gr(O,z)}}var e;R.WritableState=N;var n={deprecate:cP()},r=PE(),i=bt.Buffer,a=Ln.Uint8Array||function(){};function o(z){return i.from(z)}function s(z){return i.isBuffer(z)||z instanceof a}var f=HE(),u=qE(),l=u.getHighWaterMark,c=Go().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,g=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,w=c.ERR_STREAM_NULL_VALUES,E=c.ERR_STREAM_WRITE_AFTER_END,_=c.ERR_UNKNOWN_ENCODING,D=f.errorOrDestroy;jo(R,r);function T(){}function N(z,O,q){e=e||Ho(),z=z||{},typeof q!="boolean"&&(q=O instanceof e),this.objectMode=!!z.objectMode,q&&(this.objectMode=this.objectMode||!!z.writableObjectMode),this.highWaterMark=l(this,z,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Q=z.decodeStrings===!1;this.decodeStrings=!Q,this.defaultEncoding=z.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(X){Se(O,X)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=z.emitClose!==!1,this.autoDestroy=!!z.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new t(this)}N.prototype.getBuffer=function(){for(var O=this.bufferedRequest,q=[];O;)q.push(O),O=O.next;return q},function(){try{Object.defineProperty(N.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var M;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(O){return M.call(this,O)?!0:this!==R?!1:O&&O._writableState instanceof N}})):M=function(O){return O instanceof this};function R(z){e=e||Ho();var O=this instanceof e;if(!O&&!M.call(R,this))return new R(z);this._writableState=new N(z,this,O),this.writable=!0,z&&(typeof z.write=="function"&&(this._write=z.write),typeof z.writev=="function"&&(this._writev=z.writev),typeof z.destroy=="function"&&(this._destroy=z.destroy),typeof z.final=="function"&&(this._final=z.final)),r.call(this)}R.prototype.pipe=function(){D(this,new b)};function C(z,O){var q=new E;D(z,q),process.nextTick(O,q)}function k(z,O,q,Q){var X;return q===null?X=new w:typeof q!="string"&&!O.objectMode&&(X=new h("chunk",["string","Buffer"],q)),X?(D(z,X),process.nextTick(Q,X),!1):!0}R.prototype.write=function(z,O,q){var Q=this._writableState,X=!1,S=!Q.objectMode&&s(z);return S&&!i.isBuffer(z)&&(z=o(z)),typeof O=="function"&&(q=O,O=null),S?O="buffer":O||(O=Q.defaultEncoding),typeof q!="function"&&(q=T),Q.ending?C(this,q):(S||k(this,Q,z,q))&&(Q.pendingcb++,X=ee(this,Q,S,z,O,q)),X},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var z=this._writableState;z.corked&&(z.corked--,!z.writing&&!z.corked&&!z.bufferProcessing&&z.bufferedRequest&&et(this,z))},R.prototype.setDefaultEncoding=function(O){if(typeof O=="string"&&(O=O.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((O+"").toLowerCase())>-1))throw new _(O);return this._writableState.defaultEncoding=O,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function L(z,O,q){return!z.objectMode&&z.decodeStrings!==!1&&typeof O=="string"&&(O=i.from(O,q)),O}Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ee(z,O,q,Q,X,S){if(!q){var v=L(O,Q,X);Q!==v&&(q=!0,X="buffer",Q=v)}var G=O.objectMode?1:Q.length;O.length+=G;var V=O.length<O.highWaterMark;if(V||(O.needDrain=!0),O.writing||O.corked){var le=O.lastBufferedRequest;O.lastBufferedRequest={chunk:Q,encoding:X,isBuf:q,callback:S,next:null},le?le.next=O.lastBufferedRequest:O.bufferedRequest=O.lastBufferedRequest,O.bufferedRequestCount+=1}else ne(z,O,!1,G,Q,X,S);return V}function ne(z,O,q,Q,X,S,v){O.writelen=Q,O.writecb=v,O.writing=!0,O.sync=!0,O.destroyed?O.onwrite(new y("write")):q?z._writev(X,O.onwrite):z._write(X,S,O.onwrite),O.sync=!1}function J(z,O,q,Q,X){--O.pendingcb,q?(process.nextTick(X,Q),process.nextTick(Zt,z,O),z._writableState.errorEmitted=!0,D(z,Q)):(X(Q),z._writableState.errorEmitted=!0,D(z,Q),Zt(z,O))}function be(z){z.writing=!1,z.writecb=null,z.length-=z.writelen,z.writelen=0}function Se(z,O){var q=z._writableState,Q=q.sync,X=q.writecb;if(typeof X!="function")throw new g;if(be(q),O)J(z,q,Q,O,X);else{var S=dr(q)||z.destroyed;!S&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&et(z,q),Q?process.nextTick(Te,z,q,S,X):Te(z,q,S,X)}}function Te(z,O,q,Q){q||it(z,O),O.pendingcb--,Q(),Zt(z,O)}function it(z,O){O.length===0&&O.needDrain&&(O.needDrain=!1,z.emit("drain"))}function et(z,O){O.bufferProcessing=!0;var q=O.bufferedRequest;if(z._writev&&q&&q.next){var Q=O.bufferedRequestCount,X=new Array(Q),S=O.corkedRequestsFree;S.entry=q;for(var v=0,G=!0;q;)X[v]=q,q.isBuf||(G=!1),q=q.next,v+=1;X.allBuffers=G,ne(z,O,!0,O.length,X,"",S.finish),O.pendingcb++,O.lastBufferedRequest=null,S.next?(O.corkedRequestsFree=S.next,S.next=null):O.corkedRequestsFree=new t(O),O.bufferedRequestCount=0}else{for(;q;){var V=q.chunk,le=q.encoding,re=q.callback,ce=O.objectMode?1:V.length;if(ne(z,O,!1,ce,V,le,re),q=q.next,O.bufferedRequestCount--,O.writing)break}q===null&&(O.lastBufferedRequest=null)}O.bufferedRequest=q,O.bufferProcessing=!1}R.prototype._write=function(z,O,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(z,O,q){var Q=this._writableState;return typeof z=="function"?(q=z,z=null,O=null):typeof O=="function"&&(q=O,O=null),z!=null&&this.write(z,O),Q.corked&&(Q.corked=1,this.uncork()),Q.ending||Qn(this,Q,q),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function dr(z){return z.ending&&z.length===0&&z.bufferedRequest===null&&!z.finished&&!z.writing}function ke(z,O){z._final(function(q){O.pendingcb--,q&&D(z,q),O.prefinished=!0,z.emit("prefinish"),Zt(z,O)})}function Ye(z,O){!O.prefinished&&!O.finalCalled&&(typeof z._final=="function"&&!O.destroyed?(O.pendingcb++,O.finalCalled=!0,process.nextTick(ke,z,O)):(O.prefinished=!0,z.emit("prefinish")))}function Zt(z,O){var q=dr(O);if(q&&(Ye(z,O),O.pendingcb===0&&(O.finished=!0,z.emit("finish"),O.autoDestroy))){var Q=z._readableState;(!Q||Q.autoDestroy&&Q.endEmitted)&&z.destroy()}return q}function Qn(z,O,q){O.ending=!0,Zt(z,O),q&&(O.finished?process.nextTick(q):z.once("finish",q)),O.ended=!0,z.writable=!1}function gr(z,O,q){var Q=z.entry;for(z.entry=null;Q;){var X=Q.callback;O.pendingcb--,X(q),Q=Q.next}O.corkedRequestsFree.next=z}return Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(O){this._writableState&&(this._writableState.destroyed=O)}}),R.prototype.destroy=f.destroy,R.prototype._undestroy=f.undestroy,R.prototype._destroy=function(z,O){O(z)},fp}var lp,XE;function Ho(){if(XE)return lp;XE=1;var t=Object.keys||function(u){var l=[];for(var c in u)l.push(c);return l};lp=o;var e=n3(),n=WE();jo(o,e);for(var r=t(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(u){if(!(this instanceof o))return new o(u);e.call(this,u),n.call(this,u),this.allowHalfOpen=!0,u&&(u.readable===!1&&(this.readable=!1),u.writable===!1&&(this.writable=!1),u.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(f,this)}function f(u){u.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(l){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=l,this._writableState.destroyed=l)}}),lp}var cp={},hp={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(t,e){var n=bt,r=n.Buffer;function i(o,s){for(var f in o)s[f]=o[f]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(i(n,e),e.Buffer=a);function a(o,s,f){return r(o,s,f)}a.prototype=Object.create(r.prototype),i(r,a),a.from=function(o,s,f){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,f)},a.alloc=function(o,s,f){if(typeof o!="number")throw new TypeError("Argument must be a number");var u=r(o);return s!==void 0?typeof f=="string"?u.fill(s,f):u.fill(s):u.fill(0),u},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(hp,hp.exports);var hP=hp.exports,dp=hP.Buffer,$E=dp.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function dP(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function gP(t){var e=dP(t);if(typeof e!="string"&&(dp.isEncoding===$E||!$E(t)))throw new Error("Unknown encoding: "+t);return e||t}var pP=cp.StringDecoder=Yu;function Yu(t){this.encoding=gP(t);var e;switch(this.encoding){case"utf16le":this.text=vP,this.end=AP,e=4;break;case"utf8":this.fillLast=yP,e=4;break;case"base64":this.text=EP,this.end=SP,e=3;break;default:this.write=_P,this.end=CP;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=dp.allocUnsafe(e)}Yu.prototype.write=function(t){if(t.length===0)return"";var e,n;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<t.length?e?e+this.text(t,n):this.text(t,n):e||""},Yu.prototype.end=xP,Yu.prototype.text=wP,Yu.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function gp(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function mP(t,e,n){var r=e.length-1;if(r<n)return 0;var i=gp(e[r]);return i>=0?(i>0&&(t.lastNeed=i-1),i):--r<n||i===-2?0:(i=gp(e[r]),i>=0?(i>0&&(t.lastNeed=i-2),i):--r<n||i===-2?0:(i=gp(e[r]),i>=0?(i>0&&(i===2?i=0:t.lastNeed=i-3),i):0))}function bP(t,e,n){if((e[0]&192)!==128)return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"�"}}function yP(t){var e=this.lastTotal-this.lastNeed,n=bP(this,t);if(n!==void 0)return n;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function wP(t,e){var n=mP(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=n;var r=t.length-(n-this.lastNeed);return t.copy(this.lastChar,0,r),t.toString("utf8",e,r)}function xP(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e}function vP(t,e){if((t.length-e)%2===0){var n=t.toString("utf16le",e);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function AP(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,n)}return e}function EP(t,e){var n=(t.length-e)%3;return n===0?t.toString("base64",e):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-n))}function SP(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function _P(t){return t.toString(this.encoding)}function CP(t){return t&&t.length?this.write(t):""}var pp,KE;function mp(){if(KE)return pp;KE=1;var t=Go().codes.ERR_STREAM_PREMATURE_CLOSE;function e(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,f=new Array(s),u=0;u<s;u++)f[u]=arguments[u];a.apply(this,f)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=e(s||n);var f=o.readable||o.readable!==!1&&a.readable,u=o.writable||o.writable!==!1&&a.writable,l=function(){a.writable||h()},c=a._writableState&&a._writableState.finished,h=function(){u=!1,c=!0,f||s.call(a)},d=a._readableState&&a._readableState.endEmitted,g=function(){f=!1,d=!0,u||s.call(a)},b=function(_){s.call(a,_)},y=function(){var _;if(f&&!d)return(!a._readableState||!a._readableState.ended)&&(_=new t),s.call(a,_);if(u&&!c)return(!a._writableState||!a._writableState.ended)&&(_=new t),s.call(a,_)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):u&&!a._writableState&&(a.on("end",l),a.on("close",l)),a.on("end",g),a.on("finish",h),o.error!==!1&&a.on("error",b),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",l),a.removeListener("close",l),a.removeListener("finish",h),a.removeListener("end",g),a.removeListener("error",b),a.removeListener("close",y)}}return pp=i,pp}var bp,JE;function DP(){if(JE)return bp;JE=1;var t;function e(w,E,_){return E in w?Object.defineProperty(w,E,{value:_,enumerable:!0,configurable:!0,writable:!0}):w[E]=_,w}var n=mp(),r=Symbol("lastResolve"),i=Symbol("lastReject"),a=Symbol("error"),o=Symbol("ended"),s=Symbol("lastPromise"),f=Symbol("handlePromise"),u=Symbol("stream");function l(w,E){return{value:w,done:E}}function c(w){var E=w[r];if(E!==null){var _=w[u].read();_!==null&&(w[s]=null,w[r]=null,w[i]=null,E(l(_,!1)))}}function h(w){process.nextTick(c,w)}function d(w,E){return function(_,D){w.then(function(){if(E[o]){_(l(void 0,!0));return}E[f](_,D)},D)}}var g=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((t={get stream(){return this[u]},next:function(){var E=this,_=this[a];if(_!==null)return Promise.reject(_);if(this[o])return Promise.resolve(l(void 0,!0));if(this[u].destroyed)return new Promise(function(M,R){process.nextTick(function(){E[a]?R(E[a]):M(l(void 0,!0))})});var D=this[s],T;if(D)T=new Promise(d(D,this));else{var N=this[u].read();if(N!==null)return Promise.resolve(l(N,!1));T=new Promise(this[f])}return this[s]=T,T}},e(t,Symbol.asyncIterator,function(){return this}),e(t,"return",function(){var E=this;return new Promise(function(_,D){E[u].destroy(null,function(T){if(T){D(T);return}_(l(void 0,!0))})})}),t),g),y=function(E){var _,D=Object.create(b,(_={},e(_,u,{value:E,writable:!0}),e(_,r,{value:null,writable:!0}),e(_,i,{value:null,writable:!0}),e(_,a,{value:null,writable:!0}),e(_,o,{value:E._readableState.endEmitted,writable:!0}),e(_,f,{value:function(N,M){var R=D[u].read();R?(D[s]=null,D[r]=null,D[i]=null,N(l(R,!1))):(D[r]=N,D[i]=M)},writable:!0}),_));return D[s]=null,n(E,function(T){if(T&&T.code!=="ERR_STREAM_PREMATURE_CLOSE"){var N=D[i];N!==null&&(D[s]=null,D[r]=null,D[i]=null,N(T)),D[a]=T;return}var M=D[r];M!==null&&(D[s]=null,D[r]=null,D[i]=null,M(l(void 0,!0))),D[o]=!0}),E.on("readable",h.bind(null,D)),D};return bp=y,bp}var yp,e3;function IP(){return e3||(e3=1,yp=function(){throw new Error("Readable.from is not available in the browser")}),yp}var wp,t3;function n3(){if(t3)return wp;t3=1,wp=C;var t;C.ReadableState=R,tp.EventEmitter;var e=function(v,G){return v.listeners(G).length},n=PE(),r=bt.Buffer,i=Ln.Uint8Array||function(){};function a(S){return r.from(S)}function o(S){return r.isBuffer(S)||S instanceof i}var s=UE,f;s&&s.debuglog?f=s.debuglog("stream"):f=function(){};var u=lP(),l=HE(),c=qE(),h=c.getHighWaterMark,d=Go().codes,g=d.ERR_INVALID_ARG_TYPE,b=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,E,_,D;jo(C,n);var T=l.errorOrDestroy,N=["error","close","destroy","pause","resume"];function M(S,v,G){if(typeof S.prependListener=="function")return S.prependListener(v,G);!S._events||!S._events[v]?S.on(v,G):Array.isArray(S._events[v])?S._events[v].unshift(G):S._events[v]=[G,S._events[v]]}function R(S,v,G){t=t||Ho(),S=S||{},typeof G!="boolean"&&(G=v instanceof t),this.objectMode=!!S.objectMode,G&&(this.objectMode=this.objectMode||!!S.readableObjectMode),this.highWaterMark=h(this,S,"readableHighWaterMark",G),this.buffer=new u,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=S.emitClose!==!1,this.autoDestroy=!!S.autoDestroy,this.destroyed=!1,this.defaultEncoding=S.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,S.encoding&&(E||(E=cp.StringDecoder),this.decoder=new E(S.encoding),this.encoding=S.encoding)}function C(S){if(t=t||Ho(),!(this instanceof C))return new C(S);var v=this instanceof t;this._readableState=new R(S,this,v),this.readable=!0,S&&(typeof S.read=="function"&&(this._read=S.read),typeof S.destroy=="function"&&(this._destroy=S.destroy)),n.call(this)}Object.defineProperty(C.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(v){this._readableState&&(this._readableState.destroyed=v)}}),C.prototype.destroy=l.destroy,C.prototype._undestroy=l.undestroy,C.prototype._destroy=function(S,v){v(S)},C.prototype.push=function(S,v){var G=this._readableState,V;return G.objectMode?V=!0:typeof S=="string"&&(v=v||G.defaultEncoding,v!==G.encoding&&(S=r.from(S,v),v=""),V=!0),k(this,S,v,!1,V)},C.prototype.unshift=function(S){return k(this,S,null,!0,!1)};function k(S,v,G,V,le){f("readableAddChunk",v);var re=S._readableState;if(v===null)re.reading=!1,Se(S,re);else{var ce;if(le||(ce=ee(re,v)),ce)T(S,ce);else if(re.objectMode||v&&v.length>0)if(typeof v!="string"&&!re.objectMode&&Object.getPrototypeOf(v)!==r.prototype&&(v=a(v)),V)re.endEmitted?T(S,new w):L(S,re,v,!0);else if(re.ended)T(S,new b);else{if(re.destroyed)return!1;re.reading=!1,re.decoder&&!G?(v=re.decoder.write(v),re.objectMode||v.length!==0?L(S,re,v,!1):et(S,re)):L(S,re,v,!1)}else V||(re.reading=!1,et(S,re))}return!re.ended&&(re.length<re.highWaterMark||re.length===0)}function L(S,v,G,V){v.flowing&&v.length===0&&!v.sync?(v.awaitDrain=0,S.emit("data",G)):(v.length+=v.objectMode?1:G.length,V?v.buffer.unshift(G):v.buffer.push(G),v.needReadable&&Te(S)),et(S,v)}function ee(S,v){var G;return!o(v)&&typeof v!="string"&&v!==void 0&&!S.objectMode&&(G=new g("chunk",["string","Buffer","Uint8Array"],v)),G}C.prototype.isPaused=function(){return this._readableState.flowing===!1},C.prototype.setEncoding=function(S){E||(E=cp.StringDecoder);var v=new E(S);this._readableState.decoder=v,this._readableState.encoding=this._readableState.decoder.encoding;for(var G=this._readableState.buffer.head,V="";G!==null;)V+=v.write(G.data),G=G.next;return this._readableState.buffer.clear(),V!==""&&this._readableState.buffer.push(V),this._readableState.length=V.length,this};var ne=1073741824;function J(S){return S>=ne?S=ne:(S--,S|=S>>>1,S|=S>>>2,S|=S>>>4,S|=S>>>8,S|=S>>>16,S++),S}function be(S,v){return S<=0||v.length===0&&v.ended?0:v.objectMode?1:S!==S?v.flowing&&v.length?v.buffer.head.data.length:v.length:(S>v.highWaterMark&&(v.highWaterMark=J(S)),S<=v.length?S:v.ended?v.length:(v.needReadable=!0,0))}C.prototype.read=function(S){f("read",S),S=parseInt(S,10);var v=this._readableState,G=S;if(S!==0&&(v.emittedReadable=!1),S===0&&v.needReadable&&((v.highWaterMark!==0?v.length>=v.highWaterMark:v.length>0)||v.ended))return f("read: emitReadable",v.length,v.ended),v.length===0&&v.ended?q(this):Te(this),null;if(S=be(S,v),S===0&&v.ended)return v.length===0&&q(this),null;var V=v.needReadable;f("need readable",V),(v.length===0||v.length-S<v.highWaterMark)&&(V=!0,f("length less than watermark",V)),v.ended||v.reading?(V=!1,f("reading or ended",V)):V&&(f("do read"),v.reading=!0,v.sync=!0,v.length===0&&(v.needReadable=!0),this._read(v.highWaterMark),v.sync=!1,v.reading||(S=be(G,v)));var le;return S>0?le=O(S,v):le=null,le===null?(v.needReadable=v.length<=v.highWaterMark,S=0):(v.length-=S,v.awaitDrain=0),v.length===0&&(v.ended||(v.needReadable=!0),G!==S&&v.ended&&q(this)),le!==null&&this.emit("data",le),le};function Se(S,v){if(f("onEofChunk"),!v.ended){if(v.decoder){var G=v.decoder.end();G&&G.length&&(v.buffer.push(G),v.length+=v.objectMode?1:G.length)}v.ended=!0,v.sync?Te(S):(v.needReadable=!1,v.emittedReadable||(v.emittedReadable=!0,it(S)))}}function Te(S){var v=S._readableState;f("emitReadable",v.needReadable,v.emittedReadable),v.needReadable=!1,v.emittedReadable||(f("emitReadable",v.flowing),v.emittedReadable=!0,process.nextTick(it,S))}function it(S){var v=S._readableState;f("emitReadable_",v.destroyed,v.length,v.ended),!v.destroyed&&(v.length||v.ended)&&(S.emit("readable"),v.emittedReadable=!1),v.needReadable=!v.flowing&&!v.ended&&v.length<=v.highWaterMark,z(S)}function et(S,v){v.readingMore||(v.readingMore=!0,process.nextTick(dr,S,v))}function dr(S,v){for(;!v.reading&&!v.ended&&(v.length<v.highWaterMark||v.flowing&&v.length===0);){var G=v.length;if(f("maybeReadMore read 0"),S.read(0),G===v.length)break}v.readingMore=!1}C.prototype._read=function(S){T(this,new y("_read()"))},C.prototype.pipe=function(S,v){var G=this,V=this._readableState;switch(V.pipesCount){case 0:V.pipes=S;break;case 1:V.pipes=[V.pipes,S];break;default:V.pipes.push(S);break}V.pipesCount+=1,f("pipe count=%d opts=%j",V.pipesCount,v);var le=(!v||v.end!==!1)&&S!==process.stdout&&S!==process.stderr,re=le?Yt:pr;V.endEmitted?process.nextTick(re):G.once("end",re),S.on("unpipe",ce);function ce(x,p){f("onunpipe"),x===G&&p&&p.hasUnpiped===!1&&(p.hasUnpiped=!0,Ci())}function Yt(){f("onend"),S.end()}var Si=ke(G);S.on("drain",Si);var _i=!1;function Ci(){f("cleanup"),S.removeListener("close",Di),S.removeListener("finish",Wt),S.removeListener("drain",Si),S.removeListener("error",zr),S.removeListener("unpipe",ce),G.removeListener("end",Yt),G.removeListener("end",pr),G.removeListener("data",Dt),_i=!0,V.awaitDrain&&(!S._writableState||S._writableState.needDrain)&&Si()}G.on("data",Dt);function Dt(x){f("ondata");var p=S.write(x);f("dest.write",p),p===!1&&((V.pipesCount===1&&V.pipes===S||V.pipesCount>1&&X(V.pipes,S)!==-1)&&!_i&&(f("false write response, pause",V.awaitDrain),V.awaitDrain++),G.pause())}function zr(x){f("onerror",x),pr(),S.removeListener("error",zr),e(S,"error")===0&&T(S,x)}M(S,"error",zr);function Di(){S.removeListener("finish",Wt),pr()}S.once("close",Di);function Wt(){f("onfinish"),S.removeListener("close",Di),pr()}S.once("finish",Wt);function pr(){f("unpipe"),G.unpipe(S)}return S.emit("pipe",G),V.flowing||(f("pipe resume"),G.resume()),S};function ke(S){return function(){var G=S._readableState;f("pipeOnDrain",G.awaitDrain),G.awaitDrain&&G.awaitDrain--,G.awaitDrain===0&&e(S,"data")&&(G.flowing=!0,z(S))}}C.prototype.unpipe=function(S){var v=this._readableState,G={hasUnpiped:!1};if(v.pipesCount===0)return this;if(v.pipesCount===1)return S&&S!==v.pipes?this:(S||(S=v.pipes),v.pipes=null,v.pipesCount=0,v.flowing=!1,S&&S.emit("unpipe",this,G),this);if(!S){var V=v.pipes,le=v.pipesCount;v.pipes=null,v.pipesCount=0,v.flowing=!1;for(var re=0;re<le;re++)V[re].emit("unpipe",this,{hasUnpiped:!1});return this}var ce=X(v.pipes,S);return ce===-1?this:(v.pipes.splice(ce,1),v.pipesCount-=1,v.pipesCount===1&&(v.pipes=v.pipes[0]),S.emit("unpipe",this,G),this)},C.prototype.on=function(S,v){var G=n.prototype.on.call(this,S,v),V=this._readableState;return S==="data"?(V.readableListening=this.listenerCount("readable")>0,V.flowing!==!1&&this.resume()):S==="readable"&&!V.endEmitted&&!V.readableListening&&(V.readableListening=V.needReadable=!0,V.flowing=!1,V.emittedReadable=!1,f("on readable",V.length,V.reading),V.length?Te(this):V.reading||process.nextTick(Zt,this)),G},C.prototype.addListener=C.prototype.on,C.prototype.removeListener=function(S,v){var G=n.prototype.removeListener.call(this,S,v);return S==="readable"&&process.nextTick(Ye,this),G},C.prototype.removeAllListeners=function(S){var v=n.prototype.removeAllListeners.apply(this,arguments);return(S==="readable"||S===void 0)&&process.nextTick(Ye,this),v};function Ye(S){var v=S._readableState;v.readableListening=S.listenerCount("readable")>0,v.resumeScheduled&&!v.paused?v.flowing=!0:S.listenerCount("data")>0&&S.resume()}function Zt(S){f("readable nexttick read 0"),S.read(0)}C.prototype.resume=function(){var S=this._readableState;return S.flowing||(f("resume"),S.flowing=!S.readableListening,Qn(this,S)),S.paused=!1,this};function Qn(S,v){v.resumeScheduled||(v.resumeScheduled=!0,process.nextTick(gr,S,v))}function gr(S,v){f("resume",v.reading),v.reading||S.read(0),v.resumeScheduled=!1,S.emit("resume"),z(S),v.flowing&&!v.reading&&S.read(0)}C.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function z(S){var v=S._readableState;for(f("flow",v.flowing);v.flowing&&S.read()!==null;);}C.prototype.wrap=function(S){var v=this,G=this._readableState,V=!1;S.on("end",function(){if(f("wrapped end"),G.decoder&&!G.ended){var ce=G.decoder.end();ce&&ce.length&&v.push(ce)}v.push(null)}),S.on("data",function(ce){if(f("wrapped data"),G.decoder&&(ce=G.decoder.write(ce)),!(G.objectMode&&ce==null)&&!(!G.objectMode&&(!ce||!ce.length))){var Yt=v.push(ce);Yt||(V=!0,S.pause())}});for(var le in S)this[le]===void 0&&typeof S[le]=="function"&&(this[le]=function(Yt){return function(){return S[Yt].apply(S,arguments)}}(le));for(var re=0;re<N.length;re++)S.on(N[re],this.emit.bind(this,N[re]));return this._read=function(ce){f("wrapped _read",ce),V&&(V=!1,S.resume())},this},typeof Symbol=="function"&&(C.prototype[Symbol.asyncIterator]=function(){return _===void 0&&(_=DP()),_(this)}),Object.defineProperty(C.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(C.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(C.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(v){this._readableState&&(this._readableState.flowing=v)}}),C._fromList=O,Object.defineProperty(C.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function O(S,v){if(v.length===0)return null;var G;return v.objectMode?G=v.buffer.shift():!S||S>=v.length?(v.decoder?G=v.buffer.join(""):v.buffer.length===1?G=v.buffer.first():G=v.buffer.concat(v.length),v.buffer.clear()):G=v.buffer.consume(S,v.decoder),G}function q(S){var v=S._readableState;f("endReadable",v.endEmitted),v.endEmitted||(v.ended=!0,process.nextTick(Q,v,S))}function Q(S,v){if(f("endReadableNT",S.endEmitted,S.length),!S.endEmitted&&S.length===0&&(S.endEmitted=!0,v.readable=!1,v.emit("end"),S.autoDestroy)){var G=v._writableState;(!G||G.autoDestroy&&G.finished)&&v.destroy()}}typeof Symbol=="function"&&(C.from=function(S,v){return D===void 0&&(D=IP()),D(C,S,v)});function X(S,v){for(var G=0,V=S.length;G<V;G++)if(S[G]===v)return G;return-1}return wp}var xp,r3;function i3(){if(r3)return xp;r3=1,xp=s;var t=Go().codes,e=t.ERR_METHOD_NOT_IMPLEMENTED,n=t.ERR_MULTIPLE_CALLBACK,r=t.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=t.ERR_TRANSFORM_WITH_LENGTH_0,a=Ho();jo(s,a);function o(l,c){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,c!=null&&this.push(c),d(l);var g=this._readableState;g.reading=!1,(g.needReadable||g.length<g.highWaterMark)&&this._read(g.highWaterMark)}function s(l){if(!(this instanceof s))return new s(l);a.call(this,l),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,l&&(typeof l.transform=="function"&&(this._transform=l.transform),typeof l.flush=="function"&&(this._flush=l.flush)),this.on("prefinish",f)}function f(){var l=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(c,h){u(l,c,h)}):u(this,null,null)}s.prototype.push=function(l,c){return this._transformState.needTransform=!1,a.prototype.push.call(this,l,c)},s.prototype._transform=function(l,c,h){h(new e("_transform()"))},s.prototype._write=function(l,c,h){var d=this._transformState;if(d.writecb=h,d.writechunk=l,d.writeencoding=c,!d.transforming){var g=this._readableState;(d.needTransform||g.needReadable||g.length<g.highWaterMark)&&this._read(g.highWaterMark)}},s.prototype._read=function(l){var c=this._transformState;c.writechunk!==null&&!c.transforming?(c.transforming=!0,this._transform(c.writechunk,c.writeencoding,c.afterTransform)):c.needTransform=!0},s.prototype._destroy=function(l,c){a.prototype._destroy.call(this,l,function(h){c(h)})};function u(l,c,h){if(c)return l.emit("error",c);if(h!=null&&l.push(h),l._writableState.length)throw new i;if(l._transformState.transforming)throw new r;return l.push(null)}return xp}var vp,a3;function MP(){if(a3)return vp;a3=1,vp=e;var t=i3();jo(e,t);function e(n){if(!(this instanceof e))return new e(n);t.call(this,n)}return e.prototype._transform=function(n,r,i){i(null,n)},vp}var Ap,o3;function TP(){if(o3)return Ap;o3=1;var t;function e(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=Go().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,g,b){b=e(b);var y=!1;h.on("close",function(){y=!0}),t===void 0&&(t=mp()),t(h,{readable:d,writable:g},function(E){if(E)return b(E);y=!0,b()});var w=!1;return function(E){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();b(E||new i("pipe"))}}}function f(h){h()}function u(h,d){return h.pipe(d)}function l(h){return!h.length||typeof h[h.length-1]!="function"?a:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),g=0;g<h;g++)d[g]=arguments[g];var b=l(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(E,_){var D=_<d.length-1,T=_>0;return s(E,D,T,function(N){y||(y=N),N&&w.forEach(f),!D&&(w.forEach(f),b(y))})});return d.reduce(u)}return Ap=c,Ap}var s3=An,Ep=tp.EventEmitter,NP=jo;NP(An,Ep),An.Readable=n3(),An.Writable=WE(),An.Duplex=Ho(),An.Transform=i3(),An.PassThrough=MP(),An.finished=mp(),An.pipeline=TP(),An.Stream=An;function An(){Ep.call(this)}An.prototype.pipe=function(t,e){var n=this;function r(l){t.writable&&t.write(l)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}t.on("drain",i),!t._isStdio&&(!e||e.end!==!1)&&(n.on("end",o),n.on("close",s));var a=!1;function o(){a||(a=!0,t.end())}function s(){a||(a=!0,typeof t.destroy=="function"&&t.destroy())}function f(l){if(u(),Ep.listenerCount(this,"error")===0)throw l}n.on("error",f),t.on("error",f);function u(){n.removeListener("data",r),t.removeListener("drain",i),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",f),t.removeListener("error",f),n.removeListener("end",u),n.removeListener("close",u),t.removeListener("close",u)}return n.on("end",u),n.on("close",u),t.on("close",u),t.emit("pipe",n),t};function Wu(t){return t.replace(/%([0-9A-Fa-f]{2})/g,(e,n)=>String.fromCharCode(parseInt(n,16)))}function u3(t,e){return String(e).replace(t,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Xu(t){return u3(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,t)}function Nr(t){return u3(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,t)}function f3(t){if(!(t&&t.length)||t===".")return{};const e={};return t.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=e[r[0].trim()];i||(i=[],e[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(Wu))}),e}function l3(t){const e=t.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:e[0]&&Wu(e[0]),source:e[1]&&Wu(e[1]),type:e[2]&&Wu(e[2]),start:e[3]===null?null:parseInt(e[3],10),end:e[4]===null?null:parseInt(e[4],10),score:e[5]===null?null:parseFloat(e[5]),strand:e[6],phase:e[7],attributes:e[8]===null?null:f3(e[8])}}function c3(t){const e=/^\s*##\s*(\S+)\s*(.*)/.exec(t);if(!e)return null;const[,n]=e;let[,,r]=e;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function h3(t){const e=[];return Object.entries(t).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Xu(r.toString()):Array.isArray(r)?i=r.map(Xu).join(","):i=Xu(r),e.push(`${Xu(n)}=${i}`)}),e.length?e.join(";"):"."}function FP(t,e){const n=t.attributes===null||t.attributes===void 0?".":h3(t.attributes),i=`${[t.seq_id===null?".":Nr(t.seq_id),t.source===null?".":Nr(t.source),t.type===null?".":Nr(t.type),t.start===null?".":Nr(t.start),t.end===null?".":Nr(t.end),t.score===null?".":Nr(t.score),t.strand===null?".":Nr(t.strand),t.phase===null?".":Nr(t.phase),n].join(" ")}
|
|
338
|
+
)`},Symbol.toStringTag,{value:"Module"}))).map(([t,e])=>[t,sE.parse(e.trim())]));function Vg(t){const e=["uint","int","float","long"];return{...t,fields:t.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&e.includes(n.type),isNumeric:!n.size&&e.includes(n.type)}))}}const Iz={".":0,"-":-1,"+":1};function Mz(t){var e;return t.length>=12&&!Number.isNaN(parseInt(t[9],10))&&((e=t[10])===null||e===void 0?void 0:e.split(",").filter(n=>!!n).length)===parseInt(t[9],10)}class Tz{constructor(e={}){if(e.autoSql)this.autoSql=Vg(Dz.parse(e.autoSql));else if(e.type){if(!Qg[e.type])throw new Error("Type not found");this.autoSql=Vg(Qg[e.type])}else this.autoSql=Vg(Qg.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(e,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(e)?e:e.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&Mz(a))for(let s=0;s<r.fields.length;s++){const f=r.fields[s];let u=a[s];const{isNumeric:l,isArray:c,arrayIsNumeric:h,name:d}=f;if(u==null)break;if(u!=="."){if(l){const g=Number(u);u=Number.isNaN(g)?u:g}else c&&(u=u.split(","),u[u.length-1]===""&&u.pop(),h&&(u=u.map(g=>Number(g))));o[d]=u}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((f,u)=>[s[u]||"field"+u,f])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=Iz[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}class Nz extends Au(ra){constructor(n,r){const i={channel:"x",windowSize:1e6,...n};super(r,i.channel);an(this,"lastRequestId",0);an(this,"parser");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.bbi=new Az({filehandle:new nr(Eu(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=Ec(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.parser=new Tz({autoSql:a.autoSql})})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doDebouncedRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){let r=++this.lastRequestId;const i=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),o=await Promise.all(a.map(s=>this.bbi.getFeatures(s.chrom,s.startPos,s.endPos,{signal:i.signal}).then(f=>f.map(u=>this.parser.parseLine(`${s.chrom} ${u.start} ${u.end} ${u.rest}`,{uniqueId:u.uniqueId})))));return{requestId:r,abort:()=>i.abort(),features:o.flat()}}}var Fz=Re,yn=null;try{yn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Re(t,e,n){this.low=t|0,this.high=e|0,this.unsigned=!!n}Re.prototype.__isLong__,Object.defineProperty(Re.prototype,"__isLong__",{value:!0});function Ht(t){return(t&&t.__isLong__)===!0}Re.isLong=Ht;var uE={},fE={};function Ea(t,e){var n,r,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(r=fE[t],r)?r:(n=Oe(t,(t|0)<0?-1:0,!0),i&&(fE[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(r=uE[t],r)?r:(n=Oe(t,t<0?-1:0,!1),i&&(uE[t]=n),n))}Re.fromInt=Ea;function wn(t,e){if(isNaN(t))return e?Sa:xn;if(e){if(t<0)return Sa;if(t>=cE)return mE}else{if(t<=-hE)return Qt;if(t+1>=hE)return pE}return t<0?wn(-t,e).neg():Oe(t%Ro|0,t/Ro|0,e)}Re.fromNumber=wn;function Oe(t,e,n){return new Re(t,e,n)}Re.fromBits=Oe;var Sc=Math.pow;function qg(t,e,n){if(t.length===0)throw Error("empty string");if(t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return xn;if(typeof e=="number"?(n=e,e=!1):e=!!e,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return qg(t.substring(1),e,n).neg();for(var i=wn(Sc(n,8)),a=xn,o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),f=parseInt(t.substring(o,o+s),n);if(s<8){var u=wn(Sc(n,s));a=a.mul(u).add(wn(f))}else a=a.mul(i),a=a.add(wn(f))}return a.unsigned=e,a}Re.fromString=qg;function jn(t,e){return typeof t=="number"?wn(t,e):typeof t=="string"?qg(t,e):Oe(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Re.fromValue=jn;var lE=1<<16,Bz=1<<24,Ro=lE*lE,cE=Ro*Ro,hE=cE/2,dE=Ea(Bz),xn=Ea(0);Re.ZERO=xn;var Sa=Ea(0,!0);Re.UZERO=Sa;var Oo=Ea(1);Re.ONE=Oo;var gE=Ea(1,!0);Re.UONE=gE;var Zg=Ea(-1);Re.NEG_ONE=Zg;var pE=Oe(-1,2147483647,!1);Re.MAX_VALUE=pE;var mE=Oe(-1,-1,!0);Re.MAX_UNSIGNED_VALUE=mE;var Qt=Oe(0,-2147483648,!1);Re.MIN_VALUE=Qt;var Y=Re.prototype;Y.toInt=function(){return this.unsigned?this.low>>>0:this.low},Y.toNumber=function(){return this.unsigned?(this.high>>>0)*Ro+(this.low>>>0):this.high*Ro+(this.low>>>0)},Y.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Qt)){var n=wn(e),r=this.div(n),i=r.mul(n).sub(this);return r.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var a=wn(Sc(e,6),this.unsigned),o=this,s="";;){var f=o.div(a),u=o.sub(f.mul(a)).toInt()>>>0,l=u.toString(e);if(o=f,o.isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},Y.getHighBits=function(){return this.high},Y.getHighBitsUnsigned=function(){return this.high>>>0},Y.getLowBits=function(){return this.low},Y.getLowBitsUnsigned=function(){return this.low>>>0},Y.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Qt)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,n=31;n>0&&!(e&1<<n);n--);return this.high!=0?n+33:n+1},Y.isZero=function(){return this.high===0&&this.low===0},Y.eqz=Y.isZero,Y.isNegative=function(){return!this.unsigned&&this.high<0},Y.isPositive=function(){return this.unsigned||this.high>=0},Y.isOdd=function(){return(this.low&1)===1},Y.isEven=function(){return(this.low&1)===0},Y.equals=function(e){return Ht(e)||(e=jn(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low},Y.eq=Y.equals,Y.notEquals=function(e){return!this.eq(e)},Y.neq=Y.notEquals,Y.ne=Y.notEquals,Y.lessThan=function(e){return this.comp(e)<0},Y.lt=Y.lessThan,Y.lessThanOrEqual=function(e){return this.comp(e)<=0},Y.lte=Y.lessThanOrEqual,Y.le=Y.lessThanOrEqual,Y.greaterThan=function(e){return this.comp(e)>0},Y.gt=Y.greaterThan,Y.greaterThanOrEqual=function(e){return this.comp(e)>=0},Y.gte=Y.greaterThanOrEqual,Y.ge=Y.greaterThanOrEqual,Y.compare=function(e){if(Ht(e)||(e=jn(e)),this.eq(e))return 0;var n=this.isNegative(),r=e.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},Y.comp=Y.compare,Y.negate=function(){return!this.unsigned&&this.eq(Qt)?Qt:this.not().add(Oo)},Y.neg=Y.negate,Y.add=function(e){Ht(e)||(e=jn(e));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=e.high>>>16,s=e.high&65535,f=e.low>>>16,u=e.low&65535,l=0,c=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,l+=c>>>16,c&=65535,l+=n+o,l&=65535,Oe(h<<16|d,l<<16|c,this.unsigned)},Y.subtract=function(e){return Ht(e)||(e=jn(e)),this.add(e.neg())},Y.sub=Y.subtract,Y.multiply=function(e){if(this.isZero())return xn;if(Ht(e)||(e=jn(e)),yn){var n=yn.mul(this.low,this.high,e.low,e.high);return Oe(n,yn.get_high(),this.unsigned)}if(e.isZero())return xn;if(this.eq(Qt))return e.isOdd()?Qt:xn;if(e.eq(Qt))return this.isOdd()?Qt:xn;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(dE)&&e.lt(dE))return wn(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=e.high>>>16,f=e.high&65535,u=e.low>>>16,l=e.low&65535,c=0,h=0,d=0,g=0;return g+=o*l,d+=g>>>16,g&=65535,d+=a*l,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*l+i*u+a*f+o*s,c&=65535,Oe(d<<16|g,c<<16|h,this.unsigned)},Y.mul=Y.multiply,Y.divide=function(e){if(Ht(e)||(e=jn(e)),e.isZero())throw Error("division by zero");if(yn){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var n=(this.unsigned?yn.div_u:yn.div_s)(this.low,this.high,e.low,e.high);return Oe(n,yn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Sa:xn;var r,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Sa;if(e.gt(this.shru(1)))return gE;a=Sa}else{if(this.eq(Qt)){if(e.eq(Oo)||e.eq(Zg))return Qt;if(e.eq(Qt))return Oo;var o=this.shr(1);return r=o.div(e).shl(1),r.eq(xn)?e.isNegative()?Oo:Zg:(i=this.sub(e.mul(r)),a=r.add(i.div(e)),a)}else if(e.eq(Qt))return this.unsigned?Sa:xn;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=xn}for(i=this;i.gte(e);){r=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:Sc(2,s-48),u=wn(r),l=u.mul(e);l.isNegative()||l.gt(i);)r-=f,u=wn(r,this.unsigned),l=u.mul(e);u.isZero()&&(u=Oo),a=a.add(u),i=i.sub(l)}return a},Y.div=Y.divide,Y.modulo=function(e){if(Ht(e)||(e=jn(e)),yn){var n=(this.unsigned?yn.rem_u:yn.rem_s)(this.low,this.high,e.low,e.high);return Oe(n,yn.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))},Y.mod=Y.modulo,Y.rem=Y.modulo,Y.not=function(){return Oe(~this.low,~this.high,this.unsigned)},Y.and=function(e){return Ht(e)||(e=jn(e)),Oe(this.low&e.low,this.high&e.high,this.unsigned)},Y.or=function(e){return Ht(e)||(e=jn(e)),Oe(this.low|e.low,this.high|e.high,this.unsigned)},Y.xor=function(e){return Ht(e)||(e=jn(e)),Oe(this.low^e.low,this.high^e.high,this.unsigned)},Y.shiftLeft=function(e){return Ht(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Oe(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Oe(0,this.low<<e-32,this.unsigned)},Y.shl=Y.shiftLeft,Y.shiftRight=function(e){return Ht(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Oe(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Oe(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},Y.shr=Y.shiftRight,Y.shiftRightUnsigned=function(e){if(Ht(e)&&(e=e.toInt()),e&=63,e===0)return this;var n=this.high;if(e<32){var r=this.low;return Oe(r>>>e|n<<32-e,n>>>e,this.unsigned)}else return e===32?Oe(n,0,this.unsigned):Oe(n>>>e-32,0,this.unsigned)},Y.shru=Y.shiftRightUnsigned,Y.shr_u=Y.shiftRightUnsigned,Y.toSigned=function(){return this.unsigned?Oe(this.low,this.high,!1):this},Y.toUnsigned=function(){return this.unsigned?this:Oe(this.low,this.high,!0)},Y.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},Y.toBytesLE=function(){var e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]},Y.toBytesBE=function(){var e=this.high,n=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Re.fromBytes=function(e,n,r){return r?Re.fromBytesLE(e,n):Re.fromBytesBE(e,n)},Re.fromBytesLE=function(e,n){return new Re(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,n)},Re.fromBytesBE=function(e,n){return new Re(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],n)};const bE=ia(Fz);let yE=class{constructor(e,n){this.blockPosition=e,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}static min(...e){let n,r=0;for(;!n;r+=1)n=e[r];for(;r<e.length;r+=1)n.compareTo(e[r])>0&&(n=e[r]);return n}};function zo(t,e=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new yE(t[e+7]*1099511627776+t[e+6]*4294967296+t[e+5]*16777216+t[e+4]*65536+t[e+3]*256+t[e+2],t[e+1]<<8|t[e])}let _c=class{constructor(e,n,r,i=void 0){this.minv=e,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(e){return this.minv.compareTo(e.minv)||this.maxv.compareTo(e.maxv)||this.bin-e.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+(1<<16)-this.minv.blockPosition}},wE=class{constructor({filehandle:e,renameRefSeq:n=r=>r}){this.filehandle=e,this.renameRefSeq=n}_findFirstData(e,n){const r=e.firstDataLine;r?e.firstDataLine=r.compareTo(n)>0?n:r:e.firstDataLine=n}async parse(e={}){return this.setupP||(this.setupP=this._parse(e).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(e,n={}){return!!((await this.parse(n)).indices[e]||{}).binIndex}};function kz(t){return new Promise(e=>setTimeout(e,t))}function xE(t){if(t.greaterThan(Number.MAX_SAFE_INTEGER)||t.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return t.toNumber()}function vE(t){if(t&&t.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const e=new Error("aborted");throw e.code="ERR_ABORTED",e}}}async function AE(t){await Promise.resolve(),vE(t)}function Lz(t,e){return e.minv.blockPosition-t.maxv.blockPosition<65e3&&e.maxv.blockPosition-t.minv.blockPosition<5e6}function Rz(t={}){return"aborted"in t?{signal:t}:t}function EE(t,e){const n=[];let r=null;return t.length===0?t:(t.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),t.forEach(i=>{(!e||i.maxv.compareTo(e)>0)&&(r===null?(n.push(i),r=i):Lz(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}const Oz=21578050;function zz(t,e){return t-t%e}function Pz(t,e){return t-t%e+e}class qu extends wE{parsePseudoBin(e,n){return{lineCount:xE(bE.fromBytesLE(Array.prototype.slice.call(e,n+16,n+24),!0))}}async lineCount(e,n={}){const i=(await this.parse(n)).indices[e];if(!i)return-1;const a=i.stats||{};return a.lineCount===void 0?-1:a.lineCount}fetchBai(e={}){return this.baiP||(this.baiP=this.filehandle.readFile(e).catch(n=>{throw this.baiP=void 0,n})),this.baiP}async _parse(){const e={bai:!0,maxBlockSize:65536},n=await this.fetchBai();if(n.readUInt32LE(0)!==Oz)throw new Error("Not a BAI file");e.refCount=n.readInt32LE(4);const i=((1<<(5+1)*3)-1)/7;e.indices=new Array(e.refCount);let a=8;for(let o=0;o<e.refCount;o+=1){const s=n.readInt32LE(a);let f;a+=4;const u={};for(let h=0;h<s;h+=1){const d=n.readUInt32LE(a);if(a+=4,d===i+1)a+=4,f=this.parsePseudoBin(n,a),a+=32;else{if(d>i+1)throw new Error("bai index contains too many bins, please use CSI");{const g=n.readInt32LE(a);a+=4;const b=new Array(g);for(let y=0;y<g;y+=1){const w=zo(n,a),E=zo(n,a+8);a+=16,this._findFirstData(e,w),b[y]=new _c(w,E,d)}u[d]=b}}}const l=n.readInt32LE(a);a+=4;const c=new Array(l);for(let h=0;h<l;h+=1)c[h]=zo(n,a),a+=8,this._findFirstData(e,c[h]);e.indices[o]={binIndex:u,linearIndex:c,stats:f}}return e}async indexCov(e,n,r,i={}){const o=n!==void 0,f=(await this.parse(i)).indices[e];if(!f)return[];const{linearIndex:u=[],stats:l}=f;if(!u.length)return[];const c=r!==void 0?Pz(r,16384):(u.length-1)*16384,h=n!==void 0?zz(n,16384):0;let d;o?d=new Array((c-h)/16384):d=new Array(u.length-1);const g=u[u.length-1].blockPosition;if(c>(u.length-1)*16384)throw new Error("query outside of range of linear index");let b=u[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:u[y+1].blockPosition-b,start:y*16384,end:y*16384+16384},b=u[y+1].blockPosition;return d.map(y=>({...y,score:y.score*l.lineCount/g}))}reg2bins(e,n){return n-=1,[[0,0],[1+(e>>26),1+(n>>26)],[9+(e>>23),9+(n>>23)],[73+(e>>20),73+(n>>20)],[585+(e>>17),585+(n>>17)],[4681+(e>>14),4681+(n>>14)]]}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[e];if(!o)return[];const s=this.reg2bins(n,r),f=[];for(const[d,g]of s)for(let b=d;b<=g;b++)if(o.binIndex[b]){const y=o.binIndex[b];for(let w=0;w<y.length;++w)f.push(new _c(y[w].minv,y[w].maxv,b))}const u=o.linearIndex.length;let l=null;const c=Math.min(n>>14,u-1),h=Math.min(r>>14,u-1);for(let d=c;d<=h;++d){const g=o.linearIndex[d];g&&(!l||g.compareTo(l)<0)&&(l=g)}return EE(f,l)}}const Uz=21582659,jz=38359875;function Gz(t,e){return t*2**e}function SE(t,e){return Math.floor(t/2**e)}let Yg=class extends wE{constructor(e){super(e),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(e){const n=await this.parse();if(!n||!n.indices[e])return-1;const{stats:i}=n.indices[e];return i?i.lineCount:-1}async indexCov(){return[]}parseAuxData(e,n,r){if(r<30)return{};const i={};if(i.formatFlags=e.readInt32LE(n),i.coordinateType=i.formatFlags&65536?"zero-based-half-open":"1-based-closed",i.format={0:"generic",1:"SAM",2:"VCF"}[i.formatFlags&15],!i.format)throw new Error(`invalid Tabix preset format flags ${i.formatFlags}`);i.columnNumbers={ref:e.readInt32LE(n+4),start:e.readInt32LE(n+8),end:e.readInt32LE(n+12)},i.metaValue=e.readInt32LE(n+16),i.metaChar=i.metaValue?String.fromCharCode(i.metaValue):"",i.skipLines=e.readInt32LE(n+20);const a=e.readInt32LE(n+24);return Object.assign(i,this._parseNameBytes(e.subarray(n+28,n+28+a))),i}_parseNameBytes(e){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(e){const n={csi:!0,maxBlockSize:65536},r=await this.filehandle.readFile(e),i=await wo(r);if(i.readUInt32LE(0)===Uz)n.csiVersion=1;else if(i.readUInt32LE(0)===jz)n.csiVersion=2;else throw new Error("Not a CSI file");this.minShift=i.readInt32LE(4),this.depth=i.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=i.readInt32LE(12);a&&Object.assign(n,this.parseAuxData(i,16,a)),n.refCount=i.readInt32LE(16+a),n.indices=new Array(n.refCount);let o=16+a+4;for(let s=0;s<n.refCount;s+=1){await AE(e.signal);const f=i.readInt32LE(o);o+=4;const u={};let l;for(let c=0;c<f;c+=1){const h=i.readUInt32LE(o);if(h>this.maxBinNumber)l=this.parsePseudoBin(i,o+4),o+=4+8+4+16+16;else{const d=zo(i,o+4);this._findFirstData(n,d);const g=i.readInt32LE(o+12);o+=16;const b=new Array(g);for(let y=0;y<g;y+=1){const w=zo(i,o),E=zo(i,o+8);o+=16,b[y]=new _c(w,E,h)}u[h]=b}}n.indices[s]={binIndex:u,stats:l}}return n}parsePseudoBin(e,n){return{lineCount:xE(bE.fromBytesLE(Array.prototype.slice.call(e,n+28,n+36),!0))}}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[e];if(!o)return[];const s=this.reg2bins(n,r),f=[];for(const[u,l]of s)for(let c=u;c<=l;c++)if(o.binIndex[c]){const h=o.binIndex[c];for(let d=0;d<h.length;++d)f.push(new _c(h[d].minv,h[d].maxv,c))}return EE(f,new yE(0,0))}reg2bins(e,n){e-=1,e<1&&(e=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=Gz(1,r*3),r+=1){const s=i+SE(e,a),f=i+SE(n,a);if(f-s+o.length>this.maxBinNumber)throw new Error(`query ${e}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,f])}return o}};var vi=bt.Buffer,Wg=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(Wg=new Int32Array(Wg));function _E(t){if(vi.isBuffer(t))return t;var e=typeof vi.alloc=="function"&&typeof vi.from=="function";if(typeof t=="number")return e?vi.alloc(t):new vi(t);if(typeof t=="string")return e?vi.from(t):new vi(t);throw new Error("input must be buffer, number, or string, received "+typeof t)}function Hz(t){var e=_E(4);return e.writeInt32BE(t,0),e}function Xg(t,e){t=_E(t),vi.isBuffer(e)&&(e=e.readUInt32BE(0));for(var n=~~e^-1,r=0;r<t.length;r++)n=Wg[(n^t[r])&255]^n>>>8;return n^-1}function $g(){return Hz(Xg.apply(null,arguments))}$g.signed=function(){return Xg.apply(null,arguments)},$g.unsigned=function(){return Xg.apply(null,arguments)>>>0};var Qz=$g;const Vz=ia(Qz);var Kg,CE;function qz(){if(CE)return Kg;CE=1;var t=function(r,i){return Object.prototype.hasOwnProperty.call(r,i)},e=function(r,i){return Object.prototype.propertyIsEnumerable.call(r,i)};function n(r){if(r==null)throw new TypeError("Cannot convert undefined or null to object");var i=[];for(var a in r)t(r,a)&&e(r,a)&&i.push([a,r[a]]);return i}return Kg=n,Kg}var Zz=typeof Object.entries=="function"?Object.entries:qz();const Yz=ia(Zz);class Wz{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,n){this.cache.set(e,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const n=this.oldCache.get(e);return this._set(e,n),n}}set(e,n){return this.cache.has(e)?this.cache.set(e,n):this._set(e,n),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){const n=this.cache.delete(e);return n&&this._size--,this.oldCache.delete(e)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[n]=e;this.cache.has(n)||(yield e)}}get size(){let e=0;for(const n of this.oldCache.keys())this.cache.has(n)||e++;return this._size+e}}var Xz=Wz;const $z=ia(Xz),vn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},DE="=ACMGRSVTWYHKDBN".split(""),Zu="MIDNSHP=X???????".split("");class Kz{constructor(e){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=e,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(e){return this[e]?this.data[e]?this.data[e]:(this.data[e]=this[e](),this.data[e]):this._get(e.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(e){return e in this.data?this.data[e]:(this.data[e]=this._parseTag(e),this.data[e])}_tags(){this._parseAllTags();let e=["seq"];this.isSegmentUnmapped()||e.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&e.push("next_segment_position","pair_orientation"),e=e.concat(this._tagList||[]),Object.keys(this.data).forEach(r=>{r[0]!=="_"&&r!=="next_seq_id"&&e.push(r)});const n={};return e.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const e=(this.get("_bin_mq_nl")&65280)>>8;return e===255?void 0:e}score(){return this.get("mq")}qual(){var e;return(e=this.qualRaw())===null||e===void 0?void 0:e.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:e,byteArray:n}=this.bytes,r=e+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const e=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+e-1)}_parseTag(e){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==e;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const f=String.fromCharCode(n[i+2]);i+=3;let u;switch(f){case"A":u=String.fromCharCode(n[i]),i+=1;break;case"i":u=n.readInt32LE(i),i+=4;break;case"I":u=n.readUInt32LE(i),i+=4;break;case"c":u=n.readInt8(i),i+=1;break;case"C":u=n.readUInt8(i),i+=1;break;case"s":u=n.readInt16LE(i),i+=2;break;case"S":u=n.readUInt16LE(i),i+=2;break;case"f":u=n.readFloatLE(i),i+=4;break;case"Z":case"H":for(u="";i<=a;){const l=n[i++];if(l===0)break;u+=String.fromCharCode(l)}break;case"B":{u="";const l=n[i++],c=String.fromCharCode(l),h=n.readInt32LE(i);if(i+=4,c==="i")if(s==="CG")for(let d=0;d<h;d++){const g=n.readInt32LE(i),b=g>>4,y=Zu[g&15];u+=b+y,i+=4}else for(let d=0;d<h;d++)u+=n.readInt32LE(i),d+1<h&&(u+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const g=n.readUInt32LE(i),b=g>>4,y=Zu[g&15];u+=b+y,i+=4}else for(let d=0;d<h;d++)u+=n.readUInt32LE(i),d+1<h&&(u+=","),i+=4;if(c==="s")for(let d=0;d<h;d++)u+=n.readInt16LE(i),d+1<h&&(u+=","),i+=2;if(c==="S")for(let d=0;d<h;d++)u+=n.readUInt16LE(i),d+1<h&&(u+=","),i+=2;if(c==="c")for(let d=0;d<h;d++)u+=n.readInt8(i),d+1<h&&(u+=","),i+=1;if(c==="C")for(let d=0;d<h;d++)u+=n.readUInt8(i),d+1<h&&(u+=","),i+=1;if(c==="f")for(let d=0;d<h;d++)u+=n.readFloatLE(i),d+1<h&&(u+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${f}', tags may be incomplete`),u=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===e)return u;this.data[o]=u}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(e){return e.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),parseInt(n,10)])}isPaired(){return!!(this.flags&vn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&vn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&vn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&vn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&vn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&vn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&vn.BAM_FREAD1)}isRead2(){return!!(this.flags&vn.BAM_FREAD2)}isSecondary(){return!!(this.flags&vn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&vn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&vn.BAM_FDUP)}isSupplementary(){return!!(this.flags&vn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:e,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const a=this.get("seq_length");let o="",s=0,f=e.readInt32LE(i),u=f>>4,l=Zu[f&15];if(l==="S"&&u===a)return i+=4,f=e.readInt32LE(i),u=f>>4,l=Zu[f&15],l!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=u,this.get("CG");for(let c=0;c<r;++c)f=e.readInt32LE(i),u=f>>4,l=Zu[f&15],o+=u+l,l!=="H"&&l!=="S"&&l!=="I"&&(s+=u),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:e,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let f=0;f<i;++f){const u=e[r+f];o+=DE[(u&240)>>4],s++,s<a&&(o+=DE[u&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const e=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=e,a[1]=r,a[2]=n,a[3]=i):(a[2]=e,a[3]=r,a[0]=n,a[1]=i),a.join("")}return null}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const e={};return Object.keys(this).forEach(n=>{n.charAt(0)==="_"||n==="bytes"||(e[n]=this[n])}),e}}function Jz(t){const e=t.split(/\r?\n/),n=[];return e.forEach(r=>{const[i,...a]=r.split(/\t/),o=a.map(s=>{const[f,u]=s.split(":",2);return{tag:f,value:u}});i&&n.push({tag:i.substr(1),data:o})}),n}const eP=21840194,Jg=1<<16;function ep(t){return[].concat(...t)}async function tP(t){const e=[];for await(const n of t)e.push(n);return e}class nP{constructor({bamFilehandle:e,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:f,csiUrl:u,fetchSizeLimit:l,chunkSizeLimit:c,yieldThreadTime:h=100,renameRefSeqs:d=g=>g}){if(this.featureCache=new ac({cache:new $z({maxSize:50}),fill:async({chunk:g,opts:b},y)=>{const{data:w,cpositions:E,dpositions:_}=await this._readChunk({chunk:g,opts:{...b,signal:y}});return await this.readBamFeatures(w,E,_,g)}}),this.renameRefSeq=d,e)this.bam=e;else if(n)this.bam=new Jt(n);else if(r)this.bam=new nr(r);else throw new Error("unable to initialize bam");if(f)this.index=new Yg({filehandle:f});else if(s)this.index=new Yg({filehandle:new Jt(s)});else if(u)this.index=new Yg({filehandle:new nr(u)});else if(a)this.index=new qu({filehandle:a});else if(i)this.index=new qu({filehandle:new Jt(i)});else if(o)this.index=new qu({filehandle:new nr(o)});else if(n)this.index=new qu({filehandle:new Jt(`${n}.bai`)});else if(r)this.index=new qu({filehandle:new nr(`${r}.bai`)});else throw new Error("unable to infer index format");this.fetchSizeLimit=l||5e8,this.chunkSizeLimit=c||3e8,this.yieldThreadTime=h}async getHeader(e={}){const n=Rz(e),r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const l=await this.bam.read(Buffer.alloc(i+Jg),0,i+Jg,0,n),{bytesRead:c}=l;if({buffer:a}=l,!c)throw new Error("Error reading header");c<i?a=a.subarray(0,c):a=a.subarray(0,i)}else a=await this.bam.readFile(n);const o=await wo(a);if(o.readInt32LE(0)!==eP)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:f,indexToChr:u}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=f,this.indexToChr=u,Jz(this.header)}async getHeaderText(e={}){return await this.getHeader(e),this.header}async _readRefSeqs(e,n,r={}){if(e>n)return this._readRefSeqs(e,n*2,r);const i=n+Jg,{bytesRead:a,buffer:o}=await this.bam.read(Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await wo(o.subarray(0,Math.min(a,n))),f=s.readInt32LE(e);let u=e+4;const l={},c=[];for(let h=0;h<f;h+=1){const d=s.readInt32LE(u),g=this.renameRefSeq(s.toString("utf8",u+4,u+4+d-1)),b=s.readInt32LE(u+d+4);if(l[g]=h,c.push({refName:g,length:b}),u=u+8+d,u>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(e,n*2,r)}return{chrToIndex:l,indexToChr:c}}async getRecordsForRange(e,n,r,i={viewAsPairs:!1,pairAcrossChr:!1,maxInsertSize:2e5}){return ep(await tP(this.streamRecordsForRange(e,n,r,i)))}async*streamRecordsForRange(e,n,r,i={}){const{signal:a}=i,o=this.chrToIndex&&this.chrToIndex[e];let s;if(!(o>=0))s=[];else if(s=await this.index.blocksForRange(o,n-1,r,i),!s)throw new Error("Error in index fetch");for(let u=0;u<s.length;u+=1){await AE(a);const l=s[u].fetchedSize();if(l>this.chunkSizeLimit)throw new Error(`Too many BAM features. BAM chunk size ${l} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit}`)}const f=s.map(u=>u.fetchedSize()).reduce((u,l)=>u+l,0);if(f>this.fetchSizeLimit)throw new Error(`data size of ${f.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);yield*this._fetchChunkFeatures(s,o,n,r,i)}async*_fetchChunkFeatures(e,n,r,i,a){const{viewAsPairs:o=!1}=a,s=[];let f=!1;for(let u=0;u<e.length;u++){const l=e[u],c=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.signal),h=[];for(let d=0;d<c.length;d+=1){const g=c[d];if(g.seq_id()===n)if(g.get("start")>=i){f=!0;break}else g.get("end")>=r&&h.push(g)}if(s.push(h),yield h,f)break}vE(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(e,n,r){const{pairAcrossChr:i=!1,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(let g=0;g<h.length;g++){const b=h[g].name(),y=h[g].id();d[b]||(d[b]=0),d[b]++,s[y]=1}Yz(d).forEach(([g,b])=>{b===1&&(o[g]=!0)})});const f=[];n.map(h=>{for(let d=0;d<h.length;d++){const g=h[d],b=g.name(),y=g.get("start"),w=g._next_pos(),E=g._next_refid();o[b]&&(i||E===e&&Math.abs(y-w)<a)&&f.push(this.index.blocksForRange(E,w,w+1,r))}});const u=ep(await Promise.all(f)).sort().filter((h,d,g)=>!d||h.toString()!==g[d-1].toString()),l=u.map(h=>h.fetchedSize()).reduce((h,d)=>h+d,0);if(l>this.fetchSizeLimit)throw new Error(`data size of ${l.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);const c=u.map(async h=>{const{data:d,cpositions:g,dpositions:b,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=await this.readBamFeatures(d,g,b,y),E=[];for(let _=0;_<w.length;_+=1){const D=w[_];o[D.get("name")]&&!s[D.id()]&&E.push(D)}return E});return ep(await Promise.all(c))}async _readChunk({chunk:e,opts:n}){const r=e.fetchedSize(),{buffer:i,bytesRead:a}=await this.bam.read(Buffer.alloc(r),0,r,e.minv.blockPosition,n),{buffer:o,cpositions:s,dpositions:f}=await Q2(i.subarray(0,Math.min(a,r)),e);return{data:o,cpositions:s,dpositions:f,chunk:e}}async readBamFeatures(e,n,r,i){let a=0;const o=[];let s=0,f=+Date.now();for(;a+4<e.length;){const u=e.readInt32LE(a),l=a+4+u-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(l<e.length){const c=new Kz({bytes:{byteArray:e,start:a,end:l},fileOffset:n?n[s]*256+(a-r[s])+i.minv.dataPosition+1:Vz.signed(e.slice(a,l))});o.push(c),this.yieldThreadTime&&+Date.now()-f>this.yieldThreadTime&&(await kz(1),f=+Date.now())}a=l+1}return o}async hasRefSeq(e){const n=this.chrToIndex&&this.chrToIndex[e];return this.index.hasRefSeq(n)}async lineCount(e){const n=this.chrToIndex&&this.chrToIndex[e];return this.index.lineCount(n)}async indexCov(e,n,r){await this.index.parse();const i=this.chrToIndex&&this.chrToIndex[e];return this.index.indexCov(i,n,r)}async blocksForRange(e,n,r,i){await this.index.parse();const a=this.chrToIndex&&this.chrToIndex[e];return this.index.blocksForRange(a,n,r,i)}}(function(){(function(t){(function(e){var n={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};function r(C){return C&&DataView.prototype.isPrototypeOf(C)}if(n.arrayBuffer)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function(C){return C&&i.indexOf(Object.prototype.toString.call(C))>-1};function o(C){if(typeof C!="string"&&(C=String(C)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(C))throw new TypeError("Invalid character in header field name");return C.toLowerCase()}function s(C){return typeof C!="string"&&(C=String(C)),C}function f(C){var k={next:function(){var L=C.shift();return{done:L===void 0,value:L}}};return n.iterable&&(k[Symbol.iterator]=function(){return k}),k}function u(C){this.map={},C instanceof u?C.forEach(function(k,L){this.append(L,k)},this):Array.isArray(C)?C.forEach(function(k){this.append(k[0],k[1])},this):C&&Object.getOwnPropertyNames(C).forEach(function(k){this.append(k,C[k])},this)}u.prototype.append=function(C,k){C=o(C),k=s(k);var L=this.map[C];this.map[C]=L?L+", "+k:k},u.prototype.delete=function(C){delete this.map[o(C)]},u.prototype.get=function(C){return C=o(C),this.has(C)?this.map[C]:null},u.prototype.has=function(C){return this.map.hasOwnProperty(o(C))},u.prototype.set=function(C,k){this.map[o(C)]=s(k)},u.prototype.forEach=function(C,k){for(var L in this.map)this.map.hasOwnProperty(L)&&C.call(k,this.map[L],L,this)},u.prototype.keys=function(){var C=[];return this.forEach(function(k,L){C.push(L)}),f(C)},u.prototype.values=function(){var C=[];return this.forEach(function(k){C.push(k)}),f(C)},u.prototype.entries=function(){var C=[];return this.forEach(function(k,L){C.push([L,k])}),f(C)},n.iterable&&(u.prototype[Symbol.iterator]=u.prototype.entries);function l(C){if(C.bodyUsed)return Promise.reject(new TypeError("Already read"));C.bodyUsed=!0}function c(C){return new Promise(function(k,L){C.onload=function(){k(C.result)},C.onerror=function(){L(C.error)}})}function h(C){var k=new FileReader,L=c(k);return k.readAsArrayBuffer(C),L}function d(C){var k=new FileReader,L=c(k);return k.readAsText(C),L}function g(C){for(var k=new Uint8Array(C),L=new Array(k.length),ee=0;ee<k.length;ee++)L[ee]=String.fromCharCode(k[ee]);return L.join("")}function b(C){if(C.slice)return C.slice(0);var k=new Uint8Array(C.byteLength);return k.set(new Uint8Array(C)),k.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(C){this._bodyInit=C,C?typeof C=="string"?this._bodyText=C:n.blob&&Blob.prototype.isPrototypeOf(C)?this._bodyBlob=C:n.formData&&FormData.prototype.isPrototypeOf(C)?this._bodyFormData=C:n.searchParams&&URLSearchParams.prototype.isPrototypeOf(C)?this._bodyText=C.toString():n.arrayBuffer&&n.blob&&r(C)?(this._bodyArrayBuffer=b(C.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):n.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(C)||a(C))?this._bodyArrayBuffer=b(C):this._bodyText=C=Object.prototype.toString.call(C):this._bodyText="",this.headers.get("content-type")||(typeof C=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n.searchParams&&URLSearchParams.prototype.isPrototypeOf(C)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n.blob&&(this.blob=function(){var C=l(this);if(C)return C;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?l(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(h)}),this.text=function(){var C=l(this);if(C)return C;if(this._bodyBlob)return d(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(g(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},n.formData&&(this.formData=function(){return this.text().then(D)}),this.json=function(){return this.text().then(JSON.parse)},this}var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function E(C){var k=C.toUpperCase();return w.indexOf(k)>-1?k:C}function _(C,k){k=k||{};var L=k.body;if(C instanceof _){if(C.bodyUsed)throw new TypeError("Already read");this.url=C.url,this.credentials=C.credentials,k.headers||(this.headers=new u(C.headers)),this.method=C.method,this.mode=C.mode,this.signal=C.signal,!L&&C._bodyInit!=null&&(L=C._bodyInit,C.bodyUsed=!0)}else this.url=String(C);if(this.credentials=k.credentials||this.credentials||"same-origin",(k.headers||!this.headers)&&(this.headers=new u(k.headers)),this.method=E(k.method||this.method||"GET"),this.mode=k.mode||this.mode||null,this.signal=k.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&L)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(L)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})};function D(C){var k=new FormData;return C.trim().split("&").forEach(function(L){if(L){var ee=L.split("="),ne=ee.shift().replace(/\+/g," "),J=ee.join("=").replace(/\+/g," ");k.append(decodeURIComponent(ne),decodeURIComponent(J))}}),k}function T(C){var k=new u,L=C.replace(/\r?\n[\t ]+/g," ");return L.split(/\r?\n/).forEach(function(ee){var ne=ee.split(":"),J=ne.shift().trim();if(J){var be=ne.join(":").trim();k.append(J,be)}}),k}y.call(_.prototype);function N(C,k){k||(k={}),this.type="default",this.status=k.status===void 0?200:k.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in k?k.statusText:"OK",this.headers=new u(k.headers),this.url=k.url||"",this._initBody(C)}y.call(N.prototype),N.prototype.clone=function(){return new N(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new u(this.headers),url:this.url})},N.error=function(){var C=new N(null,{status:0,statusText:""});return C.type="error",C};var M=[301,302,303,307,308];N.redirect=function(C,k){if(M.indexOf(k)===-1)throw new RangeError("Invalid status code");return new N(null,{status:k,headers:{location:C}})},e.DOMException=t.DOMException;try{new e.DOMException}catch{e.DOMException=function(k,L){this.message=k,this.name=L;var ee=Error(k);this.stack=ee.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function R(C,k){return new Promise(function(L,ee){var ne=new _(C,k);if(ne.signal&&ne.signal.aborted)return ee(new e.DOMException("Aborted","AbortError"));var J=new XMLHttpRequest;function be(){J.abort()}J.onload=function(){var Se={status:J.status,statusText:J.statusText,headers:T(J.getAllResponseHeaders()||"")};Se.url="responseURL"in J?J.responseURL:Se.headers.get("X-Request-URL");var Te="response"in J?J.response:J.responseText;L(new N(Te,Se))},J.onerror=function(){ee(new TypeError("Network request failed"))},J.ontimeout=function(){ee(new TypeError("Network request failed"))},J.onabort=function(){ee(new e.DOMException("Aborted","AbortError"))},J.open(ne.method,ne.url,!0),ne.credentials==="include"?J.withCredentials=!0:ne.credentials==="omit"&&(J.withCredentials=!1),"responseType"in J&&n.blob&&(J.responseType="blob"),ne.headers.forEach(function(Se,Te){J.setRequestHeader(Te,Se)}),ne.signal&&(ne.signal.addEventListener("abort",be),J.onreadystatechange=function(){J.readyState===4&&ne.signal.removeEventListener("abort",be)}),J.send(typeof ne._bodyInit>"u"?null:ne._bodyInit)})}return R.polyfill=!0,t.fetch||(t.fetch=R,t.Headers=u,t.Request=_,t.Response=N),e.Headers=u,e.Request=_,e.Response=N,e.fetch=R,Object.defineProperty(e,"__esModule",{value:!0}),e})({})})(typeof self<"u"?self:au)})();class rP extends Au(ra){constructor(n,r){const i={channel:"x",windowSize:2e4,...n};super(r,i.channel);an(this,"lastRequestId",0);an(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");const a=o=>new nr(Eu(o,this.view.getBaseUrl()));this.bam=new nP({bamFilehandle:a(this.params.url),baiFilehandle:a(this.params.indexUrl??this.params.url+".bai")}),this.headerPromise=this.bam.getHeader(),this.headerPromise.then(o=>{var u,l;const s=this.genome.hasChrPrefix(),f=(l=(u=this.bam.indexToChr)==null?void 0:u[0])==null?void 0:l.refName.startsWith("chr");s&&!f?this.chrPrefixFixer=c=>c.replace("chr",""):!s&&f&&(this.chrPrefixFixer=c=>"chr"+c)})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;await this.headerPromise;const i=this.quantizeInterval(n,r);if(this.checkAndUpdateLastInterval(i)){const a=this.genome.continuousToDiscreteChromosomeIntervals(i),o=await Promise.all(a.map(s=>this.bam.getRecordsForRange(this.chrPrefixFixer(s.chrom),s.startPos,s.endPos).then(f=>f.map(u=>({chrom:s.chrom,start:u.get("start"),end:u.get("end"),name:u.get("name"),MD:u.get("MD"),cigar:u.get("cigar"),mapq:u.get("mq"),strand:u.get("strand")===1?"+":"-"})))));this.publishData(o.flat())}}}var tp={exports:{}},Po=typeof Reflect=="object"?Reflect:null,IE=Po&&typeof Po.apply=="function"?Po.apply:function(e,n,r){return Function.prototype.apply.call(e,n,r)},Cc;Po&&typeof Po.ownKeys=="function"?Cc=Po.ownKeys:Object.getOwnPropertySymbols?Cc=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Cc=function(e){return Object.getOwnPropertyNames(e)};function iP(t){console&&console.warn&&console.warn(t)}var ME=Number.isNaN||function(e){return e!==e};function Ne(){Ne.init.call(this)}tp.exports=Ne,tp.exports.once=uP,Ne.EventEmitter=Ne,Ne.prototype._events=void 0,Ne.prototype._eventsCount=0,Ne.prototype._maxListeners=void 0;var TE=10;function Dc(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(Ne,"defaultMaxListeners",{enumerable:!0,get:function(){return TE},set:function(t){if(typeof t!="number"||t<0||ME(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");TE=t}}),Ne.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ne.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||ME(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function NE(t){return t._maxListeners===void 0?Ne.defaultMaxListeners:t._maxListeners}Ne.prototype.getMaxListeners=function(){return NE(this)},Ne.prototype.emit=function(e){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=e==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var f=a[e];if(f===void 0)return!1;if(typeof f=="function")IE(f,this,n);else for(var u=f.length,l=RE(f,u),r=0;r<u;++r)IE(l[r],this,n);return!0};function FE(t,e,n,r){var i,a,o;if(Dc(n),a=t._events,a===void 0?(a=t._events=Object.create(null),t._eventsCount=0):(a.newListener!==void 0&&(t.emit("newListener",e,n.listener?n.listener:n),a=t._events),o=a[e]),o===void 0)o=a[e]=n,++t._eventsCount;else if(typeof o=="function"?o=a[e]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=NE(t),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=t,s.type=e,s.count=o.length,iP(s)}return t}Ne.prototype.addListener=function(e,n){return FE(this,e,n,!1)},Ne.prototype.on=Ne.prototype.addListener,Ne.prototype.prependListener=function(e,n){return FE(this,e,n,!0)};function aP(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function BE(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=aP.bind(r);return i.listener=n,r.wrapFn=i,i}Ne.prototype.once=function(e,n){return Dc(n),this.on(e,BE(this,e,n)),this},Ne.prototype.prependOnceListener=function(e,n){return Dc(n),this.prependListener(e,BE(this,e,n)),this},Ne.prototype.removeListener=function(e,n){var r,i,a,o,s;if(Dc(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():oP(r,a),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,s||n)}return this},Ne.prototype.off=Ne.prototype.removeListener,Ne.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[e],typeof n=="function")this.removeListener(e,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(e,n[i]);return this};function kE(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?sP(i):RE(i,i.length)}Ne.prototype.listeners=function(e){return kE(this,e,!0)},Ne.prototype.rawListeners=function(e){return kE(this,e,!1)},Ne.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):LE.call(t,e)},Ne.prototype.listenerCount=LE;function LE(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Ne.prototype.eventNames=function(){return this._eventsCount>0?Cc(this._events):[]};function RE(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function oP(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function sP(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function uP(t,e){return new Promise(function(n,r){function i(o){t.removeListener(e,a),r(o)}function a(){typeof t.removeListener=="function"&&t.removeListener("error",i),n([].slice.call(arguments))}OE(t,e,a,{once:!0}),e!=="error"&&fP(t,i,{once:!0})})}function fP(t,e,n){typeof t.on=="function"&&OE(t,"error",e,n)}function OE(t,e,n,r){if(typeof t.on=="function")r.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(a){r.once&&t.removeEventListener(e,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var np=tp.exports,rp={exports:{}};typeof Object.create=="function"?rp.exports=function(e,n){n&&(e.super_=n,e.prototype=Object.create(n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:rp.exports=function(e,n){if(n){e.super_=n;var r=function(){};r.prototype=n.prototype,e.prototype=new r,e.prototype.constructor=e}};var Uo=rp.exports,ip,zE;function PE(){return zE||(zE=1,ip=np.EventEmitter),ip}const UE=NB(UB);var ap,jE;function lP(){if(jE)return ap;jE=1;function t(h,d){var g=Object.keys(h);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(h);d&&(b=b.filter(function(y){return Object.getOwnPropertyDescriptor(h,y).enumerable})),g.push.apply(g,b)}return g}function e(h){for(var d=1;d<arguments.length;d++){var g=arguments[d]!=null?arguments[d]:{};d%2?t(Object(g),!0).forEach(function(b){n(h,b,g[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(h,Object.getOwnPropertyDescriptors(g)):t(Object(g)).forEach(function(b){Object.defineProperty(h,b,Object.getOwnPropertyDescriptor(g,b))})}return h}function n(h,d,g){return d in h?Object.defineProperty(h,d,{value:g,enumerable:!0,configurable:!0,writable:!0}):h[d]=g,h}function r(h,d){if(!(h instanceof d))throw new TypeError("Cannot call a class as a function")}function i(h,d){for(var g=0;g<d.length;g++){var b=d[g];b.enumerable=b.enumerable||!1,b.configurable=!0,"value"in b&&(b.writable=!0),Object.defineProperty(h,b.key,b)}}function a(h,d,g){return d&&i(h.prototype,d),g&&i(h,g),h}var o=bt,s=o.Buffer,f=UE,u=f.inspect,l=u&&u.custom||"inspect";function c(h,d,g){s.prototype.copy.call(h,d,g)}return ap=function(){function h(){r(this,h),this.head=null,this.tail=null,this.length=0}return a(h,[{key:"push",value:function(g){var b={data:g,next:null};this.length>0?this.tail.next=b:this.head=b,this.tail=b,++this.length}},{key:"unshift",value:function(g){var b={data:g,next:this.head};this.length===0&&(this.tail=b),this.head=b,++this.length}},{key:"shift",value:function(){if(this.length!==0){var g=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,g}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(g){if(this.length===0)return"";for(var b=this.head,y=""+b.data;b=b.next;)y+=g+b.data;return y}},{key:"concat",value:function(g){if(this.length===0)return s.alloc(0);for(var b=s.allocUnsafe(g>>>0),y=this.head,w=0;y;)c(y.data,b,w),w+=y.data.length,y=y.next;return b}},{key:"consume",value:function(g,b){var y;return g<this.head.data.length?(y=this.head.data.slice(0,g),this.head.data=this.head.data.slice(g)):g===this.head.data.length?y=this.shift():y=b?this._getString(g):this._getBuffer(g),y}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(g){var b=this.head,y=1,w=b.data;for(g-=w.length;b=b.next;){var E=b.data,_=g>E.length?E.length:g;if(_===E.length?w+=E:w+=E.slice(0,g),g-=_,g===0){_===E.length?(++y,b.next?this.head=b.next:this.head=this.tail=null):(this.head=b,b.data=E.slice(_));break}++y}return this.length-=y,w}},{key:"_getBuffer",value:function(g){var b=s.allocUnsafe(g),y=this.head,w=1;for(y.data.copy(b),g-=y.data.length;y=y.next;){var E=y.data,_=g>E.length?E.length:g;if(E.copy(b,b.length-g,0,_),g-=_,g===0){_===E.length?(++w,y.next?this.head=y.next:this.head=this.tail=null):(this.head=y,y.data=E.slice(_));break}++w}return this.length-=w,b}},{key:l,value:function(g,b){return u(this,e({},b,{depth:0,customInspect:!1}))}}]),h}(),ap}var op,GE;function HE(){if(GE)return op;GE=1;function t(o,s){var f=this,u=this._readableState&&this._readableState.destroyed,l=this._writableState&&this._writableState.destroyed;return u||l?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(c){!s&&c?f._writableState?f._writableState.errorEmitted?process.nextTick(n,f):(f._writableState.errorEmitted=!0,process.nextTick(e,f,c)):process.nextTick(e,f,c):s?(process.nextTick(n,f),s(c)):process.nextTick(n,f)}),this)}function e(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var f=o._readableState,u=o._writableState;f&&f.autoDestroy||u&&u.autoDestroy?o.destroy(s):o.emit("error",s)}return op={destroy:t,undestroy:r,errorOrDestroy:a},op}var sp={},QE;function jo(){if(QE)return sp;QE=1;function t(s,f){s.prototype=Object.create(f.prototype),s.prototype.constructor=s,s.__proto__=f}var e={};function n(s,f,u){u||(u=Error);function l(h,d,g){return typeof f=="string"?f:f(h,d,g)}var c=function(h){t(d,h);function d(g,b,y){return h.call(this,l(g,b,y))||this}return d}(u);c.prototype.name=u.name,c.prototype.code=s,e[s]=c}function r(s,f){if(Array.isArray(s)){var u=s.length;return s=s.map(function(l){return String(l)}),u>2?"one of ".concat(f," ").concat(s.slice(0,u-1).join(", "),", or ")+s[u-1]:u===2?"one of ".concat(f," ").concat(s[0]," or ").concat(s[1]):"of ".concat(f," ").concat(s[0])}else return"of ".concat(f," ").concat(String(s))}function i(s,f,u){return s.substr(!u||u<0?0:+u,f.length)===f}function a(s,f,u){return(u===void 0||u>s.length)&&(u=s.length),s.substring(u-f.length,u)===f}function o(s,f,u){return typeof u!="number"&&(u=0),u+f.length>s.length?!1:s.indexOf(f,u)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,f){return'The value "'+f+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,f,u){var l;typeof f=="string"&&i(f,"not ")?(l="must not be",f=f.replace(/^not /,"")):l="must be";var c;if(a(s," argument"))c="The ".concat(s," ").concat(l," ").concat(r(f,"type"));else{var h=o(s,".")?"property":"argument";c='The "'.concat(s,'" ').concat(h," ").concat(l," ").concat(r(f,"type"))}return c+=". Received type ".concat(typeof u),c},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),sp.codes=e,sp}var up,VE;function qE(){if(VE)return up;VE=1;var t=jo().codes.ERR_INVALID_OPT_VALUE;function e(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=e(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var f=o?a:"highWaterMark";throw new t(f,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return up={getHighWaterMark:n},up}var fp,ZE;function cP(){if(ZE)return fp;ZE=1,fp=t;function t(n,r){if(e("noDeprecation"))return n;var i=!1;function a(){if(!i){if(e("throwDeprecation"))throw new Error(r);e("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function e(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return fp}var lp,YE;function WE(){if(YE)return lp;YE=1,lp=R;function t(z){var O=this;this.next=null,this.entry=null,this.finish=function(){gr(O,z)}}var e;R.WritableState=N;var n={deprecate:cP()},r=PE(),i=bt.Buffer,a=globalThis.Uint8Array||function(){};function o(z){return i.from(z)}function s(z){return i.isBuffer(z)||z instanceof a}var f=HE(),u=qE(),l=u.getHighWaterMark,c=jo().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,g=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,w=c.ERR_STREAM_NULL_VALUES,E=c.ERR_STREAM_WRITE_AFTER_END,_=c.ERR_UNKNOWN_ENCODING,D=f.errorOrDestroy;Uo(R,r);function T(){}function N(z,O,q){e=e||Go(),z=z||{},typeof q!="boolean"&&(q=O instanceof e),this.objectMode=!!z.objectMode,q&&(this.objectMode=this.objectMode||!!z.writableObjectMode),this.highWaterMark=l(this,z,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Q=z.decodeStrings===!1;this.decodeStrings=!Q,this.defaultEncoding=z.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(X){Se(O,X)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=z.emitClose!==!1,this.autoDestroy=!!z.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new t(this)}N.prototype.getBuffer=function(){for(var O=this.bufferedRequest,q=[];O;)q.push(O),O=O.next;return q},function(){try{Object.defineProperty(N.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var M;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(O){return M.call(this,O)?!0:this!==R?!1:O&&O._writableState instanceof N}})):M=function(O){return O instanceof this};function R(z){e=e||Go();var O=this instanceof e;if(!O&&!M.call(R,this))return new R(z);this._writableState=new N(z,this,O),this.writable=!0,z&&(typeof z.write=="function"&&(this._write=z.write),typeof z.writev=="function"&&(this._writev=z.writev),typeof z.destroy=="function"&&(this._destroy=z.destroy),typeof z.final=="function"&&(this._final=z.final)),r.call(this)}R.prototype.pipe=function(){D(this,new b)};function C(z,O){var q=new E;D(z,q),process.nextTick(O,q)}function k(z,O,q,Q){var X;return q===null?X=new w:typeof q!="string"&&!O.objectMode&&(X=new h("chunk",["string","Buffer"],q)),X?(D(z,X),process.nextTick(Q,X),!1):!0}R.prototype.write=function(z,O,q){var Q=this._writableState,X=!1,S=!Q.objectMode&&s(z);return S&&!i.isBuffer(z)&&(z=o(z)),typeof O=="function"&&(q=O,O=null),S?O="buffer":O||(O=Q.defaultEncoding),typeof q!="function"&&(q=T),Q.ending?C(this,q):(S||k(this,Q,z,q))&&(Q.pendingcb++,X=ee(this,Q,S,z,O,q)),X},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var z=this._writableState;z.corked&&(z.corked--,!z.writing&&!z.corked&&!z.bufferProcessing&&z.bufferedRequest&&et(this,z))},R.prototype.setDefaultEncoding=function(O){if(typeof O=="string"&&(O=O.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((O+"").toLowerCase())>-1))throw new _(O);return this._writableState.defaultEncoding=O,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function L(z,O,q){return!z.objectMode&&z.decodeStrings!==!1&&typeof O=="string"&&(O=i.from(O,q)),O}Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ee(z,O,q,Q,X,S){if(!q){var v=L(O,Q,X);Q!==v&&(q=!0,X="buffer",Q=v)}var G=O.objectMode?1:Q.length;O.length+=G;var V=O.length<O.highWaterMark;if(V||(O.needDrain=!0),O.writing||O.corked){var le=O.lastBufferedRequest;O.lastBufferedRequest={chunk:Q,encoding:X,isBuf:q,callback:S,next:null},le?le.next=O.lastBufferedRequest:O.bufferedRequest=O.lastBufferedRequest,O.bufferedRequestCount+=1}else ne(z,O,!1,G,Q,X,S);return V}function ne(z,O,q,Q,X,S,v){O.writelen=Q,O.writecb=v,O.writing=!0,O.sync=!0,O.destroyed?O.onwrite(new y("write")):q?z._writev(X,O.onwrite):z._write(X,S,O.onwrite),O.sync=!1}function J(z,O,q,Q,X){--O.pendingcb,q?(process.nextTick(X,Q),process.nextTick(Zt,z,O),z._writableState.errorEmitted=!0,D(z,Q)):(X(Q),z._writableState.errorEmitted=!0,D(z,Q),Zt(z,O))}function be(z){z.writing=!1,z.writecb=null,z.length-=z.writelen,z.writelen=0}function Se(z,O){var q=z._writableState,Q=q.sync,X=q.writecb;if(typeof X!="function")throw new g;if(be(q),O)J(z,q,Q,O,X);else{var S=dr(q)||z.destroyed;!S&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&et(z,q),Q?process.nextTick(Te,z,q,S,X):Te(z,q,S,X)}}function Te(z,O,q,Q){q||it(z,O),O.pendingcb--,Q(),Zt(z,O)}function it(z,O){O.length===0&&O.needDrain&&(O.needDrain=!1,z.emit("drain"))}function et(z,O){O.bufferProcessing=!0;var q=O.bufferedRequest;if(z._writev&&q&&q.next){var Q=O.bufferedRequestCount,X=new Array(Q),S=O.corkedRequestsFree;S.entry=q;for(var v=0,G=!0;q;)X[v]=q,q.isBuf||(G=!1),q=q.next,v+=1;X.allBuffers=G,ne(z,O,!0,O.length,X,"",S.finish),O.pendingcb++,O.lastBufferedRequest=null,S.next?(O.corkedRequestsFree=S.next,S.next=null):O.corkedRequestsFree=new t(O),O.bufferedRequestCount=0}else{for(;q;){var V=q.chunk,le=q.encoding,re=q.callback,ce=O.objectMode?1:V.length;if(ne(z,O,!1,ce,V,le,re),q=q.next,O.bufferedRequestCount--,O.writing)break}q===null&&(O.lastBufferedRequest=null)}O.bufferedRequest=q,O.bufferProcessing=!1}R.prototype._write=function(z,O,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(z,O,q){var Q=this._writableState;return typeof z=="function"?(q=z,z=null,O=null):typeof O=="function"&&(q=O,O=null),z!=null&&this.write(z,O),Q.corked&&(Q.corked=1,this.uncork()),Q.ending||Hn(this,Q,q),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function dr(z){return z.ending&&z.length===0&&z.bufferedRequest===null&&!z.finished&&!z.writing}function ke(z,O){z._final(function(q){O.pendingcb--,q&&D(z,q),O.prefinished=!0,z.emit("prefinish"),Zt(z,O)})}function Ye(z,O){!O.prefinished&&!O.finalCalled&&(typeof z._final=="function"&&!O.destroyed?(O.pendingcb++,O.finalCalled=!0,process.nextTick(ke,z,O)):(O.prefinished=!0,z.emit("prefinish")))}function Zt(z,O){var q=dr(O);if(q&&(Ye(z,O),O.pendingcb===0&&(O.finished=!0,z.emit("finish"),O.autoDestroy))){var Q=z._readableState;(!Q||Q.autoDestroy&&Q.endEmitted)&&z.destroy()}return q}function Hn(z,O,q){O.ending=!0,Zt(z,O),q&&(O.finished?process.nextTick(q):z.once("finish",q)),O.ended=!0,z.writable=!1}function gr(z,O,q){var Q=z.entry;for(z.entry=null;Q;){var X=Q.callback;O.pendingcb--,X(q),Q=Q.next}O.corkedRequestsFree.next=z}return Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(O){this._writableState&&(this._writableState.destroyed=O)}}),R.prototype.destroy=f.destroy,R.prototype._undestroy=f.undestroy,R.prototype._destroy=function(z,O){O(z)},lp}var cp,XE;function Go(){if(XE)return cp;XE=1;var t=Object.keys||function(u){var l=[];for(var c in u)l.push(c);return l};cp=o;var e=n3(),n=WE();Uo(o,e);for(var r=t(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(u){if(!(this instanceof o))return new o(u);e.call(this,u),n.call(this,u),this.allowHalfOpen=!0,u&&(u.readable===!1&&(this.readable=!1),u.writable===!1&&(this.writable=!1),u.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(f,this)}function f(u){u.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(l){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=l,this._writableState.destroyed=l)}}),cp}var hp={},dp={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(t,e){var n=bt,r=n.Buffer;function i(o,s){for(var f in o)s[f]=o[f]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(i(n,e),e.Buffer=a);function a(o,s,f){return r(o,s,f)}a.prototype=Object.create(r.prototype),i(r,a),a.from=function(o,s,f){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,f)},a.alloc=function(o,s,f){if(typeof o!="number")throw new TypeError("Argument must be a number");var u=r(o);return s!==void 0?typeof f=="string"?u.fill(s,f):u.fill(s):u.fill(0),u},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(dp,dp.exports);var hP=dp.exports,gp=hP.Buffer,$E=gp.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function dP(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function gP(t){var e=dP(t);if(typeof e!="string"&&(gp.isEncoding===$E||!$E(t)))throw new Error("Unknown encoding: "+t);return e||t}var pP=hp.StringDecoder=Yu;function Yu(t){this.encoding=gP(t);var e;switch(this.encoding){case"utf16le":this.text=vP,this.end=AP,e=4;break;case"utf8":this.fillLast=yP,e=4;break;case"base64":this.text=EP,this.end=SP,e=3;break;default:this.write=_P,this.end=CP;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=gp.allocUnsafe(e)}Yu.prototype.write=function(t){if(t.length===0)return"";var e,n;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<t.length?e?e+this.text(t,n):this.text(t,n):e||""},Yu.prototype.end=xP,Yu.prototype.text=wP,Yu.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function pp(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function mP(t,e,n){var r=e.length-1;if(r<n)return 0;var i=pp(e[r]);return i>=0?(i>0&&(t.lastNeed=i-1),i):--r<n||i===-2?0:(i=pp(e[r]),i>=0?(i>0&&(t.lastNeed=i-2),i):--r<n||i===-2?0:(i=pp(e[r]),i>=0?(i>0&&(i===2?i=0:t.lastNeed=i-3),i):0))}function bP(t,e,n){if((e[0]&192)!==128)return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"�"}}function yP(t){var e=this.lastTotal-this.lastNeed,n=bP(this,t);if(n!==void 0)return n;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function wP(t,e){var n=mP(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=n;var r=t.length-(n-this.lastNeed);return t.copy(this.lastChar,0,r),t.toString("utf8",e,r)}function xP(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e}function vP(t,e){if((t.length-e)%2===0){var n=t.toString("utf16le",e);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function AP(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,n)}return e}function EP(t,e){var n=(t.length-e)%3;return n===0?t.toString("base64",e):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-n))}function SP(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function _P(t){return t.toString(this.encoding)}function CP(t){return t&&t.length?this.write(t):""}var mp,KE;function bp(){if(KE)return mp;KE=1;var t=jo().codes.ERR_STREAM_PREMATURE_CLOSE;function e(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,f=new Array(s),u=0;u<s;u++)f[u]=arguments[u];a.apply(this,f)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=e(s||n);var f=o.readable||o.readable!==!1&&a.readable,u=o.writable||o.writable!==!1&&a.writable,l=function(){a.writable||h()},c=a._writableState&&a._writableState.finished,h=function(){u=!1,c=!0,f||s.call(a)},d=a._readableState&&a._readableState.endEmitted,g=function(){f=!1,d=!0,u||s.call(a)},b=function(_){s.call(a,_)},y=function(){var _;if(f&&!d)return(!a._readableState||!a._readableState.ended)&&(_=new t),s.call(a,_);if(u&&!c)return(!a._writableState||!a._writableState.ended)&&(_=new t),s.call(a,_)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):u&&!a._writableState&&(a.on("end",l),a.on("close",l)),a.on("end",g),a.on("finish",h),o.error!==!1&&a.on("error",b),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",l),a.removeListener("close",l),a.removeListener("finish",h),a.removeListener("end",g),a.removeListener("error",b),a.removeListener("close",y)}}return mp=i,mp}var yp,JE;function DP(){if(JE)return yp;JE=1;var t;function e(w,E,_){return E in w?Object.defineProperty(w,E,{value:_,enumerable:!0,configurable:!0,writable:!0}):w[E]=_,w}var n=bp(),r=Symbol("lastResolve"),i=Symbol("lastReject"),a=Symbol("error"),o=Symbol("ended"),s=Symbol("lastPromise"),f=Symbol("handlePromise"),u=Symbol("stream");function l(w,E){return{value:w,done:E}}function c(w){var E=w[r];if(E!==null){var _=w[u].read();_!==null&&(w[s]=null,w[r]=null,w[i]=null,E(l(_,!1)))}}function h(w){process.nextTick(c,w)}function d(w,E){return function(_,D){w.then(function(){if(E[o]){_(l(void 0,!0));return}E[f](_,D)},D)}}var g=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((t={get stream(){return this[u]},next:function(){var E=this,_=this[a];if(_!==null)return Promise.reject(_);if(this[o])return Promise.resolve(l(void 0,!0));if(this[u].destroyed)return new Promise(function(M,R){process.nextTick(function(){E[a]?R(E[a]):M(l(void 0,!0))})});var D=this[s],T;if(D)T=new Promise(d(D,this));else{var N=this[u].read();if(N!==null)return Promise.resolve(l(N,!1));T=new Promise(this[f])}return this[s]=T,T}},e(t,Symbol.asyncIterator,function(){return this}),e(t,"return",function(){var E=this;return new Promise(function(_,D){E[u].destroy(null,function(T){if(T){D(T);return}_(l(void 0,!0))})})}),t),g),y=function(E){var _,D=Object.create(b,(_={},e(_,u,{value:E,writable:!0}),e(_,r,{value:null,writable:!0}),e(_,i,{value:null,writable:!0}),e(_,a,{value:null,writable:!0}),e(_,o,{value:E._readableState.endEmitted,writable:!0}),e(_,f,{value:function(N,M){var R=D[u].read();R?(D[s]=null,D[r]=null,D[i]=null,N(l(R,!1))):(D[r]=N,D[i]=M)},writable:!0}),_));return D[s]=null,n(E,function(T){if(T&&T.code!=="ERR_STREAM_PREMATURE_CLOSE"){var N=D[i];N!==null&&(D[s]=null,D[r]=null,D[i]=null,N(T)),D[a]=T;return}var M=D[r];M!==null&&(D[s]=null,D[r]=null,D[i]=null,M(l(void 0,!0))),D[o]=!0}),E.on("readable",h.bind(null,D)),D};return yp=y,yp}var wp,e3;function IP(){return e3||(e3=1,wp=function(){throw new Error("Readable.from is not available in the browser")}),wp}var xp,t3;function n3(){if(t3)return xp;t3=1,xp=C;var t;C.ReadableState=R,np.EventEmitter;var e=function(v,G){return v.listeners(G).length},n=PE(),r=bt.Buffer,i=globalThis.Uint8Array||function(){};function a(S){return r.from(S)}function o(S){return r.isBuffer(S)||S instanceof i}var s=UE,f;s&&s.debuglog?f=s.debuglog("stream"):f=function(){};var u=lP(),l=HE(),c=qE(),h=c.getHighWaterMark,d=jo().codes,g=d.ERR_INVALID_ARG_TYPE,b=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,E,_,D;Uo(C,n);var T=l.errorOrDestroy,N=["error","close","destroy","pause","resume"];function M(S,v,G){if(typeof S.prependListener=="function")return S.prependListener(v,G);!S._events||!S._events[v]?S.on(v,G):Array.isArray(S._events[v])?S._events[v].unshift(G):S._events[v]=[G,S._events[v]]}function R(S,v,G){t=t||Go(),S=S||{},typeof G!="boolean"&&(G=v instanceof t),this.objectMode=!!S.objectMode,G&&(this.objectMode=this.objectMode||!!S.readableObjectMode),this.highWaterMark=h(this,S,"readableHighWaterMark",G),this.buffer=new u,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=S.emitClose!==!1,this.autoDestroy=!!S.autoDestroy,this.destroyed=!1,this.defaultEncoding=S.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,S.encoding&&(E||(E=hp.StringDecoder),this.decoder=new E(S.encoding),this.encoding=S.encoding)}function C(S){if(t=t||Go(),!(this instanceof C))return new C(S);var v=this instanceof t;this._readableState=new R(S,this,v),this.readable=!0,S&&(typeof S.read=="function"&&(this._read=S.read),typeof S.destroy=="function"&&(this._destroy=S.destroy)),n.call(this)}Object.defineProperty(C.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(v){this._readableState&&(this._readableState.destroyed=v)}}),C.prototype.destroy=l.destroy,C.prototype._undestroy=l.undestroy,C.prototype._destroy=function(S,v){v(S)},C.prototype.push=function(S,v){var G=this._readableState,V;return G.objectMode?V=!0:typeof S=="string"&&(v=v||G.defaultEncoding,v!==G.encoding&&(S=r.from(S,v),v=""),V=!0),k(this,S,v,!1,V)},C.prototype.unshift=function(S){return k(this,S,null,!0,!1)};function k(S,v,G,V,le){f("readableAddChunk",v);var re=S._readableState;if(v===null)re.reading=!1,Se(S,re);else{var ce;if(le||(ce=ee(re,v)),ce)T(S,ce);else if(re.objectMode||v&&v.length>0)if(typeof v!="string"&&!re.objectMode&&Object.getPrototypeOf(v)!==r.prototype&&(v=a(v)),V)re.endEmitted?T(S,new w):L(S,re,v,!0);else if(re.ended)T(S,new b);else{if(re.destroyed)return!1;re.reading=!1,re.decoder&&!G?(v=re.decoder.write(v),re.objectMode||v.length!==0?L(S,re,v,!1):et(S,re)):L(S,re,v,!1)}else V||(re.reading=!1,et(S,re))}return!re.ended&&(re.length<re.highWaterMark||re.length===0)}function L(S,v,G,V){v.flowing&&v.length===0&&!v.sync?(v.awaitDrain=0,S.emit("data",G)):(v.length+=v.objectMode?1:G.length,V?v.buffer.unshift(G):v.buffer.push(G),v.needReadable&&Te(S)),et(S,v)}function ee(S,v){var G;return!o(v)&&typeof v!="string"&&v!==void 0&&!S.objectMode&&(G=new g("chunk",["string","Buffer","Uint8Array"],v)),G}C.prototype.isPaused=function(){return this._readableState.flowing===!1},C.prototype.setEncoding=function(S){E||(E=hp.StringDecoder);var v=new E(S);this._readableState.decoder=v,this._readableState.encoding=this._readableState.decoder.encoding;for(var G=this._readableState.buffer.head,V="";G!==null;)V+=v.write(G.data),G=G.next;return this._readableState.buffer.clear(),V!==""&&this._readableState.buffer.push(V),this._readableState.length=V.length,this};var ne=1073741824;function J(S){return S>=ne?S=ne:(S--,S|=S>>>1,S|=S>>>2,S|=S>>>4,S|=S>>>8,S|=S>>>16,S++),S}function be(S,v){return S<=0||v.length===0&&v.ended?0:v.objectMode?1:S!==S?v.flowing&&v.length?v.buffer.head.data.length:v.length:(S>v.highWaterMark&&(v.highWaterMark=J(S)),S<=v.length?S:v.ended?v.length:(v.needReadable=!0,0))}C.prototype.read=function(S){f("read",S),S=parseInt(S,10);var v=this._readableState,G=S;if(S!==0&&(v.emittedReadable=!1),S===0&&v.needReadable&&((v.highWaterMark!==0?v.length>=v.highWaterMark:v.length>0)||v.ended))return f("read: emitReadable",v.length,v.ended),v.length===0&&v.ended?q(this):Te(this),null;if(S=be(S,v),S===0&&v.ended)return v.length===0&&q(this),null;var V=v.needReadable;f("need readable",V),(v.length===0||v.length-S<v.highWaterMark)&&(V=!0,f("length less than watermark",V)),v.ended||v.reading?(V=!1,f("reading or ended",V)):V&&(f("do read"),v.reading=!0,v.sync=!0,v.length===0&&(v.needReadable=!0),this._read(v.highWaterMark),v.sync=!1,v.reading||(S=be(G,v)));var le;return S>0?le=O(S,v):le=null,le===null?(v.needReadable=v.length<=v.highWaterMark,S=0):(v.length-=S,v.awaitDrain=0),v.length===0&&(v.ended||(v.needReadable=!0),G!==S&&v.ended&&q(this)),le!==null&&this.emit("data",le),le};function Se(S,v){if(f("onEofChunk"),!v.ended){if(v.decoder){var G=v.decoder.end();G&&G.length&&(v.buffer.push(G),v.length+=v.objectMode?1:G.length)}v.ended=!0,v.sync?Te(S):(v.needReadable=!1,v.emittedReadable||(v.emittedReadable=!0,it(S)))}}function Te(S){var v=S._readableState;f("emitReadable",v.needReadable,v.emittedReadable),v.needReadable=!1,v.emittedReadable||(f("emitReadable",v.flowing),v.emittedReadable=!0,process.nextTick(it,S))}function it(S){var v=S._readableState;f("emitReadable_",v.destroyed,v.length,v.ended),!v.destroyed&&(v.length||v.ended)&&(S.emit("readable"),v.emittedReadable=!1),v.needReadable=!v.flowing&&!v.ended&&v.length<=v.highWaterMark,z(S)}function et(S,v){v.readingMore||(v.readingMore=!0,process.nextTick(dr,S,v))}function dr(S,v){for(;!v.reading&&!v.ended&&(v.length<v.highWaterMark||v.flowing&&v.length===0);){var G=v.length;if(f("maybeReadMore read 0"),S.read(0),G===v.length)break}v.readingMore=!1}C.prototype._read=function(S){T(this,new y("_read()"))},C.prototype.pipe=function(S,v){var G=this,V=this._readableState;switch(V.pipesCount){case 0:V.pipes=S;break;case 1:V.pipes=[V.pipes,S];break;default:V.pipes.push(S);break}V.pipesCount+=1,f("pipe count=%d opts=%j",V.pipesCount,v);var le=(!v||v.end!==!1)&&S!==process.stdout&&S!==process.stderr,re=le?Yt:pr;V.endEmitted?process.nextTick(re):G.once("end",re),S.on("unpipe",ce);function ce(x,p){f("onunpipe"),x===G&&p&&p.hasUnpiped===!1&&(p.hasUnpiped=!0,_i())}function Yt(){f("onend"),S.end()}var Ei=ke(G);S.on("drain",Ei);var Si=!1;function _i(){f("cleanup"),S.removeListener("close",Ci),S.removeListener("finish",Wt),S.removeListener("drain",Ei),S.removeListener("error",Or),S.removeListener("unpipe",ce),G.removeListener("end",Yt),G.removeListener("end",pr),G.removeListener("data",Dt),Si=!0,V.awaitDrain&&(!S._writableState||S._writableState.needDrain)&&Ei()}G.on("data",Dt);function Dt(x){f("ondata");var p=S.write(x);f("dest.write",p),p===!1&&((V.pipesCount===1&&V.pipes===S||V.pipesCount>1&&X(V.pipes,S)!==-1)&&!Si&&(f("false write response, pause",V.awaitDrain),V.awaitDrain++),G.pause())}function Or(x){f("onerror",x),pr(),S.removeListener("error",Or),e(S,"error")===0&&T(S,x)}M(S,"error",Or);function Ci(){S.removeListener("finish",Wt),pr()}S.once("close",Ci);function Wt(){f("onfinish"),S.removeListener("close",Ci),pr()}S.once("finish",Wt);function pr(){f("unpipe"),G.unpipe(S)}return S.emit("pipe",G),V.flowing||(f("pipe resume"),G.resume()),S};function ke(S){return function(){var G=S._readableState;f("pipeOnDrain",G.awaitDrain),G.awaitDrain&&G.awaitDrain--,G.awaitDrain===0&&e(S,"data")&&(G.flowing=!0,z(S))}}C.prototype.unpipe=function(S){var v=this._readableState,G={hasUnpiped:!1};if(v.pipesCount===0)return this;if(v.pipesCount===1)return S&&S!==v.pipes?this:(S||(S=v.pipes),v.pipes=null,v.pipesCount=0,v.flowing=!1,S&&S.emit("unpipe",this,G),this);if(!S){var V=v.pipes,le=v.pipesCount;v.pipes=null,v.pipesCount=0,v.flowing=!1;for(var re=0;re<le;re++)V[re].emit("unpipe",this,{hasUnpiped:!1});return this}var ce=X(v.pipes,S);return ce===-1?this:(v.pipes.splice(ce,1),v.pipesCount-=1,v.pipesCount===1&&(v.pipes=v.pipes[0]),S.emit("unpipe",this,G),this)},C.prototype.on=function(S,v){var G=n.prototype.on.call(this,S,v),V=this._readableState;return S==="data"?(V.readableListening=this.listenerCount("readable")>0,V.flowing!==!1&&this.resume()):S==="readable"&&!V.endEmitted&&!V.readableListening&&(V.readableListening=V.needReadable=!0,V.flowing=!1,V.emittedReadable=!1,f("on readable",V.length,V.reading),V.length?Te(this):V.reading||process.nextTick(Zt,this)),G},C.prototype.addListener=C.prototype.on,C.prototype.removeListener=function(S,v){var G=n.prototype.removeListener.call(this,S,v);return S==="readable"&&process.nextTick(Ye,this),G},C.prototype.removeAllListeners=function(S){var v=n.prototype.removeAllListeners.apply(this,arguments);return(S==="readable"||S===void 0)&&process.nextTick(Ye,this),v};function Ye(S){var v=S._readableState;v.readableListening=S.listenerCount("readable")>0,v.resumeScheduled&&!v.paused?v.flowing=!0:S.listenerCount("data")>0&&S.resume()}function Zt(S){f("readable nexttick read 0"),S.read(0)}C.prototype.resume=function(){var S=this._readableState;return S.flowing||(f("resume"),S.flowing=!S.readableListening,Hn(this,S)),S.paused=!1,this};function Hn(S,v){v.resumeScheduled||(v.resumeScheduled=!0,process.nextTick(gr,S,v))}function gr(S,v){f("resume",v.reading),v.reading||S.read(0),v.resumeScheduled=!1,S.emit("resume"),z(S),v.flowing&&!v.reading&&S.read(0)}C.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function z(S){var v=S._readableState;for(f("flow",v.flowing);v.flowing&&S.read()!==null;);}C.prototype.wrap=function(S){var v=this,G=this._readableState,V=!1;S.on("end",function(){if(f("wrapped end"),G.decoder&&!G.ended){var ce=G.decoder.end();ce&&ce.length&&v.push(ce)}v.push(null)}),S.on("data",function(ce){if(f("wrapped data"),G.decoder&&(ce=G.decoder.write(ce)),!(G.objectMode&&ce==null)&&!(!G.objectMode&&(!ce||!ce.length))){var Yt=v.push(ce);Yt||(V=!0,S.pause())}});for(var le in S)this[le]===void 0&&typeof S[le]=="function"&&(this[le]=function(Yt){return function(){return S[Yt].apply(S,arguments)}}(le));for(var re=0;re<N.length;re++)S.on(N[re],this.emit.bind(this,N[re]));return this._read=function(ce){f("wrapped _read",ce),V&&(V=!1,S.resume())},this},typeof Symbol=="function"&&(C.prototype[Symbol.asyncIterator]=function(){return _===void 0&&(_=DP()),_(this)}),Object.defineProperty(C.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(C.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(C.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(v){this._readableState&&(this._readableState.flowing=v)}}),C._fromList=O,Object.defineProperty(C.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function O(S,v){if(v.length===0)return null;var G;return v.objectMode?G=v.buffer.shift():!S||S>=v.length?(v.decoder?G=v.buffer.join(""):v.buffer.length===1?G=v.buffer.first():G=v.buffer.concat(v.length),v.buffer.clear()):G=v.buffer.consume(S,v.decoder),G}function q(S){var v=S._readableState;f("endReadable",v.endEmitted),v.endEmitted||(v.ended=!0,process.nextTick(Q,v,S))}function Q(S,v){if(f("endReadableNT",S.endEmitted,S.length),!S.endEmitted&&S.length===0&&(S.endEmitted=!0,v.readable=!1,v.emit("end"),S.autoDestroy)){var G=v._writableState;(!G||G.autoDestroy&&G.finished)&&v.destroy()}}typeof Symbol=="function"&&(C.from=function(S,v){return D===void 0&&(D=IP()),D(C,S,v)});function X(S,v){for(var G=0,V=S.length;G<V;G++)if(S[G]===v)return G;return-1}return xp}var vp,r3;function i3(){if(r3)return vp;r3=1,vp=s;var t=jo().codes,e=t.ERR_METHOD_NOT_IMPLEMENTED,n=t.ERR_MULTIPLE_CALLBACK,r=t.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=t.ERR_TRANSFORM_WITH_LENGTH_0,a=Go();Uo(s,a);function o(l,c){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,c!=null&&this.push(c),d(l);var g=this._readableState;g.reading=!1,(g.needReadable||g.length<g.highWaterMark)&&this._read(g.highWaterMark)}function s(l){if(!(this instanceof s))return new s(l);a.call(this,l),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,l&&(typeof l.transform=="function"&&(this._transform=l.transform),typeof l.flush=="function"&&(this._flush=l.flush)),this.on("prefinish",f)}function f(){var l=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(c,h){u(l,c,h)}):u(this,null,null)}s.prototype.push=function(l,c){return this._transformState.needTransform=!1,a.prototype.push.call(this,l,c)},s.prototype._transform=function(l,c,h){h(new e("_transform()"))},s.prototype._write=function(l,c,h){var d=this._transformState;if(d.writecb=h,d.writechunk=l,d.writeencoding=c,!d.transforming){var g=this._readableState;(d.needTransform||g.needReadable||g.length<g.highWaterMark)&&this._read(g.highWaterMark)}},s.prototype._read=function(l){var c=this._transformState;c.writechunk!==null&&!c.transforming?(c.transforming=!0,this._transform(c.writechunk,c.writeencoding,c.afterTransform)):c.needTransform=!0},s.prototype._destroy=function(l,c){a.prototype._destroy.call(this,l,function(h){c(h)})};function u(l,c,h){if(c)return l.emit("error",c);if(h!=null&&l.push(h),l._writableState.length)throw new i;if(l._transformState.transforming)throw new r;return l.push(null)}return vp}var Ap,a3;function MP(){if(a3)return Ap;a3=1,Ap=e;var t=i3();Uo(e,t);function e(n){if(!(this instanceof e))return new e(n);t.call(this,n)}return e.prototype._transform=function(n,r,i){i(null,n)},Ap}var Ep,o3;function TP(){if(o3)return Ep;o3=1;var t;function e(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=jo().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,g,b){b=e(b);var y=!1;h.on("close",function(){y=!0}),t===void 0&&(t=bp()),t(h,{readable:d,writable:g},function(E){if(E)return b(E);y=!0,b()});var w=!1;return function(E){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();b(E||new i("pipe"))}}}function f(h){h()}function u(h,d){return h.pipe(d)}function l(h){return!h.length||typeof h[h.length-1]!="function"?a:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),g=0;g<h;g++)d[g]=arguments[g];var b=l(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(E,_){var D=_<d.length-1,T=_>0;return s(E,D,T,function(N){y||(y=N),N&&w.forEach(f),!D&&(w.forEach(f),b(y))})});return d.reduce(u)}return Ep=c,Ep}var s3=An,Sp=np.EventEmitter,NP=Uo;NP(An,Sp),An.Readable=n3(),An.Writable=WE(),An.Duplex=Go(),An.Transform=i3(),An.PassThrough=MP(),An.finished=bp(),An.pipeline=TP(),An.Stream=An;function An(){Sp.call(this)}An.prototype.pipe=function(t,e){var n=this;function r(l){t.writable&&t.write(l)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}t.on("drain",i),!t._isStdio&&(!e||e.end!==!1)&&(n.on("end",o),n.on("close",s));var a=!1;function o(){a||(a=!0,t.end())}function s(){a||(a=!0,typeof t.destroy=="function"&&t.destroy())}function f(l){if(u(),Sp.listenerCount(this,"error")===0)throw l}n.on("error",f),t.on("error",f);function u(){n.removeListener("data",r),t.removeListener("drain",i),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",f),t.removeListener("error",f),n.removeListener("end",u),n.removeListener("close",u),t.removeListener("close",u)}return n.on("end",u),n.on("close",u),t.on("close",u),t.emit("pipe",n),t};function Wu(t){return t.replace(/%([0-9A-Fa-f]{2})/g,(e,n)=>String.fromCharCode(parseInt(n,16)))}function u3(t,e){return String(e).replace(t,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Xu(t){return u3(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,t)}function Nr(t){return u3(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,t)}function f3(t){if(!(t&&t.length)||t===".")return{};const e={};return t.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=e[r[0].trim()];i||(i=[],e[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(Wu))}),e}function l3(t){const e=t.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:e[0]&&Wu(e[0]),source:e[1]&&Wu(e[1]),type:e[2]&&Wu(e[2]),start:e[3]===null?null:parseInt(e[3],10),end:e[4]===null?null:parseInt(e[4],10),score:e[5]===null?null:parseFloat(e[5]),strand:e[6],phase:e[7],attributes:e[8]===null?null:f3(e[8])}}function c3(t){const e=/^\s*##\s*(\S+)\s*(.*)/.exec(t);if(!e)return null;const[,n]=e;let[,,r]=e;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function h3(t){const e=[];return Object.entries(t).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Xu(r.toString()):Array.isArray(r)?i=r.map(Xu).join(","):i=Xu(r),e.push(`${Xu(n)}=${i}`)}),e.length?e.join(";"):"."}function FP(t,e){const n=t.attributes===null||t.attributes===void 0?".":h3(t.attributes),i=`${[t.seq_id===null?".":Nr(t.seq_id),t.source===null?".":Nr(t.source),t.type===null?".":Nr(t.type),t.start===null?".":Nr(t.start),t.end===null?".":Nr(t.end),t.score===null?".":Nr(t.score),t.strand===null?".":Nr(t.strand),t.phase===null?".":Nr(t.phase),n].join(" ")}
|
|
339
339
|
`;return e[i]?"":(e[i]=!0,i)}function Ic(t,e){if(Array.isArray(t))return t.map(r=>Ic(r,e)).join("");const n=[FP(t,e)];return BP(t)&&n.push(...t.child_features.map(r=>Ic(r,e)),...t.derived_features.map(r=>Ic(r,e))),n.join("")}function d3(t){return Ic(t,{})}function g3(t){let e=`##${t.directive}`;return t.value&&(e+=` ${t.value}`),e+=`
|
|
340
340
|
`,e}function p3(t){return`# ${t.comment}
|
|
341
|
-
`}function
|
|
341
|
+
`}function _p(t){return`>${t.id}${t.description?` ${t.description}`:""}
|
|
342
342
|
${t.sequence}
|
|
343
|
-
`}function Mc(t){function e(n){return"attributes"in n?d3(n):"directive"in n?g3(n):"sequence"in n?
|
|
344
|
-
`}return Array.isArray(t)?t.map(e):e(t)}function BP(t){return t.child_features!==void 0&&t.derived_features!==void 0}const kP=Object.freeze(Object.defineProperty({__proto__:null,escape:Xu,escapeColumn:Nr,formatAttributes:h3,formatComment:p3,formatDirective:g3,formatFeature:d3,formatItem:Mc,formatSequence:
|
|
345
|
-
`,r+=n.map(
|
|
343
|
+
`}function Mc(t){function e(n){return"attributes"in n?d3(n):"directive"in n?g3(n):"sequence"in n?_p(n):"comment"in n?p3(n):`# (invalid item found during format)
|
|
344
|
+
`}return Array.isArray(t)?t.map(e):e(t)}function BP(t){return t.child_features!==void 0&&t.derived_features!==void 0}const kP=Object.freeze(Object.defineProperty({__proto__:null,escape:Xu,escapeColumn:Nr,formatAttributes:h3,formatComment:p3,formatDirective:g3,formatFeature:d3,formatItem:Mc,formatSequence:_p,parseAttributes:f3,parseDirective:c3,parseFeature:l3,unescape:Wu},Symbol.toStringTag,{value:"Module"})),m3={Parent:"child_features",Derives_from:"derived_features"};class b3{constructor(e){this.seqCallback=e,this.currentSequence=void 0}addLine(e){const n=/^>\s*(\S+)\s*(.*)/.exec(e);n?(this._flush(),this.currentSequence={id:n[1],sequence:""},n[2]&&(this.currentSequence.description=n[2].trim())):this.currentSequence&&/\S/.test(e)&&(this.currentSequence.sequence+=e.replace(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class y3{constructor(e){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const n=()=>{};this.featureCallback=e.featureCallback||n,this.endCallback=e.endCallback||n,this.commentCallback=e.commentCallback||n,this.errorCallback=e.errorCallback||n,this.directiveCallback=e.directiveCallback||n,this.sequenceCallback=e.sequenceCallback||n,this.disableDerivesFromReferences=e.disableDerivesFromReferences||!1,this.bufferSize=e.bufferSize===void 0?1e3:e.bufferSize}addLine(e){if(this.fastaParser){this.fastaParser.addLine(e);return}if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(e)){this._bufferLine(e);return}const n=/^\s*(#+)(.*)/.exec(e);if(n){const[,r]=n;let[,,i]=n;if(r.length===3)this._emitAllUnderConstructionFeatures();else if(r.length===2){const a=c3(e);a&&(a.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new b3(this.sequenceCallback)):this._emitItem(a))}else i=i.replace(/\s*/,""),this._emitItem({comment:i})}else if(!/^\s*$/.test(e))if(/^\s*>/.test(e))this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new b3(this.sequenceCallback),this.fastaParser.addLine(e);else{const r=e.replace(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${r}'.`)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(e){Array.isArray(e)?this.featureCallback(e):"directive"in e?this.directiveCallback(e):"comment"in e&&this.commentCallback(e)}_enforceBufferSizeLimit(e=0){const n=r=>{r&&Array.isArray(r)&&r[0].attributes&&r[0].attributes.ID&&r[0].attributes.ID[0]&&(r[0].attributes.ID.forEach(a=>{delete this._underConstructionById[a],delete this._completedReferences[a]}),r.forEach(a=>{a.child_features&&a.child_features.forEach(o=>n(o)),a.derived_features&&a.derived_features.forEach(o=>n(o))}))};for(;this._underConstructionTopLevel.length+e>this.bufferSize;){const r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans)}`)}_bufferLine(e){var n,r,i;const o={...l3(e),child_features:[],derived_features:[]},s=((n=o.attributes)===null||n===void 0?void 0:n.ID)||[],f=((r=o.attributes)===null||r===void 0?void 0:r.Parent)||[],u=this.disableDerivesFromReferences?[]:((i=o.attributes)===null||i===void 0?void 0:i.Derives_from)||[];if(!s.length&&!f.length&&!u.length){this._emitItem([o]);return}let l;s.forEach(c=>{const h=this._underConstructionById[c];h?(h[h.length-1].type!==o.type&&this._parseError(`multi-line feature "${c}" has inconsistent types: "${o.type}", "${h[h.length-1].type}"`),h.push(o),l=h):(l=[o],this._enforceBufferSizeLimit(1),!f.length&&!u.length&&this._underConstructionTopLevel.push(l),this._underConstructionById[c]=l,this._resolveReferencesTo(l,c))}),this._resolveReferencesFrom(l||[o],{Parent:f,Derives_from:u},s)}_resolveReferencesTo(e,n){const r=this._underConstructionOrphans[n];r&&(e.forEach(i=>{i.child_features.push(...r.Parent)}),e.forEach(i=>{i.derived_features.push(...r.Derives_from)}),delete this._underConstructionOrphans[n])}_parseError(e){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${e}`)}_resolveReferencesFrom(e,n,r){function i(a,o,s){let f=a[o];f||(f={},a[o]=f);const u=f[s]||!1;return f[s]=!0,u}n.Parent.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=m3.Parent;r.filter(f=>i(this._completedReferences,f,`Parent,${a}`)).length||o.forEach(f=>{f[s].push(e)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Parent.push(e)}}),n.Derives_from.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=m3.Derives_from;r.filter(f=>i(this._completedReferences,f,`Derives_from,${a}`)).length||o.forEach(f=>{f[s].push(e)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Derives_from.push(e)}})}}function Cp(t){process&&process.nextTick?process.nextTick(t):t()}function w3(t){const e={encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3,disableDerivesFromReferences:!1,...t};return t.parseAll&&(e.parseFeatures=!0,e.parseDirectives=!0,e.parseComments=!0,e.parseSequences=!0),e}class LP extends s3.Transform{constructor(e={}){super({objectMode:!0}),this.textBuffer="";const n=w3(e);this.encoding=e.encoding||"utf8",this.decoder=new pP;const r=this.push.bind(this);this.parser=new y3({featureCallback:n.parseFeatures?r:void 0,directiveCallback:n.parseDirectives?r:void 0,commentCallback:n.parseComments?r:void 0,sequenceCallback:n.parseSequences?r:void 0,errorCallback:i=>this.emit("error",i),bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences})}_addLine(e){e&&this.parser.addLine(e)}_nextText(e){const n=(this.textBuffer+e).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach(r=>this._addLine(r))}_transform(e,n,r){this._nextText(this.decoder.write(e)),Cp(r)}_flush(e){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),Cp(e)}}function RP(t={}){return new LP(t)}function OP(t,e={}){if(!t)return[];const n=w3(e),r=[],i=r.push.bind(r),a=new y3({featureCallback:n.parseFeatures?i:void 0,directiveCallback:n.parseDirectives?i:void 0,commentCallback:n.parseComments?i:void 0,sequenceCallback:n.parseSequences?i:void 0,disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:1/0,errorCallback:o=>{throw o}});return t.split(/\r?\n/).forEach(a.addLine.bind(a)),a.finish(),r}function zP(t){const e=[],n=[];t.forEach(i=>{"sequence"in i?n.push(i):e.push(i)});let r=e.map(Mc).join("");return n.length&&(r+=`##FASTA
|
|
345
|
+
`,r+=n.map(_p).join("")),r}class x3 extends s3.Transform{constructor(e={}){super(Object.assign(e,{objectMode:!0})),this.linesSinceLastSyncMark=0,this.haveWeEmittedData=!1,this.fastaMode=!1,this.minLinesBetweenSyncMarks=e.minSyncLines||100,this.insertVersionDirective=e.insertVersionDirective||!1}_transform(e,n,r){let i;if(!this.haveWeEmittedData&&this.insertVersionDirective){const a=Array.isArray(e)?e[0]:e;"directive"in a&&a.directive!=="gff-version"&&this.push(`##gff-version 3
|
|
346
346
|
`)}if("sequence"in e&&!this.fastaMode&&(this.push(`##FASTA
|
|
347
347
|
`),this.fastaMode=!0),Array.isArray(e)?i=e.map(Mc).join(""):i=Mc(e),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
|
|
348
348
|
`),this.linesSinceLastSyncMark=0;else{let a=0;for(let o=0;o<i.length;o+=1)i[o]===`
|
|
349
|
-
`&&(a+=1);this.linesSinceLastSyncMark+=a}this.haveWeEmittedData=!0,_p(r)}}function PP(t={}){return new x3(t)}function UP(t,e,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,a)=>{t.pipe(new x3(r)).on("end",()=>i(null)).on("error",a).pipe(e)})}const jP={parseStream:RP,parseStringSync:OP,formatSync:zP,formatStream:PP,formatFile:UP,util:kP};function v3(t){if(t.greaterThan(Number.MAX_SAFE_INTEGER)||t.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return t.toNumber()}class GP extends Error{}function _a(t){if(t&&t.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const e=new GP("aborted");throw e.code="ERR_ABORTED",e}}}function HP(t,e){return e.minv.blockPosition-t.maxv.blockPosition<65e3&&e.maxv.blockPosition-t.minv.blockPosition<5e6}function A3(t,e){const n=[];let r=null;return t.length===0?t:(t.sort(function(i,a){const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),t.forEach(i=>{(!e||i.maxv.compareTo(e)>0)&&(r===null?(n.push(i),r=i):HP(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}var QP=ze,En=null;try{En=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function ze(t,e,n){this.low=t|0,this.high=e|0,this.unsigned=!!n}ze.prototype.__isLong__,Object.defineProperty(ze.prototype,"__isLong__",{value:!0});function Vt(t){return(t&&t.__isLong__)===!0}ze.isLong=Vt;var E3={},S3={};function Ca(t,e){var n,r,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(r=S3[t],r)?r:(n=Pe(t,(t|0)<0?-1:0,!0),i&&(S3[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(r=E3[t],r)?r:(n=Pe(t,t<0?-1:0,!1),i&&(E3[t]=n),n))}ze.fromInt=Ca;function Sn(t,e){if(isNaN(t))return e?Da:_n;if(e){if(t<0)return Da;if(t>=C3)return N3}else{if(t<=-D3)return qt;if(t+1>=D3)return T3}return t<0?Sn(-t,e).neg():Pe(t%Qo|0,t/Qo|0,e)}ze.fromNumber=Sn;function Pe(t,e,n){return new ze(t,e,n)}ze.fromBits=Pe;var Tc=Math.pow;function Cp(t,e,n){if(t.length===0)throw Error("empty string");if(t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return _n;if(typeof e=="number"?(n=e,e=!1):e=!!e,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Cp(t.substring(1),e,n).neg();for(var i=Sn(Tc(n,8)),a=_n,o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),f=parseInt(t.substring(o,o+s),n);if(s<8){var u=Sn(Tc(n,s));a=a.mul(u).add(Sn(f))}else a=a.mul(i),a=a.add(Sn(f))}return a.unsigned=e,a}ze.fromString=Cp;function Hn(t,e){return typeof t=="number"?Sn(t,e):typeof t=="string"?Cp(t,e):Pe(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}ze.fromValue=Hn;var _3=1<<16,VP=1<<24,Qo=_3*_3,C3=Qo*Qo,D3=C3/2,I3=Ca(VP),_n=Ca(0);ze.ZERO=_n;var Da=Ca(0,!0);ze.UZERO=Da;var Vo=Ca(1);ze.ONE=Vo;var M3=Ca(1,!0);ze.UONE=M3;var Dp=Ca(-1);ze.NEG_ONE=Dp;var T3=Pe(-1,2147483647,!1);ze.MAX_VALUE=T3;var N3=Pe(-1,-1,!0);ze.MAX_UNSIGNED_VALUE=N3;var qt=Pe(0,-2147483648,!1);ze.MIN_VALUE=qt;var W=ze.prototype;W.toInt=function(){return this.unsigned?this.low>>>0:this.low},W.toNumber=function(){return this.unsigned?(this.high>>>0)*Qo+(this.low>>>0):this.high*Qo+(this.low>>>0)},W.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(qt)){var n=Sn(e),r=this.div(n),i=r.mul(n).sub(this);return r.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var a=Sn(Tc(e,6),this.unsigned),o=this,s="";;){var f=o.div(a),u=o.sub(f.mul(a)).toInt()>>>0,l=u.toString(e);if(o=f,o.isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},W.getHighBits=function(){return this.high},W.getHighBitsUnsigned=function(){return this.high>>>0},W.getLowBits=function(){return this.low},W.getLowBitsUnsigned=function(){return this.low>>>0},W.getNumBitsAbs=function(){if(this.isNegative())return this.eq(qt)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,n=31;n>0&&!(e&1<<n);n--);return this.high!=0?n+33:n+1},W.isZero=function(){return this.high===0&&this.low===0},W.eqz=W.isZero,W.isNegative=function(){return!this.unsigned&&this.high<0},W.isPositive=function(){return this.unsigned||this.high>=0},W.isOdd=function(){return(this.low&1)===1},W.isEven=function(){return(this.low&1)===0},W.equals=function(e){return Vt(e)||(e=Hn(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low},W.eq=W.equals,W.notEquals=function(e){return!this.eq(e)},W.neq=W.notEquals,W.ne=W.notEquals,W.lessThan=function(e){return this.comp(e)<0},W.lt=W.lessThan,W.lessThanOrEqual=function(e){return this.comp(e)<=0},W.lte=W.lessThanOrEqual,W.le=W.lessThanOrEqual,W.greaterThan=function(e){return this.comp(e)>0},W.gt=W.greaterThan,W.greaterThanOrEqual=function(e){return this.comp(e)>=0},W.gte=W.greaterThanOrEqual,W.ge=W.greaterThanOrEqual,W.compare=function(e){if(Vt(e)||(e=Hn(e)),this.eq(e))return 0;var n=this.isNegative(),r=e.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},W.comp=W.compare,W.negate=function(){return!this.unsigned&&this.eq(qt)?qt:this.not().add(Vo)},W.neg=W.negate,W.add=function(e){Vt(e)||(e=Hn(e));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=e.high>>>16,s=e.high&65535,f=e.low>>>16,u=e.low&65535,l=0,c=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,l+=c>>>16,c&=65535,l+=n+o,l&=65535,Pe(h<<16|d,l<<16|c,this.unsigned)},W.subtract=function(e){return Vt(e)||(e=Hn(e)),this.add(e.neg())},W.sub=W.subtract,W.multiply=function(e){if(this.isZero())return _n;if(Vt(e)||(e=Hn(e)),En){var n=En.mul(this.low,this.high,e.low,e.high);return Pe(n,En.get_high(),this.unsigned)}if(e.isZero())return _n;if(this.eq(qt))return e.isOdd()?qt:_n;if(e.eq(qt))return this.isOdd()?qt:_n;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(I3)&&e.lt(I3))return Sn(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=e.high>>>16,f=e.high&65535,u=e.low>>>16,l=e.low&65535,c=0,h=0,d=0,g=0;return g+=o*l,d+=g>>>16,g&=65535,d+=a*l,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*l+i*u+a*f+o*s,c&=65535,Pe(d<<16|g,c<<16|h,this.unsigned)},W.mul=W.multiply,W.divide=function(e){if(Vt(e)||(e=Hn(e)),e.isZero())throw Error("division by zero");if(En){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var n=(this.unsigned?En.div_u:En.div_s)(this.low,this.high,e.low,e.high);return Pe(n,En.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Da:_n;var r,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Da;if(e.gt(this.shru(1)))return M3;a=Da}else{if(this.eq(qt)){if(e.eq(Vo)||e.eq(Dp))return qt;if(e.eq(qt))return Vo;var o=this.shr(1);return r=o.div(e).shl(1),r.eq(_n)?e.isNegative()?Vo:Dp:(i=this.sub(e.mul(r)),a=r.add(i.div(e)),a)}else if(e.eq(qt))return this.unsigned?Da:_n;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=_n}for(i=this;i.gte(e);){r=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:Tc(2,s-48),u=Sn(r),l=u.mul(e);l.isNegative()||l.gt(i);)r-=f,u=Sn(r,this.unsigned),l=u.mul(e);u.isZero()&&(u=Vo),a=a.add(u),i=i.sub(l)}return a},W.div=W.divide,W.modulo=function(e){if(Vt(e)||(e=Hn(e)),En){var n=(this.unsigned?En.rem_u:En.rem_s)(this.low,this.high,e.low,e.high);return Pe(n,En.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))},W.mod=W.modulo,W.rem=W.modulo,W.not=function(){return Pe(~this.low,~this.high,this.unsigned)},W.and=function(e){return Vt(e)||(e=Hn(e)),Pe(this.low&e.low,this.high&e.high,this.unsigned)},W.or=function(e){return Vt(e)||(e=Hn(e)),Pe(this.low|e.low,this.high|e.high,this.unsigned)},W.xor=function(e){return Vt(e)||(e=Hn(e)),Pe(this.low^e.low,this.high^e.high,this.unsigned)},W.shiftLeft=function(e){return Vt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Pe(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Pe(0,this.low<<e-32,this.unsigned)},W.shl=W.shiftLeft,W.shiftRight=function(e){return Vt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Pe(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Pe(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},W.shr=W.shiftRight,W.shiftRightUnsigned=function(e){if(Vt(e)&&(e=e.toInt()),e&=63,e===0)return this;var n=this.high;if(e<32){var r=this.low;return Pe(r>>>e|n<<32-e,n>>>e,this.unsigned)}else return e===32?Pe(n,0,this.unsigned):Pe(n>>>e-32,0,this.unsigned)},W.shru=W.shiftRightUnsigned,W.shr_u=W.shiftRightUnsigned,W.toSigned=function(){return this.unsigned?Pe(this.low,this.high,!1):this},W.toUnsigned=function(){return this.unsigned?this:Pe(this.low,this.high,!0)},W.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},W.toBytesLE=function(){var e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]},W.toBytesBE=function(){var e=this.high,n=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},ze.fromBytes=function(e,n,r){return r?ze.fromBytesLE(e,n):ze.fromBytesBE(e,n)},ze.fromBytesLE=function(e,n){return new ze(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,n)},ze.fromBytesBE=function(e,n){return new ze(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],n)};const F3=ia(QP);class Ip{constructor(e,n){this.blockPosition=e,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}static min(...e){let n,r=0;for(;!n;r+=1)n=e[r];for(;r<e.length;r+=1)n.compareTo(e[r])>0&&(n=e[r]);return n}}function qo(t,e=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new Ip(t[e+7]*1099511627776+t[e+6]*4294967296+t[e+5]*16777216+t[e+4]*65536+t[e+3]*256+t[e+2],t[e+1]<<8|t[e])}class Nc{constructor(e,n,r,i=void 0){this.minv=e,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(e){return this.minv.compareTo(e.minv)||this.maxv.compareTo(e.maxv)||this.bin-e.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+(1<<16)-this.minv.blockPosition}}class B3{constructor({filehandle:e,renameRefSeqs:n=r=>r}){this.filehandle=e,this.renameRefSeq=n}async getMetadata(e={}){const{indices:n,...r}=await this.parse(e);return r}_findFirstData(e,n){return e?e.compareTo(n)>0?n:e:n}async parse(e={}){return this.parseP||(this.parseP=this._parse(e).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(e,n={}){return!!((await this.parse(n)).indices[e]||{}).binIndex}}const qP=21578324,k3=14;function ZP(t,e){return t+=1,e-=1,[[0,0],[1+(t>>26),1+(e>>26)],[9+(t>>23),9+(e>>23)],[73+(t>>20),73+(e>>20)],[585+(t>>17),585+(e>>17)],[4681+(t>>14),4681+(e>>14)]]}class Mp extends B3{async lineCount(e,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[e];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(e={}){const n=await this.filehandle.readFile(e),r=await xo(n);if(_a(e.signal),r.readUInt32LE(0)!==qP)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",f={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!f)throw new Error(`invalid Tabix preset format flags ${a}`);const u={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},l=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),g=l?String.fromCharCode(l):null,b=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:E}=this._parseNameBytes(r.slice(36,36+y));let _=36+y,D;return{indices:new Array(i).fill(0).map(()=>{const N=r.readInt32LE(_);_+=4;const M={};let R;for(let L=0;L<N;L+=1){const ee=r.readUInt32LE(_);if(_+=4,ee>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ee===h+1){const ne=r.readInt32LE(_);_+=4,ne===2&&(R=this.parsePseudoBin(r,_)),_+=16*ne}else{const ne=r.readInt32LE(_);_+=4;const J=new Array(ne);for(let be=0;be<ne;be+=1){const Se=qo(r,_),Te=qo(r,_+8);_+=16,D=this._findFirstData(D,Se),J[be]=new Nc(Se,Te,ee)}M[ee]=J}}const C=r.readInt32LE(_);_+=4;const k=new Array(C);for(let L=0;L<C;L+=1)k[L]=qo(r,_),_+=8,D=this._findFirstData(D,k[L]);return{binIndex:M,linearIndex:k,stats:R}}),metaChar:g,maxBinNumber:h,maxRefLength:d,skipLines:b,firstDataLine:D,columnNumbers:u,coordinateType:o,format:f,refIdToName:E,refNameToId:w,maxBlockSize:1<<16}}parsePseudoBin(e,n){return{lineCount:v3(F3.fromBytesLE(e.slice(n+16,n+24),!0))}}_parseNameBytes(e){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[e],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>k3>=s.linearIndex.length?s.linearIndex.length-1:n>>k3]:new Ip(0,0))||console.warn("querying outside of possible tabix range");const u=ZP(n,r),l=[];for(const[b,y]of u)for(let w=b;w<=y;w++)if(s.binIndex[w]){const E=s.binIndex[w];for(let _=0;_<E.length;++_)l.push(new Nc(E[_].minv,E[_].maxv,w))}const c=s.linearIndex.length;let h=null;const d=Math.min(n>>14,c-1),g=Math.min(r>>14,c-1);for(let b=d;b<=g;++b){const y=s.linearIndex[b];y&&(!h||y.compareTo(h)<0)&&(h=y)}return A3(l,h)}}const YP=21582659,WP=38359875;function XP(t,e){return t*2**e}function L3(t,e){return Math.floor(t/2**e)}class R3 extends B3{constructor(e){super(e),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(e,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[e];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(e,n){const r=e.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:e.readInt32LE(n+4),start:e.readInt32LE(n+8),end:e.readInt32LE(n+12)},s=e.readInt32LE(n+16),f=s?String.fromCharCode(s):null,u=e.readInt32LE(n+20),l=e.readInt32LE(n+24),{refIdToName:c,refNameToId:h}=this._parseNameBytes(e.slice(n+28,n+28+l));return{refIdToName:c,refNameToId:h,skipLines:u,metaChar:f,columnNumbers:o,format:a,coordinateType:i}}_parseNameBytes(e){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(e={}){const n=await xo(await this.filehandle.readFile(e));let r;if(n.readUInt32LE(0)===YP)r=1;else if(n.readUInt32LE(0)===WP)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let f,u=16+a+4;const l=new Array(s).fill(0).map(()=>{const c=n.readInt32LE(u);u+=4;const h={};let d;for(let g=0;g<c;g+=1){const b=n.readUInt32LE(u);if(b>this.maxBinNumber)d=this.parsePseudoBin(n,u+4),u+=4+8+4+16+16;else{const y=qo(n,u+4);f=this._findFirstData(f,y);const w=n.readInt32LE(u+12);u+=16;const E=new Array(w);for(let _=0;_<w;_+=1){const D=qo(n,u),T=qo(n,u+8);u+=16,E[_]=new Nc(D,T,b)}h[b]=E}}return{binIndex:h,stats:d}});return{...o,csi:!0,refCount:s,maxBlockSize:1<<16,firstDataLine:f,csiVersion:r,indices:l,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(e,n){return{lineCount:v3(F3.fromBytesLE(e.slice(n+28,n+36),!0))}}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[e],s=a.indices[o];if(!s)return[];const f=this.reg2bins(n,r),u=[];for(const[l,c]of f)for(let h=l;h<=c;h++)if(s.binIndex[h]){const d=s.binIndex[h];for(let g=0;g<d.length;++g)u.push(new Nc(d[g].minv,d[g].maxv,h))}return A3(u,new Ip(0,0))}reg2bins(e,n){e-=1,e<1&&(e=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=XP(1,r*3),r+=1){const s=i+L3(e,a),f=i+L3(n,a);if(f-s+o.length>this.maxBinNumber)throw new Error(`query ${e}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,f])}return o}}const Tp=typeof TextDecoder<"u"?new TextDecoder("utf-8"):void 0;function $P(t){return new Promise(e=>setTimeout(e,t))}class KP{constructor({path:e,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,yieldTime:s=500,chunkSizeLimit:f=5e7,renameRefSeqs:u=c=>c,chunkCacheSize:l=5*2**20}){if(n)this.filehandle=n;else if(e)this.filehandle=new Kt(e);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new Mp({filehandle:i,renameRefSeqs:u});else if(o)this.index=new R3({filehandle:o,renameRefSeqs:u});else if(r)this.index=new Mp({filehandle:new Kt(r),renameRefSeqs:u});else if(a)this.index=new R3({filehandle:new Kt(a),renameRefSeqs:u});else if(e)this.index=new Mp({filehandle:new Kt(`${e}.tbi`),renameRefSeqs:u});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=f,this.renameRefSeq=u,this.yieldTime=s,this.chunkCache=new ac({cache:new ng({maxSize:Math.floor(l/(1<<16))}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(e,n,r,i){let a,o={},s;if(typeof i>"u")throw new TypeError("line callback must be provided");if(typeof i=="function"?s=i:(o=i,s=i.lineCallback),e===void 0)throw new TypeError("must provide a reference sequence name");if(!s)throw new TypeError("line callback must be provided");const f=await this.index.getMetadata(o);if(_a(a),n||(n=0),r||(r=f.maxRefLength),!(n<=r))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(n===r)return;const u=await this.index.blocksForRange(e,n,r,o);_a(a);for(let c=0;c<u.length;c+=1){const h=u[c].fetchedSize();if(h>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${h.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let l=Date.now();for(let c=0;c<u.length;c+=1){let h;const d=u[c],{buffer:g,cpositions:b,dpositions:y}=await this.chunkCache.get(d.toString(),d);_a(a);let w=0,E=0;for(;w<g.length;){const _=g.indexOf(`
|
|
350
|
-
`,w);if(_===-1)break;const D=g.slice(w,_),T=(
|
|
351
|
-
`.charCodeAt(0),u=r.charCodeAt(0);for(let l=0;l<o.length&&!(l===s+1&&o[l]!==u);l+=1)o[l]===f&&(s=l);o=o.slice(0,s+1)}return o}async getHeader(e={}){return(await this.getHeaderBuffer(e)).toString("utf8")}async getReferenceSequenceNames(e={}){return(await this.getMetadata(e)).refIdToName}checkLine(e,n,r,i,a){const{columnNumbers:o,metaChar:s,coordinateType:f,format:u}=e;if(a.charAt(0)===s)return{overlaps:!1};let{ref:l,start:c,end:h}=o;l||(l=0),c||(c=0),h||(h=0),u==="VCF"&&(h=8);const d=Math.max(l,c,h);let g=1,b=0,y="",w=-1/0;for(let E=0;E<a.length+1;E+=1)if(a[E]===" "||E===a.length){if(g===l){if(this.renameRefSeq(a.slice(b,E))!==n)return{overlaps:!1}}else if(g===c){if(w=parseInt(a.slice(b,E),10),f==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===c)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(u==="VCF"&&g===4)y=a.slice(b,E);else if(g===h){let _;if(u==="VCF"?_=this._getVcfEnd(w,y,a.slice(b,E)):_=parseInt(a.slice(b,E),10),_<=r)return{overlaps:!1}}if(b=E+1,g+=1,g>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(e,n,r){let i=e+n.length;const a=r.indexOf("SVTYPE=TRA")!==-1;if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let f=r.indexOf(";",s);f===-1&&(f=r.length),i=parseInt(r.slice(s+4,f),10);break}o=r[s]}}else if(a)return e+1;return i}async lineCount(e,n={}){return this.index.lineCount(e,n)}async _readRegion(e,n,r={}){const i=Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,e,r);return o.slice(0,a)}async readChunk(e,n={}){const r=await this._readRegion(e.minv.blockPosition,e.fetchedSize(),n);try{return Q2(r,e)}catch(i){throw new Error(`error decompressing c ${e.toString()} ${i}`)}}}class JP extends Au(ra){constructor(n,r){const i={channel:"x",windowSize:3e6,debounceDomainChange:200,...n};super(r,i.channel);
|
|
349
|
+
`&&(a+=1);this.linesSinceLastSyncMark+=a}this.haveWeEmittedData=!0,Cp(r)}}function PP(t={}){return new x3(t)}function UP(t,e,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,a)=>{t.pipe(new x3(r)).on("end",()=>i(null)).on("error",a).pipe(e)})}const jP={parseStream:RP,parseStringSync:OP,formatSync:zP,formatStream:PP,formatFile:UP,util:kP};function v3(t){if(t.greaterThan(Number.MAX_SAFE_INTEGER)||t.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return t.toNumber()}class GP extends Error{}function _a(t){if(t&&t.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const e=new GP("aborted");throw e.code="ERR_ABORTED",e}}}function HP(t,e){return e.minv.blockPosition-t.maxv.blockPosition<65e3&&e.maxv.blockPosition-t.minv.blockPosition<5e6}function A3(t,e){const n=[];let r=null;return t.length===0?t:(t.sort(function(i,a){const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),t.forEach(i=>{(!e||i.maxv.compareTo(e)>0)&&(r===null?(n.push(i),r=i):HP(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}var QP=ze,En=null;try{En=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function ze(t,e,n){this.low=t|0,this.high=e|0,this.unsigned=!!n}ze.prototype.__isLong__,Object.defineProperty(ze.prototype,"__isLong__",{value:!0});function Vt(t){return(t&&t.__isLong__)===!0}ze.isLong=Vt;var E3={},S3={};function Ca(t,e){var n,r,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(r=S3[t],r)?r:(n=Pe(t,(t|0)<0?-1:0,!0),i&&(S3[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(r=E3[t],r)?r:(n=Pe(t,t<0?-1:0,!1),i&&(E3[t]=n),n))}ze.fromInt=Ca;function Sn(t,e){if(isNaN(t))return e?Da:_n;if(e){if(t<0)return Da;if(t>=C3)return N3}else{if(t<=-D3)return qt;if(t+1>=D3)return T3}return t<0?Sn(-t,e).neg():Pe(t%Ho|0,t/Ho|0,e)}ze.fromNumber=Sn;function Pe(t,e,n){return new ze(t,e,n)}ze.fromBits=Pe;var Tc=Math.pow;function Dp(t,e,n){if(t.length===0)throw Error("empty string");if(t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return _n;if(typeof e=="number"?(n=e,e=!1):e=!!e,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Dp(t.substring(1),e,n).neg();for(var i=Sn(Tc(n,8)),a=_n,o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),f=parseInt(t.substring(o,o+s),n);if(s<8){var u=Sn(Tc(n,s));a=a.mul(u).add(Sn(f))}else a=a.mul(i),a=a.add(Sn(f))}return a.unsigned=e,a}ze.fromString=Dp;function Gn(t,e){return typeof t=="number"?Sn(t,e):typeof t=="string"?Dp(t,e):Pe(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}ze.fromValue=Gn;var _3=1<<16,VP=1<<24,Ho=_3*_3,C3=Ho*Ho,D3=C3/2,I3=Ca(VP),_n=Ca(0);ze.ZERO=_n;var Da=Ca(0,!0);ze.UZERO=Da;var Qo=Ca(1);ze.ONE=Qo;var M3=Ca(1,!0);ze.UONE=M3;var Ip=Ca(-1);ze.NEG_ONE=Ip;var T3=Pe(-1,2147483647,!1);ze.MAX_VALUE=T3;var N3=Pe(-1,-1,!0);ze.MAX_UNSIGNED_VALUE=N3;var qt=Pe(0,-2147483648,!1);ze.MIN_VALUE=qt;var W=ze.prototype;W.toInt=function(){return this.unsigned?this.low>>>0:this.low},W.toNumber=function(){return this.unsigned?(this.high>>>0)*Ho+(this.low>>>0):this.high*Ho+(this.low>>>0)},W.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(qt)){var n=Sn(e),r=this.div(n),i=r.mul(n).sub(this);return r.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var a=Sn(Tc(e,6),this.unsigned),o=this,s="";;){var f=o.div(a),u=o.sub(f.mul(a)).toInt()>>>0,l=u.toString(e);if(o=f,o.isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},W.getHighBits=function(){return this.high},W.getHighBitsUnsigned=function(){return this.high>>>0},W.getLowBits=function(){return this.low},W.getLowBitsUnsigned=function(){return this.low>>>0},W.getNumBitsAbs=function(){if(this.isNegative())return this.eq(qt)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,n=31;n>0&&!(e&1<<n);n--);return this.high!=0?n+33:n+1},W.isZero=function(){return this.high===0&&this.low===0},W.eqz=W.isZero,W.isNegative=function(){return!this.unsigned&&this.high<0},W.isPositive=function(){return this.unsigned||this.high>=0},W.isOdd=function(){return(this.low&1)===1},W.isEven=function(){return(this.low&1)===0},W.equals=function(e){return Vt(e)||(e=Gn(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low},W.eq=W.equals,W.notEquals=function(e){return!this.eq(e)},W.neq=W.notEquals,W.ne=W.notEquals,W.lessThan=function(e){return this.comp(e)<0},W.lt=W.lessThan,W.lessThanOrEqual=function(e){return this.comp(e)<=0},W.lte=W.lessThanOrEqual,W.le=W.lessThanOrEqual,W.greaterThan=function(e){return this.comp(e)>0},W.gt=W.greaterThan,W.greaterThanOrEqual=function(e){return this.comp(e)>=0},W.gte=W.greaterThanOrEqual,W.ge=W.greaterThanOrEqual,W.compare=function(e){if(Vt(e)||(e=Gn(e)),this.eq(e))return 0;var n=this.isNegative(),r=e.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},W.comp=W.compare,W.negate=function(){return!this.unsigned&&this.eq(qt)?qt:this.not().add(Qo)},W.neg=W.negate,W.add=function(e){Vt(e)||(e=Gn(e));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=e.high>>>16,s=e.high&65535,f=e.low>>>16,u=e.low&65535,l=0,c=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,l+=c>>>16,c&=65535,l+=n+o,l&=65535,Pe(h<<16|d,l<<16|c,this.unsigned)},W.subtract=function(e){return Vt(e)||(e=Gn(e)),this.add(e.neg())},W.sub=W.subtract,W.multiply=function(e){if(this.isZero())return _n;if(Vt(e)||(e=Gn(e)),En){var n=En.mul(this.low,this.high,e.low,e.high);return Pe(n,En.get_high(),this.unsigned)}if(e.isZero())return _n;if(this.eq(qt))return e.isOdd()?qt:_n;if(e.eq(qt))return this.isOdd()?qt:_n;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(I3)&&e.lt(I3))return Sn(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=e.high>>>16,f=e.high&65535,u=e.low>>>16,l=e.low&65535,c=0,h=0,d=0,g=0;return g+=o*l,d+=g>>>16,g&=65535,d+=a*l,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*l+i*u+a*f+o*s,c&=65535,Pe(d<<16|g,c<<16|h,this.unsigned)},W.mul=W.multiply,W.divide=function(e){if(Vt(e)||(e=Gn(e)),e.isZero())throw Error("division by zero");if(En){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var n=(this.unsigned?En.div_u:En.div_s)(this.low,this.high,e.low,e.high);return Pe(n,En.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Da:_n;var r,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Da;if(e.gt(this.shru(1)))return M3;a=Da}else{if(this.eq(qt)){if(e.eq(Qo)||e.eq(Ip))return qt;if(e.eq(qt))return Qo;var o=this.shr(1);return r=o.div(e).shl(1),r.eq(_n)?e.isNegative()?Qo:Ip:(i=this.sub(e.mul(r)),a=r.add(i.div(e)),a)}else if(e.eq(qt))return this.unsigned?Da:_n;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=_n}for(i=this;i.gte(e);){r=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:Tc(2,s-48),u=Sn(r),l=u.mul(e);l.isNegative()||l.gt(i);)r-=f,u=Sn(r,this.unsigned),l=u.mul(e);u.isZero()&&(u=Qo),a=a.add(u),i=i.sub(l)}return a},W.div=W.divide,W.modulo=function(e){if(Vt(e)||(e=Gn(e)),En){var n=(this.unsigned?En.rem_u:En.rem_s)(this.low,this.high,e.low,e.high);return Pe(n,En.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))},W.mod=W.modulo,W.rem=W.modulo,W.not=function(){return Pe(~this.low,~this.high,this.unsigned)},W.and=function(e){return Vt(e)||(e=Gn(e)),Pe(this.low&e.low,this.high&e.high,this.unsigned)},W.or=function(e){return Vt(e)||(e=Gn(e)),Pe(this.low|e.low,this.high|e.high,this.unsigned)},W.xor=function(e){return Vt(e)||(e=Gn(e)),Pe(this.low^e.low,this.high^e.high,this.unsigned)},W.shiftLeft=function(e){return Vt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Pe(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Pe(0,this.low<<e-32,this.unsigned)},W.shl=W.shiftLeft,W.shiftRight=function(e){return Vt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Pe(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Pe(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},W.shr=W.shiftRight,W.shiftRightUnsigned=function(e){if(Vt(e)&&(e=e.toInt()),e&=63,e===0)return this;var n=this.high;if(e<32){var r=this.low;return Pe(r>>>e|n<<32-e,n>>>e,this.unsigned)}else return e===32?Pe(n,0,this.unsigned):Pe(n>>>e-32,0,this.unsigned)},W.shru=W.shiftRightUnsigned,W.shr_u=W.shiftRightUnsigned,W.toSigned=function(){return this.unsigned?Pe(this.low,this.high,!1):this},W.toUnsigned=function(){return this.unsigned?this:Pe(this.low,this.high,!0)},W.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},W.toBytesLE=function(){var e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]},W.toBytesBE=function(){var e=this.high,n=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},ze.fromBytes=function(e,n,r){return r?ze.fromBytesLE(e,n):ze.fromBytesBE(e,n)},ze.fromBytesLE=function(e,n){return new ze(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,n)},ze.fromBytesBE=function(e,n){return new ze(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],n)};const F3=ia(QP);class Mp{constructor(e,n){this.blockPosition=e,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}static min(...e){let n,r=0;for(;!n;r+=1)n=e[r];for(;r<e.length;r+=1)n.compareTo(e[r])>0&&(n=e[r]);return n}}function Vo(t,e=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new Mp(t[e+7]*1099511627776+t[e+6]*4294967296+t[e+5]*16777216+t[e+4]*65536+t[e+3]*256+t[e+2],t[e+1]<<8|t[e])}class Nc{constructor(e,n,r,i=void 0){this.minv=e,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(e){return this.minv.compareTo(e.minv)||this.maxv.compareTo(e.maxv)||this.bin-e.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+(1<<16)-this.minv.blockPosition}}class B3{constructor({filehandle:e,renameRefSeqs:n=r=>r}){this.filehandle=e,this.renameRefSeq=n}async getMetadata(e={}){const{indices:n,...r}=await this.parse(e);return r}_findFirstData(e,n){return e?e.compareTo(n)>0?n:e:n}async parse(e={}){return this.parseP||(this.parseP=this._parse(e).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(e,n={}){return!!((await this.parse(n)).indices[e]||{}).binIndex}}const qP=21578324,k3=14;function ZP(t,e){return t+=1,e-=1,[[0,0],[1+(t>>26),1+(e>>26)],[9+(t>>23),9+(e>>23)],[73+(t>>20),73+(e>>20)],[585+(t>>17),585+(e>>17)],[4681+(t>>14),4681+(e>>14)]]}class Tp extends B3{async lineCount(e,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[e];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(e={}){const n=await this.filehandle.readFile(e),r=await wo(n);if(_a(e.signal),r.readUInt32LE(0)!==qP)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",f={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!f)throw new Error(`invalid Tabix preset format flags ${a}`);const u={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},l=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),g=l?String.fromCharCode(l):null,b=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:E}=this._parseNameBytes(r.slice(36,36+y));let _=36+y,D;return{indices:new Array(i).fill(0).map(()=>{const N=r.readInt32LE(_);_+=4;const M={};let R;for(let L=0;L<N;L+=1){const ee=r.readUInt32LE(_);if(_+=4,ee>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ee===h+1){const ne=r.readInt32LE(_);_+=4,ne===2&&(R=this.parsePseudoBin(r,_)),_+=16*ne}else{const ne=r.readInt32LE(_);_+=4;const J=new Array(ne);for(let be=0;be<ne;be+=1){const Se=Vo(r,_),Te=Vo(r,_+8);_+=16,D=this._findFirstData(D,Se),J[be]=new Nc(Se,Te,ee)}M[ee]=J}}const C=r.readInt32LE(_);_+=4;const k=new Array(C);for(let L=0;L<C;L+=1)k[L]=Vo(r,_),_+=8,D=this._findFirstData(D,k[L]);return{binIndex:M,linearIndex:k,stats:R}}),metaChar:g,maxBinNumber:h,maxRefLength:d,skipLines:b,firstDataLine:D,columnNumbers:u,coordinateType:o,format:f,refIdToName:E,refNameToId:w,maxBlockSize:1<<16}}parsePseudoBin(e,n){return{lineCount:v3(F3.fromBytesLE(e.slice(n+16,n+24),!0))}}_parseNameBytes(e){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[e],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>k3>=s.linearIndex.length?s.linearIndex.length-1:n>>k3]:new Mp(0,0))||console.warn("querying outside of possible tabix range");const u=ZP(n,r),l=[];for(const[b,y]of u)for(let w=b;w<=y;w++)if(s.binIndex[w]){const E=s.binIndex[w];for(let _=0;_<E.length;++_)l.push(new Nc(E[_].minv,E[_].maxv,w))}const c=s.linearIndex.length;let h=null;const d=Math.min(n>>14,c-1),g=Math.min(r>>14,c-1);for(let b=d;b<=g;++b){const y=s.linearIndex[b];y&&(!h||y.compareTo(h)<0)&&(h=y)}return A3(l,h)}}const YP=21582659,WP=38359875;function XP(t,e){return t*2**e}function L3(t,e){return Math.floor(t/2**e)}class R3 extends B3{constructor(e){super(e),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(e,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[e];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(e,n){const r=e.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:e.readInt32LE(n+4),start:e.readInt32LE(n+8),end:e.readInt32LE(n+12)},s=e.readInt32LE(n+16),f=s?String.fromCharCode(s):null,u=e.readInt32LE(n+20),l=e.readInt32LE(n+24),{refIdToName:c,refNameToId:h}=this._parseNameBytes(e.slice(n+28,n+28+l));return{refIdToName:c,refNameToId:h,skipLines:u,metaChar:f,columnNumbers:o,format:a,coordinateType:i}}_parseNameBytes(e){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(e={}){const n=await wo(await this.filehandle.readFile(e));let r;if(n.readUInt32LE(0)===YP)r=1;else if(n.readUInt32LE(0)===WP)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let f,u=16+a+4;const l=new Array(s).fill(0).map(()=>{const c=n.readInt32LE(u);u+=4;const h={};let d;for(let g=0;g<c;g+=1){const b=n.readUInt32LE(u);if(b>this.maxBinNumber)d=this.parsePseudoBin(n,u+4),u+=4+8+4+16+16;else{const y=Vo(n,u+4);f=this._findFirstData(f,y);const w=n.readInt32LE(u+12);u+=16;const E=new Array(w);for(let _=0;_<w;_+=1){const D=Vo(n,u),T=Vo(n,u+8);u+=16,E[_]=new Nc(D,T,b)}h[b]=E}}return{binIndex:h,stats:d}});return{...o,csi:!0,refCount:s,maxBlockSize:1<<16,firstDataLine:f,csiVersion:r,indices:l,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(e,n){return{lineCount:v3(F3.fromBytesLE(e.slice(n+28,n+36),!0))}}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[e],s=a.indices[o];if(!s)return[];const f=this.reg2bins(n,r),u=[];for(const[l,c]of f)for(let h=l;h<=c;h++)if(s.binIndex[h]){const d=s.binIndex[h];for(let g=0;g<d.length;++g)u.push(new Nc(d[g].minv,d[g].maxv,h))}return A3(u,new Mp(0,0))}reg2bins(e,n){e-=1,e<1&&(e=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=XP(1,r*3),r+=1){const s=i+L3(e,a),f=i+L3(n,a);if(f-s+o.length>this.maxBinNumber)throw new Error(`query ${e}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,f])}return o}}const Np=typeof TextDecoder<"u"?new TextDecoder("utf-8"):void 0;function $P(t){return new Promise(e=>setTimeout(e,t))}class KP{constructor({path:e,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,yieldTime:s=500,chunkSizeLimit:f=5e7,renameRefSeqs:u=c=>c,chunkCacheSize:l=5*2**20}){if(n)this.filehandle=n;else if(e)this.filehandle=new Jt(e);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new Tp({filehandle:i,renameRefSeqs:u});else if(o)this.index=new R3({filehandle:o,renameRefSeqs:u});else if(r)this.index=new Tp({filehandle:new Jt(r),renameRefSeqs:u});else if(a)this.index=new R3({filehandle:new Jt(a),renameRefSeqs:u});else if(e)this.index=new Tp({filehandle:new Jt(`${e}.tbi`),renameRefSeqs:u});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=f,this.renameRefSeq=u,this.yieldTime=s,this.chunkCache=new ac({cache:new rg({maxSize:Math.floor(l/(1<<16))}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(e,n,r,i){let a,o={},s;if(typeof i>"u")throw new TypeError("line callback must be provided");if(typeof i=="function"?s=i:(o=i,s=i.lineCallback),e===void 0)throw new TypeError("must provide a reference sequence name");if(!s)throw new TypeError("line callback must be provided");const f=await this.index.getMetadata(o);if(_a(a),n||(n=0),r||(r=f.maxRefLength),!(n<=r))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(n===r)return;const u=await this.index.blocksForRange(e,n,r,o);_a(a);for(let c=0;c<u.length;c+=1){const h=u[c].fetchedSize();if(h>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${h.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let l=Date.now();for(let c=0;c<u.length;c+=1){let h;const d=u[c],{buffer:g,cpositions:b,dpositions:y}=await this.chunkCache.get(d.toString(),d);_a(a);let w=0,E=0;for(;w<g.length;){const _=g.indexOf(`
|
|
350
|
+
`,w);if(_===-1)break;const D=g.slice(w,_),T=(Np==null?void 0:Np.decode(D))||D.toString();if(y){for(;w+d.minv.dataPosition>=y[E++];);E--}const{startCoordinate:N,overlaps:M}=this.checkLine(f,e,n,r,T);if(h!==void 0&&N!==void 0&&h>N)throw new Error(`Lines not sorted by start coordinate (${h} > ${N}), this file is not usable with Tabix.`);if(h=N,M)s(T.trim(),b[E]*(1<<8)+(w-y[E])+d.minv.dataPosition+1);else if(N!==void 0&&N>=r)return;this.yieldTime&&l-Date.now()>this.yieldTime&&(l=Date.now(),_a(a),await $P(1)),w=_+1}}}async getMetadata(e={}){return this.index.getMetadata(e)}async getHeaderBuffer(e={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(e);_a(e.signal);const a=((n==null?void 0:n.blockPosition)||0)+i;let o=await this._readRegion(0,a,e);_a(e.signal);try{o=await wo(o)}catch(s){throw console.error(s),new Error(`error decompressing block ${s.code} at 0 (length ${a}) ${s}`)}if(r){let s=-1;const f=`
|
|
351
|
+
`.charCodeAt(0),u=r.charCodeAt(0);for(let l=0;l<o.length&&!(l===s+1&&o[l]!==u);l+=1)o[l]===f&&(s=l);o=o.slice(0,s+1)}return o}async getHeader(e={}){return(await this.getHeaderBuffer(e)).toString("utf8")}async getReferenceSequenceNames(e={}){return(await this.getMetadata(e)).refIdToName}checkLine(e,n,r,i,a){const{columnNumbers:o,metaChar:s,coordinateType:f,format:u}=e;if(a.charAt(0)===s)return{overlaps:!1};let{ref:l,start:c,end:h}=o;l||(l=0),c||(c=0),h||(h=0),u==="VCF"&&(h=8);const d=Math.max(l,c,h);let g=1,b=0,y="",w=-1/0;for(let E=0;E<a.length+1;E+=1)if(a[E]===" "||E===a.length){if(g===l){if(this.renameRefSeq(a.slice(b,E))!==n)return{overlaps:!1}}else if(g===c){if(w=parseInt(a.slice(b,E),10),f==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===c)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(u==="VCF"&&g===4)y=a.slice(b,E);else if(g===h){let _;if(u==="VCF"?_=this._getVcfEnd(w,y,a.slice(b,E)):_=parseInt(a.slice(b,E),10),_<=r)return{overlaps:!1}}if(b=E+1,g+=1,g>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(e,n,r){let i=e+n.length;const a=r.indexOf("SVTYPE=TRA")!==-1;if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let f=r.indexOf(";",s);f===-1&&(f=r.length),i=parseInt(r.slice(s+4,f),10);break}o=r[s]}}else if(a)return e+1;return i}async lineCount(e,n={}){return this.index.lineCount(e,n)}async _readRegion(e,n,r={}){const i=Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,e,r);return o.slice(0,a)}async readChunk(e,n={}){const r=await this._readRegion(e.minv.blockPosition,e.fetchedSize(),n);try{return Q2(r,e)}catch(i){throw new Error(`error decompressing c ${e.toString()} ${i}`)}}}class JP extends Au(ra){constructor(n,r){const i={channel:"x",windowSize:3e6,debounceDomainChange:200,...n};super(r,i.channel);an(this,"lastRequestId",0);an(this,"tbiIndex");if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");const a=o=>new nr(Eu(o,this.view.getBaseUrl()));this.tbiIndex=new KP({filehandle:a(this.params.url),tbiFilehandle:a(this.params.indexUrl??this.params.url+".tbi")}),this.params.debounceDomainChange>0&&(this.onDomainChanged=Ec(this.onDomainChanged.bind(this),this.params.debounceDomainChange,!1))}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){let r=++this.lastRequestId;const i=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),o=await Promise.all(a.map(async s=>{const f=[];return await this.tbiIndex.getLines(s.chrom,s.startPos,s.endPos,{lineCallback:u=>{f.push(u)},signal:i.signal}),this._parseFeatures(f)}));return{requestId:r,abort:()=>i.abort(),features:o.flat()}}_parseFeatures(n){return[]}}class e9 extends JP{_parseFeatures(e){return jP.parseStringSync(e.join(`
|
|
352
352
|
`),{parseSequences:!1})}}function t9(t,e){if(dx(t))return new EB(t,e);if(SB(t))return new _B(t,e);if(CB(t))return new DB(t,e);if(n9(t))return l9(t.lazy,e);throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function n9(t){return"lazy"in t}function r9(t){return(t==null?void 0:t.type)=="axisTicks"}function i9(t){return(t==null?void 0:t.type)=="axisGenome"}function a9(t){return(t==null?void 0:t.type)=="indexedFasta"}function o9(t){return(t==null?void 0:t.type)=="bigwig"}function s9(t){return(t==null?void 0:t.type)=="bigbed"}function u9(t){return(t==null?void 0:t.type)=="bam"}function f9(t){return(t==null?void 0:t.type)=="gff3"}function l9(t,e){if(r9(t))return new MB(t,e);if(i9(t))return new TB(t,e);if(a9(t))return new LL(t,e);if(o9(t))return new Ez(t,e);if(s9(t))return new Nz(t,e);if(u9(t))return new rP(t,e);if(f9(t))return new e9(t,e);throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function c9(t){const e=Object.keys(t).filter(r=>typeof r=="string"),n=new Function("source","return { "+e.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
|
|
353
|
-
`)+" };");return n.properties=e,n}class Fc extends tt{get behavior(){return
|
|
354
|
-
Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]*\//))==null?void 0:o[0],a;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(t)}`)}async function j3(t){const e=[];t.visit(n=>{if(n instanceof rx)return e.push(n),kw});for(const n of e){const r=n.context,i=await E9(n.spec,n.getBaseUrl(),r),a=r.createView(i,n.layoutParent,n.dataParent,n.name);n.layoutParent.replaceChild(n,a),await j3(a)}}function S9(t){const e=t.getSize().addPadding(t.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(e.width),height:n(e.height)}}function Fr(t){return()=>t}const Rr=class{static create(e,n,r,i){return new Rr(Fr(e),Fr(n),Fr(r),Fr(i))}_offset(e,n){const r=this["_"+e];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(e){return this._offset(e,0)}constructor(e,n,r,i){this._x=e,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(e){return e?this===e||this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height:!1}modify(e){if(!Object.keys(e).length)return this;const n=r=>{const i=e[r];return typeof i=="number"?Fr(i):typeof i=="function"?i:this._passThrough(r)};return new Rr(n("x"),n("y"),n("width"),n("height"))}translate(e,n){return e===0&&n===0?this:new Rr(this._offset("x",e),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(e){return this.translate(e.x,e.y)}expand(e,n=1){return e.left==0&&e.top==0&&e.right==0&&e.bottom==0?this:new Rr(e.left?this._offset("x",-e.left*n):this._passThrough("x"),e.top?this._offset("y",-e.top*n):this._passThrough("y"),e.width?this._offset("width",e.width*n):this._passThrough("width"),e.height?this._offset("height",e.height*n):this._passThrough("height"))}shrink(e){return this.expand(e,-1)}intersect(e){return this===e?this:new Rr(()=>Math.max(this.x,e.x),()=>Math.max(this.y,e.y),()=>Math.min(this.x2,e.x2)-Math.max(this.x,e.x),()=>Math.min(this.y2,e.y2)-Math.max(this.y,e.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Rr(Fr(this.x),Fr(this.y),Fr(this.width),Fr(this.height))}containsPoint(e,n){return e>=this.x&&e<this.x2&&n>=this.y&&n<this.y2}normalizePoint(e,n){return{x:(e-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};let Zo=Rr;rn(Zo,"ZERO",Rr.create(0,0,0,0));class G3{constructor(e){this.globalOptions=e}pushView(e,n){}popView(e){}renderMark(e,n){}}class H3 extends G3{constructor(e,n){super(e),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(e,n){this.views.add(e),this.coords=n}renderMark(e,n){if(this.globalOptions.picking&&!e.isPickingParticipant())return;const r=e.render(n);r&&this.buffer.push({mark:e,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const e=this.webGLHelper.gl,n=this.globalOptions.picking;e.bindFramebuffer(e.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&e.bindFramebuffer(e.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let e=!0,n=!0;const r=o=>()=>{e&&o()},i=o=>()=>{e&&n&&o()},a=xf(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{e=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(u=>r(u)));let f;for(const u of s){const l=u.coords;l.equals(f)||this.batch.push(r(()=>{n=o.setViewport(l,u.clipRect)})),this.batch.push(i(u.callback)),f=u.coords}}}}class _9 extends G3{constructor(...e){super({}),this.contexts=e}pushView(e,n){for(const r of this.contexts)r.pushView(e,n)}popView(e){for(const n of this.contexts)n.popView(e)}renderMark(e,n){for(const r of this.contexts)r.renderMark(e,n)}}class C9{constructor(e,n){this.point=e,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class D9{constructor(e,n){this.x=e,this.y=n}equals(e){return e?e===this||e.x===this.x&&e.y===this.y:!1}}const I9=t=>new Promise(e=>setTimeout(e,t));function M9(t){const e=t.requestAnimationFrame||window.requestAnimationFrame,n=t.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(t.duration||1e3),f=typeof t.from=="number"?t.from:0,u=typeof t.to=="number"?t.to:1,l=t.easingFunction||(b=>b),c=b=>(b-o)/(s-o),h=b=>b*(u-f)+f,d=b=>Math.max(0,Math.min(1,b)),g=b=>{n!=null&&n.aborted?a("aborted"):(t.onUpdate(h(l(d(c(b))))),b<s?e(g):(t.onUpdate(h(l(1))),i()))};e(g)});return t.delay?n!=null&&n.aborted?Promise.reject("aborted"):I9(t.delay).then(r):r()}class T9{constructor(e){this._renderCallback=e,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(e){this.cancelTransition(e),this.transitions.push(e),this.requestRender()}cancelTransition(e){const n=this.transitions.indexOf(e);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(e=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(e);this._renderCallback(e)}))}transition(e){return M9({requestAnimationFrame:n=>this.requestTransition(n),...e})}}class N9{constructor(e){this.genomes=new Map,this.baseUrl=e}async initialize(e){const n=new RF(e);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.baseUrl)))}getGenome(e){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(e){const n=this.genomes.get(e);if(!n)throw new Error(`No genome with the name ${e} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const F9="data:image/png;base64,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",B9={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class k9{constructor(e){this._webGLHelper=e,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new Bi([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:a0(ox),texture:e?this._createTextureNow(F9):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(e,n="normal",r="regular"){if(Ke(r)&&(r=B9[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:e,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(e,n){try{const r=await this._loadMetadata(n.family),i=R9(r,n),a=this.fontRepository+Q3(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");e.texture=await o,e.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),e.metrics=this._defaultFontEntry.metrics,e.texture=this._defaultFontEntry.texture}}_loadFont(e){let n=this._fontPromises.get(e);return n||(n=fetch(e).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>a0(r)),this._fontPromises.set(e,n)),n}_loadMetadata(e){const n=Q3(e);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>L9(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(e){const n=this._webGLHelper.gl;return new Promise((r,i)=>{$s(n,{src:e,min:n.LINEAR},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(e){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=$s(n,{src:e,min:n.LINEAR},(s,f,u)=>{s?o(s):a(f)})});return this._promises.push(i),r}}function Q3(t){return t.toLowerCase().replaceAll(/[^\w]/g,"")}function L9(t){const e=t.split(`
|
|
353
|
+
`)+" };");return n.properties=e,n}class Fc extends tt{get behavior(){return er}constructor(){super();const e=n=>{const r=c9(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=e,this.beginBatch=n=>{Nw(n)&&(this.handle=e),super.beginBatch(n)}}}function h9(t){return"name"in t}class O3 extends iu{constructor(n,r,i){super();ye(this,af,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){br(this,af,n),this.loadSynchronously()}loadSynchronously(){const n=ie(this,af)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=cx(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}af=new WeakMap;class z3{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(e,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(e)}_relayObserverCallback(e,n){const r=this._observers.get(n);if(r)for(const i of r)i(e)}addDataSource(e,n){this._dataSourcesByHost.set(n,e)}findDataSourceByKey(e){return this._dataSourcesByHost.get(e)}findNamedDataSource(e){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof O3&&e==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${e}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(e,n){this._collectorsByHost.set(n,e),e.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(e){return this._collectorsByHost.get(e)}initialize(){for(const e of this.dataSources)e.visit(n=>n.initialize())}}function d9(t,e){const n=new Map,r=[];for(const i of t)n.set(i,{ref:i,children:[]});for(const i of n.values()){const a=n.get(e(i.ref));a?a.children.push(i):r.push(i)}return r}function P3(t,e,n){var i,a;const r=(i=e.preOrder)==null?void 0:i.call(e,t);if(r)return r;for(const o of n(t)){const s=P3(o,e,n);if(s==="stop")return s}return(a=e.postOrder)==null?void 0:a.call(e,t)}function g9(t,e){return P3(t,e,n=>n.children)}function p9(t,e){const n=[];let r;const i=e??new z3,a=[];function o(c,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(c),r=c,c}function s(c,h){return o(c,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function f(c,h){for(const d of c){let g;try{g=wB(d,h)}catch(b){throw console.warn(b),new Error(`Cannot initialize "${d.type}" transform: ${b}`)}g.behavior&oi&&s(new Fc),s(g)}}const u=c=>{if(n.push(r),c.spec.data){const h=h9(c.spec.data)?new O3(c.spec.data,c,c.context.getNamedDataFromProvider):t9(c.spec.data,c);r=h,i.addDataSource(h,c)}if(c.spec.transform&&f(c.spec.transform,c),c instanceof Tt){if(!r)throw new Error(`A unit view (${c.getPathString()}) has no (inherited) data source`);const h=m9(c);if(h){a.push(h.rewrite);for(const g of h.transforms)s(g)}c.mark.isPickingParticipant()&&(s(new Fc),s(new fx({type:"identifier"})));const d=new ix({type:"collect",groupby:c.getFacetFields(),sort:b9(c,h==null?void 0:h.rewrittenEncoding)});o(d),i.addCollector(d,c)}},l=d9(t.getDescendants(),c=>c.dataParent);for(const c of l)g9(c,{preOrder:h=>u(h.ref),postOrder:()=>{r=n.pop()}});return a.forEach(c=>c()),i}function m9(t){var a;const e=[],n={},r=[];for(const[o,s]of Object.entries(t.getEncoding())){const f=o;Hs(f)&&Xb(s)&&r.push({channel:f,chromPosDef:s})}const i=xf(r,o=>Wi(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[f,u]of s.entries()){const l=[],c=[],h=[];for(const{channel:d,chromPosDef:g}of u){const b=E=>E.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",b(g.chrom),"_",b(g.pos)].join(""),w={...((a=t.spec.encoding)==null?void 0:a[d])??t.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&g.type&&(w.type=g.type),n[d]=w,l.push(g.pos),h.push(g.offset??0),c.push(y)}e.push(new Fc),e.push(new ax({type:"linearizeGenomicCoordinate",channel:o,chrom:f,pos:l,offset:h,as:c},t))}return e.length?{transforms:e,rewrittenEncoding:n,rewrite:()=>{t.spec.encoding={...t.spec.encoding,...n},Sw(t.mark,"encoding")}}:void 0}function b9(t,e){var r;const n={...t.getEncoding(),...e}.x;if(un(n)&&(r=t.getScaleResolution("x"))!=null&&r.isZoomable()){if(js(n))return{field:n.field};if(!Gs(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function U3(t,e=void 0){if(t.parent!==e)return!1;for(const n of t.children)if(!U3(n,t))return!1;return!0}function Fp(t,e=!1){if(t.behavior&u0&&(e=!0),t instanceof Fc)if(e)e=!1;else{const n=t.children[0];t.excise(),n&&Fp(n,e);return}t.behavior&er&&(e=!1);for(let n=0,r=t.children.length;n<r;n++)Fp(t.children[n],e||r>1)}function y9(t){const e=[...t._dataSourcesByHost.entries()],n=new Map;for(const r of e){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}t._dataSourcesByHost.clear();for(let[r,i]of e){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),t.addDataSource(i,r)}}function w9(t){if(Fp(t),!U3(t))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function x9(t){for(const e of t.dataSources)w9(e);y9(t)}function v9(t){t.visit(n=>{n instanceof Tt&&n.resolve("scale")});const e=new Set;t.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&e.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);e.add(i)}}),t.visit(n=>{n instanceof Tt&&n.resolve("axis")}),t.visit(n=>n.onScalesResolved())}function A9(t){for(const e of Ya){const n=t.getScaleResolution(e);n&&!n.name&&n.isZoomable()&&(n.name=`${e}_at_root`)}}async function E9(t,e,n){var o;if(!t.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(t));const r=Bf({baseURL:e}),i=t.import.url,a=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
|
|
354
|
+
Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]*\//))==null?void 0:o[0],a;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(t)}`)}async function j3(t){const e=[];t.visit(n=>{if(n instanceof rx)return e.push(n),Lw});for(const n of e){const r=n.context,i=await E9(n.spec,n.getBaseUrl(),r),a=r.createView(i,n.layoutParent,n.dataParent,n.name);n.layoutParent.replaceChild(n,a),await j3(a)}}function S9(t){const e=t.getSize().addPadding(t.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(e.width),height:n(e.height)}}function Fr(t){return()=>t}const Lr=class{static create(e,n,r,i){return new Lr(Fr(e),Fr(n),Fr(r),Fr(i))}_offset(e,n){const r=this["_"+e];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(e){return this._offset(e,0)}constructor(e,n,r,i){this._x=e,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(e){return e?this===e||this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height:!1}modify(e){if(!Object.keys(e).length)return this;const n=r=>{const i=e[r];return typeof i=="number"?Fr(i):typeof i=="function"?i:this._passThrough(r)};return new Lr(n("x"),n("y"),n("width"),n("height"))}translate(e,n){return e===0&&n===0?this:new Lr(this._offset("x",e),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(e){return this.translate(e.x,e.y)}expand(e,n=1){return e.left==0&&e.top==0&&e.right==0&&e.bottom==0?this:new Lr(e.left?this._offset("x",-e.left*n):this._passThrough("x"),e.top?this._offset("y",-e.top*n):this._passThrough("y"),e.width?this._offset("width",e.width*n):this._passThrough("width"),e.height?this._offset("height",e.height*n):this._passThrough("height"))}shrink(e){return this.expand(e,-1)}intersect(e){return this===e?this:new Lr(()=>Math.max(this.x,e.x),()=>Math.max(this.y,e.y),()=>Math.min(this.x2,e.x2)-Math.max(this.x,e.x),()=>Math.min(this.y2,e.y2)-Math.max(this.y,e.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Lr(Fr(this.x),Fr(this.y),Fr(this.width),Fr(this.height))}containsPoint(e,n){return e>=this.x&&e<this.x2&&n>=this.y&&n<this.y2}normalizePoint(e,n){return{x:(e-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};let qo=Lr;an(qo,"ZERO",Lr.create(0,0,0,0));class G3{constructor(e){this.globalOptions=e}pushView(e,n){}popView(e){}renderMark(e,n){}}class H3 extends G3{constructor(e,n){super(e),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(e,n){this.views.add(e),this.coords=n}renderMark(e,n){if(this.globalOptions.picking&&!e.isPickingParticipant())return;const r=e.render(n);r&&this.buffer.push({mark:e,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const e=this.webGLHelper.gl,n=this.globalOptions.picking;e.bindFramebuffer(e.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&e.bindFramebuffer(e.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let e=!0,n=!0;const r=o=>()=>{e&&o()},i=o=>()=>{e&&n&&o()},a=xf(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{e=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(u=>r(u)));let f;for(const u of s){const l=u.coords;l.equals(f)||this.batch.push(r(()=>{n=o.setViewport(l,u.clipRect)})),this.batch.push(i(u.callback)),f=u.coords}}}}class _9 extends G3{constructor(...e){super({}),this.contexts=e}pushView(e,n){for(const r of this.contexts)r.pushView(e,n)}popView(e){for(const n of this.contexts)n.popView(e)}renderMark(e,n){for(const r of this.contexts)r.renderMark(e,n)}}class C9{constructor(e,n){this.point=e,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class D9{constructor(e,n){this.x=e,this.y=n}equals(e){return e?e===this||e.x===this.x&&e.y===this.y:!1}}const I9=t=>new Promise(e=>setTimeout(e,t));function M9(t){const e=t.requestAnimationFrame||window.requestAnimationFrame,n=t.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(t.duration||1e3),f=typeof t.from=="number"?t.from:0,u=typeof t.to=="number"?t.to:1,l=t.easingFunction||(b=>b),c=b=>(b-o)/(s-o),h=b=>b*(u-f)+f,d=b=>Math.max(0,Math.min(1,b)),g=b=>{n!=null&&n.aborted?a("aborted"):(t.onUpdate(h(l(d(c(b))))),b<s?e(g):(t.onUpdate(h(l(1))),i()))};e(g)});return t.delay?n!=null&&n.aborted?Promise.reject("aborted"):I9(t.delay).then(r):r()}class T9{constructor(e){this._renderCallback=e,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(e){this.cancelTransition(e),this.transitions.push(e),this.requestRender()}cancelTransition(e){const n=this.transitions.indexOf(e);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(e=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(e);this._renderCallback(e)}))}transition(e){return M9({requestAnimationFrame:n=>this.requestTransition(n),...e})}}class N9{constructor(e){this.genomes=new Map,this.baseUrl=e}async initialize(e){const n=new RF(e);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.baseUrl)))}getGenome(e){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(e){const n=this.genomes.get(e);if(!n)throw new Error(`No genome with the name ${e} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const F9="data:image/png;base64,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",B9={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class k9{constructor(e){this._webGLHelper=e,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new Bi([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:a0(ox),texture:e?this._createTextureNow(F9):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(e,n="normal",r="regular"){if(Ke(r)&&(r=B9[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:e,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(e,n){try{const r=await this._loadMetadata(n.family),i=R9(r,n),a=this.fontRepository+Q3(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");e.texture=await o,e.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),e.metrics=this._defaultFontEntry.metrics,e.texture=this._defaultFontEntry.texture}}_loadFont(e){let n=this._fontPromises.get(e);return n||(n=fetch(e).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>a0(r)),this._fontPromises.set(e,n)),n}_loadMetadata(e){const n=Q3(e);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>L9(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(e){const n=this._webGLHelper.gl;return new Promise((r,i)=>{Xs(n,{src:e,min:n.LINEAR},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(e){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=Xs(n,{src:e,min:n.LINEAR},(s,f,u)=>{s?o(s):a(f)})});return this._promises.push(i),r}}function Q3(t){return t.toLowerCase().replaceAll(/[^\w]/g,"")}function L9(t){const e=t.split(`
|
|
355
355
|
`),n=[];let r;for(const i of e)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let a=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(a){const o=a[1];r[o]=a[2]}if(a=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),a){const o=a[1];r[o]=+a[2]}}return n}function R9(t,e){let n,r=Number.POSITIVE_INFINITY;for(const i of t)if(e.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&e.style==i.style){const a=Math.abs(e.weight-i.weight);a<r&&(r=a,n=i)}return n==null?void 0:n.filename}function O9(t,e){const n=[];let r;for(const i of t.split(`
|
|
356
|
-
`))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class z9{constructor(e,n){this.animator=e,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(e,n){if(this.disabled){n(e);return}e*this.momentum<0?this.momentum=0:Math.abs(e)>this.accelerationThreshold?this.momentum=YS([this.momentum,e],this.acceleration):this.momentum=e,this.callback=n,this.loop||this.animate()}animate(e){this.callback(this.momentum);const n=e-this.timestamp||0;this.timestamp=e;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function P9(t){const e={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in t){const a=i;!r.includes(i)&&n.includes(typeof t[a])&&(e[a]=t[a])}return e}const V3=new Map;async function U9(t,e,n){const r=t.symbol;let i=V3.get(r)??await H9(t.symbol);return i?(V3.set(r,i),Zn`<div class="title"><strong>${i.name}</strong> ${i.description}</div><p class="summary">${i.summary}</p><p class="source">Source: NCBI RefSeq Gene</p>`):null}async function j9(t){console.log("Searching: "+t);const e={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${t}[GENE]&sort=relevance&retmode=json`,e).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,e).then(o=>o.json())).result[r]:null}const G9=Ec(j9,500);function H9(t){return G9(t)}const Q9=pt(".4~r"),V9=pt(".4~e");function q3(t){return t==null?Zn`<span class="na">NA</span>`:Ke(t)?t.substring(0,30):Number.isInteger(t)?""+t:Lt(t)?Math.abs(t)>Math.pow(10,8)||Math.abs(t)<Math.pow(10,-8)?V9(t):Q9(t):pf(t)?t?"True":"False":Xt(t)?Zn`${t.map((e,n)=>[q3(e),n<t.length-1?", ":at])}`:"?"+typeof t+" "+t}async function q9(t,e,n){const r=(f,u)=>{var l;for(const[c,h]of Object.entries(e.encoders))if((l=h==null?void 0:h.accessor)!=null&&l.fields.includes(f))switch(c){case"color":case"fill":case"stroke":return Zn`<span class="color-legend" style="${`background-color: ${h(u)}`}"></span>`}return""},i=Object.entries(t).filter(([f,u])=>!f.startsWith("_"));if(i.length===0)return;const a=Zn`<table class="attributes">${i.map(([f,u])=>Zn`<tr><th>${f}</th><td>${q3(u)} ${r(f,t)}</td></tr>`)}</table>`,o=e.unitView.getTitleText(),s=o?Zn`<div class="title"><strong>${o}</strong></div>`:"";return Zn`${s}${a}`}class $u extends so{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e,this.children=(e.layer||[]).map((o,s)=>{if(rS(o)||nS(o))return n.createView(o,this,this,"layer"+s);throw new Error("LayerView accepts only unit or layer specs as children!")}),this.needsAxes={x:!0,y:!0}}*[Symbol.iterator](){for(const e of this.children)yield e}render(e,n,r={}){if(this.isConfiguredVisible()){e.pushView(this,n);for(const i of this.children)i.render(e,n,r);e.popView(this)}}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0);for(let n=this.children.length-1;n>=0;n--)if(this.children[n].propagateInteractionEvent(e),e.stopped)return;this.handleInteractionEvent(void 0,e,!1)}}class Z3{constructor(e,n){this.n=e,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];e.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return e}get colIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];e.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return e}getCellIndex(e,n){let r=0;if(this.maxCols==1/0)r=n==0?e:void 0;else{if(e>=this.maxCols)return;r=n*this.nCols+e}return r<this.n?r:void 0}getCellCoords(e){if(!(e<0||e>=this.n))return[e%this.nCols,Math.floor(e/this.nCols)]}}const Z9="chromosome_ticks_and_labels",Y9={x:"width",y:"height"};function Fp(t){return t=="x"?"y":"x"}const Bc={x:["bottom","top"],y:["left","right"]},Bp=Object.fromEntries(Object.entries(Bc).map(([t,e])=>e.map(n=>[n,t])).flat(1));function Ei(t){return Bp[t]}class Y3 extends $u{constructor(e,n,r,i,a){const o=n=="locus",s={...o?X9:W3,...W9(n,e),...e};super(o?$9(s,n):X3(s,n),r,i,a,`axis_${e.orient}`),this.axisProps=s,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getSize(){const e={px:this.getPerpendicularSize()},n={grow:1};return Bp[this.axisProps.orient]=="x"?new na(n,e):new na(e,n)}getPerpendicularSize(){return kp(this.axisProps)}isPickingSupported(){return!1}}function kp(t){const e=Ei(t.orient);let n=t.ticks&&t.tickSize||0;return t.labels&&(n+=t.labelPadding,e=="x"?n+=t.labelFontSize:n+=30),t.title&&(n+=t.titlePadding+t.titleFontSize),n=Math.min(t.maxExtent||1/0,Math.max(t.minExtent||0,n)),n}const W3={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function W9(t,e){const n=e.orient,r=t=="nominal"||t=="ordinal";let i="center",a="middle",o=e.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function X3(t,e){const n={...t,extent:kp(t)},r=Ei(n.orient),i=Fp(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),f=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:e},text:{field:"label"}}}),u=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),l=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-o}}),c=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:e}},layer:[]};return n.ticks&&d.layer.push(u()),n.labels&&d.layer.push(f()),d},h={resolve:{scale:{[r]:"forced"}},[Y9[Fp(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:t}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(c()),n.title&&h.layer.push(l()),h}const X9={...W3,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function $9(t,e){const n={...t,extent:kp(t)},r=Ei(n.orient),i=Fp(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:t.chromTickDash,strokeDashOffset:t.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:t.chromTickColor,size:n.chromTickWidth}}),s=()=>{let l;switch(n.orient){case"top":l={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":l={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":l={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":l={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:l={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:t.chromLabelAlign,baseline:"alphabetic",clip:!1,...l},encoding:{[r+"2"]:{field:"continuousEnd",type:e},text:{field:"name"}}}};let f;switch(n.orient){case"bottom":case"top":f={};break;case"left":f={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":f={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:f={}}const u=X3({...t,...f},e);if(t.chromTicks||t.chromLabels){const l={name:Z9,data:{lazy:{type:"axisGenome",channel:Ei(n.orient)}},encoding:{[r]:{field:"continuousStart",type:e,band:0}},layer:[]};if(t.chromTicks&&l.layer.push(o()),t.chromLabels){l.layer.push(s());let c;u.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{c=d.mark})),c&&(n.orient=="top"||n.orient=="bottom"?(c.viewportEdgeFadeWidthLeft=30,c.viewportEdgeFadeDistanceLeft=40):(c.viewportEdgeFadeWidthBottom=30,c.viewportEdgeFadeDistanceBottom=40))}u.layer.push(l)}return u}class K9 extends $u{constructor(e,n,r,i,a){const s={...n=="locus"?J9:$3,...e};super(r7(s,n),r,i,a,`axisGrid_${e.orient}`),this.axisProps=s,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const $3={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},J9={...$3,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function e7(t,e){const n=t,r=Ei(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:t}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:e}}}}function t7(t,e){const n=t,r=Ei(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:e,band:0}}}}function n7(t,e){const n=t,r=Ei(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:e,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function r7(t,e){const n={...t},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(n7(n,e)),n.chromGrid&&n.chromGridOpacity>0&&r.push(t7(n,e)),n.grid&&n.gridOpacity>0&&r.push(e7(n,e)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[Ei(t.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const K3={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},i7={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},a7={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},o7={start:0,middle:.5,end:1},s7={start:"left",middle:"center",end:"right"};function u7(t){if(!t)return;const e=Ke(t)?{text:t}:t;if(!e.text||e.orient=="none")return;const n={"track-title":i7,overlay:a7}[e.style]??{},r={...K3,...n,...e};let i={},a={x:0,y:0};const o=o7[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...K3,...i,...n,...e},f={xOffset:0,yOffset:0};switch(r.orient){case"top":f.yOffset=-s.offset;break;case"right":f.xOffset=s.offset;break;case"bottom":f.yOffset=s.offset;break;case"left":f.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...f,text:s.text,align:s.align??s7[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function f7(t,e,n,r){if(t.type=="wheel"){t.uiEvent.preventDefault();const i=t.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=t.point;if(r){const f=r.mark.encoders;f.x&&!f.x2&&!f.x.constantValue&&(o=+f.x(r.datum)*e.width+e.x),f.y&&!f.y2&&!f.y.constantValue&&(s=(1-+f.y(r.datum))*e.height+e.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:o,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*a/300}):n({x:o,y:s,xDelta:-i.deltaX*a,yDelta:0,zDelta:0})}else if(t.type=="mousedown"&&t.uiEvent.button===0){const i=t.uiEvent;i.preventDefault();let a=i;const o=f=>{n({x:a.clientX,y:a.clientY,xDelta:f.clientX-a.clientX,yDelta:f.clientY-a.clientY,zDelta:0}),a=f},s=f=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class J3 extends so{constructor(n,r,i,a,o,s){super(n,r,i,a,o);ye(this,Or);ye(this,zc);ye(this,Pc);ye(this,Ma);ye(this,of);ye(this,sf);ye(this,uf);ye(this,Uc);ye(this,es);ye(this,jc);ye(this,$o,1/0);ye(this,Ko,10);ye(this,nn,[]);ye(this,Ia,{});ye(this,Jo,0);this.spec=n,br(this,Ko,n.spacing??10),br(this,$o,s),br(this,nn,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){n.layoutParent??(n.layoutParent=this),ie(this,nn).push(new tS(n,this,ie(this,Jo))),vS(this,Jo)._++}setChildren(n){br(this,nn,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=ie(this,nn).findIndex(a=>a.view==n);if(i>=0)ie(this,nn)[i]=new tS(r,this,ie(this,Jo));else throw new Error("Not my child view!")}get children(){return ie(this,nn).map(n=>n.view)}get childCount(){return ie(this,nn).length}onScalesResolved(){super.onScalesResolved(),fe(this,Pc,DS).call(this)}*[Symbol.iterator](){for(const n of ie(this,nn))yield*n.getChildren();for(const n of Object.values(ie(this,Ia)))yield n}getOverhang(){return fe(this,Uc,IS).call(this).union(fe(this,es,qc).call(this))}getSize(){return this._cache("size",()=>new na(fe(this,sf,Yp).call(this,"column"),fe(this,sf,Yp).call(this,"row")).addPadding(fe(this,es,qc).call(this)))}render(n,r,i={}){if(!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(fe(this,es,qc).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=Fw(fe(this,of,Zp).call(this,"column"),r.width,a),s=Fw(fe(this,of,Zp).call(this,"row"),r.height,a),f=new Z3(ie(this,Or,Fa).length,ie(this,$o)??1/0);for(const[u,l]of ie(this,Or,Fa).entries()){const{view:c,axes:h,gridLines:d,background:g,backgroundStroke:b,title:y}=l,[w,E]=f.getCellCoords(u),_=o[fe(this,uf,Wp).call(this,"column",w)],D=s[fe(this,uf,Wp).call(this,"row",E)],T=c.getSize(),N=c.getOverhang(),M=_.location-N.left,R=D.location-N.top,C=(T.width.grow?_.size:T.width.px)+N.width,k=(T.height.grow?D.size:T.height.px)+N.height,L=new Zo(()=>r.x+M,()=>r.y+R,()=>C,()=>k);l.coords=L;const ee=i.clipRect?L.intersect(i.clipRect):L;g==null||g.render(n,ee,{...i,clipRect:void 0});for(const J of Object.values(d))J.render(n,L,i);const ne=d7(c);ne&&c.render(n,L,i),b==null||b.render(n,ee,{...i,clipRect:void 0});for(const[J,be]of Object.entries(h))be.render(n,eS(L,J,be),i);for(const J of Object.values(ie(this,Ia))){const Se=J.axisProps.orient;(Se=="left"&&w==0||Se=="right"&&w==f.nCols-1||Se=="top"&&E==0||Se=="bottom"&&E==f.nRows-1)&&J.render(n,eS(L.shrink(l.view.getOverhang()),Se,J),i)}ne||c.render(n,L,i),y==null||y.render(n,L,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=ie(this,Or,Fa).find(a=>a.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Tt||i instanceof $u)&&f7(n,r.coords,a=>fe(this,jc,MS).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}$o=new WeakMap,Ko=new WeakMap,nn=new WeakMap,Ia=new WeakMap,Jo=new WeakMap,Or=new WeakSet,Fa=function(){return ie(this,nn).filter(n=>n.view.isConfiguredVisible())},zc=new WeakSet,CS=function(){return new Z3(ie(this,Or,Fa).length,ie(this,$o)??1/0)},Pc=new WeakSet,DS=function(){for(const n of Wa){const r=this.resolutions.axis[n];if(r){const i=r.getAxisProps();if(i){const a={title:r.getTitle(),orient:Bc[n][0],...i},o=new Y3(a,r.scaleResolution.type,this.context,this,this);ie(this,Ia)[n]=o,o.visit(s=>{s instanceof Tt&&s.resolve("scale")})}}}for(const n of ie(this,nn))n.createAxes()},Ma=new WeakSet,lf=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const u=ie(this,Or,Fa)[s].getOverhangAndPadding();return n=="column"?o?u.right:u.left:o?u.bottom:u.top}).reduce((s,f)=>Math.max(s,f),0);return this._cache(`size/directionSizes/${n}`,()=>ie(this,zc,CS)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:rF(a.map(o=>ie(this,Or,Fa)[o].view.getSize()[r]))})))},of=new WeakSet,Zp=function(n){const r=fe(this,Ma,lf).call(this,n),i=[];i.push(nu);for(const[a,o]of r.entries())a>0&&i.push({px:ie(this,Ko),grow:0}),(a==0||this.wrappingFacet)&&i.push(nu),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(nu);return i},sf=new WeakSet,Yp=function(n){let r=0,i=0;const a=(n=="row"&&this.spec.height)??(n=="column"&&this.spec.width);if(a||a===0)return Bw(a);const o=fe(this,Ma,lf).call(this,n);for(const[s,f]of o.entries())s>0&&(i+=ie(this,Ko)),(s==0||this.wrappingFacet)&&(i+=0),i+=f.axisBefore,i+=f.view.px??0,r+=f.view.grow??0,i+=f.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},uf=new WeakSet,Wp=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Uc=new WeakSet,IS=function(){const n=fe(this,Ma,lf).call(this,"column"),r=fe(this,Ma,lf).call(this,"row");return!n.length||!r.length?St.zero():new St(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},es=new WeakSet,qc=function(){const n=r=>{const i=Bp[r],a=ie(this,Ia)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new St(n("top"),n("right"),n("bottom"),n("left"))},jc=new WeakSet,MS=function(n,r,i){for(const[a,o]of Object.entries(h7(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),f=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:f.x-s.x,y:f.y-s.y};for(const l of o)l.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?u.x:-u.y)}this.context.animator.requestRender()};function l7(t){if(!(!t||!t.fill||t.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:t.fill,opacity:t.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function c7(t){if(!(!t||!t.stroke||t.strokeWidth===0||t.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:t.strokeWidth??1,color:t.stroke??"lightgray",strokeCap:"square",strokeOpacity:t.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function h7(t){const e={x:new Set,y:new Set};return t.visit(n=>{for(const[r,i]of Object.entries(e)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),e}function d7(t){let e=!0;return t.visit(n=>{n instanceof Tt&&e&&(e=n.mark.properties.clip===!0)}),e}function eS(t,e,n){const r=n.axisProps,i=n.getPerpendicularSize();if(e=="bottom")return t.translate(0,t.height+r.offset).modify({height:i});if(e=="top")return t.translate(0,-i-r.offset).modify({height:i});if(e=="left")return t.translate(-i-r.offset,0).modify({width:i});if(e=="right")return t.translate(t.width+r.offset,0).modify({width:i})}class tS{constructor(e,n,r){if(this.layoutParent=n,this.view=e,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.title=void 0,this.coords=Zo.ZERO,e.needsAxes.x||e.needsAxes.y){const i=e.spec,a="view"in i?i==null?void 0:i.view:void 0,o=l7(a);o&&(this.background=new Tt(o,n.context,n,e,"background"+r),this.background.blockEncodingInheritance=!0);const s=c7(a);s&&(this.backgroundStroke=new Tt(s,n.context,n,e,"backgroundStroke"+r),this.backgroundStroke.blockEncodingInheritance=!0);const f=u7(e.spec.title);if(f){const u=new Tt(f,n.context,n,e,"title"+r);u.blockEncodingInheritance=!0,this.title=u}}}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view}createAxes(){const{view:e,axes:n,gridLines:r}=this,i=(s,f)=>{const u=s.getAxisProps();if(u===null)return;const l=u?{...u}:{};if(!l.orient){for(const c of Bc[f])if(!n[c]){l.orient=c;break}if(!l.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(l.title??(l.title=s.getTitle()),!Bc[f].includes(l.orient))throw new Error(`Invalid axis orientation "${l.orient}" on channel "${f}"!`);return l},a=(s,f,u)=>{const l=i(s,f);if(l){if(n[l.orient])throw new Error(`An axis with the orient "${l.orient}" already exists!`);n[l.orient]=new Y3(l,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,u)}},o=(s,f,u)=>{const l=i(s,f);l&&(l.grid||l.chromGrid)&&(r[l.orient]=new K9(l,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,u))};for(const s of["x","y"])if(e.needsAxes[s]){const f=e.resolutions.axis[s];if(!f)continue;a(f,s,e)}for(const s of["x","y"])if(e.needsAxes[s]){const f=e.getAxisResolution(s);if(!f)continue;o(f,s,e)}if(e instanceof $u){for(const s of e.children)for(const[f,u]of Object.entries(s.resolutions.axis)){const l=u.getAxisProps();l&&l.orient&&a(u,f,s)}for(const s of e.children)for(const[f,u]of Object.entries(s.resolutions.axis)){const l=u.getAxisProps();l&&!l.orient&&a(u,f,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(f=>{f instanceof Tt&&f.resolve("scale")}))}getOverhang(){const e=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new St(e("top"),e("right"),e("bottom"),e("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Lp extends J3{constructor(e,n,r,i,a){super(e,n,r,i,a,Rp(e)?e.columns:kc(e)?1:1/0),this.spec=e}_createChildren(){const e=this.spec,n=Rp(e)?e.concat:kc(e)?e.vconcat:e.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,this,"grid"+i)))}getDefaultResolution(e,n){if(n=="axis")return"independent";if(kc(this.spec)&&e==="x"||iS(this.spec)&&e==="y"){const r=new Set(this.children.map(i=>i.getEncoding()[e]).filter(i=>i).map(i=>"type"in i&&i.type).filter(i=>i));return r.size===1&&(r.has("index")||r.has("locus"))?"shared":"independent"}else return"independent"}}class g7{constructor(){this.types=[];const e=n=>(r,i,a,o,s)=>new n(r,i,a,o,r.name??s);this.addViewType(p7,e(rx)),this.addViewType(rS,e($u)),this.addViewType(nS,e(Tt)),this.addViewType(kc,e(Lp)),this.addViewType(iS,e(Lp)),this.addViewType(Rp,e(Lp))}addViewType(e,n){this.types.push({specGuard:e,factory:n})}createView(e,n,r,i,a){const o=this.types.find(s=>s.specGuard(e));if(o)return o.factory(e,n,r,i,a??"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(e)]))}isViewSpec(e){const n=this.types.filter(r=>r.specGuard(e));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function nS(t){return"mark"in t&&(Ke(t.mark)||Dn(t.mark))}function rS(t){return"layer"in t&&Dn(t.layer)}function p7(t){return"import"in t}function kc(t){return"vconcat"in t&&Xt(t.vconcat)}function iS(t){return"hconcat"in t&&Xt(t.hconcat)}function Rp(t){return"concat"in t&&Xt(t.concat)}class m7 extends J3{constructor(e,n){super({vconcat:[]},e,void 0,void 0,"implicitRoot",1),n.layoutParent=this,n.dataParent=this,this.appendChild(n)}}i1("fasta",O9);class aS{constructor(e,n,r={}){this.container=e,this.spec=n,this.accessorFactory=new hM,this.viewFactory=new g7,this.namedDataProviders=[],this.animator=new T9(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=i=>i.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new z9(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:q9,refseqgene:U9,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(e){this.namedDataProviders.unshift(e)}getNamedDataFromProvider(e){for(const n of this.namedDataProviders){const r=n(e);if(r)return r}}updateNamedData(e,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(e);if(!r)throw new Error("No such named data source: "+e);r.dataSource.updateDynamicData(n);for(const i of r.hosts)i.visit(a=>{for(const o of Object.values(a.resolutions.scale))o.reconfigure()});this.animator.requestRender()}broadcast(e,n){var i;const r={type:e,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(e))==null||i.forEach(a=>a(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new MN(this.container,()=>this.viewRoot?S9(this.viewRoot):{width:void 0,height:void 0},this.spec.background),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new I4(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[e,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(e,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new N9(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const e=this,n={dataFlow:new z3,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new k9(this._glHelper),get devicePixelRatio(){return e._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,f)=>{document.addEventListener(s,f);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(f)},addBroadcastListener(s,f){const u=e._extraBroadcastListeners;let l=u.get(s);l||(l=new Set,u.set(s,l)),l.add(f)},removeBroadcastListener(s,f){var l;(l=e._extraBroadcastListeners.get(s))==null||l.delete(f)},isViewConfiguredVisible:e.viewVisibilityPredicate,isViewSpec:s=>e.viewFactory.isViewSpec(s),createView:function(s,f,u,l){return e.viewFactory.createView(s,n,f,u,l)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,null,"viewRoot"),await j3(this.viewRoot),(this.viewRoot.needsAxes.x||this.viewRoot.needsAxes.y)&&(this.viewRoot=new m7(n,this.viewRoot)),v9(this.viewRoot),A9(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof Tt&&i.push(s)});const a=p9(this.viewRoot,n.dataFlow);x9(a),this.broadcast("dataFlowBuilt",a),i.forEach(s=>s.mark.initializeEncoders());const o=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)a.addObserver(f=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(s=>s.load())),nx(this.viewRoot),this.broadcast("dataLoaded"),await o,this.viewRoot.visit(s=>{for(const f of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(f)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>Tl(s,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(e){const n=`${e.view?`At "${e.view.getPathString()}": `:""}${e.toString()}`;return console.error(e.stack),b7(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const e=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const a=e.getBoundingClientRect(),o=new D9(r.clientX-a.left-e.clientLeft,r.clientY-a.top-e.clientTop),s=f=>{this.viewRoot.propagateInteractionEvent(new C9(o,f)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(o.x,o.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const f=r;if(Math.abs(f.deltaX)>Math.abs(f.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=P9(f);this._wheelInertia.setMomentum(f.deltaY*(f.deltaMode?80:1),l=>{const c=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:l});s(c)}),f.preventDefault();return}}if(r.type=="click"){const f=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(u=>u.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(u=>u(f))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>e.addEventListener(r,n)),e.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),e.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(e,n){var a;const r=this._glHelper.readPickingPixel(e,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Tt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(f=>{s(f)==i&&(this._currentHover={mark:o.mark,datum:f,uniqueId:i})})}if(this._currentHover)return ru}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const f=o.properties.tooltip;if(f!==null){const u=(f==null?void 0:f.handler)??"default",l=this.tooltipHandlers[u];if(!l)throw new Error("No such tooltip handler: "+u);return l(s,o,f==null?void 0:f.params)}})}}updateTooltip(e,n){if(!this._tooltipUpdateRequested||!e)this.tooltip.updateWithDatum(e,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const e=this.viewRoot;if(!e)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new H3({picking:!1},this._glHelper),this._pickingContext=new H3({picking:!0},this._glHelper),e.render(new _9(this._renderingContext,this._pickingContext),Zo.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var e;(e=this._renderingContext)==null||e.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const e=[];return this.viewRoot.visit(n=>{n instanceof Tt&&n.getAccessor("search")&&e.push(n)}),e}getNamedScaleResolutions(){const e=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&e.set(r.name,r)}),e}}function b7(t,e){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=e,n.appendChild(r),t.appendChild(n)}const y7="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+",w7="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";async function x7(t,e,n={}){let r;if(Ke(t)){if(r=document.querySelector(t),!r)throw new Error(`No such element: ${t}`)}else if(t instanceof HTMLElement)r=t;else throw new Error(`Invalid element: ${t}`);let i;try{const a=Dn(e)?e:await oS(e);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new aS(r,a,n),v7(i,n),await i.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let f=s.get(a);f||(f=new Set,s.set(a,f)),f.add(o)},removeEventListener(a,o){var f;(f=i._eventListeners.get(a))==null||f.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function v7(t,e){e.namedDataProvider&&t.registerNamedDataProvider(e.namedDataProvider)}async function oS(t){let e;try{e=JSON.parse(await Bf().load(t))}catch(n){throw new Error(`Could not load or parse configuration: ${t}, reason: ${n.message}`)}if(!e.baseUrl){const n=t.match(/^[^?#]*\//);e.baseUrl=n&&n[0]||"./"}return e}ge.GenomeSpy=aS,ge.embed=x7,ge.favIcon=w7,ge.html=Zn,ge.icon=y7,ge.loadSpec=oS,Object.defineProperty(ge,Symbol.toStringTag,{value:"Module"})});
|
|
356
|
+
`))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class z9{constructor(e,n){this.animator=e,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(e,n){if(this.disabled){n(e);return}e*this.momentum<0?this.momentum=0:Math.abs(e)>this.accelerationThreshold?this.momentum=YS([this.momentum,e],this.acceleration):this.momentum=e,this.callback=n,this.loop||this.animate()}animate(e){this.callback(this.momentum);const n=e-this.timestamp||0;this.timestamp=e;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function P9(t){const e={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in t){const a=i;!r.includes(i)&&n.includes(typeof t[a])&&(e[a]=t[a])}return e}const V3=new Map;async function U9(t,e,n){const r=t.symbol;let i=V3.get(r)??await H9(t.symbol);return i?(V3.set(r,i),qn`<div class="title"><strong>${i.name}</strong> ${i.description}</div><p class="summary">${i.summary}</p><p class="source">Source: NCBI RefSeq Gene</p>`):null}async function j9(t){console.log("Searching: "+t);const e={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${t}[GENE]&sort=relevance&retmode=json`,e).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,e).then(o=>o.json())).result[r]:null}const G9=Ec(j9,500);function H9(t){return G9(t)}const Q9=pt(".4~r"),V9=pt(".4~e");function q3(t){return t==null?qn`<span class="na">NA</span>`:Ke(t)?t.substring(0,30):Number.isInteger(t)?""+t:Lt(t)?Math.abs(t)>Math.pow(10,8)||Math.abs(t)<Math.pow(10,-8)?V9(t):Q9(t):pf(t)?t?"True":"False":Xt(t)?qn`${t.map((e,n)=>[q3(e),n<t.length-1?", ":at])}`:"?"+typeof t+" "+t}async function q9(t,e,n){const r=(f,u)=>{var l;for(const[c,h]of Object.entries(e.encoders))if((l=h==null?void 0:h.accessor)!=null&&l.fields.includes(f))switch(c){case"color":case"fill":case"stroke":return qn`<span class="color-legend" style="${`background-color: ${h(u)}`}"></span>`}return""},i=Object.entries(t).filter(([f,u])=>!f.startsWith("_"));if(i.length===0)return;const a=qn`<table class="attributes">${i.map(([f,u])=>qn`<tr><th>${f}</th><td>${q3(u)} ${r(f,t)}</td></tr>`)}</table>`,o=e.unitView.getTitleText(),s=o?qn`<div class="title"><strong>${o}</strong></div>`:"";return qn`${s}${a}`}class $u extends oo{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e,this.children=(e.layer||[]).map((o,s)=>{if(rS(o)||nS(o))return n.createView(o,this,this,"layer"+s);throw new Error("LayerView accepts only unit or layer specs as children!")}),this.needsAxes={x:!0,y:!0}}*[Symbol.iterator](){for(const e of this.children)yield e}render(e,n,r={}){if(this.isConfiguredVisible()){e.pushView(this,n);for(const i of this.children)i.render(e,n,r);e.popView(this)}}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0);for(let n=this.children.length-1;n>=0;n--)if(this.children[n].propagateInteractionEvent(e),e.stopped)return;this.handleInteractionEvent(void 0,e,!1)}}class Z3{constructor(e,n){this.n=e,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];e.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return e}get colIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];e.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return e}getCellIndex(e,n){let r=0;if(this.maxCols==1/0)r=n==0?e:void 0;else{if(e>=this.maxCols)return;r=n*this.nCols+e}return r<this.n?r:void 0}getCellCoords(e){if(!(e<0||e>=this.n))return[e%this.nCols,Math.floor(e/this.nCols)]}}const Z9="chromosome_ticks_and_labels",Y9={x:"width",y:"height"};function Bp(t){return t=="x"?"y":"x"}const Bc={x:["bottom","top"],y:["left","right"]},kp=Object.fromEntries(Object.entries(Bc).map(([t,e])=>e.map(n=>[n,t])).flat(1));function Ai(t){return kp[t]}class Y3 extends $u{constructor(e,n,r,i,a){const o=n=="locus",s={...o?X9:W3,...W9(n,e),...e};super(o?$9(s,n):X3(s,n),r,i,a,`axis_${e.orient}`),this.axisProps=s,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getSize(){const e={px:this.getPerpendicularSize()},n={grow:1};return kp[this.axisProps.orient]=="x"?new na(n,e):new na(e,n)}getPerpendicularSize(){return Lp(this.axisProps)}isPickingSupported(){return!1}}function Lp(t){const e=Ai(t.orient);let n=t.ticks&&t.tickSize||0;return t.labels&&(n+=t.labelPadding,e=="x"?n+=t.labelFontSize:n+=30),t.title&&(n+=t.titlePadding+t.titleFontSize),n=Math.min(t.maxExtent||1/0,Math.max(t.minExtent||0,n)),n}const W3={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function W9(t,e){const n=e.orient,r=t=="nominal"||t=="ordinal";let i="center",a="middle",o=e.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function X3(t,e){const n={...t,extent:Lp(t)},r=Ai(n.orient),i=Bp(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),f=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:e},text:{field:"label"}}}),u=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),l=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-o}}),c=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:e}},layer:[]};return n.ticks&&d.layer.push(u()),n.labels&&d.layer.push(f()),d},h={resolve:{scale:{[r]:"forced"}},[Y9[Bp(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:t}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(c()),n.title&&h.layer.push(l()),h}const X9={...W3,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function $9(t,e){const n={...t,extent:Lp(t)},r=Ai(n.orient),i=Bp(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:t.chromTickDash,strokeDashOffset:t.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:t.chromTickColor,size:n.chromTickWidth}}),s=()=>{let l;switch(n.orient){case"top":l={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":l={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":l={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":l={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:l={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:t.chromLabelAlign,baseline:"alphabetic",clip:!1,...l},encoding:{[r+"2"]:{field:"continuousEnd",type:e},text:{field:"name"}}}};let f;switch(n.orient){case"bottom":case"top":f={};break;case"left":f={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":f={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:f={}}const u=X3({...t,...f},e);if(t.chromTicks||t.chromLabels){const l={name:Z9,data:{lazy:{type:"axisGenome",channel:Ai(n.orient)}},encoding:{[r]:{field:"continuousStart",type:e,band:0}},layer:[]};if(t.chromTicks&&l.layer.push(o()),t.chromLabels){l.layer.push(s());let c;u.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{c=d.mark})),c&&(n.orient=="top"||n.orient=="bottom"?(c.viewportEdgeFadeWidthLeft=30,c.viewportEdgeFadeDistanceLeft=40):(c.viewportEdgeFadeWidthBottom=30,c.viewportEdgeFadeDistanceBottom=40))}u.layer.push(l)}return u}class K9 extends $u{constructor(e,n,r,i,a){const s={...n=="locus"?J9:$3,...e};super(r7(s,n),r,i,a,`axisGrid_${e.orient}`),this.axisProps=s,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const $3={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},J9={...$3,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function e7(t,e){const n=t,r=Ai(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:t}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:e}}}}function t7(t,e){const n=t,r=Ai(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:e,band:0}}}}function n7(t,e){const n=t,r=Ai(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:e,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function r7(t,e){const n={...t},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(n7(n,e)),n.chromGrid&&n.chromGridOpacity>0&&r.push(t7(n,e)),n.grid&&n.gridOpacity>0&&r.push(e7(n,e)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[Ai(t.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const K3={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},i7={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},a7={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},o7={start:0,middle:.5,end:1},s7={start:"left",middle:"center",end:"right"};function u7(t){if(!t)return;const e=Ke(t)?{text:t}:t;if(!e.text||e.orient=="none")return;const n={"track-title":i7,overlay:a7}[e.style]??{},r={...K3,...n,...e};let i={},a={x:0,y:0};const o=o7[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...K3,...i,...n,...e},f={xOffset:0,yOffset:0};switch(r.orient){case"top":f.yOffset=-s.offset;break;case"right":f.xOffset=s.offset;break;case"bottom":f.yOffset=s.offset;break;case"left":f.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...f,text:s.text,align:s.align??s7[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function f7(t,e,n,r){if(t.type=="wheel"){t.uiEvent.preventDefault();const i=t.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=t.point;if(r){const f=r.mark.encoders;f.x&&!f.x2&&!f.x.constantValue&&(o=+f.x(r.datum)*e.width+e.x),f.y&&!f.y2&&!f.y.constantValue&&(s=(1-+f.y(r.datum))*e.height+e.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:o,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*a/300}):n({x:o,y:s,xDelta:-i.deltaX*a,yDelta:0,zDelta:0})}else if(t.type=="mousedown"&&t.uiEvent.button===0){const i=t.uiEvent;i.preventDefault();let a=i;const o=f=>{n({x:a.clientX,y:a.clientY,xDelta:f.clientX-a.clientX,yDelta:f.clientY-a.clientY,zDelta:0}),a=f},s=f=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class J3 extends oo{constructor(n,r,i,a,o,s){super(n,r,i,a,o);ye(this,Rr);ye(this,zc);ye(this,Pc);ye(this,Ma);ye(this,of);ye(this,sf);ye(this,uf);ye(this,Uc);ye(this,Jo);ye(this,jc);ye(this,Xo,1/0);ye(this,$o,10);ye(this,rn,[]);ye(this,Ia,{});ye(this,Ko,0);this.spec=n,br(this,$o,n.spacing??10),br(this,Xo,s),br(this,rn,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){n.layoutParent??(n.layoutParent=this),ie(this,rn).push(new tS(n,this,ie(this,Ko))),vS(this,Ko)._++}setChildren(n){br(this,rn,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=ie(this,rn).findIndex(a=>a.view==n);if(i>=0)ie(this,rn)[i]=new tS(r,this,ie(this,Ko));else throw new Error("Not my child view!")}get children(){return ie(this,rn).map(n=>n.view)}get childCount(){return ie(this,rn).length}onScalesResolved(){super.onScalesResolved(),fe(this,Pc,DS).call(this)}*[Symbol.iterator](){for(const n of ie(this,rn))yield*n.getChildren();for(const n of Object.values(ie(this,Ia)))yield n}getOverhang(){return fe(this,Uc,IS).call(this).union(fe(this,Jo,qc).call(this))}getSize(){return this._cache("size",()=>new na(fe(this,sf,Wp).call(this,"column"),fe(this,sf,Wp).call(this,"row")).addPadding(fe(this,Jo,qc).call(this)))}render(n,r,i={}){if(!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(fe(this,Jo,qc).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=Bw(fe(this,of,Yp).call(this,"column"),r.width,a),s=Bw(fe(this,of,Yp).call(this,"row"),r.height,a),f=new Z3(ie(this,Rr,Na).length,ie(this,Xo)??1/0);for(const[u,l]of ie(this,Rr,Na).entries()){const{view:c,axes:h,gridLines:d,background:g,backgroundStroke:b,title:y}=l,[w,E]=f.getCellCoords(u),_=o[fe(this,uf,Xp).call(this,"column",w)],D=s[fe(this,uf,Xp).call(this,"row",E)],T=c.getSize(),N=c.getOverhang(),M=_.location-N.left,R=D.location-N.top,C=(T.width.grow?_.size:T.width.px)+N.width,k=(T.height.grow?D.size:T.height.px)+N.height,L=new qo(()=>r.x+M,()=>r.y+R,()=>C,()=>k);l.coords=L;const ee=i.clipRect?L.intersect(i.clipRect):L;g==null||g.render(n,ee,{...i,clipRect:void 0});for(const J of Object.values(d))J.render(n,L,i);const ne=d7(c);ne&&c.render(n,L,i),b==null||b.render(n,ee,{...i,clipRect:void 0});for(const[J,be]of Object.entries(h))be.render(n,eS(L,J,be),i);for(const J of Object.values(ie(this,Ia))){const Se=J.axisProps.orient;(Se=="left"&&w==0||Se=="right"&&w==f.nCols-1||Se=="top"&&E==0||Se=="bottom"&&E==f.nRows-1)&&J.render(n,eS(L.shrink(l.view.getOverhang()),Se,J),i)}ne||c.render(n,L,i),y==null||y.render(n,L,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=ie(this,Rr,Na).find(a=>a.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Tt||i instanceof $u)&&f7(n,r.coords,a=>fe(this,jc,MS).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Xo=new WeakMap,$o=new WeakMap,rn=new WeakMap,Ia=new WeakMap,Ko=new WeakMap,Rr=new WeakSet,Na=function(){return ie(this,rn).filter(n=>n.view.isConfiguredVisible())},zc=new WeakSet,CS=function(){return new Z3(ie(this,Rr,Na).length,ie(this,Xo)??1/0)},Pc=new WeakSet,DS=function(){for(const n of Ya){const r=this.resolutions.axis[n];if(r){const i=r.getAxisProps();if(i){const a={title:r.getTitle(),orient:Bc[n][0],...i},o=new Y3(a,r.scaleResolution.type,this.context,this,this);ie(this,Ia)[n]=o,o.visit(s=>{s instanceof Tt&&s.resolve("scale")})}}}for(const n of ie(this,rn))n.createAxes()},Ma=new WeakSet,lf=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const u=ie(this,Rr,Na)[s].getOverhangAndPadding();return n=="column"?o?u.right:u.left:o?u.bottom:u.top}).reduce((s,f)=>Math.max(s,f),0);return this._cache(`size/directionSizes/${n}`,()=>ie(this,zc,CS)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:rF(a.map(o=>ie(this,Rr,Na)[o].view.getSize()[r]))})))},of=new WeakSet,Yp=function(n){const r=fe(this,Ma,lf).call(this,n),i=[];i.push(tu);for(const[a,o]of r.entries())a>0&&i.push({px:ie(this,$o),grow:0}),(a==0||this.wrappingFacet)&&i.push(tu),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(tu);return i},sf=new WeakSet,Wp=function(n){let r=0,i=0;const a=(n=="row"&&this.spec.height)??(n=="column"&&this.spec.width);if(a||a===0)return kw(a);const o=fe(this,Ma,lf).call(this,n);for(const[s,f]of o.entries())s>0&&(i+=ie(this,$o)),(s==0||this.wrappingFacet)&&(i+=0),i+=f.axisBefore,i+=f.view.px??0,r+=f.view.grow??0,i+=f.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},uf=new WeakSet,Xp=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Uc=new WeakSet,IS=function(){const n=fe(this,Ma,lf).call(this,"column"),r=fe(this,Ma,lf).call(this,"row");return!n.length||!r.length?_t.zero():new _t(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},Jo=new WeakSet,qc=function(){const n=r=>{const i=kp[r],a=ie(this,Ia)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new _t(n("top"),n("right"),n("bottom"),n("left"))},jc=new WeakSet,MS=function(n,r,i){for(const[a,o]of Object.entries(h7(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),f=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:f.x-s.x,y:f.y-s.y};for(const l of o)l.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?u.x:-u.y)}this.context.animator.requestRender()};function l7(t){if(!(!t||!t.fill||t.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:t.fill,opacity:t.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function c7(t){if(!(!t||!t.stroke||t.strokeWidth===0||t.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:t.strokeWidth??1,color:t.stroke??"lightgray",strokeCap:"square",strokeOpacity:t.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function h7(t){const e={x:new Set,y:new Set};return t.visit(n=>{for(const[r,i]of Object.entries(e)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),e}function d7(t){let e=!0;return t.visit(n=>{n instanceof Tt&&e&&(e=n.mark.properties.clip===!0)}),e}function eS(t,e,n){const r=n.axisProps,i=n.getPerpendicularSize();if(e=="bottom")return t.translate(0,t.height+r.offset).modify({height:i});if(e=="top")return t.translate(0,-i-r.offset).modify({height:i});if(e=="left")return t.translate(-i-r.offset,0).modify({width:i});if(e=="right")return t.translate(t.width+r.offset,0).modify({width:i})}class tS{constructor(e,n,r){if(this.layoutParent=n,this.view=e,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.title=void 0,this.coords=qo.ZERO,e.needsAxes.x||e.needsAxes.y){const i=e.spec,a="view"in i?i==null?void 0:i.view:void 0,o=l7(a);o&&(this.background=new Tt(o,n.context,n,e,"background"+r),this.background.blockEncodingInheritance=!0);const s=c7(a);s&&(this.backgroundStroke=new Tt(s,n.context,n,e,"backgroundStroke"+r),this.backgroundStroke.blockEncodingInheritance=!0);const f=u7(e.spec.title);if(f){const u=new Tt(f,n.context,n,e,"title"+r);u.blockEncodingInheritance=!0,this.title=u}}}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view}createAxes(){const{view:e,axes:n,gridLines:r}=this,i=(s,f)=>{const u=s.getAxisProps();if(u===null)return;const l=u?{...u}:{};if(!l.orient){for(const c of Bc[f])if(!n[c]){l.orient=c;break}if(!l.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(l.title??(l.title=s.getTitle()),!Bc[f].includes(l.orient))throw new Error(`Invalid axis orientation "${l.orient}" on channel "${f}"!`);return l},a=(s,f,u)=>{const l=i(s,f);if(l){if(n[l.orient])throw new Error(`An axis with the orient "${l.orient}" already exists!`);n[l.orient]=new Y3(l,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,u)}},o=(s,f,u)=>{const l=i(s,f);l&&(l.grid||l.chromGrid)&&(r[l.orient]=new K9(l,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,u))};for(const s of["x","y"])if(e.needsAxes[s]){const f=e.resolutions.axis[s];if(!f)continue;a(f,s,e)}for(const s of["x","y"])if(e.needsAxes[s]){const f=e.getAxisResolution(s);if(!f)continue;o(f,s,e)}if(e instanceof $u){for(const s of e.children)for(const[f,u]of Object.entries(s.resolutions.axis)){const l=u.getAxisProps();l&&l.orient&&a(u,f,s)}for(const s of e.children)for(const[f,u]of Object.entries(s.resolutions.axis)){const l=u.getAxisProps();l&&!l.orient&&a(u,f,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(f=>{f instanceof Tt&&f.resolve("scale")}))}getOverhang(){const e=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new _t(e("top"),e("right"),e("bottom"),e("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Rp extends J3{constructor(e,n,r,i,a){super(e,n,r,i,a,Op(e)?e.columns:kc(e)?1:1/0),this.spec=e}_createChildren(){const e=this.spec,n=Op(e)?e.concat:kc(e)?e.vconcat:e.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,this,"grid"+i)))}getDefaultResolution(e,n){if(n=="axis")return"independent";if(kc(this.spec)&&e==="x"||iS(this.spec)&&e==="y"){const r=new Set(this.children.map(i=>i.getEncoding()[e]).filter(i=>i).map(i=>"type"in i&&i.type).filter(i=>i));return r.size===1&&(r.has("index")||r.has("locus"))?"shared":"independent"}else return"independent"}}class g7{constructor(){this.types=[];const e=n=>(r,i,a,o,s)=>new n(r,i,a,o,r.name??s);this.addViewType(p7,e(rx)),this.addViewType(rS,e($u)),this.addViewType(nS,e(Tt)),this.addViewType(kc,e(Rp)),this.addViewType(iS,e(Rp)),this.addViewType(Op,e(Rp))}addViewType(e,n){this.types.push({specGuard:e,factory:n})}createView(e,n,r,i,a){const o=this.types.find(s=>s.specGuard(e));if(o)return o.factory(e,n,r,i,a??"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(e)]))}isViewSpec(e){const n=this.types.filter(r=>r.specGuard(e));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function nS(t){return"mark"in t&&(Ke(t.mark)||Dn(t.mark))}function rS(t){return"layer"in t&&Dn(t.layer)}function p7(t){return"import"in t}function kc(t){return"vconcat"in t&&Xt(t.vconcat)}function iS(t){return"hconcat"in t&&Xt(t.hconcat)}function Op(t){return"concat"in t&&Xt(t.concat)}class m7 extends J3{constructor(e,n){super({vconcat:[]},e,void 0,void 0,"implicitRoot",1),n.layoutParent=this,n.dataParent=this,this.appendChild(n)}}a1("fasta",O9);class aS{constructor(e,n,r={}){this.container=e,this.spec=n,this.accessorFactory=new hM,this.viewFactory=new g7,this.namedDataProviders=[],this.animator=new T9(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=i=>i.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new z9(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:q9,refseqgene:U9,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(e){this.namedDataProviders.unshift(e)}getNamedDataFromProvider(e){for(const n of this.namedDataProviders){const r=n(e);if(r)return r}}updateNamedData(e,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(e);if(!r)throw new Error("No such named data source: "+e);r.dataSource.updateDynamicData(n),g0(r.hosts),this.animator.requestRender()}broadcast(e,n){var i;const r={type:e,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(e))==null||i.forEach(a=>a(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new MN(this.container,()=>this.viewRoot?S9(this.viewRoot):{width:void 0,height:void 0},this.spec.background),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new I4(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[e,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(e,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new N9(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const e=this,n={dataFlow:new z3,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new k9(this._glHelper),get devicePixelRatio(){return e._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,f)=>{document.addEventListener(s,f);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(f)},addBroadcastListener(s,f){const u=e._extraBroadcastListeners;let l=u.get(s);l||(l=new Set,u.set(s,l)),l.add(f)},removeBroadcastListener(s,f){var l;(l=e._extraBroadcastListeners.get(s))==null||l.delete(f)},isViewConfiguredVisible:e.viewVisibilityPredicate,isViewSpec:s=>e.viewFactory.isViewSpec(s),createView:function(s,f,u,l){return e.viewFactory.createView(s,n,f,u,l)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,null,"viewRoot"),await j3(this.viewRoot),(this.viewRoot.needsAxes.x||this.viewRoot.needsAxes.y)&&(this.viewRoot=new m7(n,this.viewRoot)),v9(this.viewRoot),A9(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof Tt&&i.push(s)});const a=p9(this.viewRoot,n.dataFlow);x9(a),this.broadcast("dataFlowBuilt",a),i.forEach(s=>s.mark.initializeEncoders());const o=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)a.addObserver(f=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(s=>s.load())),g0(this.viewRoot),this.broadcast("dataLoaded"),await o,this.viewRoot.visit(s=>{for(const f of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(f)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>Tl(s,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(e){const n=`${e.view?`At "${e.view.getPathString()}": `:""}${e.toString()}`;return console.error(e.stack),b7(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const e=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const a=e.getBoundingClientRect(),o=new D9(r.clientX-a.left-e.clientLeft,r.clientY-a.top-e.clientTop),s=f=>{this.viewRoot.propagateInteractionEvent(new C9(o,f)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(o.x,o.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const f=r;if(Math.abs(f.deltaX)>Math.abs(f.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=P9(f);this._wheelInertia.setMomentum(f.deltaY*(f.deltaMode?80:1),l=>{const c=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:l});s(c)}),f.preventDefault();return}}if(r.type=="click"){const f=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(u=>u.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(u=>u(f))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>e.addEventListener(r,n)),e.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),e.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(e,n){var a;const r=this._glHelper.readPickingPixel(e,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Tt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(f=>{s(f)==i&&(this._currentHover={mark:o.mark,datum:f,uniqueId:i})})}if(this._currentHover)return nu}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const f=o.properties.tooltip;if(f!==null){const u=(f==null?void 0:f.handler)??"default",l=this.tooltipHandlers[u];if(!l)throw new Error("No such tooltip handler: "+u);return l(s,o,f==null?void 0:f.params)}})}}updateTooltip(e,n){if(!this._tooltipUpdateRequested||!e)this.tooltip.updateWithDatum(e,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const e=this.viewRoot;if(!e)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new H3({picking:!1},this._glHelper),this._pickingContext=new H3({picking:!0},this._glHelper),e.render(new _9(this._renderingContext,this._pickingContext),qo.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var e;(e=this._renderingContext)==null||e.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const e=[];return this.viewRoot.visit(n=>{n instanceof Tt&&n.getAccessor("search")&&e.push(n)}),e}getNamedScaleResolutions(){const e=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&e.set(r.name,r)}),e}}function b7(t,e){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=e,n.appendChild(r),t.appendChild(n)}const y7="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+",w7="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";async function x7(t,e,n={}){let r;if(Ke(t)){if(r=document.querySelector(t),!r)throw new Error(`No such element: ${t}`)}else if(t instanceof HTMLElement)r=t;else throw new Error(`Invalid element: ${t}`);let i;try{const a=Dn(e)?e:await oS(e);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new aS(r,a,n),v7(i,n),await i.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let f=s.get(a);f||(f=new Set,s.set(a,f)),f.add(o)},removeEventListener(a,o){var f;(f=i._eventListeners.get(a))==null||f.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function v7(t,e){e.namedDataProvider&&t.registerNamedDataProvider(e.namedDataProvider)}async function oS(t){let e;try{e=JSON.parse(await Bf().load(t))}catch(n){throw new Error(`Could not load or parse configuration: ${t}, reason: ${n.message}`)}if(!e.baseUrl){const n=t.match(/^[^?#]*\//);e.baseUrl=n&&n[0]||"./"}return e}ge.GenomeSpy=aS,ge.embed=x7,ge.favIcon=w7,ge.html=qn,ge.icon=y7,ge.loadSpec=oS,Object.defineProperty(ge,Symbol.toStringTag,{value:"Module"})});
|