@genome-spy/core 0.32.2 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,21 +1,21 @@
1
- (function(re,ne){typeof exports=="object"&&typeof module<"u"?ne(exports):typeof define=="function"&&define.amd?define(["exports"],ne):(re=typeof globalThis<"u"?globalThis:re||self,ne(re.genomeSpyEmbed={}))})(this,function(re){var cu,gg,cr,Ji,fr,$i,fa,la,rn,ha,fu,pg,Gn,ei,zf,Mv,Rf,Tv,qi,wu,lu,mg,hu,bg,du,yg,Of,Nv,gu;"use strict";var O9=Object.defineProperty;var P9=(re,ne,Ue)=>ne in re?O9(re,ne,{enumerable:!0,configurable:!0,writable:!0,value:Ue}):re[ne]=Ue;var Vn=(re,ne,Ue)=>(P9(re,typeof ne!="symbol"?ne+"":ne,Ue),Ue),dg=(re,ne,Ue)=>{if(!ne.has(re))throw TypeError("Cannot "+Ue)};var Me=(re,ne,Ue)=>(dg(re,ne,"read from private field"),Ue?Ue.call(re):ne.get(re)),rt=(re,ne,Ue)=>{if(ne.has(re))throw TypeError("Cannot add the same private member more than once");ne instanceof WeakSet?ne.add(re):ne.set(re,Ue)},ba=(re,ne,Ue,ti)=>(dg(re,ne,"write to private field"),ti?ti.call(re,Ue):ne.set(re,Ue),Ue),Iv=(re,ne,Ue,ti)=>({set _(Qf){ba(re,ne,Qf,Ue)},get _(){return Me(re,ne,ti)}}),be=(re,ne,Ue)=>(dg(re,ne,"access private method"),Ue);function ne(e,t,n){return e.fields=t||[],e.fname=n,e}function Ue(e){return e==null?null:e.fname}function ti(e){return e==null?null:e.fields}function Qf(e){return e.length===1?Bv(e[0]):Fv(e)}const Bv=e=>function(t){return t[e]},Fv=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function ze(e){throw Error(e)}function kv(e){const t=[],n=e.length;let r=null,i=0,o="",a,s,c;e=e+"";function u(){t.push(o+e.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(c=e[s],c==="\\")o+=e.substring(a,s),o+=e.substring(++s,++s),a=s;else if(c===r)u(),r=null,i=-1;else{if(r)continue;a===i&&c==='"'||a===i&&c==="'"?(a=s+1,r=c):c==="."&&!i?s>a?u():a=s+1:c==="["?(s>a&&u(),i=a=s+1):c==="]"&&(i||ze("Access path missing open bracket: "+e),i>0&&u(),i=0,a=s+1)}return i&&ze("Access path missing closing bracket: "+e),r&&ze("Access path missing closing quote: "+e),s>a&&(s++,u()),t}function xu(e,t,n){const r=kv(e);return e=r.length===1?r[0]:e,ne((n&&n.get||Qf)(r),[e],t||e)}xu("id");const Au=ne(e=>e,[],"identity");ne(()=>0,[],"zero"),ne(()=>1,[],"one"),ne(()=>!0,[],"true"),ne(()=>!1,[],"false");var Ut=Array.isArray;function an(e){return e===Object(e)}function sn(e){return e[e.length-1]}function ya(e){return e==null||e===""?null:+e}const wg=e=>t=>e*Math.exp(t),xg=e=>t=>Math.log(e*t),Lv=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),zv=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,vu=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Vf(e,t,n,r){const i=n(e[0]),o=n(sn(e)),a=(o-i)*t;return[r(i-a),r(o-a)]}function Rv(e,t){return Vf(e,t,ya,Au)}function Ov(e,t){var n=Math.sign(e[0]);return Vf(e,t,xg(n),wg(n))}function Pv(e,t,n){return Vf(e,t,vu(n),vu(1/n))}function Eu(e,t,n,r,i){const o=r(e[0]),a=r(sn(e)),s=t!=null?r(t):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function Ag(e,t,n){return Eu(e,t,n,ya,Au)}function vg(e,t,n){const r=Math.sign(e[0]);return Eu(e,t,n,xg(r),wg(r))}function Zf(e,t,n,r){return Eu(e,t,n,vu(r),vu(1/r))}function Uv(e,t,n,r){return Eu(e,t,n,Lv(r),zv(r))}function Yf(e){return e!=null?Ut(e)?e:[e]:[]}function jv(e,t,n){let r=e[0],i=e[1],o;return i<r&&(o=i,i=r,r=o),o=i-r,o>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-o),r+o]}function vt(e){return typeof e=="function"}const Gv="descending";function Eg(e,t,n){n=n||{},t=Yf(t)||[];const r=[],i=[],o={},a=n.comparator||Hv;return Yf(e).forEach((s,c)=>{s!=null&&(r.push(t[c]===Gv?-1:1),i.push(s=vt(s)?s:xu(s,null,n)),(ti(s)||[]).forEach(u=>o[u]=1))}),i.length===0?null:ne(a(i,r),Object.keys(o))}const Cg=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),Hv=(e,t)=>e.length===1?Qv(e[0],t[0]):Vv(e,t,e.length),Qv=(e,t)=>function(n,r){return Cg(e(n),e(r))*t},Vv=(e,t,n)=>(t.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=e[s],a=Cg(o(r),o(i));return a*t[s]});function Zv(e){return vt(e)?e:()=>e}function qf(e){for(let t,n,r=1,i=arguments.length;r<i;++r){t=arguments[r];for(n in t)e[n]=t[n]}return e}const Yv=Object.prototype.hasOwnProperty;function ni(e,t){return Yv.call(e,t)}function Cu(e){return typeof e=="boolean"}function qv(e){return Object.prototype.toString.call(e)==="[object Date]"}function Wv(e){return e&&vt(e[Symbol.iterator])}function Et(e){return typeof e=="number"}function Re(e){return typeof e=="string"}function Xv(e,t){const n=e[0],r=sn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function Su(e){return e&&sn(e)-e[0]||0}function Du(e){return Ut(e)?"["+e.map(Du)+"]":an(e)||Re(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function Kv(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const Jv=e=>Et(e)||qv(e)?e:Date.parse(e);function $v(e,t){return t=t||Jv,e==null||e===""?null:t(e)}function eE(e){return e==null||e===""?null:e+""}function Iu(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var Sg={},Wf={},Xf=34,wa=10,Kf=13;function Dg(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function tE(e,t){var n=Dg(e);return function(r,i){return t(n(r),i,e)}}function Ig(e){var t=Object.create(null),n=[];return e.forEach(function(r){for(var i in r)i in t||n.push(t[i]=i)}),n}function Ct(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function nE(e){return e<0?"-"+Ct(-e,6):e>9999?"+"+Ct(e,6):Ct(e,4)}function rE(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":nE(e.getUTCFullYear())+"-"+Ct(e.getUTCMonth()+1,2)+"-"+Ct(e.getUTCDate(),2)+(i?"T"+Ct(t,2)+":"+Ct(n,2)+":"+Ct(r,2)+"."+Ct(i,3)+"Z":r?"T"+Ct(t,2)+":"+Ct(n,2)+":"+Ct(r,2)+"Z":n||t?"T"+Ct(t,2)+":"+Ct(n,2)+"Z":"")}function _g(e){var t=new RegExp('["'+e+`
2
- \r]`),n=e.charCodeAt(0);function r(l,h){var d,p,b=i(l,function(x,A){if(d)return d(x,A-1);p=x,d=h?tE(x,h):Dg(x)});return b.columns=p||[],b}function i(l,h){var d=[],p=l.length,b=0,x=0,A,D=p<=0,_=!1;l.charCodeAt(p-1)===wa&&--p,l.charCodeAt(p-1)===Kf&&--p;function C(){if(D)return Wf;if(_)return _=!1,Sg;var B,S=b,z;if(l.charCodeAt(S)===Xf){for(;b++<p&&l.charCodeAt(b)!==Xf||l.charCodeAt(++b)===Xf;);return(B=b)>=p?D=!0:(z=l.charCodeAt(b++))===wa?_=!0:z===Kf&&(_=!0,l.charCodeAt(b)===wa&&++b),l.slice(S+1,B-1).replace(/""/g,'"')}for(;b<p;){if((z=l.charCodeAt(B=b++))===wa)_=!0;else if(z===Kf)_=!0,l.charCodeAt(b)===wa&&++b;else if(z!==n)continue;return l.slice(S,B)}return D=!0,l.slice(S,p)}for(;(A=C())!==Wf;){for(var T=[];A!==Sg&&A!==Wf;)T.push(A),A=C();h&&(T=h(T,x++))==null||d.push(T)}return d}function o(l,h){return l.map(function(d){return h.map(function(p){return f(d[p])}).join(e)})}function a(l,h){return h==null&&(h=Ig(l)),[h.map(f).join(e)].concat(o(l,h)).join(`
3
- `)}function s(l,h){return h==null&&(h=Ig(l)),o(l,h).join(`
1
+ (function(ae,ie){typeof exports=="object"&&typeof module<"u"?ie(exports):typeof define=="function"&&define.amd?define(["exports"],ie):(ae=typeof globalThis<"u"?globalThis:ae||self,ie(ae.genomeSpyEmbed={}))})(this,function(ae){var bu,Fg,go,yu,wu,Kf,rE,xu,kg,fr,po,pt,lr,na,Jf,iE,mo,cl,hr,ra,Au,Lg,$f,aE,Ig,bR,vu,zg,Eu,bo,yo,Ut,Ki,wo,gr,ia,el,oE,tl,sE,Ji,Nu,Cu,Rg,Su,Og,Du,Pg,nl,uE,xo,fl,rl,cE;"use strict";var pR=Object.defineProperty;var mR=(ae,ie,je)=>ie in ae?pR(ae,ie,{enumerable:!0,configurable:!0,writable:!0,value:je}):ae[ie]=je;var Sn=(ae,ie,je)=>(mR(ae,typeof ie!="symbol"?ie+"":ie,je),je),Bg=(ae,ie,je)=>{if(!ie.has(ae))throw TypeError("Cannot "+je)};var W=(ae,ie,je)=>(Bg(ae,ie,"read from private field"),je?je.call(ae):ie.get(ae)),fe=(ae,ie,je)=>{if(ie.has(ae))throw TypeError("Cannot add the same private member more than once");ie instanceof WeakSet?ie.add(ae):ie.set(ae,je)},Zn=(ae,ie,je,ii)=>(Bg(ae,ie,"write to private field"),ii?ii.call(ae,je):ie.set(ae,je),je),tE=(ae,ie,je,ii)=>({set _(ll){Zn(ae,ie,ll,je)},get _(){return W(ae,ie,ii)}}),ee=(ae,ie,je)=>(Bg(ae,ie,"access private method"),je);function ie(e,t,n){return e.fields=t||[],e.fname=n,e}function je(e){return e==null?null:e.fname}function ii(e){return e==null?null:e.fields}function ll(e){return e.length===1?fE(e[0]):lE(e)}const fE=e=>function(t){return t[e]},lE=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function Re(e){throw Error(e)}function hE(e){const t=[],n=e.length;let r=null,i=0,a="",o,s,c;e=e+"";function u(){t.push(a+e.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(c=e[s],c==="\\")a+=e.substring(o,s),a+=e.substring(++s,++s),o=s;else if(c===r)u(),r=null,i=-1;else{if(r)continue;o===i&&c==='"'||o===i&&c==="'"?(o=s+1,r=c):c==="."&&!i?s>o?u():o=s+1:c==="["?(s>o&&u(),i=o=s+1):c==="]"&&(i||Re("Access path missing open bracket: "+e),i>0&&u(),i=0,o=s+1)}return i&&Re("Access path missing closing bracket: "+e),r&&Re("Access path missing closing quote: "+e),s>o&&(s++,u()),t}function Bu(e,t,n){const r=hE(e);return e=r.length===1?r[0]:e,ie((n&&n.get||ll)(r),[e],t||e)}Bu("id");const Fu=ie(e=>e,[],"identity");ie(()=>0,[],"zero"),ie(()=>1,[],"one"),ie(()=>!0,[],"true"),ie(()=>!1,[],"false");var Ht=Array.isArray;function un(e){return e===Object(e)}function cn(e){return e[e.length-1]}function So(e){return e==null||e===""?null:+e}const Ug=e=>t=>e*Math.exp(t),jg=e=>t=>Math.log(e*t),dE=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),gE=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,ku=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function hl(e,t,n,r){const i=n(e[0]),a=n(cn(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function pE(e,t){return hl(e,t,So,Fu)}function mE(e,t){var n=Math.sign(e[0]);return hl(e,t,jg(n),Ug(n))}function bE(e,t,n){return hl(e,t,ku(n),ku(1/n))}function Lu(e,t,n,r,i){const a=r(e[0]),o=r(cn(e)),s=t!=null?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function Gg(e,t,n){return Lu(e,t,n,So,Fu)}function Hg(e,t,n){const r=Math.sign(e[0]);return Lu(e,t,n,jg(r),Ug(r))}function dl(e,t,n,r){return Lu(e,t,n,ku(r),ku(1/r))}function yE(e,t,n,r){return Lu(e,t,n,dE(r),gE(r))}function gl(e){return e!=null?Ht(e)?e:[e]:[]}function wE(e,t,n){let r=e[0],i=e[1],a;return i<r&&(a=i,i=r,r=a),a=i-r,a>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-a),r+a]}function Ct(e){return typeof e=="function"}const xE="descending";function Qg(e,t,n){n=n||{},t=gl(t)||[];const r=[],i=[],a={},o=n.comparator||AE;return gl(e).forEach((s,c)=>{s!=null&&(r.push(t[c]===xE?-1:1),i.push(s=Ct(s)?s:Bu(s,null,n)),(ii(s)||[]).forEach(u=>a[u]=1))}),i.length===0?null:ie(o(i,r),Object.keys(a))}const Vg=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),AE=(e,t)=>e.length===1?vE(e[0],t[0]):EE(e,t,e.length),vE=(e,t)=>function(n,r){return Vg(e(n),e(r))*t},EE=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=e[s],o=Vg(a(r),a(i));return o*t[s]});function CE(e){return Ct(e)?e:()=>e}function pl(e){for(let t,n,r=1,i=arguments.length;r<i;++r){t=arguments[r];for(n in t)e[n]=t[n]}return e}const SE=Object.prototype.hasOwnProperty;function ai(e,t){return SE.call(e,t)}function zu(e){return typeof e=="boolean"}function DE(e){return Object.prototype.toString.call(e)==="[object Date]"}function IE(e){return e&&Ct(e[Symbol.iterator])}function St(e){return typeof e=="number"}function Oe(e){return typeof e=="string"}function _E(e,t){const n=e[0],r=cn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function Ru(e){return e&&cn(e)-e[0]||0}function Ou(e){return Ht(e)?"["+e.map(Ou)+"]":un(e)||Oe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function ME(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const TE=e=>St(e)||DE(e)?e:Date.parse(e);function NE(e,t){return t=t||TE,e==null||e===""?null:t(e)}function BE(e){return e==null||e===""?null:e+""}function Pu(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var Zg={},ml={},bl=34,Do=10,yl=13;function Yg(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function FE(e,t){var n=Yg(e);return function(r,i){return t(n(r),i,e)}}function Wg(e){var t=Object.create(null),n=[];return e.forEach(function(r){for(var i in r)i in t||n.push(t[i]=i)}),n}function Dt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function kE(e){return e<0?"-"+Dt(-e,6):e>9999?"+"+Dt(e,6):Dt(e,4)}function LE(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":kE(e.getUTCFullYear())+"-"+Dt(e.getUTCMonth()+1,2)+"-"+Dt(e.getUTCDate(),2)+(i?"T"+Dt(t,2)+":"+Dt(n,2)+":"+Dt(r,2)+"."+Dt(i,3)+"Z":r?"T"+Dt(t,2)+":"+Dt(n,2)+":"+Dt(r,2)+"Z":n||t?"T"+Dt(t,2)+":"+Dt(n,2)+"Z":"")}function qg(e){var t=new RegExp('["'+e+`
2
+ \r]`),n=e.charCodeAt(0);function r(l,h){var d,p,b=i(l,function(x,A){if(d)return d(x,A-1);p=x,d=h?FE(x,h):Yg(x)});return b.columns=p||[],b}function i(l,h){var d=[],p=l.length,b=0,x=0,A,D=p<=0,_=!1;l.charCodeAt(p-1)===Do&&--p,l.charCodeAt(p-1)===yl&&--p;function C(){if(D)return ml;if(_)return _=!1,Zg;var B,S=b,z;if(l.charCodeAt(S)===bl){for(;b++<p&&l.charCodeAt(b)!==bl||l.charCodeAt(++b)===bl;);return(B=b)>=p?D=!0:(z=l.charCodeAt(b++))===Do?_=!0:z===yl&&(_=!0,l.charCodeAt(b)===Do&&++b),l.slice(S+1,B-1).replace(/""/g,'"')}for(;b<p;){if((z=l.charCodeAt(B=b++))===Do)_=!0;else if(z===yl)_=!0,l.charCodeAt(b)===Do&&++b;else if(z!==n)continue;return l.slice(S,B)}return D=!0,l.slice(S,p)}for(;(A=C())!==ml;){for(var T=[];A!==Zg&&A!==ml;)T.push(A),A=C();h&&(T=h(T,x++))==null||d.push(T)}return d}function a(l,h){return l.map(function(d){return h.map(function(p){return f(d[p])}).join(e)})}function o(l,h){return h==null&&(h=Wg(l)),[h.map(f).join(e)].concat(a(l,h)).join(`
3
+ `)}function s(l,h){return h==null&&(h=Wg(l)),a(l,h).join(`
4
4
  `)}function c(l){return l.map(u).join(`
5
- `)}function u(l){return l.map(f).join(e)}function f(l){return l==null?"":l instanceof Date?rE(l):t.test(l+="")?'"'+l.replace(/"/g,'""')+'"':l}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:u,formatValue:f}}var iE=_g(" "),oE=iE.parseRows;function aE(e){return e}function sE(e){if(e==null)return aE;var t,n,r=e.scale[0],i=e.scale[1],o=e.translate[0],a=e.translate[1];return function(s,c){c||(t=n=0);var u=2,f=s.length,l=new Array(f);for(l[0]=(t+=s[0])*r+o,l[1]=(n+=s[1])*i+a;u<f;)l[u]=s[u],++u;return l}}function uE(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function cE(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return Mg(e,n)})}:Mg(e,t)}function Mg(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,o=Tg(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:o}:r==null?{type:"Feature",id:n,properties:i,geometry:o}:{type:"Feature",id:n,bbox:r,properties:i,geometry:o}}function Tg(e,t){var n=sE(e.transform),r=e.arcs;function i(f,l){l.length&&l.pop();for(var h=r[f<0?~f:f],d=0,p=h.length;d<p;++d)l.push(n(h[d],d));f<0&&uE(l,p)}function o(f){return n(f)}function a(f){for(var l=[],h=0,d=f.length;h<d;++h)i(f[h],l);return l.length<2&&l.push(l[0]),l}function s(f){for(var l=a(f);l.length<4;)l.push(l[0]);return l}function c(f){return f.map(s)}function u(f){var l=f.type,h;switch(l){case"GeometryCollection":return{type:l,geometries:f.geometries.map(u)};case"Point":h=o(f.coordinates);break;case"MultiPoint":h=f.coordinates.map(o);break;case"LineString":h=a(f.arcs);break;case"MultiLineString":h=f.arcs.map(a);break;case"Polygon":h=c(f.arcs);break;case"MultiPolygon":h=f.arcs.map(c);break;default:return null}return{type:l,coordinates:h}}return u(t)}function fE(e,t){var n={},r={},i={},o=[],a=-1;t.forEach(function(u,f){var l=e.arcs[u<0?~u:u],h;l.length<3&&!l[1][0]&&!l[1][1]&&(h=t[++a],t[a]=u,t[f]=h)}),t.forEach(function(u){var f=s(u),l=f[0],h=f[1],d,p;if(d=i[l])if(delete i[d.end],d.push(u),d.end=h,p=r[h]){delete r[p.start];var b=p===d?d:d.concat(p);r[b.start=d.start]=i[b.end=p.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=l,p=i[l]){delete i[p.end];var x=p===d?d:p.concat(d);r[x.start=p.start]=i[x.end=d.end]=x}else r[d.start]=i[d.end]=d;else d=[u],r[d.start=l]=i[d.end=h]=d});function s(u){var f=e.arcs[u<0?~u:u],l=f[0],h;return e.transform?(h=[0,0],f.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=f[f.length-1],u<0?[h,l]:[l,h]}function c(u,f){for(var l in u){var h=u[l];delete f[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),o.push(h)}}return c(i,r),c(r,i),t.forEach(function(u){n[u<0?~u:u]||o.push([u])}),o}function lE(e){return Tg(e,hE.apply(this,arguments))}function hE(e,t,n){var r,i,o;if(arguments.length>1)r=dE(e,t,n);else for(i=0,r=new Array(o=e.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:fE(e,r)}}function dE(e,t,n){var r=[],i=[],o;function a(l){var h=l<0?~l:l;(i[h]||(i[h]=[])).push({i:l,g:o})}function s(l){l.forEach(a)}function c(l){l.forEach(s)}function u(l){l.forEach(c)}function f(l){switch(o=l,l.type){case"GeometryCollection":l.geometries.forEach(f);break;case"LineString":s(l.arcs);break;case"MultiLineString":case"Polygon":c(l.arcs);break;case"MultiPolygon":u(l.arcs);break}}return f(t),i.forEach(n==null?function(l){r.push(l[0].i)}:function(l){n(l[0].g,l[l.length-1].g)&&r.push(l[0].i)}),r}function xa(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function gE(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function _u(e){let t,n,r;e.length!==2?(t=xa,n=(s,c)=>xa(e(s),c),r=(s,c)=>e(s)-c):(t=e===xa||e===gE?e:pE,n=e,r=e);function i(s,c,u=0,f=s.length){if(u<f){if(t(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<0?u=l+1:f=l}while(u<f)}return u}function o(s,c,u=0,f=s.length){if(u<f){if(t(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<=0?u=l+1:f=l}while(u<f)}return u}function a(s,c,u=0,f=s.length){const l=i(s,c,u,f-1);return l>u&&r(s[l-1],c)>-r(s[l],c)?l-1:l}return{left:i,center:a,right:o}}function pE(){return 0}function Ng(e){return e===null?NaN:+e}const Bg=_u(xa),Jf=Bg.right;Bg.left,_u(Ng).center;const eo=Jf;function mE(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of e)(o=t(o,++i,e))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}class ri extends Map{constructor(t,n=wE){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(Fg(this,t))}has(t){return super.has(Fg(this,t))}set(t,n){return super.set(bE(this,t),n)}delete(t){return super.delete(yE(this,t))}}function Fg({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function bE({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function yE({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function wE(e){return e!==null&&typeof e=="object"?e.valueOf():e}function $f(e){return e}function Mu(e,...t){return kg(e,$f,$f,t)}function xE(e,...t){return kg(e,Array.from,$f,t)}function kg(e,t,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new ri,c=r[a++];let u=-1;for(const f of o){const l=c(f,++u,o),h=s.get(l);h?h.push(f):s.set(l,[f])}for(const[f,l]of s)s.set(f,i(l,a));return t(s)}(e,0)}var el=Math.sqrt(50),tl=Math.sqrt(10),nl=Math.sqrt(2);function Tu(e,t,n){var r,i=-1,o,a,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(o=e,e=t,t=o),(s=Lg(e,t,n))===0||!isFinite(s))return[];if(s>0){let c=Math.round(e/s),u=Math.round(t/s);for(c*s<e&&++c,u*s>t&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)*s}else{s=-s;let c=Math.round(e*s),u=Math.round(t*s);for(c/s<e&&++c,u/s>t&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)/s}return r&&a.reverse(),a}function Lg(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=el?10:o>=tl?5:o>=nl?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=el?10:o>=tl?5:o>=nl?2:1)}function ii(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=el?i*=10:o>=tl?i*=5:o>=nl&&(i*=2),t<e?-i:i}function zg(e,t,n=Ng){if(r=e.length){if((t=+t)<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,o=Math.floor(i),a=+n(e[o],o,e),s=+n(e[o+1],o+1,e);return a+(s-a)*(i-o)}}function Aa(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(i);++r<i;)o[r]=e+r*n;return o}function Nu(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function AE(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Bu(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function to(e){return e=Bu(Math.abs(e)),e?e[1]:NaN}function vE(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),o.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function EE(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var CE=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function pr(e){if(!(t=CE.exec(e)))throw new Error("invalid format: "+e);var t;return new rl({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}pr.prototype=rl.prototype;function rl(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}rl.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 SE(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Rg;function DE(e,t){var n=Bu(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(Rg=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Bu(e,Math.max(0,t+o-1))[0]}function Og(e,t){var n=Bu(e,t);if(!n)return e+"";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 Pg={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:AE,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Og(e*100,t),r:Og,s:DE,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Ug(e){return e}var jg=Array.prototype.map,Gg=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function IE(e){var t=e.grouping===void 0||e.thousands===void 0?Ug:vE(jg.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Ug:EE(jg.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function u(l){l=pr(l);var h=l.fill,d=l.align,p=l.sign,b=l.symbol,x=l.zero,A=l.width,D=l.comma,_=l.precision,C=l.trim,T=l.type;T==="n"?(D=!0,T="g"):Pg[T]||(_===void 0&&(_=12),C=!0,T="g"),(x||h==="0"&&d==="=")&&(x=!0,h="0",d="=");var B=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",S=b==="$"?r:/[%p]/.test(T)?a:"",z=Pg[T],E=/[defgprs%]/.test(T);_=_===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function N(F){var Z=B,W=S,Y,ye,Ce;if(T==="c")W=z(F)+W,F="";else{F=+F;var Ye=F<0||1/F<0;if(F=isNaN(F)?c:z(Math.abs(F),_),C&&(F=SE(F)),Ye&&+F==0&&p!=="+"&&(Ye=!1),Z=(Ye?p==="("?p:s:p==="-"||p==="("?"":p)+Z,W=(T==="s"?Gg[8+Rg/3]:"")+W+(Ye&&p==="("?")":""),E){for(Y=-1,ye=F.length;++Y<ye;)if(Ce=F.charCodeAt(Y),48>Ce||Ce>57){W=(Ce===46?i+F.slice(Y+1):F.slice(Y))+W,F=F.slice(0,Y);break}}}D&&!x&&(F=t(F,1/0));var wt=Z.length+F.length+W.length,xt=wt<A?new Array(A-wt+1).join(h):"";switch(D&&x&&(F=t(xt+F,xt.length?A-W.length:1/0),xt=""),d){case"<":F=Z+F+W+xt;break;case"=":F=Z+xt+F+W;break;case"^":F=xt.slice(0,wt=xt.length>>1)+Z+F+W+xt.slice(wt);break;default:F=xt+Z+F+W;break}return o(F)}return N.toString=function(){return l+""},N}function f(l,h){var d=u((l=pr(l),l.type="f",l)),p=Math.max(-8,Math.min(8,Math.floor(to(h)/3)))*3,b=Math.pow(10,-p),x=Gg[8+p/3];return function(A){return d(b*A)+x}}return{format:u,formatPrefix:f}}var Fu,it,il;_E({thousands:",",grouping:[3],currency:["$",""]});function _E(e){return Fu=IE(e),it=Fu.format,il=Fu.formatPrefix,Fu}function Hg(e){return Math.max(0,-to(Math.abs(e)))}function Qg(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(to(t)/3)))*3-to(Math.abs(e)))}function Vg(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,to(t)-to(e))+1}var ol=new Date,al=new Date;function We(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=function(o,a){return t(o=new Date(+o),a==null?1:Math.floor(a)),o},i.range=function(o,a,s){var c=[],u;if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;do c.push(u=new Date(+o)),t(o,s),e(o);while(u<o&&o<a);return c},i.filter=function(o){return We(function(a){if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););})},n&&(i.count=function(o,a){return ol.setTime(+o),al.setTime(+a),e(ol),e(al),Math.floor(n(ol,al))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}var ku=We(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});ku.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?We(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):ku};const sl=ku;ku.range;const Zn=1e3,jt=Zn*60,Yn=jt*60,oi=Yn*24,ul=oi*7,Zg=oi*30,cl=oi*365;var Yg=We(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*Zn)},function(e,t){return(t-e)/Zn},function(e){return e.getUTCSeconds()});const mr=Yg;Yg.range;var qg=We(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Zn)},function(e,t){e.setTime(+e+t*jt)},function(e,t){return(t-e)/jt},function(e){return e.getMinutes()});const fl=qg;qg.range;var Wg=We(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Zn-e.getMinutes()*jt)},function(e,t){e.setTime(+e+t*Yn)},function(e,t){return(t-e)/Yn},function(e){return e.getHours()});const ll=Wg;Wg.range;var Xg=We(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*jt)/oi,e=>e.getDate()-1);const ai=Xg;Xg.range;function si(e){return We(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*jt)/ul})}var va=si(0),Lu=si(1),ME=si(2),TE=si(3),no=si(4),NE=si(5),BE=si(6);va.range,Lu.range,ME.range,TE.range,no.range,NE.range,BE.range;var Kg=We(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});const zu=Kg;Kg.range;var hl=We(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});hl.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:We(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})};const br=hl;hl.range;var Jg=We(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*jt)},function(e,t){return(t-e)/jt},function(e){return e.getUTCMinutes()});const dl=Jg;Jg.range;var $g=We(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*Yn)},function(e,t){return(t-e)/Yn},function(e){return e.getUTCHours()});const gl=$g;$g.range;var ep=We(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/oi},function(e){return e.getUTCDate()-1});const ui=ep;ep.range;function ci(e){return We(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/ul})}var Ea=ci(0),Ru=ci(1),FE=ci(2),kE=ci(3),ro=ci(4),LE=ci(5),zE=ci(6);Ea.range,Ru.range,FE.range,kE.range,ro.range,LE.range,zE.range;var tp=We(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()});const Ou=tp;tp.range;var pl=We(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});pl.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:We(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})};const yr=pl;pl.range;function np(e,t,n,r,i,o){const a=[[mr,1,Zn],[mr,5,5*Zn],[mr,15,15*Zn],[mr,30,30*Zn],[o,1,jt],[o,5,5*jt],[o,15,15*jt],[o,30,30*jt],[i,1,Yn],[i,3,3*Yn],[i,6,6*Yn],[i,12,12*Yn],[r,1,oi],[r,2,2*oi],[n,1,ul],[t,1,Zg],[t,3,3*Zg],[e,1,cl]];function s(u,f,l){const h=f<u;h&&([u,f]=[f,u]);const d=l&&typeof l.range=="function"?l:c(u,f,l),p=d?d.range(u,+f+1):[];return h?p.reverse():p}function c(u,f,l){const h=Math.abs(f-u)/l,d=_u(([,,x])=>x).right(a,h);if(d===a.length)return e.every(ii(u/cl,f/cl,l));if(d===0)return sl.every(Math.max(ii(u,f,l),1));const[p,b]=a[h/a[d-1][2]<a[d][2]/h?d-1:d];return p.every(b)}return[s,c]}const[RE,OE]=np(yr,Ou,Ea,ui,gl,dl),[PE,UE]=np(br,zu,va,ai,ll,fl),Ca="year",Sa="quarter",Da="month",Ia="week",_a="date",Pu="day",ml="dayofyear",Ma="hours",Ta="minutes",Na="seconds",Uu="milliseconds";[Ca,Sa,Da,Ia,_a,Pu,ml,Ma,Ta,Na,Uu].reduce((e,t,n)=>(e[t]=1+n,e),{});const jE={[Ca]:br,[Sa]:zu.every(3),[Da]:zu,[Ia]:va,[_a]:ai,[Pu]:ai,[ml]:ai,[Ma]:ll,[Ta]:fl,[Na]:mr,[Uu]:sl},GE={[Ca]:yr,[Sa]:Ou.every(3),[Da]:Ou,[Ia]:Ea,[_a]:ui,[Pu]:ui,[ml]:ui,[Ma]:gl,[Ta]:dl,[Na]:mr,[Uu]:sl};function HE(e){return jE[e]}function QE(e){return GE[e]}function bl(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function yl(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Ba(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function rp(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,c=e.shortMonths,u=Fa(i),f=ka(i),l=Fa(o),h=ka(o),d=Fa(a),p=ka(a),b=Fa(s),x=ka(s),A=Fa(c),D=ka(c),_={a:Ye,A:wt,b:xt,B:pu,c:null,d:cp,e:cp,f:d3,g:E3,G:S3,H:f3,I:l3,j:h3,L:fp,m:g3,M:p3,p:Oe,q:qe,Q:mp,s:bp,S:m3,u:b3,U:y3,V:w3,w:x3,W:A3,x:null,X:null,y:v3,Y:C3,Z:D3,"%":pp},C={a:da,A:Wi,b:ga,B:Xi,c:null,d:hp,e:hp,f:T3,g:U3,G:G3,H:I3,I:_3,j:M3,L:dp,m:N3,M:B3,p:pa,q:vn,Q:mp,s:bp,S:F3,u:k3,U:L3,V:z3,w:R3,W:O3,x:null,X:null,y:P3,Y:j3,Z:H3,"%":pp},T={a:N,A:F,b:Z,B:W,c:Y,d:sp,e:sp,f:a3,g:ap,G:op,H:up,I:up,j:n3,L:o3,m:t3,M:r3,p:E,q:e3,Q:u3,s:c3,S:i3,u:WE,U:XE,V:KE,w:qE,W:JE,x:ye,X:Ce,y:ap,Y:op,Z:$E,"%":s3};_.x=B(n,_),_.X=B(r,_),_.c=B(t,_),C.x=B(n,C),C.X=B(r,C),C.c=B(t,C);function B(Q,$){return function(ie){var P=[],Pe=-1,se=0,ut=Q.length,nt,Ot,Ki;for(ie instanceof Date||(ie=new Date(+ie));++Pe<ut;)Q.charCodeAt(Pe)===37&&(P.push(Q.slice(se,Pe)),(Ot=ip[nt=Q.charAt(++Pe)])!=null?nt=Q.charAt(++Pe):Ot=nt==="e"?" ":"0",(Ki=$[nt])&&(nt=Ki(ie,Ot)),P.push(nt),se=Pe+1);return P.push(Q.slice(se,Pe)),P.join("")}}function S(Q,$){return function(ie){var P=Ba(1900,void 0,1),Pe=z(P,Q,ie+="",0),se,ut;if(Pe!=ie.length)return null;if("Q"in P)return new Date(P.Q);if("s"in P)return new Date(P.s*1e3+("L"in P?P.L:0));if($&&!("Z"in P)&&(P.Z=0),"p"in P&&(P.H=P.H%12+P.p*12),P.m===void 0&&(P.m="q"in P?P.q:0),"V"in P){if(P.V<1||P.V>53)return null;"w"in P||(P.w=1),"Z"in P?(se=yl(Ba(P.y,0,1)),ut=se.getUTCDay(),se=ut>4||ut===0?Ru.ceil(se):Ru(se),se=ui.offset(se,(P.V-1)*7),P.y=se.getUTCFullYear(),P.m=se.getUTCMonth(),P.d=se.getUTCDate()+(P.w+6)%7):(se=bl(Ba(P.y,0,1)),ut=se.getDay(),se=ut>4||ut===0?Lu.ceil(se):Lu(se),se=ai.offset(se,(P.V-1)*7),P.y=se.getFullYear(),P.m=se.getMonth(),P.d=se.getDate()+(P.w+6)%7)}else("W"in P||"U"in P)&&("w"in P||(P.w="u"in P?P.u%7:"W"in P?1:0),ut="Z"in P?yl(Ba(P.y,0,1)).getUTCDay():bl(Ba(P.y,0,1)).getDay(),P.m=0,P.d="W"in P?(P.w+6)%7+P.W*7-(ut+5)%7:P.w+P.U*7-(ut+6)%7);return"Z"in P?(P.H+=P.Z/100|0,P.M+=P.Z%100,yl(P)):bl(P)}}function z(Q,$,ie,P){for(var Pe=0,se=$.length,ut=ie.length,nt,Ot;Pe<se;){if(P>=ut)return-1;if(nt=$.charCodeAt(Pe++),nt===37){if(nt=$.charAt(Pe++),Ot=T[nt in ip?$.charAt(Pe++):nt],!Ot||(P=Ot(Q,ie,P))<0)return-1}else if(nt!=ie.charCodeAt(P++))return-1}return P}function E(Q,$,ie){var P=u.exec($.slice(ie));return P?(Q.p=f.get(P[0].toLowerCase()),ie+P[0].length):-1}function N(Q,$,ie){var P=d.exec($.slice(ie));return P?(Q.w=p.get(P[0].toLowerCase()),ie+P[0].length):-1}function F(Q,$,ie){var P=l.exec($.slice(ie));return P?(Q.w=h.get(P[0].toLowerCase()),ie+P[0].length):-1}function Z(Q,$,ie){var P=A.exec($.slice(ie));return P?(Q.m=D.get(P[0].toLowerCase()),ie+P[0].length):-1}function W(Q,$,ie){var P=b.exec($.slice(ie));return P?(Q.m=x.get(P[0].toLowerCase()),ie+P[0].length):-1}function Y(Q,$,ie){return z(Q,t,$,ie)}function ye(Q,$,ie){return z(Q,n,$,ie)}function Ce(Q,$,ie){return z(Q,r,$,ie)}function Ye(Q){return a[Q.getDay()]}function wt(Q){return o[Q.getDay()]}function xt(Q){return c[Q.getMonth()]}function pu(Q){return s[Q.getMonth()]}function Oe(Q){return i[+(Q.getHours()>=12)]}function qe(Q){return 1+~~(Q.getMonth()/3)}function da(Q){return a[Q.getUTCDay()]}function Wi(Q){return o[Q.getUTCDay()]}function ga(Q){return c[Q.getUTCMonth()]}function Xi(Q){return s[Q.getUTCMonth()]}function pa(Q){return i[+(Q.getUTCHours()>=12)]}function vn(Q){return 1+~~(Q.getUTCMonth()/3)}return{format:function(Q){var $=B(Q+="",_);return $.toString=function(){return Q},$},parse:function(Q){var $=S(Q+="",!1);return $.toString=function(){return Q},$},utcFormat:function(Q){var $=B(Q+="",C);return $.toString=function(){return Q},$},utcParse:function(Q){var $=S(Q+="",!0);return $.toString=function(){return Q},$}}}var ip={"-":"",_:" ",0:"0"},Xe=/^\s*\d+/,VE=/^%/,ZE=/[\\^$*+?|[\]().{}]/g;function ce(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(t)+i:i)}function YE(e){return e.replace(ZE,"\\$&")}function Fa(e){return new RegExp("^(?:"+e.map(YE).join("|")+")","i")}function ka(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function qE(e,t,n){var r=Xe.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function WE(e,t,n){var r=Xe.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function XE(e,t,n){var r=Xe.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function KE(e,t,n){var r=Xe.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function JE(e,t,n){var r=Xe.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function op(e,t,n){var r=Xe.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function ap(e,t,n){var r=Xe.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function $E(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function e3(e,t,n){var r=Xe.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function t3(e,t,n){var r=Xe.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function sp(e,t,n){var r=Xe.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function n3(e,t,n){var r=Xe.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function up(e,t,n){var r=Xe.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function r3(e,t,n){var r=Xe.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function i3(e,t,n){var r=Xe.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function o3(e,t,n){var r=Xe.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function a3(e,t,n){var r=Xe.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function s3(e,t,n){var r=VE.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function u3(e,t,n){var r=Xe.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function c3(e,t,n){var r=Xe.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function cp(e,t){return ce(e.getDate(),t,2)}function f3(e,t){return ce(e.getHours(),t,2)}function l3(e,t){return ce(e.getHours()%12||12,t,2)}function h3(e,t){return ce(1+ai.count(br(e),e),t,3)}function fp(e,t){return ce(e.getMilliseconds(),t,3)}function d3(e,t){return fp(e,t)+"000"}function g3(e,t){return ce(e.getMonth()+1,t,2)}function p3(e,t){return ce(e.getMinutes(),t,2)}function m3(e,t){return ce(e.getSeconds(),t,2)}function b3(e){var t=e.getDay();return t===0?7:t}function y3(e,t){return ce(va.count(br(e)-1,e),t,2)}function lp(e){var t=e.getDay();return t>=4||t===0?no(e):no.ceil(e)}function w3(e,t){return e=lp(e),ce(no.count(br(e),e)+(br(e).getDay()===4),t,2)}function x3(e){return e.getDay()}function A3(e,t){return ce(Lu.count(br(e)-1,e),t,2)}function v3(e,t){return ce(e.getFullYear()%100,t,2)}function E3(e,t){return e=lp(e),ce(e.getFullYear()%100,t,2)}function C3(e,t){return ce(e.getFullYear()%1e4,t,4)}function S3(e,t){var n=e.getDay();return e=n>=4||n===0?no(e):no.ceil(e),ce(e.getFullYear()%1e4,t,4)}function D3(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ce(t/60|0,"0",2)+ce(t%60,"0",2)}function hp(e,t){return ce(e.getUTCDate(),t,2)}function I3(e,t){return ce(e.getUTCHours(),t,2)}function _3(e,t){return ce(e.getUTCHours()%12||12,t,2)}function M3(e,t){return ce(1+ui.count(yr(e),e),t,3)}function dp(e,t){return ce(e.getUTCMilliseconds(),t,3)}function T3(e,t){return dp(e,t)+"000"}function N3(e,t){return ce(e.getUTCMonth()+1,t,2)}function B3(e,t){return ce(e.getUTCMinutes(),t,2)}function F3(e,t){return ce(e.getUTCSeconds(),t,2)}function k3(e){var t=e.getUTCDay();return t===0?7:t}function L3(e,t){return ce(Ea.count(yr(e)-1,e),t,2)}function gp(e){var t=e.getUTCDay();return t>=4||t===0?ro(e):ro.ceil(e)}function z3(e,t){return e=gp(e),ce(ro.count(yr(e),e)+(yr(e).getUTCDay()===4),t,2)}function R3(e){return e.getUTCDay()}function O3(e,t){return ce(Ru.count(yr(e)-1,e),t,2)}function P3(e,t){return ce(e.getUTCFullYear()%100,t,2)}function U3(e,t){return e=gp(e),ce(e.getUTCFullYear()%100,t,2)}function j3(e,t){return ce(e.getUTCFullYear()%1e4,t,4)}function G3(e,t){var n=e.getUTCDay();return e=n>=4||n===0?ro(e):ro.ceil(e),ce(e.getUTCFullYear()%1e4,t,4)}function H3(){return"+0000"}function pp(){return"%"}function mp(e){return+e}function bp(e){return Math.floor(+e/1e3)}var io,wl,yp,xl,wp;Q3({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 Q3(e){return io=rp(e),wl=io.format,yp=io.parse,xl=io.utcFormat,wp=io.utcParse,io}function La(e){const t={};return n=>t[n]||(t[n]=e(n))}function V3(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let o=Z3(r,i);const a=o<r.length?r.slice(o):"";for(;--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function Z3(e,t){let n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function Y3(e){const t=La(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=pr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return V3(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,o,a){a=pr(a??",f");const s=ii(r,i,o),c=Math.max(Math.abs(r),Math.abs(i));let u;if(a.precision==null)switch(a.type){case"s":return isNaN(u=Qg(s,c))||(a.precision=u),n(a,c);case"":case"e":case"g":case"p":case"r":{isNaN(u=Vg(s,c))||(a.precision=u-(a.type==="e"));break}case"f":case"%":{isNaN(u=Hg(s))||(a.precision=u-(a.type==="%")*2);break}}return t(a)}}}q3();function q3(){return Y3({format:it,formatPrefix:il})}function xp(e,t,n){n=n||{},an(n)||ze("Invalid time multi-format specifier: ".concat(n));const r=t(Na),i=t(Ta),o=t(Ma),a=t(_a),s=t(Ia),c=t(Da),u=t(Sa),f=t(Ca),l=e(n[Uu]||".%L"),h=e(n[Na]||":%S"),d=e(n[Ta]||"%I:%M"),p=e(n[Ma]||"%I %p"),b=e(n[_a]||n[Pu]||"%a %d"),x=e(n[Ia]||"%b %d"),A=e(n[Da]||"%B"),D=e(n[Sa]||"%B"),_=e(n[Ca]||"%Y");return C=>(r(C)<C?l:i(C)<C?h:o(C)<C?d:a(C)<C?p:c(C)<C?s(C)<C?b:x:f(C)<C?u(C)<C?A:D:_)(C)}function Ap(e){const t=La(e.format),n=La(e.utcFormat);return{timeFormat:r=>Re(r)?t(r):xp(t,HE,r),utcFormat:r=>Re(r)?n(r):xp(n,QE,r),timeParse:La(e.parse),utcParse:La(e.utcParse)}}let Al;W3();function W3(){return Al=Ap({format:wl,parse:yp,utcFormat:xl,utcParse:wp})}function X3(e){return Ap(rp(e))}function K3(e){return arguments.length?Al=X3(e):Al}const J3=/^(data:|([A-Za-z]+:)?\/\/)/,$3=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,eC=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,vp="file://";function tC(e,t){return n=>({options:n||{},sanitize:rC,load:nC,fileAccess:!!t,file:iC(t),http:aC(e)})}async function nC(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function rC(e,t){t=qf({},this.options,t);const n=this.fileAccess,r={href:null};let i,o,a;const s=$3.test(e.replace(eC,""));(e==null||typeof e!="string"||!s)&&ze("Sanitize failure, invalid URI: "+Du(e));const c=J3.test(e);return(a=t.baseURL)&&!c&&(!e.startsWith("/")&&!a.endsWith("/")&&(e="/"+e),e=a+e),o=(i=e.startsWith(vp))||t.mode==="file"||t.mode!=="http"&&!c&&n,i?e=e.slice(vp.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),o=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!o}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function iC(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,o)=>{i?r(i):n(o)})}):oC}async function oC(){ze("No file system access.")}function aC(e){return e?async function(t,n){const r=qf({},this.options.http,n),i=n&&n.response,o=await e(t,r);return o.ok?vt(o[i])?o[i]():o.text():ze(o.status+""+o.statusText)}:sC}async function sC(){ze("No HTTP fetch method available.")}const uC=e=>e!=null&&e===e,cC=e=>e==="true"||e==="false"||e===!0||e===!1,fC=e=>!Number.isNaN(Date.parse(e)),Ep=e=>!Number.isNaN(+e)&&!(e instanceof Date),lC=e=>Ep(e)&&Number.isInteger(+e),Cp={boolean:Kv,integer:ya,number:ya,date:$v,string:eE,unknown:Au},ju=[cC,lC,Ep,fC],hC=["boolean","integer","number","date"];function dC(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=ju.length,i=ju.map((o,a)=>a+1);for(let o=0,a=0,s,c;o<n;++o)for(c=t?e[o][t]:e[o],s=0;s<r;++s)if(i[s]&&uC(c)&&!ju[s](c)&&(i[s]=0,++a,a===ju.length))return"string";return hC[i.reduce((o,a)=>o===0?a:o,0)-1]}function gC(e,t){return t.reduce((n,r)=>(n[r]=dC(e,r),n),{})}function Sp(e){const t=function(n,r){const i={delimiter:e};return vl(n,r?qf(r,i):i)};return t.responseType="text",t}function vl(e,t){return t.header&&(e=t.header.map(Du).join(t.delimiter)+`
6
- `+e),_g(t.delimiter).parse(e+"")}vl.responseType="text";function pC(e){return typeof Buffer=="function"&&vt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function El(e,t){const n=t&&t.property?xu(t.property):Au;return an(e)&&!pC(e)?mC(n(e),t):n(JSON.parse(e))}El.responseType="json";function mC(e,t){return!Ut(e)&&Wv(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const bC={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function Dp(e,t){let n,r,i,o;return e=El(e,t),t&&t.feature?(n=cE,i=t.feature):t&&t.mesh?(n=lE,i=t.mesh,o=bC[t.filter]):ze("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,o):ze("Invalid TopoJSON object: "+i),r&&r.features||[r]}Dp.responseType="json";const Cl={dsv:vl,csv:Sp(","),tsv:Sp(" "),json:El,topojson:Dp};function Ip(e,t){return arguments.length>1?(Cl[e]=t,this):ni(Cl,e)?Cl[e]:null}function _p(e,t,n,r){t=t||{};const i=Ip(t.type||"json");return i||ze("Unknown data format type: "+t.type),e=i(e,t),t.parse&&yC(e,t.parse,n,r),ni(e,"columns")&&delete e.columns,e}function yC(e,t,n,r){if(!e.length)return;const i=K3();n=n||i.timeParse,r=r||i.utcParse;let o=e.columns||Object.keys(e[0]),a,s,c,u,f,l;t==="auto"&&(t=gC(e,o)),o=Object.keys(t);const h=o.map(d=>{const p=t[d];let b,x;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return b=p.split(/:(.+)?/,2),x=b[1],(x[0]==="'"&&x[x.length-1]==="'"||x[0]==='"'&&x[x.length-1]==='"')&&(x=x.slice(1,-1)),(b[0]==="utc"?r:n)(x);if(!Cp[p])throw Error("Illegal format pattern: "+d+":"+p);return Cp[p]});for(c=0,f=e.length,l=o.length;c<f;++c)for(a=e[c],u=0;u<l;++u)s=o[u],a[s]=h[u](a[s])}const Gu=tC(typeof fetch<"u"&&fetch,null);/**
5
+ `)}function u(l){return l.map(f).join(e)}function f(l){return l==null?"":l instanceof Date?LE(l):t.test(l+="")?'"'+l.replace(/"/g,'""')+'"':l}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:c,formatRow:u,formatValue:f}}var zE=qg(" "),RE=zE.parseRows;function OE(e){return e}function PE(e){if(e==null)return OE;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,c){c||(t=n=0);var u=2,f=s.length,l=new Array(f);for(l[0]=(t+=s[0])*r+a,l[1]=(n+=s[1])*i+o;u<f;)l[u]=s[u],++u;return l}}function UE(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function jE(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return Xg(e,n)})}:Xg(e,t)}function Xg(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=Kg(e,t);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 Kg(e,t){var n=PE(e.transform),r=e.arcs;function i(f,l){l.length&&l.pop();for(var h=r[f<0?~f:f],d=0,p=h.length;d<p;++d)l.push(n(h[d],d));f<0&&UE(l,p)}function a(f){return n(f)}function o(f){for(var l=[],h=0,d=f.length;h<d;++h)i(f[h],l);return l.length<2&&l.push(l[0]),l}function s(f){for(var l=o(f);l.length<4;)l.push(l[0]);return l}function c(f){return f.map(s)}function u(f){var l=f.type,h;switch(l){case"GeometryCollection":return{type:l,geometries:f.geometries.map(u)};case"Point":h=a(f.coordinates);break;case"MultiPoint":h=f.coordinates.map(a);break;case"LineString":h=o(f.arcs);break;case"MultiLineString":h=f.arcs.map(o);break;case"Polygon":h=c(f.arcs);break;case"MultiPolygon":h=f.arcs.map(c);break;default:return null}return{type:l,coordinates:h}}return u(t)}function GE(e,t){var n={},r={},i={},a=[],o=-1;t.forEach(function(u,f){var l=e.arcs[u<0?~u:u],h;l.length<3&&!l[1][0]&&!l[1][1]&&(h=t[++o],t[o]=u,t[f]=h)}),t.forEach(function(u){var f=s(u),l=f[0],h=f[1],d,p;if(d=i[l])if(delete i[d.end],d.push(u),d.end=h,p=r[h]){delete r[p.start];var b=p===d?d:d.concat(p);r[b.start=d.start]=i[b.end=p.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=l,p=i[l]){delete i[p.end];var x=p===d?d:p.concat(d);r[x.start=p.start]=i[x.end=d.end]=x}else r[d.start]=i[d.end]=d;else d=[u],r[d.start=l]=i[d.end=h]=d});function s(u){var f=e.arcs[u<0?~u:u],l=f[0],h;return e.transform?(h=[0,0],f.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=f[f.length-1],u<0?[h,l]:[l,h]}function c(u,f){for(var l in u){var h=u[l];delete f[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return c(i,r),c(r,i),t.forEach(function(u){n[u<0?~u:u]||a.push([u])}),a}function HE(e){return Kg(e,QE.apply(this,arguments))}function QE(e,t,n){var r,i,a;if(arguments.length>1)r=VE(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:GE(e,r)}}function VE(e,t,n){var r=[],i=[],a;function o(l){var h=l<0?~l:l;(i[h]||(i[h]=[])).push({i:l,g:a})}function s(l){l.forEach(o)}function c(l){l.forEach(s)}function u(l){l.forEach(c)}function f(l){switch(a=l,l.type){case"GeometryCollection":l.geometries.forEach(f);break;case"LineString":s(l.arcs);break;case"MultiLineString":case"Polygon":c(l.arcs);break;case"MultiPolygon":u(l.arcs);break}}return f(t),i.forEach(n==null?function(l){r.push(l[0].i)}:function(l){n(l[0].g,l[l.length-1].g)&&r.push(l[0].i)}),r}function Io(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ZE(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Uu(e){let t,n,r;e.length!==2?(t=Io,n=(s,c)=>Io(e(s),c),r=(s,c)=>e(s)-c):(t=e===Io||e===ZE?e:YE,n=e,r=e);function i(s,c,u=0,f=s.length){if(u<f){if(t(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<0?u=l+1:f=l}while(u<f)}return u}function a(s,c,u=0,f=s.length){if(u<f){if(t(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<=0?u=l+1:f=l}while(u<f)}return u}function o(s,c,u=0,f=s.length){const l=i(s,c,u,f-1);return l>u&&r(s[l-1],c)>-r(s[l],c)?l-1:l}return{left:i,center:o,right:a}}function YE(){return 0}function Jg(e){return e===null?NaN:+e}const $g=Uu(Io),wl=$g.right;$g.left,Uu(Jg).center;const aa=wl;function WE(e,t){let n,r;if(t===void 0)for(const i of e)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 e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class oi extends Map{constructor(t,n=KE){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(ep(this,t))}has(t){return super.has(ep(this,t))}set(t,n){return super.set(qE(this,t),n)}delete(t){return super.delete(XE(this,t))}}function ep({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function qE({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function XE({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function KE(e){return e!==null&&typeof e=="object"?e.valueOf():e}function xl(e){return e}function ju(e,...t){return tp(e,xl,xl,t)}function JE(e,...t){return tp(e,Array.from,xl,t)}function tp(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new oi,c=r[o++];let u=-1;for(const f of a){const l=c(f,++u,a),h=s.get(l);h?h.push(f):s.set(l,[f])}for(const[f,l]of s)s.set(f,i(l,o));return t(s)}(e,0)}var Al=Math.sqrt(50),vl=Math.sqrt(10),El=Math.sqrt(2);function Gu(e,t,n){var r,i=-1,a,o,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(a=e,e=t,t=a),(s=np(e,t,n))===0||!isFinite(s))return[];if(s>0){let c=Math.round(e/s),u=Math.round(t/s);for(c*s<e&&++c,u*s>t&&--u,o=new Array(a=u-c+1);++i<a;)o[i]=(c+i)*s}else{s=-s;let c=Math.round(e*s),u=Math.round(t*s);for(c/s<e&&++c,u/s>t&&--u,o=new Array(a=u-c+1);++i<a;)o[i]=(c+i)/s}return r&&o.reverse(),o}function np(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=Al?10:a>=vl?5:a>=El?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=Al?10:a>=vl?5:a>=El?2:1)}function si(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=Al?i*=10:a>=vl?i*=5:a>=El&&(i*=2),t<e?-i:i}function rp(e,t,n=Jg){if(r=e.length){if((t=+t)<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e),s=+n(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function _o(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(i);++r<i;)a[r]=e+r*n;return a}function Hu(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function $E(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Qu(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function oa(e){return e=Qu(Math.abs(e)),e?e[1]:NaN}function e3(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function t3(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var n3=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function yr(e){if(!(t=n3.exec(e)))throw new Error("invalid format: "+e);var t;return new Cl({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}yr.prototype=Cl.prototype;function Cl(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Cl.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 r3(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var ip;function i3(e,t){var n=Qu(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(ip=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")+Qu(e,Math.max(0,t+a-1))[0]}function ap(e,t){var n=Qu(e,t);if(!n)return e+"";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 op={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:$E,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>ap(e*100,t),r:ap,s:i3,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function sp(e){return e}var up=Array.prototype.map,cp=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function a3(e){var t=e.grouping===void 0||e.thousands===void 0?sp:e3(up.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?sp:t3(up.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function u(l){l=yr(l);var h=l.fill,d=l.align,p=l.sign,b=l.symbol,x=l.zero,A=l.width,D=l.comma,_=l.precision,C=l.trim,T=l.type;T==="n"?(D=!0,T="g"):op[T]||(_===void 0&&(_=12),C=!0,T="g"),(x||h==="0"&&d==="=")&&(x=!0,h="0",d="=");var B=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",S=b==="$"?r:/[%p]/.test(T)?o:"",z=op[T],E=/[defgprs%]/.test(T);_=_===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function N(F){var Y=B,X=S,Z,Se,Me;if(T==="c")X=z(F)+X,F="";else{F=+F;var We=F<0||1/F<0;if(F=isNaN(F)?c:z(Math.abs(F),_),C&&(F=r3(F)),We&&+F==0&&p!=="+"&&(We=!1),Y=(We?p==="("?p:s:p==="-"||p==="("?"":p)+Y,X=(T==="s"?cp[8+ip/3]:"")+X+(We&&p==="("?")":""),E){for(Z=-1,Se=F.length;++Z<Se;)if(Me=F.charCodeAt(Z),48>Me||Me>57){X=(Me===46?i+F.slice(Z+1):F.slice(Z))+X,F=F.slice(0,Z);break}}}D&&!x&&(F=t(F,1/0));var At=Y.length+F.length+X.length,vt=At<A?new Array(A-At+1).join(h):"";switch(D&&x&&(F=t(vt+F,vt.length?A-X.length:1/0),vt=""),d){case"<":F=Y+F+X+vt;break;case"=":F=Y+vt+F+X;break;case"^":F=vt.slice(0,At=vt.length>>1)+Y+F+X+vt.slice(At);break;default:F=vt+Y+F+X;break}return a(F)}return N.toString=function(){return l+""},N}function f(l,h){var d=u((l=yr(l),l.type="f",l)),p=Math.max(-8,Math.min(8,Math.floor(oa(h)/3)))*3,b=Math.pow(10,-p),x=cp[8+p/3];return function(A){return d(b*A)+x}}return{format:u,formatPrefix:f}}var Vu,it,Sl;o3({thousands:",",grouping:[3],currency:["$",""]});function o3(e){return Vu=a3(e),it=Vu.format,Sl=Vu.formatPrefix,Vu}function fp(e){return Math.max(0,-oa(Math.abs(e)))}function lp(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(oa(t)/3)))*3-oa(Math.abs(e)))}function hp(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,oa(t)-oa(e))+1}var Dl=new Date,Il=new Date;function Xe(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return e(a=new Date(+a)),a},i.ceil=function(a){return e(a=new Date(a-1)),t(a,1),e(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 t(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var c=[],u;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return c;do c.push(u=new Date(+a)),t(a,s),e(a);while(u<a&&a<o);return c},i.filter=function(a){return Xe(function(o){if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););})},n&&(i.count=function(a,o){return Dl.setTime(+a),Il.setTime(+o),e(Dl),e(Il),Math.floor(n(Dl,Il))},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 Zu=Xe(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});Zu.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Xe(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):Zu};const _l=Zu;Zu.range;const Yn=1e3,Qt=Yn*60,Wn=Qt*60,ui=Wn*24,Ml=ui*7,dp=ui*30,Tl=ui*365;var gp=Xe(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*Yn)},function(e,t){return(t-e)/Yn},function(e){return e.getUTCSeconds()});const wr=gp;gp.range;var pp=Xe(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Yn)},function(e,t){e.setTime(+e+t*Qt)},function(e,t){return(t-e)/Qt},function(e){return e.getMinutes()});const Nl=pp;pp.range;var mp=Xe(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Yn-e.getMinutes()*Qt)},function(e,t){e.setTime(+e+t*Wn)},function(e,t){return(t-e)/Wn},function(e){return e.getHours()});const Bl=mp;mp.range;var bp=Xe(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Qt)/ui,e=>e.getDate()-1);const ci=bp;bp.range;function fi(e){return Xe(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Qt)/Ml})}var Mo=fi(0),Yu=fi(1),s3=fi(2),u3=fi(3),sa=fi(4),c3=fi(5),f3=fi(6);Mo.range,Yu.range,s3.range,u3.range,sa.range,c3.range,f3.range;var yp=Xe(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});const Wu=yp;yp.range;var Fl=Xe(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Fl.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:Xe(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})};const xr=Fl;Fl.range;var wp=Xe(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*Qt)},function(e,t){return(t-e)/Qt},function(e){return e.getUTCMinutes()});const kl=wp;wp.range;var xp=Xe(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*Wn)},function(e,t){return(t-e)/Wn},function(e){return e.getUTCHours()});const Ll=xp;xp.range;var Ap=Xe(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/ui},function(e){return e.getUTCDate()-1});const li=Ap;Ap.range;function hi(e){return Xe(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/Ml})}var To=hi(0),qu=hi(1),l3=hi(2),h3=hi(3),ua=hi(4),d3=hi(5),g3=hi(6);To.range,qu.range,l3.range,h3.range,ua.range,d3.range,g3.range;var vp=Xe(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()});const Xu=vp;vp.range;var zl=Xe(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});zl.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:Xe(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})};const Ar=zl;zl.range;function Ep(e,t,n,r,i,a){const o=[[wr,1,Yn],[wr,5,5*Yn],[wr,15,15*Yn],[wr,30,30*Yn],[a,1,Qt],[a,5,5*Qt],[a,15,15*Qt],[a,30,30*Qt],[i,1,Wn],[i,3,3*Wn],[i,6,6*Wn],[i,12,12*Wn],[r,1,ui],[r,2,2*ui],[n,1,Ml],[t,1,dp],[t,3,3*dp],[e,1,Tl]];function s(u,f,l){const h=f<u;h&&([u,f]=[f,u]);const d=l&&typeof l.range=="function"?l:c(u,f,l),p=d?d.range(u,+f+1):[];return h?p.reverse():p}function c(u,f,l){const h=Math.abs(f-u)/l,d=Uu(([,,x])=>x).right(o,h);if(d===o.length)return e.every(si(u/Tl,f/Tl,l));if(d===0)return _l.every(Math.max(si(u,f,l),1));const[p,b]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(b)}return[s,c]}const[p3,m3]=Ep(Ar,Xu,To,li,Ll,kl),[b3,y3]=Ep(xr,Wu,Mo,ci,Bl,Nl),No="year",Bo="quarter",Fo="month",ko="week",Lo="date",Ku="day",Rl="dayofyear",zo="hours",Ro="minutes",Oo="seconds",Ju="milliseconds";[No,Bo,Fo,ko,Lo,Ku,Rl,zo,Ro,Oo,Ju].reduce((e,t,n)=>(e[t]=1+n,e),{});const w3={[No]:xr,[Bo]:Wu.every(3),[Fo]:Wu,[ko]:Mo,[Lo]:ci,[Ku]:ci,[Rl]:ci,[zo]:Bl,[Ro]:Nl,[Oo]:wr,[Ju]:_l},x3={[No]:Ar,[Bo]:Xu.every(3),[Fo]:Xu,[ko]:To,[Lo]:li,[Ku]:li,[Rl]:li,[zo]:Ll,[Ro]:kl,[Oo]:wr,[Ju]:_l};function A3(e){return w3[e]}function v3(e){return x3[e]}function Ol(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function Pl(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Po(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Cp(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,c=e.shortMonths,u=Uo(i),f=jo(i),l=Uo(a),h=jo(a),d=Uo(o),p=jo(o),b=Uo(s),x=jo(s),A=Uo(c),D=jo(c),_={a:We,A:At,b:vt,B:Iu,c:null,d:Tp,e:Tp,f:V3,g:tC,G:rC,H:G3,I:H3,j:Q3,L:Np,m:Z3,M:Y3,p:Pe,q:qe,Q:Rp,s:Op,S:W3,u:q3,U:X3,V:K3,w:J3,W:$3,x:null,X:null,y:eC,Y:nC,Z:iC,"%":zp},C={a:Ao,A:$i,b:vo,B:ea,c:null,d:Fp,e:Fp,f:uC,g:yC,G:xC,H:aC,I:oC,j:sC,L:kp,m:cC,M:fC,p:Eo,q:En,Q:Rp,s:Op,S:lC,u:hC,U:dC,V:gC,w:pC,W:mC,x:null,X:null,y:bC,Y:wC,Z:AC,"%":zp},T={a:N,A:F,b:Y,B:X,c:Z,d:_p,e:_p,f:O3,g:Ip,G:Dp,H:Mp,I:Mp,j:k3,L:R3,m:F3,M:L3,p:E,q:B3,Q:U3,s:j3,S:z3,u:I3,U:_3,V:M3,w:D3,W:T3,x:Se,X:Me,y:Ip,Y:Dp,Z:N3,"%":P3};_.x=B(n,_),_.X=B(r,_),_.c=B(t,_),C.x=B(n,C),C.X=B(r,C),C.c=B(t,C);function B(Q,te){return function(oe){var P=[],Ue=-1,ce=0,ut=Q.length,rt,jt,ta;for(oe instanceof Date||(oe=new Date(+oe));++Ue<ut;)Q.charCodeAt(Ue)===37&&(P.push(Q.slice(ce,Ue)),(jt=Sp[rt=Q.charAt(++Ue)])!=null?rt=Q.charAt(++Ue):jt=rt==="e"?" ":"0",(ta=te[rt])&&(rt=ta(oe,jt)),P.push(rt),ce=Ue+1);return P.push(Q.slice(ce,Ue)),P.join("")}}function S(Q,te){return function(oe){var P=Po(1900,void 0,1),Ue=z(P,Q,oe+="",0),ce,ut;if(Ue!=oe.length)return null;if("Q"in P)return new Date(P.Q);if("s"in P)return new Date(P.s*1e3+("L"in P?P.L:0));if(te&&!("Z"in P)&&(P.Z=0),"p"in P&&(P.H=P.H%12+P.p*12),P.m===void 0&&(P.m="q"in P?P.q:0),"V"in P){if(P.V<1||P.V>53)return null;"w"in P||(P.w=1),"Z"in P?(ce=Pl(Po(P.y,0,1)),ut=ce.getUTCDay(),ce=ut>4||ut===0?qu.ceil(ce):qu(ce),ce=li.offset(ce,(P.V-1)*7),P.y=ce.getUTCFullYear(),P.m=ce.getUTCMonth(),P.d=ce.getUTCDate()+(P.w+6)%7):(ce=Ol(Po(P.y,0,1)),ut=ce.getDay(),ce=ut>4||ut===0?Yu.ceil(ce):Yu(ce),ce=ci.offset(ce,(P.V-1)*7),P.y=ce.getFullYear(),P.m=ce.getMonth(),P.d=ce.getDate()+(P.w+6)%7)}else("W"in P||"U"in P)&&("w"in P||(P.w="u"in P?P.u%7:"W"in P?1:0),ut="Z"in P?Pl(Po(P.y,0,1)).getUTCDay():Ol(Po(P.y,0,1)).getDay(),P.m=0,P.d="W"in P?(P.w+6)%7+P.W*7-(ut+5)%7:P.w+P.U*7-(ut+6)%7);return"Z"in P?(P.H+=P.Z/100|0,P.M+=P.Z%100,Pl(P)):Ol(P)}}function z(Q,te,oe,P){for(var Ue=0,ce=te.length,ut=oe.length,rt,jt;Ue<ce;){if(P>=ut)return-1;if(rt=te.charCodeAt(Ue++),rt===37){if(rt=te.charAt(Ue++),jt=T[rt in Sp?te.charAt(Ue++):rt],!jt||(P=jt(Q,oe,P))<0)return-1}else if(rt!=oe.charCodeAt(P++))return-1}return P}function E(Q,te,oe){var P=u.exec(te.slice(oe));return P?(Q.p=f.get(P[0].toLowerCase()),oe+P[0].length):-1}function N(Q,te,oe){var P=d.exec(te.slice(oe));return P?(Q.w=p.get(P[0].toLowerCase()),oe+P[0].length):-1}function F(Q,te,oe){var P=l.exec(te.slice(oe));return P?(Q.w=h.get(P[0].toLowerCase()),oe+P[0].length):-1}function Y(Q,te,oe){var P=A.exec(te.slice(oe));return P?(Q.m=D.get(P[0].toLowerCase()),oe+P[0].length):-1}function X(Q,te,oe){var P=b.exec(te.slice(oe));return P?(Q.m=x.get(P[0].toLowerCase()),oe+P[0].length):-1}function Z(Q,te,oe){return z(Q,t,te,oe)}function Se(Q,te,oe){return z(Q,n,te,oe)}function Me(Q,te,oe){return z(Q,r,te,oe)}function We(Q){return o[Q.getDay()]}function At(Q){return a[Q.getDay()]}function vt(Q){return c[Q.getMonth()]}function Iu(Q){return s[Q.getMonth()]}function Pe(Q){return i[+(Q.getHours()>=12)]}function qe(Q){return 1+~~(Q.getMonth()/3)}function Ao(Q){return o[Q.getUTCDay()]}function $i(Q){return a[Q.getUTCDay()]}function vo(Q){return c[Q.getUTCMonth()]}function ea(Q){return s[Q.getUTCMonth()]}function Eo(Q){return i[+(Q.getUTCHours()>=12)]}function En(Q){return 1+~~(Q.getUTCMonth()/3)}return{format:function(Q){var te=B(Q+="",_);return te.toString=function(){return Q},te},parse:function(Q){var te=S(Q+="",!1);return te.toString=function(){return Q},te},utcFormat:function(Q){var te=B(Q+="",C);return te.toString=function(){return Q},te},utcParse:function(Q){var te=S(Q+="",!0);return te.toString=function(){return Q},te}}}var Sp={"-":"",_:" ",0:"0"},Ke=/^\s*\d+/,E3=/^%/,C3=/[\\^$*+?|[\]().{}]/g;function he(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function S3(e){return e.replace(C3,"\\$&")}function Uo(e){return new RegExp("^(?:"+e.map(S3).join("|")+")","i")}function jo(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function D3(e,t,n){var r=Ke.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function I3(e,t,n){var r=Ke.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function _3(e,t,n){var r=Ke.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function M3(e,t,n){var r=Ke.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function T3(e,t,n){var r=Ke.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Dp(e,t,n){var r=Ke.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Ip(e,t,n){var r=Ke.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function N3(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function B3(e,t,n){var r=Ke.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function F3(e,t,n){var r=Ke.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function _p(e,t,n){var r=Ke.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function k3(e,t,n){var r=Ke.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Mp(e,t,n){var r=Ke.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function L3(e,t,n){var r=Ke.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function z3(e,t,n){var r=Ke.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function R3(e,t,n){var r=Ke.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function O3(e,t,n){var r=Ke.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function P3(e,t,n){var r=E3.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function U3(e,t,n){var r=Ke.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function j3(e,t,n){var r=Ke.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Tp(e,t){return he(e.getDate(),t,2)}function G3(e,t){return he(e.getHours(),t,2)}function H3(e,t){return he(e.getHours()%12||12,t,2)}function Q3(e,t){return he(1+ci.count(xr(e),e),t,3)}function Np(e,t){return he(e.getMilliseconds(),t,3)}function V3(e,t){return Np(e,t)+"000"}function Z3(e,t){return he(e.getMonth()+1,t,2)}function Y3(e,t){return he(e.getMinutes(),t,2)}function W3(e,t){return he(e.getSeconds(),t,2)}function q3(e){var t=e.getDay();return t===0?7:t}function X3(e,t){return he(Mo.count(xr(e)-1,e),t,2)}function Bp(e){var t=e.getDay();return t>=4||t===0?sa(e):sa.ceil(e)}function K3(e,t){return e=Bp(e),he(sa.count(xr(e),e)+(xr(e).getDay()===4),t,2)}function J3(e){return e.getDay()}function $3(e,t){return he(Yu.count(xr(e)-1,e),t,2)}function eC(e,t){return he(e.getFullYear()%100,t,2)}function tC(e,t){return e=Bp(e),he(e.getFullYear()%100,t,2)}function nC(e,t){return he(e.getFullYear()%1e4,t,4)}function rC(e,t){var n=e.getDay();return e=n>=4||n===0?sa(e):sa.ceil(e),he(e.getFullYear()%1e4,t,4)}function iC(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+he(t/60|0,"0",2)+he(t%60,"0",2)}function Fp(e,t){return he(e.getUTCDate(),t,2)}function aC(e,t){return he(e.getUTCHours(),t,2)}function oC(e,t){return he(e.getUTCHours()%12||12,t,2)}function sC(e,t){return he(1+li.count(Ar(e),e),t,3)}function kp(e,t){return he(e.getUTCMilliseconds(),t,3)}function uC(e,t){return kp(e,t)+"000"}function cC(e,t){return he(e.getUTCMonth()+1,t,2)}function fC(e,t){return he(e.getUTCMinutes(),t,2)}function lC(e,t){return he(e.getUTCSeconds(),t,2)}function hC(e){var t=e.getUTCDay();return t===0?7:t}function dC(e,t){return he(To.count(Ar(e)-1,e),t,2)}function Lp(e){var t=e.getUTCDay();return t>=4||t===0?ua(e):ua.ceil(e)}function gC(e,t){return e=Lp(e),he(ua.count(Ar(e),e)+(Ar(e).getUTCDay()===4),t,2)}function pC(e){return e.getUTCDay()}function mC(e,t){return he(qu.count(Ar(e)-1,e),t,2)}function bC(e,t){return he(e.getUTCFullYear()%100,t,2)}function yC(e,t){return e=Lp(e),he(e.getUTCFullYear()%100,t,2)}function wC(e,t){return he(e.getUTCFullYear()%1e4,t,4)}function xC(e,t){var n=e.getUTCDay();return e=n>=4||n===0?ua(e):ua.ceil(e),he(e.getUTCFullYear()%1e4,t,4)}function AC(){return"+0000"}function zp(){return"%"}function Rp(e){return+e}function Op(e){return Math.floor(+e/1e3)}var ca,Ul,Pp,jl,Up;vC({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 vC(e){return ca=Cp(e),Ul=ca.format,Pp=ca.parse,jl=ca.utcFormat,Up=ca.utcParse,ca}function Go(e){const t={};return n=>t[n]||(t[n]=e(n))}function EC(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=CC(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 CC(e,t){let n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function SC(e){const t=Go(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=yr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return EC(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=yr(o??",f");const s=si(r,i,a),c=Math.max(Math.abs(r),Math.abs(i));let u;if(o.precision==null)switch(o.type){case"s":return isNaN(u=lp(s,c))||(o.precision=u),n(o,c);case"":case"e":case"g":case"p":case"r":{isNaN(u=hp(s,c))||(o.precision=u-(o.type==="e"));break}case"f":case"%":{isNaN(u=fp(s))||(o.precision=u-(o.type==="%")*2);break}}return t(o)}}}DC();function DC(){return SC({format:it,formatPrefix:Sl})}function jp(e,t,n){n=n||{},un(n)||Re("Invalid time multi-format specifier: ".concat(n));const r=t(Oo),i=t(Ro),a=t(zo),o=t(Lo),s=t(ko),c=t(Fo),u=t(Bo),f=t(No),l=e(n[Ju]||".%L"),h=e(n[Oo]||":%S"),d=e(n[Ro]||"%I:%M"),p=e(n[zo]||"%I %p"),b=e(n[Lo]||n[Ku]||"%a %d"),x=e(n[ko]||"%b %d"),A=e(n[Fo]||"%B"),D=e(n[Bo]||"%B"),_=e(n[No]||"%Y");return C=>(r(C)<C?l:i(C)<C?h:a(C)<C?d:o(C)<C?p:c(C)<C?s(C)<C?b:x:f(C)<C?u(C)<C?A:D:_)(C)}function Gp(e){const t=Go(e.format),n=Go(e.utcFormat);return{timeFormat:r=>Oe(r)?t(r):jp(t,A3,r),utcFormat:r=>Oe(r)?n(r):jp(n,v3,r),timeParse:Go(e.parse),utcParse:Go(e.utcParse)}}let Gl;IC();function IC(){return Gl=Gp({format:Ul,parse:Pp,utcFormat:jl,utcParse:Up})}function _C(e){return Gp(Cp(e))}function MC(e){return arguments.length?Gl=_C(e):Gl}const TC=/^(data:|([A-Za-z]+:)?\/\/)/,NC=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,BC=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Hp="file://";function FC(e,t){return n=>({options:n||{},sanitize:LC,load:kC,fileAccess:!!t,file:zC(t),http:OC(e)})}async function kC(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function LC(e,t){t=pl({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=NC.test(e.replace(BC,""));(e==null||typeof e!="string"||!s)&&Re("Sanitize failure, invalid URI: "+Ou(e));const c=TC.test(e);return(o=t.baseURL)&&!c&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith(Hp))||t.mode==="file"||t.mode!=="http"&&!c&&n,i?e=e.slice(Hp.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function zC(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):RC}async function RC(){Re("No file system access.")}function OC(e){return e?async function(t,n){const r=pl({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Ct(a[i])?a[i]():a.text():Re(a.status+""+a.statusText)}:PC}async function PC(){Re("No HTTP fetch method available.")}const UC=e=>e!=null&&e===e,jC=e=>e==="true"||e==="false"||e===!0||e===!1,GC=e=>!Number.isNaN(Date.parse(e)),Qp=e=>!Number.isNaN(+e)&&!(e instanceof Date),HC=e=>Qp(e)&&Number.isInteger(+e),Vp={boolean:ME,integer:So,number:So,date:NE,string:BE,unknown:Fu},$u=[jC,HC,Qp,GC],QC=["boolean","integer","number","date"];function VC(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=$u.length,i=$u.map((a,o)=>o+1);for(let a=0,o=0,s,c;a<n;++a)for(c=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&UC(c)&&!$u[s](c)&&(i[s]=0,++o,o===$u.length))return"string";return QC[i.reduce((a,o)=>a===0?o:a,0)-1]}function ZC(e,t){return t.reduce((n,r)=>(n[r]=VC(e,r),n),{})}function Zp(e){const t=function(n,r){const i={delimiter:e};return Hl(n,r?pl(r,i):i)};return t.responseType="text",t}function Hl(e,t){return t.header&&(e=t.header.map(Ou).join(t.delimiter)+`
6
+ `+e),qg(t.delimiter).parse(e+"")}Hl.responseType="text";function YC(e){return typeof Buffer=="function"&&Ct(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function Ql(e,t){const n=t&&t.property?Bu(t.property):Fu;return un(e)&&!YC(e)?WC(n(e),t):n(JSON.parse(e))}Ql.responseType="json";function WC(e,t){return!Ht(e)&&IE(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const qC={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function Yp(e,t){let n,r,i,a;return e=Ql(e,t),t&&t.feature?(n=jE,i=t.feature):t&&t.mesh?(n=HE,i=t.mesh,a=qC[t.filter]):Re("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):Re("Invalid TopoJSON object: "+i),r&&r.features||[r]}Yp.responseType="json";const Vl={dsv:Hl,csv:Zp(","),tsv:Zp(" "),json:Ql,topojson:Yp};function Wp(e,t){return arguments.length>1?(Vl[e]=t,this):ai(Vl,e)?Vl[e]:null}function qp(e,t,n,r){t=t||{};const i=Wp(t.type||"json");return i||Re("Unknown data format type: "+t.type),e=i(e,t),t.parse&&XC(e,t.parse,n,r),ai(e,"columns")&&delete e.columns,e}function XC(e,t,n,r){if(!e.length)return;const i=MC();n=n||i.timeParse,r=r||i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,c,u,f,l;t==="auto"&&(t=ZC(e,a)),a=Object.keys(t);const h=a.map(d=>{const p=t[d];let b,x;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return b=p.split(/:(.+)?/,2),x=b[1],(x[0]==="'"&&x[x.length-1]==="'"||x[0]==='"'&&x[x.length-1]==='"')&&(x=x.slice(1,-1)),(b[0]==="utc"?r:n)(x);if(!Vp[p])throw Error("Illegal format pattern: "+d+":"+p);return Vp[p]});for(c=0,f=e.length,l=a.length;c<f;++c)for(o=e[c],u=0;u<l;++u)s=a[u],o[s]=h[u](o[s])}const ec=FC(typeof fetch<"u"&&fetch,null);/**
7
7
  * @license
8
8
  * Copyright 2017 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
10
- */var Sl;const Hu=window,oo=Hu.trustedTypes,Mp=oo?oo.createPolicy("lit-html",{createHTML:e=>e}):void 0,wr=`lit$${(Math.random()+"").slice(9)}$`,Tp="?"+wr,wC=`<${Tp}>`,ao=document,za=(e="")=>ao.createComment(e),Ra=e=>e===null||typeof e!="object"&&typeof e!="function",Np=Array.isArray,xC=e=>Np(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",Oa=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Bp=/-->/g,Fp=/>/g,fi=RegExp(`>|[
10
+ */var Zl;const tc=window,fa=tc.trustedTypes,Xp=fa?fa.createPolicy("lit-html",{createHTML:e=>e}):void 0,vr=`lit$${(Math.random()+"").slice(9)}$`,Kp="?"+vr,KC=`<${Kp}>`,la=document,Ho=(e="")=>la.createComment(e),Qo=e=>e===null||typeof e!="object"&&typeof e!="function",Jp=Array.isArray,JC=e=>Jp(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",Vo=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,$p=/-->/g,e1=/>/g,di=RegExp(`>|[
11
11
  \f\r](?:([^\\s"'>=/]+)([
12
12
  \f\r]*=[
13
13
  \f\r]*(?:[^
14
- \f\r"'\`<>=]|("|')|))|$)`,"g"),kp=/'/g,Lp=/"/g,zp=/^(?:script|style|textarea|title)$/i,AC=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),qn=AC(1),Pa=Symbol.for("lit-noChange"),Ke=Symbol.for("lit-nothing"),Rp=new WeakMap,so=ao.createTreeWalker(ao,129,null,!1),vC=(e,t)=>{const n=e.length-1,r=[];let i,o=t===2?"<svg>":"",a=Oa;for(let c=0;c<n;c++){const u=e[c];let f,l,h=-1,d=0;for(;d<u.length&&(a.lastIndex=d,l=a.exec(u),l!==null);)d=a.lastIndex,a===Oa?l[1]==="!--"?a=Bp:l[1]!==void 0?a=Fp:l[2]!==void 0?(zp.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=fi):l[3]!==void 0&&(a=fi):a===fi?l[0]===">"?(a=i??Oa,h=-1):l[1]===void 0?h=-2:(h=a.lastIndex-l[2].length,f=l[1],a=l[3]===void 0?fi:l[3]==='"'?Lp:kp):a===Lp||a===kp?a=fi:a===Bp||a===Fp?a=Oa:(a=fi,i=void 0);const p=a===fi&&e[c+1].startsWith("/>")?" ":"";o+=a===Oa?u+wC:h>=0?(r.push(f),u.slice(0,h)+"$lit$"+u.slice(h)+wr+p):u+wr+(h===-2?(r.push(void 0),c):p)}const s=o+(e[n]||"<?>")+(t===2?"</svg>":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[Mp!==void 0?Mp.createHTML(s):s,r]};let Dl=class _v{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=t.length-1,c=this.parts,[u,f]=vC(t,n);if(this.el=_v.createElement(u,r),so.currentNode=this.el.content,n===2){const l=this.el.content,h=l.firstChild;h.remove(),l.append(...h.childNodes)}for(;(i=so.nextNode())!==null&&c.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const l=[];for(const h of i.getAttributeNames())if(h.endsWith("$lit$")||h.startsWith(wr)){const d=f[a++];if(l.push(h),d!==void 0){const p=i.getAttribute(d.toLowerCase()+"$lit$").split(wr),b=/([.?@])?(.*)/.exec(d);c.push({type:1,index:o,name:b[2],strings:p,ctor:b[1]==="."?CC:b[1]==="?"?DC:b[1]==="@"?IC:Qu})}else c.push({type:6,index:o})}for(const h of l)i.removeAttribute(h)}if(zp.test(i.tagName)){const l=i.textContent.split(wr),h=l.length-1;if(h>0){i.textContent=oo?oo.emptyScript:"";for(let d=0;d<h;d++)i.append(l[d],za()),so.nextNode(),c.push({type:2,index:++o});i.append(l[h],za())}}}else if(i.nodeType===8)if(i.data===Tp)c.push({type:2,index:o});else{let l=-1;for(;(l=i.data.indexOf(wr,l+1))!==-1;)c.push({type:7,index:o}),l+=wr.length-1}o++}}static createElement(t,n){const r=ao.createElement("template");return r.innerHTML=t,r}};function uo(e,t,n=e,r){var i,o,a,s;if(t===Pa)return t;let c=r!==void 0?(i=n._$Co)===null||i===void 0?void 0:i[r]:n._$Cl;const u=Ra(t)?void 0:t._$litDirective$;return(c==null?void 0:c.constructor)!==u&&((o=c==null?void 0:c._$AO)===null||o===void 0||o.call(c,!1),u===void 0?c=void 0:(c=new u(e),c._$AT(e,n,r)),r!==void 0?((a=(s=n)._$Co)!==null&&a!==void 0?a:s._$Co=[])[r]=c:n._$Cl=c),c!==void 0&&(t=uo(e,c._$AS(e,t.values),c,r)),t}class EC{constructor(t,n){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var n;const{el:{content:r},parts:i}=this._$AD,o=((n=t==null?void 0:t.creationScope)!==null&&n!==void 0?n:ao).importNode(r,!0);so.currentNode=o;let a=so.nextNode(),s=0,c=0,u=i[0];for(;u!==void 0;){if(s===u.index){let f;u.type===2?f=new Ua(a,a.nextSibling,this,t):u.type===1?f=new u.ctor(a,u.name,u.strings,this,t):u.type===6&&(f=new _C(a,this,t)),this.u.push(f),u=i[++c]}s!==(u==null?void 0:u.index)&&(a=so.nextNode(),s++)}return o}p(t){let n=0;for(const r of this.u)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class Ua{constructor(t,n,r,i){var o;this.type=2,this._$AH=Ke,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cm=(o=i==null?void 0:i.isConnected)===null||o===void 0||o}get _$AU(){var t,n;return(n=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&n!==void 0?n:this._$Cm}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&t.nodeType===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=uo(this,t,n),Ra(t)?t===Ke||t==null||t===""?(this._$AH!==Ke&&this._$AR(),this._$AH=Ke):t!==this._$AH&&t!==Pa&&this.g(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):xC(t)?this.k(t):this.g(t)}O(t,n=this._$AB){return this._$AA.parentNode.insertBefore(t,n)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==Ke&&Ra(this._$AH)?this._$AA.nextSibling.data=t:this.T(ao.createTextNode(t)),this._$AH=t}$(t){var n;const{values:r,_$litType$:i}=t,o=typeof i=="number"?this._$AC(t):(i.el===void 0&&(i.el=Dl.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===o)this._$AH.p(r);else{const a=new EC(o,this),s=a.v(this.options);a.p(r),this.T(s),this._$AH=a}}_$AC(t){let n=Rp.get(t.strings);return n===void 0&&Rp.set(t.strings,n=new Dl(t)),n}k(t){Np(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const o of t)i===n.length?n.push(r=new Ua(this.O(za()),this.O(za()),this,this.options)):r=n[i],r._$AI(o),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cm=t,(n=this._$AP)===null||n===void 0||n.call(this,t))}}class Qu{constructor(t,n,r,i,o){this.type=1,this._$AH=Ke,this._$AN=void 0,this.element=t,this.name=n,this._$AM=i,this.options=o,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=Ke}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,n=this,r,i){const o=this.strings;let a=!1;if(o===void 0)t=uo(this,t,n,0),a=!Ra(t)||t!==this._$AH&&t!==Pa,a&&(this._$AH=t);else{const s=t;let c,u;for(t=o[0],c=0;c<o.length-1;c++)u=uo(this,s[r+c],n,c),u===Pa&&(u=this._$AH[c]),a||(a=!Ra(u)||u!==this._$AH[c]),u===Ke?t=Ke:t!==Ke&&(t+=(u??"")+o[c+1]),this._$AH[c]=u}a&&!i&&this.j(t)}j(t){t===Ke?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class CC extends Qu{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===Ke?void 0:t}}const SC=oo?oo.emptyScript:"";class DC extends Qu{constructor(){super(...arguments),this.type=4}j(t){t&&t!==Ke?this.element.setAttribute(this.name,SC):this.element.removeAttribute(this.name)}}class IC extends Qu{constructor(t,n,r,i,o){super(t,n,r,i,o),this.type=5}_$AI(t,n=this){var r;if((t=(r=uo(this,t,n,0))!==null&&r!==void 0?r:Ke)===Pa)return;const i=this._$AH,o=t===Ke&&i!==Ke||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,a=t!==Ke&&(i===Ke||o);o&&this.element.removeEventListener(this.name,this,i),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){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,t):this._$AH.handleEvent(t)}}class _C{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){uo(this,t)}}const Op=Hu.litHtmlPolyfillSupport;Op==null||Op(Dl,Ua),((Sl=Hu.litHtmlVersions)!==null&&Sl!==void 0?Sl:Hu.litHtmlVersions=[]).push("2.4.0");const Pp=(e,t,n)=>{var r,i;const o=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:t;let a=o._$litPart$;if(a===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;o._$litPart$=a=new Ua(t.insertBefore(za(),s),s,void 0,n??{})}return a._$AI(e),a},Up=1;function Il(){let e=[0,1],t=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const u=f=>(f+a-e[0])/n*r+t[0];return u.invert=f=>(f-t[0])/r*n+e[0]-a,u.domain=function(f){if(arguments.length){e=mE(f),n=e[1]-e[0];const l=e[0]===0&&e[0]===0;if(n<Up&&!l){n=Up;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return u}else return e},u.range=function(f){return arguments.length?(t=[...f],r=t[1]-t[0],u):t},u.numberingOffset=function(f){return arguments.length?(s=f,u):s},u.padding=function(f){return arguments.length?(o=f,i=Math.min(1,f),u):i},u.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),u):i},u.paddingOuter=function(f){return arguments.length?(o=f,u):o},u.align=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),u):a},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=f=>{const l=u.align(),h=u.numberingOffset();return Tu(e[0]-l+h,e[1]-l+h,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},u.tickFormat=(f,l)=>{if(l)throw new Error("Index scale's tickFormat does not support a specifier!");const d=ii(e[0],e[1],Math.min(f,Math.ceil(n)))<1e5?it(","):it(".3s");return p=>d(p+s)},u.copy=()=>Il().domain(e).range(t).paddingInner(i).paddingOuter(o).numberingOffset(s),u}function MC(){const e=Il().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),o=e.numberingOffset(),[a,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(f=>t.toChromosome(f)),c=Math.max(1,ii(i[0],i[1],r)),u=[];for(let f=a.index;f<=s.index;f++){const l=t.chromosomes[f],h=Math.max(l.continuousStart+c,i[0]-(i[0]-l.continuousStart)%c),d=Math.min(l.continuousEnd-c/4,i[1]+1);for(let p=h;p<=d;p+=c){const b=p-o;b>=i[0]&&b<i[1]&&u.push(b)}}return u},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const o=e.domain(),a=o[1]-o[0],s=e.numberingOffset(),u=ii(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?it(","):it(".3s"),f=l=>l-t.toChromosome(l).continuousStart;return l=>u(f(l)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function TC(e){return e.type=="locus"}function Cn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function xr(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const _l=Symbol("implicit");function Ml(){var e=new ri,t=[],n=[],r=_l;function i(o){let a=e.get(o);if(a===void 0){if(r!==_l)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new ri;for(const a of o)e.has(a)||e.set(a,t.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return Ml(t,n).unknown(r)},Cn.apply(i,arguments),i}function co(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ja(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ar(){}var li=.7,fo=1/li,lo="\\s*([+-]?\\d+)\\s*",Ga="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Sn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",NC=/^#([0-9a-f]{3,8})$/,BC=new RegExp(`^rgb\\(${lo},${lo},${lo}\\)$`),FC=new RegExp(`^rgb\\(${Sn},${Sn},${Sn}\\)$`),kC=new RegExp(`^rgba\\(${lo},${lo},${lo},${Ga}\\)$`),LC=new RegExp(`^rgba\\(${Sn},${Sn},${Sn},${Ga}\\)$`),zC=new RegExp(`^hsl\\(${Ga},${Sn},${Sn}\\)$`),RC=new RegExp(`^hsla\\(${Ga},${Sn},${Sn},${Ga}\\)$`),jp={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};co(Ar,hi,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Gp,formatHex:Gp,formatHex8:OC,formatHsl:PC,formatRgb:Hp,toString:Hp});function Gp(){return this.rgb().formatHex()}function OC(){return this.rgb().formatHex8()}function PC(){return qp(this).formatHsl()}function Hp(){return this.rgb().formatRgb()}function hi(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=NC.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Qp(t):n===3?new Je(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Vu(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Vu(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=BC.exec(e))?new Je(t[1],t[2],t[3],1):(t=FC.exec(e))?new Je(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=kC.exec(e))?Vu(t[1],t[2],t[3],t[4]):(t=LC.exec(e))?Vu(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=zC.exec(e))?Yp(t[1],t[2]/100,t[3]/100,1):(t=RC.exec(e))?Yp(t[1],t[2]/100,t[3]/100,t[4]):jp.hasOwnProperty(e)?Qp(jp[e]):e==="transparent"?new Je(NaN,NaN,NaN,0):null}function Qp(e){return new Je(e>>16&255,e>>8&255,e&255,1)}function Vu(e,t,n,r){return r<=0&&(e=t=n=NaN),new Je(e,t,n,r)}function Tl(e){return e instanceof Ar||(e=hi(e)),e?(e=e.rgb(),new Je(e.r,e.g,e.b,e.opacity)):new Je}function Zu(e,t,n,r){return arguments.length===1?Tl(e):new Je(e,t,n,r??1)}function Je(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}co(Je,Zu,ja(Ar,{brighter(e){return e=e==null?fo:Math.pow(fo,e),new Je(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?li:Math.pow(li,e),new Je(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Je(di(this.r),di(this.g),di(this.b),Yu(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:Vp,formatHex:Vp,formatHex8:UC,formatRgb:Zp,toString:Zp}));function Vp(){return`#${gi(this.r)}${gi(this.g)}${gi(this.b)}`}function UC(){return`#${gi(this.r)}${gi(this.g)}${gi(this.b)}${gi((isNaN(this.opacity)?1:this.opacity)*255)}`}function Zp(){const e=Yu(this.opacity);return`${e===1?"rgb(":"rgba("}${di(this.r)}, ${di(this.g)}, ${di(this.b)}${e===1?")":`, ${e})`}`}function Yu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function di(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function gi(e){return e=di(e),(e<16?"0":"")+e.toString(16)}function Yp(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new un(e,t,n,r)}function qp(e){if(e instanceof un)return new un(e.h,e.s,e.l,e.opacity);if(e instanceof Ar||(e=hi(e)),!e)return new un;if(e instanceof un)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(t===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-t)/s+2:a=(t-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new un(a,s,c,e.opacity)}function Nl(e,t,n,r){return arguments.length===1?qp(e):new un(e,t,n,r??1)}function un(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}co(un,Nl,ja(Ar,{brighter(e){return e=e==null?fo:Math.pow(fo,e),new un(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?li:Math.pow(li,e),new un(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Je(Bl(e>=240?e-240:e+120,i,r),Bl(e,i,r),Bl(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new un(Wp(this.h),qu(this.s),qu(this.l),Yu(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 e=Yu(this.opacity);return`${e===1?"hsl(":"hsla("}${Wp(this.h)}, ${qu(this.s)*100}%, ${qu(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Wp(e){return e=(e||0)%360,e<0?e+360:e}function qu(e){return Math.max(0,Math.min(1,e||0))}function Bl(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Xp=Math.PI/180,Kp=180/Math.PI,Wu=18,Jp=.96422,$p=1,e1=.82521,t1=4/29,ho=6/29,n1=3*ho*ho,jC=ho*ho*ho;function r1(e){if(e instanceof Dn)return new Dn(e.l,e.a,e.b,e.opacity);if(e instanceof Wn)return i1(e);e instanceof Je||(e=Tl(e));var t=Rl(e.r),n=Rl(e.g),r=Rl(e.b),i=kl((.2225045*t+.7168786*n+.0606169*r)/$p),o,a;return t===n&&n===r?o=a=i:(o=kl((.4360747*t+.3850649*n+.1430804*r)/Jp),a=kl((.0139322*t+.0971045*n+.7141733*r)/e1)),new Dn(116*i-16,500*(o-i),200*(i-a),e.opacity)}function Fl(e,t,n,r){return arguments.length===1?r1(e):new Dn(e,t,n,r??1)}function Dn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}co(Dn,Fl,ja(Ar,{brighter(e){return new Dn(this.l+Wu*(e??1),this.a,this.b,this.opacity)},darker(e){return new Dn(this.l-Wu*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=Jp*Ll(t),e=$p*Ll(e),n=e1*Ll(n),new Je(zl(3.1338561*t-1.6168667*e-.4906146*n),zl(-.9787684*t+1.9161415*e+.033454*n),zl(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function kl(e){return e>jC?Math.pow(e,1/3):e/n1+t1}function Ll(e){return e>ho?e*e*e:n1*(e-t1)}function zl(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Rl(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function GC(e){if(e instanceof Wn)return new Wn(e.h,e.c,e.l,e.opacity);if(e instanceof Dn||(e=r1(e)),e.a===0&&e.b===0)return new Wn(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Kp;return new Wn(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Ol(e,t,n,r){return arguments.length===1?GC(e):new Wn(e,t,n,r??1)}function Wn(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function i1(e){if(isNaN(e.h))return new Dn(e.l,0,0,e.opacity);var t=e.h*Xp;return new Dn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}co(Wn,Ol,ja(Ar,{brighter(e){return new Wn(this.h,this.c,this.l+Wu*(e??1),this.opacity)},darker(e){return new Wn(this.h,this.c,this.l-Wu*(e??1),this.opacity)},rgb(){return i1(this).rgb()}}));var o1=-.14861,Pl=1.78277,Ul=-.29227,Xu=-.90649,Ha=1.97294,a1=Ha*Xu,s1=Ha*Pl,u1=Pl*Ul-Xu*o1;function HC(e){if(e instanceof pi)return new pi(e.h,e.s,e.l,e.opacity);e instanceof Je||(e=Tl(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(u1*r+a1*t-s1*n)/(u1+a1-s1),o=r-i,a=(Ha*(n-i)-Ul*o)/Xu,s=Math.sqrt(a*a+o*o)/(Ha*i*(1-i)),c=s?Math.atan2(a,o)*Kp-120:NaN;return new pi(c<0?c+360:c,s,i,e.opacity)}function jl(e,t,n,r){return arguments.length===1?HC(e):new pi(e,t,n,r??1)}function pi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}co(pi,jl,ja(Ar,{brighter(e){return e=e==null?fo:Math.pow(fo,e),new pi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?li:Math.pow(li,e),new pi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Xp,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Je(255*(t+n*(o1*r+Pl*i)),255*(t+n*(Ul*r+Xu*i)),255*(t+n*(Ha*r)),this.opacity)}}));function c1(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function f1(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r<t-1?e[r+2]:2*o-i;return c1((n-r/t)*t,a,i,o,s)}}function l1(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],o=e[r%t],a=e[(r+1)%t],s=e[(r+2)%t];return c1((n-r/t)*t,i,o,a,s)}}const Ku=e=>()=>e;function h1(e,t){return function(n){return e+n*t}}function QC(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Ju(e,t){var n=t-e;return n?h1(e,n>180||n<-180?n-360*Math.round(n/360):n):Ku(isNaN(e)?t:e)}function VC(e){return(e=+e)==1?$e:function(t,n){return n-t?QC(t,n,e):Ku(isNaN(t)?n:t)}}function $e(e,t){var n=t-e;return n?h1(e,n):Ku(isNaN(e)?t:e)}const Gl=function e(t){var n=VC(t);function r(i,o){var a=n((i=Zu(i)).r,(o=Zu(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),u=$e(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=c(f),i.opacity=u(f),i+""}}return r.gamma=e,r}(1);function d1(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=Zu(t[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=e(r),i=e(i),o=e(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var ZC=d1(f1),YC=d1(l1);function Hl(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=e[i]*(1-o)+t[i]*o;return r}}function g1(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function qC(e,t){return(g1(t)?Hl:p1)(e,t)}function p1(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=vr(e[a],t[a]);for(;a<n;++a)o[a]=t[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function m1(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function cn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function b1(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=vr(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Ql=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Vl=new RegExp(Ql.source,"g");function WC(e){return function(){return e}}function XC(e){return function(t){return e(t)+""}}function y1(e,t){var n=Ql.lastIndex=Vl.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(e=e+"",t=t+"";(r=Ql.exec(e))&&(i=Vl.exec(t));)(o=i.index)>n&&(o=t.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:cn(r,i)})),n=Vl.lastIndex;return n<t.length&&(o=t.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?XC(c[0].x):WC(t):(t=c.length,function(u){for(var f=0,l;f<t;++f)s[(l=c[f]).i]=l.x(u);return s.join("")})}function vr(e,t){var n=typeof t,r;return t==null||n==="boolean"?Ku(t):(n==="number"?cn:n==="string"?(r=hi(t))?(t=r,Gl):y1:t instanceof hi?Gl:t instanceof Date?m1:g1(t)?Hl:Array.isArray(t)?p1:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?b1:cn)(e,t)}function KC(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function JC(e,t){var n=Ju(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Qa(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var w1=180/Math.PI,Zl={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function x1(e,t,n,r,i,o){var a,s,c;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(t,e)*w1,skewX:Math.atan(c)*w1,scaleX:a,scaleY:s}}var $u;function $C(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Zl:x1(t.a,t.b,t.c,t.d,t.e,t.f)}function e4(e){return e==null||($u||($u=document.createElementNS("http://www.w3.org/2000/svg","g")),$u.setAttribute("transform",e),!(e=$u.transform.baseVal.consolidate()))?Zl:(e=e.matrix,x1(e.a,e.b,e.c,e.d,e.e,e.f))}function A1(e,t,n,r){function i(u){return u.length?u.pop()+" ":""}function o(u,f,l,h,d,p){if(u!==l||f!==h){var b=d.push("translate(",null,t,null,n);p.push({i:b-4,x:cn(u,l)},{i:b-2,x:cn(f,h)})}else(l||h)&&d.push("translate("+l+t+h+n)}function a(u,f,l,h){u!==f?(u-f>180?f+=360:f-u>180&&(u+=360),h.push({i:l.push(i(l)+"rotate(",null,r)-2,x:cn(u,f)})):f&&l.push(i(l)+"rotate("+f+r)}function s(u,f,l,h){u!==f?h.push({i:l.push(i(l)+"skewX(",null,r)-2,x:cn(u,f)}):f&&l.push(i(l)+"skewX("+f+r)}function c(u,f,l,h,d,p){if(u!==l||f!==h){var b=d.push(i(d)+"scale(",null,",",null,")");p.push({i:b-4,x:cn(u,l)},{i:b-2,x:cn(f,h)})}else(l!==1||h!==1)&&d.push(i(d)+"scale("+l+","+h+")")}return function(u,f){var l=[],h=[];return u=e(u),f=e(f),o(u.translateX,u.translateY,f.translateX,f.translateY,l,h),a(u.rotate,f.rotate,l,h),s(u.skewX,f.skewX,l,h),c(u.scaleX,u.scaleY,f.scaleX,f.scaleY,l,h),u=f=null,function(d){for(var p=-1,b=h.length,x;++p<b;)l[(x=h[p]).i]=x.x(d);return l.join("")}}}var t4=A1($C,"px, ","px)","deg)"),n4=A1(e4,", ",")",")"),r4=1e-12;function v1(e){return((e=Math.exp(e))+1/e)/2}function i4(e){return((e=Math.exp(e))-1/e)/2}function o4(e){return((e=Math.exp(2*e))-1)/(e+1)}const a4=function e(t,n,r){function i(o,a){var s=o[0],c=o[1],u=o[2],f=a[0],l=a[1],h=a[2],d=f-s,p=l-c,b=d*d+p*p,x,A;if(b<r4)A=Math.log(h/u)/t,x=function(S){return[s+S*d,c+S*p,u*Math.exp(t*S*A)]};else{var D=Math.sqrt(b),_=(h*h-u*u+r*b)/(2*u*n*D),C=(h*h-u*u-r*b)/(2*h*n*D),T=Math.log(Math.sqrt(_*_+1)-_),B=Math.log(Math.sqrt(C*C+1)-C);A=(B-T)/t,x=function(S){var z=S*A,E=v1(T),N=u/(n*D)*(E*o4(t*z+T)-i4(T));return[s+N*d,c+N*p,u*E/v1(t*z+T)]}}return x.duration=A*1e3*t/Math.SQRT2,x}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return e(a,s,c)},i}(Math.SQRT2,2,4);function E1(e){return function(t,n){var r=e((t=Nl(t)).h,(n=Nl(n)).h),i=$e(t.s,n.s),o=$e(t.l,n.l),a=$e(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=o(s),t.opacity=a(s),t+""}}}const s4=E1(Ju);var u4=E1($e);function c4(e,t){var n=$e((e=Fl(e)).l,(t=Fl(t)).l),r=$e(e.a,t.a),i=$e(e.b,t.b),o=$e(e.opacity,t.opacity);return function(a){return e.l=n(a),e.a=r(a),e.b=i(a),e.opacity=o(a),e+""}}function C1(e){return function(t,n){var r=e((t=Ol(t)).h,(n=Ol(n)).h),i=$e(t.c,n.c),o=$e(t.l,n.l),a=$e(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=o(s),t.opacity=a(s),t+""}}}const f4=C1(Ju);var l4=C1($e);function S1(e){return function t(n){n=+n;function r(i,o){var a=e((i=jl(i)).h,(o=jl(o)).h),s=$e(i.s,o.s),c=$e(i.l,o.l),u=$e(i.opacity,o.opacity);return function(f){return i.h=a(f),i.s=s(f),i.l=c(Math.pow(f,n)),i.opacity=u(f),i+""}}return r.gamma=t,r}(1)}const h4=S1(Ju);var d4=S1($e);function Yl(e,t){t===void 0&&(t=e,e=vr);for(var n=0,r=t.length-1,i=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(i,i=t[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function g4(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const p4=Object.freeze(Object.defineProperty({__proto__:null,interpolate:vr,interpolateArray:qC,interpolateBasis:f1,interpolateBasisClosed:l1,interpolateCubehelix:h4,interpolateCubehelixLong:d4,interpolateDate:m1,interpolateDiscrete:KC,interpolateHcl:f4,interpolateHclLong:l4,interpolateHsl:s4,interpolateHslLong:u4,interpolateHue:JC,interpolateLab:c4,interpolateNumber:cn,interpolateNumberArray:Hl,interpolateObject:b1,interpolateRgb:Gl,interpolateRgbBasis:ZC,interpolateRgbBasisClosed:YC,interpolateRound:Qa,interpolateString:y1,interpolateTransformCss:t4,interpolateTransformSvg:n4,interpolateZoom:a4,piecewise:Yl,quantize:g4},Symbol.toStringTag,{value:"Module"}));function m4(e){return function(){return e}}function ql(e){return+e}var D1=[0,1];function St(e){return e}function Wl(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:m4(isNaN(t)?NaN:.5)}function b4(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function y4(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i<r?(r=Wl(i,r),o=n(a,o)):(r=Wl(r,i),o=n(o,a)),function(s){return o(r(s))}}function w4(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),o=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)i[a]=Wl(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(s){var c=eo(e,s,1,r)-1;return o[c](i[c](s))}}function Va(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function ec(){var e=D1,t=D1,n=vr,r,i,o,a=St,s,c,u;function f(){var h=Math.min(e.length,t.length);return a!==St&&(a=b4(e[0],e[h-1])),s=h>2?w4:y4,c=u=null,l}function l(h){return h==null||isNaN(h=+h)?o:(c||(c=s(e.map(r),t,n)))(r(a(h)))}return l.invert=function(h){return a(i((u||(u=s(t,e.map(r),cn)))(h)))},l.domain=function(h){return arguments.length?(e=Array.from(h,ql),f()):e.slice()},l.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},l.rangeRound=function(h){return t=Array.from(h),n=Qa,f()},l.clamp=function(h){return arguments.length?(a=h?!0:St,f()):a!==St},l.interpolate=function(h){return arguments.length?(n=h,f()):n},l.unknown=function(h){return arguments.length?(o=h,l):o},function(h,d){return r=h,i=d,f()}}function I1(){return ec()(St,St)}function _1(e,t,n,r){var i=ii(e,t,n),o;switch(r=pr(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=Qg(i,a))&&(r.precision=o),il(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Vg(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Hg(i))&&(r.precision=o-(r.type==="%")*2);break}}return it(r)}function mi(e){var t=e.domain;return e.ticks=function(n){var r=t();return Tu(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return _1(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,a=r[i],s=r[o],c,u,f=10;for(s<a&&(u=a,a=s,s=u,u=i,i=o,o=u);f-- >0;){if(u=Lg(a,s,n),u===c)return r[i]=a,r[o]=s,t(r);if(u>0)a=Math.floor(a/u)*u,s=Math.ceil(s/u)*u;else if(u<0)a=Math.ceil(a*u)/u,s=Math.floor(s*u)/u;else break;c=u}return e},e}function M1(){var e=I1();return e.copy=function(){return Va(e,M1())},Cn.apply(e,arguments),mi(e)}function T1(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,ql),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return T1(e).unknown(t)},e=arguments.length?Array.from(e,ql):[0,1],mi(n)}function N1(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),e[n]=t.floor(i),e[r]=t.ceil(o),e}function B1(e){return Math.log(e)}function F1(e){return Math.exp(e)}function x4(e){return-Math.log(-e)}function A4(e){return-Math.exp(-e)}function v4(e){return isFinite(e)?+("1e"+e):e<0?0:e}function E4(e){return e===10?v4:e===Math.E?Math.exp:t=>Math.pow(e,t)}function C4(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function k1(e){return(t,n)=>-e(-t,n)}function Xl(e){const t=e(B1,F1),n=t.domain;let r=10,i,o;function a(){return i=C4(r),o=E4(r),n()[0]<0?(i=k1(i),o=k1(o),e(x4,A4)):e(B1,F1),t}return t.base=function(s){return arguments.length?(r=+s,a()):r},t.domain=function(s){return arguments.length?(n(s),a()):n()},t.ticks=s=>{const c=n();let u=c[0],f=c[c.length-1];const l=f<u;l&&([u,f]=[f,u]);let h=i(u),d=i(f),p,b;const x=s==null?10:+s;let A=[];if(!(r%1)&&d-h<x){if(h=Math.floor(h),d=Math.ceil(d),u>0){for(;h<=d;++h)for(p=1;p<r;++p)if(b=h<0?p/o(-h):p*o(h),!(b<u)){if(b>f)break;A.push(b)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(b=h>0?p/o(-h):p*o(h),!(b<u)){if(b>f)break;A.push(b)}A.length*2<x&&(A=Tu(u,f,x))}else A=Tu(h,d,Math.min(d-h,x)).map(o);return l?A.reverse():A},t.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=pr(c)).precision==null&&(c.trim=!0),c=it(c)),s===1/0)return c;const u=Math.max(1,r*s/t.ticks().length);return f=>{let l=f/o(Math.round(i(f)));return l*r<r-.5&&(l*=r),l<=u?c(f):""}},t.nice=()=>n(N1(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),t}function Kl(){const e=Xl(ec()).domain([1,10]);return e.copy=()=>Va(e,Kl()).base(e.base()),Cn.apply(e,arguments),e}function L1(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function z1(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Jl(e){var t=1,n=e(L1(t),z1(t));return n.constant=function(r){return arguments.length?e(L1(t=+r),z1(t)):t},mi(n)}function R1(){var e=Jl(ec());return e.copy=function(){return Va(e,R1()).constant(e.constant())},Cn.apply(e,arguments)}function O1(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function S4(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function D4(e){return e<0?-e*e:e*e}function $l(e){var t=e(St,St),n=1;function r(){return n===1?e(St,St):n===.5?e(S4,D4):e(O1(n),O1(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},mi(t)}function eh(){var e=$l(ec());return e.copy=function(){return Va(e,eh()).exponent(e.exponent())},Cn.apply(e,arguments),e}function I4(){return eh.apply(null,arguments).exponent(.5)}function P1(){var e=[],t=[],n=[],r;function i(){var a=0,s=Math.max(1,t.length);for(n=new Array(s-1);++a<s;)n[a-1]=zg(e,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:t[eo(n,a)]}return o.invertExtent=function(a){var s=t.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},o.domain=function(a){if(!arguments.length)return e.slice();e=[];for(let s of a)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(xa),i()},o.range=function(a){return arguments.length?(t=Array.from(a),i()):t.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return P1().domain(e).range(t).unknown(r)},Cn.apply(o,arguments)}function U1(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[eo(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*t-(c-n)*e)/(n+1);return a}return a.domain=function(c){return arguments.length?([e,t]=c,e=+e,t=+t,s()):[e,t]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var u=i.indexOf(c);return u<0?[NaN,NaN]:u<1?[e,r[0]]:u>=n?[r[n-1],t]:[r[u-1],r[u]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return U1().domain([e,t]).range(i).unknown(o)},Cn.apply(mi(a),arguments)}function j1(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[eo(e,o,0,r)]:n}return i.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var a=t.indexOf(o);return[e[a-1],e[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return j1().domain(e).range(t).unknown(n)},Cn.apply(i,arguments)}function _4(e){return new Date(e)}function M4(e){return e instanceof Date?+e:+new Date(+e)}function th(e,t,n,r,i,o,a,s,c,u){var f=I1(),l=f.invert,h=f.domain,d=u(".%L"),p=u(":%S"),b=u("%I:%M"),x=u("%I %p"),A=u("%a %d"),D=u("%b %d"),_=u("%B"),C=u("%Y");function T(B){return(c(B)<B?d:s(B)<B?p:a(B)<B?b:o(B)<B?x:r(B)<B?i(B)<B?A:D:n(B)<B?_:C)(B)}return f.invert=function(B){return new Date(l(B))},f.domain=function(B){return arguments.length?h(Array.from(B,M4)):h().map(_4)},f.ticks=function(B){var S=h();return e(S[0],S[S.length-1],B??10)},f.tickFormat=function(B,S){return S==null?T:u(S)},f.nice=function(B){var S=h();return(!B||typeof B.range!="function")&&(B=t(S[0],S[S.length-1],B??10)),B?h(N1(S,B)):f},f.copy=function(){return Va(f,th(e,t,n,r,i,o,a,s,c,u))},f}function T4(){return Cn.apply(th(PE,UE,br,zu,va,ai,ll,fl,mr,wl).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function N4(){return Cn.apply(th(RE,OE,yr,Ou,Ea,ui,gl,dl,mr,xl).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function tc(){var e=0,t=1,n,r,i,o,a=St,s=!1,c;function u(l){return l==null||isNaN(l=+l)?c:a(i===0?.5:(l=(o(l)-n)*i,s?Math.max(0,Math.min(1,l)):l))}u.domain=function(l){return arguments.length?([e,t]=l,n=o(e=+e),r=o(t=+t),i=n===r?0:1/(r-n),u):[e,t]},u.clamp=function(l){return arguments.length?(s=!!l,u):s},u.interpolator=function(l){return arguments.length?(a=l,u):a};function f(l){return function(h){var d,p;return arguments.length?([d,p]=h,a=l(d,p),u):[a(0),a(1)]}}return u.range=f(vr),u.rangeRound=f(Qa),u.unknown=function(l){return arguments.length?(c=l,u):c},function(l){return o=l,n=l(e),r=l(t),i=n===r?0:1/(r-n),u}}function Er(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function nh(){var e=mi(tc()(St));return e.copy=function(){return Er(e,nh())},xr.apply(e,arguments)}function G1(){var e=Xl(tc()).domain([1,10]);return e.copy=function(){return Er(e,G1()).base(e.base())},xr.apply(e,arguments)}function H1(){var e=Jl(tc());return e.copy=function(){return Er(e,H1()).constant(e.constant())},xr.apply(e,arguments)}function rh(){var e=$l(tc());return e.copy=function(){return Er(e,rh()).exponent(e.exponent())},xr.apply(e,arguments)}function B4(){return rh.apply(null,arguments).exponent(.5)}function nc(){var e=0,t=.5,n=1,r=1,i,o,a,s,c,u=St,f,l=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+f(b))-o)*(r*b<r*o?s:c),u(l?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([e,t,n]=b,i=f(e=+e),o=f(t=+t),a=f(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d):[e,t,n]},d.clamp=function(b){return arguments.length?(l=!!b,d):l},d.interpolator=function(b){return arguments.length?(u=b,d):u};function p(b){return function(x){var A,D,_;return arguments.length?([A,D,_]=x,u=Yl(b,[A,D,_]),d):[u(0),u(.5),u(1)]}}return d.range=p(vr),d.rangeRound=p(Qa),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return f=b,i=b(e),o=b(t),a=b(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function Q1(){var e=mi(nc()(St));return e.copy=function(){return Er(e,Q1())},xr.apply(e,arguments)}function V1(){var e=Xl(nc()).domain([.1,1,10]);return e.copy=function(){return Er(e,V1()).base(e.base())},xr.apply(e,arguments)}function Z1(){var e=Jl(nc());return e.copy=function(){return Er(e,Z1()).constant(e.constant())},xr.apply(e,arguments)}function ih(){var e=$l(nc());return e.copy=function(){return Er(e,ih()).exponent(e.exponent())},xr.apply(e,arguments)}function F4(){return ih.apply(null,arguments).exponent(.5)}function oh(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const k4="identity",go="linear",Cr="log",Za="pow",Ya="sqrt",rc="symlog",Y1="time",q1="utc",In="sequential",po="diverging",ah="quantile",W1="quantize",X1="threshold",sh="ordinal",uh="point",K1="band",ch="bin-ordinal",Qe="continuous",qa="discrete",Wa="discretizing",Gt="interpolating",J1="temporal";function L4(e){return function(t){let n=t[0],r=t[1],i;return r<n&&(i=n,n=r,r=i),[e.invert(n),e.invert(r)]}}function z4(e){return function(t){const n=e.range();let r=t[0],i=t[1],o=-1,a,s,c,u;for(i<r&&(s=r,r=i,i=s),c=0,u=n.length;c<u;++c)n[c]>=r&&n[c]<=i&&(o<0&&(o=c),a=c);if(!(o<0))return r=e.invertExtent(n[o]),i=e.invertExtent(n[a]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function fh(){const e=Ml().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,o,a=!1,s=0,c=0,u=.5;delete e.unknown;function f(){const l=t().length,h=r[1]<r[0],d=r[1-h],p=oh(l,s,c);let b=r[h-0];i=(d-b)/(p||1),a&&(i=Math.floor(i)),b+=(d-b-i*(l-s))*u,o=i*(1-s),a&&(b=Math.round(b),o=Math.round(o));const x=Aa(l).map(A=>b+i*A);return n(h?x.reverse():x)}return e.domain=function(l){return arguments.length?(t(l),f()):t()},e.range=function(l){return arguments.length?(r=[+l[0],+l[1]],f()):r.slice()},e.rangeRound=function(l){return r=[+l[0],+l[1]],a=!0,f()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(l){return arguments.length?(a=!!l,f()):a},e.padding=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),s=c,f()):s},e.paddingInner=function(l){return arguments.length?(s=Math.max(0,Math.min(1,l)),f()):s},e.paddingOuter=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),f()):c},e.align=function(l){return arguments.length?(u=Math.max(0,Math.min(1,l)),f()):u},e.invertRange=function(l){if(l[0]==null||l[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let b=+l[0],x=+l[1],A,D,_;if(!(b!==b||x!==x)&&(x<b&&(_=b,b=x,x=_),!(x<d[0]||b>r[1-h])))return A=Math.max(0,Jf(d,b)-1),D=b===x?A:Jf(d,x)-1,b-d[A]>o+1e-10&&++A,h&&(_=A,A=p-D,D=p-_),A>D?void 0:t().slice(A,D+1)},e.invert=function(l){const h=e.invertRange([l,l]);return h&&h[0]},e.copy=function(){return fh().domain(t()).range(r).round(a).paddingInner(s).paddingOuter(c).align(u)},f()}function $1(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return $1(t())},e}function R4(){return $1(fh().paddingInner(1))}var O4=Array.prototype.map;function P4(e){return O4.call(e,ya)}const U4=Array.prototype.slice;function em(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(eo(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=P4(r),n):e.slice()},n.range=function(r){return arguments.length?(t=U4.call(r),n):t.slice()},n.tickFormat=function(r,i){return _1(e[0],sn(e),r??10,i)},n.copy=function(){return em().domain(n.domain()).range(n.range())},n}const ic={};function j4(e,t,n){const r=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?L4(o):o.invertExtent?z4(o):void 0),o.type=e,o};return r.metadata=Iu(Yf(n)),r}function ge(e,t,n){return arguments.length>1?(ic[e]=j4(e,t,n),this):G4(e)?ic[e]:void 0}ge(k4,T1),ge(go,M1,Qe),ge(Cr,Kl,[Qe,Cr]),ge(Za,eh,Qe),ge(Ya,I4,Qe),ge(rc,R1,Qe),ge(Y1,T4,[Qe,J1]),ge(q1,N4,[Qe,J1]),ge(In,nh,[Qe,Gt]),ge("".concat(In,"-").concat(go),nh,[Qe,Gt]),ge("".concat(In,"-").concat(Cr),G1,[Qe,Gt,Cr]),ge("".concat(In,"-").concat(Za),rh,[Qe,Gt]),ge("".concat(In,"-").concat(Ya),B4,[Qe,Gt]),ge("".concat(In,"-").concat(rc),H1,[Qe,Gt]),ge("".concat(po,"-").concat(go),Q1,[Qe,Gt]),ge("".concat(po,"-").concat(Cr),V1,[Qe,Gt,Cr]),ge("".concat(po,"-").concat(Za),ih,[Qe,Gt]),ge("".concat(po,"-").concat(Ya),F4,[Qe,Gt]),ge("".concat(po,"-").concat(rc),Z1,[Qe,Gt]),ge(ah,P1,[Wa,ah]),ge(W1,U1,Wa),ge(X1,j1,Wa),ge(ch,em,[qa,Wa]),ge(sh,Ml,qa),ge(K1,fh,qa),ge(uh,R4,qa);function G4(e){return ni(ic,e)}function Xa(e,t){const n=ic[e];return n&&n.metadata[t]}function ct(e){return Xa(e,Qe)}function bi(e){return Xa(e,qa)}function mo(e){return Xa(e,Wa)}function tm(e){return Xa(e,Cr)}function oc(e){return Xa(e,Gt)}function H4(e,t){const n=t[0],r=sn(t)-n;return function(i){return e(n+i*r)}}function ac(e,t,n){return Yl(nm(t||"rgb",n),e)}function Q4(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function nm(e,t){const n=p4[V4(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function V4(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const Z4={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"},Y4={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 rm(e){const t=e.length/6|0,n=new Array(t);for(let r=0;r<t;)n[r]="#"+e.slice(r*6,++r*6);return n}function im(e,t){for(const n in e)lh(n,t(e[n]))}const om={};im(Y4,rm),im(Z4,e=>ac(rm(e)));function lh(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(om[e]=t,this):om[e]}const j9="";function q4(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function sc(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function _n(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function bo(e){return e[e.length-1]}class W4{constructor(t){this.container=t,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(t){t!=this._visible&&(this.element.style.display=t?null:"none",this._visible=t)}get visible(){return this._visible}get enabled(){return bo(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=q4(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&X4(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(t){if(!t||!this.enabled||this._isPenalty()){this.visible&&(Pp("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Pp(t,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(t,n){t!==this._previousTooltipDatum&&(this._previousTooltipDatum=t,n||(n=r=>Promise.resolve(qn`${JSON.stringify(r)}`)),n(t).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function X4(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const K4="RawCode",J4="Literal",$4="Property",eS="Identifier",tS="ArrayExpression",nS="BinaryExpression",rS="CallExpression",iS="ConditionalExpression",oS="LogicalExpression",aS="MemberExpression",sS="ObjectExpression",uS="UnaryExpression";function fn(e){this.type=e}fn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=cS(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function cS(e){switch(e.type){case tS:return e.elements;case nS:case oS:return[e.left,e.right];case rS:return[e.callee].concat(e.arguments);case iS:return[e.test,e.consequent,e.alternate];case aS:return[e.object,e.property];case sS:return e.properties;case $4:return[e.key,e.value];case uS:return[e.argument];case eS:case J4:case K4:default:return[]}}var Mn,V,R,ft,me,uc=1,Ka=2,yi=3,Sr=4,cc=5,wi=6,Dt=7,Ja=8,fS=9;Mn={},Mn[uc]="Boolean",Mn[Ka]="<end>",Mn[yi]="Identifier",Mn[Sr]="Keyword",Mn[cc]="Null",Mn[wi]="Numeric",Mn[Dt]="Punctuator",Mn[Ja]="String",Mn[fS]="RegularExpression";var lS="ArrayExpression",hS="BinaryExpression",dS="CallExpression",gS="ConditionalExpression",am="Identifier",pS="Literal",mS="LogicalExpression",bS="MemberExpression",yS="ObjectExpression",wS="Property",xS="UnaryExpression",et="Unexpected token %0",AS="Unexpected number",vS="Unexpected string",ES="Unexpected identifier",CS="Unexpected reserved word",SS="Unexpected end of input",hh="Invalid regular expression",dh="Invalid regular expression: missing /",sm="Octal literals are not allowed in strict mode.",DS="Duplicate data property in object literal not allowed in strict mode",ot="ILLEGAL",$a="Disabled.",IS=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]"),_S=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 fc(e,t){if(!e)throw new Error("ASSERT: "+t)}function Xn(e){return e>=48&&e<=57}function gh(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function es(e){return"01234567".indexOf(e)>=0}function MS(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function ts(e){return e===10||e===13||e===8232||e===8233}function ns(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&IS.test(String.fromCharCode(e))}function lc(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&_S.test(String.fromCharCode(e))}const TS={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 um(){for(;R<ft;){const e=V.charCodeAt(R);if(MS(e)||ts(e))++R;else break}}function ph(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)R<ft&&gh(V[R])?(r=V[R++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):fe({},et,ot);return String.fromCharCode(i)}function NS(){var e,t,n,r;for(e=V[R],t=0,e==="}"&&fe({},et,ot);R<ft&&(e=V[R++],!!gh(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&fe({},et,ot),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function cm(){var e,t;for(e=V.charCodeAt(R++),t=String.fromCharCode(e),e===92&&(V.charCodeAt(R)!==117&&fe({},et,ot),++R,e=ph("u"),(!e||e==="\\"||!ns(e.charCodeAt(0)))&&fe({},et,ot),t=e);R<ft&&(e=V.charCodeAt(R),!!lc(e));)++R,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),V.charCodeAt(R)!==117&&fe({},et,ot),++R,e=ph("u"),(!e||e==="\\"||!lc(e.charCodeAt(0)))&&fe({},et,ot),t+=e);return t}function BS(){var e,t;for(e=R++;R<ft;){if(t=V.charCodeAt(R),t===92)return R=e,cm();if(lc(t))++R;else break}return V.slice(e,R)}function FS(){var e,t,n;return e=R,t=V.charCodeAt(R)===92?cm():BS(),t.length===1?n=yi:TS.hasOwnProperty(t)?n=Sr:t==="null"?n=cc:t==="true"||t==="false"?n=uc:n=yi,{type:n,value:t,start:e,end:R}}function mh(){var e=R,t=V.charCodeAt(R),n,r=V[R],i,o,a;switch(t){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++R,{type:Dt,value:String.fromCharCode(t),start:e,end:R};default:if(n=V.charCodeAt(R+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:Dt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:R};case 33:case 61:return R+=2,V.charCodeAt(R)===61&&++R,{type:Dt,value:V.slice(e,R),start:e,end:R}}}if(a=V.substr(R,4),a===">>>=")return R+=4,{type:Dt,value:a,start:e,end:R};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return R+=3,{type:Dt,value:o,start:e,end:R};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return R+=2,{type:Dt,value:i,start:e,end:R};if(i==="//"&&fe({},et,ot),"<>=!+-*%&|^/".indexOf(r)>=0)return++R,{type:Dt,value:r,start:e,end:R};fe({},et,ot)}function kS(e){let t="";for(;R<ft&&gh(V[R]);)t+=V[R++];return t.length===0&&fe({},et,ot),ns(V.charCodeAt(R))&&fe({},et,ot),{type:wi,value:parseInt("0x"+t,16),start:e,end:R}}function LS(e){let t="0"+V[R++];for(;R<ft&&es(V[R]);)t+=V[R++];return(ns(V.charCodeAt(R))||Xn(V.charCodeAt(R)))&&fe({},et,ot),{type:wi,value:parseInt(t,8),octal:!0,start:e,end:R}}function fm(){var e,t,n;if(n=V[R],fc(Xn(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=R,e="",n!=="."){if(e=V[R++],n=V[R],e==="0"){if(n==="x"||n==="X")return++R,kS(t);if(es(n))return LS(t);n&&Xn(n.charCodeAt(0))&&fe({},et,ot)}for(;Xn(V.charCodeAt(R));)e+=V[R++];n=V[R]}if(n==="."){for(e+=V[R++];Xn(V.charCodeAt(R));)e+=V[R++];n=V[R]}if(n==="e"||n==="E")if(e+=V[R++],n=V[R],(n==="+"||n==="-")&&(e+=V[R++]),Xn(V.charCodeAt(R)))for(;Xn(V.charCodeAt(R));)e+=V[R++];else fe({},et,ot);return ns(V.charCodeAt(R))&&fe({},et,ot),{type:wi,value:parseFloat(e),start:t,end:R}}function zS(){var e="",t,n,r,i,o=!1;for(t=V[R],fc(t==="'"||t==='"',"String literal must starts with a quote"),n=R,++R;R<ft;)if(r=V[R++],r===t){t="";break}else if(r==="\\")if(r=V[R++],!r||!ts(r.charCodeAt(0)))switch(r){case"u":case"x":V[R]==="{"?(++R,e+=NS()):e+=ph(r);break;case"n":e+=`
15
- `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:es(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),R<ft&&es(V[R])&&(o=!0,i=i*8+"01234567".indexOf(V[R++]),"0123".indexOf(r)>=0&&R<ft&&es(V[R])&&(i=i*8+"01234567".indexOf(V[R++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&V[R]===`
16
- `&&++R;else{if(ts(r.charCodeAt(0)))break;e+=r}return t!==""&&fe({},et,ot),{type:Ja,value:e,octal:o,start:n,end:R}}function RS(e,t){let n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";fe({},hh)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{fe({},hh)}try{return new RegExp(e,t)}catch{return null}}function OS(){var e,t,n,r,i;for(e=V[R],fc(e==="/","Regular expression literal must start with a slash"),t=V[R++],n=!1,r=!1;R<ft;)if(e=V[R++],t+=e,e==="\\")e=V[R++],ts(e.charCodeAt(0))&&fe({},dh),t+=e;else if(ts(e.charCodeAt(0)))fe({},dh);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||fe({},dh),i=t.substr(1,t.length-2),{value:i,literal:t}}function PS(){var e,t,n;for(t="",n="";R<ft&&(e=V[R],!!lc(e.charCodeAt(0)));)++R,e==="\\"&&R<ft?fe({},et,ot):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&fe({},hh,n),{value:n,literal:t}}function US(){var e,t,n,r;return me=null,um(),e=R,t=OS(),n=PS(),r=RS(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:R}}function jS(e){return e.type===yi||e.type===Sr||e.type===uc||e.type===cc}function lm(){if(um(),R>=ft)return{type:Ka,start:R,end:R};const e=V.charCodeAt(R);return ns(e)?FS():e===40||e===41||e===59?mh():e===39||e===34?zS():e===46?Xn(V.charCodeAt(R+1))?fm():mh():Xn(e)?fm():mh()}function It(){const e=me;return R=e.end,me=lm(),R=e.end,e}function hm(){const e=R;me=lm(),R=e}function GS(e){const t=new fn(lS);return t.elements=e,t}function dm(e,t,n){const r=new fn(e==="||"||e==="&&"?mS:hS);return r.operator=e,r.left=t,r.right=n,r}function HS(e,t){const n=new fn(dS);return n.callee=e,n.arguments=t,n}function QS(e,t,n){const r=new fn(gS);return r.test=e,r.consequent=t,r.alternate=n,r}function bh(e){const t=new fn(am);return t.name=e,t}function rs(e){const t=new fn(pS);return t.value=e.value,t.raw=V.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function gm(e,t,n){const r=new fn(bS);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function VS(e){const t=new fn(yS);return t.properties=e,t}function pm(e,t,n){const r=new fn(wS);return r.key=t,r.value=n,r.kind=e,r}function ZS(e,t){const n=new fn(xS);return n.operator=e,n.argument=t,n.prefix=!0,n}function fe(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(o,a)=>(fc(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=R,n.description=i,n}function hc(e){e.type===Ka&&fe(e,SS),e.type===wi&&fe(e,AS),e.type===Ja&&fe(e,vS),e.type===yi&&fe(e,ES),e.type===Sr&&fe(e,CS),fe(e,et,e.value)}function lt(e){const t=It();(t.type!==Dt||t.value!==e)&&hc(t)}function De(e){return me.type===Dt&&me.value===e}function yh(e){return me.type===Sr&&me.value===e}function YS(){const e=[];for(R=me.start,lt("[");!De("]");)De(",")?(It(),e.push(null)):(e.push(xi()),De("]")||lt(","));return It(),GS(e)}function mm(){R=me.start;const e=It();return e.type===Ja||e.type===wi?(e.octal&&fe(e,sm),rs(e)):bh(e.value)}function qS(){var e,t,n,r;if(R=me.start,e=me,e.type===yi)return n=mm(),lt(":"),r=xi(),pm("init",n,r);if(e.type===Ka||e.type===Dt)hc(e);else return t=mm(),lt(":"),r=xi(),pm("init",t,r)}function WS(){var e=[],t,n,r,i={},o=String;for(R=me.start,lt("{");!De("}");)t=qS(),t.key.type===am?n=t.key.name:n=o(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?fe({},DS):i[r]=!0,e.push(t),De("}")||lt(",");return lt("}"),VS(e)}function XS(){lt("(");const e=wh();return lt(")"),e}const KS={if:1};function JS(){var e,t,n;if(De("("))return XS();if(De("["))return YS();if(De("{"))return WS();if(e=me.type,R=me.start,e===yi||KS[me.value])n=bh(It().value);else if(e===Ja||e===wi)me.octal&&fe(me,sm),n=rs(It());else{if(e===Sr)throw new Error($a);e===uc?(t=It(),t.value=t.value==="true",n=rs(t)):e===cc?(t=It(),t.value=null,n=rs(t)):De("/")||De("/=")?(n=rs(US()),hm()):hc(It())}return n}function $S(){const e=[];if(lt("("),!De(")"))for(;R<ft&&(e.push(xi()),!De(")"));)lt(",");return lt(")"),e}function eD(){R=me.start;const e=It();return jS(e)||hc(e),bh(e.value)}function tD(){return lt("."),eD()}function nD(){lt("[");const e=wh();return lt("]"),e}function rD(){var e,t,n;for(e=JS();;)if(De("."))n=tD(),e=gm(".",e,n);else if(De("("))t=$S(),e=HS(e,t);else if(De("["))n=nD(),e=gm("[",e,n);else break;return e}function bm(){const e=rD();if(me.type===Dt&&(De("++")||De("--")))throw new Error($a);return e}function dc(){var e,t;if(me.type!==Dt&&me.type!==Sr)t=bm();else{if(De("++")||De("--"))throw new Error($a);if(De("+")||De("-")||De("~")||De("!"))e=It(),t=dc(),t=ZS(e.value,t);else{if(yh("delete")||yh("void")||yh("typeof"))throw new Error($a);t=bm()}}return t}function ym(e){let t=0;if(e.type!==Dt&&e.type!==Sr)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function iD(){var e,t,n,r,i,o,a,s,c,u;if(e=me,c=dc(),r=me,i=ym(r),i===0)return c;for(r.prec=i,It(),t=[e,me],a=dc(),o=[c,r,a];(i=ym(me))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,c=o.pop(),t.pop(),n=dm(s,c,a),o.push(n);r=It(),r.prec=i,o.push(r),t.push(me),n=dc(),o.push(n)}for(u=o.length-1,n=o[u],t.pop();u>1;)t.pop(),n=dm(o[u-1].value,o[u-2],n),u-=2;return n}function xi(){var e,t,n;return e=iD(),De("?")&&(It(),t=xi(),lt(":"),n=xi(),e=QS(e,t,n)),e}function wh(){const e=xi();if(De(","))throw new Error($a);return e}function oD(e){V=e,R=0,ft=V.length,me=null,hm();const t=wh();if(me.type!==Ka)throw new Error("Unexpect token after expression.");return t}var aD={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 sD(e){function t(a,s,c,u){let f=e(s[0]);return c&&(f=c+"("+f+")",c.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+a+(u<0?"":u===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(a,s,c){return u=>t(a,u,s,c)}const r="new Date",i="String",o="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(a){a.length<3&&ze("Missing arguments to clamp function."),a.length>3&&ze("Too many arguments to clamp function.");const s=a.map(e);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:o,test:n("test",o),if:function(a){a.length<3&&ze("Missing arguments to if function."),a.length>3&&ze("Too many arguments to if function.");const s=a.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function uD(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function cD(e){e=e||{};const t=e.allowed?Iu(e.allowed):{},n=e.forbidden?Iu(e.forbidden):{},r=e.constants||aD,i=(e.functions||sD)(l),o=e.globalvar,a=e.fieldvar,s=vt(o)?o:p=>`${o}["${p}"]`;let c={},u={},f=0;function l(p){if(Re(p))return p;const b=h[p.type];return b==null&&ze("Unsupported type: "+p.type),b(p)}const h={Literal:p=>p.raw,Identifier:p=>{const b=p.name;return f>0?b:ni(n,b)?ze("Illegal identifier: "+b):ni(r,b)?r[b]:ni(t,b)?b:(c[b]=1,s(b))},MemberExpression:p=>{const b=!p.computed,x=l(p.object);b&&(f+=1);const A=l(p.property);return x===a&&(u[uD(A)]=1),b&&(f-=1),x+(b?"."+A:"["+A+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&ze("Illegal callee type: "+p.callee.type);const b=p.callee.name,x=p.arguments,A=ni(i,b)&&i[b];return A||ze("Unrecognized function: "+b),vt(A)?A(x):A+"("+x.map(l).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(l).join(",")+"]",BinaryExpression:p=>"("+l(p.left)+" "+p.operator+" "+l(p.right)+")",UnaryExpression:p=>"("+p.operator+l(p.argument)+")",ConditionalExpression:p=>"("+l(p.test)+"?"+l(p.consequent)+":"+l(p.alternate)+")",LogicalExpression:p=>"("+l(p.left)+p.operator+l(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(l).join(",")+"}",Property:p=>{f+=1;const b=l(p.key);return f-=1,b+":"+l(p.value)}};function d(p){const b={code:l(p),globals:Object.keys(c),fields:Object.keys(u)};return c={},u={},b}return d.functions=i,d.constants=r,d}function xh(e,t={}){const n=cD({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=oD(e),i=n(r),o=Function("datum","global",`"use strict"; return (${i.code});`),a=s=>o(s,t);return a.fields=i.fields,a}catch(r){throw new Error(`Invalid expression: ${e}, ${r.message}`)}}function fD(){let e=0;const t=new Map,n=r=>{let i=t.get(r);return i===void 0&&(i=e++,t.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of t.entries())if(i[1]==r)return i[0]},n.domain=()=>[...t.keys()],n}function lD(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const o=e.unitView.getScaleResolution(Ht(i)&&i.resolutionChannel||r);n[r]=hD(t[r],o==null?void 0:o.getScale(),e.unitView.getAccessor(r),r)}return n}function hD(e,t,n,r){let i;if(ln(e)){const o=e.value;i=a=>o,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=o=>{},i.accessor=n,i.constant=n.constant;else{if(!t)throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=o=>t(n(o)),bi(t.type)){const o=fD();o.addAll(t.domain()),i.indexer=o}i.constant=n.constant,i.accessor=n,i.scale=t}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(e)}`);return i.invert=t?o=>t.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=o=>{for(const a in i)a in i&&(o[a]=i[a]);return o},i}function ln(e){return e&&"value"in e}function is(e){return e&&"field"in e}function os(e){return e&&"datum"in e}function Ht(e){return is(e)||os(e)||vh(e)||wm(e)}function Ah(e,t){const n=e.mark.encoding[t];if(Ht(n))return n;throw new Error("Not a channel def with scale!")}function wm(e){return e&&"chrom"in e}function vh(e){return e&&"expr"in e}const as=["x","y"],dD=["x2","y2"],gD=[...as,...dD];function pD(e){return as.includes(e)}function ss(e){return gD.includes(e)}const Eh={x:"x2",y:"y2"},xm=Object.fromEntries(Object.entries(Eh).map(e=>[e[1],e[0]]));function us(e){return e in xm}function mD(e){const t=Eh[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function yo(e){return xm[e]??e}function Ai(e){return["color","fill","stroke"].includes(yo(e))}function gc(e){return["shape","squeeze"].includes(e)}function Am(e){switch(e){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function vm(e){if(!gc(e))throw new Error("Not a discrete channel: "+e);const t=new Map(Am(e).map((n,r)=>[n,r]));return n=>{const r=t.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${e}" channel: ${n}`)}}function Ae(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return ne(n,[e],t)}else return xu(e)}class bD{constructor(){this.accessorCreators=[],this.register(t=>{if(is(t))try{const n=Ae(t.field);return n.constant=!1,n.fields=ti(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>vh(t)?yD(t.expr):void 0),this.register(t=>{if(os(t)){const r=Zv(t.datum);return r.constant=!0,r.fields=[],r}})}register(t){this.accessorCreators.push(t)}createAccessor(t){for(const n of this.accessorCreators){const r=n(t);if(r)return r}}}function yD(e){const t=xh(e);return t.constant=t.fields.length==0,t}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
14
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),t1=/'/g,n1=/"/g,r1=/^(?:script|style|textarea|title)$/i,$C=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),qn=$C(1),Zo=Symbol.for("lit-noChange"),Je=Symbol.for("lit-nothing"),i1=new WeakMap,ha=la.createTreeWalker(la,129,null,!1),e4=(e,t)=>{const n=e.length-1,r=[];let i,a=t===2?"<svg>":"",o=Vo;for(let c=0;c<n;c++){const u=e[c];let f,l,h=-1,d=0;for(;d<u.length&&(o.lastIndex=d,l=o.exec(u),l!==null);)d=o.lastIndex,o===Vo?l[1]==="!--"?o=$p:l[1]!==void 0?o=e1:l[2]!==void 0?(r1.test(l[2])&&(i=RegExp("</"+l[2],"g")),o=di):l[3]!==void 0&&(o=di):o===di?l[0]===">"?(o=i??Vo,h=-1):l[1]===void 0?h=-2:(h=o.lastIndex-l[2].length,f=l[1],o=l[3]===void 0?di:l[3]==='"'?n1:t1):o===n1||o===t1?o=di:o===$p||o===e1?o=Vo:(o=di,i=void 0);const p=o===di&&e[c+1].startsWith("/>")?" ":"";a+=o===Vo?u+KC:h>=0?(r.push(f),u.slice(0,h)+"$lit$"+u.slice(h)+vr+p):u+vr+(h===-2?(r.push(void 0),c):p)}const s=a+(e[n]||"<?>")+(t===2?"</svg>":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[Xp!==void 0?Xp.createHTML(s):s,r]};let Yl=class nE{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=t.length-1,c=this.parts,[u,f]=e4(t,n);if(this.el=nE.createElement(u,r),ha.currentNode=this.el.content,n===2){const l=this.el.content,h=l.firstChild;h.remove(),l.append(...h.childNodes)}for(;(i=ha.nextNode())!==null&&c.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const l=[];for(const h of i.getAttributeNames())if(h.endsWith("$lit$")||h.startsWith(vr)){const d=f[o++];if(l.push(h),d!==void 0){const p=i.getAttribute(d.toLowerCase()+"$lit$").split(vr),b=/([.?@])?(.*)/.exec(d);c.push({type:1,index:a,name:b[2],strings:p,ctor:b[1]==="."?n4:b[1]==="?"?i4:b[1]==="@"?a4:nc})}else c.push({type:6,index:a})}for(const h of l)i.removeAttribute(h)}if(r1.test(i.tagName)){const l=i.textContent.split(vr),h=l.length-1;if(h>0){i.textContent=fa?fa.emptyScript:"";for(let d=0;d<h;d++)i.append(l[d],Ho()),ha.nextNode(),c.push({type:2,index:++a});i.append(l[h],Ho())}}}else if(i.nodeType===8)if(i.data===Kp)c.push({type:2,index:a});else{let l=-1;for(;(l=i.data.indexOf(vr,l+1))!==-1;)c.push({type:7,index:a}),l+=vr.length-1}a++}}static createElement(t,n){const r=la.createElement("template");return r.innerHTML=t,r}};function da(e,t,n=e,r){var i,a,o,s;if(t===Zo)return t;let c=r!==void 0?(i=n._$Co)===null||i===void 0?void 0:i[r]:n._$Cl;const u=Qo(t)?void 0:t._$litDirective$;return(c==null?void 0:c.constructor)!==u&&((a=c==null?void 0:c._$AO)===null||a===void 0||a.call(c,!1),u===void 0?c=void 0:(c=new u(e),c._$AT(e,n,r)),r!==void 0?((o=(s=n)._$Co)!==null&&o!==void 0?o:s._$Co=[])[r]=c:n._$Cl=c),c!==void 0&&(t=da(e,c._$AS(e,t.values),c,r)),t}class t4{constructor(t,n){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var n;const{el:{content:r},parts:i}=this._$AD,a=((n=t==null?void 0:t.creationScope)!==null&&n!==void 0?n:la).importNode(r,!0);ha.currentNode=a;let o=ha.nextNode(),s=0,c=0,u=i[0];for(;u!==void 0;){if(s===u.index){let f;u.type===2?f=new Yo(o,o.nextSibling,this,t):u.type===1?f=new u.ctor(o,u.name,u.strings,this,t):u.type===6&&(f=new o4(o,this,t)),this.u.push(f),u=i[++c]}s!==(u==null?void 0:u.index)&&(o=ha.nextNode(),s++)}return a}p(t){let n=0;for(const r of this.u)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class Yo{constructor(t,n,r,i){var a;this.type=2,this._$AH=Je,this._$AN=void 0,this._$AA=t,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 t,n;return(n=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&n!==void 0?n:this._$Cm}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&t.nodeType===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=da(this,t,n),Qo(t)?t===Je||t==null||t===""?(this._$AH!==Je&&this._$AR(),this._$AH=Je):t!==this._$AH&&t!==Zo&&this.g(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):JC(t)?this.k(t):this.g(t)}O(t,n=this._$AB){return this._$AA.parentNode.insertBefore(t,n)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==Je&&Qo(this._$AH)?this._$AA.nextSibling.data=t:this.T(la.createTextNode(t)),this._$AH=t}$(t){var n;const{values:r,_$litType$:i}=t,a=typeof i=="number"?this._$AC(t):(i.el===void 0&&(i.el=Yl.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 t4(a,this),s=o.v(this.options);o.p(r),this.T(s),this._$AH=o}}_$AC(t){let n=i1.get(t.strings);return n===void 0&&i1.set(t.strings,n=new Yl(t)),n}k(t){Jp(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const a of t)i===n.length?n.push(r=new Yo(this.O(Ho()),this.O(Ho()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cm=t,(n=this._$AP)===null||n===void 0||n.call(this,t))}}class nc{constructor(t,n,r,i,a){this.type=1,this._$AH=Je,this._$AN=void 0,this.element=t,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=Je}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)t=da(this,t,n,0),o=!Qo(t)||t!==this._$AH&&t!==Zo,o&&(this._$AH=t);else{const s=t;let c,u;for(t=a[0],c=0;c<a.length-1;c++)u=da(this,s[r+c],n,c),u===Zo&&(u=this._$AH[c]),o||(o=!Qo(u)||u!==this._$AH[c]),u===Je?t=Je:t!==Je&&(t+=(u??"")+a[c+1]),this._$AH[c]=u}o&&!i&&this.j(t)}j(t){t===Je?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class n4 extends nc{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===Je?void 0:t}}const r4=fa?fa.emptyScript:"";class i4 extends nc{constructor(){super(...arguments),this.type=4}j(t){t&&t!==Je?this.element.setAttribute(this.name,r4):this.element.removeAttribute(this.name)}}class a4 extends nc{constructor(t,n,r,i,a){super(t,n,r,i,a),this.type=5}_$AI(t,n=this){var r;if((t=(r=da(this,t,n,0))!==null&&r!==void 0?r:Je)===Zo)return;const i=this._$AH,a=t===Je&&i!==Je||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,o=t!==Je&&(i===Je||a);a&&this.element.removeEventListener(this.name,this,i),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){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,t):this._$AH.handleEvent(t)}}class o4{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){da(this,t)}}const a1=tc.litHtmlPolyfillSupport;a1==null||a1(Yl,Yo),((Zl=tc.litHtmlVersions)!==null&&Zl!==void 0?Zl:tc.litHtmlVersions=[]).push("2.4.0");const o1=(e,t,n)=>{var r,i;const a=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:t;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 Yo(t.insertBefore(Ho(),s),s,void 0,n??{})}return o._$AI(e),o},wR="";function s4(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function rc(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Dn(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function Wo(e){return e[e.length-1]}class u4{constructor(t){this.container=t,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(t){t!=this._visible&&(this.element.style.display=t?null:"none",this._visible=t)}get visible(){return this._visible}get enabled(){return Wo(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=s4(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&c4(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(t){if(!t||!this.enabled||this._isPenalty()){this.visible&&(o1("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}o1(t,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(t,n){t!==this._previousTooltipDatum&&(this._previousTooltipDatum=t,n||(n=r=>Promise.resolve(qn`${JSON.stringify(r)}`)),n(t).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function c4(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const f4="RawCode",l4="Literal",h4="Property",d4="Identifier",g4="ArrayExpression",p4="BinaryExpression",m4="CallExpression",b4="ConditionalExpression",y4="LogicalExpression",w4="MemberExpression",x4="ObjectExpression",A4="UnaryExpression";function fn(e){this.type=e}fn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=v4(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function v4(e){switch(e.type){case g4:return e.elements;case p4:case y4:return[e.left,e.right];case m4:return[e.callee].concat(e.arguments);case b4:return[e.test,e.consequent,e.alternate];case w4:return[e.object,e.property];case x4:return e.properties;case h4:return[e.key,e.value];case A4:return[e.argument];case d4:case l4:case f4:default:return[]}}var In,V,R,ct,we,ic=1,qo=2,gi=3,Er=4,ac=5,pi=6,It=7,Xo=8,E4=9;In={},In[ic]="Boolean",In[qo]="<end>",In[gi]="Identifier",In[Er]="Keyword",In[ac]="Null",In[pi]="Numeric",In[It]="Punctuator",In[Xo]="String",In[E4]="RegularExpression";var C4="ArrayExpression",S4="BinaryExpression",D4="CallExpression",I4="ConditionalExpression",s1="Identifier",_4="Literal",M4="LogicalExpression",T4="MemberExpression",N4="ObjectExpression",B4="Property",F4="UnaryExpression",$e="Unexpected token %0",k4="Unexpected number",L4="Unexpected string",z4="Unexpected identifier",R4="Unexpected reserved word",O4="Unexpected end of input",Wl="Invalid regular expression",ql="Invalid regular expression: missing /",u1="Octal literals are not allowed in strict mode.",P4="Duplicate data property in object literal not allowed in strict mode",at="ILLEGAL",Ko="Disabled.",U4=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]"),j4=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 oc(e,t){if(!e)throw new Error("ASSERT: "+t)}function Xn(e){return e>=48&&e<=57}function Xl(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function Jo(e){return"01234567".indexOf(e)>=0}function G4(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function $o(e){return e===10||e===13||e===8232||e===8233}function es(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&U4.test(String.fromCharCode(e))}function sc(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&j4.test(String.fromCharCode(e))}const H4={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 c1(){for(;R<ct;){const e=V.charCodeAt(R);if(G4(e)||$o(e))++R;else break}}function Kl(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)R<ct&&Xl(V[R])?(r=V[R++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):de({},$e,at);return String.fromCharCode(i)}function Q4(){var e,t,n,r;for(e=V[R],t=0,e==="}"&&de({},$e,at);R<ct&&(e=V[R++],!!Xl(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&de({},$e,at),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function f1(){var e,t;for(e=V.charCodeAt(R++),t=String.fromCharCode(e),e===92&&(V.charCodeAt(R)!==117&&de({},$e,at),++R,e=Kl("u"),(!e||e==="\\"||!es(e.charCodeAt(0)))&&de({},$e,at),t=e);R<ct&&(e=V.charCodeAt(R),!!sc(e));)++R,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),V.charCodeAt(R)!==117&&de({},$e,at),++R,e=Kl("u"),(!e||e==="\\"||!sc(e.charCodeAt(0)))&&de({},$e,at),t+=e);return t}function V4(){var e,t;for(e=R++;R<ct;){if(t=V.charCodeAt(R),t===92)return R=e,f1();if(sc(t))++R;else break}return V.slice(e,R)}function Z4(){var e,t,n;return e=R,t=V.charCodeAt(R)===92?f1():V4(),t.length===1?n=gi:H4.hasOwnProperty(t)?n=Er:t==="null"?n=ac:t==="true"||t==="false"?n=ic:n=gi,{type:n,value:t,start:e,end:R}}function Jl(){var e=R,t=V.charCodeAt(R),n,r=V[R],i,a,o;switch(t){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++R,{type:It,value:String.fromCharCode(t),start:e,end:R};default:if(n=V.charCodeAt(R+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:It,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:R};case 33:case 61:return R+=2,V.charCodeAt(R)===61&&++R,{type:It,value:V.slice(e,R),start:e,end:R}}}if(o=V.substr(R,4),o===">>>=")return R+=4,{type:It,value:o,start:e,end:R};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return R+=3,{type:It,value:a,start:e,end:R};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return R+=2,{type:It,value:i,start:e,end:R};if(i==="//"&&de({},$e,at),"<>=!+-*%&|^/".indexOf(r)>=0)return++R,{type:It,value:r,start:e,end:R};de({},$e,at)}function Y4(e){let t="";for(;R<ct&&Xl(V[R]);)t+=V[R++];return t.length===0&&de({},$e,at),es(V.charCodeAt(R))&&de({},$e,at),{type:pi,value:parseInt("0x"+t,16),start:e,end:R}}function W4(e){let t="0"+V[R++];for(;R<ct&&Jo(V[R]);)t+=V[R++];return(es(V.charCodeAt(R))||Xn(V.charCodeAt(R)))&&de({},$e,at),{type:pi,value:parseInt(t,8),octal:!0,start:e,end:R}}function l1(){var e,t,n;if(n=V[R],oc(Xn(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=R,e="",n!=="."){if(e=V[R++],n=V[R],e==="0"){if(n==="x"||n==="X")return++R,Y4(t);if(Jo(n))return W4(t);n&&Xn(n.charCodeAt(0))&&de({},$e,at)}for(;Xn(V.charCodeAt(R));)e+=V[R++];n=V[R]}if(n==="."){for(e+=V[R++];Xn(V.charCodeAt(R));)e+=V[R++];n=V[R]}if(n==="e"||n==="E")if(e+=V[R++],n=V[R],(n==="+"||n==="-")&&(e+=V[R++]),Xn(V.charCodeAt(R)))for(;Xn(V.charCodeAt(R));)e+=V[R++];else de({},$e,at);return es(V.charCodeAt(R))&&de({},$e,at),{type:pi,value:parseFloat(e),start:t,end:R}}function q4(){var e="",t,n,r,i,a=!1;for(t=V[R],oc(t==="'"||t==='"',"String literal must starts with a quote"),n=R,++R;R<ct;)if(r=V[R++],r===t){t="";break}else if(r==="\\")if(r=V[R++],!r||!$o(r.charCodeAt(0)))switch(r){case"u":case"x":V[R]==="{"?(++R,e+=Q4()):e+=Kl(r);break;case"n":e+=`
15
+ `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:Jo(r)?(i="01234567".indexOf(r),i!==0&&(a=!0),R<ct&&Jo(V[R])&&(a=!0,i=i*8+"01234567".indexOf(V[R++]),"0123".indexOf(r)>=0&&R<ct&&Jo(V[R])&&(i=i*8+"01234567".indexOf(V[R++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&V[R]===`
16
+ `&&++R;else{if($o(r.charCodeAt(0)))break;e+=r}return t!==""&&de({},$e,at),{type:Xo,value:e,octal:a,start:n,end:R}}function X4(e,t){let n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";de({},Wl)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{de({},Wl)}try{return new RegExp(e,t)}catch{return null}}function K4(){var e,t,n,r,i;for(e=V[R],oc(e==="/","Regular expression literal must start with a slash"),t=V[R++],n=!1,r=!1;R<ct;)if(e=V[R++],t+=e,e==="\\")e=V[R++],$o(e.charCodeAt(0))&&de({},ql),t+=e;else if($o(e.charCodeAt(0)))de({},ql);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||de({},ql),i=t.substr(1,t.length-2),{value:i,literal:t}}function J4(){var e,t,n;for(t="",n="";R<ct&&(e=V[R],!!sc(e.charCodeAt(0)));)++R,e==="\\"&&R<ct?de({},$e,at):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&de({},Wl,n),{value:n,literal:t}}function $4(){var e,t,n,r;return we=null,c1(),e=R,t=K4(),n=J4(),r=X4(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:R}}function eS(e){return e.type===gi||e.type===Er||e.type===ic||e.type===ac}function h1(){if(c1(),R>=ct)return{type:qo,start:R,end:R};const e=V.charCodeAt(R);return es(e)?Z4():e===40||e===41||e===59?Jl():e===39||e===34?q4():e===46?Xn(V.charCodeAt(R+1))?l1():Jl():Xn(e)?l1():Jl()}function _t(){const e=we;return R=e.end,we=h1(),R=e.end,e}function d1(){const e=R;we=h1(),R=e}function tS(e){const t=new fn(C4);return t.elements=e,t}function g1(e,t,n){const r=new fn(e==="||"||e==="&&"?M4:S4);return r.operator=e,r.left=t,r.right=n,r}function nS(e,t){const n=new fn(D4);return n.callee=e,n.arguments=t,n}function rS(e,t,n){const r=new fn(I4);return r.test=e,r.consequent=t,r.alternate=n,r}function $l(e){const t=new fn(s1);return t.name=e,t}function ts(e){const t=new fn(_4);return t.value=e.value,t.raw=V.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function p1(e,t,n){const r=new fn(T4);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function iS(e){const t=new fn(N4);return t.properties=e,t}function m1(e,t,n){const r=new fn(B4);return r.key=t,r.value=n,r.kind=e,r}function aS(e,t){const n=new fn(F4);return n.operator=e,n.argument=t,n.prefix=!0,n}function de(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(a,o)=>(oc(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=R,n.description=i,n}function uc(e){e.type===qo&&de(e,O4),e.type===pi&&de(e,k4),e.type===Xo&&de(e,L4),e.type===gi&&de(e,z4),e.type===Er&&de(e,R4),de(e,$e,e.value)}function ft(e){const t=_t();(t.type!==It||t.value!==e)&&uc(t)}function Ie(e){return we.type===It&&we.value===e}function eh(e){return we.type===Er&&we.value===e}function oS(){const e=[];for(R=we.start,ft("[");!Ie("]");)Ie(",")?(_t(),e.push(null)):(e.push(mi()),Ie("]")||ft(","));return _t(),tS(e)}function b1(){R=we.start;const e=_t();return e.type===Xo||e.type===pi?(e.octal&&de(e,u1),ts(e)):$l(e.value)}function sS(){var e,t,n,r;if(R=we.start,e=we,e.type===gi)return n=b1(),ft(":"),r=mi(),m1("init",n,r);if(e.type===qo||e.type===It)uc(e);else return t=b1(),ft(":"),r=mi(),m1("init",t,r)}function uS(){var e=[],t,n,r,i={},a=String;for(R=we.start,ft("{");!Ie("}");)t=sS(),t.key.type===s1?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?de({},P4):i[r]=!0,e.push(t),Ie("}")||ft(",");return ft("}"),iS(e)}function cS(){ft("(");const e=th();return ft(")"),e}const fS={if:1};function lS(){var e,t,n;if(Ie("("))return cS();if(Ie("["))return oS();if(Ie("{"))return uS();if(e=we.type,R=we.start,e===gi||fS[we.value])n=$l(_t().value);else if(e===Xo||e===pi)we.octal&&de(we,u1),n=ts(_t());else{if(e===Er)throw new Error(Ko);e===ic?(t=_t(),t.value=t.value==="true",n=ts(t)):e===ac?(t=_t(),t.value=null,n=ts(t)):Ie("/")||Ie("/=")?(n=ts($4()),d1()):uc(_t())}return n}function hS(){const e=[];if(ft("("),!Ie(")"))for(;R<ct&&(e.push(mi()),!Ie(")"));)ft(",");return ft(")"),e}function dS(){R=we.start;const e=_t();return eS(e)||uc(e),$l(e.value)}function gS(){return ft("."),dS()}function pS(){ft("[");const e=th();return ft("]"),e}function mS(){var e,t,n;for(e=lS();;)if(Ie("."))n=gS(),e=p1(".",e,n);else if(Ie("("))t=hS(),e=nS(e,t);else if(Ie("["))n=pS(),e=p1("[",e,n);else break;return e}function y1(){const e=mS();if(we.type===It&&(Ie("++")||Ie("--")))throw new Error(Ko);return e}function cc(){var e,t;if(we.type!==It&&we.type!==Er)t=y1();else{if(Ie("++")||Ie("--"))throw new Error(Ko);if(Ie("+")||Ie("-")||Ie("~")||Ie("!"))e=_t(),t=cc(),t=aS(e.value,t);else{if(eh("delete")||eh("void")||eh("typeof"))throw new Error(Ko);t=y1()}}return t}function w1(e){let t=0;if(e.type!==It&&e.type!==Er)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function bS(){var e,t,n,r,i,a,o,s,c,u;if(e=we,c=cc(),r=we,i=w1(r),i===0)return c;for(r.prec=i,_t(),t=[e,we],o=cc(),a=[c,r,o];(i=w1(we))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,c=a.pop(),t.pop(),n=g1(s,c,o),a.push(n);r=_t(),r.prec=i,a.push(r),t.push(we),n=cc(),a.push(n)}for(u=a.length-1,n=a[u],t.pop();u>1;)t.pop(),n=g1(a[u-1].value,a[u-2],n),u-=2;return n}function mi(){var e,t,n;return e=bS(),Ie("?")&&(_t(),t=mi(),ft(":"),n=mi(),e=rS(e,t,n)),e}function th(){const e=mi();if(Ie(","))throw new Error(Ko);return e}function yS(e){V=e,R=0,ct=V.length,we=null,d1();const t=th();if(we.type!==qo)throw new Error("Unexpect token after expression.");return t}var wS={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 xS(e){function t(o,s,c,u){let f=e(s[0]);return c&&(f=c+"("+f+")",c.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+o+(u<0?"":u===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,c){return u=>t(o,u,s,c)}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&&Re("Missing arguments to clamp function."),o.length>3&&Re("Too many arguments to clamp function.");const s=o.map(e);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&&Re("Missing arguments to if function."),o.length>3&&Re("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function AS(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function vS(e){e=e||{};const t=e.allowed?Pu(e.allowed):{},n=e.forbidden?Pu(e.forbidden):{},r=e.constants||wS,i=(e.functions||xS)(l),a=e.globalvar,o=e.fieldvar,s=Ct(a)?a:p=>`${a}["${p}"]`;let c={},u={},f=0;function l(p){if(Oe(p))return p;const b=h[p.type];return b==null&&Re("Unsupported type: "+p.type),b(p)}const h={Literal:p=>p.raw,Identifier:p=>{const b=p.name;return f>0?b:ai(n,b)?Re("Illegal identifier: "+b):ai(r,b)?r[b]:ai(t,b)?b:(c[b]=1,s(b))},MemberExpression:p=>{const b=!p.computed,x=l(p.object);b&&(f+=1);const A=l(p.property);return x===o&&(u[AS(A)]=1),b&&(f-=1),x+(b?"."+A:"["+A+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Re("Illegal callee type: "+p.callee.type);const b=p.callee.name,x=p.arguments,A=ai(i,b)&&i[b];return A||Re("Unrecognized function: "+b),Ct(A)?A(x):A+"("+x.map(l).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(l).join(",")+"]",BinaryExpression:p=>"("+l(p.left)+" "+p.operator+" "+l(p.right)+")",UnaryExpression:p=>"("+p.operator+l(p.argument)+")",ConditionalExpression:p=>"("+l(p.test)+"?"+l(p.consequent)+":"+l(p.alternate)+")",LogicalExpression:p=>"("+l(p.left)+p.operator+l(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(l).join(",")+"}",Property:p=>{f+=1;const b=l(p.key);return f-=1,b+":"+l(p.value)}};function d(p){const b={code:l(p),globals:Object.keys(c),fields:Object.keys(u)};return c={},u={},b}return d.functions=i,d.constants=r,d}function nh(e,t={}){const n=vS({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=yS(e),i=n(r),a=Function("datum","global",`"use strict"; return (${i.code});`),o=s=>a(s,t);return o.fields=i.fields,o}catch(r){throw new Error(`Invalid expression: ${e}, ${r.message}`)}}function _n(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function Cr(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const rh=Symbol("implicit");function ih(){var e=new oi,t=[],n=[],r=rh;function i(a){let o=e.get(a);if(o===void 0){if(r!==rh)return r;e.set(a,o=t.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new oi;for(const o of a)e.has(o)||e.set(o,t.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 ih(t,n).unknown(r)},_n.apply(i,arguments),i}function ga(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ns(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Sr(){}var bi=.7,pa=1/bi,ma="\\s*([+-]?\\d+)\\s*",rs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Mn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ES=/^#([0-9a-f]{3,8})$/,CS=new RegExp(`^rgb\\(${ma},${ma},${ma}\\)$`),SS=new RegExp(`^rgb\\(${Mn},${Mn},${Mn}\\)$`),DS=new RegExp(`^rgba\\(${ma},${ma},${ma},${rs}\\)$`),IS=new RegExp(`^rgba\\(${Mn},${Mn},${Mn},${rs}\\)$`),_S=new RegExp(`^hsl\\(${rs},${Mn},${Mn}\\)$`),MS=new RegExp(`^hsla\\(${rs},${Mn},${Mn},${rs}\\)$`),x1={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(Sr,Dr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:A1,formatHex:A1,formatHex8:TS,formatHsl:NS,formatRgb:v1,toString:v1});function A1(){return this.rgb().formatHex()}function TS(){return this.rgb().formatHex8()}function NS(){return I1(this).formatHsl()}function v1(){return this.rgb().formatRgb()}function Dr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=ES.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?E1(t):n===3?new et(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?fc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?fc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=CS.exec(e))?new et(t[1],t[2],t[3],1):(t=SS.exec(e))?new et(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=DS.exec(e))?fc(t[1],t[2],t[3],t[4]):(t=IS.exec(e))?fc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=_S.exec(e))?D1(t[1],t[2]/100,t[3]/100,1):(t=MS.exec(e))?D1(t[1],t[2]/100,t[3]/100,t[4]):x1.hasOwnProperty(e)?E1(x1[e]):e==="transparent"?new et(NaN,NaN,NaN,0):null}function E1(e){return new et(e>>16&255,e>>8&255,e&255,1)}function fc(e,t,n,r){return r<=0&&(e=t=n=NaN),new et(e,t,n,r)}function ah(e){return e instanceof Sr||(e=Dr(e)),e?(e=e.rgb(),new et(e.r,e.g,e.b,e.opacity)):new et}function lc(e,t,n,r){return arguments.length===1?ah(e):new et(e,t,n,r??1)}function et(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ga(et,lc,ns(Sr,{brighter(e){return e=e==null?pa:Math.pow(pa,e),new et(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?bi:Math.pow(bi,e),new et(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new et(yi(this.r),yi(this.g),yi(this.b),hc(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:C1,formatHex:C1,formatHex8:BS,formatRgb:S1,toString:S1}));function C1(){return`#${wi(this.r)}${wi(this.g)}${wi(this.b)}`}function BS(){return`#${wi(this.r)}${wi(this.g)}${wi(this.b)}${wi((isNaN(this.opacity)?1:this.opacity)*255)}`}function S1(){const e=hc(this.opacity);return`${e===1?"rgb(":"rgba("}${yi(this.r)}, ${yi(this.g)}, ${yi(this.b)}${e===1?")":`, ${e})`}`}function hc(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function yi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function wi(e){return e=yi(e),(e<16?"0":"")+e.toString(16)}function D1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ln(e,t,n,r)}function I1(e){if(e instanceof ln)return new ln(e.h,e.s,e.l,e.opacity);if(e instanceof Sr||(e=Dr(e)),!e)return new ln;if(e instanceof ln)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(t===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-t)/s+2:o=(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new ln(o,s,c,e.opacity)}function oh(e,t,n,r){return arguments.length===1?I1(e):new ln(e,t,n,r??1)}function ln(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ga(ln,oh,ns(Sr,{brighter(e){return e=e==null?pa:Math.pow(pa,e),new ln(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?bi:Math.pow(bi,e),new ln(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new et(sh(e>=240?e-240:e+120,i,r),sh(e,i,r),sh(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new ln(_1(this.h),dc(this.s),dc(this.l),hc(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 e=hc(this.opacity);return`${e===1?"hsl(":"hsla("}${_1(this.h)}, ${dc(this.s)*100}%, ${dc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function _1(e){return e=(e||0)%360,e<0?e+360:e}function dc(e){return Math.max(0,Math.min(1,e||0))}function sh(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const M1=Math.PI/180,T1=180/Math.PI,gc=18,N1=.96422,B1=1,F1=.82521,k1=4/29,ba=6/29,L1=3*ba*ba,FS=ba*ba*ba;function z1(e){if(e instanceof Tn)return new Tn(e.l,e.a,e.b,e.opacity);if(e instanceof Kn)return R1(e);e instanceof et||(e=ah(e));var t=hh(e.r),n=hh(e.g),r=hh(e.b),i=ch((.2225045*t+.7168786*n+.0606169*r)/B1),a,o;return t===n&&n===r?a=o=i:(a=ch((.4360747*t+.3850649*n+.1430804*r)/N1),o=ch((.0139322*t+.0971045*n+.7141733*r)/F1)),new Tn(116*i-16,500*(a-i),200*(i-o),e.opacity)}function uh(e,t,n,r){return arguments.length===1?z1(e):new Tn(e,t,n,r??1)}function Tn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}ga(Tn,uh,ns(Sr,{brighter(e){return new Tn(this.l+gc*(e??1),this.a,this.b,this.opacity)},darker(e){return new Tn(this.l-gc*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=N1*fh(t),e=B1*fh(e),n=F1*fh(n),new et(lh(3.1338561*t-1.6168667*e-.4906146*n),lh(-.9787684*t+1.9161415*e+.033454*n),lh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function ch(e){return e>FS?Math.pow(e,1/3):e/L1+k1}function fh(e){return e>ba?e*e*e:L1*(e-k1)}function lh(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function hh(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function kS(e){if(e instanceof Kn)return new Kn(e.h,e.c,e.l,e.opacity);if(e instanceof Tn||(e=z1(e)),e.a===0&&e.b===0)return new Kn(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*T1;return new Kn(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function dh(e,t,n,r){return arguments.length===1?kS(e):new Kn(e,t,n,r??1)}function Kn(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function R1(e){if(isNaN(e.h))return new Tn(e.l,0,0,e.opacity);var t=e.h*M1;return new Tn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}ga(Kn,dh,ns(Sr,{brighter(e){return new Kn(this.h,this.c,this.l+gc*(e??1),this.opacity)},darker(e){return new Kn(this.h,this.c,this.l-gc*(e??1),this.opacity)},rgb(){return R1(this).rgb()}}));var O1=-.14861,gh=1.78277,ph=-.29227,pc=-.90649,is=1.97294,P1=is*pc,U1=is*gh,j1=gh*ph-pc*O1;function LS(e){if(e instanceof xi)return new xi(e.h,e.s,e.l,e.opacity);e instanceof et||(e=ah(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(j1*r+P1*t-U1*n)/(j1+P1-U1),a=r-i,o=(is*(n-i)-ph*a)/pc,s=Math.sqrt(o*o+a*a)/(is*i*(1-i)),c=s?Math.atan2(o,a)*T1-120:NaN;return new xi(c<0?c+360:c,s,i,e.opacity)}function mh(e,t,n,r){return arguments.length===1?LS(e):new xi(e,t,n,r??1)}function xi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ga(xi,mh,ns(Sr,{brighter(e){return e=e==null?pa:Math.pow(pa,e),new xi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?bi:Math.pow(bi,e),new xi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*M1,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new et(255*(t+n*(O1*r+gh*i)),255*(t+n*(ph*r+pc*i)),255*(t+n*(is*r)),this.opacity)}}));function G1(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function H1(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return G1((n-r/t)*t,o,i,a,s)}}function Q1(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return G1((n-r/t)*t,i,a,o,s)}}const mc=e=>()=>e;function V1(e,t){return function(n){return e+n*t}}function zS(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function bc(e,t){var n=t-e;return n?V1(e,n>180||n<-180?n-360*Math.round(n/360):n):mc(isNaN(e)?t:e)}function RS(e){return(e=+e)==1?tt:function(t,n){return n-t?zS(t,n,e):mc(isNaN(t)?n:t)}}function tt(e,t){var n=t-e;return n?V1(e,n):mc(isNaN(e)?t:e)}const bh=function e(t){var n=RS(t);function r(i,a){var o=n((i=lc(i)).r,(a=lc(a)).r),s=n(i.g,a.g),c=n(i.b,a.b),u=tt(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=s(f),i.b=c(f),i.opacity=u(f),i+""}}return r.gamma=e,r}(1);function Z1(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=lc(t[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=e(r),i=e(i),a=e(a),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=a(c),s+""}}}var OS=Z1(H1),PS=Z1(Q1);function yh(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function Y1(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function US(e,t){return(Y1(t)?yh:W1)(e,t)}function W1(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=Ir(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function q1(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function hn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function X1(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=Ir(e[i],t[i]):r[i]=t[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var wh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,xh=new RegExp(wh.source,"g");function jS(e){return function(){return e}}function GS(e){return function(t){return e(t)+""}}function K1(e,t){var n=wh.lastIndex=xh.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e=e+"",t=t+"";(r=wh.exec(e))&&(i=xh.exec(t));)(a=i.index)>n&&(a=t.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,c.push({i:o,x:hn(r,i)})),n=xh.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?GS(c[0].x):jS(t):(t=c.length,function(u){for(var f=0,l;f<t;++f)s[(l=c[f]).i]=l.x(u);return s.join("")})}function Ir(e,t){var n=typeof t,r;return t==null||n==="boolean"?mc(t):(n==="number"?hn:n==="string"?(r=Dr(t))?(t=r,bh):K1:t instanceof Dr?bh:t instanceof Date?q1:Y1(t)?yh:Array.isArray(t)?W1:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?X1:hn)(e,t)}function HS(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function QS(e,t){var n=bc(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function as(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var J1=180/Math.PI,Ah={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function $1(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*J1,skewX:Math.atan(c)*J1,scaleX:o,scaleY:s}}var yc;function VS(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Ah:$1(t.a,t.b,t.c,t.d,t.e,t.f)}function ZS(e){return e==null||(yc||(yc=document.createElementNS("http://www.w3.org/2000/svg","g")),yc.setAttribute("transform",e),!(e=yc.transform.baseVal.consolidate()))?Ah:(e=e.matrix,$1(e.a,e.b,e.c,e.d,e.e,e.f))}function em(e,t,n,r){function i(u){return u.length?u.pop()+" ":""}function a(u,f,l,h,d,p){if(u!==l||f!==h){var b=d.push("translate(",null,t,null,n);p.push({i:b-4,x:hn(u,l)},{i:b-2,x:hn(f,h)})}else(l||h)&&d.push("translate("+l+t+h+n)}function o(u,f,l,h){u!==f?(u-f>180?f+=360:f-u>180&&(u+=360),h.push({i:l.push(i(l)+"rotate(",null,r)-2,x:hn(u,f)})):f&&l.push(i(l)+"rotate("+f+r)}function s(u,f,l,h){u!==f?h.push({i:l.push(i(l)+"skewX(",null,r)-2,x:hn(u,f)}):f&&l.push(i(l)+"skewX("+f+r)}function c(u,f,l,h,d,p){if(u!==l||f!==h){var b=d.push(i(d)+"scale(",null,",",null,")");p.push({i:b-4,x:hn(u,l)},{i:b-2,x:hn(f,h)})}else(l!==1||h!==1)&&d.push(i(d)+"scale("+l+","+h+")")}return function(u,f){var l=[],h=[];return u=e(u),f=e(f),a(u.translateX,u.translateY,f.translateX,f.translateY,l,h),o(u.rotate,f.rotate,l,h),s(u.skewX,f.skewX,l,h),c(u.scaleX,u.scaleY,f.scaleX,f.scaleY,l,h),u=f=null,function(d){for(var p=-1,b=h.length,x;++p<b;)l[(x=h[p]).i]=x.x(d);return l.join("")}}}var YS=em(VS,"px, ","px)","deg)"),WS=em(ZS,", ",")",")"),qS=1e-12;function tm(e){return((e=Math.exp(e))+1/e)/2}function XS(e){return((e=Math.exp(e))-1/e)/2}function KS(e){return((e=Math.exp(2*e))-1)/(e+1)}const JS=function e(t,n,r){function i(a,o){var s=a[0],c=a[1],u=a[2],f=o[0],l=o[1],h=o[2],d=f-s,p=l-c,b=d*d+p*p,x,A;if(b<qS)A=Math.log(h/u)/t,x=function(S){return[s+S*d,c+S*p,u*Math.exp(t*S*A)]};else{var D=Math.sqrt(b),_=(h*h-u*u+r*b)/(2*u*n*D),C=(h*h-u*u-r*b)/(2*h*n*D),T=Math.log(Math.sqrt(_*_+1)-_),B=Math.log(Math.sqrt(C*C+1)-C);A=(B-T)/t,x=function(S){var z=S*A,E=tm(T),N=u/(n*D)*(E*KS(t*z+T)-XS(T));return[s+N*d,c+N*p,u*E/tm(t*z+T)]}}return x.duration=A*1e3*t/Math.SQRT2,x}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,c=s*s;return e(o,s,c)},i}(Math.SQRT2,2,4);function nm(e){return function(t,n){var r=e((t=oh(t)).h,(n=oh(n)).h),i=tt(t.s,n.s),a=tt(t.l,n.l),o=tt(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const $S=nm(bc);var eD=nm(tt);function tD(e,t){var n=tt((e=uh(e)).l,(t=uh(t)).l),r=tt(e.a,t.a),i=tt(e.b,t.b),a=tt(e.opacity,t.opacity);return function(o){return e.l=n(o),e.a=r(o),e.b=i(o),e.opacity=a(o),e+""}}function rm(e){return function(t,n){var r=e((t=dh(t)).h,(n=dh(n)).h),i=tt(t.c,n.c),a=tt(t.l,n.l),o=tt(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const nD=rm(bc);var rD=rm(tt);function im(e){return function t(n){n=+n;function r(i,a){var o=e((i=mh(i)).h,(a=mh(a)).h),s=tt(i.s,a.s),c=tt(i.l,a.l),u=tt(i.opacity,a.opacity);return function(f){return i.h=o(f),i.s=s(f),i.l=c(Math.pow(f,n)),i.opacity=u(f),i+""}}return r.gamma=t,r}(1)}const iD=im(bc);var aD=im(tt);function vh(e,t){t===void 0&&(t=e,e=Ir);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function oD(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const sD=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Ir,interpolateArray:US,interpolateBasis:H1,interpolateBasisClosed:Q1,interpolateCubehelix:iD,interpolateCubehelixLong:aD,interpolateDate:q1,interpolateDiscrete:HS,interpolateHcl:nD,interpolateHclLong:rD,interpolateHsl:$S,interpolateHslLong:eD,interpolateHue:QS,interpolateLab:tD,interpolateNumber:hn,interpolateNumberArray:yh,interpolateObject:X1,interpolateRgb:bh,interpolateRgbBasis:OS,interpolateRgbBasisClosed:PS,interpolateRound:as,interpolateString:K1,interpolateTransformCss:YS,interpolateTransformSvg:WS,interpolateZoom:JS,piecewise:vh,quantize:oD},Symbol.toStringTag,{value:"Module"}));function uD(e){return function(){return e}}function Eh(e){return+e}var am=[0,1];function Mt(e){return e}function Ch(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:uD(isNaN(t)?NaN:.5)}function cD(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function fD(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=Ch(i,r),a=n(o,a)):(r=Ch(r,i),a=n(a,o)),function(s){return a(r(s))}}function lD(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=Ch(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var c=aa(e,s,1,r)-1;return a[c](i[c](s))}}function os(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function wc(){var e=am,t=am,n=Ir,r,i,a,o=Mt,s,c,u;function f(){var h=Math.min(e.length,t.length);return o!==Mt&&(o=cD(e[0],e[h-1])),s=h>2?lD:fD,c=u=null,l}function l(h){return h==null||isNaN(h=+h)?a:(c||(c=s(e.map(r),t,n)))(r(o(h)))}return l.invert=function(h){return o(i((u||(u=s(t,e.map(r),hn)))(h)))},l.domain=function(h){return arguments.length?(e=Array.from(h,Eh),f()):e.slice()},l.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},l.rangeRound=function(h){return t=Array.from(h),n=as,f()},l.clamp=function(h){return arguments.length?(o=h?!0:Mt,f()):o!==Mt},l.interpolate=function(h){return arguments.length?(n=h,f()):n},l.unknown=function(h){return arguments.length?(a=h,l):a},function(h,d){return r=h,i=d,f()}}function om(){return wc()(Mt,Mt)}function sm(e,t,n,r){var i=si(e,t,n),a;switch(r=yr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=lp(i,o))&&(r.precision=a),Sl(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=hp(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=fp(i))&&(r.precision=a-(r.type==="%")*2);break}}return it(r)}function Ai(e){var t=e.domain;return e.ticks=function(n){var r=t();return Gu(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return sm(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,u,f=10;for(s<o&&(u=o,o=s,s=u,u=i,i=a,a=u);f-- >0;){if(u=np(o,s,n),u===c)return r[i]=o,r[a]=s,t(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;c=u}return e},e}function um(){var e=om();return e.copy=function(){return os(e,um())},_n.apply(e,arguments),Ai(e)}function cm(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Eh),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return cm(e).unknown(t)},e=arguments.length?Array.from(e,Eh):[0,1],Ai(n)}function fm(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function lm(e){return Math.log(e)}function hm(e){return Math.exp(e)}function hD(e){return-Math.log(-e)}function dD(e){return-Math.exp(-e)}function gD(e){return isFinite(e)?+("1e"+e):e<0?0:e}function pD(e){return e===10?gD:e===Math.E?Math.exp:t=>Math.pow(e,t)}function mD(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function dm(e){return(t,n)=>-e(-t,n)}function Sh(e){const t=e(lm,hm),n=t.domain;let r=10,i,a;function o(){return i=mD(r),a=pD(r),n()[0]<0?(i=dm(i),a=dm(a),e(hD,dD)):e(lm,hm),t}return t.base=function(s){return arguments.length?(r=+s,o()):r},t.domain=function(s){return arguments.length?(n(s),o()):n()},t.ticks=s=>{const c=n();let u=c[0],f=c[c.length-1];const l=f<u;l&&([u,f]=[f,u]);let h=i(u),d=i(f),p,b;const x=s==null?10:+s;let A=[];if(!(r%1)&&d-h<x){if(h=Math.floor(h),d=Math.ceil(d),u>0){for(;h<=d;++h)for(p=1;p<r;++p)if(b=h<0?p/a(-h):p*a(h),!(b<u)){if(b>f)break;A.push(b)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(b=h>0?p/a(-h):p*a(h),!(b<u)){if(b>f)break;A.push(b)}A.length*2<x&&(A=Gu(u,f,x))}else A=Gu(h,d,Math.min(d-h,x)).map(a);return l?A.reverse():A},t.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=yr(c)).precision==null&&(c.trim=!0),c=it(c)),s===1/0)return c;const u=Math.max(1,r*s/t.ticks().length);return f=>{let l=f/a(Math.round(i(f)));return l*r<r-.5&&(l*=r),l<=u?c(f):""}},t.nice=()=>n(fm(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function Dh(){const e=Sh(wc()).domain([1,10]);return e.copy=()=>os(e,Dh()).base(e.base()),_n.apply(e,arguments),e}function gm(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function pm(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Ih(e){var t=1,n=e(gm(t),pm(t));return n.constant=function(r){return arguments.length?e(gm(t=+r),pm(t)):t},Ai(n)}function mm(){var e=Ih(wc());return e.copy=function(){return os(e,mm()).constant(e.constant())},_n.apply(e,arguments)}function bm(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function bD(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function yD(e){return e<0?-e*e:e*e}function _h(e){var t=e(Mt,Mt),n=1;function r(){return n===1?e(Mt,Mt):n===.5?e(bD,yD):e(bm(n),bm(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Ai(t)}function Mh(){var e=_h(wc());return e.copy=function(){return os(e,Mh()).exponent(e.exponent())},_n.apply(e,arguments),e}function wD(){return Mh.apply(null,arguments).exponent(.5)}function ym(){var e=[],t=[],n=[],r;function i(){var o=0,s=Math.max(1,t.length);for(n=new Array(s-1);++o<s;)n[o-1]=rp(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[aa(n,o)]}return a.invertExtent=function(o){var s=t.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let s of o)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(Io),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return ym().domain(e).range(t).unknown(r)},_n.apply(a,arguments)}function wm(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(c){return c!=null&&c<=c?i[aa(r,c,0,n)]:a}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*t-(c-n)*e)/(n+1);return o}return o.domain=function(c){return arguments.length?([e,t]=c,e=+e,t=+t,s()):[e,t]},o.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},o.invertExtent=function(c){var u=i.indexOf(c);return u<0?[NaN,NaN]:u<1?[e,r[0]]:u>=n?[r[n-1],t]:[r[u-1],r[u]]},o.unknown=function(c){return arguments.length&&(a=c),o},o.thresholds=function(){return r.slice()},o.copy=function(){return wm().domain([e,t]).range(i).unknown(a)},_n.apply(Ai(o),arguments)}function xm(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[aa(e,a,0,r)]:n}return i.domain=function(a){return arguments.length?(e=Array.from(a),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return xm().domain(e).range(t).unknown(n)},_n.apply(i,arguments)}function xD(e){return new Date(e)}function AD(e){return e instanceof Date?+e:+new Date(+e)}function Th(e,t,n,r,i,a,o,s,c,u){var f=om(),l=f.invert,h=f.domain,d=u(".%L"),p=u(":%S"),b=u("%I:%M"),x=u("%I %p"),A=u("%a %d"),D=u("%b %d"),_=u("%B"),C=u("%Y");function T(B){return(c(B)<B?d:s(B)<B?p:o(B)<B?b:a(B)<B?x:r(B)<B?i(B)<B?A:D:n(B)<B?_:C)(B)}return f.invert=function(B){return new Date(l(B))},f.domain=function(B){return arguments.length?h(Array.from(B,AD)):h().map(xD)},f.ticks=function(B){var S=h();return e(S[0],S[S.length-1],B??10)},f.tickFormat=function(B,S){return S==null?T:u(S)},f.nice=function(B){var S=h();return(!B||typeof B.range!="function")&&(B=t(S[0],S[S.length-1],B??10)),B?h(fm(S,B)):f},f.copy=function(){return os(f,Th(e,t,n,r,i,a,o,s,c,u))},f}function vD(){return _n.apply(Th(b3,y3,xr,Wu,Mo,ci,Bl,Nl,wr,Ul).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ED(){return _n.apply(Th(p3,m3,Ar,Xu,To,li,Ll,kl,wr,jl).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function xc(){var e=0,t=1,n,r,i,a,o=Mt,s=!1,c;function u(l){return l==null||isNaN(l=+l)?c:o(i===0?.5:(l=(a(l)-n)*i,s?Math.max(0,Math.min(1,l)):l))}u.domain=function(l){return arguments.length?([e,t]=l,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),u):[e,t]},u.clamp=function(l){return arguments.length?(s=!!l,u):s},u.interpolator=function(l){return arguments.length?(o=l,u):o};function f(l){return function(h){var d,p;return arguments.length?([d,p]=h,o=l(d,p),u):[o(0),o(1)]}}return u.range=f(Ir),u.rangeRound=f(as),u.unknown=function(l){return arguments.length?(c=l,u):c},function(l){return a=l,n=l(e),r=l(t),i=n===r?0:1/(r-n),u}}function _r(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Nh(){var e=Ai(xc()(Mt));return e.copy=function(){return _r(e,Nh())},Cr.apply(e,arguments)}function Am(){var e=Sh(xc()).domain([1,10]);return e.copy=function(){return _r(e,Am()).base(e.base())},Cr.apply(e,arguments)}function vm(){var e=Ih(xc());return e.copy=function(){return _r(e,vm()).constant(e.constant())},Cr.apply(e,arguments)}function Bh(){var e=_h(xc());return e.copy=function(){return _r(e,Bh()).exponent(e.exponent())},Cr.apply(e,arguments)}function CD(){return Bh.apply(null,arguments).exponent(.5)}function Ac(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,u=Mt,f,l=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+f(b))-a)*(r*b<r*a?s:c),u(l?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([e,t,n]=b,i=f(e=+e),a=f(t=+t),o=f(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(b){return arguments.length?(l=!!b,d):l},d.interpolator=function(b){return arguments.length?(u=b,d):u};function p(b){return function(x){var A,D,_;return arguments.length?([A,D,_]=x,u=vh(b,[A,D,_]),d):[u(0),u(.5),u(1)]}}return d.range=p(Ir),d.rangeRound=p(as),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return f=b,i=b(e),a=b(t),o=b(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function Em(){var e=Ai(Ac()(Mt));return e.copy=function(){return _r(e,Em())},Cr.apply(e,arguments)}function Cm(){var e=Sh(Ac()).domain([.1,1,10]);return e.copy=function(){return _r(e,Cm()).base(e.base())},Cr.apply(e,arguments)}function Sm(){var e=Ih(Ac());return e.copy=function(){return _r(e,Sm()).constant(e.constant())},Cr.apply(e,arguments)}function Fh(){var e=_h(Ac());return e.copy=function(){return _r(e,Fh()).exponent(e.exponent())},Cr.apply(e,arguments)}function SD(){return Fh.apply(null,arguments).exponent(.5)}function kh(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const DD="identity",ya="linear",Mr="log",ss="pow",us="sqrt",vc="symlog",Dm="time",Im="utc",Nn="sequential",wa="diverging",Lh="quantile",_m="quantize",Mm="threshold",zh="ordinal",Rh="point",Tm="band",Oh="bin-ordinal",Ve="continuous",cs="discrete",fs="discretizing",Vt="interpolating",Nm="temporal";function ID(e){return function(t){let n=t[0],r=t[1],i;return r<n&&(i=n,n=r,r=i),[e.invert(n),e.invert(r)]}}function _D(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,c,u;for(i<r&&(s=r,r=i,i=s),c=0,u=n.length;c<u;++c)n[c]>=r&&n[c]<=i&&(a<0&&(a=c),o=c);if(!(a<0))return r=e.invertExtent(n[a]),i=e.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function Ph(){const e=ih().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,c=0,u=.5;delete e.unknown;function f(){const l=t().length,h=r[1]<r[0],d=r[1-h],p=kh(l,s,c);let b=r[h-0];i=(d-b)/(p||1),o&&(i=Math.floor(i)),b+=(d-b-i*(l-s))*u,a=i*(1-s),o&&(b=Math.round(b),a=Math.round(a));const x=_o(l).map(A=>b+i*A);return n(h?x.reverse():x)}return e.domain=function(l){return arguments.length?(t(l),f()):t()},e.range=function(l){return arguments.length?(r=[+l[0],+l[1]],f()):r.slice()},e.rangeRound=function(l){return r=[+l[0],+l[1]],o=!0,f()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(l){return arguments.length?(o=!!l,f()):o},e.padding=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),s=c,f()):s},e.paddingInner=function(l){return arguments.length?(s=Math.max(0,Math.min(1,l)),f()):s},e.paddingOuter=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),f()):c},e.align=function(l){return arguments.length?(u=Math.max(0,Math.min(1,l)),f()):u},e.invertRange=function(l){if(l[0]==null||l[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let b=+l[0],x=+l[1],A,D,_;if(!(b!==b||x!==x)&&(x<b&&(_=b,b=x,x=_),!(x<d[0]||b>r[1-h])))return A=Math.max(0,wl(d,b)-1),D=b===x?A:wl(d,x)-1,b-d[A]>a+1e-10&&++A,h&&(_=A,A=p-D,D=p-_),A>D?void 0:t().slice(A,D+1)},e.invert=function(l){const h=e.invertRange([l,l]);return h&&h[0]},e.copy=function(){return Ph().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(c).align(u)},f()}function Bm(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Bm(t())},e}function MD(){return Bm(Ph().paddingInner(1))}var TD=Array.prototype.map;function ND(e){return TD.call(e,So)}const BD=Array.prototype.slice;function Fm(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(aa(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=ND(r),n):e.slice()},n.range=function(r){return arguments.length?(t=BD.call(r),n):t.slice()},n.tickFormat=function(r,i){return sm(e[0],cn(e),r??10,i)},n.copy=function(){return Fm().domain(n.domain()).range(n.range())},n}const Ec={};function FD(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?ID(a):a.invertExtent?_D(a):void 0),a.type=e,a};return r.metadata=Pu(gl(n)),r}function be(e,t,n){return arguments.length>1?(Ec[e]=FD(e,t,n),this):kD(e)?Ec[e]:void 0}be(DD,cm),be(ya,um,Ve),be(Mr,Dh,[Ve,Mr]),be(ss,Mh,Ve),be(us,wD,Ve),be(vc,mm,Ve),be(Dm,vD,[Ve,Nm]),be(Im,ED,[Ve,Nm]),be(Nn,Nh,[Ve,Vt]),be("".concat(Nn,"-").concat(ya),Nh,[Ve,Vt]),be("".concat(Nn,"-").concat(Mr),Am,[Ve,Vt,Mr]),be("".concat(Nn,"-").concat(ss),Bh,[Ve,Vt]),be("".concat(Nn,"-").concat(us),CD,[Ve,Vt]),be("".concat(Nn,"-").concat(vc),vm,[Ve,Vt]),be("".concat(wa,"-").concat(ya),Em,[Ve,Vt]),be("".concat(wa,"-").concat(Mr),Cm,[Ve,Vt,Mr]),be("".concat(wa,"-").concat(ss),Fh,[Ve,Vt]),be("".concat(wa,"-").concat(us),SD,[Ve,Vt]),be("".concat(wa,"-").concat(vc),Sm,[Ve,Vt]),be(Lh,ym,[fs,Lh]),be(_m,wm,fs),be(Mm,xm,fs),be(Oh,Fm,[cs,fs]),be(zh,ih,cs),be(Tm,Ph,cs),be(Rh,MD,cs);function kD(e){return ai(Ec,e)}function ls(e,t){const n=Ec[e];return n&&n.metadata[t]}function lt(e){return ls(e,Ve)}function Tr(e){return ls(e,cs)}function xa(e){return ls(e,fs)}function km(e){return ls(e,Mr)}function Cc(e){return ls(e,Vt)}function LD(e,t){const n=t[0],r=cn(t)-n;return function(i){return e(n+i*r)}}function Sc(e,t,n){return vh(Lm(t||"rgb",n),e)}function zD(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function Lm(e,t){const n=sD[RD(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function RD(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const OD={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"},PD={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 zm(e){const t=e.length/6|0,n=new Array(t);for(let r=0;r<t;)n[r]="#"+e.slice(r*6,++r*6);return n}function Rm(e,t){for(const n in e)Uh(n,t(e[n]))}const Om={};Rm(PD,zm),Rm(OD,e=>Sc(zm(e)));function Uh(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Om[e]=t,this):Om[e]}function UD(){let e=0;const t=new Map,n=r=>{let i=t.get(r);return i===void 0&&(i=e++,t.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of t.entries())if(i[1]==r)return i[0]},n.domain=()=>[...t.keys()],n}function Dc(){const e=t=>t;return e.invert=t=>t,e.copy=Dc,e.invertRange=()=>{},e.type="null",e}function jD(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=((Zt(i)&&i.resolutionChannel)??(Ci(r)&&r))||void 0,o=e.unitView.getScaleResolution(a);n[r]=GD(t[r],o==null?void 0:o.getScale(),e.unitView.getAccessor(r),r)}return n}function GD(e,t,n,r){let i;if(dn(e)){const a=e.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(!t)if(!Ci(r))t=Dc();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=a=>t(n(a)),Tr(t.type)){const a=UD();a.addAll(t.domain()),i.indexer=a}i.constant=n.constant,i.accessor=n,i.scale=t}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(e)}`);return i.invert=t?a=>t.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function dn(e){return e&&"value"in e}function hs(e){return e&&"field"in e}function ds(e){return e&&"datum"in e}function Zt(e){return hs(e)||ds(e)||Gh(e)||Pm(e)}function jh(e,t){const n=e.mark.encoding[t];if(Zt(n))return n;throw new Error("Not a channel def with scale!")}function Pm(e){return e&&"chrom"in e}function Gh(e){return e&&"expr"in e}const Aa=["x","y"],HD=["x2","y2"],QD=[...Aa,...HD];function Um(e){return Aa.includes(e)}function gs(e){return QD.includes(e)}const Hh={x:"x2",y:"y2"},jm=Object.fromEntries(Object.entries(Hh).map(e=>[e[1],e[0]]));function ps(e){return e in jm}function VD(e){const t=Hh[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function vi(e){return jm[e]??e}function Ei(e){return["color","fill","stroke"].includes(vi(e))}function Ic(e){return["shape","squeeze"].includes(e)}function Ci(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function Gm(e){switch(e){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function Hm(e){if(!Ic(e))throw new Error("Not a discrete channel: "+e);const t=new Map(Gm(e).map((n,r)=>[n,r]));return n=>{const r=t.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${e}" channel: ${n}`)}}function ve(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return ie(n,[e],t)}else return Bu(e)}class ZD{constructor(){this.accessorCreators=[],this.register(t=>{if(hs(t))try{const n=ve(t.field);return n.constant=!1,n.fields=ii(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>Gh(t)?YD(t.expr):void 0),this.register(t=>{if(ds(t)){const r=CE(t.datum);return r.constant=!0,r.fields=[],r}})}register(t){this.accessorCreators.push(t)}createAccessor(t){for(const n of this.accessorCreators){const r=n(t);if(r)return r}}}function YD(e){const t=nh(e);return t.constant=t.fields.length==0,t}/* @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 Ch=5120,cs=5121,Sh=5122,Dh=5123,Ih=5124,_h=5125,Mh=5126,wD=32819,xD=32820,AD=33635,vD=5131,ED=33640,CD=35899,SD=35902,DD=36269,ID=34042,Em={};{const e=Em;e[Ch]=Int8Array,e[cs]=Uint8Array,e[Sh]=Int16Array,e[Dh]=Uint16Array,e[Ih]=Int32Array,e[_h]=Uint32Array,e[Mh]=Float32Array,e[wD]=Uint16Array,e[xD]=Uint16Array,e[AD]=Uint16Array,e[vD]=Uint16Array,e[ED]=Uint32Array,e[CD]=Uint32Array,e[SD]=Uint32Array,e[DD]=Uint32Array,e[ID]=Uint32Array}function Th(e){if(e instanceof Int8Array)return Ch;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return cs;if(e instanceof Int16Array)return Sh;if(e instanceof Uint16Array)return Dh;if(e instanceof Int32Array)return Ih;if(e instanceof Uint32Array)return _h;if(e instanceof Float32Array)return Mh;throw new Error("unsupported typed array type")}function _D(e){if(e===Int8Array)return Ch;if(e===Uint8Array||e===Uint8ClampedArray)return cs;if(e===Int16Array)return Sh;if(e===Uint16Array)return Dh;if(e===Int32Array)return Ih;if(e===Uint32Array)return _h;if(e===Float32Array)return Mh;throw new Error("unsupported typed array type")}function MD(e){const t=Em[e];if(!t)throw new Error("unknown gl type");return t}const pc=typeof SharedArrayBuffer<"u"?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function TD(...e){console.error(...e)}function Cm(...e){console.warn(...e)}function ND(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function Sm(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function mc(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function BD(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const Dm=35044,Tn=34962,FD=34963,kD=34660,LD=5120,zD=5121,RD=5122,OD=5123,PD=5124,UD=5125,jD=5126,Im={attribPrefix:""};function _m(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||Dm)}function Mm(e,t,n,r){if(ND(e,t))return t;n=n||Tn;const i=e.createBuffer();return _m(e,n,i,t,r),i}function Tm(e){return e==="indices"}function GD(e){return e instanceof Int8Array||e instanceof Uint8Array}function HD(e){return e===Int8Array||e===Uint8Array}function QD(e){return e.length?e:e.data}const VD=/coord|texture/i,ZD=/color|colour/i;function Nm(e,t){let n;if(VD.test(e)?n=2:ZD.test(e)?n=4:n=3,t%n>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);return n}function YD(e,t){return e.numComponents||e.size||Nm(t,QD(e).length)}function Nh(e,t){if(pc(e))return e;if(pc(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(Tm(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function qD(e,t){const n={};return Object.keys(t).forEach(function(r){if(!Tm(r)){const i=t[r],o=i.attrib||i.name||i.attribName||Im.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!pc(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let a,s,c,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)a=i.buffer,u=i.numComponents||i.size,s=i.type,c=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,l=i.type||Float32Array,h=f*l.BYTES_PER_ELEMENT;s=_D(l),c=i.normalize!==void 0?i.normalize:HD(l),u=i.numComponents||i.size||Nm(r,f),a=e.createBuffer(),e.bindBuffer(Tn,a),e.bufferData(Tn,h,i.drawType||Dm)}else{const f=Nh(i,r);a=Mm(e,f,void 0,i.drawType),s=Th(f),c=i.normalize!==void 0?i.normalize:GD(f),u=YD(i,r)}n[o]={buffer:a,numComponents:u,type:s,normalize:c,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Tn,null),n}function WD(e,t,n,r){n=Nh(n),r!==void 0?(e.bindBuffer(Tn,t.buffer),e.bufferSubData(Tn,r,n)):_m(e,Tn,t.buffer,n,t.drawType)}function XD(e,t){return t===LD||t===zD?1:t===RD||t===OD?2:t===PD||t===UD||t===jD?4:0}const Bh=["position","positions","a_position"];function KD(e,t){let n,r;for(r=0;r<Bh.length&&(n=Bh[r],!(n in t||(n=Im.attribPrefix+n,n in t)));++r);r===Bh.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Tn,i.buffer);const o=e.getBufferParameter(Tn,kD);e.bindBuffer(Tn,null);const a=XD(e,i.type),s=o/a,c=i.numComponents||i.size,u=s/c;if(u%1!==0)throw new Error(`numComponents ${c} not correct for length ${length}`);return u}function JD(e,t,n){const r=qD(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=t.indices;if(o){const a=Nh(o,"indices");i.indices=Mm(e,a,FD),i.numElements=a.length,i.elementType=Th(a)}else i.numElements||(i.numElements=KD(e,i.attribs));return i}function wo(e){return!!e.texStorage2D}const Fh=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const o in r)if(typeof r[o]=="number"){const a=t[r[o]];t[r[o]]=a?`${a} | ${o}`:o}e[i]=!0}}return function(i,o){return n(i),t[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),Dr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},xo=pc,Bm=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),Fm=6406,Nn=6407,Te=6408,km=6409,Lm=6410,fs=6402,zm=34041,bc=33071,$D=9728,eI=9729,Kn=3553,Jn=34067,Ir=32879,_r=35866,yc=34069,tI=34070,nI=34071,rI=34072,iI=34073,oI=34074,kh=10241,Lh=10240,wc=10242,xc=10243,Rm=32882,aI=33082,sI=33083,uI=33084,cI=33085,zh=3317,Om=3314,Pm=32878,Um=3316,jm=3315,Gm=32877,fI=37443,lI=37441,hI=37440,dI=33321,gI=36756,pI=33325,mI=33326,bI=33330,yI=33329,wI=33338,xI=33337,AI=33340,vI=33339,EI=33323,CI=36757,SI=33327,DI=33328,II=33336,_I=33335,MI=33332,TI=33331,NI=33334,BI=33333,FI=32849,kI=35905,LI=36194,zI=36758,RI=35898,OI=35901,PI=34843,UI=34837,jI=36221,GI=36239,HI=36215,QI=36233,VI=36209,ZI=36227,YI=32856,qI=35907,WI=36759,XI=32855,KI=32854,JI=32857,$I=34842,e_=34836,t_=36220,n_=36238,r_=36975,i_=36214,o_=36232,a_=36226,s_=36208,u_=33189,c_=33190,f_=36012,l_=36013,h_=35056,Mr=5120,Ne=5121,Ac=5122,Ao=5123,vc=5124,vi=5125,ht=5126,Hm=32819,Qm=32820,Vm=33635,hn=5131,ls=36193,Rh=33640,d_=35899,g_=35902,p_=36269,m_=34042,Ec=33319,vo=33320,Cc=6403,Eo=36244,Co=36248,Ei=36249;let Oh;function Sc(e){if(!Oh){const t={};t[Fm]={textureFormat:Fm,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ne,hn,ls,ht]},t[km]={textureFormat:km,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ne,hn,ls,ht]},t[Lm]={textureFormat:Lm,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ne,hn,ls,ht]},t[Nn]={textureFormat:Nn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ne,hn,ls,ht,Vm]},t[Te]={textureFormat:Te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ne,hn,ls,ht,Hm,Qm]},t[fs]={textureFormat:fs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[vi,Ao]},t[dI]={textureFormat:Cc,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ne]},t[gI]={textureFormat:Cc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Mr]},t[pI]={textureFormat:Cc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[ht,hn]},t[mI]={textureFormat:Cc,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[ht]},t[bI]={textureFormat:Eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ne]},t[yI]={textureFormat:Eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Mr]},t[MI]={textureFormat:Eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ao]},t[TI]={textureFormat:Eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ac]},t[NI]={textureFormat:Eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[vi]},t[BI]={textureFormat:Eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[vc]},t[EI]={textureFormat:Ec,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ne]},t[CI]={textureFormat:Ec,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Mr]},t[SI]={textureFormat:Ec,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[ht,hn]},t[DI]={textureFormat:Ec,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[ht]},t[II]={textureFormat:vo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ne]},t[_I]={textureFormat:vo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Mr]},t[wI]={textureFormat:vo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ao]},t[xI]={textureFormat:vo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ac]},t[AI]={textureFormat:vo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[vi]},t[vI]={textureFormat:vo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[vc]},t[FI]={textureFormat:Nn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ne]},t[kI]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ne]},t[LI]={textureFormat:Nn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ne,Vm]},t[zI]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Mr]},t[RI]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[ht,hn,d_]},t[OI]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[ht,hn,g_]},t[PI]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[ht,hn]},t[UI]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[ht]},t[jI]={textureFormat:Co,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ne]},t[GI]={textureFormat:Co,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Mr]},t[HI]={textureFormat:Co,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ao]},t[QI]={textureFormat:Co,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ac]},t[VI]={textureFormat:Co,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[vi]},t[ZI]={textureFormat:Co,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[vc]},t[YI]={textureFormat:Te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ne]},t[qI]={textureFormat:Te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ne]},t[WI]={textureFormat:Te,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Mr]},t[XI]={textureFormat:Te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ne,Qm,Rh]},t[KI]={textureFormat:Te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ne,Hm]},t[JI]={textureFormat:Te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Rh]},t[$I]={textureFormat:Te,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[ht,hn]},t[e_]={textureFormat:Te,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[ht]},t[t_]={textureFormat:Ei,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ne]},t[n_]={textureFormat:Ei,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Mr]},t[r_]={textureFormat:Ei,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Rh]},t[i_]={textureFormat:Ei,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ao]},t[o_]={textureFormat:Ei,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ac]},t[a_]={textureFormat:Ei,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[vc]},t[s_]={textureFormat:Ei,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[vi]},t[u_]={textureFormat:fs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ao,vi]},t[c_]={textureFormat:fs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[vi]},t[f_]={textureFormat:fs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ht]},t[h_]={textureFormat:zm,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[m_]},t[l_]={textureFormat:zm,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[p_]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const a=r.type[o];r.bytesPerElementMap[a]=i})}),Oh=t}return Oh[e]}function b_(e,t){const n=Sc(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function So(e){const t=Sc(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function Zm(e){return(e&e-1)===0}function y_(e,t,n,r){if(!wo(e))return Zm(t)&&Zm(n);const i=Sc(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function w_(e){const t=Sc(e);if(!t)throw"unknown internal format";return t.textureFilterable}function Ym(e,t,n){return xo(t)?Th(t):n||Ne}function Dc(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(t===Jn?6:1));o%1===0?(n=o,r=o):(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 Do(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(fI,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(lI,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(hI,t.flipY)}function qm(e){e.pixelStorei(zh,4),wo(e)&&(e.pixelStorei(Om,0),e.pixelStorei(Pm,0),e.pixelStorei(Um,0),e.pixelStorei(jm,0),e.pixelStorei(Gm,0))}function x_(e,t,n,r){r.minMag&&(n.call(e,t,kh,r.minMag),n.call(e,t,Lh,r.minMag)),r.min&&n.call(e,t,kh,r.min),r.mag&&n.call(e,t,Lh,r.mag),r.wrap&&(n.call(e,t,wc,r.wrap),n.call(e,t,xc,r.wrap),(t===Ir||BD(e,t))&&n.call(e,t,Rm,r.wrap)),r.wrapR&&n.call(e,t,Rm,r.wrapR),r.wrapS&&n.call(e,t,wc,r.wrapS),r.wrapT&&n.call(e,t,xc,r.wrapT),r.minLod&&n.call(e,t,aI,r.minLod),r.maxLod&&n.call(e,t,sI,r.maxLod),r.baseLevel&&n.call(e,t,uI,r.baseLevel),r.maxLevel&&n.call(e,t,cI,r.maxLevel)}function Wm(e,t,n){const r=n.target||Kn;e.bindTexture(r,t),x_(e,r,e.texParameteri,n)}function A_(e){return e=e||Dr.textureColor,xo(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Ph(e,t,n,r,i,o){n=n||Dr.textureOptions,o=o||Te;const a=n.target||Kn;if(r=r||n.width,i=i||n.height,e.bindTexture(a,t),y_(e,r,i,o))e.generateMipmap(a);else{const s=w_(o)?eI:$D;e.texParameteri(a,kh,s),e.texParameteri(a,Lh,s),e.texParameteri(a,wc,bc),e.texParameteri(a,xc,bc)}}function hs(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function Uh(e,t){return t=t||{},t.cubeFaceOrder||[yc,tI,nI,rI,iI,oI]}function jh(e,t){const r=Uh(e,t).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function Xm(e,t,n,r){r=r||Dr.textureOptions;const i=r.target||Kn,o=r.level||0;let a=n.width,s=n.height;const c=r.internalFormat||r.format||Te,u=So(c),f=r.format||u.format,l=r.type||u.type;if(Do(e,r),e.bindTexture(i,t),i===Jn){const h=n.width,d=n.height;let p,b;if(h/6===d)p=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=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 x=Bm();x?(x.canvas.width=p,x.canvas.height=p,a=p,s=p,jh(e,r).forEach(function(A){const D=b[A.ndx*2+0]*p,_=b[A.ndx*2+1]*p;x.drawImage(n,D,_,p,p,0,0,p,p),e.texImage2D(A.face,o,c,f,l,x.canvas)}),x.canvas.width=1,x.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,jh(e,r).forEach(function(A){const D=b[A.ndx*2+0]*p,_=b[A.ndx*2+1]*p;e.texImage2D(A.face,o,c,p,p,0,f,l,null),createImageBitmap(n,D,_,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){Do(e,r),e.bindTexture(i,t),e.texImage2D(A.face,o,c,f,l,C),hs(r)&&Ph(e,t,r,a,s,c)})}))}else if(i===Ir||i===_r){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const b=n.width===d?1:0,x=n.height===d?1:0;e.pixelStorei(zh,1),e.pixelStorei(Om,n.width),e.pixelStorei(Pm,0),e.pixelStorei(Gm,0),e.texImage3D(i,o,c,h,h,h,0,f,l,null);for(let A=0;A<p;++A){const D=A*h*b,_=A*h*x;e.pixelStorei(Um,D),e.pixelStorei(jm,_),e.texSubImage3D(i,o,0,0,A,h,h,1,f,l,n)}qm(e)}else e.texImage2D(i,o,c,f,l,n);hs(r)&&Ph(e,t,r,a,s,c),Wm(e,t,r)}function ds(){}function v_(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}else{const t=new URL(location.href).origin;return new URL(e,location.href).origin===t}}function E_(e,t){return t===void 0&&!v_(e)?"anonymous":t}function C_(e,t,n){n=n||ds;let r;if(t=t!==void 0?t:Dr.crossOrigin,t=E_(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",a),r=null},o=function(){const c="couldn't load image: "+e;TD(c),n(c,r),i()},a=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",a),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,o;const a=function(){n(i,o)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(c){if(!c.ok)throw c;return c.blob()}).then(function(c){return createImageBitmap(c,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(c){o=c,setTimeout(a)}).catch(function(c){i=c,setTimeout(a)}),r=null}return r}function Km(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Gh(e,t,n){return Km(e)?(setTimeout(function(){n(null,e)}),e):C_(e,t,n)}function Hh(e,t,n){n=n||Dr.textureOptions;const r=n.target||Kn;if(e.bindTexture(r,t),n.color===!1)return;const i=A_(n.color);if(r===Jn)for(let o=0;o<6;++o)e.texImage2D(yc+o,0,Te,1,1,0,Te,Ne,i);else r===Ir||r===_r?e.texImage3D(r,0,Te,1,1,1,0,Te,Ne,i):e.texImage2D(r,0,Te,1,1,0,Te,Ne,i)}function S_(e,t,n,r){return r=r||ds,n=n||Dr.textureOptions,Hh(e,t,n),n=Object.assign({},n),Gh(n.src,n.crossOrigin,function(o,a){o?r(o,t,a):(Xm(e,t,a,n),r(null,t,a))})}function D_(e,t,n,r){r=r||ds;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,a=n.internalFormat||n.format||Te,s=So(a),c=n.format||s.format,u=n.type||Ne,f=n.target||Kn;if(f!==Jn)throw"target must be TEXTURE_CUBE_MAP";Hh(e,t,n),n=Object.assign({},n);let l=6;const h=[],d=Uh(e,n);let p;function b(x){return function(A,D){--l,A?h.push(A):D.width!==D.height?h.push("cubemap face img is not a square: "+D.src):(Do(e,n),e.bindTexture(f,t),l===5?Uh().forEach(function(_){e.texImage2D(_,o,a,c,u,D)}):e.texImage2D(x,o,a,c,u,D),hs(n)&&e.generateMipmap(f)),l===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(x,A){return Gh(x,n.crossOrigin,b(d[A]))})}function I_(e,t,n,r){r=r||ds;const i=n.src,o=n.internalFormat||n.format||Te,a=So(o),s=n.format||a.format,c=n.type||Ne,u=n.target||_r;if(u!==Ir&&u!==_r)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Hh(e,t,n),n=Object.assign({},n);let f=i.length;const l=[];let h;const d=n.level||0;let p=n.width,b=n.height;const x=i.length;let A=!0;function D(_){return function(C,T){if(--f,C)l.push(C);else{if(Do(e,n),e.bindTexture(u,t),A){A=!1,p=n.width||T.width,b=n.height||T.height,e.texImage3D(u,d,o,p,b,x,0,s,c,null);for(let B=0;B<x;++B)e.texSubImage3D(u,d,0,0,B,p,b,1,s,c,T)}else{let B=T,S;(T.width!==p||T.height!==b)&&(S=Bm(),B=S.canvas,S.canvas.width=p,S.canvas.height=b,S.drawImage(T,0,0,p,b)),e.texSubImage3D(u,d,0,0,_,p,b,1,s,c,B),S&&B===S.canvas&&(S.canvas.width=0,S.canvas.height=0)}hs(n)&&e.generateMipmap(u)}f===0&&r(l.length?l:void 0,t,h)}}h=i.map(function(_,C){return Gh(_,n.crossOrigin,D(C))})}function Jm(e,t,n,r){r=r||Dr.textureOptions;const i=r.target||Kn;e.bindTexture(i,t);let o=r.width,a=r.height,s=r.depth;const c=r.level||0,u=r.internalFormat||r.format||Te,f=So(u),l=r.format||f.format,h=r.type||Ym(e,n,f.type);if(xo(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const x=MD(h);n=new x(n)}const d=b_(u,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+Fh(e,l);let b;if(i===Ir||i===_r)if(!o&&!a&&!s){const x=Math.cbrt(p);if(x%1!==0)throw"can't guess cube size of array of numElements: "+p;o=x,a=x,s=x}else o&&(!a||!s)?(b=Dc(e,i,a,s,p/o),a=b.width,s=b.height):a&&(!o||!s)?(b=Dc(e,i,o,s,p/a),o=b.width,s=b.height):(b=Dc(e,i,o,a,p/s),o=b.width,a=b.height);else b=Dc(e,i,o,a,p),o=b.width,a=b.height;if(qm(e),e.pixelStorei(zh,r.unpackAlignment||1),Do(e,r),i===Jn){const x=d/n.BYTES_PER_ELEMENT,A=p/6*x;jh(e,r).forEach(D=>{const _=A*D.ndx,C=n.subarray(_,_+A);e.texImage2D(D.face,c,u,o,a,0,l,h,C)})}else i===Ir||i===_r?e.texImage3D(i,c,u,o,a,s,0,l,h,n):e.texImage2D(i,c,u,o,a,0,l,h,n);return{width:o,height:a,depth:s,type:h}}function __(e,t,n){const r=n.target||Kn;e.bindTexture(r,t);const i=n.level||0,o=n.internalFormat||n.format||Te,a=So(o),s=n.format||a.format,c=n.type||a.type;if(Do(e,n),r===Jn)for(let u=0;u<6;++u)e.texImage2D(yc+u,i,o,n.width,n.height,0,s,c,null);else r===Ir||r===_r?e.texImage3D(r,i,o,n.width,n.height,n.depth,0,s,c,null):e.texImage2D(r,i,o,n.width,n.height,0,s,c,null)}function gs(e,t,n){n=n||ds,t=t||Dr.textureOptions;const r=e.createTexture(),i=t.target||Kn;let o=t.width||1,a=t.height||1;const s=t.internalFormat||Te;e.bindTexture(i,r),i===Jn&&(e.texParameteri(i,wc,bc),e.texParameteri(i,xc,bc));let c=t.src;if(c)if(typeof c=="function"&&(c=c(e,t)),typeof c=="string")S_(e,r,t,n);else if(xo(c)||Array.isArray(c)&&(typeof c[0]=="number"||Array.isArray(c[0])||xo(c[0]))){const u=Jm(e,r,c,t);o=u.width,a=u.height}else Array.isArray(c)&&(typeof c[0]=="string"||Km(c[0]))?i===Jn?D_(e,r,t,n):I_(e,r,t,n):(Xm(e,r,c,t),o=c.width,a=c.height);else __(e,r,t);return hs(t)&&Ph(e,r,t,o,a,s),Wm(e,r,t),r}function M_(e,t,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||Kn;e.bindTexture(a,t);const s=n.level||0,c=n.internalFormat||n.format||Te,u=So(c),f=n.format||u.format;let l;const h=n.src;if(h&&(xo(h)||Array.isArray(h)&&typeof h[0]=="number")?l=n.type||Ym(e,h,u.type):l=n.type||u.type,a===Jn)for(let d=0;d<6;++d)e.texImage2D(yc+d,s,c,r,i,0,f,l,null);else a===Ir||a===_r?e.texImage3D(a,s,c,r,i,o,0,f,l,null):e.texImage2D(a,s,c,r,i,0,f,l,null)}const T_=Cm,Ic=33984,N_=35048,_c=34962,B_=34963,Qh=35345,$m=35718,F_=35721,k_=35971,L_=35382,z_=35396,R_=35398,O_=35392,P_=35395,Mc=5126,eb=35664,tb=35665,nb=35666,Vh=5124,rb=35667,ib=35668,ob=35669,ab=35670,sb=35671,ub=35672,cb=35673,fb=35674,lb=35675,hb=35676,U_=35678,j_=35680,G_=35679,H_=35682,Q_=35685,V_=35686,Z_=35687,Y_=35688,q_=35689,W_=35690,X_=36289,K_=36292,J_=36293,Zh=5125,db=36294,gb=36295,pb=36296,$_=36298,e8=36299,t8=36300,n8=36303,r8=36306,i8=36307,o8=36308,a8=36311,Tc=3553,Nc=34067,Yh=32879,Bc=35866,J={};function mb(e,t){return J[t].bindPoint}function s8(e,t){return function(n){e.uniform1f(t,n)}}function u8(e,t){return function(n){e.uniform1fv(t,n)}}function c8(e,t){return function(n){e.uniform2fv(t,n)}}function f8(e,t){return function(n){e.uniform3fv(t,n)}}function l8(e,t){return function(n){e.uniform4fv(t,n)}}function bb(e,t){return function(n){e.uniform1i(t,n)}}function yb(e,t){return function(n){e.uniform1iv(t,n)}}function wb(e,t){return function(n){e.uniform2iv(t,n)}}function xb(e,t){return function(n){e.uniform3iv(t,n)}}function Ab(e,t){return function(n){e.uniform4iv(t,n)}}function h8(e,t){return function(n){e.uniform1ui(t,n)}}function d8(e,t){return function(n){e.uniform1uiv(t,n)}}function g8(e,t){return function(n){e.uniform2uiv(t,n)}}function p8(e,t){return function(n){e.uniform3uiv(t,n)}}function m8(e,t){return function(n){e.uniform4uiv(t,n)}}function b8(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function y8(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function w8(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function x8(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function A8(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function v8(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function E8(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function C8(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function S8(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function pt(e,t,n,r){const i=mb(e,t);return wo(e)?function(o){let a,s;mc(e,o)?(a=o,s=null):(a=o.texture,s=o.sampler),e.uniform1i(r,n),e.activeTexture(Ic+n),e.bindTexture(i,a),e.bindSampler(n,s)}:function(o){e.uniform1i(r,n),e.activeTexture(Ic+n),e.bindTexture(i,o)}}function mt(e,t,n,r,i){const o=mb(e,t),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return wo(e)?function(s){e.uniform1iv(r,a),s.forEach(function(c,u){e.activeTexture(Ic+a[u]);let f,l;mc(e,c)?(f=c,l=null):(f=c.texture,l=c.sampler),e.bindSampler(n,l),e.bindTexture(o,f)})}:function(s){e.uniform1iv(r,a),s.forEach(function(c,u){e.activeTexture(Ic+a[u]),e.bindTexture(o,c)})}}J[Mc]={Type:Float32Array,size:4,setter:s8,arraySetter:u8},J[eb]={Type:Float32Array,size:8,setter:c8,cols:2},J[tb]={Type:Float32Array,size:12,setter:f8,cols:3},J[nb]={Type:Float32Array,size:16,setter:l8,cols:4},J[Vh]={Type:Int32Array,size:4,setter:bb,arraySetter:yb},J[rb]={Type:Int32Array,size:8,setter:wb,cols:2},J[ib]={Type:Int32Array,size:12,setter:xb,cols:3},J[ob]={Type:Int32Array,size:16,setter:Ab,cols:4},J[Zh]={Type:Uint32Array,size:4,setter:h8,arraySetter:d8},J[db]={Type:Uint32Array,size:8,setter:g8,cols:2},J[gb]={Type:Uint32Array,size:12,setter:p8,cols:3},J[pb]={Type:Uint32Array,size:16,setter:m8,cols:4},J[ab]={Type:Uint32Array,size:4,setter:bb,arraySetter:yb},J[sb]={Type:Uint32Array,size:8,setter:wb,cols:2},J[ub]={Type:Uint32Array,size:12,setter:xb,cols:3},J[cb]={Type:Uint32Array,size:16,setter:Ab,cols:4},J[fb]={Type:Float32Array,size:32,setter:b8,rows:2,cols:2},J[lb]={Type:Float32Array,size:48,setter:y8,rows:3,cols:3},J[hb]={Type:Float32Array,size:64,setter:w8,rows:4,cols:4},J[Q_]={Type:Float32Array,size:32,setter:x8,rows:2,cols:3},J[V_]={Type:Float32Array,size:32,setter:v8,rows:2,cols:4},J[Z_]={Type:Float32Array,size:48,setter:A8,rows:3,cols:2},J[Y_]={Type:Float32Array,size:48,setter:C8,rows:3,cols:4},J[q_]={Type:Float32Array,size:64,setter:E8,rows:4,cols:2},J[W_]={Type:Float32Array,size:64,setter:S8,rows:4,cols:3},J[U_]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Tc},J[j_]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Nc},J[G_]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Yh},J[H_]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Tc},J[X_]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Bc},J[K_]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Bc},J[J_]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Nc},J[$_]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Tc},J[e8]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Yh},J[t8]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Nc},J[n8]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Bc},J[r8]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Tc},J[i8]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Yh},J[o8]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Nc},J[a8]={Type:null,size:0,setter:pt,arraySetter:mt,bindPoint:Bc};function Fc(e,t){return function(n){if(n.value)switch(e.disableVertexAttribArray(t),n.value.length){case 4:e.vertexAttrib4fv(t,n.value);break;case 3:e.vertexAttrib3fv(t,n.value);break;case 2:e.vertexAttrib2fv(t,n.value);break;case 1:e.vertexAttrib1fv(t,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(_c,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||Mc,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Tr(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4iv(t,n.value);else throw new Error("The length of an integer constant value must be 4!");else e.bindBuffer(_c,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Vh,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function kc(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4uiv(t,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else e.bindBuffer(_c,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Zh,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function qh(e,t,n){const r=n.size,i=n.count;return function(o){e.bindBuffer(_c,o.buffer);const a=o.size||o.numComponents||r,s=a/i,c=o.type||Mc,f=J[c].size*a,l=o.normalize||!1,h=o.offset||0,d=f/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,c,l,f,h+d*p),o.divisor!==void 0&&e.vertexAttribDivisor(t+p,o.divisor)}}const Ge={};Ge[Mc]={size:4,setter:Fc},Ge[eb]={size:8,setter:Fc},Ge[tb]={size:12,setter:Fc},Ge[nb]={size:16,setter:Fc},Ge[Vh]={size:4,setter:Tr},Ge[rb]={size:8,setter:Tr},Ge[ib]={size:12,setter:Tr},Ge[ob]={size:16,setter:Tr},Ge[Zh]={size:4,setter:kc},Ge[db]={size:8,setter:kc},Ge[gb]={size:12,setter:kc},Ge[pb]={size:16,setter:kc},Ge[ab]={size:4,setter:Tr},Ge[sb]={size:8,setter:Tr},Ge[ub]={size:12,setter:Tr},Ge[cb]={size:16,setter:Tr},Ge[fb]={size:4,setter:qh,count:2},Ge[lb]={size:9,setter:qh,count:3},Ge[hb]={size:16,setter:qh,count:4};function vb(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const D8=/(\.|\[|]|\w+)/g,I8=e=>e>="0"&&e<="9";function Eb(e,t,n,r){const i=e.split(D8).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const c=I8(s[0]),u=c?parseInt(s):s;if(c&&(a+=i[o++]),o===i.length){n[u]=t;break}else{const l=i[o++],h=l==="[",d=n[u]||(h?[]:{});n[u]=d,n=d,r[a]=r[a]||function(p){return function(b){_b(p,b)}}(d),a+=l}}}function _8(e,t){let n=0;function r(s,c,u){const f=c.name.endsWith("[0]"),l=c.type,h=J[l];if(!h)throw new Error(`unknown type: 0x${l.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=c.size,f?d=h.arraySetter(e,l,p,u,c.size):d=h.setter(e,l,p,u,c.size)}else h.arraySetter&&f?d=h.arraySetter(e,u):d=h.setter(e,u);return d.location=u,d}const i={},o={},a=e.getProgramParameter(t,$m);for(let s=0;s<a;++s){const c=e.getActiveUniform(t,s);if(vb(c))continue;let u=c.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const f=e.getUniformLocation(t,c.name);if(f){const l=r(t,c,f);i[u]=l,Eb(u,l,o,i)}}return i}function M8(e,t){const n={},r=e.getProgramParameter(t,k_);for(let i=0;i<r;++i){const o=e.getTransformFeedbackVarying(t,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function T8(e,t){const n=e.getProgramParameter(t,$m),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const c=e.getActiveUniform(t,s);r[s].name=c.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const c=s[0],u=s[1];e.getActiveUniforms(t,i,e[c]).forEach(function(f,l){r[l][u]=f})});const o={},a=e.getProgramParameter(t,L_);for(let s=0;s<a;++s){const c=e.getActiveUniformBlockName(t,s),u={index:e.getUniformBlockIndex(t,c),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,z_),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,R_),size:e.getActiveUniformBlockParameter(t,s,O_),uniformIndices:e.getActiveUniformBlockParameter(t,s,P_)};u.used=u.usedByVertexShader||u.usedByFragmentShader,o[c]=u}return{blockSpecs:o,uniformData:r}}const Cb=/\[\d+\]\.$/,N8=(e,t)=>((e+(t-1))/t|0)*t;function B8(e,t,n,r){if(t||n){r=r||1;const o=e.length/4;return function(a){let s=0,c=0;for(let u=0;u<o;++u){for(let f=0;f<r;++f)e[s++]=a[c++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function F8(e,t,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return T_("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),c=e.createBuffer(),u=a.index;e.bindBuffer(Qh,c),e.uniformBlockBinding(t,a.index,u);let f=r+".";Cb.test(f)&&(f=f.replace(Cb,"."));const l={},h={},d={};return a.uniformIndices.forEach(function(p){const b=o[p];let x=b.name;x.startsWith(f)&&(x=x.substr(f.length));const A=x.endsWith("[0]");A&&(x=x.substr(0,x.length-3));const D=J[b.type],_=D.Type,C=A?N8(D.size,16)*b.size:D.size*b.size,T=new _(s,b.offset,C/_.BYTES_PER_ELEMENT);l[x]=T;const B=B8(T,A,D.rows,D.cols);h[x]=B,Eb(x,B,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:c,uniforms:l,setters:h}}function Sb(e,t,n){return F8(e,t.program,t.uniformBlockSpec,n)}function k8(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const o=i.index;return e.bindBufferRange(Qh,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Db(e,t,n){k8(e,t,n)&&e.bufferData(Qh,n.array,N_)}function Ib(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const o=t[r];i(o)}}}function _b(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):_b(e[n],t[n])}}function Ft(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const o=t[i];if(Array.isArray(o)){const a=o.length;for(let s=0;s<a;++s)Ft(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function L8(e,t){const n={},r=e.getProgramParameter(t,F_);for(let i=0;i<r;++i){const o=e.getActiveAttrib(t,i);if(vb(o))continue;const a=e.getAttribLocation(t,o.name),s=Ge[o.type],c=s.setter(e,a,s);c.location=a,n[o.name]=c}return n}function z8(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Io(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(z8(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(B_,n.indices))}function R8(e,t){const n=_8(e,t),r=L8(e,t),i={program:t,uniformSetters:n,attribSetters:r};return wo(e)&&(i.uniformBlockSpec=T8(e,t),i.transformFeedbackInfo=M8(e,t)),i}const O8=4,Mb=5123;function ps(e,t,n,r,i,o){n=n===void 0?O8:n;const a=t.indices,s=t.elementType,c=r===void 0?t.numElements:r;i=i===void 0?0:i,s||a?o!==void 0?e.drawElementsInstanced(n,c,s===void 0?Mb:t.elementType,i,o):e.drawElements(n,c,s===void 0?Mb:t.elementType,i):o!==void 0?e.drawArraysInstanced(n,i,c,o):e.drawArrays(n,i,c)}const P8=36160,Ci=36161,U8=3553,j8=5121,G8=6402,H8=6408,Q8=33190,V8=36012,Z8=35056,Y8=36013,q8=32854,W8=32855,X8=36194,Tb=33189,Nb=6401,Bb=36168,Wh=34041,K8=36064,Lc=36096,Fb=36128,Xh=33306,Kh=33071,Jh=9729,kb=[{format:H8,type:j8,min:Jh,wrap:Kh},{format:Wh}],dn={};dn[Wh]=Xh,dn[Nb]=Fb,dn[Bb]=Fb,dn[G8]=Lc,dn[Tb]=Lc,dn[Q8]=Lc,dn[V8]=Lc,dn[Z8]=Xh,dn[Y8]=Xh;function J8(e,t){return dn[e]||dn[t]}const Nr={};Nr[q8]=!0,Nr[W8]=!0,Nr[X8]=!0,Nr[Wh]=!0,Nr[Tb]=!0,Nr[Nb]=!0,Nr[Bb]=!0;function $8(e){return Nr[e]}function eM(e,t,n,r){const i=P8,o=e.createFramebuffer();e.bindFramebuffer(i,o),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||kb;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return t.forEach(function(c){let u=c.attachment;const f=c.samples,l=c.format;let h=c.attachmentPoint||J8(l,c.internalFormat);if(h||(h=K8+a++),!u)if(f!==void 0||$8(l))u=e.createRenderbuffer(),e.bindRenderbuffer(Ci,u),f>1?e.renderbufferStorageMultisample(Ci,f,l,n,r):e.renderbufferStorage(Ci,l,n,r);else{const d=Object.assign({},c);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||Jh,d.mag=d.mag||d.minMag||Jh,d.wrapS=d.wrapS||d.wrap||Kh,d.wrapT=d.wrapT||d.wrap||Kh),u=gs(e,d)}if(Sm(e,u))e.framebufferRenderbuffer(i,h,Ci,u);else if(mc(e,u))c.layer!==void 0?e.framebufferTextureLayer(i,h,u,c.level||0,c.layer):e.framebufferTexture2D(i,h,c.target||U8,u,c.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function tM(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||kb,n.forEach(function(o,a){const s=t.attachments[a],c=o.format,u=o.samples;if(u!==void 0||Sm(e,s))e.bindRenderbuffer(Ci,s),u>1?e.renderbufferStorageMultisample(Ci,u,c,r,i):e.renderbufferStorage(Ci,c,r,i);else if(mc(e,s))M_(e,s,o,r,i);else throw new Error("unknown attachment type")})}function nM(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Io(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const rM=/^(.*?)_/;function iM(e,t){Fh(e,0);const n=e.getExtension(t);if(n){const r={},i=rM.exec(t)[1],o="_"+i;for(const a in n){const s=n[a],c=typeof s=="function",u=c?i:o;let f=a;a.endsWith(u)&&(f=a.substring(0,a.length-u.length)),e[f]!==void 0?!c&&e[f]!==s&&Cm(f,e[f],s,a):c?e[f]=function(l){return function(){return l.apply(n,arguments)}}(s):(e[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},Fh(r,0)}return n}const Lb=["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 zb(e){for(let t=0;t<Lb.length;++t)iM(e,Lb[t])}function oM(e,t){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=e.getContext(n[i],t),r){zb(r);break}return r}function aM(e,t){return oM(e,t)}const sM=`/***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 Qh=5120,ms=5121,Vh=5122,Zh=5123,Yh=5124,Wh=5125,qh=5126,WD=32819,qD=32820,XD=33635,KD=5131,JD=33640,$D=35899,eI=35902,tI=36269,nI=34042,Qm={};{const e=Qm;e[Qh]=Int8Array,e[ms]=Uint8Array,e[Vh]=Int16Array,e[Zh]=Uint16Array,e[Yh]=Int32Array,e[Wh]=Uint32Array,e[qh]=Float32Array,e[WD]=Uint16Array,e[qD]=Uint16Array,e[XD]=Uint16Array,e[KD]=Uint16Array,e[JD]=Uint32Array,e[$D]=Uint32Array,e[eI]=Uint32Array,e[tI]=Uint32Array,e[nI]=Uint32Array}function Xh(e){if(e instanceof Int8Array)return Qh;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return ms;if(e instanceof Int16Array)return Vh;if(e instanceof Uint16Array)return Zh;if(e instanceof Int32Array)return Yh;if(e instanceof Uint32Array)return Wh;if(e instanceof Float32Array)return qh;throw new Error("unsupported typed array type")}function rI(e){if(e===Int8Array)return Qh;if(e===Uint8Array||e===Uint8ClampedArray)return ms;if(e===Int16Array)return Vh;if(e===Uint16Array)return Zh;if(e===Int32Array)return Yh;if(e===Uint32Array)return Wh;if(e===Float32Array)return qh;throw new Error("unsupported typed array type")}function iI(e){const t=Qm[e];if(!t)throw new Error("unknown gl type");return t}const _c=typeof SharedArrayBuffer<"u"?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function aI(...e){console.error(...e)}function Vm(...e){console.warn(...e)}function oI(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function Zm(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function Mc(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function sI(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const Ym=35044,Bn=34962,uI=34963,cI=34660,fI=5120,lI=5121,hI=5122,dI=5123,gI=5124,pI=5125,mI=5126,Wm={attribPrefix:""};function qm(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||Ym)}function Xm(e,t,n,r){if(oI(e,t))return t;n=n||Bn;const i=e.createBuffer();return qm(e,n,i,t,r),i}function Km(e){return e==="indices"}function bI(e){return e instanceof Int8Array||e instanceof Uint8Array}function yI(e){return e===Int8Array||e===Uint8Array}function wI(e){return e.length?e:e.data}const xI=/coord|texture/i,AI=/color|colour/i;function Jm(e,t){let n;if(xI.test(e)?n=2:AI.test(e)?n=4:n=3,t%n>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);return n}function vI(e,t){return e.numComponents||e.size||Jm(t,wI(e).length)}function Kh(e,t){if(_c(e))return e;if(_c(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(Km(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function EI(e,t){const n={};return Object.keys(t).forEach(function(r){if(!Km(r)){const i=t[r],a=i.attrib||i.name||i.attribName||Wm.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!_c(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,c,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,u=i.numComponents||i.size,s=i.type,c=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,l=i.type||Float32Array,h=f*l.BYTES_PER_ELEMENT;s=rI(l),c=i.normalize!==void 0?i.normalize:yI(l),u=i.numComponents||i.size||Jm(r,f),o=e.createBuffer(),e.bindBuffer(Bn,o),e.bufferData(Bn,h,i.drawType||Ym)}else{const f=Kh(i,r);o=Xm(e,f,void 0,i.drawType),s=Xh(f),c=i.normalize!==void 0?i.normalize:bI(f),u=vI(i,r)}n[a]={buffer:o,numComponents:u,type:s,normalize:c,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Bn,null),n}function CI(e,t,n,r){n=Kh(n),r!==void 0?(e.bindBuffer(Bn,t.buffer),e.bufferSubData(Bn,r,n)):qm(e,Bn,t.buffer,n,t.drawType)}function SI(e,t){return t===fI||t===lI?1:t===hI||t===dI?2:t===gI||t===pI||t===mI?4:0}const Jh=["position","positions","a_position"];function DI(e,t){let n,r;for(r=0;r<Jh.length&&(n=Jh[r],!(n in t||(n=Wm.attribPrefix+n,n in t)));++r);r===Jh.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Bn,i.buffer);const a=e.getBufferParameter(Bn,cI);e.bindBuffer(Bn,null);const o=SI(e,i.type),s=a/o,c=i.numComponents||i.size,u=s/c;if(u%1!==0)throw new Error(`numComponents ${c} not correct for length ${length}`);return u}function II(e,t,n){const r=EI(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=Kh(a,"indices");i.indices=Xm(e,o,uI),i.numElements=o.length,i.elementType=Xh(o)}else i.numElements||(i.numElements=DI(e,i.attribs));return i}function va(e){return!!e.texStorage2D}const $h=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const a in r)if(typeof r[a]=="number"){const o=t[r[a]];t[r[a]]=o?`${o} | ${a}`:a}e[i]=!0}}return function(i,a){return n(i),t[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),Nr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Ea=_c,$m=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),eb=6406,Fn=6407,Ne=6408,tb=6409,nb=6410,bs=6402,rb=34041,Tc=33071,_I=9728,MI=9729,Jn=3553,$n=34067,Br=32879,Fr=35866,Nc=34069,TI=34070,NI=34071,BI=34072,FI=34073,kI=34074,e0=10241,t0=10240,Bc=10242,Fc=10243,ib=32882,LI=33082,zI=33083,RI=33084,OI=33085,n0=3317,ab=3314,ob=32878,sb=3316,ub=3315,cb=32877,PI=37443,UI=37441,jI=37440,GI=33321,HI=36756,QI=33325,VI=33326,ZI=33330,YI=33329,WI=33338,qI=33337,XI=33340,KI=33339,JI=33323,$I=36757,e8=33327,t8=33328,n8=33336,r8=33335,i8=33332,a8=33331,o8=33334,s8=33333,u8=32849,c8=35905,f8=36194,l8=36758,h8=35898,d8=35901,g8=34843,p8=34837,m8=36221,b8=36239,y8=36215,w8=36233,x8=36209,A8=36227,v8=32856,E8=35907,C8=36759,S8=32855,D8=32854,I8=32857,_8=34842,M8=34836,T8=36220,N8=36238,B8=36975,F8=36214,k8=36232,L8=36226,z8=36208,R8=33189,O8=33190,P8=36012,U8=36013,j8=35056,kr=5120,Be=5121,kc=5122,Ca=5123,Lc=5124,Si=5125,ht=5126,fb=32819,lb=32820,hb=33635,gn=5131,ys=36193,r0=33640,G8=35899,H8=35902,Q8=36269,V8=34042,zc=33319,Sa=33320,Rc=6403,Da=36244,Ia=36248,Di=36249;let i0;function Oc(e){if(!i0){const t={};t[eb]={textureFormat:eb,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Be,gn,ys,ht]},t[tb]={textureFormat:tb,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Be,gn,ys,ht]},t[nb]={textureFormat:nb,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Be,gn,ys,ht]},t[Fn]={textureFormat:Fn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Be,gn,ys,ht,hb]},t[Ne]={textureFormat:Ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Be,gn,ys,ht,fb,lb]},t[bs]={textureFormat:bs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Si,Ca]},t[GI]={textureFormat:Rc,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Be]},t[HI]={textureFormat:Rc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[kr]},t[QI]={textureFormat:Rc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[ht,gn]},t[VI]={textureFormat:Rc,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[ht]},t[ZI]={textureFormat:Da,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Be]},t[YI]={textureFormat:Da,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[kr]},t[i8]={textureFormat:Da,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ca]},t[a8]={textureFormat:Da,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[kc]},t[o8]={textureFormat:Da,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Si]},t[s8]={textureFormat:Da,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Lc]},t[JI]={textureFormat:zc,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Be]},t[$I]={textureFormat:zc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[kr]},t[e8]={textureFormat:zc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[ht,gn]},t[t8]={textureFormat:zc,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[ht]},t[n8]={textureFormat:Sa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Be]},t[r8]={textureFormat:Sa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[kr]},t[WI]={textureFormat:Sa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ca]},t[qI]={textureFormat:Sa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[kc]},t[XI]={textureFormat:Sa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Si]},t[KI]={textureFormat:Sa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Lc]},t[u8]={textureFormat:Fn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Be]},t[c8]={textureFormat:Fn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Be]},t[f8]={textureFormat:Fn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Be,hb]},t[l8]={textureFormat:Fn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[kr]},t[h8]={textureFormat:Fn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[ht,gn,G8]},t[d8]={textureFormat:Fn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[ht,gn,H8]},t[g8]={textureFormat:Fn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[ht,gn]},t[p8]={textureFormat:Fn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[ht]},t[m8]={textureFormat:Ia,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Be]},t[b8]={textureFormat:Ia,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[kr]},t[y8]={textureFormat:Ia,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ca]},t[w8]={textureFormat:Ia,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[kc]},t[x8]={textureFormat:Ia,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Si]},t[A8]={textureFormat:Ia,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Lc]},t[v8]={textureFormat:Ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Be]},t[E8]={textureFormat:Ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Be]},t[C8]={textureFormat:Ne,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[kr]},t[S8]={textureFormat:Ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Be,lb,r0]},t[D8]={textureFormat:Ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Be,fb]},t[I8]={textureFormat:Ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[r0]},t[_8]={textureFormat:Ne,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[ht,gn]},t[M8]={textureFormat:Ne,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[ht]},t[T8]={textureFormat:Di,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Be]},t[N8]={textureFormat:Di,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[kr]},t[B8]={textureFormat:Di,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[r0]},t[F8]={textureFormat:Di,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ca]},t[k8]={textureFormat:Di,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[kc]},t[L8]={textureFormat:Di,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Lc]},t[z8]={textureFormat:Di,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Si]},t[R8]={textureFormat:bs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ca,Si]},t[O8]={textureFormat:bs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Si]},t[P8]={textureFormat:bs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ht]},t[j8]={textureFormat:rb,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[V8]},t[U8]={textureFormat:rb,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Q8]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),i0=t}return i0[e]}function Z8(e,t){const n=Oc(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function _a(e){const t=Oc(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function db(e){return(e&e-1)===0}function Y8(e,t,n,r){if(!va(e))return db(t)&&db(n);const i=Oc(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function W8(e){const t=Oc(e);if(!t)throw"unknown internal format";return t.textureFilterable}function gb(e,t,n){return Ea(t)?Xh(t):n||Be}function Pc(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===$n?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 Ma(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(PI,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(UI,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(jI,t.flipY)}function pb(e){e.pixelStorei(n0,4),va(e)&&(e.pixelStorei(ab,0),e.pixelStorei(ob,0),e.pixelStorei(sb,0),e.pixelStorei(ub,0),e.pixelStorei(cb,0))}function q8(e,t,n,r){r.minMag&&(n.call(e,t,e0,r.minMag),n.call(e,t,t0,r.minMag)),r.min&&n.call(e,t,e0,r.min),r.mag&&n.call(e,t,t0,r.mag),r.wrap&&(n.call(e,t,Bc,r.wrap),n.call(e,t,Fc,r.wrap),(t===Br||sI(e,t))&&n.call(e,t,ib,r.wrap)),r.wrapR&&n.call(e,t,ib,r.wrapR),r.wrapS&&n.call(e,t,Bc,r.wrapS),r.wrapT&&n.call(e,t,Fc,r.wrapT),r.minLod&&n.call(e,t,LI,r.minLod),r.maxLod&&n.call(e,t,zI,r.maxLod),r.baseLevel&&n.call(e,t,RI,r.baseLevel),r.maxLevel&&n.call(e,t,OI,r.maxLevel)}function mb(e,t,n){const r=n.target||Jn;e.bindTexture(r,t),q8(e,r,e.texParameteri,n)}function X8(e){return e=e||Nr.textureColor,Ea(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function a0(e,t,n,r,i,a){n=n||Nr.textureOptions,a=a||Ne;const o=n.target||Jn;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),Y8(e,r,i,a))e.generateMipmap(o);else{const s=W8(a)?MI:_I;e.texParameteri(o,e0,s),e.texParameteri(o,t0,s),e.texParameteri(o,Bc,Tc),e.texParameteri(o,Fc,Tc)}}function ws(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function o0(e,t){return t=t||{},t.cubeFaceOrder||[Nc,TI,NI,BI,FI,kI]}function s0(e,t){const r=o0(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function bb(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||Jn,a=r.level||0;let o=n.width,s=n.height;const c=r.internalFormat||r.format||Ne,u=_a(c),f=r.format||u.format,l=r.type||u.type;if(Ma(e,r),e.bindTexture(i,t),i===$n){const h=n.width,d=n.height;let p,b;if(h/6===d)p=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=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 x=$m();x?(x.canvas.width=p,x.canvas.height=p,o=p,s=p,s0(e,r).forEach(function(A){const D=b[A.ndx*2+0]*p,_=b[A.ndx*2+1]*p;x.drawImage(n,D,_,p,p,0,0,p,p),e.texImage2D(A.face,a,c,f,l,x.canvas)}),x.canvas.width=1,x.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,s0(e,r).forEach(function(A){const D=b[A.ndx*2+0]*p,_=b[A.ndx*2+1]*p;e.texImage2D(A.face,a,c,p,p,0,f,l,null),createImageBitmap(n,D,_,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){Ma(e,r),e.bindTexture(i,t),e.texImage2D(A.face,a,c,f,l,C),ws(r)&&a0(e,t,r,o,s,c)})}))}else if(i===Br||i===Fr){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const b=n.width===d?1:0,x=n.height===d?1:0;e.pixelStorei(n0,1),e.pixelStorei(ab,n.width),e.pixelStorei(ob,0),e.pixelStorei(cb,0),e.texImage3D(i,a,c,h,h,h,0,f,l,null);for(let A=0;A<p;++A){const D=A*h*b,_=A*h*x;e.pixelStorei(sb,D),e.pixelStorei(ub,_),e.texSubImage3D(i,a,0,0,A,h,h,1,f,l,n)}pb(e)}else e.texImage2D(i,a,c,f,l,n);ws(r)&&a0(e,t,r,o,s,c),mb(e,t,r)}function xs(){}function K8(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}else{const t=new URL(location.href).origin;return new URL(e,location.href).origin===t}}function J8(e,t){return t===void 0&&!K8(e)?"anonymous":t}function $8(e,t,n){n=n||xs;let r;if(t=t!==void 0?t:Nr.crossOrigin,t=J8(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const c="couldn't load image: "+e;aI(c),n(c,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(c){if(!c.ok)throw c;return c.blob()}).then(function(c){return createImageBitmap(c,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(c){a=c,setTimeout(o)}).catch(function(c){i=c,setTimeout(o)}),r=null}return r}function yb(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function u0(e,t,n){return yb(e)?(setTimeout(function(){n(null,e)}),e):$8(e,t,n)}function c0(e,t,n){n=n||Nr.textureOptions;const r=n.target||Jn;if(e.bindTexture(r,t),n.color===!1)return;const i=X8(n.color);if(r===$n)for(let a=0;a<6;++a)e.texImage2D(Nc+a,0,Ne,1,1,0,Ne,Be,i);else r===Br||r===Fr?e.texImage3D(r,0,Ne,1,1,1,0,Ne,Be,i):e.texImage2D(r,0,Ne,1,1,0,Ne,Be,i)}function e_(e,t,n,r){return r=r||xs,n=n||Nr.textureOptions,c0(e,t,n),n=Object.assign({},n),u0(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(bb(e,t,o,n),r(null,t,o))})}function t_(e,t,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||Ne,s=_a(o),c=n.format||s.format,u=n.type||Be,f=n.target||Jn;if(f!==$n)throw"target must be TEXTURE_CUBE_MAP";c0(e,t,n),n=Object.assign({},n);let l=6;const h=[],d=o0(e,n);let p;function b(x){return function(A,D){--l,A?h.push(A):D.width!==D.height?h.push("cubemap face img is not a square: "+D.src):(Ma(e,n),e.bindTexture(f,t),l===5?o0().forEach(function(_){e.texImage2D(_,a,o,c,u,D)}):e.texImage2D(x,a,o,c,u,D),ws(n)&&e.generateMipmap(f)),l===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(x,A){return u0(x,n.crossOrigin,b(d[A]))})}function n_(e,t,n,r){r=r||xs;const i=n.src,a=n.internalFormat||n.format||Ne,o=_a(a),s=n.format||o.format,c=n.type||Be,u=n.target||Fr;if(u!==Br&&u!==Fr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";c0(e,t,n),n=Object.assign({},n);let f=i.length;const l=[];let h;const d=n.level||0;let p=n.width,b=n.height;const x=i.length;let A=!0;function D(_){return function(C,T){if(--f,C)l.push(C);else{if(Ma(e,n),e.bindTexture(u,t),A){A=!1,p=n.width||T.width,b=n.height||T.height,e.texImage3D(u,d,a,p,b,x,0,s,c,null);for(let B=0;B<x;++B)e.texSubImage3D(u,d,0,0,B,p,b,1,s,c,T)}else{let B=T,S;(T.width!==p||T.height!==b)&&(S=$m(),B=S.canvas,S.canvas.width=p,S.canvas.height=b,S.drawImage(T,0,0,p,b)),e.texSubImage3D(u,d,0,0,_,p,b,1,s,c,B),S&&B===S.canvas&&(S.canvas.width=0,S.canvas.height=0)}ws(n)&&e.generateMipmap(u)}f===0&&r(l.length?l:void 0,t,h)}}h=i.map(function(_,C){return u0(_,n.crossOrigin,D(C))})}function wb(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||Jn;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const c=r.level||0,u=r.internalFormat||r.format||Ne,f=_a(u),l=r.format||f.format,h=r.type||gb(e,n,f.type);if(Ea(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const x=iI(h);n=new x(n)}const d=Z8(u,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+$h(e,l);let b;if(i===Br||i===Fr)if(!a&&!o&&!s){const x=Math.cbrt(p);if(x%1!==0)throw"can't guess cube size of array of numElements: "+p;a=x,o=x,s=x}else a&&(!o||!s)?(b=Pc(e,i,o,s,p/a),o=b.width,s=b.height):o&&(!a||!s)?(b=Pc(e,i,a,s,p/o),a=b.width,s=b.height):(b=Pc(e,i,a,o,p/s),a=b.width,o=b.height);else b=Pc(e,i,a,o,p),a=b.width,o=b.height;if(pb(e),e.pixelStorei(n0,r.unpackAlignment||1),Ma(e,r),i===$n){const x=d/n.BYTES_PER_ELEMENT,A=p/6*x;s0(e,r).forEach(D=>{const _=A*D.ndx,C=n.subarray(_,_+A);e.texImage2D(D.face,c,u,a,o,0,l,h,C)})}else i===Br||i===Fr?e.texImage3D(i,c,u,a,o,s,0,l,h,n):e.texImage2D(i,c,u,a,o,0,l,h,n);return{width:a,height:o,depth:s,type:h}}function r_(e,t,n){const r=n.target||Jn;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||Ne,o=_a(a),s=n.format||o.format,c=n.type||o.type;if(Ma(e,n),r===$n)for(let u=0;u<6;++u)e.texImage2D(Nc+u,i,a,n.width,n.height,0,s,c,null);else r===Br||r===Fr?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,c,null):e.texImage2D(r,i,a,n.width,n.height,0,s,c,null)}function As(e,t,n){n=n||xs,t=t||Nr.textureOptions;const r=e.createTexture(),i=t.target||Jn;let a=t.width||1,o=t.height||1;const s=t.internalFormat||Ne;e.bindTexture(i,r),i===$n&&(e.texParameteri(i,Bc,Tc),e.texParameteri(i,Fc,Tc));let c=t.src;if(c)if(typeof c=="function"&&(c=c(e,t)),typeof c=="string")e_(e,r,t,n);else if(Ea(c)||Array.isArray(c)&&(typeof c[0]=="number"||Array.isArray(c[0])||Ea(c[0]))){const u=wb(e,r,c,t);a=u.width,o=u.height}else Array.isArray(c)&&(typeof c[0]=="string"||yb(c[0]))?i===$n?t_(e,r,t,n):n_(e,r,t,n):(bb(e,r,c,t),a=c.width,o=c.height);else r_(e,r,t);return ws(t)&&a0(e,r,t,a,o,s),mb(e,r,t),r}function i_(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||Jn;e.bindTexture(o,t);const s=n.level||0,c=n.internalFormat||n.format||Ne,u=_a(c),f=n.format||u.format;let l;const h=n.src;if(h&&(Ea(h)||Array.isArray(h)&&typeof h[0]=="number")?l=n.type||gb(e,h,u.type):l=n.type||u.type,o===$n)for(let d=0;d<6;++d)e.texImage2D(Nc+d,s,c,r,i,0,f,l,null);else o===Br||o===Fr?e.texImage3D(o,s,c,r,i,a,0,f,l,null):e.texImage2D(o,s,c,r,i,0,f,l,null)}const a_=Vm,Uc=33984,o_=35048,jc=34962,s_=34963,f0=35345,xb=35718,u_=35721,c_=35971,f_=35382,l_=35396,h_=35398,d_=35392,g_=35395,Gc=5126,Ab=35664,vb=35665,Eb=35666,l0=5124,Cb=35667,Sb=35668,Db=35669,Ib=35670,_b=35671,Mb=35672,Tb=35673,Nb=35674,Bb=35675,Fb=35676,p_=35678,m_=35680,b_=35679,y_=35682,w_=35685,x_=35686,A_=35687,v_=35688,E_=35689,C_=35690,S_=36289,D_=36292,I_=36293,h0=5125,kb=36294,Lb=36295,zb=36296,__=36298,M_=36299,T_=36300,N_=36303,B_=36306,F_=36307,k_=36308,L_=36311,Hc=3553,Qc=34067,d0=32879,Vc=35866,$={};function Rb(e,t){return $[t].bindPoint}function z_(e,t){return function(n){e.uniform1f(t,n)}}function R_(e,t){return function(n){e.uniform1fv(t,n)}}function O_(e,t){return function(n){e.uniform2fv(t,n)}}function P_(e,t){return function(n){e.uniform3fv(t,n)}}function U_(e,t){return function(n){e.uniform4fv(t,n)}}function Ob(e,t){return function(n){e.uniform1i(t,n)}}function Pb(e,t){return function(n){e.uniform1iv(t,n)}}function Ub(e,t){return function(n){e.uniform2iv(t,n)}}function jb(e,t){return function(n){e.uniform3iv(t,n)}}function Gb(e,t){return function(n){e.uniform4iv(t,n)}}function j_(e,t){return function(n){e.uniform1ui(t,n)}}function G_(e,t){return function(n){e.uniform1uiv(t,n)}}function H_(e,t){return function(n){e.uniform2uiv(t,n)}}function Q_(e,t){return function(n){e.uniform3uiv(t,n)}}function V_(e,t){return function(n){e.uniform4uiv(t,n)}}function Z_(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function Y_(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function W_(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function q_(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function X_(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function K_(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function J_(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function $_(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function eM(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function mt(e,t,n,r){const i=Rb(e,t);return va(e)?function(a){let o,s;Mc(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(Uc+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(Uc+n),e.bindTexture(i,a)}}function bt(e,t,n,r,i){const a=Rb(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return va(e)?function(s){e.uniform1iv(r,o),s.forEach(function(c,u){e.activeTexture(Uc+o[u]);let f,l;Mc(e,c)?(f=c,l=null):(f=c.texture,l=c.sampler),e.bindSampler(n,l),e.bindTexture(a,f)})}:function(s){e.uniform1iv(r,o),s.forEach(function(c,u){e.activeTexture(Uc+o[u]),e.bindTexture(a,c)})}}$[Gc]={Type:Float32Array,size:4,setter:z_,arraySetter:R_},$[Ab]={Type:Float32Array,size:8,setter:O_,cols:2},$[vb]={Type:Float32Array,size:12,setter:P_,cols:3},$[Eb]={Type:Float32Array,size:16,setter:U_,cols:4},$[l0]={Type:Int32Array,size:4,setter:Ob,arraySetter:Pb},$[Cb]={Type:Int32Array,size:8,setter:Ub,cols:2},$[Sb]={Type:Int32Array,size:12,setter:jb,cols:3},$[Db]={Type:Int32Array,size:16,setter:Gb,cols:4},$[h0]={Type:Uint32Array,size:4,setter:j_,arraySetter:G_},$[kb]={Type:Uint32Array,size:8,setter:H_,cols:2},$[Lb]={Type:Uint32Array,size:12,setter:Q_,cols:3},$[zb]={Type:Uint32Array,size:16,setter:V_,cols:4},$[Ib]={Type:Uint32Array,size:4,setter:Ob,arraySetter:Pb},$[_b]={Type:Uint32Array,size:8,setter:Ub,cols:2},$[Mb]={Type:Uint32Array,size:12,setter:jb,cols:3},$[Tb]={Type:Uint32Array,size:16,setter:Gb,cols:4},$[Nb]={Type:Float32Array,size:32,setter:Z_,rows:2,cols:2},$[Bb]={Type:Float32Array,size:48,setter:Y_,rows:3,cols:3},$[Fb]={Type:Float32Array,size:64,setter:W_,rows:4,cols:4},$[w_]={Type:Float32Array,size:32,setter:q_,rows:2,cols:3},$[x_]={Type:Float32Array,size:32,setter:K_,rows:2,cols:4},$[A_]={Type:Float32Array,size:48,setter:X_,rows:3,cols:2},$[v_]={Type:Float32Array,size:48,setter:$_,rows:3,cols:4},$[E_]={Type:Float32Array,size:64,setter:J_,rows:4,cols:2},$[C_]={Type:Float32Array,size:64,setter:eM,rows:4,cols:3},$[p_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Hc},$[m_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Qc},$[b_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:d0},$[y_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Hc},$[S_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Vc},$[D_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Vc},$[I_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Qc},$[__]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Hc},$[M_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:d0},$[T_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Qc},$[N_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Vc},$[B_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Hc},$[F_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:d0},$[k_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Qc},$[L_]={Type:null,size:0,setter:mt,arraySetter:bt,bindPoint:Vc};function Zc(e,t){return function(n){if(n.value)switch(e.disableVertexAttribArray(t),n.value.length){case 4:e.vertexAttrib4fv(t,n.value);break;case 3:e.vertexAttrib3fv(t,n.value);break;case 2:e.vertexAttrib2fv(t,n.value);break;case 1:e.vertexAttrib1fv(t,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(jc,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||Gc,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Lr(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4iv(t,n.value);else throw new Error("The length of an integer constant value must be 4!");else e.bindBuffer(jc,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||l0,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Yc(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4uiv(t,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else e.bindBuffer(jc,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||h0,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function g0(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(jc,a.buffer);const o=a.size||a.numComponents||r,s=o/i,c=a.type||Gc,f=$[c].size*o,l=a.normalize||!1,h=a.offset||0,d=f/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,c,l,f,h+d*p),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const He={};He[Gc]={size:4,setter:Zc},He[Ab]={size:8,setter:Zc},He[vb]={size:12,setter:Zc},He[Eb]={size:16,setter:Zc},He[l0]={size:4,setter:Lr},He[Cb]={size:8,setter:Lr},He[Sb]={size:12,setter:Lr},He[Db]={size:16,setter:Lr},He[h0]={size:4,setter:Yc},He[kb]={size:8,setter:Yc},He[Lb]={size:12,setter:Yc},He[zb]={size:16,setter:Yc},He[Ib]={size:4,setter:Lr},He[_b]={size:8,setter:Lr},He[Mb]={size:12,setter:Lr},He[Tb]={size:16,setter:Lr},He[Nb]={size:4,setter:g0,count:2},He[Bb]={size:9,setter:g0,count:3},He[Fb]={size:16,setter:g0,count:4};function Hb(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const tM=/(\.|\[|]|\w+)/g,nM=e=>e>="0"&&e<="9";function Qb(e,t,n,r){const i=e.split(tM).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const c=nM(s[0]),u=c?parseInt(s):s;if(c&&(o+=i[a++]),a===i.length){n[u]=t;break}else{const l=i[a++],h=l==="[",d=n[u]||(h?[]:{});n[u]=d,n=d,r[o]=r[o]||function(p){return function(b){qb(p,b)}}(d),o+=l}}}function rM(e,t){let n=0;function r(s,c,u){const f=c.name.endsWith("[0]"),l=c.type,h=$[l];if(!h)throw new Error(`unknown type: 0x${l.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=c.size,f?d=h.arraySetter(e,l,p,u,c.size):d=h.setter(e,l,p,u,c.size)}else h.arraySetter&&f?d=h.arraySetter(e,u):d=h.setter(e,u);return d.location=u,d}const i={},a={},o=e.getProgramParameter(t,xb);for(let s=0;s<o;++s){const c=e.getActiveUniform(t,s);if(Hb(c))continue;let u=c.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const f=e.getUniformLocation(t,c.name);if(f){const l=r(t,c,f);i[u]=l,Qb(u,l,a,i)}}return i}function iM(e,t){const n={},r=e.getProgramParameter(t,c_);for(let i=0;i<r;++i){const a=e.getTransformFeedbackVarying(t,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function aM(e,t){const n=e.getProgramParameter(t,xb),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const c=e.getActiveUniform(t,s);r[s].name=c.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const c=s[0],u=s[1];e.getActiveUniforms(t,i,e[c]).forEach(function(f,l){r[l][u]=f})});const a={},o=e.getProgramParameter(t,f_);for(let s=0;s<o;++s){const c=e.getActiveUniformBlockName(t,s),u={index:e.getUniformBlockIndex(t,c),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,l_),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,h_),size:e.getActiveUniformBlockParameter(t,s,d_),uniformIndices:e.getActiveUniformBlockParameter(t,s,g_)};u.used=u.usedByVertexShader||u.usedByFragmentShader,a[c]=u}return{blockSpecs:a,uniformData:r}}const Vb=/\[\d+\]\.$/,oM=(e,t)=>((e+(t-1))/t|0)*t;function sM(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,c=0;for(let u=0;u<a;++u){for(let f=0;f<r;++f)e[s++]=o[c++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function uM(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return a_("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),c=e.createBuffer(),u=o.index;e.bindBuffer(f0,c),e.uniformBlockBinding(t,o.index,u);let f=r+".";Vb.test(f)&&(f=f.replace(Vb,"."));const l={},h={},d={};return o.uniformIndices.forEach(function(p){const b=a[p];let x=b.name;x.startsWith(f)&&(x=x.substr(f.length));const A=x.endsWith("[0]");A&&(x=x.substr(0,x.length-3));const D=$[b.type],_=D.Type,C=A?oM(D.size,16)*b.size:D.size*b.size,T=new _(s,b.offset,C/_.BYTES_PER_ELEMENT);l[x]=T;const B=sM(T,A,D.rows,D.cols);h[x]=B,Qb(x,B,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:c,uniforms:l,setters:h}}function Zb(e,t,n){return uM(e,t.program,t.uniformBlockSpec,n)}function cM(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(f0,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Yb(e,t,n){cM(e,t,n)&&e.bufferData(f0,n.array,o_)}function Wb(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function qb(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):qb(e[n],t[n])}}function Lt(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const a=t[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)Lt(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function fM(e,t){const n={},r=e.getProgramParameter(t,u_);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(Hb(a))continue;const o=e.getAttribLocation(t,a.name),s=He[a.type],c=s.setter(e,o,s);c.location=o,n[a.name]=c}return n}function lM(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Ta(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(lM(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(s_,n.indices))}function hM(e,t){const n=rM(e,t),r=fM(e,t),i={program:t,uniformSetters:n,attribSetters:r};return va(e)&&(i.uniformBlockSpec=aM(e,t),i.transformFeedbackInfo=iM(e,t)),i}const dM=4,Xb=5123;function vs(e,t,n,r,i,a){n=n===void 0?dM:n;const o=t.indices,s=t.elementType,c=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,c,s===void 0?Xb:t.elementType,i,a):e.drawElements(n,c,s===void 0?Xb:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,c,a):e.drawArrays(n,i,c)}const gM=36160,Ii=36161,pM=3553,mM=5121,bM=6402,yM=6408,wM=33190,xM=36012,AM=35056,vM=36013,EM=32854,CM=32855,SM=36194,Kb=33189,Jb=6401,$b=36168,p0=34041,DM=36064,Wc=36096,ey=36128,m0=33306,b0=33071,y0=9729,ty=[{format:yM,type:mM,min:y0,wrap:b0},{format:p0}],pn={};pn[p0]=m0,pn[Jb]=ey,pn[$b]=ey,pn[bM]=Wc,pn[Kb]=Wc,pn[wM]=Wc,pn[xM]=Wc,pn[AM]=m0,pn[vM]=m0;function IM(e,t){return pn[e]||pn[t]}const zr={};zr[EM]=!0,zr[CM]=!0,zr[SM]=!0,zr[p0]=!0,zr[Kb]=!0,zr[Jb]=!0,zr[$b]=!0;function _M(e){return zr[e]}function MM(e,t,n,r){const i=gM,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||ty;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return t.forEach(function(c){let u=c.attachment;const f=c.samples,l=c.format;let h=c.attachmentPoint||IM(l,c.internalFormat);if(h||(h=DM+o++),!u)if(f!==void 0||_M(l))u=e.createRenderbuffer(),e.bindRenderbuffer(Ii,u),f>1?e.renderbufferStorageMultisample(Ii,f,l,n,r):e.renderbufferStorage(Ii,l,n,r);else{const d=Object.assign({},c);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||y0,d.mag=d.mag||d.minMag||y0,d.wrapS=d.wrapS||d.wrap||b0,d.wrapT=d.wrapT||d.wrap||b0),u=As(e,d)}if(Zm(e,u))e.framebufferRenderbuffer(i,h,Ii,u);else if(Mc(e,u))c.layer!==void 0?e.framebufferTextureLayer(i,h,u,c.level||0,c.layer):e.framebufferTexture2D(i,h,c.target||pM,u,c.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function TM(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||ty,n.forEach(function(a,o){const s=t.attachments[o],c=a.format,u=a.samples;if(u!==void 0||Zm(e,s))e.bindRenderbuffer(Ii,s),u>1?e.renderbufferStorageMultisample(Ii,u,c,r,i):e.renderbufferStorage(Ii,c,r,i);else if(Mc(e,s))i_(e,s,a,r,i);else throw new Error("unknown attachment type")})}function NM(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Ta(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const BM=/^(.*?)_/;function FM(e,t){$h(e,0);const n=e.getExtension(t);if(n){const r={},i=BM.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],c=typeof s=="function",u=c?i:a;let f=o;o.endsWith(u)&&(f=o.substring(0,o.length-u.length)),e[f]!==void 0?!c&&e[f]!==s&&Vm(f,e[f],s,o):c?e[f]=function(l){return function(){return l.apply(n,arguments)}}(s):(e[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},$h(r,0)}return n}const ny=["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 ry(e){for(let t=0;t<ny.length;++t)FM(e,ny[t])}function kM(e,t){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=e.getContext(n[i],t),r){ry(r);break}return r}function LM(e,t){return kM(e,t)}const zM=`/***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
@@ -23,7 +23,7 @@ out vec2 vHalfSizeInPixels;/***Clamps the minimumSize and returns an opacity tha
23
23
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
24
24
  float aaPadding=1.0/uDevicePixelRatio;float strokeWidth=getScaled_strokeWidth();float strokeOpacity=getScaled_strokeOpacity()*opaFactor;vec2 centeredFrac=frac-0.5;vec2 expand=centeredFrac*(strokeWidth+aaPadding)/uViewportSize;pos+=expand;vec2 sizeInPixels=size*uViewportSize;vPosInPixels=(centeredFrac+expand/size)*sizeInPixels;vHalfSizeInPixels=sizeInPixels/2.0;vCornerRadii=min(uCornerRadii,min(vHalfSizeInPixels.x,vHalfSizeInPixels.y));vHalfStrokeWidth=strokeWidth/2.0;vStrokeColor=vec4(getScaled_stroke()*strokeOpacity,strokeOpacity);
25
25
  #endif
26
- gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,uM=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
26
+ gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,RM=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
27
27
  in vec2 vPosInPixels;
28
28
  #endif
29
29
  in vec2 vHalfSizeInPixels;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in float vHalfStrokeWidth;in vec4 vCornerRadii;out lowp vec4 fragColor;float sdRoundedBox(vec2 p,vec2 b,vec4 r){r.xy=p.x>0.0 ? r.xy : r.zw;r.x=p.y>0.0 ? r.x : r.y;vec2 q=abs(p)-b+r.x;return min(max(q.x,q.y),0.0)+length(max(q,0.0))-r.x;}float sdSharpBox(vec2 p,vec2 b){vec2 q=abs(p)-b;return max(q.x,q.y);}void main(void){
@@ -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;}}`,$h="attr_",Rb="uDomain_",cM="range_",Ob="scale_",Pb="getScaled_",e0="uRangeTexture_",Ub=3402823466e29;function fM(e){const t=e.match(/^(?:(\w+)-)?(\w+)$/);if(!t)throw new Error("Not a scale type: "+e);return{family:t[1]||"continuous",transform:t[2]}}function lM(e,t){let n;if(gc(e))n=Si(vm(e)(t));else if(Re(t))if(Ai(e))n=dM(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(Cu(t))n=Si(t?1:0);else if(t===null)if(Ai(e))n=Si([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=Si(t);return`
40
+ if(uPickingEnabled){fragColor=vPickingColor;}}`,w0="attr_",iy="uDomain_",OM="range_",ay="scale_",oy="getScaled_",x0="uRangeTexture_",sy=3402823466e29;function PM(e){const t=e.match(/^(?:(\w+)-)?(\w+)$/);if(!t)throw new Error("Not a scale type: "+e);return{family:t[1]||"continuous",transform:t[2]}}function UM(e,t){let n;if(Ic(e))n=_i(Hm(e)(t));else if(Oe(t))if(Ei(e))n=GM(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(zu(t))n=_i(t?1:0);else if(t===null)if(Ei(e))n=_i([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=_i(t);return`
41
41
  #define ${e}_DEFINED
42
- ${n.type} ${Pb}${e}() {
42
+ ${n.type} ${oy}${e}() {
43
43
  // Constant value
44
44
  return ${n};
45
- }`}function hM(e,t,n){if(ln(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const r=yo(e),i=$h+e,o=Rb+r,a=cM+r,s=zc(t.type),c=s?"vec2":"float",u=t.domain?t.domain().length:void 0;let f;const l=[];l.push(""),l.push("/".repeat(70)),l.push(`// Channel: ${e}`),l.push(""),l.push(`#define ${e}_DEFINED`);const{transform:h}=fM(t.type),d=(S,...z)=>gM.apply(null,[S,"value",...z]);let p;switch(h){case"linear":p=d("scaleLinear","domain",a);break;case"log":p=d("scaleLog","domain",a,t.base());break;case"symlog":p=d("scaleSymlog","domain",a,t.constant());break;case"pow":case"sqrt":p=d("scalePow","domain",a,t.exponent());break;case"index":case"locus":p=d("scaleBandHp","domain",a,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":p=d("scaleBand","domain",a,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":p=d("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const b=oc(t.type)||ct(t.type)&&Ai(e)?[0,1]:t.range?t.range():void 0;if(b&&e==r&&b.length&&b.every(Et)){const S=jb(b);l.push(`const ${S.type} ${a} = ${S};`)}const x=Ai(e)?"vec3":"float";let A;if(Ai(e)){const S=e0+r;if(e==r&&l.push(`uniform sampler2D ${S};`),ct(t.type))A=`getInterpolatedColor(${S}, transformed)`;else if(bi(t.type)||mo(t.type))A=`getDiscreteColor(${S}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||mo(t.type)){const S=e0+r;e==r&&l.push(`uniform sampler2D ${S};`),A=`getDiscreteColor(${S}, int(transformed)).r`}os(n)?l.push(`uniform highp ${c} ${i};`):l.push(`in highp ${c} ${i};`);const D=[],_=ct(t.type)&&u>2,C=mo(t.type)||_;if(D.push("int slot = 0;"),C){const S=o;D.push(_?`while (slot < ${S}.length() - 2 && value >= ${S}[slot + 1]) { slot++; }`:`while (slot < ${S}.length() && value >= ${S}[slot]) { slot++; }`)}const T=ct(t.type)||mo(t.type)||["band","point"].includes(t.type);if(p){const S=o;T&&(s?D.push(`vec3 domain = ${S};`):D.push(`vec2 domain = vec2(${S}[slot], ${S}[slot + 1]);`)),D.push(`float transformed = ${p};`),_&&D.push(`transformed = (float(slot) + transformed) / (float(${S}.length() - 1));`)}else D.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&D.push(`transformed = clampToRange(transformed, ${jb(b)});`),D.push(`return ${A??"transformed"};`),l.push(`
46
- ${x} ${Ob}${e}(${c} value) {
45
+ }`}function jM(e,t,n){if(dn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);if(!t)throw new Error("Scale is undefined");const r=vi(e),i=w0+e,a=iy+r,o=OM+r,s=qc(t.type),c=s?"vec2":"float",u=t.domain?t.domain().length:void 0;let f;const l=[];l.push(""),l.push("/".repeat(70)),l.push(`// Channel: ${e}`),l.push(""),l.push(`#define ${e}_DEFINED`);const{transform:h}=PM(t.type),d=(S,...z)=>HM.apply(null,[S,"value",...z]);let p;switch(h){case"linear":p=d("scaleLinear","domain",o);break;case"log":p=d("scaleLog","domain",o,t.base());break;case"symlog":p=d("scaleSymlog","domain",o,t.constant());break;case"pow":case"sqrt":p=d("scalePow","domain",o,t.exponent());break;case"index":case"locus":p=d("scaleBandHp","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":p=d("scaleBand","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":p=d("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const b=Cc(t.type)||lt(t.type)&&Ei(e)?[0,1]:t.range?t.range():void 0;if(b&&e==r&&b.length&&b.every(St)){const S=uy(b);l.push(`const ${S.type} ${o} = ${S};`)}const x=Ei(e)?"vec3":"float";let A;if(Ei(e)){const S=x0+r;if(e==r&&l.push(`uniform sampler2D ${S};`),lt(t.type))A=`getInterpolatedColor(${S}, transformed)`;else if(Tr(t.type)||xa(t.type))A=`getDiscreteColor(${S}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||xa(t.type)){const S=x0+r;e==r&&l.push(`uniform sampler2D ${S};`),A=`getDiscreteColor(${S}, int(transformed)).r`}ds(n)?l.push(`uniform highp ${c} ${i};`):l.push(`in highp ${c} ${i};`);const D=[],_=lt(t.type)&&u>2,C=xa(t.type)||_;if(D.push("int slot = 0;"),C){const S=a;D.push(_?`while (slot < ${S}.length() - 2 && value >= ${S}[slot + 1]) { slot++; }`:`while (slot < ${S}.length() && value >= ${S}[slot]) { slot++; }`)}const T=lt(t.type)||xa(t.type)||["band","point"].includes(t.type);if(p){const S=a;T&&(s?D.push(`vec3 domain = ${S};`):D.push(`vec2 domain = vec2(${S}[slot], ${S}[slot + 1]);`)),D.push(`float transformed = ${p};`),_&&D.push(`transformed = (float(slot) + transformed) / (float(${S}.length() - 1));`)}else D.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&D.push(`transformed = clampToRange(transformed, ${uy(b)});`),D.push(`return ${A??"transformed"};`),l.push(`
46
+ ${x} ${ay}${e}(${c} value) {
47
47
  ${D.map(S=>` ${S}
48
48
  `).join("")}
49
49
  }`),l.push(`
50
- ${x} ${Pb}${e}() {
51
- return ${Ob}${e}(${i});
50
+ ${x} ${oy}${e}() {
51
+ return ${ay}${e}(${i});
52
52
  }`);const B=l.join(`
53
- `);if(T&&e==r){const S=ct(t.type)||mo(t.type)?u:2;f=s?`highp vec3 ${o};`:`mediump float ${o}[${S}];`}return{glsl:B,domainUniform:f}}function t0(e){if(!Et(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+Ub;if(e==-1/0)return""+-Ub;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function Si(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);let n,r;return t>1?(n=`vec${t}`,r=`${n}(${e.map(t0).join(", ")})`):(n="float",r=t0(e[0])),Object.assign(r,{type:n,numComponents:t})}function dM(e){const t=hi(e).rgb();return Si([t.r,t.g,t.b].map(n=>n/255))}function jb(e){return Si([e[0],bo(e)])}function gM(e,...t){const n=[];for(const r of t)Et(r)?n.push(t0(r)):Ut(r)?n.push(Si(r)):n.push(r);return`${e}(${n.join(", ")})`}function zc(e){return e=="index"||e=="locus"}const Gb=2**11,pM=Gb-1;function Hb(e,t=[]){const n=e&pM,r=e-n;return t[0]=r,t[1]=n,t}function mM(e){const t=e%Gb;return[e-t,t]}function bM(e){return[...mM(e[0]),e[1]-e[0]]}class yM{constructor(t){this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(t,n){const r=this.createUpdater($h+t,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(t,n,r){if(!Et(this.size))throw new Error("The number of vertices must be defined!");let i,o,a=0;const s=new Float32Array(this.size*n);if(this.arrays[t]={data:s,numComponents:n},n==1){let c=0;const u=f=>{c=+f};i=()=>{s[a++]=c},o=u}else{let c=r??[0];const u=r?f=>{}:f=>{c=f};switch(n){case 1:break;case 2:i=()=>{s[a++]=c[0],s[a++]=c[1]},o=u;break;case 3:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2]},o=u;break;case 4:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2],s[a++]=c[3]},o=u;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),o}_unrollPushAll(){let t="",n="";for(let i=0;i<this.pushers.length;i++)t+=`const p${i} = that.pushers[${i}];
53
+ `);if(T&&e==r){const S=lt(t.type)||xa(t.type)?u:2;f=s?`highp vec3 ${a};`:`mediump float ${a}[${S}];`}return{glsl:B,domainUniform:f}}function A0(e){if(!St(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+sy;if(e==-1/0)return""+-sy;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function _i(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);let n,r;return t>1?(n=`vec${t}`,r=`${n}(${e.map(A0).join(", ")})`):(n="float",r=A0(e[0])),Object.assign(r,{type:n,numComponents:t})}function GM(e){const t=Dr(e).rgb();return _i([t.r,t.g,t.b].map(n=>n/255))}function uy(e){return _i([e[0],Wo(e)])}function HM(e,...t){const n=[];for(const r of t)St(r)?n.push(A0(r)):Ht(r)?n.push(_i(r)):n.push(r);return`${e}(${n.join(", ")})`}function qc(e){return e=="index"||e=="locus"}const cy=2**11,QM=cy-1;function fy(e,t=[]){const n=e&QM,r=e-n;return t[0]=r,t[1]=n,t}function VM(e){const t=e%cy;return[e-t,t]}function ZM(e){return[...VM(e[0]),e[1]-e[0]]}class YM{constructor(t){this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(t,n){const r=this.createUpdater(w0+t,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?a=>r(i(a)):a=>r(i(a)))}createUpdater(t,n,r){if(!St(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[t]={data:s,numComponents:n},n==1){let c=0;const u=f=>{c=+f};i=()=>{s[o++]=c},a=u}else{let c=r??[0];const u=r?f=>{}:f=>{c=f};switch(n){case 1:break;case 2:i=()=>{s[o++]=c[0],s[o++]=c[1]},a=u;break;case 3:i=()=>{s[o++]=c[0],s[o++]=c[1],s[o++]=c[2]},a=u;break;case 4:i=()=>{s[o++]=c[0],s[o++]=c[1],s[o++]=c[2],s[o++]=c[3]},a=u;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),a}_unrollPushAll(){let t="",n="";for(let i=0;i<this.pushers.length;i++)t+=`const p${i} = that.pushers[${i}];
54
54
  `,n+=`p${i}();
55
55
  `;const r=new Function("that",`${t}
56
56
 
@@ -58,8 +58,8 @@ ${x} ${Pb}${e}() {
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(t){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}const _o=5,n0=127;function r0(e){const t=[];for(let p=0;p<=n0;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=n0?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t["-".charCodeAt(0)]);function i(p){return(p<=n0?t[p]:n.get(p))||t[63]}function o(p){return i(p.charCodeAt(0))}const a=e.common.base,s=o("x"),c=o("X"),u=o("q"),f=s.height-_o*2,l=c.height-_o*2,h=u.height-s.height+u.yoffset-s.yoffset;function d(p,b=1){let x=0;for(let A=0;A<p.length;A++)x+=i(p.charCodeAt(A)).xadvance;return x/a*b}return{measureWidth:d,getCharByCode:i,getChar:o,xHeight:f,capHeight:l,descent:h,common:e.common}}function wM(e,t=0,n=1){return Math.max(t,Math.min(n,e))}const Qb=2**31-1,xM=-(2**31);function AM(e,t,n,r=n){const i=new Int32Array(e);i.fill(Qb);let o=xM,a=!1;const s=new Int32Array(e),c=t[0],f=(t[1]-t[0])/e,l=(x,A)=>{const D=(x-c)/f,_=Math.floor(D);return wM(A&&_==D?_-1:_,0,e-1)};function h(x,A,D){A>o?o=A:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const _=n(x),C=l(_,!1);i[C]>A&&(i[C]=A),s[C]<D&&(s[C]=D)}function d(x,A,D){A>o?o=A:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const _=n(x),C=r(x),T=l(_,!1),B=l(C,!0);for(let S=T;S<=B;S++)i[S]>A&&(i[S]=A),s[S]<D&&(s[S]=D)}const p=(x,A,D=[0,0])=>{const _=l(x,!1),C=l(A,!0),T=i[_],B=Math.max(s[C],T);return D[0]=T,D[1]=B,D},b=()=>{for(let A=1;A<s.length;A++)s[A]<s[A-1]&&(s[A]=s[A-1]);let x=!0;for(let A=i.length-1;A>0;A--)x&&i[A]==Qb?(i[A]=s[A],x=!1):i[A-1]>i[A]&&(i[A-1]=i[A]);return p};if(h.getIndex=b,d.getIndex=b,!a)return n==r?h:d}class ms{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([i,o])=>r.includes(i)&&o&&o.scale&&!o.constant)),this.allocatedVertices=n,this.variableBuilder=new yM(n);for(const[i,o]of Object.entries(this.variableEncoders)){const a=o.accessor,s=[0,0],c=zc(o.scale.type),u=o.indexer,f=u?l=>u(a(l)):c?l=>Hb(a(l),s):a;this.variableBuilder.addConverter(i,{f,numComponents:c?2:1,arrayReference:c?s:void 0})}this.lastOffset=0,this.rangeMap=new ri([],JSON.stringify)}registerBatch(t){var o;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(o=this.xIndexer)==null?void 0:o.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.pushFromDatum(a),this.addToXIndex(a)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0};if(!t.length||r-n<0){i();return}const o=c=>{var u;return c&&ct((u=c.scale)==null?void 0:u.type)&&c},a=o(this.variableEncoders.x),s=o(this.variableEncoders.x2);if(a){const c=a.accessor,u=s?s.accessor:c,f=[c(t[n]),u(t[r-1])];if(f[1]>f[0]){this.xIndexer=AM(50,f,c,u);let l=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,l,d),l=d}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class vM extends ms{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:t,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(t,n,r=0,i=n.length){if(i<=r)return;const o=this.encoders,[a,s]=this.visibleRange,c=h=>h.accessor||(d=>0),u=c(o.x),f=c(o.x2);this.prepareXIndexer(n,r,i);const l=[0,0];this.updateFrac(l);for(let h=r;h<i;h++){const d=n[h];let p=u(d),b=f(d);if(p>b&&([p,b]=[b,p]),b<a||p>s)continue;p<a&&(p=a),b>s&&(b=s),this.variableBuilder.updateFromDatum(d),l[0]=0,l[1]=0;const x=1;this.variableBuilder.pushAll();for(let A=0;A<=x;A++)l[0]=A/x,l[1]=0,this.variableBuilder.pushAll(),l[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(d)}this.registerBatch(t)}}class EM extends ms{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:t,attributes:n,numVertices:r==1/0?o*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(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let c=0;c<=s;c++)this.updatePos(c/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(t)}}class CM extends ms{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}}class SM extends ms{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class DM extends ms{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:t,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!ln(s)&&s.format?it(s.format):c=>c,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(t,n,r=0,i=n.length){const o=this.properties.align||"left",a=this.properties.logoLetters??!1,s=this.metadata.common.base,c=this.metadata.common.scaleH;let u=-_o;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 f=this.encoders.text.accessor||this.encoders.text,l=[0,0];this.updateVertexCoord(l);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],b=this.numberFormat(f(p)),x=Re(b)?b:b===null?"":""+b;if(x.length==0)continue;this.variableBuilder.updateFromDatum(p);const A=a?x.length:this.metrics.measureWidth(x);this.updateWidth(A);let D=o=="right"?-A:o=="center"?-A/2:0;if(!a){const B=this.metrics.getCharByCode(x.charCodeAt(0));D-=(B.width-B.xadvance)/s/2}let _=-.5,C=1,T=1;for(let B=0;B<x.length;B++){const S=this.metrics.getCharByCode(x.charCodeAt(B)),z=a?1:S.xadvance/s;if(S.id==32){D+=z;continue}a?(T=(S.width+_o*2)/S.width,D=-T/2,C=(S.height+_o*2)/S.height,_=-.5-_o/S.height):(C=S.height/s,_=-(S.height+S.yoffset+u)/s,T=S.width/s);const E=S.x,N=S.y;l[0]=D,l[1]=_+C,h[0]=E/c,h[1]=N/c,this.variableBuilder.pushAll(),l[0]=D+T,l[1]=_+C,h[0]=(E+S.width)/c,h[1]=N/c,this.variableBuilder.pushAll(),l[0]=D,l[1]=_,h[0]=E/c,h[1]=(N+S.height)/c,this.variableBuilder.pushAll(),l[0]=D+T,l[1]=_+C,h[0]=(E+S.width)/c,h[1]=N/c,this.variableBuilder.pushAll(),l[0]=D,l[1]=_,h[0]=E/c,h[1]=(N+S.height)/c,this.variableBuilder.pushAll(),l[0]=D+T,l[1]=_,h[0]=(E+S.width)/c,h[1]=(N+S.height)/c,this.variableBuilder.pushAll(),D+=z}this.addToXIndex(p)}this.registerBatch(t)}}const Vb=`#define PI 3.141593
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);}}`,IM="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));}",_M=`/***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;
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(t){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}const Na=5,v0=127;function E0(e){const t=[];for(let p=0;p<=v0;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=v0?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t["-".charCodeAt(0)]);function i(p){return(p<=v0?t[p]:n.get(p))||t[63]}function a(p){return i(p.charCodeAt(0))}const o=e.common.base,s=a("x"),c=a("X"),u=a("q"),f=s.height-Na*2,l=c.height-Na*2,h=u.height-s.height+u.yoffset-s.yoffset;function d(p,b=1){let x=0;for(let A=0;A<p.length;A++)x+=i(p.charCodeAt(A)).xadvance;return x/o*b}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:f,capHeight:l,descent:h,common:e.common}}function WM(e,t=0,n=1){return Math.max(t,Math.min(n,e))}const ly=2**31-1,qM=-(2**31);function XM(e,t,n,r=n){const i=new Int32Array(e);i.fill(ly);let a=qM,o=!1;const s=new Int32Array(e),c=t[0],f=(t[1]-t[0])/e,l=(x,A)=>{const D=(x-c)/f,_=Math.floor(D);return WM(A&&_==D?_-1:_,0,e-1)};function h(x,A,D){A>a?a=A:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const _=n(x),C=l(_,!1);i[C]>A&&(i[C]=A),s[C]<D&&(s[C]=D)}function d(x,A,D){A>a?a=A:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const _=n(x),C=r(x),T=l(_,!1),B=l(C,!0);for(let S=T;S<=B;S++)i[S]>A&&(i[S]=A),s[S]<D&&(s[S]=D)}const p=(x,A,D=[0,0])=>{const _=l(x,!1),C=l(A,!0),T=i[_],B=Math.max(s[C],T);return D[0]=T,D[1]=B,D},b=()=>{for(let A=1;A<s.length;A++)s[A]<s[A-1]&&(s[A]=s[A-1]);let x=!0;for(let A=i.length-1;A>0;A--)x&&i[A]==ly?(i[A]=s[A],x=!1):i[A-1]>i[A]&&(i[A-1]=i[A]);return p};if(h.getIndex=b,d.getIndex=b,!o)return n==r?h:d}class Es{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([i,a])=>r.includes(i)&&a&&a.scale&&!a.constant)),this.allocatedVertices=n,this.variableBuilder=new YM(n);for(const[i,a]of Object.entries(this.variableEncoders)){const o=a.accessor,s=[0,0],c=qc(a.scale.type),u=a.indexer,f=u?l=>u(o(l)):c?l=>fy(o(l),s):o;this.variableBuilder.addConverter(i,{f,numComponents:c?2:1,arrayReference:c?s:void 0})}this.lastOffset=0,this.rangeMap=new oi([],JSON.stringify)}registerBatch(t){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,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(t)}prepareXIndexer(t,n=0,r=n+t.length){const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0};if(!t.length||r-n<0){i();return}const a=c=>{var u;return c&&lt((u=c.scale)==null?void 0:u.type)&&c},o=a(this.variableEncoders.x),s=a(this.variableEncoders.x2);if(o){const c=o.accessor,u=s?s.accessor:c,f=[c(t[n]),u(t[r-1])];if(f[1]>f[0]){this.xIndexer=XM(50,f,c,u);let l=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,l,d),l=d}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class KM extends Es{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,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(t,n,r=0,i=n.length){if(i<=r)return;const a=this.encoders,[o,s]=this.visibleRange,c=h=>h.accessor||(d=>0),u=c(a.x),f=c(a.x2);this.prepareXIndexer(n,r,i);const l=[0,0];this.updateFrac(l);for(let h=r;h<i;h++){const d=n[h];let p=u(d),b=f(d);if(p>b&&([p,b]=[b,p]),b<o||p>s)continue;p<o&&(p=o),b>s&&(b=s),this.variableBuilder.updateFromDatum(d),l[0]=0,l[1]=0;const x=1;this.variableBuilder.pushAll();for(let A=0;A<=x;A++)l[0]=A/x,l[1]=0,this.variableBuilder.pushAll(),l[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(d)}this.registerBatch(t)}}class JM extends Es{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,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(t,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 c=0;c<=s;c++)this.updatePos(c/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(t)}}class $M extends Es{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}}class e6 extends Es{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class t6 extends Es{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:t,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!dn(s)&&"format"in s&&s.format?it(s.format):c=>c,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(t,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,c=this.metadata.common.scaleH;let u=-Na;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 f=this.encoders.text.accessor||this.encoders.text,l=[0,0];this.updateVertexCoord(l);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],b=this.numberFormat(f(p)),x=Oe(b)?b:b===null?"":""+b;if(x.length==0)continue;this.variableBuilder.updateFromDatum(p);const A=o?x.length:this.metrics.measureWidth(x);this.updateWidth(A);let D=a=="right"?-A:a=="center"?-A/2:0;if(!o){const B=this.metrics.getCharByCode(x.charCodeAt(0));D-=(B.width-B.xadvance)/s/2}let _=-.5,C=1,T=1;for(let B=0;B<x.length;B++){const S=this.metrics.getCharByCode(x.charCodeAt(B)),z=o?1:S.xadvance/s;if(S.id==32){D+=z;continue}o?(T=(S.width+Na*2)/S.width,D=-T/2,C=(S.height+Na*2)/S.height,_=-.5-Na/S.height):(C=S.height/s,_=-(S.height+S.yoffset+u)/s,T=S.width/s);const E=S.x,N=S.y;l[0]=D,l[1]=_+C,h[0]=E/c,h[1]=N/c,this.variableBuilder.pushAll(),l[0]=D+T,l[1]=_+C,h[0]=(E+S.width)/c,h[1]=N/c,this.variableBuilder.pushAll(),l[0]=D,l[1]=_,h[0]=E/c,h[1]=(N+S.height)/c,this.variableBuilder.pushAll(),l[0]=D+T,l[1]=_+C,h[0]=(E+S.width)/c,h[1]=N/c,this.variableBuilder.pushAll(),l[0]=D,l[1]=_,h[0]=E/c,h[1]=(N+S.height)/c,this.variableBuilder.pushAll(),l[0]=D+T,l[1]=_,h[0]=(E+S.width)/c,h[1]=(N+S.height)/c,this.variableBuilder.pushAll(),D+=z}this.addToXIndex(p)}this.registerBatch(t)}}const hy=`#define PI 3.141593
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);}}`,n6="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));}",r6=`/***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);}
65
65
  #elif defined(SAMPLE_FACET_UNIFORM)
@@ -67,36 +67,36 @@ SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1
67
67
  #elif defined(SAMPLE_FACET_TEXTURE)
68
68
  uniform sampler2D uSampleFacetTexture;SampleFacetPosition getSampleFacetPos(){vec4 texel=texelFetch(uSampleFacetTexture,ivec2(int(attr_facetIndex),0),0);return SampleFacetPosition(1.0-texel.r-texel.g,texel.g,1.0-texel.r-texel.g,texel.g);}
69
69
  #endif
70
- bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,MM=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
70
+ bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,i6=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
71
71
  #ifdef uniqueId_DEFINED
72
72
  int id=int(getScaled_uniqueId());vPickingColor=vec4(ivec4(id>>0,id>>8,id>>16,0xFF)&0xFF)/float(0xFF);
73
73
  #else
74
74
  vPickingColor=vec4(1.0);
75
75
  #endif
76
- return true;}return false;}`,TM="in highp vec4 vPickingColor;",Rc=Symbol("cacheMap");function Mo(e,t,n){let r=bs(e).get(t);return r===void 0&&(r=n(t),bs(e).set(t,r)),r}function Zb(e,t){bs(e).delete(t)}function Oc(e,t){const n=bs(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);bs(e).delete(t)}function Yb(e){e[Rc]=new Map}function bs(e){return e[Rc]||Yb(e),e[Rc]}function NM(e,t,n,r){const i=Re(e)?e:e.name,o=!Re(e)&&e.extent||[0,1];if(n===void 0&&!Re(e)&&(n=e.count),i){const a=lh(i);if(vt(a)){const s=qb(a,{extent:o,count:n});return Pc(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(Ut(a))return i0(a,t);throw new Error("Unknown scheme: "+i)}}}function BM(e,t="rgb",n,r){const i=ac(e,Re(t)?t:t.type,Re(t)?void 0:t.gamma),o=qb(i);return Pc(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function FM(e,t,n,r){const i=Math.max(e.length,n||0),o=new Float32Array(i);for(let a=0;a<i;a++)o[a]=e[a%e.length];return Pc(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},o,r)}function i0(e,t,n,r){const i=Wb(e,n);return Pc(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function qb(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],o=bo(t)-i,a=Aa(r).map(s=>s/(r-1)).map(s=>i+s/o).map(e);return n&&a.reverse(),Wb(a)}function Wb(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=hi(e[i%e.length]).rgb();r[i*3+0]=o.r,r[i*3+1]=o.g,r[i*3+2]=o.b}return r}class kM{constructor(t,n){this._container=t,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const r=document.createElement("canvas");t.appendChild(r);const i=aM(r,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!i)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!wo(i))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");zb(i),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),this.canvas=r,this.gl=i,this._pickingAttachmentOptions=[{format:i.RGBA,type:i.UNSIGNED_BYTE,minMag:i.LINEAR,wrap:i.CLAMP_TO_EDGE}],this._pickingBufferInfo=eM(i,this._pickingAttachmentOptions),i.bindFramebuffer(i.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(o=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr()}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(t,n){const r="#version 300 es",i="precision mediump float;";Ut(n)&&(n=n.join(`
76
+ return true;}return false;}`,a6="in highp vec4 vPickingColor;",Xc=Symbol("cacheMap");function Ba(e,t,n){let r=Cs(e).get(t);return r===void 0&&(r=n(t),Cs(e).set(t,r)),r}function dy(e,t){Cs(e).delete(t)}function Kc(e,t){const n=Cs(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);Cs(e).delete(t)}function gy(e){e[Xc]=new Map}function Cs(e){return e[Xc]||gy(e),e[Xc]}function o6(e,t,n,r){const i=Oe(e)?e:e.name,a=!Oe(e)&&e.extent||[0,1];if(n===void 0&&!Oe(e)&&(n=e.count),i){const o=Uh(i);if(Ct(o)){const s=py(o,{extent:a,count:n});return Jc(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(Ht(o))return C0(o,t);throw new Error("Unknown scheme: "+i)}}}function s6(e,t="rgb",n,r){const i=Sc(e,Oe(t)?t:t.type,Oe(t)?void 0:t.gamma),a=py(i);return Jc(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},a,r)}function u6(e,t,n,r){const i=Math.max(e.length,n||0),a=new Float32Array(i);for(let o=0;o<i;o++)a[o]=e[o%e.length];return Jc(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},a,r)}function C0(e,t,n,r){const i=my(e,n);return Jc(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function py(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],a=Wo(t)-i,o=_o(r).map(s=>s/(r-1)).map(s=>i+s/a).map(e);return n&&o.reverse(),my(o)}function my(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const a=Dr(e[i%e.length]).rgb();r[i*3+0]=a.r,r[i*3+1]=a.g,r[i*3+2]=a.b}return r}class c6{constructor(t,n,r){this._container=t,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const i=document.createElement("canvas");t.appendChild(i);const a=LM(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(!va(a))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(ry(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=MM(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=Dr(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(t,n){const r="#version 300 es",i="precision mediump float;";Ht(n)&&(n=n.join(`
77
77
 
78
- `));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const c=[r,i,n].join(`
78
+ `));const a=this.gl,o=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(o);if(!s){const c=[r,i,n].join(`
79
79
 
80
- `);s=o.createShader(t),o.shaderSource(s,c),o.compileShader(s),this._shaderCache.set(a,s)}return s}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,tM(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){var o;if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=((o=this._sizeSource)==null?void 0:o.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=t.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=t.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(t,n){this._listeners.push({type:t,listener:n})}_emit(t){for(const n of this._listeners)n.type===t&&n.listener()}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(a,s){return bi(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a??4:a}const o=t.channel;if(Ai(o)){const a=t.getScaleProps(),s=t.getScale(),c=s.range();let u;if(a.scheme)if(s.type=="threshold"&&c)u=i0(c,this.gl,s.domain().length,r);else{let f=Re(a.scheme)?void 0:a.scheme.count;f=i(f,s),u=NM(a.scheme,this.gl,f,r)}else oc(s.type)||ct(s.type)&&c.length>2?u=BM(c,a.interpolate,this.gl,r):u=i0(c,this.gl,s.domain().length,r);this.rangeTextures.set(t,u)}else{const a=t.getScale();if(a.type==="ordinal"||mo(a.type)){const s=gc(o)?vm(o):u=>u,c=t.getScale().range();this.rangeTextures.set(t,FM(c.map(s),this.gl,a.domain().length,r))}}}}function LM(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],o=new Map(i.map((a,s)=>{const c=parseInt(a[1]),u=i[s+1],f=u?u.index:t.length,l=t.substring(a.index,f);return[c-1,l]}));return e.split(`
81
- `).map((a,s)=>{const c=o.get(s);return`${s+1+n}: ${a}${c?`
80
+ `);s=a.createShader(t),a.shaderSource(s,c),a.compileShader(s),this._shaderCache.set(o,s)}return s}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,TM(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){var a;if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=((a=this._sizeSource)==null?void 0:a.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=t.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=t.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(t,n){this._listeners.push({type:t,listener:n})}_emit(t){for(const n of this._listeners)n.type===t&&n.listener()}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,a=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,a),r.bindFramebuffer(r.FRAMEBUFFER,null),a}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(...this._clearColor),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(o,s){return Tr(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?o??4:o}const a=t.channel;if(Ei(a)){const o=t.getScaleProps(),s=t.getScale(),c=s.range();let u;if(o.scheme)if(s.type=="threshold"&&c)u=C0(c,this.gl,s.domain().length,r);else{let f=Oe(o.scheme)?void 0:o.scheme.count;f=i(f,s),u=o6(o.scheme,this.gl,f,r)}else Cc(s.type)||lt(s.type)&&c.length>2?u=s6(c,o.interpolate,this.gl,r):u=C0(c,this.gl,s.domain().length,r);this.rangeTextures.set(t,u)}else{const o=t.getScale();if(o.type==="ordinal"||xa(o.type)){const s=Ic(a)?Hm(a):u=>u,c=t.getScale().range();this.rangeTextures.set(t,u6(c.map(s),this.gl,o.domain().length,r))}}}}function f6(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],a=new Map(i.map((o,s)=>{const c=parseInt(o[1]),u=i[s+1],f=u?u.index:t.length,l=t.substring(o.index,f);return[c-1,l]}));return e.split(`
81
+ `).map((o,s)=>{const c=a.get(s);return`${s+1+n}: ${o}${c?`
82
82
 
83
83
  ^^^ ${c}`:""}`}).join(`
84
- `)}function zM(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let o,a;if(!e.getProgramParameter(r,e.LINK_STATUS)){o=e.getProgramInfoLog(r);for(const c of[t,n])e.getShaderParameter(c,e.COMPILE_STATUS)||(o=e.getShaderInfoLog(c),a=LM(e.getShaderSource(c),o,0)+`
85
- Error compiling: ${o}`,e.deleteShader(c));e.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function Pc(e,t,n,r){return r?Jm(e,r,n,t):r=gs(e,{...t,src:n}),r}function RM(...e){const t={get(n,r,i){for(const o of e){const s=o()[r];if(s!==void 0)return s}},has(n,r,i){for(const o of e){const a=o();if(r in a)return!0}return!1}};return new Proxy({},t)}function OM(e){return Re(e)||Et(e)||Cu(e)}const PM="SAMPLE_FACET_UNIFORM",Xb="SAMPLE_FACET_TEXTURE";class ys{constructor(t){this.unitView=t,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 UM,this.defaultProperties={get clip(){return["x","y"].map(n=>t.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=RM(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 t={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(t.uniqueId={field:"_uniqueId"}),t}fixEncoding(t){return t}get encoding(){return Mo(this,"encoding",()=>{const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return OM(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>a[1].value!==void 0)),o=this.fixEncoding({...t,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=lD(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Xb;if(this.unitView.getAncestors().find(t=>"samples"in t.spec))return PM}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let o=[];const a=this.getSampleFacetMode();a&&r.push(`#define ${a}`);for(const h of i){let d;if(h in this.encoding)d=h;else continue;const p=this.encoding[d];if(p)if(ln(p))o.push(lM(d,p.value));else{const b=Ht(p)&&p.resolutionChannel||d,x=this.unitView.getScaleResolution(b).getScale(),A=hM(d,x,p);o.push(A.glsl),A.domainUniform&&this.domainUniforms.push(A.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
84
+ `)}function l6(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let a,o;if(!e.getProgramParameter(r,e.LINK_STATUS)){a=e.getProgramInfoLog(r);for(const c of[t,n])e.getShaderParameter(c,e.COMPILE_STATUS)||(a=e.getShaderInfoLog(c),o=f6(e.getShaderSource(c),a,0)+`
85
+ Error compiling: ${a}`,e.deleteShader(c));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function Jc(e,t,n,r){return r?wb(e,r,n,t):r=As(e,{...t,src:n}),r}function h6(...e){const t={get(n,r,i){for(const a of e){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of e){const o=a();if(r in o)return!0}return!1}};return new Proxy({},t)}function d6(e){return Oe(e)||St(e)||zu(e)}const g6="SAMPLE_FACET_UNIFORM",by="SAMPLE_FACET_TEXTURE";class Ss{constructor(t){this.unitView=t,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 p6,this.defaultProperties={get clip(){return["x","y"].map(n=>t.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=h6(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 t={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(t.uniqueId={field:"_uniqueId"}),t}fixEncoding(t){return t}get encoding(){return Ba(this,"encoding",()=>{const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=o=>{const s=this.properties[o];return d6(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(o=>[o,r(o)]).filter(o=>o[1].value!==void 0)),a=this.fixEncoding({...t,...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=jD(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return by;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return g6}createAndLinkShaders(t,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 p=this.encoding[d];if(p)if(dn(p))a.push(UM(d,p.value));else{const b=Zt(p)&&p.resolutionChannel||d,x=Ci(b)?this.unitView.getScaleResolution(b).getScale():Dc(),A=jM(d,x,p);a.push(A.glsl),A.domainUniform&&this.domainUniforms.push(A.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,Vb,IM,s,...o,_M,MM,t],f=[...r,Vb,TM,n],l=this.gl;this.programStatus=zM(l,this.glHelper.compileShader(l.VERTEX_SHADER,u),this.glHelper.compileShader(l.FRAGMENT_SHADER,f))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=R8(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=Sb(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=Sb(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Ft(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(os(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):zc(r.scale.type)?Hb(+n.datum):+n.datum;Ft(this.programInfo,{[$h+t]:i})}}deleteGraphicsData(){if(this.bufferInfo){const t=this.gl;for(let n=0;n<8;n++)t.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(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&WD(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=JD(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.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 t of this.unitView.getAncestors())if(!t.isPickingSupported())return!1;return!0}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=nM(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[a,s]of Object.entries(this.domainUniformInfo.setters)){const c=a.substring(Rb.length),u=this.encoding[c],f=Ht(u)&&u.resolutionChannel||c,l=this.unitView.getScaleResolution(f);if(l){const h=l.getScale();i.push(()=>{const d=bi(h.type)?[0,h.domain().length]:h.domain();s(zc(h.type)?bM(d):d)})}}i.push(()=>Db(r,this.programInfo,this.domainUniformInfo))}for(const[a,s]of Object.entries(this.encoding))if(Ht(s)){const c=Ht(s)&&s.resolutionChannel||a,u=this.unitView.getScaleResolution(c),f=n.rangeTextures.get(u);f&&i.push(()=>Ft(this.programInfo,{[e0+a]:f}))}this.getSampleFacetMode()==Xb&&i.push(()=>{let a;for(const s of this.unitView.getAncestors())if(a=s.getSampleFacetTexture(),a)break;if(!a)throw new Error("No facet texture available. This is bug.");Ft(this.programInfo,{uSampleFacetTexture:a})});const o=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Ib(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const a=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,a,s)}return!0}render(t){}createRenderCallback(t,n){var l;const r=this;let i;const o=(l=this.unitView.getScaleResolution("x"))==null?void 0:l.getScale(),a=o&&ct(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,c=[0,0];i=h=>{if(a&&h.xIndex){const d=o.domain(),p=h.xIndex(d[0]+s,d[1],c),b=p[0],x=p[1]-b;x>0&&t(b,x)}else t(h.offset,h.count)};const u=this.rangeMap.get(void 0).count==0?n.facetId:void 0,f=this.rangeMap.get(u);return n.sampleFacetRenderingOptions?function(){f.count&&r.prepareSampleFacetRendering(n)&&i(f)}:function(){f.count&&i(f)}}setViewport(t,n){const r=this.glHelper.dpr,i=this.gl,o=this.properties,a=this.glHelper.getLogicalCanvasSize(),s=.5,c=(o.xOffset||0)+s,u=(o.yOffset||0)+s;let f,l=t;if(o.clip||n){let h=0,d=0,p;n?(l=o.clip?t.intersect(n):n,p=[t.width/l.width,t.height/l.height],d=Math.max(0,t.y2-n.y2),h=Math.max(0,t.x2-n.x2)):p=[1,1];const b=[t.x,a.height-l.y2,Math.max(0,l.width),Math.max(0,l.height)].map(_=>_*r),x=b.map(_=>Math.floor(_)),[A,D]=b.map((_,C)=>_-x[C]);i.viewport(...x),i.scissor(...x),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(c+h+A)/l.width,-(u+d-D)/l.height],uViewScale:p}}else i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(t.x+c)/a.width,(a.height-t.y-u-t.height)/a.height],uViewScale:[t.width/a.width,t.height/a.height]};return Ib(this.viewUniformInfo,{...f,uViewportSize:[t.width,t.height],uDevicePixelRatio:this.glHelper.dpr}),Db(this.gl,this.programInfo,this.viewUniformInfo),l.height>0&&l.width>0}findDatumAt(t,n){}}class UM extends ri{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function o0(e,t){const n=mD(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(ln(r)||ln(i))){if(r){if(!Ht(e[t]))return;if(i){if(r.type!="quantitative"){const o=(1-(r.band||1))/2;r.band=o,i.band=-o}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const o=(1-(r.band??1))/2;r.band=0+o,i.band=1-o}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function Kb(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),ln(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function Jb(e,t){ln(e.fill)&&e.fill.value===null?e.fillOpacity={value:0}:e.fill||(e.fill={resolutionChannel:"color",...e.color},!t&&!e.fillOpacity&&(e.fillOpacity={value:0})),e.fillOpacity||(t?e.fillOpacity={resolutionChannel:"opacity",...e.opacity}:e.fillOpacity={value:0})}class jM extends ys{constructor(t){super(t),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 Mo(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&ln(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(t){return o0(t,"x"),o0(t,"y"),Kb(t,this.properties.filled),Jb(t,this.properties.filled),delete t.color,delete t.opacity,t}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){const t=this.properties;return t.cornerRadius||t.cornerRadiusBottomLeft||t.cornerRadiusBottomRight||t.cornerRadiusTopLeft||t.cornerRadiusTopRight}_isStroked(){const t=this.encoding.strokeWidth;return!(ln(t)&&!t.value)}async initializeGraphics(){await super.initializeGraphics();const t=[];this._isRoundedCorners()&&t.push("ROUNDED_CORNERS"),this._isStroked()&&t.push("STROKED"),this.createAndLinkShaders(sM,uM,t.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Ft(this.programInfo,{uMinSize:[t.minWidth,t.minHeight],uMinOpacity:t.minOpacity,uCornerRadii:[t.cornerRadiusTopRight??t.cornerRadius,t.cornerRadiusBottomRight??t.cornerRadius,t.cornerRadiusTopLeft??t.cornerRadius,t.cornerRadiusBottomLeft??t.cornerRadius]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new vM({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>Io(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{ps(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},t)}findDatumAt(t,n){t=_n(t);const r=this.encoders,i=this.unitView.getCollector().facetBatches.get(t),o=r.x.accessor,a=r.x2.accessor;if(i)return i.find(s=>n>=o(s)&&n<a(s))}}const GM=`/***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,hy,n6,s,...a,r6,i6,t],f=[...r,hy,a6,n],l=this.gl;this.programStatus=l6(l,this.glHelper.compileShader(l.VERTEX_SHADER,u),this.glHelper.compileShader(l.FRAGMENT_SHADER,f))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=hM(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=Zb(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=Zb(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Lt(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(ds(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):qc(r.scale.type)?fy(+n.datum):+n.datum;Lt(this.programInfo,{[w0+t]:i})}}deleteGraphicsData(){if(this.bufferInfo){const t=this.gl;for(let n=0;n<8;n++)t.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(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&CI(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=II(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.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 t of this.unitView.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=NM(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const c=o.substring(iy.length),u=this.encoding[c],f=Zt(u)&&u.resolutionChannel||c;if(Ci(f)){const l=this.unitView.getScaleResolution(f).getScale();i.push(()=>{const h=Tr(l.type)?[0,l.domain().length]:l.domain();s(qc(l.type)?ZM(h):h)})}}i.push(()=>Yb(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(Zt(s)){const c=Zt(s)&&s.resolutionChannel||o;if(Ci(c)){const u=this.unitView.getScaleResolution(c),f=n.rangeTextures.get(u);f&&i.push(()=>Lt(this.programInfo,{[x0+o]:f}))}}this.getSampleFacetMode()==by&&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.");Lt(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Wb(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.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(t){}createRenderCallback(t,n){var l;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=(l=this.unitView.getScaleResolution("x"))==null?void 0:l.getScale(),o=a&&lt(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,c=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],c),b=p[0],x=p[1]-b;x>0&&t(b,x)}else t(h.offset,h.count)};const u=this.rangeMap.get(void 0).count==0?n.facetId:void 0,f=this.rangeMap.get(u);return n.sampleFacetRenderingOptions?function(){f.count&&r.prepareSampleFacetRendering(n)&&i(f)}:function(){f.count&&i(f)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,c=(a.xOffset??0)+s,u=(a.yOffset??0)+s;let f,l=t;if(a.clip!=="never"&&(a.clip||n)){let h=0,d=0,p;if(n){if(l=t.intersect(n).flatten(),!l.isDefined())return!1;p=[t.width/l.width,t.height/l.height],d=Math.max(0,t.y2-n.y2),h=Math.max(0,t.x2-n.x2)}else p=[1,1];const b=[l.x,o.height-l.y2,l.width,l.height].map(_=>_*r),x=b.map(_=>Math.round(_)),[A,D]=b.map((_,C)=>_-x[C]);i.viewport(...x),i.scissor(...x),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(c+h+A/r)/l.width,-(u+d-D/r)/l.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(t.x+c)/o.width,(o.height-t.y-u-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]}}return Wb(this.viewUniformInfo,{...f,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),Yb(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}class p6 extends oi{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function S0(e,t){const n=VD(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(dn(r)||dn(i))){if(r){if(!Zt(e[t]))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};e[t]=r,e[n]=i}}function yy(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),dn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function wy(e,t){dn(e.fill)&&e.fill.value===null?e.fillOpacity={value:0}:e.fill||(e.fill={resolutionChannel:"color",...e.color},!t&&!e.fillOpacity&&(e.fillOpacity={value:0})),e.fillOpacity||(t?e.fillOpacity={resolutionChannel:"opacity",...e.opacity}:e.fillOpacity={value:0})}class m6 extends Ss{constructor(t){super(t),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 Ba(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&dn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(t){return S0(t,"x"),S0(t,"y"),yy(t,this.properties.filled),wy(t,this.properties.filled),delete t.color,delete t.opacity,t}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){const t=this.properties;return t.cornerRadius||t.cornerRadiusBottomLeft||t.cornerRadiusBottomRight||t.cornerRadiusTopLeft||t.cornerRadiusTopRight}_isStroked(){const t=this.encoding.strokeWidth;return!(dn(t)&&!t.value)}async initializeGraphics(){await super.initializeGraphics();const t=[];this._isRoundedCorners()&&t.push("ROUNDED_CORNERS"),this._isStroked()&&t.push("STROKED"),this.createAndLinkShaders(zM,RM,t.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Lt(this.programInfo,{uMinSize:[t.minWidth,t.minHeight],uMinOpacity:t.minOpacity,uCornerRadii:[t.cornerRadiusTopRight??t.cornerRadius,t.cornerRadiusBottomRight??t.cornerRadius,t.cornerRadiusTopLeft??t.cornerRadius,t.cornerRadiusBottomLeft??t.cornerRadius]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new KM({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>Ta(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{vs(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},t)}findDatumAt(t,n){t=Dn(t);const r=this.unitView.getCollector().facetBatches.get(t);if(!r)return;const i=this.encoders,a=i.x.scale.type;if(Tr(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(c=>n>=o(c)&&n<s(c))}}}const b6=`/***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();}`,HM="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;}}",$n=1<<0,Br=1<<1,a0=1<<2,QM={};class He{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",Aa(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
97
- `)+`return function propagate(datum) {${Aa(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
98
- `)}}`)(this.children)}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),this._updatePropagator(),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.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 t=this.children[0];t.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=t,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(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){var r;const n=this.children.map(i=>i.subtreeToString(t+1)).join("");return" ".repeat(t*2)+"* "+((r=/^class ([A-Za-z0-9_]+)/.exec(""+this.constructor))==null?void 0:r[1])+`
99
- `+n}getGlobalObject(){return this.parent?this.parent.getGlobalObject():QM}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}_propagate(t){}}function $b(e){return e.type=="file"}function VM(e){return e.type=="facet"}class ey extends He{constructor(t){super(),this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),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(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,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(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function ZM(e,t,n){const r=new ey({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const YM={};class qM extends ys{constructor(t){super(t),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(),...YM}}fixEncoding(t){return Kb(t,this.properties.filled),Jb(t,this.properties.filled),delete t.color,delete t.opacity,t}initializeData(){super.initializeData();const t=this.unitView.getAccessor("semanticScore");t&&(this.sampledSemanticScores=Float32Array.from(ZM(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(GM,HM)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Ft(this.programInfo,{uInwardStroke:t.inwardStroke,uGradientStrength:t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new CM({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const t=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/t),1/3)}_getMaxPointSize(){const t=this.encoders.size;return t.constant?t(null):t.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const t=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(t<=0)return-1/0;if(t>=1)return 1/0;{const n=this.sampledSemanticScores;return zg(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>Ft(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>Io(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&ps(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const WM="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();}",XM="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 KM extends ys{constructor(t){super(t),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(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&Ht(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Ht(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=JM(this.properties.strokeDash);this.dashTexture=gs(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(WM,XM)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Ft(this.programInfo,{uMinLength:t.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(t.strokeCap)})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new EM({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return this.dashTexture&&n.push(()=>Ft(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>Io(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>ps(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function JM(e){if(e.length==0||e.length%2||e.findIndex(o=>Math.round(o)!=o||o<1||o>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((o,a)=>o+a),n=new Uint8Array(t);let r=!0,i=0;for(let o of e){for(;o;)n[i++]=r&&255||0,o--;r=!r}return n}const $M=`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);
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();}`,y6="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,Rr=1<<1,D0=1<<2,w6={};class Qe{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",_o(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
97
+ `)+`return function propagate(datum) {${_o(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
98
+ `)}}`)(this.children)}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),this._updatePropagator(),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.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 t=this.children[0];t.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=t,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(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.constructor.name}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
99
+ ${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():w6}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}_propagate(t){}}function xy(e){return e.type=="file"}function x6(e){return e.type=="facet"}class Ay extends Qe{constructor(t){super(),this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),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(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,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(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function A6(e,t,n){const r=new Ay({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const v6={};class E6 extends Ss{constructor(t){super(t),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(),...v6}}fixEncoding(t){return yy(t,this.properties.filled),wy(t,this.properties.filled),delete t.color,delete t.opacity,t}initializeData(){super.initializeData();const t=this.unitView.getAccessor("semanticScore");t&&(this.sampledSemanticScores=Float32Array.from(A6(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(b6,y6)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Lt(this.programInfo,{uInwardStroke:t.inwardStroke,uGradientStrength:t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new $M({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const t=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/t),1/3)}_getMaxPointSize(){const t=this.encoders.size;return t.constant?t(null):t.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const t=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(t<=0)return-1/0;if(t>=1)return 1/0;{const n=this.sampledSemanticScores;return rp(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>Lt(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>Ta(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&vs(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const C6="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();}",S6="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 D6 extends Ss{constructor(t){super(t),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(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&Zt(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Zt(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=I6(this.properties.strokeDash);this.dashTexture=As(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(C6,S6)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Lt(this.programInfo,{uMinLength:t.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(t.strokeCap)})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new JM({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return this.dashTexture&&n.push(()=>Lt(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>Ta(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>vs(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function I6(e){if(e.length==0||e.length%2||e.findIndex(a=>Math.round(a)!=a||a<1||a>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((a,o)=>a+o),n=new Uint8Array(t);let r=!0,i=0;for(let a of e){for(;a;)n[i++]=r&&255||0,a--;r=!r}return n}const _6=`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();}`,e6="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 t6 extends ys{constructor(t){super(t),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(t){return t.x||(t.x2=t.x),t.y2||(t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders($M,e6)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Ft(this.programInfo,{uSagittaScaleFactor:t.sagittaScaleFactor,uMinSagittaLength:t.minSagittaLength})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new SM({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:n6(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([o,a])=>[o,{...a,data:void 0}])),this.updateBufferInfo(i)}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const o of Object.entries(this.bufferInfo.attribs)){const[a,s]=o;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[a].numComponents*4)}Io(n,this.programInfo,this.bufferInfo),ps(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},t)}}function n6(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return n}const r6=`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;
111
+ vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}`,M6="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 T6 extends Ss{constructor(t){super(t),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(t){return t.x||(t.x2=t.x),t.y2||(t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(_6,M6)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Lt(this.programInfo,{uSagittaScaleFactor:t.sagittaScaleFactor,uMinSagittaLength:t.minSagittaLength})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new e6({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:N6(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(t){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)}Ta(n,this.programInfo,this.bufferInfo),vs(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},t)}}function N6(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return n}const B6=`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();}`,i6="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;}}",o6={left:-1,center:0,right:1},a6={top:-1,middle:0,bottom:1,alphabetic:1};class s6 extends ys{constructor(t){super(t),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?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.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(t){for(const n of as)this.properties.fitToBand&&o0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(r6,i6)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Ft(this.programInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[o6[t.align],a6[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uSqueeze:!!t.squeeze,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let o=0;const a="format"in r.text?it(r.text.format):u=>u;for(const u of n){const f=a(i(u)),l=Re(f)?f:f===null?"":""+f;o+=l&&l.length||0}const s=new DM({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||0)});s.addBatches(t.facetBatches);const c=s.toArrays();this.rangeMap.migrateEntries(c.rangeMap),this.updateBufferInfo(c)}prepareRender(t){const n=super.prepareRender(t);let r=.35;return this.properties.logoLetters&&(r/=2),n.push(()=>Ft(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:this.font.metrics.common.base/(this.glHelper.dpr/r)})),n.push(()=>Io(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>ps(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function ty(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let a=0,s=0;for(const p of e)a+=Uc(p.px)+(s0(p)?0:n),s+=Uc(p.grow);a-=n;const c=Math.max(0,t-a),u=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],l=[],h=p=>{const b=f.length;if(!b)return;const x=(p?n:0)*(o?-1:1);d-=x;for(let A=0;A<b;A++)l.push({location:d+(A+1)/(b+1)*x,size:0});d+=x,f.length=0};let d=o?Math.max(t,a):0+i;if(e.length==1&&s0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const b=e[p];if(s0(b))f.push(b);else{h(l.length>0);const x=Uc(b.px)+(s?Uc(b.grow)/s*c:0);o&&(d-=x),l.push({location:u(d),size:u(x)}),o?d-=n:d+=x+n}}return d+=o?n:-n,h(!1),l}function u6(e){let t=0,n=0;for(const r of e)t=Math.max(t,r.px??0),n=Math.max(n,r.grow??0);return{px:t,grow:n}}const ug=class{constructor(t,n){rt(this,cu);this.width=t,this.height=n}addPadding(t){return be(this,cu,gg).call(this,t.width,t.height)}subtractPadding(t){return be(this,cu,gg).call(this,-t.width,-t.height)}};let Di=ug;cu=new WeakSet,gg=function(t,n){return new ug({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};const ws=Object.freeze({px:0,grow:0}),c6=new Di(ws,ws);function s0(e){return!e.px&&!e.grow}function Uc(e){return e||0}function f6(e){return e&&(Et(e.px)||Et(e.grow))}function ny(e){if(ay(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(f6(e))return e;if(Et(e))return{px:e,grow:0};if(e==="container")return{px:0,grow:1};if(!e)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${e}`)}class gn{constructor(t,n,r,i){this.top=t||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(t){return t<=0?this:new gn(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new gn(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new gn(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):u0}static createFromRecord(t){return new gn(t.top,t.right,t.bottom,t.left)}static zero(){return u0}static createUniformPadding(t){return new gn(t,t,t,t)}}const u0=gn.createUniformPadding(0);Object.freeze(u0);const l6=/^([A-Za-z]+:)?\/\//;function h6(e,t){if(t&&l6.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const ry="VISIT_SKIP",xs="VISIT_STOP",iy=e=>e;class oy{constructor(t,n,r,i){this.context=n,this.parent=r,this.name=t.name||i,this.spec=t,this.resolutions={scale:{},axis:{}},this._broadcastHandlers={},this._capturingInteractionEventListeners={},this._nonCapturingInteractionEventListeners={},Yb(this),this.opacityFunction=iy,this.blockEncodingInheritance=!1,this.contributesToScaleDomain=!0}getPadding(){return this._cache("size/padding",()=>gn.createFromConfig(this.spec.padding))}getOverhang(){return gn.zero()}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?this.getSizeFromSpec().addPadding(this.getPadding()):c6)}getSizeFromSpec(){const t=n=>{var i;let r=this.spec[n];if(ay(r)){const o=r.step,a=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(a){let s=0;if(bi(a.type))s=a.domain().length;else if(["locus","index"].includes(a.type)){const u=a.domain();s=bo(u)-u[0]}else throw new Error(`Cannot use step-based size with "${a.type}" scale!`);const c=a;return s=oh(s,c.paddingInner(),c.paddingOuter()),{px:s*o,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(r&&ny(r))??{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new Di(t("width"),t("height")))}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.parent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getAncestors().map(t=>t.name).reverse().join("/")}getAncestors(){const t=[];let n=this;do t.push(n),n=n.parent;while(n);return t}handleBroadcast(t){for(const n of this._broadcastHandlers[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=this._broadcastHandlers[t];r||(r=[],this._broadcastHandlers[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;for(const o of i[n.type]||[])o(t,n)}addInteractionEventListener(t,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;let o=i[t];o||(o=[],i[t]=o),o.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==xs)return n}catch(n){throw n.view=this,n}}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===iy)&&(this.opacityFunction=g6(this))}onBeforeRender(){}render(t,n,r={}){}getEncoding(){const t=this.parent&&!this.blockEncodingInheritance?this.parent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(t){if(this.parent)return this.parent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return is(n)?[n.field]:(r=this.parent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}_getResolution(t,n){t=yo(t);let r=this;do{const i=r.resolutions[n][t];if(i)return i;r=r.parent}while(r)}getScaleResolution(t){return this._getResolution(t,"scale")}getAxisResolution(t){return this._getResolution(t,"axis")}getBaseUrl(){return h6(()=>{var t;return(t=this.parent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}getDynamicDataSource(){throw new Error("The view does not provide dynamic data!")}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Re(t)?t:t.text}_cache(t,n){return Mo(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":Oc(this,t);break;case"ancestors":for(const r of this.getAncestors())Oc(r,t);break;case"progeny":this.visit(r=>Oc(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}function d6(e){return"unitsPerPixel"in e}function g6(e){const t=e.spec.opacity;if(t!==void 0){if(Et(t))return n=>n*t;if(d6(t)){const n=o=>{var s;const a=(s=e.getScaleResolution(o))==null?void 0:s.getScale();if(["linear","index","locus"].includes(a==null?void 0:a.type))return a},r=t.channel?n(t.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=Kl().domain(t.unitsPerPixel).range(t.values).clamp(!0);return o=>{const s=Su(r.domain())/1e3;return i(s)*o}}}return n=>n}const ay=e=>!!(e!=null&&e.step);class To extends oy{constructor(t,n,r,i){super(t,n,r,i),this.spec=t}*[Symbol.iterator](){}replaceChild(t,n){throw new Error("Not implemented")}visit(t){let n;try{n=t(this)}catch(r){throw r.view=this,r}if(n===xs)return n;if(n!==ry){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===xs)return i}t.afterChildren&&t.afterChildren(this),t.postOrder&&t.postOrder(this)}}findDescendantByPath(t){for(const n of this)if(n.name===t[0]){if(t.length==1)return n;if(n instanceof To)return n.findDescendantByPath(t.slice(1))}}findChildByName(t){for(const n of this)if(n.name===t)return n}findDescendantByName(t){let n;return this.visit(r=>{if(r.name==t)return n=r,xs}),n}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getDefaultResolution(t,n){return"shared"}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}}function jc(e,t,n){if(n=n||[],e.some(a=>a===null)){if(e.every(a=>a===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(a,s)=>a===s||No(a)&&No(s)||No(a)&&s===!0||a===!0&&an(s),o=a=>{for(let s in a){const c=a[s];if(!n.includes(s)&&c!==void 0)if(r[s]!==void 0&&!i(r[s],c))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(a[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(No(u))No(c)&&(r[s]=jc([u,c],s));else if(No(c)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=jc([{},c],s)}else r[s]=c}}};for(const a of e)o(a);return r}function No(e){return an(e)&&!Array.isArray(e)}/*!
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();}`,F6="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;}}",k6={left:-1,center:0,right:1},L6={top:-1,middle:0,bottom:1,alphabetic:1};class z6 extends Ss{constructor(t){super(t),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?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.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(t){for(const n of Aa)this.properties.fitToBand&&S0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(B6,F6)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Lt(this.programInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[k6[t.align],L6[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uSqueeze:!!t.squeeze,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let a=0;const o="format"in r.text?it(r.text.format):u=>u;for(const u of n){const f=o(i(u)),l=Oe(f)?f:f===null?"":""+f;a+=l&&l.length||0}const s=new t6({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,this.properties.minBufferSize||0)});s.addBatches(t.facetBatches);const c=s.toArrays();this.rangeMap.migrateEntries(c.rangeMap),this.updateBufferInfo(c)}prepareRender(t){const n=super.prepareRender(t);let r=.35;this.properties.logoLetters&&(r/=2);const i=this.font.metrics.common.base/(this.unitView.context.devicePixelRatio/r);return n.push(()=>Lt(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:i})),n.push(()=>Ta(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>vs(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function vy(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const p of e)o+=$c(p.px)+(I0(p)?0:n),s+=$c(p.grow);o-=n;const c=Math.max(0,t-o),u=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],l=[],h=p=>{const b=f.length;if(!b)return;const x=(p?n:0)*(a?-1:1);d-=x;for(let A=0;A<b;A++)l.push({location:d+(A+1)/(b+1)*x,size:0});d+=x,f.length=0};let d=a?Math.max(t,o):0+i;if(e.length==1&&I0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const b=e[p];if(I0(b))f.push(b);else{h(l.length>0);const x=$c(b.px)+(s?$c(b.grow)/s*c:0);a&&(d-=x),l.push({location:u(d),size:u(x)}),a?d-=n:d+=x+n}}return d+=a?n:-n,h(!1),l}function R6(e){let t=0,n=0;for(const r of e)t=Math.max(t,r.px??0),n=Math.max(n,r.grow??0);return{px:t,grow:n}}const Dg=class{constructor(t,n){fe(this,bu);this.width=t,this.height=n}addPadding(t){return ee(this,bu,Fg).call(this,t.width,t.height)}subtractPadding(t){return ee(this,bu,Fg).call(this,-t.width,-t.height)}};let Mi=Dg;bu=new WeakSet,Fg=function(t,n){return new Dg({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};const Ds=Object.freeze({px:0,grow:0}),O6=new Mi(Ds,Ds);function I0(e){return!e.px&&!e.grow}function $c(e){return e||0}function P6(e){return e&&(St(e.px)||St(e.grow))}function Ey(e){if(Iy(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(P6(e))return e;if(St(e))return{px:e,grow:0};if(e==="container")return{px:0,grow:1};if(!e)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${e}`)}class dt{constructor(t,n,r,i){this.top=t||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(t){return t<=0?this:new dt(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new dt(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new dt(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new dt(Math.max(this.top,t.top),Math.max(this.right,t.right),Math.max(this.bottom,t.bottom),Math.max(this.left,t.left))}getHorizontal(){return new dt(0,this.right,0,this.left)}getVertical(){return new dt(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):_0}static createFromRecord(t){return new dt(t.top,t.right,t.bottom,t.left)}static zero(){return _0}static createUniformPadding(t){return new dt(t,t,t,t)}}const _0=dt.createUniformPadding(0);Object.freeze(_0);const U6=/^([A-Za-z]+:)?\/\//;function j6(e,t){if(t&&U6.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const Cy="VISIT_SKIP",Is="VISIT_STOP",Sy=e=>e;class Dy{constructor(t,n,r,i,a){fe(this,Kf);fe(this,xu);fe(this,go,{});fe(this,yu,{});fe(this,wu,{});Sn(this,"opacityFunction",Sy);if(!t)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||a,this.spec=t,this.resolutions={scale:{},axis:{}},gy(this),this.blockEncodingInheritance=!1,this.contributesToScaleDomain=!0,this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>dt.createFromConfig(this.spec.padding))}getOverhang(){return dt.zero()}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?ee(this,Kf,rE).call(this):O6)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return ee(this,xu,kg).call(this,"layoutParent")}getDataAncestors(){return ee(this,xu,kg).call(this,"dataParent")}handleBroadcast(t){for(const n of W(this,go)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=W(this,go)[t];r||(r=[],W(this,go)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?W(this,yu):W(this,wu);for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?W(this,yu):W(this,wu);let a=i[t];a||(a=[],i[t]=a),a.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==Is)return n}catch(n){throw n.view=this,n}}getDescendants(){const t=[];return this.visit(n=>{t.push(n)}),t}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Sy)&&(this.opacityFunction=H6(this))}onBeforeRender(){}render(t,n,r={}){}getEncoding(){const t=this.dataParent&&!this.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return hs(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=vi(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=vi(t);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}getDefaultResolution(t,n){return"independent"}getBaseUrl(){return j6(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Oe(t)?t:t.text}_cache(t,n){return Ba(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":Kc(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())Kc(r,t);break;case"progeny":this.visit(r=>Kc(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}go=new WeakMap,yu=new WeakMap,wu=new WeakMap,Kf=new WeakSet,rE=function(){const t=n=>{var i;let r=this.spec[n];if(Iy(r)){const a=r.step,o=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(Tr(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const u=o.domain();s=Wo(u)-u[0]}else throw new Error(`Cannot use step-based size with "${o.type}" scale!`);const c=o;return s=kh(s,c.paddingInner(),c.paddingOuter()),{px:s*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(r&&Ey(r))??{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new Mi(t("width"),t("height")))},xu=new WeakSet,kg=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function G6(e){return"unitsPerPixel"in e}function H6(e){const t=e.spec.opacity;if(t!==void 0){if(St(t))return n=>n*t;if(G6(t)){const n=a=>{var s;const o=(s=e.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=t.channel?n(t.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=Dh().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=Ru(r.domain())/1e3;return i(s)*a}}}return n=>n}const Iy=e=>!!(e!=null&&e.step);class Fa extends Dy{constructor(t,n,r,i,a){super(t,n,r,i,a),this.spec=t}*[Symbol.iterator](){}replaceChild(t,n){throw new Error("Not implemented")}visit(t){let n;try{n=t(this)}catch(r){throw r.view=this,r}if(n===Is)return n;if(n!==Cy){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===Is)return i}t.afterChildren&&t.afterChildren(this),t.postOrder&&t.postOrder(this)}}findDescendantByPath(t){for(const n of this)if(n.name===t[0]){if(t.length==1)return n;if(n instanceof Fa)return n.findDescendantByPath(t.slice(1))}}findChildByName(t){for(const n of this)if(n.name===t)return n}findDescendantByName(t){let n;return this.visit(r=>{if(r.name==t)return n=r,Is}),n}getDefaultResolution(t,n){return"shared"}}const _y=1;function M0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const u=f=>(f+o-e[0])/n*r+t[0];return u.invert=f=>(f-t[0])/r*n+e[0]-o,u.domain=function(f){if(arguments.length){e=WE(f),n=e[1]-e[0];const l=e[0]===0&&e[0]===0;if(n<_y&&!l){n=_y;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return u}else return e},u.range=function(f){return arguments.length?(t=[...f],r=t[1]-t[0],u):t},u.numberingOffset=function(f){return arguments.length?(s=f,u):s},u.padding=function(f){return arguments.length?(a=f,i=Math.min(1,f),u):i},u.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),u):i},u.paddingOuter=function(f){return arguments.length?(a=f,u):a},u.align=function(f){return arguments.length?(o=Math.max(0,Math.min(1,f)),u):o},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=f=>{const l=u.align(),h=u.numberingOffset();return Gu(e[0]-l+h,e[1]-l+h,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},u.tickFormat=(f,l)=>{if(l)throw new Error("Index scale's tickFormat does not support a specifier!");const d=si(e[0],e[1],Math.min(f,Math.ceil(n)))<1e5?it(","):it(".3s");return p=>d(p+s)},u.copy=()=>M0().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),u}function Q6(){const e=M0().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),a=e.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(f=>t.toChromosome(f)),c=Math.max(1,si(i[0],i[1],r)),u=[];for(let f=o.index;f<=s.index;f++){const l=t.chromosomes[f],h=Math.max(l.continuousStart+c,i[0]-(i[0]-l.continuousStart)%c),d=Math.min(l.continuousEnd-c/4,i[1]+1);for(let p=h;p<=d;p+=c){const b=p-a;b>=i[0]&&b<i[1]&&u.push(b)}}return u},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=e.domain(),o=a[1]-a[0],s=e.numberingOffset(),u=si(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?it(","):it(".3s"),f=l=>l-t.toChromosome(l).continuousStart;return l=>u(f(l)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function V6(e){return e.type=="locus"}function ef(e,t,n){if(n=n||[],e.some(o=>o===null)){if(e.every(o=>o===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||ka(o)&&ka(s)||ka(o)&&s===!0||o===!0&&un(s),a=o=>{for(let s in o){const c=o[s];if(!n.includes(s)&&c!==void 0)if(r[s]!==void 0&&!i(r[s],c))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(ka(u))ka(c)&&(r[s]=ef([u,c],s));else if(ka(c)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=ef([{},c],s)}else r[s]=c}}};for(const o of e)a(o);return r}function ka(e){return un(e)&&!Array.isArray(e)}/*!
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 sy(e,t,n){return Et(t)&&n!=null&&(t=Math.min(t,~~(Su(e.domain())/n)||1)),an(t)&&(t.step,t=t.interval),t}function uy(e,t,n){var r=e.range(),i=Math.floor(r[0]),o=Math.ceil(sn(r));if(i>o&&(r=o,o=i,i=r),t=t.filter(function(s){return s=e(s),i<=s&&s<=o}),n>0&&t.length>1){for(var a=[t[0],sn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,c){return!(c%2)});t.length<3&&(t=a)}return t}function p6(e,t){return e.bins?uy(e,m6(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function m6(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,o){return!(o%r)})}function b6(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?it(n):String;if(tm(e.type)){var i=w6(n);r=e.bins?i:y6(r,i)}return r}function y6(e,t){return function(n){return e(n)?t(n):""}}function w6(e){var t=pr(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return x6(it(t),it(".1f")(1)[1])}else return it(t)}function x6(e,t){return function(n){var r=e(n),i=r.indexOf(t),o,a;if(i<0)return r;for(o=A6(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function A6(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
139
+ */function My(e,t,n){return St(t)&&n!=null&&(t=Math.min(t,~~(Ru(e.domain())/n)||1)),un(t)&&(t.step,t=t.interval),t}function Ty(e,t,n){var r=e.range(),i=Math.floor(r[0]),a=Math.ceil(cn(r));if(i>a&&(r=a,a=i,i=r),t=t.filter(function(s){return s=e(s),i<=s&&s<=a}),n>0&&t.length>1){for(var o=[t[0],cn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,c){return!(c%2)});t.length<3&&(t=o)}return t}function Z6(e,t){return e.bins?Ty(e,Y6(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function Y6(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,a){return!(a%r)})}function W6(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?it(n):String;if(km(e.type)){var i=X6(n);r=e.bins?i:q6(r,i)}return r}function q6(e,t){return function(n){return e(n)?t(n):""}}function X6(e){var t=yr(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return K6(it(t),it(".1f")(1)[1])}else return it(t)}function K6(e,t){return function(n){var r=e(n),i=r.indexOf(t),a,o;if(i<0)return r;for(a=J6(r,i),o=a<r.length?r.slice(a):"";--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function J6(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.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 v6="locus",E6="index";var C6=5;function S6(e){const t=e.type;return!e.bins&&(t===go||t===Za||t===Ya)}function cy(e){return ct(e)&&![In,E6,v6].includes(e)}function fy(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var D6=Iu(["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 ly(e,t,n){n=fy(n);for(const r in e)if(!D6[r]){if(r==="padding"&&cy(t.type))continue;vt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}k6(t,e,F6(t,e,T6(t,e,n)))}function I6(e,t){const n=_6(e),r=ge(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&ct(i.type)&&(e.domain=[0,0]),ly(e,i,t),i}function _6(e){var t=e.type,n="",r;return t===In?In+"-"+go:(M6(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?In+"-":r===3?po+"-":""),(n+t||go).toLowerCase())}function M6(e){const t=e.type;return ct(t)&&t!==Y1&&t!==q1&&(e.scheme||e.range&&e.range.length&&e.range.every(Re))}function T6(e,t,n){if(!e.domain)return 0;n=fy(n);var r=N6(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,o=e.type,a=t.zero||t.zero===void 0&&S6(e),s,c;return i?(cy(o)&&t.padding&&i[0]!==sn(i)&&(i=B6(o,i,t.range,t.padding,t.exponent,t.constant)),(a||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,a&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(c=t.domainMid,(c<i[0]||c>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",c),i.splice(s,0,c))),e.domain(hy(o,i,n)),o===sh&&e.unknown(t.domainImplicit?_l:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&sy(e,t.nice)||null),i.length):0}function N6(e,t,n){return t?(e.domain(hy(e.type,t,n)),t.length):-1}function B6(e,t,n,r,i,o){var a=Math.abs(sn(n)-n[0]),s=a/(a-2*r),c=e===Cr?vg(t,null,s):e===Ya?Zf(t,null,s,.5):e===Za?Zf(t,null,s,i||1):e===rc?Uv(t,null,s,o||1):Ag(t,null,s);return t=t.slice(),t[0]=c[0],t[t.length-1]=c[1],t}function hy(e,t,n){if(tm(e)){var r=Math.abs(t.reduce(function(i,o){return i+(o<0?-1:o>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+Du(t))}return t}function F6(e,t,n){let r=t.bins;if(r&&!Ut(r)){const i=(r.start==null||r.stop==null)&&e.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?sn(i):r.stop,s=r.step;s||ze("Scale bins parameter missing step property."),r=Aa(o,a+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===ch&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function k6(e,t,n){var r=e.type,i=t.round||!1,o=t.range;if(t.rangeStep!=null)o=L6(r,t,n);else if(t.scheme&&(o=z6(r,t,n),vt(o))){if(e.interpolator)return e.interpolator(o);ze(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&oc(r))return e.interpolator(ac(c0(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(nm(t.interpolate,t.interpolateGamma)):vt(e.round)?e.round(i):vt(e.rangeRound)&&e.interpolate(i?Qa:vr),o&&e.range(c0(o,t.reverse))}function L6(e,t,n){e!==K1&&e!==uh&&ze("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===uh?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*oh(n,i,r)]}function z6(e,t,n){var r=t.schemeExtent,i,o;return Ut(t.scheme)?o=ac(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),o=lh(i),o||ze(`Unrecognized scheme name: ${t.scheme}`)),n=e===X1?n+1:e===ch?n-1:e===ah||e===W1?+t.schemeCount||C6:n,oc(e)?dy(o,r,t.reverse):vt(o)?Q4(dy(o,r),n):e===sh?o:o.slice(0,n)}function dy(e,t,n){return vt(e)&&(t||n)?H4(e,c0(t||[0,1],n)):e}function c0(e,t){return t?e.slice().reverse():e}const gy=it(",d");function R6(e,t){return e.chrom+":"+gy(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+gy(Math.ceil(t.pos))}const O6="https://genomespy.app/data/genomes/";class P6{constructor(t){if(this.config=t,!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(t){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:t+"/"+this.config.baseUrl:this.baseUrl=O6;try{this.setChromSizes(U6(await Gu({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(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,o={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(o);const a=o.name.replace(/^chr/i,"");for(const s of["chr"+a,"CHR"+a,"Chr"+a,o.number,""+o.number,a,o.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,o);n+=o.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=eo(this.startByIndex,t)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(t){const n=this.toChromosome(t);if(n)return{chrom:n.name,pos:Math.floor(t)-n.continuousStart}}getChromosome(t){return this.chromosomesByName.get(t)}formatInterval(t){return R6(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;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(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const o=this.chromosomes.findIndex(s=>s.name===n.chrom),a=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[o].size});for(let s=o+1;s<a;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(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.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,o=parseInt(n[2].replace(/,/g,"")),a=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):o;return[this.toContinuous(r,o-1),this.toContinuous(i,a)]}}}function U6(e){return oE(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function py(e){return an(e)&&"chrom"in e}function j6(e){return e.every(py)}class As extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof As&&t.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${t.type}`);for(const n of t)this.extend(n);return this}extendAllWithAccessor(t,n){for(const r of t)this.extend(n(r));return this}}class f0 extends As{constructor(){super(),this.type="quantitative"}extend(t){return t==null||Number.isNaN(t)?this:(t=+t,this.length?t<this[0]?this[0]=t:t>this[1]&&(this[1]=t):(this.push(t),this.push(t)),this)}}class my extends As{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(t){return t==null||Number.isNaN(t)?this:(this.uniqueValues.has(t)||(this.uniqueValues.add(t),this.push(t)),this)}}class by extends my{constructor(){super(),this.type="nominal"}}class G6 extends As{constructor(t){super();let n=0;for(let r=1;r<t.length;r++)n+=Math.sign(t[r]-t[r-1]);if(Math.abs(n)!=t.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(t));t.forEach(r=>this.push(r))}extend(t){if(this.includes(t))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const yy={quantitative:f0,index:f0,locus:f0,nominal:by,ordinal:my};function wy(e,t){if(e=="quantitative"&&H6(t)){const n=new G6(t);return n.type=e,n}else if(yy[e]){const n=new yy[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function H6(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function Q6(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function V6(e,t,n){return e*Math.pow(t/e,n)}const xy="quantitative",Ay="ordinal",vy="nominal",Ey="locus",Z6="index";class Y6{constructor(t){rt(this,cr);rt(this,fr);this.channel=t,this.members=[],this.type=null,this._zoomExtent=void 0,this._domainListeners=new Set,this.name=void 0,this._scale=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);this._domainListeners.add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);this._domainListeners.delete(n)}pushUnitView(t,n){var a;const r=Ah(t,n),i=r.type,o=(a=r==null?void 0:r.scale)==null?void 0:a.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!us(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:t,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const t=this._scale;if(!t)return!1;const n=t.domain();return ct(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}_getMergedScaleProps(){return Mo(this,"mergedScaleProps",()=>{const t=this.members.map(n=>Ah(n.view,n.channel).scale).filter(n=>n!==void 0);return jc(t,"scale",["domain"])})}getScaleProps(){return Mo(this,"scaleProps",()=>{const t=this._getMergedScaleProps();if(t===null||t.type=="null")return{type:"null"};const n={...this._getDefaultScaleProperties(this.type),...t};n.type||(n.type=q6(this.channel,this.type));const r=this.getInitialDomain();return r&&r.length>0?n.domain=r:bi(n.type)&&(n.domain=new by),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&bi(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),W6(n,this.channel),n})}getInitialDomain(){return this.getConfiguredDomain()??(this.type==Ey?this.getGenome().getExtent():this.getDataDomain())}getConfiguredDomain(){return this._reduceDomains(t=>us(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return this._reduceDomains(t=>us(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if(this._scale&&this._scale.type!="null"){const t=this.isDomainInitialized(),n=[...this._scale.domain()];Zb(this,"scaleProps");const r=this.getScaleProps();ly(r,this._scale),ct(this._scale.type)&&(this._zoomExtent=this._getZoomExtent());const i=[...this._scale.domain()];sc(i,n)||(be(this,fr,$i).call(this)&&t?(this._scale.domain(n),this.zoomTo(i,500)):be(this,cr,Ji).call(this))}}getScale(){if(this._scale)return this._scale;const t=this.getScaleProps(),n=I6(t);return this._scale=n,TC(n)&&n.genome(this.getGenome()),ct(n.type)&&(this._zoomExtent=this._getZoomExtent()),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return be(this,fr,$i).call(this)&&sc(this.getInitialDomain(),this.getDomain())}isZoomable(){return be(this,fr,$i).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!be(this,fr,$i).call(this))return!1;const i=this.getScale(),o=i.domain();let a=[...o],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=Rv(a,r||0),a=Ag(a,s,t);break;case"log":a=Ov(a,r||0),a=vg(a,s,t);break;case"pow":case"sqrt":{const c=i;a=Pv(a,r||0,c.exponent()),a=Zf(a,s,t,c.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return this._zoomExtent&&(a=jv(a,this._zoomExtent[0],this._zoomExtent[1])),[0,1].some(c=>a[c]!=o[c])?(i.domain(a),be(this,cr,Ji).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(Cu(n)&&(n=n?700:0),!be(this,fr,$i).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=(s=this.members[0])==null?void 0:s.view.context.animator,o=this.getScale(),a=o.domain();if(n>0&&a.length==2){const c=a[1]-a[0],u=a[0]+c/2,f=r[1]-r[0],l=r[0]+f/2;await i.transition({duration:n,easingFunction:Q6,onUpdate:h=>{const d=V6(c,f,h),p=(c-d)/(c-f),b=p*l+(1-p)*u;o.domain([b-d/2,b+d/2]),be(this,cr,Ji).call(this)}}),o.domain(r),be(this,cr,Ji).call(this)}else o.domain(r),i==null||i.requestRender(),be(this,cr,Ji).call(this)}resetZoom(){if(!be(this,fr,$i).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=this.getInitialDomain();return[0,1].some(r=>n[r]!=t[r])?(this._scale.domain(n),be(this,cr,Ji).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?Su(this._zoomExtent)/Su(this.getScale().domain()):1}_getZoomExtent(){const t=this.getScaleProps(),n=t.zoom;if(X6(n)&&Ut(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():this._scale.domain()}_getDefaultScaleProperties(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),ss(n)?r.nice=!this.isExplicitDomain():Ai(n)?r.scheme=t==vy?"tableau10":t==Ay?"blues":"viridis":gc(n)?r.range=Am(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r}getGenome(){var n;if(this.type!=="locus")return;const t=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.getScale();if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return py(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&j6(t)?this.getGenome().toContinuousInterval(t):t}_getViewPaths(){return this.members.map(t=>t.view.getPathString()).join(", ")}_reduceDomains(t){const n=this.members.filter(r=>!r.view.getAncestors().some(i=>!i.contributesToScaleDomain)).map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))}}cr=new WeakSet,Ji=function(){for(const t of this._domainListeners.values())t({type:"domain",scaleResolution:this})},fr=new WeakSet,$i=function(){const t=this.getScale().type;return ct(t)};function q6(e,t){if(t==Z6||t==Ey){if(pD(e))return t;throw new Error(`${e} does not support ${t} 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=["uniqueId","facetIndex","semanticScore","search","text","sample"].includes(e)?"null":n[e]?n[e][[vy,Ay,xy].indexOf(t)]:t==xy?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${e}" is not compatible with "${t}" data type. Use of a proper scale may be needed.`);return i}function W6(e,t){ss(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&ct(e.type)&&(e.clamp=!0)}function X6(e){return an(e)}function Cy(e,t=[]){const n=new Set;e.visit(r=>{for(const i of Object.values(r.resolutions.scale))t.includes(i.channel)||n.add(i)}),n.forEach(r=>r.reconfigure())}function l0(...e){for(const t of e)if(t!==void 0)return t}class K6{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=bo(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}pushUnitView(t,n){const r=t.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:t,channel:n})}getAxisProps(){return Mo(this,"axisProps",()=>{const t=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return t.length>0&&t.some(n=>n===null)?null:jc(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=o=>{var s;const a=Ah(o.view,o.channel);if(!ln(a))return{member:o,explicitTitle:l0((s=a.axis)==null?void 0:s.title,a.title),implicitTitle:l0(is(a)?a.field:void 0,vh(a)?a.expr:void 0)}},n=this.members.map(t),r=n.filter(o=>{var a;if(us(o.member.channel)&&!o.explicitTitle){const s=yo(o.member.channel);return((a=n.find(c=>c.member.view==o.member.view&&c.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>l0(o.explicitTitle,o.implicitTitle)).filter(Re));return i.size?[...i].join(", "):null}}class Sy extends oy{constructor(t,n,r,i){super(t,n,r,i),this.spec=t}}class Fr extends To{constructor(t,n,r,i){super(t,n,r,i),this.spec=t,this.children=(t.layer||[]).map((o,a)=>{if(b0(o)||m0(o))return n.createView(o,this,"layer"+a);throw new Error("LayerView accepts only unit or layer specs as children!")})}*[Symbol.iterator](){for(const t of this.children)yield t}render(t,n,r={}){if(this.isConfiguredVisible()){t.pushView(this,n);for(const i of this.children)i.render(t,n,r);t.popView(this)}}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),this.children.length&&this.children.at(-1).propagateInteractionEvent(t),!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}}class Dy{constructor(t,n){this.n=t,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 t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const o=[];t.push(o);for(let a=0;a<n;a++){const s=i*n+a;s<this.n&&o.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];t.push(o);for(let a=0;a<r;a++){const s=a*n+i;s<this.n&&o.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}function er(e){return()=>e}const lr=class{static create(t,n,r,i){return new lr(er(t),er(n),er(r),er(i))}_offset(t,n){const r=this["_"+t];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(t){return this._offset(t,0)}constructor(t,n,r,i){this._x=t,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(t){return t?this===t||this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height:!1}modify(t){if(!Object.keys(t).length)return this;const n=r=>{const i=t[r];return typeof i=="number"?er(i):typeof i=="function"?i:this._passThrough(r)};return new lr(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new lr(this._offset("x",t),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(t){return this.translate(t.x,t.y)}expand(t,n=1){return t.left==0&&t.top==0&&t.right==0&&t.bottom==0?this:new lr(t.left?this._offset("x",-t.left*n):this._passThrough("x"),t.top?this._offset("y",-t.top*n):this._passThrough("y"),t.width?this._offset("width",t.width*n):this._passThrough("width"),t.height?this._offset("height",t.height*n):this._passThrough("height"))}shrink(t){return this.expand(t,-1)}intersect(t){return this===t?this:new lr(()=>Math.max(this.x,t.x),()=>Math.max(this.y,t.y),()=>Math.min(this.x2,t.x2)-Math.max(this.x,t.x),()=>Math.min(this.y2,t.y2)-Math.max(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new lr(er(this.x),er(this.y),er(this.width),er(this.height))}containsPoint(t,n){return t>=this.x&&t<this.x2&&n>=this.y&&n<this.y2}normalizePoint(t,n){return{x:(t-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}`}};let Bo=lr;Vn(Bo,"ZERO",lr.create(0,0,0,0));const J6="chromosome_ticks_and_labels",$6={x:"width",y:"height"};function h0(e){return e=="x"?"y":"x"}const d0={x:["bottom","top"],y:["left","right"]},Iy=Object.fromEntries(Object.entries(d0).map(([e,t])=>t.map(n=>[n,e])).flat(1));function kr(e){return Iy[e]}class eT extends Fr{constructor(t,n,r,i){const o=n=="locus",a={...o?nT:_y,...tT(n,t),...t};super(o?rT(a,n):My(a,n),r,i,`axis_${t.orient}`),this.axisProps=a,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getOrient(){return this.axisProps.orient}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return Iy[this.axisProps.orient]=="x"?new Di(n,t):new Di(t,n)}getPerpendicularSize(){return g0(this.axisProps)}isPickingSupported(){return!1}}function g0(e){const t=kr(e.orient);let n=e.ticks&&e.tickSize||0;return e.labels&&(n+=e.labelPadding,t=="x"?n+=e.labelFontSize:n+=30),e.title&&(n+=e.titlePadding+e.titleFontSize),n=Math.min(e.maxExtent||1/0,Math.max(e.minExtent||0,n)),n}const _y={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 tT(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",o="middle",a=t.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(a)>30?(i=a>0==(n=="bottom")?"left":"right",o="middle"):o=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:a,labelBaseline:o}}function My(e,t){const n={...e,extent:g0(e)},r=kr(n.orient),i=h0(r),o=n.orient=="bottom"||n.orient=="right"?1:-1,a=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]:a,size:n.domainWidth}}),c=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*o,[i]:a,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:t},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:a},[i+"2"]:{value:a-n.tickSize/n.extent*(a?1:-1)}}}),f=()=>({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-a}}),l=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(u()),n.labels&&d.layer.push(c()),d},h={resolve:{scale:{[r]:"forced"}},[$6[h0(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:e}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(l()),n.title&&h.layer.push(f()),h}const nT={..._y,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 rT(e,t){const n={...e,extent:g0(e)},r=kr(n.orient),i=h0(r),o=n.orient=="bottom"||n.orient=="left"?1:0,a=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:o,[i+"2"]:o-n.chromTickSize/n.extent*(o?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let f;switch(n.orient){case"top":f={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":f={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":f={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":f={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:f={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...f},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let c;switch(n.orient){case"bottom":case"top":c={};break;case"left":c={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":c={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:c={}}const u=My({...e,...c},t);if(e.chromTicks||e.chromLabels){const f={name:J6,data:{lazy:{type:"axisGenome",channel:kr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&f.layer.push(a()),e.chromLabels){f.layer.push(s());let l;u.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{l=d.mark})),l&&(n.orient=="top"||n.orient=="bottom"?(l.viewportEdgeFadeWidthLeft=30,l.viewportEdgeFadeDistanceLeft=40):(l.viewportEdgeFadeWidthBottom=30,l.viewportEdgeFadeDistanceBottom=40))}u.layer.push(f)}return u}class iT extends Fr{constructor(t,n,r,i){const a={...n=="locus"?oT:Ty,...t};super(cT(a,n),r,i,`axisGrid_${t.orient}`),this.axisProps=a,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Ty={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},oT={...Ty,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function aT(e,t){const n=e,r=kr(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:e}},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:t}}}}function sT(e,t){const n=e,r=kr(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:t,band:0}}}}function uT(e,t){const n=e,r=kr(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:t,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 cT(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(uT(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(sT(n,t)),n.grid&&n.gridOpacity>0&&r.push(aT(n,t)),{name:"grid_layers",resolve:{scale:{[kr(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const Ny={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"},fT={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},lT={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},hT={start:0,middle:.5,end:1},dT={start:"left",middle:"center",end:"right"};function gT(e){if(!e)return;const t=Re(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":fT,overlay:lT}[t.style]??{},r={...Ny,...n,...t};let i={},o={x:0,y:0};const a=hT[r.anchor??"middle"];switch(r.orient){case"top":o={x:a,y:1},i={baseline:"alphabetic",angle:0};break;case"right":o={x:1,y:1-a},i={baseline:"alphabetic",angle:90};break;case"bottom":o={x:a,y:0},i={baseline:"top",angle:0};break;case"left":o={x:0,y:a},i={baseline:"alphabetic",angle:-90};break}const s={...Ny,...i,...n,...t},c={xOffset:0,yOffset:0};switch(r.orient){case"top":c.yOffset=-s.offset;break;case"right":c.xOffset=s.offset;break;case"bottom":c.yOffset=s.offset;break;case"left":c.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...c,text:s.text,align:s.align??dT[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 pT(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,o=i.deltaMode?120:1;let{x:a,y:s}=e.point;if(r){const c=r.mark.encoders;c.x&&!c.x2&&!c.x.constantValue&&(a=+c.x(r.datum)*t.width+t.x),c.y&&!c.y2&&!c.y.constantValue&&(s=(1-+c.y(r.datum))*t.height+t.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:a,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*o/300}):n({x:a,y:s,xDelta:-i.deltaX*o,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let o=i;const a=c=>{n({x:o.clientX,y:o.clientY,xDelta:c.clientX-o.clientX,yDelta:c.clientY-o.clientY,zDelta:0}),o=c},s=c=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",a,!1)}}class By extends To{constructor(n,r,i,o,a){super(n,r,i,o);rt(this,fu);rt(this,Gn);rt(this,zf);rt(this,Rf);rt(this,qi);rt(this,lu);rt(this,hu);rt(this,du);rt(this,Of);rt(this,fa,1/0);rt(this,la,10);rt(this,rn,[]);rt(this,ha,0);this.spec=n,ba(this,la,n.spacing??10),ba(this,fa,a),ba(this,rn,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){n.parent??(n.parent=this),Me(this,rn).push(be(this,fu,pg).call(this,n)),Iv(this,ha)._++}setChildren(n){for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=Me(this,rn).findIndex(o=>o.view==n);if(i>=0)Me(this,rn)[i]=be(this,fu,pg).call(this,r);else throw new Error("Not my child view!")}get children(){return Me(this,rn).map(n=>n.view)}get childCount(){return Me(this,rn).length}onScalesResolved(){super.onScalesResolved(),be(this,Rf,Tv).call(this)}*[Symbol.iterator](){for(const n of Me(this,rn)){n.background&&(yield n.background);for(const r of Object.values(n.gridLines))yield r;for(const r of Object.values(n.axes))yield r;yield n.view,n.title&&(yield n.title)}}getOverhang(){const n=be(this,qi,wu).call(this,"column"),r=be(this,qi,wu).call(this,"row");return!n.length||!r.length?gn.zero():new gn(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)}getSize(){return this._cache("size",()=>new Di(be(this,hu,bg).call(this,"column"),be(this,hu,bg).call(this,"row")).subtractPadding(this.getOverhang()).addPadding(this.getPadding()))}render(n,r,i={}){if(!this.isConfiguredVisible())return;this.parent||(r=r.shrink(this.getPadding())),n.pushView(this,r);const o={devicePixelRatio:this.context.glHelper.dpr},a=ty(be(this,lu,mg).call(this,"column"),r.width,o),s=ty(be(this,lu,mg).call(this,"row"),r.height,o),c=new Dy(Me(this,Gn,ei).length,Me(this,fa)??1/0);for(const[u,f]of Me(this,Gn,ei).entries()){const{view:l,axes:h,gridLines:d,background:p,title:b}=f,[x,A]=c.getCellCoords(u),D=a[be(this,du,yg).call(this,"column",x)],_=s[be(this,du,yg).call(this,"row",A)],C=l.getSize(),T=l.getPadding().subtract(l.getOverhang()),B=D.location+T.left,S=_.location+T.top,z=(C.width.grow?D.size:C.width.px)-T.width,E=(C.height.grow?_.size:C.height.px)-T.height,N=new Bo(()=>r.x+B,()=>r.y+S,()=>z,()=>E);f.coords=N,p==null||p.render(n,N,i);for(const Z of Object.values(d))Z.render(n,N,i);const F=yT(l);F&&l.render(n,N,i);for(const[Z,W]of Object.entries(h)){const Y=W.axisProps;let ye;const Ce=W.getPerpendicularSize();Z=="bottom"?ye=N.translate(0,N.height+Y.offset).modify({height:Ce}):Z=="top"?ye=N.translate(0,-Ce-Y.offset).modify({height:Ce}):Z=="left"?ye=N.translate(-Ce-Y.offset,0).modify({width:Ce}):Z=="right"&&(ye=N.translate(N.width+Y.offset,0).modify({width:Ce})),W.render(n,ye)}F||l.render(n,N,i),b==null||b.render(n,N,{...i,clipRect:void 0})}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=Me(this,Gn,ei).find(o=>o.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof dt||i instanceof Fr)&&pT(n,r.coords,o=>be(this,Of,Nv).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}fa=new WeakMap,la=new WeakMap,rn=new WeakMap,ha=new WeakMap,fu=new WeakSet,pg=function(n){var i;const r={view:n,background:void 0,axes:{},gridLines:{},coords:Bo.ZERO};if(n instanceof dt||n instanceof Fr){const o=(i=n.spec)==null?void 0:i.view;if(o!=null&&o.fill||o!=null&&o.stroke){const s=new dt(mT(o),this.context,n,"background"+Me(this,ha));s.blockEncodingInheritance=!0,r.background=s}const a=gT(n.spec.title);if(a){const s=new dt(a,this.context,n,"title"+Me(this,ha));s.blockEncodingInheritance=!0,r.title=s}}return r},Gn=new WeakSet,ei=function(){return Me(this,rn).filter(n=>n.view.isConfiguredVisible())},zf=new WeakSet,Mv=function(){return new Dy(Me(this,Gn,ei).length,Me(this,fa)??1/0)},Rf=new WeakSet,Tv=function(){if(Object.keys(this.resolutions.axis).length)throw new Error("GridView (concat, vconcat, hconcat) does not currently support shared axes!");for(const n of Me(this,rn)){const{view:r,axes:i,gridLines:o}=n,a=(s,c,u)=>{const f=s.getAxisProps();if(f!==null){if(!f.orient){for(const l of d0[c])if(!i[l]){f.orient=l;break}if(!f.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(f.title??(f.title=s.getTitle()),!d0[c].includes(f.orient))throw new Error(`Invalid axis orientation "${f.orient}" on channel "${c}"!`);if(i[f.orient])throw new Error(`An axis with the orient "${f.orient}" already exists!`);i[f.orient]=new eT(f,s.scaleResolution.type,this.context,u),(f.grid||f.chromGrid)&&(o[f.orient]=new iT(f,s.scaleResolution.type,this.context,u))}};if(r instanceof dt||r instanceof Fr)for(const s of["x","y"]){const c=r.resolutions.axis[s];c&&a(c,s,r)}if(r instanceof Fr){for(const s of r.children)for(const[c,u]of Object.entries(s.resolutions.axis)){const f=u.getAxisProps();f&&f.orient&&a(u,c,s)}for(const s of r.children)for(const[c,u]of Object.entries(s.resolutions.axis)){const f=u.getAxisProps();f&&!f.orient&&a(u,c,s)}}[...Object.values(i),...Object.values(o)].forEach(s=>s.visit(c=>{c instanceof dt&&c.resolve("scale")}))}},qi=new WeakSet,wu=function(n){const r=n=="column"?["left","right"]:["top","bottom"],i=n=="column"?"width":"height",o=(a,s)=>a.map(c=>{const u=Me(this,Gn,ei)[c].axes[r[s]];if(u)return Math.max(u.getPerpendicularSize()+u.axisProps.offset,0);const f=Me(this,Gn,ei)[c].view.getOverhang();return n=="column"?s?f.right:f.left:s?f.bottom:f.top}).reduce((c,u)=>Math.max(c,u),0);return Me(this,zf,Mv)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:o(a,0),axisAfter:o(a,1),view:u6(a.map(s=>Me(this,Gn,ei)[s].view.getSize()[i]))}))},lu=new WeakSet,mg=function(n){const r=be(this,qi,wu).call(this,n),i=[];i.push(ws);for(const[o,a]of r.entries())o>0&&i.push({px:Me(this,la),grow:0}),(o==0||this.wrappingFacet)&&i.push(ws),i.push({px:a.axisBefore,grow:0}),i.push(a.view),i.push({px:a.axisAfter,grow:0}),(o==r.length-1||this.wrappingFacet)&&i.push(ws);return i},hu=new WeakSet,bg=function(n){let r=0,i=0;const o=(n=="row"&&this.spec.height)??(n=="column"&&this.spec.width);if(o||o===0)return ny(o);const a=be(this,qi,wu).call(this,n);for(const[s,c]of a.entries())s>0&&(i+=Me(this,la)),(s==0||this.wrappingFacet)&&(i+=0),i+=c.axisBefore,i+=c.view.px??0,r+=c.view.grow??0,i+=c.axisAfter,(s==a.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},du=new WeakSet,yg=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Of=new WeakSet,Nv=function(n,r,i){for(const[o,a]of Object.entries(bT(r))){if(a.size<=0)continue;const s=n.normalizePoint(i.x,i.y),c=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:c.x-s.x,y:c.y-s.y};for(const f of a)f.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?u.x:-u.y)}this.context.animator.requestRender()};function mT(e){return{configurableVisibility:!1,data:{values:[{}]},mark:{fill:null,strokeWidth:1,fillOpacity:e.fill?1:0,...e,type:"rect",clip:!1,tooltip:null}}}function bT(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),t}function yT(e){let t=!0;return e.visit(n=>{n instanceof dt&&t&&(t=n.mark.properties.clip)}),t}class p0 extends By{constructor(t,n,r,i){super(t,n,r,i,w0(t)?t.columns:y0(t)?1:1/0),this.spec=t}_createChildren(){const t=this.spec,n=w0(t)?t.concat:y0(t)?t.vconcat:t.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,"grid"+i)))}}class wT{constructor(){this.types=[];const t=n=>(r,i,o,a)=>new n(r,i,o,r.name??a);this.addViewType(xT,t(Sy)),this.addViewType(b0,t(Fr)),this.addViewType(m0,t(dt)),this.addViewType(y0,t(p0)),this.addViewType(AT,t(p0)),this.addViewType(w0,t(p0))}addViewType(t,n){this.types.push({specGuard:t,factory:n})}createView(t,n,r,i){const o=this.types.find(a=>a.specGuard(t));if(o)return o.factory(t,n,r,i??"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=this.types.filter(r=>r.specGuard(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function m0(e){return"mark"in e&&(Re(e.mark)||an(e.mark))}function b0(e){return"layer"in e&&an(e.layer)}function Fy(e){return e&&(m0(e)||b0(e))&&"aggregateSamples"in e}function xT(e){return"import"in e}function y0(e){return"vconcat"in e&&Ut(e.vconcat)}function AT(e){return"hconcat"in e&&Ut(e.hconcat)}function w0(e){return"concat"in e&&Ut(e.concat)}const vT={point:qM,rect:jM,rule:KM,link:t6,text:s6};class dt extends To{constructor(t,n,r,i){super(t,n,r,i),this.spec=t;const o=vT[this.getMarkType()];if(o)this.mark=new o(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.sampleAggregateViews=[],this._initializeAggregateViews(),this.coords=void 0}*[Symbol.iterator](){for(const t of this.sampleAggregateViews)yield t}replaceChild(t,n){const r=this.sampleAggregateViews.indexOf(t);if(r>=0)this.sampleAggregateViews[r]=n;else throw new Error("Not my child view!")}render(t,n,r={}){this.isConfiguredVisible()&&(this.coords=n,t.pushView(this,n),t.renderMark(this.mark,r),t.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(t){const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Ht(i))continue;let o=yo(i.resolutionChannel??r);if(t=="axis"&&!ss(o))continue;let a=this;for(;(a.getConfiguredOrDefaultResolution(o,t)=="forced"||a.parent instanceof To&&["shared","excluded","forced"].includes(a.parent.getConfiguredOrDefaultResolution(o,t)))&&a.getConfiguredOrDefaultResolution(o,t)!="excluded";)a=a.parent;a.resolutions[t][o]||(a.resolutions[t][o]=t=="scale"?new Y6(o):new K6(o)),ss(r)?a.resolutions[t][o].pushUnitView(this,r):t=="scale"&&a.resolutions[t][o].pushUnitView(this,r)}}getAccessor(t){return this._cache("accessor/"+t,()=>{const n=this.mark.encoding;if(n&&n[t])return this.context.accessorFactory.createAccessor(n[t])})}getFacetAccessor(t){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(t){if(us(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!Ht(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(t){const n=this._validateDomainQuery(t),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??t);return wy(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let c;const u=this.mark.encoding[s];if(u){const f=this.context.accessorFactory.createAccessor(u);if(f)if(c=wy(r),f.constant)c.extend(f({}));else{const l=this.getCollector();l!=null&&l.completed&&l.visitData(h=>c.extend(f(h)))}}return c};let o=i(t);const a=Eh[t];if(a){const s=i(a);s&&o.extendAll(s)}return o}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return as.map(t).reduce((n,r)=>n*r,1)}_initializeAggregateViews(){if(Fy(this.spec))for(const t of this.spec.aggregateSamples){const n=t.transform??[];n.length&&bo(n).type!="collect"&&n.push({type:"collect"}),n.push({type:"mergeFacets"}),t.transform=n,t.encoding={...t.encoding??{},sample:null};const r=this.context.createView(t,this,"summaryView");r.getFacetFields=i=>{},this.sampleAggregateViews.push(r)}}propagateInteractionEvent(t){t.target=this}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*x0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of x0(r,[...t,n]))yield i;else yield[[...t,n],r]}class ky extends He{get behavior(){return a0}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new ri([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){VM(t)&&(this._data=[],this.facetBatches.set(_n(t.facetId),this._data))}complete(){var i,o;const t=(i=this.params)==null?void 0:i.sort,n=t?Eg(t.field,t.order):void 0,r=a=>{n&&a.sort(n)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.params.groupby.map(c=>Ae(c)),s=Mu(this._data,...a);this.facetBatches.clear();for(const[c,u]of x0(s))this.facetBatches.set(c,u)}for(const a of this.facetBatches.values())r(a);if(this.children.length)for(const[a,s]of this.facetBatches.entries()){if(a){const c={type:"facet",facetId:a};for(const u of this.children)u.beginBatch(c)}for(const c of s)this._propagate(c)}super.complete();for(const a of this.observers)a(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const t=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of t.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(t){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)t(n[r])}getItemCount(){let t=0;for(const n of this.facetBatches.values())t+=n.length;return t}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class Gc{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,o=this.values[i];if(n>=o)break;this.ids[r]=this.ids[i],this.values[r]=o,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=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 o=0;for(;o<i;){let a=(o<<1)+1;const s=a+1;let c=this.ids[a],u=this.values[a];const f=this.values[s];if(s<this.length&&f<u&&(a=s,c=this.ids[s],u=f),u>=r)break;this.ids[o]=c,this.values[o]=u,o=a}this.ids[o]=n,this.values[o]=r}return t}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 ET extends He{get behavior(){return $n}constructor(t){super(),this.params=t,this.startAccessor=Ae(t.start),this.endAccessor=Ae(t.end),this.chromAccessor=t.chrom?Ae(t.chrom):n=>{},this.weightAccessor=t.weight?Ae(t.weight):n=>1,this.as={coverage:t.as||"coverage",start:t.asStart||t.start,end:t.asEnd||t.end,chrom:t.asChrom||t.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 Gc}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let c,u,f,l=0,h;const d=this.ends;d.clear();const p=(x,A,D)=>{if(x==A)return;let _=!1;c&&(c[t]===D?(c[n]=A,_=!0):c[t]!=0&&this._propagate(c)),_||(c=this.createSegment(x,A,D,f))},b=()=>{let x;for(;(x=d.peekValue())!==void 0;)p(h,x,l),h=x,l-=d.pop();h=void 0,c&&(this._propagate(c),c=void 0)};this.handle=x=>{const A=i(x);let D;for(;(D=d.peekValue())!==void 0&&D<A;)p(h,D,l),h=D,l-=d.pop();if(r){let C=a(x);C!==u&&(b(),f=C,u=f)}h!==void 0&&p(h,A,l),h=A;const _=s(x);l+=_,d.push(_,o(x))},this.complete=()=>{b(),super.complete()}}}function CT(e,t,n=0,r=e.length){const i=new Gc,o=r-n;let a;for(a=0;a<t&&a<o;a++)i.push(a,e[n+a]);for(;a<o;a++){const u=e[n+a];u>=i.peekValue()&&(i.push(a,u),i.pop())}const s=[];let c;for(;(c=i.pop())!==void 0;)s.push(n+c);return s.reverse()}class ST{constructor(t,n=-1/0,r=1/0){this.maxSize=t,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(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const o=this._findSlot(t,n,i);return o>=0?o:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=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(t,n);if(r<0)return!1;const i=this.n++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class DT extends He{get behavior(){return a0}constructor(t,n){if(super(),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Ae(this.params.pos),this.posBisector=_u(this.posAccessor),this.scoreAccessor=Ae(this.params.score),this.widthAccessor=Ae(this.params.width),this.laneAccessor=this.params.lane?Ae(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 t=this.posAccessor;this._data.sort((n,r)=>t(n)-t(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new ST(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const t=this.resolution.getScale(),n=(a=this.resolution.members[0].view.coords)==null?void 0:a[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,o=CT(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const c=this._data[s],u=t(this.posAccessor(c))*n,f=this.widthAccessor(c)/2+this.padding;this.reservationMaps.get(this.laneAccessor(c)).reserve(u-f,u+f)&&this._propagate(c)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class IT extends He{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=xh(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}const _T="0".charCodeAt(0);function*MT(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const o=e.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-_T}yield r}class TT extends He{get behavior(){return $n}constructor(t){super();const n=Ae(t.exons??"exons"),r=Ae(t.start??"start"),[i,o]=t.as||["exonStart","exonEnd"];this.handle=a=>{let s=r(a),c=s,u=!0;const f=n(a);for(const l of MT(f)){if(u)c=s+l;else{s=c+l;const h=Object.assign({},a);h[i]=c,h[o]=s,this._propagate(h)}u=!u}}}}class NT extends He{get behavior(){return $n}constructor(t){super();const n=_n(t.field).map(o=>Ae(o)),r=_n(t.separator),i=_n(t.as||t.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=o=>{if(n.some(c=>!c(o)))return;const a=n.map((c,u)=>c(o).split(r[u]));BT(a,o);const s=a[0].length;for(let c=0;c<s;c++){const u=Object.assign({},o);for(let f=0;f<n.length;f++)u[i[f]]=a[f][c];this._propagate(u)}}}}function BT(e,t){const n=e.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(t))}class FT extends He{get behavior(){return Br}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=xh(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class Ly extends He{get behavior(){return Br}constructor(t,n){super();const r=t.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 o=Ae(t.chrom),a=_n(t.pos).map(p=>Ae(p)),s=_n(t.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const c=_n(t.offset);let u;if(c.length==0)u=new Array(a.length).fill(0);else if(c.length==1)u=new Array(a.length).fill(c[0]);else if(c.length==a.length)u=c;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((p,b)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${b}](datum) - ${u[b]};`).join(`
148
- `));let l,h=0;const d=p=>{if(p!==l){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);l=p}return h};this.handle=p=>{f(p,d(o(p)),a),this._propagate(p)}}}const zy={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 kT extends He{get behavior(){return Br}constructor(t){super();const n=r0(zy),r=Ae(t.field),i=t.as,o=t.fontSize;this.handle=a=>{const s=r(a);s!==void 0?a[i]=n.measureWidth(s,o):a[i]=0,this._propagate(a)}}}const LT=65536;class zT extends He{get behavior(){return Br}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Et(t.spacing)?t.spacing:1,i=Ae(t.start),o=Ae(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const a=new Float64Array(LT),s=Ae(t.preference),c=t.preferredOrder;let u=1/0;this.handle=f=>{const l=i(f);l<u&&a.fill(-1/0),u=l;const h=c.indexOf(s(f));let d=-1;if(h>=0&&a[h]<l)d=h;else{const p=i(f);for(d=0;d<a.length&&!(a[d]<p);d++);if(d>=a.length)throw new Error("Out of lanes!")}a[d]=o(f)+r,f[n]=d,this._propagate(f)}}else{const a=new Gc,s=new Gc;let c=-1/0,u=0;this.handle=f=>{const l=i(f);for(;a.length&&(a.peekValue()<=l||l<c);){const d=a.pop();s.push(d,d)}c=l;let h=s.pop();h===void 0&&(h=u++),f[n]=h,this._propagate(f),a.push(h,o(f)+r)}}}}class RT extends He{get behavior(){return $n}constructor(t){if(super(),t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>Ae(i)),r=t.as?t.as:n.map(Ue);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class OT extends He{get behavior(){return Br}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Ae(t.field);this.handle=o=>{const a=i(o);if(Re(a)){const s=a.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 c=0;c<r.length;c++)o[r[c]]=s[c+1]}else if(t.skipInvalidInput)for(let c=0;c<r.length;c++)o[r[c]]=void 0;else throw new Error(`"${a}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof a}, field content: "${a}".`);this._propagate(o)}}}class PT extends He{get behavior(){return $n}constructor(t){super();const n=_n(t.columnRegex).map(h=>new RegExp(h)),r=_n(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,o=t.asKey||"sample";let a,s,c;const u=h=>{var x;const d=Object.keys(h),p=new Map;for(const[A,D]of n.entries())for(const _ of d){const C=(x=D.exec(_))==null?void 0:x[1];if(C!==void 0){let T=p.get(C);T||(T=[],p.set(C,T)),T[A]=_}}a=[...p.entries()],s=d.filter(A=>!n.some(D=>D.test(A))&&!(i&&i.test(A)));const b=[...s.map(A=>JSON.stringify(A)+": datum["+JSON.stringify(A)+"]"),JSON.stringify(o)+": sampleId",...r.map(A=>JSON.stringify(A)+": null")];c=new Function("datum","sampleId",`return {
147
+ */const $6="locus",eT="index";var tT=5;function nT(e){const t=e.type;return!e.bins&&(t===ya||t===ss||t===us)}function Ny(e){return lt(e)&&![Nn,eT,$6].includes(e)}function By(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var rT=Pu(["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 Fy(e,t,n){n=By(n);for(const r in e)if(!rT[r]){if(r==="padding"&&Ny(t.type))continue;Ct(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}lT(t,e,fT(t,e,sT(t,e,n)))}function iT(e,t){const n=aT(e),r=be(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&lt(i.type)&&(e.domain=[0,0]),Fy(e,i,t),i}function aT(e){var t=e.type,n="",r;return t===Nn?Nn+"-"+ya:(oT(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Nn+"-":r===3?wa+"-":""),(n+t||ya).toLowerCase())}function oT(e){const t=e.type;return lt(t)&&t!==Dm&&t!==Im&&(e.scheme||e.range&&e.range.length&&e.range.every(Oe))}function sT(e,t,n){if(!e.domain)return 0;n=By(n);var r=uT(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&nT(e),s,c;return i?(Ny(a)&&t.padding&&i[0]!==cn(i)&&(i=cT(a,i,t.range,t.padding,t.exponent,t.constant)),(o||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(c=t.domainMid,(c<i[0]||c>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",c),i.splice(s,0,c))),e.domain(ky(a,i,n)),a===zh&&e.unknown(t.domainImplicit?rh:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&My(e,t.nice)||null),i.length):0}function uT(e,t,n){return t?(e.domain(ky(e.type,t,n)),t.length):-1}function cT(e,t,n,r,i,a){var o=Math.abs(cn(n)-n[0]),s=o/(o-2*r),c=e===Mr?Hg(t,null,s):e===us?dl(t,null,s,.5):e===ss?dl(t,null,s,i||1):e===vc?yE(t,null,s,a||1):Gg(t,null,s);return t=t.slice(),t[0]=c[0],t[t.length-1]=c[1],t}function ky(e,t,n){if(km(e)){var r=Math.abs(t.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+Ou(t))}return t}function fT(e,t,n){let r=t.bins;if(r&&!Ht(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?cn(i):r.stop,s=r.step;s||Re("Scale bins parameter missing step property."),r=_o(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===Oh&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function lT(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=hT(r,t,n);else if(t.scheme&&(a=dT(r,t,n),Ct(a))){if(e.interpolator)return e.interpolator(a);Re(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Cc(r))return e.interpolator(Sc(T0(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(Lm(t.interpolate,t.interpolateGamma)):Ct(e.round)?e.round(i):Ct(e.rangeRound)&&e.interpolate(i?as:Ir),a&&e.range(T0(a,t.reverse))}function hT(e,t,n){e!==Tm&&e!==Rh&&Re("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===Rh?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*kh(n,i,r)]}function dT(e,t,n){var r=t.schemeExtent,i,a;return Ht(t.scheme)?a=Sc(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=Uh(i),a||Re(`Unrecognized scheme name: ${t.scheme}`)),n=e===Mm?n+1:e===Oh?n-1:e===Lh||e===_m?+t.schemeCount||tT:n,Cc(e)?Ly(a,r,t.reverse):Ct(a)?zD(Ly(a,r),n):e===zh?a:a.slice(0,n)}function Ly(e,t,n){return Ct(e)&&(t||n)?LD(e,T0(t||[0,1],n)):e}function T0(e,t){return t?e.slice().reverse():e}const zy=it(",d");function gT(e,t){return e.chrom+":"+zy(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+zy(Math.ceil(t.pos))}const pT="https://genomespy.app/data/genomes/";class mT{constructor(t){if(this.config=t,!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(t){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:t+"/"+this.config.baseUrl:this.baseUrl=pT;try{this.setChromSizes(bT(await ec({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(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,a={...t[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(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=aa(this.startByIndex,t)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(t){const n=this.toChromosome(t);if(n)return{chrom:n.name,pos:Math.floor(t)-n.continuousStart}}getChromosome(t){return this.chromosomesByName.get(t)}formatInterval(t){return gT(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;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(t){const n=t[0],r=t[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(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.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 bT(e){return RE(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Ry(e){return un(e)&&"chrom"in e}function yT(e){return e.every(Ry)}class _s extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof _s&&t.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${t.type}`);for(const n of t)this.extend(n);return this}extendAllWithAccessor(t,n){for(const r of t)this.extend(n(r));return this}}class N0 extends _s{constructor(){super(),this.type="quantitative"}extend(t){return t==null||Number.isNaN(t)?this:(t=+t,this.length?t<this[0]?this[0]=t:t>this[1]&&(this[1]=t):(this.push(t),this.push(t)),this)}}class Oy extends _s{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(t){return t==null||Number.isNaN(t)?this:(this.uniqueValues.has(t)||(this.uniqueValues.add(t),this.push(t)),this)}}class Py extends Oy{constructor(){super(),this.type="nominal"}}class wT extends _s{constructor(t){super();let n=0;for(let r=1;r<t.length;r++)n+=Math.sign(t[r]-t[r-1]);if(Math.abs(n)!=t.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(t));t.forEach(r=>this.push(r))}extend(t){if(this.includes(t))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const Uy={quantitative:N0,index:N0,locus:N0,nominal:Py,ordinal:Oy};function jy(e,t){if(e=="quantitative"&&xT(t)){const n=new wT(t);return n.type=e,n}else if(Uy[e]){const n=new Uy[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function xT(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function AT(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function vT(e,t,n){return e*Math.pow(t/e,n)}be("index",M0,["continuous"]),be("locus",Q6,["continuous"]),be("null",Dc,[]);const Gy="quantitative",Hy="ordinal",Qy="nominal",Vy="locus",ET="index";class CT{constructor(t){fe(this,lr);fe(this,Jf);fe(this,mo);fe(this,hr);fe(this,Au);fe(this,$f);fe(this,Ig);fe(this,vu);fe(this,fr,void 0);fe(this,po,new Set);fe(this,pt,void 0);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,po).add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,po).delete(n)}pushUnitView(t,n){var o;const r=jh(t,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&&!ps(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:t,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const t=W(this,pt);if(!t)return!1;const n=t.domain();return lt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}getScaleProps(){return Ba(this,"scaleProps",()=>{const t=ee(this,Jf,iE).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...ee(this,$f,aE).call(this,this.type),...t};n.type||(n.type=ST(this.channel,this.type));const r=ee(this,mo,cl).call(this);return r&&r.length>0?n.domain=r:Tr(n.type)&&(n.domain=new Py),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Tr(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),DT(n,this.channel),n})}getConfiguredDomain(){return ee(this,vu,zg).call(this,t=>ps(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return ee(this,vu,zg).call(this,t=>ps(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if(W(this,pt)&&W(this,pt).type!="null"){const t=this.isDomainInitialized(),n=[...W(this,pt).domain()];dy(this,"scaleProps");const r=this.getScaleProps();Fy(r,W(this,pt)),lt(W(this,pt).type)&&Zn(this,fr,ee(this,Au,Lg).call(this));const i=[...W(this,pt).domain()];rc(i,n)||(ee(this,hr,ra).call(this)&&t?(W(this,pt).domain(n),this.zoomTo(i,500)):ee(this,lr,na).call(this))}}getScale(){if(W(this,pt))return W(this,pt);const t=this.getScaleProps(),n=iT(t);return Zn(this,pt,n),V6(n)&&n.genome(this.getGenome()),lt(n.type)&&Zn(this,fr,ee(this,Au,Lg).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return ee(this,hr,ra).call(this)&&rc(ee(this,mo,cl).call(this),this.getDomain())}isZoomable(){return ee(this,hr,ra).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!ee(this,hr,ra).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=pE(o,r||0),o=Gg(o,s,t);break;case"log":o=mE(o,r||0),o=Hg(o,s,t);break;case"pow":case"sqrt":{const c=i;o=bE(o,r||0,c.exponent()),o=dl(o,s,t,c.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return W(this,fr)&&(o=wE(o,W(this,fr)[0],W(this,fr)[1])),[0,1].some(c=>o[c]!=a[c])?(i.domain(o),ee(this,lr,na).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(zu(n)&&(n=n?700:0),!ee(this,hr,ra).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),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 c=o[1]-o[0],u=o[0]+c/2,f=r[1]-r[0],l=r[0]+f/2;await i.transition({duration:n,easingFunction:AT,onUpdate:h=>{const d=vT(c,f,h),p=(c-d)/(c-f),b=p*l+(1-p)*u;a.domain([b-d/2,b+d/2]),ee(this,lr,na).call(this)}}),a.domain(r),ee(this,lr,na).call(this)}else a.domain(r),i==null||i.requestRender(),ee(this,lr,na).call(this)}resetZoom(){if(!ee(this,hr,ra).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=ee(this,mo,cl).call(this);return[0,1].some(r=>n[r]!=t[r])?(W(this,pt).domain(n),ee(this,lr,na).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?Ru(W(this,fr))/Ru(this.getScale().domain()):1}getGenome(){var n;if(this.type!=="locus")return;const t=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.getScale();if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return Ry(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&yT(t)?this.getGenome().toContinuousInterval(t):t}}fr=new WeakMap,po=new WeakMap,pt=new WeakMap,lr=new WeakSet,na=function(){for(const t of W(this,po).values())t({type:"domain",scaleResolution:this})},Jf=new WeakSet,iE=function(){return Ba(this,"mergedScaleProps",()=>{const t=this.members.map(n=>jh(n.view,n.channel).scale).filter(n=>n!==void 0);return ef(t,"scale",["domain"])})},mo=new WeakSet,cl=function(){return this.getConfiguredDomain()??(this.type==Vy?this.getGenome().getExtent():this.getDataDomain())},hr=new WeakSet,ra=function(){const t=this.getScale().type;return lt(t)},Au=new WeakSet,Lg=function(){const t=this.getScaleProps(),n=t.zoom;if(IT(n)&&Ht(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():W(this,pt).domain()},$f=new WeakSet,aE=function(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),gs(n)?r.nice=!this.isExplicitDomain():Ei(n)?r.scheme=t==Qy?"tableau10":t==Hy?"blues":"viridis":Ic(n)?r.range=Gm(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Ig=new WeakSet,bR=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},vu=new WeakSet,zg=function(t){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.contributesToScaleDomain)).map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function ST(e,t){if(t==ET||t==Vy){if(Um(e))return t;throw new Error(`${e} does not support ${t} 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(e)?"null":n[e]?n[e][[Qy,Hy,Gy].indexOf(t)]:t==Gy?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${e}" is not compatible with "${t}" data type. Use of a proper scale may be needed.`);return i}function DT(e,t){gs(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&lt(e.type)&&(e.clamp=!0)}function IT(e){return un(e)}function Zy(e,t=[]){const n=new Set;e.visit(r=>{for(const i of Object.values(r.resolutions.scale))t.includes(i.channel)||n.add(i)}),n.forEach(r=>r.reconfigure())}function B0(...e){for(const t of e)if(t!==void 0)return t}class _T{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=Wo(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}pushUnitView(t,n){const r=t.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:t,channel:n})}getAxisProps(){return Ba(this,"axisProps",()=>{const t=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return t.length>0&&t.some(n=>n===null)?null:ef(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=a=>{var s;const o=jh(a.view,a.channel);if(!dn(o))return{member:a,explicitTitle:B0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:B0(hs(o)?o.field:void 0,Gh(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(ps(a.member.channel)&&!a.explicitTitle){const s=vi(a.member.channel);return((o=n.find(c=>c.member.view==a.member.view&&c.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>B0(a.explicitTitle,a.implicitTitle)).filter(Oe));return i.size?[...i].join(", "):null}}const MT={point:E6,rect:m6,rule:D6,link:T6,text:z6};class yt extends Fa{constructor(t,n,r,i,a){super(t,n,r,i,a),this.spec=t;const o=MT[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(t,n,r={}){this.isConfiguredVisible()&&(this.coords=n,t.pushView(this,n),t.renderMark(this.mark,r),t.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(t){const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Zt(i))continue;const a=vi(i.resolutionChannel??r);if(!Ci(a)||t=="axis"&&!gs(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,t)=="forced"||o.dataParent instanceof Fa&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,t)))&&o.getConfiguredOrDefaultResolution(a,t)!="excluded";)o=o.dataParent;t=="axis"&&gs(r)&&Um(a)?(o.resolutions[t][a]||(o.resolutions[t][a]=new _T(a)),o.resolutions[t][a].pushUnitView(this,r)):t=="scale"&&Ci(r)&&(o.resolutions[t][a]||(o.resolutions[t][a]=new CT(a)),o.resolutions[t][a].pushUnitView(this,r))}}getAccessor(t){return this._cache("accessor/"+t,()=>{const n=this.mark.encoding;if(n&&n[t])return this.context.accessorFactory.createAccessor(n[t])})}getFacetAccessor(t){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(t){if(ps(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!Zt(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(t){const n=this._validateDomainQuery(t),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??t);return jy(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let c;const u=this.mark.encoding[s];if(u){const f=this.context.accessorFactory.createAccessor(u);if(f)if(c=jy(r),f.constant)c.extend(f({}));else{const l=this.getCollector();l!=null&&l.completed&&l.visitData(h=>c.extend(f(h)))}}return c};let a=i(t);const o=Hh[t];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Aa.map(t).reduce((n,r)=>n*r,1)}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),t.target=this,!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}class Yy extends Dy{constructor(t,n,r,i,a){super(t,n,r,i,a),this.spec=t}}function*F0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of F0(r,[...t,n]))yield i;else yield[[...t,n],r]}class Wy extends Qe{get behavior(){return D0}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new oi([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){x6(t)&&(this._data=[],this.facetBatches.set(Dn(t.facetId),this._data))}complete(){var i,a;const t=(i=this.params)==null?void 0:i.sort,n=t?Qg(t.field,t.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(c=>ve(c)),s=ju(this._data,...o);this.facetBatches.clear();for(const[c,u]of F0(s))this.facetBatches.set(c,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 c={type:"facet",facetId:o};for(const u of this.children)u.beginBatch(c)}for(const c of s)this._propagate(c)}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 t=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of t.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(t){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)t(n[r])}getItemCount(){let t=0;for(const n of this.facetBatches.values())t+=n.length;return t}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class tf{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,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]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=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 c=this.ids[o],u=this.values[o];const f=this.values[s];if(s<this.length&&f<u&&(o=s,c=this.ids[s],u=f),u>=r)break;this.ids[a]=c,this.values[a]=u,a=o}this.ids[a]=n,this.values[a]=r}return t}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 TT extends Qe{get behavior(){return er}constructor(t){super(),this.params=t,this.startAccessor=ve(t.start),this.endAccessor=ve(t.end),this.chromAccessor=t.chrom?ve(t.chrom):n=>{},this.weightAccessor=t.weight?ve(t.weight):n=>1,this.as={coverage:t.as||"coverage",start:t.asStart||t.start,end:t.asEnd||t.end,chrom:t.asChrom||t.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 tf}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let c,u,f,l=0,h;const d=this.ends;d.clear();const p=(x,A,D)=>{if(x==A)return;let _=!1;c&&(c[t]===D?(c[n]=A,_=!0):c[t]!=0&&this._propagate(c)),_||(c=this.createSegment(x,A,D,f))},b=()=>{let x;for(;(x=d.peekValue())!==void 0;)p(h,x,l),h=x,l-=d.pop();h=void 0,c&&(this._propagate(c),c=void 0)};this.handle=x=>{const A=i(x);let D;for(;(D=d.peekValue())!==void 0&&D<A;)p(h,D,l),h=D,l-=d.pop();if(r){let C=o(x);C!==u&&(b(),f=C,u=f)}h!==void 0&&p(h,A,l),h=A;const _=s(x);l+=_,d.push(_,a(x))},this.complete=()=>{b(),super.complete()}}}function NT(e,t,n=0,r=e.length){const i=new tf,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const u=e[n+o];u>=i.peekValue()&&(i.push(o,u),i.pop())}const s=[];let c;for(;(c=i.pop())!==void 0;)s.push(n+c);return s.reverse()}class BT{constructor(t,n=-1/0,r=1/0){this.maxSize=t,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(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(t,n,i);return a>=0?a:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=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(t,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class FT extends Qe{get behavior(){return D0}constructor(t,n){if(super(),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=ve(this.params.pos),this.posBisector=Uu(this.posAccessor),this.scoreAccessor=ve(this.params.score),this.widthAccessor=ve(this.params.width),this.laneAccessor=this.params.lane?ve(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 t=this.posAccessor;this._data.sort((n,r)=>t(n)-t(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new BT(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const t=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=t.domain(),i=70,a=NT(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const c=this._data[s],u=t(this.posAccessor(c))*n,f=this.widthAccessor(c)/2+this.padding;this.reservationMaps.get(this.laneAccessor(c)).reserve(u-f,u+f)&&this._propagate(c)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class kT extends Qe{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=nh(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}const LT="0".charCodeAt(0);function*zT(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-LT}yield r}class RT extends Qe{get behavior(){return er}constructor(t){super();const n=ve(t.exons??"exons"),r=ve(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),c=s,u=!0;const f=n(o);for(const l of zT(f)){if(u)c=s+l;else{s=c+l;const h=Object.assign({},o);h[i]=c,h[a]=s,this._propagate(h)}u=!u}}}}class OT extends Qe{get behavior(){return er}constructor(t){super();const n=Dn(t.field).map(a=>ve(a)),r=Dn(t.separator),i=Dn(t.as||t.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(c=>!c(a)))return;const o=n.map((c,u)=>c(a).split(r[u]));PT(o,a);const s=o[0].length;for(let c=0;c<s;c++){const u=Object.assign({},a);for(let f=0;f<n.length;f++)u[i[f]]=o[f][c];this._propagate(u)}}}}function PT(e,t){const n=e.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(t))}class UT extends Qe{get behavior(){return Rr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=nh(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class qy extends Qe{get behavior(){return Rr}constructor(t,n){super();const r=t.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=ve(t.chrom),o=Dn(t.pos).map(p=>ve(p)),s=Dn(t.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const c=Dn(t.offset);let u;if(c.length==0)u=new Array(o.length).fill(0);else if(c.length==1)u=new Array(o.length).fill(c[0]);else if(c.length==o.length)u=c;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((p,b)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${b}](datum) - ${u[b]};`).join(`
148
+ `));let l,h=0;const d=p=>{if(p!==l){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);l=p}return h};this.handle=p=>{f(p,d(a(p)),o),this._propagate(p)}}}const Xy={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 jT extends Qe{get behavior(){return Rr}constructor(t){super();const n=E0(Xy),r=ve(t.field),i=t.as,a=t.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const GT=65536;class HT extends Qe{get behavior(){return Rr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=St(t.spacing)?t.spacing:1,i=ve(t.start),a=ve(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(GT),s=ve(t.preference),c=t.preferredOrder;let u=1/0;this.handle=f=>{const l=i(f);l<u&&o.fill(-1/0),u=l;const h=c.indexOf(s(f));let d=-1;if(h>=0&&o[h]<l)d=h;else{const p=i(f);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(f)+r,f[n]=d,this._propagate(f)}}else{const o=new tf,s=new tf;let c=-1/0,u=0;this.handle=f=>{const l=i(f);for(;o.length&&(o.peekValue()<=l||l<c);){const d=o.pop();s.push(d,d)}c=l;let h=s.pop();h===void 0&&(h=u++),f[n]=h,this._propagate(f),o.push(h,a(f)+r)}}}}class QT extends Qe{get behavior(){return er}constructor(t){if(super(),t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>ve(i)),r=t.as?t.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 VT extends Qe{get behavior(){return Rr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=ve(t.field);this.handle=a=>{const o=i(a);if(Oe(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 c=0;c<r.length;c++)a[r[c]]=s[c+1]}else if(t.skipInvalidInput)for(let c=0;c<r.length;c++)a[r[c]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class ZT extends Qe{get behavior(){return er}constructor(t){super();const n=Dn(t.columnRegex).map(h=>new RegExp(h)),r=Dn(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,a=t.asKey||"sample";let o,s,c;const u=h=>{var x;const d=Object.keys(h),p=new Map;for(const[A,D]of n.entries())for(const _ of d){const C=(x=D.exec(_))==null?void 0:x[1];if(C!==void 0){let T=p.get(C);T||(T=[],p.set(C,T)),T[A]=_}}o=[...p.entries()],s=d.filter(A=>!n.some(D=>D.test(A))&&!(i&&i.test(A)));const b=[...s.map(A=>JSON.stringify(A)+": datum["+JSON.stringify(A)+"]"),JSON.stringify(a)+": sampleId",...r.map(A=>JSON.stringify(A)+": null")];c=new Function("datum","sampleId",`return {
149
149
  `+b.join(`,
150
150
  `)+`
151
- };`)},f=h=>{a||u(h);for(const[d,p]of a){const b=c(h,d);for(let x=0;x<p.length;x++)b[r[x]]=h[p[x]];this._propagate(b)}},l=h=>{u(h),f(h),this.handle=f};this.handle=l,this.beginBatch=h=>{$b(h)&&(this.handle=l),super.beginBatch(h)}}}class UT extends He{get behavior(){return Br}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t.as||["y0","y1"],r=t.sort?Eg(t.sort.field,t.sort.order):void 0,i=t.field?Ae(t.field):()=>1,o=t.groupby.map(f=>Ae(f)),a=xE(this.buffer,f=>o.map(l=>l(f)).join()).map(f=>f[1]);let s=f=>!0;if(t.baseField){const f=Ae(t.baseField);s=l=>f(l)!==null}let c,u;switch(t.offset){case"normalize":c=(f,l)=>f/l,u=(f,l)=>Nu(f,l);break;case"center":c=(f,l)=>f-l/2,u=(f,l)=>Nu(f,l);break;case"information":{const f=Math.log2(t.cardinality??4);c=(l,h)=>l/h,u=(l,h)=>{const p=Nu(l,D=>+!s(D)),b=Nu(l,h),x=b-p;let A=0;for(let D=0;D<l.length;D++){const _=l[D];if(s(_)){const C=h(_)/x;A-=C*Math.log2(C)}}return x/(f-(A+0))*(x/b)}}break;default:c=(f,l)=>f,u=(f,l)=>1}for(const f of a){r&&f.sort(r);const l=u(f,i);let h=0;for(const d of f){const p=h+i(d);s(d)&&(d[n[0]]=c(h,l),d[n[1]]=c(p,l),this._propagate(d),h=p)}}super.complete()}}class jT extends He{get behavior(){return $n}constructor(t){super();const n=Ae(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=o=>{const a=Object.assign({},o,{[i]:"",[r]:0}),s=n(o);for(let c=0;c<s.length;c++){const u=Object.assign({},a);u[r]=c,u[i]=s.charAt(c),this._propagate(u)}}}}class GT extends He{get behavior(){return $n}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(o=>Ae(o)),i=Mu(this.buffer,...r);for(const[o,a]of x0(i)){const s={count:a.length};for(let c=0;c<n.length;c++)s[n[c]]=o[c];this._propagate(s)}super.complete()}}const HT="_uniqueId",Ry=1e4,Oy=[null];class Py extends He{get behavior(){return Br}constructor(t){super(),this.params=t,this.as=t.as??HT,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(t){t[this.as]=this._nextId(),this._propagate(t)}_nextId(){return++this._id%Ry==0&&(this._id=this._getBlock()*Ry),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=Oy.length;return Oy[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const QT={aggregate:GT,collect:ky,coverage:ET,filterScoredLabels:DT,filter:IT,flattenCompressedExons:TT,flattenDelimited:NT,flattenSequence:jT,formula:FT,identifier:Py,linearizeGenomicCoordinate:Ly,measureText:kT,pileup:zT,project:RT,regexExtract:OT,regexFold:PT,sample:ey,stack:UT};function VT(e,t){const n=QT[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function Uy(e){const t={...e.format};if(t.type??(t.type=WT(e)&&ZT(e.url)),t.parse??(t.parse="auto"),!t.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(e));return t}function ZT(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const jy=e=>typeof e!="object"?YT:qT,YT=e=>({data:e}),qT=e=>e;function WT(e){return"url"in e}class vs extends He{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function XT(e){return"values"in e}class KT extends vs{constructor(t,n){var r;if(super(),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=jy(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=_p(t,Uy(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 JT(e){return"url"in e}class $T extends vs{constructor(t,n){super(),this.params=t,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=this.params.url,n=Array.isArray(t)?t:[t],r=async o=>Gu({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=_p(o,Uy(this.params));this.beginBatch({type:"file",url:a});for(const c of s)this._propagate(c)}catch(s){throw new Error(`Cannot parse: ${a}: ${s.message}`)}};this.reset(),await Promise.all(n.map(o=>r(o).then(i))),this.complete()}}function eN(e){return"sequence"in e}class tN extends vs{constructor(t,n){if(super(),this.sequence=t.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 t=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({[t]:i});this.complete()}async load(){this.loadSynchronously()}}function nN(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class Fo extends vs{constructor(t,n){if(super(),this.view=t,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 dt||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 t=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 t.length?t.reduce((n,r)=>Math.min(n,r),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(t,n){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(t){this.reset(),this.beginBatch({type:"file"});for(const n of t)this._propagate(n);this.complete(),Cy(this.view,[this.channel]),this.requestRender()}}class rN extends Fo{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Vn(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),o=u=>25+60*nN(100,700,u),a=Et(r.tickCount)?r.tickCount:Math.round(i/o(i)),s=sy(n,a,r.tickMinStep),c=r.values?uy(n,r.values,s):p6(n,s);if(!sc(c,this.ticks)){this.ticks=c;const u=b6(n,a,r.format);this.publishData(c.map(f=>({value:f,label:u(f)})))}}}class iN extends Fo{constructor(t,n){super(n,t.channel)}async load(){this.publishData(this.genome.chromosomes)}}var Ii=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ko(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var kt={},Hc={};Hc.byteLength=sN,Hc.toByteArray=cN,Hc.fromByteArray=hN;for(var Bn=[],Qt=[],oN=typeof Uint8Array<"u"?Uint8Array:Array,A0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Lo=0,aN=A0.length;Lo<aN;++Lo)Bn[Lo]=A0[Lo],Qt[A0.charCodeAt(Lo)]=Lo;Qt["-".charCodeAt(0)]=62,Qt["_".charCodeAt(0)]=63;function Gy(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function sN(e){var t=Gy(e),n=t[0],r=t[1];return(n+r)*3/4-r}function uN(e,t,n){return(t+n)*3/4-n}function cN(e){var t,n=Gy(e),r=n[0],i=n[1],o=new oN(uN(e,r,i)),a=0,s=i>0?r-4:r,c;for(c=0;c<s;c+=4)t=Qt[e.charCodeAt(c)]<<18|Qt[e.charCodeAt(c+1)]<<12|Qt[e.charCodeAt(c+2)]<<6|Qt[e.charCodeAt(c+3)],o[a++]=t>>16&255,o[a++]=t>>8&255,o[a++]=t&255;return i===2&&(t=Qt[e.charCodeAt(c)]<<2|Qt[e.charCodeAt(c+1)]>>4,o[a++]=t&255),i===1&&(t=Qt[e.charCodeAt(c)]<<10|Qt[e.charCodeAt(c+1)]<<4|Qt[e.charCodeAt(c+2)]>>2,o[a++]=t>>8&255,o[a++]=t&255),o}function fN(e){return Bn[e>>18&63]+Bn[e>>12&63]+Bn[e>>6&63]+Bn[e&63]}function lN(e,t,n){for(var r,i=[],o=t;o<n;o+=3)r=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(e[o+2]&255),i.push(fN(r));return i.join("")}function hN(e){for(var t,n=e.length,r=n%3,i=[],o=16383,a=0,s=n-r;a<s;a+=o)i.push(lN(e,a,a+o>s?s:a+o));return r===1?(t=e[n-1],i.push(Bn[t>>2]+Bn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Bn[t>>10]+Bn[t>>4&63]+Bn[t<<2&63]+"=")),i.join("")}var v0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */v0.read=function(e,t,n,r,i){var o,a,s=i*8-r-1,c=(1<<s)-1,u=c>>1,f=-7,l=n?i-1:0,h=n?-1:1,d=e[t+l];for(l+=h,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=o*256+e[t+l],l+=h,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=r;f>0;a=a*256+e[t+l],l+=h,f-=8);if(o===0)o=1-u;else{if(o===c)return a?NaN:(d?-1:1)*(1/0);a=a+Math.pow(2,r),o=o-u}return(d?-1:1)*a*Math.pow(2,o-r)},v0.write=function(e,t,n,r,i,o){var a,s,c,u=o*8-i-1,f=(1<<u)-1,l=f>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,b=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=f):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),a+l>=1?t+=h/c:t+=h*Math.pow(2,1-l),t*c>=2&&(a++,c/=2),a+l>=f?(s=0,a=f):a+l>=1?(s=(t*c-1)*Math.pow(2,i),a=a+l):(s=t*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(a=a<<i|s,u+=i;u>0;e[n+d]=a&255,d+=p,a/=256,u-=8);e[n+d-p]|=b*128};/*!
151
+ };`)},f=h=>{o||u(h);for(const[d,p]of o){const b=c(h,d);for(let x=0;x<p.length;x++)b[r[x]]=h[p[x]];this._propagate(b)}},l=h=>{u(h),f(h),this.handle=f};this.handle=l,this.beginBatch=h=>{xy(h)&&(this.handle=l),super.beginBatch(h)}}}class YT extends Qe{get behavior(){return Rr}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t.as||["y0","y1"],r=t.sort?Qg(t.sort.field,t.sort.order):void 0,i=t.field?ve(t.field):()=>1,a=t.groupby.map(f=>ve(f)),o=JE(this.buffer,f=>a.map(l=>l(f)).join()).map(f=>f[1]);let s=f=>!0;if(t.baseField){const f=ve(t.baseField);s=l=>f(l)!==null}let c,u;switch(t.offset){case"normalize":c=(f,l)=>f/l,u=(f,l)=>Hu(f,l);break;case"center":c=(f,l)=>f-l/2,u=(f,l)=>Hu(f,l);break;case"information":{const f=Math.log2(t.cardinality??4);c=(l,h)=>l/h,u=(l,h)=>{const p=Hu(l,D=>+!s(D)),b=Hu(l,h),x=b-p;let A=0;for(let D=0;D<l.length;D++){const _=l[D];if(s(_)){const C=h(_)/x;A-=C*Math.log2(C)}}return x/(f-(A+0))*(x/b)}}break;default:c=(f,l)=>f,u=(f,l)=>1}for(const f of o){r&&f.sort(r);const l=u(f,i);let h=0;for(const d of f){const p=h+i(d);s(d)&&(d[n[0]]=c(h,l),d[n[1]]=c(p,l),this._propagate(d),h=p)}}super.complete()}}class WT extends Qe{get behavior(){return er}constructor(t){super();const n=ve(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let c=0;c<s.length;c++){const u=Object.assign({},o);u[r]=c,u[i]=s.charAt(c),this._propagate(u)}}}}class qT extends Qe{get behavior(){return er}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(a=>ve(a)),i=ju(this.buffer,...r);for(const[a,o]of F0(i)){const s={count:o.length};for(let c=0;c<n.length;c++)s[n[c]]=a[c];this._propagate(s)}super.complete()}}const XT="_uniqueId",Ky=1e4,Jy=[null];class $y extends Qe{get behavior(){return Rr}constructor(t){super(),this.params=t,this.as=t.as??XT,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(t){t[this.as]=this._nextId(),this._propagate(t)}_nextId(){return++this._id%Ky==0&&(this._id=this._getBlock()*Ky),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=Jy.length;return Jy[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const KT={aggregate:qT,collect:Wy,coverage:TT,filterScoredLabels:FT,filter:kT,flattenCompressedExons:RT,flattenDelimited:OT,flattenSequence:WT,formula:UT,identifier:$y,linearizeGenomicCoordinate:qy,measureText:jT,pileup:HT,project:QT,regexExtract:VT,regexFold:ZT,sample:Ay,stack:YT};function JT(e,t){const n=KT[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function ew(e){if(!rw(e)&&!nw(e))return;const t={...e.format};if(t.type??(t.type=nw(e)&&$T(e.url)),t.parse??(t.parse="auto"),!t.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(e));return t}function $T(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const tw=e=>typeof e!="object"?eN:tN,eN=e=>({data:e}),tN=e=>e;function nw(e){return"url"in e}class Ms extends Qe{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function rw(e){return"values"in e}class nN extends Ms{constructor(t,n){var r;if(super(),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=tw(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=qp(t,ew(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 rN(e){return"url"in e}class iN extends Ms{constructor(t,n){super(),this.params=t,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=this.params.url,n=Array.isArray(t)?t:[t],r=async a=>ec({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=qp(a,ew(this.params));this.beginBatch({type:"file",url:o});for(const c of s)this._propagate(c)}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 aN(e){return"sequence"in e}class oN extends Ms{constructor(t,n){if(super(),this.sequence=t.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 t=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({[t]:i});this.complete()}async load(){this.loadSynchronously()}}function sN(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class La extends Ms{constructor(t,n){if(super(),this.view=t,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 yt||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 t=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 t.length?t.reduce((n,r)=>Math.min(n,r),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(t,n){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(t){this.reset(),this.beginBatch({type:"file"});for(const n of t)this._propagate(n);this.complete(),Zy(this.view,[this.channel]),this.requestRender()}}class uN extends La{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Sn(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=u=>25+60*sN(100,700,u),o=St(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=My(n,o,r.tickMinStep),c=r.values?Ty(n,r.values,s):Z6(n,s);if(!rc(c,this.ticks)){this.ticks=c;const u=W6(n,o,r.format);this.publishData(c.map(f=>({value:f,label:u(f)})))}}}class cN extends La{constructor(t,n){super(n,t.channel)}async load(){this.publishData(this.genome.chromosomes)}}var Ti=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function za(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var zt={},nf={};nf.byteLength=hN,nf.toByteArray=gN,nf.fromByteArray=bN;for(var kn=[],Yt=[],fN=typeof Uint8Array<"u"?Uint8Array:Array,k0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ra=0,lN=k0.length;Ra<lN;++Ra)kn[Ra]=k0[Ra],Yt[k0.charCodeAt(Ra)]=Ra;Yt["-".charCodeAt(0)]=62,Yt["_".charCodeAt(0)]=63;function iw(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function hN(e){var t=iw(e),n=t[0],r=t[1];return(n+r)*3/4-r}function dN(e,t,n){return(t+n)*3/4-n}function gN(e){var t,n=iw(e),r=n[0],i=n[1],a=new fN(dN(e,r,i)),o=0,s=i>0?r-4:r,c;for(c=0;c<s;c+=4)t=Yt[e.charCodeAt(c)]<<18|Yt[e.charCodeAt(c+1)]<<12|Yt[e.charCodeAt(c+2)]<<6|Yt[e.charCodeAt(c+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=Yt[e.charCodeAt(c)]<<2|Yt[e.charCodeAt(c+1)]>>4,a[o++]=t&255),i===1&&(t=Yt[e.charCodeAt(c)]<<10|Yt[e.charCodeAt(c+1)]<<4|Yt[e.charCodeAt(c+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function pN(e){return kn[e>>18&63]+kn[e>>12&63]+kn[e>>6&63]+kn[e&63]}function mN(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(pN(r));return i.join("")}function bN(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(mN(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(kn[t>>2]+kn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(kn[t>>10]+kn[t>>4&63]+kn[t<<2&63]+"=")),i.join("")}var L0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */L0.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,c=(1<<s)-1,u=c>>1,f=-7,l=n?i-1:0,h=n?-1:1,d=e[t+l];for(l+=h,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=a*256+e[t+l],l+=h,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=r;f>0;o=o*256+e[t+l],l+=h,f-=8);if(a===0)a=1-u;else{if(a===c)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)},L0.write=function(e,t,n,r,i,a){var o,s,c,u=a*8-i-1,f=(1<<u)-1,l=f>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,p=r?1:-1,b=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=f):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+l>=1?t+=h/c:t+=h*Math.pow(2,1-l),t*c>=2&&(o++,c/=2),o+l>=f?(s=0,o=f):o+l>=1?(s=(t*c-1)*Math.pow(2,i),o=o+l):(s=t*Math.pow(2,l-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(o=o<<i|s,u+=i;u>0;e[n+d]=o&255,d+=p,o/=256,u-=8);e[n+d-p]|=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(e){const t=Hc,n=v0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=D,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=o(),!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 o(){try{const y=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(y,g),y.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 a(y){if(y>i)throw new RangeError('The value "'+y+'" is invalid for option "size"');const g=new Uint8Array(y);return Object.setPrototypeOf(g,s.prototype),g}function s(y,g,m){if(typeof y=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return l(y)}return c(y,g,m)}s.poolSize=8192;function c(y,g,m){if(typeof y=="string")return h(y,g);if(ArrayBuffer.isView(y))return p(y);if(y==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof y);if(Pt(y,ArrayBuffer)||y&&Pt(y.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Pt(y,SharedArrayBuffer)||y&&Pt(y.buffer,SharedArrayBuffer)))return b(y,g,m);if(typeof y=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const v=y.valueOf&&y.valueOf();if(v!=null&&v!==y)return s.from(v,g,m);const M=x(y);if(M)return M;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof y[Symbol.toPrimitive]=="function")return s.from(y[Symbol.toPrimitive]("string"),g,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof y)}s.from=function(y,g,m){return c(y,g,m)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function u(y){if(typeof y!="number")throw new TypeError('"size" argument must be of type number');if(y<0)throw new RangeError('The value "'+y+'" is invalid for option "size"')}function f(y,g,m){return u(y),y<=0?a(y):g!==void 0?typeof m=="string"?a(y).fill(g,m):a(y).fill(g):a(y)}s.alloc=function(y,g,m){return f(y,g,m)};function l(y){return u(y),a(y<0?0:A(y)|0)}s.allocUnsafe=function(y){return l(y)},s.allocUnsafeSlow=function(y){return l(y)};function h(y,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const m=_(y,g)|0;let v=a(m);const M=v.write(y,g);return M!==m&&(v=v.slice(0,M)),v}function d(y){const g=y.length<0?0:A(y.length)|0,m=a(g);for(let v=0;v<g;v+=1)m[v]=y[v]&255;return m}function p(y){if(Pt(y,Uint8Array)){const g=new Uint8Array(y);return b(g.buffer,g.byteOffset,g.byteLength)}return d(y)}function b(y,g,m){if(g<0||y.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(y.byteLength<g+(m||0))throw new RangeError('"length" is outside of buffer bounds');let v;return g===void 0&&m===void 0?v=new Uint8Array(y):m===void 0?v=new Uint8Array(y,g):v=new Uint8Array(y,g,m),Object.setPrototypeOf(v,s.prototype),v}function x(y){if(s.isBuffer(y)){const g=A(y.length)|0,m=a(g);return m.length===0||y.copy(m,0,0,g),m}if(y.length!==void 0)return typeof y.length!="number"||bu(y.length)?a(0):d(y);if(y.type==="Buffer"&&Array.isArray(y.data))return d(y.data)}function A(y){if(y>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return y|0}function D(y){return+y!=y&&(y=0),s.alloc(+y)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,m){if(Pt(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),Pt(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(g)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===m)return 0;let v=g.length,M=m.length;for(let k=0,O=Math.min(v,M);k<O;++k)if(g[k]!==m[k]){v=g[k],M=m[k];break}return v<M?-1:M<v?1:0},s.isEncoding=function(g){switch(String(g).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(g,m){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let v;if(m===void 0)for(m=0,v=0;v<g.length;++v)m+=g[v].length;const M=s.allocUnsafe(m);let k=0;for(v=0;v<g.length;++v){let O=g[v];if(Pt(O,Uint8Array))k+O.length>M.length?(s.isBuffer(O)||(O=s.from(O)),O.copy(M,k)):Uint8Array.prototype.set.call(M,O,k);else if(s.isBuffer(O))O.copy(M,k);else throw new TypeError('"list" argument must be an Array of Buffers');k+=O.length}return M};function _(y,g){if(s.isBuffer(y))return y.length;if(ArrayBuffer.isView(y)||Pt(y,ArrayBuffer))return y.byteLength;if(typeof y!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof y);const m=y.length,v=arguments.length>2&&arguments[2]===!0;if(!v&&m===0)return 0;let M=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return Ot(y).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return mu(y).length;default:if(M)return v?-1:Ot(y).length;g=(""+g).toLowerCase(),M=!0}}s.byteLength=_;function C(y,g,m){let v=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,g>>>=0,m<=g))return"";for(y||(y="utf8");;)switch(y){case"hex":return xt(this,g,m);case"utf8":case"utf-8":return Y(this,g,m);case"ascii":return Ye(this,g,m);case"latin1":case"binary":return wt(this,g,m);case"base64":return W(this,g,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return pu(this,g,m);default:if(v)throw new TypeError("Unknown encoding: "+y);y=(y+"").toLowerCase(),v=!0}}s.prototype._isBuffer=!0;function T(y,g,m){const v=y[g];y[g]=y[m],y[m]=v}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<g;m+=2)T(this,m,m+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let m=0;m<g;m+=4)T(this,m,m+3),T(this,m+1,m+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let m=0;m<g;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 g=this.length;return g===0?"":arguments.length===0?Y(this,0,g):C.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(g){if(!s.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:s.compare(this,g)===0},s.prototype.inspect=function(){let g="";const m=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,m,v,M,k){if(Pt(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),!s.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(m===void 0&&(m=0),v===void 0&&(v=g?g.length:0),M===void 0&&(M=0),k===void 0&&(k=this.length),m<0||v>g.length||M<0||k>this.length)throw new RangeError("out of range index");if(M>=k&&m>=v)return 0;if(M>=k)return-1;if(m>=v)return 1;if(m>>>=0,v>>>=0,M>>>=0,k>>>=0,this===g)return 0;let O=k-M,te=v-m;const _e=Math.min(O,te),xe=this.slice(M,k),ke=g.slice(m,v);for(let pe=0;pe<_e;++pe)if(xe[pe]!==ke[pe]){O=xe[pe],te=ke[pe];break}return O<te?-1:te<O?1:0};function B(y,g,m,v,M){if(y.length===0)return-1;if(typeof m=="string"?(v=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,bu(m)&&(m=M?0:y.length-1),m<0&&(m=y.length+m),m>=y.length){if(M)return-1;m=y.length-1}else if(m<0)if(M)m=0;else return-1;if(typeof g=="string"&&(g=s.from(g,v)),s.isBuffer(g))return g.length===0?-1:S(y,g,m,v,M);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?M?Uint8Array.prototype.indexOf.call(y,g,m):Uint8Array.prototype.lastIndexOf.call(y,g,m):S(y,[g],m,v,M);throw new TypeError("val must be string, number or Buffer")}function S(y,g,m,v,M){let k=1,O=y.length,te=g.length;if(v!==void 0&&(v=String(v).toLowerCase(),v==="ucs2"||v==="ucs-2"||v==="utf16le"||v==="utf-16le")){if(y.length<2||g.length<2)return-1;k=2,O/=2,te/=2,m/=2}function _e(ke,pe){return k===1?ke[pe]:ke.readUInt16BE(pe*k)}let xe;if(M){let ke=-1;for(xe=m;xe<O;xe++)if(_e(y,xe)===_e(g,ke===-1?0:xe-ke)){if(ke===-1&&(ke=xe),xe-ke+1===te)return ke*k}else ke!==-1&&(xe-=xe-ke),ke=-1}else for(m+te>O&&(m=O-te),xe=m;xe>=0;xe--){let ke=!0;for(let pe=0;pe<te;pe++)if(_e(y,xe+pe)!==_e(g,pe)){ke=!1;break}if(ke)return xe}return-1}s.prototype.includes=function(g,m,v){return this.indexOf(g,m,v)!==-1},s.prototype.indexOf=function(g,m,v){return B(this,g,m,v,!0)},s.prototype.lastIndexOf=function(g,m,v){return B(this,g,m,v,!1)};function z(y,g,m,v){m=Number(m)||0;const M=y.length-m;v?(v=Number(v),v>M&&(v=M)):v=M;const k=g.length;v>k/2&&(v=k/2);let O;for(O=0;O<v;++O){const te=parseInt(g.substr(O*2,2),16);if(bu(te))return O;y[m+O]=te}return O}function E(y,g,m,v){return ma(Ot(g,y.length-m),y,m,v)}function N(y,g,m,v){return ma(Ki(g),y,m,v)}function F(y,g,m,v){return ma(mu(g),y,m,v)}function Z(y,g,m,v){return ma(cg(g,y.length-m),y,m,v)}s.prototype.write=function(g,m,v,M){if(m===void 0)M="utf8",v=this.length,m=0;else if(v===void 0&&typeof m=="string")M=m,v=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(v)?(v=v>>>0,M===void 0&&(M="utf8")):(M=v,v=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const k=this.length-m;if((v===void 0||v>k)&&(v=k),g.length>0&&(v<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");M||(M="utf8");let O=!1;for(;;)switch(M){case"hex":return z(this,g,m,v);case"utf8":case"utf-8":return E(this,g,m,v);case"ascii":case"latin1":case"binary":return N(this,g,m,v);case"base64":return F(this,g,m,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Z(this,g,m,v);default:if(O)throw new TypeError("Unknown encoding: "+M);M=(""+M).toLowerCase(),O=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function W(y,g,m){return g===0&&m===y.length?t.fromByteArray(y):t.fromByteArray(y.slice(g,m))}function Y(y,g,m){m=Math.min(y.length,m);const v=[];let M=g;for(;M<m;){const k=y[M];let O=null,te=k>239?4:k>223?3:k>191?2:1;if(M+te<=m){let _e,xe,ke,pe;switch(te){case 1:k<128&&(O=k);break;case 2:_e=y[M+1],(_e&192)===128&&(pe=(k&31)<<6|_e&63,pe>127&&(O=pe));break;case 3:_e=y[M+1],xe=y[M+2],(_e&192)===128&&(xe&192)===128&&(pe=(k&15)<<12|(_e&63)<<6|xe&63,pe>2047&&(pe<55296||pe>57343)&&(O=pe));break;case 4:_e=y[M+1],xe=y[M+2],ke=y[M+3],(_e&192)===128&&(xe&192)===128&&(ke&192)===128&&(pe=(k&15)<<18|(_e&63)<<12|(xe&63)<<6|ke&63,pe>65535&&pe<1114112&&(O=pe))}}O===null?(O=65533,te=1):O>65535&&(O-=65536,v.push(O>>>10&1023|55296),O=56320|O&1023),v.push(O),M+=te}return Ce(v)}const ye=4096;function Ce(y){const g=y.length;if(g<=ye)return String.fromCharCode.apply(String,y);let m="",v=0;for(;v<g;)m+=String.fromCharCode.apply(String,y.slice(v,v+=ye));return m}function Ye(y,g,m){let v="";m=Math.min(y.length,m);for(let M=g;M<m;++M)v+=String.fromCharCode(y[M]&127);return v}function wt(y,g,m){let v="";m=Math.min(y.length,m);for(let M=g;M<m;++M)v+=String.fromCharCode(y[M]);return v}function xt(y,g,m){const v=y.length;(!g||g<0)&&(g=0),(!m||m<0||m>v)&&(m=v);let M="";for(let k=g;k<m;++k)M+=Pf[y[k]];return M}function pu(y,g,m){const v=y.slice(g,m);let M="";for(let k=0;k<v.length-1;k+=2)M+=String.fromCharCode(v[k]+v[k+1]*256);return M}s.prototype.slice=function(g,m){const v=this.length;g=~~g,m=m===void 0?v:~~m,g<0?(g+=v,g<0&&(g=0)):g>v&&(g=v),m<0?(m+=v,m<0&&(m=0)):m>v&&(m=v),m<g&&(m=g);const M=this.subarray(g,m);return Object.setPrototypeOf(M,s.prototype),M};function Oe(y,g,m){if(y%1!==0||y<0)throw new RangeError("offset is not uint");if(y+g>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,m,v){g=g>>>0,m=m>>>0,v||Oe(g,m,this.length);let M=this[g],k=1,O=0;for(;++O<m&&(k*=256);)M+=this[g+O]*k;return M},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,m,v){g=g>>>0,m=m>>>0,v||Oe(g,m,this.length);let M=this[g+--m],k=1;for(;m>0&&(k*=256);)M+=this[g+--m]*k;return M},s.prototype.readUint8=s.prototype.readUInt8=function(g,m){return g=g>>>0,m||Oe(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,m){return g=g>>>0,m||Oe(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,m){return g=g>>>0,m||Oe(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,m){return g=g>>>0,m||Oe(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(g,m){return g=g>>>0,m||Oe(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},s.prototype.readBigUInt64LE=Hn(function(g){g=g>>>0,Pe(g,"offset");const m=this[g],v=this[g+7];(m===void 0||v===void 0)&&se(g,this.length-8);const M=m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,k=this[++g]+this[++g]*2**8+this[++g]*2**16+v*2**24;return BigInt(M)+(BigInt(k)<<BigInt(32))}),s.prototype.readBigUInt64BE=Hn(function(g){g=g>>>0,Pe(g,"offset");const m=this[g],v=this[g+7];(m===void 0||v===void 0)&&se(g,this.length-8);const M=m*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],k=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+v;return(BigInt(M)<<BigInt(32))+BigInt(k)}),s.prototype.readIntLE=function(g,m,v){g=g>>>0,m=m>>>0,v||Oe(g,m,this.length);let M=this[g],k=1,O=0;for(;++O<m&&(k*=256);)M+=this[g+O]*k;return k*=128,M>=k&&(M-=Math.pow(2,8*m)),M},s.prototype.readIntBE=function(g,m,v){g=g>>>0,m=m>>>0,v||Oe(g,m,this.length);let M=m,k=1,O=this[g+--M];for(;M>0&&(k*=256);)O+=this[g+--M]*k;return k*=128,O>=k&&(O-=Math.pow(2,8*m)),O},s.prototype.readInt8=function(g,m){return g=g>>>0,m||Oe(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,m){g=g>>>0,m||Oe(g,2,this.length);const v=this[g]|this[g+1]<<8;return v&32768?v|4294901760:v},s.prototype.readInt16BE=function(g,m){g=g>>>0,m||Oe(g,2,this.length);const v=this[g+1]|this[g]<<8;return v&32768?v|4294901760:v},s.prototype.readInt32LE=function(g,m){return g=g>>>0,m||Oe(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,m){return g=g>>>0,m||Oe(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},s.prototype.readBigInt64LE=Hn(function(g){g=g>>>0,Pe(g,"offset");const m=this[g],v=this[g+7];(m===void 0||v===void 0)&&se(g,this.length-8);const M=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(v<<24);return(BigInt(M)<<BigInt(32))+BigInt(m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Hn(function(g){g=g>>>0,Pe(g,"offset");const m=this[g],v=this[g+7];(m===void 0||v===void 0)&&se(g,this.length-8);const M=(m<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(M)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+v)}),s.prototype.readFloatLE=function(g,m){return g=g>>>0,m||Oe(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,m){return g=g>>>0,m||Oe(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,m){return g=g>>>0,m||Oe(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,m){return g=g>>>0,m||Oe(g,8,this.length),n.read(this,g,!1,52,8)};function qe(y,g,m,v,M,k){if(!s.isBuffer(y))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>M||g<k)throw new RangeError('"value" argument is out of bounds');if(m+v>y.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,m,v,M){if(g=+g,m=m>>>0,v=v>>>0,!M){const te=Math.pow(2,8*v)-1;qe(this,g,m,v,te,0)}let k=1,O=0;for(this[m]=g&255;++O<v&&(k*=256);)this[m+O]=g/k&255;return m+v},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,m,v,M){if(g=+g,m=m>>>0,v=v>>>0,!M){const te=Math.pow(2,8*v)-1;qe(this,g,m,v,te,0)}let k=v-1,O=1;for(this[m+k]=g&255;--k>=0&&(O*=256);)this[m+k]=g/O&255;return m+v},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,1,255,0),this[m]=g&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,2,65535,0),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,2,65535,0),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,4,4294967295,0),this[m+3]=g>>>24,this[m+2]=g>>>16,this[m+1]=g>>>8,this[m]=g&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,4,4294967295,0),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4};function da(y,g,m,v,M){P(g,v,M,y,m,7);let k=Number(g&BigInt(4294967295));y[m++]=k,k=k>>8,y[m++]=k,k=k>>8,y[m++]=k,k=k>>8,y[m++]=k;let O=Number(g>>BigInt(32)&BigInt(4294967295));return y[m++]=O,O=O>>8,y[m++]=O,O=O>>8,y[m++]=O,O=O>>8,y[m++]=O,m}function Wi(y,g,m,v,M){P(g,v,M,y,m,7);let k=Number(g&BigInt(4294967295));y[m+7]=k,k=k>>8,y[m+6]=k,k=k>>8,y[m+5]=k,k=k>>8,y[m+4]=k;let O=Number(g>>BigInt(32)&BigInt(4294967295));return y[m+3]=O,O=O>>8,y[m+2]=O,O=O>>8,y[m+1]=O,O=O>>8,y[m]=O,m+8}s.prototype.writeBigUInt64LE=Hn(function(g,m=0){return da(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Hn(function(g,m=0){return Wi(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,m,v,M){if(g=+g,m=m>>>0,!M){const _e=Math.pow(2,8*v-1);qe(this,g,m,v,_e-1,-_e)}let k=0,O=1,te=0;for(this[m]=g&255;++k<v&&(O*=256);)g<0&&te===0&&this[m+k-1]!==0&&(te=1),this[m+k]=(g/O>>0)-te&255;return m+v},s.prototype.writeIntBE=function(g,m,v,M){if(g=+g,m=m>>>0,!M){const _e=Math.pow(2,8*v-1);qe(this,g,m,v,_e-1,-_e)}let k=v-1,O=1,te=0;for(this[m+k]=g&255;--k>=0&&(O*=256);)g<0&&te===0&&this[m+k+1]!==0&&(te=1),this[m+k]=(g/O>>0)-te&255;return m+v},s.prototype.writeInt8=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,1,127,-128),g<0&&(g=255+g+1),this[m]=g&255,m+1},s.prototype.writeInt16LE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,2,32767,-32768),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeInt16BE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,2,32767,-32768),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeInt32LE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,4,2147483647,-2147483648),this[m]=g&255,this[m+1]=g>>>8,this[m+2]=g>>>16,this[m+3]=g>>>24,m+4},s.prototype.writeInt32BE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4},s.prototype.writeBigInt64LE=Hn(function(g,m=0){return da(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Hn(function(g,m=0){return Wi(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ga(y,g,m,v,M,k){if(m+v>y.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function Xi(y,g,m,v,M){return g=+g,m=m>>>0,M||ga(y,g,m,4),n.write(y,g,m,v,23,4),m+4}s.prototype.writeFloatLE=function(g,m,v){return Xi(this,g,m,!0,v)},s.prototype.writeFloatBE=function(g,m,v){return Xi(this,g,m,!1,v)};function pa(y,g,m,v,M){return g=+g,m=m>>>0,M||ga(y,g,m,8),n.write(y,g,m,v,52,8),m+8}s.prototype.writeDoubleLE=function(g,m,v){return pa(this,g,m,!0,v)},s.prototype.writeDoubleBE=function(g,m,v){return pa(this,g,m,!1,v)},s.prototype.copy=function(g,m,v,M){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(v||(v=0),!M&&M!==0&&(M=this.length),m>=g.length&&(m=g.length),m||(m=0),M>0&&M<v&&(M=v),M===v||g.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(v<0||v>=this.length)throw new RangeError("Index out of range");if(M<0)throw new RangeError("sourceEnd out of bounds");M>this.length&&(M=this.length),g.length-m<M-v&&(M=g.length-m+v);const k=M-v;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,v,M):Uint8Array.prototype.set.call(g,this.subarray(v,M),m),k},s.prototype.fill=function(g,m,v,M){if(typeof g=="string"){if(typeof m=="string"?(M=m,m=0,v=this.length):typeof v=="string"&&(M=v,v=this.length),M!==void 0&&typeof M!="string")throw new TypeError("encoding must be a string");if(typeof M=="string"&&!s.isEncoding(M))throw new TypeError("Unknown encoding: "+M);if(g.length===1){const O=g.charCodeAt(0);(M==="utf8"&&O<128||M==="latin1")&&(g=O)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(m<0||this.length<m||this.length<v)throw new RangeError("Out of range index");if(v<=m)return this;m=m>>>0,v=v===void 0?this.length:v>>>0,g||(g=0);let k;if(typeof g=="number")for(k=m;k<v;++k)this[k]=g;else{const O=s.isBuffer(g)?g:s.from(g,M),te=O.length;if(te===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(k=0;k<v-m;++k)this[k+m]=O[k%te]}return this};const vn={};function Q(y,g,m){vn[y]=class extends m{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${y}]`,this.stack,delete this.name}get code(){return y}set code(M){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:M,writable:!0})}toString(){return`${this.name} [${y}]: ${this.message}`}}}Q("ERR_BUFFER_OUT_OF_BOUNDS",function(y){return y?`${y} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Q("ERR_INVALID_ARG_TYPE",function(y,g){return`The "${y}" argument must be of type number. Received type ${typeof g}`},TypeError),Q("ERR_OUT_OF_RANGE",function(y,g,m){let v=`The value of "${y}" is out of range.`,M=m;return Number.isInteger(m)&&Math.abs(m)>2**32?M=$(String(m)):typeof m=="bigint"&&(M=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(M=$(M)),M+="n"),v+=` It must be ${g}. Received ${M}`,v},RangeError);function $(y){let g="",m=y.length;const v=y[0]==="-"?1:0;for(;m>=v+4;m-=3)g=`_${y.slice(m-3,m)}${g}`;return`${y.slice(0,m)}${g}`}function ie(y,g,m){Pe(g,"offset"),(y[g]===void 0||y[g+m]===void 0)&&se(g,y.length-(m+1))}function P(y,g,m,v,M,k){if(y>m||y<g){const O=typeof g=="bigint"?"n":"";let te;throw k>3?g===0||g===BigInt(0)?te=`>= 0${O} and < 2${O} ** ${(k+1)*8}${O}`:te=`>= -(2${O} ** ${(k+1)*8-1}${O}) and < 2 ** ${(k+1)*8-1}${O}`:te=`>= ${g}${O} and <= ${m}${O}`,new vn.ERR_OUT_OF_RANGE("value",te,y)}ie(v,M,k)}function Pe(y,g){if(typeof y!="number")throw new vn.ERR_INVALID_ARG_TYPE(g,"number",y)}function se(y,g,m){throw Math.floor(y)!==y?(Pe(y,m),new vn.ERR_OUT_OF_RANGE(m||"offset","an integer",y)):g<0?new vn.ERR_BUFFER_OUT_OF_BOUNDS:new vn.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${g}`,y)}const ut=/[^+/0-9A-Za-z-_]/g;function nt(y){if(y=y.split("=")[0],y=y.trim().replace(ut,""),y.length<2)return"";for(;y.length%4!==0;)y=y+"=";return y}function Ot(y,g){g=g||1/0;let m;const v=y.length;let M=null;const k=[];for(let O=0;O<v;++O){if(m=y.charCodeAt(O),m>55295&&m<57344){if(!M){if(m>56319){(g-=3)>-1&&k.push(239,191,189);continue}else if(O+1===v){(g-=3)>-1&&k.push(239,191,189);continue}M=m;continue}if(m<56320){(g-=3)>-1&&k.push(239,191,189),M=m;continue}m=(M-55296<<10|m-56320)+65536}else M&&(g-=3)>-1&&k.push(239,191,189);if(M=null,m<128){if((g-=1)<0)break;k.push(m)}else if(m<2048){if((g-=2)<0)break;k.push(m>>6|192,m&63|128)}else if(m<65536){if((g-=3)<0)break;k.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((g-=4)<0)break;k.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return k}function Ki(y){const g=[];for(let m=0;m<y.length;++m)g.push(y.charCodeAt(m)&255);return g}function cg(y,g){let m,v,M;const k=[];for(let O=0;O<y.length&&!((g-=2)<0);++O)m=y.charCodeAt(O),v=m>>8,M=m%256,k.push(M),k.push(v);return k}function mu(y){return t.toByteArray(nt(y))}function ma(y,g,m,v){let M;for(M=0;M<v&&!(M+m>=g.length||M>=y.length);++M)g[M+m]=y[M];return M}function Pt(y,g){return y instanceof g||y!=null&&y.constructor!=null&&y.constructor.name!=null&&y.constructor.name===g.name}function bu(y){return y!==y}const Pf=function(){const y="0123456789abcdef",g=new Array(256);for(let m=0;m<16;++m){const v=m*16;for(let M=0;M<16;++M)g[v+M]=y[m]+y[M]}return g}();function Hn(y){return typeof BigInt>"u"?Uf:y}function Uf(){throw new Error("BigInt not supported")}})(kt);const Lr={},E0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class tr{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return kt.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||E0.fetch&&E0.fetch.bind(E0);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(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,o={}){const{headers:a={},signal:s,overrides:c={}}=o;r<1/0?a.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(a.range=`bytes=${i}-`);const u={...this.baseOverrides,...c,headers:{...a,...c.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},f=await this.fetch(this.url,u);if(!f.ok)throw new Error(`HTTP ${f.status} ${f.statusText} ${this.url}`);if(f.status===200&&i===0||f.status===206){const l=await this.getBufferFromResponse(f),h=l.copy(t,n,0,Math.min(r,l.length)),d=f.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw f.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${f.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,delete r.encoding);const{headers:i={},signal:o,overrides:a={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:o,...this.baseOverrides,...a},c=await this.fetch(this.url,s);if(!c)throw new Error("generic-filehandle failed to fetch");if(c.status!==200)throw Object.assign(new Error(`HTTP ${c.status} fetching ${this.url}`),{status:c.status});if(n==="utf8")return c.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(c)}async stat(){if(!this._stat){const t=kt.Buffer.allocUnsafe(10);if(await this.read(t,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}var nr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(o,a){return Object.prototype.hasOwnProperty.call(o,a)}e.assign=function(o){for(var a=Array.prototype.slice.call(arguments,1);a.length;){var s=a.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var c in s)n(s,c)&&(o[c]=s[c])}}return o},e.shrinkBuf=function(o,a){return o.length===a?o:o.subarray?o.subarray(0,a):(o.length=a,o)};var r={arraySet:function(o,a,s,c,u){if(a.subarray&&o.subarray){o.set(a.subarray(s,s+c),u);return}for(var f=0;f<c;f++)o[u+f]=a[s+f]},flattenChunks:function(o){var a,s,c,u,f,l;for(c=0,a=0,s=o.length;a<s;a++)c+=o[a].length;for(l=new Uint8Array(c),u=0,a=0,s=o.length;a<s;a++)f=o[a],l.set(f,u),u+=f.length;return l}},i={arraySet:function(o,a,s,c,u){for(var f=0;f<c;f++)o[u+f]=a[s+f]},flattenChunks:function(o){return[].concat.apply([],o)}};e.setTyped=function(o){o?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(nr);var Es={},Fn={},zo={},dN=nr,gN=4,Hy=0,Qy=1,pN=2;function Ro(e){for(var t=e.length;--t>=0;)e[t]=0}var mN=0,Vy=1,bN=2,yN=3,wN=258,C0=29,Cs=256,Ss=Cs+1+C0,Oo=30,S0=19,Zy=2*Ss+1,_i=15,D0=16,xN=7,I0=256,Yy=16,qy=17,Wy=18,_0=[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],Qc=[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],AN=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Xy=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],vN=512,rr=new Array((Ss+2)*2);Ro(rr);var Ds=new Array(Oo*2);Ro(Ds);var Is=new Array(vN);Ro(Is);var _s=new Array(wN-yN+1);Ro(_s);var M0=new Array(C0);Ro(M0);var Vc=new Array(Oo);Ro(Vc);function T0(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var Ky,Jy,$y;function N0(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function ew(e){return e<256?Is[e]:Is[256+(e>>>7)]}function Ms(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function _t(e,t,n){e.bi_valid>D0-n?(e.bi_buf|=t<<e.bi_valid&65535,Ms(e,e.bi_buf),e.bi_buf=t>>D0-e.bi_valid,e.bi_valid+=n-D0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function kn(e,t,n){_t(e,n[t*2],n[t*2+1])}function tw(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function EN(e){e.bi_valid===16?(Ms(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function CN(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,u,f,l,h,d,p,b=0;for(h=0;h<=_i;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;u<Zy;u++)f=e.heap[u],h=n[n[f*2+1]*2+1]+1,h>c&&(h=c,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=a[f-s]),p=n[f*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==0){do{for(h=c-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,b-=2}while(b>0);for(h=c;h!==0;h--)for(f=e.bl_count[h];f!==0;)l=e.heap[--u],!(l>r)&&(n[l*2+1]!==h&&(e.opt_len+=(h-n[l*2+1])*n[l*2],n[l*2+1]=h),f--)}}function nw(e,t,n){var r=new Array(_i+1),i=0,o,a;for(o=1;o<=_i;o++)r[o]=i=i+n[o-1]<<1;for(a=0;a<=t;a++){var s=e[a*2+1];s!==0&&(e[a*2]=tw(r[s]++,s))}}function SN(){var e,t,n,r,i,o=new Array(_i+1);for(n=0,r=0;r<C0-1;r++)for(M0[r]=n,e=0;e<1<<_0[r];e++)_s[n++]=r;for(_s[n-1]=r,i=0,r=0;r<16;r++)for(Vc[r]=i,e=0;e<1<<Qc[r];e++)Is[i++]=r;for(i>>=7;r<Oo;r++)for(Vc[r]=i<<7,e=0;e<1<<Qc[r]-7;e++)Is[256+i++]=r;for(t=0;t<=_i;t++)o[t]=0;for(e=0;e<=143;)rr[e*2+1]=8,e++,o[8]++;for(;e<=255;)rr[e*2+1]=9,e++,o[9]++;for(;e<=279;)rr[e*2+1]=7,e++,o[7]++;for(;e<=287;)rr[e*2+1]=8,e++,o[8]++;for(nw(rr,Ss+1,o),e=0;e<Oo;e++)Ds[e*2+1]=5,Ds[e*2]=tw(e,5);Ky=new T0(rr,_0,Cs+1,Ss,_i),Jy=new T0(Ds,Qc,0,Oo,_i),$y=new T0(new Array(0),AN,0,S0,xN)}function rw(e){var t;for(t=0;t<Ss;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Oo;t++)e.dyn_dtree[t*2]=0;for(t=0;t<S0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[I0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function iw(e){e.bi_valid>8?Ms(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function DN(e,t,n,r){iw(e),r&&(Ms(e,n),Ms(e,~n)),dN.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function ow(e,t,n,r){var i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]}function B0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&ow(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!ow(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function aw(e,t,n){var r,i,o=0,a,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+o*2]<<8|e.pending_buf[e.d_buf+o*2+1],i=e.pending_buf[e.l_buf+o],o++,r===0?kn(e,i,t):(a=_s[i],kn(e,a+Cs+1,t),s=_0[a],s!==0&&(i-=M0[a],_t(e,i,s)),r--,a=ew(r),kn(e,a,n),s=Qc[a],s!==0&&(r-=Vc[a],_t(e,r,s)));while(o<e.last_lit);kn(e,I0,t)}function F0(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems,a,s,c=-1,u;for(e.heap_len=0,e.heap_max=Zy,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=c=a,e.depth[a]=0):n[a*2+1]=0;for(;e.heap_len<2;)u=e.heap[++e.heap_len]=c<2?++c:0,n[u*2]=1,e.depth[u]=0,e.opt_len--,i&&(e.static_len-=r[u*2+1]);for(t.max_code=c,a=e.heap_len>>1;a>=1;a--)B0(e,n,a);u=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],B0(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[u*2]=n[a*2]+n[s*2],e.depth[u]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=u,e.heap[1]=u++,B0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],CN(e,t),nw(n,c,e.bl_count)}function sw(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,c=7,u=4;for(a===0&&(c=138,u=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<c&&o===a)&&(s<u?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[Yy*2]++):s<=10?e.bl_tree[qy*2]++:e.bl_tree[Wy*2]++,s=0,i=o,a===0?(c=138,u=3):o===a?(c=6,u=3):(c=7,u=4))}function uw(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,c=7,u=4;for(a===0&&(c=138,u=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<c&&o===a)){if(s<u)do kn(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(kn(e,o,e.bl_tree),s--),kn(e,Yy,e.bl_tree),_t(e,s-3,2)):s<=10?(kn(e,qy,e.bl_tree),_t(e,s-3,3)):(kn(e,Wy,e.bl_tree),_t(e,s-11,7));s=0,i=o,a===0?(c=138,u=3):o===a?(c=6,u=3):(c=7,u=4)}}function IN(e){var t;for(sw(e,e.dyn_ltree,e.l_desc.max_code),sw(e,e.dyn_dtree,e.d_desc.max_code),F0(e,e.bl_desc),t=S0-1;t>=3&&e.bl_tree[Xy[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function _N(e,t,n,r){var i;for(_t(e,t-257,5),_t(e,n-1,5),_t(e,r-4,4),i=0;i<r;i++)_t(e,e.bl_tree[Xy[i]*2+1],3);uw(e,e.dyn_ltree,t-1),uw(e,e.dyn_dtree,n-1)}function MN(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Hy;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Qy;for(n=32;n<Cs;n++)if(e.dyn_ltree[n*2]!==0)return Qy;return Hy}var cw=!1;function TN(e){cw||(SN(),cw=!0),e.l_desc=new N0(e.dyn_ltree,Ky),e.d_desc=new N0(e.dyn_dtree,Jy),e.bl_desc=new N0(e.bl_tree,$y),e.bi_buf=0,e.bi_valid=0,rw(e)}function fw(e,t,n,r){_t(e,(mN<<1)+(r?1:0),3),DN(e,t,n,!0)}function NN(e){_t(e,Vy<<1,3),kn(e,I0,rr),EN(e)}function BN(e,t,n,r){var i,o,a=0;e.level>0?(e.strm.data_type===pN&&(e.strm.data_type=MN(e)),F0(e,e.l_desc),F0(e,e.d_desc),a=IN(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?fw(e,t,n,r):e.strategy===gN||o===i?(_t(e,(Vy<<1)+(r?1:0),3),aw(e,rr,Ds)):(_t(e,(bN<<1)+(r?1:0),3),_N(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),aw(e,e.dyn_ltree,e.dyn_dtree)),rw(e),r&&iw(e)}function FN(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(_s[n]+Cs+1)*2]++,e.dyn_dtree[ew(t)*2]++),e.last_lit===e.lit_bufsize-1}zo._tr_init=TN,zo._tr_stored_block=fw,zo._tr_flush_block=BN,zo._tr_tally=FN,zo._tr_align=NN;function kN(e,t,n,r){for(var i=e&65535|0,o=e>>>16&65535|0,a=0;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+t[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0}var lw=kN;function LN(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var zN=LN();function RN(e,t,n,r){var i=zN,o=r+n;e^=-1;for(var a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1}var hw=RN,k0={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"},bt=nr,Vt=zo,dw=lw,zr=hw,ON=k0,Mi=0,PN=1,UN=3,Rr=4,gw=5,Ln=0,pw=1,Zt=-2,jN=-3,L0=-5,GN=-1,HN=1,Zc=2,QN=3,VN=4,ZN=0,YN=2,Yc=8,qN=9,WN=15,XN=8,KN=29,JN=256,z0=JN+1+KN,$N=30,eB=19,tB=2*z0+1,nB=15,oe=3,Or=258,pn=Or+oe+1,rB=32,qc=42,R0=69,Wc=73,Xc=91,Kc=103,Ti=113,Ts=666,Ve=1,Ns=2,Ni=3,Po=4,iB=3;function Pr(e,t){return e.msg=ON[t],t}function mw(e){return(e<<1)-(e>4?9:0)}function Ur(e){for(var t=e.length;--t>=0;)e[t]=0}function jr(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(bt.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function at(e,t){Vt._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,jr(e.strm)}function le(e,t){e.pending_buf[e.pending++]=t}function Bs(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function oB(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,bt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=dw(e.adler,t,i,n):e.state.wrap===2&&(e.adler=zr(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function bw(e,t){var n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-pn?e.strstart-(e.w_size-pn):0,u=e.window,f=e.w_mask,l=e.prev,h=e.strstart+Or,d=u[r+a-1],p=u[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(u[i+a]!==p||u[i+a-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(o=Or-(h-r),r=h-Or,o>a){if(e.match_start=t,a=o,o>=s)break;d=u[r+a-1],p=u[r+a]}}while((t=l[t&f])>c&&--n!==0);return a<=e.lookahead?a:e.lookahead}function Bi(e){var t=e.w_size,n,r,i,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-pn)){bt.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);o+=t}if(e.strm.avail_in===0)break;if(r=oB(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=oe)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+oe-1])&e.hash_mask,e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<oe)););}while(e.lookahead<pn&&e.strm.avail_in!==0)}function aB(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Bi(e),e.lookahead===0&&t===Mi)return Ve;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,at(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-pn&&(at(e,!1),e.strm.avail_out===0))return Ve}return e.insert=0,t===Rr?(at(e,!0),e.strm.avail_out===0?Ni:Po):(e.strstart>e.block_start&&(at(e,!1),e.strm.avail_out===0),Ve)}function O0(e,t){for(var n,r;;){if(e.lookahead<pn){if(Bi(e),e.lookahead<pn&&t===Mi)return Ve;if(e.lookahead===0)break}if(n=0,e.lookahead>=oe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+oe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-pn&&(e.match_length=bw(e,n)),e.match_length>=oe)if(r=Vt._tr_tally(e,e.strstart-e.match_start,e.match_length-oe),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=oe){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+oe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=Vt._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(at(e,!1),e.strm.avail_out===0))return Ve}return e.insert=e.strstart<oe-1?e.strstart:oe-1,t===Rr?(at(e,!0),e.strm.avail_out===0?Ni:Po):e.last_lit&&(at(e,!1),e.strm.avail_out===0)?Ve:Ns}function Uo(e,t){for(var n,r,i;;){if(e.lookahead<pn){if(Bi(e),e.lookahead<pn&&t===Mi)return Ve;if(e.lookahead===0)break}if(n=0,e.lookahead>=oe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+oe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=oe-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-pn&&(e.match_length=bw(e,n),e.match_length<=5&&(e.strategy===HN||e.match_length===oe&&e.strstart-e.match_start>4096)&&(e.match_length=oe-1)),e.prev_length>=oe&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-oe,r=Vt._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-oe),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+oe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=oe-1,e.strstart++,r&&(at(e,!1),e.strm.avail_out===0))return Ve}else if(e.match_available){if(r=Vt._tr_tally(e,0,e.window[e.strstart-1]),r&&at(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Ve}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Vt._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<oe-1?e.strstart:oe-1,t===Rr?(at(e,!0),e.strm.avail_out===0?Ni:Po):e.last_lit&&(at(e,!1),e.strm.avail_out===0)?Ve:Ns}function sB(e,t){for(var n,r,i,o,a=e.window;;){if(e.lookahead<=Or){if(Bi(e),e.lookahead<=Or&&t===Mi)return Ve;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=oe&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+Or;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=Or-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=oe?(n=Vt._tr_tally(e,1,e.match_length-oe),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Vt._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(at(e,!1),e.strm.avail_out===0))return Ve}return e.insert=0,t===Rr?(at(e,!0),e.strm.avail_out===0?Ni:Po):e.last_lit&&(at(e,!1),e.strm.avail_out===0)?Ve:Ns}function uB(e,t){for(var n;;){if(e.lookahead===0&&(Bi(e),e.lookahead===0)){if(t===Mi)return Ve;break}if(e.match_length=0,n=Vt._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(at(e,!1),e.strm.avail_out===0))return Ve}return e.insert=0,t===Rr?(at(e,!0),e.strm.avail_out===0?Ni:Po):e.last_lit&&(at(e,!1),e.strm.avail_out===0)?Ve:Ns}function zn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var jo;jo=[new zn(0,0,0,0,aB),new zn(4,4,8,4,O0),new zn(4,5,16,8,O0),new zn(4,6,32,32,O0),new zn(4,4,16,16,Uo),new zn(8,16,32,32,Uo),new zn(8,16,128,128,Uo),new zn(8,32,128,256,Uo),new zn(32,128,258,1024,Uo),new zn(32,258,258,4096,Uo)];function cB(e){e.window_size=2*e.w_size,Ur(e.head),e.max_lazy_match=jo[e.level].max_lazy,e.good_match=jo[e.level].good_length,e.nice_match=jo[e.level].nice_length,e.max_chain_length=jo[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=oe-1,e.match_available=0,e.ins_h=0}function fB(){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=Yc,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 bt.Buf16(tB*2),this.dyn_dtree=new bt.Buf16((2*$N+1)*2),this.bl_tree=new bt.Buf16((2*eB+1)*2),Ur(this.dyn_ltree),Ur(this.dyn_dtree),Ur(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new bt.Buf16(nB+1),this.heap=new bt.Buf16(2*z0+1),Ur(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new bt.Buf16(2*z0+1),Ur(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 yw(e){var t;return!e||!e.state?Pr(e,Zt):(e.total_in=e.total_out=0,e.data_type=YN,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?qc:Ti,e.adler=t.wrap===2?0:1,t.last_flush=Mi,Vt._tr_init(t),Ln)}function ww(e){var t=yw(e);return t===Ln&&cB(e.state),t}function lB(e,t){return!e||!e.state||e.state.wrap!==2?Zt:(e.state.gzhead=t,Ln)}function xw(e,t,n,r,i,o){if(!e)return Zt;var a=1;if(t===GN&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>qN||n!==Yc||r<8||r>15||t<0||t>9||o<0||o>VN)return Pr(e,Zt);r===8&&(r=9);var s=new fB;return e.state=s,s.strm=e,s.wrap=a,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+oe-1)/oe),s.window=new bt.Buf8(s.w_size*2),s.head=new bt.Buf16(s.hash_size),s.prev=new bt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new bt.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=o,s.method=n,ww(e)}function hB(e,t){return xw(e,t,Yc,WN,XN,ZN)}function dB(e,t){var n,r,i,o;if(!e||!e.state||t>gw||t<0)return e?Pr(e,Zt):Zt;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Ts&&t!==Rr)return Pr(e,e.avail_out===0?L0:Zt);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===qc)if(r.wrap===2)e.adler=0,le(r,31),le(r,139),le(r,8),r.gzhead?(le(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)),le(r,r.gzhead.time&255),le(r,r.gzhead.time>>8&255),le(r,r.gzhead.time>>16&255),le(r,r.gzhead.time>>24&255),le(r,r.level===9?2:r.strategy>=Zc||r.level<2?4:0),le(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(le(r,r.gzhead.extra.length&255),le(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=zr(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=R0):(le(r,0),le(r,0),le(r,0),le(r,0),le(r,0),le(r,r.level===9?2:r.strategy>=Zc||r.level<2?4:0),le(r,iB),r.status=Ti);else{var a=Yc+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Zc||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,a|=s<<6,r.strstart!==0&&(a|=rB),a+=31-a%31,r.status=Ti,Bs(r,a),r.strstart!==0&&(Bs(r,e.adler>>>16),Bs(r,e.adler&65535)),e.adler=1}if(r.status===R0)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&&(e.adler=zr(e.adler,r.pending_buf,r.pending-i,i)),jr(e),i=r.pending,r.pending===r.pending_buf_size));)le(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=zr(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Wc)}else r.status=Wc;if(r.status===Wc)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=zr(e.adler,r.pending_buf,r.pending-i,i)),jr(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.name.length?o=r.gzhead.name.charCodeAt(r.gzindex++)&255:o=0,le(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=zr(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.gzindex=0,r.status=Xc)}else r.status=Xc;if(r.status===Xc)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=zr(e.adler,r.pending_buf,r.pending-i,i)),jr(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.comment.length?o=r.gzhead.comment.charCodeAt(r.gzindex++)&255:o=0,le(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=zr(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.status=Kc)}else r.status=Kc;if(r.status===Kc&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&jr(e),r.pending+2<=r.pending_buf_size&&(le(r,e.adler&255),le(r,e.adler>>8&255),e.adler=0,r.status=Ti)):r.status=Ti),r.pending!==0){if(jr(e),e.avail_out===0)return r.last_flush=-1,Ln}else if(e.avail_in===0&&mw(t)<=mw(n)&&t!==Rr)return Pr(e,L0);if(r.status===Ts&&e.avail_in!==0)return Pr(e,L0);if(e.avail_in!==0||r.lookahead!==0||t!==Mi&&r.status!==Ts){var c=r.strategy===Zc?uB(r,t):r.strategy===QN?sB(r,t):jo[r.level].func(r,t);if((c===Ni||c===Po)&&(r.status=Ts),c===Ve||c===Ni)return e.avail_out===0&&(r.last_flush=-1),Ln;if(c===Ns&&(t===PN?Vt._tr_align(r):t!==gw&&(Vt._tr_stored_block(r,0,0,!1),t===UN&&(Ur(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),jr(e),e.avail_out===0))return r.last_flush=-1,Ln}return t!==Rr?Ln:r.wrap<=0?pw:(r.wrap===2?(le(r,e.adler&255),le(r,e.adler>>8&255),le(r,e.adler>>16&255),le(r,e.adler>>24&255),le(r,e.total_in&255),le(r,e.total_in>>8&255),le(r,e.total_in>>16&255),le(r,e.total_in>>24&255)):(Bs(r,e.adler>>>16),Bs(r,e.adler&65535)),jr(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Ln:pw)}function gB(e){var t;return!e||!e.state?Zt:(t=e.state.status,t!==qc&&t!==R0&&t!==Wc&&t!==Xc&&t!==Kc&&t!==Ti&&t!==Ts?Pr(e,Zt):(e.state=null,t===Ti?Pr(e,jN):Ln))}function pB(e,t){var n=t.length,r,i,o,a,s,c,u,f;if(!e||!e.state||(r=e.state,a=r.wrap,a===2||a===1&&r.status!==qc||r.lookahead))return Zt;for(a===1&&(e.adler=dw(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(a===0&&(Ur(r.head),r.strstart=0,r.block_start=0,r.insert=0),f=new bt.Buf8(r.w_size),bt.arraySet(f,t,n-r.w_size,r.w_size,0),t=f,n=r.w_size),s=e.avail_in,c=e.next_in,u=e.input,e.avail_in=n,e.next_in=0,e.input=t,Bi(r);r.lookahead>=oe;){i=r.strstart,o=r.lookahead-(oe-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+oe-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--o);r.strstart=i,r.lookahead=oe-1,Bi(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=oe-1,r.match_available=0,e.next_in=c,e.input=u,e.avail_in=s,r.wrap=a,Ln}Fn.deflateInit=hB,Fn.deflateInit2=xw,Fn.deflateReset=ww,Fn.deflateResetKeep=yw,Fn.deflateSetHeader=lB,Fn.deflate=dB,Fn.deflateEnd=gB,Fn.deflateSetDictionary=pB,Fn.deflateInfo="pako deflate (from Nodeca project)";var Fi={},Jc=nr,Aw=!0,vw=!0;try{String.fromCharCode.apply(null,[0])}catch{Aw=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{vw=!1}for(var Fs=new Jc.Buf8(256),Gr=0;Gr<256;Gr++)Fs[Gr]=Gr>=252?6:Gr>=248?5:Gr>=240?4:Gr>=224?3:Gr>=192?2:1;Fs[254]=Fs[254]=1,Fi.string2buf=function(e){var t,n,r,i,o,a=e.length,s=0;for(i=0;i<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.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(t=new Jc.Buf8(s),o=0,i=0;o<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};function Ew(e,t){if(t<65534&&(e.subarray&&vw||!e.subarray&&Aw))return String.fromCharCode.apply(null,Jc.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Fi.buf2binstring=function(e){return Ew(e,e.length)},Fi.binstring2buf=function(e){for(var t=new Jc.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Fi.buf2string=function(e,t){var n,r,i,o,a=t||e.length,s=new Array(a*2);for(r=0,n=0;n<a;){if(i=e[n++],i<128){s[r++]=i;continue}if(o=Fs[i],o>4){s[r++]=65533,n+=o-1;continue}for(i&=o===2?31:o===3?15:7;o>1&&n<a;)i=i<<6|e[n++]&63,o--;if(o>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return Ew(s,r)},Fi.utf8border=function(e,t){var n;for(t=t||e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+Fs[e[n]]>t?n:t};function mB(){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 Cw=mB,ks=Fn,Ls=nr,P0=Fi,U0=k0,bB=Cw,Sw=Object.prototype.toString,yB=0,j0=4,Go=0,Dw=1,Iw=2,wB=-1,xB=0,AB=8;function ki(e){if(!(this instanceof ki))return new ki(e);this.options=Ls.assign({level:wB,method:AB,chunkSize:16384,windowBits:15,memLevel:8,strategy:xB,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new bB,this.strm.avail_out=0;var n=ks.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Go)throw new Error(U0[n]);if(t.header&&ks.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=P0.string2buf(t.dictionary):Sw.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=ks.deflateSetDictionary(this.strm,r),n!==Go)throw new Error(U0[n]);this._dict_set=!0}}ki.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,o;if(this.ended)return!1;o=t===~~t?t:t===!0?j0:yB,typeof e=="string"?n.input=P0.string2buf(e):Sw.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new Ls.Buf8(r),n.next_out=0,n.avail_out=r),i=ks.deflate(n,o),i!==Dw&&i!==Go)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(o===j0||o===Iw))&&(this.options.to==="string"?this.onData(P0.buf2binstring(Ls.shrinkBuf(n.output,n.next_out))):this.onData(Ls.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==Dw);return o===j0?(i=ks.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Go):(o===Iw&&(this.onEnd(Go),n.avail_out=0),!0)},ki.prototype.onData=function(e){this.chunks.push(e)},ki.prototype.onEnd=function(e){e===Go&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ls.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function G0(e,t){var n=new ki(t);if(n.push(e,!0),n.err)throw n.msg||U0[n.err];return n.result}function vB(e,t){return t=t||{},t.raw=!0,G0(e,t)}function EB(e,t){return t=t||{},t.gzip=!0,G0(e,t)}Es.Deflate=ki,Es.deflate=G0,Es.deflateRaw=vB,Es.gzip=EB;var zs={},mn={},$c=30,CB=12,SB=function(t,n){var r,i,o,a,s,c,u,f,l,h,d,p,b,x,A,D,_,C,T,B,S,z,E,N,F;r=t.state,i=t.next_in,N=t.input,o=i+(t.avail_in-5),a=t.next_out,F=t.output,s=a-(n-t.avail_out),c=a+(t.avail_out-257),u=r.dmax,f=r.wsize,l=r.whave,h=r.wnext,d=r.window,p=r.hold,b=r.bits,x=r.lencode,A=r.distcode,D=(1<<r.lenbits)-1,_=(1<<r.distbits)-1;e:do{b<15&&(p+=N[i++]<<b,b+=8,p+=N[i++]<<b,b+=8),C=x[p&D];t:for(;;){if(T=C>>>24,p>>>=T,b-=T,T=C>>>16&255,T===0)F[a++]=C&65535;else if(T&16){B=C&65535,T&=15,T&&(b<T&&(p+=N[i++]<<b,b+=8),B+=p&(1<<T)-1,p>>>=T,b-=T),b<15&&(p+=N[i++]<<b,b+=8,p+=N[i++]<<b,b+=8),C=A[p&_];n:for(;;){if(T=C>>>24,p>>>=T,b-=T,T=C>>>16&255,T&16){if(S=C&65535,T&=15,b<T&&(p+=N[i++]<<b,b+=8,b<T&&(p+=N[i++]<<b,b+=8)),S+=p&(1<<T)-1,S>u){t.msg="invalid distance too far back",r.mode=$c;break e}if(p>>>=T,b-=T,T=a-s,S>T){if(T=S-T,T>l&&r.sane){t.msg="invalid distance too far back",r.mode=$c;break e}if(z=0,E=d,h===0){if(z+=f-T,T<B){B-=T;do F[a++]=d[z++];while(--T);z=a-S,E=F}}else if(h<T){if(z+=f+h-T,T-=h,T<B){B-=T;do F[a++]=d[z++];while(--T);if(z=0,h<B){T=h,B-=T;do F[a++]=d[z++];while(--T);z=a-S,E=F}}}else if(z+=h-T,T<B){B-=T;do F[a++]=d[z++];while(--T);z=a-S,E=F}for(;B>2;)F[a++]=E[z++],F[a++]=E[z++],F[a++]=E[z++],B-=3;B&&(F[a++]=E[z++],B>1&&(F[a++]=E[z++]))}else{z=a-S;do F[a++]=F[z++],F[a++]=F[z++],F[a++]=F[z++],B-=3;while(B>2);B&&(F[a++]=F[z++],B>1&&(F[a++]=F[z++]))}}else if(T&64){t.msg="invalid distance code",r.mode=$c;break e}else{C=A[(C&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=CB;break e}else{t.msg="invalid literal/length code",r.mode=$c;break e}else{C=x[(C&65535)+(p&(1<<T)-1)];continue t}break}}while(i<o&&a<c);B=b>>3,i-=B,b-=B<<3,p&=(1<<b)-1,t.next_in=i,t.next_out=a,t.avail_in=i<o?5+(o-i):5-(i-o),t.avail_out=a<c?257+(c-a):257-(a-c),r.hold=p,r.bits=b},_w=nr,Ho=15,Mw=852,Tw=592,Nw=0,H0=1,Bw=2,DB=[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],IB=[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],_B=[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],MB=[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],TB=function(t,n,r,i,o,a,s,c){var u=c.bits,f=0,l=0,h=0,d=0,p=0,b=0,x=0,A=0,D=0,_=0,C,T,B,S,z,E=null,N=0,F,Z=new _w.Buf16(Ho+1),W=new _w.Buf16(Ho+1),Y=null,ye=0,Ce,Ye,wt;for(f=0;f<=Ho;f++)Z[f]=0;for(l=0;l<i;l++)Z[n[r+l]]++;for(p=u,d=Ho;d>=1&&Z[d]===0;d--);if(p>d&&(p=d),d===0)return o[a++]=1<<24|64<<16|0,o[a++]=1<<24|64<<16|0,c.bits=1,0;for(h=1;h<d&&Z[h]===0;h++);for(p<h&&(p=h),A=1,f=1;f<=Ho;f++)if(A<<=1,A-=Z[f],A<0)return-1;if(A>0&&(t===Nw||d!==1))return-1;for(W[1]=0,f=1;f<Ho;f++)W[f+1]=W[f]+Z[f];for(l=0;l<i;l++)n[r+l]!==0&&(s[W[n[r+l]]++]=l);if(t===Nw?(E=Y=s,F=19):t===H0?(E=DB,N-=257,Y=IB,ye-=257,F=256):(E=_B,Y=MB,F=-1),_=0,l=0,f=h,z=a,b=p,x=0,B=-1,D=1<<p,S=D-1,t===H0&&D>Mw||t===Bw&&D>Tw)return 1;for(;;){Ce=f-x,s[l]<F?(Ye=0,wt=s[l]):s[l]>F?(Ye=Y[ye+s[l]],wt=E[N+s[l]]):(Ye=32+64,wt=0),C=1<<f-x,T=1<<b,h=T;do T-=C,o[z+(_>>x)+T]=Ce<<24|Ye<<16|wt|0;while(T!==0);for(C=1<<f-1;_&C;)C>>=1;if(C!==0?(_&=C-1,_+=C):_=0,l++,--Z[f]===0){if(f===d)break;f=n[r+s[l]]}if(f>p&&(_&S)!==B){for(x===0&&(x=p),z+=h,b=f-x,A=1<<b;b+x<d&&(A-=Z[b+x],!(A<=0));)b++,A<<=1;if(D+=1<<b,t===H0&&D>Mw||t===Bw&&D>Tw)return 1;B=_&S,o[B]=p<<24|b<<16|z-a|0}}return _!==0&&(o[z+_]=f-x<<24|64<<16|0),c.bits=p,0},Lt=nr,Q0=lw,Rn=hw,NB=SB,Rs=TB,BB=0,Fw=1,kw=2,Lw=4,FB=5,ef=6,Li=0,kB=1,LB=2,Yt=-2,zw=-3,Rw=-4,zB=-5,Ow=8,Pw=1,Uw=2,jw=3,Gw=4,Hw=5,Qw=6,Vw=7,Zw=8,Yw=9,qw=10,tf=11,ir=12,V0=13,Ww=14,Z0=15,Xw=16,Kw=17,Jw=18,$w=19,nf=20,rf=21,ex=22,tx=23,nx=24,rx=25,ix=26,Y0=27,ox=28,ax=29,Be=30,sx=31,RB=32,OB=852,PB=592,UB=15,jB=UB;function ux(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function GB(){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 Lt.Buf16(320),this.work=new Lt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function cx(e){var t;return!e||!e.state?Yt:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Pw,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Lt.Buf32(OB),t.distcode=t.distdyn=new Lt.Buf32(PB),t.sane=1,t.back=-1,Li)}function fx(e){var t;return!e||!e.state?Yt:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,cx(e))}function lx(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Yt:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,fx(e))}function hx(e,t){var n,r;return e?(r=new GB,e.state=r,r.window=null,n=lx(e,t),n!==Li&&(e.state=null),n):Yt}function HB(e){return hx(e,jB)}var dx=!0,q0,W0;function QB(e){if(dx){var t;for(q0=new Lt.Buf32(512),W0=new Lt.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Rs(Fw,e.lens,0,288,q0,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Rs(kw,e.lens,0,32,W0,0,e.work,{bits:5}),dx=!1}e.lencode=q0,e.lenbits=9,e.distcode=W0,e.distbits=5}function gx(e,t,n,r){var i,o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Lt.Buf8(o.wsize)),r>=o.wsize?(Lt.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),Lt.arraySet(o.window,t,n-r,i,o.wnext),r-=i,r?(Lt.arraySet(o.window,t,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function VB(e,t){var n,r,i,o,a,s,c,u,f,l,h,d,p,b,x=0,A,D,_,C,T,B,S,z,E=new Lt.Buf8(4),N,F,Z=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return Yt;n=e.state,n.mode===ir&&(n.mode=V0),a=e.next_out,i=e.output,c=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,u=n.hold,f=n.bits,l=s,h=c,z=Li;e:for(;;)switch(n.mode){case Pw:if(n.wrap===0){n.mode=V0;break}for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(n.wrap&2&&u===35615){n.check=0,E[0]=u&255,E[1]=u>>>8&255,n.check=Rn(n.check,E,2,0),u=0,f=0,n.mode=Uw;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){e.msg="incorrect header check",n.mode=Be;break}if((u&15)!==Ow){e.msg="unknown compression method",n.mode=Be;break}if(u>>>=4,f-=4,S=(u&15)+8,n.wbits===0)n.wbits=S;else if(S>n.wbits){e.msg="invalid window size",n.mode=Be;break}n.dmax=1<<S,e.adler=n.check=1,n.mode=u&512?qw:ir,u=0,f=0;break;case Uw:for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(n.flags=u,(n.flags&255)!==Ow){e.msg="unknown compression method",n.mode=Be;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=Be;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&(E[0]=u&255,E[1]=u>>>8&255,n.check=Rn(n.check,E,2,0)),u=0,f=0,n.mode=jw;case jw:for(;f<32;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.head&&(n.head.time=u),n.flags&512&&(E[0]=u&255,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,n.check=Rn(n.check,E,4,0)),u=0,f=0,n.mode=Gw;case Gw:for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&(E[0]=u&255,E[1]=u>>>8&255,n.check=Rn(n.check,E,2,0)),u=0,f=0,n.mode=Hw;case Hw:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&(E[0]=u&255,E[1]=u>>>8&255,n.check=Rn(n.check,E,2,0)),u=0,f=0}else n.head&&(n.head.extra=null);n.mode=Qw;case Qw:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(S=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Lt.arraySet(n.head.extra,r,o,d,S)),n.flags&512&&(n.check=Rn(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Vw;case Vw:if(n.flags&2048){if(s===0)break e;d=0;do S=r[o+d++],n.head&&S&&n.length<65536&&(n.head.name+=String.fromCharCode(S));while(S&&d<s);if(n.flags&512&&(n.check=Rn(n.check,r,d,o)),s-=d,o+=d,S)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Zw;case Zw:if(n.flags&4096){if(s===0)break e;d=0;do S=r[o+d++],n.head&&S&&n.length<65536&&(n.head.comment+=String.fromCharCode(S));while(S&&d<s);if(n.flags&512&&(n.check=Rn(n.check,r,d,o)),s-=d,o+=d,S)break e}else n.head&&(n.head.comment=null);n.mode=Yw;case Yw:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(u!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Be;break}u=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=ir;break;case qw:for(;f<32;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}e.adler=n.check=ux(u),u=0,f=0,n.mode=tf;case tf:if(n.havedict===0)return e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,n.hold=u,n.bits=f,LB;e.adler=n.check=1,n.mode=ir;case ir:if(t===FB||t===ef)break e;case V0:if(n.last){u>>>=f&7,f-=f&7,n.mode=Y0;break}for(;f<3;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}switch(n.last=u&1,u>>>=1,f-=1,u&3){case 0:n.mode=Ww;break;case 1:if(QB(n),n.mode=nf,t===ef){u>>>=2,f-=2;break e}break;case 2:n.mode=Kw;break;case 3:e.msg="invalid block type",n.mode=Be}u>>>=2,f-=2;break;case Ww:for(u>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if((u&65535)!==(u>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Be;break}if(n.length=u&65535,u=0,f=0,n.mode=Z0,t===ef)break e;case Z0:n.mode=Xw;case Xw:if(d=n.length,d){if(d>s&&(d=s),d>c&&(d=c),d===0)break e;Lt.arraySet(i,r,o,d,a),s-=d,o+=d,c-=d,a+=d,n.length-=d;break}n.mode=ir;break;case Kw:for(;f<14;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(n.nlen=(u&31)+257,u>>>=5,f-=5,n.ndist=(u&31)+1,u>>>=5,f-=5,n.ncode=(u&15)+4,u>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Be;break}n.have=0,n.mode=Jw;case Jw:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.lens[Z[n.have++]]=u&7,u>>>=3,f-=3}for(;n.have<19;)n.lens[Z[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,N={bits:n.lenbits},z=Rs(BB,n.lens,0,19,n.lencode,0,n.work,N),n.lenbits=N.bits,z){e.msg="invalid code lengths set",n.mode=Be;break}n.have=0,n.mode=$w;case $w:for(;n.have<n.nlen+n.ndist;){for(;x=n.lencode[u&(1<<n.lenbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(_<16)u>>>=A,f-=A,n.lens[n.have++]=_;else{if(_===16){for(F=A+2;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(u>>>=A,f-=A,n.have===0){e.msg="invalid bit length repeat",n.mode=Be;break}S=n.lens[n.have-1],d=3+(u&3),u>>>=2,f-=2}else if(_===17){for(F=A+3;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}u>>>=A,f-=A,S=0,d=3+(u&7),u>>>=3,f-=3}else{for(F=A+7;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}u>>>=A,f-=A,S=0,d=11+(u&127),u>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Be;break}for(;d--;)n.lens[n.have++]=S}}if(n.mode===Be)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=Be;break}if(n.lenbits=9,N={bits:n.lenbits},z=Rs(Fw,n.lens,0,n.nlen,n.lencode,0,n.work,N),n.lenbits=N.bits,z){e.msg="invalid literal/lengths set",n.mode=Be;break}if(n.distbits=6,n.distcode=n.distdyn,N={bits:n.distbits},z=Rs(kw,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,N),n.distbits=N.bits,z){e.msg="invalid distances set",n.mode=Be;break}if(n.mode=nf,t===ef)break e;case nf:n.mode=rf;case rf:if(s>=6&&c>=258){e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,n.hold=u,n.bits=f,NB(e,h),a=e.next_out,i=e.output,c=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,u=n.hold,f=n.bits,n.mode===ir&&(n.back=-1);break}for(n.back=0;x=n.lencode[u&(1<<n.lenbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(D&&!(D&240)){for(C=A,T=D,B=_;x=n.lencode[B+((u&(1<<C+T)-1)>>C)],A=x>>>24,D=x>>>16&255,_=x&65535,!(C+A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}u>>>=C,f-=C,n.back+=C}if(u>>>=A,f-=A,n.back+=A,n.length=_,D===0){n.mode=ix;break}if(D&32){n.back=-1,n.mode=ir;break}if(D&64){e.msg="invalid literal/length code",n.mode=Be;break}n.extra=D&15,n.mode=ex;case ex:if(n.extra){for(F=n.extra;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=tx;case tx:for(;x=n.distcode[u&(1<<n.distbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(!(D&240)){for(C=A,T=D,B=_;x=n.distcode[B+((u&(1<<C+T)-1)>>C)],A=x>>>24,D=x>>>16&255,_=x&65535,!(C+A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}u>>>=C,f-=C,n.back+=C}if(u>>>=A,f-=A,n.back+=A,D&64){e.msg="invalid distance code",n.mode=Be;break}n.offset=_,n.extra=D&15,n.mode=nx;case nx:if(n.extra){for(F=n.extra;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Be;break}n.mode=rx;case rx:if(c===0)break e;if(d=h-c,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=Be;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=a-n.offset,d=n.length;d>c&&(d=c),c-=d,n.length-=d;do i[a++]=b[p++];while(--d);n.length===0&&(n.mode=rf);break;case ix:if(c===0)break e;i[a++]=n.length,c--,n.mode=rf;break;case Y0:if(n.wrap){for(;f<32;){if(s===0)break e;s--,u|=r[o++]<<f,f+=8}if(h-=c,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Rn(n.check,i,h,a-h):Q0(n.check,i,h,a-h)),h=c,(n.flags?u:ux(u))!==n.check){e.msg="incorrect data check",n.mode=Be;break}u=0,f=0}n.mode=ox;case ox:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(u!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Be;break}u=0,f=0}n.mode=ax;case ax:z=kB;break e;case Be:z=zw;break e;case sx:return Rw;case RB:default:return Yt}return e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,n.hold=u,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<Be&&(n.mode<Y0||t!==Lw))&&gx(e,e.output,e.next_out,h-e.avail_out),l-=e.avail_in,h-=e.avail_out,e.total_in+=l,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?Rn(n.check,i,h,e.next_out-h):Q0(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===ir?128:0)+(n.mode===nf||n.mode===Z0?256:0),(l===0&&h===0||t===Lw)&&z===Li&&(z=zB),z}function ZB(e){if(!e||!e.state)return Yt;var t=e.state;return t.window&&(t.window=null),e.state=null,Li}function YB(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?Yt:(n.head=t,t.done=!1,Li)}function qB(e,t){var n=t.length,r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==tf)?Yt:r.mode===tf&&(i=1,i=Q0(i,t,n,0),i!==r.check)?zw:(o=gx(e,t,n,n),o?(r.mode=sx,Rw):(r.havedict=1,Li))}mn.inflateReset=fx,mn.inflateReset2=lx,mn.inflateResetKeep=cx,mn.inflateInit=HB,mn.inflateInit2=hx,mn.inflate=VB,mn.inflateEnd=ZB,mn.inflateGetHeader=YB,mn.inflateSetDictionary=qB,mn.inflateInfo="pako inflate (from Nodeca project)";var px={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 WB(){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 XB=WB,Qo=mn,Os=nr,of=Fi,je=px,X0=k0,KB=Cw,JB=XB,mx=Object.prototype.toString;function zi(e){if(!(this instanceof zi))return new zi(e);this.options=Os.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new KB,this.strm.avail_out=0;var n=Qo.inflateInit2(this.strm,t.windowBits);if(n!==je.Z_OK)throw new Error(X0[n]);if(this.header=new JB,Qo.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=of.string2buf(t.dictionary):mx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Qo.inflateSetDictionary(this.strm,t.dictionary),n!==je.Z_OK)))throw new Error(X0[n])}zi.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,a,s,c,u,f=!1;if(this.ended)return!1;a=t===~~t?t:t===!0?je.Z_FINISH:je.Z_NO_FLUSH,typeof e=="string"?n.input=of.binstring2buf(e):mx.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new Os.Buf8(r),n.next_out=0,n.avail_out=r),o=Qo.inflate(n,je.Z_NO_FLUSH),o===je.Z_NEED_DICT&&i&&(o=Qo.inflateSetDictionary(this.strm,i)),o===je.Z_BUF_ERROR&&f===!0&&(o=je.Z_OK,f=!1),o!==je.Z_STREAM_END&&o!==je.Z_OK)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===je.Z_STREAM_END||n.avail_in===0&&(a===je.Z_FINISH||a===je.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=of.utf8border(n.output,n.next_out),c=n.next_out-s,u=of.buf2string(n.output,s),n.next_out=c,n.avail_out=r-c,c&&Os.arraySet(n.output,n.output,s,c,0),this.onData(u)):this.onData(Os.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(f=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==je.Z_STREAM_END);return o===je.Z_STREAM_END&&(a=je.Z_FINISH),a===je.Z_FINISH?(o=Qo.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===je.Z_OK):(a===je.Z_SYNC_FLUSH&&(this.onEnd(je.Z_OK),n.avail_out=0),!0)},zi.prototype.onData=function(e){this.chunks.push(e)},zi.prototype.onEnd=function(e){e===je.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Os.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function K0(e,t){var n=new zi(t);if(n.push(e,!0),n.err)throw n.msg||X0[n.err];return n.result}function $B(e,t){return t=t||{},t.raw=!0,K0(e,t)}zs.Inflate=zi,zs.inflate=K0,zs.inflateRaw=$B,zs.ungzip=K0;var eF=nr.assign,tF=Es,nF=zs,rF=px,bx={};eF(bx,tF,nF,rF);var af=bx;async function J0(e){try{let t,n=0,r=0;const i=[];let o=0,a;do{const c=e.subarray(n);if(a=new af.Inflate,{strm:t}=a,a.push(c,af.Z_SYNC_FLUSH),a.err)throw new Error(a.msg);n+=t.next_in,i[r]=a.result,o+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(o);for(let c=0,u=0;c<i.length;c++)s.set(i[c],u),u+=i[c].length;return Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function iF(e,t){try{let n;const{minv:r,maxv:i}=t;let o=r.blockPosition,a=r.dataPosition;const s=[],c=[],u=[];let f=0,l=0;do{const p=e.subarray(o-r.blockPosition),b=new af.Inflate;if({strm:n}=b,b.push(p,af.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const x=b.result;s.push(x);let A=x.length;c.push(o),u.push(a),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),A=s[0].length);const D=o;if(o+=n.next_in,a+=A,D>=i.blockPosition){s[l]=s[l].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),c.push(o),u.push(a),f+=s[l].length;break}f+=s[l].length,l++}while(n.avail_in);const h=new Uint8Array(f);for(let p=0,b=0;p<s.length;p++)h.set(s[p],b),b+=s[p].length;return{buffer:Buffer.from(h),cpositions:c,dpositions:u}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}/**
156
+ */(function(e){const t=nf,n=L0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=D,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.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 y=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(y,g),y.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(y){if(y>i)throw new RangeError('The value "'+y+'" is invalid for option "size"');const g=new Uint8Array(y);return Object.setPrototypeOf(g,s.prototype),g}function s(y,g,m){if(typeof y=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return l(y)}return c(y,g,m)}s.poolSize=8192;function c(y,g,m){if(typeof y=="string")return h(y,g);if(ArrayBuffer.isView(y))return p(y);if(y==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof y);if(Gt(y,ArrayBuffer)||y&&Gt(y.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Gt(y,SharedArrayBuffer)||y&&Gt(y.buffer,SharedArrayBuffer)))return b(y,g,m);if(typeof y=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const v=y.valueOf&&y.valueOf();if(v!=null&&v!==y)return s.from(v,g,m);const M=x(y);if(M)return M;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof y[Symbol.toPrimitive]=="function")return s.from(y[Symbol.toPrimitive]("string"),g,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof y)}s.from=function(y,g,m){return c(y,g,m)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function u(y){if(typeof y!="number")throw new TypeError('"size" argument must be of type number');if(y<0)throw new RangeError('The value "'+y+'" is invalid for option "size"')}function f(y,g,m){return u(y),y<=0?o(y):g!==void 0?typeof m=="string"?o(y).fill(g,m):o(y).fill(g):o(y)}s.alloc=function(y,g,m){return f(y,g,m)};function l(y){return u(y),o(y<0?0:A(y)|0)}s.allocUnsafe=function(y){return l(y)},s.allocUnsafeSlow=function(y){return l(y)};function h(y,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const m=_(y,g)|0;let v=o(m);const M=v.write(y,g);return M!==m&&(v=v.slice(0,M)),v}function d(y){const g=y.length<0?0:A(y.length)|0,m=o(g);for(let v=0;v<g;v+=1)m[v]=y[v]&255;return m}function p(y){if(Gt(y,Uint8Array)){const g=new Uint8Array(y);return b(g.buffer,g.byteOffset,g.byteLength)}return d(y)}function b(y,g,m){if(g<0||y.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(y.byteLength<g+(m||0))throw new RangeError('"length" is outside of buffer bounds');let v;return g===void 0&&m===void 0?v=new Uint8Array(y):m===void 0?v=new Uint8Array(y,g):v=new Uint8Array(y,g,m),Object.setPrototypeOf(v,s.prototype),v}function x(y){if(s.isBuffer(y)){const g=A(y.length)|0,m=o(g);return m.length===0||y.copy(m,0,0,g),m}if(y.length!==void 0)return typeof y.length!="number"||Mu(y.length)?o(0):d(y);if(y.type==="Buffer"&&Array.isArray(y.data))return d(y.data)}function A(y){if(y>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return y|0}function D(y){return+y!=y&&(y=0),s.alloc(+y)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,m){if(Gt(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),Gt(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(g)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===m)return 0;let v=g.length,M=m.length;for(let k=0,O=Math.min(v,M);k<O;++k)if(g[k]!==m[k]){v=g[k],M=m[k];break}return v<M?-1:M<v?1:0},s.isEncoding=function(g){switch(String(g).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(g,m){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let v;if(m===void 0)for(m=0,v=0;v<g.length;++v)m+=g[v].length;const M=s.allocUnsafe(m);let k=0;for(v=0;v<g.length;++v){let O=g[v];if(Gt(O,Uint8Array))k+O.length>M.length?(s.isBuffer(O)||(O=s.from(O)),O.copy(M,k)):Uint8Array.prototype.set.call(M,O,k);else if(s.isBuffer(O))O.copy(M,k);else throw new TypeError('"list" argument must be an Array of Buffers');k+=O.length}return M};function _(y,g){if(s.isBuffer(y))return y.length;if(ArrayBuffer.isView(y)||Gt(y,ArrayBuffer))return y.byteLength;if(typeof y!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof y);const m=y.length,v=arguments.length>2&&arguments[2]===!0;if(!v&&m===0)return 0;let M=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return jt(y).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return _u(y).length;default:if(M)return v?-1:jt(y).length;g=(""+g).toLowerCase(),M=!0}}s.byteLength=_;function C(y,g,m){let v=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,g>>>=0,m<=g))return"";for(y||(y="utf8");;)switch(y){case"hex":return vt(this,g,m);case"utf8":case"utf-8":return Z(this,g,m);case"ascii":return We(this,g,m);case"latin1":case"binary":return At(this,g,m);case"base64":return X(this,g,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Iu(this,g,m);default:if(v)throw new TypeError("Unknown encoding: "+y);y=(y+"").toLowerCase(),v=!0}}s.prototype._isBuffer=!0;function T(y,g,m){const v=y[g];y[g]=y[m],y[m]=v}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<g;m+=2)T(this,m,m+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let m=0;m<g;m+=4)T(this,m,m+3),T(this,m+1,m+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let m=0;m<g;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 g=this.length;return g===0?"":arguments.length===0?Z(this,0,g):C.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(g){if(!s.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:s.compare(this,g)===0},s.prototype.inspect=function(){let g="";const m=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,m,v,M,k){if(Gt(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),!s.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(m===void 0&&(m=0),v===void 0&&(v=g?g.length:0),M===void 0&&(M=0),k===void 0&&(k=this.length),m<0||v>g.length||M<0||k>this.length)throw new RangeError("out of range index");if(M>=k&&m>=v)return 0;if(M>=k)return-1;if(m>=v)return 1;if(m>>>=0,v>>>=0,M>>>=0,k>>>=0,this===g)return 0;let O=k-M,re=v-m;const Te=Math.min(O,re),Ae=this.slice(M,k),Le=g.slice(m,v);for(let ye=0;ye<Te;++ye)if(Ae[ye]!==Le[ye]){O=Ae[ye],re=Le[ye];break}return O<re?-1:re<O?1:0};function B(y,g,m,v,M){if(y.length===0)return-1;if(typeof m=="string"?(v=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,Mu(m)&&(m=M?0:y.length-1),m<0&&(m=y.length+m),m>=y.length){if(M)return-1;m=y.length-1}else if(m<0)if(M)m=0;else return-1;if(typeof g=="string"&&(g=s.from(g,v)),s.isBuffer(g))return g.length===0?-1:S(y,g,m,v,M);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?M?Uint8Array.prototype.indexOf.call(y,g,m):Uint8Array.prototype.lastIndexOf.call(y,g,m):S(y,[g],m,v,M);throw new TypeError("val must be string, number or Buffer")}function S(y,g,m,v,M){let k=1,O=y.length,re=g.length;if(v!==void 0&&(v=String(v).toLowerCase(),v==="ucs2"||v==="ucs-2"||v==="utf16le"||v==="utf-16le")){if(y.length<2||g.length<2)return-1;k=2,O/=2,re/=2,m/=2}function Te(Le,ye){return k===1?Le[ye]:Le.readUInt16BE(ye*k)}let Ae;if(M){let Le=-1;for(Ae=m;Ae<O;Ae++)if(Te(y,Ae)===Te(g,Le===-1?0:Ae-Le)){if(Le===-1&&(Le=Ae),Ae-Le+1===re)return Le*k}else Le!==-1&&(Ae-=Ae-Le),Le=-1}else for(m+re>O&&(m=O-re),Ae=m;Ae>=0;Ae--){let Le=!0;for(let ye=0;ye<re;ye++)if(Te(y,Ae+ye)!==Te(g,ye)){Le=!1;break}if(Le)return Ae}return-1}s.prototype.includes=function(g,m,v){return this.indexOf(g,m,v)!==-1},s.prototype.indexOf=function(g,m,v){return B(this,g,m,v,!0)},s.prototype.lastIndexOf=function(g,m,v){return B(this,g,m,v,!1)};function z(y,g,m,v){m=Number(m)||0;const M=y.length-m;v?(v=Number(v),v>M&&(v=M)):v=M;const k=g.length;v>k/2&&(v=k/2);let O;for(O=0;O<v;++O){const re=parseInt(g.substr(O*2,2),16);if(Mu(re))return O;y[m+O]=re}return O}function E(y,g,m,v){return Co(jt(g,y.length-m),y,m,v)}function N(y,g,m,v){return Co(ta(g),y,m,v)}function F(y,g,m,v){return Co(_u(g),y,m,v)}function Y(y,g,m,v){return Co(_g(g,y.length-m),y,m,v)}s.prototype.write=function(g,m,v,M){if(m===void 0)M="utf8",v=this.length,m=0;else if(v===void 0&&typeof m=="string")M=m,v=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(v)?(v=v>>>0,M===void 0&&(M="utf8")):(M=v,v=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const k=this.length-m;if((v===void 0||v>k)&&(v=k),g.length>0&&(v<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");M||(M="utf8");let O=!1;for(;;)switch(M){case"hex":return z(this,g,m,v);case"utf8":case"utf-8":return E(this,g,m,v);case"ascii":case"latin1":case"binary":return N(this,g,m,v);case"base64":return F(this,g,m,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Y(this,g,m,v);default:if(O)throw new TypeError("Unknown encoding: "+M);M=(""+M).toLowerCase(),O=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function X(y,g,m){return g===0&&m===y.length?t.fromByteArray(y):t.fromByteArray(y.slice(g,m))}function Z(y,g,m){m=Math.min(y.length,m);const v=[];let M=g;for(;M<m;){const k=y[M];let O=null,re=k>239?4:k>223?3:k>191?2:1;if(M+re<=m){let Te,Ae,Le,ye;switch(re){case 1:k<128&&(O=k);break;case 2:Te=y[M+1],(Te&192)===128&&(ye=(k&31)<<6|Te&63,ye>127&&(O=ye));break;case 3:Te=y[M+1],Ae=y[M+2],(Te&192)===128&&(Ae&192)===128&&(ye=(k&15)<<12|(Te&63)<<6|Ae&63,ye>2047&&(ye<55296||ye>57343)&&(O=ye));break;case 4:Te=y[M+1],Ae=y[M+2],Le=y[M+3],(Te&192)===128&&(Ae&192)===128&&(Le&192)===128&&(ye=(k&15)<<18|(Te&63)<<12|(Ae&63)<<6|Le&63,ye>65535&&ye<1114112&&(O=ye))}}O===null?(O=65533,re=1):O>65535&&(O-=65536,v.push(O>>>10&1023|55296),O=56320|O&1023),v.push(O),M+=re}return Me(v)}const Se=4096;function Me(y){const g=y.length;if(g<=Se)return String.fromCharCode.apply(String,y);let m="",v=0;for(;v<g;)m+=String.fromCharCode.apply(String,y.slice(v,v+=Se));return m}function We(y,g,m){let v="";m=Math.min(y.length,m);for(let M=g;M<m;++M)v+=String.fromCharCode(y[M]&127);return v}function At(y,g,m){let v="";m=Math.min(y.length,m);for(let M=g;M<m;++M)v+=String.fromCharCode(y[M]);return v}function vt(y,g,m){const v=y.length;(!g||g<0)&&(g=0),(!m||m<0||m>v)&&(m=v);let M="";for(let k=g;k<m;++k)M+=il[y[k]];return M}function Iu(y,g,m){const v=y.slice(g,m);let M="";for(let k=0;k<v.length-1;k+=2)M+=String.fromCharCode(v[k]+v[k+1]*256);return M}s.prototype.slice=function(g,m){const v=this.length;g=~~g,m=m===void 0?v:~~m,g<0?(g+=v,g<0&&(g=0)):g>v&&(g=v),m<0?(m+=v,m<0&&(m=0)):m>v&&(m=v),m<g&&(m=g);const M=this.subarray(g,m);return Object.setPrototypeOf(M,s.prototype),M};function Pe(y,g,m){if(y%1!==0||y<0)throw new RangeError("offset is not uint");if(y+g>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,m,v){g=g>>>0,m=m>>>0,v||Pe(g,m,this.length);let M=this[g],k=1,O=0;for(;++O<m&&(k*=256);)M+=this[g+O]*k;return M},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,m,v){g=g>>>0,m=m>>>0,v||Pe(g,m,this.length);let M=this[g+--m],k=1;for(;m>0&&(k*=256);)M+=this[g+--m]*k;return M},s.prototype.readUint8=s.prototype.readUInt8=function(g,m){return g=g>>>0,m||Pe(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,m){return g=g>>>0,m||Pe(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,m){return g=g>>>0,m||Pe(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,m){return g=g>>>0,m||Pe(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(g,m){return g=g>>>0,m||Pe(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},s.prototype.readBigUInt64LE=Qn(function(g){g=g>>>0,Ue(g,"offset");const m=this[g],v=this[g+7];(m===void 0||v===void 0)&&ce(g,this.length-8);const M=m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,k=this[++g]+this[++g]*2**8+this[++g]*2**16+v*2**24;return BigInt(M)+(BigInt(k)<<BigInt(32))}),s.prototype.readBigUInt64BE=Qn(function(g){g=g>>>0,Ue(g,"offset");const m=this[g],v=this[g+7];(m===void 0||v===void 0)&&ce(g,this.length-8);const M=m*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],k=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+v;return(BigInt(M)<<BigInt(32))+BigInt(k)}),s.prototype.readIntLE=function(g,m,v){g=g>>>0,m=m>>>0,v||Pe(g,m,this.length);let M=this[g],k=1,O=0;for(;++O<m&&(k*=256);)M+=this[g+O]*k;return k*=128,M>=k&&(M-=Math.pow(2,8*m)),M},s.prototype.readIntBE=function(g,m,v){g=g>>>0,m=m>>>0,v||Pe(g,m,this.length);let M=m,k=1,O=this[g+--M];for(;M>0&&(k*=256);)O+=this[g+--M]*k;return k*=128,O>=k&&(O-=Math.pow(2,8*m)),O},s.prototype.readInt8=function(g,m){return g=g>>>0,m||Pe(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,m){g=g>>>0,m||Pe(g,2,this.length);const v=this[g]|this[g+1]<<8;return v&32768?v|4294901760:v},s.prototype.readInt16BE=function(g,m){g=g>>>0,m||Pe(g,2,this.length);const v=this[g+1]|this[g]<<8;return v&32768?v|4294901760:v},s.prototype.readInt32LE=function(g,m){return g=g>>>0,m||Pe(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,m){return g=g>>>0,m||Pe(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},s.prototype.readBigInt64LE=Qn(function(g){g=g>>>0,Ue(g,"offset");const m=this[g],v=this[g+7];(m===void 0||v===void 0)&&ce(g,this.length-8);const M=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(v<<24);return(BigInt(M)<<BigInt(32))+BigInt(m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Qn(function(g){g=g>>>0,Ue(g,"offset");const m=this[g],v=this[g+7];(m===void 0||v===void 0)&&ce(g,this.length-8);const M=(m<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(M)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+v)}),s.prototype.readFloatLE=function(g,m){return g=g>>>0,m||Pe(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,m){return g=g>>>0,m||Pe(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,m){return g=g>>>0,m||Pe(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,m){return g=g>>>0,m||Pe(g,8,this.length),n.read(this,g,!1,52,8)};function qe(y,g,m,v,M,k){if(!s.isBuffer(y))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>M||g<k)throw new RangeError('"value" argument is out of bounds');if(m+v>y.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,m,v,M){if(g=+g,m=m>>>0,v=v>>>0,!M){const re=Math.pow(2,8*v)-1;qe(this,g,m,v,re,0)}let k=1,O=0;for(this[m]=g&255;++O<v&&(k*=256);)this[m+O]=g/k&255;return m+v},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,m,v,M){if(g=+g,m=m>>>0,v=v>>>0,!M){const re=Math.pow(2,8*v)-1;qe(this,g,m,v,re,0)}let k=v-1,O=1;for(this[m+k]=g&255;--k>=0&&(O*=256);)this[m+k]=g/O&255;return m+v},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,1,255,0),this[m]=g&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,2,65535,0),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,2,65535,0),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,4,4294967295,0),this[m+3]=g>>>24,this[m+2]=g>>>16,this[m+1]=g>>>8,this[m]=g&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,4,4294967295,0),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4};function Ao(y,g,m,v,M){P(g,v,M,y,m,7);let k=Number(g&BigInt(4294967295));y[m++]=k,k=k>>8,y[m++]=k,k=k>>8,y[m++]=k,k=k>>8,y[m++]=k;let O=Number(g>>BigInt(32)&BigInt(4294967295));return y[m++]=O,O=O>>8,y[m++]=O,O=O>>8,y[m++]=O,O=O>>8,y[m++]=O,m}function $i(y,g,m,v,M){P(g,v,M,y,m,7);let k=Number(g&BigInt(4294967295));y[m+7]=k,k=k>>8,y[m+6]=k,k=k>>8,y[m+5]=k,k=k>>8,y[m+4]=k;let O=Number(g>>BigInt(32)&BigInt(4294967295));return y[m+3]=O,O=O>>8,y[m+2]=O,O=O>>8,y[m+1]=O,O=O>>8,y[m]=O,m+8}s.prototype.writeBigUInt64LE=Qn(function(g,m=0){return Ao(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Qn(function(g,m=0){return $i(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,m,v,M){if(g=+g,m=m>>>0,!M){const Te=Math.pow(2,8*v-1);qe(this,g,m,v,Te-1,-Te)}let k=0,O=1,re=0;for(this[m]=g&255;++k<v&&(O*=256);)g<0&&re===0&&this[m+k-1]!==0&&(re=1),this[m+k]=(g/O>>0)-re&255;return m+v},s.prototype.writeIntBE=function(g,m,v,M){if(g=+g,m=m>>>0,!M){const Te=Math.pow(2,8*v-1);qe(this,g,m,v,Te-1,-Te)}let k=v-1,O=1,re=0;for(this[m+k]=g&255;--k>=0&&(O*=256);)g<0&&re===0&&this[m+k+1]!==0&&(re=1),this[m+k]=(g/O>>0)-re&255;return m+v},s.prototype.writeInt8=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,1,127,-128),g<0&&(g=255+g+1),this[m]=g&255,m+1},s.prototype.writeInt16LE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,2,32767,-32768),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeInt16BE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,2,32767,-32768),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeInt32LE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,4,2147483647,-2147483648),this[m]=g&255,this[m+1]=g>>>8,this[m+2]=g>>>16,this[m+3]=g>>>24,m+4},s.prototype.writeInt32BE=function(g,m,v){return g=+g,m=m>>>0,v||qe(this,g,m,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4},s.prototype.writeBigInt64LE=Qn(function(g,m=0){return Ao(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Qn(function(g,m=0){return $i(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function vo(y,g,m,v,M,k){if(m+v>y.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function ea(y,g,m,v,M){return g=+g,m=m>>>0,M||vo(y,g,m,4),n.write(y,g,m,v,23,4),m+4}s.prototype.writeFloatLE=function(g,m,v){return ea(this,g,m,!0,v)},s.prototype.writeFloatBE=function(g,m,v){return ea(this,g,m,!1,v)};function Eo(y,g,m,v,M){return g=+g,m=m>>>0,M||vo(y,g,m,8),n.write(y,g,m,v,52,8),m+8}s.prototype.writeDoubleLE=function(g,m,v){return Eo(this,g,m,!0,v)},s.prototype.writeDoubleBE=function(g,m,v){return Eo(this,g,m,!1,v)},s.prototype.copy=function(g,m,v,M){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(v||(v=0),!M&&M!==0&&(M=this.length),m>=g.length&&(m=g.length),m||(m=0),M>0&&M<v&&(M=v),M===v||g.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(v<0||v>=this.length)throw new RangeError("Index out of range");if(M<0)throw new RangeError("sourceEnd out of bounds");M>this.length&&(M=this.length),g.length-m<M-v&&(M=g.length-m+v);const k=M-v;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,v,M):Uint8Array.prototype.set.call(g,this.subarray(v,M),m),k},s.prototype.fill=function(g,m,v,M){if(typeof g=="string"){if(typeof m=="string"?(M=m,m=0,v=this.length):typeof v=="string"&&(M=v,v=this.length),M!==void 0&&typeof M!="string")throw new TypeError("encoding must be a string");if(typeof M=="string"&&!s.isEncoding(M))throw new TypeError("Unknown encoding: "+M);if(g.length===1){const O=g.charCodeAt(0);(M==="utf8"&&O<128||M==="latin1")&&(g=O)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(m<0||this.length<m||this.length<v)throw new RangeError("Out of range index");if(v<=m)return this;m=m>>>0,v=v===void 0?this.length:v>>>0,g||(g=0);let k;if(typeof g=="number")for(k=m;k<v;++k)this[k]=g;else{const O=s.isBuffer(g)?g:s.from(g,M),re=O.length;if(re===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(k=0;k<v-m;++k)this[k+m]=O[k%re]}return this};const En={};function Q(y,g,m){En[y]=class extends m{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${y}]`,this.stack,delete this.name}get code(){return y}set code(M){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:M,writable:!0})}toString(){return`${this.name} [${y}]: ${this.message}`}}}Q("ERR_BUFFER_OUT_OF_BOUNDS",function(y){return y?`${y} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Q("ERR_INVALID_ARG_TYPE",function(y,g){return`The "${y}" argument must be of type number. Received type ${typeof g}`},TypeError),Q("ERR_OUT_OF_RANGE",function(y,g,m){let v=`The value of "${y}" is out of range.`,M=m;return Number.isInteger(m)&&Math.abs(m)>2**32?M=te(String(m)):typeof m=="bigint"&&(M=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(M=te(M)),M+="n"),v+=` It must be ${g}. Received ${M}`,v},RangeError);function te(y){let g="",m=y.length;const v=y[0]==="-"?1:0;for(;m>=v+4;m-=3)g=`_${y.slice(m-3,m)}${g}`;return`${y.slice(0,m)}${g}`}function oe(y,g,m){Ue(g,"offset"),(y[g]===void 0||y[g+m]===void 0)&&ce(g,y.length-(m+1))}function P(y,g,m,v,M,k){if(y>m||y<g){const O=typeof g=="bigint"?"n":"";let re;throw k>3?g===0||g===BigInt(0)?re=`>= 0${O} and < 2${O} ** ${(k+1)*8}${O}`:re=`>= -(2${O} ** ${(k+1)*8-1}${O}) and < 2 ** ${(k+1)*8-1}${O}`:re=`>= ${g}${O} and <= ${m}${O}`,new En.ERR_OUT_OF_RANGE("value",re,y)}oe(v,M,k)}function Ue(y,g){if(typeof y!="number")throw new En.ERR_INVALID_ARG_TYPE(g,"number",y)}function ce(y,g,m){throw Math.floor(y)!==y?(Ue(y,m),new En.ERR_OUT_OF_RANGE(m||"offset","an integer",y)):g<0?new En.ERR_BUFFER_OUT_OF_BOUNDS:new En.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${g}`,y)}const ut=/[^+/0-9A-Za-z-_]/g;function rt(y){if(y=y.split("=")[0],y=y.trim().replace(ut,""),y.length<2)return"";for(;y.length%4!==0;)y=y+"=";return y}function jt(y,g){g=g||1/0;let m;const v=y.length;let M=null;const k=[];for(let O=0;O<v;++O){if(m=y.charCodeAt(O),m>55295&&m<57344){if(!M){if(m>56319){(g-=3)>-1&&k.push(239,191,189);continue}else if(O+1===v){(g-=3)>-1&&k.push(239,191,189);continue}M=m;continue}if(m<56320){(g-=3)>-1&&k.push(239,191,189),M=m;continue}m=(M-55296<<10|m-56320)+65536}else M&&(g-=3)>-1&&k.push(239,191,189);if(M=null,m<128){if((g-=1)<0)break;k.push(m)}else if(m<2048){if((g-=2)<0)break;k.push(m>>6|192,m&63|128)}else if(m<65536){if((g-=3)<0)break;k.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((g-=4)<0)break;k.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return k}function ta(y){const g=[];for(let m=0;m<y.length;++m)g.push(y.charCodeAt(m)&255);return g}function _g(y,g){let m,v,M;const k=[];for(let O=0;O<y.length&&!((g-=2)<0);++O)m=y.charCodeAt(O),v=m>>8,M=m%256,k.push(M),k.push(v);return k}function _u(y){return t.toByteArray(rt(y))}function Co(y,g,m,v){let M;for(M=0;M<v&&!(M+m>=g.length||M>=y.length);++M)g[M+m]=y[M];return M}function Gt(y,g){return y instanceof g||y!=null&&y.constructor!=null&&y.constructor.name!=null&&y.constructor.name===g.name}function Mu(y){return y!==y}const il=function(){const y="0123456789abcdef",g=new Array(256);for(let m=0;m<16;++m){const v=m*16;for(let M=0;M<16;++M)g[v+M]=y[m]+y[M]}return g}();function Qn(y){return typeof BigInt>"u"?al:y}function al(){throw new Error("BigInt not supported")}})(zt);const Or={},z0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class tr{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return zt.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||z0.fetch&&z0.fetch.bind(z0);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(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:c={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const u={...this.baseOverrides,...c,headers:{...o,...c.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},f=await this.fetch(this.url,u);if(!f.ok)throw new Error(`HTTP ${f.status} ${f.statusText} ${this.url}`);if(f.status===200&&i===0||f.status===206){const l=await this.getBufferFromResponse(f),h=l.copy(t,n,0,Math.min(r,l.length)),d=f.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw f.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${f.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,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},c=await this.fetch(this.url,s);if(!c)throw new Error("generic-filehandle failed to fetch");if(c.status!==200)throw Object.assign(new Error(`HTTP ${c.status} fetching ${this.url}`),{status:c.status});if(n==="utf8")return c.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(c)}async stat(){if(!this._stat){const t=zt.Buffer.allocUnsafe(10);if(await this.read(t,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}var nr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}e.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 c in s)n(s,c)&&(a[c]=s[c])}}return a},e.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,c,u){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+c),u);return}for(var f=0;f<c;f++)a[u+f]=o[s+f]},flattenChunks:function(a){var o,s,c,u,f,l;for(c=0,o=0,s=a.length;o<s;o++)c+=a[o].length;for(l=new Uint8Array(c),u=0,o=0,s=a.length;o<s;o++)f=a[o],l.set(f,u),u+=f.length;return l}},i={arraySet:function(a,o,s,c,u){for(var f=0;f<c;f++)a[u+f]=o[s+f]},flattenChunks:function(a){return[].concat.apply([],a)}};e.setTyped=function(a){a?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(nr);var Ts={},Ln={},Oa={},yN=nr,wN=4,aw=0,ow=1,xN=2;function Pa(e){for(var t=e.length;--t>=0;)e[t]=0}var AN=0,sw=1,vN=2,EN=3,CN=258,R0=29,Ns=256,Bs=Ns+1+R0,Ua=30,O0=19,uw=2*Bs+1,Ni=15,P0=16,SN=7,U0=256,cw=16,fw=17,lw=18,j0=[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],rf=[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],DN=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],hw=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],IN=512,rr=new Array((Bs+2)*2);Pa(rr);var Fs=new Array(Ua*2);Pa(Fs);var ks=new Array(IN);Pa(ks);var Ls=new Array(CN-EN+1);Pa(Ls);var G0=new Array(R0);Pa(G0);var af=new Array(Ua);Pa(af);function H0(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var dw,gw,pw;function Q0(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function mw(e){return e<256?ks[e]:ks[256+(e>>>7)]}function zs(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Tt(e,t,n){e.bi_valid>P0-n?(e.bi_buf|=t<<e.bi_valid&65535,zs(e,e.bi_buf),e.bi_buf=t>>P0-e.bi_valid,e.bi_valid+=n-P0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function zn(e,t,n){Tt(e,n[t*2],n[t*2+1])}function bw(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function _N(e){e.bi_valid===16?(zs(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function MN(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,u,f,l,h,d,p,b=0;for(h=0;h<=Ni;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;u<uw;u++)f=e.heap[u],h=n[n[f*2+1]*2+1]+1,h>c&&(h=c,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==0){do{for(h=c-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,b-=2}while(b>0);for(h=c;h!==0;h--)for(f=e.bl_count[h];f!==0;)l=e.heap[--u],!(l>r)&&(n[l*2+1]!==h&&(e.opt_len+=(h-n[l*2+1])*n[l*2],n[l*2+1]=h),f--)}}function yw(e,t,n){var r=new Array(Ni+1),i=0,a,o;for(a=1;a<=Ni;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=bw(r[s]++,s))}}function TN(){var e,t,n,r,i,a=new Array(Ni+1);for(n=0,r=0;r<R0-1;r++)for(G0[r]=n,e=0;e<1<<j0[r];e++)Ls[n++]=r;for(Ls[n-1]=r,i=0,r=0;r<16;r++)for(af[r]=i,e=0;e<1<<rf[r];e++)ks[i++]=r;for(i>>=7;r<Ua;r++)for(af[r]=i<<7,e=0;e<1<<rf[r]-7;e++)ks[256+i++]=r;for(t=0;t<=Ni;t++)a[t]=0;for(e=0;e<=143;)rr[e*2+1]=8,e++,a[8]++;for(;e<=255;)rr[e*2+1]=9,e++,a[9]++;for(;e<=279;)rr[e*2+1]=7,e++,a[7]++;for(;e<=287;)rr[e*2+1]=8,e++,a[8]++;for(yw(rr,Bs+1,a),e=0;e<Ua;e++)Fs[e*2+1]=5,Fs[e*2]=bw(e,5);dw=new H0(rr,j0,Ns+1,Bs,Ni),gw=new H0(Fs,rf,0,Ua,Ni),pw=new H0(new Array(0),DN,0,O0,SN)}function ww(e){var t;for(t=0;t<Bs;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ua;t++)e.dyn_dtree[t*2]=0;for(t=0;t<O0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[U0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function xw(e){e.bi_valid>8?zs(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function NN(e,t,n,r){xw(e),r&&(zs(e,n),zs(e,~n)),yN.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function Aw(e,t,n,r){var i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function V0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&Aw(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Aw(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function vw(e,t,n){var r,i,a=0,o,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,r===0?zn(e,i,t):(o=Ls[i],zn(e,o+Ns+1,t),s=j0[o],s!==0&&(i-=G0[o],Tt(e,i,s)),r--,o=mw(r),zn(e,o,n),s=rf[o],s!==0&&(r-=af[o],Tt(e,r,s)));while(a<e.last_lit);zn(e,U0,t)}function Z0(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,c=-1,u;for(e.heap_len=0,e.heap_max=uw,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=c=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)u=e.heap[++e.heap_len]=c<2?++c:0,n[u*2]=1,e.depth[u]=0,e.opt_len--,i&&(e.static_len-=r[u*2+1]);for(t.max_code=c,o=e.heap_len>>1;o>=1;o--)V0(e,n,o);u=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],V0(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[u*2]=n[o*2]+n[s*2],e.depth[u]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=u,e.heap[1]=u++,V0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],MN(e,t),yw(n,c,e.bl_count)}function Ew(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,c=7,u=4;for(o===0&&(c=138,u=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)&&(s<u?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[cw*2]++):s<=10?e.bl_tree[fw*2]++:e.bl_tree[lw*2]++,s=0,i=a,o===0?(c=138,u=3):a===o?(c=6,u=3):(c=7,u=4))}function Cw(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,c=7,u=4;for(o===0&&(c=138,u=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)){if(s<u)do zn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(zn(e,a,e.bl_tree),s--),zn(e,cw,e.bl_tree),Tt(e,s-3,2)):s<=10?(zn(e,fw,e.bl_tree),Tt(e,s-3,3)):(zn(e,lw,e.bl_tree),Tt(e,s-11,7));s=0,i=a,o===0?(c=138,u=3):a===o?(c=6,u=3):(c=7,u=4)}}function BN(e){var t;for(Ew(e,e.dyn_ltree,e.l_desc.max_code),Ew(e,e.dyn_dtree,e.d_desc.max_code),Z0(e,e.bl_desc),t=O0-1;t>=3&&e.bl_tree[hw[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function FN(e,t,n,r){var i;for(Tt(e,t-257,5),Tt(e,n-1,5),Tt(e,r-4,4),i=0;i<r;i++)Tt(e,e.bl_tree[hw[i]*2+1],3);Cw(e,e.dyn_ltree,t-1),Cw(e,e.dyn_dtree,n-1)}function kN(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return aw;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return ow;for(n=32;n<Ns;n++)if(e.dyn_ltree[n*2]!==0)return ow;return aw}var Sw=!1;function LN(e){Sw||(TN(),Sw=!0),e.l_desc=new Q0(e.dyn_ltree,dw),e.d_desc=new Q0(e.dyn_dtree,gw),e.bl_desc=new Q0(e.bl_tree,pw),e.bi_buf=0,e.bi_valid=0,ww(e)}function Dw(e,t,n,r){Tt(e,(AN<<1)+(r?1:0),3),NN(e,t,n,!0)}function zN(e){Tt(e,sw<<1,3),zn(e,U0,rr),_N(e)}function RN(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===xN&&(e.strm.data_type=kN(e)),Z0(e,e.l_desc),Z0(e,e.d_desc),o=BN(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?Dw(e,t,n,r):e.strategy===wN||a===i?(Tt(e,(sw<<1)+(r?1:0),3),vw(e,rr,Fs)):(Tt(e,(vN<<1)+(r?1:0),3),FN(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),vw(e,e.dyn_ltree,e.dyn_dtree)),ww(e),r&&xw(e)}function ON(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Ls[n]+Ns+1)*2]++,e.dyn_dtree[mw(t)*2]++),e.last_lit===e.lit_bufsize-1}Oa._tr_init=LN,Oa._tr_stored_block=Dw,Oa._tr_flush_block=RN,Oa._tr_tally=ON,Oa._tr_align=zN;function PN(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var Iw=PN;function UN(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var jN=UN();function GN(e,t,n,r){var i=jN,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var _w=GN,Y0={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"},wt=nr,Wt=Oa,Mw=Iw,Pr=_w,HN=Y0,Bi=0,QN=1,VN=3,Ur=4,Tw=5,Rn=0,Nw=1,qt=-2,ZN=-3,W0=-5,YN=-1,WN=1,of=2,qN=3,XN=4,KN=0,JN=2,sf=8,$N=9,eB=15,tB=8,nB=29,rB=256,q0=rB+1+nB,iB=30,aB=19,oB=2*q0+1,sB=15,se=3,jr=258,mn=jr+se+1,uB=32,uf=42,X0=69,cf=73,ff=91,lf=103,Fi=113,Rs=666,Ze=1,Os=2,ki=3,ja=4,cB=3;function Gr(e,t){return e.msg=HN[t],t}function Bw(e){return(e<<1)-(e>4?9:0)}function Hr(e){for(var t=e.length;--t>=0;)e[t]=0}function Qr(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(wt.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function ot(e,t){Wt._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Qr(e.strm)}function ge(e,t){e.pending_buf[e.pending++]=t}function Ps(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function fB(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,wt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=Mw(e.adler,t,i,n):e.state.wrap===2&&(e.adler=Pr(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function Fw(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-mn?e.strstart-(e.w_size-mn):0,u=e.window,f=e.w_mask,l=e.prev,h=e.strstart+jr,d=u[r+o-1],p=u[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(u[i+o]!==p||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=jr-(h-r),r=h-jr,a>o){if(e.match_start=t,o=a,a>=s)break;d=u[r+o-1],p=u[r+o]}}while((t=l[t&f])>c&&--n!==0);return o<=e.lookahead?o:e.lookahead}function Li(e){var t=e.w_size,n,r,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-mn)){wt.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);a+=t}if(e.strm.avail_in===0)break;if(r=fB(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=se)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+se-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<se)););}while(e.lookahead<mn&&e.strm.avail_in!==0)}function lB(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Li(e),e.lookahead===0&&t===Bi)return Ze;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,ot(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-mn&&(ot(e,!1),e.strm.avail_out===0))return Ze}return e.insert=0,t===Ur?(ot(e,!0),e.strm.avail_out===0?ki:ja):(e.strstart>e.block_start&&(ot(e,!1),e.strm.avail_out===0),Ze)}function K0(e,t){for(var n,r;;){if(e.lookahead<mn){if(Li(e),e.lookahead<mn&&t===Bi)return Ze;if(e.lookahead===0)break}if(n=0,e.lookahead>=se&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+se-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-mn&&(e.match_length=Fw(e,n)),e.match_length>=se)if(r=Wt._tr_tally(e,e.strstart-e.match_start,e.match_length-se),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=se){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+se-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=Wt._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(ot(e,!1),e.strm.avail_out===0))return Ze}return e.insert=e.strstart<se-1?e.strstart:se-1,t===Ur?(ot(e,!0),e.strm.avail_out===0?ki:ja):e.last_lit&&(ot(e,!1),e.strm.avail_out===0)?Ze:Os}function Ga(e,t){for(var n,r,i;;){if(e.lookahead<mn){if(Li(e),e.lookahead<mn&&t===Bi)return Ze;if(e.lookahead===0)break}if(n=0,e.lookahead>=se&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+se-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=se-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-mn&&(e.match_length=Fw(e,n),e.match_length<=5&&(e.strategy===WN||e.match_length===se&&e.strstart-e.match_start>4096)&&(e.match_length=se-1)),e.prev_length>=se&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-se,r=Wt._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-se),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+se-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=se-1,e.strstart++,r&&(ot(e,!1),e.strm.avail_out===0))return Ze}else if(e.match_available){if(r=Wt._tr_tally(e,0,e.window[e.strstart-1]),r&&ot(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Ze}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Wt._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<se-1?e.strstart:se-1,t===Ur?(ot(e,!0),e.strm.avail_out===0?ki:ja):e.last_lit&&(ot(e,!1),e.strm.avail_out===0)?Ze:Os}function hB(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=jr){if(Li(e),e.lookahead<=jr&&t===Bi)return Ze;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=se&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+jr;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);e.match_length=jr-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=se?(n=Wt._tr_tally(e,1,e.match_length-se),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Wt._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(ot(e,!1),e.strm.avail_out===0))return Ze}return e.insert=0,t===Ur?(ot(e,!0),e.strm.avail_out===0?ki:ja):e.last_lit&&(ot(e,!1),e.strm.avail_out===0)?Ze:Os}function dB(e,t){for(var n;;){if(e.lookahead===0&&(Li(e),e.lookahead===0)){if(t===Bi)return Ze;break}if(e.match_length=0,n=Wt._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(ot(e,!1),e.strm.avail_out===0))return Ze}return e.insert=0,t===Ur?(ot(e,!0),e.strm.avail_out===0?ki:ja):e.last_lit&&(ot(e,!1),e.strm.avail_out===0)?Ze:Os}function On(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var Ha;Ha=[new On(0,0,0,0,lB),new On(4,4,8,4,K0),new On(4,5,16,8,K0),new On(4,6,32,32,K0),new On(4,4,16,16,Ga),new On(8,16,32,32,Ga),new On(8,16,128,128,Ga),new On(8,32,128,256,Ga),new On(32,128,258,1024,Ga),new On(32,258,258,4096,Ga)];function gB(e){e.window_size=2*e.w_size,Hr(e.head),e.max_lazy_match=Ha[e.level].max_lazy,e.good_match=Ha[e.level].good_length,e.nice_match=Ha[e.level].nice_length,e.max_chain_length=Ha[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=se-1,e.match_available=0,e.ins_h=0}function pB(){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=sf,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 wt.Buf16(oB*2),this.dyn_dtree=new wt.Buf16((2*iB+1)*2),this.bl_tree=new wt.Buf16((2*aB+1)*2),Hr(this.dyn_ltree),Hr(this.dyn_dtree),Hr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new wt.Buf16(sB+1),this.heap=new wt.Buf16(2*q0+1),Hr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new wt.Buf16(2*q0+1),Hr(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 kw(e){var t;return!e||!e.state?Gr(e,qt):(e.total_in=e.total_out=0,e.data_type=JN,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?uf:Fi,e.adler=t.wrap===2?0:1,t.last_flush=Bi,Wt._tr_init(t),Rn)}function Lw(e){var t=kw(e);return t===Rn&&gB(e.state),t}function mB(e,t){return!e||!e.state||e.state.wrap!==2?qt:(e.state.gzhead=t,Rn)}function zw(e,t,n,r,i,a){if(!e)return qt;var o=1;if(t===YN&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>$N||n!==sf||r<8||r>15||t<0||t>9||a<0||a>XN)return Gr(e,qt);r===8&&(r=9);var s=new pB;return e.state=s,s.strm=e,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+se-1)/se),s.window=new wt.Buf8(s.w_size*2),s.head=new wt.Buf16(s.hash_size),s.prev=new wt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new wt.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=a,s.method=n,Lw(e)}function bB(e,t){return zw(e,t,sf,eB,tB,KN)}function yB(e,t){var n,r,i,a;if(!e||!e.state||t>Tw||t<0)return e?Gr(e,qt):qt;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Rs&&t!==Ur)return Gr(e,e.avail_out===0?W0:qt);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===uf)if(r.wrap===2)e.adler=0,ge(r,31),ge(r,139),ge(r,8),r.gzhead?(ge(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)),ge(r,r.gzhead.time&255),ge(r,r.gzhead.time>>8&255),ge(r,r.gzhead.time>>16&255),ge(r,r.gzhead.time>>24&255),ge(r,r.level===9?2:r.strategy>=of||r.level<2?4:0),ge(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(ge(r,r.gzhead.extra.length&255),ge(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Pr(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=X0):(ge(r,0),ge(r,0),ge(r,0),ge(r,0),ge(r,0),ge(r,r.level===9?2:r.strategy>=of||r.level<2?4:0),ge(r,cB),r.status=Fi);else{var o=sf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=of||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=uB),o+=31-o%31,r.status=Fi,Ps(r,o),r.strstart!==0&&(Ps(r,e.adler>>>16),Ps(r,e.adler&65535)),e.adler=1}if(r.status===X0)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&&(e.adler=Pr(e.adler,r.pending_buf,r.pending-i,i)),Qr(e),i=r.pending,r.pending===r.pending_buf_size));)ge(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Pr(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=cf)}else r.status=cf;if(r.status===cf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Pr(e.adler,r.pending_buf,r.pending-i,i)),Qr(e),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,ge(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Pr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=ff)}else r.status=ff;if(r.status===ff)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Pr(e.adler,r.pending_buf,r.pending-i,i)),Qr(e),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,ge(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Pr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=lf)}else r.status=lf;if(r.status===lf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Qr(e),r.pending+2<=r.pending_buf_size&&(ge(r,e.adler&255),ge(r,e.adler>>8&255),e.adler=0,r.status=Fi)):r.status=Fi),r.pending!==0){if(Qr(e),e.avail_out===0)return r.last_flush=-1,Rn}else if(e.avail_in===0&&Bw(t)<=Bw(n)&&t!==Ur)return Gr(e,W0);if(r.status===Rs&&e.avail_in!==0)return Gr(e,W0);if(e.avail_in!==0||r.lookahead!==0||t!==Bi&&r.status!==Rs){var c=r.strategy===of?dB(r,t):r.strategy===qN?hB(r,t):Ha[r.level].func(r,t);if((c===ki||c===ja)&&(r.status=Rs),c===Ze||c===ki)return e.avail_out===0&&(r.last_flush=-1),Rn;if(c===Os&&(t===QN?Wt._tr_align(r):t!==Tw&&(Wt._tr_stored_block(r,0,0,!1),t===VN&&(Hr(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Qr(e),e.avail_out===0))return r.last_flush=-1,Rn}return t!==Ur?Rn:r.wrap<=0?Nw:(r.wrap===2?(ge(r,e.adler&255),ge(r,e.adler>>8&255),ge(r,e.adler>>16&255),ge(r,e.adler>>24&255),ge(r,e.total_in&255),ge(r,e.total_in>>8&255),ge(r,e.total_in>>16&255),ge(r,e.total_in>>24&255)):(Ps(r,e.adler>>>16),Ps(r,e.adler&65535)),Qr(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Rn:Nw)}function wB(e){var t;return!e||!e.state?qt:(t=e.state.status,t!==uf&&t!==X0&&t!==cf&&t!==ff&&t!==lf&&t!==Fi&&t!==Rs?Gr(e,qt):(e.state=null,t===Fi?Gr(e,ZN):Rn))}function xB(e,t){var n=t.length,r,i,a,o,s,c,u,f;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==uf||r.lookahead))return qt;for(o===1&&(e.adler=Mw(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&(Hr(r.head),r.strstart=0,r.block_start=0,r.insert=0),f=new wt.Buf8(r.w_size),wt.arraySet(f,t,n-r.w_size,r.w_size,0),t=f,n=r.w_size),s=e.avail_in,c=e.next_in,u=e.input,e.avail_in=n,e.next_in=0,e.input=t,Li(r);r.lookahead>=se;){i=r.strstart,a=r.lookahead-(se-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+se-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=se-1,Li(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=se-1,r.match_available=0,e.next_in=c,e.input=u,e.avail_in=s,r.wrap=o,Rn}Ln.deflateInit=bB,Ln.deflateInit2=zw,Ln.deflateReset=Lw,Ln.deflateResetKeep=kw,Ln.deflateSetHeader=mB,Ln.deflate=yB,Ln.deflateEnd=wB,Ln.deflateSetDictionary=xB,Ln.deflateInfo="pako deflate (from Nodeca project)";var zi={},hf=nr,Rw=!0,Ow=!0;try{String.fromCharCode.apply(null,[0])}catch{Rw=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Ow=!1}for(var Us=new hf.Buf8(256),Vr=0;Vr<256;Vr++)Us[Vr]=Vr>=252?6:Vr>=248?5:Vr>=240?4:Vr>=224?3:Vr>=192?2:1;Us[254]=Us[254]=1,zi.string2buf=function(e){var t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.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(t=new hf.Buf8(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};function Pw(e,t){if(t<65534&&(e.subarray&&Ow||!e.subarray&&Rw))return String.fromCharCode.apply(null,hf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}zi.buf2binstring=function(e){return Pw(e,e.length)},zi.binstring2buf=function(e){for(var t=new hf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},zi.buf2string=function(e,t){var n,r,i,a,o=t||e.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=e[n++],i<128){s[r++]=i;continue}if(a=Us[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|e[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 Pw(s,r)},zi.utf8border=function(e,t){var n;for(t=t||e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+Us[e[n]]>t?n:t};function AB(){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 Uw=AB,js=Ln,Gs=nr,J0=zi,$0=Y0,vB=Uw,jw=Object.prototype.toString,EB=0,ed=4,Qa=0,Gw=1,Hw=2,CB=-1,SB=0,DB=8;function Ri(e){if(!(this instanceof Ri))return new Ri(e);this.options=Gs.assign({level:CB,method:DB,chunkSize:16384,windowBits:15,memLevel:8,strategy:SB,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new vB,this.strm.avail_out=0;var n=js.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Qa)throw new Error($0[n]);if(t.header&&js.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=J0.string2buf(t.dictionary):jw.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=js.deflateSetDictionary(this.strm,r),n!==Qa)throw new Error($0[n]);this._dict_set=!0}}Ri.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?ed:EB,typeof e=="string"?n.input=J0.string2buf(e):jw.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new Gs.Buf8(r),n.next_out=0,n.avail_out=r),i=js.deflate(n,a),i!==Gw&&i!==Qa)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===ed||a===Hw))&&(this.options.to==="string"?this.onData(J0.buf2binstring(Gs.shrinkBuf(n.output,n.next_out))):this.onData(Gs.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==Gw);return a===ed?(i=js.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Qa):(a===Hw&&(this.onEnd(Qa),n.avail_out=0),!0)},Ri.prototype.onData=function(e){this.chunks.push(e)},Ri.prototype.onEnd=function(e){e===Qa&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Gs.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function td(e,t){var n=new Ri(t);if(n.push(e,!0),n.err)throw n.msg||$0[n.err];return n.result}function IB(e,t){return t=t||{},t.raw=!0,td(e,t)}function _B(e,t){return t=t||{},t.gzip=!0,td(e,t)}Ts.Deflate=Ri,Ts.deflate=td,Ts.deflateRaw=IB,Ts.gzip=_B;var Hs={},bn={},df=30,MB=12,TB=function(t,n){var r,i,a,o,s,c,u,f,l,h,d,p,b,x,A,D,_,C,T,B,S,z,E,N,F;r=t.state,i=t.next_in,N=t.input,a=i+(t.avail_in-5),o=t.next_out,F=t.output,s=o-(n-t.avail_out),c=o+(t.avail_out-257),u=r.dmax,f=r.wsize,l=r.whave,h=r.wnext,d=r.window,p=r.hold,b=r.bits,x=r.lencode,A=r.distcode,D=(1<<r.lenbits)-1,_=(1<<r.distbits)-1;e:do{b<15&&(p+=N[i++]<<b,b+=8,p+=N[i++]<<b,b+=8),C=x[p&D];t:for(;;){if(T=C>>>24,p>>>=T,b-=T,T=C>>>16&255,T===0)F[o++]=C&65535;else if(T&16){B=C&65535,T&=15,T&&(b<T&&(p+=N[i++]<<b,b+=8),B+=p&(1<<T)-1,p>>>=T,b-=T),b<15&&(p+=N[i++]<<b,b+=8,p+=N[i++]<<b,b+=8),C=A[p&_];n:for(;;){if(T=C>>>24,p>>>=T,b-=T,T=C>>>16&255,T&16){if(S=C&65535,T&=15,b<T&&(p+=N[i++]<<b,b+=8,b<T&&(p+=N[i++]<<b,b+=8)),S+=p&(1<<T)-1,S>u){t.msg="invalid distance too far back",r.mode=df;break e}if(p>>>=T,b-=T,T=o-s,S>T){if(T=S-T,T>l&&r.sane){t.msg="invalid distance too far back",r.mode=df;break e}if(z=0,E=d,h===0){if(z+=f-T,T<B){B-=T;do F[o++]=d[z++];while(--T);z=o-S,E=F}}else if(h<T){if(z+=f+h-T,T-=h,T<B){B-=T;do F[o++]=d[z++];while(--T);if(z=0,h<B){T=h,B-=T;do F[o++]=d[z++];while(--T);z=o-S,E=F}}}else if(z+=h-T,T<B){B-=T;do F[o++]=d[z++];while(--T);z=o-S,E=F}for(;B>2;)F[o++]=E[z++],F[o++]=E[z++],F[o++]=E[z++],B-=3;B&&(F[o++]=E[z++],B>1&&(F[o++]=E[z++]))}else{z=o-S;do F[o++]=F[z++],F[o++]=F[z++],F[o++]=F[z++],B-=3;while(B>2);B&&(F[o++]=F[z++],B>1&&(F[o++]=F[z++]))}}else if(T&64){t.msg="invalid distance code",r.mode=df;break e}else{C=A[(C&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=MB;break e}else{t.msg="invalid literal/length code",r.mode=df;break e}else{C=x[(C&65535)+(p&(1<<T)-1)];continue t}break}}while(i<a&&o<c);B=b>>3,i-=B,b-=B<<3,p&=(1<<b)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<c?257+(c-o):257-(o-c),r.hold=p,r.bits=b},Qw=nr,Va=15,Vw=852,Zw=592,Yw=0,nd=1,Ww=2,NB=[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],BB=[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],FB=[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],kB=[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],LB=function(t,n,r,i,a,o,s,c){var u=c.bits,f=0,l=0,h=0,d=0,p=0,b=0,x=0,A=0,D=0,_=0,C,T,B,S,z,E=null,N=0,F,Y=new Qw.Buf16(Va+1),X=new Qw.Buf16(Va+1),Z=null,Se=0,Me,We,At;for(f=0;f<=Va;f++)Y[f]=0;for(l=0;l<i;l++)Y[n[r+l]]++;for(p=u,d=Va;d>=1&&Y[d]===0;d--);if(p>d&&(p=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,c.bits=1,0;for(h=1;h<d&&Y[h]===0;h++);for(p<h&&(p=h),A=1,f=1;f<=Va;f++)if(A<<=1,A-=Y[f],A<0)return-1;if(A>0&&(t===Yw||d!==1))return-1;for(X[1]=0,f=1;f<Va;f++)X[f+1]=X[f]+Y[f];for(l=0;l<i;l++)n[r+l]!==0&&(s[X[n[r+l]]++]=l);if(t===Yw?(E=Z=s,F=19):t===nd?(E=NB,N-=257,Z=BB,Se-=257,F=256):(E=FB,Z=kB,F=-1),_=0,l=0,f=h,z=o,b=p,x=0,B=-1,D=1<<p,S=D-1,t===nd&&D>Vw||t===Ww&&D>Zw)return 1;for(;;){Me=f-x,s[l]<F?(We=0,At=s[l]):s[l]>F?(We=Z[Se+s[l]],At=E[N+s[l]]):(We=32+64,At=0),C=1<<f-x,T=1<<b,h=T;do T-=C,a[z+(_>>x)+T]=Me<<24|We<<16|At|0;while(T!==0);for(C=1<<f-1;_&C;)C>>=1;if(C!==0?(_&=C-1,_+=C):_=0,l++,--Y[f]===0){if(f===d)break;f=n[r+s[l]]}if(f>p&&(_&S)!==B){for(x===0&&(x=p),z+=h,b=f-x,A=1<<b;b+x<d&&(A-=Y[b+x],!(A<=0));)b++,A<<=1;if(D+=1<<b,t===nd&&D>Vw||t===Ww&&D>Zw)return 1;B=_&S,a[B]=p<<24|b<<16|z-o|0}}return _!==0&&(a[z+_]=f-x<<24|64<<16|0),c.bits=p,0},Rt=nr,rd=Iw,Pn=_w,zB=TB,Qs=LB,RB=0,qw=1,Xw=2,Kw=4,OB=5,gf=6,Oi=0,PB=1,UB=2,Xt=-2,Jw=-3,$w=-4,jB=-5,ex=8,tx=1,nx=2,rx=3,ix=4,ax=5,ox=6,sx=7,ux=8,cx=9,fx=10,pf=11,ir=12,id=13,lx=14,ad=15,hx=16,dx=17,gx=18,px=19,mf=20,bf=21,mx=22,bx=23,yx=24,wx=25,xx=26,od=27,Ax=28,vx=29,Fe=30,Ex=31,GB=32,HB=852,QB=592,VB=15,ZB=VB;function Cx(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function YB(){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 Rt.Buf16(320),this.work=new Rt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Sx(e){var t;return!e||!e.state?Xt:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=tx,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Rt.Buf32(HB),t.distcode=t.distdyn=new Rt.Buf32(QB),t.sane=1,t.back=-1,Oi)}function Dx(e){var t;return!e||!e.state?Xt:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Sx(e))}function Ix(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Xt:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,Dx(e))}function _x(e,t){var n,r;return e?(r=new YB,e.state=r,r.window=null,n=Ix(e,t),n!==Oi&&(e.state=null),n):Xt}function WB(e){return _x(e,ZB)}var Mx=!0,sd,ud;function qB(e){if(Mx){var t;for(sd=new Rt.Buf32(512),ud=new Rt.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Qs(qw,e.lens,0,288,sd,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Qs(Xw,e.lens,0,32,ud,0,e.work,{bits:5}),Mx=!1}e.lencode=sd,e.lenbits=9,e.distcode=ud,e.distbits=5}function Tx(e,t,n,r){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Rt.Buf8(a.wsize)),r>=a.wsize?(Rt.arraySet(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),Rt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Rt.arraySet(a.window,t,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 XB(e,t){var n,r,i,a,o,s,c,u,f,l,h,d,p,b,x=0,A,D,_,C,T,B,S,z,E=new Rt.Buf8(4),N,F,Y=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return Xt;n=e.state,n.mode===ir&&(n.mode=id),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,u=n.hold,f=n.bits,l=s,h=c,z=Oi;e:for(;;)switch(n.mode){case tx:if(n.wrap===0){n.mode=id;break}for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(n.wrap&2&&u===35615){n.check=0,E[0]=u&255,E[1]=u>>>8&255,n.check=Pn(n.check,E,2,0),u=0,f=0,n.mode=nx;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){e.msg="incorrect header check",n.mode=Fe;break}if((u&15)!==ex){e.msg="unknown compression method",n.mode=Fe;break}if(u>>>=4,f-=4,S=(u&15)+8,n.wbits===0)n.wbits=S;else if(S>n.wbits){e.msg="invalid window size",n.mode=Fe;break}n.dmax=1<<S,e.adler=n.check=1,n.mode=u&512?fx:ir,u=0,f=0;break;case nx:for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(n.flags=u,(n.flags&255)!==ex){e.msg="unknown compression method",n.mode=Fe;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=Fe;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&(E[0]=u&255,E[1]=u>>>8&255,n.check=Pn(n.check,E,2,0)),u=0,f=0,n.mode=rx;case rx:for(;f<32;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.head&&(n.head.time=u),n.flags&512&&(E[0]=u&255,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,n.check=Pn(n.check,E,4,0)),u=0,f=0,n.mode=ix;case ix:for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&(E[0]=u&255,E[1]=u>>>8&255,n.check=Pn(n.check,E,2,0)),u=0,f=0,n.mode=ax;case ax:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&(E[0]=u&255,E[1]=u>>>8&255,n.check=Pn(n.check,E,2,0)),u=0,f=0}else n.head&&(n.head.extra=null);n.mode=ox;case ox:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(S=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Rt.arraySet(n.head.extra,r,a,d,S)),n.flags&512&&(n.check=Pn(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=sx;case sx:if(n.flags&2048){if(s===0)break e;d=0;do S=r[a+d++],n.head&&S&&n.length<65536&&(n.head.name+=String.fromCharCode(S));while(S&&d<s);if(n.flags&512&&(n.check=Pn(n.check,r,d,a)),s-=d,a+=d,S)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=ux;case ux:if(n.flags&4096){if(s===0)break e;d=0;do S=r[a+d++],n.head&&S&&n.length<65536&&(n.head.comment+=String.fromCharCode(S));while(S&&d<s);if(n.flags&512&&(n.check=Pn(n.check,r,d,a)),s-=d,a+=d,S)break e}else n.head&&(n.head.comment=null);n.mode=cx;case cx:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(u!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Fe;break}u=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=ir;break;case fx:for(;f<32;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}e.adler=n.check=Cx(u),u=0,f=0,n.mode=pf;case pf:if(n.havedict===0)return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=u,n.bits=f,UB;e.adler=n.check=1,n.mode=ir;case ir:if(t===OB||t===gf)break e;case id:if(n.last){u>>>=f&7,f-=f&7,n.mode=od;break}for(;f<3;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}switch(n.last=u&1,u>>>=1,f-=1,u&3){case 0:n.mode=lx;break;case 1:if(qB(n),n.mode=mf,t===gf){u>>>=2,f-=2;break e}break;case 2:n.mode=dx;break;case 3:e.msg="invalid block type",n.mode=Fe}u>>>=2,f-=2;break;case lx:for(u>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if((u&65535)!==(u>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Fe;break}if(n.length=u&65535,u=0,f=0,n.mode=ad,t===gf)break e;case ad:n.mode=hx;case hx:if(d=n.length,d){if(d>s&&(d=s),d>c&&(d=c),d===0)break e;Rt.arraySet(i,r,a,d,o),s-=d,a+=d,c-=d,o+=d,n.length-=d;break}n.mode=ir;break;case dx:for(;f<14;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(n.nlen=(u&31)+257,u>>>=5,f-=5,n.ndist=(u&31)+1,u>>>=5,f-=5,n.ncode=(u&15)+4,u>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Fe;break}n.have=0,n.mode=gx;case gx:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.lens[Y[n.have++]]=u&7,u>>>=3,f-=3}for(;n.have<19;)n.lens[Y[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,N={bits:n.lenbits},z=Qs(RB,n.lens,0,19,n.lencode,0,n.work,N),n.lenbits=N.bits,z){e.msg="invalid code lengths set",n.mode=Fe;break}n.have=0,n.mode=px;case px:for(;n.have<n.nlen+n.ndist;){for(;x=n.lencode[u&(1<<n.lenbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(_<16)u>>>=A,f-=A,n.lens[n.have++]=_;else{if(_===16){for(F=A+2;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(u>>>=A,f-=A,n.have===0){e.msg="invalid bit length repeat",n.mode=Fe;break}S=n.lens[n.have-1],d=3+(u&3),u>>>=2,f-=2}else if(_===17){for(F=A+3;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}u>>>=A,f-=A,S=0,d=3+(u&7),u>>>=3,f-=3}else{for(F=A+7;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}u>>>=A,f-=A,S=0,d=11+(u&127),u>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Fe;break}for(;d--;)n.lens[n.have++]=S}}if(n.mode===Fe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=Fe;break}if(n.lenbits=9,N={bits:n.lenbits},z=Qs(qw,n.lens,0,n.nlen,n.lencode,0,n.work,N),n.lenbits=N.bits,z){e.msg="invalid literal/lengths set",n.mode=Fe;break}if(n.distbits=6,n.distcode=n.distdyn,N={bits:n.distbits},z=Qs(Xw,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,N),n.distbits=N.bits,z){e.msg="invalid distances set",n.mode=Fe;break}if(n.mode=mf,t===gf)break e;case mf:n.mode=bf;case bf:if(s>=6&&c>=258){e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=u,n.bits=f,zB(e,h),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,u=n.hold,f=n.bits,n.mode===ir&&(n.back=-1);break}for(n.back=0;x=n.lencode[u&(1<<n.lenbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(D&&!(D&240)){for(C=A,T=D,B=_;x=n.lencode[B+((u&(1<<C+T)-1)>>C)],A=x>>>24,D=x>>>16&255,_=x&65535,!(C+A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}u>>>=C,f-=C,n.back+=C}if(u>>>=A,f-=A,n.back+=A,n.length=_,D===0){n.mode=xx;break}if(D&32){n.back=-1,n.mode=ir;break}if(D&64){e.msg="invalid literal/length code",n.mode=Fe;break}n.extra=D&15,n.mode=mx;case mx:if(n.extra){for(F=n.extra;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=bx;case bx:for(;x=n.distcode[u&(1<<n.distbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(!(D&240)){for(C=A,T=D,B=_;x=n.distcode[B+((u&(1<<C+T)-1)>>C)],A=x>>>24,D=x>>>16&255,_=x&65535,!(C+A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}u>>>=C,f-=C,n.back+=C}if(u>>>=A,f-=A,n.back+=A,D&64){e.msg="invalid distance code",n.mode=Fe;break}n.offset=_,n.extra=D&15,n.mode=yx;case yx:if(n.extra){for(F=n.extra;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Fe;break}n.mode=wx;case wx:if(c===0)break e;if(d=h-c,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=Fe;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=o-n.offset,d=n.length;d>c&&(d=c),c-=d,n.length-=d;do i[o++]=b[p++];while(--d);n.length===0&&(n.mode=bf);break;case xx:if(c===0)break e;i[o++]=n.length,c--,n.mode=bf;break;case od:if(n.wrap){for(;f<32;){if(s===0)break e;s--,u|=r[a++]<<f,f+=8}if(h-=c,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Pn(n.check,i,h,o-h):rd(n.check,i,h,o-h)),h=c,(n.flags?u:Cx(u))!==n.check){e.msg="incorrect data check",n.mode=Fe;break}u=0,f=0}n.mode=Ax;case Ax:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(u!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Fe;break}u=0,f=0}n.mode=vx;case vx:z=PB;break e;case Fe:z=Jw;break e;case Ex:return $w;case GB:default:return Xt}return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=u,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<Fe&&(n.mode<od||t!==Kw))&&Tx(e,e.output,e.next_out,h-e.avail_out),l-=e.avail_in,h-=e.avail_out,e.total_in+=l,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?Pn(n.check,i,h,e.next_out-h):rd(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===ir?128:0)+(n.mode===mf||n.mode===ad?256:0),(l===0&&h===0||t===Kw)&&z===Oi&&(z=jB),z}function KB(e){if(!e||!e.state)return Xt;var t=e.state;return t.window&&(t.window=null),e.state=null,Oi}function JB(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?Xt:(n.head=t,t.done=!1,Oi)}function $B(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==pf)?Xt:r.mode===pf&&(i=1,i=rd(i,t,n,0),i!==r.check)?Jw:(a=Tx(e,t,n,n),a?(r.mode=Ex,$w):(r.havedict=1,Oi))}bn.inflateReset=Dx,bn.inflateReset2=Ix,bn.inflateResetKeep=Sx,bn.inflateInit=WB,bn.inflateInit2=_x,bn.inflate=XB,bn.inflateEnd=KB,bn.inflateGetHeader=JB,bn.inflateSetDictionary=$B,bn.inflateInfo="pako inflate (from Nodeca project)";var Nx={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 eF(){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 tF=eF,Za=bn,Vs=nr,yf=zi,Ge=Nx,cd=Y0,nF=Uw,rF=tF,Bx=Object.prototype.toString;function Pi(e){if(!(this instanceof Pi))return new Pi(e);this.options=Vs.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new nF,this.strm.avail_out=0;var n=Za.inflateInit2(this.strm,t.windowBits);if(n!==Ge.Z_OK)throw new Error(cd[n]);if(this.header=new rF,Za.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=yf.string2buf(t.dictionary):Bx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Za.inflateSetDictionary(this.strm,t.dictionary),n!==Ge.Z_OK)))throw new Error(cd[n])}Pi.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,c,u,f=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?Ge.Z_FINISH:Ge.Z_NO_FLUSH,typeof e=="string"?n.input=yf.binstring2buf(e):Bx.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new Vs.Buf8(r),n.next_out=0,n.avail_out=r),a=Za.inflate(n,Ge.Z_NO_FLUSH),a===Ge.Z_NEED_DICT&&i&&(a=Za.inflateSetDictionary(this.strm,i)),a===Ge.Z_BUF_ERROR&&f===!0&&(a=Ge.Z_OK,f=!1),a!==Ge.Z_STREAM_END&&a!==Ge.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===Ge.Z_STREAM_END||n.avail_in===0&&(o===Ge.Z_FINISH||o===Ge.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=yf.utf8border(n.output,n.next_out),c=n.next_out-s,u=yf.buf2string(n.output,s),n.next_out=c,n.avail_out=r-c,c&&Vs.arraySet(n.output,n.output,s,c,0),this.onData(u)):this.onData(Vs.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(f=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==Ge.Z_STREAM_END);return a===Ge.Z_STREAM_END&&(o=Ge.Z_FINISH),o===Ge.Z_FINISH?(a=Za.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===Ge.Z_OK):(o===Ge.Z_SYNC_FLUSH&&(this.onEnd(Ge.Z_OK),n.avail_out=0),!0)},Pi.prototype.onData=function(e){this.chunks.push(e)},Pi.prototype.onEnd=function(e){e===Ge.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Vs.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function fd(e,t){var n=new Pi(t);if(n.push(e,!0),n.err)throw n.msg||cd[n.err];return n.result}function iF(e,t){return t=t||{},t.raw=!0,fd(e,t)}Hs.Inflate=Pi,Hs.inflate=fd,Hs.inflateRaw=iF,Hs.ungzip=fd;var aF=nr.assign,oF=Ts,sF=Hs,uF=Nx,Fx={};aF(Fx,oF,sF,uF);var wf=Fx;async function ld(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const c=e.subarray(n);if(o=new wf.Inflate,{strm:t}=o,o.push(c,wf.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=t.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(a);for(let c=0,u=0;c<i.length;c++)s.set(i[c],u),u+=i[c].length;return Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function cF(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],c=[],u=[];let f=0,l=0;do{const p=e.subarray(a-r.blockPosition),b=new wf.Inflate;if({strm:n}=b,b.push(p,wf.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const x=b.result;s.push(x);let A=x.length;c.push(a),u.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),A=s[0].length);const D=a;if(a+=n.next_in,o+=A,D>=i.blockPosition){s[l]=s[l].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),c.push(a),u.push(o),f+=s[l].length;break}f+=s[l].length,l++}while(n.avail_in);const h=new Uint8Array(f);for(let p=0,b=0;p<s.length;p++)h.set(s[p],b),b+=s[p].length;return{buffer:Buffer.from(h),cpositions:c,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 qt=null;try{qt=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 Ie(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Ie.prototype.__isLong__,Object.defineProperty(Ie.prototype,"__isLong__",{value:!0});function gt(e){return(e&&e.__isLong__)===!0}function yx(e){var t=Math.clz32(e&-e);return e?31-t:t}Ie.isLong=gt;var wx={},xx={};function Ri(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=xx[e],r)?r:(n=he(e,0,!0),i&&(xx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=wx[e],r)?r:(n=he(e,e<0?-1:0,!1),i&&(wx[e]=n),n))}Ie.fromInt=Ri;function Wt(e,t){if(isNaN(e))return t?or:yn;if(t){if(e<0)return or;if(e>=vx)return Ix}else{if(e<=-Ex)return Mt;if(e+1>=Ex)return Dx}return e<0?Wt(-e,t).neg():he(e%Vo|0,e/Vo|0,t)}Ie.fromNumber=Wt;function he(e,t,n){return new Ie(e,t,n)}Ie.fromBits=he;var sf=Math.pow;function $0(e,t,n){if(e.length===0)throw Error("empty string");if(typeof t=="number"?(n=t,t=!1):t=!!t,e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return t?or:yn;if(n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return $0(e.substring(1),t,n).neg();for(var i=Wt(sf(n,8)),o=yn,a=0;a<e.length;a+=8){var s=Math.min(8,e.length-a),c=parseInt(e.substring(a,a+s),n);if(s<8){var u=Wt(sf(n,s));o=o.mul(u).add(Wt(c))}else o=o.mul(i),o=o.add(Wt(c))}return o.unsigned=t,o}Ie.fromString=$0;function bn(e,t){return typeof e=="number"?Wt(e,t):typeof e=="string"?$0(e,t):he(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Ie.fromValue=bn;var Ax=1<<16,oF=1<<24,Vo=Ax*Ax,vx=Vo*Vo,Ex=vx/2,Cx=Ri(oF),yn=Ri(0);Ie.ZERO=yn;var or=Ri(0,!0);Ie.UZERO=or;var Zo=Ri(1);Ie.ONE=Zo;var Sx=Ri(1,!0);Ie.UONE=Sx;var ed=Ri(-1);Ie.NEG_ONE=ed;var Dx=he(-1,2147483647,!1);Ie.MAX_VALUE=Dx;var Ix=he(-1,-1,!0);Ie.MAX_UNSIGNED_VALUE=Ix;var Mt=he(0,-2147483648,!1);Ie.MIN_VALUE=Mt;var U=Ie.prototype;U.toInt=function(){return this.unsigned?this.low>>>0:this.low},U.toNumber=function(){return this.unsigned?(this.high>>>0)*Vo+(this.low>>>0):this.high*Vo+(this.low>>>0)},U.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Mt)){var n=Wt(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var o=Wt(sf(t,6),this.unsigned),a=this,s="";;){var c=a.div(o),u=a.sub(c.mul(o)).toInt()>>>0,f=u.toString(t);if(a=c,a.isZero())return f+s;for(;f.length<6;)f="0"+f;s=""+f+s}},U.getHighBits=function(){return this.high},U.getHighBitsUnsigned=function(){return this.high>>>0},U.getLowBits=function(){return this.low},U.getLowBitsUnsigned=function(){return this.low>>>0},U.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Mt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},U.isZero=function(){return this.high===0&&this.low===0},U.eqz=U.isZero,U.isNegative=function(){return!this.unsigned&&this.high<0},U.isPositive=function(){return this.unsigned||this.high>=0},U.isOdd=function(){return(this.low&1)===1},U.isEven=function(){return(this.low&1)===0},U.equals=function(t){return gt(t)||(t=bn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},U.eq=U.equals,U.notEquals=function(t){return!this.eq(t)},U.neq=U.notEquals,U.ne=U.notEquals,U.lessThan=function(t){return this.comp(t)<0},U.lt=U.lessThan,U.lessThanOrEqual=function(t){return this.comp(t)<=0},U.lte=U.lessThanOrEqual,U.le=U.lessThanOrEqual,U.greaterThan=function(t){return this.comp(t)>0},U.gt=U.greaterThan,U.greaterThanOrEqual=function(t){return this.comp(t)>=0},U.gte=U.greaterThanOrEqual,U.ge=U.greaterThanOrEqual,U.compare=function(t){if(gt(t)||(t=bn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},U.comp=U.compare,U.negate=function(){return!this.unsigned&&this.eq(Mt)?Mt:this.not().add(Zo)},U.neg=U.negate,U.add=function(t){gt(t)||(t=bn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,o=this.low&65535,a=t.high>>>16,s=t.high&65535,c=t.low>>>16,u=t.low&65535,f=0,l=0,h=0,d=0;return d+=o+u,h+=d>>>16,d&=65535,h+=i+c,l+=h>>>16,h&=65535,l+=r+s,f+=l>>>16,l&=65535,f+=n+a,f&=65535,he(h<<16|d,f<<16|l,this.unsigned)},U.subtract=function(t){return gt(t)||(t=bn(t)),this.add(t.neg())},U.sub=U.subtract,U.multiply=function(t){if(this.isZero())return this;if(gt(t)||(t=bn(t)),qt){var n=qt.mul(this.low,this.high,t.low,t.high);return he(n,qt.get_high(),this.unsigned)}if(t.isZero())return this.unsigned?or:yn;if(this.eq(Mt))return t.isOdd()?Mt:yn;if(t.eq(Mt))return this.isOdd()?Mt:yn;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(Cx)&&t.lt(Cx))return Wt(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,o=this.low>>>16,a=this.low&65535,s=t.high>>>16,c=t.high&65535,u=t.low>>>16,f=t.low&65535,l=0,h=0,d=0,p=0;return p+=a*f,d+=p>>>16,p&=65535,d+=o*f,h+=d>>>16,d&=65535,d+=a*u,h+=d>>>16,d&=65535,h+=i*f,l+=h>>>16,h&=65535,h+=o*u,l+=h>>>16,h&=65535,h+=a*c,l+=h>>>16,h&=65535,l+=r*f+i*u+o*c+a*s,l&=65535,he(d<<16|p,l<<16|h,this.unsigned)},U.mul=U.multiply,U.divide=function(t){if(gt(t)||(t=bn(t)),t.isZero())throw Error("division by zero");if(qt){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?qt.div_u:qt.div_s)(this.low,this.high,t.low,t.high);return he(n,qt.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?or:yn;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return or;if(t.gt(this.shru(1)))return Sx;o=or}else{if(this.eq(Mt)){if(t.eq(Zo)||t.eq(ed))return Mt;if(t.eq(Mt))return Zo;var a=this.shr(1);return r=a.div(t).shl(1),r.eq(yn)?t.isNegative()?Zo:ed:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq(Mt))return this.unsigned?or:yn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();o=yn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),c=s<=48?1:sf(2,s-48),u=Wt(r),f=u.mul(t);f.isNegative()||f.gt(i);)r-=c,u=Wt(r,this.unsigned),f=u.mul(t);u.isZero()&&(u=Zo),o=o.add(u),i=i.sub(f)}return o},U.div=U.divide,U.modulo=function(t){if(gt(t)||(t=bn(t)),qt){var n=(this.unsigned?qt.rem_u:qt.rem_s)(this.low,this.high,t.low,t.high);return he(n,qt.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},U.mod=U.modulo,U.rem=U.modulo,U.not=function(){return he(~this.low,~this.high,this.unsigned)},U.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},U.clz=U.countLeadingZeros,U.countTrailingZeros=function(){return this.low?yx(this.low):yx(this.high)+32},U.ctz=U.countTrailingZeros,U.and=function(t){return gt(t)||(t=bn(t)),he(this.low&t.low,this.high&t.high,this.unsigned)},U.or=function(t){return gt(t)||(t=bn(t)),he(this.low|t.low,this.high|t.high,this.unsigned)},U.xor=function(t){return gt(t)||(t=bn(t)),he(this.low^t.low,this.high^t.high,this.unsigned)},U.shiftLeft=function(t){return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?he(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):he(0,this.low<<t-32,this.unsigned)},U.shl=U.shiftLeft,U.shiftRight=function(t){return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?he(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):he(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},U.shr=U.shiftRight,U.shiftRightUnsigned=function(t){return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?he(this.low>>>t|this.high<<32-t,this.high>>>t,this.unsigned):t===32?he(this.high,0,this.unsigned):he(this.high>>>t-32,0,this.unsigned)},U.shru=U.shiftRightUnsigned,U.shr_u=U.shiftRightUnsigned,U.rotateLeft=function(t){var n;return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t===32?he(this.high,this.low,this.unsigned):t<32?(n=32-t,he(this.low<<t|this.high>>>n,this.high<<t|this.low>>>n,this.unsigned)):(t-=32,n=32-t,he(this.high<<t|this.low>>>n,this.low<<t|this.high>>>n,this.unsigned))},U.rotl=U.rotateLeft,U.rotateRight=function(t){var n;return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t===32?he(this.high,this.low,this.unsigned):t<32?(n=32-t,he(this.high<<n|this.low>>>t,this.low<<n|this.high>>>t,this.unsigned)):(t-=32,n=32-t,he(this.low<<n|this.high>>>t,this.high<<n|this.low>>>t,this.unsigned))},U.rotr=U.rotateRight,U.toSigned=function(){return this.unsigned?he(this.low,this.high,!1):this},U.toUnsigned=function(){return this.unsigned?this:he(this.low,this.high,!0)},U.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},U.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},U.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Ie.fromBytes=function(t,n,r){return r?Ie.fromBytesLE(t,n):Ie.fromBytesBE(t,n)},Ie.fromBytesLE=function(t,n){return new Ie(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Ie.fromBytesBE=function(t,n){return new Ie(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};function _x(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function aF(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const o=n.toString("utf8").split(/\r?\n/).filter(a=>/\S/.test(a)).map(a=>a.split(" ")).filter(a=>a[0]!=="").map(a=>((!i||i.name!==a[0])&&(i={name:a[0],id:r},r+=1),{id:i.id,name:a[0],length:+a[1],start:0,end:+a[1],offset:+a[2],lineLength:+a[3],lineBytes:+a[4]}));return{name:Object.fromEntries(o.map(a=>[a.name,a])),id:Object.fromEntries(o.map(a=>[a.id,a]))}}class sF{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:o=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new Lr(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 Lr(i);else if(r)this.fai=new Lr(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=o}async _getIndexes(t){return this.indexes||(this.indexes=aF(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let o=0;o<i.length;o+=1)n[i[o].name]=i[o].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const o=(await this._getIndexes(i)).id[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getResiduesByName(t,n,r,i){const o=(await this._getIndexes(i)).name[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let o=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((o===void 0||o>t.length)&&(o=t.length),n>=o)return"";const a=_x(t,n),s=_x(t,o)-a;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const c=Buffer.allocUnsafe(s);return await this.fasta.read(c,0,s,a,i),c.toString("utf8").replace(/\s+/g,"")}}function uf(e){return class extends e{constructor(){super(...arguments);Vn(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 sc(this.lastQuantizedInterval,r)?!1:(this.lastQuantizedInterval=r,!0)}}}function cf(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}typeof window<"u"&&(window.Buffer=kt.Buffer);class uF extends uf(Fo){constructor(t,n){const r={channel:"x",windowSize:7e3,...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");const i=o=>new tr(cf(o,this.view.getBaseUrl()));this.fasta=new sF({fasta:i(this.params.url),fai:i(this.params.indexUrl??this.params.url+".fai")})}async onDomainChanged(t){const n=this.params.windowSize;if(t[1]-t[0]>n)return;const r=this.quantizeInterval(t,n);if(this.checkAndUpdateLastInterval(r)){const i=this.genome.continuousToDiscreteChromosomeIntervals(r),o=await Promise.all(i.map(a=>this.fasta.getSequence(a.chrom,a.startPos,a.endPos).then(s=>({chrom:a.chrom,start:a.startPos,sequence:s}))));this.publishData(o)}}}const ff=BigInt(32);function cF(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<ff|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function fF(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),o=+!!n,a=+!n;return BigInt(r*a+i*o)<<ff|BigInt(r*o+i*a)}function lF(e,t,n,r){const i=Number(n>>ff),o=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,o,r)):(e.setInt32(t,i,r),e.setUint32(t+4,o,r))}function hF(e,t,n,r){const i=Number(n>>ff),o=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,o,r)):(e.setUint32(t,i,r),e.setUint32(t+4,o,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return cF(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return fF(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){lF(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){hF(this,e,t,n)});class dF{constructor(t,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=t,this.useContextVariables=n}generateVariable(t){const n=[...this.scopes[this.scopes.length-1]];return t&&n.push(t),n.join(".")}generateOption(t){switch(typeof t){case"number":return t.toString();case"string":return this.generateVariable(t);case"function":return`${this.addImport(t)}.call(${this.generateVariable()}, vars)`}}generateError(t){this.pushCode(`throw new Error(${t});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(t){this.code+=t+`
175
- `}pushPath(t){t&&this.scopes[this.scopes.length-1].push(t)}popPath(t){t&&this.scopes[this.scopes.length-1].pop()}pushScope(t){this.scopes.push([t])}popScope(){this.scopes.pop()}addImport(t){if(!this.importPath)return`(${t})`;let n=this.reverseImports.get(t);return n||(n=this.imports.push(t)-1,this.reverseImports.set(t,n)),`${this.importPath}[${n}]`}addReference(t){this.references.has(t)||this.references.set(t,{resolved:!1,requested:!1})}markResolved(t){const n=this.references.get(t);n&&(n.resolved=!0)}markRequested(t){t.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([t,n])=>!n.resolved&&!n.requested).map(([t,n])=>t)}}const wn=new Map,Oi="___parser_",xn={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},lf={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"},hf={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};class ee{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new ee}primitiveGenerateN(t,n){const r=lf[t],i=hf[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${xn[t]};`)}primitiveN(t,n,r){return this.setNextParser(t,n,r)}useThisEndian(t){return t+this.endian.toLowerCase()}uint8(t,n={}){return this.primitiveN("uint8",t,n)}uint16(t,n={}){return this.primitiveN(this.useThisEndian("uint16"),t,n)}uint16le(t,n={}){return this.primitiveN("uint16le",t,n)}uint16be(t,n={}){return this.primitiveN("uint16be",t,n)}uint32(t,n={}){return this.primitiveN(this.useThisEndian("uint32"),t,n)}uint32le(t,n={}){return this.primitiveN("uint32le",t,n)}uint32be(t,n={}){return this.primitiveN("uint32be",t,n)}int8(t,n={}){return this.primitiveN("int8",t,n)}int16(t,n={}){return this.primitiveN(this.useThisEndian("int16"),t,n)}int16le(t,n={}){return this.primitiveN("int16le",t,n)}int16be(t,n={}){return this.primitiveN("int16be",t,n)}int32(t,n={}){return this.primitiveN(this.useThisEndian("int32"),t,n)}int32le(t,n={}){return this.primitiveN("int32le",t,n)}int32be(t,n={}){return this.primitiveN("int32be",t,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),t,n)}int64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",t,n)}int64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",t,n)}uint64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),t,n)}uint64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",t,n)}uint64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",t,n)}floatle(t,n={}){return this.primitiveN("floatle",t,n)}floatbe(t,n={}){return this.primitiveN("floatbe",t,n)}doublele(t,n={}){return this.primitiveN("doublele",t,n)}doublebe(t,n={}){return this.primitiveN("doublebe",t,n)}bitN(t,n,r){return r.length=t,this.setNextParser("bit",n,r)}bit1(t,n={}){return this.bitN(1,t,n)}bit2(t,n={}){return this.bitN(2,t,n)}bit3(t,n={}){return this.bitN(3,t,n)}bit4(t,n={}){return this.bitN(4,t,n)}bit5(t,n={}){return this.bitN(5,t,n)}bit6(t,n={}){return this.bitN(6,t,n)}bit7(t,n={}){return this.bitN(7,t,n)}bit8(t,n={}){return this.bitN(8,t,n)}bit9(t,n={}){return this.bitN(9,t,n)}bit10(t,n={}){return this.bitN(10,t,n)}bit11(t,n={}){return this.bitN(11,t,n)}bit12(t,n={}){return this.bitN(12,t,n)}bit13(t,n={}){return this.bitN(13,t,n)}bit14(t,n={}){return this.bitN(14,t,n)}bit15(t,n={}){return this.bitN(15,t,n)}bit16(t,n={}){return this.bitN(16,t,n)}bit17(t,n={}){return this.bitN(17,t,n)}bit18(t,n={}){return this.bitN(18,t,n)}bit19(t,n={}){return this.bitN(19,t,n)}bit20(t,n={}){return this.bitN(20,t,n)}bit21(t,n={}){return this.bitN(21,t,n)}bit22(t,n={}){return this.bitN(22,t,n)}bit23(t,n={}){return this.bitN(23,t,n)}bit24(t,n={}){return this.bitN(24,t,n)}bit25(t,n={}){return this.bitN(25,t,n)}bit26(t,n={}){return this.bitN(26,t,n)}bit27(t,n={}){return this.bitN(27,t,n)}bit28(t,n={}){return this.bitN(28,t,n)}bit29(t,n={}){return this.bitN(29,t,n)}bit30(t,n={}){return this.bitN(30,t,n)}bit31(t,n={}){return this.bitN(31,t,n)}bit32(t,n={}){return this.bitN(32,t,n)}namely(t){return wn.set(t,this),this.alias=t,this}skip(t,n={}){return this.seek(t,n)}seek(t,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:t})}string(t,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",t,n)}buffer(t,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",t,n)}wrapped(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!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",t,n)}array(t,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"&&!wn.has(n.type)&&!(n.type in xn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!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),o=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof o=="string"&&!wn.has(o)&&!(o in xn))throw new Error(`Choice type "${o}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof ee)&&!wn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof ee)&&!t)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",t,n)}pointer(t,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 xn)&&!wn.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",t,n)}saveOffset(t,n={}){return this.setNextParser("saveOffset",t,n)}endianness(t){switch(t.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(t){return this.endianness(t)}useContextVars(t=!0){return this.useContextVariables=t,this}create(t){if(!(t instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=t,this}getContext(t){const n=new dF(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${Oi+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const t="imports";return this.getContext(t).code}addRawCode(t){t.pushCode("var offset = 0;"),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("vars.$parent = null;"),t.pushCode("vars.$root = vars;"),this.generate(t),this.resolveReferences(t),t.pushCode("delete vars.$parent;"),t.pushCode("delete vars.$root;"),t.pushCode("return vars;")}addAliasedCode(t){return t.pushCode(`function ${Oi+this.alias}(offset, context) {`),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),t.pushCode("vars = Object.assign(vars, ctx);"),this.generate(t),t.markResolved(this.alias),this.resolveReferences(t),t.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),t.pushCode("return { offset: offset, result: vars };"),t.pushCode("}"),t}resolveReferences(t){const n=t.getUnresolvedReferences();t.markRequested(n),n.forEach(r=>{var i;(i=wn.get(r))===null||i===void 0||i.addAliasedCode(t)})}compile(){const t="imports",n=this.getContext(t);this.compiled=new Function(t,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let t=NaN;if(Object.keys(xn).indexOf(this.type)>=0)t=xn[this.type];else if(this.type==="string"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=xn[this.options.type]:this.options.type instanceof ee&&(n=this.options.type.sizeOf()),t=this.options.length*n}else this.type==="seek"?t=this.options.length:this.type==="nest"?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t}parse(t){return this.compiled||this.compile(),this.compiled(t,this.constructorFn)}setNextParser(t,n,r){const i=new ee;return i.type=t,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(t){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,t);break;case"bit":this.generateBit(t);break;case"string":this.generateString(t);break;case"buffer":this.generateBuffer(t);break;case"seek":this.generateSeek(t);break;case"nest":this.generateNest(t);break;case"array":this.generateArray(t);break;case"choice":this.generateChoice(t);break;case"pointer":this.generatePointer(t);break;case"saveOffset":this.generateSaveOffset(t);break;case"wrapper":this.generateWrapper(t);break}this.type!=="bit"&&this.generateAssert(t)}const n=t.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(t,n,this.options.formatter),this.generateNext(t)}generateAssert(t){if(!this.options.assert)return;const n=t.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=t.addImport(this.options.assert);t.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":t.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":t.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}t.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),t.pushCode("}")}generateNext(t){return this.next&&(t=this.next.generate(t)),t}generateBit(t){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=t.generateVariable(n.varName),t.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=t.generateTmpVariable();t.pushCode(`var ${r} = 0;`);const i=(f=0)=>{let l=0;for(let h=f;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(l+d>32)break;l+=d}return l},o=f=>(f<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),f=8):f<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),f=16):f<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),f=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),f=32),t.pushCode(`offset += ${f/8};`),f);let a=0;const s=this.endian==="be";let c=0,u=0;t.bitFields.forEach((f,l)=>{let h=f.options.length;if(h>u){if(u){const b=-1>>>32-u;t.pushCode(`${f.varName} = (${r} & 0x${b.toString(16)}) << ${h-u};`),h-=u}a=0,u=c=o(i(l)-u)}const d=s?c-a-h:a,p=-1>>>32-h;t.pushCode(`${f.varName} ${h<f.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),f.options.length===32&&t.pushCode(`${f.varName} >>>= 0`),f.options.assert&&f.generateAssert(t),f.options.formatter&&f.generateFormatter(t,f.varName,f.options.formatter),a+=h,u-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,o=i.toLowerCase()==="hex",a='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const c=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, ${c}), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${c}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(o?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, offset), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),o=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${o} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${o} = dataView.getUint8(offset);`);const a=t.addImport(r);t.pushCode(`if (${a}.call(${t.generateVariable()}, ${o}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,o=t.generateTmpVariable(),a=t.generateVariable(this.varName),s=t.generateTmpVariable(),c=this.options.key,u=typeof c=="string";if(u?t.pushCode(`${a} = {};`):t.pushCode(`${a} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${o} = 0; offset < buffer.length; ${o}++) {`):r!==void 0?t.pushCode(`for (var ${o} = offset + ${r}; offset < ${o}; ) {`):t.pushCode(`for (var ${o} = ${n}; ${o} > 0; ${o}--) {`),typeof i=="string")if(wn.get(i)){const f=t.generateTmpVariable();if(t.pushCode(`var ${f} = ${Oi+i}(offset, {`),t.useContextVariables){const l=t.generateVariable();t.pushCode(`$parent: ${l},`),t.pushCode(`$root: ${l}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${o},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${f}.result; offset = ${f}.offset;`),i!==this.alias&&t.addReference(i)}else{const f=lf[i],l=hf[i];t.pushCode(`var ${s} = dataView.get${f}(offset, ${l});`),t.pushCode(`offset += ${xn[i]};`)}else if(i instanceof ee){t.pushCode(`var ${s} = {};`);const f=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${f};`),t.pushCode(`${s}.$root = ${f}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${s}.$index = ${n} - ${o};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(u?t.pushCode(`${a}[${s}.${c}] = ${s};`):t.pushCode(`${a}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const f=this.options.readUntil,l=t.addImport(f);t.pushCode(`while (!${l}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(wn.has(r)){const o=t.generateTmpVariable();t.pushCode(`var ${o} = ${Oi+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${o}.result; offset = ${o}.offset;`),r!==this.alias&&t.addReference(r)}else{const o=lf[r],a=hf[r];t.pushCode(`${i} = dataView.get${o}(offset, ${a});`),t.pushCode(`offset += ${xn[r]}`)}}else r instanceof ee&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const o=parseInt(i,10),a=this.options.choices[o];t.pushCode(`case ${o}:`),this.generateChoiceCase(t,this.varName,a),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof ee){if(this.varName&&(t.pushCode(`${n} = {};`),t.useContextVariables)){const r=t.generateVariable();t.pushCode(`${n}.$parent = ${r};`),t.pushCode(`${n}.$root = ${r}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),this.varName&&t.useContextVariables&&t.useContextVariables&&(t.pushCode(`delete ${n}.$parent;`),t.pushCode(`delete ${n}.$root;`))}else if(wn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${Oi+this.options.type}(offset, {`),t.useContextVariables){const i=t.generateVariable();t.pushCode(`$parent: ${i},`),t.pushCode(`$root: ${i}.$root,`)}t.pushCode("});"),t.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}}generateWrapper(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable();if(typeof this.options.readUntil=="function"){const c=this.options.readUntil,u=t.generateTmpVariable(),f=t.generateTmpVariable();t.pushCode(`var ${u} = offset;`),t.pushCode(`var ${f} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${f} = dataView.getUint8(offset);`);const l=t.addImport(c);t.pushCode(`if (${l}.call(${t.generateVariable()}, ${f}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${u}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const c=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${c});`),t.pushCode(`offset += ${c};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),o=t.generateTmpVariable(),a=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${o} = offset;`),t.pushCode(`var ${a} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof ee)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(wn.has(this.options.type)){const c=t.generateTmpVariable();t.pushCode(`var ${c} = ${Oi+this.options.type}(0);`),t.pushCode(`${n} = ${c}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${a};`),t.pushCode(`offset = ${o};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),o=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof ee){if(t.pushCode(`${o} = {};`),t.useContextVariables){const a=t.generateVariable();t.pushCode(`${o}.$parent = ${a};`),t.pushCode(`${o}.$root = ${a}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${o}.$parent;`),t.pushCode(`delete ${o}.$root;`))}else if(wn.has(this.options.type)){const a=t.generateTmpVariable();if(t.pushCode(`var ${a} = ${Oi+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${o} = ${a}.result; offset = ${a}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(xn).indexOf(this.options.type)>=0){const a=lf[n],s=hf[n];t.pushCode(`${o} = dataView.get${a}(offset, ${s});`),t.pushCode(`offset += ${xn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}}var Mx={},td={},Pi={},Ps={};Object.defineProperty(Ps,"__esModule",{value:!0});function nd(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Tx(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function rd(e,t,n){return t&&Tx(e.prototype,t),n&&Tx(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function gF(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&id(e,t)}function Yo(e){return Yo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Yo(e)}function id(e,t){return id=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},id(e,t)}function pF(){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 Us(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function mF(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Us(e)}function bF(e){var t=pF();return function(){var r=Yo(e),i;if(t){var o=Yo(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return mF(this,i)}}function yF(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Yo(e),e!==null););return e}function df(){return typeof Reflect<"u"&&Reflect.get?df=Reflect.get.bind():df=function(t,n,r){var i=yF(t,n);if(i){var o=Object.getOwnPropertyDescriptor(i,n);return o.get?o.get.call(arguments.length<3?t:r):o.value}},df.apply(this,arguments)}var Nx=function(){function e(){nd(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return rd(e,[{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],o=0,a=i.length;o<a;o++)if(i[o].callback===r){i.splice(o,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),o=0,a=i.length;o<a;o++){var s=i[o];try{s.callback.call(this,n)}catch(c){Promise.resolve().then(function(){throw c})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),od=function(e){gF(n,e);var t=bF(n);function n(){var r;return nd(this,n),r=t.call(this),r.listeners||Nx.call(Us(r)),Object.defineProperty(Us(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(Us(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(Us(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return rd(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)),df(Yo(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Nx),Bx=function(){function e(){nd(this,e),Object.defineProperty(this,"signal",{value:new od,writable:!0,configurable:!0})}return rd(e,[{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]"}}]),e}();typeof Symbol<"u"&&Symbol.toStringTag&&(Bx.prototype[Symbol.toStringTag]="AbortController",od.prototype[Symbol.toStringTag]="AbortSignal");function wF(e){return e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof e.Request=="function"&&!e.Request.prototype.hasOwnProperty("signal")||!e.AbortController}function xF(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,o=t.AbortController,a=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=a===void 0?!1:a;if(!wF({fetch:n,Request:i,AbortController:o,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:c};var c=i;(c&&!c.prototype.hasOwnProperty("signal")||s)&&(c=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var b=new i(h,d);return p&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),b},c.prototype=i.prototype);var u=n,f=function(h,d){var p=c&&c.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(p.aborted)return Promise.reject(b);var x=new Promise(function(A,D){p.addEventListener("abort",function(){return D(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([x,u(h,d)])}return u(h,d)};return{fetch:f,Request:c}}Ps.AbortController=Bx,Ps.AbortSignal=od,Ps.abortableFetch=xF,Object.defineProperty(Pi,"__esModule",{value:!0}),Pi.AbortSignal=Pi.AbortController=void 0;const Fx=Ps;var gf=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Ii<"u")return Ii;throw new Error("unable to locate global object")};let AF=typeof gf().AbortController>"u"?Fx.AbortController:gf().AbortController;Pi.AbortController=AF;let vF=typeof gf().AbortController>"u"?Fx.AbortSignal:gf().AbortSignal;Pi.AbortSignal=vF;var ad={};Object.defineProperty(ad,"__esModule",{value:!0});const EF=Pi;class CF{}class SF{constructor(){this.signals=new Set,this.abortController=new EF.AbortController}addSignal(t=new CF){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(t),t.aborted?this.handleAborted(t):typeof t.addEventListener=="function"&&t.addEventListener("abort",()=>{this.handleAborted(t)})}handleAborted(t){this.signals.delete(t),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}ad.default=SF;var sd={};Object.defineProperty(sd,"__esModule",{value:!0});class DF{constructor(){this.callbacks=new Set}addCallback(t=()=>{}){this.callbacks.add(t),t(this.currentMessage)}callback(t){this.currentMessage=t,this.callbacks.forEach(n=>{n(t)})}}sd.default=DF;var kx=Ii&&Ii.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(td,"__esModule",{value:!0});const IF=Pi,_F=kx(ad),MF=kx(sd);class pf{constructor({fill:t,cache:n}){if(typeof t!="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=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const o=new _F.default,a=new MF.default;a.addCallback(i);const s={aborter:o,promise:this.fillCallback(n,o.signal,c=>{a.callback(c)}),settled:!1,statusReporter:a,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(c=>{throw console.error(c),c}),this.cache.set(t,s)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof IF.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const o=this.cache.get(t);return o?o.aborted&&!o.settled?(this.evict(t,o),this.get(t,n,r,i)):o.settled?o.promise:(o.aborter.addSignal(r),o.statusReporter.addCallback(i),pf.checkSinglePromise(o.promise,r)):(this.fill(t,n,r,i),pf.checkSinglePromise(this.cache.get(t).promise,r))}delete(t){const n=this.cache.get(t);n&&(n.settled||n.aborter.abort(),this.cache.delete(t))}clear(){const t=this.cache.keys();let n=0;for(let r=t.next();!r.done;r=t.next())this.delete(r.value),n+=1;return n}}td.default=pf;var TF=Ii&&Ii.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Mx,"__esModule",{value:!0});const NF=TF(td);var ud=Mx.default=NF.default,BF=class{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}};const Lx=ko(BF);class Hr{constructor(t,n){this.ranges=arguments.length===2?[{min:t,max:n}]:0 in t?Object.assign({},t):[t]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(t){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=t&&r.max>=t)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new Hr(t.min,t.max))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=this.getRanges().concat(t.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let o=1;o<n.length;o+=1){const a=n[o];a.min()>i.max()+1?(r.push(i),i=a):a.max()>i.max()&&(i=new Hr(i.min(),a.max()))}return r.push(i),r.length===1?r[0]:new Hr(r)}intersection(t){let n=this,r=t;const i=this.ranges(),o=r.ranges(),a=i.length,s=o.length;let c=0,u=0;const f=[];for(;c<a&&u<s;){n=i[c],r=o[u];const l=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=l&&f.push(new Hr(l,h)),n.max()>r.max()?u+=1:c+=1}if(f.length===0)throw new Error("found range of length 0");return f.length===1?f[0]:new Hr(f)}coverage(){let t=0;const n=this.ranges();for(const r of n)t+=r.max()-r.min()+1;return t}rangeOrder(t,n){let r=t,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 FF=4,zx=0,Rx=1,kF=2;function qo(e){let t=e.length;for(;--t>=0;)e[t]=0}const LF=0,Ox=1,zF=2,RF=3,OF=258,cd=29,js=256,Gs=js+1+cd,Wo=30,fd=19,Px=2*Gs+1,Ui=15,ld=16,PF=7,hd=256,Ux=16,jx=17,Gx=18,dd=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]),mf=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]),UF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Hx=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),jF=512,ar=new Array((Gs+2)*2);qo(ar);const Hs=new Array(Wo*2);qo(Hs);const Qs=new Array(jF);qo(Qs);const Vs=new Array(OF-RF+1);qo(Vs);const gd=new Array(cd);qo(gd);const bf=new Array(Wo);qo(bf);function pd(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let Qx,Vx,Zx;function md(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const Yx=e=>e<256?Qs[e]:Qs[256+(e>>>7)],Zs=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Tt=(e,t,n)=>{e.bi_valid>ld-n?(e.bi_buf|=t<<e.bi_valid&65535,Zs(e,e.bi_buf),e.bi_buf=t>>ld-e.bi_valid,e.bi_valid+=n-ld):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},On=(e,t,n)=>{Tt(e,n[t*2],n[t*2+1])},qx=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},GF=e=>{e.bi_valid===16?(Zs(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},HF=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let u,f,l,h,d,p,b=0;for(h=0;h<=Ui;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;u<Px;u++)f=e.heap[u],h=n[n[f*2+1]*2+1]+1,h>c&&(h=c,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=a[f-s]),p=n[f*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==0){do{for(h=c-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,b-=2}while(b>0);for(h=c;h!==0;h--)for(f=e.bl_count[h];f!==0;)l=e.heap[--u],!(l>r)&&(n[l*2+1]!==h&&(e.opt_len+=(h-n[l*2+1])*n[l*2],n[l*2+1]=h),f--)}},Wx=(e,t,n)=>{const r=new Array(Ui+1);let i=0,o,a;for(o=1;o<=Ui;o++)i=i+n[o-1]<<1,r[o]=i;for(a=0;a<=t;a++){let s=e[a*2+1];s!==0&&(e[a*2]=qx(r[s]++,s))}},QF=()=>{let e,t,n,r,i;const o=new Array(Ui+1);for(n=0,r=0;r<cd-1;r++)for(gd[r]=n,e=0;e<1<<dd[r];e++)Vs[n++]=r;for(Vs[n-1]=r,i=0,r=0;r<16;r++)for(bf[r]=i,e=0;e<1<<mf[r];e++)Qs[i++]=r;for(i>>=7;r<Wo;r++)for(bf[r]=i<<7,e=0;e<1<<mf[r]-7;e++)Qs[256+i++]=r;for(t=0;t<=Ui;t++)o[t]=0;for(e=0;e<=143;)ar[e*2+1]=8,e++,o[8]++;for(;e<=255;)ar[e*2+1]=9,e++,o[9]++;for(;e<=279;)ar[e*2+1]=7,e++,o[7]++;for(;e<=287;)ar[e*2+1]=8,e++,o[8]++;for(Wx(ar,Gs+1,o),e=0;e<Wo;e++)Hs[e*2+1]=5,Hs[e*2]=qx(e,5);Qx=new pd(ar,dd,js+1,Gs,Ui),Vx=new pd(Hs,mf,0,Wo,Ui),Zx=new pd(new Array(0),UF,0,fd,PF)},Xx=e=>{let t;for(t=0;t<Gs;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Wo;t++)e.dyn_dtree[t*2]=0;for(t=0;t<fd;t++)e.bl_tree[t*2]=0;e.dyn_ltree[hd*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Kx=e=>{e.bi_valid>8?Zs(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Jx=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},bd=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Jx(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Jx(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},$x=(e,t,n)=>{let r,i,o=0,a,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+o++]&255,r+=(e.pending_buf[e.sym_buf+o++]&255)<<8,i=e.pending_buf[e.sym_buf+o++],r===0?On(e,i,t):(a=Vs[i],On(e,a+js+1,t),s=dd[a],s!==0&&(i-=gd[a],Tt(e,i,s)),r--,a=Yx(r),On(e,a,n),s=mf[a],s!==0&&(r-=bf[a],Tt(e,r,s)));while(o<e.sym_next);On(e,hd,t)},yd=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,c=-1,u;for(e.heap_len=0,e.heap_max=Px,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=c=a,e.depth[a]=0):n[a*2+1]=0;for(;e.heap_len<2;)u=e.heap[++e.heap_len]=c<2?++c:0,n[u*2]=1,e.depth[u]=0,e.opt_len--,i&&(e.static_len-=r[u*2+1]);for(t.max_code=c,a=e.heap_len>>1;a>=1;a--)bd(e,n,a);u=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],bd(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[u*2]=n[a*2]+n[s*2],e.depth[u]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=u,e.heap[1]=u++,bd(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],HF(e,t),Wx(n,c,e.bl_count)},e2=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,c=7,u=4;for(a===0&&(c=138,u=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<c&&o===a)&&(s<u?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[Ux*2]++):s<=10?e.bl_tree[jx*2]++:e.bl_tree[Gx*2]++,s=0,i=o,a===0?(c=138,u=3):o===a?(c=6,u=3):(c=7,u=4))},t2=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,c=7,u=4;for(a===0&&(c=138,u=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<c&&o===a)){if(s<u)do On(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(On(e,o,e.bl_tree),s--),On(e,Ux,e.bl_tree),Tt(e,s-3,2)):s<=10?(On(e,jx,e.bl_tree),Tt(e,s-3,3)):(On(e,Gx,e.bl_tree),Tt(e,s-11,7));s=0,i=o,a===0?(c=138,u=3):o===a?(c=6,u=3):(c=7,u=4)}},VF=e=>{let t;for(e2(e,e.dyn_ltree,e.l_desc.max_code),e2(e,e.dyn_dtree,e.d_desc.max_code),yd(e,e.bl_desc),t=fd-1;t>=3&&e.bl_tree[Hx[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},ZF=(e,t,n,r)=>{let i;for(Tt(e,t-257,5),Tt(e,n-1,5),Tt(e,r-4,4),i=0;i<r;i++)Tt(e,e.bl_tree[Hx[i]*2+1],3);t2(e,e.dyn_ltree,t-1),t2(e,e.dyn_dtree,n-1)},YF=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return zx;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Rx;for(n=32;n<js;n++)if(e.dyn_ltree[n*2]!==0)return Rx;return zx};let n2=!1;const qF=e=>{n2||(QF(),n2=!0),e.l_desc=new md(e.dyn_ltree,Qx),e.d_desc=new md(e.dyn_dtree,Vx),e.bl_desc=new md(e.bl_tree,Zx),e.bi_buf=0,e.bi_valid=0,Xx(e)},r2=(e,t,n,r)=>{Tt(e,(LF<<1)+(r?1:0),3),Kx(e),Zs(e,n),Zs(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},WF=e=>{Tt(e,Ox<<1,3),On(e,hd,ar),GF(e)},XF=(e,t,n,r)=>{let i,o,a=0;e.level>0?(e.strm.data_type===kF&&(e.strm.data_type=YF(e)),yd(e,e.l_desc),yd(e,e.d_desc),a=VF(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?r2(e,t,n,r):e.strategy===FF||o===i?(Tt(e,(Ox<<1)+(r?1:0),3),$x(e,ar,Hs)):(Tt(e,(zF<<1)+(r?1:0),3),ZF(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),$x(e,e.dyn_ltree,e.dyn_dtree)),Xx(e),r&&Kx(e)},KF=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Vs[n]+js+1)*2]++,e.dyn_dtree[Yx(t)*2]++),e.sym_next===e.sym_end);var JF=qF,$F=r2,ek=XF,tk=KF,nk=WF,rk={_tr_init:JF,_tr_stored_block:$F,_tr_flush_block:ek,_tr_tally:tk,_tr_align:nk},Ys=(e,t,n,r)=>{let i=e&65535|0,o=e>>>16&65535|0,a=0;for(;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+t[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0};const ik=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},ok=new Uint32Array(ik());var tt=(e,t,n,r)=>{const i=ok,o=r+n;e^=-1;for(let a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1},Xo={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"},qs={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:ak,_tr_stored_block:wd,_tr_flush_block:sk,_tr_tally:Qr,_tr_align:uk}=rk,{Z_NO_FLUSH:Vr,Z_PARTIAL_FLUSH:ck,Z_FULL_FLUSH:fk,Z_FINISH:Xt,Z_BLOCK:i2,Z_OK:st,Z_STREAM_END:o2,Z_STREAM_ERROR:Pn,Z_DATA_ERROR:lk,Z_BUF_ERROR:xd,Z_DEFAULT_COMPRESSION:hk,Z_FILTERED:dk,Z_HUFFMAN_ONLY:yf,Z_RLE:gk,Z_FIXED:pk,Z_DEFAULT_STRATEGY:mk,Z_UNKNOWN:bk,Z_DEFLATED:wf}=qs,yk=9,wk=15,xk=8,Ak=29,Ad=256+1+Ak,vk=30,Ek=19,Ck=2*Ad+1,Sk=15,ae=3,Zr=258,Un=Zr+ae+1,Dk=32,Ko=42,vd=57,Ed=69,Cd=73,Sd=91,Dd=103,ji=113,Ws=666,yt=1,Jo=2,Gi=3,$o=4,Ik=3,Hi=(e,t)=>(e.msg=Xo[t],t),a2=e=>e*2-(e>4?9:0),Yr=e=>{let t=e.length;for(;--t>=0;)e[t]=0},_k=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let qr=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const zt=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Rt=(e,t)=>{sk(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,zt(e.strm)},de=(e,t)=>{e.pending_buf[e.pending++]=t},Xs=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Id=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=Ys(e.adler,t,i,n):e.state.wrap===2&&(e.adler=tt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},s2=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-Un?e.strstart-(e.w_size-Un):0,u=e.window,f=e.w_mask,l=e.prev,h=e.strstart+Zr;let d=u[r+a-1],p=u[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(u[i+a]!==p||u[i+a-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(o=Zr-(h-r),r=h-Zr,o>a){if(e.match_start=t,a=o,o>=s)break;d=u[r+a-1],p=u[r+a]}}while((t=l[t&f])>c&&--n!==0);return a<=e.lookahead?a:e.lookahead},ea=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Un)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),_k(e),r+=t),e.strm.avail_in===0)break;if(n=Id(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=ae)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=qr(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=qr(e,e.ins_h,e.window[i+ae-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<ae)););}while(e.lookahead<Un&&e.strm.avail_in!==0)},u2=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,o,a=0,s=e.strm.avail_in;do{if(r=65535,o=e.bi_valid+42>>3,e.strm.avail_out<o||(o=e.strm.avail_out-o,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>o&&(r=o),r<n&&(r===0&&t!==Xt||t===Vr||r!==i+e.strm.avail_in)))break;a=t===Xt&&r===i+e.strm.avail_in?1:0,wd(e,0,0,a),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,zt(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(Id(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(a===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),a?$o:t!==Vr&&t!==Xt&&e.strm.avail_in===0&&e.strstart===e.block_start?Jo:(o=e.window_size-e.strstart,e.strm.avail_in>o&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,o+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),o>e.strm.avail_in&&(o=e.strm.avail_in),o&&(Id(e.strm,e.window,e.strstart,o),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.high_water<e.strstart&&(e.high_water=e.strstart),o=e.bi_valid+42>>3,o=e.pending_buf_size-o>65535?65535:e.pending_buf_size-o,n=o>e.w_size?e.w_size:o,i=e.strstart-e.block_start,(i>=n||(i||t===Xt)&&t!==Vr&&e.strm.avail_in===0&&i<=o)&&(r=i>o?o:i,a=t===Xt&&e.strm.avail_in===0&&r===i?1:0,wd(e,e.block_start,r,a),e.block_start+=r,zt(e.strm)),a?Gi:yt)},_d=(e,t)=>{let n,r;for(;;){if(e.lookahead<Un){if(ea(e),e.lookahead<Un&&t===Vr)return yt;if(e.lookahead===0)break}if(n=0,e.lookahead>=ae&&(e.ins_h=qr(e,e.ins_h,e.window[e.strstart+ae-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Un&&(e.match_length=s2(e,n)),e.match_length>=ae)if(r=Qr(e,e.strstart-e.match_start,e.match_length-ae),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ae){e.match_length--;do e.strstart++,e.ins_h=qr(e,e.ins_h,e.window[e.strstart+ae-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=qr(e,e.ins_h,e.window[e.strstart+1]);else r=Qr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Rt(e,!1),e.strm.avail_out===0))return yt}return e.insert=e.strstart<ae-1?e.strstart:ae-1,t===Xt?(Rt(e,!0),e.strm.avail_out===0?Gi:$o):e.sym_next&&(Rt(e,!1),e.strm.avail_out===0)?yt:Jo},ta=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Un){if(ea(e),e.lookahead<Un&&t===Vr)return yt;if(e.lookahead===0)break}if(n=0,e.lookahead>=ae&&(e.ins_h=qr(e,e.ins_h,e.window[e.strstart+ae-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ae-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Un&&(e.match_length=s2(e,n),e.match_length<=5&&(e.strategy===dk||e.match_length===ae&&e.strstart-e.match_start>4096)&&(e.match_length=ae-1)),e.prev_length>=ae&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-ae,r=Qr(e,e.strstart-1-e.prev_match,e.prev_length-ae),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=qr(e,e.ins_h,e.window[e.strstart+ae-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ae-1,e.strstart++,r&&(Rt(e,!1),e.strm.avail_out===0))return yt}else if(e.match_available){if(r=Qr(e,0,e.window[e.strstart-1]),r&&Rt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return yt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Qr(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ae-1?e.strstart:ae-1,t===Xt?(Rt(e,!0),e.strm.avail_out===0?Gi:$o):e.sym_next&&(Rt(e,!1),e.strm.avail_out===0)?yt:Jo},Mk=(e,t)=>{let n,r,i,o;const a=e.window;for(;;){if(e.lookahead<=Zr){if(ea(e),e.lookahead<=Zr&&t===Vr)return yt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ae&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+Zr;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=Zr-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ae?(n=Qr(e,1,e.match_length-ae),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Qr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Rt(e,!1),e.strm.avail_out===0))return yt}return e.insert=0,t===Xt?(Rt(e,!0),e.strm.avail_out===0?Gi:$o):e.sym_next&&(Rt(e,!1),e.strm.avail_out===0)?yt:Jo},Tk=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(ea(e),e.lookahead===0)){if(t===Vr)return yt;break}if(e.match_length=0,n=Qr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Rt(e,!1),e.strm.avail_out===0))return yt}return e.insert=0,t===Xt?(Rt(e,!0),e.strm.avail_out===0?Gi:$o):e.sym_next&&(Rt(e,!1),e.strm.avail_out===0)?yt:Jo};function jn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const Ks=[new jn(0,0,0,0,u2),new jn(4,4,8,4,_d),new jn(4,5,16,8,_d),new jn(4,6,32,32,_d),new jn(4,4,16,16,ta),new jn(8,16,32,32,ta),new jn(8,16,128,128,ta),new jn(8,32,128,256,ta),new jn(32,128,258,1024,ta),new jn(32,258,258,4096,ta)],Nk=e=>{e.window_size=2*e.w_size,Yr(e.head),e.max_lazy_match=Ks[e.level].max_lazy,e.good_match=Ks[e.level].good_length,e.nice_match=Ks[e.level].nice_length,e.max_chain_length=Ks[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ae-1,e.match_available=0,e.ins_h=0};function Bk(){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=wf,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(Ck*2),this.dyn_dtree=new Uint16Array((2*vk+1)*2),this.bl_tree=new Uint16Array((2*Ek+1)*2),Yr(this.dyn_ltree),Yr(this.dyn_dtree),Yr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Sk+1),this.heap=new Uint16Array(2*Ad+1),Yr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Ad+1),Yr(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 Js=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==Ko&&t.status!==vd&&t.status!==Ed&&t.status!==Cd&&t.status!==Sd&&t.status!==Dd&&t.status!==ji&&t.status!==Ws?1:0},c2=e=>{if(Js(e))return Hi(e,Pn);e.total_in=e.total_out=0,e.data_type=bk;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?vd:t.wrap?Ko:ji,e.adler=t.wrap===2?0:1,t.last_flush=-2,ak(t),st},f2=e=>{const t=c2(e);return t===st&&Nk(e.state),t},Fk=(e,t)=>Js(e)||e.state.wrap!==2?Pn:(e.state.gzhead=t,st),l2=(e,t,n,r,i,o)=>{if(!e)return Pn;let a=1;if(t===hk&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>yk||n!==wf||r<8||r>15||t<0||t>9||o<0||o>pk||r===8&&a!==1)return Hi(e,Pn);r===8&&(r=9);const s=new Bk;return e.state=s,s.strm=e,s.status=Ko,s.wrap=a,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+ae-1)/ae),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=t,s.strategy=o,s.method=n,f2(e)},kk=(e,t)=>l2(e,t,wf,wk,xk,mk),Lk=(e,t)=>{if(Js(e)||t>i2||t<0)return e?Hi(e,Pn):Pn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Ws&&t!==Xt)return Hi(e,e.avail_out===0?xd:Pn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(zt(e),e.avail_out===0)return n.last_flush=-1,st}else if(e.avail_in===0&&a2(t)<=a2(r)&&t!==Xt)return Hi(e,xd);if(n.status===Ws&&e.avail_in!==0)return Hi(e,xd);if(n.status===Ko&&n.wrap===0&&(n.status=ji),n.status===Ko){let i=wf+(n.w_bits-8<<4)<<8,o=-1;if(n.strategy>=yf||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,i|=o<<6,n.strstart!==0&&(i|=Dk),i+=31-i%31,Xs(n,i),n.strstart!==0&&(Xs(n,e.adler>>>16),Xs(n,e.adler&65535)),e.adler=1,n.status=ji,zt(e),n.pending!==0)return n.last_flush=-1,st}if(n.status===vd){if(e.adler=0,de(n,31),de(n,139),de(n,8),n.gzhead)de(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)),de(n,n.gzhead.time&255),de(n,n.gzhead.time>>8&255),de(n,n.gzhead.time>>16&255),de(n,n.gzhead.time>>24&255),de(n,n.level===9?2:n.strategy>=yf||n.level<2?4:0),de(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(de(n,n.gzhead.extra.length&255),de(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=tt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Ed;else if(de(n,0),de(n,0),de(n,0),de(n,0),de(n,0),de(n,n.level===9?2:n.strategy>=yf||n.level<2?4:0),de(n,Ik),n.status=ji,zt(e),n.pending!==0)return n.last_flush=-1,st}if(n.status===Ed){if(n.gzhead.extra){let i=n.pending,o=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+o>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&&(e.adler=tt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,zt(e),n.pending!==0)return n.last_flush=-1,st;i=0,o-=s}let a=new Uint8Array(n.gzhead.extra);n.pending_buf.set(a.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending+=o,n.gzhead.hcrc&&n.pending>i&&(e.adler=tt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Cd}if(n.status===Cd){if(n.gzhead.name){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=tt(e.adler,n.pending_buf,n.pending-i,i)),zt(e),n.pending!==0)return n.last_flush=-1,st;i=0}n.gzindex<n.gzhead.name.length?o=n.gzhead.name.charCodeAt(n.gzindex++)&255:o=0,de(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=tt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Sd}if(n.status===Sd){if(n.gzhead.comment){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=tt(e.adler,n.pending_buf,n.pending-i,i)),zt(e),n.pending!==0)return n.last_flush=-1,st;i=0}n.gzindex<n.gzhead.comment.length?o=n.gzhead.comment.charCodeAt(n.gzindex++)&255:o=0,de(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=tt(e.adler,n.pending_buf,n.pending-i,i))}n.status=Dd}if(n.status===Dd){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(zt(e),n.pending!==0))return n.last_flush=-1,st;de(n,e.adler&255),de(n,e.adler>>8&255),e.adler=0}if(n.status=ji,zt(e),n.pending!==0)return n.last_flush=-1,st}if(e.avail_in!==0||n.lookahead!==0||t!==Vr&&n.status!==Ws){let i=n.level===0?u2(n,t):n.strategy===yf?Tk(n,t):n.strategy===gk?Mk(n,t):Ks[n.level].func(n,t);if((i===Gi||i===$o)&&(n.status=Ws),i===yt||i===Gi)return e.avail_out===0&&(n.last_flush=-1),st;if(i===Jo&&(t===ck?uk(n):t!==i2&&(wd(n,0,0,!1),t===fk&&(Yr(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),zt(e),e.avail_out===0))return n.last_flush=-1,st}return t!==Xt?st:n.wrap<=0?o2:(n.wrap===2?(de(n,e.adler&255),de(n,e.adler>>8&255),de(n,e.adler>>16&255),de(n,e.adler>>24&255),de(n,e.total_in&255),de(n,e.total_in>>8&255),de(n,e.total_in>>16&255),de(n,e.total_in>>24&255)):(Xs(n,e.adler>>>16),Xs(n,e.adler&65535)),zt(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?st:o2)},zk=e=>{if(Js(e))return Pn;const t=e.state.status;return e.state=null,t===ji?Hi(e,lk):st},Rk=(e,t)=>{let n=t.length;if(Js(e))return Pn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==Ko||r.lookahead)return Pn;if(i===1&&(e.adler=Ys(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(Yr(r.head),r.strstart=0,r.block_start=0,r.insert=0);let c=new Uint8Array(r.w_size);c.set(t.subarray(n-r.w_size,n),0),t=c,n=r.w_size}const o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,ea(r);r.lookahead>=ae;){let c=r.strstart,u=r.lookahead-(ae-1);do r.ins_h=qr(r,r.ins_h,r.window[c+ae-1]),r.prev[c&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=c,c++;while(--u);r.strstart=c,r.lookahead=ae-1,ea(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=ae-1,r.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,r.wrap=i,st};var Ok=kk,Pk=l2,Uk=f2,jk=c2,Gk=Fk,Hk=Lk,Qk=zk,Vk=Rk,Zk="pako deflate (from Nodeca project)",$s={deflateInit:Ok,deflateInit2:Pk,deflateReset:Uk,deflateResetKeep:jk,deflateSetHeader:Gk,deflate:Hk,deflateEnd:Qk,deflateSetDictionary:Vk,deflateInfo:Zk};const Yk=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var qk=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)Yk(n,r)&&(e[r]=n[r])}}return e},Wk=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,o=e.length;r<o;r++){let a=e[r];n.set(a,i),i+=a.length}return n},xf={assign:qk,flattenChunks:Wk};let h2=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{h2=!1}const eu=new Uint8Array(256);for(let e=0;e<256;e++)eu[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;eu[254]=eu[254]=1;var Xk=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,o,a=e.length,s=0;for(i=0;i<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.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(t=new Uint8Array(s),o=0,i=0;o<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};const Kk=(e,t)=>{if(t<65534&&e.subarray&&h2)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var Jk=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const o=new Array(n*2);for(i=0,r=0;r<n;){let a=e[r++];if(a<128){o[i++]=a;continue}let s=eu[a];if(s>4){o[i++]=65533,r+=s-1;continue}for(a&=s===2?31:s===3?15:7;s>1&&r<n;)a=a<<6|e[r++]&63,s--;if(s>1){o[i++]=65533;continue}a<65536?o[i++]=a:(a-=65536,o[i++]=55296|a>>10&1023,o[i++]=56320|a&1023)}return Kk(o,i)},$k=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+eu[e[n]]>t?n:t},tu={string2buf:Xk,buf2string:Jk,utf8border:$k};function e5(){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 d2=e5;const g2=Object.prototype.toString,{Z_NO_FLUSH:t5,Z_SYNC_FLUSH:n5,Z_FULL_FLUSH:r5,Z_FINISH:i5,Z_OK:Af,Z_STREAM_END:o5,Z_DEFAULT_COMPRESSION:a5,Z_DEFAULT_STRATEGY:s5,Z_DEFLATED:u5}=qs;function Md(e){this.options=xf.assign({level:a5,method:u5,chunkSize:16384,windowBits:15,memLevel:8,strategy:s5},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new d2,this.strm.avail_out=0;let n=$s.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Af)throw new Error(Xo[n]);if(t.header&&$s.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=tu.string2buf(t.dictionary):g2.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=$s.deflateSetDictionary(this.strm,r),n!==Af)throw new Error(Xo[n]);this._dict_set=!0}}Md.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,o;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?i5:t5,typeof e=="string"?n.input=tu.string2buf(e):g2.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,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),(o===n5||o===r5)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=$s.deflate(n,o),i===o5)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=$s.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Af;if(n.avail_out===0){this.onData(n.output);continue}if(o>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},Md.prototype.onData=function(e){this.chunks.push(e)},Md.prototype.onEnd=function(e){e===Af&&(this.result=xf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const vf=16209,c5=16191;var f5=function(t,n){let r,i,o,a,s,c,u,f,l,h,d,p,b,x,A,D,_,C,T,B,S,z,E,N;const F=t.state;r=t.next_in,E=t.input,i=r+(t.avail_in-5),o=t.next_out,N=t.output,a=o-(n-t.avail_out),s=o+(t.avail_out-257),c=F.dmax,u=F.wsize,f=F.whave,l=F.wnext,h=F.window,d=F.hold,p=F.bits,b=F.lencode,x=F.distcode,A=(1<<F.lenbits)-1,D=(1<<F.distbits)-1;e:do{p<15&&(d+=E[r++]<<p,p+=8,d+=E[r++]<<p,p+=8),_=b[d&A];t:for(;;){if(C=_>>>24,d>>>=C,p-=C,C=_>>>16&255,C===0)N[o++]=_&65535;else if(C&16){T=_&65535,C&=15,C&&(p<C&&(d+=E[r++]<<p,p+=8),T+=d&(1<<C)-1,d>>>=C,p-=C),p<15&&(d+=E[r++]<<p,p+=8,d+=E[r++]<<p,p+=8),_=x[d&D];n:for(;;){if(C=_>>>24,d>>>=C,p-=C,C=_>>>16&255,C&16){if(B=_&65535,C&=15,p<C&&(d+=E[r++]<<p,p+=8,p<C&&(d+=E[r++]<<p,p+=8)),B+=d&(1<<C)-1,B>c){t.msg="invalid distance too far back",F.mode=vf;break e}if(d>>>=C,p-=C,C=o-a,B>C){if(C=B-C,C>f&&F.sane){t.msg="invalid distance too far back",F.mode=vf;break e}if(S=0,z=h,l===0){if(S+=u-C,C<T){T-=C;do N[o++]=h[S++];while(--C);S=o-B,z=N}}else if(l<C){if(S+=u+l-C,C-=l,C<T){T-=C;do N[o++]=h[S++];while(--C);if(S=0,l<T){C=l,T-=C;do N[o++]=h[S++];while(--C);S=o-B,z=N}}}else if(S+=l-C,C<T){T-=C;do N[o++]=h[S++];while(--C);S=o-B,z=N}for(;T>2;)N[o++]=z[S++],N[o++]=z[S++],N[o++]=z[S++],T-=3;T&&(N[o++]=z[S++],T>1&&(N[o++]=z[S++]))}else{S=o-B;do N[o++]=N[S++],N[o++]=N[S++],N[o++]=N[S++],T-=3;while(T>2);T&&(N[o++]=N[S++],T>1&&(N[o++]=N[S++]))}}else if(C&64){t.msg="invalid distance code",F.mode=vf;break e}else{_=x[(_&65535)+(d&(1<<C)-1)];continue n}break}}else if(C&64)if(C&32){F.mode=c5;break e}else{t.msg="invalid literal/length code",F.mode=vf;break e}else{_=b[(_&65535)+(d&(1<<C)-1)];continue t}break}}while(r<i&&o<s);T=p>>3,r-=T,p-=T<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=o,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=o<s?257+(s-o):257-(o-s),F.hold=d,F.bits=p};const na=15,p2=852,m2=592,b2=0,Td=1,y2=2,l5=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]),h5=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]),d5=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]),g5=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 nu=(e,t,n,r,i,o,a,s)=>{const c=s.bits;let u=0,f=0,l=0,h=0,d=0,p=0,b=0,x=0,A=0,D=0,_,C,T,B,S,z=null,E;const N=new Uint16Array(na+1),F=new Uint16Array(na+1);let Z=null,W,Y,ye;for(u=0;u<=na;u++)N[u]=0;for(f=0;f<r;f++)N[t[n+f]]++;for(d=c,h=na;h>=1&&N[h]===0;h--);if(d>h&&(d=h),h===0)return i[o++]=1<<24|64<<16|0,i[o++]=1<<24|64<<16|0,s.bits=1,0;for(l=1;l<h&&N[l]===0;l++);for(d<l&&(d=l),x=1,u=1;u<=na;u++)if(x<<=1,x-=N[u],x<0)return-1;if(x>0&&(e===b2||h!==1))return-1;for(F[1]=0,u=1;u<na;u++)F[u+1]=F[u]+N[u];for(f=0;f<r;f++)t[n+f]!==0&&(a[F[t[n+f]]++]=f);if(e===b2?(z=Z=a,E=20):e===Td?(z=l5,Z=h5,E=257):(z=d5,Z=g5,E=0),D=0,f=0,u=l,S=o,p=d,b=0,T=-1,A=1<<d,B=A-1,e===Td&&A>p2||e===y2&&A>m2)return 1;for(;;){W=u-b,a[f]+1<E?(Y=0,ye=a[f]):a[f]>=E?(Y=Z[a[f]-E],ye=z[a[f]-E]):(Y=32+64,ye=0),_=1<<u-b,C=1<<p,l=C;do C-=_,i[S+(D>>b)+C]=W<<24|Y<<16|ye|0;while(C!==0);for(_=1<<u-1;D&_;)_>>=1;if(_!==0?(D&=_-1,D+=_):D=0,f++,--N[u]===0){if(u===h)break;u=t[n+a[f]]}if(u>d&&(D&B)!==T){for(b===0&&(b=d),S+=l,p=u-b,x=1<<p;p+b<h&&(x-=N[p+b],!(x<=0));)p++,x<<=1;if(A+=1<<p,e===Td&&A>p2||e===y2&&A>m2)return 1;T=D&B,i[T]=d<<24|p<<16|S-o|0}}return D!==0&&(i[S+D]=u-b<<24|64<<16|0),s.bits=d,0};const p5=0,w2=1,x2=2,{Z_FINISH:A2,Z_BLOCK:m5,Z_TREES:Ef,Z_OK:Qi,Z_STREAM_END:b5,Z_NEED_DICT:y5,Z_STREAM_ERROR:Kt,Z_DATA_ERROR:v2,Z_MEM_ERROR:E2,Z_BUF_ERROR:w5,Z_DEFLATED:C2}=qs,Cf=16180,S2=16181,D2=16182,I2=16183,_2=16184,M2=16185,T2=16186,N2=16187,B2=16188,F2=16189,Sf=16190,sr=16191,Nd=16192,k2=16193,Bd=16194,L2=16195,z2=16196,R2=16197,O2=16198,Df=16199,If=16200,P2=16201,U2=16202,j2=16203,G2=16204,H2=16205,Fd=16206,Q2=16207,V2=16208,Fe=16209,Z2=16210,Y2=16211,x5=852,A5=592,v5=15,q2=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function E5(){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 Vi=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Cf||t.mode>Y2?1:0},W2=e=>{if(Vi(e))return Kt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Cf,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(x5),t.distcode=t.distdyn=new Int32Array(A5),t.sane=1,t.back=-1,Qi},X2=e=>{if(Vi(e))return Kt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,W2(e)},K2=(e,t)=>{let n;if(Vi(e))return Kt;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Kt:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,X2(e))},J2=(e,t)=>{if(!e)return Kt;const n=new E5;e.state=n,n.strm=e,n.window=null,n.mode=Cf;const r=K2(e,t);return r!==Qi&&(e.state=null),r},C5=e=>J2(e,v5);let $2=!0,kd,Ld;const S5=e=>{if($2){kd=new Int32Array(512),Ld=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(nu(w2,e.lens,0,288,kd,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;nu(x2,e.lens,0,32,Ld,0,e.work,{bits:5}),$2=!1}e.lencode=kd,e.lenbits=9,e.distcode=Ld,e.distbits=5},eA=(e,t,n,r)=>{let i;const o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),r>=o.wsize?(o.window.set(t.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),o.window.set(t.subarray(n-r,n-r+i),o.wnext),r-=i,r?(o.window.set(t.subarray(n-r,n),0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0},D5=(e,t)=>{let n,r,i,o,a,s,c,u,f,l,h,d,p,b,x=0,A,D,_,C,T,B,S,z;const E=new Uint8Array(4);let N,F;const Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Vi(e)||!e.output||!e.input&&e.avail_in!==0)return Kt;n=e.state,n.mode===sr&&(n.mode=Nd),a=e.next_out,i=e.output,c=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,u=n.hold,f=n.bits,l=s,h=c,z=Qi;e:for(;;)switch(n.mode){case Cf:if(n.wrap===0){n.mode=Nd;break}for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,E[0]=u&255,E[1]=u>>>8&255,n.check=tt(n.check,E,2,0),u=0,f=0,n.mode=S2;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){e.msg="incorrect header check",n.mode=Fe;break}if((u&15)!==C2){e.msg="unknown compression method",n.mode=Fe;break}if(u>>>=4,f-=4,S=(u&15)+8,n.wbits===0&&(n.wbits=S),S>15||S>n.wbits){e.msg="invalid window size",n.mode=Fe;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=u&512?F2:sr,u=0,f=0;break;case S2:for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(n.flags=u,(n.flags&255)!==C2){e.msg="unknown compression method",n.mode=Fe;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=Fe;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(E[0]=u&255,E[1]=u>>>8&255,n.check=tt(n.check,E,2,0)),u=0,f=0,n.mode=D2;case D2:for(;f<32;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(E[0]=u&255,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,n.check=tt(n.check,E,4,0)),u=0,f=0,n.mode=I2;case I2:for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(E[0]=u&255,E[1]=u>>>8&255,n.check=tt(n.check,E,2,0)),u=0,f=0,n.mode=_2;case _2:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(E[0]=u&255,E[1]=u>>>8&255,n.check=tt(n.check,E,2,0)),u=0,f=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&&(S=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(o,o+d),S)),n.flags&512&&n.wrap&4&&(n.check=tt(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=T2;case T2:if(n.flags&2048){if(s===0)break e;d=0;do S=r[o+d++],n.head&&S&&n.length<65536&&(n.head.name+=String.fromCharCode(S));while(S&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=tt(n.check,r,d,o)),s-=d,o+=d,S)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=N2;case N2:if(n.flags&4096){if(s===0)break e;d=0;do S=r[o+d++],n.head&&S&&n.length<65536&&(n.head.comment+=String.fromCharCode(S));while(S&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=tt(n.check,r,d,o)),s-=d,o+=d,S)break e}else n.head&&(n.head.comment=null);n.mode=B2;case B2:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(n.wrap&4&&u!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Fe;break}u=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=sr;break;case F2:for(;f<32;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}e.adler=n.check=q2(u),u=0,f=0,n.mode=Sf;case Sf:if(n.havedict===0)return e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,n.hold=u,n.bits=f,y5;e.adler=n.check=1,n.mode=sr;case sr:if(t===m5||t===Ef)break e;case Nd:if(n.last){u>>>=f&7,f-=f&7,n.mode=Fd;break}for(;f<3;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}switch(n.last=u&1,u>>>=1,f-=1,u&3){case 0:n.mode=k2;break;case 1:if(S5(n),n.mode=Df,t===Ef){u>>>=2,f-=2;break e}break;case 2:n.mode=z2;break;case 3:e.msg="invalid block type",n.mode=Fe}u>>>=2,f-=2;break;case k2:for(u>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if((u&65535)!==(u>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Fe;break}if(n.length=u&65535,u=0,f=0,n.mode=Bd,t===Ef)break e;case Bd:n.mode=L2;case L2:if(d=n.length,d){if(d>s&&(d=s),d>c&&(d=c),d===0)break e;i.set(r.subarray(o,o+d),a),s-=d,o+=d,c-=d,a+=d,n.length-=d;break}n.mode=sr;break;case z2:for(;f<14;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(n.nlen=(u&31)+257,u>>>=5,f-=5,n.ndist=(u&31)+1,u>>>=5,f-=5,n.ncode=(u&15)+4,u>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Fe;break}n.have=0,n.mode=R2;case R2:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.lens[Z[n.have++]]=u&7,u>>>=3,f-=3}for(;n.have<19;)n.lens[Z[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,N={bits:n.lenbits},z=nu(p5,n.lens,0,19,n.lencode,0,n.work,N),n.lenbits=N.bits,z){e.msg="invalid code lengths set",n.mode=Fe;break}n.have=0,n.mode=O2;case O2:for(;n.have<n.nlen+n.ndist;){for(;x=n.lencode[u&(1<<n.lenbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(_<16)u>>>=A,f-=A,n.lens[n.have++]=_;else{if(_===16){for(F=A+2;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(u>>>=A,f-=A,n.have===0){e.msg="invalid bit length repeat",n.mode=Fe;break}S=n.lens[n.have-1],d=3+(u&3),u>>>=2,f-=2}else if(_===17){for(F=A+3;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}u>>>=A,f-=A,S=0,d=3+(u&7),u>>>=3,f-=3}else{for(F=A+7;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}u>>>=A,f-=A,S=0,d=11+(u&127),u>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Fe;break}for(;d--;)n.lens[n.have++]=S}}if(n.mode===Fe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=Fe;break}if(n.lenbits=9,N={bits:n.lenbits},z=nu(w2,n.lens,0,n.nlen,n.lencode,0,n.work,N),n.lenbits=N.bits,z){e.msg="invalid literal/lengths set",n.mode=Fe;break}if(n.distbits=6,n.distcode=n.distdyn,N={bits:n.distbits},z=nu(x2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,N),n.distbits=N.bits,z){e.msg="invalid distances set",n.mode=Fe;break}if(n.mode=Df,t===Ef)break e;case Df:n.mode=If;case If:if(s>=6&&c>=258){e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,n.hold=u,n.bits=f,f5(e,h),a=e.next_out,i=e.output,c=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,u=n.hold,f=n.bits,n.mode===sr&&(n.back=-1);break}for(n.back=0;x=n.lencode[u&(1<<n.lenbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(D&&!(D&240)){for(C=A,T=D,B=_;x=n.lencode[B+((u&(1<<C+T)-1)>>C)],A=x>>>24,D=x>>>16&255,_=x&65535,!(C+A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}u>>>=C,f-=C,n.back+=C}if(u>>>=A,f-=A,n.back+=A,n.length=_,D===0){n.mode=H2;break}if(D&32){n.back=-1,n.mode=sr;break}if(D&64){e.msg="invalid literal/length code",n.mode=Fe;break}n.extra=D&15,n.mode=P2;case P2:if(n.extra){for(F=n.extra;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=U2;case U2:for(;x=n.distcode[u&(1<<n.distbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(!(D&240)){for(C=A,T=D,B=_;x=n.distcode[B+((u&(1<<C+T)-1)>>C)],A=x>>>24,D=x>>>16&255,_=x&65535,!(C+A<=f);){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}u>>>=C,f-=C,n.back+=C}if(u>>>=A,f-=A,n.back+=A,D&64){e.msg="invalid distance code",n.mode=Fe;break}n.offset=_,n.extra=D&15,n.mode=j2;case j2:if(n.extra){for(F=n.extra;f<F;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Fe;break}n.mode=G2;case G2:if(c===0)break e;if(d=h-c,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=Fe;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=a-n.offset,d=n.length;d>c&&(d=c),c-=d,n.length-=d;do i[a++]=b[p++];while(--d);n.length===0&&(n.mode=If);break;case H2:if(c===0)break e;i[a++]=n.length,c--,n.mode=If;break;case Fd:if(n.wrap){for(;f<32;){if(s===0)break e;s--,u|=r[o++]<<f,f+=8}if(h-=c,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?tt(n.check,i,h,a-h):Ys(n.check,i,h,a-h)),h=c,n.wrap&4&&(n.flags?u:q2(u))!==n.check){e.msg="incorrect data check",n.mode=Fe;break}u=0,f=0}n.mode=Q2;case Q2:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,u+=r[o++]<<f,f+=8}if(n.wrap&4&&u!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Fe;break}u=0,f=0}n.mode=V2;case V2:z=b5;break e;case Fe:z=v2;break e;case Z2:return E2;case Y2:default:return Kt}return e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,n.hold=u,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<Fe&&(n.mode<Fd||t!==A2))&&eA(e,e.output,e.next_out,h-e.avail_out),l-=e.avail_in,h-=e.avail_out,e.total_in+=l,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?tt(n.check,i,h,e.next_out-h):Ys(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===sr?128:0)+(n.mode===Df||n.mode===Bd?256:0),(l===0&&h===0||t===A2)&&z===Qi&&(z=w5),z},I5=e=>{if(Vi(e))return Kt;let t=e.state;return t.window&&(t.window=null),e.state=null,Qi},_5=(e,t)=>{if(Vi(e))return Kt;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,Qi):Kt},M5=(e,t)=>{const n=t.length;let r,i,o;return Vi(e)||(r=e.state,r.wrap!==0&&r.mode!==Sf)?Kt:r.mode===Sf&&(i=1,i=Ys(i,t,n,0),i!==r.check)?v2:(o=eA(e,t,n,n),o?(r.mode=Z2,E2):(r.havedict=1,Qi))};var T5=X2,N5=K2,B5=W2,F5=C5,k5=J2,L5=D5,z5=I5,R5=_5,O5=M5,P5="pako inflate (from Nodeca project)",ur={inflateReset:T5,inflateReset2:N5,inflateResetKeep:B5,inflateInit:F5,inflateInit2:k5,inflate:L5,inflateEnd:z5,inflateGetHeader:R5,inflateSetDictionary:O5,inflateInfo:P5};function U5(){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 j5=U5;const tA=Object.prototype.toString,{Z_NO_FLUSH:G5,Z_FINISH:H5,Z_OK:ru,Z_STREAM_END:zd,Z_NEED_DICT:Rd,Z_STREAM_ERROR:Q5,Z_DATA_ERROR:nA,Z_MEM_ERROR:V5}=qs;function iu(e){this.options=xf.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new d2,this.strm.avail_out=0;let n=ur.inflateInit2(this.strm,t.windowBits);if(n!==ru)throw new Error(Xo[n]);if(this.header=new j5,ur.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=tu.string2buf(t.dictionary):tA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=ur.inflateSetDictionary(this.strm,t.dictionary),n!==ru)))throw new Error(Xo[n])}iu.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?H5:G5,tA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,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),o=ur.inflate(n,a),o===Rd&&i&&(o=ur.inflateSetDictionary(n,i),o===ru?o=ur.inflate(n,a):o===nA&&(o=Rd));n.avail_in>0&&o===zd&&n.state.wrap>0&&e[n.next_in]!==0;)ur.inflateReset(n),o=ur.inflate(n,a);switch(o){case Q5:case nA:case Rd:case V5:return this.onEnd(o),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||o===zd))if(this.options.to==="string"){let c=tu.utf8border(n.output,n.next_out),u=n.next_out-c,f=tu.buf2string(n.output,c);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(c,c+u),0),this.onData(f)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(o===ru&&s===0)){if(o===zd)return o=ur.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},iu.prototype.onData=function(e){this.chunks.push(e)},iu.prototype.onEnd=function(e){e===ru&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=xf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Od(e,t){const n=new iu(t);if(n.push(e),n.err)throw n.msg||Xo[n.err];return n.result}function Z5(e,t){return t=t||{},t.raw=!0,Od(e,t)}var Y5=iu,q5=Od,W5=Z5,X5=Od,K5=qs,J5={Inflate:Y5,inflate:q5,inflateRaw:W5,ungzip:X5,constants:K5};const{Inflate:eR,inflate:tR,inflateRaw:$5,ungzip:nR}=J5;var eL=$5;function tL(e){return eL(e.subarray(2))}class nL extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}}function rL(e){e.sort((i,o)=>Number(i.offset)-Number(o.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function _f(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new nL("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const iL=1,oL=2,aL=3;function Pd(e,t,n,r){return e<r&&t>=n}function sL(e){const t=e?"big":"little",n=new ee().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new ee().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new ee().endianess(t).array("blocksToFetch",{length:"cnt",type:new ee().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new ee().array("recurOffsets",{length:"cnt",type:new ee().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new ee().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new ee().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[aL]:new ee().array("items",{length:"itemCount",type:new ee().floatle("score")}),[oL]:new ee().array("items",{length:"itemCount",type:new ee().endianess(t).int32("start").floatle("score")}),[iL]:new ee().array("items",{length:"itemCount",type:new ee().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class rA{constructor(t,n,r,i,o,a){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=o,this.blockType=a,this.featureCache=new ud({cache:new Lx({maxSize:1e3}),fill:async(c,u)=>{const f=Number(c.length),l=Number(c.offset),{buffer:h}=await this.bbi.read(kt.Buffer.alloc(f),0,f,l,{signal:u});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=sL(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,o){try{const{refsByName:a,bbi:s,cirTreeOffset:c,isBigEndian:u}=this,f=a[t];f===void 0&&i.complete();const l={chrId:f,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(kt.Buffer.alloc(48),0,48,Number(c),o));const{buffer:h}=await this.cirTreePromise,d=u?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],b=0;const x=(C,T,B)=>{try{const S=C.subarray(T),z=this.leafParser.parse(S);if(z.blocksToFetch&&(p=p.concat(z.blocksToFetch.filter(E=>A(E)).map(E=>({offset:E.blockOffset,length:E.blockSize})))),z.recurOffsets){const E=z.recurOffsets.filter(N=>A(N)).map(N=>Number(N.blockOffset));E.length>0&&_(E,B+1)}}catch(S){i.error(S)}},A=C=>{const{startChrom:T,startBase:B,endChrom:S,endBase:z}=C;return(T<f||T===f&&B<=r)&&(S>f||S===f&&z>=n)},D=async(C,T,B)=>{try{const S=T.max()-T.min(),z=T.min(),E=await this.featureCache.get(`${S}_${z}`,{length:S,offset:z},o==null?void 0:o.signal);for(const N of C)T.contains(N)&&(x(E,N-z,B),b-=1,b===0&&this.readFeatures(i,p,{...o,request:l}))}catch(S){i.error(S)}},_=(C,T)=>{try{b+=C.length;const B=4+Number(d)*32;let S=new Hr(C[0],C[0]+B);for(let z=1;z<C.length;z+=1){const E=new Hr(C[z],C[z]+B);S=S.union(E)}S.getRanges().map(z=>D(C,z,T))}catch(B){i.error(B)}};return _([Number(c)+48],1)}catch(a){i.error(a)}}parseSummaryBlock(t,n,r){const i=[];let o=n;const a=new DataView(t.buffer,t.byteOffset,t.length);for(;o<t.byteLength;){const s=a.getUint32(o,!0);o+=4;const c=a.getUint32(o,!0);o+=4;const u=a.getUint32(o,!0);o+=4;const f=a.getUint32(o,!0);o+=4;const l=a.getFloat32(o,!0);o+=4;const h=a.getFloat32(o,!0);o+=4;const d=a.getFloat32(o,!0);o+=4,o+=4,(!r||s===r.chrId&&Pd(c,u,r.start,r.end))&&i.push({start:c,end:u,maxScore:h,minScore:l,summary:!0,score:d/(f||1)})}return i}parseBigBedBlock(t,n,r,i){const o=[];let a=n;for(;a<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(a));o.push({...s,uniqueId:`bb-${r+a}`}),a+=s.offset}return i?o.filter(s=>Pd(s.start,s.end,i.start,i.end)):o}parseBigWigBlock(t,n,r){const i=t.subarray(n),o=new DataView(i.buffer,i.byteOffset,i.length);let a=0;a+=4;const s=o.getInt32(a,!0);a+=8;const c=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const f=o.getUint8(a);a+=2;const l=o.getUint16(a,!0);a+=2;const h=new Array(l);switch(f){case 1:{for(let d=0;d<l;d++){const p=o.getInt32(a,!0);a+=4;const b=o.getInt32(a,!0);a+=4;const x=o.getFloat32(a,!0);a+=4,h[d]={start:p,end:b,score:x}}break}case 2:{for(let d=0;d<l;d++){const p=o.getInt32(a,!0);a+=4;const b=o.getFloat32(a,!0);a+=4,h[d]={score:b,start:p,end:p+u}}break}case 3:{for(let d=0;d<l;d++){const p=o.getFloat32(a,!0);a+=4;const b=s+d*c;h[d]={score:p,start:b,end:b+u}}break}}return r?h.filter(d=>Pd(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:o}=this,{signal:a,request:s}=r,c=rL(n);_f(a),await Promise.all(c.map(async u=>{_f(a);const{length:f,offset:l}=u,h=await this.featureCache.get(`${f}_${l}`,u,a);for(const d of u.blocks){_f(a);let p=Number(d.offset)-Number(u.offset),b=h;switch(o&&(b=tL(h.subarray(p)),p=0),_f(a),i){case"summary":{t.next(this.parseSummaryBlock(b,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(b,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(b,p,Number(d.offset)*(1<<8),s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var Ud=function(e,t){return Ud=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])},Ud(e,t)};function jd(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Ud(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function uL(e,t,n,r){function i(o){return o instanceof n?o:new n(function(a){a(o)})}return new(n||(n=Promise))(function(o,a){function s(f){try{u(r.next(f))}catch(l){a(l)}}function c(f){try{u(r.throw(f))}catch(l){a(l)}}function u(f){f.done?o(f.value):i(f.value).then(s,c)}u((r=r.apply(e,t||[])).next())})}function iA(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,i,o,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(u){return function(f){return c([u,f])}}function c(u){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(o=u[0]&2?i.return:u[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,u[1])).done)return o;switch(i=0,o&&(u=[u[0]&2,o.value]),u[0]){case 0:case 1:o=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(o=n.trys,!(o=o.length>0&&o[o.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]<o[3])){n.label=u[1];break}if(u[0]===6&&n.label<o[1]){n.label=o[1],o=u;break}if(o&&n.label<o[2]){n.label=o[2],n.ops.push(u);break}o[2]&&n.ops.pop(),n.trys.pop();continue}u=t.call(e,n)}catch(f){u=[6,f],i=0}finally{r=o=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function ou(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Mf(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,o=[],a;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)o.push(i.value)}catch(s){a={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(a)throw a.error}}return o}function Tf(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,o;r<i;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}function ra(e){return this instanceof ra?(this.v=e,this):new ra(e)}function cL(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,o=[];return i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i;function a(h){r[h]&&(i[h]=function(d){return new Promise(function(p,b){o.push([h,d,p,b])>1||s(h,d)})})}function s(h,d){try{c(r[h](d))}catch(p){l(o[0][3],p)}}function c(h){h.value instanceof ra?Promise.resolve(h.value.v).then(u,f):l(o[0][2],h)}function u(h){s("next",h)}function f(h){s("throw",h)}function l(h,d){h(d),o.shift(),o.length&&s(o[0][0],o[0][1])}}function fL(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof ou=="function"?ou(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(a){return new Promise(function(s,c){a=e[o](a),i(s,c,a.done,a.value)})}}function i(o,a,s,c){Promise.resolve(c).then(function(u){o({value:u,done:s})},a)}}function Ze(e){return typeof e=="function"}function oA(e){var t=function(r){Error.call(r),r.stack=new Error().stack},n=e(t);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Gd=oA(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
174
+ */var Kt=null;try{Kt=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 _e(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}_e.prototype.__isLong__,Object.defineProperty(_e.prototype,"__isLong__",{value:!0});function gt(e){return(e&&e.__isLong__)===!0}function kx(e){var t=Math.clz32(e&-e);return e?31-t:t}_e.isLong=gt;var Lx={},zx={};function Ui(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=zx[e],r)?r:(n=pe(e,0,!0),i&&(zx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=Lx[e],r)?r:(n=pe(e,e<0?-1:0,!1),i&&(Lx[e]=n),n))}_e.fromInt=Ui;function Jt(e,t){if(isNaN(e))return t?ar:wn;if(t){if(e<0)return ar;if(e>=Ox)return Hx}else{if(e<=-Px)return Nt;if(e+1>=Px)return Gx}return e<0?Jt(-e,t).neg():pe(e%Ya|0,e/Ya|0,t)}_e.fromNumber=Jt;function pe(e,t,n){return new _e(e,t,n)}_e.fromBits=pe;var xf=Math.pow;function hd(e,t,n){if(e.length===0)throw Error("empty string");if(typeof t=="number"?(n=t,t=!1):t=!!t,e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return t?ar:wn;if(n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return hd(e.substring(1),t,n).neg();for(var i=Jt(xf(n,8)),a=wn,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),c=parseInt(e.substring(o,o+s),n);if(s<8){var u=Jt(xf(n,s));a=a.mul(u).add(Jt(c))}else a=a.mul(i),a=a.add(Jt(c))}return a.unsigned=t,a}_e.fromString=hd;function yn(e,t){return typeof e=="number"?Jt(e,t):typeof e=="string"?hd(e,t):pe(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}_e.fromValue=yn;var Rx=1<<16,fF=1<<24,Ya=Rx*Rx,Ox=Ya*Ya,Px=Ox/2,Ux=Ui(fF),wn=Ui(0);_e.ZERO=wn;var ar=Ui(0,!0);_e.UZERO=ar;var Wa=Ui(1);_e.ONE=Wa;var jx=Ui(1,!0);_e.UONE=jx;var dd=Ui(-1);_e.NEG_ONE=dd;var Gx=pe(-1,2147483647,!1);_e.MAX_VALUE=Gx;var Hx=pe(-1,-1,!0);_e.MAX_UNSIGNED_VALUE=Hx;var Nt=pe(0,-2147483648,!1);_e.MIN_VALUE=Nt;var U=_e.prototype;U.toInt=function(){return this.unsigned?this.low>>>0:this.low},U.toNumber=function(){return this.unsigned?(this.high>>>0)*Ya+(this.low>>>0):this.high*Ya+(this.low>>>0)},U.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Nt)){var n=Jt(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var a=Jt(xf(t,6),this.unsigned),o=this,s="";;){var c=o.div(a),u=o.sub(c.mul(a)).toInt()>>>0,f=u.toString(t);if(o=c,o.isZero())return f+s;for(;f.length<6;)f="0"+f;s=""+f+s}},U.getHighBits=function(){return this.high},U.getHighBitsUnsigned=function(){return this.high>>>0},U.getLowBits=function(){return this.low},U.getLowBitsUnsigned=function(){return this.low>>>0},U.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Nt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},U.isZero=function(){return this.high===0&&this.low===0},U.eqz=U.isZero,U.isNegative=function(){return!this.unsigned&&this.high<0},U.isPositive=function(){return this.unsigned||this.high>=0},U.isOdd=function(){return(this.low&1)===1},U.isEven=function(){return(this.low&1)===0},U.equals=function(t){return gt(t)||(t=yn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},U.eq=U.equals,U.notEquals=function(t){return!this.eq(t)},U.neq=U.notEquals,U.ne=U.notEquals,U.lessThan=function(t){return this.comp(t)<0},U.lt=U.lessThan,U.lessThanOrEqual=function(t){return this.comp(t)<=0},U.lte=U.lessThanOrEqual,U.le=U.lessThanOrEqual,U.greaterThan=function(t){return this.comp(t)>0},U.gt=U.greaterThan,U.greaterThanOrEqual=function(t){return this.comp(t)>=0},U.gte=U.greaterThanOrEqual,U.ge=U.greaterThanOrEqual,U.compare=function(t){if(gt(t)||(t=yn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},U.comp=U.compare,U.negate=function(){return!this.unsigned&&this.eq(Nt)?Nt:this.not().add(Wa)},U.neg=U.negate,U.add=function(t){gt(t)||(t=yn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=t.high>>>16,s=t.high&65535,c=t.low>>>16,u=t.low&65535,f=0,l=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+c,l+=h>>>16,h&=65535,l+=r+s,f+=l>>>16,l&=65535,f+=n+o,f&=65535,pe(h<<16|d,f<<16|l,this.unsigned)},U.subtract=function(t){return gt(t)||(t=yn(t)),this.add(t.neg())},U.sub=U.subtract,U.multiply=function(t){if(this.isZero())return this;if(gt(t)||(t=yn(t)),Kt){var n=Kt.mul(this.low,this.high,t.low,t.high);return pe(n,Kt.get_high(),this.unsigned)}if(t.isZero())return this.unsigned?ar:wn;if(this.eq(Nt))return t.isOdd()?Nt:wn;if(t.eq(Nt))return this.isOdd()?Nt:wn;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(Ux)&&t.lt(Ux))return Jt(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,c=t.high&65535,u=t.low>>>16,f=t.low&65535,l=0,h=0,d=0,p=0;return p+=o*f,d+=p>>>16,p&=65535,d+=a*f,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*f,l+=h>>>16,h&=65535,h+=a*u,l+=h>>>16,h&=65535,h+=o*c,l+=h>>>16,h&=65535,l+=r*f+i*u+a*c+o*s,l&=65535,pe(d<<16|p,l<<16|h,this.unsigned)},U.mul=U.multiply,U.divide=function(t){if(gt(t)||(t=yn(t)),t.isZero())throw Error("division by zero");if(Kt){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?Kt.div_u:Kt.div_s)(this.low,this.high,t.low,t.high);return pe(n,Kt.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ar:wn;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return ar;if(t.gt(this.shru(1)))return jx;a=ar}else{if(this.eq(Nt)){if(t.eq(Wa)||t.eq(dd))return Nt;if(t.eq(Nt))return Wa;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(wn)?t.isNegative()?Wa:dd:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(Nt))return this.unsigned?ar:wn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();a=wn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),c=s<=48?1:xf(2,s-48),u=Jt(r),f=u.mul(t);f.isNegative()||f.gt(i);)r-=c,u=Jt(r,this.unsigned),f=u.mul(t);u.isZero()&&(u=Wa),a=a.add(u),i=i.sub(f)}return a},U.div=U.divide,U.modulo=function(t){if(gt(t)||(t=yn(t)),Kt){var n=(this.unsigned?Kt.rem_u:Kt.rem_s)(this.low,this.high,t.low,t.high);return pe(n,Kt.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},U.mod=U.modulo,U.rem=U.modulo,U.not=function(){return pe(~this.low,~this.high,this.unsigned)},U.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},U.clz=U.countLeadingZeros,U.countTrailingZeros=function(){return this.low?kx(this.low):kx(this.high)+32},U.ctz=U.countTrailingZeros,U.and=function(t){return gt(t)||(t=yn(t)),pe(this.low&t.low,this.high&t.high,this.unsigned)},U.or=function(t){return gt(t)||(t=yn(t)),pe(this.low|t.low,this.high|t.high,this.unsigned)},U.xor=function(t){return gt(t)||(t=yn(t)),pe(this.low^t.low,this.high^t.high,this.unsigned)},U.shiftLeft=function(t){return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?pe(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):pe(0,this.low<<t-32,this.unsigned)},U.shl=U.shiftLeft,U.shiftRight=function(t){return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?pe(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):pe(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},U.shr=U.shiftRight,U.shiftRightUnsigned=function(t){return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?pe(this.low>>>t|this.high<<32-t,this.high>>>t,this.unsigned):t===32?pe(this.high,0,this.unsigned):pe(this.high>>>t-32,0,this.unsigned)},U.shru=U.shiftRightUnsigned,U.shr_u=U.shiftRightUnsigned,U.rotateLeft=function(t){var n;return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t===32?pe(this.high,this.low,this.unsigned):t<32?(n=32-t,pe(this.low<<t|this.high>>>n,this.high<<t|this.low>>>n,this.unsigned)):(t-=32,n=32-t,pe(this.high<<t|this.low>>>n,this.low<<t|this.high>>>n,this.unsigned))},U.rotl=U.rotateLeft,U.rotateRight=function(t){var n;return gt(t)&&(t=t.toInt()),(t&=63)===0?this:t===32?pe(this.high,this.low,this.unsigned):t<32?(n=32-t,pe(this.high<<n|this.low>>>t,this.low<<n|this.high>>>t,this.unsigned)):(t-=32,n=32-t,pe(this.low<<n|this.high>>>t,this.high<<n|this.low>>>t,this.unsigned))},U.rotr=U.rotateRight,U.toSigned=function(){return this.unsigned?pe(this.low,this.high,!1):this},U.toUnsigned=function(){return this.unsigned?this:pe(this.low,this.high,!0)},U.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},U.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},U.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},_e.fromBytes=function(t,n,r){return r?_e.fromBytesLE(t,n):_e.fromBytesBE(t,n)},_e.fromBytesLE=function(t,n){return new _e(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},_e.fromBytesBE=function(t,n){return new _e(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};function Qx(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function lF(e,t){const n=await e.readFile(t);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 hF{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new Or(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 Or(i);else if(r)this.fai=new Or(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=a}async _getIndexes(t){return this.indexes||(this.indexes=lF(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),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(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const a=(await this._getIndexes(i)).id[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(t,n,r,i){const a=(await this._getIndexes(i)).name[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>t.length)&&(a=t.length),n>=a)return"";const o=Qx(t,n),s=Qx(t,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 c=Buffer.allocUnsafe(s);return await this.fasta.read(c,0,s,o,i),c.toString("utf8").replace(/\s+/g,"")}}function Af(e){return class extends e{constructor(){super(...arguments);Sn(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 rc(this.lastQuantizedInterval,r)?!1:(this.lastQuantizedInterval=r,!0)}}}function vf(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}typeof window<"u"&&(window.Buffer=zt.Buffer);class dF extends Af(La){constructor(t,n){const r={channel:"x",windowSize:7e3,...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");const i=a=>new tr(vf(a,this.view.getBaseUrl()));this.fasta=new hF({fasta:i(this.params.url),fai:i(this.params.indexUrl??this.params.url+".fai")})}async onDomainChanged(t){const n=this.params.windowSize;if(t[1]-t[0]>n)return;const r=this.quantizeInterval(t,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 Ef=BigInt(32);function gF(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<Ef|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function pF(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<Ef|BigInt(r*a+i*o)}function mF(e,t,n,r){const i=Number(n>>Ef),a=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,a,r)):(e.setInt32(t,i,r),e.setUint32(t+4,a,r))}function bF(e,t,n,r){const i=Number(n>>Ef),a=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,a,r)):(e.setUint32(t,i,r),e.setUint32(t+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return gF(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return pF(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){mF(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){bF(this,e,t,n)});class yF{constructor(t,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=t,this.useContextVariables=n}generateVariable(t){const n=[...this.scopes[this.scopes.length-1]];return t&&n.push(t),n.join(".")}generateOption(t){switch(typeof t){case"number":return t.toString();case"string":return this.generateVariable(t);case"function":return`${this.addImport(t)}.call(${this.generateVariable()}, vars)`}}generateError(t){this.pushCode(`throw new Error(${t});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(t){this.code+=t+`
175
+ `}pushPath(t){t&&this.scopes[this.scopes.length-1].push(t)}popPath(t){t&&this.scopes[this.scopes.length-1].pop()}pushScope(t){this.scopes.push([t])}popScope(){this.scopes.pop()}addImport(t){if(!this.importPath)return`(${t})`;let n=this.reverseImports.get(t);return n||(n=this.imports.push(t)-1,this.reverseImports.set(t,n)),`${this.importPath}[${n}]`}addReference(t){this.references.has(t)||this.references.set(t,{resolved:!1,requested:!1})}markResolved(t){const n=this.references.get(t);n&&(n.resolved=!0)}markRequested(t){t.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([t,n])=>!n.resolved&&!n.requested).map(([t,n])=>t)}}const xn=new Map,ji="___parser_",An={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},Cf={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"},Sf={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};class ne{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new ne}primitiveGenerateN(t,n){const r=Cf[t],i=Sf[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${An[t]};`)}primitiveN(t,n,r){return this.setNextParser(t,n,r)}useThisEndian(t){return t+this.endian.toLowerCase()}uint8(t,n={}){return this.primitiveN("uint8",t,n)}uint16(t,n={}){return this.primitiveN(this.useThisEndian("uint16"),t,n)}uint16le(t,n={}){return this.primitiveN("uint16le",t,n)}uint16be(t,n={}){return this.primitiveN("uint16be",t,n)}uint32(t,n={}){return this.primitiveN(this.useThisEndian("uint32"),t,n)}uint32le(t,n={}){return this.primitiveN("uint32le",t,n)}uint32be(t,n={}){return this.primitiveN("uint32be",t,n)}int8(t,n={}){return this.primitiveN("int8",t,n)}int16(t,n={}){return this.primitiveN(this.useThisEndian("int16"),t,n)}int16le(t,n={}){return this.primitiveN("int16le",t,n)}int16be(t,n={}){return this.primitiveN("int16be",t,n)}int32(t,n={}){return this.primitiveN(this.useThisEndian("int32"),t,n)}int32le(t,n={}){return this.primitiveN("int32le",t,n)}int32be(t,n={}){return this.primitiveN("int32be",t,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),t,n)}int64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",t,n)}int64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",t,n)}uint64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),t,n)}uint64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",t,n)}uint64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",t,n)}floatle(t,n={}){return this.primitiveN("floatle",t,n)}floatbe(t,n={}){return this.primitiveN("floatbe",t,n)}doublele(t,n={}){return this.primitiveN("doublele",t,n)}doublebe(t,n={}){return this.primitiveN("doublebe",t,n)}bitN(t,n,r){return r.length=t,this.setNextParser("bit",n,r)}bit1(t,n={}){return this.bitN(1,t,n)}bit2(t,n={}){return this.bitN(2,t,n)}bit3(t,n={}){return this.bitN(3,t,n)}bit4(t,n={}){return this.bitN(4,t,n)}bit5(t,n={}){return this.bitN(5,t,n)}bit6(t,n={}){return this.bitN(6,t,n)}bit7(t,n={}){return this.bitN(7,t,n)}bit8(t,n={}){return this.bitN(8,t,n)}bit9(t,n={}){return this.bitN(9,t,n)}bit10(t,n={}){return this.bitN(10,t,n)}bit11(t,n={}){return this.bitN(11,t,n)}bit12(t,n={}){return this.bitN(12,t,n)}bit13(t,n={}){return this.bitN(13,t,n)}bit14(t,n={}){return this.bitN(14,t,n)}bit15(t,n={}){return this.bitN(15,t,n)}bit16(t,n={}){return this.bitN(16,t,n)}bit17(t,n={}){return this.bitN(17,t,n)}bit18(t,n={}){return this.bitN(18,t,n)}bit19(t,n={}){return this.bitN(19,t,n)}bit20(t,n={}){return this.bitN(20,t,n)}bit21(t,n={}){return this.bitN(21,t,n)}bit22(t,n={}){return this.bitN(22,t,n)}bit23(t,n={}){return this.bitN(23,t,n)}bit24(t,n={}){return this.bitN(24,t,n)}bit25(t,n={}){return this.bitN(25,t,n)}bit26(t,n={}){return this.bitN(26,t,n)}bit27(t,n={}){return this.bitN(27,t,n)}bit28(t,n={}){return this.bitN(28,t,n)}bit29(t,n={}){return this.bitN(29,t,n)}bit30(t,n={}){return this.bitN(30,t,n)}bit31(t,n={}){return this.bitN(31,t,n)}bit32(t,n={}){return this.bitN(32,t,n)}namely(t){return xn.set(t,this),this.alias=t,this}skip(t,n={}){return this.seek(t,n)}seek(t,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:t})}string(t,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",t,n)}buffer(t,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",t,n)}wrapped(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!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",t,n)}array(t,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"&&!xn.has(n.type)&&!(n.type in An))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!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"&&!xn.has(a)&&!(a in An))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof ne)&&!xn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof ne)&&!t)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",t,n)}pointer(t,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 An)&&!xn.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",t,n)}saveOffset(t,n={}){return this.setNextParser("saveOffset",t,n)}endianness(t){switch(t.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(t){return this.endianness(t)}useContextVars(t=!0){return this.useContextVariables=t,this}create(t){if(!(t instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=t,this}getContext(t){const n=new yF(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${ji+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const t="imports";return this.getContext(t).code}addRawCode(t){t.pushCode("var offset = 0;"),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("vars.$parent = null;"),t.pushCode("vars.$root = vars;"),this.generate(t),this.resolveReferences(t),t.pushCode("delete vars.$parent;"),t.pushCode("delete vars.$root;"),t.pushCode("return vars;")}addAliasedCode(t){return t.pushCode(`function ${ji+this.alias}(offset, context) {`),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),t.pushCode("vars = Object.assign(vars, ctx);"),this.generate(t),t.markResolved(this.alias),this.resolveReferences(t),t.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),t.pushCode("return { offset: offset, result: vars };"),t.pushCode("}"),t}resolveReferences(t){const n=t.getUnresolvedReferences();t.markRequested(n),n.forEach(r=>{var i;(i=xn.get(r))===null||i===void 0||i.addAliasedCode(t)})}compile(){const t="imports",n=this.getContext(t);this.compiled=new Function(t,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let t=NaN;if(Object.keys(An).indexOf(this.type)>=0)t=An[this.type];else if(this.type==="string"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=An[this.options.type]:this.options.type instanceof ne&&(n=this.options.type.sizeOf()),t=this.options.length*n}else this.type==="seek"?t=this.options.length:this.type==="nest"?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t}parse(t){return this.compiled||this.compile(),this.compiled(t,this.constructorFn)}setNextParser(t,n,r){const i=new ne;return i.type=t,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(t){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,t);break;case"bit":this.generateBit(t);break;case"string":this.generateString(t);break;case"buffer":this.generateBuffer(t);break;case"seek":this.generateSeek(t);break;case"nest":this.generateNest(t);break;case"array":this.generateArray(t);break;case"choice":this.generateChoice(t);break;case"pointer":this.generatePointer(t);break;case"saveOffset":this.generateSaveOffset(t);break;case"wrapper":this.generateWrapper(t);break}this.type!=="bit"&&this.generateAssert(t)}const n=t.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(t,n,this.options.formatter),this.generateNext(t)}generateAssert(t){if(!this.options.assert)return;const n=t.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=t.addImport(this.options.assert);t.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":t.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":t.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}t.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),t.pushCode("}")}generateNext(t){return this.next&&(t=this.next.generate(t)),t}generateBit(t){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=t.generateVariable(n.varName),t.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=t.generateTmpVariable();t.pushCode(`var ${r} = 0;`);const i=(f=0)=>{let l=0;for(let h=f;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(l+d>32)break;l+=d}return l},a=f=>(f<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),f=8):f<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),f=16):f<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),f=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),f=32),t.pushCode(`offset += ${f/8};`),f);let o=0;const s=this.endian==="be";let c=0,u=0;t.bitFields.forEach((f,l)=>{let h=f.options.length;if(h>u){if(u){const b=-1>>>32-u;t.pushCode(`${f.varName} = (${r} & 0x${b.toString(16)}) << ${h-u};`),h-=u}o=0,u=c=a(i(l)-u)}const d=s?c-o-h:o,p=-1>>>32-h;t.pushCode(`${f.varName} ${h<f.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),f.options.length===32&&t.pushCode(`${f.varName} >>>= 0`),f.options.assert&&f.generateAssert(t),f.options.formatter&&f.generateFormatter(t,f.varName,f.options.formatter),o+=h,u-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.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;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const c=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${c}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${c}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.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&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${a} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${a} = dataView.getUint8(offset);`);const o=t.addImport(r);t.pushCode(`if (${o}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,a=t.generateTmpVariable(),o=t.generateVariable(this.varName),s=t.generateTmpVariable(),c=this.options.key,u=typeof c=="string";if(u?t.pushCode(`${o} = {};`):t.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?t.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):t.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(xn.get(i)){const f=t.generateTmpVariable();if(t.pushCode(`var ${f} = ${ji+i}(offset, {`),t.useContextVariables){const l=t.generateVariable();t.pushCode(`$parent: ${l},`),t.pushCode(`$root: ${l}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${a},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${f}.result; offset = ${f}.offset;`),i!==this.alias&&t.addReference(i)}else{const f=Cf[i],l=Sf[i];t.pushCode(`var ${s} = dataView.get${f}(offset, ${l});`),t.pushCode(`offset += ${An[i]};`)}else if(i instanceof ne){t.pushCode(`var ${s} = {};`);const f=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${f};`),t.pushCode(`${s}.$root = ${f}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${s}.$index = ${n} - ${a};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(u?t.pushCode(`${o}[${s}.${c}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const f=this.options.readUntil,l=t.addImport(f);t.pushCode(`while (!${l}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(xn.has(r)){const a=t.generateTmpVariable();t.pushCode(`var ${a} = ${ji+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&t.addReference(r)}else{const a=Cf[r],o=Sf[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${An[r]}`)}}else r instanceof ne&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];t.pushCode(`case ${a}:`),this.generateChoiceCase(t,this.varName,o),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof ne){if(this.varName&&(t.pushCode(`${n} = {};`),t.useContextVariables)){const r=t.generateVariable();t.pushCode(`${n}.$parent = ${r};`),t.pushCode(`${n}.$root = ${r}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),this.varName&&t.useContextVariables&&t.useContextVariables&&(t.pushCode(`delete ${n}.$parent;`),t.pushCode(`delete ${n}.$root;`))}else if(xn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${ji+this.options.type}(offset, {`),t.useContextVariables){const i=t.generateVariable();t.pushCode(`$parent: ${i},`),t.pushCode(`$root: ${i}.$root,`)}t.pushCode("});"),t.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}}generateWrapper(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable();if(typeof this.options.readUntil=="function"){const c=this.options.readUntil,u=t.generateTmpVariable(),f=t.generateTmpVariable();t.pushCode(`var ${u} = offset;`),t.pushCode(`var ${f} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${f} = dataView.getUint8(offset);`);const l=t.addImport(c);t.pushCode(`if (${l}.call(${t.generateVariable()}, ${f}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${u}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const c=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${c});`),t.pushCode(`offset += ${c};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),a=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${a} = offset;`),t.pushCode(`var ${o} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof ne)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(xn.has(this.options.type)){const c=t.generateTmpVariable();t.pushCode(`var ${c} = ${ji+this.options.type}(0);`),t.pushCode(`${n} = ${c}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${o};`),t.pushCode(`offset = ${a};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),a=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof ne){if(t.pushCode(`${a} = {};`),t.useContextVariables){const o=t.generateVariable();t.pushCode(`${a}.$parent = ${o};`),t.pushCode(`${a}.$root = ${o}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`))}else if(xn.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${ji+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(An).indexOf(this.options.type)>=0){const o=Cf[n],s=Sf[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${An[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}}var Vx={},gd={},Gi={},Zs={};Object.defineProperty(Zs,"__esModule",{value:!0});function pd(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Zx(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function md(e,t,n){return t&&Zx(e.prototype,t),n&&Zx(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function wF(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&bd(e,t)}function qa(e){return qa=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},qa(e)}function bd(e,t){return bd=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},bd(e,t)}function xF(){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 Ys(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function AF(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ys(e)}function vF(e){var t=xF();return function(){var r=qa(e),i;if(t){var a=qa(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return AF(this,i)}}function EF(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=qa(e),e!==null););return e}function Df(){return typeof Reflect<"u"&&Reflect.get?Df=Reflect.get.bind():Df=function(t,n,r){var i=EF(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},Df.apply(this,arguments)}var Yx=function(){function e(){pd(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return md(e,[{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(c){Promise.resolve().then(function(){throw c})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),yd=function(e){wF(n,e);var t=vF(n);function n(){var r;return pd(this,n),r=t.call(this),r.listeners||Yx.call(Ys(r)),Object.defineProperty(Ys(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(Ys(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(Ys(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return md(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)),Df(qa(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Yx),Wx=function(){function e(){pd(this,e),Object.defineProperty(this,"signal",{value:new yd,writable:!0,configurable:!0})}return md(e,[{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]"}}]),e}();typeof Symbol<"u"&&Symbol.toStringTag&&(Wx.prototype[Symbol.toStringTag]="AbortController",yd.prototype[Symbol.toStringTag]="AbortSignal");function CF(e){return e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof e.Request=="function"&&!e.Request.prototype.hasOwnProperty("signal")||!e.AbortController}function SF(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,a=t.AbortController,o=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!CF({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:c};var c=i;(c&&!c.prototype.hasOwnProperty("signal")||s)&&(c=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var b=new i(h,d);return p&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),b},c.prototype=i.prototype);var u=n,f=function(h,d){var p=c&&c.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(p.aborted)return Promise.reject(b);var x=new Promise(function(A,D){p.addEventListener("abort",function(){return D(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([x,u(h,d)])}return u(h,d)};return{fetch:f,Request:c}}Zs.AbortController=Wx,Zs.AbortSignal=yd,Zs.abortableFetch=SF,Object.defineProperty(Gi,"__esModule",{value:!0}),Gi.AbortSignal=Gi.AbortController=void 0;const qx=Zs;var If=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Ti<"u")return Ti;throw new Error("unable to locate global object")};let DF=typeof If().AbortController>"u"?qx.AbortController:If().AbortController;Gi.AbortController=DF;let IF=typeof If().AbortController>"u"?qx.AbortSignal:If().AbortSignal;Gi.AbortSignal=IF;var wd={};Object.defineProperty(wd,"__esModule",{value:!0});const _F=Gi;class MF{}class TF{constructor(){this.signals=new Set,this.abortController=new _F.AbortController}addSignal(t=new MF){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(t),t.aborted?this.handleAborted(t):typeof t.addEventListener=="function"&&t.addEventListener("abort",()=>{this.handleAborted(t)})}handleAborted(t){this.signals.delete(t),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}wd.default=TF;var xd={};Object.defineProperty(xd,"__esModule",{value:!0});class NF{constructor(){this.callbacks=new Set}addCallback(t=()=>{}){this.callbacks.add(t),t(this.currentMessage)}callback(t){this.currentMessage=t,this.callbacks.forEach(n=>{n(t)})}}xd.default=NF;var Xx=Ti&&Ti.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(gd,"__esModule",{value:!0});const BF=Gi,FF=Xx(wd),kF=Xx(xd);class _f{constructor({fill:t,cache:n}){if(typeof t!="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=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const a=new FF.default,o=new kF.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,c=>{o.callback(c)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(c=>{throw console.error(c),c}),this.cache.set(t,s)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof BF.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(t);return a?a.aborted&&!a.settled?(this.evict(t,a),this.get(t,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),_f.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),_f.checkSinglePromise(this.cache.get(t).promise,r))}delete(t){const n=this.cache.get(t);n&&(n.settled||n.aborter.abort(),this.cache.delete(t))}clear(){const t=this.cache.keys();let n=0;for(let r=t.next();!r.done;r=t.next())this.delete(r.value),n+=1;return n}}gd.default=_f;var LF=Ti&&Ti.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Vx,"__esModule",{value:!0});const zF=LF(gd);var Ad=Vx.default=zF.default,RF=class{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}};const Kx=za(RF);class Zr{constructor(t,n){this.ranges=arguments.length===2?[{min:t,max:n}]:0 in t?Object.assign({},t):[t]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(t){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=t&&r.max>=t)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new Zr(t.min,t.max))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=this.getRanges().concat(t.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 Zr(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new Zr(r)}intersection(t){let n=this,r=t;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let c=0,u=0;const f=[];for(;c<o&&u<s;){n=i[c],r=a[u];const l=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=l&&f.push(new Zr(l,h)),n.max()>r.max()?u+=1:c+=1}if(f.length===0)throw new Error("found range of length 0");return f.length===1?f[0]:new Zr(f)}coverage(){let t=0;const n=this.ranges();for(const r of n)t+=r.max()-r.min()+1;return t}rangeOrder(t,n){let r=t,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 OF=4,Jx=0,$x=1,PF=2;function Xa(e){let t=e.length;for(;--t>=0;)e[t]=0}const UF=0,e2=1,jF=2,GF=3,HF=258,vd=29,Ws=256,qs=Ws+1+vd,Ka=30,Ed=19,t2=2*qs+1,Hi=15,Cd=16,QF=7,Sd=256,n2=16,r2=17,i2=18,Dd=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]),Mf=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]),VF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),a2=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ZF=512,or=new Array((qs+2)*2);Xa(or);const Xs=new Array(Ka*2);Xa(Xs);const Ks=new Array(ZF);Xa(Ks);const Js=new Array(HF-GF+1);Xa(Js);const Id=new Array(vd);Xa(Id);const Tf=new Array(Ka);Xa(Tf);function _d(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let o2,s2,u2;function Md(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const c2=e=>e<256?Ks[e]:Ks[256+(e>>>7)],$s=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Bt=(e,t,n)=>{e.bi_valid>Cd-n?(e.bi_buf|=t<<e.bi_valid&65535,$s(e,e.bi_buf),e.bi_buf=t>>Cd-e.bi_valid,e.bi_valid+=n-Cd):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Un=(e,t,n)=>{Bt(e,n[t*2],n[t*2+1])},f2=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},YF=e=>{e.bi_valid===16?($s(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},WF=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let u,f,l,h,d,p,b=0;for(h=0;h<=Hi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;u<t2;u++)f=e.heap[u],h=n[n[f*2+1]*2+1]+1,h>c&&(h=c,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==0){do{for(h=c-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,b-=2}while(b>0);for(h=c;h!==0;h--)for(f=e.bl_count[h];f!==0;)l=e.heap[--u],!(l>r)&&(n[l*2+1]!==h&&(e.opt_len+=(h-n[l*2+1])*n[l*2],n[l*2+1]=h),f--)}},l2=(e,t,n)=>{const r=new Array(Hi+1);let i=0,a,o;for(a=1;a<=Hi;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=f2(r[s]++,s))}},qF=()=>{let e,t,n,r,i;const a=new Array(Hi+1);for(n=0,r=0;r<vd-1;r++)for(Id[r]=n,e=0;e<1<<Dd[r];e++)Js[n++]=r;for(Js[n-1]=r,i=0,r=0;r<16;r++)for(Tf[r]=i,e=0;e<1<<Mf[r];e++)Ks[i++]=r;for(i>>=7;r<Ka;r++)for(Tf[r]=i<<7,e=0;e<1<<Mf[r]-7;e++)Ks[256+i++]=r;for(t=0;t<=Hi;t++)a[t]=0;for(e=0;e<=143;)or[e*2+1]=8,e++,a[8]++;for(;e<=255;)or[e*2+1]=9,e++,a[9]++;for(;e<=279;)or[e*2+1]=7,e++,a[7]++;for(;e<=287;)or[e*2+1]=8,e++,a[8]++;for(l2(or,qs+1,a),e=0;e<Ka;e++)Xs[e*2+1]=5,Xs[e*2]=f2(e,5);o2=new _d(or,Dd,Ws+1,qs,Hi),s2=new _d(Xs,Mf,0,Ka,Hi),u2=new _d(new Array(0),VF,0,Ed,QF)},h2=e=>{let t;for(t=0;t<qs;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ka;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Ed;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Sd*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},d2=e=>{e.bi_valid>8?$s(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},g2=(e,t,n,r)=>{const i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},Td=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&g2(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!g2(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},p2=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?Un(e,i,t):(o=Js[i],Un(e,o+Ws+1,t),s=Dd[o],s!==0&&(i-=Id[o],Bt(e,i,s)),r--,o=c2(r),Un(e,o,n),s=Mf[o],s!==0&&(r-=Tf[o],Bt(e,r,s)));while(a<e.sym_next);Un(e,Sd,t)},Nd=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let o,s,c=-1,u;for(e.heap_len=0,e.heap_max=t2,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=c=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)u=e.heap[++e.heap_len]=c<2?++c:0,n[u*2]=1,e.depth[u]=0,e.opt_len--,i&&(e.static_len-=r[u*2+1]);for(t.max_code=c,o=e.heap_len>>1;o>=1;o--)Td(e,n,o);u=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Td(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[u*2]=n[o*2]+n[s*2],e.depth[u]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=u,e.heap[1]=u++,Td(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],WF(e,t),l2(n,c,e.bl_count)},m2=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,c=7,u=4;for(o===0&&(c=138,u=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)&&(s<u?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[n2*2]++):s<=10?e.bl_tree[r2*2]++:e.bl_tree[i2*2]++,s=0,i=a,o===0?(c=138,u=3):a===o?(c=6,u=3):(c=7,u=4))},b2=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,c=7,u=4;for(o===0&&(c=138,u=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)){if(s<u)do Un(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Un(e,a,e.bl_tree),s--),Un(e,n2,e.bl_tree),Bt(e,s-3,2)):s<=10?(Un(e,r2,e.bl_tree),Bt(e,s-3,3)):(Un(e,i2,e.bl_tree),Bt(e,s-11,7));s=0,i=a,o===0?(c=138,u=3):a===o?(c=6,u=3):(c=7,u=4)}},XF=e=>{let t;for(m2(e,e.dyn_ltree,e.l_desc.max_code),m2(e,e.dyn_dtree,e.d_desc.max_code),Nd(e,e.bl_desc),t=Ed-1;t>=3&&e.bl_tree[a2[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},KF=(e,t,n,r)=>{let i;for(Bt(e,t-257,5),Bt(e,n-1,5),Bt(e,r-4,4),i=0;i<r;i++)Bt(e,e.bl_tree[a2[i]*2+1],3);b2(e,e.dyn_ltree,t-1),b2(e,e.dyn_dtree,n-1)},JF=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Jx;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return $x;for(n=32;n<Ws;n++)if(e.dyn_ltree[n*2]!==0)return $x;return Jx};let y2=!1;const $F=e=>{y2||(qF(),y2=!0),e.l_desc=new Md(e.dyn_ltree,o2),e.d_desc=new Md(e.dyn_dtree,s2),e.bl_desc=new Md(e.bl_tree,u2),e.bi_buf=0,e.bi_valid=0,h2(e)},w2=(e,t,n,r)=>{Bt(e,(UF<<1)+(r?1:0),3),d2(e),$s(e,n),$s(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},ek=e=>{Bt(e,e2<<1,3),Un(e,Sd,or),YF(e)},tk=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===PF&&(e.strm.data_type=JF(e)),Nd(e,e.l_desc),Nd(e,e.d_desc),o=XF(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?w2(e,t,n,r):e.strategy===OF||a===i?(Bt(e,(e2<<1)+(r?1:0),3),p2(e,or,Xs)):(Bt(e,(jF<<1)+(r?1:0),3),KF(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),p2(e,e.dyn_ltree,e.dyn_dtree)),h2(e),r&&d2(e)},nk=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Js[n]+Ws+1)*2]++,e.dyn_dtree[c2(t)*2]++),e.sym_next===e.sym_end);var rk=$F,ik=w2,ak=tk,ok=nk,sk=ek,uk={_tr_init:rk,_tr_stored_block:ik,_tr_flush_block:ak,_tr_tally:ok,_tr_align:sk},eu=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const ck=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},fk=new Uint32Array(ck());var nt=(e,t,n,r)=>{const i=fk,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},Ja={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"},tu={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:lk,_tr_stored_block:Bd,_tr_flush_block:hk,_tr_tally:Yr,_tr_align:dk}=uk,{Z_NO_FLUSH:Wr,Z_PARTIAL_FLUSH:gk,Z_FULL_FLUSH:pk,Z_FINISH:$t,Z_BLOCK:x2,Z_OK:st,Z_STREAM_END:A2,Z_STREAM_ERROR:jn,Z_DATA_ERROR:mk,Z_BUF_ERROR:Fd,Z_DEFAULT_COMPRESSION:bk,Z_FILTERED:yk,Z_HUFFMAN_ONLY:Nf,Z_RLE:wk,Z_FIXED:xk,Z_DEFAULT_STRATEGY:Ak,Z_UNKNOWN:vk,Z_DEFLATED:Bf}=tu,Ek=9,Ck=15,Sk=8,Dk=29,kd=256+1+Dk,Ik=30,_k=19,Mk=2*kd+1,Tk=15,ue=3,qr=258,Gn=qr+ue+1,Nk=32,$a=42,Ld=57,zd=69,Rd=73,Od=91,Pd=103,Qi=113,nu=666,xt=1,eo=2,Vi=3,to=4,Bk=3,Zi=(e,t)=>(e.msg=Ja[t],t),v2=e=>e*2-(e>4?9:0),Xr=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Fk=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let Kr=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Ot=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Pt=(e,t)=>{hk(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ot(e.strm)},me=(e,t)=>{e.pending_buf[e.pending++]=t},ru=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Ud=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=eu(e.adler,t,i,n):e.state.wrap===2&&(e.adler=nt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},E2=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-Gn?e.strstart-(e.w_size-Gn):0,u=e.window,f=e.w_mask,l=e.prev,h=e.strstart+qr;let d=u[r+o-1],p=u[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(u[i+o]!==p||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=qr-(h-r),r=h-qr,a>o){if(e.match_start=t,o=a,a>=s)break;d=u[r+o-1],p=u[r+o]}}while((t=l[t&f])>c&&--n!==0);return o<=e.lookahead?o:e.lookahead},no=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Gn)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Fk(e),r+=t),e.strm.avail_in===0)break;if(n=Ud(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=ue)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=Kr(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=Kr(e,e.ins_h,e.window[i+ue-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<ue)););}while(e.lookahead<Gn&&e.strm.avail_in!==0)},C2=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==$t||t===Wr||r!==i+e.strm.avail_in)))break;o=t===$t&&r===i+e.strm.avail_in?1:0,Bd(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,Ot(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(Ud(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?to:t!==Wr&&t!==$t&&e.strm.avail_in===0&&e.strstart===e.block_start?eo:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(Ud(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===$t)&&t!==Wr&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===$t&&e.strm.avail_in===0&&r===i?1:0,Bd(e,e.block_start,r,o),e.block_start+=r,Ot(e.strm)),o?Vi:xt)},jd=(e,t)=>{let n,r;for(;;){if(e.lookahead<Gn){if(no(e),e.lookahead<Gn&&t===Wr)return xt;if(e.lookahead===0)break}if(n=0,e.lookahead>=ue&&(e.ins_h=Kr(e,e.ins_h,e.window[e.strstart+ue-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Gn&&(e.match_length=E2(e,n)),e.match_length>=ue)if(r=Yr(e,e.strstart-e.match_start,e.match_length-ue),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ue){e.match_length--;do e.strstart++,e.ins_h=Kr(e,e.ins_h,e.window[e.strstart+ue-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Kr(e,e.ins_h,e.window[e.strstart+1]);else r=Yr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Pt(e,!1),e.strm.avail_out===0))return xt}return e.insert=e.strstart<ue-1?e.strstart:ue-1,t===$t?(Pt(e,!0),e.strm.avail_out===0?Vi:to):e.sym_next&&(Pt(e,!1),e.strm.avail_out===0)?xt:eo},ro=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Gn){if(no(e),e.lookahead<Gn&&t===Wr)return xt;if(e.lookahead===0)break}if(n=0,e.lookahead>=ue&&(e.ins_h=Kr(e,e.ins_h,e.window[e.strstart+ue-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ue-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Gn&&(e.match_length=E2(e,n),e.match_length<=5&&(e.strategy===yk||e.match_length===ue&&e.strstart-e.match_start>4096)&&(e.match_length=ue-1)),e.prev_length>=ue&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-ue,r=Yr(e,e.strstart-1-e.prev_match,e.prev_length-ue),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=Kr(e,e.ins_h,e.window[e.strstart+ue-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ue-1,e.strstart++,r&&(Pt(e,!1),e.strm.avail_out===0))return xt}else if(e.match_available){if(r=Yr(e,0,e.window[e.strstart-1]),r&&Pt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return xt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Yr(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ue-1?e.strstart:ue-1,t===$t?(Pt(e,!0),e.strm.avail_out===0?Vi:to):e.sym_next&&(Pt(e,!1),e.strm.avail_out===0)?xt:eo},kk=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=qr){if(no(e),e.lookahead<=qr&&t===Wr)return xt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ue&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+qr;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);e.match_length=qr-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ue?(n=Yr(e,1,e.match_length-ue),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Yr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Pt(e,!1),e.strm.avail_out===0))return xt}return e.insert=0,t===$t?(Pt(e,!0),e.strm.avail_out===0?Vi:to):e.sym_next&&(Pt(e,!1),e.strm.avail_out===0)?xt:eo},Lk=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(no(e),e.lookahead===0)){if(t===Wr)return xt;break}if(e.match_length=0,n=Yr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Pt(e,!1),e.strm.avail_out===0))return xt}return e.insert=0,t===$t?(Pt(e,!0),e.strm.avail_out===0?Vi:to):e.sym_next&&(Pt(e,!1),e.strm.avail_out===0)?xt:eo};function Hn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const iu=[new Hn(0,0,0,0,C2),new Hn(4,4,8,4,jd),new Hn(4,5,16,8,jd),new Hn(4,6,32,32,jd),new Hn(4,4,16,16,ro),new Hn(8,16,32,32,ro),new Hn(8,16,128,128,ro),new Hn(8,32,128,256,ro),new Hn(32,128,258,1024,ro),new Hn(32,258,258,4096,ro)],zk=e=>{e.window_size=2*e.w_size,Xr(e.head),e.max_lazy_match=iu[e.level].max_lazy,e.good_match=iu[e.level].good_length,e.nice_match=iu[e.level].nice_length,e.max_chain_length=iu[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ue-1,e.match_available=0,e.ins_h=0};function Rk(){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=Bf,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(Mk*2),this.dyn_dtree=new Uint16Array((2*Ik+1)*2),this.bl_tree=new Uint16Array((2*_k+1)*2),Xr(this.dyn_ltree),Xr(this.dyn_dtree),Xr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Tk+1),this.heap=new Uint16Array(2*kd+1),Xr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*kd+1),Xr(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 au=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==$a&&t.status!==Ld&&t.status!==zd&&t.status!==Rd&&t.status!==Od&&t.status!==Pd&&t.status!==Qi&&t.status!==nu?1:0},S2=e=>{if(au(e))return Zi(e,jn);e.total_in=e.total_out=0,e.data_type=vk;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Ld:t.wrap?$a:Qi,e.adler=t.wrap===2?0:1,t.last_flush=-2,lk(t),st},D2=e=>{const t=S2(e);return t===st&&zk(e.state),t},Ok=(e,t)=>au(e)||e.state.wrap!==2?jn:(e.state.gzhead=t,st),I2=(e,t,n,r,i,a)=>{if(!e)return jn;let o=1;if(t===bk&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>Ek||n!==Bf||r<8||r>15||t<0||t>9||a<0||a>xk||r===8&&o!==1)return Zi(e,jn);r===8&&(r=9);const s=new Rk;return e.state=s,s.strm=e,s.status=$a,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+ue-1)/ue),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=t,s.strategy=a,s.method=n,D2(e)},Pk=(e,t)=>I2(e,t,Bf,Ck,Sk,Ak),Uk=(e,t)=>{if(au(e)||t>x2||t<0)return e?Zi(e,jn):jn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===nu&&t!==$t)return Zi(e,e.avail_out===0?Fd:jn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Ot(e),e.avail_out===0)return n.last_flush=-1,st}else if(e.avail_in===0&&v2(t)<=v2(r)&&t!==$t)return Zi(e,Fd);if(n.status===nu&&e.avail_in!==0)return Zi(e,Fd);if(n.status===$a&&n.wrap===0&&(n.status=Qi),n.status===$a){let i=Bf+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=Nf||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=Nk),i+=31-i%31,ru(n,i),n.strstart!==0&&(ru(n,e.adler>>>16),ru(n,e.adler&65535)),e.adler=1,n.status=Qi,Ot(e),n.pending!==0)return n.last_flush=-1,st}if(n.status===Ld){if(e.adler=0,me(n,31),me(n,139),me(n,8),n.gzhead)me(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)),me(n,n.gzhead.time&255),me(n,n.gzhead.time>>8&255),me(n,n.gzhead.time>>16&255),me(n,n.gzhead.time>>24&255),me(n,n.level===9?2:n.strategy>=Nf||n.level<2?4:0),me(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(me(n,n.gzhead.extra.length&255),me(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=nt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=zd;else if(me(n,0),me(n,0),me(n,0),me(n,0),me(n,0),me(n,n.level===9?2:n.strategy>=Nf||n.level<2?4:0),me(n,Bk),n.status=Qi,Ot(e),n.pending!==0)return n.last_flush=-1,st}if(n.status===zd){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&&(e.adler=nt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Ot(e),n.pending!==0)return n.last_flush=-1,st;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&&(e.adler=nt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Rd}if(n.status===Rd){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=nt(e.adler,n.pending_buf,n.pending-i,i)),Ot(e),n.pending!==0)return n.last_flush=-1,st;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,me(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=nt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Od}if(n.status===Od){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=nt(e.adler,n.pending_buf,n.pending-i,i)),Ot(e),n.pending!==0)return n.last_flush=-1,st;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,me(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=nt(e.adler,n.pending_buf,n.pending-i,i))}n.status=Pd}if(n.status===Pd){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Ot(e),n.pending!==0))return n.last_flush=-1,st;me(n,e.adler&255),me(n,e.adler>>8&255),e.adler=0}if(n.status=Qi,Ot(e),n.pending!==0)return n.last_flush=-1,st}if(e.avail_in!==0||n.lookahead!==0||t!==Wr&&n.status!==nu){let i=n.level===0?C2(n,t):n.strategy===Nf?Lk(n,t):n.strategy===wk?kk(n,t):iu[n.level].func(n,t);if((i===Vi||i===to)&&(n.status=nu),i===xt||i===Vi)return e.avail_out===0&&(n.last_flush=-1),st;if(i===eo&&(t===gk?dk(n):t!==x2&&(Bd(n,0,0,!1),t===pk&&(Xr(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Ot(e),e.avail_out===0))return n.last_flush=-1,st}return t!==$t?st:n.wrap<=0?A2:(n.wrap===2?(me(n,e.adler&255),me(n,e.adler>>8&255),me(n,e.adler>>16&255),me(n,e.adler>>24&255),me(n,e.total_in&255),me(n,e.total_in>>8&255),me(n,e.total_in>>16&255),me(n,e.total_in>>24&255)):(ru(n,e.adler>>>16),ru(n,e.adler&65535)),Ot(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?st:A2)},jk=e=>{if(au(e))return jn;const t=e.state.status;return e.state=null,t===Qi?Zi(e,mk):st},Gk=(e,t)=>{let n=t.length;if(au(e))return jn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==$a||r.lookahead)return jn;if(i===1&&(e.adler=eu(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(Xr(r.head),r.strstart=0,r.block_start=0,r.insert=0);let c=new Uint8Array(r.w_size);c.set(t.subarray(n-r.w_size,n),0),t=c,n=r.w_size}const a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,no(r);r.lookahead>=ue;){let c=r.strstart,u=r.lookahead-(ue-1);do r.ins_h=Kr(r,r.ins_h,r.window[c+ue-1]),r.prev[c&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=c,c++;while(--u);r.strstart=c,r.lookahead=ue-1,no(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=ue-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,st};var Hk=Pk,Qk=I2,Vk=D2,Zk=S2,Yk=Ok,Wk=Uk,qk=jk,Xk=Gk,Kk="pako deflate (from Nodeca project)",ou={deflateInit:Hk,deflateInit2:Qk,deflateReset:Vk,deflateResetKeep:Zk,deflateSetHeader:Yk,deflate:Wk,deflateEnd:qk,deflateSetDictionary:Xk,deflateInfo:Kk};const Jk=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var $k=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)Jk(n,r)&&(e[r]=n[r])}}return e},e5=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,a=e.length;r<a;r++){let o=e[r];n.set(o,i),i+=o.length}return n},Ff={assign:$k,flattenChunks:e5};let _2=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{_2=!1}const su=new Uint8Array(256);for(let e=0;e<256;e++)su[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;su[254]=su[254]=1;var t5=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.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(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};const n5=(e,t)=>{if(t<65534&&e.subarray&&_2)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var r5=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){a[i++]=o;continue}let s=su[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|e[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 n5(a,i)},i5=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+su[e[n]]>t?n:t},uu={string2buf:t5,buf2string:r5,utf8border:i5};function a5(){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 M2=a5;const T2=Object.prototype.toString,{Z_NO_FLUSH:o5,Z_SYNC_FLUSH:s5,Z_FULL_FLUSH:u5,Z_FINISH:c5,Z_OK:kf,Z_STREAM_END:f5,Z_DEFAULT_COMPRESSION:l5,Z_DEFAULT_STRATEGY:h5,Z_DEFLATED:d5}=tu;function Gd(e){this.options=Ff.assign({level:l5,method:d5,chunkSize:16384,windowBits:15,memLevel:8,strategy:h5},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new M2,this.strm.avail_out=0;let n=ou.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==kf)throw new Error(Ja[n]);if(t.header&&ou.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=uu.string2buf(t.dictionary):T2.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=ou.deflateSetDictionary(this.strm,r),n!==kf)throw new Error(Ja[n]);this._dict_set=!0}}Gd.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?c5:o5,typeof e=="string"?n.input=uu.string2buf(e):T2.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,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===s5||a===u5)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=ou.deflate(n,a),i===f5)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=ou.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===kf;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},Gd.prototype.onData=function(e){this.chunks.push(e)},Gd.prototype.onEnd=function(e){e===kf&&(this.result=Ff.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const Lf=16209,g5=16191;var p5=function(t,n){let r,i,a,o,s,c,u,f,l,h,d,p,b,x,A,D,_,C,T,B,S,z,E,N;const F=t.state;r=t.next_in,E=t.input,i=r+(t.avail_in-5),a=t.next_out,N=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),c=F.dmax,u=F.wsize,f=F.whave,l=F.wnext,h=F.window,d=F.hold,p=F.bits,b=F.lencode,x=F.distcode,A=(1<<F.lenbits)-1,D=(1<<F.distbits)-1;e:do{p<15&&(d+=E[r++]<<p,p+=8,d+=E[r++]<<p,p+=8),_=b[d&A];t:for(;;){if(C=_>>>24,d>>>=C,p-=C,C=_>>>16&255,C===0)N[a++]=_&65535;else if(C&16){T=_&65535,C&=15,C&&(p<C&&(d+=E[r++]<<p,p+=8),T+=d&(1<<C)-1,d>>>=C,p-=C),p<15&&(d+=E[r++]<<p,p+=8,d+=E[r++]<<p,p+=8),_=x[d&D];n:for(;;){if(C=_>>>24,d>>>=C,p-=C,C=_>>>16&255,C&16){if(B=_&65535,C&=15,p<C&&(d+=E[r++]<<p,p+=8,p<C&&(d+=E[r++]<<p,p+=8)),B+=d&(1<<C)-1,B>c){t.msg="invalid distance too far back",F.mode=Lf;break e}if(d>>>=C,p-=C,C=a-o,B>C){if(C=B-C,C>f&&F.sane){t.msg="invalid distance too far back",F.mode=Lf;break e}if(S=0,z=h,l===0){if(S+=u-C,C<T){T-=C;do N[a++]=h[S++];while(--C);S=a-B,z=N}}else if(l<C){if(S+=u+l-C,C-=l,C<T){T-=C;do N[a++]=h[S++];while(--C);if(S=0,l<T){C=l,T-=C;do N[a++]=h[S++];while(--C);S=a-B,z=N}}}else if(S+=l-C,C<T){T-=C;do N[a++]=h[S++];while(--C);S=a-B,z=N}for(;T>2;)N[a++]=z[S++],N[a++]=z[S++],N[a++]=z[S++],T-=3;T&&(N[a++]=z[S++],T>1&&(N[a++]=z[S++]))}else{S=a-B;do N[a++]=N[S++],N[a++]=N[S++],N[a++]=N[S++],T-=3;while(T>2);T&&(N[a++]=N[S++],T>1&&(N[a++]=N[S++]))}}else if(C&64){t.msg="invalid distance code",F.mode=Lf;break e}else{_=x[(_&65535)+(d&(1<<C)-1)];continue n}break}}else if(C&64)if(C&32){F.mode=g5;break e}else{t.msg="invalid literal/length code",F.mode=Lf;break e}else{_=b[(_&65535)+(d&(1<<C)-1)];continue t}break}}while(r<i&&a<s);T=p>>3,r-=T,p-=T<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=a,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=a<s?257+(s-a):257-(a-s),F.hold=d,F.bits=p};const io=15,N2=852,B2=592,F2=0,Hd=1,k2=2,m5=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]),b5=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]),y5=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]),w5=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 cu=(e,t,n,r,i,a,o,s)=>{const c=s.bits;let u=0,f=0,l=0,h=0,d=0,p=0,b=0,x=0,A=0,D=0,_,C,T,B,S,z=null,E;const N=new Uint16Array(io+1),F=new Uint16Array(io+1);let Y=null,X,Z,Se;for(u=0;u<=io;u++)N[u]=0;for(f=0;f<r;f++)N[t[n+f]]++;for(d=c,h=io;h>=1&&N[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(l=1;l<h&&N[l]===0;l++);for(d<l&&(d=l),x=1,u=1;u<=io;u++)if(x<<=1,x-=N[u],x<0)return-1;if(x>0&&(e===F2||h!==1))return-1;for(F[1]=0,u=1;u<io;u++)F[u+1]=F[u]+N[u];for(f=0;f<r;f++)t[n+f]!==0&&(o[F[t[n+f]]++]=f);if(e===F2?(z=Y=o,E=20):e===Hd?(z=m5,Y=b5,E=257):(z=y5,Y=w5,E=0),D=0,f=0,u=l,S=a,p=d,b=0,T=-1,A=1<<d,B=A-1,e===Hd&&A>N2||e===k2&&A>B2)return 1;for(;;){X=u-b,o[f]+1<E?(Z=0,Se=o[f]):o[f]>=E?(Z=Y[o[f]-E],Se=z[o[f]-E]):(Z=32+64,Se=0),_=1<<u-b,C=1<<p,l=C;do C-=_,i[S+(D>>b)+C]=X<<24|Z<<16|Se|0;while(C!==0);for(_=1<<u-1;D&_;)_>>=1;if(_!==0?(D&=_-1,D+=_):D=0,f++,--N[u]===0){if(u===h)break;u=t[n+o[f]]}if(u>d&&(D&B)!==T){for(b===0&&(b=d),S+=l,p=u-b,x=1<<p;p+b<h&&(x-=N[p+b],!(x<=0));)p++,x<<=1;if(A+=1<<p,e===Hd&&A>N2||e===k2&&A>B2)return 1;T=D&B,i[T]=d<<24|p<<16|S-a|0}}return D!==0&&(i[S+D]=u-b<<24|64<<16|0),s.bits=d,0};const x5=0,L2=1,z2=2,{Z_FINISH:R2,Z_BLOCK:A5,Z_TREES:zf,Z_OK:Yi,Z_STREAM_END:v5,Z_NEED_DICT:E5,Z_STREAM_ERROR:en,Z_DATA_ERROR:O2,Z_MEM_ERROR:P2,Z_BUF_ERROR:C5,Z_DEFLATED:U2}=tu,Rf=16180,j2=16181,G2=16182,H2=16183,Q2=16184,V2=16185,Z2=16186,Y2=16187,W2=16188,q2=16189,Of=16190,sr=16191,Qd=16192,X2=16193,Vd=16194,K2=16195,J2=16196,$2=16197,eA=16198,Pf=16199,Uf=16200,tA=16201,nA=16202,rA=16203,iA=16204,aA=16205,Zd=16206,oA=16207,sA=16208,ke=16209,uA=16210,cA=16211,S5=852,D5=592,I5=15,fA=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function _5(){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 Wi=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Rf||t.mode>cA?1:0},lA=e=>{if(Wi(e))return en;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Rf,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(S5),t.distcode=t.distdyn=new Int32Array(D5),t.sane=1,t.back=-1,Yi},hA=e=>{if(Wi(e))return en;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,lA(e)},dA=(e,t)=>{let n;if(Wi(e))return en;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?en:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,hA(e))},gA=(e,t)=>{if(!e)return en;const n=new _5;e.state=n,n.strm=e,n.window=null,n.mode=Rf;const r=dA(e,t);return r!==Yi&&(e.state=null),r},M5=e=>gA(e,I5);let pA=!0,Yd,Wd;const T5=e=>{if(pA){Yd=new Int32Array(512),Wd=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(cu(L2,e.lens,0,288,Yd,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;cu(z2,e.lens,0,32,Wd,0,e.work,{bits:5}),pA=!1}e.lencode=Yd,e.lenbits=9,e.distcode=Wd,e.distbits=5},mA=(e,t,n,r)=>{let i;const a=e.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(t.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(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.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},N5=(e,t)=>{let n,r,i,a,o,s,c,u,f,l,h,d,p,b,x=0,A,D,_,C,T,B,S,z;const E=new Uint8Array(4);let N,F;const Y=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Wi(e)||!e.output||!e.input&&e.avail_in!==0)return en;n=e.state,n.mode===sr&&(n.mode=Qd),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,u=n.hold,f=n.bits,l=s,h=c,z=Yi;e:for(;;)switch(n.mode){case Rf:if(n.wrap===0){n.mode=Qd;break}for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,E[0]=u&255,E[1]=u>>>8&255,n.check=nt(n.check,E,2,0),u=0,f=0,n.mode=j2;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){e.msg="incorrect header check",n.mode=ke;break}if((u&15)!==U2){e.msg="unknown compression method",n.mode=ke;break}if(u>>>=4,f-=4,S=(u&15)+8,n.wbits===0&&(n.wbits=S),S>15||S>n.wbits){e.msg="invalid window size",n.mode=ke;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=u&512?q2:sr,u=0,f=0;break;case j2:for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(n.flags=u,(n.flags&255)!==U2){e.msg="unknown compression method",n.mode=ke;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=ke;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(E[0]=u&255,E[1]=u>>>8&255,n.check=nt(n.check,E,2,0)),u=0,f=0,n.mode=G2;case G2:for(;f<32;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(E[0]=u&255,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,n.check=nt(n.check,E,4,0)),u=0,f=0,n.mode=H2;case H2:for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(E[0]=u&255,E[1]=u>>>8&255,n.check=nt(n.check,E,2,0)),u=0,f=0,n.mode=Q2;case Q2:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(E[0]=u&255,E[1]=u>>>8&255,n.check=nt(n.check,E,2,0)),u=0,f=0}else n.head&&(n.head.extra=null);n.mode=V2;case V2:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(S=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),S)),n.flags&512&&n.wrap&4&&(n.check=nt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Z2;case Z2:if(n.flags&2048){if(s===0)break e;d=0;do S=r[a+d++],n.head&&S&&n.length<65536&&(n.head.name+=String.fromCharCode(S));while(S&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=nt(n.check,r,d,a)),s-=d,a+=d,S)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 S=r[a+d++],n.head&&S&&n.length<65536&&(n.head.comment+=String.fromCharCode(S));while(S&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=nt(n.check,r,d,a)),s-=d,a+=d,S)break e}else n.head&&(n.head.comment=null);n.mode=W2;case W2:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(n.wrap&4&&u!==(n.check&65535)){e.msg="header crc mismatch",n.mode=ke;break}u=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=sr;break;case q2:for(;f<32;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}e.adler=n.check=fA(u),u=0,f=0,n.mode=Of;case Of:if(n.havedict===0)return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=u,n.bits=f,E5;e.adler=n.check=1,n.mode=sr;case sr:if(t===A5||t===zf)break e;case Qd:if(n.last){u>>>=f&7,f-=f&7,n.mode=Zd;break}for(;f<3;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}switch(n.last=u&1,u>>>=1,f-=1,u&3){case 0:n.mode=X2;break;case 1:if(T5(n),n.mode=Pf,t===zf){u>>>=2,f-=2;break e}break;case 2:n.mode=J2;break;case 3:e.msg="invalid block type",n.mode=ke}u>>>=2,f-=2;break;case X2:for(u>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if((u&65535)!==(u>>>16^65535)){e.msg="invalid stored block lengths",n.mode=ke;break}if(n.length=u&65535,u=0,f=0,n.mode=Vd,t===zf)break e;case Vd:n.mode=K2;case K2:if(d=n.length,d){if(d>s&&(d=s),d>c&&(d=c),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,c-=d,o+=d,n.length-=d;break}n.mode=sr;break;case J2:for(;f<14;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(n.nlen=(u&31)+257,u>>>=5,f-=5,n.ndist=(u&31)+1,u>>>=5,f-=5,n.ncode=(u&15)+4,u>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=ke;break}n.have=0,n.mode=$2;case $2:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.lens[Y[n.have++]]=u&7,u>>>=3,f-=3}for(;n.have<19;)n.lens[Y[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,N={bits:n.lenbits},z=cu(x5,n.lens,0,19,n.lencode,0,n.work,N),n.lenbits=N.bits,z){e.msg="invalid code lengths set",n.mode=ke;break}n.have=0,n.mode=eA;case eA:for(;n.have<n.nlen+n.ndist;){for(;x=n.lencode[u&(1<<n.lenbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(_<16)u>>>=A,f-=A,n.lens[n.have++]=_;else{if(_===16){for(F=A+2;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(u>>>=A,f-=A,n.have===0){e.msg="invalid bit length repeat",n.mode=ke;break}S=n.lens[n.have-1],d=3+(u&3),u>>>=2,f-=2}else if(_===17){for(F=A+3;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}u>>>=A,f-=A,S=0,d=3+(u&7),u>>>=3,f-=3}else{for(F=A+7;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}u>>>=A,f-=A,S=0,d=11+(u&127),u>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=ke;break}for(;d--;)n.lens[n.have++]=S}}if(n.mode===ke)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=ke;break}if(n.lenbits=9,N={bits:n.lenbits},z=cu(L2,n.lens,0,n.nlen,n.lencode,0,n.work,N),n.lenbits=N.bits,z){e.msg="invalid literal/lengths set",n.mode=ke;break}if(n.distbits=6,n.distcode=n.distdyn,N={bits:n.distbits},z=cu(z2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,N),n.distbits=N.bits,z){e.msg="invalid distances set",n.mode=ke;break}if(n.mode=Pf,t===zf)break e;case Pf:n.mode=Uf;case Uf:if(s>=6&&c>=258){e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=u,n.bits=f,p5(e,h),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,u=n.hold,f=n.bits,n.mode===sr&&(n.back=-1);break}for(n.back=0;x=n.lencode[u&(1<<n.lenbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(D&&!(D&240)){for(C=A,T=D,B=_;x=n.lencode[B+((u&(1<<C+T)-1)>>C)],A=x>>>24,D=x>>>16&255,_=x&65535,!(C+A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}u>>>=C,f-=C,n.back+=C}if(u>>>=A,f-=A,n.back+=A,n.length=_,D===0){n.mode=aA;break}if(D&32){n.back=-1,n.mode=sr;break}if(D&64){e.msg="invalid literal/length code",n.mode=ke;break}n.extra=D&15,n.mode=tA;case tA:if(n.extra){for(F=n.extra;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=nA;case nA:for(;x=n.distcode[u&(1<<n.distbits)-1],A=x>>>24,D=x>>>16&255,_=x&65535,!(A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(!(D&240)){for(C=A,T=D,B=_;x=n.distcode[B+((u&(1<<C+T)-1)>>C)],A=x>>>24,D=x>>>16&255,_=x&65535,!(C+A<=f);){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}u>>>=C,f-=C,n.back+=C}if(u>>>=A,f-=A,n.back+=A,D&64){e.msg="invalid distance code",n.mode=ke;break}n.offset=_,n.extra=D&15,n.mode=rA;case rA:if(n.extra){for(F=n.extra;f<F;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=ke;break}n.mode=iA;case iA:if(c===0)break e;if(d=h-c,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=ke;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=o-n.offset,d=n.length;d>c&&(d=c),c-=d,n.length-=d;do i[o++]=b[p++];while(--d);n.length===0&&(n.mode=Uf);break;case aA:if(c===0)break e;i[o++]=n.length,c--,n.mode=Uf;break;case Zd:if(n.wrap){for(;f<32;){if(s===0)break e;s--,u|=r[a++]<<f,f+=8}if(h-=c,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?nt(n.check,i,h,o-h):eu(n.check,i,h,o-h)),h=c,n.wrap&4&&(n.flags?u:fA(u))!==n.check){e.msg="incorrect data check",n.mode=ke;break}u=0,f=0}n.mode=oA;case oA:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,u+=r[a++]<<f,f+=8}if(n.wrap&4&&u!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=ke;break}u=0,f=0}n.mode=sA;case sA:z=v5;break e;case ke:z=O2;break e;case uA:return P2;case cA:default:return en}return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=u,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<ke&&(n.mode<Zd||t!==R2))&&mA(e,e.output,e.next_out,h-e.avail_out),l-=e.avail_in,h-=e.avail_out,e.total_in+=l,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?nt(n.check,i,h,e.next_out-h):eu(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===sr?128:0)+(n.mode===Pf||n.mode===Vd?256:0),(l===0&&h===0||t===R2)&&z===Yi&&(z=C5),z},B5=e=>{if(Wi(e))return en;let t=e.state;return t.window&&(t.window=null),e.state=null,Yi},F5=(e,t)=>{if(Wi(e))return en;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,Yi):en},k5=(e,t)=>{const n=t.length;let r,i,a;return Wi(e)||(r=e.state,r.wrap!==0&&r.mode!==Of)?en:r.mode===Of&&(i=1,i=eu(i,t,n,0),i!==r.check)?O2:(a=mA(e,t,n,n),a?(r.mode=uA,P2):(r.havedict=1,Yi))};var L5=hA,z5=dA,R5=lA,O5=M5,P5=gA,U5=N5,j5=B5,G5=F5,H5=k5,Q5="pako inflate (from Nodeca project)",ur={inflateReset:L5,inflateReset2:z5,inflateResetKeep:R5,inflateInit:O5,inflateInit2:P5,inflate:U5,inflateEnd:j5,inflateGetHeader:G5,inflateSetDictionary:H5,inflateInfo:Q5};function V5(){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 Z5=V5;const bA=Object.prototype.toString,{Z_NO_FLUSH:Y5,Z_FINISH:W5,Z_OK:fu,Z_STREAM_END:qd,Z_NEED_DICT:Xd,Z_STREAM_ERROR:q5,Z_DATA_ERROR:yA,Z_MEM_ERROR:X5}=tu;function lu(e){this.options=Ff.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new M2,this.strm.avail_out=0;let n=ur.inflateInit2(this.strm,t.windowBits);if(n!==fu)throw new Error(Ja[n]);if(this.header=new Z5,ur.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=uu.string2buf(t.dictionary):bA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=ur.inflateSetDictionary(this.strm,t.dictionary),n!==fu)))throw new Error(Ja[n])}lu.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?W5:Y5,bA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,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=ur.inflate(n,o),a===Xd&&i&&(a=ur.inflateSetDictionary(n,i),a===fu?a=ur.inflate(n,o):a===yA&&(a=Xd));n.avail_in>0&&a===qd&&n.state.wrap>0&&e[n.next_in]!==0;)ur.inflateReset(n),a=ur.inflate(n,o);switch(a){case q5:case yA:case Xd:case X5:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===qd))if(this.options.to==="string"){let c=uu.utf8border(n.output,n.next_out),u=n.next_out-c,f=uu.buf2string(n.output,c);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(c,c+u),0),this.onData(f)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===fu&&s===0)){if(a===qd)return a=ur.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},lu.prototype.onData=function(e){this.chunks.push(e)},lu.prototype.onEnd=function(e){e===fu&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ff.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Kd(e,t){const n=new lu(t);if(n.push(e),n.err)throw n.msg||Ja[n.err];return n.result}function K5(e,t){return t=t||{},t.raw=!0,Kd(e,t)}var J5=lu,$5=Kd,eL=K5,tL=Kd,nL=tu,rL={Inflate:J5,inflate:$5,inflateRaw:eL,ungzip:tL,constants:nL};const{Inflate:BR,inflate:FR,inflateRaw:iL,ungzip:kR}=rL;var aL=iL;function oL(e){return aL(e.subarray(2))}class sL extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}}function uL(e){e.sort((i,a)=>Number(i.offset)-Number(a.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function jf(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new sL("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const cL=1,fL=2,lL=3;function Jd(e,t,n,r){return e<r&&t>=n}function hL(e){const t=e?"big":"little",n=new ne().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new ne().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new ne().endianess(t).array("blocksToFetch",{length:"cnt",type:new ne().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new ne().array("recurOffsets",{length:"cnt",type:new ne().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new ne().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new ne().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[lL]:new ne().array("items",{length:"itemCount",type:new ne().floatle("score")}),[fL]:new ne().array("items",{length:"itemCount",type:new ne().endianess(t).int32("start").floatle("score")}),[cL]:new ne().array("items",{length:"itemCount",type:new ne().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class wA{constructor(t,n,r,i,a,o){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new Ad({cache:new Kx({maxSize:1e3}),fill:async(c,u)=>{const f=Number(c.length),l=Number(c.offset),{buffer:h}=await this.bbi.read(zt.Buffer.alloc(f),0,f,l,{signal:u});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=hL(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:c,isBigEndian:u}=this,f=o[t];f===void 0&&i.complete();const l={chrId:f,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(zt.Buffer.alloc(48),0,48,Number(c),a));const{buffer:h}=await this.cirTreePromise,d=u?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],b=0;const x=(C,T,B)=>{try{const S=C.subarray(T),z=this.leafParser.parse(S);if(z.blocksToFetch&&(p=p.concat(z.blocksToFetch.filter(E=>A(E)).map(E=>({offset:E.blockOffset,length:E.blockSize})))),z.recurOffsets){const E=z.recurOffsets.filter(N=>A(N)).map(N=>Number(N.blockOffset));E.length>0&&_(E,B+1)}}catch(S){i.error(S)}},A=C=>{const{startChrom:T,startBase:B,endChrom:S,endBase:z}=C;return(T<f||T===f&&B<=r)&&(S>f||S===f&&z>=n)},D=async(C,T,B)=>{try{const S=T.max()-T.min(),z=T.min(),E=await this.featureCache.get(`${S}_${z}`,{length:S,offset:z},a==null?void 0:a.signal);for(const N of C)T.contains(N)&&(x(E,N-z,B),b-=1,b===0&&this.readFeatures(i,p,{...a,request:l}))}catch(S){i.error(S)}},_=(C,T)=>{try{b+=C.length;const B=4+Number(d)*32;let S=new Zr(C[0],C[0]+B);for(let z=1;z<C.length;z+=1){const E=new Zr(C[z],C[z]+B);S=S.union(E)}S.getRanges().map(z=>D(C,z,T))}catch(B){i.error(B)}};return _([Number(c)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(t,n,r){const i=[];let a=n;const o=new DataView(t.buffer,t.byteOffset,t.length);for(;a<t.byteLength;){const s=o.getUint32(a,!0);a+=4;const c=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const f=o.getUint32(a,!0);a+=4;const l=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&&Jd(c,u,r.start,r.end))&&i.push({start:c,end:u,maxScore:h,minScore:l,summary:!0,score:d/(f||1)})}return i}parseBigBedBlock(t,n,r,i){const a=[];let o=n;for(;o<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(o));a.push({...s,uniqueId:`bb-${r+o}`}),o+=s.offset}return i?a.filter(s=>Jd(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(t,n,r){const i=t.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 c=a.getUint32(o,!0);o+=4;const u=a.getUint32(o,!0);o+=4;const f=a.getUint8(o);o+=2;const l=a.getUint16(o,!0);o+=2;const h=new Array(l);switch(f){case 1:{for(let d=0;d<l;d++){const p=a.getInt32(o,!0);o+=4;const b=a.getInt32(o,!0);o+=4;const x=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:b,score:x}}break}case 2:{for(let d=0;d<l;d++){const p=a.getInt32(o,!0);o+=4;const b=a.getFloat32(o,!0);o+=4,h[d]={score:b,start:p,end:p+u}}break}case 3:{for(let d=0;d<l;d++){const p=a.getFloat32(o,!0);o+=4;const b=s+d*c;h[d]={score:p,start:b,end:b+u}}break}}return r?h.filter(d=>Jd(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,c=uL(n);jf(o),await Promise.all(c.map(async u=>{jf(o);const{length:f,offset:l}=u,h=await this.featureCache.get(`${f}_${l}`,u,o);for(const d of u.blocks){jf(o);let p=Number(d.offset)-Number(u.offset),b=h;switch(a&&(b=oL(h.subarray(p)),p=0),jf(o),i){case"summary":{t.next(this.parseSummaryBlock(b,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(b,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(b,p,Number(d.offset)*(1<<8),s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var $d=function(e,t){return $d=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])},$d(e,t)};function eg(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");$d(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function dL(e,t,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(f){try{u(r.next(f))}catch(l){o(l)}}function c(f){try{u(r.throw(f))}catch(l){o(l)}}function u(f){f.done?a(f.value):i(f.value).then(s,c)}u((r=r.apply(e,t||[])).next())})}function xA(e,t){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(f){return c([u,f])}}function c(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=t.call(e,n)}catch(f){u=[6,f],i=0}finally{r=a=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function hu(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Gf(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >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 Hf(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function ao(e){return this instanceof ao?(this.v=e,this):new ao(e)}function gL(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),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(p,b){a.push([h,d,p,b])>1||s(h,d)})})}function s(h,d){try{c(r[h](d))}catch(p){l(a[0][3],p)}}function c(h){h.value instanceof ao?Promise.resolve(h.value.v).then(u,f):l(a[0][2],h)}function u(h){s("next",h)}function f(h){s("throw",h)}function l(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function pL(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof hu=="function"?hu(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(s,c){o=e[a](o),i(s,c,o.done,o.value)})}}function i(a,o,s,c){Promise.resolve(c).then(function(u){a({value:u,done:s})},o)}}function Ye(e){return typeof e=="function"}function AA(e){var t=function(r){Error.call(r),r.stack=new Error().stack},n=e(t);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var tg=AA(function(e){return function(n){e(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 aA(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Hd=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,o;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=ou(a),c=s.next();!c.done;c=s.next()){var u=c.value;u.remove(this)}}catch(b){t={error:b}}finally{try{c&&!c.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else a.remove(this);var f=this.initialTeardown;if(Ze(f))try{f()}catch(b){o=b instanceof Gd?b.errors:[b]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var h=ou(l),d=h.next();!d.done;d=h.next()){var p=d.value;try{uA(p)}catch(b){o=o??[],b instanceof Gd?o=Tf(Tf([],Mf(o)),Mf(b.errors)):o.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(o)throw new Gd(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)uA(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}},e.prototype._hasParent=function(t){var n=this._parentage;return n===t||Array.isArray(n)&&n.includes(t)},e.prototype._addParent=function(t){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t},e.prototype._removeParent=function(t){var n=this._parentage;n===t?this._parentage=null:Array.isArray(n)&&aA(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&aA(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Hd.EMPTY;function sA(e){return e instanceof Hd||e&&"closed"in e&&Ze(e.remove)&&Ze(e.add)&&Ze(e.unsubscribe)}function uA(e){Ze(e)?e():e.unsubscribe()}var cA={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Qd={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=Qd.delegate;return i!=null&&i.setTimeout?i.setTimeout.apply(i,Tf([e,t],Mf(n))):setTimeout.apply(void 0,Tf([e,t],Mf(n)))},clearTimeout:function(e){var t=Qd.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function fA(e){Qd.setTimeout(function(){throw e})}function lA(){}function lL(e){e()}var Vd=function(e){jd(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,sA(n)&&n.add(r)):r.destination=pL,r}return t.create=function(n,r,i){return new Nf(n,r,i)},t.prototype.next=function(n){this.isStopped||this._next(n)},t.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(n){this.destination.next(n)},t.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(Hd),hL=Function.prototype.bind;function Zd(e,t){return hL.call(e,t)}var dL=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var n=this.partialObserver;if(n.next)try{n.next(t)}catch(r){Bf(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Bf(r)}else Bf(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Bf(n)}},e}(),Nf=function(e){jd(t,e);function t(n,r,i){var o=e.call(this)||this,a;if(Ze(n)||!n)a={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;o&&cA.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return o.unsubscribe()},a={next:n.next&&Zd(n.next,s),error:n.error&&Zd(n.error,s),complete:n.complete&&Zd(n.complete,s)}):a=n}return o.destination=new dL(a),o}return t}(Vd);function Bf(e){fA(e)}function gL(e){throw e}var pL={closed:!0,next:lA,error:gL,complete:lA},Yd=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function hA(e){return e}function mL(e){return e.length===0?hA:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var Jt=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,o=yL(t)?t:new Nf(t,n,r);return lL(function(){var a=i,s=a.operator,c=a.source;o.add(s?s.call(o,c):c?i._subscribe(o):i._trySubscribe(o))}),o},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=dA(n),new n(function(i,o){var a=new Nf({next:function(s){try{t(s)}catch(c){o(c),a.unsubscribe()}},error:o,complete:i});r.subscribe(a)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Yd]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return mL(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=dA(t),new t(function(r,i){var o;n.subscribe(function(a){return o=a},function(a){return i(a)},function(){return r(o)})})},e.create=function(t){return new e(t)},e}();function dA(e){var t;return(t=e??cA.Promise)!==null&&t!==void 0?t:Promise}function bL(e){return e&&Ze(e.next)&&Ze(e.error)&&Ze(e.complete)}function yL(e){return e&&e instanceof Vd||bL(e)&&sA(e)}function wL(e){return Ze(e==null?void 0:e.lift)}function ia(e){return function(t){if(wL(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function au(e,t,n,r,i){return new xL(e,t,n,r,i)}var xL=function(e){jd(t,e);function t(n,r,i,o,a,s){var c=e.call(this,n)||this;return c.onFinalize=a,c.shouldUnsubscribe=s,c._next=r?function(u){try{r(u)}catch(f){n.error(f)}}:e.prototype._next,c._error=o?function(u){try{o(u)}catch(f){n.error(f)}finally{this.unsubscribe()}}:e.prototype._error,c._complete=i?function(){try{i()}catch(u){n.error(u)}finally{this.unsubscribe()}}:e.prototype._complete,c}return t.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},t}(Vd),AL=new Jt(function(e){return e.complete()});function vL(e){return e&&Ze(e.schedule)}function gA(e){return e[e.length-1]}function EL(e){return vL(gA(e))?e.pop():void 0}function CL(e,t){return typeof gA(e)=="number"?e.pop():t}var pA=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function mA(e){return Ze(e==null?void 0:e.then)}function bA(e){return Ze(e[Yd])}function yA(e){return Symbol.asyncIterator&&Ze(e==null?void 0:e[Symbol.asyncIterator])}function wA(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function SL(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var xA=SL();function AA(e){return Ze(e==null?void 0:e[xA])}function vA(e){return cL(this,arguments,function(){var n,r,i,o;return iA(this,function(a){switch(a.label){case 0:n=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,ra(n.read())];case 3:return r=a.sent(),i=r.value,o=r.done,o?[4,ra(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,ra(i)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function EA(e){return Ze(e==null?void 0:e.getReader)}function oa(e){if(e instanceof Jt)return e;if(e!=null){if(bA(e))return DL(e);if(pA(e))return IL(e);if(mA(e))return _L(e);if(yA(e))return CA(e);if(AA(e))return ML(e);if(EA(e))return TL(e)}throw wA(e)}function DL(e){return new Jt(function(t){var n=e[Yd]();if(Ze(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function IL(e){return new Jt(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function _L(e){return new Jt(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,fA)})}function ML(e){return new Jt(function(t){var n,r;try{for(var i=ou(e),o=i.next();!o.done;o=i.next()){var a=o.value;if(t.next(a),t.closed)return}}catch(s){n={error:s}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function CA(e){return new Jt(function(t){NL(e,t).catch(function(n){return t.error(n)})})}function TL(e){return CA(vA(e))}function NL(e,t){var n,r,i,o;return uL(this,void 0,void 0,function(){var a,s;return iA(this,function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),n=fL(e),c.label=1;case 1:return[4,n.next()];case 2:if(r=c.sent(),!!r.done)return[3,4];if(a=r.value,t.next(a),t.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=c.sent(),i={error:s},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(o=n.return)?[4,o.call(n)]:[3,8];case 7:c.sent(),c.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Wr(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var o=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(o),!i)return o}function SA(e,t){return t===void 0&&(t=0),ia(function(n,r){n.subscribe(au(r,function(i){return Wr(r,e,function(){return r.next(i)},t)},function(){return Wr(r,e,function(){return r.complete()},t)},function(i){return Wr(r,e,function(){return r.error(i)},t)}))})}function DA(e,t){return t===void 0&&(t=0),ia(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function BL(e,t){return oa(e).pipe(DA(t),SA(t))}function FL(e,t){return oa(e).pipe(DA(t),SA(t))}function kL(e,t){return new Jt(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function LL(e,t){return new Jt(function(n){var r;return Wr(n,t,function(){r=e[xA](),Wr(n,t,function(){var i,o,a;try{i=r.next(),o=i.value,a=i.done}catch(s){n.error(s);return}a?n.complete():n.next(o)},0,!0)}),function(){return Ze(r==null?void 0:r.return)&&r.return()}})}function IA(e,t){if(!e)throw new Error("Iterable cannot be null");return new Jt(function(n){Wr(n,t,function(){var r=e[Symbol.asyncIterator]();Wr(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function zL(e,t){return IA(vA(e),t)}function RL(e,t){if(e!=null){if(bA(e))return BL(e,t);if(pA(e))return kL(e,t);if(mA(e))return FL(e,t);if(yA(e))return IA(e,t);if(AA(e))return LL(e,t);if(EA(e))return zL(e,t)}throw wA(e)}function OL(e,t){return t?RL(e,t):oa(e)}var PL=oA(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function _A(e,t){var n=typeof t=="object";return new Promise(function(r,i){var o=new Nf({next:function(a){r(a),o.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new PL)}});e.subscribe(o)})}function MA(e,t){return ia(function(n,r){var i=0;n.subscribe(au(r,function(o){r.next(e.call(t,o,i++))}))})}function UL(e,t,n,r,i,o,a,s){var c=[],u=0,f=0,l=!1,h=function(){l&&!c.length&&!u&&t.complete()},d=function(b){return u<r?p(b):c.push(b)},p=function(b){o&&t.next(b),u++;var x=!1;oa(n(b,f++)).subscribe(au(t,function(A){i==null||i(A),o?d(A):t.next(A)},function(){x=!0},void 0,function(){if(x)try{u--;for(var A=function(){var D=c.shift();a?Wr(t,a,function(){return p(D)}):p(D)};c.length&&u<r;)A();h()}catch(D){t.error(D)}}))};return e.subscribe(au(t,d,function(){l=!0,h()})),function(){s==null||s()}}function TA(e,t,n){return n===void 0&&(n=1/0),Ze(t)?TA(function(r,i){return MA(function(o,a){return t(r,o,i,a)})(oa(e(r,i)))},n):(typeof t=="number"&&(n=t),ia(function(r,i){return UL(r,i,e,n)}))}function jL(e){return e===void 0&&(e=1/0),TA(hA,e)}function GL(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=EL(e),r=CL(e,1/0),i=e;return i.length?i.length===1?oa(i[0]):jL(r)(OL(i,n)):AL}function HL(e,t,n,r,i){return function(o,a){var s=n,c=t,u=0;o.subscribe(au(a,function(f){var l=u++;c=s?e(c,f,l):(s=!0,f),r&&a.next(c)},i&&function(){s&&a.next(c),a.complete()}))}}function NA(e,t){return ia(HL(e,t,arguments.length>=2,!1,!0))}var QL=function(e,t){return e.push(t),e};function VL(){return ia(function(e,t){NA(QL,[])(e).subscribe(t)})}const BA=-2003829722,qd=-2021002517;function ZL(e){return new TextDecoder().decode(e)}function FA(e){const t=e?"big":"little",n=new ee().endianess(t).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 ee().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new ee().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new ee().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),o=new ee().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:o}}class kA{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=a=>a,path:i,url:o}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(o)this.bbi=new tr(o);else if(i)this.bbi=new Lr(i);else throw new Error("no file given")}async _getHeader(t){const n=await this._getMainHeader(t),r=await this._readChromTree(n,t);return{...n,...r}}async _getMainHeader(t,n=2e3){const{buffer:r}=await this.bbi.read(kt.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),o=FA(i),a=o.headerParser.parse(r),{magic:s,asOffset:c,totalSummaryOffset:u}=a;if(a.fileType=s===qd?"bigbed":"bigwig",c>n||u>n)return this._getMainHeader(t,n*2);if(c){const f=Number(a.asOffset);a.autoSql=ZL(r.subarray(f,r.indexOf(0,f)))}if(a.totalSummaryOffset>n)return this._getMainHeader(t,n*2);if(a.totalSummaryOffset){const f=r.subarray(Number(a.totalSummaryOffset)),l=o.totalSummaryParser.parse(f);a.totalSummary={...l,basesCovered:Number(l.basesCovered)}}return{...a,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===BA||n===qd)return!1;if(n=t.readInt32BE(0),n===BA||n===qd)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",o=[],a={};let s=Number(t.unzoomedDataOffset);const c=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const u=s-c,{buffer:f}=await this.bbi.read(kt.Buffer.alloc(u),0,u,Number(c),n),l=FA(r),{keySize:h}=l.chromTreeParser.parse(f),d=new ee().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new ee().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,x=async A=>{let D=A;if(D>=f.length)throw new Error("reading beyond end of buffer");const _=l.isLeafNode.parse(f.subarray(D)),{isLeafNode:C,cnt:T}=_;if(D+=_.offset,C)for(let B=0;B<T;B+=1){const S=d.parse(f.subarray(D));D+=S.offset;const{key:z,refId:E,refSize:N}=S,F={name:z,id:E,length:N};a[this.renameRefSeqs(z)]=E,o[E]=F}else{const B=[];for(let S=0;S<T;S+=1){const z=p.parse(f.subarray(D)),{childOffset:E}=z;D+=z.offset,B.push(x(Number(E)-Number(c)))}await Promise.all(B)}};return await x(b),{refsByName:a,refsByNumber:o}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:o,fileType:a}=await this.getHeader(t);return new rA(this.bbi,r,n,o,i>0,a)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const o=this.renameRefSeqs(t);let a;const{basesPerSpan:s,scale:c}=i||{};return s?a=await this.getView(1/s,i):c?a=await this.getView(c,i):a=await this.getView(1,i),new Jt(u=>{a.readWigData(o,n,r,u,i)})}async getFeatures(t,n,r,i){const o=await this.getFeatureStream(t,n,r,i);return(await _A(o.pipe(VL()))).flat()}}class YL extends kA{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:o,isBigEndian:a,uncompressBufSize:s}=await this.getHeader(n),c=1/t;let u=r.length;o||(u-=1);for(let f=u;f>=0;f-=1){const l=r[f];if(l&&l.reductionLevel<=2*c){const h=Number(l.indexOffset);return new rA(this.bbi,i,h,a,s>0,"summary")}}return this.getUnzoomedView(n)}}function qL(e){return e.filter(t=>!!t)}class WL extends kA{constructor(){super(...arguments),this.readIndicesCache=new ud({cache:new Lx({maxSize:1}),fill:(t,n)=>this._readIndices({...t,signal:n})})}readIndices(t={}){const{signal:n,...r}=t;return this.readIndicesCache.get(JSON.stringify(r),t,n)}async getView(t,n){return this.getUnzoomedView(n)}async _readIndices(t){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(t),{buffer:i}=await this.bbi.read(kt.Buffer.alloc(64),0,64,Number(n)),o=r?"big":"little",a=new ee().endianess(o).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:c}=a;if(s===0)return[];const u=20,f=u*s,{buffer:l}=await this.bbi.read(kt.Buffer.alloc(f),0,f,Number(c)),h=new ee().endianess(o).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(l.subarray(p*u)));return d}async searchExtraIndexBlocks(t,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const o=i.map(async a=>{const{offset:s,field:c}=a,{buffer:u}=await this.bbi.read(kt.Buffer.alloc(32),0,32,Number(s),n),f=r?"big":"little",l=new ee().endianess(f).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=l.parse(u),b=new ee().endianess(f).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new ee().array("leafkeys",{length:"cnt",type:new ee().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new ee().array("keys",{length:"cnt",type:new ee().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),x=async D=>{const _=Number(D),C=4+h*(d+p),{buffer:T}=await this.bbi.read(kt.Buffer.alloc(C),0,C,_,n),B=b.parse(T);if(B.leafkeys){let S;for(let z=0;z<B.leafkeys.length;z+=1){const{key:E}=B.leafkeys[z];if(t.localeCompare(E)<0&&S)return x(S);S=B.leafkeys[z].offset}return x(S)}for(let S=0;S<B.keys.length;S+=1)if(B.keys[S].key===t)return{...B.keys[S],field:c}},A=32;return x(Number(s)+A)});return qL(await Promise.all(o))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),o=r.map(s=>new Jt(c=>{i.readFeatures(c,[s],n)}).pipe(NA((c,u)=>c.concat(u)),MA(c=>{for(const u of c)u.field=s.field;return c})));return(await _A(GL(...o))).filter(s=>{var c;return((c=s.rest)===null||c===void 0?void 0:c.split(" ")[(s.field||0)-3])===t})}}function Wd(e,t,n=!0){let r,i=a=>{};return function(...s){return new Promise((c,u)=>{const f=()=>{clearTimeout(r),i=l=>{},c(e(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=setTimeout(f,t)})}}class XL extends uf(Fo){constructor(n,r){const i={pixelsPerBin:2,channel:"x",...n};super(r,i.channel);Vn(this,"reductionLevels",[]);Vn(this,"lastRequestId",0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.bbi=new YL({filehandle:new tr(cf(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=Wd(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(o=>{this.reductionLevels=o.zoomLevels.map(a=>a.reductionLevel).reverse(),this.reductionLevels.push(1)})}async onDomainChanged(n){await this.headerPromise;const r=this.getAxisLength()||700,i=KL(n,r,this.reductionLevels),o=Math.max(i*r,5e3),a=this.quantizeInterval(n,o);this.checkAndUpdateLastInterval(a)&&this.doDebouncedRequest(a,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 o=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),s=await Promise.all(a.map(c=>this.bbi.getFeatures(c.chrom,c.startPos,c.endPos,{scale:r,signal:o.signal}).then(u=>u.map(f=>({chrom:c.chrom,start:f.start,end:f.end,score:f.score})))));return{requestId:i,abort:()=>o.abort(),features:s.flat()}}}function KL(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}function JL(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function aa(e,t,n,r){this.message=e,this.expected=t,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,aa)}JL(aa,Error),aa.buildMessage=function(e,t){var n={literal:function(u){return'"'+i(u.text)+'"'},class:function(u){var f="",l;for(l=0;l<u.parts.length;l++)f+=u.parts[l]instanceof Array?o(u.parts[l][0])+"-"+o(u.parts[l][1]):o(u.parts[l]);return"["+(u.inverted?"^":"")+f+"]"},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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function o(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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function a(u){return n[u.type](u)}function s(u){var f=new Array(u.length),l,h;for(l=0;l<u.length;l++)f[l]=a(u[l]);if(f.sort(),f.length>0){for(l=1,h=1;l<f.length;l++)f[l-1]!==f[l]&&(f[h]=f[l],h++);f.length=h}switch(f.length){case 1:return f[0];case 2:return f[0]+" or "+f[1];default:return f.slice(0,-1).join(", ")+", or "+f[f.length-1]}}function c(u){return u?'"'+i(u)+'"':"end of input"}return"Expected "+s(e)+" but "+c(t)+" found."};function $L(e,t){t=t!==void 0?t:{};var n={},r={declaration:vv},i=vv,o="(",a=we("(",!1),s=")",c=we(")",!1),u=function(w,L,G,H){return{type:w,name:L,comment:G,fields:H}},f="simple",l=we("simple",!1),h="object",d=we("object",!1),p="table",b=we("table",!1),x="auto",A=we("auto",!1),D="primary",_=we("primary",!1),C="index",T=we("index",!1),B="unique",S=we("unique",!1),z=function(w,L){return L},E=function(w,L){return w.name&&L.unshift(w),L},N="#",F=we("#",!1),Z=";",W=we(";",!1),Y=function(w,L,G){return{type:w,name:L,comment:G}},ye="[",Ce=we("[",!1),Ye="]",wt=we("]",!1),xt=function(w,L,G,H){return{type:w,size:L,name:G,comment:H}},pu=function(w,L,G,H){return{type:w,vals:L,name:G,comment:H}},Oe=",",qe=we(",",!1),da=function(w,L){return L.unshift(w),L},Wi="int",ga=we("int",!1),Xi="uint",pa=we("uint",!1),vn="short",Q=we("short",!1),$="ushort",ie=we("ushort",!1),P="byte",Pe=we("byte",!1),se="ubyte",ut=we("ubyte",!1),nt="float",Ot=we("float",!1),Ki="char",cg=we("char",!1),mu="string",ma=we("string",!1),Pt="lstring",bu=we("lstring",!1),Pf="enum",Hn=we("enum",!1),Uf="double",y=we("double",!1),g="bigint",m=we("bigint",!1),v="set",M=we("set",!1),k=function(w,L){return w+" "+L},O=/^[a-zA-Z_]/,te=yu([["a","z"],["A","Z"],"_"],!1,!1),_e=/^[a-zA-Z0-9_]/,xe=yu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),ke=function(w){return yv()},pe=/^[^\n\r]/,dv=yu([`
178
- `,"\r"],!0,!1),D9=function(w){return w.join("").replace(/^"/,"").replace(/"$/,"")},I9=wv("integer"),gv=/^[0-9]/,pv=yu([["0","9"]],!1,!1),_9=function(){return parseInt(yv(),10)},M9=wv("whitespace"),mv=/^[ \t\n\r]/,bv=yu([" "," ",`
179
- `,"\r"],!1,!1),I=0,At=0,jf=[{line:1,column:1}],Qn=0,fg=[],X=0,Gf;if("startRule"in t){if(!(t.startRule in r))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');i=r[t.startRule]}function yv(){return e.substring(At,I)}function we(w,L){return{type:"literal",text:w,ignoreCase:L}}function yu(w,L,G){return{type:"class",parts:w,inverted:L,ignoreCase:G}}function T9(){return{type:"end"}}function wv(w){return{type:"other",description:w}}function xv(w){var L=jf[w],G;if(L)return L;for(G=w-1;!jf[G];)G--;for(L=jf[G],L={line:L.line,column:L.column};G<w;)e.charCodeAt(G)===10?(L.line++,L.column=1):L.column++,G++;return jf[w]=L,L}function Av(w,L){var G=xv(w),H=xv(L);return{start:{offset:w,line:G.line,column:G.column},end:{offset:L,line:H.line,column:H.column}}}function K(w){I<Qn||(I>Qn&&(Qn=I,fg=[]),fg.push(w))}function N9(w,L,G){return new aa(aa.buildMessage(w,L),w,L,G)}function vv(){var w,L,G,H,q,Se,Le,on,Kr,hr,Jr,dr,$r,gr;return w=I,L=ue(),L!==n?(G=Ev(),G!==n?(H=ue(),H!==n?(q=Cv(),q!==n?(Se=ue(),Se!==n?(Le=Hf(),Le!==n?(on=ue(),on!==n?(e.charCodeAt(I)===40?(Kr=o,I++):(Kr=n,X===0&&K(a)),Kr!==n?(hr=ue(),hr!==n?(Jr=B9(),Jr!==n?(dr=ue(),dr!==n?(e.charCodeAt(I)===41?($r=s,I++):($r=n,X===0&&K(c)),$r!==n?(gr=ue(),gr!==n?(At=w,L=u(G,q,Le,Jr),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w}function Ev(){var w;return e.substr(I,6)===f?(w=f,I+=6):(w=n,X===0&&K(l)),w===n&&(e.substr(I,6)===h?(w=h,I+=6):(w=n,X===0&&K(d)),w===n&&(e.substr(I,5)===p?(w=p,I+=5):(w=n,X===0&&K(b)))),w}function Cv(){var w,L,G,H;return w=En(),w===n&&(w=I,L=En(),L!==n?(G=Sv(),G!==n?(L=[L,G],w=L):(I=w,w=n)):(I=w,w=n),w===n&&(w=I,L=En(),L!==n?(e.substr(I,4)===x?(G=x,I+=4):(G=n,X===0&&K(A)),G!==n?(L=[L,G],w=L):(I=w,w=n)):(I=w,w=n),w===n&&(w=I,L=En(),L!==n?(G=Sv(),G!==n?(e.substr(I,4)===x?(H=x,I+=4):(H=n,X===0&&K(A)),H!==n?(L=[L,G,H],w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)))),w}function Sv(){var w;return e.substr(I,7)===D?(w=D,I+=7):(w=n,X===0&&K(_)),w===n&&(e.substr(I,5)===C?(w=C,I+=5):(w=n,X===0&&K(T)),w===n&&(e.substr(I,6)===B?(w=B,I+=6):(w=n,X===0&&K(S)))),w}function Hf(){var w;return w=Dv(),w===n&&(w=ue()),w}function B9(){var w,L,G,H,q,Se,Le;if(w=I,L=lg(),L!==n)if(G=ue(),G!==n){for(H=[],q=I,Se=ue(),Se!==n?(Le=lg(),Le!==n?(At=q,Se=z(L,Le),q=Se):(I=q,q=n)):(I=q,q=n);q!==n;)H.push(q),q=I,Se=ue(),Se!==n?(Le=lg(),Le!==n?(At=q,Se=z(L,Le),q=Se):(I=q,q=n)):(I=q,q=n);H!==n?(q=ue(),q!==n?(At=w,L=E(L,H),w=L):(I=w,w=n)):(I=w,w=n)}else I=w,w=n;else I=w,w=n;return w}function F9(){var w;return e.charCodeAt(I)===35?(w=N,I++):(w=n,X===0&&K(F)),w}function k9(){var w,L,G,H,q;return w=I,L=ue(),L!==n?(G=F9(),G!==n?(H=Dv(),H!==n?(q=ue(),q!==n?(L=[L,G,H,q],w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w}function lg(){var w,L,G,H,q,Se,Le,on,Kr,hr,Jr,dr,$r,gr;return w=I,L=hg(),L!==n?(G=ue(),G!==n?(H=En(),H!==n?(q=ue(),q!==n?(e.charCodeAt(I)===59?(Se=Z,I++):(Se=n,X===0&&K(W)),Se!==n?(Le=ue(),Le!==n?(on=Hf(),on!==n?(At=w,L=Y(L,H,on),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w===n&&(w=I,L=hg(),L!==n?(G=ue(),G!==n?(e.charCodeAt(I)===91?(H=ye,I++):(H=n,X===0&&K(Ce)),H!==n?(q=ue(),q!==n?(Se=z9(),Se!==n?(Le=ue(),Le!==n?(e.charCodeAt(I)===93?(on=Ye,I++):(on=n,X===0&&K(wt)),on!==n?(Kr=ue(),Kr!==n?(hr=En(),hr!==n?(Jr=ue(),Jr!==n?(e.charCodeAt(I)===59?(dr=Z,I++):(dr=n,X===0&&K(W)),dr!==n?($r=ue(),$r!==n?(gr=Hf(),gr!==n?(At=w,L=xt(L,Se,hr,gr),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w===n&&(w=I,L=hg(),L!==n?(G=ue(),G!==n?(e.charCodeAt(I)===40?(H=o,I++):(H=n,X===0&&K(a)),H!==n?(q=ue(),q!==n?(Se=L9(),Se!==n?(Le=ue(),Le!==n?(e.charCodeAt(I)===41?(on=s,I++):(on=n,X===0&&K(c)),on!==n?(Kr=ue(),Kr!==n?(hr=En(),hr!==n?(Jr=ue(),Jr!==n?(e.charCodeAt(I)===59?(dr=Z,I++):(dr=n,X===0&&K(W)),dr!==n?($r=ue(),$r!==n?(gr=Hf(),gr!==n?(At=w,L=pu(L,Se,hr,gr),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w===n&&(w=k9()))),w}function L9(){var w,L,G,H,q,Se,Le;if(w=I,L=En(),L!==n){for(G=[],H=I,e.charCodeAt(I)===44?(q=Oe,I++):(q=n,X===0&&K(qe)),q!==n?(Se=ue(),Se!==n?(Le=En(),Le!==n?(At=H,q=z(L,Le),H=q):(I=H,H=n)):(I=H,H=n)):(I=H,H=n);H!==n;)G.push(H),H=I,e.charCodeAt(I)===44?(q=Oe,I++):(q=n,X===0&&K(qe)),q!==n?(Se=ue(),Se!==n?(Le=En(),Le!==n?(At=H,q=z(L,Le),H=q):(I=H,H=n)):(I=H,H=n)):(I=H,H=n);G!==n?(At=w,L=da(L,G),w=L):(I=w,w=n)}else I=w,w=n;return w}function hg(){var w,L,G,H;return e.substr(I,3)===Wi?(w=Wi,I+=3):(w=n,X===0&&K(ga)),w===n&&(e.substr(I,4)===Xi?(w=Xi,I+=4):(w=n,X===0&&K(pa)),w===n&&(e.substr(I,5)===vn?(w=vn,I+=5):(w=n,X===0&&K(Q)),w===n&&(e.substr(I,6)===$?(w=$,I+=6):(w=n,X===0&&K(ie)),w===n&&(e.substr(I,4)===P?(w=P,I+=4):(w=n,X===0&&K(Pe)),w===n&&(e.substr(I,5)===se?(w=se,I+=5):(w=n,X===0&&K(ut)),w===n&&(e.substr(I,5)===nt?(w=nt,I+=5):(w=n,X===0&&K(Ot)),w===n&&(e.substr(I,4)===Ki?(w=Ki,I+=4):(w=n,X===0&&K(cg)),w===n&&(e.substr(I,6)===mu?(w=mu,I+=6):(w=n,X===0&&K(ma)),w===n&&(e.substr(I,7)===Pt?(w=Pt,I+=7):(w=n,X===0&&K(bu)),w===n&&(e.substr(I,4)===Pf?(w=Pf,I+=4):(w=n,X===0&&K(Hn)),w===n&&(e.substr(I,6)===Uf?(w=Uf,I+=6):(w=n,X===0&&K(y)),w===n&&(e.substr(I,6)===g?(w=g,I+=6):(w=n,X===0&&K(m)),w===n&&(e.substr(I,3)===v?(w=v,I+=3):(w=n,X===0&&K(M)),w===n&&(w=I,L=Ev(),L!==n?(G=ue(),G!==n?(H=Cv(),H!==n?(At=w,L=k(L,H),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n))))))))))))))),w}function z9(){var w;return w=R9(),w===n&&(w=En()),w}function En(){var w,L,G,H,q;if(w=I,L=I,O.test(e.charAt(I))?(G=e.charAt(I),I++):(G=n,X===0&&K(te)),G!==n){for(H=[],_e.test(e.charAt(I))?(q=e.charAt(I),I++):(q=n,X===0&&K(xe));q!==n;)H.push(q),_e.test(e.charAt(I))?(q=e.charAt(I),I++):(q=n,X===0&&K(xe));H!==n?(G=[G,H],L=G):(I=L,L=n)}else I=L,L=n;return L!==n&&(At=w,L=ke()),w=L,w}function Dv(){var w,L,G;for(w=I,L=[],pe.test(e.charAt(I))?(G=e.charAt(I),I++):(G=n,X===0&&K(dv));G!==n;)L.push(G),pe.test(e.charAt(I))?(G=e.charAt(I),I++):(G=n,X===0&&K(dv));return L!==n&&(At=w,L=D9(L)),w=L,w}function R9(){var w,L,G,H;if(X++,w=I,L=ue(),L!==n){if(G=[],gv.test(e.charAt(I))?(H=e.charAt(I),I++):(H=n,X===0&&K(pv)),H!==n)for(;H!==n;)G.push(H),gv.test(e.charAt(I))?(H=e.charAt(I),I++):(H=n,X===0&&K(pv));else G=n;G!==n?(At=w,L=_9(),w=L):(I=w,w=n)}else I=w,w=n;return X--,w===n&&(L=n,X===0&&K(I9)),w}function ue(){var w,L;for(X++,w=[],mv.test(e.charAt(I))?(L=e.charAt(I),I++):(L=n,X===0&&K(bv));L!==n;)w.push(L),mv.test(e.charAt(I))?(L=e.charAt(I),I++):(L=n,X===0&&K(bv));return X--,w===n&&(L=n,X===0&&K(M9)),w}if(Gf=i(),Gf!==n&&I===e.length)return Gf;throw Gf!==n&&I<e.length&&K(T9()),N9(fg,Qn<e.length?e.charAt(Qn):null,Qn<e.length?Av(Qn,Qn+1):Av(Qn,Qn))}var LA={SyntaxError:aa,parse:$L};const ez=ko(LA),Xd=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
177
+ `):"",this.name="UnsubscriptionError",this.errors=n}});function vA(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var ng=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,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=hu(o),c=s.next();!c.done;c=s.next()){var u=c.value;u.remove(this)}}catch(b){t={error:b}}finally{try{c&&!c.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else o.remove(this);var f=this.initialTeardown;if(Ye(f))try{f()}catch(b){a=b instanceof tg?b.errors:[b]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var h=hu(l),d=h.next();!d.done;d=h.next()){var p=d.value;try{CA(p)}catch(b){a=a??[],b instanceof tg?a=Hf(Hf([],Gf(a)),Gf(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 tg(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)CA(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}},e.prototype._hasParent=function(t){var n=this._parentage;return n===t||Array.isArray(n)&&n.includes(t)},e.prototype._addParent=function(t){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t},e.prototype._removeParent=function(t){var n=this._parentage;n===t?this._parentage=null:Array.isArray(n)&&vA(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&vA(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();ng.EMPTY;function EA(e){return e instanceof ng||e&&"closed"in e&&Ye(e.remove)&&Ye(e.add)&&Ye(e.unsubscribe)}function CA(e){Ye(e)?e():e.unsubscribe()}var SA={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},rg={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=rg.delegate;return i!=null&&i.setTimeout?i.setTimeout.apply(i,Hf([e,t],Gf(n))):setTimeout.apply(void 0,Hf([e,t],Gf(n)))},clearTimeout:function(e){var t=rg.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function DA(e){rg.setTimeout(function(){throw e})}function IA(){}function mL(e){e()}var ig=function(e){eg(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,EA(n)&&n.add(r)):r.destination=xL,r}return t.create=function(n,r,i){return new Qf(n,r,i)},t.prototype.next=function(n){this.isStopped||this._next(n)},t.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(n){this.destination.next(n)},t.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(ng),bL=Function.prototype.bind;function ag(e,t){return bL.call(e,t)}var yL=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var n=this.partialObserver;if(n.next)try{n.next(t)}catch(r){Vf(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Vf(r)}else Vf(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Vf(n)}},e}(),Qf=function(e){eg(t,e);function t(n,r,i){var a=e.call(this)||this,o;if(Ye(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&SA.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&ag(n.next,s),error:n.error&&ag(n.error,s),complete:n.complete&&ag(n.complete,s)}):o=n}return a.destination=new yL(o),a}return t}(ig);function Vf(e){DA(e)}function wL(e){throw e}var xL={closed:!0,next:IA,error:wL,complete:IA},og=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function _A(e){return e}function AL(e){return e.length===0?_A:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var tn=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,a=EL(t)?t:new Qf(t,n,r);return mL(function(){var o=i,s=o.operator,c=o.source;a.add(s?s.call(a,c):c?i._subscribe(a):i._trySubscribe(a))}),a},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=MA(n),new n(function(i,a){var o=new Qf({next:function(s){try{t(s)}catch(c){a(c),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[og]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return AL(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=MA(t),new t(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},e.create=function(t){return new e(t)},e}();function MA(e){var t;return(t=e??SA.Promise)!==null&&t!==void 0?t:Promise}function vL(e){return e&&Ye(e.next)&&Ye(e.error)&&Ye(e.complete)}function EL(e){return e&&e instanceof ig||vL(e)&&EA(e)}function CL(e){return Ye(e==null?void 0:e.lift)}function oo(e){return function(t){if(CL(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function du(e,t,n,r,i){return new SL(e,t,n,r,i)}var SL=function(e){eg(t,e);function t(n,r,i,a,o,s){var c=e.call(this,n)||this;return c.onFinalize=o,c.shouldUnsubscribe=s,c._next=r?function(u){try{r(u)}catch(f){n.error(f)}}:e.prototype._next,c._error=a?function(u){try{a(u)}catch(f){n.error(f)}finally{this.unsubscribe()}}:e.prototype._error,c._complete=i?function(){try{i()}catch(u){n.error(u)}finally{this.unsubscribe()}}:e.prototype._complete,c}return t.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},t}(ig),DL=new tn(function(e){return e.complete()});function IL(e){return e&&Ye(e.schedule)}function TA(e){return e[e.length-1]}function _L(e){return IL(TA(e))?e.pop():void 0}function ML(e,t){return typeof TA(e)=="number"?e.pop():t}var NA=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function BA(e){return Ye(e==null?void 0:e.then)}function FA(e){return Ye(e[og])}function kA(e){return Symbol.asyncIterator&&Ye(e==null?void 0:e[Symbol.asyncIterator])}function LA(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function TL(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var zA=TL();function RA(e){return Ye(e==null?void 0:e[zA])}function OA(e){return gL(this,arguments,function(){var n,r,i,a;return xA(this,function(o){switch(o.label){case 0:n=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,ao(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,ao(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,ao(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 PA(e){return Ye(e==null?void 0:e.getReader)}function so(e){if(e instanceof tn)return e;if(e!=null){if(FA(e))return NL(e);if(NA(e))return BL(e);if(BA(e))return FL(e);if(kA(e))return UA(e);if(RA(e))return kL(e);if(PA(e))return LL(e)}throw LA(e)}function NL(e){return new tn(function(t){var n=e[og]();if(Ye(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function BL(e){return new tn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function FL(e){return new tn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,DA)})}function kL(e){return new tn(function(t){var n,r;try{for(var i=hu(e),a=i.next();!a.done;a=i.next()){var o=a.value;if(t.next(o),t.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function UA(e){return new tn(function(t){zL(e,t).catch(function(n){return t.error(n)})})}function LL(e){return UA(OA(e))}function zL(e,t){var n,r,i,a;return dL(this,void 0,void 0,function(){var o,s;return xA(this,function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),n=pL(e),c.label=1;case 1:return[4,n.next()];case 2:if(r=c.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=c.sent(),i={error:s},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:c.sent(),c.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Jr(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(a),!i)return a}function jA(e,t){return t===void 0&&(t=0),oo(function(n,r){n.subscribe(du(r,function(i){return Jr(r,e,function(){return r.next(i)},t)},function(){return Jr(r,e,function(){return r.complete()},t)},function(i){return Jr(r,e,function(){return r.error(i)},t)}))})}function GA(e,t){return t===void 0&&(t=0),oo(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function RL(e,t){return so(e).pipe(GA(t),jA(t))}function OL(e,t){return so(e).pipe(GA(t),jA(t))}function PL(e,t){return new tn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function UL(e,t){return new tn(function(n){var r;return Jr(n,t,function(){r=e[zA](),Jr(n,t,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 Ye(r==null?void 0:r.return)&&r.return()}})}function HA(e,t){if(!e)throw new Error("Iterable cannot be null");return new tn(function(n){Jr(n,t,function(){var r=e[Symbol.asyncIterator]();Jr(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function jL(e,t){return HA(OA(e),t)}function GL(e,t){if(e!=null){if(FA(e))return RL(e,t);if(NA(e))return PL(e,t);if(BA(e))return OL(e,t);if(kA(e))return HA(e,t);if(RA(e))return UL(e,t);if(PA(e))return jL(e,t)}throw LA(e)}function HL(e,t){return t?GL(e,t):so(e)}var QL=AA(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function QA(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new Qf({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new QL)}});e.subscribe(a)})}function VA(e,t){return oo(function(n,r){var i=0;n.subscribe(du(r,function(a){r.next(e.call(t,a,i++))}))})}function VL(e,t,n,r,i,a,o,s){var c=[],u=0,f=0,l=!1,h=function(){l&&!c.length&&!u&&t.complete()},d=function(b){return u<r?p(b):c.push(b)},p=function(b){a&&t.next(b),u++;var x=!1;so(n(b,f++)).subscribe(du(t,function(A){i==null||i(A),a?d(A):t.next(A)},function(){x=!0},void 0,function(){if(x)try{u--;for(var A=function(){var D=c.shift();o?Jr(t,o,function(){return p(D)}):p(D)};c.length&&u<r;)A();h()}catch(D){t.error(D)}}))};return e.subscribe(du(t,d,function(){l=!0,h()})),function(){s==null||s()}}function ZA(e,t,n){return n===void 0&&(n=1/0),Ye(t)?ZA(function(r,i){return VA(function(a,o){return t(r,a,i,o)})(so(e(r,i)))},n):(typeof t=="number"&&(n=t),oo(function(r,i){return VL(r,i,e,n)}))}function ZL(e){return e===void 0&&(e=1/0),ZA(_A,e)}function YL(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=_L(e),r=ML(e,1/0),i=e;return i.length?i.length===1?so(i[0]):ZL(r)(HL(i,n)):DL}function WL(e,t,n,r,i){return function(a,o){var s=n,c=t,u=0;a.subscribe(du(o,function(f){var l=u++;c=s?e(c,f,l):(s=!0,f),r&&o.next(c)},i&&function(){s&&o.next(c),o.complete()}))}}function YA(e,t){return oo(WL(e,t,arguments.length>=2,!1,!0))}var qL=function(e,t){return e.push(t),e};function XL(){return oo(function(e,t){YA(qL,[])(e).subscribe(t)})}const WA=-2003829722,sg=-2021002517;function KL(e){return new TextDecoder().decode(e)}function qA(e){const t=e?"big":"little",n=new ne().endianess(t).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 ne().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new ne().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new ne().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new ne().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class XA{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new tr(a);else if(i)this.bbi=new Or(i);else throw new Error("no file given")}async _getHeader(t){const n=await this._getMainHeader(t),r=await this._readChromTree(n,t);return{...n,...r}}async _getMainHeader(t,n=2e3){const{buffer:r}=await this.bbi.read(zt.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),a=qA(i),o=a.headerParser.parse(r),{magic:s,asOffset:c,totalSummaryOffset:u}=o;if(o.fileType=s===sg?"bigbed":"bigwig",c>n||u>n)return this._getMainHeader(t,n*2);if(c){const f=Number(o.asOffset);o.autoSql=KL(r.subarray(f,r.indexOf(0,f)))}if(o.totalSummaryOffset>n)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const f=r.subarray(Number(o.totalSummaryOffset)),l=a.totalSummaryParser.parse(f);o.totalSummary={...l,basesCovered:Number(l.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===WA||n===sg)return!1;if(n=t.readInt32BE(0),n===WA||n===sg)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(t.unzoomedDataOffset);const c=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const u=s-c,{buffer:f}=await this.bbi.read(zt.Buffer.alloc(u),0,u,Number(c),n),l=qA(r),{keySize:h}=l.chromTreeParser.parse(f),d=new ne().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new ne().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,x=async A=>{let D=A;if(D>=f.length)throw new Error("reading beyond end of buffer");const _=l.isLeafNode.parse(f.subarray(D)),{isLeafNode:C,cnt:T}=_;if(D+=_.offset,C)for(let B=0;B<T;B+=1){const S=d.parse(f.subarray(D));D+=S.offset;const{key:z,refId:E,refSize:N}=S,F={name:z,id:E,length:N};o[this.renameRefSeqs(z)]=E,a[E]=F}else{const B=[];for(let S=0;S<T;S+=1){const z=p.parse(f.subarray(D)),{childOffset:E}=z;D+=z.offset,B.push(x(Number(E)-Number(c)))}await Promise.all(B)}};return await x(b),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new wA(this.bbi,r,n,a,i>0,o)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(t);let o;const{basesPerSpan:s,scale:c}=i||{};return s?o=await this.getView(1/s,i):c?o=await this.getView(c,i):o=await this.getView(1,i),new tn(u=>{o.readWigData(a,n,r,u,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await QA(a.pipe(XL()))).flat()}}class JL extends XA{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),c=1/t;let u=r.length;a||(u-=1);for(let f=u;f>=0;f-=1){const l=r[f];if(l&&l.reductionLevel<=2*c){const h=Number(l.indexOffset);return new wA(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function $L(e){return e.filter(t=>!!t)}class ez extends XA{constructor(){super(...arguments),this.readIndicesCache=new Ad({cache:new Kx({maxSize:1}),fill:(t,n)=>this._readIndices({...t,signal:n})})}readIndices(t={}){const{signal:n,...r}=t;return this.readIndicesCache.get(JSON.stringify(r),t,n)}async getView(t,n){return this.getUnzoomedView(n)}async _readIndices(t){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(t),{buffer:i}=await this.bbi.read(zt.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new ne().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:c}=o;if(s===0)return[];const u=20,f=u*s,{buffer:l}=await this.bbi.read(zt.Buffer.alloc(f),0,f,Number(c)),h=new ne().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(l.subarray(p*u)));return d}async searchExtraIndexBlocks(t,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:c}=o,{buffer:u}=await this.bbi.read(zt.Buffer.alloc(32),0,32,Number(s),n),f=r?"big":"little",l=new ne().endianess(f).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=l.parse(u),b=new ne().endianess(f).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new ne().array("leafkeys",{length:"cnt",type:new ne().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new ne().array("keys",{length:"cnt",type:new ne().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),x=async D=>{const _=Number(D),C=4+h*(d+p),{buffer:T}=await this.bbi.read(zt.Buffer.alloc(C),0,C,_,n),B=b.parse(T);if(B.leafkeys){let S;for(let z=0;z<B.leafkeys.length;z+=1){const{key:E}=B.leafkeys[z];if(t.localeCompare(E)<0&&S)return x(S);S=B.leafkeys[z].offset}return x(S)}for(let S=0;S<B.keys.length;S+=1)if(B.keys[S].key===t)return{...B.keys[S],field:c}},A=32;return x(Number(s)+A)});return $L(await Promise.all(a))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new tn(c=>{i.readFeatures(c,[s],n)}).pipe(YA((c,u)=>c.concat(u)),VA(c=>{for(const u of c)u.field=s.field;return c})));return(await QA(YL(...a))).filter(s=>{var c;return((c=s.rest)===null||c===void 0?void 0:c.split(" ")[(s.field||0)-3])===t})}}function ug(e,t,n=!0){let r,i=o=>{};return function(...s){return new Promise((c,u)=>{const f=()=>{clearTimeout(r),i=l=>{},c(e(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=window.setTimeout(f,t)})}}class tz extends Af(La){constructor(n,r){const i={pixelsPerBin:2,channel:"x",...n};super(r,i.channel);Sn(this,"reductionLevels",[]);Sn(this,"lastRequestId",0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.bbi=new JL({filehandle:new tr(vf(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=ug(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=nz(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(c=>this.bbi.getFeatures(c.chrom,c.startPos,c.endPos,{scale:r,signal:a.signal}).then(u=>u.map(f=>({chrom:c.chrom,start:f.start,end:f.end,score:f.score})))));return{requestId:i,abort:()=>a.abort(),features:s.flat()}}}function nz(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}function rz(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function uo(e,t,n,r){this.message=e,this.expected=t,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,uo)}rz(uo,Error),uo.buildMessage=function(e,t){var n={literal:function(u){return'"'+i(u.text)+'"'},class:function(u){var f="",l;for(l=0;l<u.parts.length;l++)f+=u.parts[l]instanceof Array?a(u.parts[l][0])+"-"+a(u.parts[l][1]):a(u.parts[l]);return"["+(u.inverted?"^":"")+f+"]"},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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function o(u){return n[u.type](u)}function s(u){var f=new Array(u.length),l,h;for(l=0;l<u.length;l++)f[l]=o(u[l]);if(f.sort(),f.length>0){for(l=1,h=1;l<f.length;l++)f[l-1]!==f[l]&&(f[h]=f[l],h++);f.length=h}switch(f.length){case 1:return f[0];case 2:return f[0]+" or "+f[1];default:return f.slice(0,-1).join(", ")+", or "+f[f.length-1]}}function c(u){return u?'"'+i(u)+'"':"end of input"}return"Expected "+s(e)+" but "+c(t)+" found."};function iz(e,t){t=t!==void 0?t:{};var n={},r={declaration:Xv},i=Xv,a="(",o=xe("(",!1),s=")",c=xe(")",!1),u=function(w,L,G,H){return{type:w,name:L,comment:G,fields:H}},f="simple",l=xe("simple",!1),h="object",d=xe("object",!1),p="table",b=xe("table",!1),x="auto",A=xe("auto",!1),D="primary",_=xe("primary",!1),C="index",T=xe("index",!1),B="unique",S=xe("unique",!1),z=function(w,L){return L},E=function(w,L){return w.name&&L.unshift(w),L},N="#",F=xe("#",!1),Y=";",X=xe(";",!1),Z=function(w,L,G){return{type:w,name:L,comment:G}},Se="[",Me=xe("[",!1),We="]",At=xe("]",!1),vt=function(w,L,G,H){return{type:w,size:L,name:G,comment:H}},Iu=function(w,L,G,H){return{type:w,vals:L,name:G,comment:H}},Pe=",",qe=xe(",",!1),Ao=function(w,L){return L.unshift(w),L},$i="int",vo=xe("int",!1),ea="uint",Eo=xe("uint",!1),En="short",Q=xe("short",!1),te="ushort",oe=xe("ushort",!1),P="byte",Ue=xe("byte",!1),ce="ubyte",ut=xe("ubyte",!1),rt="float",jt=xe("float",!1),ta="char",_g=xe("char",!1),_u="string",Co=xe("string",!1),Gt="lstring",Mu=xe("lstring",!1),il="enum",Qn=xe("enum",!1),al="double",y=xe("double",!1),g="bigint",m=xe("bigint",!1),v="set",M=xe("set",!1),k=function(w,L){return w+" "+L},O=/^[a-zA-Z_]/,re=Tu([["a","z"],["A","Z"],"_"],!1,!1),Te=/^[a-zA-Z0-9_]/,Ae=Tu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Le=function(w){return Zv()},ye=/^[^\n\r]/,jv=Tu([`
178
+ `,"\r"],!0,!1),rR=function(w){return w.join("").replace(/^"/,"").replace(/"$/,"")},iR=Yv("integer"),Gv=/^[0-9]/,Hv=Tu([["0","9"]],!1,!1),aR=function(){return parseInt(Zv(),10)},oR=Yv("whitespace"),Qv=/^[ \t\n\r]/,Vv=Tu([" "," ",`
179
+ `,"\r"],!1,!1),I=0,Et=0,ol=[{line:1,column:1}],Vn=0,Mg=[],K=0,sl;if("startRule"in t){if(!(t.startRule in r))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');i=r[t.startRule]}function Zv(){return e.substring(Et,I)}function xe(w,L){return{type:"literal",text:w,ignoreCase:L}}function Tu(w,L,G){return{type:"class",parts:w,inverted:L,ignoreCase:G}}function sR(){return{type:"end"}}function Yv(w){return{type:"other",description:w}}function Wv(w){var L=ol[w],G;if(L)return L;for(G=w-1;!ol[G];)G--;for(L=ol[G],L={line:L.line,column:L.column};G<w;)e.charCodeAt(G)===10?(L.line++,L.column=1):L.column++,G++;return ol[w]=L,L}function qv(w,L){var G=Wv(w),H=Wv(L);return{start:{offset:w,line:G.line,column:G.column},end:{offset:L,line:H.line,column:H.column}}}function J(w){I<Vn||(I>Vn&&(Vn=I,Mg=[]),Mg.push(w))}function uR(w,L,G){return new uo(uo.buildMessage(w,L),w,L,G)}function Xv(){var w,L,G,H,q,De,ze,sn,ti,pr,ni,mr,ri,br;return w=I,L=le(),L!==n?(G=Kv(),G!==n?(H=le(),H!==n?(q=Jv(),q!==n?(De=le(),De!==n?(ze=ul(),ze!==n?(sn=le(),sn!==n?(e.charCodeAt(I)===40?(ti=a,I++):(ti=n,K===0&&J(o)),ti!==n?(pr=le(),pr!==n?(ni=cR(),ni!==n?(mr=le(),mr!==n?(e.charCodeAt(I)===41?(ri=s,I++):(ri=n,K===0&&J(c)),ri!==n?(br=le(),br!==n?(Et=w,L=u(G,q,ze,ni),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w}function Kv(){var w;return e.substr(I,6)===f?(w=f,I+=6):(w=n,K===0&&J(l)),w===n&&(e.substr(I,6)===h?(w=h,I+=6):(w=n,K===0&&J(d)),w===n&&(e.substr(I,5)===p?(w=p,I+=5):(w=n,K===0&&J(b)))),w}function Jv(){var w,L,G,H;return w=Cn(),w===n&&(w=I,L=Cn(),L!==n?(G=$v(),G!==n?(L=[L,G],w=L):(I=w,w=n)):(I=w,w=n),w===n&&(w=I,L=Cn(),L!==n?(e.substr(I,4)===x?(G=x,I+=4):(G=n,K===0&&J(A)),G!==n?(L=[L,G],w=L):(I=w,w=n)):(I=w,w=n),w===n&&(w=I,L=Cn(),L!==n?(G=$v(),G!==n?(e.substr(I,4)===x?(H=x,I+=4):(H=n,K===0&&J(A)),H!==n?(L=[L,G,H],w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)))),w}function $v(){var w;return e.substr(I,7)===D?(w=D,I+=7):(w=n,K===0&&J(_)),w===n&&(e.substr(I,5)===C?(w=C,I+=5):(w=n,K===0&&J(T)),w===n&&(e.substr(I,6)===B?(w=B,I+=6):(w=n,K===0&&J(S)))),w}function ul(){var w;return w=eE(),w===n&&(w=le()),w}function cR(){var w,L,G,H,q,De,ze;if(w=I,L=Tg(),L!==n)if(G=le(),G!==n){for(H=[],q=I,De=le(),De!==n?(ze=Tg(),ze!==n?(Et=q,De=z(L,ze),q=De):(I=q,q=n)):(I=q,q=n);q!==n;)H.push(q),q=I,De=le(),De!==n?(ze=Tg(),ze!==n?(Et=q,De=z(L,ze),q=De):(I=q,q=n)):(I=q,q=n);H!==n?(q=le(),q!==n?(Et=w,L=E(L,H),w=L):(I=w,w=n)):(I=w,w=n)}else I=w,w=n;else I=w,w=n;return w}function fR(){var w;return e.charCodeAt(I)===35?(w=N,I++):(w=n,K===0&&J(F)),w}function lR(){var w,L,G,H,q;return w=I,L=le(),L!==n?(G=fR(),G!==n?(H=eE(),H!==n?(q=le(),q!==n?(L=[L,G,H,q],w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w}function Tg(){var w,L,G,H,q,De,ze,sn,ti,pr,ni,mr,ri,br;return w=I,L=Ng(),L!==n?(G=le(),G!==n?(H=Cn(),H!==n?(q=le(),q!==n?(e.charCodeAt(I)===59?(De=Y,I++):(De=n,K===0&&J(X)),De!==n?(ze=le(),ze!==n?(sn=ul(),sn!==n?(Et=w,L=Z(L,H,sn),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w===n&&(w=I,L=Ng(),L!==n?(G=le(),G!==n?(e.charCodeAt(I)===91?(H=Se,I++):(H=n,K===0&&J(Me)),H!==n?(q=le(),q!==n?(De=dR(),De!==n?(ze=le(),ze!==n?(e.charCodeAt(I)===93?(sn=We,I++):(sn=n,K===0&&J(At)),sn!==n?(ti=le(),ti!==n?(pr=Cn(),pr!==n?(ni=le(),ni!==n?(e.charCodeAt(I)===59?(mr=Y,I++):(mr=n,K===0&&J(X)),mr!==n?(ri=le(),ri!==n?(br=ul(),br!==n?(Et=w,L=vt(L,De,pr,br),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w===n&&(w=I,L=Ng(),L!==n?(G=le(),G!==n?(e.charCodeAt(I)===40?(H=a,I++):(H=n,K===0&&J(o)),H!==n?(q=le(),q!==n?(De=hR(),De!==n?(ze=le(),ze!==n?(e.charCodeAt(I)===41?(sn=s,I++):(sn=n,K===0&&J(c)),sn!==n?(ti=le(),ti!==n?(pr=Cn(),pr!==n?(ni=le(),ni!==n?(e.charCodeAt(I)===59?(mr=Y,I++):(mr=n,K===0&&J(X)),mr!==n?(ri=le(),ri!==n?(br=ul(),br!==n?(Et=w,L=Iu(L,De,pr,br),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n)):(I=w,w=n),w===n&&(w=lR()))),w}function hR(){var w,L,G,H,q,De,ze;if(w=I,L=Cn(),L!==n){for(G=[],H=I,e.charCodeAt(I)===44?(q=Pe,I++):(q=n,K===0&&J(qe)),q!==n?(De=le(),De!==n?(ze=Cn(),ze!==n?(Et=H,q=z(L,ze),H=q):(I=H,H=n)):(I=H,H=n)):(I=H,H=n);H!==n;)G.push(H),H=I,e.charCodeAt(I)===44?(q=Pe,I++):(q=n,K===0&&J(qe)),q!==n?(De=le(),De!==n?(ze=Cn(),ze!==n?(Et=H,q=z(L,ze),H=q):(I=H,H=n)):(I=H,H=n)):(I=H,H=n);G!==n?(Et=w,L=Ao(L,G),w=L):(I=w,w=n)}else I=w,w=n;return w}function Ng(){var w,L,G,H;return e.substr(I,3)===$i?(w=$i,I+=3):(w=n,K===0&&J(vo)),w===n&&(e.substr(I,4)===ea?(w=ea,I+=4):(w=n,K===0&&J(Eo)),w===n&&(e.substr(I,5)===En?(w=En,I+=5):(w=n,K===0&&J(Q)),w===n&&(e.substr(I,6)===te?(w=te,I+=6):(w=n,K===0&&J(oe)),w===n&&(e.substr(I,4)===P?(w=P,I+=4):(w=n,K===0&&J(Ue)),w===n&&(e.substr(I,5)===ce?(w=ce,I+=5):(w=n,K===0&&J(ut)),w===n&&(e.substr(I,5)===rt?(w=rt,I+=5):(w=n,K===0&&J(jt)),w===n&&(e.substr(I,4)===ta?(w=ta,I+=4):(w=n,K===0&&J(_g)),w===n&&(e.substr(I,6)===_u?(w=_u,I+=6):(w=n,K===0&&J(Co)),w===n&&(e.substr(I,7)===Gt?(w=Gt,I+=7):(w=n,K===0&&J(Mu)),w===n&&(e.substr(I,4)===il?(w=il,I+=4):(w=n,K===0&&J(Qn)),w===n&&(e.substr(I,6)===al?(w=al,I+=6):(w=n,K===0&&J(y)),w===n&&(e.substr(I,6)===g?(w=g,I+=6):(w=n,K===0&&J(m)),w===n&&(e.substr(I,3)===v?(w=v,I+=3):(w=n,K===0&&J(M)),w===n&&(w=I,L=Kv(),L!==n?(G=le(),G!==n?(H=Jv(),H!==n?(Et=w,L=k(L,H),w=L):(I=w,w=n)):(I=w,w=n)):(I=w,w=n))))))))))))))),w}function dR(){var w;return w=gR(),w===n&&(w=Cn()),w}function Cn(){var w,L,G,H,q;if(w=I,L=I,O.test(e.charAt(I))?(G=e.charAt(I),I++):(G=n,K===0&&J(re)),G!==n){for(H=[],Te.test(e.charAt(I))?(q=e.charAt(I),I++):(q=n,K===0&&J(Ae));q!==n;)H.push(q),Te.test(e.charAt(I))?(q=e.charAt(I),I++):(q=n,K===0&&J(Ae));H!==n?(G=[G,H],L=G):(I=L,L=n)}else I=L,L=n;return L!==n&&(Et=w,L=Le()),w=L,w}function eE(){var w,L,G;for(w=I,L=[],ye.test(e.charAt(I))?(G=e.charAt(I),I++):(G=n,K===0&&J(jv));G!==n;)L.push(G),ye.test(e.charAt(I))?(G=e.charAt(I),I++):(G=n,K===0&&J(jv));return L!==n&&(Et=w,L=rR(L)),w=L,w}function gR(){var w,L,G,H;if(K++,w=I,L=le(),L!==n){if(G=[],Gv.test(e.charAt(I))?(H=e.charAt(I),I++):(H=n,K===0&&J(Hv)),H!==n)for(;H!==n;)G.push(H),Gv.test(e.charAt(I))?(H=e.charAt(I),I++):(H=n,K===0&&J(Hv));else G=n;G!==n?(Et=w,L=aR(),w=L):(I=w,w=n)}else I=w,w=n;return K--,w===n&&(L=n,K===0&&J(iR)),w}function le(){var w,L;for(K++,w=[],Qv.test(e.charAt(I))?(L=e.charAt(I),I++):(L=n,K===0&&J(Vv));L!==n;)w.push(L),Qv.test(e.charAt(I))?(L=e.charAt(I),I++):(L=n,K===0&&J(Vv));return K--,w===n&&(L=n,K===0&&J(oR)),w}if(sl=i(),sl!==n&&I===e.length)return sl;throw sl!==n&&I<e.length&&J(sR()),uR(Mg,Vn<e.length?e.charAt(Vn):null,Vn<e.length?qv(Vn,Vn+1):qv(Vn,Vn))}var KA={SyntaxError:uo,parse:iz};const az=za(KA),cg=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,8 +335,8 @@ 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(([e,t])=>[e,LA.parse(t.trim())]));function Kd(e){const t=["uint","int","float","long"];return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.includes(n.type),isNumeric:!n.size&&t.includes(n.type)}))}}const tz={".":0,"-":-1,"+":1};function nz(e){var t;return e.length>=12&&!Number.isNaN(parseInt(e[9],10))&&((t=e[10])===null||t===void 0?void 0:t.split(",").filter(n=>!!n).length)===parseInt(e[9],10)}class rz{constructor(t={}){if(t.autoSql)this.autoSql=Kd(ez.parse(t.autoSql));else if(t.type){if(!Xd[t.type])throw new Error("Type not found");this.autoSql=Kd(Xd[t.type])}else this.autoSql=Kd(Xd.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,o=Array.isArray(t)?t:t.split(" ");let a={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&nz(o))for(let s=0;s<r.fields.length;s++){const c=r.fields[s];let u=o[s];const{isNumeric:f,isArray:l,arrayIsNumeric:h,name:d}=c;if(u==null)break;if(u!=="."){if(f){const p=Number(u);u=Number.isNaN(p)?u:p}else l&&(u=u.split(","),u[u.length-1]===""&&u.pop(),h&&(u=u.map(p=>Number(p))));a[d]=u}}else{const s=["chrom","chromStart","chromEnd","name"];a=Object.fromEntries(o.map((c,u)=>[s[u]||"field"+u,c])),a.chromStart=+a.chromStart,a.chromEnd=+a.chromEnd,Number.isNaN(Number.parseFloat(a.field4))||(a.score=+a.field4,delete a.field4),(a.field5==="+"||a.field5==="-")&&(a.strand=a.field5,delete a.field5)}return i&&(a.uniqueId=i),a.strand=tz[a.strand]||0,a.chrom=decodeURIComponent(a.chrom),a}}class iz extends uf(Fo){constructor(n,r){const i={channel:"x",windowSize:1e6,...n};super(r,i.channel);Vn(this,"lastRequestId",0);Vn(this,"parser");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.bbi=new WL({filehandle:new tr(cf(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=Wd(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(o=>{this.parser=new rz({autoSql:o.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,o=this.genome.continuousToDiscreteChromosomeIntervals(n),a=await Promise.all(o.map(s=>this.bbi.getFeatures(s.chrom,s.startPos,s.endPos,{signal:i.signal}).then(c=>c.map(u=>this.parser.parseLine(`${s.chrom} ${u.start} ${u.end} ${u.rest}`,{uniqueId:u.uniqueId})))));return{requestId:r,abort:()=>i.abort(),features:a.flat()}}}var oz=ve,$t=null;try{$t=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 ve(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}ve.prototype.__isLong__,Object.defineProperty(ve.prototype,"__isLong__",{value:!0});function Nt(e){return(e&&e.__isLong__)===!0}ve.isLong=Nt;var zA={},RA={};function Zi(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=RA[e],r)?r:(n=Ee(e,(e|0)<0?-1:0,!0),i&&(RA[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=zA[e],r)?r:(n=Ee(e,e<0?-1:0,!1),i&&(zA[e]=n),n))}ve.fromInt=Zi;function en(e,t){if(isNaN(e))return t?Yi:tn;if(t){if(e<0)return Yi;if(e>=PA)return QA}else{if(e<=-UA)return Bt;if(e+1>=UA)return HA}return e<0?en(-e,t).neg():Ee(e%sa|0,e/sa|0,t)}ve.fromNumber=en;function Ee(e,t,n){return new ve(e,t,n)}ve.fromBits=Ee;var Ff=Math.pow;function Jd(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return tn;if(typeof t=="number"?(n=t,t=!1):t=!!t,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Jd(e.substring(1),t,n).neg();for(var i=en(Ff(n,8)),o=tn,a=0;a<e.length;a+=8){var s=Math.min(8,e.length-a),c=parseInt(e.substring(a,a+s),n);if(s<8){var u=en(Ff(n,s));o=o.mul(u).add(en(c))}else o=o.mul(i),o=o.add(en(c))}return o.unsigned=t,o}ve.fromString=Jd;function An(e,t){return typeof e=="number"?en(e,t):typeof e=="string"?Jd(e,t):Ee(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}ve.fromValue=An;var OA=1<<16,az=1<<24,sa=OA*OA,PA=sa*sa,UA=PA/2,jA=Zi(az),tn=Zi(0);ve.ZERO=tn;var Yi=Zi(0,!0);ve.UZERO=Yi;var ua=Zi(1);ve.ONE=ua;var GA=Zi(1,!0);ve.UONE=GA;var $d=Zi(-1);ve.NEG_ONE=$d;var HA=Ee(-1,2147483647,!1);ve.MAX_VALUE=HA;var QA=Ee(-1,-1,!0);ve.MAX_UNSIGNED_VALUE=QA;var Bt=Ee(0,-2147483648,!1);ve.MIN_VALUE=Bt;var j=ve.prototype;j.toInt=function(){return this.unsigned?this.low>>>0:this.low},j.toNumber=function(){return this.unsigned?(this.high>>>0)*sa+(this.low>>>0):this.high*sa+(this.low>>>0)},j.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Bt)){var n=en(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var o=en(Ff(t,6),this.unsigned),a=this,s="";;){var c=a.div(o),u=a.sub(c.mul(o)).toInt()>>>0,f=u.toString(t);if(a=c,a.isZero())return f+s;for(;f.length<6;)f="0"+f;s=""+f+s}},j.getHighBits=function(){return this.high},j.getHighBitsUnsigned=function(){return this.high>>>0},j.getLowBits=function(){return this.low},j.getLowBitsUnsigned=function(){return this.low>>>0},j.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Bt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},j.isZero=function(){return this.high===0&&this.low===0},j.eqz=j.isZero,j.isNegative=function(){return!this.unsigned&&this.high<0},j.isPositive=function(){return this.unsigned||this.high>=0},j.isOdd=function(){return(this.low&1)===1},j.isEven=function(){return(this.low&1)===0},j.equals=function(t){return Nt(t)||(t=An(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},j.eq=j.equals,j.notEquals=function(t){return!this.eq(t)},j.neq=j.notEquals,j.ne=j.notEquals,j.lessThan=function(t){return this.comp(t)<0},j.lt=j.lessThan,j.lessThanOrEqual=function(t){return this.comp(t)<=0},j.lte=j.lessThanOrEqual,j.le=j.lessThanOrEqual,j.greaterThan=function(t){return this.comp(t)>0},j.gt=j.greaterThan,j.greaterThanOrEqual=function(t){return this.comp(t)>=0},j.gte=j.greaterThanOrEqual,j.ge=j.greaterThanOrEqual,j.compare=function(t){if(Nt(t)||(t=An(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},j.comp=j.compare,j.negate=function(){return!this.unsigned&&this.eq(Bt)?Bt:this.not().add(ua)},j.neg=j.negate,j.add=function(t){Nt(t)||(t=An(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,o=this.low&65535,a=t.high>>>16,s=t.high&65535,c=t.low>>>16,u=t.low&65535,f=0,l=0,h=0,d=0;return d+=o+u,h+=d>>>16,d&=65535,h+=i+c,l+=h>>>16,h&=65535,l+=r+s,f+=l>>>16,l&=65535,f+=n+a,f&=65535,Ee(h<<16|d,f<<16|l,this.unsigned)},j.subtract=function(t){return Nt(t)||(t=An(t)),this.add(t.neg())},j.sub=j.subtract,j.multiply=function(t){if(this.isZero())return tn;if(Nt(t)||(t=An(t)),$t){var n=$t.mul(this.low,this.high,t.low,t.high);return Ee(n,$t.get_high(),this.unsigned)}if(t.isZero())return tn;if(this.eq(Bt))return t.isOdd()?Bt:tn;if(t.eq(Bt))return this.isOdd()?Bt:tn;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(jA)&&t.lt(jA))return en(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,o=this.low>>>16,a=this.low&65535,s=t.high>>>16,c=t.high&65535,u=t.low>>>16,f=t.low&65535,l=0,h=0,d=0,p=0;return p+=a*f,d+=p>>>16,p&=65535,d+=o*f,h+=d>>>16,d&=65535,d+=a*u,h+=d>>>16,d&=65535,h+=i*f,l+=h>>>16,h&=65535,h+=o*u,l+=h>>>16,h&=65535,h+=a*c,l+=h>>>16,h&=65535,l+=r*f+i*u+o*c+a*s,l&=65535,Ee(d<<16|p,l<<16|h,this.unsigned)},j.mul=j.multiply,j.divide=function(t){if(Nt(t)||(t=An(t)),t.isZero())throw Error("division by zero");if($t){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?$t.div_u:$t.div_s)(this.low,this.high,t.low,t.high);return Ee(n,$t.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Yi:tn;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Yi;if(t.gt(this.shru(1)))return GA;o=Yi}else{if(this.eq(Bt)){if(t.eq(ua)||t.eq($d))return Bt;if(t.eq(Bt))return ua;var a=this.shr(1);return r=a.div(t).shl(1),r.eq(tn)?t.isNegative()?ua:$d:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq(Bt))return this.unsigned?Yi:tn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();o=tn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),c=s<=48?1:Ff(2,s-48),u=en(r),f=u.mul(t);f.isNegative()||f.gt(i);)r-=c,u=en(r,this.unsigned),f=u.mul(t);u.isZero()&&(u=ua),o=o.add(u),i=i.sub(f)}return o},j.div=j.divide,j.modulo=function(t){if(Nt(t)||(t=An(t)),$t){var n=(this.unsigned?$t.rem_u:$t.rem_s)(this.low,this.high,t.low,t.high);return Ee(n,$t.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},j.mod=j.modulo,j.rem=j.modulo,j.not=function(){return Ee(~this.low,~this.high,this.unsigned)},j.and=function(t){return Nt(t)||(t=An(t)),Ee(this.low&t.low,this.high&t.high,this.unsigned)},j.or=function(t){return Nt(t)||(t=An(t)),Ee(this.low|t.low,this.high|t.high,this.unsigned)},j.xor=function(t){return Nt(t)||(t=An(t)),Ee(this.low^t.low,this.high^t.high,this.unsigned)},j.shiftLeft=function(t){return Nt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ee(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Ee(0,this.low<<t-32,this.unsigned)},j.shl=j.shiftLeft,j.shiftRight=function(t){return Nt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ee(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Ee(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},j.shr=j.shiftRight,j.shiftRightUnsigned=function(t){if(Nt(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Ee(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Ee(n,0,this.unsigned):Ee(n>>>t-32,0,this.unsigned)},j.shru=j.shiftRightUnsigned,j.shr_u=j.shiftRightUnsigned,j.toSigned=function(){return this.unsigned?Ee(this.low,this.high,!1):this},j.toUnsigned=function(){return this.unsigned?this:Ee(this.low,this.high,!0)},j.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},j.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},j.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},ve.fromBytes=function(t,n,r){return r?ve.fromBytesLE(t,n):ve.fromBytesBE(t,n)},ve.fromBytesLE=function(t,n){return new ve(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},ve.fromBytesBE=function(t,n){return new ve(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const VA=ko(oz);class ZA{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}}function ca(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new ZA(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}class kf{constructor(t,n,r,i=void 0){this.minv=t,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(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+(1<<16)-this.minv.blockPosition}}class YA{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}_findFirstData(t,n){const r=t.firstDataLine;r?t.firstDataLine=r.compareTo(n)>0?n:r:t.firstDataLine=n}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){return!!((await this.parse(n)).indices[t]||{}).binIndex}}function sz(e){return new Promise(t=>setTimeout(t,e))}function qA(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function WA(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new Error("aborted");throw t.code="ERR_ABORTED",t}}}async function XA(e){await Promise.resolve(),WA(e)}function uz(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function cz(e={}){return"aborted"in e?{signal:e}:e}function KA(e,t){const n=[];let r=null;return e.length===0?e:(e.sort((i,o)=>{const a=i.minv.blockPosition-o.minv.blockPosition;return a!==0?a:i.minv.dataPosition-o.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):uz(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}const fz=21578050;function lz(e,t){return e-e%t}function hz(e,t){return e-e%t+t}class su extends YA{parsePseudoBin(t,n){return{lineCount:qA(VA.fromBytesLE(Array.prototype.slice.call(t,n+16,n+24),!0))}}async lineCount(t,n={}){const i=(await this.parse(n)).indices[t];if(!i)return-1;const o=i.stats||{};return o.lineCount===void 0?-1:o.lineCount}fetchBai(t={}){return this.baiP||(this.baiP=this.filehandle.readFile(t).catch(n=>{throw this.baiP=void 0,n})),this.baiP}async _parse(){const t={bai:!0,maxBlockSize:65536},n=await this.fetchBai();if(n.readUInt32LE(0)!==fz)throw new Error("Not a BAI file");t.refCount=n.readInt32LE(4);const i=((1<<(5+1)*3)-1)/7;t.indices=new Array(t.refCount);let o=8;for(let a=0;a<t.refCount;a+=1){const s=n.readInt32LE(o);let c;o+=4;const u={};for(let h=0;h<s;h+=1){const d=n.readUInt32LE(o);if(o+=4,d===i+1)o+=4,c=this.parsePseudoBin(n,o),o+=32;else{if(d>i+1)throw new Error("bai index contains too many bins, please use CSI");{const p=n.readInt32LE(o);o+=4;const b=new Array(p);for(let x=0;x<p;x+=1){const A=ca(n,o),D=ca(n,o+8);o+=16,this._findFirstData(t,A),b[x]=new kf(A,D,d)}u[d]=b}}}const f=n.readInt32LE(o);o+=4;const l=new Array(f);for(let h=0;h<f;h+=1)l[h]=ca(n,o),o+=8,this._findFirstData(t,l[h]);t.indices[a]={binIndex:u,linearIndex:l,stats:c}}return t}async indexCov(t,n,r,i={}){const a=n!==void 0,c=(await this.parse(i)).indices[t];if(!c)return[];const{linearIndex:u=[],stats:f}=c;if(!u.length)return[];const l=r!==void 0?hz(r,16384):(u.length-1)*16384,h=n!==void 0?lz(n,16384):0;let d;a?d=new Array((l-h)/16384):d=new Array(u.length-1);const p=u[u.length-1].blockPosition;if(l>(u.length-1)*16384)throw new Error("query outside of range of linear index");let b=u[h/16384].blockPosition;for(let x=h/16384,A=0;x<l/16384;x++,A++)d[A]={score:u[x+1].blockPosition-b,start:x*16384,end:x*16384+16384},b=u[x+1].blockPosition;return d.map(x=>({...x,score:x.score*f.lineCount/p}))}reg2bins(t,n){return n-=1,[[0,0],[1+(t>>26),1+(n>>26)],[9+(t>>23),9+(n>>23)],[73+(t>>20),73+(n>>20)],[585+(t>>17),585+(n>>17)],[4681+(t>>14),4681+(n>>14)]]}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const a=o.indices[t];if(!a)return[];const s=this.reg2bins(n,r),c=[];for(const[d,p]of s)for(let b=d;b<=p;b++)if(a.binIndex[b]){const x=a.binIndex[b];for(let A=0;A<x.length;++A)c.push(new kf(x[A].minv,x[A].maxv,b))}const u=a.linearIndex.length;let f=null;const l=Math.min(n>>14,u-1),h=Math.min(r>>14,u-1);for(let d=l;d<=h;++d){const p=a.linearIndex[d];p&&(!f||p.compareTo(f)<0)&&(f=p)}return KA(c,f)}}const dz=21582659,gz=38359875;function pz(e,t){return e*2**t}function JA(e,t){return Math.floor(e/2**t)}class eg extends YA{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t){const n=await this.parse();if(!n||!n.indices[t])return-1;const{stats:i}=n.indices[t];return i?i.lineCount:-1}async indexCov(){return[]}parseAuxData(t,n,r){if(r<30)return{};const i={};if(i.formatFlags=t.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:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},i.metaValue=t.readInt32LE(n+16),i.metaChar=i.metaValue?String.fromCharCode(i.metaValue):"",i.skipLines=t.readInt32LE(n+20);const o=t.readInt32LE(n+24);return Object.assign(i,this._parseNameBytes(t.subarray(n+28,n+28+o))),i}_parseNameBytes(t){let n=0,r=0;const i=[],o={};for(let a=0;a<t.length;a+=1)if(!t[a]){if(r<a){let s=t.toString("utf8",r,a);s=this.renameRefSeq(s),i[n]=s,o[s]=n}r=a+1,n+=1}return{refNameToId:o,refIdToName:i}}async _parse(t){const n={csi:!0,maxBlockSize:65536},r=await this.filehandle.readFile(t),i=await J0(r);if(i.readUInt32LE(0)===dz)n.csiVersion=1;else if(i.readUInt32LE(0)===gz)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 o=i.readInt32LE(12);o&&Object.assign(n,this.parseAuxData(i,16,o)),n.refCount=i.readInt32LE(16+o),n.indices=new Array(n.refCount);let a=16+o+4;for(let s=0;s<n.refCount;s+=1){await XA(t.signal);const c=i.readInt32LE(a);a+=4;const u={};let f;for(let l=0;l<c;l+=1){const h=i.readUInt32LE(a);if(h>this.maxBinNumber)f=this.parsePseudoBin(i,a+4),a+=4+8+4+16+16;else{const d=ca(i,a+4);this._findFirstData(n,d);const p=i.readInt32LE(a+12);a+=16;const b=new Array(p);for(let x=0;x<p;x+=1){const A=ca(i,a),D=ca(i,a+8);a+=16,b[x]=new kf(A,D,h)}u[h]=b}}n.indices[s]={binIndex:u,stats:f}}return n}parsePseudoBin(t,n){return{lineCount:qA(VA.fromBytesLE(Array.prototype.slice.call(t,n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i),a=o==null?void 0:o.indices[t];if(!a)return[];const s=this.reg2bins(n,r),c=[];for(const[u,f]of s)for(let l=u;l<=f;l++)if(a.binIndex[l]){const h=a.binIndex[l];for(let d=0;d<h.length;++d)c.push(new kf(h[d].minv,h[d].maxv,l))}return KA(c,new ZA(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,o=this.minShift+this.depth*3;const a=[];for(;r<=this.depth;o-=3,i+=pz(1,r*3),r+=1){const s=i+JA(t,o),c=i+JA(n,o);if(c-s+a.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);a.push([s,c])}return a}}var Xr=kt.Buffer,tg=[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"&&(tg=new Int32Array(tg));function $A(e){if(Xr.isBuffer(e))return e;var t=typeof Xr.alloc=="function"&&typeof Xr.from=="function";if(typeof e=="number")return t?Xr.alloc(e):new Xr(e);if(typeof e=="string")return t?Xr.from(e):new Xr(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function mz(e){var t=$A(4);return t.writeInt32BE(e,0),t}function ng(e,t){e=$A(e),Xr.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=tg[(n^e[r])&255]^n>>>8;return n^-1}function rg(){return mz(ng.apply(null,arguments))}rg.signed=function(){return ng.apply(null,arguments)},rg.unsigned=function(){return ng.apply(null,arguments)>>>0};var bz=rg;const yz=ko(bz);var ig,ev;function wz(){if(ev)return ig;ev=1;var e=function(r,i){return Object.prototype.hasOwnProperty.call(r,i)},t=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 o in r)e(r,o)&&t(r,o)&&i.push([o,r[o]]);return i}return ig=n,ig}var xz=typeof Object.entries=="function"?Object.entries:wz();const Az=ko(xz);class vz{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}}var Ez=vz;const Cz=ko(Ez),nn={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},tv="=ACMGRSVTWYHKDBN".split(""),uu="MIDNSHP=X???????".split("");class Sz{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:o}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(o+4),this.data.start=i.readInt32LE(o+8),this.flags=(i.readInt32LE(o+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]),Object.keys(this.data).forEach(r=>{r[0]!=="_"&&r!=="next_seq_id"&&t.push(r)});const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),o=n[i];return n[i]=!0,!o})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+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 t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){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 o=this.bytes.end;let a;for(;i<o&&a!==t;){const s=String.fromCharCode(n[i],n[i+1]);a=s.toLowerCase();const c=String.fromCharCode(n[i+2]);i+=3;let u;switch(c){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<=o;){const f=n[i++];if(f===0)break;u+=String.fromCharCode(f)}break;case"B":{u="";const f=n[i++],l=String.fromCharCode(f),h=n.readInt32LE(i);if(i+=4,l==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),b=p>>4,x=uu[p&15];u+=b+x,i+=4}else for(let d=0;d<h;d++)u+=n.readInt32LE(i),d+1<h&&(u+=","),i+=4;if(l==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),b=p>>4,x=uu[p&15];u+=b+x,i+=4}else for(let d=0;d<h;d++)u+=n.readUInt32LE(i),d+1<h&&(u+=","),i+=4;if(l==="s")for(let d=0;d<h;d++)u+=n.readInt16LE(i),d+1<h&&(u+=","),i+=2;if(l==="S")for(let d=0;d<h;d++)u+=n.readUInt16LE(i),d+1<h&&(u+=","),i+=2;if(l==="c")for(let d=0;d<h;d++)u+=n.readInt8(i),d+1<h&&(u+=","),i+=1;if(l==="C")for(let d=0;d<h;d++)u+=n.readUInt8(i),d+1<h&&(u+=","),i+=1;if(l==="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 '${c}', tags may be incomplete`),u=void 0,i=o}if(this._tagOffset=i,this._tagList.push(s),a===t)return u;this.data[a]=u}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),parseInt(n,10)])}isPaired(){return!!(this.flags&nn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&nn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&nn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&nn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&nn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&nn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&nn.BAM_FREAD1)}isRead2(){return!!(this.flags&nn.BAM_FREAD2)}isSecondary(){return!!(this.flags&nn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&nn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&nn.BAM_FDUP)}isSupplementary(){return!!(this.flags&nn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const o=this.get("seq_length");let a="",s=0,c=t.readInt32LE(i),u=c>>4,f=uu[c&15];if(f==="S"&&u===o)return i+=4,c=t.readInt32LE(i),u=c>>4,f=uu[c&15],f!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=u,this.get("CG");for(let l=0;l<r;++l)c=t.readInt32LE(i),u=c>>4,f=uu[c&15],a+=u+f,f!=="H"&&f!=="S"&&f!=="I"&&(s+=u),i+=4;return this.data.length_on_ref=s,a}_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:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),o=this.get("seq_length");let a="",s=0;for(let c=0;c<i;++c){const u=t[r+c];a+=tv[(u&240)>>4],s++,s<o&&(a+=tv[u&15],s++)}return a}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=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 o=[];return this.template_length()>0?(o[0]=t,o[1]=r,o[2]=n,o[3]=i):(o[2]=t,o[3]=r,o[0]=n,o[1]=i),o.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 t={};return Object.keys(this).forEach(n=>{n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n])}),t}}function Dz(e){const t=e.split(/\r?\n/),n=[];return t.forEach(r=>{const[i,...o]=r.split(/\t/),a=o.map(s=>{const[c,u]=s.split(":",2);return{tag:c,value:u}});i&&n.push({tag:i.substr(1),data:a})}),n}const Iz=21840194,og=1<<16;function ag(e){return[].concat(...e)}async function _z(e){const t=[];for await(const n of e)t.push(n);return t}class Mz{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:o,baiUrl:a,csiPath:s,csiFilehandle:c,csiUrl:u,fetchSizeLimit:f,chunkSizeLimit:l,yieldThreadTime:h=100,renameRefSeqs:d=p=>p}){if(this.featureCache=new ud({cache:new Cz({maxSize:50}),fill:async({chunk:p,opts:b},x)=>{const{data:A,cpositions:D,dpositions:_}=await this._readChunk({chunk:p,opts:{...b,signal:x}});return await this.readBamFeatures(A,D,_,p)}}),this.renameRefSeq=d,t)this.bam=t;else if(n)this.bam=new Lr(n);else if(r)this.bam=new tr(r);else throw new Error("unable to initialize bam");if(c)this.index=new eg({filehandle:c});else if(s)this.index=new eg({filehandle:new Lr(s)});else if(u)this.index=new eg({filehandle:new tr(u)});else if(o)this.index=new su({filehandle:o});else if(i)this.index=new su({filehandle:new Lr(i)});else if(a)this.index=new su({filehandle:new tr(a)});else if(n)this.index=new su({filehandle:new Lr(`${n}.bai`)});else if(r)this.index=new su({filehandle:new tr(`${r}.bai`)});else throw new Error("unable to infer index format");this.fetchSizeLimit=f||5e8,this.chunkSizeLimit=l||3e8,this.yieldThreadTime=h}async getHeader(t={}){const n=cz(t),r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let o;if(i){const f=await this.bam.read(Buffer.alloc(i+og),0,i+og,0,n),{bytesRead:l}=f;if({buffer:o}=f,!l)throw new Error("Error reading header");l<i?o=o.subarray(0,l):o=o.subarray(0,i)}else o=await this.bam.readFile(n);const a=await J0(o);if(a.readInt32LE(0)!==Iz)throw new Error("Not a BAM file");const s=a.readInt32LE(4);this.header=a.toString("utf8",8,8+s);const{chrToIndex:c,indexToChr:u}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=c,this.indexToChr=u,Dz(this.header)}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r={}){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+og,{bytesRead:o,buffer:a}=await this.bam.read(Buffer.alloc(i),0,n,0,r);if(!o)throw new Error("Error reading refseqs from header");const s=await J0(a.subarray(0,Math.min(o,n))),c=s.readInt32LE(t);let u=t+4;const f={},l=[];for(let h=0;h<c;h+=1){const d=s.readInt32LE(u),p=this.renameRefSeq(s.toString("utf8",u+4,u+4+d-1)),b=s.readInt32LE(u+d+4);if(f[p]=h,l.push({refName:p,length:b}),u=u+8+d,u>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:f,indexToChr:l}}async getRecordsForRange(t,n,r,i={viewAsPairs:!1,pairAcrossChr:!1,maxInsertSize:2e5}){return ag(await _z(this.streamRecordsForRange(t,n,r,i)))}async*streamRecordsForRange(t,n,r,i={}){const{signal:o}=i,a=this.chrToIndex&&this.chrToIndex[t];let s;if(!(a>=0))s=[];else if(s=await this.index.blocksForRange(a,n-1,r,i),!s)throw new Error("Error in index fetch");for(let u=0;u<s.length;u+=1){await XA(o);const f=s[u].fetchedSize();if(f>this.chunkSizeLimit)throw new Error(`Too many BAM features. BAM chunk size ${f} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit}`)}const c=s.map(u=>u.fetchedSize()).reduce((u,f)=>u+f,0);if(c>this.fetchSizeLimit)throw new Error(`data size of ${c.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);yield*this._fetchChunkFeatures(s,a,n,r,i)}async*_fetchChunkFeatures(t,n,r,i,o){const{viewAsPairs:a=!1}=o,s=[];let c=!1;for(let u=0;u<t.length;u++){const f=t[u],l=await this.featureCache.get(f.toString(),{chunk:f,opts:o},o.signal),h=[];for(let d=0;d<l.length;d+=1){const p=l[d];if(p.seq_id()===n)if(p.get("start")>=i){c=!0;break}else p.get("end")>=r&&h.push(p)}if(s.push(h),yield h,c)break}WA(o.signal),a&&(yield this.fetchPairs(n,s,o))}async fetchPairs(t,n,r){const{pairAcrossChr:i=!1,maxInsertSize:o=2e5}=r,a={},s={};n.map(h=>{const d={};for(let p=0;p<h.length;p++){const b=h[p].name(),x=h[p].id();d[b]||(d[b]=0),d[b]++,s[x]=1}Az(d).forEach(([p,b])=>{b===1&&(a[p]=!0)})});const c=[];n.map(h=>{for(let d=0;d<h.length;d++){const p=h[d],b=p.name(),x=p.get("start"),A=p._next_pos(),D=p._next_refid();a[b]&&(i||D===t&&Math.abs(x-A)<o)&&c.push(this.index.blocksForRange(D,A,A+1,r))}});const u=ag(await Promise.all(c)).sort().filter((h,d,p)=>!d||h.toString()!==p[d-1].toString()),f=u.map(h=>h.fetchedSize()).reduce((h,d)=>h+d,0);if(f>this.fetchSizeLimit)throw new Error(`data size of ${f.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);const l=u.map(async h=>{const{data:d,cpositions:p,dpositions:b,chunk:x}=await this._readChunk({chunk:h,opts:r}),A=await this.readBamFeatures(d,p,b,x),D=[];for(let _=0;_<A.length;_+=1){const C=A[_];a[C.get("name")]&&!s[C.id()]&&D.push(C)}return D});return ag(await Promise.all(l))}async _readChunk({chunk:t,opts:n}){const r=t.fetchedSize(),{buffer:i,bytesRead:o}=await this.bam.read(Buffer.alloc(r),0,r,t.minv.blockPosition,n),{buffer:a,cpositions:s,dpositions:c}=await iF(i.subarray(0,Math.min(o,r)),t);return{data:a,cpositions:s,dpositions:c,chunk:t}}async readBamFeatures(t,n,r,i){let o=0;const a=[];let s=0,c=+Date.now();for(;o+4<t.length;){const u=t.readInt32LE(o),f=o+4+u-1;if(r){for(;o+i.minv.dataPosition>=r[s++];);s--}if(f<t.length){const l=new Sz({bytes:{byteArray:t,start:o,end:f},fileOffset:n?n[s]*256+(o-r[s])+i.minv.dataPosition+1:yz.signed(t.slice(o,f))});a.push(l),this.yieldThreadTime&&+Date.now()-c>this.yieldThreadTime&&(await sz(1),c=+Date.now())}o=f+1}return a}async hasRefSeq(t){const n=this.chrToIndex&&this.chrToIndex[t];return this.index.hasRefSeq(n)}async lineCount(t){const n=this.chrToIndex&&this.chrToIndex[t];return this.index.lineCount(n)}async indexCov(t,n,r){await this.index.parse();const i=this.chrToIndex&&this.chrToIndex[t];return this.index.indexCov(i,n,r)}async blocksForRange(t,n,r,i){await this.index.parse();const o=this.chrToIndex&&this.chrToIndex[t];return this.index.blocksForRange(o,n,r,i)}}(function(){(function(e){(function(t){var n={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};function r(E){return E&&DataView.prototype.isPrototypeOf(E)}if(n.arrayBuffer)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],o=ArrayBuffer.isView||function(E){return E&&i.indexOf(Object.prototype.toString.call(E))>-1};function a(E){if(typeof E!="string"&&(E=String(E)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(E))throw new TypeError("Invalid character in header field name");return E.toLowerCase()}function s(E){return typeof E!="string"&&(E=String(E)),E}function c(E){var N={next:function(){var F=E.shift();return{done:F===void 0,value:F}}};return n.iterable&&(N[Symbol.iterator]=function(){return N}),N}function u(E){this.map={},E instanceof u?E.forEach(function(N,F){this.append(F,N)},this):Array.isArray(E)?E.forEach(function(N){this.append(N[0],N[1])},this):E&&Object.getOwnPropertyNames(E).forEach(function(N){this.append(N,E[N])},this)}u.prototype.append=function(E,N){E=a(E),N=s(N);var F=this.map[E];this.map[E]=F?F+", "+N:N},u.prototype.delete=function(E){delete this.map[a(E)]},u.prototype.get=function(E){return E=a(E),this.has(E)?this.map[E]:null},u.prototype.has=function(E){return this.map.hasOwnProperty(a(E))},u.prototype.set=function(E,N){this.map[a(E)]=s(N)},u.prototype.forEach=function(E,N){for(var F in this.map)this.map.hasOwnProperty(F)&&E.call(N,this.map[F],F,this)},u.prototype.keys=function(){var E=[];return this.forEach(function(N,F){E.push(F)}),c(E)},u.prototype.values=function(){var E=[];return this.forEach(function(N){E.push(N)}),c(E)},u.prototype.entries=function(){var E=[];return this.forEach(function(N,F){E.push([F,N])}),c(E)},n.iterable&&(u.prototype[Symbol.iterator]=u.prototype.entries);function f(E){if(E.bodyUsed)return Promise.reject(new TypeError("Already read"));E.bodyUsed=!0}function l(E){return new Promise(function(N,F){E.onload=function(){N(E.result)},E.onerror=function(){F(E.error)}})}function h(E){var N=new FileReader,F=l(N);return N.readAsArrayBuffer(E),F}function d(E){var N=new FileReader,F=l(N);return N.readAsText(E),F}function p(E){for(var N=new Uint8Array(E),F=new Array(N.length),Z=0;Z<N.length;Z++)F[Z]=String.fromCharCode(N[Z]);return F.join("")}function b(E){if(E.slice)return E.slice(0);var N=new Uint8Array(E.byteLength);return N.set(new Uint8Array(E)),N.buffer}function x(){return this.bodyUsed=!1,this._initBody=function(E){this._bodyInit=E,E?typeof E=="string"?this._bodyText=E:n.blob&&Blob.prototype.isPrototypeOf(E)?this._bodyBlob=E:n.formData&&FormData.prototype.isPrototypeOf(E)?this._bodyFormData=E:n.searchParams&&URLSearchParams.prototype.isPrototypeOf(E)?this._bodyText=E.toString():n.arrayBuffer&&n.blob&&r(E)?(this._bodyArrayBuffer=b(E.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):n.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(E)||o(E))?this._bodyArrayBuffer=b(E):this._bodyText=E=Object.prototype.toString.call(E):this._bodyText="",this.headers.get("content-type")||(typeof E=="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(E)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n.blob&&(this.blob=function(){var E=f(this);if(E)return E;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?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(h)}),this.text=function(){var E=f(this);if(E)return E;if(this._bodyBlob)return d(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(p(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(C)}),this.json=function(){return this.text().then(JSON.parse)},this}var A=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function D(E){var N=E.toUpperCase();return A.indexOf(N)>-1?N:E}function _(E,N){N=N||{};var F=N.body;if(E instanceof _){if(E.bodyUsed)throw new TypeError("Already read");this.url=E.url,this.credentials=E.credentials,N.headers||(this.headers=new u(E.headers)),this.method=E.method,this.mode=E.mode,this.signal=E.signal,!F&&E._bodyInit!=null&&(F=E._bodyInit,E.bodyUsed=!0)}else this.url=String(E);if(this.credentials=N.credentials||this.credentials||"same-origin",(N.headers||!this.headers)&&(this.headers=new u(N.headers)),this.method=D(N.method||this.method||"GET"),this.mode=N.mode||this.mode||null,this.signal=N.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&F)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(F)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})};function C(E){var N=new FormData;return E.trim().split("&").forEach(function(F){if(F){var Z=F.split("="),W=Z.shift().replace(/\+/g," "),Y=Z.join("=").replace(/\+/g," ");N.append(decodeURIComponent(W),decodeURIComponent(Y))}}),N}function T(E){var N=new u,F=E.replace(/\r?\n[\t ]+/g," ");return F.split(/\r?\n/).forEach(function(Z){var W=Z.split(":"),Y=W.shift().trim();if(Y){var ye=W.join(":").trim();N.append(Y,ye)}}),N}x.call(_.prototype);function B(E,N){N||(N={}),this.type="default",this.status=N.status===void 0?200:N.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in N?N.statusText:"OK",this.headers=new u(N.headers),this.url=N.url||"",this._initBody(E)}x.call(B.prototype),B.prototype.clone=function(){return new B(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new u(this.headers),url:this.url})},B.error=function(){var E=new B(null,{status:0,statusText:""});return E.type="error",E};var S=[301,302,303,307,308];B.redirect=function(E,N){if(S.indexOf(N)===-1)throw new RangeError("Invalid status code");return new B(null,{status:N,headers:{location:E}})},t.DOMException=e.DOMException;try{new t.DOMException}catch{t.DOMException=function(N,F){this.message=N,this.name=F;var Z=Error(N);this.stack=Z.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function z(E,N){return new Promise(function(F,Z){var W=new _(E,N);if(W.signal&&W.signal.aborted)return Z(new t.DOMException("Aborted","AbortError"));var Y=new XMLHttpRequest;function ye(){Y.abort()}Y.onload=function(){var Ce={status:Y.status,statusText:Y.statusText,headers:T(Y.getAllResponseHeaders()||"")};Ce.url="responseURL"in Y?Y.responseURL:Ce.headers.get("X-Request-URL");var Ye="response"in Y?Y.response:Y.responseText;F(new B(Ye,Ce))},Y.onerror=function(){Z(new TypeError("Network request failed"))},Y.ontimeout=function(){Z(new TypeError("Network request failed"))},Y.onabort=function(){Z(new t.DOMException("Aborted","AbortError"))},Y.open(W.method,W.url,!0),W.credentials==="include"?Y.withCredentials=!0:W.credentials==="omit"&&(Y.withCredentials=!1),"responseType"in Y&&n.blob&&(Y.responseType="blob"),W.headers.forEach(function(Ce,Ye){Y.setRequestHeader(Ye,Ce)}),W.signal&&(W.signal.addEventListener("abort",ye),Y.onreadystatechange=function(){Y.readyState===4&&W.signal.removeEventListener("abort",ye)}),Y.send(typeof W._bodyInit>"u"?null:W._bodyInit)})}return z.polyfill=!0,e.fetch||(e.fetch=z,e.Headers=u,e.Request=_,e.Response=B),t.Headers=u,t.Request=_,t.Response=B,t.fetch=z,Object.defineProperty(t,"__esModule",{value:!0}),t})({})})(typeof self<"u"?self:Ii)})();class Tz extends uf(Fo){constructor(n,r){const i={channel:"x",windowSize:2e4,...n};super(r,i.channel);Vn(this,"lastRequestId",0);Vn(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");const o=a=>new tr(cf(a,this.view.getBaseUrl()));this.bam=new Mz({bamFilehandle:o(this.params.url),baiFilehandle:o(this.params.indexUrl??this.params.url+".bai")}),this.headerPromise=this.bam.getHeader(),this.headerPromise.then(a=>{var u,f;const s=this.genome.hasChrPrefix(),c=(f=(u=this.bam.indexToChr)==null?void 0:u[0])==null?void 0:f.refName.startsWith("chr");s&&!c?this.chrPrefixFixer=l=>l.replace("chr",""):!s&&c&&(this.chrPrefixFixer=l=>"chr"+l)})}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 o=this.genome.continuousToDiscreteChromosomeIntervals(i),a=await Promise.all(o.map(s=>this.bam.getRecordsForRange(this.chrPrefixFixer(s.chrom),s.startPos,s.endPos).then(c=>c.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(a.flat())}}}function Nz(e,t){if(XT(e))return new KT(e,t);if(JT(e))return new $T(e,t);if(eN(e))return new tN(e,t);if(Bz(e))return Pz(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function Bz(e){return"lazy"in e}function Fz(e){return(e==null?void 0:e.type)=="axisTicks"}function kz(e){return(e==null?void 0:e.type)=="axisGenome"}function Lz(e){return(e==null?void 0:e.type)=="indexedFasta"}function zz(e){return(e==null?void 0:e.type)=="bigwig"}function Rz(e){return(e==null?void 0:e.type)=="bigbed"}function Oz(e){return(e==null?void 0:e.type)=="bam"}function Pz(e,t){if(Fz(e))return new rN(e,t);if(kz(e))return new iN(e,t);if(Lz(e))return new uF(e,t);if(zz(e))return new XL(e,t);if(Rz(e))return new iz(e,t);if(Oz(e))return new Tz(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function Uz(e){const t=Object.keys(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
339
- `)+" };");return n.properties=t,n}class Lf extends He{get behavior(){return $n}constructor(){super();const t=n=>{const r=Uz(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{$b(n)&&(this.handle=t),super.beginBatch(n)}}}function jz(e){return"name"in e}class nv extends vs{constructor(n,r,i){super();rt(this,gu,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){ba(this,gu,n),this.loadSynchronously()}loadSynchronously(){const n=Me(this,gu)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=jy(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()}}gu=new WeakMap;class rv{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(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,o]of this._dataSourcesByHost.entries())if(o instanceof nv&&t==o.identifier){if(n&&n!==o)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=o,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function Gz(e,t){const n=[];let r;const i=t??new rv,o=[];function a(f,l=()=>{}){if(!r)throw l()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(f),r=f,f}function s(f,l){return a(f,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${l?JSON.stringify(l):""}`))}function c(f,l){for(const h of f){let d;try{d=VT(h,l)}catch(p){throw console.warn(p),new Error(`Cannot initialize "${h.type}" transform: ${p}`)}d.behavior&Br&&s(new Lf),s(d)}}const u=f=>{if(n.push(r),f.spec.data){const l=jz(f.spec.data)?new nv(f.spec.data,f,f.context.getNamedDataFromProvider):Nz(f.spec.data,f);r=l,i.addDataSource(l,f)}if(f.spec.transform&&c(f.spec.transform,f),f instanceof dt){if(!r)throw new Error("A unit view has no (inherited) data source");const l=Hz(f);if(l){o.push(l.rewrite);for(const d of l.transforms)s(d)}f.mark.isPickingParticipant()&&(s(new Lf),s(new Py({type:"identifier"})));const h=new ky({type:"collect",groupby:f.getFacetFields(),sort:Qz(f,l==null?void 0:l.rewrittenEncoding)});a(h),i.addCollector(h,f)}Fy(f.spec)};return u.postOrder=f=>{r=n.pop()},e.visit(u),o.forEach(f=>f()),i}function Hz(e){var o;const t=[],n={},r=[];for(const[a,s]of Object.entries(e.getEncoding())){const c=a;ss(c)&&wm(s)&&r.push({channel:c,chromPosDef:s})}const i=Mu(r,a=>yo(a.channel),a=>a.chromPosDef.chrom);for(const[a,s]of i.entries())for(const[c,u]of s.entries()){const f=[],l=[],h=[];for(const{channel:d,chromPosDef:p}of u){const b=D=>D.replace(/[^A-Za-z0-9_]/g,""),x=["_linearized_",b(p.chrom),"_",b(p.pos)].join(""),A={...((o=e.spec.encoding)==null?void 0:o[d])??e.getEncoding()[d]??{},field:x};delete A.chrom,delete A.pos,!A.type&&p.type&&(A.type=p.type),n[d]=A,f.push(p.pos),h.push(p.offset??0),l.push(x)}t.push(new Lf),t.push(new Ly({type:"linearizeGenomicCoordinate",channel:a,chrom:c,pos:f,offset:h,as:l},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},Zb(e.mark,"encoding")}}:void 0}function Qz(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Ht(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(is(n))return{field:n.field};if(!os(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function iv(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!iv(n,e))return!1;return!0}function sg(e,t=!1){if(e.behavior&a0&&(t=!0),e instanceof Lf)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&sg(n,t);return}e.behavior&$n&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)sg(e.children[n],t||r>1)}function Vz(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),e.addDataSource(i,r)}}function Zz(e){if(sg(e),!iv(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function Yz(e){for(const t of e.dataSources)Zz(t);Vz(e)}function qz(e){e.visit(n=>{n instanceof dt&&n.resolve("scale")});const t=new Set;e.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&t.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);t.add(i)}}),e.visit(n=>{n instanceof dt&&n.resolve("axis")}),e.visit(n=>n.onScalesResolved())}function Wz(e){for(const t of as){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function Xz(e,t,n){var a;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=Gu({baseURL:t}),i=e.import.url,o=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
340
- Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]*\//))==null?void 0:a[0],o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}async function ov(e){const t=[];e.visit(n=>{if(n instanceof Sy)return t.push(n),ry});for(const n of t){const r=n.context,i=await Xz(n.spec,n.getBaseUrl(),r),o=r.createView(i,n.parent,n.name);n.parent.replaceChild(n,o),await ov(o)}}class av{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class sv extends av{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}renderDeferred(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.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&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=a=>()=>{t&&a()},i=a=>()=>{t&&n&&a()},o=Mu(this.buffer,a=>a.mark);for(const[a,s]of o.entries()){if(!a.isReady())continue;this.batch.push(()=>{t=a.unitView.getEffectiveOpacity()>0}),this.batch.push(...a.prepareRender(this.globalOptions).map(u=>r(u)));let c;for(const u of s){const f=u.coords;f.equals(c)||this.batch.push(r(()=>{n=a.setViewport(f,u.clipRect)})),this.batch.push(i(u.callback)),c=u.coords}}}}class Kz extends av{constructor(...t){super({}),this.contexts=t}pushView(t,n){for(const r of this.contexts)r.pushView(t,n)}popView(t){for(const n of this.contexts)n.popView(t)}renderMark(t,n){for(const r of this.contexts)r.renderMark(t,n)}}class Jz{constructor(t,n){this.point=t,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class $z{constructor(t,n){this.x=t,this.y=n}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const e9=e=>new Promise(t=>setTimeout(t,e));function t9(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const a=performance.now(),s=a+(e.duration||1e3),c=typeof e.from=="number"?e.from:0,u=typeof e.to=="number"?e.to:1,f=e.easingFunction||(b=>b),l=b=>(b-a)/(s-a),h=b=>b*(u-c)+c,d=b=>Math.max(0,Math.min(1,b)),p=b=>{n!=null&&n.aborted?o("aborted"):(e.onUpdate(h(f(d(l(b))))),b<s?t(p):(e.onUpdate(h(f(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):e9(e.delay).then(r):r()}class n9{constructor(t){this._renderCallback=t,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(t){this.cancelTransition(t),this.transitions.push(t),this.requestRender()}cancelTransition(t){const n=this.transitions.indexOf(t);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(t=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(t);this._renderCallback(t)}))}transition(t){return t9({requestAnimationFrame:n=>this.requestTransition(n),...t})}}function uv(){const e=t=>t;return e.invert=t=>t,e.copy=uv,e.invertRange=()=>{},e}class r9{constructor(t){this.genomes=new Map,this.genomeSpy=t}async initialize(t){const n=new P6(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.genomeSpy.spec.baseUrl)))}getGenome(t){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(t){const n=this.genomes.get(t);if(!n)throw new Error(`No genome with the name ${t} 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 i9="data:image/png;base64,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",o9={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class a9{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new ri([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:r0(zy),texture:this._createTextureNow(i9)}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Re(r)&&(r=o9[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let o=this._fonts.get(i);return o||(o={metrics:void 0,texture:void 0},this._fonts.set(i,o),this._promises.push(this._loadFontEntry(o,i))),o}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=u9(r,n),o=this.fontRepository+cv(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");t.texture=await a,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>r0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=cv(t);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=>s9(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{gs(n,{src:t,min:n.LINEAR},(o,a,s)=>{o?i(o):r(a)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((o,a)=>{r=gs(n,{src:t,min:n.LINEAR},(s,c,u)=>{s?a(s):o(c)})});return this._promises.push(i),r}}function cv(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function s9(e){const t=e.split(`
341
- `),n=[];let r;for(const i of t)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 o=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(o){const a=o[1];r[a]=o[2]}if(o=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),o){const a=o[1];r[a]=+o[2]}}return n}function u9(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const o=Math.abs(t.weight-i.weight);o<r&&(r=o,n=i)}return n==null?void 0:n.filename}function c9(e,t){const n=[];let r;for(const i of e.split(`
342
- `))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 f9{constructor(t,n){this.animator=t,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(t,n){if(this.disabled){n(t);return}t*this.momentum<0?this.momentum=0:Math.abs(t)>this.accelerationThreshold?this.momentum=Xv([this.momentum,t],this.acceleration):this.momentum=t,this.callback=n,this.loop||this.animate()}animate(t){this.callback(this.momentum);const n=t-this.timestamp||0;this.timestamp=t;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 l9(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const o=i;!r.includes(i)&&n.includes(typeof e[o])&&(t[o]=e[o])}return t}const fv=new Map;async function h9(e,t,n){const r=e.symbol;let i=fv.get(r)??await p9(e.symbol);return i?(fv.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 d9(e){console.log("Searching: "+e);const t={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${e}[GENE]&sort=relevance&retmode=json`,t).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`,t).then(a=>a.json())).result[r]:null}const g9=Wd(d9,500);function p9(e){return g9(e)}const m9=it(".4~r"),b9=it(".4~e");function y9(e){return e===null?qn`<span class="na">NA</span>`:Re(e)?e.substring(0,30):Number.isInteger(e)?""+e:Et(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?b9(e):m9(e):Cu(e)?e?"True":"False":"?"+typeof e+" "+e}async function w9(e,t,n){const r=(c,u)=>{var f;for(const[l,h]of Object.entries(t.encoders))if((f=h==null?void 0:h.accessor)!=null&&f.fields.includes(c))switch(l){case"color":case"fill":case"stroke":return qn`<span class="color-legend" style="${`background-color: ${h(u)}`}"></span>`}return""},i=Object.entries(e).filter(([c,u])=>!c.startsWith("_"));if(i.length===0)return;const o=qn`<table class="attributes">${i.map(([c,u])=>qn`<tr><th>${c}</th><td>${y9(u)} ${r(c,e)}</td></tr>`)}</table>`,a=t.unitView.getTitleText(),s=a?qn`<div class="title"><strong>${a}</strong></div>`:"";return qn`${s}${o}`}class x9 extends By{constructor(t,n){super({vconcat:[]},t,void 0,"implicitRoot",1),n.parent=this,this.appendChild(n)}}ge("index",Il,["continuous"]),ge("locus",MC,["continuous"]),ge("null",uv,[]),Ip("fasta",c9);class lv{constructor(t,n,r={}){this.container=t,this.spec=n,this.accessorFactory=new bD,this.viewFactory=new wT,this.namedDataProviders=[],this.animator=new n9(()=>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 f9(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:w9,refseqgene:h9,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);r.dataSource.updateDynamicData(n);for(const i of r.hosts)i.visit(o=>{for(const a of Object.values(o.resolutions.scale))a.reconfigure()});this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(o=>o.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(o=>o(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new kM(this.container,()=>{if(this.viewRoot){const t=this.viewRoot.getSize().addPadding(this.viewRoot.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.height)}}}),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 W4(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[t,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(t,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new r9(this),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new rv,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new a9(this._glHelper),requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,c)=>{document.addEventListener(s,c);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(c)},addBroadcastListener(s,c){const u=t._extraBroadcastListeners;let f=u.get(s);f||(f=new Set,u.set(s,f)),f.add(c)},removeBroadcastListener(s,c){var f;(f=t._extraBroadcastListeners.get(s))==null||f.delete(c)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:s=>t.viewFactory.isViewSpec(s),createView:function(s,c,u){return t.viewFactory.createView(s,n,c,u)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,"viewRoot"),await ov(this.viewRoot),(this.viewRoot instanceof dt||this.viewRoot instanceof Fr)&&(this.viewRoot=new x9(n,this.viewRoot)),qz(this.viewRoot),Wz(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof dt&&i.push(s)});const o=Gz(this.viewRoot,n.dataFlow);Yz(o),this.broadcast("dataFlowBuilt",o),o.dataSources.forEach(s=>console.log(s.subtreeToString())),i.forEach(s=>s.mark.initializeEncoders());const a=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)o.addObserver(c=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(s=>s.load())),Cy(this.viewRoot),this.broadcast("dataLoaded"),await a,this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(c)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>Oc(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(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),A9(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=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 o=t.getBoundingClientRect(),a=new $z(r.clientX-o.left-t.clientLeft,r.clientY-o.top-t.clientTop),s=c=>{this.viewRoot.propagateInteractionEvent(new Jz(a,c)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(a.x,a.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const c=r;if(Math.abs(c.deltaX)>Math.abs(c.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=l9(c);this._wheelInertia.setMomentum(c.deltaY*(c.deltaMode?80:1),f=>{const l=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:f});s(l)}),c.preventDefault();return}}if(r.type=="click"){const c=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getAncestors().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(c))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>t.addEventListener(r,n)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(t,n){var o;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(a=>{if(a instanceof dt){if(a.mark.isPickingParticipant()){const s=a.mark.encoders.uniqueId.accessor;a.getCollector().visitData(c=>{s(c)==i&&(this._currentHover={mark:a.mark,datum:c,uniqueId:i})})}if(this._currentHover)return xs}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!a.isPickingParticipant())return;const c=a.properties.tooltip;if(c!==null){const u=(c==null?void 0:c.handler)??"default",f=this.tooltipHandlers[u];if(!f)throw new Error("No such tooltip handler: "+u);return f(s,a,c==null?void 0:c.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)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 sv({picking:!1},this._glHelper),this._pickingContext=new sv({picking:!0},this._glHelper),t.render(new Kz(this._renderingContext,this._pickingContext),Bo.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.renderDeferred(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.renderDeferred(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof dt&&n.getAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}function A9(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}const v9="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+",E9="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";async function C9(e,t,n={}){let r;if(Re(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const o=an(t)?t:await hv(t);if(o.baseUrl??(o.baseUrl=""),o.width??(o.width="container"),o.padding??(o.padding=10),r==document.body){const a=document.createElement("div");a.style.position="fixed",a.style.inset="0",a.style.overflow="hidden",r.appendChild(a),r=a}i=new lv(r,o,n),S9(i,n),await i.launch()}catch(o){r.innerText=o.toString(),console.error(o)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(o,a){const s=i._eventListeners;let c=s.get(o);c||(c=new Set,s.set(o,c)),c.add(a)},removeEventListener(o,a){var c;(c=i._eventListeners.get(o))==null||c.delete(a)},getScaleResolutionByName(o){return i.getNamedScaleResolutions().get(o)},updateNamedData:i.updateNamedData.bind(i)}}function S9(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function hv(e){let t;try{t=JSON.parse(await Gu().load(e))}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}re.GenomeSpy=lv,re.embed=C9,re.favIcon=E9,re.html=qn,re.icon=v9,re.loadSpec=hv,Object.defineProperty(re,Symbol.toStringTag,{value:"Module"})});
338
+ )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,KA.parse(t.trim())]));function fg(e){const t=["uint","int","float","long"];return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.includes(n.type),isNumeric:!n.size&&t.includes(n.type)}))}}const oz={".":0,"-":-1,"+":1};function sz(e){var t;return e.length>=12&&!Number.isNaN(parseInt(e[9],10))&&((t=e[10])===null||t===void 0?void 0:t.split(",").filter(n=>!!n).length)===parseInt(e[9],10)}class uz{constructor(t={}){if(t.autoSql)this.autoSql=fg(az.parse(t.autoSql));else if(t.type){if(!cg[t.type])throw new Error("Type not found");this.autoSql=fg(cg[t.type])}else this.autoSql=fg(cg.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(t)?t:t.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&sz(a))for(let s=0;s<r.fields.length;s++){const c=r.fields[s];let u=a[s];const{isNumeric:f,isArray:l,arrayIsNumeric:h,name:d}=c;if(u==null)break;if(u!=="."){if(f){const p=Number(u);u=Number.isNaN(p)?u:p}else l&&(u=u.split(","),u[u.length-1]===""&&u.pop(),h&&(u=u.map(p=>Number(p))));o[d]=u}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((c,u)=>[s[u]||"field"+u,c])),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=oz[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}class cz extends Af(La){constructor(n,r){const i={channel:"x",windowSize:1e6,...n};super(r,i.channel);Sn(this,"lastRequestId",0);Sn(this,"parser");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.bbi=new ez({filehandle:new tr(vf(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=ug(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.parser=new uz({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(c=>c.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=Ee,nn=null;try{nn=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 Ee(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Ee.prototype.__isLong__,Object.defineProperty(Ee.prototype,"__isLong__",{value:!0});function Ft(e){return(e&&e.__isLong__)===!0}Ee.isLong=Ft;var JA={},$A={};function qi(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=$A[e],r)?r:(n=Ce(e,(e|0)<0?-1:0,!0),i&&($A[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=JA[e],r)?r:(n=Ce(e,e<0?-1:0,!1),i&&(JA[e]=n),n))}Ee.fromInt=qi;function rn(e,t){if(isNaN(e))return t?Xi:an;if(t){if(e<0)return Xi;if(e>=tv)return ov}else{if(e<=-nv)return kt;if(e+1>=nv)return av}return e<0?rn(-e,t).neg():Ce(e%co|0,e/co|0,t)}Ee.fromNumber=rn;function Ce(e,t,n){return new Ee(e,t,n)}Ee.fromBits=Ce;var Zf=Math.pow;function lg(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return an;if(typeof t=="number"?(n=t,t=!1):t=!!t,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return lg(e.substring(1),t,n).neg();for(var i=rn(Zf(n,8)),a=an,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),c=parseInt(e.substring(o,o+s),n);if(s<8){var u=rn(Zf(n,s));a=a.mul(u).add(rn(c))}else a=a.mul(i),a=a.add(rn(c))}return a.unsigned=t,a}Ee.fromString=lg;function vn(e,t){return typeof e=="number"?rn(e,t):typeof e=="string"?lg(e,t):Ce(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Ee.fromValue=vn;var ev=1<<16,lz=1<<24,co=ev*ev,tv=co*co,nv=tv/2,rv=qi(lz),an=qi(0);Ee.ZERO=an;var Xi=qi(0,!0);Ee.UZERO=Xi;var fo=qi(1);Ee.ONE=fo;var iv=qi(1,!0);Ee.UONE=iv;var hg=qi(-1);Ee.NEG_ONE=hg;var av=Ce(-1,2147483647,!1);Ee.MAX_VALUE=av;var ov=Ce(-1,-1,!0);Ee.MAX_UNSIGNED_VALUE=ov;var kt=Ce(0,-2147483648,!1);Ee.MIN_VALUE=kt;var j=Ee.prototype;j.toInt=function(){return this.unsigned?this.low>>>0:this.low},j.toNumber=function(){return this.unsigned?(this.high>>>0)*co+(this.low>>>0):this.high*co+(this.low>>>0)},j.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(kt)){var n=rn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var a=rn(Zf(t,6),this.unsigned),o=this,s="";;){var c=o.div(a),u=o.sub(c.mul(a)).toInt()>>>0,f=u.toString(t);if(o=c,o.isZero())return f+s;for(;f.length<6;)f="0"+f;s=""+f+s}},j.getHighBits=function(){return this.high},j.getHighBitsUnsigned=function(){return this.high>>>0},j.getLowBits=function(){return this.low},j.getLowBitsUnsigned=function(){return this.low>>>0},j.getNumBitsAbs=function(){if(this.isNegative())return this.eq(kt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},j.isZero=function(){return this.high===0&&this.low===0},j.eqz=j.isZero,j.isNegative=function(){return!this.unsigned&&this.high<0},j.isPositive=function(){return this.unsigned||this.high>=0},j.isOdd=function(){return(this.low&1)===1},j.isEven=function(){return(this.low&1)===0},j.equals=function(t){return Ft(t)||(t=vn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},j.eq=j.equals,j.notEquals=function(t){return!this.eq(t)},j.neq=j.notEquals,j.ne=j.notEquals,j.lessThan=function(t){return this.comp(t)<0},j.lt=j.lessThan,j.lessThanOrEqual=function(t){return this.comp(t)<=0},j.lte=j.lessThanOrEqual,j.le=j.lessThanOrEqual,j.greaterThan=function(t){return this.comp(t)>0},j.gt=j.greaterThan,j.greaterThanOrEqual=function(t){return this.comp(t)>=0},j.gte=j.greaterThanOrEqual,j.ge=j.greaterThanOrEqual,j.compare=function(t){if(Ft(t)||(t=vn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},j.comp=j.compare,j.negate=function(){return!this.unsigned&&this.eq(kt)?kt:this.not().add(fo)},j.neg=j.negate,j.add=function(t){Ft(t)||(t=vn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=t.high>>>16,s=t.high&65535,c=t.low>>>16,u=t.low&65535,f=0,l=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+c,l+=h>>>16,h&=65535,l+=r+s,f+=l>>>16,l&=65535,f+=n+o,f&=65535,Ce(h<<16|d,f<<16|l,this.unsigned)},j.subtract=function(t){return Ft(t)||(t=vn(t)),this.add(t.neg())},j.sub=j.subtract,j.multiply=function(t){if(this.isZero())return an;if(Ft(t)||(t=vn(t)),nn){var n=nn.mul(this.low,this.high,t.low,t.high);return Ce(n,nn.get_high(),this.unsigned)}if(t.isZero())return an;if(this.eq(kt))return t.isOdd()?kt:an;if(t.eq(kt))return this.isOdd()?kt:an;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(rv)&&t.lt(rv))return rn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,c=t.high&65535,u=t.low>>>16,f=t.low&65535,l=0,h=0,d=0,p=0;return p+=o*f,d+=p>>>16,p&=65535,d+=a*f,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*f,l+=h>>>16,h&=65535,h+=a*u,l+=h>>>16,h&=65535,h+=o*c,l+=h>>>16,h&=65535,l+=r*f+i*u+a*c+o*s,l&=65535,Ce(d<<16|p,l<<16|h,this.unsigned)},j.mul=j.multiply,j.divide=function(t){if(Ft(t)||(t=vn(t)),t.isZero())throw Error("division by zero");if(nn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?nn.div_u:nn.div_s)(this.low,this.high,t.low,t.high);return Ce(n,nn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Xi:an;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Xi;if(t.gt(this.shru(1)))return iv;a=Xi}else{if(this.eq(kt)){if(t.eq(fo)||t.eq(hg))return kt;if(t.eq(kt))return fo;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(an)?t.isNegative()?fo:hg:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(kt))return this.unsigned?Xi:an;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();a=an}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),c=s<=48?1:Zf(2,s-48),u=rn(r),f=u.mul(t);f.isNegative()||f.gt(i);)r-=c,u=rn(r,this.unsigned),f=u.mul(t);u.isZero()&&(u=fo),a=a.add(u),i=i.sub(f)}return a},j.div=j.divide,j.modulo=function(t){if(Ft(t)||(t=vn(t)),nn){var n=(this.unsigned?nn.rem_u:nn.rem_s)(this.low,this.high,t.low,t.high);return Ce(n,nn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},j.mod=j.modulo,j.rem=j.modulo,j.not=function(){return Ce(~this.low,~this.high,this.unsigned)},j.and=function(t){return Ft(t)||(t=vn(t)),Ce(this.low&t.low,this.high&t.high,this.unsigned)},j.or=function(t){return Ft(t)||(t=vn(t)),Ce(this.low|t.low,this.high|t.high,this.unsigned)},j.xor=function(t){return Ft(t)||(t=vn(t)),Ce(this.low^t.low,this.high^t.high,this.unsigned)},j.shiftLeft=function(t){return Ft(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ce(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Ce(0,this.low<<t-32,this.unsigned)},j.shl=j.shiftLeft,j.shiftRight=function(t){return Ft(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ce(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Ce(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},j.shr=j.shiftRight,j.shiftRightUnsigned=function(t){if(Ft(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Ce(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Ce(n,0,this.unsigned):Ce(n>>>t-32,0,this.unsigned)},j.shru=j.shiftRightUnsigned,j.shr_u=j.shiftRightUnsigned,j.toSigned=function(){return this.unsigned?Ce(this.low,this.high,!1):this},j.toUnsigned=function(){return this.unsigned?this:Ce(this.low,this.high,!0)},j.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},j.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},j.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Ee.fromBytes=function(t,n,r){return r?Ee.fromBytesLE(t,n):Ee.fromBytesBE(t,n)},Ee.fromBytesLE=function(t,n){return new Ee(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Ee.fromBytesBE=function(t,n){return new Ee(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const sv=za(fz);class uv{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}}function lo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new uv(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}class Yf{constructor(t,n,r,i=void 0){this.minv=t,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(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+(1<<16)-this.minv.blockPosition}}class cv{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}_findFirstData(t,n){const r=t.firstDataLine;r?t.firstDataLine=r.compareTo(n)>0?n:r:t.firstDataLine=n}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){return!!((await this.parse(n)).indices[t]||{}).binIndex}}function hz(e){return new Promise(t=>setTimeout(t,e))}function fv(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function lv(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new Error("aborted");throw t.code="ERR_ABORTED",t}}}async function hv(e){await Promise.resolve(),lv(e)}function dz(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function gz(e={}){return"aborted"in e?{signal:e}:e}function dv(e,t){const n=[];let r=null;return e.length===0?e:(e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):dz(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}const pz=21578050;function mz(e,t){return e-e%t}function bz(e,t){return e-e%t+t}class gu extends cv{parsePseudoBin(t,n){return{lineCount:fv(sv.fromBytesLE(Array.prototype.slice.call(t,n+16,n+24),!0))}}async lineCount(t,n={}){const i=(await this.parse(n)).indices[t];if(!i)return-1;const a=i.stats||{};return a.lineCount===void 0?-1:a.lineCount}fetchBai(t={}){return this.baiP||(this.baiP=this.filehandle.readFile(t).catch(n=>{throw this.baiP=void 0,n})),this.baiP}async _parse(){const t={bai:!0,maxBlockSize:65536},n=await this.fetchBai();if(n.readUInt32LE(0)!==pz)throw new Error("Not a BAI file");t.refCount=n.readInt32LE(4);const i=((1<<(5+1)*3)-1)/7;t.indices=new Array(t.refCount);let a=8;for(let o=0;o<t.refCount;o+=1){const s=n.readInt32LE(a);let c;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,c=this.parsePseudoBin(n,a),a+=32;else{if(d>i+1)throw new Error("bai index contains too many bins, please use CSI");{const p=n.readInt32LE(a);a+=4;const b=new Array(p);for(let x=0;x<p;x+=1){const A=lo(n,a),D=lo(n,a+8);a+=16,this._findFirstData(t,A),b[x]=new Yf(A,D,d)}u[d]=b}}}const f=n.readInt32LE(a);a+=4;const l=new Array(f);for(let h=0;h<f;h+=1)l[h]=lo(n,a),a+=8,this._findFirstData(t,l[h]);t.indices[o]={binIndex:u,linearIndex:l,stats:c}}return t}async indexCov(t,n,r,i={}){const o=n!==void 0,c=(await this.parse(i)).indices[t];if(!c)return[];const{linearIndex:u=[],stats:f}=c;if(!u.length)return[];const l=r!==void 0?bz(r,16384):(u.length-1)*16384,h=n!==void 0?mz(n,16384):0;let d;o?d=new Array((l-h)/16384):d=new Array(u.length-1);const p=u[u.length-1].blockPosition;if(l>(u.length-1)*16384)throw new Error("query outside of range of linear index");let b=u[h/16384].blockPosition;for(let x=h/16384,A=0;x<l/16384;x++,A++)d[A]={score:u[x+1].blockPosition-b,start:x*16384,end:x*16384+16384},b=u[x+1].blockPosition;return d.map(x=>({...x,score:x.score*f.lineCount/p}))}reg2bins(t,n){return n-=1,[[0,0],[1+(t>>26),1+(n>>26)],[9+(t>>23),9+(n>>23)],[73+(t>>20),73+(n>>20)],[585+(t>>17),585+(n>>17)],[4681+(t>>14),4681+(n>>14)]]}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[t];if(!o)return[];const s=this.reg2bins(n,r),c=[];for(const[d,p]of s)for(let b=d;b<=p;b++)if(o.binIndex[b]){const x=o.binIndex[b];for(let A=0;A<x.length;++A)c.push(new Yf(x[A].minv,x[A].maxv,b))}const u=o.linearIndex.length;let f=null;const l=Math.min(n>>14,u-1),h=Math.min(r>>14,u-1);for(let d=l;d<=h;++d){const p=o.linearIndex[d];p&&(!f||p.compareTo(f)<0)&&(f=p)}return dv(c,f)}}const yz=21582659,wz=38359875;function xz(e,t){return e*2**t}function gv(e,t){return Math.floor(e/2**t)}class dg extends cv{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t){const n=await this.parse();if(!n||!n.indices[t])return-1;const{stats:i}=n.indices[t];return i?i.lineCount:-1}async indexCov(){return[]}parseAuxData(t,n,r){if(r<30)return{};const i={};if(i.formatFlags=t.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:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},i.metaValue=t.readInt32LE(n+16),i.metaChar=i.metaValue?String.fromCharCode(i.metaValue):"",i.skipLines=t.readInt32LE(n+20);const a=t.readInt32LE(n+24);return Object.assign(i,this._parseNameBytes(t.subarray(n+28,n+28+a))),i}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.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(t){const n={csi:!0,maxBlockSize:65536},r=await this.filehandle.readFile(t),i=await ld(r);if(i.readUInt32LE(0)===yz)n.csiVersion=1;else if(i.readUInt32LE(0)===wz)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 hv(t.signal);const c=i.readInt32LE(o);o+=4;const u={};let f;for(let l=0;l<c;l+=1){const h=i.readUInt32LE(o);if(h>this.maxBinNumber)f=this.parsePseudoBin(i,o+4),o+=4+8+4+16+16;else{const d=lo(i,o+4);this._findFirstData(n,d);const p=i.readInt32LE(o+12);o+=16;const b=new Array(p);for(let x=0;x<p;x+=1){const A=lo(i,o),D=lo(i,o+8);o+=16,b[x]=new Yf(A,D,h)}u[h]=b}}n.indices[s]={binIndex:u,stats:f}}return n}parsePseudoBin(t,n){return{lineCount:fv(sv.fromBytesLE(Array.prototype.slice.call(t,n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[t];if(!o)return[];const s=this.reg2bins(n,r),c=[];for(const[u,f]of s)for(let l=u;l<=f;l++)if(o.binIndex[l]){const h=o.binIndex[l];for(let d=0;d<h.length;++d)c.push(new Yf(h[d].minv,h[d].maxv,l))}return dv(c,new uv(0,0))}reg2bins(t,n){t-=1,t<1&&(t=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+=xz(1,r*3),r+=1){const s=i+gv(t,a),c=i+gv(n,a);if(c-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${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,c])}return o}}var $r=zt.Buffer,gg=[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"&&(gg=new Int32Array(gg));function pv(e){if($r.isBuffer(e))return e;var t=typeof $r.alloc=="function"&&typeof $r.from=="function";if(typeof e=="number")return t?$r.alloc(e):new $r(e);if(typeof e=="string")return t?$r.from(e):new $r(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function Az(e){var t=pv(4);return t.writeInt32BE(e,0),t}function pg(e,t){e=pv(e),$r.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=gg[(n^e[r])&255]^n>>>8;return n^-1}function mg(){return Az(pg.apply(null,arguments))}mg.signed=function(){return pg.apply(null,arguments)},mg.unsigned=function(){return pg.apply(null,arguments)>>>0};var vz=mg;const Ez=za(vz);var bg,mv;function Cz(){if(mv)return bg;mv=1;var e=function(r,i){return Object.prototype.hasOwnProperty.call(r,i)},t=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)e(r,a)&&t(r,a)&&i.push([a,r[a]]);return i}return bg=n,bg}var Sz=typeof Object.entries=="function"?Object.entries:Cz();const Dz=za(Sz);class Iz{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}}var _z=Iz;const Mz=za(_z),on={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},bv="=ACMGRSVTWYHKDBN".split(""),pu="MIDNSHP=X???????".split("");class Tz{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{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(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]),Object.keys(this.data).forEach(r=>{r[0]!=="_"&&r!=="next_seq_id"&&t.push(r)});const n={};return t.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 t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+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 t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){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!==t;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const c=String.fromCharCode(n[i+2]);i+=3;let u;switch(c){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 f=n[i++];if(f===0)break;u+=String.fromCharCode(f)}break;case"B":{u="";const f=n[i++],l=String.fromCharCode(f),h=n.readInt32LE(i);if(i+=4,l==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),b=p>>4,x=pu[p&15];u+=b+x,i+=4}else for(let d=0;d<h;d++)u+=n.readInt32LE(i),d+1<h&&(u+=","),i+=4;if(l==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),b=p>>4,x=pu[p&15];u+=b+x,i+=4}else for(let d=0;d<h;d++)u+=n.readUInt32LE(i),d+1<h&&(u+=","),i+=4;if(l==="s")for(let d=0;d<h;d++)u+=n.readInt16LE(i),d+1<h&&(u+=","),i+=2;if(l==="S")for(let d=0;d<h;d++)u+=n.readUInt16LE(i),d+1<h&&(u+=","),i+=2;if(l==="c")for(let d=0;d<h;d++)u+=n.readInt8(i),d+1<h&&(u+=","),i+=1;if(l==="C")for(let d=0;d<h;d++)u+=n.readUInt8(i),d+1<h&&(u+=","),i+=1;if(l==="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 '${c}', tags may be incomplete`),u=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return u;this.data[o]=u}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),parseInt(n,10)])}isPaired(){return!!(this.flags&on.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&on.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&on.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&on.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&on.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&on.BAM_FMREVERSE)}isRead1(){return!!(this.flags&on.BAM_FREAD1)}isRead2(){return!!(this.flags&on.BAM_FREAD2)}isSecondary(){return!!(this.flags&on.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&on.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&on.BAM_FDUP)}isSupplementary(){return!!(this.flags&on.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,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,c=t.readInt32LE(i),u=c>>4,f=pu[c&15];if(f==="S"&&u===a)return i+=4,c=t.readInt32LE(i),u=c>>4,f=pu[c&15],f!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=u,this.get("CG");for(let l=0;l<r;++l)c=t.readInt32LE(i),u=c>>4,f=pu[c&15],o+=u+f,f!=="H"&&f!=="S"&&f!=="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:t,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 c=0;c<i;++c){const u=t[r+c];o+=bv[(u&240)>>4],s++,s<a&&(o+=bv[u&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=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]=t,a[1]=r,a[2]=n,a[3]=i):(a[2]=t,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 t={};return Object.keys(this).forEach(n=>{n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n])}),t}}function Nz(e){const t=e.split(/\r?\n/),n=[];return t.forEach(r=>{const[i,...a]=r.split(/\t/),o=a.map(s=>{const[c,u]=s.split(":",2);return{tag:c,value:u}});i&&n.push({tag:i.substr(1),data:o})}),n}const Bz=21840194,yg=1<<16;function wg(e){return[].concat(...e)}async function Fz(e){const t=[];for await(const n of e)t.push(n);return t}class kz{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:c,csiUrl:u,fetchSizeLimit:f,chunkSizeLimit:l,yieldThreadTime:h=100,renameRefSeqs:d=p=>p}){if(this.featureCache=new Ad({cache:new Mz({maxSize:50}),fill:async({chunk:p,opts:b},x)=>{const{data:A,cpositions:D,dpositions:_}=await this._readChunk({chunk:p,opts:{...b,signal:x}});return await this.readBamFeatures(A,D,_,p)}}),this.renameRefSeq=d,t)this.bam=t;else if(n)this.bam=new Or(n);else if(r)this.bam=new tr(r);else throw new Error("unable to initialize bam");if(c)this.index=new dg({filehandle:c});else if(s)this.index=new dg({filehandle:new Or(s)});else if(u)this.index=new dg({filehandle:new tr(u)});else if(a)this.index=new gu({filehandle:a});else if(i)this.index=new gu({filehandle:new Or(i)});else if(o)this.index=new gu({filehandle:new tr(o)});else if(n)this.index=new gu({filehandle:new Or(`${n}.bai`)});else if(r)this.index=new gu({filehandle:new tr(`${r}.bai`)});else throw new Error("unable to infer index format");this.fetchSizeLimit=f||5e8,this.chunkSizeLimit=l||3e8,this.yieldThreadTime=h}async getHeader(t={}){const n=gz(t),r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const f=await this.bam.read(Buffer.alloc(i+yg),0,i+yg,0,n),{bytesRead:l}=f;if({buffer:a}=f,!l)throw new Error("Error reading header");l<i?a=a.subarray(0,l):a=a.subarray(0,i)}else a=await this.bam.readFile(n);const o=await ld(a);if(o.readInt32LE(0)!==Bz)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:c,indexToChr:u}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=c,this.indexToChr=u,Nz(this.header)}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r={}){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+yg,{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 ld(o.subarray(0,Math.min(a,n))),c=s.readInt32LE(t);let u=t+4;const f={},l=[];for(let h=0;h<c;h+=1){const d=s.readInt32LE(u),p=this.renameRefSeq(s.toString("utf8",u+4,u+4+d-1)),b=s.readInt32LE(u+d+4);if(f[p]=h,l.push({refName:p,length:b}),u=u+8+d,u>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:f,indexToChr:l}}async getRecordsForRange(t,n,r,i={viewAsPairs:!1,pairAcrossChr:!1,maxInsertSize:2e5}){return wg(await Fz(this.streamRecordsForRange(t,n,r,i)))}async*streamRecordsForRange(t,n,r,i={}){const{signal:a}=i,o=this.chrToIndex&&this.chrToIndex[t];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 hv(a);const f=s[u].fetchedSize();if(f>this.chunkSizeLimit)throw new Error(`Too many BAM features. BAM chunk size ${f} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit}`)}const c=s.map(u=>u.fetchedSize()).reduce((u,f)=>u+f,0);if(c>this.fetchSizeLimit)throw new Error(`data size of ${c.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);yield*this._fetchChunkFeatures(s,o,n,r,i)}async*_fetchChunkFeatures(t,n,r,i,a){const{viewAsPairs:o=!1}=a,s=[];let c=!1;for(let u=0;u<t.length;u++){const f=t[u],l=await this.featureCache.get(f.toString(),{chunk:f,opts:a},a.signal),h=[];for(let d=0;d<l.length;d+=1){const p=l[d];if(p.seq_id()===n)if(p.get("start")>=i){c=!0;break}else p.get("end")>=r&&h.push(p)}if(s.push(h),yield h,c)break}lv(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i=!1,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(let p=0;p<h.length;p++){const b=h[p].name(),x=h[p].id();d[b]||(d[b]=0),d[b]++,s[x]=1}Dz(d).forEach(([p,b])=>{b===1&&(o[p]=!0)})});const c=[];n.map(h=>{for(let d=0;d<h.length;d++){const p=h[d],b=p.name(),x=p.get("start"),A=p._next_pos(),D=p._next_refid();o[b]&&(i||D===t&&Math.abs(x-A)<a)&&c.push(this.index.blocksForRange(D,A,A+1,r))}});const u=wg(await Promise.all(c)).sort().filter((h,d,p)=>!d||h.toString()!==p[d-1].toString()),f=u.map(h=>h.fetchedSize()).reduce((h,d)=>h+d,0);if(f>this.fetchSizeLimit)throw new Error(`data size of ${f.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);const l=u.map(async h=>{const{data:d,cpositions:p,dpositions:b,chunk:x}=await this._readChunk({chunk:h,opts:r}),A=await this.readBamFeatures(d,p,b,x),D=[];for(let _=0;_<A.length;_+=1){const C=A[_];o[C.get("name")]&&!s[C.id()]&&D.push(C)}return D});return wg(await Promise.all(l))}async _readChunk({chunk:t,opts:n}){const r=t.fetchedSize(),{buffer:i,bytesRead:a}=await this.bam.read(Buffer.alloc(r),0,r,t.minv.blockPosition,n),{buffer:o,cpositions:s,dpositions:c}=await cF(i.subarray(0,Math.min(a,r)),t);return{data:o,cpositions:s,dpositions:c,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,c=+Date.now();for(;a+4<t.length;){const u=t.readInt32LE(a),f=a+4+u-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(f<t.length){const l=new Tz({bytes:{byteArray:t,start:a,end:f},fileOffset:n?n[s]*256+(a-r[s])+i.minv.dataPosition+1:Ez.signed(t.slice(a,f))});o.push(l),this.yieldThreadTime&&+Date.now()-c>this.yieldThreadTime&&(await hz(1),c=+Date.now())}a=f+1}return o}async hasRefSeq(t){const n=this.chrToIndex&&this.chrToIndex[t];return this.index.hasRefSeq(n)}async lineCount(t){const n=this.chrToIndex&&this.chrToIndex[t];return this.index.lineCount(n)}async indexCov(t,n,r){await this.index.parse();const i=this.chrToIndex&&this.chrToIndex[t];return this.index.indexCov(i,n,r)}async blocksForRange(t,n,r,i){await this.index.parse();const a=this.chrToIndex&&this.chrToIndex[t];return this.index.blocksForRange(a,n,r,i)}}(function(){(function(e){(function(t){var n={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};function r(E){return E&&DataView.prototype.isPrototypeOf(E)}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(E){return E&&i.indexOf(Object.prototype.toString.call(E))>-1};function o(E){if(typeof E!="string"&&(E=String(E)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(E))throw new TypeError("Invalid character in header field name");return E.toLowerCase()}function s(E){return typeof E!="string"&&(E=String(E)),E}function c(E){var N={next:function(){var F=E.shift();return{done:F===void 0,value:F}}};return n.iterable&&(N[Symbol.iterator]=function(){return N}),N}function u(E){this.map={},E instanceof u?E.forEach(function(N,F){this.append(F,N)},this):Array.isArray(E)?E.forEach(function(N){this.append(N[0],N[1])},this):E&&Object.getOwnPropertyNames(E).forEach(function(N){this.append(N,E[N])},this)}u.prototype.append=function(E,N){E=o(E),N=s(N);var F=this.map[E];this.map[E]=F?F+", "+N:N},u.prototype.delete=function(E){delete this.map[o(E)]},u.prototype.get=function(E){return E=o(E),this.has(E)?this.map[E]:null},u.prototype.has=function(E){return this.map.hasOwnProperty(o(E))},u.prototype.set=function(E,N){this.map[o(E)]=s(N)},u.prototype.forEach=function(E,N){for(var F in this.map)this.map.hasOwnProperty(F)&&E.call(N,this.map[F],F,this)},u.prototype.keys=function(){var E=[];return this.forEach(function(N,F){E.push(F)}),c(E)},u.prototype.values=function(){var E=[];return this.forEach(function(N){E.push(N)}),c(E)},u.prototype.entries=function(){var E=[];return this.forEach(function(N,F){E.push([F,N])}),c(E)},n.iterable&&(u.prototype[Symbol.iterator]=u.prototype.entries);function f(E){if(E.bodyUsed)return Promise.reject(new TypeError("Already read"));E.bodyUsed=!0}function l(E){return new Promise(function(N,F){E.onload=function(){N(E.result)},E.onerror=function(){F(E.error)}})}function h(E){var N=new FileReader,F=l(N);return N.readAsArrayBuffer(E),F}function d(E){var N=new FileReader,F=l(N);return N.readAsText(E),F}function p(E){for(var N=new Uint8Array(E),F=new Array(N.length),Y=0;Y<N.length;Y++)F[Y]=String.fromCharCode(N[Y]);return F.join("")}function b(E){if(E.slice)return E.slice(0);var N=new Uint8Array(E.byteLength);return N.set(new Uint8Array(E)),N.buffer}function x(){return this.bodyUsed=!1,this._initBody=function(E){this._bodyInit=E,E?typeof E=="string"?this._bodyText=E:n.blob&&Blob.prototype.isPrototypeOf(E)?this._bodyBlob=E:n.formData&&FormData.prototype.isPrototypeOf(E)?this._bodyFormData=E:n.searchParams&&URLSearchParams.prototype.isPrototypeOf(E)?this._bodyText=E.toString():n.arrayBuffer&&n.blob&&r(E)?(this._bodyArrayBuffer=b(E.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):n.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(E)||a(E))?this._bodyArrayBuffer=b(E):this._bodyText=E=Object.prototype.toString.call(E):this._bodyText="",this.headers.get("content-type")||(typeof E=="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(E)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n.blob&&(this.blob=function(){var E=f(this);if(E)return E;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?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(h)}),this.text=function(){var E=f(this);if(E)return E;if(this._bodyBlob)return d(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(p(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(C)}),this.json=function(){return this.text().then(JSON.parse)},this}var A=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function D(E){var N=E.toUpperCase();return A.indexOf(N)>-1?N:E}function _(E,N){N=N||{};var F=N.body;if(E instanceof _){if(E.bodyUsed)throw new TypeError("Already read");this.url=E.url,this.credentials=E.credentials,N.headers||(this.headers=new u(E.headers)),this.method=E.method,this.mode=E.mode,this.signal=E.signal,!F&&E._bodyInit!=null&&(F=E._bodyInit,E.bodyUsed=!0)}else this.url=String(E);if(this.credentials=N.credentials||this.credentials||"same-origin",(N.headers||!this.headers)&&(this.headers=new u(N.headers)),this.method=D(N.method||this.method||"GET"),this.mode=N.mode||this.mode||null,this.signal=N.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&F)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(F)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})};function C(E){var N=new FormData;return E.trim().split("&").forEach(function(F){if(F){var Y=F.split("="),X=Y.shift().replace(/\+/g," "),Z=Y.join("=").replace(/\+/g," ");N.append(decodeURIComponent(X),decodeURIComponent(Z))}}),N}function T(E){var N=new u,F=E.replace(/\r?\n[\t ]+/g," ");return F.split(/\r?\n/).forEach(function(Y){var X=Y.split(":"),Z=X.shift().trim();if(Z){var Se=X.join(":").trim();N.append(Z,Se)}}),N}x.call(_.prototype);function B(E,N){N||(N={}),this.type="default",this.status=N.status===void 0?200:N.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in N?N.statusText:"OK",this.headers=new u(N.headers),this.url=N.url||"",this._initBody(E)}x.call(B.prototype),B.prototype.clone=function(){return new B(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new u(this.headers),url:this.url})},B.error=function(){var E=new B(null,{status:0,statusText:""});return E.type="error",E};var S=[301,302,303,307,308];B.redirect=function(E,N){if(S.indexOf(N)===-1)throw new RangeError("Invalid status code");return new B(null,{status:N,headers:{location:E}})},t.DOMException=e.DOMException;try{new t.DOMException}catch{t.DOMException=function(N,F){this.message=N,this.name=F;var Y=Error(N);this.stack=Y.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function z(E,N){return new Promise(function(F,Y){var X=new _(E,N);if(X.signal&&X.signal.aborted)return Y(new t.DOMException("Aborted","AbortError"));var Z=new XMLHttpRequest;function Se(){Z.abort()}Z.onload=function(){var Me={status:Z.status,statusText:Z.statusText,headers:T(Z.getAllResponseHeaders()||"")};Me.url="responseURL"in Z?Z.responseURL:Me.headers.get("X-Request-URL");var We="response"in Z?Z.response:Z.responseText;F(new B(We,Me))},Z.onerror=function(){Y(new TypeError("Network request failed"))},Z.ontimeout=function(){Y(new TypeError("Network request failed"))},Z.onabort=function(){Y(new t.DOMException("Aborted","AbortError"))},Z.open(X.method,X.url,!0),X.credentials==="include"?Z.withCredentials=!0:X.credentials==="omit"&&(Z.withCredentials=!1),"responseType"in Z&&n.blob&&(Z.responseType="blob"),X.headers.forEach(function(Me,We){Z.setRequestHeader(We,Me)}),X.signal&&(X.signal.addEventListener("abort",Se),Z.onreadystatechange=function(){Z.readyState===4&&X.signal.removeEventListener("abort",Se)}),Z.send(typeof X._bodyInit>"u"?null:X._bodyInit)})}return z.polyfill=!0,e.fetch||(e.fetch=z,e.Headers=u,e.Request=_,e.Response=B),t.Headers=u,t.Request=_,t.Response=B,t.fetch=z,Object.defineProperty(t,"__esModule",{value:!0}),t})({})})(typeof self<"u"?self:Ti)})();class Lz extends Af(La){constructor(n,r){const i={channel:"x",windowSize:2e4,...n};super(r,i.channel);Sn(this,"lastRequestId",0);Sn(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");const a=o=>new tr(vf(o,this.view.getBaseUrl()));this.bam=new kz({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,f;const s=this.genome.hasChrPrefix(),c=(f=(u=this.bam.indexToChr)==null?void 0:u[0])==null?void 0:f.refName.startsWith("chr");s&&!c?this.chrPrefixFixer=l=>l.replace("chr",""):!s&&c&&(this.chrPrefixFixer=l=>"chr"+l)})}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(c=>c.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())}}}function zz(e,t){if(rw(e))return new nN(e,t);if(rN(e))return new iN(e,t);if(aN(e))return new oN(e,t);if(Rz(e))return Qz(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function Rz(e){return"lazy"in e}function Oz(e){return(e==null?void 0:e.type)=="axisTicks"}function Pz(e){return(e==null?void 0:e.type)=="axisGenome"}function Uz(e){return(e==null?void 0:e.type)=="indexedFasta"}function jz(e){return(e==null?void 0:e.type)=="bigwig"}function Gz(e){return(e==null?void 0:e.type)=="bigbed"}function Hz(e){return(e==null?void 0:e.type)=="bam"}function Qz(e,t){if(Oz(e))return new uN(e,t);if(Pz(e))return new cN(e,t);if(Uz(e))return new dF(e,t);if(jz(e))return new tz(e,t);if(Gz(e))return new cz(e,t);if(Hz(e))return new Lz(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function Vz(e){const t=Object.keys(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
339
+ `)+" };");return n.properties=t,n}class Wf extends Qe{get behavior(){return er}constructor(){super();const t=n=>{const r=Vz(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{xy(n)&&(this.handle=t),super.beginBatch(n)}}}function Zz(e){return"name"in e}class yv extends Ms{constructor(n,r,i){super();fe(this,Eu,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Zn(this,Eu,n),this.loadSynchronously()}loadSynchronously(){const n=W(this,Eu)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=tw(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()}}Eu=new WeakMap;class wv{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(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof yv&&t==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function Yz(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const a=n.get(t(i.ref));a?a.children.push(i):r.push(i)}return r}function xv(e,t,n){var i,a;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const o of n(e)){const s=xv(o,t,n);if(s==="stop")return s}return(a=t.postOrder)==null?void 0:a.call(t,e)}function Wz(e,t){return xv(e,t,n=>n.children)}function qz(e,t){const n=[];let r;const i=t??new wv,a=[];function o(l,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(l),r=l,l}function s(l,h){return o(l,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function c(l,h){for(const d of l){let p;try{p=JT(d,h)}catch(b){throw console.warn(b),new Error(`Cannot initialize "${d.type}" transform: ${b}`)}p.behavior&Rr&&s(new Wf),s(p)}}const u=l=>{if(n.push(r),l.spec.data){const h=Zz(l.spec.data)?new yv(l.spec.data,l,l.context.getNamedDataFromProvider):zz(l.spec.data,l);r=h,i.addDataSource(h,l)}if(l.spec.transform&&c(l.spec.transform,l),l instanceof yt){if(!r)throw new Error(`A unit view (${l.getPathString()}) has no (inherited) data source`);const h=Xz(l);if(h){a.push(h.rewrite);for(const p of h.transforms)s(p)}l.mark.isPickingParticipant()&&(s(new Wf),s(new $y({type:"identifier"})));const d=new Wy({type:"collect",groupby:l.getFacetFields(),sort:Kz(l,h==null?void 0:h.rewrittenEncoding)});o(d),i.addCollector(d,l)}},f=Yz(e.getDescendants(),l=>l.dataParent);for(const l of f)Wz(l,{preOrder:h=>u(h.ref),postOrder:()=>{r=n.pop()}});return a.forEach(l=>l()),i}function Xz(e){var a;const t=[],n={},r=[];for(const[o,s]of Object.entries(e.getEncoding())){const c=o;gs(c)&&Pm(s)&&r.push({channel:c,chromPosDef:s})}const i=ju(r,o=>vi(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[c,u]of s.entries()){const f=[],l=[],h=[];for(const{channel:d,chromPosDef:p}of u){const b=D=>D.replace(/[^A-Za-z0-9_]/g,""),x=["_linearized_",b(p.chrom),"_",b(p.pos)].join(""),A={...((a=e.spec.encoding)==null?void 0:a[d])??e.getEncoding()[d]??{},field:x};delete A.chrom,delete A.pos,!A.type&&p.type&&(A.type=p.type),n[d]=A,f.push(p.pos),h.push(p.offset??0),l.push(x)}t.push(new Wf),t.push(new qy({type:"linearizeGenomicCoordinate",channel:o,chrom:c,pos:f,offset:h,as:l},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},dy(e.mark,"encoding")}}:void 0}function Kz(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Zt(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(hs(n))return{field:n.field};if(!ds(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function Av(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!Av(n,e))return!1;return!0}function xg(e,t=!1){if(e.behavior&D0&&(t=!0),e instanceof Wf)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&xg(n,t);return}e.behavior&er&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)xg(e.children[n],t||r>1)}function Jz(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),e.addDataSource(i,r)}}function $z(e){if(xg(e),!Av(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function e9(e){for(const t of e.dataSources)$z(t);Jz(e)}function t9(e){e.visit(n=>{n instanceof yt&&n.resolve("scale")});const t=new Set;e.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&t.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);t.add(i)}}),e.visit(n=>{n instanceof yt&&n.resolve("axis")}),e.visit(n=>n.onScalesResolved())}function n9(e){for(const t of Aa){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function r9(e,t,n){var o;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=ec({baseURL:t}),i=e.import.url,a=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
340
+ 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(e)}`)}async function vv(e){const t=[];e.visit(n=>{if(n instanceof Yy)return t.push(n),Cy});for(const n of t){const r=n.context,i=await r9(n.spec,n.getBaseUrl(),r),a=r.createView(i,n.layoutParent,n.dataParent,n.name);n.layoutParent.replaceChild(n,a),await vv(a)}}function i9(e){const t=e.getSize().addPadding(e.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.height)}}function cr(e){return()=>e}const dr=class{static create(t,n,r,i){return new dr(cr(t),cr(n),cr(r),cr(i))}_offset(t,n){const r=this["_"+t];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(t){return this._offset(t,0)}constructor(t,n,r,i){this._x=t,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(t){return t?this===t||this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height:!1}modify(t){if(!Object.keys(t).length)return this;const n=r=>{const i=t[r];return typeof i=="number"?cr(i):typeof i=="function"?i:this._passThrough(r)};return new dr(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new dr(this._offset("x",t),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(t){return this.translate(t.x,t.y)}expand(t,n=1){return t.left==0&&t.top==0&&t.right==0&&t.bottom==0?this:new dr(t.left?this._offset("x",-t.left*n):this._passThrough("x"),t.top?this._offset("y",-t.top*n):this._passThrough("y"),t.width?this._offset("width",t.width*n):this._passThrough("width"),t.height?this._offset("height",t.height*n):this._passThrough("height"))}shrink(t){return this.expand(t,-1)}intersect(t){return this===t?this:new dr(()=>Math.max(this.x,t.x),()=>Math.max(this.y,t.y),()=>Math.min(this.x2,t.x2)-Math.max(this.x,t.x),()=>Math.min(this.y2,t.y2)-Math.max(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new dr(cr(this.x),cr(this.y),cr(this.width),cr(this.height))}containsPoint(t,n){return t>=this.x&&t<this.x2&&n>=this.y&&n<this.y2}normalizePoint(t,n){return{x:(t-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 ho=dr;Sn(ho,"ZERO",dr.create(0,0,0,0));class Ev{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class Cv extends Ev{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.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&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=o=>()=>{t&&o()},i=o=>()=>{t&&n&&o()},a=ju(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(u=>r(u)));let c;for(const u of s){const f=u.coords;f.equals(c)||this.batch.push(r(()=>{n=o.setViewport(f,u.clipRect)})),this.batch.push(i(u.callback)),c=u.coords}}}}class a9 extends Ev{constructor(...t){super({}),this.contexts=t}pushView(t,n){for(const r of this.contexts)r.pushView(t,n)}popView(t){for(const n of this.contexts)n.popView(t)}renderMark(t,n){for(const r of this.contexts)r.renderMark(t,n)}}class o9{constructor(t,n){this.point=t,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class s9{constructor(t,n){this.x=t,this.y=n}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const u9=e=>new Promise(t=>setTimeout(t,e));function c9(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(e.duration||1e3),c=typeof e.from=="number"?e.from:0,u=typeof e.to=="number"?e.to:1,f=e.easingFunction||(b=>b),l=b=>(b-o)/(s-o),h=b=>b*(u-c)+c,d=b=>Math.max(0,Math.min(1,b)),p=b=>{n!=null&&n.aborted?a("aborted"):(e.onUpdate(h(f(d(l(b))))),b<s?t(p):(e.onUpdate(h(f(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):u9(e.delay).then(r):r()}class f9{constructor(t){this._renderCallback=t,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(t){this.cancelTransition(t),this.transitions.push(t),this.requestRender()}cancelTransition(t){const n=this.transitions.indexOf(t);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(t=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(t);this._renderCallback(t)}))}transition(t){return c9({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class l9{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new mT(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.baseUrl)))}getGenome(t){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(t){const n=this.genomes.get(t);if(!n)throw new Error(`No genome with the name ${t} 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 h9="data:image/png;base64,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",d9={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class g9{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new oi([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:E0(Xy),texture:t?this._createTextureNow(h9):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Oe(r)&&(r=d9[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,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(t,n){try{const r=await this._loadMetadata(n.family),i=m9(r,n),a=this.fontRepository+Sv(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");t.texture=await o,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>E0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=Sv(t);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=>p9(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{As(n,{src:t,min:n.LINEAR},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=As(n,{src:t,min:n.LINEAR},(s,c,u)=>{s?o(s):a(c)})});return this._promises.push(i),r}}function Sv(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function p9(e){const t=e.split(`
341
+ `),n=[];let r;for(const i of t)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 m9(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const a=Math.abs(t.weight-i.weight);a<r&&(r=a,n=i)}return n==null?void 0:n.filename}function b9(e,t){const n=[];let r;for(const i of e.split(`
342
+ `))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 y9{constructor(t,n){this.animator=t,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(t,n){if(this.disabled){n(t);return}t*this.momentum<0?this.momentum=0:Math.abs(t)>this.accelerationThreshold?this.momentum=_E([this.momentum,t],this.acceleration):this.momentum=t,this.callback=n,this.loop||this.animate()}animate(t){this.callback(this.momentum);const n=t-this.timestamp||0;this.timestamp=t;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 w9(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const a=i;!r.includes(i)&&n.includes(typeof e[a])&&(t[a]=e[a])}return t}const Dv=new Map;async function x9(e,t,n){const r=e.symbol;let i=Dv.get(r)??await E9(e.symbol);return i?(Dv.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 A9(e){console.log("Searching: "+e);const t={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${e}[GENE]&sort=relevance&retmode=json`,t).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`,t).then(o=>o.json())).result[r]:null}const v9=ug(A9,500);function E9(e){return v9(e)}const C9=it(".4~r"),S9=it(".4~e");function D9(e){return e===null?qn`<span class="na">NA</span>`:Oe(e)?e.substring(0,30):Number.isInteger(e)?""+e:St(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?S9(e):C9(e):zu(e)?e?"True":"False":"?"+typeof e+" "+e}async function I9(e,t,n){const r=(c,u)=>{var f;for(const[l,h]of Object.entries(t.encoders))if((f=h==null?void 0:h.accessor)!=null&&f.fields.includes(c))switch(l){case"color":case"fill":case"stroke":return qn`<span class="color-legend" style="${`background-color: ${h(u)}`}"></span>`}return""},i=Object.entries(e).filter(([c,u])=>!c.startsWith("_"));if(i.length===0)return;const a=qn`<table class="attributes">${i.map(([c,u])=>qn`<tr><th>${c}</th><td>${D9(u)} ${r(c,e)}</td></tr>`)}</table>`,o=t.unitView.getTitleText(),s=o?qn`<div class="title"><strong>${o}</strong></div>`:"";return qn`${s}${a}`}class mu extends Fa{constructor(t,n,r,i,a){super(t,n,r,i,a),this.spec=t,this.children=(t.layer||[]).map((o,s)=>{if(Rv(o)||zv(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 t of this.children)yield t}render(t,n,r={}){if(this.isConfiguredVisible()){t.pushView(this,n);for(const i of this.children)i.render(t,n,r);t.popView(this)}}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0);for(let n=this.children.length-1;n>=0;n--)if(this.children[n].propagateInteractionEvent(t),t.stopped)return;this.handleInteractionEvent(void 0,t,!1)}}class Iv{constructor(t,n){this.n=t,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 t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];t.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];t.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}const _9="chromosome_ticks_and_labels",M9={x:"width",y:"height"};function Ag(e){return e=="x"?"y":"x"}const qf={x:["bottom","top"],y:["left","right"]},vg=Object.fromEntries(Object.entries(qf).map(([e,t])=>t.map(n=>[n,e])).flat(1));function ei(e){return vg[e]}class _v extends mu{constructor(t,n,r,i,a){const o=n=="locus",s={...o?N9:Mv,...T9(n,t),...t};super(o?B9(s,n):Tv(s,n),r,i,a,`axis_${t.orient}`),this.axisProps=s,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return vg[this.axisProps.orient]=="x"?new Mi(n,t):new Mi(t,n)}getPerpendicularSize(){return Eg(this.axisProps)}isPickingSupported(){return!1}}function Eg(e){const t=ei(e.orient);let n=e.ticks&&e.tickSize||0;return e.labels&&(n+=e.labelPadding,t=="x"?n+=e.labelFontSize:n+=30),e.title&&(n+=e.titlePadding+e.titleFontSize),n=Math.min(e.maxExtent||1/0,Math.max(e.minExtent||0,n)),n}const Mv={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 T9(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",a="middle",o=t.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 Tv(e,t){const n={...e,extent:Eg(e)},r=ei(n.orient),i=Ag(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}}),c=()=>({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:t},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)}}}),f=()=>({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}}),l=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(u()),n.labels&&d.layer.push(c()),d},h={resolve:{scale:{[r]:"forced"}},[M9[Ag(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:e}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(l()),n.title&&h.layer.push(f()),h}const N9={...Mv,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 B9(e,t){const n={...e,extent:Eg(e)},r=ei(n.orient),i=Ag(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let f;switch(n.orient){case"top":f={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":f={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":f={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":f={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:f={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...f},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let c;switch(n.orient){case"bottom":case"top":c={};break;case"left":c={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":c={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:c={}}const u=Tv({...e,...c},t);if(e.chromTicks||e.chromLabels){const f={name:_9,data:{lazy:{type:"axisGenome",channel:ei(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&f.layer.push(o()),e.chromLabels){f.layer.push(s());let l;u.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{l=d.mark})),l&&(n.orient=="top"||n.orient=="bottom"?(l.viewportEdgeFadeWidthLeft=30,l.viewportEdgeFadeDistanceLeft=40):(l.viewportEdgeFadeWidthBottom=30,l.viewportEdgeFadeDistanceBottom=40))}u.layer.push(f)}return u}class F9 extends mu{constructor(t,n,r,i,a){const s={...n=="locus"?k9:Nv,...t};super(O9(s,n),r,i,a,`axisGrid_${t.orient}`),this.axisProps=s,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Nv={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},k9={...Nv,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function L9(e,t){const n=e,r=ei(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:e}},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:t}}}}function z9(e,t){const n=e,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:t,band:0}}}}function R9(e,t){const n=e,r=ei(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:t,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 O9(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(R9(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(z9(n,t)),n.grid&&n.gridOpacity>0&&r.push(L9(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[ei(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const Bv={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"},P9={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},U9={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},j9={start:0,middle:.5,end:1},G9={start:"left",middle:"center",end:"right"};function H9(e){if(!e)return;const t=Oe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":P9,overlay:U9}[t.style]??{},r={...Bv,...n,...t};let i={},a={x:0,y:0};const o=j9[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={...Bv,...i,...n,...t},c={xOffset:0,yOffset:0};switch(r.orient){case"top":c.yOffset=-s.offset;break;case"right":c.xOffset=s.offset;break;case"bottom":c.yOffset=s.offset;break;case"left":c.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...c,text:s.text,align:s.align??G9[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 Q9(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=e.point;if(r){const c=r.mark.encoders;c.x&&!c.x2&&!c.x.constantValue&&(o=+c.x(r.datum)*t.width+t.x),c.y&&!c.y2&&!c.y.constantValue&&(s=(1-+c.y(r.datum))*t.height+t.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(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let a=i;const o=c=>{n({x:a.clientX,y:a.clientY,xDelta:c.clientX-a.clientX,yDelta:c.clientY-a.clientY,zDelta:0}),a=c},s=c=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class Fv extends Fa{constructor(n,r,i,a,o,s){super(n,r,i,a,o);fe(this,gr);fe(this,el);fe(this,tl);fe(this,Ji);fe(this,Cu);fe(this,Su);fe(this,Du);fe(this,nl);fe(this,xo);fe(this,rl);fe(this,bo,1/0);fe(this,yo,10);fe(this,Ut,[]);fe(this,Ki,{});fe(this,wo,0);this.spec=n,Zn(this,yo,n.spacing??10),Zn(this,bo,s),Zn(this,Ut,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){n.layoutParent??(n.layoutParent=this),W(this,Ut).push(new Lv(n,this,W(this,wo))),tE(this,wo)._++}setChildren(n){Zn(this,Ut,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=W(this,Ut).findIndex(a=>a.view==n);if(i>=0)W(this,Ut)[i]=new Lv(r,this,W(this,wo));else throw new Error("Not my child view!")}get children(){return W(this,Ut).map(n=>n.view)}get childCount(){return W(this,Ut).length}onScalesResolved(){super.onScalesResolved(),ee(this,tl,sE).call(this)}*[Symbol.iterator](){for(const n of W(this,Ut))yield*n.getChildren();for(const n of Object.values(W(this,Ki)))yield n}getOverhang(){return ee(this,nl,uE).call(this).union(ee(this,xo,fl).call(this))}getSize(){return this._cache("size",()=>new Mi(ee(this,Su,Og).call(this,"column"),ee(this,Su,Og).call(this,"row")).addPadding(ee(this,xo,fl).call(this)))}render(n,r,i={}){if(!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(ee(this,xo,fl).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=vy(ee(this,Cu,Rg).call(this,"column"),r.width,a),s=vy(ee(this,Cu,Rg).call(this,"row"),r.height,a),c=new Iv(W(this,gr,ia).length,W(this,bo)??1/0);for(const[u,f]of W(this,gr,ia).entries()){const{view:l,axes:h,gridLines:d,background:p,backgroundStroke:b,title:x}=f,[A,D]=c.getCellCoords(u),_=o[ee(this,Du,Pg).call(this,"column",A)],C=s[ee(this,Du,Pg).call(this,"row",D)],T=l.getSize(),B=l.getOverhang(),S=_.location-B.left,z=C.location-B.top,E=(T.width.grow?_.size:T.width.px)+B.width,N=(T.height.grow?C.size:T.height.px)+B.height,F=new ho(()=>r.x+S,()=>r.y+z,()=>E,()=>N);f.coords=F;const Y=i.clipRect?F.intersect(i.clipRect):F;p==null||p.render(n,Y,{...i,clipRect:void 0});for(const Z of Object.values(d))Z.render(n,F,i);const X=W9(l);X&&l.render(n,F,i),b==null||b.render(n,Y,{...i,clipRect:void 0});for(const[Z,Se]of Object.entries(h))Se.render(n,kv(F,Z,Se),i);for(const Z of Object.values(W(this,Ki))){const Me=Z.axisProps.orient;(Me=="left"&&A==0||Me=="right"&&A==c.nCols-1||Me=="top"&&D==0||Me=="bottom"&&D==c.nRows-1)&&Z.render(n,kv(F.shrink(f.view.getOverhang()),Me,Z),i)}X||l.render(n,F,i),x==null||x.render(n,F,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=W(this,gr,ia).find(a=>a.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof yt||i instanceof mu)&&Q9(n,r.coords,a=>ee(this,rl,cE).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}bo=new WeakMap,yo=new WeakMap,Ut=new WeakMap,Ki=new WeakMap,wo=new WeakMap,gr=new WeakSet,ia=function(){return W(this,Ut).filter(n=>n.view.isConfiguredVisible())},el=new WeakSet,oE=function(){return new Iv(W(this,gr,ia).length,W(this,bo)??1/0)},tl=new WeakSet,sE=function(){for(const n of Aa){const r=this.resolutions.axis[n];if(r){const i=r.getAxisProps();if(i){const a={title:r.getTitle(),orient:qf[n][0],...i},o=new _v(a,r.scaleResolution.type,this.context,this,this);W(this,Ki)[n]=o,o.visit(s=>{s instanceof yt&&s.resolve("scale")})}}}for(const n of W(this,Ut))n.createAxes()},Ji=new WeakSet,Nu=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const u=W(this,gr,ia)[s].getOverhangAndPadding();return n=="column"?o?u.right:u.left:o?u.bottom:u.top}).reduce((s,c)=>Math.max(s,c),0);return this._cache(`size/directionSizes/${n}`,()=>W(this,el,oE)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:R6(a.map(o=>W(this,gr,ia)[o].view.getSize()[r]))})))},Cu=new WeakSet,Rg=function(n){const r=ee(this,Ji,Nu).call(this,n),i=[];i.push(Ds);for(const[a,o]of r.entries())a>0&&i.push({px:W(this,yo),grow:0}),(a==0||this.wrappingFacet)&&i.push(Ds),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(Ds);return i},Su=new WeakSet,Og=function(n){let r=0,i=0;const a=(n=="row"&&this.spec.height)??(n=="column"&&this.spec.width);if(a||a===0)return Ey(a);const o=ee(this,Ji,Nu).call(this,n);for(const[s,c]of o.entries())s>0&&(i+=W(this,yo)),(s==0||this.wrappingFacet)&&(i+=0),i+=c.axisBefore,i+=c.view.px??0,r+=c.view.grow??0,i+=c.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},Du=new WeakSet,Pg=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},nl=new WeakSet,uE=function(){const n=ee(this,Ji,Nu).call(this,"column"),r=ee(this,Ji,Nu).call(this,"row");return!n.length||!r.length?dt.zero():new dt(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},xo=new WeakSet,fl=function(){const n=r=>{const i=vg[r],a=W(this,Ki)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new dt(n("top"),n("right"),n("bottom"),n("left"))},rl=new WeakSet,cE=function(n,r,i){for(const[a,o]of Object.entries(Y9(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),c=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:c.x-s.x,y:c.y-s.y};for(const f of o)f.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?u.x:-u.y)}this.context.animator.requestRender()};function V9(e){if(!(!e||!e.fill||e.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:e.fill,opacity:e.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function Z9(e){if(!(!e||!e.stroke||e.strokeWidth===0||e.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:e.strokeWidth??1,color:e.stroke??"lightgray",strokeCap:"square",strokeOpacity:e.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 Y9(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),t}function W9(e){let t=!0;return e.visit(n=>{n instanceof yt&&t&&(t=n.mark.properties.clip===!0)}),t}function kv(e,t,n){const r=n.axisProps,i=n.getPerpendicularSize();if(t=="bottom")return e.translate(0,e.height+r.offset).modify({height:i});if(t=="top")return e.translate(0,-i-r.offset).modify({height:i});if(t=="left")return e.translate(-i-r.offset,0).modify({width:i});if(t=="right")return e.translate(e.width+r.offset,0).modify({width:i})}class Lv{constructor(t,n,r){if(this.layoutParent=n,this.view=t,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.title=void 0,this.coords=ho.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,a="view"in i?i==null?void 0:i.view:void 0,o=V9(a);o&&(this.background=new yt(o,n.context,n,t,"background"+r),this.background.blockEncodingInheritance=!0);const s=Z9(a);s&&(this.backgroundStroke=new yt(s,n.context,n,t,"backgroundStroke"+r),this.backgroundStroke.blockEncodingInheritance=!0);const c=H9(t.spec.title);if(c){const u=new yt(c,n.context,n,t,"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:t,axes:n,gridLines:r}=this,i=(s,c)=>{const u=s.getAxisProps();if(u===null)return;const f=u?{...u}:{};if(!f.orient){for(const l of qf[c])if(!n[l]){f.orient=l;break}if(!f.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(f.title??(f.title=s.getTitle()),!qf[c].includes(f.orient))throw new Error(`Invalid axis orientation "${f.orient}" on channel "${c}"!`);return f},a=(s,c,u)=>{const f=i(s,c);if(f){if(n[f.orient])throw new Error(`An axis with the orient "${f.orient}" already exists!`);n[f.orient]=new _v(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,u)}},o=(s,c,u)=>{const f=i(s,c);f&&(f.grid||f.chromGrid)&&(r[f.orient]=new F9(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,u))};for(const s of["x","y"])if(t.needsAxes[s]){const c=t.resolutions.axis[s];if(!c)continue;a(c,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const c=t.getAxisResolution(s);if(!c)continue;o(c,s,t)}if(t instanceof mu){for(const s of t.children)for(const[c,u]of Object.entries(s.resolutions.axis)){const f=u.getAxisProps();f&&f.orient&&a(u,c,s)}for(const s of t.children)for(const[c,u]of Object.entries(s.resolutions.axis)){const f=u.getAxisProps();f&&!f.orient&&a(u,c,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(c=>{c instanceof yt&&c.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new dt(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Cg extends Fv{constructor(t,n,r,i,a){super(t,n,r,i,a,Sg(t)?t.columns:Xf(t)?1:1/0),this.spec=t}_createChildren(){const t=this.spec,n=Sg(t)?t.concat:Xf(t)?t.vconcat:t.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,this,"grid"+i)))}getDefaultResolution(t,n){if(n=="axis")return"independent";if(Xf(this.spec)&&t==="x"||Ov(this.spec)&&t==="y"){const r=new Set(this.children.map(i=>i.getEncoding()[t]).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 q9{constructor(){this.types=[];const t=n=>(r,i,a,o,s)=>new n(r,i,a,o,r.name??s);this.addViewType(X9,t(Yy)),this.addViewType(Rv,t(mu)),this.addViewType(zv,t(yt)),this.addViewType(Xf,t(Cg)),this.addViewType(Ov,t(Cg)),this.addViewType(Sg,t(Cg))}addViewType(t,n){this.types.push({specGuard:t,factory:n})}createView(t,n,r,i,a){const o=this.types.find(s=>s.specGuard(t));if(o)return o.factory(t,n,r,i,a??"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=this.types.filter(r=>r.specGuard(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function zv(e){return"mark"in e&&(Oe(e.mark)||un(e.mark))}function Rv(e){return"layer"in e&&un(e.layer)}function X9(e){return"import"in e}function Xf(e){return"vconcat"in e&&Ht(e.vconcat)}function Ov(e){return"hconcat"in e&&Ht(e.hconcat)}function Sg(e){return"concat"in e&&Ht(e.concat)}class K9 extends Fv{constructor(t,n){super({vconcat:[]},t,void 0,void 0,"implicitRoot",1),n.layoutParent=this,n.dataParent=this,this.appendChild(n)}}Wp("fasta",b9);class Pv{constructor(t,n,r={}){this.container=t,this.spec=n,this.accessorFactory=new ZD,this.viewFactory=new q9,this.namedDataProviders=[],this.animator=new f9(()=>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 y9(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:I9,refseqgene:x9,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);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(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(a=>a(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new c6(this.container,()=>this.viewRoot?i9(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 u4(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[t,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(t,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new l9(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new wv,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new g9(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,c)=>{document.addEventListener(s,c);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(c)},addBroadcastListener(s,c){const u=t._extraBroadcastListeners;let f=u.get(s);f||(f=new Set,u.set(s,f)),f.add(c)},removeBroadcastListener(s,c){var f;(f=t._extraBroadcastListeners.get(s))==null||f.delete(c)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:s=>t.viewFactory.isViewSpec(s),createView:function(s,c,u,f){return t.viewFactory.createView(s,n,c,u,f)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,null,"viewRoot"),await vv(this.viewRoot),(this.viewRoot.needsAxes.x||this.viewRoot.needsAxes.y)&&(this.viewRoot=new K9(n,this.viewRoot)),t9(this.viewRoot),n9(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof yt&&i.push(s)});const a=qz(this.viewRoot,n.dataFlow);e9(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(c=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(s=>s.load())),Zy(this.viewRoot),this.broadcast("dataLoaded"),await o,this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(c)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>Kc(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(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),J9(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=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=t.getBoundingClientRect(),o=new s9(r.clientX-a.left-t.clientLeft,r.clientY-a.top-t.clientTop),s=c=>{this.viewRoot.propagateInteractionEvent(new o9(o,c)),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 c=r;if(Math.abs(c.deltaX)>Math.abs(c.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=w9(c);this._wheelInertia.setMomentum(c.deltaY*(c.deltaMode?80:1),f=>{const l=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:f});s(l)}),c.preventDefault();return}}if(r.type=="click"){const c=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(c))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>t.addEventListener(r,n)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(t,n){var a;const r=this._glHelper.readPickingPixel(t,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 yt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(c=>{s(c)==i&&(this._currentHover={mark:o.mark,datum:c,uniqueId:i})})}if(this._currentHover)return Is}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const c=o.properties.tooltip;if(c!==null){const u=(c==null?void 0:c.handler)??"default",f=this.tooltipHandlers[u];if(!f)throw new Error("No such tooltip handler: "+u);return f(s,o,c==null?void 0:c.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)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 Cv({picking:!1},this._glHelper),this._pickingContext=new Cv({picking:!0},this._glHelper),t.render(new a9(this._renderingContext,this._pickingContext),ho.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof yt&&n.getAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}function J9(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}const $9="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+",eR="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";async function tR(e,t,n={}){let r;if(Oe(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const a=un(t)?t:await Uv(t);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 Pv(r,a,n),nR(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 c=s.get(a);c||(c=new Set,s.set(a,c)),c.add(o)},removeEventListener(a,o){var c;(c=i._eventListeners.get(a))==null||c.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function nR(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Uv(e){let t;try{t=JSON.parse(await ec().load(e))}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}ae.GenomeSpy=Pv,ae.embed=tR,ae.favIcon=eR,ae.html=qn,ae.icon=$9,ae.loadSpec=Uv,Object.defineProperty(ae,Symbol.toStringTag,{value:"Module"})});