geneviewer-js 0.3.1 → 0.3.3
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/README.md +7 -6
- package/dist/SHA256SUMS +7 -7
- package/dist/geneviewer.core.js +23 -2
- package/dist/geneviewer.min.js +9 -9
- package/dist/geneviewer.min.js.map +3 -3
- package/dist/geneviewer.mjs +23 -2
- package/dist/geneviewer.standalone.mjs +9 -9
- package/dist/geneviewer.standalone.mjs.map +3 -3
- package/dist/geneviewerwidget.js +13 -9
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var v2=Object.defineProperty;var w2=(t,e)=>{for(var n in e)v2(t,n,{get:e[n],enumerable:!0})};var R={};w2(R,{Adder:()=>It,Delaunay:()=>Du,FormatSpecifier:()=>Rs,InternMap:()=>tr,InternSet:()=>On,Node:()=>Ir,Path:()=>lr,Voronoi:()=>Bs,ZoomTransform:()=>An,active:()=>G5,arc:()=>nA,area:()=>oy,areaRadial:()=>lA,ascending:()=>Bt,autoType:()=>v8,axisBottom:()=>Ov,axisLeft:()=>Bv,axisRight:()=>Tv,axisTop:()=>Fv,bin:()=>X2,bisect:()=>nr,bisectCenter:()=>k2,bisectLeft:()=>S2,bisectRight:()=>nr,bisector:()=>ao,blob:()=>_8,blur:()=>A2,blur2:()=>Fc,blurImage:()=>E2,brush:()=>s_,brushSelection:()=>i_,brushX:()=>o_,brushY:()=>a_,buffer:()=>k8,chord:()=>d_,chordDirected:()=>g_,chordTranspose:()=>p_,cluster:()=>q6,color:()=>mn,contourDensity:()=>P_,contours:()=>Tu,count:()=>Xa,create:()=>dx,creator:()=>rs,cross:()=>D2,csv:()=>M8,csvFormat:()=>l8,csvFormatBody:()=>c8,csvFormatRow:()=>f8,csvFormatRows:()=>u8,csvFormatValue:()=>h8,csvParse:()=>Ru,csvParseRows:()=>s8,cubehelix:()=>Re,cumsum:()=>$2,curveBasis:()=>AA,curveBasisClosed:()=>EA,curveBasisOpen:()=>MA,curveBumpX:()=>ly,curveBumpY:()=>cy,curveBundle:()=>CA,curveCardinal:()=>FA,curveCardinalClosed:()=>TA,curveCardinalOpen:()=>OA,curveCatmullRom:()=>BA,curveCatmullRomClosed:()=>DA,curveCatmullRomOpen:()=>$A,curveLinear:()=>ql,curveLinearClosed:()=>zA,curveMonotoneX:()=>NA,curveMonotoneY:()=>RA,curveNatural:()=>PA,curveStep:()=>IA,curveStepAfter:()=>qA,curveStepBefore:()=>LA,descending:()=>Td,deviation:()=>$d,difference:()=>yv,disjoint:()=>bv,dispatch:()=>Ye,drag:()=>_x,dragDisable:()=>ui,dragEnable:()=>fi,dsv:()=>E8,dsvFormat:()=>Fo,easeBack:()=>R3,easeBackIn:()=>z3,easeBackInOut:()=>R3,easeBackOut:()=>N3,easeBounce:()=>xs,easeBounceIn:()=>D3,easeBounceInOut:()=>$3,easeBounceOut:()=>xs,easeCircle:()=>k3,easeCircleIn:()=>_3,easeCircleInOut:()=>k3,easeCircleOut:()=>S3,easeCubic:()=>cu,easeCubicIn:()=>f3,easeCubicInOut:()=>cu,easeCubicOut:()=>h3,easeElastic:()=>I3,easeElasticIn:()=>P3,easeElasticInOut:()=>L3,easeElasticOut:()=>I3,easeExp:()=>x3,easeExpIn:()=>v3,easeExpInOut:()=>x3,easeExpOut:()=>w3,easeLinear:()=>s3,easePoly:()=>g3,easePolyIn:()=>d3,easePolyInOut:()=>g3,easePolyOut:()=>p3,easeQuad:()=>u3,easeQuadIn:()=>l3,easeQuadInOut:()=>u3,easeQuadOut:()=>c3,easeSin:()=>b3,easeSinIn:()=>m3,easeSinInOut:()=>b3,easeSinOut:()=>y3,every:()=>fv,extent:()=>ei,fcumsum:()=>N2,filter:()=>dv,flatGroup:()=>R2,flatRollup:()=>P2,forceCenter:()=>K8,forceCollide:()=>t4,forceLink:()=>n4,forceManyBody:()=>f4,forceRadial:()=>h4,forceSimulation:()=>u4,forceX:()=>d4,forceY:()=>p4,format:()=>Oo,formatDefaultLocale:()=>Lp,formatLocale:()=>Ip,formatPrefix:()=>Ps,formatSpecifier:()=>$r,fsum:()=>z2,geoAlbers:()=>Zg,geoAlbersUsa:()=>v6,geoArea:()=>k4,geoAzimuthalEqualArea:()=>w6,geoAzimuthalEqualAreaRaw:()=>Ff,geoAzimuthalEquidistant:()=>x6,geoAzimuthalEquidistantRaw:()=>Tf,geoBounds:()=>C4,geoCentroid:()=>$4,geoCircle:()=>z4,geoClipAntimeridian:()=>sf,geoClipCircle:()=>$g,geoClipExtent:()=>Y4,geoClipRectangle:()=>vl,geoConicConformal:()=>S6,geoConicConformalRaw:()=>Jg,geoConicEqualArea:()=>yl,geoConicEqualAreaRaw:()=>Vg,geoConicEquidistant:()=>A6,geoConicEquidistantRaw:()=>tm,geoContains:()=>V4,geoDistance:()=>ll,geoEqualEarth:()=>M6,geoEqualEarthRaw:()=>Of,geoEquirectangular:()=>k6,geoEquirectangularRaw:()=>Xo,geoGnomonic:()=>C6,geoGnomonicRaw:()=>Bf,geoGraticule:()=>Rg,geoGraticule10:()=>Z4,geoIdentity:()=>F6,geoInterpolate:()=>K4,geoLength:()=>zg,geoMercator:()=>_6,geoMercatorRaw:()=>Ko,geoNaturalEarth1:()=>T6,geoNaturalEarth1Raw:()=>Df,geoOrthographic:()=>O6,geoOrthographicRaw:()=>$f,geoPath:()=>c6,geoProjection:()=>Sn,geoProjectionMutator:()=>Mf,geoRotation:()=>Cg,geoStereographic:()=>B6,geoStereographicRaw:()=>zf,geoStream:()=>cn,geoTransform:()=>u6,geoTransverseMercator:()=>D6,geoTransverseMercatorRaw:()=>Nf,gray:()=>$x,greatest:()=>Wd,greatestIndex:()=>ov,group:()=>Pd,groupSort:()=>q2,groups:()=>Id,hcl:()=>mo,hierarchy:()=>Uf,histogram:()=>X2,hsl:()=>po,html:()=>D8,image:()=>F8,index:()=>I2,indexes:()=>L2,interpolate:()=>yn,interpolateArray:()=>Lx,interpolateBasis:()=>z0,interpolateBasisClosed:()=>N0,interpolateBlues:()=>Fk,interpolateBrBG:()=>lk,interpolateBuGn:()=>yk,interpolateBuPu:()=>bk,interpolateCividis:()=>zk,interpolateCool:()=>Pk,interpolateCubehelix:()=>e3,interpolateCubehelixDefault:()=>Nk,interpolateCubehelixLong:()=>bo,interpolateDate:()=>q0,interpolateDiscrete:()=>Ux,interpolateGnBu:()=>vk,interpolateGreens:()=>Tk,interpolateGreys:()=>Ok,interpolateHcl:()=>Jx,interpolateHclLong:()=>t3,interpolateHsl:()=>Zx,interpolateHslLong:()=>Kx,interpolateHue:()=>Hx,interpolateInferno:()=>jk,interpolateLab:()=>Qx,interpolateMagma:()=>Wk,interpolateNumber:()=>Fe,interpolateNumberArray:()=>nu,interpolateObject:()=>Y0,interpolateOrRd:()=>wk,interpolateOranges:()=>$k,interpolatePRGn:()=>ck,interpolatePiYG:()=>uk,interpolatePlasma:()=>Xk,interpolatePuBu:()=>_k,interpolatePuBuGn:()=>xk,interpolatePuOr:()=>fk,interpolatePuRd:()=>Sk,interpolatePurples:()=>Bk,interpolateRainbow:()=>Ik,interpolateRdBu:()=>hk,interpolateRdGy:()=>dk,interpolateRdPu:()=>kk,interpolateRdYlBu:()=>pk,interpolateRdYlGn:()=>gk,interpolateReds:()=>Dk,interpolateRgb:()=>mi,interpolateRgbBasis:()=>eu,interpolateRgbBasisClosed:()=>Ix,interpolateRound:()=>yo,interpolateSinebow:()=>Yk,interpolateSpectral:()=>mk,interpolateString:()=>gs,interpolateTransformCss:()=>ru,interpolateTransformSvg:()=>iu,interpolateTurbo:()=>Uk,interpolateViridis:()=>Hk,interpolateWarm:()=>Rk,interpolateYlGn:()=>Ek,interpolateYlGnBu:()=>Ak,interpolateYlOrBr:()=>Mk,interpolateYlOrRd:()=>Ck,interpolateZoom:()=>ou,interrupt:()=>$n,intersection:()=>vv,interval:()=>a3,isoFormat:()=>C9,isoParse:()=>T9,json:()=>O8,lab:()=>go,lch:()=>zx,least:()=>iv,leastIndex:()=>Xd,line:()=>Sh,lineRadial:()=>sA,link:()=>Yl,linkHorizontal:()=>hA,linkRadial:()=>pA,linkVertical:()=>dA,local:()=>s0,map:()=>pv,matcher:()=>os,max:()=>ii,maxIndex:()=>Bc,mean:()=>Z2,median:()=>K2,medianIndex:()=>Q2,merge:()=>Ka,min:()=>ja,minIndex:()=>Dc,mode:()=>tv,namespace:()=>li,namespaces:()=>Rc,nice:()=>Ga,now:()=>bi,pack:()=>y7,packEnclose:()=>f7,packSiblings:()=>g7,pairs:()=>ev,partition:()=>b7,path:()=>Ms,pathRound:()=>f_,permute:()=>Hd,pie:()=>aA,piecewise:()=>au,pointRadial:()=>da,pointer:()=>le,pointers:()=>gx,polygonArea:()=>$7,polygonCentroid:()=>z7,polygonContains:()=>I7,polygonHull:()=>P7,polygonLength:()=>L7,precisionFixed:()=>qu,precisionPrefix:()=>Yu,precisionRound:()=>Uu,quadtree:()=>To,quantile:()=>oi,quantileIndex:()=>jd,quantileSorted:()=>$c,quantize:()=>n3,quickselect:()=>Za,radialArea:()=>lA,radialLine:()=>sA,randomBates:()=>H7,randomBernoulli:()=>X7,randomBeta:()=>Sm,randomBinomial:()=>km,randomCauchy:()=>V7,randomExponential:()=>W7,randomGamma:()=>jf,randomGeometric:()=>_m,randomInt:()=>Y7,randomIrwinHall:()=>xm,randomLcg:()=>tS,randomLogNormal:()=>U7,randomLogistic:()=>Z7,randomNormal:()=>Wf,randomPareto:()=>j7,randomPoisson:()=>K7,randomUniform:()=>q7,randomWeibull:()=>G7,range:()=>dn,rank:()=>rv,reduce:()=>gv,reverse:()=>mv,rgb:()=>ar,ribbon:()=>S_,ribbonArrow:()=>k_,rollup:()=>qd,rollups:()=>Yd,scaleBand:()=>lh,scaleDiverging:()=>_1,scaleDivergingLog:()=>S1,scaleDivergingPow:()=>mh,scaleDivergingSqrt:()=>Z9,scaleDivergingSymlog:()=>k1,scaleIdentity:()=>u1,scaleImplicit:()=>oh,scaleLinear:()=>c1,scaleLog:()=>h1,scaleOrdinal:()=>sh,scalePoint:()=>O9,scalePow:()=>dh,scaleQuantile:()=>g1,scaleQuantize:()=>m1,scaleRadial:()=>p1,scaleSequential:()=>b1,scaleSequentialLog:()=>v1,scaleSequentialPow:()=>gh,scaleSequentialQuantile:()=>x1,scaleSequentialSqrt:()=>V9,scaleSequentialSymlog:()=>w1,scaleSqrt:()=>U9,scaleSymlog:()=>d1,scaleThreshold:()=>y1,scaleTime:()=>X9,scaleUtc:()=>G9,scan:()=>av,schemeAccent:()=>Q9,schemeBlues:()=>j1,schemeBrBG:()=>A1,schemeBuGn:()=>$1,schemeBuPu:()=>z1,schemeCategory10:()=>K9,schemeDark2:()=>J9,schemeGnBu:()=>N1,schemeGreens:()=>X1,schemeGreys:()=>G1,schemeObservable10:()=>tk,schemeOrRd:()=>R1,schemeOranges:()=>K1,schemePRGn:()=>E1,schemePaired:()=>ek,schemePastel1:()=>nk,schemePastel2:()=>rk,schemePiYG:()=>M1,schemePuBu:()=>I1,schemePuBuGn:()=>P1,schemePuOr:()=>C1,schemePuRd:()=>L1,schemePurples:()=>V1,schemeRdBu:()=>F1,schemeRdGy:()=>T1,schemeRdPu:()=>q1,schemeRdYlBu:()=>O1,schemeRdYlGn:()=>B1,schemeReds:()=>Z1,schemeSet1:()=>ik,schemeSet2:()=>ok,schemeSet3:()=>ak,schemeSpectral:()=>D1,schemeTableau10:()=>sk,schemeYlGn:()=>U1,schemeYlGnBu:()=>Y1,schemeYlOrBr:()=>H1,schemeYlOrRd:()=>W1,select:()=>Xt,selectAll:()=>mx,selection:()=>ir,selector:()=>lo,selectorAll:()=>is,shuffle:()=>sv,shuffler:()=>Gd,some:()=>hv,sort:()=>Cc,stack:()=>HA,stackOffsetDiverging:()=>jA,stackOffsetExpand:()=>WA,stackOffsetNone:()=>qi,stackOffsetSilhouette:()=>XA,stackOffsetWiggle:()=>GA,stackOrderAppearance:()=>$y,stackOrderAscending:()=>zy,stackOrderDescending:()=>ZA,stackOrderInsideOut:()=>KA,stackOrderNone:()=>Yi,stackOrderReverse:()=>QA,stratify:()=>_7,style:()=>rr,subset:()=>xv,sum:()=>lv,superset:()=>Zd,svg:()=>$8,symbol:()=>kA,symbolAsterisk:()=>uy,symbolCircle:()=>Ul,symbolCross:()=>fy,symbolDiamond:()=>dy,symbolDiamond2:()=>py,symbolPlus:()=>gy,symbolSquare:()=>my,symbolSquare2:()=>yy,symbolStar:()=>vy,symbolTimes:()=>Sy,symbolTriangle:()=>wy,symbolTriangle2:()=>xy,symbolWye:()=>_y,symbolX:()=>Sy,symbols:()=>_A,symbolsFill:()=>_A,symbolsStroke:()=>SA,text:()=>Ds,thresholdFreedmanDiaconis:()=>G2,thresholdScott:()=>V2,thresholdSturges:()=>Va,tickFormat:()=>l1,tickIncrement:()=>er,tickStep:()=>si,ticks:()=>Bn,timeDay:()=>hr,timeDays:()=>sS,timeFormat:()=>El,timeFormatDefaultLocale:()=>Km,timeFormatLocale:()=>Wm,timeFriday:()=>Cm,timeFridays:()=>gS,timeHour:()=>ra,timeHours:()=>oS,timeInterval:()=>Wt,timeMillisecond:()=>ta,timeMilliseconds:()=>eS,timeMinute:()=>ea,timeMinutes:()=>rS,timeMonday:()=>Ri,timeMondays:()=>fS,timeMonth:()=>oa,timeMonths:()=>kS,timeParse:()=>Zm,timeSaturday:()=>Fm,timeSaturdays:()=>mS,timeSecond:()=>kn,timeSeconds:()=>nS,timeSunday:()=>Yr,timeSundays:()=>uS,timeThursday:()=>dr,timeThursdays:()=>pS,timeTickInterval:()=>eh,timeTicks:()=>th,timeTuesday:()=>Em,timeTuesdays:()=>hS,timeWednesday:()=>Mm,timeWednesdays:()=>dS,timeWeek:()=>Yr,timeWeeks:()=>uS,timeYear:()=>je,timeYears:()=>ES,timeout:()=>vs,timer:()=>vi,timerFlush:()=>K0,transition:()=>ip,transpose:()=>Vd,tree:()=>F7,treemap:()=>T7,treemapBinary:()=>O7,treemapDice:()=>Jo,treemapResquarify:()=>D7,treemapSlice:()=>Al,treemapSliceDice:()=>B7,treemapSquarify:()=>bm,tsv:()=>C8,tsvFormat:()=>p8,tsvFormatBody:()=>g8,tsvFormatRow:()=>y8,tsvFormatRows:()=>m8,tsvFormatValue:()=>b8,tsvParse:()=>Pu,tsvParseRows:()=>d8,union:()=>_v,unixDay:()=>Kf,unixDays:()=>cS,utcDay:()=>Lr,utcDays:()=>lS,utcFormat:()=>ua,utcFriday:()=>Bm,utcFridays:()=>_S,utcHour:()=>ia,utcHours:()=>aS,utcMillisecond:()=>ta,utcMilliseconds:()=>eS,utcMinute:()=>na,utcMinutes:()=>iS,utcMonday:()=>Pi,utcMondays:()=>bS,utcMonth:()=>aa,utcMonths:()=>AS,utcParse:()=>ih,utcSaturday:()=>Dm,utcSaturdays:()=>SS,utcSecond:()=>kn,utcSeconds:()=>nS,utcSunday:()=>Hr,utcSundays:()=>yS,utcThursday:()=>pr,utcThursdays:()=>xS,utcTickInterval:()=>Jf,utcTicks:()=>Qf,utcTuesday:()=>Tm,utcTuesdays:()=>vS,utcWednesday:()=>Om,utcWednesdays:()=>wS,utcWeek:()=>Hr,utcWeeks:()=>yS,utcYear:()=>Xe,utcYears:()=>MS,variance:()=>Dd,window:()=>Ic,xml:()=>B8,zip:()=>uv,zoom:()=>oE,zoomIdentity:()=>Xl,zoomTransform:()=>Py});function Bt(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Td(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ao(t){let e,n,r;t.length!==2?(e=Bt,n=(s,c)=>Bt(t(s),c),r=(s,c)=>t(s)-c):(e=t===Bt||t===Td?t:x2,n=t,r=t);function i(s,c,l=0,u=s.length){if(l<u){if(e(c,c)!==0)return u;do{let h=l+u>>>1;n(s[h],c)<0?l=h+1:u=h}while(l<u)}return l}function o(s,c,l=0,u=s.length){if(l<u){if(e(c,c)!==0)return u;do{let h=l+u>>>1;n(s[h],c)<=0?l=h+1:u=h}while(l<u)}return l}function a(s,c,l=0,u=s.length){let h=i(s,c,l,u-1);return h>l&&r(s[h-1],c)>-r(s[h],c)?h-1:h}return{left:i,center:a,right:o}}function x2(){return 0}function Ha(t){return t===null?NaN:+t}function*_2(t,e){if(e===void 0)for(let n of t)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of t)(r=e(r,++n,t))!=null&&(r=+r)>=r&&(yield r)}}var Od=ao(Bt),nr=Od.right,S2=Od.left,k2=ao(Ha).center;function A2(t,e){if(!((e=+e)>=0))throw new RangeError("invalid r");let n=t.length;if(!((n=Math.floor(n))>=0))throw new RangeError("invalid length");if(!n||!e)return t;let r=Tc(e),i=t.slice();return r(t,i,0,n,1),r(i,t,0,n,1),r(t,i,0,n,1),t}var Fc=Bd(Tc),E2=Bd(M2);function Bd(t){return function(e,n,r=n){if(!((n=+n)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:i,width:o,height:a}=e;if(!((o=Math.floor(o))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(a!==void 0?a:i.length/o))>=0))throw new RangeError("invalid height");if(!o||!a||!n&&!r)return e;let s=n&&t(n),c=r&&t(r),l=i.slice();return s&&c?(Jr(s,l,i,o,a),Jr(s,i,l,o,a),Jr(s,l,i,o,a),ti(c,i,l,o,a),ti(c,l,i,o,a),ti(c,i,l,o,a)):s?(Jr(s,i,l,o,a),Jr(s,l,i,o,a),Jr(s,i,l,o,a)):c&&(ti(c,i,l,o,a),ti(c,l,i,o,a),ti(c,i,l,o,a)),e}}function Jr(t,e,n,r,i){for(let o=0,a=r*i;o<a;)t(e,n,o,o+=r,1)}function ti(t,e,n,r,i){for(let o=0,a=r*i;o<r;++o)t(e,n,o,o+a,r)}function M2(t){let e=Tc(t);return(n,r,i,o,a)=>{i<<=2,o<<=2,a<<=2,e(n,r,i+0,o+0,a),e(n,r,i+1,o+1,a),e(n,r,i+2,o+2,a),e(n,r,i+3,o+3,a)}}function Tc(t){let e=Math.floor(t);if(e===t)return C2(t);let n=t-e,r=2*t+1;return(i,o,a,s,c)=>{if(!((s-=c)>=a))return;let l=e*o[a],u=c*e,h=u+c;for(let f=a,d=a+u;f<d;f+=c)l+=o[Math.min(s,f)];for(let f=a,d=s;f<=d;f+=c)l+=o[Math.min(s,f+u)],i[f]=(l+n*(o[Math.max(a,f-h)]+o[Math.min(s,f+h)]))/r,l-=o[Math.max(a,f-u)]}}function C2(t){let e=2*t+1;return(n,r,i,o,a)=>{if(!((o-=a)>=i))return;let s=t*r[i],c=a*t;for(let l=i,u=i+c;l<u;l+=a)s+=r[Math.min(o,l)];for(let l=i,u=o;l<=u;l+=a)s+=r[Math.min(o,l+c)],n[l]=s/e,s-=r[Math.max(i,l-c)]}}function Xa(t,e){let n=0;if(e===void 0)for(let r of t)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(i=+i)>=i&&++n}return n}function F2(t){return t.length|0}function T2(t){return!(t>0)}function O2(t){return typeof t!="object"||"length"in t?t:Array.from(t)}function B2(t){return e=>t(...e)}function D2(...t){let e=typeof t[t.length-1]=="function"&&B2(t.pop());t=t.map(O2);let n=t.map(F2),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||n.some(T2))return o;for(;;){o.push(i.map((s,c)=>t[c][s]));let a=r;for(;++i[a]===n[a];){if(a===0)return e?o.map(e):o;i[a--]=0}}}function $2(t,e){var n=0,r=0;return Float64Array.from(t,e===void 0?i=>n+=+i||0:i=>n+=+e(i,r++,t)||0)}function Dd(t,e){let n=0,r,i=0,o=0;if(e===void 0)for(let a of t)a!=null&&(a=+a)>=a&&(r=a-i,i+=r/++n,o+=r*(a-i));else{let a=-1;for(let s of t)(s=e(s,++a,t))!=null&&(s=+s)>=s&&(r=s-i,i+=r/++n,o+=r*(s-i))}if(n>1)return o/(n-1)}function $d(t,e){let n=Dd(t,e);return n&&Math.sqrt(n)}function ei(t,e){let n,r;if(e===void 0)for(let i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}var It=class{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){let n=this._partials,r=0;for(let i=0;i<this._n&&i<32;i++){let o=n[i],a=e+o,s=Math.abs(e)<Math.abs(o)?e-(a-o):o-(a-e);s&&(n[r++]=s),e=a}return n[r]=e,this._n=r+1,this}valueOf(){let e=this._partials,n=this._n,r,i,o,a=0;if(n>0){for(a=e[--n];n>0&&(r=a,i=e[--n],a=r+i,o=i-(a-r),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(i=o*2,r=a+i,i==r-a&&(a=r))}return a}};function z2(t,e){let n=new It;if(e===void 0)for(let r of t)(r=+r)&&n.add(r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&n.add(i)}return+n}function N2(t,e){let n=new It,r=-1;return Float64Array.from(t,e===void 0?i=>n.add(+i||0):i=>n.add(+e(i,++r,t)||0))}var tr=class extends Map{constructor(e,n=Rd){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(let[r,i]of e)this.set(r,i)}get(e){return super.get(Mc(this,e))}has(e){return super.has(Mc(this,e))}set(e,n){return super.set(zd(this,e),n)}delete(e){return super.delete(Nd(this,e))}},On=class extends Set{constructor(e,n=Rd){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(let r of e)this.add(r)}has(e){return super.has(Mc(this,e))}add(e){return super.add(zd(this,e))}delete(e){return super.delete(Nd(this,e))}};function Mc({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):n}function zd({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function Nd({_intern:t,_key:e},n){let r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Rd(t){return t!==null&&typeof t=="object"?t.valueOf():t}function ni(t){return t}function Pd(t,...e){return ai(t,ni,ni,e)}function Id(t,...e){return ai(t,Array.from,ni,e)}function Ld(t,e){for(let n=1,r=e.length;n<r;++n)t=t.flatMap(i=>i.pop().map(([o,a])=>[...i,o,a]));return t}function R2(t,...e){return Ld(Id(t,...e),e)}function P2(t,e,...n){return Ld(Yd(t,e,...n),n)}function qd(t,e,...n){return ai(t,ni,e,n)}function Yd(t,e,...n){return ai(t,Array.from,e,n)}function I2(t,...e){return ai(t,ni,Ud,e)}function L2(t,...e){return ai(t,Array.from,Ud,e)}function Ud(t){if(t.length!==1)throw new Error("duplicate key");return t[0]}function ai(t,e,n,r){return(function i(o,a){if(a>=r.length)return n(o);let s=new tr,c=r[a++],l=-1;for(let u of o){let h=c(u,++l,o),f=s.get(h);f?f.push(u):s.set(h,[u])}for(let[u,h]of s)s.set(u,i(h,a));return e(s)})(t,0)}function Hd(t,e){return Array.from(e,n=>t[n])}function Cc(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){let r=Uint32Array.from(t,(i,o)=>o);return e.length>1?(e=e.map(i=>t.map(i)),r.sort((i,o)=>{for(let a of e){let s=ri(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>ri(n[i],n[o]))),Hd(t,r)}return t.sort(Oc(n))}function Oc(t=Bt){if(t===Bt)return ri;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{let r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function ri(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}function q2(t,e,n){return(e.length!==2?Cc(qd(t,e,n),(([r,i],[o,a])=>Bt(i,a)||Bt(r,o))):Cc(Pd(t,n),(([r,i],[o,a])=>e(i,a)||Bt(r,o)))).map(([r])=>r)}var Y2=Array.prototype,U2=Y2.slice;function Ec(t){return()=>t}var H2=Math.sqrt(50),W2=Math.sqrt(10),j2=Math.sqrt(2);function Wa(t,e,n){let r=(e-t)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=H2?10:o>=W2?5:o>=j2?2:1,s,c,l;return i<0?(l=Math.pow(10,-i)/a,s=Math.round(t*l),c=Math.round(e*l),s/l<t&&++s,c/l>e&&--c,l=-l):(l=Math.pow(10,i)*a,s=Math.round(t/l),c=Math.round(e/l),s*l<t&&++s,c*l>e&&--c),c<s&&.5<=n&&n<2?Wa(t,e,n*2):[s,c,l]}function Bn(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];let r=e<t,[i,o,a]=r?Wa(e,t,n):Wa(t,e,n);if(!(o>=i))return[];let s=o-i+1,c=new Array(s);if(r)if(a<0)for(let l=0;l<s;++l)c[l]=(o-l)/-a;else for(let l=0;l<s;++l)c[l]=(o-l)*a;else if(a<0)for(let l=0;l<s;++l)c[l]=(i+l)/-a;else for(let l=0;l<s;++l)c[l]=(i+l)*a;return c}function er(t,e,n){return e=+e,t=+t,n=+n,Wa(t,e,n)[2]}function si(t,e,n){e=+e,t=+t,n=+n;let r=e<t,i=r?er(e,t,n):er(t,e,n);return(r?-1:1)*(i<0?1/-i:i)}function Ga(t,e,n){let r;for(;;){let i=er(t,e,n);if(i===r||i===0||!isFinite(i))return[t,e];if(i>0){let o=Math.ceil(t/i),a=Math.floor(e/i);t=(o-(o*i>t))*i,e=(a+(a*i<e))*i}else if(i<0){let o=-i,a=Math.ceil(t*o),s=Math.floor(e*o);t=(a-(a/o>t))/o,e=(s+(s/o<e))/o}r=i}}function Va(t){return Math.max(1,Math.ceil(Math.log(Xa(t))/Math.LN2)+1)}function X2(){var t=ni,e=ei,n=Va;function r(i){Array.isArray(i)||(i=Array.from(i));var o,a=i.length,s,c,l=new Array(a);for(o=0;o<a;++o)l[o]=t(i[o],o,i);var u=e(l),h=u[0],f=u[1],d=n(l,h,f);if(!Array.isArray(d)){let b=f,v=+d;if(e===ei&&([h,f]=Ga(h,f,v)),d=Bn(h,f,v),d[0]<=h&&(c=er(h,f,v)),d[d.length-1]>=f)if(b>=f&&e===ei){let _=er(h,f,v);isFinite(_)&&(_>0?f=(Math.floor(f/_)+1)*_:_<0&&(f=(Math.ceil(f*-_)+1)/-_))}else d.pop()}for(var m=d.length,p=0,g=m;d[p]<=h;)++p;for(;d[g-1]>f;)--g;(p||g<m)&&(d=d.slice(p,g),m=g-p);var y=new Array(m+1),w;for(o=0;o<=m;++o)w=y[o]=[],w.x0=o>0?d[o-1]:h,w.x1=o<m?d[o]:f;if(isFinite(c)){if(c>0)for(o=0;o<a;++o)(s=l[o])!=null&&h<=s&&s<=f&&y[Math.min(m,Math.floor((s-h)/c))].push(i[o]);else if(c<0){for(o=0;o<a;++o)if((s=l[o])!=null&&h<=s&&s<=f){let b=Math.floor((h-s)*c);y[Math.min(m,b+(d[b]<=s))].push(i[o])}}}else for(o=0;o<a;++o)(s=l[o])!=null&&h<=s&&s<=f&&y[nr(d,s,0,m)].push(i[o]);return y}return r.value=function(i){return arguments.length?(t=typeof i=="function"?i:Ec(i),r):t},r.domain=function(i){return arguments.length?(e=typeof i=="function"?i:Ec([i[0],i[1]]),r):e},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:Ec(Array.isArray(i)?U2.call(i):i),r):n},r}function ii(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function Bc(t,e){let n,r=-1,i=-1;if(e===void 0)for(let o of t)++i,o!=null&&(n<o||n===void 0&&o>=o)&&(n=o,r=i);else for(let o of t)(o=e(o,++i,t))!=null&&(n<o||n===void 0&&o>=o)&&(n=o,r=i);return r}function ja(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Dc(t,e){let n,r=-1,i=-1;if(e===void 0)for(let o of t)++i,o!=null&&(n>o||n===void 0&&o>=o)&&(n=o,r=i);else for(let o of t)(o=e(o,++i,t))!=null&&(n>o||n===void 0&&o>=o)&&(n=o,r=i);return r}function Za(t,e,n=0,r=1/0,i){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(i=i===void 0?ri:Oc(i);r>n;){if(r-n>600){let c=r-n+1,l=e-n+1,u=Math.log(c),h=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*h*(c-h)/c)*(l-c/2<0?-1:1),d=Math.max(n,Math.floor(e-l*h/c+f)),m=Math.min(r,Math.floor(e+(c-l)*h/c+f));Za(t,e,d,m,i)}let o=t[e],a=n,s=r;for(oo(t,n,e),i(t[r],o)>0&&oo(t,n,r);a<s;){for(oo(t,a,s),++a,--s;i(t[a],o)<0;)++a;for(;i(t[s],o)>0;)--s}i(t[n],o)===0?oo(t,n,s):(++s,oo(t,s,r)),s<=e&&(n=s+1),e<=s&&(r=s-1)}return t}function oo(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}function Wd(t,e=Bt){let n,r=!1;if(e.length===1){let i;for(let o of t){let a=e(o);(r?Bt(a,i)>0:Bt(a,a)===0)&&(n=o,i=a,r=!0)}}else for(let i of t)(r?e(i,n)>0:e(i,i)===0)&&(n=i,r=!0);return n}function oi(t,e,n){if(t=Float64Array.from(_2(t,n)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return ja(t);if(e>=1)return ii(t);var r,i=(r-1)*e,o=Math.floor(i),a=ii(Za(t,o).subarray(0,o+1)),s=ja(t.subarray(o+1));return a+(s-a)*(i-o)}}function $c(t,e,n=Ha){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,o=Math.floor(i),a=+n(t[o],o,t),s=+n(t[o+1],o+1,t);return a+(s-a)*(i-o)}}function jd(t,e,n=Ha){if(!isNaN(e=+e)){if(r=Float64Array.from(t,(s,c)=>Ha(n(t[c],c,t))),e<=0)return Dc(r);if(e>=1)return Bc(r);var r,i=Uint32Array.from(t,(s,c)=>c),o=r.length-1,a=Math.floor(o*e);return Za(i,a,0,o,(s,c)=>ri(r[s],r[c])),a=Wd(i.subarray(0,a+1),s=>r[s]),a>=0?a:-1}}function G2(t,e,n){let r=Xa(t),i=oi(t,.75)-oi(t,.25);return r&&i?Math.ceil((n-e)/(2*i*Math.pow(r,-1/3))):1}function V2(t,e,n){let r=Xa(t),i=$d(t);return r&&i?Math.ceil((n-e)*Math.cbrt(r)/(3.49*i)):1}function Z2(t,e){let n=0,r=0;if(e===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(o=+o)>=o&&(++n,r+=o)}if(n)return r/n}function K2(t,e){return oi(t,.5,e)}function Q2(t,e){return jd(t,.5,e)}function*J2(t){for(let e of t)yield*e}function Ka(t){return Array.from(J2(t))}function tv(t,e){let n=new tr;if(e===void 0)for(let o of t)o!=null&&o>=o&&n.set(o,(n.get(o)||0)+1);else{let o=-1;for(let a of t)(a=e(a,++o,t))!=null&&a>=a&&n.set(a,(n.get(a)||0)+1)}let r,i=0;for(let[o,a]of n)a>i&&(i=a,r=o);return r}function ev(t,e=nv){let n=[],r,i=!1;for(let o of t)i&&n.push(e(r,o)),r=o,i=!0;return n}function nv(t,e){return[t,e]}function dn(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,o=new Array(i);++r<i;)o[r]=t+r*n;return o}function rv(t,e=Bt){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");let n=Array.from(t),r=new Float64Array(n.length);e.length!==2&&(n=n.map(e),e=Bt);let i=(s,c)=>e(n[s],n[c]),o,a;return t=Uint32Array.from(n,(s,c)=>c),t.sort(e===Bt?(s,c)=>ri(n[s],n[c]):Oc(i)),t.forEach((s,c)=>{let l=i(s,o===void 0?s:o);l>=0?((o===void 0||l>0)&&(o=s,a=c),r[s]=a):r[s]=NaN}),r}function iv(t,e=Bt){let n,r=!1;if(e.length===1){let i;for(let o of t){let a=e(o);(r?Bt(a,i)<0:Bt(a,a)===0)&&(n=o,i=a,r=!0)}}else for(let i of t)(r?e(i,n)<0:e(i,i)===0)&&(n=i,r=!0);return n}function Xd(t,e=Bt){if(e.length===1)return Dc(t,e);let n,r=-1,i=-1;for(let o of t)++i,(r<0?e(o,o)===0:e(o,n)<0)&&(n=o,r=i);return r}function ov(t,e=Bt){if(e.length===1)return Bc(t,e);let n,r=-1,i=-1;for(let o of t)++i,(r<0?e(o,o)===0:e(o,n)>0)&&(n=o,r=i);return r}function av(t,e){let n=Xd(t,e);return n<0?void 0:n}var sv=Gd(Math.random);function Gd(t){return function(n,r=0,i=n.length){let o=i-(r=+r);for(;o;){let a=t()*o--|0,s=n[o+r];n[o+r]=n[a+r],n[a+r]=s}return n}}function lv(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function Vd(t){if(!(o=t.length))return[];for(var e=-1,n=ja(t,cv),r=new Array(n);++e<n;)for(var i=-1,o,a=r[e]=new Array(o);++i<o;)a[i]=t[i][e];return r}function cv(t){return t.length}function uv(){return Vd(arguments)}function fv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=-1;for(let r of t)if(!e(r,++n,t))return!1;return!0}function hv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=-1;for(let r of t)if(e(r,++n,t))return!0;return!1}function dv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=[],r=-1;for(let i of t)e(i,++r,t)&&n.push(i);return n}function pv(t,e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");if(typeof e!="function")throw new TypeError("mapper is not a function");return Array.from(t,(n,r)=>e(n,r,t))}function gv(t,e,n){if(typeof e!="function")throw new TypeError("reducer is not a function");let r=t[Symbol.iterator](),i,o,a=-1;if(arguments.length<3){if({done:i,value:n}=r.next(),i)return;++a}for(;{done:i,value:o}=r.next(),!i;)n=e(n,o,++a,t);return n}function mv(t){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");return Array.from(t).reverse()}function yv(t,...e){t=new On(t);for(let n of e)for(let r of n)t.delete(r);return t}function bv(t,e){let n=e[Symbol.iterator](),r=new On;for(let i of t){if(r.has(i))return!1;let o,a;for(;({value:o,done:a}=n.next())&&!a;){if(Object.is(i,o))return!1;r.add(o)}}return!0}function vv(t,...e){t=new On(t),e=e.map(wv);t:for(let n of t)for(let r of e)if(!r.has(n)){t.delete(n);continue t}return t}function wv(t){return t instanceof On?t:new On(t)}function Zd(t,e){let n=t[Symbol.iterator](),r=new Set;for(let i of e){let o=Fd(i);if(r.has(o))continue;let a,s;for(;{value:a,done:s}=n.next();){if(s)return!1;let c=Fd(a);if(r.add(c),Object.is(o,c))break}}return!0}function Fd(t){return t!==null&&typeof t=="object"?t.valueOf():t}function xv(t,e){return Zd(e,t)}function _v(...t){let e=new On;for(let n of t)for(let r of n)e.add(r);return e}function Sv(t){return t}var Qa=1,Ja=2,zc=3,so=4,Kd=1e-6;function kv(t){return"translate("+t+",0)"}function Av(t){return"translate(0,"+t+")"}function Ev(t){return e=>+t(e)}function Mv(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function Cv(){return!this.__axis}function ts(t,e){var n=[],r=null,i=null,o=6,a=6,s=3,c=typeof window<"u"&&window.devicePixelRatio>1?0:.5,l=t===Qa||t===so?-1:1,u=t===so||t===Ja?"x":"y",h=t===Qa||t===zc?kv:Av;function f(d){var m=r??(e.ticks?e.ticks.apply(e,n):e.domain()),p=i??(e.tickFormat?e.tickFormat.apply(e,n):Sv),g=Math.max(o,0)+s,y=e.range(),w=+y[0]+c,b=+y[y.length-1]+c,v=(e.bandwidth?Mv:Ev)(e.copy(),c),_=d.selection?d.selection():d,S=_.selectAll(".domain").data([null]),k=_.selectAll(".tick").data(m,e).order(),C=k.exit(),F=k.enter().append("g").attr("class","tick"),A=k.select("line"),E=k.select("text");S=S.merge(S.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),k=k.merge(F),A=A.merge(F.append("line").attr("stroke","currentColor").attr(u+"2",l*o)),E=E.merge(F.append("text").attr("fill","currentColor").attr(u,l*g).attr("dy",t===Qa?"0em":t===zc?"0.71em":"0.32em")),d!==_&&(S=S.transition(d),k=k.transition(d),A=A.transition(d),E=E.transition(d),C=C.transition(d).attr("opacity",Kd).attr("transform",function(D){return isFinite(D=v(D))?h(D+c):this.getAttribute("transform")}),F.attr("opacity",Kd).attr("transform",function(D){var $=this.parentNode.__axis;return h(($&&isFinite($=$(D))?$:v(D))+c)})),C.remove(),S.attr("d",t===so||t===Ja?a?"M"+l*a+","+w+"H"+c+"V"+b+"H"+l*a:"M"+c+","+w+"V"+b:a?"M"+w+","+l*a+"V"+c+"H"+b+"V"+l*a:"M"+w+","+c+"H"+b),k.attr("opacity",1).attr("transform",function(D){return h(v(D)+c)}),A.attr(u+"2",l*o),E.attr(u,l*g).text(p),_.filter(Cv).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Ja?"start":t===so?"end":"middle"),_.each(function(){this.__axis=v})}return f.scale=function(d){return arguments.length?(e=d,f):e},f.ticks=function(){return n=Array.from(arguments),f},f.tickArguments=function(d){return arguments.length?(n=d==null?[]:Array.from(d),f):n.slice()},f.tickValues=function(d){return arguments.length?(r=d==null?null:Array.from(d),f):r&&r.slice()},f.tickFormat=function(d){return arguments.length?(i=d,f):i},f.tickSize=function(d){return arguments.length?(o=a=+d,f):o},f.tickSizeInner=function(d){return arguments.length?(o=+d,f):o},f.tickSizeOuter=function(d){return arguments.length?(a=+d,f):a},f.tickPadding=function(d){return arguments.length?(s=+d,f):s},f.offset=function(d){return arguments.length?(c=+d,f):c},f}function Fv(t){return ts(Qa,t)}function Tv(t){return ts(Ja,t)}function Ov(t){return ts(zc,t)}function Bv(t){return ts(so,t)}var Dv={value:()=>{}};function Ye(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new es(n)}function es(t){this._=t}function $v(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}es.prototype=Ye.prototype={constructor:es,on:function(t,e){var n=this._,r=$v(t+"",n),i,o=-1,a=r.length;if(arguments.length<2){for(;++o<a;)if((i=(t=r[o]).type)&&(i=zv(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++o<a;)if(i=(t=r[o]).type)n[i]=Qd(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Qd(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new es(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,o;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};function zv(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Qd(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=Dv,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var Nc="http://www.w3.org/1999/xhtml",Rc={svg:"http://www.w3.org/2000/svg",xhtml:Nc,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function li(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),Rc.hasOwnProperty(e)?{space:Rc[e],local:t}:t}function Nv(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===Nc&&e.documentElement.namespaceURI===Nc?e.createElement(t):e.createElementNS(n,t)}}function Rv(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function rs(t){var e=li(t);return(e.local?Rv:Nv)(e)}function Pv(){}function lo(t){return t==null?Pv:function(){return this.querySelector(t)}}function Iv(t){typeof t!="function"&&(t=lo(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=new Array(a),c,l,u=0;u<a;++u)(c=o[u])&&(l=t.call(c,c.__data__,u,o))&&("__data__"in c&&(l.__data__=c.__data__),s[u]=l);return new ye(r,this._parents)}function Jd(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Lv(){return[]}function is(t){return t==null?Lv:function(){return this.querySelectorAll(t)}}function qv(t){return function(){return Jd(t.apply(this,arguments))}}function Yv(t){typeof t=="function"?t=qv(t):t=is(t);for(var e=this._groups,n=e.length,r=[],i=[],o=0;o<n;++o)for(var a=e[o],s=a.length,c,l=0;l<s;++l)(c=a[l])&&(r.push(t.call(c,c.__data__,l,a)),i.push(c));return new ye(r,i)}function os(t){return function(){return this.matches(t)}}function t0(t){return function(e){return e.matches(t)}}var Uv=Array.prototype.find;function Hv(t){return function(){return Uv.call(this.children,t)}}function Wv(){return this.firstElementChild}function jv(t){return this.select(t==null?Wv:Hv(typeof t=="function"?t:t0(t)))}var Xv=Array.prototype.filter;function Gv(){return Array.from(this.children)}function Vv(t){return function(){return Xv.call(this.children,t)}}function Zv(t){return this.selectAll(t==null?Gv:Vv(typeof t=="function"?t:t0(t)))}function Kv(t){typeof t!="function"&&(t=os(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=[],c,l=0;l<a;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&s.push(c);return new ye(r,this._parents)}function e0(t){return new Array(t.length)}function Qv(){return new ye(this._enter||this._groups.map(e0),this._parents)}function ns(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}ns.prototype={constructor:ns,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Jv(t){return function(){return t}}function tw(t,e,n,r,i,o){for(var a=0,s,c=e.length,l=o.length;a<l;++a)(s=e[a])?(s.__data__=o[a],r[a]=s):n[a]=new ns(t,o[a]);for(;a<c;++a)(s=e[a])&&(i[a]=s)}function ew(t,e,n,r,i,o,a){var s,c,l=new Map,u=e.length,h=o.length,f=new Array(u),d;for(s=0;s<u;++s)(c=e[s])&&(f[s]=d=a.call(c,c.__data__,s,e)+"",l.has(d)?i[s]=c:l.set(d,c));for(s=0;s<h;++s)d=a.call(t,o[s],s,o)+"",(c=l.get(d))?(r[s]=c,c.__data__=o[s],l.delete(d)):n[s]=new ns(t,o[s]);for(s=0;s<u;++s)(c=e[s])&&l.get(f[s])===c&&(i[s]=c)}function nw(t){return t.__data__}function rw(t,e){if(!arguments.length)return Array.from(this,nw);var n=e?ew:tw,r=this._parents,i=this._groups;typeof t!="function"&&(t=Jv(t));for(var o=i.length,a=new Array(o),s=new Array(o),c=new Array(o),l=0;l<o;++l){var u=r[l],h=i[l],f=h.length,d=iw(t.call(u,u&&u.__data__,l,r)),m=d.length,p=s[l]=new Array(m),g=a[l]=new Array(m),y=c[l]=new Array(f);n(u,h,p,g,y,d,e);for(var w=0,b=0,v,_;w<m;++w)if(v=p[w]){for(w>=b&&(b=w+1);!(_=g[b])&&++b<m;);v._next=_||null}}return a=new ye(a,r),a._enter=s,a._exit=c,a}function iw(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function ow(){return new ye(this._exit||this._groups.map(e0),this._parents)}function aw(t,e,n){var r=this.enter(),i=this,o=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),n==null?o.remove():n(o),r&&i?r.merge(i).order():i}function sw(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,a=Math.min(i,o),s=new Array(i),c=0;c<a;++c)for(var l=n[c],u=r[c],h=l.length,f=s[c]=new Array(h),d,m=0;m<h;++m)(d=l[m]||u[m])&&(f[m]=d);for(;c<i;++c)s[c]=n[c];return new ye(s,this._parents)}function lw(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],i=r.length-1,o=r[i],a;--i>=0;)(a=r[i])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function cw(t){t||(t=uw);function e(h,f){return h&&f?t(h.__data__,f.__data__):!h-!f}for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var a=n[o],s=a.length,c=i[o]=new Array(s),l,u=0;u<s;++u)(l=a[u])&&(c[u]=l);c.sort(e)}return new ye(i,this._parents).order()}function uw(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function fw(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function hw(){return Array.from(this)}function dw(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null}function pw(){let t=0;for(let e of this)++t;return t}function gw(){return!this.node()}function mw(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,a=i.length,s;o<a;++o)(s=i[o])&&t.call(s,s.__data__,o,i);return this}function yw(t){return function(){this.removeAttribute(t)}}function bw(t){return function(){this.removeAttributeNS(t.space,t.local)}}function vw(t,e){return function(){this.setAttribute(t,e)}}function ww(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function xw(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function _w(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Sw(t,e){var n=li(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?bw:yw:typeof e=="function"?n.local?_w:xw:n.local?ww:vw)(n,e))}function Ic(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function kw(t){return function(){this.style.removeProperty(t)}}function Aw(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Ew(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function Mw(t,e,n){return arguments.length>1?this.each((e==null?kw:typeof e=="function"?Ew:Aw)(t,e,n??"")):rr(this.node(),t)}function rr(t,e){return t.style.getPropertyValue(e)||Ic(t).getComputedStyle(t,null).getPropertyValue(e)}function Cw(t){return function(){delete this[t]}}function Fw(t,e){return function(){this[t]=e}}function Tw(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Ow(t,e){return arguments.length>1?this.each((e==null?Cw:typeof e=="function"?Tw:Fw)(t,e)):this.node()[t]}function n0(t){return t.trim().split(/^|\s+/)}function Lc(t){return t.classList||new r0(t)}function r0(t){this._node=t,this._names=n0(t.getAttribute("class")||"")}r0.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function i0(t,e){for(var n=Lc(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function o0(t,e){for(var n=Lc(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function Bw(t){return function(){i0(this,t)}}function Dw(t){return function(){o0(this,t)}}function $w(t,e){return function(){(e.apply(this,arguments)?i0:o0)(this,t)}}function zw(t,e){var n=n0(t+"");if(arguments.length<2){for(var r=Lc(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?$w:e?Bw:Dw)(n,e))}function Nw(){this.textContent=""}function Rw(t){return function(){this.textContent=t}}function Pw(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Iw(t){return arguments.length?this.each(t==null?Nw:(typeof t=="function"?Pw:Rw)(t)):this.node().textContent}function Lw(){this.innerHTML=""}function qw(t){return function(){this.innerHTML=t}}function Yw(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Uw(t){return arguments.length?this.each(t==null?Lw:(typeof t=="function"?Yw:qw)(t)):this.node().innerHTML}function Hw(){this.nextSibling&&this.parentNode.appendChild(this)}function Ww(){return this.each(Hw)}function jw(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Xw(){return this.each(jw)}function Gw(t){var e=typeof t=="function"?t:rs(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function Vw(){return null}function Zw(t,e){var n=typeof t=="function"?t:rs(t),r=e==null?Vw:typeof e=="function"?e:lo(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Kw(){var t=this.parentNode;t&&t.removeChild(this)}function Qw(){return this.each(Kw)}function Jw(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function tx(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ex(t){return this.select(t?tx:Jw)}function nx(t){return arguments.length?this.property("__data__",t):this.node().__data__}function rx(t){return function(e){t.call(this,e,this.__data__)}}function ix(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function ox(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,i=e.length,o;n<i;++n)o=e[n],(!t.type||o.type===t.type)&&o.name===t.name?this.removeEventListener(o.type,o.listener,o.options):e[++r]=o;++r?e.length=r:delete this.__on}}}function ax(t,e,n){return function(){var r=this.__on,i,o=rx(e);if(r){for(var a=0,s=r.length;a<s;++a)if((i=r[a]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=o,i.options=n),i.value=e;return}}this.addEventListener(t.type,o,n),i={type:t.type,name:t.name,value:e,listener:o,options:n},r?r.push(i):this.__on=[i]}}function sx(t,e,n){var r=ix(t+""),i,o=r.length,a;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<o;++i)if((a=r[i]).type===u.type&&a.name===u.name)return u.value}return}for(s=e?ax:ox,i=0;i<o;++i)this.each(s(r[i],e,n));return this}function a0(t,e,n){var r=Ic(t),i=r.CustomEvent;typeof i=="function"?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function lx(t,e){return function(){return a0(this,t,e)}}function cx(t,e){return function(){return a0(this,t,e.apply(this,arguments))}}function ux(t,e){return this.each((typeof e=="function"?cx:lx)(t,e))}function*fx(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length,a;i<o;++i)(a=r[i])&&(yield a)}var qc=[null];function ye(t,e){this._groups=t,this._parents=e}function ir(){return new ye([[document.documentElement]],qc)}function hx(){return this}ye.prototype=ir.prototype={constructor:ye,select:Iv,selectAll:Yv,selectChild:jv,selectChildren:Zv,filter:Kv,data:rw,enter:Qv,exit:ow,join:aw,merge:sw,selection:hx,order:lw,sort:cw,call:fw,nodes:hw,node:dw,size:pw,empty:gw,each:mw,attr:Sw,style:Mw,property:Ow,classed:zw,text:Iw,html:Uw,raise:Ww,lower:Xw,append:Gw,insert:Zw,remove:Qw,clone:ex,datum:nx,on:sx,dispatch:ux,[Symbol.iterator]:fx};function Xt(t){return typeof t=="string"?new ye([[document.querySelector(t)]],[document.documentElement]):new ye([[t]],qc)}function dx(t){return Xt(rs(t).call(document.documentElement))}var px=0;function s0(){return new Pc}function Pc(){this._="@"+(++px).toString(36)}Pc.prototype=s0.prototype={constructor:Pc,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};function l0(t){let e;for(;e=t.sourceEvent;)t=e;return t}function le(t,e){if(t=l0(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}function gx(t,e){return t.target&&(t=l0(t),e===void 0&&(e=t.currentTarget),t=t.touches||[t]),Array.from(t,n=>le(n,e))}function mx(t){return typeof t=="string"?new ye([document.querySelectorAll(t)],[document.documentElement]):new ye([Jd(t)],qc)}var yx={passive:!1},co={capture:!0,passive:!1};function Yc(t){t.stopImmediatePropagation()}function ci(t){t.preventDefault(),t.stopImmediatePropagation()}function ui(t){var e=t.document.documentElement,n=Xt(t).on("dragstart.drag",ci,co);"onselectstart"in e?n.on("selectstart.drag",ci,co):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function fi(t,e){var n=t.document.documentElement,r=Xt(t).on("dragstart.drag",null);e&&(r.on("click.drag",ci,co),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var as=t=>()=>t;function Uc(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:o,x:a,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Uc.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function bx(t){return!t.ctrlKey&&!t.button}function vx(){return this.parentNode}function wx(t,e){return e??{x:t.x,y:t.y}}function xx(){return navigator.maxTouchPoints||"ontouchstart"in this}function _x(){var t=bx,e=vx,n=wx,r=xx,i={},o=Ye("start","drag","end"),a=0,s,c,l,u,h=0;function f(v){v.on("mousedown.drag",d).filter(r).on("touchstart.drag",g).on("touchmove.drag",y,yx).on("touchend.drag touchcancel.drag",w).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(v,_){if(!(u||!t.call(this,v,_))){var S=b(this,e.call(this,v,_),v,_,"mouse");S&&(Xt(v.view).on("mousemove.drag",m,co).on("mouseup.drag",p,co),ui(v.view),Yc(v),l=!1,s=v.clientX,c=v.clientY,S("start",v))}}function m(v){if(ci(v),!l){var _=v.clientX-s,S=v.clientY-c;l=_*_+S*S>h}i.mouse("drag",v)}function p(v){Xt(v.view).on("mousemove.drag mouseup.drag",null),fi(v.view,l),ci(v),i.mouse("end",v)}function g(v,_){if(t.call(this,v,_)){var S=v.changedTouches,k=e.call(this,v,_),C=S.length,F,A;for(F=0;F<C;++F)(A=b(this,k,v,_,S[F].identifier,S[F]))&&(Yc(v),A("start",v,S[F]))}}function y(v){var _=v.changedTouches,S=_.length,k,C;for(k=0;k<S;++k)(C=i[_[k].identifier])&&(ci(v),C("drag",v,_[k]))}function w(v){var _=v.changedTouches,S=_.length,k,C;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),k=0;k<S;++k)(C=i[_[k].identifier])&&(Yc(v),C("end",v,_[k]))}function b(v,_,S,k,C,F){var A=o.copy(),E=le(F||S,_),D,$,M;if((M=n.call(v,new Uc("beforestart",{sourceEvent:S,target:f,identifier:C,active:a,x:E[0],y:E[1],dx:0,dy:0,dispatch:A}),k))!=null)return D=M.x-E[0]||0,$=M.y-E[1]||0,function T(B,N,L){var q=E,U;switch(B){case"start":i[C]=T,U=a++;break;case"end":delete i[C],--a;case"drag":E=le(L||N,_),U=a;break}A.call(B,v,new Uc(B,{sourceEvent:N,subject:M,target:f,identifier:C,active:U,x:E[0]+D,y:E[1]+$,dx:E[0]-q[0],dy:E[1]-q[1],dispatch:A}),k)}}return f.filter=function(v){return arguments.length?(t=typeof v=="function"?v:as(!!v),f):t},f.container=function(v){return arguments.length?(e=typeof v=="function"?v:as(v),f):e},f.subject=function(v){return arguments.length?(n=typeof v=="function"?v:as(v),f):n},f.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:as(!!v),f):r},f.on=function(){var v=o.on.apply(o,arguments);return v===o?f:v},f.clickDistance=function(v){return arguments.length?(h=(v=+v)*v,f):Math.sqrt(h)},f}function gi(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function ho(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function or(){}var Mr=.7,pi=1/Mr,hi="\\s*([+-]?\\d+)\\s*",uo="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",gn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Sx=/^#([0-9a-f]{3,8})$/,kx=new RegExp(`^rgb\\(${hi},${hi},${hi}\\)$`),Ax=new RegExp(`^rgb\\(${gn},${gn},${gn}\\)$`),Ex=new RegExp(`^rgba\\(${hi},${hi},${hi},${uo}\\)$`),Mx=new RegExp(`^rgba\\(${gn},${gn},${gn},${uo}\\)$`),Cx=new RegExp(`^hsl\\(${uo},${gn},${gn}\\)$`),Fx=new RegExp(`^hsla\\(${uo},${gn},${gn},${uo}\\)$`),c0={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};gi(or,mn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:u0,formatHex:u0,formatHex8:Tx,formatHsl:Ox,formatRgb:f0,toString:f0});function u0(){return this.rgb().formatHex()}function Tx(){return this.rgb().formatHex8()}function Ox(){return w0(this).formatHsl()}function f0(){return this.rgb().formatRgb()}function mn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Sx.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?h0(e):n===3?new Kt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?ss(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?ss(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=kx.exec(t))?new Kt(e[1],e[2],e[3],1):(e=Ax.exec(t))?new Kt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Ex.exec(t))?ss(e[1],e[2],e[3],e[4]):(e=Mx.exec(t))?ss(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Cx.exec(t))?g0(e[1],e[2]/100,e[3]/100,1):(e=Fx.exec(t))?g0(e[1],e[2]/100,e[3]/100,e[4]):c0.hasOwnProperty(t)?h0(c0[t]):t==="transparent"?new Kt(NaN,NaN,NaN,0):null}function h0(t){return new Kt(t>>16&255,t>>8&255,t&255,1)}function ss(t,e,n,r){return r<=0&&(t=e=n=NaN),new Kt(t,e,n,r)}function Vc(t){return t instanceof or||(t=mn(t)),t?(t=t.rgb(),new Kt(t.r,t.g,t.b,t.opacity)):new Kt}function ar(t,e,n,r){return arguments.length===1?Vc(t):new Kt(t,e,n,r??1)}function Kt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}gi(Kt,ar,ho(or,{brighter(t){return t=t==null?pi:Math.pow(pi,t),new Kt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Mr:Math.pow(Mr,t),new Kt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Kt(Ar(this.r),Ar(this.g),Ar(this.b),cs(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:d0,formatHex:d0,formatHex8:Bx,formatRgb:p0,toString:p0}));function d0(){return`#${kr(this.r)}${kr(this.g)}${kr(this.b)}`}function Bx(){return`#${kr(this.r)}${kr(this.g)}${kr(this.b)}${kr((isNaN(this.opacity)?1:this.opacity)*255)}`}function p0(){let t=cs(this.opacity);return`${t===1?"rgb(":"rgba("}${Ar(this.r)}, ${Ar(this.g)}, ${Ar(this.b)}${t===1?")":`, ${t})`}`}function cs(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ar(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function kr(t){return t=Ar(t),(t<16?"0":"")+t.toString(16)}function g0(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new an(t,e,n,r)}function w0(t){if(t instanceof an)return new an(t.h,t.s,t.l,t.opacity);if(t instanceof or||(t=mn(t)),!t)return new an;if(t instanceof an)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-e)/s+2:a=(e-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new an(a,s,c,t.opacity)}function po(t,e,n,r){return arguments.length===1?w0(t):new an(t,e,n,r??1)}function an(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}gi(an,po,ho(or,{brighter(t){return t=t==null?pi:Math.pow(pi,t),new an(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Mr:Math.pow(Mr,t),new an(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new Kt(Hc(t>=240?t-240:t+120,i,r),Hc(t,i,r),Hc(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new an(m0(this.h),ls(this.s),ls(this.l),cs(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(){let t=cs(this.opacity);return`${t===1?"hsl(":"hsla("}${m0(this.h)}, ${ls(this.s)*100}%, ${ls(this.l)*100}%${t===1?")":`, ${t})`}`}}));function m0(t){return t=(t||0)%360,t<0?t+360:t}function ls(t){return Math.max(0,Math.min(1,t||0))}function Hc(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}var x0=Math.PI/180,_0=180/Math.PI,us=18,S0=.96422,k0=1,A0=.82521,E0=4/29,di=6/29,M0=3*di*di,Dx=di*di*di;function C0(t){if(t instanceof sn)return new sn(t.l,t.a,t.b,t.opacity);if(t instanceof pn)return T0(t);t instanceof Kt||(t=Vc(t));var e=Gc(t.r),n=Gc(t.g),r=Gc(t.b),i=Wc((.2225045*e+.7168786*n+.0606169*r)/k0),o,a;return e===n&&n===r?o=a=i:(o=Wc((.4360747*e+.3850649*n+.1430804*r)/S0),a=Wc((.0139322*e+.0971045*n+.7141733*r)/A0)),new sn(116*i-16,500*(o-i),200*(i-a),t.opacity)}function $x(t,e){return new sn(t,0,0,e??1)}function go(t,e,n,r){return arguments.length===1?C0(t):new sn(t,e,n,r??1)}function sn(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}gi(sn,go,ho(or,{brighter(t){return new sn(this.l+us*(t??1),this.a,this.b,this.opacity)},darker(t){return new sn(this.l-us*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=S0*jc(e),t=k0*jc(t),n=A0*jc(n),new Kt(Xc(3.1338561*e-1.6168667*t-.4906146*n),Xc(-.9787684*e+1.9161415*t+.033454*n),Xc(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Wc(t){return t>Dx?Math.pow(t,1/3):t/M0+E0}function jc(t){return t>di?t*t*t:M0*(t-E0)}function Xc(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Gc(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function F0(t){if(t instanceof pn)return new pn(t.h,t.c,t.l,t.opacity);if(t instanceof sn||(t=C0(t)),t.a===0&&t.b===0)return new pn(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*_0;return new pn(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function zx(t,e,n,r){return arguments.length===1?F0(t):new pn(n,e,t,r??1)}function mo(t,e,n,r){return arguments.length===1?F0(t):new pn(t,e,n,r??1)}function pn(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function T0(t){if(isNaN(t.h))return new sn(t.l,0,0,t.opacity);var e=t.h*x0;return new sn(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}gi(pn,mo,ho(or,{brighter(t){return new pn(this.h,this.c,this.l+us*(t??1),this.opacity)},darker(t){return new pn(this.h,this.c,this.l-us*(t??1),this.opacity)},rgb(){return T0(this).rgb()}}));var O0=-.14861,Zc=1.78277,Kc=-.29227,fs=-.90649,fo=1.97294,y0=fo*fs,b0=fo*Zc,v0=Zc*Kc-fs*O0;function Nx(t){if(t instanceof Er)return new Er(t.h,t.s,t.l,t.opacity);t instanceof Kt||(t=Vc(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(v0*r+y0*e-b0*n)/(v0+y0-b0),o=r-i,a=(fo*(n-i)-Kc*o)/fs,s=Math.sqrt(a*a+o*o)/(fo*i*(1-i)),c=s?Math.atan2(a,o)*_0-120:NaN;return new Er(c<0?c+360:c,s,i,t.opacity)}function Re(t,e,n,r){return arguments.length===1?Nx(t):new Er(t,e,n,r??1)}function Er(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}gi(Er,Re,ho(or,{brighter(t){return t=t==null?pi:Math.pow(pi,t),new Er(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Mr:Math.pow(Mr,t),new Er(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*x0,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new Kt(255*(e+n*(O0*r+Zc*i)),255*(e+n*(Kc*r+fs*i)),255*(e+n*(fo*r)),this.opacity)}}));function $0(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function z0(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return $0((n-r/e)*e,a,i,o,s)}}function N0(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return $0((n-r/e)*e,i,o,a,s)}}var ds=t=>()=>t;function R0(t,e){return function(n){return t+n*e}}function Rx(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function ps(t,e){var n=e-t;return n?R0(t,n>180||n<-180?n-360*Math.round(n/360):n):ds(isNaN(t)?e:t)}function Px(t){return(t=+t)==1?Qt:function(e,n){return n-e?Rx(e,n,t):ds(isNaN(e)?n:e)}}function Qt(t,e){var n=e-t;return n?R0(t,n):ds(isNaN(t)?e:t)}var mi=(function t(e){var n=Px(e);function r(i,o){var a=n((i=ar(i)).r,(o=ar(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),l=Qt(i.opacity,o.opacity);return function(u){return i.r=a(u),i.g=s(u),i.b=c(u),i.opacity=l(u),i+""}}return r.gamma=t,r})(1);function P0(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=ar(e[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=t(r),i=t(i),o=t(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var eu=P0(z0),Ix=P0(N0);function nu(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=t[i]*(1-o)+e[i]*o;return r}}function I0(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Lx(t,e){return(I0(e)?nu:L0)(t,e)}function L0(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=yn(t[a],e[a]);for(;a<n;++a)o[a]=e[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function q0(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Fe(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Y0(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=yn(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Jc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qc=new RegExp(Jc.source,"g");function qx(t){return function(){return t}}function Yx(t){return function(e){return t(e)+""}}function gs(t,e){var n=Jc.lastIndex=Qc.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=Jc.exec(t))&&(i=Qc.exec(e));)(o=i.index)>n&&(o=e.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:Fe(r,i)})),n=Qc.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?Yx(c[0].x):qx(e):(e=c.length,function(l){for(var u=0,h;u<e;++u)s[(h=c[u]).i]=h.x(l);return s.join("")})}function yn(t,e){var n=typeof e,r;return e==null||n==="boolean"?ds(e):(n==="number"?Fe:n==="string"?(r=mn(e))?(e=r,mi):gs:e instanceof mn?mi:e instanceof Date?q0:I0(e)?nu:Array.isArray(e)?L0:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Y0:Fe)(t,e)}function Ux(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function Hx(t,e){var n=ps(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function yo(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var B0=180/Math.PI,tu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function U0(t,e,n,r,i,o){var a,s,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*B0,skewX:Math.atan(c)*B0,scaleX:a,scaleY:s}}var hs;function Wx(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?tu:U0(e.a,e.b,e.c,e.d,e.e,e.f)}function jx(t){return t==null||(hs||(hs=document.createElementNS("http://www.w3.org/2000/svg","g")),hs.setAttribute("transform",t),!(t=hs.transform.baseVal.consolidate()))?tu:(t=t.matrix,U0(t.a,t.b,t.c,t.d,t.e,t.f))}function H0(t,e,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,u,h,f,d,m){if(l!==h||u!==f){var p=d.push("translate(",null,e,null,n);m.push({i:p-4,x:Fe(l,h)},{i:p-2,x:Fe(u,f)})}else(h||f)&&d.push("translate("+h+e+f+n)}function a(l,u,h,f){l!==u?(l-u>180?u+=360:u-l>180&&(l+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:Fe(l,u)})):u&&h.push(i(h)+"rotate("+u+r)}function s(l,u,h,f){l!==u?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:Fe(l,u)}):u&&h.push(i(h)+"skewX("+u+r)}function c(l,u,h,f,d,m){if(l!==h||u!==f){var p=d.push(i(d)+"scale(",null,",",null,")");m.push({i:p-4,x:Fe(l,h)},{i:p-2,x:Fe(u,f)})}else(h!==1||f!==1)&&d.push(i(d)+"scale("+h+","+f+")")}return function(l,u){var h=[],f=[];return l=t(l),u=t(u),o(l.translateX,l.translateY,u.translateX,u.translateY,h,f),a(l.rotate,u.rotate,h,f),s(l.skewX,u.skewX,h,f),c(l.scaleX,l.scaleY,u.scaleX,u.scaleY,h,f),l=u=null,function(d){for(var m=-1,p=f.length,g;++m<p;)h[(g=f[m]).i]=g.x(d);return h.join("")}}}var ru=H0(Wx,"px, ","px)","deg)"),iu=H0(jx,", ",")",")"),Xx=1e-12;function D0(t){return((t=Math.exp(t))+1/t)/2}function Gx(t){return((t=Math.exp(t))-1/t)/2}function Vx(t){return((t=Math.exp(2*t))-1)/(t+1)}var ou=(function t(e,n,r){function i(o,a){var s=o[0],c=o[1],l=o[2],u=a[0],h=a[1],f=a[2],d=u-s,m=h-c,p=d*d+m*m,g,y;if(p<Xx)y=Math.log(f/l)/e,g=function(k){return[s+k*d,c+k*m,l*Math.exp(e*k*y)]};else{var w=Math.sqrt(p),b=(f*f-l*l+r*p)/(2*l*n*w),v=(f*f-l*l-r*p)/(2*f*n*w),_=Math.log(Math.sqrt(b*b+1)-b),S=Math.log(Math.sqrt(v*v+1)-v);y=(S-_)/e,g=function(k){var C=k*y,F=D0(_),A=l/(n*w)*(F*Vx(e*C+_)-Gx(_));return[s+A*d,c+A*m,l*F/D0(e*C+_)]}}return g.duration=Math.abs(y)*1e3*e/Math.SQRT2,g}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return t(a,s,c)},i})(Math.SQRT2,2,4);function W0(t){return function(e,n){var r=t((e=po(e)).h,(n=po(n)).h),i=Qt(e.s,n.s),o=Qt(e.l,n.l),a=Qt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=o(s),e.opacity=a(s),e+""}}}var Zx=W0(ps),Kx=W0(Qt);function Qx(t,e){var n=Qt((t=go(t)).l,(e=go(e)).l),r=Qt(t.a,e.a),i=Qt(t.b,e.b),o=Qt(t.opacity,e.opacity);return function(a){return t.l=n(a),t.a=r(a),t.b=i(a),t.opacity=o(a),t+""}}function j0(t){return function(e,n){var r=t((e=mo(e)).h,(n=mo(n)).h),i=Qt(e.c,n.c),o=Qt(e.l,n.l),a=Qt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=o(s),e.opacity=a(s),e+""}}}var Jx=j0(ps),t3=j0(Qt);function X0(t){return(function e(n){n=+n;function r(i,o){var a=t((i=Re(i)).h,(o=Re(o)).h),s=Qt(i.s,o.s),c=Qt(i.l,o.l),l=Qt(i.opacity,o.opacity);return function(u){return i.h=a(u),i.s=s(u),i.l=c(Math.pow(u,n)),i.opacity=l(u),i+""}}return r.gamma=e,r})(1)}var e3=X0(ps),bo=X0(Qt);function au(t,e){e===void 0&&(e=t,t=yn);for(var n=0,r=e.length-1,i=e[0],o=new Array(r<0?0:r);n<r;)o[n]=t(i,i=e[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function n3(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}var yi=0,wo=0,vo=0,V0=1e3,ms,xo,ys=0,Cr=0,bs=0,_o=typeof performance=="object"&&performance.now?performance:Date,Z0=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function bi(){return Cr||(Z0(r3),Cr=_o.now()+bs)}function r3(){Cr=0}function So(){this._call=this._time=this._next=null}So.prototype=vi.prototype={constructor:So,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?bi():+n)+(e==null?0:+e),!this._next&&xo!==this&&(xo?xo._next=this:ms=this,xo=this),this._call=t,this._time=n,su()},stop:function(){this._call&&(this._call=null,this._time=1/0,su())}};function vi(t,e,n){var r=new So;return r.restart(t,e,n),r}function K0(){bi(),++yi;for(var t=ms,e;t;)(e=Cr-t._time)>=0&&t._call.call(void 0,e),t=t._next;--yi}function G0(){Cr=(ys=_o.now())+bs,yi=wo=0;try{K0()}finally{yi=0,o3(),Cr=0}}function i3(){var t=_o.now(),e=t-ys;e>V0&&(bs-=e,ys=t)}function o3(){for(var t,e=ms,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:ms=n);xo=t,su(r)}function su(t){if(!yi){wo&&(wo=clearTimeout(wo));var e=t-Cr;e>24?(t<1/0&&(wo=setTimeout(G0,Math.ceil(t-_o.now()-bs)+1)),vo&&(vo=clearInterval(vo))):(vo||(ys=_o.now(),vo=setInterval(i3,V0)),yi=1,Z0(G0))}}function vs(t,e,n){var r=new So;return e=e==null?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,n),r}function a3(t,e,n){var r=new So,i=e;return e==null?(r.restart(t,e,n),r):(r._restart=r.restart,r.restart=function(o,a,s){a=+a,s=s==null?bi():+s,r._restart(function c(l){l+=i,r._restart(c,i+=a,s),o(l)},a,s)},r.restart(t,e,n),r)}var s3=t=>+t;function l3(t){return t*t}function c3(t){return t*(2-t)}function u3(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function f3(t){return t*t*t}function h3(t){return--t*t*t+1}function cu(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var uu=3,d3=(function t(e){e=+e;function n(r){return Math.pow(r,e)}return n.exponent=t,n})(uu),p3=(function t(e){e=+e;function n(r){return 1-Math.pow(1-r,e)}return n.exponent=t,n})(uu),g3=(function t(e){e=+e;function n(r){return((r*=2)<=1?Math.pow(r,e):2-Math.pow(2-r,e))/2}return n.exponent=t,n})(uu),Q0=Math.PI,J0=Q0/2;function m3(t){return+t==1?1:1-Math.cos(t*J0)}function y3(t){return Math.sin(t*J0)}function b3(t){return(1-Math.cos(Q0*t))/2}function sr(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function v3(t){return sr(1-+t)}function w3(t){return 1-sr(t)}function x3(t){return((t*=2)<=1?sr(1-t):2-sr(t-1))/2}function _3(t){return 1-Math.sqrt(1-t*t)}function S3(t){return Math.sqrt(1- --t*t)}function k3(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var lu=4/11,A3=6/11,E3=8/11,M3=3/4,C3=9/11,F3=10/11,T3=15/16,O3=21/22,B3=63/64,ws=1/lu/lu;function D3(t){return 1-xs(1-t)}function xs(t){return(t=+t)<lu?ws*t*t:t<E3?ws*(t-=A3)*t+M3:t<F3?ws*(t-=C3)*t+T3:ws*(t-=O3)*t+B3}function $3(t){return((t*=2)<=1?1-xs(1-t):xs(t-1)+1)/2}var fu=1.70158,z3=(function t(e){e=+e;function n(r){return(r=+r)*r*(e*(r-1)+r)}return n.overshoot=t,n})(fu),N3=(function t(e){e=+e;function n(r){return--r*r*((r+1)*e+r)+1}return n.overshoot=t,n})(fu),R3=(function t(e){e=+e;function n(r){return((r*=2)<1?r*r*((e+1)*r-e):(r-=2)*r*((e+1)*r+e)+2)/2}return n.overshoot=t,n})(fu),wi=2*Math.PI,hu=1,du=.3,P3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=wi);function i(o){return e*sr(- --o)*Math.sin((r-o)/n)}return i.amplitude=function(o){return t(o,n*wi)},i.period=function(o){return t(e,o)},i})(hu,du),I3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=wi);function i(o){return 1-e*sr(o=+o)*Math.sin((o+r)/n)}return i.amplitude=function(o){return t(o,n*wi)},i.period=function(o){return t(e,o)},i})(hu,du),L3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=wi);function i(o){return((o=o*2-1)<0?e*sr(-o)*Math.sin((r-o)/n):2-e*sr(o)*Math.sin((r+o)/n))/2}return i.amplitude=function(o){return t(o,n*wi)},i.period=function(o){return t(e,o)},i})(hu,du);var q3=Ye("start","end","cancel","interrupt"),Y3=[],ep=0,pu=1,gu=2,_s=3,tp=4,mu=5,Ss=6;function ks(t,e,n,r,i,o){var a=t.__transition;if(!a)t.__transition={};else if(n in a)return;U3(t,n,{name:e,index:r,group:i,on:q3,tween:Y3,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:ep})}function yu(t,e){var n=ln(t,e);if(n.state>ep)throw new Error("too late; already scheduled");return n}function vn(t,e){var n=ln(t,e);if(n.state>_s)throw new Error("too late; already running");return n}function ln(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function U3(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=vi(o,0,n.time);function o(l){n.state=pu,n.timer.restart(a,n.delay,n.time),n.delay<=l&&a(l-n.delay)}function a(l){var u,h,f,d;if(n.state!==pu)return c();for(u in r)if(d=r[u],d.name===n.name){if(d.state===_s)return vs(a);d.state===tp?(d.state=Ss,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[u]):+u<e&&(d.state=Ss,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[u])}if(vs(function(){n.state===_s&&(n.state=tp,n.timer.restart(s,n.delay,n.time),s(l))}),n.state=gu,n.on.call("start",t,t.__data__,n.index,n.group),n.state===gu){for(n.state=_s,i=new Array(f=n.tween.length),u=0,h=-1;u<f;++u)(d=n.tween[u].value.call(t,t.__data__,n.index,n.group))&&(i[++h]=d);i.length=h+1}}function s(l){for(var u=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=mu,1),h=-1,f=i.length;++h<f;)i[h].call(t,u);n.state===mu&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){n.state=Ss,n.timer.stop(),delete r[e];for(var l in r)return;delete t.__transition}}function $n(t,e){var n=t.__transition,r,i,o=!0,a;if(n){e=e==null?null:e+"";for(a in n){if((r=n[a]).name!==e){o=!1;continue}i=r.state>gu&&r.state<mu,r.state=Ss,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[a]}o&&delete t.__transition}}function H3(t){return this.each(function(){$n(this,t)})}function W3(t,e){var n,r;return function(){var i=vn(this,t),o=i.tween;if(o!==n){r=n=o;for(var a=0,s=r.length;a<s;++a)if(r[a].name===e){r=r.slice(),r.splice(a,1);break}}i.tween=r}}function j3(t,e,n){var r,i;if(typeof n!="function")throw new Error;return function(){var o=vn(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var s={name:e,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===e){i[c]=s;break}c===l&&i.push(s)}o.tween=i}}function X3(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=ln(this.node(),n).tween,i=0,o=r.length,a;i<o;++i)if((a=r[i]).name===t)return a.value;return null}return this.each((e==null?W3:j3)(n,t,e))}function bu(t,e,n){var r=t._id;return t.each(function(){var i=vn(this,r);(i.value||(i.value={}))[e]=n.apply(this,arguments)}),function(i){return ln(i,r).value[e]}}function np(t,e){var n;return(typeof e=="number"?Fe:e instanceof mn?mi:(n=mn(e))?(e=n,mi):gs)(t,e)}function G3(t){return function(){this.removeAttribute(t)}}function V3(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Z3(t,e,n){var r,i=n+"",o;return function(){var a=this.getAttribute(t);return a===i?null:a===r?o:o=e(r=a,n)}}function K3(t,e,n){var r,i=n+"",o;return function(){var a=this.getAttributeNS(t.space,t.local);return a===i?null:a===r?o:o=e(r=a,n)}}function Q3(t,e,n){var r,i,o;return function(){var a,s=n(this),c;return s==null?void this.removeAttribute(t):(a=this.getAttribute(t),c=s+"",a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s)))}}function J3(t,e,n){var r,i,o;return function(){var a,s=n(this),c;return s==null?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local),c=s+"",a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s)))}}function t5(t,e){var n=li(t),r=n==="transform"?iu:np;return this.attrTween(t,typeof e=="function"?(n.local?J3:Q3)(n,r,bu(this,"attr."+t,e)):e==null?(n.local?V3:G3)(n):(n.local?K3:Z3)(n,r,e))}function e5(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function n5(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function r5(t,e){var n,r;function i(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&n5(t,o)),n}return i._value=e,i}function i5(t,e){var n,r;function i(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&e5(t,o)),n}return i._value=e,i}function o5(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=li(t);return this.tween(n,(r.local?r5:i5)(r,e))}function a5(t,e){return function(){yu(this,t).delay=+e.apply(this,arguments)}}function s5(t,e){return e=+e,function(){yu(this,t).delay=e}}function l5(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?a5:s5)(e,t)):ln(this.node(),e).delay}function c5(t,e){return function(){vn(this,t).duration=+e.apply(this,arguments)}}function u5(t,e){return e=+e,function(){vn(this,t).duration=e}}function f5(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?c5:u5)(e,t)):ln(this.node(),e).duration}function h5(t,e){if(typeof e!="function")throw new Error;return function(){vn(this,t).ease=e}}function d5(t){var e=this._id;return arguments.length?this.each(h5(e,t)):ln(this.node(),e).ease}function p5(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;vn(this,t).ease=n}}function g5(t){if(typeof t!="function")throw new Error;return this.each(p5(this._id,t))}function m5(t){typeof t!="function"&&(t=os(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=[],c,l=0;l<a;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&s.push(c);return new bn(r,this._parents,this._name,this._id)}function y5(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=new Array(r),s=0;s<o;++s)for(var c=e[s],l=n[s],u=c.length,h=a[s]=new Array(u),f,d=0;d<u;++d)(f=c[d]||l[d])&&(h[d]=f);for(;s<r;++s)a[s]=e[s];return new bn(a,this._parents,this._name,this._id)}function b5(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function v5(t,e,n){var r,i,o=b5(e)?yu:vn;return function(){var a=o(this,t),s=a.on;s!==r&&(i=(r=s).copy()).on(e,n),a.on=i}}function w5(t,e){var n=this._id;return arguments.length<2?ln(this.node(),n).on.on(t):this.each(v5(n,t,e))}function x5(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function _5(){return this.on("end.remove",x5(this._id))}function S5(t){var e=this._name,n=this._id;typeof t!="function"&&(t=lo(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var s=r[a],c=s.length,l=o[a]=new Array(c),u,h,f=0;f<c;++f)(u=s[f])&&(h=t.call(u,u.__data__,f,s))&&("__data__"in u&&(h.__data__=u.__data__),l[f]=h,ks(l[f],e,n,f,l,ln(u,n)));return new bn(o,this._parents,e,n)}function k5(t){var e=this._name,n=this._id;typeof t!="function"&&(t=is(t));for(var r=this._groups,i=r.length,o=[],a=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,h=0;h<l;++h)if(u=c[h]){for(var f=t.call(u,u.__data__,h,c),d,m=ln(u,n),p=0,g=f.length;p<g;++p)(d=f[p])&&ks(d,e,n,p,f,m);o.push(f),a.push(u)}return new bn(o,a,e,n)}var A5=ir.prototype.constructor;function E5(){return new A5(this._groups,this._parents)}function M5(t,e){var n,r,i;return function(){var o=rr(this,t),a=(this.style.removeProperty(t),rr(this,t));return o===a?null:o===n&&a===r?i:i=e(n=o,r=a)}}function rp(t){return function(){this.style.removeProperty(t)}}function C5(t,e,n){var r,i=n+"",o;return function(){var a=rr(this,t);return a===i?null:a===r?o:o=e(r=a,n)}}function F5(t,e,n){var r,i,o;return function(){var a=rr(this,t),s=n(this),c=s+"";return s==null&&(c=s=(this.style.removeProperty(t),rr(this,t))),a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s))}}function T5(t,e){var n,r,i,o="style."+e,a="end."+o,s;return function(){var c=vn(this,t),l=c.on,u=c.value[o]==null?s||(s=rp(e)):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(a,i=u),c.on=r}}function O5(t,e,n){var r=(t+="")=="transform"?ru:np;return e==null?this.styleTween(t,M5(t,r)).on("end.style."+t,rp(t)):typeof e=="function"?this.styleTween(t,F5(t,r,bu(this,"style."+t,e))).each(T5(this._id,t)):this.styleTween(t,C5(t,r,e),n).on("end.style."+t,null)}function B5(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function D5(t,e,n){var r,i;function o(){var a=e.apply(this,arguments);return a!==i&&(r=(i=a)&&B5(t,a,n)),r}return o._value=e,o}function $5(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,D5(t,e,n??""))}function z5(t){return function(){this.textContent=t}}function N5(t){return function(){var e=t(this);this.textContent=e??""}}function R5(t){return this.tween("text",typeof t=="function"?N5(bu(this,"text",t)):z5(t==null?"":t+""))}function P5(t){return function(e){this.textContent=t.call(this,e)}}function I5(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&P5(i)),e}return r._value=t,r}function L5(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,I5(t))}function q5(){for(var t=this._name,e=this._id,n=op(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a=r[o],s=a.length,c,l=0;l<s;++l)if(c=a[l]){var u=ln(c,e);ks(c,t,n,l,a,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new bn(r,this._parents,t,n)}function Y5(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(o,a){var s={value:a},c={value:function(){--i===0&&o()}};n.each(function(){var l=vn(this,r),u=l.on;u!==t&&(e=(t=u).copy(),e._.cancel.push(s),e._.interrupt.push(s),e._.end.push(c)),l.on=e}),i===0&&o()})}var U5=0;function bn(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function ip(t){return ir().transition(t)}function op(){return++U5}var Dn=ir.prototype;bn.prototype=ip.prototype={constructor:bn,select:S5,selectAll:k5,selectChild:Dn.selectChild,selectChildren:Dn.selectChildren,filter:m5,merge:y5,selection:E5,transition:q5,call:Dn.call,nodes:Dn.nodes,node:Dn.node,size:Dn.size,empty:Dn.empty,each:Dn.each,on:w5,attr:t5,attrTween:o5,style:O5,styleTween:$5,text:R5,textTween:L5,remove:_5,tween:X3,delay:l5,duration:f5,ease:d5,easeVarying:g5,end:Y5,[Symbol.iterator]:Dn[Symbol.iterator]};var H5={time:null,delay:0,duration:250,ease:cu};function W5(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function j5(t){var e,n;t instanceof bn?(e=t._id,t=t._name):(e=op(),(n=H5).time=bi(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a=r[o],s=a.length,c,l=0;l<s;++l)(c=a[l])&&ks(c,t,e,l,a,n||W5(c,e));return new bn(r,this._parents,t,e)}ir.prototype.interrupt=H3;ir.prototype.transition=j5;var X5=[null];function G5(t,e){var n=t.__transition,r,i;if(n){e=e==null?null:e+"";for(i in n)if((r=n[i]).state>pu&&r.name===e)return new bn([[t]],X5,e,+i)}return null}var vu=t=>()=>t;function V5(t,{sourceEvent:e,target:n,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function Z5(t){t.stopImmediatePropagation()}function wu(t){t.preventDefault(),t.stopImmediatePropagation()}var ap={name:"drag"},xu={name:"space"},xi={name:"handle"},_i={name:"center"},{abs:sp,max:ce,min:ue}=Math;function lp(t){return[+t[0],+t[1]]}function Su(t){return[lp(t[0]),lp(t[1])]}var As={name:"x",handles:["w","e"].map(ko),input:function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Es={name:"y",handles:["n","s"].map(ko),input:function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},K5={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(ko),input:function(t){return t==null?null:Su(t)},output:function(t){return t}},zn={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},cp={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},up={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Q5={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},J5={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function ko(t){return{type:t}}function t_(t){return!t.ctrlKey&&!t.button}function e_(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function n_(){return navigator.maxTouchPoints||"ontouchstart"in this}function _u(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function r_(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function i_(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function o_(){return ku(As)}function a_(){return ku(Es)}function s_(){return ku(K5)}function ku(t){var e=e_,n=t_,r=n_,i=!0,o=Ye("start","brush","end"),a=6,s;function c(g){var y=g.property("__brush",p).selectAll(".overlay").data([ko("overlay")]);y.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",zn.overlay).merge(y).each(function(){var b=_u(this).extent;Xt(this).attr("x",b[0][0]).attr("y",b[0][1]).attr("width",b[1][0]-b[0][0]).attr("height",b[1][1]-b[0][1])}),g.selectAll(".selection").data([ko("selection")]).enter().append("rect").attr("class","selection").attr("cursor",zn.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var w=g.selectAll(".handle").data(t.handles,function(b){return b.type});w.exit().remove(),w.enter().append("rect").attr("class",function(b){return"handle handle--"+b.type}).attr("cursor",function(b){return zn[b.type]}),g.each(l).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",f).filter(r).on("touchstart.brush",f).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}c.move=function(g,y,w){g.tween?g.on("start.brush",function(b){u(this,arguments).beforestart().start(b)}).on("interrupt.brush end.brush",function(b){u(this,arguments).end(b)}).tween("brush",function(){var b=this,v=b.__brush,_=u(b,arguments),S=v.selection,k=t.input(typeof y=="function"?y.apply(this,arguments):y,v.extent),C=yn(S,k);function F(A){v.selection=A===1&&k===null?null:C(A),l.call(b),_.brush()}return S!==null&&k!==null?F:F(1)}):g.each(function(){var b=this,v=arguments,_=b.__brush,S=t.input(typeof y=="function"?y.apply(b,v):y,_.extent),k=u(b,v).beforestart();$n(b),_.selection=S===null?null:S,l.call(b),k.start(w).brush(w).end(w)})},c.clear=function(g,y){c.move(g,null,y)};function l(){var g=Xt(this),y=_u(this).selection;y?(g.selectAll(".selection").style("display",null).attr("x",y[0][0]).attr("y",y[0][1]).attr("width",y[1][0]-y[0][0]).attr("height",y[1][1]-y[0][1]),g.selectAll(".handle").style("display",null).attr("x",function(w){return w.type[w.type.length-1]==="e"?y[1][0]-a/2:y[0][0]-a/2}).attr("y",function(w){return w.type[0]==="s"?y[1][1]-a/2:y[0][1]-a/2}).attr("width",function(w){return w.type==="n"||w.type==="s"?y[1][0]-y[0][0]+a:a}).attr("height",function(w){return w.type==="e"||w.type==="w"?y[1][1]-y[0][1]+a:a})):g.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function u(g,y,w){var b=g.__brush.emitter;return b&&(!w||!b.clean)?b:new h(g,y,w)}function h(g,y,w){this.that=g,this.args=y,this.state=g.__brush,this.active=0,this.clean=w}h.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(g,y){return this.starting?(this.starting=!1,this.emit("start",g,y)):this.emit("brush",g),this},brush:function(g,y){return this.emit("brush",g,y),this},end:function(g,y){return--this.active===0&&(delete this.state.emitter,this.emit("end",g,y)),this},emit:function(g,y,w){var b=Xt(this.that).datum();o.call(g,this.that,new V5(g,{sourceEvent:y,target:c,selection:t.output(this.state.selection),mode:w,dispatch:o}),b)}};function f(g){if(s&&!g.touches||!n.apply(this,arguments))return;var y=this,w=g.target.__data__.type,b=(i&&g.metaKey?w="overlay":w)==="selection"?ap:i&&g.altKey?_i:xi,v=t===Es?null:Q5[w],_=t===As?null:J5[w],S=_u(y),k=S.extent,C=S.selection,F=k[0][0],A,E,D=k[0][1],$,M,T=k[1][0],B,N,L=k[1][1],q,U,Z=0,Q=0,j,H=v&&_&&i&&g.shiftKey,W,J,K=Array.from(g.touches||[g],st=>{let St=st.identifier;return st=le(st,y),st.point0=st.slice(),st.identifier=St,st});$n(y);var ht=u(y,arguments,!0).beforestart();if(w==="overlay"){C&&(j=!0);let st=[K[0],K[1]||K[0]];S.selection=C=[[A=t===Es?F:ue(st[0][0],st[1][0]),$=t===As?D:ue(st[0][1],st[1][1])],[B=t===Es?T:ce(st[0][0],st[1][0]),q=t===As?L:ce(st[0][1],st[1][1])]],K.length>1&&vt(g)}else A=C[0][0],$=C[0][1],B=C[1][0],q=C[1][1];E=A,M=$,N=B,U=q;var G=Xt(y).attr("pointer-events","none"),tt=G.selectAll(".overlay").attr("cursor",zn[w]);if(g.touches)ht.moved=X,ht.ended=yt;else{var ot=Xt(g.view).on("mousemove.brush",X,!0).on("mouseup.brush",yt,!0);i&&ot.on("keydown.brush",Tt,!0).on("keyup.brush",Mt,!0),ui(g.view)}l.call(y),ht.start(g,b.name);function X(st){for(let St of st.changedTouches||[st])for(let ne of K)ne.identifier===St.identifier&&(ne.cur=le(St,y));if(H&&!W&&!J&&K.length===1){let St=K[0];sp(St.cur[0]-St[0])>sp(St.cur[1]-St[1])?J=!0:W=!0}for(let St of K)St.cur&&(St[0]=St.cur[0],St[1]=St.cur[1]);j=!0,wu(st),vt(st)}function vt(st){let St=K[0],ne=St.point0;var Zt;switch(Z=St[0]-ne[0],Q=St[1]-ne[1],b){case xu:case ap:{v&&(Z=ce(F-A,ue(T-B,Z)),E=A+Z,N=B+Z),_&&(Q=ce(D-$,ue(L-q,Q)),M=$+Q,U=q+Q);break}case xi:{K[1]?(v&&(E=ce(F,ue(T,K[0][0])),N=ce(F,ue(T,K[1][0])),v=1),_&&(M=ce(D,ue(L,K[0][1])),U=ce(D,ue(L,K[1][1])),_=1)):(v<0?(Z=ce(F-A,ue(T-A,Z)),E=A+Z,N=B):v>0&&(Z=ce(F-B,ue(T-B,Z)),E=A,N=B+Z),_<0?(Q=ce(D-$,ue(L-$,Q)),M=$+Q,U=q):_>0&&(Q=ce(D-q,ue(L-q,Q)),M=$,U=q+Q));break}case _i:{v&&(E=ce(F,ue(T,A-Z*v)),N=ce(F,ue(T,B+Z*v))),_&&(M=ce(D,ue(L,$-Q*_)),U=ce(D,ue(L,q+Q*_)));break}}N<E&&(v*=-1,Zt=A,A=B,B=Zt,Zt=E,E=N,N=Zt,w in cp&&tt.attr("cursor",zn[w=cp[w]])),U<M&&(_*=-1,Zt=$,$=q,q=Zt,Zt=M,M=U,U=Zt,w in up&&tt.attr("cursor",zn[w=up[w]])),S.selection&&(C=S.selection),W&&(E=C[0][0],N=C[1][0]),J&&(M=C[0][1],U=C[1][1]),(C[0][0]!==E||C[0][1]!==M||C[1][0]!==N||C[1][1]!==U)&&(S.selection=[[E,M],[N,U]],l.call(y),ht.brush(st,b.name))}function yt(st){if(Z5(st),st.touches){if(st.touches.length)return;s&&clearTimeout(s),s=setTimeout(function(){s=null},500)}else fi(st.view,j),ot.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);G.attr("pointer-events","all"),tt.attr("cursor",zn.overlay),S.selection&&(C=S.selection),r_(C)&&(S.selection=null,l.call(y)),ht.end(st,b.name)}function Tt(st){switch(st.keyCode){case 16:{H=v&&_;break}case 18:{b===xi&&(v&&(B=N-Z*v,A=E+Z*v),_&&(q=U-Q*_,$=M+Q*_),b=_i,vt(st));break}case 32:{(b===xi||b===_i)&&(v<0?B=N-Z:v>0&&(A=E-Z),_<0?q=U-Q:_>0&&($=M-Q),b=xu,tt.attr("cursor",zn.selection),vt(st));break}default:return}wu(st)}function Mt(st){switch(st.keyCode){case 16:{H&&(W=J=H=!1,vt(st));break}case 18:{b===_i&&(v<0?B=N:v>0&&(A=E),_<0?q=U:_>0&&($=M),b=xi,vt(st));break}case 32:{b===xu&&(st.altKey?(v&&(B=N-Z*v,A=E+Z*v),_&&(q=U-Q*_,$=M+Q*_),b=_i):(v<0?B=N:v>0&&(A=E),_<0?q=U:_>0&&($=M),b=xi),tt.attr("cursor",zn[w]),vt(st));break}default:return}wu(st)}}function d(g){u(this,arguments).moved(g)}function m(g){u(this,arguments).ended(g)}function p(){var g=this.__brush||{selection:null};return g.extent=Su(e.apply(this,arguments)),g.dim=t,g}return c.extent=function(g){return arguments.length?(e=typeof g=="function"?g:vu(Su(g)),c):e},c.filter=function(g){return arguments.length?(n=typeof g=="function"?g:vu(!!g),c):n},c.touchable=function(g){return arguments.length?(r=typeof g=="function"?g:vu(!!g),c):r},c.handleSize=function(g){return arguments.length?(a=+g,c):a},c.keyModifiers=function(g){return arguments.length?(i=!!g,c):i},c.on=function(){var g=o.on.apply(o,arguments);return g===o?c:g},c}var Ao=Math.PI,Au=2*Ao,Fr=1e-6,l_=Au-Fr;function fp(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function c_(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return fp;let n=10**e;return function(r){this._+=r[0];for(let i=1,o=r.length;i<o;++i)this._+=Math.round(arguments[i]*n)/n+r[i]}}function hp(t,e,n,r){return t===n&&e===r}function u_(t){let e=Math.floor(t);if(!(e<=15))return hp;let n=10**e,r=function(i){return Math.round(i*n)};return function(i,o,a,s){return r(i)===r(a)&&r(o)===r(s)}}var lr=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?fp:c_(e),this._equal=e==null?hp:u_(e)}moveTo(e,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,n){this._append`L${this._x1=+e},${this._y1=+n}`}quadraticCurveTo(e,n,r,i){this._append`Q${+e},${+n},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(e,n,r,i,o,a){this._append`C${+e},${+n},${+r},${+i},${this._x1=+o},${this._y1=+a}`}arcTo(e,n,r,i,o){if(e=+e,n=+n,r=+r,i=+i,o=+o,o<0)throw new Error(`negative radius: ${o}`);let a=this._x1,s=this._y1,c=r-e,l=i-n,u=a-e,h=s-n,f=u*u+h*h;if(this._x1===null)this._append`M${this._x1=e},${this._y1=n}`;else if(f>Fr)if(!(Math.abs(h*c-l*u)>Fr)||!o)this._append`L${this._x1=e},${this._y1=n}`;else{let d=r-a,m=i-s,p=c*c+l*l,g=d*d+m*m,y=Math.sqrt(p),w=Math.sqrt(f),b=o*Math.tan((Ao-Math.acos((p+f-g)/(2*y*w)))/2),v=b/w,_=b/y;Math.abs(v-1)>Fr&&this._append`L${e+v*u},${n+v*h}`,this._append`A${o},${o},0,0,${+(h*d>u*m)},${this._x1=e+_*c},${this._y1=n+_*l}`}}arc(e,n,r,i,o,a){if(e=+e,n=+n,r=+r,a=!!a,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(i),c=r*Math.sin(i),l=e+s,u=n+c,h=1^a,f=a?i-o:o-i;if(this._x1===null?this._append`M${l},${u}`:(Math.abs(this._x1-l)>Fr||Math.abs(this._y1-u)>Fr)&&this._append`L${l},${u}`,!!r){if(f<0&&(f=f%Au+Au),f>l_)this._append`A${r},${r},0,1,${h},${e-s},${n-c}A${r},${r},0,1,${h},${this._x1=l},${this._y1=u}`;else if(f>Fr){let d=e+r*Math.cos(o),m=n+r*Math.sin(o);if(f>=Ao&&this._equal(l,u,d,m)){f/=2;let p=i+f;this._append`A${r},${r},0,${+(f>=Ao)},${h},${e+r*Math.cos(p)},${n+r*Math.sin(p)}`}this._append`A${r},${r},0,${+(f>=Ao)},${h},${this._x1=d},${this._y1=m}`}}}rect(e,n,r,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}};function Ms(){return new lr}Ms.prototype=lr.prototype;function f_(t=3){return new lr(+t)}var dp=Math.abs,Si=Math.cos,ki=Math.sin,yp=Math.PI,Cs=yp/2,pp=yp*2,gp=Math.max,Eu=1e-12;function Mu(t,e){return Array.from({length:e-t},(n,r)=>t+r)}function h_(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}function d_(){return Cu(!1,!1)}function p_(){return Cu(!1,!0)}function g_(){return Cu(!0,!1)}function Cu(t,e){var n=0,r=null,i=null,o=null;function a(s){var c=s.length,l=new Array(c),u=Mu(0,c),h=new Array(c*c),f=new Array(c),d=0,m;s=Float64Array.from({length:c*c},e?(p,g)=>s[g%c][g/c|0]:(p,g)=>s[g/c|0][g%c]);for(let p=0;p<c;++p){let g=0;for(let y=0;y<c;++y)g+=s[p*c+y]+t*s[y*c+p];d+=l[p]=g}d=gp(0,pp-n*c)/d,m=d?n:pp/c;{let p=0;r&&u.sort((g,y)=>r(l[g],l[y]));for(let g of u){let y=p;if(t){let w=Mu(~c+1,c).filter(b=>b<0?s[~b*c+g]:s[g*c+b]);i&&w.sort((b,v)=>i(b<0?-s[~b*c+g]:s[g*c+b],v<0?-s[~v*c+g]:s[g*c+v]));for(let b of w)if(b<0){let v=h[~b*c+g]||(h[~b*c+g]={source:null,target:null});v.target={index:g,startAngle:p,endAngle:p+=s[~b*c+g]*d,value:s[~b*c+g]}}else{let v=h[g*c+b]||(h[g*c+b]={source:null,target:null});v.source={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]}}f[g]={index:g,startAngle:y,endAngle:p,value:l[g]}}else{let w=Mu(0,c).filter(b=>s[g*c+b]||s[b*c+g]);i&&w.sort((b,v)=>i(s[g*c+b],s[g*c+v]));for(let b of w){let v;if(g<b?(v=h[g*c+b]||(h[g*c+b]={source:null,target:null}),v.source={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]}):(v=h[b*c+g]||(h[b*c+g]={source:null,target:null}),v.target={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]},g===b&&(v.source=v.target)),v.source&&v.target&&v.source.value<v.target.value){let _=v.source;v.source=v.target,v.target=_}}f[g]={index:g,startAngle:y,endAngle:p,value:l[g]}}p+=m}}return h=Object.values(h),h.groups=f,o?h.sort(o):h}return a.padAngle=function(s){return arguments.length?(n=gp(0,s),a):n},a.sortGroups=function(s){return arguments.length?(r=s,a):r},a.sortSubgroups=function(s){return arguments.length?(i=s,a):i},a.sortChords=function(s){return arguments.length?(s==null?o=null:(o=h_(s))._=s,a):o&&o._},a}var m_=Array.prototype.slice;function Tr(t){return function(){return t}}function y_(t){return t.source}function b_(t){return t.target}function mp(t){return t.radius}function v_(t){return t.startAngle}function w_(t){return t.endAngle}function x_(){return 0}function __(){return 10}function bp(t){var e=y_,n=b_,r=mp,i=mp,o=v_,a=w_,s=x_,c=null;function l(){var u,h=e.apply(this,arguments),f=n.apply(this,arguments),d=s.apply(this,arguments)/2,m=m_.call(arguments),p=+r.apply(this,(m[0]=h,m)),g=o.apply(this,m)-Cs,y=a.apply(this,m)-Cs,w=+i.apply(this,(m[0]=f,m)),b=o.apply(this,m)-Cs,v=a.apply(this,m)-Cs;if(c||(c=u=Ms()),d>Eu&&(dp(y-g)>d*2+Eu?y>g?(g+=d,y-=d):(g-=d,y+=d):g=y=(g+y)/2,dp(v-b)>d*2+Eu?v>b?(b+=d,v-=d):(b-=d,v+=d):b=v=(b+v)/2),c.moveTo(p*Si(g),p*ki(g)),c.arc(0,0,p,g,y),g!==b||y!==v)if(t){var _=+t.apply(this,arguments),S=w-_,k=(b+v)/2;c.quadraticCurveTo(0,0,S*Si(b),S*ki(b)),c.lineTo(w*Si(k),w*ki(k)),c.lineTo(S*Si(v),S*ki(v))}else c.quadraticCurveTo(0,0,w*Si(b),w*ki(b)),c.arc(0,0,w,b,v);if(c.quadraticCurveTo(0,0,p*Si(g),p*ki(g)),c.closePath(),u)return c=null,u+""||null}return t&&(l.headRadius=function(u){return arguments.length?(t=typeof u=="function"?u:Tr(+u),l):t}),l.radius=function(u){return arguments.length?(r=i=typeof u=="function"?u:Tr(+u),l):r},l.sourceRadius=function(u){return arguments.length?(r=typeof u=="function"?u:Tr(+u),l):r},l.targetRadius=function(u){return arguments.length?(i=typeof u=="function"?u:Tr(+u),l):i},l.startAngle=function(u){return arguments.length?(o=typeof u=="function"?u:Tr(+u),l):o},l.endAngle=function(u){return arguments.length?(a=typeof u=="function"?u:Tr(+u),l):a},l.padAngle=function(u){return arguments.length?(s=typeof u=="function"?u:Tr(+u),l):s},l.source=function(u){return arguments.length?(e=u,l):e},l.target=function(u){return arguments.length?(n=u,l):n},l.context=function(u){return arguments.length?(c=u??null,l):c},l}function S_(){return bp()}function k_(){return bp(__)}var A_=Array.prototype,wp=A_.slice;function E_(t,e){return t-e}function M_(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}var cr=t=>()=>t;function C_(t,e){for(var n=-1,r=e.length,i;++n<r;)if(i=F_(t,e[n]))return i;return 0}function F_(t,e){for(var n=e[0],r=e[1],i=-1,o=0,a=t.length,s=a-1;o<a;s=o++){var c=t[o],l=c[0],u=c[1],h=t[s],f=h[0],d=h[1];if(T_(c,h,e))return 0;u>r!=d>r&&n<(f-l)*(r-u)/(d-u)+l&&(i=-i)}return i}function T_(t,e,n){var r;return O_(t,e,n)&&B_(t[r=+(t[0]===e[0])],n[r],e[r])}function O_(t,e,n){return(e[0]-t[0])*(n[1]-t[1])===(n[0]-t[0])*(e[1]-t[1])}function B_(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}function D_(){}var Nn=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function Tu(){var t=1,e=1,n=Va,r=c;function i(l){var u=n(l);if(Array.isArray(u))u=u.slice().sort(E_);else{let h=ei(l,$_);for(u=Bn(...Ga(h[0],h[1],u),u);u[u.length-1]>=h[1];)u.pop();for(;u[1]<h[0];)u.shift()}return u.map(h=>o(l,h))}function o(l,u){let h=u==null?NaN:+u;if(isNaN(h))throw new Error(`invalid value: ${u}`);var f=[],d=[];return a(l,h,function(m){r(m,l,h),M_(m)>0?f.push([m]):d.push(m)}),d.forEach(function(m){for(var p=0,g=f.length,y;p<g;++p)if(C_((y=f[p])[0],m)!==-1){y.push(m);return}}),{type:"MultiPolygon",value:u,coordinates:f}}function a(l,u,h){var f=new Array,d=new Array,m,p,g,y,w,b;for(m=p=-1,y=Or(l[0],u),Nn[y<<1].forEach(v);++m<t-1;)g=y,y=Or(l[m+1],u),Nn[g|y<<1].forEach(v);for(Nn[y<<0].forEach(v);++p<e-1;){for(m=-1,y=Or(l[p*t+t],u),w=Or(l[p*t],u),Nn[y<<1|w<<2].forEach(v);++m<t-1;)g=y,y=Or(l[p*t+t+m+1],u),b=w,w=Or(l[p*t+m+1],u),Nn[g|y<<1|w<<2|b<<3].forEach(v);Nn[y|w<<3].forEach(v)}for(m=-1,w=l[p*t]>=u,Nn[w<<2].forEach(v);++m<t-1;)b=w,w=Or(l[p*t+m+1],u),Nn[w<<2|b<<3].forEach(v);Nn[w<<3].forEach(v);function v(_){var S=[_[0][0]+m,_[0][1]+p],k=[_[1][0]+m,_[1][1]+p],C=s(S),F=s(k),A,E;(A=d[C])?(E=f[F])?(delete d[A.end],delete f[E.start],A===E?(A.ring.push(k),h(A.ring)):f[A.start]=d[E.end]={start:A.start,end:E.end,ring:A.ring.concat(E.ring)}):(delete d[A.end],A.ring.push(k),d[A.end=F]=A):(A=f[F])?(E=d[C])?(delete f[A.start],delete d[E.end],A===E?(A.ring.push(k),h(A.ring)):f[E.start]=d[A.end]={start:E.start,end:A.end,ring:E.ring.concat(A.ring)}):(delete f[A.start],A.ring.unshift(S),f[A.start=C]=A):f[C]=d[F]={start:C,end:F,ring:[S,k]}}}function s(l){return l[0]*2+l[1]*(t+1)*4}function c(l,u,h){l.forEach(function(f){var d=f[0],m=f[1],p=d|0,g=m|0,y=Fu(u[g*t+p]);d>0&&d<t&&p===d&&(f[0]=vp(d,Fu(u[g*t+p-1]),y,h)),m>0&&m<e&&g===m&&(f[1]=vp(m,Fu(u[(g-1)*t+p]),y,h))})}return i.contour=o,i.size=function(l){if(!arguments.length)return[t,e];var u=Math.floor(l[0]),h=Math.floor(l[1]);if(!(u>=0&&h>=0))throw new Error("invalid size");return t=u,e=h,i},i.thresholds=function(l){return arguments.length?(n=typeof l=="function"?l:Array.isArray(l)?cr(wp.call(l)):cr(l),i):n},i.smooth=function(l){return arguments.length?(r=l?c:D_,i):r===c},i}function $_(t){return isFinite(t)?t:NaN}function Or(t,e){return t==null?!1:+t>=e}function Fu(t){return t==null||isNaN(t=+t)?-1/0:t}function vp(t,e,n,r){let i=r-e,o=n-e,a=isFinite(i)||isFinite(o)?i/o:Math.sign(i)/Math.sign(o);return isNaN(a)?t:t+a-.5}function z_(t){return t[0]}function N_(t){return t[1]}function R_(){return 1}function P_(){var t=z_,e=N_,n=R_,r=960,i=500,o=20,a=2,s=o*3,c=r+s*2>>a,l=i+s*2>>a,u=cr(20);function h(w){var b=new Float32Array(c*l),v=Math.pow(2,-a),_=-1;for(let $ of w){var S=(t($,++_,w)+s)*v,k=(e($,_,w)+s)*v,C=+n($,_,w);if(C&&S>=0&&S<c&&k>=0&&k<l){var F=Math.floor(S),A=Math.floor(k),E=S-F-.5,D=k-A-.5;b[F+A*c]+=(1-E)*(1-D)*C,b[F+1+A*c]+=E*(1-D)*C,b[F+1+(A+1)*c]+=E*D*C,b[F+(A+1)*c]+=(1-E)*D*C}}return Fc({data:b,width:c,height:l},o*v),b}function f(w){var b=h(w),v=u(b),_=Math.pow(2,2*a);return Array.isArray(v)||(v=Bn(Number.MIN_VALUE,ii(b)/_,v)),Tu().size([c,l]).thresholds(v.map(S=>S*_))(b).map((S,k)=>(S.value=+v[k],d(S)))}f.contours=function(w){var b=h(w),v=Tu().size([c,l]),_=Math.pow(2,2*a),S=k=>{k=+k;var C=d(v.contour(b,k*_));return C.value=k,C};return Object.defineProperty(S,"max",{get:()=>ii(b)/_}),S};function d(w){return w.coordinates.forEach(m),w}function m(w){w.forEach(p)}function p(w){w.forEach(g)}function g(w){w[0]=w[0]*Math.pow(2,a)-s,w[1]=w[1]*Math.pow(2,a)-s}function y(){return s=o*3,c=r+s*2>>a,l=i+s*2>>a,f}return f.x=function(w){return arguments.length?(t=typeof w=="function"?w:cr(+w),f):t},f.y=function(w){return arguments.length?(e=typeof w=="function"?w:cr(+w),f):e},f.weight=function(w){return arguments.length?(n=typeof w=="function"?w:cr(+w),f):n},f.size=function(w){if(!arguments.length)return[r,i];var b=+w[0],v=+w[1];if(!(b>=0&&v>=0))throw new Error("invalid size");return r=b,i=v,y()},f.cellSize=function(w){if(!arguments.length)return 1<<a;if(!((w=+w)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(w)/Math.LN2),y()},f.thresholds=function(w){return arguments.length?(u=typeof w=="function"?w:Array.isArray(w)?cr(wp.call(w)):cr(w),f):u},f.bandwidth=function(w){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((w=+w)>=0))throw new Error("invalid bandwidth");return o=(Math.sqrt(4*w*w+1)-1)/2,y()},f}var Pn=11102230246251565e-32,fe=134217729,I_=(3+8*Pn)*Pn;function Ou(t,e,n,r,i){let o,a,s,c,l=e[0],u=r[0],h=0,f=0;u>l==u>-l?(o=l,l=e[++h]):(o=u,u=r[++f]);let d=0;if(h<t&&f<n)for(u>l==u>-l?(a=l+o,s=o-(a-l),l=e[++h]):(a=u+o,s=o-(a-u),u=r[++f]),o=a,s!==0&&(i[d++]=s);h<t&&f<n;)u>l==u>-l?(a=o+l,c=a-o,s=o-(a-c)+(l-c),l=e[++h]):(a=o+u,c=a-o,s=o-(a-c)+(u-c),u=r[++f]),o=a,s!==0&&(i[d++]=s);for(;h<t;)a=o+l,c=a-o,s=o-(a-c)+(l-c),l=e[++h],o=a,s!==0&&(i[d++]=s);for(;f<n;)a=o+u,c=a-o,s=o-(a-c)+(u-c),u=r[++f],o=a,s!==0&&(i[d++]=s);return(o!==0||d===0)&&(i[d++]=o),d}function L_(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}function V(t){return new Float64Array(t)}var q_=(3+16*Pn)*Pn,Y_=(2+12*Pn)*Pn,U_=(9+64*Pn)*Pn*Pn,Ai=V(4),xp=V(8),_p=V(12),Sp=V(16),be=V(4);function H_(t,e,n,r,i,o,a){let s,c,l,u,h,f,d,m,p,g,y,w,b,v,_,S,k,C,F=t-i,A=n-i,E=e-o,D=r-o;v=F*D,f=fe*F,d=f-(f-F),m=F-d,f=fe*D,p=f-(f-D),g=D-p,_=m*g-(v-d*p-m*p-d*g),S=E*A,f=fe*E,d=f-(f-E),m=E-d,f=fe*A,p=f-(f-A),g=A-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,Ai[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,Ai[1]=b-(y+h)+(h-S),C=w+y,h=C-w,Ai[2]=w-(C-h)+(y-h),Ai[3]=C;let $=L_(4,Ai),M=Y_*a;if($>=M||-$>=M||(h=t-F,s=t-(F+h)+(h-i),h=n-A,l=n-(A+h)+(h-i),h=e-E,c=e-(E+h)+(h-o),h=r-D,u=r-(D+h)+(h-o),s===0&&c===0&&l===0&&u===0)||(M=U_*a+I_*Math.abs($),$+=F*u+D*s-(E*l+A*c),$>=M||-$>=M))return $;v=s*D,f=fe*s,d=f-(f-s),m=s-d,f=fe*D,p=f-(f-D),g=D-p,_=m*g-(v-d*p-m*p-d*g),S=c*A,f=fe*c,d=f-(f-c),m=c-d,f=fe*A,p=f-(f-A),g=A-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,be[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let T=Ou(4,Ai,4,be,xp);v=F*u,f=fe*F,d=f-(f-F),m=F-d,f=fe*u,p=f-(f-u),g=u-p,_=m*g-(v-d*p-m*p-d*g),S=E*l,f=fe*E,d=f-(f-E),m=E-d,f=fe*l,p=f-(f-l),g=l-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,be[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let B=Ou(T,xp,4,be,_p);v=s*u,f=fe*s,d=f-(f-s),m=s-d,f=fe*u,p=f-(f-u),g=u-p,_=m*g-(v-d*p-m*p-d*g),S=c*l,f=fe*c,d=f-(f-c),m=c-d,f=fe*l,p=f-(f-l),g=l-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,be[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let N=Ou(B,_p,4,be,Sp);return Sp[N-1]}function Fs(t,e,n,r,i,o){let a=(e-o)*(n-i),s=(t-i)*(r-o),c=a-s,l=Math.abs(a+s);return Math.abs(c)>=q_*l?c:-H_(t,e,n,r,i,o,l)}V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(8);V(8);V(8);V(4);V(8);V(8);V(16);V(12);V(192);V(192);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(4);V(4);V(4);V(8);V(16);V(16);V(16);V(32);V(32);V(48);V(64);V(1152);V(1152);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(1152);V(1152);V(1152);V(1152);V(1152);V(2304);V(2304);V(3456);V(5760);V(8);V(8);V(8);V(16);V(24);V(48);V(48);V(96);V(192);V(384);V(384);V(384);V(768);V(96);V(96);V(96);V(1152);var kp=Math.pow(2,-52),Ts=new Uint32Array(512),Os=class t{static from(e,n=V_,r=Z_){let i=e.length,o=new Float64Array(i*2);for(let a=0;a<i;a++){let s=e[a];o[2*a]=n(s),o[2*a+1]=r(s)}return new t(o)}constructor(e){let n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;let r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.trianglesLen=0,this._cx=0,this._cy=0,this._hullStart=0,this.hull=this._triangles,this.triangles=this._triangles,this.halfedges=this._halfedges,this.update()}update(){let{coords:e,_hullPrev:n,_hullNext:r,_hullTri:i,_hullHash:o}=this,a=e.length>>1,s=1/0,c=1/0,l=-1/0,u=-1/0;for(let F=0;F<a;F++){let A=e[2*F],E=e[2*F+1];A<s&&(s=A),E<c&&(c=E),A>l&&(l=A),E>u&&(u=E),this._ids[F]=F}let h=(s+l)/2,f=(c+u)/2,d=0,m=0,p=0;for(let F=0,A=1/0;F<a;F++){let E=Bu(h,f,e[2*F],e[2*F+1]);E<A&&(d=F,A=E)}let g=e[2*d],y=e[2*d+1];for(let F=0,A=1/0;F<a;F++){if(F===d)continue;let E=Bu(g,y,e[2*F],e[2*F+1]);E<A&&E>0&&(m=F,A=E)}let w=e[2*m],b=e[2*m+1],v=1/0;for(let F=0;F<a;F++){if(F===d||F===m)continue;let A=X_(g,y,w,b,e[2*F],e[2*F+1]);A<v&&(p=F,v=A)}let _=e[2*p],S=e[2*p+1];if(v===1/0){for(let E=0;E<a;E++)this._dists[E]=e[2*E]-e[0]||e[2*E+1]-e[1];Mi(this._ids,this._dists,0,a-1);let F=new Uint32Array(a),A=0;for(let E=0,D=-1/0;E<a;E++){let $=this._ids[E],M=this._dists[$];M>D&&(F[A++]=$,D=M)}this.hull=F.subarray(0,A),this.triangles=new Uint32Array(0),this.halfedges=new Int32Array(0);return}if(Fs(g,y,w,b,_,S)<0){let F=m,A=w,E=b;m=p,w=_,b=S,p=F,_=A,S=E}let k=G_(g,y,w,b,_,S);this._cx=k.x,this._cy=k.y;for(let F=0;F<a;F++)this._dists[F]=Bu(e[2*F],e[2*F+1],k.x,k.y);Mi(this._ids,this._dists,0,a-1),this._hullStart=d;let C=3;r[d]=n[p]=m,r[m]=n[d]=p,r[p]=n[m]=d,i[d]=0,i[m]=1,i[p]=2,o.fill(-1),o[this._hashKey(g,y)]=d,o[this._hashKey(w,b)]=m,o[this._hashKey(_,S)]=p,this.trianglesLen=0,this._addTriangle(d,m,p,-1,-1,-1);for(let F=0,A=0,E=0;F<this._ids.length;F++){let D=this._ids[F],$=e[2*D],M=e[2*D+1];if(F>0&&Math.abs($-A)<=kp&&Math.abs(M-E)<=kp||(A=$,E=M,D===d||D===m||D===p))continue;let T=0;for(let U=0,Z=this._hashKey($,M);U<this._hashSize&&(T=o[(Z+U)%this._hashSize],!(T!==-1&&T!==r[T]));U++);T=n[T];let B=T,N;for(;N=r[B],Fs($,M,e[2*B],e[2*B+1],e[2*N],e[2*N+1])>=0;)if(B=N,B===T){B=-1;break}if(B===-1)continue;let L=this._addTriangle(B,D,r[B],-1,-1,i[B]);i[D]=this._legalize(L+2),i[B]=L,C++;let q=r[B];for(;N=r[q],Fs($,M,e[2*q],e[2*q+1],e[2*N],e[2*N+1])<0;)L=this._addTriangle(q,D,N,i[D],-1,i[q]),i[D]=this._legalize(L+2),r[q]=q,C--,q=N;if(B===T)for(;N=n[B],Fs($,M,e[2*N],e[2*N+1],e[2*B],e[2*B+1])<0;)L=this._addTriangle(N,D,B,-1,i[B],i[N]),this._legalize(L+2),i[N]=L,r[B]=B,C--,B=N;this._hullStart=n[D]=B,r[B]=n[q]=D,r[D]=q,o[this._hashKey($,M)]=D,o[this._hashKey(e[2*B],e[2*B+1])]=B}this.hull=new Uint32Array(C);for(let F=0,A=this._hullStart;F<C;F++)this.hull[F]=A,A=r[A];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(W_(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){let{_triangles:n,_halfedges:r,coords:i}=this,o=0,a=0;for(;;){let s=r[e],c=e-e%3;if(a=c+(e+2)%3,s===-1){if(o===0)break;e=Ts[--o];continue}let l=s-s%3,u=c+(e+1)%3,h=l+(s+2)%3,f=n[a],d=n[e],m=n[u],p=n[h];if(j_(i[2*f],i[2*f+1],i[2*d],i[2*d+1],i[2*m],i[2*m+1],i[2*p],i[2*p+1])){n[e]=p,n[s]=f;let y=r[h];if(y===-1){let b=this._hullStart;do{if(this._hullTri[b]===h){this._hullTri[b]=e;break}b=this._hullPrev[b]}while(b!==this._hullStart)}this._link(e,y),this._link(s,r[a]),this._link(a,h);let w=l+(s+1)%3;o<Ts.length&&(Ts[o++]=w)}else{if(o===0)break;e=Ts[--o]}}return a}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,i,o,a){let s=this.trianglesLen;return this._triangles[s]=e,this._triangles[s+1]=n,this._triangles[s+2]=r,this._link(s,i),this._link(s+1,o),this._link(s+2,a),this.trianglesLen+=3,s}};function W_(t,e){let n=t/(Math.abs(t)+Math.abs(e));return(e>0?3-n:1+n)/4}function Bu(t,e,n,r){let i=t-n,o=e-r;return i*i+o*o}function j_(t,e,n,r,i,o,a,s){let c=t-a,l=e-s,u=n-a,h=r-s,f=i-a,d=o-s,m=c*c+l*l,p=u*u+h*h,g=f*f+d*d;return c*(h*g-p*d)-l*(u*g-p*f)+m*(u*d-h*f)<0}function X_(t,e,n,r,i,o){let a=n-t,s=r-e,c=i-t,l=o-e,u=a*a+s*s,h=c*c+l*l,f=.5/(a*l-s*c),d=(l*u-s*h)*f,m=(a*h-c*u)*f;return d*d+m*m}function G_(t,e,n,r,i,o){let a=n-t,s=r-e,c=i-t,l=o-e,u=a*a+s*s,h=c*c+l*l,f=.5/(a*l-s*c),d=t+(l*u-s*h)*f,m=e+(a*h-c*u)*f;return{x:d,y:m}}function Mi(t,e,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){let o=t[i],a=e[o],s=i-1;for(;s>=n&&e[t[s]]>a;)t[s+1]=t[s--];t[s+1]=o}else{let i=n+r>>1,o=n+1,a=r;Eo(t,i,o),e[t[n]]>e[t[r]]&&Eo(t,n,r),e[t[o]]>e[t[r]]&&Eo(t,o,r),e[t[n]]>e[t[o]]&&Eo(t,n,o);let s=t[o],c=e[s];for(;;){do o++;while(e[t[o]]<c);do a--;while(e[t[a]]>c);if(a<o)break;Eo(t,o,a)}t[n+1]=t[a],t[a]=s,r-o+1>=a-n?(Mi(t,e,o,r),Mi(t,e,n,a-1)):(Mi(t,e,n,a-1),Mi(t,e,o,r))}}function Eo(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}function V_(t){return t[0]}function Z_(t){return t[1]}var Ap=1e-6,Rn=class{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;let i=e+r,o=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${o}`:(Math.abs(this._x1-i)>Ap||Math.abs(this._y1-o)>Ap)&&(this._+="L"+i+","+o),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=i},${this._y1=o}`)}rect(e,n,r,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+i}h${-r}Z`}value(){return this._||null}},Mo=class{constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}},Bs=class{constructor(e,[n,r,i,o]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((o=+o)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=i,this.xmin=n,this.ymax=o,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){let{delaunay:{points:e,hull:n,triangles:r},vectors:i}=this,o,a,s=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let p=0,g=0,y=r.length,w,b;p<y;p+=3,g+=2){let v=r[p]*2,_=r[p+1]*2,S=r[p+2]*2,k=e[v],C=e[v+1],F=e[_],A=e[_+1],E=e[S],D=e[S+1],$=F-k,M=A-C,T=E-k,B=D-C,N=($*B-M*T)*2;if(Math.abs(N)<1e-9){if(o===void 0){o=a=0;for(let q of n)o+=e[q*2],a+=e[q*2+1];o/=n.length,a/=n.length}let L=1e9*Math.sign((o-k)*B-(a-C)*T);w=(k+E)/2-L*B,b=(C+D)/2+L*T}else{let L=1/N,q=$*$+M*M,U=T*T+B*B;w=k+(B*q-M*U)*L,b=C+($*U-T*q)*L}s[g]=w,s[g+1]=b}let c=n[n.length-1],l,u=c*4,h,f=e[2*c],d,m=e[2*c+1];i.fill(0);for(let p=0;p<n.length;++p)c=n[p],l=u,h=f,d=m,u=c*4,f=e[2*c],m=e[2*c+1],i[l+2]=i[u]=d-m,i[l+3]=i[u+1]=f-h}render(e){let n=e==null?e=new Rn:void 0,{delaunay:{halfedges:r,inedges:i,hull:o},circumcenters:a,vectors:s}=this;if(o.length<=1)return null;for(let u=0,h=r.length;u<h;++u){let f=r[u];if(f<u)continue;let d=Math.floor(u/3)*2,m=Math.floor(f/3)*2,p=a[d],g=a[d+1],y=a[m],w=a[m+1];this._renderSegment(p,g,y,w,e)}let c,l=o[o.length-1];for(let u=0;u<o.length;++u){c=l,l=o[u];let h=Math.floor(i[l]/3)*2,f=a[h],d=a[h+1],m=c*4,p=this._project(f,d,s[m+2],s[m+3]);p&&this._renderSegment(f,d,p[0],p[1],e)}return n&&n.value()}renderBounds(e){let n=e==null?e=new Rn:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){let r=n==null?n=new Rn:void 0,i=this._clip(e);if(i===null||!i.length)return;n.moveTo(i[0],i[1]);let o=i.length;for(;i[0]===i[o-2]&&i[1]===i[o-1]&&o>1;)o-=2;for(let a=2;a<o;a+=2)(i[a]!==i[a-2]||i[a+1]!==i[a-1])&&n.lineTo(i[a],i[a+1]);return n.closePath(),r&&r.value()}*cellPolygons(){let{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){let i=this.cellPolygon(n);i&&(i.index=n,yield i)}}cellPolygon(e){let n=new Mo;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,i,o){let a,s=this._regioncode(e,n),c=this._regioncode(r,i);s===0&&c===0?(o.moveTo(e,n),o.lineTo(r,i)):(a=this._clipSegment(e,n,r,i,s,c))&&(o.moveTo(a[0],a[1]),o.lineTo(a[2],a[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){let n=this._clip(e);if(n)for(let r of this.delaunay.neighbors(e)){let i=this._clip(r);if(i){t:for(let o=0,a=n.length;o<a;o+=2)for(let s=0,c=i.length;s<c;s+=2)if(n[o]===i[s]&&n[o+1]===i[s+1]&&n[(o+2)%a]===i[(s+c-2)%c]&&n[(o+3)%a]===i[(s+c-1)%c]){yield r;break t}}}}_cell(e){let{circumcenters:n,delaunay:{inedges:r,halfedges:i,triangles:o}}=this,a=r[e];if(a===-1)return null;let s=[],c=a;do{let l=Math.floor(c/3);if(s.push(n[l*2],n[l*2+1]),c=c%3===2?c-2:c+1,o[c]!==e)break;c=i[c]}while(c!==a&&c!==-1);return s}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];let n=this._cell(e);if(n===null)return null;let{vectors:r}=this,i=e*4;return this._simplify(r[i]||r[i+1]?this._clipInfinite(e,n,r[i],r[i+1],r[i+2],r[i+3]):this._clipFinite(e,n))}_clipFinite(e,n){let r=n.length,i=null,o,a,s=n[r-2],c=n[r-1],l,u=this._regioncode(s,c),h,f=0;for(let d=0;d<r;d+=2)if(o=s,a=c,s=n[d],c=n[d+1],l=u,u=this._regioncode(s,c),l===0&&u===0)h=f,f=0,i?i.push(s,c):i=[s,c];else{let m,p,g,y,w;if(l===0){if((m=this._clipSegment(o,a,s,c,l,u))===null)continue;[p,g,y,w]=m}else{if((m=this._clipSegment(s,c,o,a,u,l))===null)continue;[y,w,p,g]=m,h=f,f=this._edgecode(p,g),h&&f&&this._edge(e,h,f,i,i.length),i?i.push(p,g):i=[p,g]}h=f,f=this._edgecode(y,w),h&&f&&this._edge(e,h,f,i,i.length),i?i.push(y,w):i=[y,w]}if(i)h=f,f=this._edgecode(i[0],i[1]),h&&f&&this._edge(e,h,f,i,i.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return i}_clipSegment(e,n,r,i,o,a){let s=o<a;for(s&&([e,n,r,i,o,a]=[r,i,e,n,a,o]);;){if(o===0&&a===0)return s?[r,i,e,n]:[e,n,r,i];if(o&a)return null;let c,l,u=o||a;u&8?(c=e+(r-e)*(this.ymax-n)/(i-n),l=this.ymax):u&4?(c=e+(r-e)*(this.ymin-n)/(i-n),l=this.ymin):u&2?(l=n+(i-n)*(this.xmax-e)/(r-e),c=this.xmax):(l=n+(i-n)*(this.xmin-e)/(r-e),c=this.xmin),o?(e=c,n=l,o=this._regioncode(e,n)):(r=c,i=l,a=this._regioncode(r,i))}}_clipInfinite(e,n,r,i,o,a){let s=Array.from(n),c;if((c=this._project(s[0],s[1],r,i))&&s.unshift(c[0],c[1]),(c=this._project(s[s.length-2],s[s.length-1],o,a))&&s.push(c[0],c[1]),s=this._clipFinite(e,s))for(let l=0,u=s.length,h,f=this._edgecode(s[u-2],s[u-1]);l<u;l+=2)h=f,f=this._edgecode(s[l],s[l+1]),h&&f&&(l=this._edge(e,h,f,s,l),u=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,n,r,i,o){for(;n!==r;){let a,s;switch(n){case 5:n=4;continue;case 4:n=6,a=this.xmax,s=this.ymin;break;case 6:n=2;continue;case 2:n=10,a=this.xmax,s=this.ymax;break;case 10:n=8;continue;case 8:n=9,a=this.xmin,s=this.ymax;break;case 9:n=1;continue;case 1:n=5,a=this.xmin,s=this.ymin;break}(i[o]!==a||i[o+1]!==s)&&this.contains(e,a,s)&&(i.splice(o,0,a,s),o+=2)}return o}_project(e,n,r,i){let o=1/0,a,s,c;if(i<0){if(n<=this.ymin)return null;(a=(this.ymin-n)/i)<o&&(c=this.ymin,s=e+(o=a)*r)}else if(i>0){if(n>=this.ymax)return null;(a=(this.ymax-n)/i)<o&&(c=this.ymax,s=e+(o=a)*r)}if(r>0){if(e>=this.xmax)return null;(a=(this.xmax-e)/r)<o&&(s=this.xmax,c=n+(o=a)*i)}else if(r<0){if(e<=this.xmin)return null;(a=(this.xmin-e)/r)<o&&(s=this.xmin,c=n+(o=a)*i)}return[s,c]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){let r=(n+2)%e.length,i=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[i]||e[n+1]===e[r+1]&&e[r+1]===e[i+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}},K_=2*Math.PI,Ei=Math.pow;function Q_(t){return t[0]}function J_(t){return t[1]}function t8(t){let{triangles:e,coords:n}=t;for(let r=0;r<e.length;r+=3){let i=2*e[r],o=2*e[r+1],a=2*e[r+2];if((n[a]-n[i])*(n[o+1]-n[i+1])-(n[o]-n[i])*(n[a+1]-n[i+1])>1e-10)return!1}return!0}function e8(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}var Du=class t{static from(e,n=Q_,r=J_,i){return new t("length"in e?n8(e,n,r,i):Float64Array.from(r8(e,n,r,i)))}constructor(e){this._delaunator=new Os(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){let e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&t8(e)){this.collinear=Int32Array.from({length:n.length/2},(f,d)=>d).sort((f,d)=>n[2*f]-n[2*d]||n[2*f+1]-n[2*d+1]);let c=this.collinear[0],l=this.collinear[this.collinear.length-1],u=[n[2*c],n[2*c+1],n[2*l],n[2*l+1]],h=1e-8*Math.hypot(u[3]-u[1],u[2]-u[0]);for(let f=0,d=n.length/2;f<d;++f){let m=e8(n[2*f],n[2*f+1],h);n[2*f]=m[0],n[2*f+1]=m[1]}this._delaunator=new Os(n)}else delete this.collinear;let r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,o=this.triangles=this._delaunator.triangles,a=this.inedges.fill(-1),s=this._hullIndex.fill(-1);for(let c=0,l=r.length;c<l;++c){let u=o[c%3===2?c-2:c+1];(r[c]===-1||a[u]===-1)&&(a[u]=c)}for(let c=0,l=i.length;c<l;++c)s[i[c]]=c;i.length<=2&&i.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],a[i[0]]=1,i.length===2&&(a[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new Bs(this,e)}*neighbors(e){let{inedges:n,hull:r,_hullIndex:i,halfedges:o,triangles:a,collinear:s}=this;if(s){let h=s.indexOf(e);h>0&&(yield s[h-1]),h<s.length-1&&(yield s[h+1]);return}let c=n[e];if(c===-1)return;let l=c,u=-1;do{if(yield u=a[l],l=l%3===2?l-2:l+1,a[l]!==e)return;if(l=o[l],l===-1){let h=r[(i[e]+1)%r.length];h!==u&&(yield h);return}}while(l!==c)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;let i=r,o;for(;(o=this._step(r,e,n))>=0&&o!==r&&o!==i;)r=o;return o}_step(e,n,r){let{inedges:i,hull:o,_hullIndex:a,halfedges:s,triangles:c,points:l}=this;if(l.length<2)return-1;if(i[e]===-1)return(e+1)%(l.length>>1);let u=e,h=Ei(n-l[e*2],2)+Ei(r-l[e*2+1],2),f=i[e],d=f;do{let m=c[d],p=Ei(n-l[m*2],2)+Ei(r-l[m*2+1],2);if(p<h&&(h=p,u=m),d=d%3===2?d-2:d+1,c[d]!==e)break;if(d=s[d],d===-1){if(d=o[(a[e]+1)%o.length],d!==m&&Ei(n-l[d*2],2)+Ei(r-l[d*2+1],2)<h)return d;break}}while(d!==f);return u}render(e){let n=e==null?e=new Rn:void 0,{points:r,halfedges:i,triangles:o}=this;for(let a=0,s=i.length;a<s;++a){let c=i[a];if(c<a)continue;let l=o[a]*2,u=o[c]*2;e.moveTo(r[l],r[l+1]),e.lineTo(r[u],r[u+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;let r=e==null?e=new Rn:void 0,{points:i}=this;for(let o=0,a=i.length&-2;o<a;o+=2){let s=i[o],c=i[o+1];e.moveTo(s+n,c),e.arc(s,c,n,0,K_)}return r&&r.value()}renderHull(e){let n=e==null?e=new Rn:void 0,{hull:r,points:i}=this,o=r[0]*2,a=r.length;e.moveTo(i[o],i[o+1]);for(let s=1;s<a;++s){let c=2*r[s];e.lineTo(i[c],i[c+1])}return e.closePath(),n&&n.value()}hullPolygon(){let e=new Mo;return this.renderHull(e),e.value()}renderTriangle(e,n){let r=n==null?n=new Rn:void 0,{points:i,triangles:o}=this,a=o[e*=3]*2,s=o[e+1]*2,c=o[e+2]*2;return n.moveTo(i[a],i[a+1]),n.lineTo(i[s],i[s+1]),n.lineTo(i[c],i[c+1]),n.closePath(),r&&r.value()}*trianglePolygons(){let{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){let n=new Mo;return this.renderTriangle(e,n),n.value()}};function n8(t,e,n,r){let i=t.length,o=new Float64Array(i*2);for(let a=0;a<i;++a){let s=t[a];o[a*2]=e.call(r,s,a,t),o[a*2+1]=n.call(r,s,a,t)}return o}function*r8(t,e,n,r){let i=0;for(let o of t)yield e.call(r,o,i,t),yield n.call(r,o,i,t),++i}var Ep={},$u={},zu=34,Co=10,Nu=13;function Cp(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function i8(t,e){var n=Cp(t);return function(r,i){return e(n(r),i,t)}}function Mp(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Te(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function o8(t){return t<0?"-"+Te(-t,6):t>9999?"+"+Te(t,6):Te(t,4)}function a8(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":o8(t.getUTCFullYear())+"-"+Te(t.getUTCMonth()+1,2)+"-"+Te(t.getUTCDate(),2)+(i?"T"+Te(e,2)+":"+Te(n,2)+":"+Te(r,2)+"."+Te(i,3)+"Z":r?"T"+Te(e,2)+":"+Te(n,2)+":"+Te(r,2)+"Z":n||e?"T"+Te(e,2)+":"+Te(n,2)+"Z":"")}function Fo(t){var e=new RegExp('["'+t+`
|
|
2
|
-
\r]`),n=t.charCodeAt(0);function r(h,f){var d,m,p=i(h,function(g,y){if(d)return d(g,y-1);m=g,d=f?
|
|
1
|
+
var w2=Object.defineProperty;var x2=(t,e)=>{for(var n in e)w2(t,n,{get:e[n],enumerable:!0})};var R={};x2(R,{Adder:()=>It,Delaunay:()=>Du,FormatSpecifier:()=>Rs,InternMap:()=>tr,InternSet:()=>On,Node:()=>Ir,Path:()=>lr,Voronoi:()=>Bs,ZoomTransform:()=>An,active:()=>V5,arc:()=>rA,area:()=>oy,areaRadial:()=>cA,ascending:()=>Bt,autoType:()=>w8,axisBottom:()=>Bv,axisLeft:()=>Dv,axisRight:()=>Ov,axisTop:()=>Tv,bin:()=>G2,bisect:()=>nr,bisectCenter:()=>A2,bisectLeft:()=>k2,bisectRight:()=>nr,bisector:()=>ao,blob:()=>S8,blur:()=>E2,blur2:()=>Fc,blurImage:()=>M2,brush:()=>l_,brushSelection:()=>o_,brushX:()=>a_,brushY:()=>s_,buffer:()=>A8,chord:()=>p_,chordDirected:()=>m_,chordTranspose:()=>g_,cluster:()=>Y6,color:()=>mn,contourDensity:()=>I_,contours:()=>Tu,count:()=>Xa,create:()=>px,creator:()=>rs,cross:()=>$2,csv:()=>C8,csvFormat:()=>c8,csvFormatBody:()=>u8,csvFormatRow:()=>h8,csvFormatRows:()=>f8,csvFormatValue:()=>d8,csvParse:()=>Ru,csvParseRows:()=>l8,cubehelix:()=>Re,cumsum:()=>z2,curveBasis:()=>EA,curveBasisClosed:()=>MA,curveBasisOpen:()=>CA,curveBumpX:()=>ly,curveBumpY:()=>cy,curveBundle:()=>FA,curveCardinal:()=>TA,curveCardinalClosed:()=>OA,curveCardinalOpen:()=>BA,curveCatmullRom:()=>DA,curveCatmullRomClosed:()=>$A,curveCatmullRomOpen:()=>zA,curveLinear:()=>ql,curveLinearClosed:()=>NA,curveMonotoneX:()=>RA,curveMonotoneY:()=>PA,curveNatural:()=>IA,curveStep:()=>LA,curveStepAfter:()=>YA,curveStepBefore:()=>qA,descending:()=>Td,deviation:()=>$d,difference:()=>bv,disjoint:()=>vv,dispatch:()=>Ye,drag:()=>Sx,dragDisable:()=>ui,dragEnable:()=>fi,dsv:()=>M8,dsvFormat:()=>Fo,easeBack:()=>P3,easeBackIn:()=>N3,easeBackInOut:()=>P3,easeBackOut:()=>R3,easeBounce:()=>xs,easeBounceIn:()=>$3,easeBounceInOut:()=>z3,easeBounceOut:()=>xs,easeCircle:()=>A3,easeCircleIn:()=>S3,easeCircleInOut:()=>A3,easeCircleOut:()=>k3,easeCubic:()=>cu,easeCubicIn:()=>h3,easeCubicInOut:()=>cu,easeCubicOut:()=>d3,easeElastic:()=>L3,easeElasticIn:()=>I3,easeElasticInOut:()=>q3,easeElasticOut:()=>L3,easeExp:()=>_3,easeExpIn:()=>w3,easeExpInOut:()=>_3,easeExpOut:()=>x3,easeLinear:()=>l3,easePoly:()=>m3,easePolyIn:()=>p3,easePolyInOut:()=>m3,easePolyOut:()=>g3,easeQuad:()=>f3,easeQuadIn:()=>c3,easeQuadInOut:()=>f3,easeQuadOut:()=>u3,easeSin:()=>v3,easeSinIn:()=>y3,easeSinInOut:()=>v3,easeSinOut:()=>b3,every:()=>hv,extent:()=>ei,fcumsum:()=>R2,filter:()=>pv,flatGroup:()=>P2,flatRollup:()=>I2,forceCenter:()=>Q8,forceCollide:()=>e4,forceLink:()=>r4,forceManyBody:()=>h4,forceRadial:()=>d4,forceSimulation:()=>f4,forceX:()=>p4,forceY:()=>g4,format:()=>Oo,formatDefaultLocale:()=>Lp,formatLocale:()=>Ip,formatPrefix:()=>Ps,formatSpecifier:()=>$r,fsum:()=>N2,geoAlbers:()=>Zg,geoAlbersUsa:()=>w6,geoArea:()=>A4,geoAzimuthalEqualArea:()=>x6,geoAzimuthalEqualAreaRaw:()=>Ff,geoAzimuthalEquidistant:()=>_6,geoAzimuthalEquidistantRaw:()=>Tf,geoBounds:()=>F4,geoCentroid:()=>z4,geoCircle:()=>N4,geoClipAntimeridian:()=>sf,geoClipCircle:()=>$g,geoClipExtent:()=>U4,geoClipRectangle:()=>vl,geoConicConformal:()=>k6,geoConicConformalRaw:()=>Jg,geoConicEqualArea:()=>yl,geoConicEqualAreaRaw:()=>Vg,geoConicEquidistant:()=>E6,geoConicEquidistantRaw:()=>tm,geoContains:()=>Z4,geoDistance:()=>ll,geoEqualEarth:()=>C6,geoEqualEarthRaw:()=>Of,geoEquirectangular:()=>A6,geoEquirectangularRaw:()=>Xo,geoGnomonic:()=>F6,geoGnomonicRaw:()=>Bf,geoGraticule:()=>Rg,geoGraticule10:()=>K4,geoIdentity:()=>T6,geoInterpolate:()=>Q4,geoLength:()=>zg,geoMercator:()=>S6,geoMercatorRaw:()=>Ko,geoNaturalEarth1:()=>O6,geoNaturalEarth1Raw:()=>Df,geoOrthographic:()=>B6,geoOrthographicRaw:()=>$f,geoPath:()=>u6,geoProjection:()=>Sn,geoProjectionMutator:()=>Mf,geoRotation:()=>Cg,geoStereographic:()=>D6,geoStereographicRaw:()=>zf,geoStream:()=>cn,geoTransform:()=>f6,geoTransverseMercator:()=>$6,geoTransverseMercatorRaw:()=>Nf,gray:()=>zx,greatest:()=>Wd,greatestIndex:()=>av,group:()=>Pd,groupSort:()=>Y2,groups:()=>Id,hcl:()=>mo,hierarchy:()=>Uf,histogram:()=>G2,hsl:()=>po,html:()=>$8,image:()=>T8,index:()=>L2,indexes:()=>q2,interpolate:()=>yn,interpolateArray:()=>qx,interpolateBasis:()=>z0,interpolateBasisClosed:()=>N0,interpolateBlues:()=>Tk,interpolateBrBG:()=>ck,interpolateBuGn:()=>bk,interpolateBuPu:()=>vk,interpolateCividis:()=>Nk,interpolateCool:()=>Ik,interpolateCubehelix:()=>n3,interpolateCubehelixDefault:()=>Rk,interpolateCubehelixLong:()=>bo,interpolateDate:()=>q0,interpolateDiscrete:()=>Hx,interpolateGnBu:()=>wk,interpolateGreens:()=>Ok,interpolateGreys:()=>Bk,interpolateHcl:()=>t3,interpolateHclLong:()=>e3,interpolateHsl:()=>Kx,interpolateHslLong:()=>Qx,interpolateHue:()=>Wx,interpolateInferno:()=>Xk,interpolateLab:()=>Jx,interpolateMagma:()=>jk,interpolateNumber:()=>Fe,interpolateNumberArray:()=>nu,interpolateObject:()=>Y0,interpolateOrRd:()=>xk,interpolateOranges:()=>zk,interpolatePRGn:()=>uk,interpolatePiYG:()=>fk,interpolatePlasma:()=>Gk,interpolatePuBu:()=>Sk,interpolatePuBuGn:()=>_k,interpolatePuOr:()=>hk,interpolatePuRd:()=>kk,interpolatePurples:()=>Dk,interpolateRainbow:()=>Lk,interpolateRdBu:()=>dk,interpolateRdGy:()=>pk,interpolateRdPu:()=>Ak,interpolateRdYlBu:()=>gk,interpolateRdYlGn:()=>mk,interpolateReds:()=>$k,interpolateRgb:()=>mi,interpolateRgbBasis:()=>eu,interpolateRgbBasisClosed:()=>Lx,interpolateRound:()=>yo,interpolateSinebow:()=>Uk,interpolateSpectral:()=>yk,interpolateString:()=>gs,interpolateTransformCss:()=>ru,interpolateTransformSvg:()=>iu,interpolateTurbo:()=>Hk,interpolateViridis:()=>Wk,interpolateWarm:()=>Pk,interpolateYlGn:()=>Mk,interpolateYlGnBu:()=>Ek,interpolateYlOrBr:()=>Ck,interpolateYlOrRd:()=>Fk,interpolateZoom:()=>ou,interrupt:()=>$n,intersection:()=>wv,interval:()=>s3,isoFormat:()=>F9,isoParse:()=>O9,json:()=>B8,lab:()=>go,lch:()=>Nx,least:()=>ov,leastIndex:()=>Xd,line:()=>Sh,lineRadial:()=>lA,link:()=>Yl,linkHorizontal:()=>dA,linkRadial:()=>gA,linkVertical:()=>pA,local:()=>s0,map:()=>gv,matcher:()=>os,max:()=>ii,maxIndex:()=>Bc,mean:()=>K2,median:()=>Q2,medianIndex:()=>J2,merge:()=>Ka,min:()=>ja,minIndex:()=>Dc,mode:()=>ev,namespace:()=>li,namespaces:()=>Rc,nice:()=>Ga,now:()=>bi,pack:()=>b7,packEnclose:()=>h7,packSiblings:()=>m7,pairs:()=>nv,partition:()=>v7,path:()=>Ms,pathRound:()=>h_,permute:()=>Hd,pie:()=>sA,piecewise:()=>au,pointRadial:()=>da,pointer:()=>le,pointers:()=>mx,polygonArea:()=>z7,polygonCentroid:()=>N7,polygonContains:()=>L7,polygonHull:()=>I7,polygonLength:()=>q7,precisionFixed:()=>qu,precisionPrefix:()=>Yu,precisionRound:()=>Uu,quadtree:()=>To,quantile:()=>oi,quantileIndex:()=>jd,quantileSorted:()=>$c,quantize:()=>r3,quickselect:()=>Za,radialArea:()=>cA,radialLine:()=>lA,randomBates:()=>W7,randomBernoulli:()=>G7,randomBeta:()=>Sm,randomBinomial:()=>km,randomCauchy:()=>Z7,randomExponential:()=>j7,randomGamma:()=>jf,randomGeometric:()=>_m,randomInt:()=>U7,randomIrwinHall:()=>xm,randomLcg:()=>eS,randomLogNormal:()=>H7,randomLogistic:()=>K7,randomNormal:()=>Wf,randomPareto:()=>X7,randomPoisson:()=>Q7,randomUniform:()=>Y7,randomWeibull:()=>V7,range:()=>dn,rank:()=>iv,reduce:()=>mv,reverse:()=>yv,rgb:()=>ar,ribbon:()=>k_,ribbonArrow:()=>A_,rollup:()=>qd,rollups:()=>Yd,scaleBand:()=>lh,scaleDiverging:()=>_1,scaleDivergingLog:()=>S1,scaleDivergingPow:()=>mh,scaleDivergingSqrt:()=>K9,scaleDivergingSymlog:()=>k1,scaleIdentity:()=>u1,scaleImplicit:()=>oh,scaleLinear:()=>c1,scaleLog:()=>h1,scaleOrdinal:()=>sh,scalePoint:()=>B9,scalePow:()=>dh,scaleQuantile:()=>g1,scaleQuantize:()=>m1,scaleRadial:()=>p1,scaleSequential:()=>b1,scaleSequentialLog:()=>v1,scaleSequentialPow:()=>gh,scaleSequentialQuantile:()=>x1,scaleSequentialSqrt:()=>Z9,scaleSequentialSymlog:()=>w1,scaleSqrt:()=>H9,scaleSymlog:()=>d1,scaleThreshold:()=>y1,scaleTime:()=>G9,scaleUtc:()=>V9,scan:()=>sv,schemeAccent:()=>J9,schemeBlues:()=>j1,schemeBrBG:()=>A1,schemeBuGn:()=>$1,schemeBuPu:()=>z1,schemeCategory10:()=>Q9,schemeDark2:()=>tk,schemeGnBu:()=>N1,schemeGreens:()=>X1,schemeGreys:()=>G1,schemeObservable10:()=>ek,schemeOrRd:()=>R1,schemeOranges:()=>K1,schemePRGn:()=>E1,schemePaired:()=>nk,schemePastel1:()=>rk,schemePastel2:()=>ik,schemePiYG:()=>M1,schemePuBu:()=>I1,schemePuBuGn:()=>P1,schemePuOr:()=>C1,schemePuRd:()=>L1,schemePurples:()=>V1,schemeRdBu:()=>F1,schemeRdGy:()=>T1,schemeRdPu:()=>q1,schemeRdYlBu:()=>O1,schemeRdYlGn:()=>B1,schemeReds:()=>Z1,schemeSet1:()=>ok,schemeSet2:()=>ak,schemeSet3:()=>sk,schemeSpectral:()=>D1,schemeTableau10:()=>lk,schemeYlGn:()=>U1,schemeYlGnBu:()=>Y1,schemeYlOrBr:()=>H1,schemeYlOrRd:()=>W1,select:()=>Xt,selectAll:()=>yx,selection:()=>ir,selector:()=>lo,selectorAll:()=>is,shuffle:()=>lv,shuffler:()=>Gd,some:()=>dv,sort:()=>Cc,stack:()=>WA,stackOffsetDiverging:()=>XA,stackOffsetExpand:()=>jA,stackOffsetNone:()=>qi,stackOffsetSilhouette:()=>GA,stackOffsetWiggle:()=>VA,stackOrderAppearance:()=>$y,stackOrderAscending:()=>zy,stackOrderDescending:()=>KA,stackOrderInsideOut:()=>QA,stackOrderNone:()=>Yi,stackOrderReverse:()=>JA,stratify:()=>S7,style:()=>rr,subset:()=>_v,sum:()=>cv,superset:()=>Zd,svg:()=>z8,symbol:()=>AA,symbolAsterisk:()=>uy,symbolCircle:()=>Ul,symbolCross:()=>fy,symbolDiamond:()=>dy,symbolDiamond2:()=>py,symbolPlus:()=>gy,symbolSquare:()=>my,symbolSquare2:()=>yy,symbolStar:()=>vy,symbolTimes:()=>Sy,symbolTriangle:()=>wy,symbolTriangle2:()=>xy,symbolWye:()=>_y,symbolX:()=>Sy,symbols:()=>SA,symbolsFill:()=>SA,symbolsStroke:()=>kA,text:()=>Ds,thresholdFreedmanDiaconis:()=>V2,thresholdScott:()=>Z2,thresholdSturges:()=>Va,tickFormat:()=>l1,tickIncrement:()=>er,tickStep:()=>si,ticks:()=>Bn,timeDay:()=>hr,timeDays:()=>lS,timeFormat:()=>El,timeFormatDefaultLocale:()=>Km,timeFormatLocale:()=>Wm,timeFriday:()=>Cm,timeFridays:()=>mS,timeHour:()=>ra,timeHours:()=>aS,timeInterval:()=>Wt,timeMillisecond:()=>ta,timeMilliseconds:()=>nS,timeMinute:()=>ea,timeMinutes:()=>iS,timeMonday:()=>Ri,timeMondays:()=>hS,timeMonth:()=>oa,timeMonths:()=>AS,timeParse:()=>Zm,timeSaturday:()=>Fm,timeSaturdays:()=>yS,timeSecond:()=>kn,timeSeconds:()=>rS,timeSunday:()=>Yr,timeSundays:()=>fS,timeThursday:()=>dr,timeThursdays:()=>gS,timeTickInterval:()=>eh,timeTicks:()=>th,timeTuesday:()=>Em,timeTuesdays:()=>dS,timeWednesday:()=>Mm,timeWednesdays:()=>pS,timeWeek:()=>Yr,timeWeeks:()=>fS,timeYear:()=>je,timeYears:()=>MS,timeout:()=>vs,timer:()=>vi,timerFlush:()=>K0,transition:()=>ip,transpose:()=>Vd,tree:()=>T7,treemap:()=>O7,treemapBinary:()=>B7,treemapDice:()=>Jo,treemapResquarify:()=>$7,treemapSlice:()=>Al,treemapSliceDice:()=>D7,treemapSquarify:()=>bm,tsv:()=>F8,tsvFormat:()=>g8,tsvFormatBody:()=>m8,tsvFormatRow:()=>b8,tsvFormatRows:()=>y8,tsvFormatValue:()=>v8,tsvParse:()=>Pu,tsvParseRows:()=>p8,union:()=>Sv,unixDay:()=>Kf,unixDays:()=>uS,utcDay:()=>Lr,utcDays:()=>cS,utcFormat:()=>ua,utcFriday:()=>Bm,utcFridays:()=>SS,utcHour:()=>ia,utcHours:()=>sS,utcMillisecond:()=>ta,utcMilliseconds:()=>nS,utcMinute:()=>na,utcMinutes:()=>oS,utcMonday:()=>Pi,utcMondays:()=>vS,utcMonth:()=>aa,utcMonths:()=>ES,utcParse:()=>ih,utcSaturday:()=>Dm,utcSaturdays:()=>kS,utcSecond:()=>kn,utcSeconds:()=>rS,utcSunday:()=>Hr,utcSundays:()=>bS,utcThursday:()=>pr,utcThursdays:()=>_S,utcTickInterval:()=>Jf,utcTicks:()=>Qf,utcTuesday:()=>Tm,utcTuesdays:()=>wS,utcWednesday:()=>Om,utcWednesdays:()=>xS,utcWeek:()=>Hr,utcWeeks:()=>bS,utcYear:()=>Xe,utcYears:()=>CS,variance:()=>Dd,window:()=>Ic,xml:()=>D8,zip:()=>fv,zoom:()=>aE,zoomIdentity:()=>Xl,zoomTransform:()=>Py});function Bt(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Td(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ao(t){let e,n,r;t.length!==2?(e=Bt,n=(s,c)=>Bt(t(s),c),r=(s,c)=>t(s)-c):(e=t===Bt||t===Td?t:_2,n=t,r=t);function i(s,c,l=0,u=s.length){if(l<u){if(e(c,c)!==0)return u;do{let h=l+u>>>1;n(s[h],c)<0?l=h+1:u=h}while(l<u)}return l}function o(s,c,l=0,u=s.length){if(l<u){if(e(c,c)!==0)return u;do{let h=l+u>>>1;n(s[h],c)<=0?l=h+1:u=h}while(l<u)}return l}function a(s,c,l=0,u=s.length){let h=i(s,c,l,u-1);return h>l&&r(s[h-1],c)>-r(s[h],c)?h-1:h}return{left:i,center:a,right:o}}function _2(){return 0}function Ha(t){return t===null?NaN:+t}function*S2(t,e){if(e===void 0)for(let n of t)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of t)(r=e(r,++n,t))!=null&&(r=+r)>=r&&(yield r)}}var Od=ao(Bt),nr=Od.right,k2=Od.left,A2=ao(Ha).center;function E2(t,e){if(!((e=+e)>=0))throw new RangeError("invalid r");let n=t.length;if(!((n=Math.floor(n))>=0))throw new RangeError("invalid length");if(!n||!e)return t;let r=Tc(e),i=t.slice();return r(t,i,0,n,1),r(i,t,0,n,1),r(t,i,0,n,1),t}var Fc=Bd(Tc),M2=Bd(C2);function Bd(t){return function(e,n,r=n){if(!((n=+n)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:i,width:o,height:a}=e;if(!((o=Math.floor(o))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(a!==void 0?a:i.length/o))>=0))throw new RangeError("invalid height");if(!o||!a||!n&&!r)return e;let s=n&&t(n),c=r&&t(r),l=i.slice();return s&&c?(Jr(s,l,i,o,a),Jr(s,i,l,o,a),Jr(s,l,i,o,a),ti(c,i,l,o,a),ti(c,l,i,o,a),ti(c,i,l,o,a)):s?(Jr(s,i,l,o,a),Jr(s,l,i,o,a),Jr(s,i,l,o,a)):c&&(ti(c,i,l,o,a),ti(c,l,i,o,a),ti(c,i,l,o,a)),e}}function Jr(t,e,n,r,i){for(let o=0,a=r*i;o<a;)t(e,n,o,o+=r,1)}function ti(t,e,n,r,i){for(let o=0,a=r*i;o<r;++o)t(e,n,o,o+a,r)}function C2(t){let e=Tc(t);return(n,r,i,o,a)=>{i<<=2,o<<=2,a<<=2,e(n,r,i+0,o+0,a),e(n,r,i+1,o+1,a),e(n,r,i+2,o+2,a),e(n,r,i+3,o+3,a)}}function Tc(t){let e=Math.floor(t);if(e===t)return F2(t);let n=t-e,r=2*t+1;return(i,o,a,s,c)=>{if(!((s-=c)>=a))return;let l=e*o[a],u=c*e,h=u+c;for(let f=a,d=a+u;f<d;f+=c)l+=o[Math.min(s,f)];for(let f=a,d=s;f<=d;f+=c)l+=o[Math.min(s,f+u)],i[f]=(l+n*(o[Math.max(a,f-h)]+o[Math.min(s,f+h)]))/r,l-=o[Math.max(a,f-u)]}}function F2(t){let e=2*t+1;return(n,r,i,o,a)=>{if(!((o-=a)>=i))return;let s=t*r[i],c=a*t;for(let l=i,u=i+c;l<u;l+=a)s+=r[Math.min(o,l)];for(let l=i,u=o;l<=u;l+=a)s+=r[Math.min(o,l+c)],n[l]=s/e,s-=r[Math.max(i,l-c)]}}function Xa(t,e){let n=0;if(e===void 0)for(let r of t)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(i=+i)>=i&&++n}return n}function T2(t){return t.length|0}function O2(t){return!(t>0)}function B2(t){return typeof t!="object"||"length"in t?t:Array.from(t)}function D2(t){return e=>t(...e)}function $2(...t){let e=typeof t[t.length-1]=="function"&&D2(t.pop());t=t.map(B2);let n=t.map(T2),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||n.some(O2))return o;for(;;){o.push(i.map((s,c)=>t[c][s]));let a=r;for(;++i[a]===n[a];){if(a===0)return e?o.map(e):o;i[a--]=0}}}function z2(t,e){var n=0,r=0;return Float64Array.from(t,e===void 0?i=>n+=+i||0:i=>n+=+e(i,r++,t)||0)}function Dd(t,e){let n=0,r,i=0,o=0;if(e===void 0)for(let a of t)a!=null&&(a=+a)>=a&&(r=a-i,i+=r/++n,o+=r*(a-i));else{let a=-1;for(let s of t)(s=e(s,++a,t))!=null&&(s=+s)>=s&&(r=s-i,i+=r/++n,o+=r*(s-i))}if(n>1)return o/(n-1)}function $d(t,e){let n=Dd(t,e);return n&&Math.sqrt(n)}function ei(t,e){let n,r;if(e===void 0)for(let i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}var It=class{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){let n=this._partials,r=0;for(let i=0;i<this._n&&i<32;i++){let o=n[i],a=e+o,s=Math.abs(e)<Math.abs(o)?e-(a-o):o-(a-e);s&&(n[r++]=s),e=a}return n[r]=e,this._n=r+1,this}valueOf(){let e=this._partials,n=this._n,r,i,o,a=0;if(n>0){for(a=e[--n];n>0&&(r=a,i=e[--n],a=r+i,o=i-(a-r),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(i=o*2,r=a+i,i==r-a&&(a=r))}return a}};function N2(t,e){let n=new It;if(e===void 0)for(let r of t)(r=+r)&&n.add(r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&n.add(i)}return+n}function R2(t,e){let n=new It,r=-1;return Float64Array.from(t,e===void 0?i=>n.add(+i||0):i=>n.add(+e(i,++r,t)||0))}var tr=class extends Map{constructor(e,n=Rd){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(let[r,i]of e)this.set(r,i)}get(e){return super.get(Mc(this,e))}has(e){return super.has(Mc(this,e))}set(e,n){return super.set(zd(this,e),n)}delete(e){return super.delete(Nd(this,e))}},On=class extends Set{constructor(e,n=Rd){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(let r of e)this.add(r)}has(e){return super.has(Mc(this,e))}add(e){return super.add(zd(this,e))}delete(e){return super.delete(Nd(this,e))}};function Mc({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):n}function zd({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function Nd({_intern:t,_key:e},n){let r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Rd(t){return t!==null&&typeof t=="object"?t.valueOf():t}function ni(t){return t}function Pd(t,...e){return ai(t,ni,ni,e)}function Id(t,...e){return ai(t,Array.from,ni,e)}function Ld(t,e){for(let n=1,r=e.length;n<r;++n)t=t.flatMap(i=>i.pop().map(([o,a])=>[...i,o,a]));return t}function P2(t,...e){return Ld(Id(t,...e),e)}function I2(t,e,...n){return Ld(Yd(t,e,...n),n)}function qd(t,e,...n){return ai(t,ni,e,n)}function Yd(t,e,...n){return ai(t,Array.from,e,n)}function L2(t,...e){return ai(t,ni,Ud,e)}function q2(t,...e){return ai(t,Array.from,Ud,e)}function Ud(t){if(t.length!==1)throw new Error("duplicate key");return t[0]}function ai(t,e,n,r){return(function i(o,a){if(a>=r.length)return n(o);let s=new tr,c=r[a++],l=-1;for(let u of o){let h=c(u,++l,o),f=s.get(h);f?f.push(u):s.set(h,[u])}for(let[u,h]of s)s.set(u,i(h,a));return e(s)})(t,0)}function Hd(t,e){return Array.from(e,n=>t[n])}function Cc(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){let r=Uint32Array.from(t,(i,o)=>o);return e.length>1?(e=e.map(i=>t.map(i)),r.sort((i,o)=>{for(let a of e){let s=ri(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>ri(n[i],n[o]))),Hd(t,r)}return t.sort(Oc(n))}function Oc(t=Bt){if(t===Bt)return ri;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{let r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function ri(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}function Y2(t,e,n){return(e.length!==2?Cc(qd(t,e,n),(([r,i],[o,a])=>Bt(i,a)||Bt(r,o))):Cc(Pd(t,n),(([r,i],[o,a])=>e(i,a)||Bt(r,o)))).map(([r])=>r)}var U2=Array.prototype,H2=U2.slice;function Ec(t){return()=>t}var W2=Math.sqrt(50),j2=Math.sqrt(10),X2=Math.sqrt(2);function Wa(t,e,n){let r=(e-t)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=W2?10:o>=j2?5:o>=X2?2:1,s,c,l;return i<0?(l=Math.pow(10,-i)/a,s=Math.round(t*l),c=Math.round(e*l),s/l<t&&++s,c/l>e&&--c,l=-l):(l=Math.pow(10,i)*a,s=Math.round(t/l),c=Math.round(e/l),s*l<t&&++s,c*l>e&&--c),c<s&&.5<=n&&n<2?Wa(t,e,n*2):[s,c,l]}function Bn(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];let r=e<t,[i,o,a]=r?Wa(e,t,n):Wa(t,e,n);if(!(o>=i))return[];let s=o-i+1,c=new Array(s);if(r)if(a<0)for(let l=0;l<s;++l)c[l]=(o-l)/-a;else for(let l=0;l<s;++l)c[l]=(o-l)*a;else if(a<0)for(let l=0;l<s;++l)c[l]=(i+l)/-a;else for(let l=0;l<s;++l)c[l]=(i+l)*a;return c}function er(t,e,n){return e=+e,t=+t,n=+n,Wa(t,e,n)[2]}function si(t,e,n){e=+e,t=+t,n=+n;let r=e<t,i=r?er(e,t,n):er(t,e,n);return(r?-1:1)*(i<0?1/-i:i)}function Ga(t,e,n){let r;for(;;){let i=er(t,e,n);if(i===r||i===0||!isFinite(i))return[t,e];if(i>0){let o=Math.ceil(t/i),a=Math.floor(e/i);t=(o-(o*i>t))*i,e=(a+(a*i<e))*i}else if(i<0){let o=-i,a=Math.ceil(t*o),s=Math.floor(e*o);t=(a-(a/o>t))/o,e=(s+(s/o<e))/o}r=i}}function Va(t){return Math.max(1,Math.ceil(Math.log(Xa(t))/Math.LN2)+1)}function G2(){var t=ni,e=ei,n=Va;function r(i){Array.isArray(i)||(i=Array.from(i));var o,a=i.length,s,c,l=new Array(a);for(o=0;o<a;++o)l[o]=t(i[o],o,i);var u=e(l),h=u[0],f=u[1],d=n(l,h,f);if(!Array.isArray(d)){let b=f,v=+d;if(e===ei&&([h,f]=Ga(h,f,v)),d=Bn(h,f,v),d[0]<=h&&(c=er(h,f,v)),d[d.length-1]>=f)if(b>=f&&e===ei){let _=er(h,f,v);isFinite(_)&&(_>0?f=(Math.floor(f/_)+1)*_:_<0&&(f=(Math.ceil(f*-_)+1)/-_))}else d.pop()}for(var m=d.length,p=0,g=m;d[p]<=h;)++p;for(;d[g-1]>f;)--g;(p||g<m)&&(d=d.slice(p,g),m=g-p);var y=new Array(m+1),w;for(o=0;o<=m;++o)w=y[o]=[],w.x0=o>0?d[o-1]:h,w.x1=o<m?d[o]:f;if(isFinite(c)){if(c>0)for(o=0;o<a;++o)(s=l[o])!=null&&h<=s&&s<=f&&y[Math.min(m,Math.floor((s-h)/c))].push(i[o]);else if(c<0){for(o=0;o<a;++o)if((s=l[o])!=null&&h<=s&&s<=f){let b=Math.floor((h-s)*c);y[Math.min(m,b+(d[b]<=s))].push(i[o])}}}else for(o=0;o<a;++o)(s=l[o])!=null&&h<=s&&s<=f&&y[nr(d,s,0,m)].push(i[o]);return y}return r.value=function(i){return arguments.length?(t=typeof i=="function"?i:Ec(i),r):t},r.domain=function(i){return arguments.length?(e=typeof i=="function"?i:Ec([i[0],i[1]]),r):e},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:Ec(Array.isArray(i)?H2.call(i):i),r):n},r}function ii(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function Bc(t,e){let n,r=-1,i=-1;if(e===void 0)for(let o of t)++i,o!=null&&(n<o||n===void 0&&o>=o)&&(n=o,r=i);else for(let o of t)(o=e(o,++i,t))!=null&&(n<o||n===void 0&&o>=o)&&(n=o,r=i);return r}function ja(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Dc(t,e){let n,r=-1,i=-1;if(e===void 0)for(let o of t)++i,o!=null&&(n>o||n===void 0&&o>=o)&&(n=o,r=i);else for(let o of t)(o=e(o,++i,t))!=null&&(n>o||n===void 0&&o>=o)&&(n=o,r=i);return r}function Za(t,e,n=0,r=1/0,i){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(i=i===void 0?ri:Oc(i);r>n;){if(r-n>600){let c=r-n+1,l=e-n+1,u=Math.log(c),h=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*h*(c-h)/c)*(l-c/2<0?-1:1),d=Math.max(n,Math.floor(e-l*h/c+f)),m=Math.min(r,Math.floor(e+(c-l)*h/c+f));Za(t,e,d,m,i)}let o=t[e],a=n,s=r;for(oo(t,n,e),i(t[r],o)>0&&oo(t,n,r);a<s;){for(oo(t,a,s),++a,--s;i(t[a],o)<0;)++a;for(;i(t[s],o)>0;)--s}i(t[n],o)===0?oo(t,n,s):(++s,oo(t,s,r)),s<=e&&(n=s+1),e<=s&&(r=s-1)}return t}function oo(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}function Wd(t,e=Bt){let n,r=!1;if(e.length===1){let i;for(let o of t){let a=e(o);(r?Bt(a,i)>0:Bt(a,a)===0)&&(n=o,i=a,r=!0)}}else for(let i of t)(r?e(i,n)>0:e(i,i)===0)&&(n=i,r=!0);return n}function oi(t,e,n){if(t=Float64Array.from(S2(t,n)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return ja(t);if(e>=1)return ii(t);var r,i=(r-1)*e,o=Math.floor(i),a=ii(Za(t,o).subarray(0,o+1)),s=ja(t.subarray(o+1));return a+(s-a)*(i-o)}}function $c(t,e,n=Ha){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,o=Math.floor(i),a=+n(t[o],o,t),s=+n(t[o+1],o+1,t);return a+(s-a)*(i-o)}}function jd(t,e,n=Ha){if(!isNaN(e=+e)){if(r=Float64Array.from(t,(s,c)=>Ha(n(t[c],c,t))),e<=0)return Dc(r);if(e>=1)return Bc(r);var r,i=Uint32Array.from(t,(s,c)=>c),o=r.length-1,a=Math.floor(o*e);return Za(i,a,0,o,(s,c)=>ri(r[s],r[c])),a=Wd(i.subarray(0,a+1),s=>r[s]),a>=0?a:-1}}function V2(t,e,n){let r=Xa(t),i=oi(t,.75)-oi(t,.25);return r&&i?Math.ceil((n-e)/(2*i*Math.pow(r,-1/3))):1}function Z2(t,e,n){let r=Xa(t),i=$d(t);return r&&i?Math.ceil((n-e)*Math.cbrt(r)/(3.49*i)):1}function K2(t,e){let n=0,r=0;if(e===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(o=+o)>=o&&(++n,r+=o)}if(n)return r/n}function Q2(t,e){return oi(t,.5,e)}function J2(t,e){return jd(t,.5,e)}function*tv(t){for(let e of t)yield*e}function Ka(t){return Array.from(tv(t))}function ev(t,e){let n=new tr;if(e===void 0)for(let o of t)o!=null&&o>=o&&n.set(o,(n.get(o)||0)+1);else{let o=-1;for(let a of t)(a=e(a,++o,t))!=null&&a>=a&&n.set(a,(n.get(a)||0)+1)}let r,i=0;for(let[o,a]of n)a>i&&(i=a,r=o);return r}function nv(t,e=rv){let n=[],r,i=!1;for(let o of t)i&&n.push(e(r,o)),r=o,i=!0;return n}function rv(t,e){return[t,e]}function dn(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,o=new Array(i);++r<i;)o[r]=t+r*n;return o}function iv(t,e=Bt){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");let n=Array.from(t),r=new Float64Array(n.length);e.length!==2&&(n=n.map(e),e=Bt);let i=(s,c)=>e(n[s],n[c]),o,a;return t=Uint32Array.from(n,(s,c)=>c),t.sort(e===Bt?(s,c)=>ri(n[s],n[c]):Oc(i)),t.forEach((s,c)=>{let l=i(s,o===void 0?s:o);l>=0?((o===void 0||l>0)&&(o=s,a=c),r[s]=a):r[s]=NaN}),r}function ov(t,e=Bt){let n,r=!1;if(e.length===1){let i;for(let o of t){let a=e(o);(r?Bt(a,i)<0:Bt(a,a)===0)&&(n=o,i=a,r=!0)}}else for(let i of t)(r?e(i,n)<0:e(i,i)===0)&&(n=i,r=!0);return n}function Xd(t,e=Bt){if(e.length===1)return Dc(t,e);let n,r=-1,i=-1;for(let o of t)++i,(r<0?e(o,o)===0:e(o,n)<0)&&(n=o,r=i);return r}function av(t,e=Bt){if(e.length===1)return Bc(t,e);let n,r=-1,i=-1;for(let o of t)++i,(r<0?e(o,o)===0:e(o,n)>0)&&(n=o,r=i);return r}function sv(t,e){let n=Xd(t,e);return n<0?void 0:n}var lv=Gd(Math.random);function Gd(t){return function(n,r=0,i=n.length){let o=i-(r=+r);for(;o;){let a=t()*o--|0,s=n[o+r];n[o+r]=n[a+r],n[a+r]=s}return n}}function cv(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function Vd(t){if(!(o=t.length))return[];for(var e=-1,n=ja(t,uv),r=new Array(n);++e<n;)for(var i=-1,o,a=r[e]=new Array(o);++i<o;)a[i]=t[i][e];return r}function uv(t){return t.length}function fv(){return Vd(arguments)}function hv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=-1;for(let r of t)if(!e(r,++n,t))return!1;return!0}function dv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=-1;for(let r of t)if(e(r,++n,t))return!0;return!1}function pv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=[],r=-1;for(let i of t)e(i,++r,t)&&n.push(i);return n}function gv(t,e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");if(typeof e!="function")throw new TypeError("mapper is not a function");return Array.from(t,(n,r)=>e(n,r,t))}function mv(t,e,n){if(typeof e!="function")throw new TypeError("reducer is not a function");let r=t[Symbol.iterator](),i,o,a=-1;if(arguments.length<3){if({done:i,value:n}=r.next(),i)return;++a}for(;{done:i,value:o}=r.next(),!i;)n=e(n,o,++a,t);return n}function yv(t){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");return Array.from(t).reverse()}function bv(t,...e){t=new On(t);for(let n of e)for(let r of n)t.delete(r);return t}function vv(t,e){let n=e[Symbol.iterator](),r=new On;for(let i of t){if(r.has(i))return!1;let o,a;for(;({value:o,done:a}=n.next())&&!a;){if(Object.is(i,o))return!1;r.add(o)}}return!0}function wv(t,...e){t=new On(t),e=e.map(xv);t:for(let n of t)for(let r of e)if(!r.has(n)){t.delete(n);continue t}return t}function xv(t){return t instanceof On?t:new On(t)}function Zd(t,e){let n=t[Symbol.iterator](),r=new Set;for(let i of e){let o=Fd(i);if(r.has(o))continue;let a,s;for(;{value:a,done:s}=n.next();){if(s)return!1;let c=Fd(a);if(r.add(c),Object.is(o,c))break}}return!0}function Fd(t){return t!==null&&typeof t=="object"?t.valueOf():t}function _v(t,e){return Zd(e,t)}function Sv(...t){let e=new On;for(let n of t)for(let r of n)e.add(r);return e}function kv(t){return t}var Qa=1,Ja=2,zc=3,so=4,Kd=1e-6;function Av(t){return"translate("+t+",0)"}function Ev(t){return"translate(0,"+t+")"}function Mv(t){return e=>+t(e)}function Cv(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function Fv(){return!this.__axis}function ts(t,e){var n=[],r=null,i=null,o=6,a=6,s=3,c=typeof window<"u"&&window.devicePixelRatio>1?0:.5,l=t===Qa||t===so?-1:1,u=t===so||t===Ja?"x":"y",h=t===Qa||t===zc?Av:Ev;function f(d){var m=r??(e.ticks?e.ticks.apply(e,n):e.domain()),p=i??(e.tickFormat?e.tickFormat.apply(e,n):kv),g=Math.max(o,0)+s,y=e.range(),w=+y[0]+c,b=+y[y.length-1]+c,v=(e.bandwidth?Cv:Mv)(e.copy(),c),_=d.selection?d.selection():d,S=_.selectAll(".domain").data([null]),k=_.selectAll(".tick").data(m,e).order(),C=k.exit(),F=k.enter().append("g").attr("class","tick"),A=k.select("line"),E=k.select("text");S=S.merge(S.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),k=k.merge(F),A=A.merge(F.append("line").attr("stroke","currentColor").attr(u+"2",l*o)),E=E.merge(F.append("text").attr("fill","currentColor").attr(u,l*g).attr("dy",t===Qa?"0em":t===zc?"0.71em":"0.32em")),d!==_&&(S=S.transition(d),k=k.transition(d),A=A.transition(d),E=E.transition(d),C=C.transition(d).attr("opacity",Kd).attr("transform",function(D){return isFinite(D=v(D))?h(D+c):this.getAttribute("transform")}),F.attr("opacity",Kd).attr("transform",function(D){var z=this.parentNode.__axis;return h((z&&isFinite(z=z(D))?z:v(D))+c)})),C.remove(),S.attr("d",t===so||t===Ja?a?"M"+l*a+","+w+"H"+c+"V"+b+"H"+l*a:"M"+c+","+w+"V"+b:a?"M"+w+","+l*a+"V"+c+"H"+b+"V"+l*a:"M"+w+","+c+"H"+b),k.attr("opacity",1).attr("transform",function(D){return h(v(D)+c)}),A.attr(u+"2",l*o),E.attr(u,l*g).text(p),_.filter(Fv).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Ja?"start":t===so?"end":"middle"),_.each(function(){this.__axis=v})}return f.scale=function(d){return arguments.length?(e=d,f):e},f.ticks=function(){return n=Array.from(arguments),f},f.tickArguments=function(d){return arguments.length?(n=d==null?[]:Array.from(d),f):n.slice()},f.tickValues=function(d){return arguments.length?(r=d==null?null:Array.from(d),f):r&&r.slice()},f.tickFormat=function(d){return arguments.length?(i=d,f):i},f.tickSize=function(d){return arguments.length?(o=a=+d,f):o},f.tickSizeInner=function(d){return arguments.length?(o=+d,f):o},f.tickSizeOuter=function(d){return arguments.length?(a=+d,f):a},f.tickPadding=function(d){return arguments.length?(s=+d,f):s},f.offset=function(d){return arguments.length?(c=+d,f):c},f}function Tv(t){return ts(Qa,t)}function Ov(t){return ts(Ja,t)}function Bv(t){return ts(zc,t)}function Dv(t){return ts(so,t)}var $v={value:()=>{}};function Ye(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new es(n)}function es(t){this._=t}function zv(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}es.prototype=Ye.prototype={constructor:es,on:function(t,e){var n=this._,r=zv(t+"",n),i,o=-1,a=r.length;if(arguments.length<2){for(;++o<a;)if((i=(t=r[o]).type)&&(i=Nv(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++o<a;)if(i=(t=r[o]).type)n[i]=Qd(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Qd(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new es(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,o;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};function Nv(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Qd(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=$v,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var Nc="http://www.w3.org/1999/xhtml",Rc={svg:"http://www.w3.org/2000/svg",xhtml:Nc,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function li(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),Rc.hasOwnProperty(e)?{space:Rc[e],local:t}:t}function Rv(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===Nc&&e.documentElement.namespaceURI===Nc?e.createElement(t):e.createElementNS(n,t)}}function Pv(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function rs(t){var e=li(t);return(e.local?Pv:Rv)(e)}function Iv(){}function lo(t){return t==null?Iv:function(){return this.querySelector(t)}}function Lv(t){typeof t!="function"&&(t=lo(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=new Array(a),c,l,u=0;u<a;++u)(c=o[u])&&(l=t.call(c,c.__data__,u,o))&&("__data__"in c&&(l.__data__=c.__data__),s[u]=l);return new ye(r,this._parents)}function Jd(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function qv(){return[]}function is(t){return t==null?qv:function(){return this.querySelectorAll(t)}}function Yv(t){return function(){return Jd(t.apply(this,arguments))}}function Uv(t){typeof t=="function"?t=Yv(t):t=is(t);for(var e=this._groups,n=e.length,r=[],i=[],o=0;o<n;++o)for(var a=e[o],s=a.length,c,l=0;l<s;++l)(c=a[l])&&(r.push(t.call(c,c.__data__,l,a)),i.push(c));return new ye(r,i)}function os(t){return function(){return this.matches(t)}}function t0(t){return function(e){return e.matches(t)}}var Hv=Array.prototype.find;function Wv(t){return function(){return Hv.call(this.children,t)}}function jv(){return this.firstElementChild}function Xv(t){return this.select(t==null?jv:Wv(typeof t=="function"?t:t0(t)))}var Gv=Array.prototype.filter;function Vv(){return Array.from(this.children)}function Zv(t){return function(){return Gv.call(this.children,t)}}function Kv(t){return this.selectAll(t==null?Vv:Zv(typeof t=="function"?t:t0(t)))}function Qv(t){typeof t!="function"&&(t=os(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=[],c,l=0;l<a;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&s.push(c);return new ye(r,this._parents)}function e0(t){return new Array(t.length)}function Jv(){return new ye(this._enter||this._groups.map(e0),this._parents)}function ns(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}ns.prototype={constructor:ns,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function tw(t){return function(){return t}}function ew(t,e,n,r,i,o){for(var a=0,s,c=e.length,l=o.length;a<l;++a)(s=e[a])?(s.__data__=o[a],r[a]=s):n[a]=new ns(t,o[a]);for(;a<c;++a)(s=e[a])&&(i[a]=s)}function nw(t,e,n,r,i,o,a){var s,c,l=new Map,u=e.length,h=o.length,f=new Array(u),d;for(s=0;s<u;++s)(c=e[s])&&(f[s]=d=a.call(c,c.__data__,s,e)+"",l.has(d)?i[s]=c:l.set(d,c));for(s=0;s<h;++s)d=a.call(t,o[s],s,o)+"",(c=l.get(d))?(r[s]=c,c.__data__=o[s],l.delete(d)):n[s]=new ns(t,o[s]);for(s=0;s<u;++s)(c=e[s])&&l.get(f[s])===c&&(i[s]=c)}function rw(t){return t.__data__}function iw(t,e){if(!arguments.length)return Array.from(this,rw);var n=e?nw:ew,r=this._parents,i=this._groups;typeof t!="function"&&(t=tw(t));for(var o=i.length,a=new Array(o),s=new Array(o),c=new Array(o),l=0;l<o;++l){var u=r[l],h=i[l],f=h.length,d=ow(t.call(u,u&&u.__data__,l,r)),m=d.length,p=s[l]=new Array(m),g=a[l]=new Array(m),y=c[l]=new Array(f);n(u,h,p,g,y,d,e);for(var w=0,b=0,v,_;w<m;++w)if(v=p[w]){for(w>=b&&(b=w+1);!(_=g[b])&&++b<m;);v._next=_||null}}return a=new ye(a,r),a._enter=s,a._exit=c,a}function ow(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function aw(){return new ye(this._exit||this._groups.map(e0),this._parents)}function sw(t,e,n){var r=this.enter(),i=this,o=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),n==null?o.remove():n(o),r&&i?r.merge(i).order():i}function lw(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,a=Math.min(i,o),s=new Array(i),c=0;c<a;++c)for(var l=n[c],u=r[c],h=l.length,f=s[c]=new Array(h),d,m=0;m<h;++m)(d=l[m]||u[m])&&(f[m]=d);for(;c<i;++c)s[c]=n[c];return new ye(s,this._parents)}function cw(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],i=r.length-1,o=r[i],a;--i>=0;)(a=r[i])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function uw(t){t||(t=fw);function e(h,f){return h&&f?t(h.__data__,f.__data__):!h-!f}for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var a=n[o],s=a.length,c=i[o]=new Array(s),l,u=0;u<s;++u)(l=a[u])&&(c[u]=l);c.sort(e)}return new ye(i,this._parents).order()}function fw(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function hw(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function dw(){return Array.from(this)}function pw(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null}function gw(){let t=0;for(let e of this)++t;return t}function mw(){return!this.node()}function yw(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,a=i.length,s;o<a;++o)(s=i[o])&&t.call(s,s.__data__,o,i);return this}function bw(t){return function(){this.removeAttribute(t)}}function vw(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ww(t,e){return function(){this.setAttribute(t,e)}}function xw(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function _w(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function Sw(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function kw(t,e){var n=li(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?vw:bw:typeof e=="function"?n.local?Sw:_w:n.local?xw:ww)(n,e))}function Ic(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Aw(t){return function(){this.style.removeProperty(t)}}function Ew(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Mw(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function Cw(t,e,n){return arguments.length>1?this.each((e==null?Aw:typeof e=="function"?Mw:Ew)(t,e,n??"")):rr(this.node(),t)}function rr(t,e){return t.style.getPropertyValue(e)||Ic(t).getComputedStyle(t,null).getPropertyValue(e)}function Fw(t){return function(){delete this[t]}}function Tw(t,e){return function(){this[t]=e}}function Ow(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Bw(t,e){return arguments.length>1?this.each((e==null?Fw:typeof e=="function"?Ow:Tw)(t,e)):this.node()[t]}function n0(t){return t.trim().split(/^|\s+/)}function Lc(t){return t.classList||new r0(t)}function r0(t){this._node=t,this._names=n0(t.getAttribute("class")||"")}r0.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function i0(t,e){for(var n=Lc(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function o0(t,e){for(var n=Lc(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function Dw(t){return function(){i0(this,t)}}function $w(t){return function(){o0(this,t)}}function zw(t,e){return function(){(e.apply(this,arguments)?i0:o0)(this,t)}}function Nw(t,e){var n=n0(t+"");if(arguments.length<2){for(var r=Lc(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?zw:e?Dw:$w)(n,e))}function Rw(){this.textContent=""}function Pw(t){return function(){this.textContent=t}}function Iw(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Lw(t){return arguments.length?this.each(t==null?Rw:(typeof t=="function"?Iw:Pw)(t)):this.node().textContent}function qw(){this.innerHTML=""}function Yw(t){return function(){this.innerHTML=t}}function Uw(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Hw(t){return arguments.length?this.each(t==null?qw:(typeof t=="function"?Uw:Yw)(t)):this.node().innerHTML}function Ww(){this.nextSibling&&this.parentNode.appendChild(this)}function jw(){return this.each(Ww)}function Xw(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Gw(){return this.each(Xw)}function Vw(t){var e=typeof t=="function"?t:rs(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function Zw(){return null}function Kw(t,e){var n=typeof t=="function"?t:rs(t),r=e==null?Zw:typeof e=="function"?e:lo(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Qw(){var t=this.parentNode;t&&t.removeChild(this)}function Jw(){return this.each(Qw)}function tx(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ex(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function nx(t){return this.select(t?ex:tx)}function rx(t){return arguments.length?this.property("__data__",t):this.node().__data__}function ix(t){return function(e){t.call(this,e,this.__data__)}}function ox(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function ax(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,i=e.length,o;n<i;++n)o=e[n],(!t.type||o.type===t.type)&&o.name===t.name?this.removeEventListener(o.type,o.listener,o.options):e[++r]=o;++r?e.length=r:delete this.__on}}}function sx(t,e,n){return function(){var r=this.__on,i,o=ix(e);if(r){for(var a=0,s=r.length;a<s;++a)if((i=r[a]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=o,i.options=n),i.value=e;return}}this.addEventListener(t.type,o,n),i={type:t.type,name:t.name,value:e,listener:o,options:n},r?r.push(i):this.__on=[i]}}function lx(t,e,n){var r=ox(t+""),i,o=r.length,a;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<o;++i)if((a=r[i]).type===u.type&&a.name===u.name)return u.value}return}for(s=e?sx:ax,i=0;i<o;++i)this.each(s(r[i],e,n));return this}function a0(t,e,n){var r=Ic(t),i=r.CustomEvent;typeof i=="function"?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function cx(t,e){return function(){return a0(this,t,e)}}function ux(t,e){return function(){return a0(this,t,e.apply(this,arguments))}}function fx(t,e){return this.each((typeof e=="function"?ux:cx)(t,e))}function*hx(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length,a;i<o;++i)(a=r[i])&&(yield a)}var qc=[null];function ye(t,e){this._groups=t,this._parents=e}function ir(){return new ye([[document.documentElement]],qc)}function dx(){return this}ye.prototype=ir.prototype={constructor:ye,select:Lv,selectAll:Uv,selectChild:Xv,selectChildren:Kv,filter:Qv,data:iw,enter:Jv,exit:aw,join:sw,merge:lw,selection:dx,order:cw,sort:uw,call:hw,nodes:dw,node:pw,size:gw,empty:mw,each:yw,attr:kw,style:Cw,property:Bw,classed:Nw,text:Lw,html:Hw,raise:jw,lower:Gw,append:Vw,insert:Kw,remove:Jw,clone:nx,datum:rx,on:lx,dispatch:fx,[Symbol.iterator]:hx};function Xt(t){return typeof t=="string"?new ye([[document.querySelector(t)]],[document.documentElement]):new ye([[t]],qc)}function px(t){return Xt(rs(t).call(document.documentElement))}var gx=0;function s0(){return new Pc}function Pc(){this._="@"+(++gx).toString(36)}Pc.prototype=s0.prototype={constructor:Pc,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};function l0(t){let e;for(;e=t.sourceEvent;)t=e;return t}function le(t,e){if(t=l0(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}function mx(t,e){return t.target&&(t=l0(t),e===void 0&&(e=t.currentTarget),t=t.touches||[t]),Array.from(t,n=>le(n,e))}function yx(t){return typeof t=="string"?new ye([document.querySelectorAll(t)],[document.documentElement]):new ye([Jd(t)],qc)}var bx={passive:!1},co={capture:!0,passive:!1};function Yc(t){t.stopImmediatePropagation()}function ci(t){t.preventDefault(),t.stopImmediatePropagation()}function ui(t){var e=t.document.documentElement,n=Xt(t).on("dragstart.drag",ci,co);"onselectstart"in e?n.on("selectstart.drag",ci,co):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function fi(t,e){var n=t.document.documentElement,r=Xt(t).on("dragstart.drag",null);e&&(r.on("click.drag",ci,co),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var as=t=>()=>t;function Uc(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:o,x:a,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Uc.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function vx(t){return!t.ctrlKey&&!t.button}function wx(){return this.parentNode}function xx(t,e){return e??{x:t.x,y:t.y}}function _x(){return navigator.maxTouchPoints||"ontouchstart"in this}function Sx(){var t=vx,e=wx,n=xx,r=_x,i={},o=Ye("start","drag","end"),a=0,s,c,l,u,h=0;function f(v){v.on("mousedown.drag",d).filter(r).on("touchstart.drag",g).on("touchmove.drag",y,bx).on("touchend.drag touchcancel.drag",w).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(v,_){if(!(u||!t.call(this,v,_))){var S=b(this,e.call(this,v,_),v,_,"mouse");S&&(Xt(v.view).on("mousemove.drag",m,co).on("mouseup.drag",p,co),ui(v.view),Yc(v),l=!1,s=v.clientX,c=v.clientY,S("start",v))}}function m(v){if(ci(v),!l){var _=v.clientX-s,S=v.clientY-c;l=_*_+S*S>h}i.mouse("drag",v)}function p(v){Xt(v.view).on("mousemove.drag mouseup.drag",null),fi(v.view,l),ci(v),i.mouse("end",v)}function g(v,_){if(t.call(this,v,_)){var S=v.changedTouches,k=e.call(this,v,_),C=S.length,F,A;for(F=0;F<C;++F)(A=b(this,k,v,_,S[F].identifier,S[F]))&&(Yc(v),A("start",v,S[F]))}}function y(v){var _=v.changedTouches,S=_.length,k,C;for(k=0;k<S;++k)(C=i[_[k].identifier])&&(ci(v),C("drag",v,_[k]))}function w(v){var _=v.changedTouches,S=_.length,k,C;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),k=0;k<S;++k)(C=i[_[k].identifier])&&(Yc(v),C("end",v,_[k]))}function b(v,_,S,k,C,F){var A=o.copy(),E=le(F||S,_),D,z,M;if((M=n.call(v,new Uc("beforestart",{sourceEvent:S,target:f,identifier:C,active:a,x:E[0],y:E[1],dx:0,dy:0,dispatch:A}),k))!=null)return D=M.x-E[0]||0,z=M.y-E[1]||0,function T(B,N,L){var q=E,U;switch(B){case"start":i[C]=T,U=a++;break;case"end":delete i[C],--a;case"drag":E=le(L||N,_),U=a;break}A.call(B,v,new Uc(B,{sourceEvent:N,subject:M,target:f,identifier:C,active:U,x:E[0]+D,y:E[1]+z,dx:E[0]-q[0],dy:E[1]-q[1],dispatch:A}),k)}}return f.filter=function(v){return arguments.length?(t=typeof v=="function"?v:as(!!v),f):t},f.container=function(v){return arguments.length?(e=typeof v=="function"?v:as(v),f):e},f.subject=function(v){return arguments.length?(n=typeof v=="function"?v:as(v),f):n},f.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:as(!!v),f):r},f.on=function(){var v=o.on.apply(o,arguments);return v===o?f:v},f.clickDistance=function(v){return arguments.length?(h=(v=+v)*v,f):Math.sqrt(h)},f}function gi(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function ho(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function or(){}var Mr=.7,pi=1/Mr,hi="\\s*([+-]?\\d+)\\s*",uo="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",gn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",kx=/^#([0-9a-f]{3,8})$/,Ax=new RegExp(`^rgb\\(${hi},${hi},${hi}\\)$`),Ex=new RegExp(`^rgb\\(${gn},${gn},${gn}\\)$`),Mx=new RegExp(`^rgba\\(${hi},${hi},${hi},${uo}\\)$`),Cx=new RegExp(`^rgba\\(${gn},${gn},${gn},${uo}\\)$`),Fx=new RegExp(`^hsl\\(${uo},${gn},${gn}\\)$`),Tx=new RegExp(`^hsla\\(${uo},${gn},${gn},${uo}\\)$`),c0={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};gi(or,mn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:u0,formatHex:u0,formatHex8:Ox,formatHsl:Bx,formatRgb:f0,toString:f0});function u0(){return this.rgb().formatHex()}function Ox(){return this.rgb().formatHex8()}function Bx(){return w0(this).formatHsl()}function f0(){return this.rgb().formatRgb()}function mn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=kx.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?h0(e):n===3?new Kt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?ss(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?ss(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Ax.exec(t))?new Kt(e[1],e[2],e[3],1):(e=Ex.exec(t))?new Kt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Mx.exec(t))?ss(e[1],e[2],e[3],e[4]):(e=Cx.exec(t))?ss(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Fx.exec(t))?g0(e[1],e[2]/100,e[3]/100,1):(e=Tx.exec(t))?g0(e[1],e[2]/100,e[3]/100,e[4]):c0.hasOwnProperty(t)?h0(c0[t]):t==="transparent"?new Kt(NaN,NaN,NaN,0):null}function h0(t){return new Kt(t>>16&255,t>>8&255,t&255,1)}function ss(t,e,n,r){return r<=0&&(t=e=n=NaN),new Kt(t,e,n,r)}function Vc(t){return t instanceof or||(t=mn(t)),t?(t=t.rgb(),new Kt(t.r,t.g,t.b,t.opacity)):new Kt}function ar(t,e,n,r){return arguments.length===1?Vc(t):new Kt(t,e,n,r??1)}function Kt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}gi(Kt,ar,ho(or,{brighter(t){return t=t==null?pi:Math.pow(pi,t),new Kt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Mr:Math.pow(Mr,t),new Kt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Kt(Ar(this.r),Ar(this.g),Ar(this.b),cs(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:d0,formatHex:d0,formatHex8:Dx,formatRgb:p0,toString:p0}));function d0(){return`#${kr(this.r)}${kr(this.g)}${kr(this.b)}`}function Dx(){return`#${kr(this.r)}${kr(this.g)}${kr(this.b)}${kr((isNaN(this.opacity)?1:this.opacity)*255)}`}function p0(){let t=cs(this.opacity);return`${t===1?"rgb(":"rgba("}${Ar(this.r)}, ${Ar(this.g)}, ${Ar(this.b)}${t===1?")":`, ${t})`}`}function cs(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ar(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function kr(t){return t=Ar(t),(t<16?"0":"")+t.toString(16)}function g0(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new an(t,e,n,r)}function w0(t){if(t instanceof an)return new an(t.h,t.s,t.l,t.opacity);if(t instanceof or||(t=mn(t)),!t)return new an;if(t instanceof an)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-e)/s+2:a=(e-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new an(a,s,c,t.opacity)}function po(t,e,n,r){return arguments.length===1?w0(t):new an(t,e,n,r??1)}function an(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}gi(an,po,ho(or,{brighter(t){return t=t==null?pi:Math.pow(pi,t),new an(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Mr:Math.pow(Mr,t),new an(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new Kt(Hc(t>=240?t-240:t+120,i,r),Hc(t,i,r),Hc(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new an(m0(this.h),ls(this.s),ls(this.l),cs(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(){let t=cs(this.opacity);return`${t===1?"hsl(":"hsla("}${m0(this.h)}, ${ls(this.s)*100}%, ${ls(this.l)*100}%${t===1?")":`, ${t})`}`}}));function m0(t){return t=(t||0)%360,t<0?t+360:t}function ls(t){return Math.max(0,Math.min(1,t||0))}function Hc(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}var x0=Math.PI/180,_0=180/Math.PI,us=18,S0=.96422,k0=1,A0=.82521,E0=4/29,di=6/29,M0=3*di*di,$x=di*di*di;function C0(t){if(t instanceof sn)return new sn(t.l,t.a,t.b,t.opacity);if(t instanceof pn)return T0(t);t instanceof Kt||(t=Vc(t));var e=Gc(t.r),n=Gc(t.g),r=Gc(t.b),i=Wc((.2225045*e+.7168786*n+.0606169*r)/k0),o,a;return e===n&&n===r?o=a=i:(o=Wc((.4360747*e+.3850649*n+.1430804*r)/S0),a=Wc((.0139322*e+.0971045*n+.7141733*r)/A0)),new sn(116*i-16,500*(o-i),200*(i-a),t.opacity)}function zx(t,e){return new sn(t,0,0,e??1)}function go(t,e,n,r){return arguments.length===1?C0(t):new sn(t,e,n,r??1)}function sn(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}gi(sn,go,ho(or,{brighter(t){return new sn(this.l+us*(t??1),this.a,this.b,this.opacity)},darker(t){return new sn(this.l-us*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=S0*jc(e),t=k0*jc(t),n=A0*jc(n),new Kt(Xc(3.1338561*e-1.6168667*t-.4906146*n),Xc(-.9787684*e+1.9161415*t+.033454*n),Xc(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Wc(t){return t>$x?Math.pow(t,1/3):t/M0+E0}function jc(t){return t>di?t*t*t:M0*(t-E0)}function Xc(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Gc(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function F0(t){if(t instanceof pn)return new pn(t.h,t.c,t.l,t.opacity);if(t instanceof sn||(t=C0(t)),t.a===0&&t.b===0)return new pn(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*_0;return new pn(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Nx(t,e,n,r){return arguments.length===1?F0(t):new pn(n,e,t,r??1)}function mo(t,e,n,r){return arguments.length===1?F0(t):new pn(t,e,n,r??1)}function pn(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function T0(t){if(isNaN(t.h))return new sn(t.l,0,0,t.opacity);var e=t.h*x0;return new sn(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}gi(pn,mo,ho(or,{brighter(t){return new pn(this.h,this.c,this.l+us*(t??1),this.opacity)},darker(t){return new pn(this.h,this.c,this.l-us*(t??1),this.opacity)},rgb(){return T0(this).rgb()}}));var O0=-.14861,Zc=1.78277,Kc=-.29227,fs=-.90649,fo=1.97294,y0=fo*fs,b0=fo*Zc,v0=Zc*Kc-fs*O0;function Rx(t){if(t instanceof Er)return new Er(t.h,t.s,t.l,t.opacity);t instanceof Kt||(t=Vc(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(v0*r+y0*e-b0*n)/(v0+y0-b0),o=r-i,a=(fo*(n-i)-Kc*o)/fs,s=Math.sqrt(a*a+o*o)/(fo*i*(1-i)),c=s?Math.atan2(a,o)*_0-120:NaN;return new Er(c<0?c+360:c,s,i,t.opacity)}function Re(t,e,n,r){return arguments.length===1?Rx(t):new Er(t,e,n,r??1)}function Er(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}gi(Er,Re,ho(or,{brighter(t){return t=t==null?pi:Math.pow(pi,t),new Er(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Mr:Math.pow(Mr,t),new Er(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*x0,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new Kt(255*(e+n*(O0*r+Zc*i)),255*(e+n*(Kc*r+fs*i)),255*(e+n*(fo*r)),this.opacity)}}));function $0(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function z0(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return $0((n-r/e)*e,a,i,o,s)}}function N0(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return $0((n-r/e)*e,i,o,a,s)}}var ds=t=>()=>t;function R0(t,e){return function(n){return t+n*e}}function Px(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function ps(t,e){var n=e-t;return n?R0(t,n>180||n<-180?n-360*Math.round(n/360):n):ds(isNaN(t)?e:t)}function Ix(t){return(t=+t)==1?Qt:function(e,n){return n-e?Px(e,n,t):ds(isNaN(e)?n:e)}}function Qt(t,e){var n=e-t;return n?R0(t,n):ds(isNaN(t)?e:t)}var mi=(function t(e){var n=Ix(e);function r(i,o){var a=n((i=ar(i)).r,(o=ar(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),l=Qt(i.opacity,o.opacity);return function(u){return i.r=a(u),i.g=s(u),i.b=c(u),i.opacity=l(u),i+""}}return r.gamma=t,r})(1);function P0(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=ar(e[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=t(r),i=t(i),o=t(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var eu=P0(z0),Lx=P0(N0);function nu(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=t[i]*(1-o)+e[i]*o;return r}}function I0(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function qx(t,e){return(I0(e)?nu:L0)(t,e)}function L0(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=yn(t[a],e[a]);for(;a<n;++a)o[a]=e[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function q0(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Fe(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Y0(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=yn(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Jc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qc=new RegExp(Jc.source,"g");function Yx(t){return function(){return t}}function Ux(t){return function(e){return t(e)+""}}function gs(t,e){var n=Jc.lastIndex=Qc.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=Jc.exec(t))&&(i=Qc.exec(e));)(o=i.index)>n&&(o=e.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:Fe(r,i)})),n=Qc.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?Ux(c[0].x):Yx(e):(e=c.length,function(l){for(var u=0,h;u<e;++u)s[(h=c[u]).i]=h.x(l);return s.join("")})}function yn(t,e){var n=typeof e,r;return e==null||n==="boolean"?ds(e):(n==="number"?Fe:n==="string"?(r=mn(e))?(e=r,mi):gs:e instanceof mn?mi:e instanceof Date?q0:I0(e)?nu:Array.isArray(e)?L0:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Y0:Fe)(t,e)}function Hx(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function Wx(t,e){var n=ps(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function yo(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var B0=180/Math.PI,tu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function U0(t,e,n,r,i,o){var a,s,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*B0,skewX:Math.atan(c)*B0,scaleX:a,scaleY:s}}var hs;function jx(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?tu:U0(e.a,e.b,e.c,e.d,e.e,e.f)}function Xx(t){return t==null||(hs||(hs=document.createElementNS("http://www.w3.org/2000/svg","g")),hs.setAttribute("transform",t),!(t=hs.transform.baseVal.consolidate()))?tu:(t=t.matrix,U0(t.a,t.b,t.c,t.d,t.e,t.f))}function H0(t,e,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,u,h,f,d,m){if(l!==h||u!==f){var p=d.push("translate(",null,e,null,n);m.push({i:p-4,x:Fe(l,h)},{i:p-2,x:Fe(u,f)})}else(h||f)&&d.push("translate("+h+e+f+n)}function a(l,u,h,f){l!==u?(l-u>180?u+=360:u-l>180&&(l+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:Fe(l,u)})):u&&h.push(i(h)+"rotate("+u+r)}function s(l,u,h,f){l!==u?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:Fe(l,u)}):u&&h.push(i(h)+"skewX("+u+r)}function c(l,u,h,f,d,m){if(l!==h||u!==f){var p=d.push(i(d)+"scale(",null,",",null,")");m.push({i:p-4,x:Fe(l,h)},{i:p-2,x:Fe(u,f)})}else(h!==1||f!==1)&&d.push(i(d)+"scale("+h+","+f+")")}return function(l,u){var h=[],f=[];return l=t(l),u=t(u),o(l.translateX,l.translateY,u.translateX,u.translateY,h,f),a(l.rotate,u.rotate,h,f),s(l.skewX,u.skewX,h,f),c(l.scaleX,l.scaleY,u.scaleX,u.scaleY,h,f),l=u=null,function(d){for(var m=-1,p=f.length,g;++m<p;)h[(g=f[m]).i]=g.x(d);return h.join("")}}}var ru=H0(jx,"px, ","px)","deg)"),iu=H0(Xx,", ",")",")"),Gx=1e-12;function D0(t){return((t=Math.exp(t))+1/t)/2}function Vx(t){return((t=Math.exp(t))-1/t)/2}function Zx(t){return((t=Math.exp(2*t))-1)/(t+1)}var ou=(function t(e,n,r){function i(o,a){var s=o[0],c=o[1],l=o[2],u=a[0],h=a[1],f=a[2],d=u-s,m=h-c,p=d*d+m*m,g,y;if(p<Gx)y=Math.log(f/l)/e,g=function(k){return[s+k*d,c+k*m,l*Math.exp(e*k*y)]};else{var w=Math.sqrt(p),b=(f*f-l*l+r*p)/(2*l*n*w),v=(f*f-l*l-r*p)/(2*f*n*w),_=Math.log(Math.sqrt(b*b+1)-b),S=Math.log(Math.sqrt(v*v+1)-v);y=(S-_)/e,g=function(k){var C=k*y,F=D0(_),A=l/(n*w)*(F*Zx(e*C+_)-Vx(_));return[s+A*d,c+A*m,l*F/D0(e*C+_)]}}return g.duration=Math.abs(y)*1e3*e/Math.SQRT2,g}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return t(a,s,c)},i})(Math.SQRT2,2,4);function W0(t){return function(e,n){var r=t((e=po(e)).h,(n=po(n)).h),i=Qt(e.s,n.s),o=Qt(e.l,n.l),a=Qt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=o(s),e.opacity=a(s),e+""}}}var Kx=W0(ps),Qx=W0(Qt);function Jx(t,e){var n=Qt((t=go(t)).l,(e=go(e)).l),r=Qt(t.a,e.a),i=Qt(t.b,e.b),o=Qt(t.opacity,e.opacity);return function(a){return t.l=n(a),t.a=r(a),t.b=i(a),t.opacity=o(a),t+""}}function j0(t){return function(e,n){var r=t((e=mo(e)).h,(n=mo(n)).h),i=Qt(e.c,n.c),o=Qt(e.l,n.l),a=Qt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=o(s),e.opacity=a(s),e+""}}}var t3=j0(ps),e3=j0(Qt);function X0(t){return(function e(n){n=+n;function r(i,o){var a=t((i=Re(i)).h,(o=Re(o)).h),s=Qt(i.s,o.s),c=Qt(i.l,o.l),l=Qt(i.opacity,o.opacity);return function(u){return i.h=a(u),i.s=s(u),i.l=c(Math.pow(u,n)),i.opacity=l(u),i+""}}return r.gamma=e,r})(1)}var n3=X0(ps),bo=X0(Qt);function au(t,e){e===void 0&&(e=t,t=yn);for(var n=0,r=e.length-1,i=e[0],o=new Array(r<0?0:r);n<r;)o[n]=t(i,i=e[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function r3(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}var yi=0,wo=0,vo=0,V0=1e3,ms,xo,ys=0,Cr=0,bs=0,_o=typeof performance=="object"&&performance.now?performance:Date,Z0=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function bi(){return Cr||(Z0(i3),Cr=_o.now()+bs)}function i3(){Cr=0}function So(){this._call=this._time=this._next=null}So.prototype=vi.prototype={constructor:So,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?bi():+n)+(e==null?0:+e),!this._next&&xo!==this&&(xo?xo._next=this:ms=this,xo=this),this._call=t,this._time=n,su()},stop:function(){this._call&&(this._call=null,this._time=1/0,su())}};function vi(t,e,n){var r=new So;return r.restart(t,e,n),r}function K0(){bi(),++yi;for(var t=ms,e;t;)(e=Cr-t._time)>=0&&t._call.call(void 0,e),t=t._next;--yi}function G0(){Cr=(ys=_o.now())+bs,yi=wo=0;try{K0()}finally{yi=0,a3(),Cr=0}}function o3(){var t=_o.now(),e=t-ys;e>V0&&(bs-=e,ys=t)}function a3(){for(var t,e=ms,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:ms=n);xo=t,su(r)}function su(t){if(!yi){wo&&(wo=clearTimeout(wo));var e=t-Cr;e>24?(t<1/0&&(wo=setTimeout(G0,Math.ceil(t-_o.now()-bs)+1)),vo&&(vo=clearInterval(vo))):(vo||(ys=_o.now(),vo=setInterval(o3,V0)),yi=1,Z0(G0))}}function vs(t,e,n){var r=new So;return e=e==null?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,n),r}function s3(t,e,n){var r=new So,i=e;return e==null?(r.restart(t,e,n),r):(r._restart=r.restart,r.restart=function(o,a,s){a=+a,s=s==null?bi():+s,r._restart(function c(l){l+=i,r._restart(c,i+=a,s),o(l)},a,s)},r.restart(t,e,n),r)}var l3=t=>+t;function c3(t){return t*t}function u3(t){return t*(2-t)}function f3(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function h3(t){return t*t*t}function d3(t){return--t*t*t+1}function cu(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var uu=3,p3=(function t(e){e=+e;function n(r){return Math.pow(r,e)}return n.exponent=t,n})(uu),g3=(function t(e){e=+e;function n(r){return 1-Math.pow(1-r,e)}return n.exponent=t,n})(uu),m3=(function t(e){e=+e;function n(r){return((r*=2)<=1?Math.pow(r,e):2-Math.pow(2-r,e))/2}return n.exponent=t,n})(uu),Q0=Math.PI,J0=Q0/2;function y3(t){return+t==1?1:1-Math.cos(t*J0)}function b3(t){return Math.sin(t*J0)}function v3(t){return(1-Math.cos(Q0*t))/2}function sr(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function w3(t){return sr(1-+t)}function x3(t){return 1-sr(t)}function _3(t){return((t*=2)<=1?sr(1-t):2-sr(t-1))/2}function S3(t){return 1-Math.sqrt(1-t*t)}function k3(t){return Math.sqrt(1- --t*t)}function A3(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var lu=4/11,E3=6/11,M3=8/11,C3=3/4,F3=9/11,T3=10/11,O3=15/16,B3=21/22,D3=63/64,ws=1/lu/lu;function $3(t){return 1-xs(1-t)}function xs(t){return(t=+t)<lu?ws*t*t:t<M3?ws*(t-=E3)*t+C3:t<T3?ws*(t-=F3)*t+O3:ws*(t-=B3)*t+D3}function z3(t){return((t*=2)<=1?1-xs(1-t):xs(t-1)+1)/2}var fu=1.70158,N3=(function t(e){e=+e;function n(r){return(r=+r)*r*(e*(r-1)+r)}return n.overshoot=t,n})(fu),R3=(function t(e){e=+e;function n(r){return--r*r*((r+1)*e+r)+1}return n.overshoot=t,n})(fu),P3=(function t(e){e=+e;function n(r){return((r*=2)<1?r*r*((e+1)*r-e):(r-=2)*r*((e+1)*r+e)+2)/2}return n.overshoot=t,n})(fu),wi=2*Math.PI,hu=1,du=.3,I3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=wi);function i(o){return e*sr(- --o)*Math.sin((r-o)/n)}return i.amplitude=function(o){return t(o,n*wi)},i.period=function(o){return t(e,o)},i})(hu,du),L3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=wi);function i(o){return 1-e*sr(o=+o)*Math.sin((o+r)/n)}return i.amplitude=function(o){return t(o,n*wi)},i.period=function(o){return t(e,o)},i})(hu,du),q3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=wi);function i(o){return((o=o*2-1)<0?e*sr(-o)*Math.sin((r-o)/n):2-e*sr(o)*Math.sin((r+o)/n))/2}return i.amplitude=function(o){return t(o,n*wi)},i.period=function(o){return t(e,o)},i})(hu,du);var Y3=Ye("start","end","cancel","interrupt"),U3=[],ep=0,pu=1,gu=2,_s=3,tp=4,mu=5,Ss=6;function ks(t,e,n,r,i,o){var a=t.__transition;if(!a)t.__transition={};else if(n in a)return;H3(t,n,{name:e,index:r,group:i,on:Y3,tween:U3,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:ep})}function yu(t,e){var n=ln(t,e);if(n.state>ep)throw new Error("too late; already scheduled");return n}function vn(t,e){var n=ln(t,e);if(n.state>_s)throw new Error("too late; already running");return n}function ln(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function H3(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=vi(o,0,n.time);function o(l){n.state=pu,n.timer.restart(a,n.delay,n.time),n.delay<=l&&a(l-n.delay)}function a(l){var u,h,f,d;if(n.state!==pu)return c();for(u in r)if(d=r[u],d.name===n.name){if(d.state===_s)return vs(a);d.state===tp?(d.state=Ss,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[u]):+u<e&&(d.state=Ss,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[u])}if(vs(function(){n.state===_s&&(n.state=tp,n.timer.restart(s,n.delay,n.time),s(l))}),n.state=gu,n.on.call("start",t,t.__data__,n.index,n.group),n.state===gu){for(n.state=_s,i=new Array(f=n.tween.length),u=0,h=-1;u<f;++u)(d=n.tween[u].value.call(t,t.__data__,n.index,n.group))&&(i[++h]=d);i.length=h+1}}function s(l){for(var u=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=mu,1),h=-1,f=i.length;++h<f;)i[h].call(t,u);n.state===mu&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){n.state=Ss,n.timer.stop(),delete r[e];for(var l in r)return;delete t.__transition}}function $n(t,e){var n=t.__transition,r,i,o=!0,a;if(n){e=e==null?null:e+"";for(a in n){if((r=n[a]).name!==e){o=!1;continue}i=r.state>gu&&r.state<mu,r.state=Ss,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[a]}o&&delete t.__transition}}function W3(t){return this.each(function(){$n(this,t)})}function j3(t,e){var n,r;return function(){var i=vn(this,t),o=i.tween;if(o!==n){r=n=o;for(var a=0,s=r.length;a<s;++a)if(r[a].name===e){r=r.slice(),r.splice(a,1);break}}i.tween=r}}function X3(t,e,n){var r,i;if(typeof n!="function")throw new Error;return function(){var o=vn(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var s={name:e,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===e){i[c]=s;break}c===l&&i.push(s)}o.tween=i}}function G3(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=ln(this.node(),n).tween,i=0,o=r.length,a;i<o;++i)if((a=r[i]).name===t)return a.value;return null}return this.each((e==null?j3:X3)(n,t,e))}function bu(t,e,n){var r=t._id;return t.each(function(){var i=vn(this,r);(i.value||(i.value={}))[e]=n.apply(this,arguments)}),function(i){return ln(i,r).value[e]}}function np(t,e){var n;return(typeof e=="number"?Fe:e instanceof mn?mi:(n=mn(e))?(e=n,mi):gs)(t,e)}function V3(t){return function(){this.removeAttribute(t)}}function Z3(t){return function(){this.removeAttributeNS(t.space,t.local)}}function K3(t,e,n){var r,i=n+"",o;return function(){var a=this.getAttribute(t);return a===i?null:a===r?o:o=e(r=a,n)}}function Q3(t,e,n){var r,i=n+"",o;return function(){var a=this.getAttributeNS(t.space,t.local);return a===i?null:a===r?o:o=e(r=a,n)}}function J3(t,e,n){var r,i,o;return function(){var a,s=n(this),c;return s==null?void this.removeAttribute(t):(a=this.getAttribute(t),c=s+"",a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s)))}}function t5(t,e,n){var r,i,o;return function(){var a,s=n(this),c;return s==null?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local),c=s+"",a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s)))}}function e5(t,e){var n=li(t),r=n==="transform"?iu:np;return this.attrTween(t,typeof e=="function"?(n.local?t5:J3)(n,r,bu(this,"attr."+t,e)):e==null?(n.local?Z3:V3)(n):(n.local?Q3:K3)(n,r,e))}function n5(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function r5(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function i5(t,e){var n,r;function i(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&r5(t,o)),n}return i._value=e,i}function o5(t,e){var n,r;function i(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&n5(t,o)),n}return i._value=e,i}function a5(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=li(t);return this.tween(n,(r.local?i5:o5)(r,e))}function s5(t,e){return function(){yu(this,t).delay=+e.apply(this,arguments)}}function l5(t,e){return e=+e,function(){yu(this,t).delay=e}}function c5(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?s5:l5)(e,t)):ln(this.node(),e).delay}function u5(t,e){return function(){vn(this,t).duration=+e.apply(this,arguments)}}function f5(t,e){return e=+e,function(){vn(this,t).duration=e}}function h5(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?u5:f5)(e,t)):ln(this.node(),e).duration}function d5(t,e){if(typeof e!="function")throw new Error;return function(){vn(this,t).ease=e}}function p5(t){var e=this._id;return arguments.length?this.each(d5(e,t)):ln(this.node(),e).ease}function g5(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;vn(this,t).ease=n}}function m5(t){if(typeof t!="function")throw new Error;return this.each(g5(this._id,t))}function y5(t){typeof t!="function"&&(t=os(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=[],c,l=0;l<a;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&s.push(c);return new bn(r,this._parents,this._name,this._id)}function b5(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=new Array(r),s=0;s<o;++s)for(var c=e[s],l=n[s],u=c.length,h=a[s]=new Array(u),f,d=0;d<u;++d)(f=c[d]||l[d])&&(h[d]=f);for(;s<r;++s)a[s]=e[s];return new bn(a,this._parents,this._name,this._id)}function v5(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function w5(t,e,n){var r,i,o=v5(e)?yu:vn;return function(){var a=o(this,t),s=a.on;s!==r&&(i=(r=s).copy()).on(e,n),a.on=i}}function x5(t,e){var n=this._id;return arguments.length<2?ln(this.node(),n).on.on(t):this.each(w5(n,t,e))}function _5(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function S5(){return this.on("end.remove",_5(this._id))}function k5(t){var e=this._name,n=this._id;typeof t!="function"&&(t=lo(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var s=r[a],c=s.length,l=o[a]=new Array(c),u,h,f=0;f<c;++f)(u=s[f])&&(h=t.call(u,u.__data__,f,s))&&("__data__"in u&&(h.__data__=u.__data__),l[f]=h,ks(l[f],e,n,f,l,ln(u,n)));return new bn(o,this._parents,e,n)}function A5(t){var e=this._name,n=this._id;typeof t!="function"&&(t=is(t));for(var r=this._groups,i=r.length,o=[],a=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,h=0;h<l;++h)if(u=c[h]){for(var f=t.call(u,u.__data__,h,c),d,m=ln(u,n),p=0,g=f.length;p<g;++p)(d=f[p])&&ks(d,e,n,p,f,m);o.push(f),a.push(u)}return new bn(o,a,e,n)}var E5=ir.prototype.constructor;function M5(){return new E5(this._groups,this._parents)}function C5(t,e){var n,r,i;return function(){var o=rr(this,t),a=(this.style.removeProperty(t),rr(this,t));return o===a?null:o===n&&a===r?i:i=e(n=o,r=a)}}function rp(t){return function(){this.style.removeProperty(t)}}function F5(t,e,n){var r,i=n+"",o;return function(){var a=rr(this,t);return a===i?null:a===r?o:o=e(r=a,n)}}function T5(t,e,n){var r,i,o;return function(){var a=rr(this,t),s=n(this),c=s+"";return s==null&&(c=s=(this.style.removeProperty(t),rr(this,t))),a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s))}}function O5(t,e){var n,r,i,o="style."+e,a="end."+o,s;return function(){var c=vn(this,t),l=c.on,u=c.value[o]==null?s||(s=rp(e)):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(a,i=u),c.on=r}}function B5(t,e,n){var r=(t+="")=="transform"?ru:np;return e==null?this.styleTween(t,C5(t,r)).on("end.style."+t,rp(t)):typeof e=="function"?this.styleTween(t,T5(t,r,bu(this,"style."+t,e))).each(O5(this._id,t)):this.styleTween(t,F5(t,r,e),n).on("end.style."+t,null)}function D5(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function $5(t,e,n){var r,i;function o(){var a=e.apply(this,arguments);return a!==i&&(r=(i=a)&&D5(t,a,n)),r}return o._value=e,o}function z5(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,$5(t,e,n??""))}function N5(t){return function(){this.textContent=t}}function R5(t){return function(){var e=t(this);this.textContent=e??""}}function P5(t){return this.tween("text",typeof t=="function"?R5(bu(this,"text",t)):N5(t==null?"":t+""))}function I5(t){return function(e){this.textContent=t.call(this,e)}}function L5(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&I5(i)),e}return r._value=t,r}function q5(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,L5(t))}function Y5(){for(var t=this._name,e=this._id,n=op(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a=r[o],s=a.length,c,l=0;l<s;++l)if(c=a[l]){var u=ln(c,e);ks(c,t,n,l,a,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new bn(r,this._parents,t,n)}function U5(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(o,a){var s={value:a},c={value:function(){--i===0&&o()}};n.each(function(){var l=vn(this,r),u=l.on;u!==t&&(e=(t=u).copy(),e._.cancel.push(s),e._.interrupt.push(s),e._.end.push(c)),l.on=e}),i===0&&o()})}var H5=0;function bn(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function ip(t){return ir().transition(t)}function op(){return++H5}var Dn=ir.prototype;bn.prototype=ip.prototype={constructor:bn,select:k5,selectAll:A5,selectChild:Dn.selectChild,selectChildren:Dn.selectChildren,filter:y5,merge:b5,selection:M5,transition:Y5,call:Dn.call,nodes:Dn.nodes,node:Dn.node,size:Dn.size,empty:Dn.empty,each:Dn.each,on:x5,attr:e5,attrTween:a5,style:B5,styleTween:z5,text:P5,textTween:q5,remove:S5,tween:G3,delay:c5,duration:h5,ease:p5,easeVarying:m5,end:U5,[Symbol.iterator]:Dn[Symbol.iterator]};var W5={time:null,delay:0,duration:250,ease:cu};function j5(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function X5(t){var e,n;t instanceof bn?(e=t._id,t=t._name):(e=op(),(n=W5).time=bi(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a=r[o],s=a.length,c,l=0;l<s;++l)(c=a[l])&&ks(c,t,e,l,a,n||j5(c,e));return new bn(r,this._parents,t,e)}ir.prototype.interrupt=W3;ir.prototype.transition=X5;var G5=[null];function V5(t,e){var n=t.__transition,r,i;if(n){e=e==null?null:e+"";for(i in n)if((r=n[i]).state>pu&&r.name===e)return new bn([[t]],G5,e,+i)}return null}var vu=t=>()=>t;function Z5(t,{sourceEvent:e,target:n,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function K5(t){t.stopImmediatePropagation()}function wu(t){t.preventDefault(),t.stopImmediatePropagation()}var ap={name:"drag"},xu={name:"space"},xi={name:"handle"},_i={name:"center"},{abs:sp,max:ce,min:ue}=Math;function lp(t){return[+t[0],+t[1]]}function Su(t){return[lp(t[0]),lp(t[1])]}var As={name:"x",handles:["w","e"].map(ko),input:function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Es={name:"y",handles:["n","s"].map(ko),input:function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},Q5={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(ko),input:function(t){return t==null?null:Su(t)},output:function(t){return t}},zn={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},cp={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},up={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},J5={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},t_={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function ko(t){return{type:t}}function e_(t){return!t.ctrlKey&&!t.button}function n_(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function r_(){return navigator.maxTouchPoints||"ontouchstart"in this}function _u(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function i_(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function o_(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function a_(){return ku(As)}function s_(){return ku(Es)}function l_(){return ku(Q5)}function ku(t){var e=n_,n=e_,r=r_,i=!0,o=Ye("start","brush","end"),a=6,s;function c(g){var y=g.property("__brush",p).selectAll(".overlay").data([ko("overlay")]);y.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",zn.overlay).merge(y).each(function(){var b=_u(this).extent;Xt(this).attr("x",b[0][0]).attr("y",b[0][1]).attr("width",b[1][0]-b[0][0]).attr("height",b[1][1]-b[0][1])}),g.selectAll(".selection").data([ko("selection")]).enter().append("rect").attr("class","selection").attr("cursor",zn.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var w=g.selectAll(".handle").data(t.handles,function(b){return b.type});w.exit().remove(),w.enter().append("rect").attr("class",function(b){return"handle handle--"+b.type}).attr("cursor",function(b){return zn[b.type]}),g.each(l).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",f).filter(r).on("touchstart.brush",f).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}c.move=function(g,y,w){g.tween?g.on("start.brush",function(b){u(this,arguments).beforestart().start(b)}).on("interrupt.brush end.brush",function(b){u(this,arguments).end(b)}).tween("brush",function(){var b=this,v=b.__brush,_=u(b,arguments),S=v.selection,k=t.input(typeof y=="function"?y.apply(this,arguments):y,v.extent),C=yn(S,k);function F(A){v.selection=A===1&&k===null?null:C(A),l.call(b),_.brush()}return S!==null&&k!==null?F:F(1)}):g.each(function(){var b=this,v=arguments,_=b.__brush,S=t.input(typeof y=="function"?y.apply(b,v):y,_.extent),k=u(b,v).beforestart();$n(b),_.selection=S===null?null:S,l.call(b),k.start(w).brush(w).end(w)})},c.clear=function(g,y){c.move(g,null,y)};function l(){var g=Xt(this),y=_u(this).selection;y?(g.selectAll(".selection").style("display",null).attr("x",y[0][0]).attr("y",y[0][1]).attr("width",y[1][0]-y[0][0]).attr("height",y[1][1]-y[0][1]),g.selectAll(".handle").style("display",null).attr("x",function(w){return w.type[w.type.length-1]==="e"?y[1][0]-a/2:y[0][0]-a/2}).attr("y",function(w){return w.type[0]==="s"?y[1][1]-a/2:y[0][1]-a/2}).attr("width",function(w){return w.type==="n"||w.type==="s"?y[1][0]-y[0][0]+a:a}).attr("height",function(w){return w.type==="e"||w.type==="w"?y[1][1]-y[0][1]+a:a})):g.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function u(g,y,w){var b=g.__brush.emitter;return b&&(!w||!b.clean)?b:new h(g,y,w)}function h(g,y,w){this.that=g,this.args=y,this.state=g.__brush,this.active=0,this.clean=w}h.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(g,y){return this.starting?(this.starting=!1,this.emit("start",g,y)):this.emit("brush",g),this},brush:function(g,y){return this.emit("brush",g,y),this},end:function(g,y){return--this.active===0&&(delete this.state.emitter,this.emit("end",g,y)),this},emit:function(g,y,w){var b=Xt(this.that).datum();o.call(g,this.that,new Z5(g,{sourceEvent:y,target:c,selection:t.output(this.state.selection),mode:w,dispatch:o}),b)}};function f(g){if(s&&!g.touches||!n.apply(this,arguments))return;var y=this,w=g.target.__data__.type,b=(i&&g.metaKey?w="overlay":w)==="selection"?ap:i&&g.altKey?_i:xi,v=t===Es?null:J5[w],_=t===As?null:t_[w],S=_u(y),k=S.extent,C=S.selection,F=k[0][0],A,E,D=k[0][1],z,M,T=k[1][0],B,N,L=k[1][1],q,U,Z=0,Q=0,j,H=v&&_&&i&&g.shiftKey,W,J,K=Array.from(g.touches||[g],st=>{let St=st.identifier;return st=le(st,y),st.point0=st.slice(),st.identifier=St,st});$n(y);var ht=u(y,arguments,!0).beforestart();if(w==="overlay"){C&&(j=!0);let st=[K[0],K[1]||K[0]];S.selection=C=[[A=t===Es?F:ue(st[0][0],st[1][0]),z=t===As?D:ue(st[0][1],st[1][1])],[B=t===Es?T:ce(st[0][0],st[1][0]),q=t===As?L:ce(st[0][1],st[1][1])]],K.length>1&&vt(g)}else A=C[0][0],z=C[0][1],B=C[1][0],q=C[1][1];E=A,M=z,N=B,U=q;var G=Xt(y).attr("pointer-events","none"),tt=G.selectAll(".overlay").attr("cursor",zn[w]);if(g.touches)ht.moved=X,ht.ended=yt;else{var ot=Xt(g.view).on("mousemove.brush",X,!0).on("mouseup.brush",yt,!0);i&&ot.on("keydown.brush",Tt,!0).on("keyup.brush",Mt,!0),ui(g.view)}l.call(y),ht.start(g,b.name);function X(st){for(let St of st.changedTouches||[st])for(let ne of K)ne.identifier===St.identifier&&(ne.cur=le(St,y));if(H&&!W&&!J&&K.length===1){let St=K[0];sp(St.cur[0]-St[0])>sp(St.cur[1]-St[1])?J=!0:W=!0}for(let St of K)St.cur&&(St[0]=St.cur[0],St[1]=St.cur[1]);j=!0,wu(st),vt(st)}function vt(st){let St=K[0],ne=St.point0;var Zt;switch(Z=St[0]-ne[0],Q=St[1]-ne[1],b){case xu:case ap:{v&&(Z=ce(F-A,ue(T-B,Z)),E=A+Z,N=B+Z),_&&(Q=ce(D-z,ue(L-q,Q)),M=z+Q,U=q+Q);break}case xi:{K[1]?(v&&(E=ce(F,ue(T,K[0][0])),N=ce(F,ue(T,K[1][0])),v=1),_&&(M=ce(D,ue(L,K[0][1])),U=ce(D,ue(L,K[1][1])),_=1)):(v<0?(Z=ce(F-A,ue(T-A,Z)),E=A+Z,N=B):v>0&&(Z=ce(F-B,ue(T-B,Z)),E=A,N=B+Z),_<0?(Q=ce(D-z,ue(L-z,Q)),M=z+Q,U=q):_>0&&(Q=ce(D-q,ue(L-q,Q)),M=z,U=q+Q));break}case _i:{v&&(E=ce(F,ue(T,A-Z*v)),N=ce(F,ue(T,B+Z*v))),_&&(M=ce(D,ue(L,z-Q*_)),U=ce(D,ue(L,q+Q*_)));break}}N<E&&(v*=-1,Zt=A,A=B,B=Zt,Zt=E,E=N,N=Zt,w in cp&&tt.attr("cursor",zn[w=cp[w]])),U<M&&(_*=-1,Zt=z,z=q,q=Zt,Zt=M,M=U,U=Zt,w in up&&tt.attr("cursor",zn[w=up[w]])),S.selection&&(C=S.selection),W&&(E=C[0][0],N=C[1][0]),J&&(M=C[0][1],U=C[1][1]),(C[0][0]!==E||C[0][1]!==M||C[1][0]!==N||C[1][1]!==U)&&(S.selection=[[E,M],[N,U]],l.call(y),ht.brush(st,b.name))}function yt(st){if(K5(st),st.touches){if(st.touches.length)return;s&&clearTimeout(s),s=setTimeout(function(){s=null},500)}else fi(st.view,j),ot.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);G.attr("pointer-events","all"),tt.attr("cursor",zn.overlay),S.selection&&(C=S.selection),i_(C)&&(S.selection=null,l.call(y)),ht.end(st,b.name)}function Tt(st){switch(st.keyCode){case 16:{H=v&&_;break}case 18:{b===xi&&(v&&(B=N-Z*v,A=E+Z*v),_&&(q=U-Q*_,z=M+Q*_),b=_i,vt(st));break}case 32:{(b===xi||b===_i)&&(v<0?B=N-Z:v>0&&(A=E-Z),_<0?q=U-Q:_>0&&(z=M-Q),b=xu,tt.attr("cursor",zn.selection),vt(st));break}default:return}wu(st)}function Mt(st){switch(st.keyCode){case 16:{H&&(W=J=H=!1,vt(st));break}case 18:{b===_i&&(v<0?B=N:v>0&&(A=E),_<0?q=U:_>0&&(z=M),b=xi,vt(st));break}case 32:{b===xu&&(st.altKey?(v&&(B=N-Z*v,A=E+Z*v),_&&(q=U-Q*_,z=M+Q*_),b=_i):(v<0?B=N:v>0&&(A=E),_<0?q=U:_>0&&(z=M),b=xi),tt.attr("cursor",zn[w]),vt(st));break}default:return}wu(st)}}function d(g){u(this,arguments).moved(g)}function m(g){u(this,arguments).ended(g)}function p(){var g=this.__brush||{selection:null};return g.extent=Su(e.apply(this,arguments)),g.dim=t,g}return c.extent=function(g){return arguments.length?(e=typeof g=="function"?g:vu(Su(g)),c):e},c.filter=function(g){return arguments.length?(n=typeof g=="function"?g:vu(!!g),c):n},c.touchable=function(g){return arguments.length?(r=typeof g=="function"?g:vu(!!g),c):r},c.handleSize=function(g){return arguments.length?(a=+g,c):a},c.keyModifiers=function(g){return arguments.length?(i=!!g,c):i},c.on=function(){var g=o.on.apply(o,arguments);return g===o?c:g},c}var Ao=Math.PI,Au=2*Ao,Fr=1e-6,c_=Au-Fr;function fp(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function u_(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return fp;let n=10**e;return function(r){this._+=r[0];for(let i=1,o=r.length;i<o;++i)this._+=Math.round(arguments[i]*n)/n+r[i]}}function hp(t,e,n,r){return t===n&&e===r}function f_(t){let e=Math.floor(t);if(!(e<=15))return hp;let n=10**e,r=function(i){return Math.round(i*n)};return function(i,o,a,s){return r(i)===r(a)&&r(o)===r(s)}}var lr=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?fp:u_(e),this._equal=e==null?hp:f_(e)}moveTo(e,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,n){this._append`L${this._x1=+e},${this._y1=+n}`}quadraticCurveTo(e,n,r,i){this._append`Q${+e},${+n},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(e,n,r,i,o,a){this._append`C${+e},${+n},${+r},${+i},${this._x1=+o},${this._y1=+a}`}arcTo(e,n,r,i,o){if(e=+e,n=+n,r=+r,i=+i,o=+o,o<0)throw new Error(`negative radius: ${o}`);let a=this._x1,s=this._y1,c=r-e,l=i-n,u=a-e,h=s-n,f=u*u+h*h;if(this._x1===null)this._append`M${this._x1=e},${this._y1=n}`;else if(f>Fr)if(!(Math.abs(h*c-l*u)>Fr)||!o)this._append`L${this._x1=e},${this._y1=n}`;else{let d=r-a,m=i-s,p=c*c+l*l,g=d*d+m*m,y=Math.sqrt(p),w=Math.sqrt(f),b=o*Math.tan((Ao-Math.acos((p+f-g)/(2*y*w)))/2),v=b/w,_=b/y;Math.abs(v-1)>Fr&&this._append`L${e+v*u},${n+v*h}`,this._append`A${o},${o},0,0,${+(h*d>u*m)},${this._x1=e+_*c},${this._y1=n+_*l}`}}arc(e,n,r,i,o,a){if(e=+e,n=+n,r=+r,a=!!a,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(i),c=r*Math.sin(i),l=e+s,u=n+c,h=1^a,f=a?i-o:o-i;if(this._x1===null?this._append`M${l},${u}`:(Math.abs(this._x1-l)>Fr||Math.abs(this._y1-u)>Fr)&&this._append`L${l},${u}`,!!r){if(f<0&&(f=f%Au+Au),f>c_)this._append`A${r},${r},0,1,${h},${e-s},${n-c}A${r},${r},0,1,${h},${this._x1=l},${this._y1=u}`;else if(f>Fr){let d=e+r*Math.cos(o),m=n+r*Math.sin(o);if(f>=Ao&&this._equal(l,u,d,m)){f/=2;let p=i+f;this._append`A${r},${r},0,${+(f>=Ao)},${h},${e+r*Math.cos(p)},${n+r*Math.sin(p)}`}this._append`A${r},${r},0,${+(f>=Ao)},${h},${this._x1=d},${this._y1=m}`}}}rect(e,n,r,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}};function Ms(){return new lr}Ms.prototype=lr.prototype;function h_(t=3){return new lr(+t)}var dp=Math.abs,Si=Math.cos,ki=Math.sin,yp=Math.PI,Cs=yp/2,pp=yp*2,gp=Math.max,Eu=1e-12;function Mu(t,e){return Array.from({length:e-t},(n,r)=>t+r)}function d_(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}function p_(){return Cu(!1,!1)}function g_(){return Cu(!1,!0)}function m_(){return Cu(!0,!1)}function Cu(t,e){var n=0,r=null,i=null,o=null;function a(s){var c=s.length,l=new Array(c),u=Mu(0,c),h=new Array(c*c),f=new Array(c),d=0,m;s=Float64Array.from({length:c*c},e?(p,g)=>s[g%c][g/c|0]:(p,g)=>s[g/c|0][g%c]);for(let p=0;p<c;++p){let g=0;for(let y=0;y<c;++y)g+=s[p*c+y]+t*s[y*c+p];d+=l[p]=g}d=gp(0,pp-n*c)/d,m=d?n:pp/c;{let p=0;r&&u.sort((g,y)=>r(l[g],l[y]));for(let g of u){let y=p;if(t){let w=Mu(~c+1,c).filter(b=>b<0?s[~b*c+g]:s[g*c+b]);i&&w.sort((b,v)=>i(b<0?-s[~b*c+g]:s[g*c+b],v<0?-s[~v*c+g]:s[g*c+v]));for(let b of w)if(b<0){let v=h[~b*c+g]||(h[~b*c+g]={source:null,target:null});v.target={index:g,startAngle:p,endAngle:p+=s[~b*c+g]*d,value:s[~b*c+g]}}else{let v=h[g*c+b]||(h[g*c+b]={source:null,target:null});v.source={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]}}f[g]={index:g,startAngle:y,endAngle:p,value:l[g]}}else{let w=Mu(0,c).filter(b=>s[g*c+b]||s[b*c+g]);i&&w.sort((b,v)=>i(s[g*c+b],s[g*c+v]));for(let b of w){let v;if(g<b?(v=h[g*c+b]||(h[g*c+b]={source:null,target:null}),v.source={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]}):(v=h[b*c+g]||(h[b*c+g]={source:null,target:null}),v.target={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]},g===b&&(v.source=v.target)),v.source&&v.target&&v.source.value<v.target.value){let _=v.source;v.source=v.target,v.target=_}}f[g]={index:g,startAngle:y,endAngle:p,value:l[g]}}p+=m}}return h=Object.values(h),h.groups=f,o?h.sort(o):h}return a.padAngle=function(s){return arguments.length?(n=gp(0,s),a):n},a.sortGroups=function(s){return arguments.length?(r=s,a):r},a.sortSubgroups=function(s){return arguments.length?(i=s,a):i},a.sortChords=function(s){return arguments.length?(s==null?o=null:(o=d_(s))._=s,a):o&&o._},a}var y_=Array.prototype.slice;function Tr(t){return function(){return t}}function b_(t){return t.source}function v_(t){return t.target}function mp(t){return t.radius}function w_(t){return t.startAngle}function x_(t){return t.endAngle}function __(){return 0}function S_(){return 10}function bp(t){var e=b_,n=v_,r=mp,i=mp,o=w_,a=x_,s=__,c=null;function l(){var u,h=e.apply(this,arguments),f=n.apply(this,arguments),d=s.apply(this,arguments)/2,m=y_.call(arguments),p=+r.apply(this,(m[0]=h,m)),g=o.apply(this,m)-Cs,y=a.apply(this,m)-Cs,w=+i.apply(this,(m[0]=f,m)),b=o.apply(this,m)-Cs,v=a.apply(this,m)-Cs;if(c||(c=u=Ms()),d>Eu&&(dp(y-g)>d*2+Eu?y>g?(g+=d,y-=d):(g-=d,y+=d):g=y=(g+y)/2,dp(v-b)>d*2+Eu?v>b?(b+=d,v-=d):(b-=d,v+=d):b=v=(b+v)/2),c.moveTo(p*Si(g),p*ki(g)),c.arc(0,0,p,g,y),g!==b||y!==v)if(t){var _=+t.apply(this,arguments),S=w-_,k=(b+v)/2;c.quadraticCurveTo(0,0,S*Si(b),S*ki(b)),c.lineTo(w*Si(k),w*ki(k)),c.lineTo(S*Si(v),S*ki(v))}else c.quadraticCurveTo(0,0,w*Si(b),w*ki(b)),c.arc(0,0,w,b,v);if(c.quadraticCurveTo(0,0,p*Si(g),p*ki(g)),c.closePath(),u)return c=null,u+""||null}return t&&(l.headRadius=function(u){return arguments.length?(t=typeof u=="function"?u:Tr(+u),l):t}),l.radius=function(u){return arguments.length?(r=i=typeof u=="function"?u:Tr(+u),l):r},l.sourceRadius=function(u){return arguments.length?(r=typeof u=="function"?u:Tr(+u),l):r},l.targetRadius=function(u){return arguments.length?(i=typeof u=="function"?u:Tr(+u),l):i},l.startAngle=function(u){return arguments.length?(o=typeof u=="function"?u:Tr(+u),l):o},l.endAngle=function(u){return arguments.length?(a=typeof u=="function"?u:Tr(+u),l):a},l.padAngle=function(u){return arguments.length?(s=typeof u=="function"?u:Tr(+u),l):s},l.source=function(u){return arguments.length?(e=u,l):e},l.target=function(u){return arguments.length?(n=u,l):n},l.context=function(u){return arguments.length?(c=u??null,l):c},l}function k_(){return bp()}function A_(){return bp(S_)}var E_=Array.prototype,wp=E_.slice;function M_(t,e){return t-e}function C_(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}var cr=t=>()=>t;function F_(t,e){for(var n=-1,r=e.length,i;++n<r;)if(i=T_(t,e[n]))return i;return 0}function T_(t,e){for(var n=e[0],r=e[1],i=-1,o=0,a=t.length,s=a-1;o<a;s=o++){var c=t[o],l=c[0],u=c[1],h=t[s],f=h[0],d=h[1];if(O_(c,h,e))return 0;u>r!=d>r&&n<(f-l)*(r-u)/(d-u)+l&&(i=-i)}return i}function O_(t,e,n){var r;return B_(t,e,n)&&D_(t[r=+(t[0]===e[0])],n[r],e[r])}function B_(t,e,n){return(e[0]-t[0])*(n[1]-t[1])===(n[0]-t[0])*(e[1]-t[1])}function D_(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}function $_(){}var Nn=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function Tu(){var t=1,e=1,n=Va,r=c;function i(l){var u=n(l);if(Array.isArray(u))u=u.slice().sort(M_);else{let h=ei(l,z_);for(u=Bn(...Ga(h[0],h[1],u),u);u[u.length-1]>=h[1];)u.pop();for(;u[1]<h[0];)u.shift()}return u.map(h=>o(l,h))}function o(l,u){let h=u==null?NaN:+u;if(isNaN(h))throw new Error(`invalid value: ${u}`);var f=[],d=[];return a(l,h,function(m){r(m,l,h),C_(m)>0?f.push([m]):d.push(m)}),d.forEach(function(m){for(var p=0,g=f.length,y;p<g;++p)if(F_((y=f[p])[0],m)!==-1){y.push(m);return}}),{type:"MultiPolygon",value:u,coordinates:f}}function a(l,u,h){var f=new Array,d=new Array,m,p,g,y,w,b;for(m=p=-1,y=Or(l[0],u),Nn[y<<1].forEach(v);++m<t-1;)g=y,y=Or(l[m+1],u),Nn[g|y<<1].forEach(v);for(Nn[y<<0].forEach(v);++p<e-1;){for(m=-1,y=Or(l[p*t+t],u),w=Or(l[p*t],u),Nn[y<<1|w<<2].forEach(v);++m<t-1;)g=y,y=Or(l[p*t+t+m+1],u),b=w,w=Or(l[p*t+m+1],u),Nn[g|y<<1|w<<2|b<<3].forEach(v);Nn[y|w<<3].forEach(v)}for(m=-1,w=l[p*t]>=u,Nn[w<<2].forEach(v);++m<t-1;)b=w,w=Or(l[p*t+m+1],u),Nn[w<<2|b<<3].forEach(v);Nn[w<<3].forEach(v);function v(_){var S=[_[0][0]+m,_[0][1]+p],k=[_[1][0]+m,_[1][1]+p],C=s(S),F=s(k),A,E;(A=d[C])?(E=f[F])?(delete d[A.end],delete f[E.start],A===E?(A.ring.push(k),h(A.ring)):f[A.start]=d[E.end]={start:A.start,end:E.end,ring:A.ring.concat(E.ring)}):(delete d[A.end],A.ring.push(k),d[A.end=F]=A):(A=f[F])?(E=d[C])?(delete f[A.start],delete d[E.end],A===E?(A.ring.push(k),h(A.ring)):f[E.start]=d[A.end]={start:E.start,end:A.end,ring:E.ring.concat(A.ring)}):(delete f[A.start],A.ring.unshift(S),f[A.start=C]=A):f[C]=d[F]={start:C,end:F,ring:[S,k]}}}function s(l){return l[0]*2+l[1]*(t+1)*4}function c(l,u,h){l.forEach(function(f){var d=f[0],m=f[1],p=d|0,g=m|0,y=Fu(u[g*t+p]);d>0&&d<t&&p===d&&(f[0]=vp(d,Fu(u[g*t+p-1]),y,h)),m>0&&m<e&&g===m&&(f[1]=vp(m,Fu(u[(g-1)*t+p]),y,h))})}return i.contour=o,i.size=function(l){if(!arguments.length)return[t,e];var u=Math.floor(l[0]),h=Math.floor(l[1]);if(!(u>=0&&h>=0))throw new Error("invalid size");return t=u,e=h,i},i.thresholds=function(l){return arguments.length?(n=typeof l=="function"?l:Array.isArray(l)?cr(wp.call(l)):cr(l),i):n},i.smooth=function(l){return arguments.length?(r=l?c:$_,i):r===c},i}function z_(t){return isFinite(t)?t:NaN}function Or(t,e){return t==null?!1:+t>=e}function Fu(t){return t==null||isNaN(t=+t)?-1/0:t}function vp(t,e,n,r){let i=r-e,o=n-e,a=isFinite(i)||isFinite(o)?i/o:Math.sign(i)/Math.sign(o);return isNaN(a)?t:t+a-.5}function N_(t){return t[0]}function R_(t){return t[1]}function P_(){return 1}function I_(){var t=N_,e=R_,n=P_,r=960,i=500,o=20,a=2,s=o*3,c=r+s*2>>a,l=i+s*2>>a,u=cr(20);function h(w){var b=new Float32Array(c*l),v=Math.pow(2,-a),_=-1;for(let z of w){var S=(t(z,++_,w)+s)*v,k=(e(z,_,w)+s)*v,C=+n(z,_,w);if(C&&S>=0&&S<c&&k>=0&&k<l){var F=Math.floor(S),A=Math.floor(k),E=S-F-.5,D=k-A-.5;b[F+A*c]+=(1-E)*(1-D)*C,b[F+1+A*c]+=E*(1-D)*C,b[F+1+(A+1)*c]+=E*D*C,b[F+(A+1)*c]+=(1-E)*D*C}}return Fc({data:b,width:c,height:l},o*v),b}function f(w){var b=h(w),v=u(b),_=Math.pow(2,2*a);return Array.isArray(v)||(v=Bn(Number.MIN_VALUE,ii(b)/_,v)),Tu().size([c,l]).thresholds(v.map(S=>S*_))(b).map((S,k)=>(S.value=+v[k],d(S)))}f.contours=function(w){var b=h(w),v=Tu().size([c,l]),_=Math.pow(2,2*a),S=k=>{k=+k;var C=d(v.contour(b,k*_));return C.value=k,C};return Object.defineProperty(S,"max",{get:()=>ii(b)/_}),S};function d(w){return w.coordinates.forEach(m),w}function m(w){w.forEach(p)}function p(w){w.forEach(g)}function g(w){w[0]=w[0]*Math.pow(2,a)-s,w[1]=w[1]*Math.pow(2,a)-s}function y(){return s=o*3,c=r+s*2>>a,l=i+s*2>>a,f}return f.x=function(w){return arguments.length?(t=typeof w=="function"?w:cr(+w),f):t},f.y=function(w){return arguments.length?(e=typeof w=="function"?w:cr(+w),f):e},f.weight=function(w){return arguments.length?(n=typeof w=="function"?w:cr(+w),f):n},f.size=function(w){if(!arguments.length)return[r,i];var b=+w[0],v=+w[1];if(!(b>=0&&v>=0))throw new Error("invalid size");return r=b,i=v,y()},f.cellSize=function(w){if(!arguments.length)return 1<<a;if(!((w=+w)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(w)/Math.LN2),y()},f.thresholds=function(w){return arguments.length?(u=typeof w=="function"?w:Array.isArray(w)?cr(wp.call(w)):cr(w),f):u},f.bandwidth=function(w){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((w=+w)>=0))throw new Error("invalid bandwidth");return o=(Math.sqrt(4*w*w+1)-1)/2,y()},f}var Pn=11102230246251565e-32,fe=134217729,L_=(3+8*Pn)*Pn;function Ou(t,e,n,r,i){let o,a,s,c,l=e[0],u=r[0],h=0,f=0;u>l==u>-l?(o=l,l=e[++h]):(o=u,u=r[++f]);let d=0;if(h<t&&f<n)for(u>l==u>-l?(a=l+o,s=o-(a-l),l=e[++h]):(a=u+o,s=o-(a-u),u=r[++f]),o=a,s!==0&&(i[d++]=s);h<t&&f<n;)u>l==u>-l?(a=o+l,c=a-o,s=o-(a-c)+(l-c),l=e[++h]):(a=o+u,c=a-o,s=o-(a-c)+(u-c),u=r[++f]),o=a,s!==0&&(i[d++]=s);for(;h<t;)a=o+l,c=a-o,s=o-(a-c)+(l-c),l=e[++h],o=a,s!==0&&(i[d++]=s);for(;f<n;)a=o+u,c=a-o,s=o-(a-c)+(u-c),u=r[++f],o=a,s!==0&&(i[d++]=s);return(o!==0||d===0)&&(i[d++]=o),d}function q_(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}function V(t){return new Float64Array(t)}var Y_=(3+16*Pn)*Pn,U_=(2+12*Pn)*Pn,H_=(9+64*Pn)*Pn*Pn,Ai=V(4),xp=V(8),_p=V(12),Sp=V(16),be=V(4);function W_(t,e,n,r,i,o,a){let s,c,l,u,h,f,d,m,p,g,y,w,b,v,_,S,k,C,F=t-i,A=n-i,E=e-o,D=r-o;v=F*D,f=fe*F,d=f-(f-F),m=F-d,f=fe*D,p=f-(f-D),g=D-p,_=m*g-(v-d*p-m*p-d*g),S=E*A,f=fe*E,d=f-(f-E),m=E-d,f=fe*A,p=f-(f-A),g=A-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,Ai[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,Ai[1]=b-(y+h)+(h-S),C=w+y,h=C-w,Ai[2]=w-(C-h)+(y-h),Ai[3]=C;let z=q_(4,Ai),M=U_*a;if(z>=M||-z>=M||(h=t-F,s=t-(F+h)+(h-i),h=n-A,l=n-(A+h)+(h-i),h=e-E,c=e-(E+h)+(h-o),h=r-D,u=r-(D+h)+(h-o),s===0&&c===0&&l===0&&u===0)||(M=H_*a+L_*Math.abs(z),z+=F*u+D*s-(E*l+A*c),z>=M||-z>=M))return z;v=s*D,f=fe*s,d=f-(f-s),m=s-d,f=fe*D,p=f-(f-D),g=D-p,_=m*g-(v-d*p-m*p-d*g),S=c*A,f=fe*c,d=f-(f-c),m=c-d,f=fe*A,p=f-(f-A),g=A-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,be[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let T=Ou(4,Ai,4,be,xp);v=F*u,f=fe*F,d=f-(f-F),m=F-d,f=fe*u,p=f-(f-u),g=u-p,_=m*g-(v-d*p-m*p-d*g),S=E*l,f=fe*E,d=f-(f-E),m=E-d,f=fe*l,p=f-(f-l),g=l-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,be[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let B=Ou(T,xp,4,be,_p);v=s*u,f=fe*s,d=f-(f-s),m=s-d,f=fe*u,p=f-(f-u),g=u-p,_=m*g-(v-d*p-m*p-d*g),S=c*l,f=fe*c,d=f-(f-c),m=c-d,f=fe*l,p=f-(f-l),g=l-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,be[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let N=Ou(B,_p,4,be,Sp);return Sp[N-1]}function Fs(t,e,n,r,i,o){let a=(e-o)*(n-i),s=(t-i)*(r-o),c=a-s,l=Math.abs(a+s);return Math.abs(c)>=Y_*l?c:-W_(t,e,n,r,i,o,l)}V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(8);V(8);V(8);V(4);V(8);V(8);V(16);V(12);V(192);V(192);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(4);V(4);V(4);V(8);V(16);V(16);V(16);V(32);V(32);V(48);V(64);V(1152);V(1152);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(1152);V(1152);V(1152);V(1152);V(1152);V(2304);V(2304);V(3456);V(5760);V(8);V(8);V(8);V(16);V(24);V(48);V(48);V(96);V(192);V(384);V(384);V(384);V(768);V(96);V(96);V(96);V(1152);var kp=Math.pow(2,-52),Ts=new Uint32Array(512),Os=class t{static from(e,n=Z_,r=K_){let i=e.length,o=new Float64Array(i*2);for(let a=0;a<i;a++){let s=e[a];o[2*a]=n(s),o[2*a+1]=r(s)}return new t(o)}constructor(e){let n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;let r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.trianglesLen=0,this._cx=0,this._cy=0,this._hullStart=0,this.hull=this._triangles,this.triangles=this._triangles,this.halfedges=this._halfedges,this.update()}update(){let{coords:e,_hullPrev:n,_hullNext:r,_hullTri:i,_hullHash:o}=this,a=e.length>>1,s=1/0,c=1/0,l=-1/0,u=-1/0;for(let F=0;F<a;F++){let A=e[2*F],E=e[2*F+1];A<s&&(s=A),E<c&&(c=E),A>l&&(l=A),E>u&&(u=E),this._ids[F]=F}let h=(s+l)/2,f=(c+u)/2,d=0,m=0,p=0;for(let F=0,A=1/0;F<a;F++){let E=Bu(h,f,e[2*F],e[2*F+1]);E<A&&(d=F,A=E)}let g=e[2*d],y=e[2*d+1];for(let F=0,A=1/0;F<a;F++){if(F===d)continue;let E=Bu(g,y,e[2*F],e[2*F+1]);E<A&&E>0&&(m=F,A=E)}let w=e[2*m],b=e[2*m+1],v=1/0;for(let F=0;F<a;F++){if(F===d||F===m)continue;let A=G_(g,y,w,b,e[2*F],e[2*F+1]);A<v&&(p=F,v=A)}let _=e[2*p],S=e[2*p+1];if(v===1/0){for(let E=0;E<a;E++)this._dists[E]=e[2*E]-e[0]||e[2*E+1]-e[1];Mi(this._ids,this._dists,0,a-1);let F=new Uint32Array(a),A=0;for(let E=0,D=-1/0;E<a;E++){let z=this._ids[E],M=this._dists[z];M>D&&(F[A++]=z,D=M)}this.hull=F.subarray(0,A),this.triangles=new Uint32Array(0),this.halfedges=new Int32Array(0);return}if(Fs(g,y,w,b,_,S)<0){let F=m,A=w,E=b;m=p,w=_,b=S,p=F,_=A,S=E}let k=V_(g,y,w,b,_,S);this._cx=k.x,this._cy=k.y;for(let F=0;F<a;F++)this._dists[F]=Bu(e[2*F],e[2*F+1],k.x,k.y);Mi(this._ids,this._dists,0,a-1),this._hullStart=d;let C=3;r[d]=n[p]=m,r[m]=n[d]=p,r[p]=n[m]=d,i[d]=0,i[m]=1,i[p]=2,o.fill(-1),o[this._hashKey(g,y)]=d,o[this._hashKey(w,b)]=m,o[this._hashKey(_,S)]=p,this.trianglesLen=0,this._addTriangle(d,m,p,-1,-1,-1);for(let F=0,A=0,E=0;F<this._ids.length;F++){let D=this._ids[F],z=e[2*D],M=e[2*D+1];if(F>0&&Math.abs(z-A)<=kp&&Math.abs(M-E)<=kp||(A=z,E=M,D===d||D===m||D===p))continue;let T=0;for(let U=0,Z=this._hashKey(z,M);U<this._hashSize&&(T=o[(Z+U)%this._hashSize],!(T!==-1&&T!==r[T]));U++);T=n[T];let B=T,N;for(;N=r[B],Fs(z,M,e[2*B],e[2*B+1],e[2*N],e[2*N+1])>=0;)if(B=N,B===T){B=-1;break}if(B===-1)continue;let L=this._addTriangle(B,D,r[B],-1,-1,i[B]);i[D]=this._legalize(L+2),i[B]=L,C++;let q=r[B];for(;N=r[q],Fs(z,M,e[2*q],e[2*q+1],e[2*N],e[2*N+1])<0;)L=this._addTriangle(q,D,N,i[D],-1,i[q]),i[D]=this._legalize(L+2),r[q]=q,C--,q=N;if(B===T)for(;N=n[B],Fs(z,M,e[2*N],e[2*N+1],e[2*B],e[2*B+1])<0;)L=this._addTriangle(N,D,B,-1,i[B],i[N]),this._legalize(L+2),i[N]=L,r[B]=B,C--,B=N;this._hullStart=n[D]=B,r[B]=n[q]=D,r[D]=q,o[this._hashKey(z,M)]=D,o[this._hashKey(e[2*B],e[2*B+1])]=B}this.hull=new Uint32Array(C);for(let F=0,A=this._hullStart;F<C;F++)this.hull[F]=A,A=r[A];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(j_(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){let{_triangles:n,_halfedges:r,coords:i}=this,o=0,a=0;for(;;){let s=r[e],c=e-e%3;if(a=c+(e+2)%3,s===-1){if(o===0)break;e=Ts[--o];continue}let l=s-s%3,u=c+(e+1)%3,h=l+(s+2)%3,f=n[a],d=n[e],m=n[u],p=n[h];if(X_(i[2*f],i[2*f+1],i[2*d],i[2*d+1],i[2*m],i[2*m+1],i[2*p],i[2*p+1])){n[e]=p,n[s]=f;let y=r[h];if(y===-1){let b=this._hullStart;do{if(this._hullTri[b]===h){this._hullTri[b]=e;break}b=this._hullPrev[b]}while(b!==this._hullStart)}this._link(e,y),this._link(s,r[a]),this._link(a,h);let w=l+(s+1)%3;o<Ts.length&&(Ts[o++]=w)}else{if(o===0)break;e=Ts[--o]}}return a}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,i,o,a){let s=this.trianglesLen;return this._triangles[s]=e,this._triangles[s+1]=n,this._triangles[s+2]=r,this._link(s,i),this._link(s+1,o),this._link(s+2,a),this.trianglesLen+=3,s}};function j_(t,e){let n=t/(Math.abs(t)+Math.abs(e));return(e>0?3-n:1+n)/4}function Bu(t,e,n,r){let i=t-n,o=e-r;return i*i+o*o}function X_(t,e,n,r,i,o,a,s){let c=t-a,l=e-s,u=n-a,h=r-s,f=i-a,d=o-s,m=c*c+l*l,p=u*u+h*h,g=f*f+d*d;return c*(h*g-p*d)-l*(u*g-p*f)+m*(u*d-h*f)<0}function G_(t,e,n,r,i,o){let a=n-t,s=r-e,c=i-t,l=o-e,u=a*a+s*s,h=c*c+l*l,f=.5/(a*l-s*c),d=(l*u-s*h)*f,m=(a*h-c*u)*f;return d*d+m*m}function V_(t,e,n,r,i,o){let a=n-t,s=r-e,c=i-t,l=o-e,u=a*a+s*s,h=c*c+l*l,f=.5/(a*l-s*c),d=t+(l*u-s*h)*f,m=e+(a*h-c*u)*f;return{x:d,y:m}}function Mi(t,e,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){let o=t[i],a=e[o],s=i-1;for(;s>=n&&e[t[s]]>a;)t[s+1]=t[s--];t[s+1]=o}else{let i=n+r>>1,o=n+1,a=r;Eo(t,i,o),e[t[n]]>e[t[r]]&&Eo(t,n,r),e[t[o]]>e[t[r]]&&Eo(t,o,r),e[t[n]]>e[t[o]]&&Eo(t,n,o);let s=t[o],c=e[s];for(;;){do o++;while(e[t[o]]<c);do a--;while(e[t[a]]>c);if(a<o)break;Eo(t,o,a)}t[n+1]=t[a],t[a]=s,r-o+1>=a-n?(Mi(t,e,o,r),Mi(t,e,n,a-1)):(Mi(t,e,n,a-1),Mi(t,e,o,r))}}function Eo(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}function Z_(t){return t[0]}function K_(t){return t[1]}var Ap=1e-6,Rn=class{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;let i=e+r,o=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${o}`:(Math.abs(this._x1-i)>Ap||Math.abs(this._y1-o)>Ap)&&(this._+="L"+i+","+o),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=i},${this._y1=o}`)}rect(e,n,r,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+i}h${-r}Z`}value(){return this._||null}},Mo=class{constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}},Bs=class{constructor(e,[n,r,i,o]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((o=+o)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=i,this.xmin=n,this.ymax=o,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){let{delaunay:{points:e,hull:n,triangles:r},vectors:i}=this,o,a,s=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let p=0,g=0,y=r.length,w,b;p<y;p+=3,g+=2){let v=r[p]*2,_=r[p+1]*2,S=r[p+2]*2,k=e[v],C=e[v+1],F=e[_],A=e[_+1],E=e[S],D=e[S+1],z=F-k,M=A-C,T=E-k,B=D-C,N=(z*B-M*T)*2;if(Math.abs(N)<1e-9){if(o===void 0){o=a=0;for(let q of n)o+=e[q*2],a+=e[q*2+1];o/=n.length,a/=n.length}let L=1e9*Math.sign((o-k)*B-(a-C)*T);w=(k+E)/2-L*B,b=(C+D)/2+L*T}else{let L=1/N,q=z*z+M*M,U=T*T+B*B;w=k+(B*q-M*U)*L,b=C+(z*U-T*q)*L}s[g]=w,s[g+1]=b}let c=n[n.length-1],l,u=c*4,h,f=e[2*c],d,m=e[2*c+1];i.fill(0);for(let p=0;p<n.length;++p)c=n[p],l=u,h=f,d=m,u=c*4,f=e[2*c],m=e[2*c+1],i[l+2]=i[u]=d-m,i[l+3]=i[u+1]=f-h}render(e){let n=e==null?e=new Rn:void 0,{delaunay:{halfedges:r,inedges:i,hull:o},circumcenters:a,vectors:s}=this;if(o.length<=1)return null;for(let u=0,h=r.length;u<h;++u){let f=r[u];if(f<u)continue;let d=Math.floor(u/3)*2,m=Math.floor(f/3)*2,p=a[d],g=a[d+1],y=a[m],w=a[m+1];this._renderSegment(p,g,y,w,e)}let c,l=o[o.length-1];for(let u=0;u<o.length;++u){c=l,l=o[u];let h=Math.floor(i[l]/3)*2,f=a[h],d=a[h+1],m=c*4,p=this._project(f,d,s[m+2],s[m+3]);p&&this._renderSegment(f,d,p[0],p[1],e)}return n&&n.value()}renderBounds(e){let n=e==null?e=new Rn:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){let r=n==null?n=new Rn:void 0,i=this._clip(e);if(i===null||!i.length)return;n.moveTo(i[0],i[1]);let o=i.length;for(;i[0]===i[o-2]&&i[1]===i[o-1]&&o>1;)o-=2;for(let a=2;a<o;a+=2)(i[a]!==i[a-2]||i[a+1]!==i[a-1])&&n.lineTo(i[a],i[a+1]);return n.closePath(),r&&r.value()}*cellPolygons(){let{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){let i=this.cellPolygon(n);i&&(i.index=n,yield i)}}cellPolygon(e){let n=new Mo;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,i,o){let a,s=this._regioncode(e,n),c=this._regioncode(r,i);s===0&&c===0?(o.moveTo(e,n),o.lineTo(r,i)):(a=this._clipSegment(e,n,r,i,s,c))&&(o.moveTo(a[0],a[1]),o.lineTo(a[2],a[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){let n=this._clip(e);if(n)for(let r of this.delaunay.neighbors(e)){let i=this._clip(r);if(i){t:for(let o=0,a=n.length;o<a;o+=2)for(let s=0,c=i.length;s<c;s+=2)if(n[o]===i[s]&&n[o+1]===i[s+1]&&n[(o+2)%a]===i[(s+c-2)%c]&&n[(o+3)%a]===i[(s+c-1)%c]){yield r;break t}}}}_cell(e){let{circumcenters:n,delaunay:{inedges:r,halfedges:i,triangles:o}}=this,a=r[e];if(a===-1)return null;let s=[],c=a;do{let l=Math.floor(c/3);if(s.push(n[l*2],n[l*2+1]),c=c%3===2?c-2:c+1,o[c]!==e)break;c=i[c]}while(c!==a&&c!==-1);return s}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];let n=this._cell(e);if(n===null)return null;let{vectors:r}=this,i=e*4;return this._simplify(r[i]||r[i+1]?this._clipInfinite(e,n,r[i],r[i+1],r[i+2],r[i+3]):this._clipFinite(e,n))}_clipFinite(e,n){let r=n.length,i=null,o,a,s=n[r-2],c=n[r-1],l,u=this._regioncode(s,c),h,f=0;for(let d=0;d<r;d+=2)if(o=s,a=c,s=n[d],c=n[d+1],l=u,u=this._regioncode(s,c),l===0&&u===0)h=f,f=0,i?i.push(s,c):i=[s,c];else{let m,p,g,y,w;if(l===0){if((m=this._clipSegment(o,a,s,c,l,u))===null)continue;[p,g,y,w]=m}else{if((m=this._clipSegment(s,c,o,a,u,l))===null)continue;[y,w,p,g]=m,h=f,f=this._edgecode(p,g),h&&f&&this._edge(e,h,f,i,i.length),i?i.push(p,g):i=[p,g]}h=f,f=this._edgecode(y,w),h&&f&&this._edge(e,h,f,i,i.length),i?i.push(y,w):i=[y,w]}if(i)h=f,f=this._edgecode(i[0],i[1]),h&&f&&this._edge(e,h,f,i,i.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return i}_clipSegment(e,n,r,i,o,a){let s=o<a;for(s&&([e,n,r,i,o,a]=[r,i,e,n,a,o]);;){if(o===0&&a===0)return s?[r,i,e,n]:[e,n,r,i];if(o&a)return null;let c,l,u=o||a;u&8?(c=e+(r-e)*(this.ymax-n)/(i-n),l=this.ymax):u&4?(c=e+(r-e)*(this.ymin-n)/(i-n),l=this.ymin):u&2?(l=n+(i-n)*(this.xmax-e)/(r-e),c=this.xmax):(l=n+(i-n)*(this.xmin-e)/(r-e),c=this.xmin),o?(e=c,n=l,o=this._regioncode(e,n)):(r=c,i=l,a=this._regioncode(r,i))}}_clipInfinite(e,n,r,i,o,a){let s=Array.from(n),c;if((c=this._project(s[0],s[1],r,i))&&s.unshift(c[0],c[1]),(c=this._project(s[s.length-2],s[s.length-1],o,a))&&s.push(c[0],c[1]),s=this._clipFinite(e,s))for(let l=0,u=s.length,h,f=this._edgecode(s[u-2],s[u-1]);l<u;l+=2)h=f,f=this._edgecode(s[l],s[l+1]),h&&f&&(l=this._edge(e,h,f,s,l),u=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,n,r,i,o){for(;n!==r;){let a,s;switch(n){case 5:n=4;continue;case 4:n=6,a=this.xmax,s=this.ymin;break;case 6:n=2;continue;case 2:n=10,a=this.xmax,s=this.ymax;break;case 10:n=8;continue;case 8:n=9,a=this.xmin,s=this.ymax;break;case 9:n=1;continue;case 1:n=5,a=this.xmin,s=this.ymin;break}(i[o]!==a||i[o+1]!==s)&&this.contains(e,a,s)&&(i.splice(o,0,a,s),o+=2)}return o}_project(e,n,r,i){let o=1/0,a,s,c;if(i<0){if(n<=this.ymin)return null;(a=(this.ymin-n)/i)<o&&(c=this.ymin,s=e+(o=a)*r)}else if(i>0){if(n>=this.ymax)return null;(a=(this.ymax-n)/i)<o&&(c=this.ymax,s=e+(o=a)*r)}if(r>0){if(e>=this.xmax)return null;(a=(this.xmax-e)/r)<o&&(s=this.xmax,c=n+(o=a)*i)}else if(r<0){if(e<=this.xmin)return null;(a=(this.xmin-e)/r)<o&&(s=this.xmin,c=n+(o=a)*i)}return[s,c]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){let r=(n+2)%e.length,i=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[i]||e[n+1]===e[r+1]&&e[r+1]===e[i+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}},Q_=2*Math.PI,Ei=Math.pow;function J_(t){return t[0]}function t8(t){return t[1]}function e8(t){let{triangles:e,coords:n}=t;for(let r=0;r<e.length;r+=3){let i=2*e[r],o=2*e[r+1],a=2*e[r+2];if((n[a]-n[i])*(n[o+1]-n[i+1])-(n[o]-n[i])*(n[a+1]-n[i+1])>1e-10)return!1}return!0}function n8(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}var Du=class t{static from(e,n=J_,r=t8,i){return new t("length"in e?r8(e,n,r,i):Float64Array.from(i8(e,n,r,i)))}constructor(e){this._delaunator=new Os(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){let e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&e8(e)){this.collinear=Int32Array.from({length:n.length/2},(f,d)=>d).sort((f,d)=>n[2*f]-n[2*d]||n[2*f+1]-n[2*d+1]);let c=this.collinear[0],l=this.collinear[this.collinear.length-1],u=[n[2*c],n[2*c+1],n[2*l],n[2*l+1]],h=1e-8*Math.hypot(u[3]-u[1],u[2]-u[0]);for(let f=0,d=n.length/2;f<d;++f){let m=n8(n[2*f],n[2*f+1],h);n[2*f]=m[0],n[2*f+1]=m[1]}this._delaunator=new Os(n)}else delete this.collinear;let r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,o=this.triangles=this._delaunator.triangles,a=this.inedges.fill(-1),s=this._hullIndex.fill(-1);for(let c=0,l=r.length;c<l;++c){let u=o[c%3===2?c-2:c+1];(r[c]===-1||a[u]===-1)&&(a[u]=c)}for(let c=0,l=i.length;c<l;++c)s[i[c]]=c;i.length<=2&&i.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],a[i[0]]=1,i.length===2&&(a[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new Bs(this,e)}*neighbors(e){let{inedges:n,hull:r,_hullIndex:i,halfedges:o,triangles:a,collinear:s}=this;if(s){let h=s.indexOf(e);h>0&&(yield s[h-1]),h<s.length-1&&(yield s[h+1]);return}let c=n[e];if(c===-1)return;let l=c,u=-1;do{if(yield u=a[l],l=l%3===2?l-2:l+1,a[l]!==e)return;if(l=o[l],l===-1){let h=r[(i[e]+1)%r.length];h!==u&&(yield h);return}}while(l!==c)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;let i=r,o;for(;(o=this._step(r,e,n))>=0&&o!==r&&o!==i;)r=o;return o}_step(e,n,r){let{inedges:i,hull:o,_hullIndex:a,halfedges:s,triangles:c,points:l}=this;if(l.length<2)return-1;if(i[e]===-1)return(e+1)%(l.length>>1);let u=e,h=Ei(n-l[e*2],2)+Ei(r-l[e*2+1],2),f=i[e],d=f;do{let m=c[d],p=Ei(n-l[m*2],2)+Ei(r-l[m*2+1],2);if(p<h&&(h=p,u=m),d=d%3===2?d-2:d+1,c[d]!==e)break;if(d=s[d],d===-1){if(d=o[(a[e]+1)%o.length],d!==m&&Ei(n-l[d*2],2)+Ei(r-l[d*2+1],2)<h)return d;break}}while(d!==f);return u}render(e){let n=e==null?e=new Rn:void 0,{points:r,halfedges:i,triangles:o}=this;for(let a=0,s=i.length;a<s;++a){let c=i[a];if(c<a)continue;let l=o[a]*2,u=o[c]*2;e.moveTo(r[l],r[l+1]),e.lineTo(r[u],r[u+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;let r=e==null?e=new Rn:void 0,{points:i}=this;for(let o=0,a=i.length&-2;o<a;o+=2){let s=i[o],c=i[o+1];e.moveTo(s+n,c),e.arc(s,c,n,0,Q_)}return r&&r.value()}renderHull(e){let n=e==null?e=new Rn:void 0,{hull:r,points:i}=this,o=r[0]*2,a=r.length;e.moveTo(i[o],i[o+1]);for(let s=1;s<a;++s){let c=2*r[s];e.lineTo(i[c],i[c+1])}return e.closePath(),n&&n.value()}hullPolygon(){let e=new Mo;return this.renderHull(e),e.value()}renderTriangle(e,n){let r=n==null?n=new Rn:void 0,{points:i,triangles:o}=this,a=o[e*=3]*2,s=o[e+1]*2,c=o[e+2]*2;return n.moveTo(i[a],i[a+1]),n.lineTo(i[s],i[s+1]),n.lineTo(i[c],i[c+1]),n.closePath(),r&&r.value()}*trianglePolygons(){let{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){let n=new Mo;return this.renderTriangle(e,n),n.value()}};function r8(t,e,n,r){let i=t.length,o=new Float64Array(i*2);for(let a=0;a<i;++a){let s=t[a];o[a*2]=e.call(r,s,a,t),o[a*2+1]=n.call(r,s,a,t)}return o}function*i8(t,e,n,r){let i=0;for(let o of t)yield e.call(r,o,i,t),yield n.call(r,o,i,t),++i}var Ep={},$u={},zu=34,Co=10,Nu=13;function Cp(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function o8(t,e){var n=Cp(t);return function(r,i){return e(n(r),i,t)}}function Mp(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Te(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function a8(t){return t<0?"-"+Te(-t,6):t>9999?"+"+Te(t,6):Te(t,4)}function s8(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":a8(t.getUTCFullYear())+"-"+Te(t.getUTCMonth()+1,2)+"-"+Te(t.getUTCDate(),2)+(i?"T"+Te(e,2)+":"+Te(n,2)+":"+Te(r,2)+"."+Te(i,3)+"Z":r?"T"+Te(e,2)+":"+Te(n,2)+":"+Te(r,2)+"Z":n||e?"T"+Te(e,2)+":"+Te(n,2)+"Z":"")}function Fo(t){var e=new RegExp('["'+t+`
|
|
2
|
+
\r]`),n=t.charCodeAt(0);function r(h,f){var d,m,p=i(h,function(g,y){if(d)return d(g,y-1);m=g,d=f?o8(g,f):Cp(g)});return p.columns=m||[],p}function i(h,f){var d=[],m=h.length,p=0,g=0,y,w=m<=0,b=!1;h.charCodeAt(m-1)===Co&&--m,h.charCodeAt(m-1)===Nu&&--m;function v(){if(w)return $u;if(b)return b=!1,Ep;var S,k=p,C;if(h.charCodeAt(k)===zu){for(;p++<m&&h.charCodeAt(p)!==zu||h.charCodeAt(++p)===zu;);return(S=p)>=m?w=!0:(C=h.charCodeAt(p++))===Co?b=!0:C===Nu&&(b=!0,h.charCodeAt(p)===Co&&++p),h.slice(k+1,S-1).replace(/""/g,'"')}for(;p<m;){if((C=h.charCodeAt(S=p++))===Co)b=!0;else if(C===Nu)b=!0,h.charCodeAt(p)===Co&&++p;else if(C!==n)continue;return h.slice(k,S)}return w=!0,h.slice(k,m)}for(;(y=v())!==$u;){for(var _=[];y!==Ep&&y!==$u;)_.push(y),y=v();f&&(_=f(_,g++))==null||d.push(_)}return d}function o(h,f){return h.map(function(d){return f.map(function(m){return u(d[m])}).join(t)})}function a(h,f){return f==null&&(f=Mp(h)),[f.map(u).join(t)].concat(o(h,f)).join(`
|
|
3
3
|
`)}function s(h,f){return f==null&&(f=Mp(h)),o(h,f).join(`
|
|
4
4
|
`)}function c(h){return h.map(l).join(`
|
|
5
|
-
`)}function l(h){return h.map(u).join(t)}function u(h){return h==null?"":h instanceof Date?a8(h):e.test(h+="")?'"'+h.replace(/"/g,'""')+'"':h}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:l,formatValue:u}}var Br=Fo(","),Ru=Br.parse,s8=Br.parseRows,l8=Br.format,c8=Br.formatBody,u8=Br.formatRows,f8=Br.formatRow,h8=Br.formatValue,Dr=Fo(" "),Pu=Dr.parse,d8=Dr.parseRows,p8=Dr.format,g8=Dr.formatBody,m8=Dr.formatRows,y8=Dr.formatRow,b8=Dr.formatValue;function v8(t){for(var e in t){var n=t[e].trim(),r,i;if(!n)n=null;else if(n==="true")n=!0;else if(n==="false")n=!1;else if(n==="NaN")n=NaN;else if(!isNaN(r=+n))n=r;else if(i=n.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/))w8&&i[4]&&!i[7]&&(n=n.replace(/-/g,"/").replace(/T/," ")),n=new Date(n);else continue;t[e]=n}return t}var w8=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function x8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function _8(t,e){return fetch(t,e).then(x8)}function S8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function k8(t,e){return fetch(t,e).then(S8)}function A8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Ds(t,e){return fetch(t,e).then(A8)}function Fp(t){return function(e,n,r){return arguments.length===2&&typeof n=="function"&&(r=n,n=void 0),Ds(e,n).then(function(i){return t(i,r)})}}function E8(t,e,n,r){arguments.length===3&&typeof n=="function"&&(r=n,n=void 0);var i=Fo(t);return Ds(e,n).then(function(o){return i.parse(o,r)})}var M8=Fp(Ru),C8=Fp(Pu);function F8(t,e){return new Promise(function(n,r){var i=new Image;for(var o in e)i[o]=e[o];i.onerror=r,i.onload=function(){n(i)},i.src=t})}function T8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);if(!(t.status===204||t.status===205))return t.json()}function O8(t,e){return fetch(t,e).then(T8)}function Iu(t){return(e,n)=>Ds(e,n).then(r=>new DOMParser().parseFromString(r,t))}var B8=Iu("application/xml"),D8=Iu("text/html"),$8=Iu("image/svg+xml");function z8(t){let e=+this._x.call(null,t),n=+this._y.call(null,t);return Op(this.cover(e,n),e,n,t)}function Op(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,o=t._root,a={data:r},s=t._x0,c=t._y0,l=t._x1,u=t._y1,h,f,d,m,p,g,y,w;if(!o)return t._root=a,t;for(;o.length;)if((p=e>=(h=(s+l)/2))?s=h:l=h,(g=n>=(f=(c+u)/2))?c=f:u=f,i=o,!(o=o[y=g<<1|p]))return i[y]=a,t;if(d=+t._x.call(null,o.data),m=+t._y.call(null,o.data),e===d&&n===m)return a.next=o,i?i[y]=a:t._root=a,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(p=e>=(h=(s+l)/2))?s=h:l=h,(g=n>=(f=(c+u)/2))?c=f:u=f;while((y=g<<1|p)===(w=(m>=f)<<1|d>=h));return i[w]=o,i[y]=a,t}function N8(t){Array.isArray(t)||(t=Array.from(t));let e=t.length,n=new Float64Array(e),r=new Float64Array(e),i=1/0,o=i,a=-i,s=a;for(let c=0,l,u,h;c<e;++c){if(isNaN(u=+this._x.call(null,l=t[c]))||isNaN(h=+this._y.call(null,l))){n[c]=NaN;continue}n[c]=u,r[c]=h,u<i&&(i=u),u>a&&(a=u),h<o&&(o=h),h>s&&(s=h)}if(i>a||o>s)return this;this.cover(i,o).cover(a,s);for(let c=0;c<e;++c)Op(this,n[c],r[c],t[c]);return this}function R8(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,o=(r=Math.floor(e))+1;else{for(var a=i-n||1,s=this._root,c,l;n>t||t>=i||r>e||e>=o;)switch(l=(e<r)<<1|t<n,c=new Array(4),c[l]=s,s=c,a*=2,l){case 0:i=n+a,o=r+a;break;case 1:n=i-a,o=r+a;break;case 2:i=n+a,r=o-a;break;case 3:n=i-a,r=o-a;break}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this}function P8(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function I8(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function ve(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function L8(t,e,n){var r,i=this._x0,o=this._y0,a,s,c,l,u=this._x1,h=this._y1,f=[],d=this._root,m,p;for(d&&f.push(new ve(d,i,o,u,h)),n==null?n=1/0:(i=t-n,o=e-n,u=t+n,h=e+n,n*=n);m=f.pop();)if(!(!(d=m.node)||(a=m.x0)>u||(s=m.y0)>h||(c=m.x1)<i||(l=m.y1)<o))if(d.length){var g=(a+c)/2,y=(s+l)/2;f.push(new ve(d[3],g,y,c,l),new ve(d[2],a,y,g,l),new ve(d[1],g,s,c,y),new ve(d[0],a,s,g,y)),(p=(e>=y)<<1|t>=g)&&(m=f[f.length-1],f[f.length-1]=f[f.length-1-p],f[f.length-1-p]=m)}else{var w=t-+this._x.call(null,d.data),b=e-+this._y.call(null,d.data),v=w*w+b*b;if(v<n){var _=Math.sqrt(n=v);i=t-_,o=e-_,u=t+_,h=e+_,r=d.data}}return r}function q8(t){if(isNaN(u=+this._x.call(null,t))||isNaN(h=+this._y.call(null,t)))return this;var e,n=this._root,r,i,o,a=this._x0,s=this._y0,c=this._x1,l=this._y1,u,h,f,d,m,p,g,y;if(!n)return this;if(n.length)for(;;){if((m=u>=(f=(a+c)/2))?a=f:c=f,(p=h>=(d=(s+l)/2))?s=d:l=d,e=n,!(n=n[g=p<<1|m]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,y=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(o=n.next)&&delete n.next,i?(o?i.next=o:delete i.next,this):e?(o?e[g]=o:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[y]=n:this._root=n),this):(this._root=o,this)}function Y8(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function U8(){return this._root}function H8(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function W8(t){var e=[],n,r=this._root,i,o,a,s,c;for(r&&e.push(new ve(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,o=n.x0,a=n.y0,s=n.x1,c=n.y1)&&r.length){var l=(o+s)/2,u=(a+c)/2;(i=r[3])&&e.push(new ve(i,l,u,s,c)),(i=r[2])&&e.push(new ve(i,o,u,l,c)),(i=r[1])&&e.push(new ve(i,l,a,s,u)),(i=r[0])&&e.push(new ve(i,o,a,l,u))}return this}function j8(t){var e=[],n=[],r;for(this._root&&e.push(new ve(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var o,a=r.x0,s=r.y0,c=r.x1,l=r.y1,u=(a+c)/2,h=(s+l)/2;(o=i[0])&&e.push(new ve(o,a,s,u,h)),(o=i[1])&&e.push(new ve(o,u,s,c,h)),(o=i[2])&&e.push(new ve(o,a,h,u,l)),(o=i[3])&&e.push(new ve(o,u,h,c,l))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function X8(t){return t[0]}function G8(t){return arguments.length?(this._x=t,this):this._x}function V8(t){return t[1]}function Z8(t){return arguments.length?(this._y=t,this):this._y}function To(t,e,n){var r=new Lu(e??X8,n??V8,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function Lu(t,e,n,r,i,o){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Tp(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var we=To.prototype=Lu.prototype;we.copy=function(){var t=new Lu(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Tp(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Tp(r));return t};we.add=z8;we.addAll=N8;we.cover=R8;we.data=P8;we.extent=I8;we.find=L8;we.remove=q8;we.removeAll=Y8;we.root=U8;we.size=H8;we.visit=W8;we.visitAfter=j8;we.x=G8;we.y=Z8;function K8(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var o,a=n.length,s,c=0,l=0;for(o=0;o<a;++o)s=n[o],c+=s.x,l+=s.y;for(c=(c/a-t)*r,l=(l/a-e)*r,o=0;o<a;++o)s=n[o],s.x-=c,s.y-=l}return i.initialize=function(o){n=o},i.x=function(o){return arguments.length?(t=+o,i):t},i.y=function(o){return arguments.length?(e=+o,i):e},i.strength=function(o){return arguments.length?(r=+o,i):r},i}function Gt(t){return function(){return t}}function ur(t){return(t()-.5)*1e-6}function Q8(t){return t.x+t.vx}function J8(t){return t.y+t.vy}function t4(t){var e,n,r,i=1,o=1;typeof t!="function"&&(t=Gt(t==null?1:+t));function a(){for(var l,u=e.length,h,f,d,m,p,g,y=0;y<o;++y)for(h=To(e,Q8,J8).visitAfter(s),l=0;l<u;++l)f=e[l],p=n[f.index],g=p*p,d=f.x+f.vx,m=f.y+f.vy,h.visit(w);function w(b,v,_,S,k){var C=b.data,F=b.r,A=p+F;if(C){if(C.index>f.index){var E=d-C.x-C.vx,D=m-C.y-C.vy,$=E*E+D*D;$<A*A&&(E===0&&(E=ur(r),$+=E*E),D===0&&(D=ur(r),$+=D*D),$=(A-($=Math.sqrt($)))/$*i,f.vx+=(E*=$)*(A=(F*=F)/(g+F)),f.vy+=(D*=$)*A,C.vx-=E*(A=1-A),C.vy-=D*A)}return}return v>d+A||S<d-A||_>m+A||k<m-A}}function s(l){if(l.data)return l.r=n[l.data.index];for(var u=l.r=0;u<4;++u)l[u]&&l[u].r>l.r&&(l.r=l[u].r)}function c(){if(e){var l,u=e.length,h;for(n=new Array(u),l=0;l<u;++l)h=e[l],n[h.index]=+t(h,l,e)}}return a.initialize=function(l,u){e=l,r=u,c()},a.iterations=function(l){return arguments.length?(o=+l,a):o},a.strength=function(l){return arguments.length?(i=+l,a):i},a.radius=function(l){return arguments.length?(t=typeof l=="function"?l:Gt(+l),c(),a):t},a}function e4(t){return t.index}function Bp(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function n4(t){var e=e4,n=h,r,i=Gt(30),o,a,s,c,l,u=1;t==null&&(t=[]);function h(g){return 1/Math.min(s[g.source.index],s[g.target.index])}function f(g){for(var y=0,w=t.length;y<u;++y)for(var b=0,v,_,S,k,C,F,A;b<w;++b)v=t[b],_=v.source,S=v.target,k=S.x+S.vx-_.x-_.vx||ur(l),C=S.y+S.vy-_.y-_.vy||ur(l),F=Math.sqrt(k*k+C*C),F=(F-o[b])/F*g*r[b],k*=F,C*=F,S.vx-=k*(A=c[b]),S.vy-=C*A,_.vx+=k*(A=1-A),_.vy+=C*A}function d(){if(a){var g,y=a.length,w=t.length,b=new Map(a.map((_,S)=>[e(_,S,a),_])),v;for(g=0,s=new Array(y);g<w;++g)v=t[g],v.index=g,typeof v.source!="object"&&(v.source=Bp(b,v.source)),typeof v.target!="object"&&(v.target=Bp(b,v.target)),s[v.source.index]=(s[v.source.index]||0)+1,s[v.target.index]=(s[v.target.index]||0)+1;for(g=0,c=new Array(w);g<w;++g)v=t[g],c[g]=s[v.source.index]/(s[v.source.index]+s[v.target.index]);r=new Array(w),m(),o=new Array(w),p()}}function m(){if(a)for(var g=0,y=t.length;g<y;++g)r[g]=+n(t[g],g,t)}function p(){if(a)for(var g=0,y=t.length;g<y;++g)o[g]=+i(t[g],g,t)}return f.initialize=function(g,y){a=g,l=y,d()},f.links=function(g){return arguments.length?(t=g,d(),f):t},f.id=function(g){return arguments.length?(e=g,f):e},f.iterations=function(g){return arguments.length?(u=+g,f):u},f.strength=function(g){return arguments.length?(n=typeof g=="function"?g:Gt(+g),m(),f):n},f.distance=function(g){return arguments.length?(i=typeof g=="function"?g:Gt(+g),p(),f):i},f}var r4=1664525,i4=1013904223,Dp=4294967296;function o4(){let t=1;return()=>(t=(r4*t+i4)%Dp)/Dp}function a4(t){return t.x}function s4(t){return t.y}var l4=10,c4=Math.PI*(3-Math.sqrt(5));function u4(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,s=new Map,c=vi(h),l=Ye("tick","end"),u=o4();t==null&&(t=[]);function h(){f(),l.call("tick",e),n<r&&(c.stop(),l.call("end",e))}function f(p){var g,y=t.length,w;p===void 0&&(p=1);for(var b=0;b<p;++b)for(n+=(o-n)*i,s.forEach(function(v){v(n)}),g=0;g<y;++g)w=t[g],w.fx==null?w.x+=w.vx*=a:(w.x=w.fx,w.vx=0),w.fy==null?w.y+=w.vy*=a:(w.y=w.fy,w.vy=0);return e}function d(){for(var p=0,g=t.length,y;p<g;++p){if(y=t[p],y.index=p,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var w=l4*Math.sqrt(.5+p),b=p*c4;y.x=w*Math.cos(b),y.y=w*Math.sin(b)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function m(p){return p.initialize&&p.initialize(t,u),p}return d(),e={tick:f,restart:function(){return c.restart(h),e},stop:function(){return c.stop(),e},nodes:function(p){return arguments.length?(t=p,d(),s.forEach(m),e):t},alpha:function(p){return arguments.length?(n=+p,e):n},alphaMin:function(p){return arguments.length?(r=+p,e):r},alphaDecay:function(p){return arguments.length?(i=+p,e):+i},alphaTarget:function(p){return arguments.length?(o=+p,e):o},velocityDecay:function(p){return arguments.length?(a=1-p,e):1-a},randomSource:function(p){return arguments.length?(u=p,s.forEach(m),e):u},force:function(p,g){return arguments.length>1?(g==null?s.delete(p):s.set(p,m(g)),e):s.get(p)},find:function(p,g,y){var w=0,b=t.length,v,_,S,k,C;for(y==null?y=1/0:y*=y,w=0;w<b;++w)k=t[w],v=p-k.x,_=g-k.y,S=v*v+_*_,S<y&&(C=k,y=S);return C},on:function(p,g){return arguments.length>1?(l.on(p,g),e):l.on(p)}}}function f4(){var t,e,n,r,i=Gt(-30),o,a=1,s=1/0,c=.81;function l(d){var m,p=t.length,g=To(t,a4,s4).visitAfter(h);for(r=d,m=0;m<p;++m)e=t[m],g.visit(f)}function u(){if(t){var d,m=t.length,p;for(o=new Array(m),d=0;d<m;++d)p=t[d],o[p.index]=+i(p,d,t)}}function h(d){var m=0,p,g,y=0,w,b,v;if(d.length){for(w=b=v=0;v<4;++v)(p=d[v])&&(g=Math.abs(p.value))&&(m+=p.value,y+=g,w+=g*p.x,b+=g*p.y);d.x=w/y,d.y=b/y}else{p=d,p.x=p.data.x,p.y=p.data.y;do m+=o[p.data.index];while(p=p.next)}d.value=m}function f(d,m,p,g){if(!d.value)return!0;var y=d.x-e.x,w=d.y-e.y,b=g-m,v=y*y+w*w;if(b*b/c<v)return v<s&&(y===0&&(y=ur(n),v+=y*y),w===0&&(w=ur(n),v+=w*w),v<a&&(v=Math.sqrt(a*v)),e.vx+=y*d.value*r/v,e.vy+=w*d.value*r/v),!0;if(d.length||v>=s)return;(d.data!==e||d.next)&&(y===0&&(y=ur(n),v+=y*y),w===0&&(w=ur(n),v+=w*w),v<a&&(v=Math.sqrt(a*v)));do d.data!==e&&(b=o[d.data.index]*r/v,e.vx+=y*b,e.vy+=w*b);while(d=d.next)}return l.initialize=function(d,m){t=d,n=m,u()},l.strength=function(d){return arguments.length?(i=typeof d=="function"?d:Gt(+d),u(),l):i},l.distanceMin=function(d){return arguments.length?(a=d*d,l):Math.sqrt(a)},l.distanceMax=function(d){return arguments.length?(s=d*d,l):Math.sqrt(s)},l.theta=function(d){return arguments.length?(c=d*d,l):Math.sqrt(c)},l}function h4(t,e,n){var r,i=Gt(.1),o,a;typeof t!="function"&&(t=Gt(+t)),e==null&&(e=0),n==null&&(n=0);function s(l){for(var u=0,h=r.length;u<h;++u){var f=r[u],d=f.x-e||1e-6,m=f.y-n||1e-6,p=Math.sqrt(d*d+m*m),g=(a[u]-p)*o[u]*l/p;f.vx+=d*g,f.vy+=m*g}}function c(){if(r){var l,u=r.length;for(o=new Array(u),a=new Array(u),l=0;l<u;++l)a[l]=+t(r[l],l,r),o[l]=isNaN(a[l])?0:+i(r[l],l,r)}}return s.initialize=function(l){r=l,c()},s.strength=function(l){return arguments.length?(i=typeof l=="function"?l:Gt(+l),c(),s):i},s.radius=function(l){return arguments.length?(t=typeof l=="function"?l:Gt(+l),c(),s):t},s.x=function(l){return arguments.length?(e=+l,s):e},s.y=function(l){return arguments.length?(n=+l,s):n},s}function d4(t){var e=Gt(.1),n,r,i;typeof t!="function"&&(t=Gt(t==null?0:+t));function o(s){for(var c=0,l=n.length,u;c<l;++c)u=n[c],u.vx+=(i[c]-u.x)*r[c]*s}function a(){if(n){var s,c=n.length;for(r=new Array(c),i=new Array(c),s=0;s<c;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:Gt(+s),a(),o):e},o.x=function(s){return arguments.length?(t=typeof s=="function"?s:Gt(+s),a(),o):t},o}function p4(t){var e=Gt(.1),n,r,i;typeof t!="function"&&(t=Gt(t==null?0:+t));function o(s){for(var c=0,l=n.length,u;c<l;++c)u=n[c],u.vy+=(i[c]-u.y)*r[c]*s}function a(){if(n){var s,c=n.length;for(r=new Array(c),i=new Array(c),s=0;s<c;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:Gt(+s),a(),o):e},o.y=function(s){return arguments.length?(t=typeof s=="function"?s:Gt(+s),a(),o):t},o}function g4(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function zs(t,e){if(!isFinite(t)||t===0)return null;var n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Ci(t){return t=zs(Math.abs(t)),t?t[1]:NaN}function m4(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[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=t[a=(a+1)%t.length];return o.reverse().join(e)}}function y4(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var b4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function $r(t){if(!(e=b4.exec(t)))throw new Error("invalid format: "+t);var e;return new Rs({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}$r.prototype=Rs.prototype;function Rs(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Rs.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 v4(t){t:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break t;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var Ns;function w4(t,e){var n=zs(t,e);if(!n)return Ns=void 0,t.toPrecision(e);var r=n[0],i=n[1],o=i-(Ns=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")+zs(t,Math.max(0,e+o-1))[0]}function $p(t,e){var n=zs(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}var zp={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:g4,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>$p(t*100,e),r:$p,s:w4,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Np(t){return t}var Rp=Array.prototype.map,Pp=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Ip(t){var e=t.grouping===void 0||t.thousands===void 0?Np:m4(Rp.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Np:y4(Rp.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function l(h,f){h=$r(h);var d=h.fill,m=h.align,p=h.sign,g=h.symbol,y=h.zero,w=h.width,b=h.comma,v=h.precision,_=h.trim,S=h.type;S==="n"?(b=!0,S="g"):zp[S]||(v===void 0&&(v=12),_=!0,S="g"),(y||d==="0"&&m==="=")&&(y=!0,d="0",m="=");var k=(f&&f.prefix!==void 0?f.prefix:"")+(g==="$"?n:g==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():""),C=(g==="$"?r:/[%p]/.test(S)?a:"")+(f&&f.suffix!==void 0?f.suffix:""),F=zp[S],A=/[defgprs%]/.test(S);v=v===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v));function E(D){var $=k,M=C,T,B,N;if(S==="c")M=F(D)+M,D="";else{D=+D;var L=D<0||1/D<0;if(D=isNaN(D)?c:F(Math.abs(D),v),_&&(D=v4(D)),L&&+D==0&&p!=="+"&&(L=!1),$=(L?p==="("?p:s:p==="-"||p==="("?"":p)+$,M=(S==="s"&&!isNaN(D)&&Ns!==void 0?Pp[8+Ns/3]:"")+M+(L&&p==="("?")":""),A){for(T=-1,B=D.length;++T<B;)if(N=D.charCodeAt(T),48>N||N>57){M=(N===46?i+D.slice(T+1):D.slice(T))+M,D=D.slice(0,T);break}}}b&&!y&&(D=e(D,1/0));var q=$.length+D.length+M.length,U=q<w?new Array(w-q+1).join(d):"";switch(b&&y&&(D=e(U+D,U.length?w-M.length:1/0),U=""),m){case"<":D=$+D+M+U;break;case"=":D=$+U+D+M;break;case"^":D=U.slice(0,q=U.length>>1)+$+D+M+U.slice(q);break;default:D=U+$+D+M;break}return o(D)}return E.toString=function(){return h+""},E}function u(h,f){var d=Math.max(-8,Math.min(8,Math.floor(Ci(f)/3)))*3,m=Math.pow(10,-d),p=l((h=$r(h),h.type="f",h),{suffix:Pp[8+d/3]});return function(g){return p(m*g)}}return{format:l,formatPrefix:u}}var $s,Oo,Ps;Lp({thousands:",",grouping:[3],currency:["$",""]});function Lp(t){return $s=Ip(t),Oo=$s.format,Ps=$s.formatPrefix,$s}function qu(t){return Math.max(0,-Ci(Math.abs(t)))}function Yu(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ci(e)/3)))*3-Ci(Math.abs(t)))}function Uu(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Ci(e)-Ci(t))+1}var lt=1e-6,Uo=1e-12,mt=Math.PI,qt=mt/2,Gs=mt/4,ke=mt*2,At=180/mt,ct=mt/180,bt=Math.abs,zi=Math.atan,Ae=Math.atan2,it=Math.cos,Is=Math.ceil,mg=Math.exp,Vu=Math.hypot,Vs=Math.log,Hu=Math.pow,et=Math.sin,He=Math.sign||function(t){return t>0?1:t<0?-1:0},Jt=Math.sqrt,wf=Math.tan;function yg(t){return t>1?0:t<-1?mt:Math.acos(t)}function Ee(t){return t>1?qt:t<-1?-qt:Math.asin(t)}function qp(t){return(t=et(t/2))*t}function zt(){}function Zs(t,e){t&&Up.hasOwnProperty(t.type)&&Up[t.type](t,e)}var Yp={Feature:function(t,e){Zs(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)Zs(n[r].geometry,e)}},Up={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){Zu(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Zu(n[r],e,0)},Polygon:function(t,e){Hp(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Hp(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)Zs(n[r],e)}};function Zu(t,e,n){var r=-1,i=t.length-n,o;for(e.lineStart();++r<i;)o=t[r],e.point(o[0],o[1],o[2]);e.lineEnd()}function Hp(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)Zu(t[n],e,1);e.polygonEnd()}function cn(t,e){t&&Yp.hasOwnProperty(t.type)?Yp[t.type](t,e):Zs(t,e)}var Ks=new It,Qs=new It,bg,vg,Ku,Qu,Ju,_n={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){Ks=new It,_n.lineStart=x4,_n.lineEnd=_4},polygonEnd:function(){var t=+Ks;Qs.add(t<0?ke+t:t),this.lineStart=this.lineEnd=this.point=zt},sphere:function(){Qs.add(ke)}};function x4(){_n.point=S4}function _4(){wg(bg,vg)}function S4(t,e){_n.point=wg,bg=t,vg=e,t*=ct,e*=ct,Ku=t,Qu=it(e=e/2+Gs),Ju=et(e)}function wg(t,e){t*=ct,e*=ct,e=e/2+Gs;var n=t-Ku,r=n>=0?1:-1,i=r*n,o=it(e),a=et(e),s=Ju*a,c=Qu*o+s*it(i),l=s*r*et(i);Ks.add(Ae(l,c)),Ku=t,Qu=o,Ju=a}function k4(t){return Qs=new It,cn(t,_n),Qs*2}function Js(t){return[Ae(t[1],t[0]),Ee(t[2])]}function Nr(t){var e=t[0],n=t[1],r=it(n);return[r*it(e),r*et(e),et(n)]}function Ls(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Bi(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Wu(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function qs(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function tl(t){var e=Jt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var $t,Oe,Lt,Ie,zr,xg,_g,Oi,Po,fr,qn,In={point:tf,lineStart:Wp,lineEnd:jp,polygonStart:function(){In.point=kg,In.lineStart=A4,In.lineEnd=E4,Po=new It,_n.polygonStart()},polygonEnd:function(){_n.polygonEnd(),In.point=tf,In.lineStart=Wp,In.lineEnd=jp,Ks<0?($t=-(Lt=180),Oe=-(Ie=90)):Po>lt?Ie=90:Po<-lt&&(Oe=-90),qn[0]=$t,qn[1]=Lt},sphere:function(){$t=-(Lt=180),Oe=-(Ie=90)}};function tf(t,e){fr.push(qn=[$t=t,Lt=t]),e<Oe&&(Oe=e),e>Ie&&(Ie=e)}function Sg(t,e){var n=Nr([t*ct,e*ct]);if(Oi){var r=Bi(Oi,n),i=[r[1],-r[0],0],o=Bi(i,r);tl(o),o=Js(o);var a=t-zr,s=a>0?1:-1,c=o[0]*At*s,l,u=bt(a)>180;u^(s*zr<c&&c<s*t)?(l=o[1]*At,l>Ie&&(Ie=l)):(c=(c+360)%360-180,u^(s*zr<c&&c<s*t)?(l=-o[1]*At,l<Oe&&(Oe=l)):(e<Oe&&(Oe=e),e>Ie&&(Ie=e))),u?t<zr?Pe($t,t)>Pe($t,Lt)&&(Lt=t):Pe(t,Lt)>Pe($t,Lt)&&($t=t):Lt>=$t?(t<$t&&($t=t),t>Lt&&(Lt=t)):t>zr?Pe($t,t)>Pe($t,Lt)&&(Lt=t):Pe(t,Lt)>Pe($t,Lt)&&($t=t)}else fr.push(qn=[$t=t,Lt=t]);e<Oe&&(Oe=e),e>Ie&&(Ie=e),Oi=n,zr=t}function Wp(){In.point=Sg}function jp(){qn[0]=$t,qn[1]=Lt,In.point=tf,Oi=null}function kg(t,e){if(Oi){var n=t-zr;Po.add(bt(n)>180?n+(n>0?360:-360):n)}else xg=t,_g=e;_n.point(t,e),Sg(t,e)}function A4(){_n.lineStart()}function E4(){kg(xg,_g),_n.lineEnd(),bt(Po)>lt&&($t=-(Lt=180)),qn[0]=$t,qn[1]=Lt,Oi=null}function Pe(t,e){return(e-=t)<0?e+360:e}function M4(t,e){return t[0]-e[0]}function Xp(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}function C4(t){var e,n,r,i,o,a,s;if(Ie=Lt=-($t=Oe=1/0),fr=[],cn(t,In),n=fr.length){for(fr.sort(M4),e=1,r=fr[0],o=[r];e<n;++e)i=fr[e],Xp(r,i[0])||Xp(r,i[1])?(Pe(r[0],i[1])>Pe(r[0],r[1])&&(r[1]=i[1]),Pe(i[0],r[1])>Pe(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=o.length-1,e=0,r=o[n];e<=n;r=i,++e)i=o[e],(s=Pe(r[1],i[0]))>a&&(a=s,$t=i[0],Lt=r[1])}return fr=qn=null,$t===1/0||Oe===1/0?[[NaN,NaN],[NaN,NaN]]:[[$t,Oe],[Lt,Ie]]}var Bo,el,nl,rl,il,ol,al,sl,ef,nf,rf,Ag,Eg,xe,_e,Se,un={sphere:zt,point:xf,lineStart:Gp,lineEnd:Vp,polygonStart:function(){un.lineStart=O4,un.lineEnd=B4},polygonEnd:function(){un.lineStart=Gp,un.lineEnd=Vp}};function xf(t,e){t*=ct,e*=ct;var n=it(e);Go(n*it(t),n*et(t),et(e))}function Go(t,e,n){++Bo,nl+=(t-nl)/Bo,rl+=(e-rl)/Bo,il+=(n-il)/Bo}function Gp(){un.point=F4}function F4(t,e){t*=ct,e*=ct;var n=it(e);xe=n*it(t),_e=n*et(t),Se=et(e),un.point=T4,Go(xe,_e,Se)}function T4(t,e){t*=ct,e*=ct;var n=it(e),r=n*it(t),i=n*et(t),o=et(e),a=Ae(Jt((a=_e*o-Se*i)*a+(a=Se*r-xe*o)*a+(a=xe*i-_e*r)*a),xe*r+_e*i+Se*o);el+=a,ol+=a*(xe+(xe=r)),al+=a*(_e+(_e=i)),sl+=a*(Se+(Se=o)),Go(xe,_e,Se)}function Vp(){un.point=xf}function O4(){un.point=D4}function B4(){Mg(Ag,Eg),un.point=xf}function D4(t,e){Ag=t,Eg=e,t*=ct,e*=ct,un.point=Mg;var n=it(e);xe=n*it(t),_e=n*et(t),Se=et(e),Go(xe,_e,Se)}function Mg(t,e){t*=ct,e*=ct;var n=it(e),r=n*it(t),i=n*et(t),o=et(e),a=_e*o-Se*i,s=Se*r-xe*o,c=xe*i-_e*r,l=Vu(a,s,c),u=Ee(l),h=l&&-u/l;ef.add(h*a),nf.add(h*s),rf.add(h*c),el+=u,ol+=u*(xe+(xe=r)),al+=u*(_e+(_e=i)),sl+=u*(Se+(Se=o)),Go(xe,_e,Se)}function $4(t){Bo=el=nl=rl=il=ol=al=sl=0,ef=new It,nf=new It,rf=new It,cn(t,un);var e=+ef,n=+nf,r=+rf,i=Vu(e,n,r);return i<Uo&&(e=ol,n=al,r=sl,el<lt&&(e=nl,n=rl,r=il),i=Vu(e,n,r),i<Uo)?[NaN,NaN]:[Ae(n,e)*At,Ee(r/i)*At]}function Fi(t){return function(){return t}}function of(t,e){function n(r,i){return r=t(r,i),e(r[0],r[1])}return t.invert&&e.invert&&(n.invert=function(r,i){return r=e.invert(r,i),r&&t.invert(r[0],r[1])}),n}function af(t,e){return bt(t)>mt&&(t-=Math.round(t/ke)*ke),[t,e]}af.invert=af;function _f(t,e,n){return(t%=ke)?e||n?of(Kp(t),Qp(e,n)):Kp(t):e||n?Qp(e,n):af}function Zp(t){return function(e,n){return e+=t,bt(e)>mt&&(e-=Math.round(e/ke)*ke),[e,n]}}function Kp(t){var e=Zp(t);return e.invert=Zp(-t),e}function Qp(t,e){var n=it(t),r=et(t),i=it(e),o=et(e);function a(s,c){var l=it(c),u=it(s)*l,h=et(s)*l,f=et(c),d=f*n+u*r;return[Ae(h*i-d*o,u*n-f*r),Ee(d*i+h*o)]}return a.invert=function(s,c){var l=it(c),u=it(s)*l,h=et(s)*l,f=et(c),d=f*i-h*o;return[Ae(h*i+f*o,u*n+d*r),Ee(d*n-u*r)]},a}function Cg(t){t=_f(t[0]*ct,t[1]*ct,t.length>2?t[2]*ct:0);function e(n){return n=t(n[0]*ct,n[1]*ct),n[0]*=At,n[1]*=At,n}return e.invert=function(n){return n=t.invert(n[0]*ct,n[1]*ct),n[0]*=At,n[1]*=At,n},e}function Fg(t,e,n,r,i,o){if(n){var a=it(e),s=et(e),c=r*n;i==null?(i=e+r*ke,o=e-c/2):(i=Jp(a,i),o=Jp(a,o),(r>0?i<o:i>o)&&(i+=r*ke));for(var l,u=i;r>0?u>o:u<o;u-=c)l=Js([a,-s*it(u),-s*et(u)]),t.point(l[0],l[1])}}function Jp(t,e){e=Nr(e),e[0]-=t,tl(e);var n=yg(-e[1]);return((-e[2]<0?-n:n)+ke-lt)%ke}function z4(){var t=Fi([0,0]),e=Fi(90),n=Fi(2),r,i,o={point:a};function a(c,l){r.push(c=i(c,l)),c[0]*=At,c[1]*=At}function s(){var c=t.apply(this,arguments),l=e.apply(this,arguments)*ct,u=n.apply(this,arguments)*ct;return r=[],i=_f(-c[0]*ct,-c[1]*ct,0).invert,Fg(o,l,u,1),c={type:"Polygon",coordinates:[r]},r=i=null,c}return s.center=function(c){return arguments.length?(t=typeof c=="function"?c:Fi([+c[0],+c[1]]),s):t},s.radius=function(c){return arguments.length?(e=typeof c=="function"?c:Fi(+c),s):e},s.precision=function(c){return arguments.length?(n=typeof c=="function"?c:Fi(+c),s):n},s}function Tg(){var t=[],e;return{point:function(n,r,i){e.push([n,r,i])},lineStart:function(){t.push(e=[])},lineEnd:zt,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Ws(t,e){return bt(t[0]-e[0])<lt&&bt(t[1]-e[1])<lt}function Ys(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Og(t,e,n,r,i){var o=[],a=[],s,c;if(t.forEach(function(m){if(!((p=m.length-1)<=0)){var p,g=m[0],y=m[p],w;if(Ws(g,y)){if(!g[2]&&!y[2]){for(i.lineStart(),s=0;s<p;++s)i.point((g=m[s])[0],g[1]);i.lineEnd();return}y[0]+=2*lt}o.push(w=new Ys(g,m,null,!0)),a.push(w.o=new Ys(g,null,w,!1)),o.push(w=new Ys(y,m,null,!1)),a.push(w.o=new Ys(y,null,w,!0))}}),!!o.length){for(a.sort(e),tg(o),tg(a),s=0,c=a.length;s<c;++s)a[s].e=n=!n;for(var l=o[0],u,h;;){for(var f=l,d=!0;f.v;)if((f=f.n)===l)return;u=f.z,i.lineStart();do{if(f.v=f.o.v=!0,f.e){if(d)for(s=0,c=u.length;s<c;++s)i.point((h=u[s])[0],h[1]);else r(f.x,f.n.x,1,i);f=f.n}else{if(d)for(u=f.p.z,s=u.length-1;s>=0;--s)i.point((h=u[s])[0],h[1]);else r(f.x,f.p.x,-1,i);f=f.p}f=f.o,u=f.z,d=!d}while(!f.v);i.lineEnd()}}}function tg(t){if(e=t.length){for(var e,n=0,r=t[0],i;++n<e;)r.n=i=t[n],i.p=r,r=i;r.n=i=t[0],i.p=r}}function ju(t){return bt(t[0])<=mt?t[0]:He(t[0])*((bt(t[0])+mt)%ke-mt)}function Bg(t,e){var n=ju(e),r=e[1],i=et(r),o=[et(n),-it(n),0],a=0,s=0,c=new It;i===1?r=qt+lt:i===-1&&(r=-qt-lt);for(var l=0,u=t.length;l<u;++l)if(f=(h=t[l]).length)for(var h,f,d=h[f-1],m=ju(d),p=d[1]/2+Gs,g=et(p),y=it(p),w=0;w<f;++w,m=v,g=S,y=k,d=b){var b=h[w],v=ju(b),_=b[1]/2+Gs,S=et(_),k=it(_),C=v-m,F=C>=0?1:-1,A=F*C,E=A>mt,D=g*S;if(c.add(Ae(D*F*et(A),y*k+D*it(A))),a+=E?C+F*ke:C,E^m>=n^v>=n){var $=Bi(Nr(d),Nr(b));tl($);var M=Bi(o,$);tl(M);var T=(E^C>=0?-1:1)*Ee(M[2]);(r>T||r===T&&($[0]||$[1]))&&(s+=E^C>=0?1:-1)}}return(a<-lt||a<lt&&c<-Uo)^s&1}function Dg(t,e,n,r){return function(i){var o=e(i),a=Tg(),s=e(a),c=!1,l,u,h,f={point:d,lineStart:p,lineEnd:g,polygonStart:function(){f.point=y,f.lineStart=w,f.lineEnd=b,u=[],l=[]},polygonEnd:function(){f.point=d,f.lineStart=p,f.lineEnd=g,u=Ka(u);var v=Bg(l,r);u.length?(c||(i.polygonStart(),c=!0),Og(u,R4,v,n,i)):v&&(c||(i.polygonStart(),c=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),c&&(i.polygonEnd(),c=!1),u=l=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(v,_){t(v,_)&&i.point(v,_)}function m(v,_){o.point(v,_)}function p(){f.point=m,o.lineStart()}function g(){f.point=d,o.lineEnd()}function y(v,_){h.push([v,_]),s.point(v,_)}function w(){s.lineStart(),h=[]}function b(){y(h[0][0],h[0][1]),s.lineEnd();var v=s.clean(),_=a.result(),S,k=_.length,C,F,A;if(h.pop(),l.push(h),h=null,!!k){if(v&1){if(F=_[0],(C=F.length-1)>0){for(c||(i.polygonStart(),c=!0),i.lineStart(),S=0;S<C;++S)i.point((A=F[S])[0],A[1]);i.lineEnd()}return}k>1&&v&2&&_.push(_.pop().concat(_.shift())),u.push(_.filter(N4))}}return f}}function N4(t){return t.length>1}function R4(t,e){return((t=t.x)[0]<0?t[1]-qt-lt:qt-t[1])-((e=e.x)[0]<0?e[1]-qt-lt:qt-e[1])}var sf=Dg(function(){return!0},P4,L4,[-mt,-qt]);function P4(t){var e=NaN,n=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(o,a){var s=o>0?mt:-mt,c=bt(o-e);bt(c-mt)<lt?(t.point(e,n=(n+a)/2>0?qt:-qt),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(o,n),i=0):r!==s&&c>=mt&&(bt(e-r)<lt&&(e-=r*lt),bt(o-s)<lt&&(o-=s*lt),n=I4(e,n,o,a),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(s,n),i=0),t.point(e=o,n=a),r=s},lineEnd:function(){t.lineEnd(),e=n=NaN},clean:function(){return 2-i}}}function I4(t,e,n,r){var i,o,a=et(t-n);return bt(a)>lt?zi((et(e)*(o=it(r))*et(n)-et(r)*(i=it(e))*et(t))/(i*o*a)):(e+r)/2}function L4(t,e,n,r){var i;if(t==null)i=n*qt,r.point(-mt,i),r.point(0,i),r.point(mt,i),r.point(mt,0),r.point(mt,-i),r.point(0,-i),r.point(-mt,-i),r.point(-mt,0),r.point(-mt,i);else if(bt(t[0]-e[0])>lt){var o=t[0]<e[0]?mt:-mt;i=n*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(e[0],e[1])}function $g(t){var e=it(t),n=2*ct,r=e>0,i=bt(e)>lt;function o(u,h,f,d){Fg(d,t,n,f,u,h)}function a(u,h){return it(u)*it(h)>e}function s(u){var h,f,d,m,p;return{lineStart:function(){m=d=!1,p=1},point:function(g,y){var w=[g,y],b,v=a(g,y),_=r?v?0:l(g,y):v?l(g+(g<0?mt:-mt),y):0;if(!h&&(m=d=v)&&u.lineStart(),v!==d&&(b=c(h,w),(!b||Ws(h,b)||Ws(w,b))&&(w[2]=1)),v!==d)p=0,v?(u.lineStart(),b=c(w,h),u.point(b[0],b[1])):(b=c(h,w),u.point(b[0],b[1],2),u.lineEnd()),h=b;else if(i&&h&&r^v){var S;!(_&f)&&(S=c(w,h,!0))&&(p=0,r?(u.lineStart(),u.point(S[0][0],S[0][1]),u.point(S[1][0],S[1][1]),u.lineEnd()):(u.point(S[1][0],S[1][1]),u.lineEnd(),u.lineStart(),u.point(S[0][0],S[0][1],3)))}v&&(!h||!Ws(h,w))&&u.point(w[0],w[1]),h=w,d=v,f=_},lineEnd:function(){d&&u.lineEnd(),h=null},clean:function(){return p|(m&&d)<<1}}}function c(u,h,f){var d=Nr(u),m=Nr(h),p=[1,0,0],g=Bi(d,m),y=Ls(g,g),w=g[0],b=y-w*w;if(!b)return!f&&u;var v=e*y/b,_=-e*w/b,S=Bi(p,g),k=qs(p,v),C=qs(g,_);Wu(k,C);var F=S,A=Ls(k,F),E=Ls(F,F),D=A*A-E*(Ls(k,k)-1);if(!(D<0)){var $=Jt(D),M=qs(F,(-A-$)/E);if(Wu(M,k),M=Js(M),!f)return M;var T=u[0],B=h[0],N=u[1],L=h[1],q;B<T&&(q=T,T=B,B=q);var U=B-T,Z=bt(U-mt)<lt,Q=Z||U<lt;if(!Z&&L<N&&(q=N,N=L,L=q),Q?Z?N+L>0^M[1]<(bt(M[0]-T)<lt?N:L):N<=M[1]&&M[1]<=L:U>mt^(T<=M[0]&&M[0]<=B)){var j=qs(F,(-A+$)/E);return Wu(j,k),[M,Js(j)]}}}function l(u,h){var f=r?t:mt-t,d=0;return u<-f?d|=1:u>f&&(d|=2),h<-f?d|=4:h>f&&(d|=8),d}return Dg(a,s,o,r?[0,-t]:[-mt,t-mt])}function q4(t,e,n,r,i,o){var a=t[0],s=t[1],c=e[0],l=e[1],u=0,h=1,f=c-a,d=l-s,m;if(m=n-a,!(!f&&m>0)){if(m/=f,f<0){if(m<u)return;m<h&&(h=m)}else if(f>0){if(m>h)return;m>u&&(u=m)}if(m=i-a,!(!f&&m<0)){if(m/=f,f<0){if(m>h)return;m>u&&(u=m)}else if(f>0){if(m<u)return;m<h&&(h=m)}if(m=r-s,!(!d&&m>0)){if(m/=d,d<0){if(m<u)return;m<h&&(h=m)}else if(d>0){if(m>h)return;m>u&&(u=m)}if(m=o-s,!(!d&&m<0)){if(m/=d,d<0){if(m>h)return;m>u&&(u=m)}else if(d>0){if(m<u)return;m<h&&(h=m)}return u>0&&(t[0]=a+u*f,t[1]=s+u*d),h<1&&(e[0]=a+h*f,e[1]=s+h*d),!0}}}}}var Do=1e9,Us=-Do;function vl(t,e,n,r){function i(l,u){return t<=l&&l<=n&&e<=u&&u<=r}function o(l,u,h,f){var d=0,m=0;if(l==null||(d=a(l,h))!==(m=a(u,h))||c(l,u)<0^h>0)do f.point(d===0||d===3?t:n,d>1?r:e);while((d=(d+h+4)%4)!==m);else f.point(u[0],u[1])}function a(l,u){return bt(l[0]-t)<lt?u>0?0:3:bt(l[0]-n)<lt?u>0?2:1:bt(l[1]-e)<lt?u>0?1:0:u>0?3:2}function s(l,u){return c(l.x,u.x)}function c(l,u){var h=a(l,1),f=a(u,1);return h!==f?h-f:h===0?u[1]-l[1]:h===1?l[0]-u[0]:h===2?l[1]-u[1]:u[0]-l[0]}return function(l){var u=l,h=Tg(),f,d,m,p,g,y,w,b,v,_,S,k={point:C,lineStart:D,lineEnd:$,polygonStart:A,polygonEnd:E};function C(T,B){i(T,B)&&u.point(T,B)}function F(){for(var T=0,B=0,N=d.length;B<N;++B)for(var L=d[B],q=1,U=L.length,Z=L[0],Q,j,H=Z[0],W=Z[1];q<U;++q)Q=H,j=W,Z=L[q],H=Z[0],W=Z[1],j<=r?W>r&&(H-Q)*(r-j)>(W-j)*(t-Q)&&++T:W<=r&&(H-Q)*(r-j)<(W-j)*(t-Q)&&--T;return T}function A(){u=h,f=[],d=[],S=!0}function E(){var T=F(),B=S&&T,N=(f=Ka(f)).length;(B||N)&&(l.polygonStart(),B&&(l.lineStart(),o(null,null,1,l),l.lineEnd()),N&&Og(f,s,T,o,l),l.polygonEnd()),u=l,f=d=m=null}function D(){k.point=M,d&&d.push(m=[]),_=!0,v=!1,w=b=NaN}function $(){f&&(M(p,g),y&&v&&h.rejoin(),f.push(h.result())),k.point=C,v&&u.lineEnd()}function M(T,B){var N=i(T,B);if(d&&m.push([T,B]),_)p=T,g=B,y=N,_=!1,N&&(u.lineStart(),u.point(T,B));else if(N&&v)u.point(T,B);else{var L=[w=Math.max(Us,Math.min(Do,w)),b=Math.max(Us,Math.min(Do,b))],q=[T=Math.max(Us,Math.min(Do,T)),B=Math.max(Us,Math.min(Do,B))];q4(L,q,t,e,n,r)?(v||(u.lineStart(),u.point(L[0],L[1])),u.point(q[0],q[1]),N||u.lineEnd(),S=!1):N&&(u.lineStart(),u.point(T,B),S=!1)}w=T,b=B,v=N}return k}}function Y4(){var t=0,e=0,n=960,r=500,i,o,a;return a={stream:function(s){return i&&o===s?i:i=vl(t,e,n,r)(o=s)},extent:function(s){return arguments.length?(t=+s[0][0],e=+s[0][1],n=+s[1][0],r=+s[1][1],i=o=null,a):[[t,e],[n,r]]}}}var lf,cf,js,Xs,Di={sphere:zt,point:zt,lineStart:U4,lineEnd:zt,polygonStart:zt,polygonEnd:zt};function U4(){Di.point=W4,Di.lineEnd=H4}function H4(){Di.point=Di.lineEnd=zt}function W4(t,e){t*=ct,e*=ct,cf=t,js=et(e),Xs=it(e),Di.point=j4}function j4(t,e){t*=ct,e*=ct;var n=et(e),r=it(e),i=bt(t-cf),o=it(i),a=et(i),s=r*a,c=Xs*n-js*r*o,l=js*n+Xs*r*o;lf.add(Ae(Jt(s*s+c*c),l)),cf=t,js=n,Xs=r}function zg(t){return lf=new It,cn(t,Di),+lf}var uf=[null,null],X4={type:"LineString",coordinates:uf};function ll(t,e){return uf[0]=t,uf[1]=e,zg(X4)}var eg={Feature:function(t,e){return cl(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)if(cl(n[r].geometry,e))return!0;return!1}},ng={Sphere:function(){return!0},Point:function(t,e){return rg(t.coordinates,e)},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(rg(n[r],e))return!0;return!1},LineString:function(t,e){return ig(t.coordinates,e)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(ig(n[r],e))return!0;return!1},Polygon:function(t,e){return og(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(og(n[r],e))return!0;return!1},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)if(cl(n[r],e))return!0;return!1}};function cl(t,e){return t&&ng.hasOwnProperty(t.type)?ng[t.type](t,e):!1}function rg(t,e){return ll(t,e)===0}function ig(t,e){for(var n,r,i,o=0,a=t.length;o<a;o++){if(r=ll(t[o],e),r===0||o>0&&(i=ll(t[o],t[o-1]),i>0&&n<=i&&r<=i&&(n+r-i)*(1-Math.pow((n-r)/i,2))<Uo*i))return!0;n=r}return!1}function og(t,e){return!!Bg(t.map(G4),Ng(e))}function G4(t){return t=t.map(Ng),t.pop(),t}function Ng(t){return[t[0]*ct,t[1]*ct]}function V4(t,e){return(t&&eg.hasOwnProperty(t.type)?eg[t.type]:cl)(t,e)}function ag(t,e,n){var r=dn(t,e-lt,n).concat(e);return function(i){return r.map(function(o){return[i,o]})}}function sg(t,e,n){var r=dn(t,e-lt,n).concat(e);return function(i){return r.map(function(o){return[o,i]})}}function Rg(){var t,e,n,r,i,o,a,s,c=10,l=c,u=90,h=360,f,d,m,p,g=2.5;function y(){return{type:"MultiLineString",coordinates:w()}}function w(){return dn(Is(r/u)*u,n,u).map(m).concat(dn(Is(s/h)*h,a,h).map(p)).concat(dn(Is(e/c)*c,t,c).filter(function(b){return bt(b%u)>lt}).map(f)).concat(dn(Is(o/l)*l,i,l).filter(function(b){return bt(b%h)>lt}).map(d))}return y.lines=function(){return w().map(function(b){return{type:"LineString",coordinates:b}})},y.outline=function(){return{type:"Polygon",coordinates:[m(r).concat(p(a).slice(1),m(n).reverse().slice(1),p(s).reverse().slice(1))]}},y.extent=function(b){return arguments.length?y.extentMajor(b).extentMinor(b):y.extentMinor()},y.extentMajor=function(b){return arguments.length?(r=+b[0][0],n=+b[1][0],s=+b[0][1],a=+b[1][1],r>n&&(b=r,r=n,n=b),s>a&&(b=s,s=a,a=b),y.precision(g)):[[r,s],[n,a]]},y.extentMinor=function(b){return arguments.length?(e=+b[0][0],t=+b[1][0],o=+b[0][1],i=+b[1][1],e>t&&(b=e,e=t,t=b),o>i&&(b=o,o=i,i=b),y.precision(g)):[[e,o],[t,i]]},y.step=function(b){return arguments.length?y.stepMajor(b).stepMinor(b):y.stepMinor()},y.stepMajor=function(b){return arguments.length?(u=+b[0],h=+b[1],y):[u,h]},y.stepMinor=function(b){return arguments.length?(c=+b[0],l=+b[1],y):[c,l]},y.precision=function(b){return arguments.length?(g=+b,f=ag(o,i,90),d=sg(e,t,g),m=ag(s,a,90),p=sg(r,n,g),y):g},y.extentMajor([[-180,-90+lt],[180,90-lt]]).extentMinor([[-180,-80-lt],[180,80+lt]])}function Z4(){return Rg()()}function K4(t,e){var n=t[0]*ct,r=t[1]*ct,i=e[0]*ct,o=e[1]*ct,a=it(r),s=et(r),c=it(o),l=et(o),u=a*it(n),h=a*et(n),f=c*it(i),d=c*et(i),m=2*Ee(Jt(qp(o-r)+a*c*qp(i-n))),p=et(m),g=m?function(y){var w=et(y*=m)/p,b=et(m-y)/p,v=b*u+w*f,_=b*h+w*d,S=b*s+w*l;return[Ae(_,v)*At,Ae(S,Jt(v*v+_*_))*At]}:function(){return[n*At,r*At]};return g.distance=m,g}var Ho=t=>t,Xu=new It,ff=new It,Pg,Ig,hf,df,Ln={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){Ln.lineStart=Q4,Ln.lineEnd=t6},polygonEnd:function(){Ln.lineStart=Ln.lineEnd=Ln.point=zt,Xu.add(bt(ff)),ff=new It},result:function(){var t=Xu/2;return Xu=new It,t}};function Q4(){Ln.point=J4}function J4(t,e){Ln.point=Lg,Pg=hf=t,Ig=df=e}function Lg(t,e){ff.add(df*t-hf*e),hf=t,df=e}function t6(){Lg(Pg,Ig)}var $i=1/0,ul=$i,Wo=-$i,fl=Wo,hl={point:e6,lineStart:zt,lineEnd:zt,polygonStart:zt,polygonEnd:zt,result:function(){var t=[[$i,ul],[Wo,fl]];return Wo=fl=-(ul=$i=1/0),t}};function e6(t,e){t<$i&&($i=t),t>Wo&&(Wo=t),e<ul&&(ul=e),e>fl&&(fl=e)}var pf=0,gf=0,$o=0,dl=0,pl=0,Ti=0,mf=0,yf=0,zo=0,qg,Yg,wn,xn,Ue={point:Rr,lineStart:lg,lineEnd:cg,polygonStart:function(){Ue.lineStart=i6,Ue.lineEnd=o6},polygonEnd:function(){Ue.point=Rr,Ue.lineStart=lg,Ue.lineEnd=cg},result:function(){var t=zo?[mf/zo,yf/zo]:Ti?[dl/Ti,pl/Ti]:$o?[pf/$o,gf/$o]:[NaN,NaN];return pf=gf=$o=dl=pl=Ti=mf=yf=zo=0,t}};function Rr(t,e){pf+=t,gf+=e,++$o}function lg(){Ue.point=n6}function n6(t,e){Ue.point=r6,Rr(wn=t,xn=e)}function r6(t,e){var n=t-wn,r=e-xn,i=Jt(n*n+r*r);dl+=i*(wn+t)/2,pl+=i*(xn+e)/2,Ti+=i,Rr(wn=t,xn=e)}function cg(){Ue.point=Rr}function i6(){Ue.point=a6}function o6(){Ug(qg,Yg)}function a6(t,e){Ue.point=Ug,Rr(qg=wn=t,Yg=xn=e)}function Ug(t,e){var n=t-wn,r=e-xn,i=Jt(n*n+r*r);dl+=i*(wn+t)/2,pl+=i*(xn+e)/2,Ti+=i,i=xn*t-wn*e,mf+=i*(wn+t),yf+=i*(xn+e),zo+=i*3,Rr(wn=t,xn=e)}function Hg(t){this._context=t}Hg.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:{this._context.moveTo(t,e),this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,ke);break}}},result:zt};var bf=new It,Gu,Wg,jg,No,Ro,jo={point:zt,lineStart:function(){jo.point=s6},lineEnd:function(){Gu&&Xg(Wg,jg),jo.point=zt},polygonStart:function(){Gu=!0},polygonEnd:function(){Gu=null},result:function(){var t=+bf;return bf=new It,t}};function s6(t,e){jo.point=Xg,Wg=No=t,jg=Ro=e}function Xg(t,e){No-=t,Ro-=e,bf.add(Jt(No*No+Ro*Ro)),No=t,Ro=e}var ug,gl,fg,hg,ml=class{constructor(e){this._append=e==null?Gg:l6(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(e,n){switch(this._point){case 0:{this._append`M${e},${n}`,this._point=1;break}case 1:{this._append`L${e},${n}`;break}default:{if(this._append`M${e},${n}`,this._radius!==fg||this._append!==gl){let r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,fg=r,gl=this._append,hg=this._,this._=i}this._+=hg;break}}}result(){let e=this._;return this._="",e.length?e:null}};function Gg(t){let e=1;this._+=t[0];for(let n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function l6(t){let e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return Gg;if(e!==ug){let n=10**e;ug=e,gl=function(i){let o=1;this._+=i[0];for(let a=i.length;o<a;++o)this._+=Math.round(arguments[o]*n)/n+i[o]}}return gl}function c6(t,e){let n=3,r=4.5,i,o;function a(s){return s&&(typeof r=="function"&&o.pointRadius(+r.apply(this,arguments)),cn(s,i(o))),o.result()}return a.area=function(s){return cn(s,i(Ln)),Ln.result()},a.measure=function(s){return cn(s,i(jo)),jo.result()},a.bounds=function(s){return cn(s,i(hl)),hl.result()},a.centroid=function(s){return cn(s,i(Ue)),Ue.result()},a.projection=function(s){return arguments.length?(i=s==null?(t=null,Ho):(t=s).stream,a):t},a.context=function(s){return arguments.length?(o=s==null?(e=null,new ml(n)):new Hg(e=s),typeof r!="function"&&o.pointRadius(r),a):e},a.pointRadius=function(s){return arguments.length?(r=typeof s=="function"?s:(o.pointRadius(+s),+s),a):r},a.digits=function(s){if(!arguments.length)return n;if(s==null)n=null;else{let c=Math.floor(s);if(!(c>=0))throw new RangeError(`invalid digits: ${s}`);n=c}return e===null&&(o=new ml(n)),a},a.projection(t).digits(n).context(e)}function u6(t){return{stream:Vo(t)}}function Vo(t){return function(e){var n=new vf;for(var r in t)n[r]=t[r];return n.stream=e,n}}function vf(){}vf.prototype={constructor:vf,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function Sf(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),cn(n,t.stream(hl)),e(hl.result()),r!=null&&t.clipExtent(r),t}function wl(t,e,n){return Sf(t,function(r){var i=e[1][0]-e[0][0],o=e[1][1]-e[0][1],a=Math.min(i/(r[1][0]-r[0][0]),o/(r[1][1]-r[0][1])),s=+e[0][0]+(i-a*(r[1][0]+r[0][0]))/2,c=+e[0][1]+(o-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([s,c])},n)}function kf(t,e,n){return wl(t,[[0,0],e],n)}function Af(t,e,n){return Sf(t,function(r){var i=+e,o=i/(r[1][0]-r[0][0]),a=(i-o*(r[1][0]+r[0][0]))/2,s=-o*r[0][1];t.scale(150*o).translate([a,s])},n)}function Ef(t,e,n){return Sf(t,function(r){var i=+e,o=i/(r[1][1]-r[0][1]),a=-o*r[0][0],s=(i-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([a,s])},n)}var dg=16,f6=it(30*ct);function pg(t,e){return+e?d6(t,e):h6(t)}function h6(t){return Vo({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function d6(t,e){function n(r,i,o,a,s,c,l,u,h,f,d,m,p,g){var y=l-r,w=u-i,b=y*y+w*w;if(b>4*e&&p--){var v=a+f,_=s+d,S=c+m,k=Jt(v*v+_*_+S*S),C=Ee(S/=k),F=bt(bt(S)-1)<lt||bt(o-h)<lt?(o+h)/2:Ae(_,v),A=t(F,C),E=A[0],D=A[1],$=E-r,M=D-i,T=w*$-y*M;(T*T/b>e||bt((y*$+w*M)/b-.5)>.3||a*f+s*d+c*m<f6)&&(n(r,i,o,a,s,c,E,D,F,v/=k,_/=k,S,p,g),g.point(E,D),n(E,D,F,v,_,S,l,u,h,f,d,m,p,g))}}return function(r){var i,o,a,s,c,l,u,h,f,d,m,p,g={point:y,lineStart:w,lineEnd:v,polygonStart:function(){r.polygonStart(),g.lineStart=_},polygonEnd:function(){r.polygonEnd(),g.lineStart=w}};function y(C,F){C=t(C,F),r.point(C[0],C[1])}function w(){h=NaN,g.point=b,r.lineStart()}function b(C,F){var A=Nr([C,F]),E=t(C,F);n(h,f,u,d,m,p,h=E[0],f=E[1],u=C,d=A[0],m=A[1],p=A[2],dg,r),r.point(h,f)}function v(){g.point=y,r.lineEnd()}function _(){w(),g.point=S,g.lineEnd=k}function S(C,F){b(i=C,F),o=h,a=f,s=d,c=m,l=p,g.point=b}function k(){n(h,f,u,d,m,p,o,a,i,s,c,l,dg,r),g.lineEnd=v,v()}return g}}var p6=Vo({point:function(t,e){this.stream.point(t*ct,e*ct)}});function g6(t){return Vo({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}function m6(t,e,n,r,i){function o(a,s){return a*=r,s*=i,[e+t*a,n-t*s]}return o.invert=function(a,s){return[(a-e)/t*r,(n-s)/t*i]},o}function gg(t,e,n,r,i,o){if(!o)return m6(t,e,n,r,i);var a=it(o),s=et(o),c=a*t,l=s*t,u=a/t,h=s/t,f=(s*n-a*e)/t,d=(s*e+a*n)/t;function m(p,g){return p*=r,g*=i,[c*p-l*g+e,n-l*p-c*g]}return m.invert=function(p,g){return[r*(u*p-h*g+f),i*(d-h*p-u*g)]},m}function Sn(t){return Mf(function(){return t})()}function Mf(t){var e,n=150,r=480,i=250,o=0,a=0,s=0,c=0,l=0,u,h=0,f=1,d=1,m=null,p=sf,g=null,y,w,b,v=Ho,_=.5,S,k,C,F,A;function E(T){return C(T[0]*ct,T[1]*ct)}function D(T){return T=C.invert(T[0],T[1]),T&&[T[0]*At,T[1]*At]}E.stream=function(T){return F&&A===T?F:F=p6(g6(u)(p(S(v(A=T)))))},E.preclip=function(T){return arguments.length?(p=T,m=void 0,M()):p},E.postclip=function(T){return arguments.length?(v=T,g=y=w=b=null,M()):v},E.clipAngle=function(T){return arguments.length?(p=+T?$g(m=T*ct):(m=null,sf),M()):m*At},E.clipExtent=function(T){return arguments.length?(v=T==null?(g=y=w=b=null,Ho):vl(g=+T[0][0],y=+T[0][1],w=+T[1][0],b=+T[1][1]),M()):g==null?null:[[g,y],[w,b]]},E.scale=function(T){return arguments.length?(n=+T,$()):n},E.translate=function(T){return arguments.length?(r=+T[0],i=+T[1],$()):[r,i]},E.center=function(T){return arguments.length?(o=T[0]%360*ct,a=T[1]%360*ct,$()):[o*At,a*At]},E.rotate=function(T){return arguments.length?(s=T[0]%360*ct,c=T[1]%360*ct,l=T.length>2?T[2]%360*ct:0,$()):[s*At,c*At,l*At]},E.angle=function(T){return arguments.length?(h=T%360*ct,$()):h*At},E.reflectX=function(T){return arguments.length?(f=T?-1:1,$()):f<0},E.reflectY=function(T){return arguments.length?(d=T?-1:1,$()):d<0},E.precision=function(T){return arguments.length?(S=pg(k,_=T*T),M()):Jt(_)},E.fitExtent=function(T,B){return wl(E,T,B)},E.fitSize=function(T,B){return kf(E,T,B)},E.fitWidth=function(T,B){return Af(E,T,B)},E.fitHeight=function(T,B){return Ef(E,T,B)};function $(){var T=gg(n,0,0,f,d,h).apply(null,e(o,a)),B=gg(n,r-T[0],i-T[1],f,d,h);return u=_f(s,c,l),k=of(e,B),C=of(u,k),S=pg(k,_),M()}function M(){return F=A=null,E}return function(){return e=t.apply(this,arguments),E.invert=e.invert&&D,$()}}function Cf(t){var e=0,n=mt/3,r=Mf(t),i=r(e,n);return i.parallels=function(o){return arguments.length?r(e=o[0]*ct,n=o[1]*ct):[e*At,n*At]},i}function y6(t){var e=it(t);function n(r,i){return[r*e,et(i)/e]}return n.invert=function(r,i){return[r/e,Ee(i*e)]},n}function Vg(t,e){var n=et(t),r=(n+et(e))/2;if(bt(r)<lt)return y6(t);var i=1+n*(2*r-n),o=Jt(i)/r;function a(s,c){var l=Jt(i-2*r*et(c))/r;return[l*et(s*=r),o-l*it(s)]}return a.invert=function(s,c){var l=o-c,u=Ae(s,bt(l))*He(l);return l*r<0&&(u-=mt*He(s)*He(l)),[u/r,Ee((i-(s*s+l*l)*r*r)/(2*r))]},a}function yl(){return Cf(Vg).scale(155.424).center([0,33.6442])}function Zg(){return yl().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function b6(t){var e=t.length;return{point:function(n,r){for(var i=-1;++i<e;)t[i].point(n,r)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}}function v6(){var t,e,n=Zg(),r,i=yl().rotate([154,0]).center([-2,58.5]).parallels([55,65]),o,a=yl().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s,c,l={point:function(f,d){c=[f,d]}};function u(f){var d=f[0],m=f[1];return c=null,r.point(d,m),c||(o.point(d,m),c)||(s.point(d,m),c)}u.invert=function(f){var d=n.scale(),m=n.translate(),p=(f[0]-m[0])/d,g=(f[1]-m[1])/d;return(g>=.12&&g<.234&&p>=-.425&&p<-.214?i:g>=.166&&g<.234&&p>=-.214&&p<-.115?a:n).invert(f)},u.stream=function(f){return t&&e===f?t:t=b6([n.stream(e=f),i.stream(f),a.stream(f)])},u.precision=function(f){return arguments.length?(n.precision(f),i.precision(f),a.precision(f),h()):n.precision()},u.scale=function(f){return arguments.length?(n.scale(f),i.scale(f*.35),a.scale(f),u.translate(n.translate())):n.scale()},u.translate=function(f){if(!arguments.length)return n.translate();var d=n.scale(),m=+f[0],p=+f[1];return r=n.translate(f).clipExtent([[m-.455*d,p-.238*d],[m+.455*d,p+.238*d]]).stream(l),o=i.translate([m-.307*d,p+.201*d]).clipExtent([[m-.425*d+lt,p+.12*d+lt],[m-.214*d-lt,p+.234*d-lt]]).stream(l),s=a.translate([m-.205*d,p+.212*d]).clipExtent([[m-.214*d+lt,p+.166*d+lt],[m-.115*d-lt,p+.234*d-lt]]).stream(l),h()},u.fitExtent=function(f,d){return wl(u,f,d)},u.fitSize=function(f,d){return kf(u,f,d)},u.fitWidth=function(f,d){return Af(u,f,d)},u.fitHeight=function(f,d){return Ef(u,f,d)};function h(){return t=e=null,u}return u.scale(1070)}function Kg(t){return function(e,n){var r=it(e),i=it(n),o=t(r*i);return o===1/0?[2,0]:[o*i*et(e),o*et(n)]}}function Zo(t){return function(e,n){var r=Jt(e*e+n*n),i=t(r),o=et(i),a=it(i);return[Ae(e*o,r*a),Ee(r&&n*o/r)]}}var Ff=Kg(function(t){return Jt(2/(1+t))});Ff.invert=Zo(function(t){return 2*Ee(t/2)});function w6(){return Sn(Ff).scale(124.75).clipAngle(180-.001)}var Tf=Kg(function(t){return(t=yg(t))&&t/et(t)});Tf.invert=Zo(function(t){return t});function x6(){return Sn(Tf).scale(79.4188).clipAngle(180-.001)}function Ko(t,e){return[t,Vs(wf((qt+e)/2))]}Ko.invert=function(t,e){return[t,2*zi(mg(e))-qt]};function _6(){return Qg(Ko).scale(961/ke)}function Qg(t){var e=Sn(t),n=e.center,r=e.scale,i=e.translate,o=e.clipExtent,a=null,s,c,l;e.scale=function(h){return arguments.length?(r(h),u()):r()},e.translate=function(h){return arguments.length?(i(h),u()):i()},e.center=function(h){return arguments.length?(n(h),u()):n()},e.clipExtent=function(h){return arguments.length?(h==null?a=s=c=l=null:(a=+h[0][0],s=+h[0][1],c=+h[1][0],l=+h[1][1]),u()):a==null?null:[[a,s],[c,l]]};function u(){var h=mt*r(),f=e(Cg(e.rotate()).invert([0,0]));return o(a==null?[[f[0]-h,f[1]-h],[f[0]+h,f[1]+h]]:t===Ko?[[Math.max(f[0]-h,a),s],[Math.min(f[0]+h,c),l]]:[[a,Math.max(f[1]-h,s)],[c,Math.min(f[1]+h,l)]])}return u()}function Hs(t){return wf((qt+t)/2)}function Jg(t,e){var n=it(t),r=t===e?et(t):Vs(n/it(e))/Vs(Hs(e)/Hs(t)),i=n*Hu(Hs(t),r)/r;if(!r)return Ko;function o(a,s){i>0?s<-qt+lt&&(s=-qt+lt):s>qt-lt&&(s=qt-lt);var c=i/Hu(Hs(s),r);return[c*et(r*a),i-c*it(r*a)]}return o.invert=function(a,s){var c=i-s,l=He(r)*Jt(a*a+c*c),u=Ae(a,bt(c))*He(c);return c*r<0&&(u-=mt*He(a)*He(c)),[u/r,2*zi(Hu(i/l,1/r))-qt]},o}function S6(){return Cf(Jg).scale(109.5).parallels([30,30])}function Xo(t,e){return[t,e]}Xo.invert=Xo;function k6(){return Sn(Xo).scale(152.63)}function tm(t,e){var n=it(t),r=t===e?et(t):(n-it(e))/(e-t),i=n/r+t;if(bt(r)<lt)return Xo;function o(a,s){var c=i-s,l=r*a;return[c*et(l),i-c*it(l)]}return o.invert=function(a,s){var c=i-s,l=Ae(a,bt(c))*He(c);return c*r<0&&(l-=mt*He(a)*He(c)),[l/r,i-He(r)*Jt(a*a+c*c)]},o}function A6(){return Cf(tm).scale(131.154).center([0,13.9389])}var Io=1.340264,Lo=-.081106,qo=893e-6,Yo=.003796,bl=Jt(3)/2,E6=12;function Of(t,e){var n=Ee(bl*et(e)),r=n*n,i=r*r*r;return[t*it(n)/(bl*(Io+3*Lo*r+i*(7*qo+9*Yo*r))),n*(Io+Lo*r+i*(qo+Yo*r))]}Of.invert=function(t,e){for(var n=e,r=n*n,i=r*r*r,o=0,a,s,c;o<E6&&(s=n*(Io+Lo*r+i*(qo+Yo*r))-e,c=Io+3*Lo*r+i*(7*qo+9*Yo*r),n-=a=s/c,r=n*n,i=r*r*r,!(bt(a)<Uo));++o);return[bl*t*(Io+3*Lo*r+i*(7*qo+9*Yo*r))/it(n),Ee(et(n)/bl)]};function M6(){return Sn(Of).scale(177.158)}function Bf(t,e){var n=it(e),r=it(t)*n;return[n*et(t)/r,et(e)/r]}Bf.invert=Zo(zi);function C6(){return Sn(Bf).scale(144.049).clipAngle(60)}function F6(){var t=1,e=0,n=0,r=1,i=1,o=0,a,s,c=null,l,u,h,f=1,d=1,m=Vo({point:function(v,_){var S=b([v,_]);this.stream.point(S[0],S[1])}}),p=Ho,g,y;function w(){return f=t*r,d=t*i,g=y=null,b}function b(v){var _=v[0]*f,S=v[1]*d;if(o){var k=S*a-_*s;_=_*a+S*s,S=k}return[_+e,S+n]}return b.invert=function(v){var _=v[0]-e,S=v[1]-n;if(o){var k=S*a+_*s;_=_*a-S*s,S=k}return[_/f,S/d]},b.stream=function(v){return g&&y===v?g:g=m(p(y=v))},b.postclip=function(v){return arguments.length?(p=v,c=l=u=h=null,w()):p},b.clipExtent=function(v){return arguments.length?(p=v==null?(c=l=u=h=null,Ho):vl(c=+v[0][0],l=+v[0][1],u=+v[1][0],h=+v[1][1]),w()):c==null?null:[[c,l],[u,h]]},b.scale=function(v){return arguments.length?(t=+v,w()):t},b.translate=function(v){return arguments.length?(e=+v[0],n=+v[1],w()):[e,n]},b.angle=function(v){return arguments.length?(o=v%360*ct,s=et(o),a=it(o),w()):o*At},b.reflectX=function(v){return arguments.length?(r=v?-1:1,w()):r<0},b.reflectY=function(v){return arguments.length?(i=v?-1:1,w()):i<0},b.fitExtent=function(v,_){return wl(b,v,_)},b.fitSize=function(v,_){return kf(b,v,_)},b.fitWidth=function(v,_){return Af(b,v,_)},b.fitHeight=function(v,_){return Ef(b,v,_)},b}function Df(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(-.013791+r*(.003971*n-.001529*r))),e*(1.007226+n*(.015085+r*(-.044475+.028874*n-.005916*r)))]}Df.invert=function(t,e){var n=e,r=25,i;do{var o=n*n,a=o*o;n-=i=(n*(1.007226+o*(.015085+a*(-.044475+.028874*o-.005916*a)))-e)/(1.007226+o*(.015085*3+a*(-.044475*7+.028874*9*o-.005916*11*a)))}while(bt(i)>lt&&--r>0);return[t/(.8707+(o=n*n)*(-.131979+o*(-.013791+o*o*o*(.003971-.001529*o)))),n]};function T6(){return Sn(Df).scale(175.295)}function $f(t,e){return[it(e)*et(t),et(e)]}$f.invert=Zo(Ee);function O6(){return Sn($f).scale(249.5).clipAngle(90+lt)}function zf(t,e){var n=it(e),r=1+it(t)*n;return[n*et(t)/r,et(e)/r]}zf.invert=Zo(function(t){return 2*zi(t)});function B6(){return Sn(zf).scale(250).clipAngle(142)}function Nf(t,e){return[Vs(wf((qt+e)/2)),-t]}Nf.invert=function(t,e){return[-e,2*zi(mg(t))-qt]};function D6(){var t=Qg(Nf),e=t.center,n=t.rotate;return t.center=function(r){return arguments.length?e([-r[1],r[0]]):(r=e(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?n([r[0],r[1],r.length>2?r[2]+90:90]):(r=n(),[r[0],r[1],r[2]-90])},n([0,0,90]).scale(159.155)}function $6(t,e){return t.parent===e.parent?1:2}function z6(t){return t.reduce(N6,0)/t.length}function N6(t,e){return t+e.x}function R6(t){return 1+t.reduce(P6,0)}function P6(t,e){return Math.max(t,e.y)}function I6(t){for(var e;e=t.children;)t=e[0];return t}function L6(t){for(var e;e=t.children;)t=e[e.length-1];return t}function q6(){var t=$6,e=1,n=1,r=!1;function i(o){var a,s=0;o.eachAfter(function(f){var d=f.children;d?(f.x=z6(d),f.y=R6(d)):(f.x=a?s+=t(f,a):0,f.y=0,a=f)});var c=I6(o),l=L6(o),u=c.x-t(c,l)/2,h=l.x+t(l,c)/2;return o.eachAfter(r?function(f){f.x=(f.x-o.x)*e,f.y=(o.y-f.y)*n}:function(f){f.x=(f.x-u)/(h-u)*e,f.y=(1-(o.y?f.y/o.y:1))*n})}return i.separation=function(o){return arguments.length?(t=o,i):t},i.size=function(o){return arguments.length?(r=!1,e=+o[0],n=+o[1],i):r?null:[e,n]},i.nodeSize=function(o){return arguments.length?(r=!0,e=+o[0],n=+o[1],i):r?[e,n]:null},i}function Y6(t){var e=0,n=t.children,r=n&&n.length;if(!r)e=1;else for(;--r>=0;)e+=n[r].value;t.value=e}function U6(){return this.eachAfter(Y6)}function H6(t,e){let n=-1;for(let r of this)t.call(e,r,++n,this);return this}function W6(t,e){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(t.call(e,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function j6(t,e){for(var n=this,r=[n],i=[],o,a,s,c=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a<s;++a)r.push(o[a]);for(;n=i.pop();)t.call(e,n,++c,this);return this}function X6(t,e){let n=-1;for(let r of this)if(t.call(e,r,++n,this))return r}function G6(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n})}function V6(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function Z6(t){for(var e=this,n=K6(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r}function K6(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;for(t=n.pop(),e=r.pop();t===e;)i=t,t=n.pop(),e=r.pop();return i}function Q6(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function J6(){return Array.from(this)}function t7(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function e7(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*n7(){var t=this,e,n=[t],r,i,o;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,r=t.children)for(i=0,o=r.length;i<o;++i)n.push(r[i]);while(n.length)}function Uf(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=o7)):e===void 0&&(e=i7);for(var n=new Ir(t),r,i=[n],o,a,s,c;r=i.pop();)if((a=e(r.data))&&(c=(a=Array.from(a)).length))for(r.children=a,s=c-1;s>=0;--s)i.push(o=a[s]=new Ir(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(cm)}function r7(){return Uf(this).eachBefore(a7)}function i7(t){return t.children}function o7(t){return Array.isArray(t)?t[1]:null}function a7(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function cm(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function Ir(t){this.data=t,this.depth=this.height=0,this.parent=null}Ir.prototype=Uf.prototype={constructor:Ir,count:U6,each:H6,eachAfter:j6,eachBefore:W6,find:X6,sum:G6,sort:V6,path:Z6,ancestors:Q6,descendants:J6,leaves:t7,links:e7,copy:r7,[Symbol.iterator]:n7};function Sl(t){return t==null?null:um(t)}function um(t){if(typeof t!="function")throw new Error;return t}function Pr(){return 0}function Ni(t){return function(){return t}}var s7=1664525,l7=1013904223,em=4294967296;function Hf(){let t=1;return()=>(t=(s7*t+l7)%em)/em}function c7(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function u7(t,e){let n=t.length,r,i;for(;n;)i=e()*n--|0,r=t[n],t[n]=t[i],t[i]=r;return t}function f7(t){return fm(t,Hf())}function fm(t,e){for(var n=0,r=(t=u7(Array.from(t),e)).length,i=[],o,a;n<r;)o=t[n],a&&hm(a,o)?++n:(a=d7(i=h7(i,o)),n=0);return a}function h7(t,e){var n,r;if(Rf(e,t))return[e];for(n=0;n<t.length;++n)if(xl(e,t[n])&&Rf(Qo(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if(xl(Qo(t[n],t[r]),e)&&xl(Qo(t[n],e),t[r])&&xl(Qo(t[r],e),t[n])&&Rf(dm(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function xl(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function hm(t,e){var n=t.r-e.r+Math.max(t.r,e.r,1)*1e-9,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function Rf(t,e){for(var n=0;n<e.length;++n)if(!hm(t,e[n]))return!1;return!0}function d7(t){switch(t.length){case 1:return p7(t[0]);case 2:return Qo(t[0],t[1]);case 3:return dm(t[0],t[1],t[2])}}function p7(t){return{x:t.x,y:t.y,r:t.r}}function Qo(t,e){var n=t.x,r=t.y,i=t.r,o=e.x,a=e.y,s=e.r,c=o-n,l=a-r,u=s-i,h=Math.sqrt(c*c+l*l);return{x:(n+o+c/h*u)/2,y:(r+a+l/h*u)/2,r:(h+i+s)/2}}function dm(t,e,n){var r=t.x,i=t.y,o=t.r,a=e.x,s=e.y,c=e.r,l=n.x,u=n.y,h=n.r,f=r-a,d=r-l,m=i-s,p=i-u,g=c-o,y=h-o,w=r*r+i*i-o*o,b=w-a*a-s*s+c*c,v=w-l*l-u*u+h*h,_=d*m-f*p,S=(m*v-p*b)/(_*2)-r,k=(p*g-m*y)/_,C=(d*b-f*v)/(_*2)-i,F=(f*y-d*g)/_,A=k*k+F*F-1,E=2*(o+S*k+C*F),D=S*S+C*C-o*o,$=-(Math.abs(A)>1e-6?(E+Math.sqrt(E*E-4*A*D))/(2*A):D/E);return{x:r+S+k*$,y:i+C+F*$,r:$}}function nm(t,e,n){var r=t.x-e.x,i,o,a=t.y-e.y,s,c,l=r*r+a*a;l?(o=e.r+n.r,o*=o,c=t.r+n.r,c*=c,o>c?(i=(l+c-o)/(2*l),s=Math.sqrt(Math.max(0,c/l-i*i)),n.x=t.x-i*r-s*a,n.y=t.y-i*a+s*r):(i=(l+o-c)/(2*l),s=Math.sqrt(Math.max(0,o/l-i*i)),n.x=e.x+i*r-s*a,n.y=e.y+i*a+s*r)):(n.x=e.x+n.r,n.y=e.y)}function rm(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function im(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,o=(e.y*n.r+n.y*e.r)/r;return i*i+o*o}function _l(t){this._=t,this.next=null,this.previous=null}function pm(t,e){if(!(o=(t=c7(t)).length))return 0;var n,r,i,o,a,s,c,l,u,h,f;if(n=t[0],n.x=0,n.y=0,!(o>1))return n.r;if(r=t[1],n.x=-r.r,r.x=n.r,r.y=0,!(o>2))return n.r+r.r;nm(r,n,i=t[2]),n=new _l(n),r=new _l(r),i=new _l(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;t:for(c=3;c<o;++c){nm(n._,r._,i=t[c]),i=new _l(i),l=r.next,u=n.previous,h=r._.r,f=n._.r;do if(h<=f){if(rm(l._,i._)){r=l,n.next=r,r.previous=n,--c;continue t}h+=l._.r,l=l.next}else{if(rm(u._,i._)){n=u,n.next=r,r.previous=n,--c;continue t}f+=u._.r,u=u.previous}while(l!==u.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,a=im(n);(i=i.next)!==r;)(s=im(i))<a&&(n=i,a=s);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=fm(n,e),c=0;c<o;++c)n=t[c],n.x-=i.x,n.y-=i.y;return i.r}function g7(t){return pm(t,Hf()),t}function m7(t){return Math.sqrt(t.value)}function y7(){var t=null,e=1,n=1,r=Pr;function i(o){let a=Hf();return o.x=e/2,o.y=n/2,t?o.eachBefore(om(t)).eachAfter(Pf(r,.5,a)).eachBefore(am(1)):o.eachBefore(om(m7)).eachAfter(Pf(Pr,1,a)).eachAfter(Pf(r,o.r/Math.min(e,n),a)).eachBefore(am(Math.min(e,n)/(2*o.r))),o}return i.radius=function(o){return arguments.length?(t=Sl(o),i):t},i.size=function(o){return arguments.length?(e=+o[0],n=+o[1],i):[e,n]},i.padding=function(o){return arguments.length?(r=typeof o=="function"?o:Ni(+o),i):r},i}function om(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function Pf(t,e,n){return function(r){if(i=r.children){var i,o,a=i.length,s=t(r)*e||0,c;if(s)for(o=0;o<a;++o)i[o].r+=s;if(c=pm(i,n),s)for(o=0;o<a;++o)i[o].r-=s;r.r=c+s}}}function am(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function gm(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Jo(t,e,n,r,i){for(var o=t.children,a,s=-1,c=o.length,l=t.value&&(r-e)/t.value;++s<c;)a=o[s],a.y0=n,a.y1=i,a.x0=e,a.x1=e+=a.value*l}function b7(){var t=1,e=1,n=0,r=!1;function i(a){var s=a.height+1;return a.x0=a.y0=n,a.x1=t,a.y1=e/s,a.eachBefore(o(e,s)),r&&a.eachBefore(gm),a}function o(a,s){return function(c){c.children&&Jo(c,c.x0,a*(c.depth+1)/s,c.x1,a*(c.depth+2)/s);var l=c.x0,u=c.y0,h=c.x1-n,f=c.y1-n;h<l&&(l=h=(l+h)/2),f<u&&(u=f=(u+f)/2),c.x0=l,c.y0=u,c.x1=h,c.y1=f}}return i.round=function(a){return arguments.length?(r=!!a,i):r},i.size=function(a){return arguments.length?(t=+a[0],e=+a[1],i):[t,e]},i.padding=function(a){return arguments.length?(n=+a,i):n},i}var v7={depth:-1},sm={},If={};function w7(t){return t.id}function x7(t){return t.parentId}function _7(){var t=w7,e=x7,n;function r(i){var o=Array.from(i),a=t,s=e,c,l,u,h,f,d,m,p,g=new Map;if(n!=null){let y=o.map((v,_)=>S7(n(v,_,i))),w=y.map(lm),b=new Set(y).add("");for(let v of w)b.has(v)||(b.add(v),y.push(v),w.push(lm(v)),o.push(If));a=(v,_)=>y[_],s=(v,_)=>w[_]}for(u=0,c=o.length;u<c;++u)l=o[u],d=o[u]=new Ir(l),(m=a(l,u,i))!=null&&(m+="")&&(p=d.id=m,g.set(p,g.has(p)?sm:d)),(m=s(l,u,i))!=null&&(m+="")&&(d.parent=m);for(u=0;u<c;++u)if(d=o[u],m=d.parent){if(f=g.get(m),!f)throw new Error("missing: "+m);if(f===sm)throw new Error("ambiguous: "+m);f.children?f.children.push(d):f.children=[d],d.parent=f}else{if(h)throw new Error("multiple roots");h=d}if(!h)throw new Error("no root");if(n!=null){for(;h.data===If&&h.children.length===1;)h=h.children[0],--c;for(let y=o.length-1;y>=0&&(d=o[y],d.data===If);--y)d.data=null}if(h.parent=v7,h.eachBefore(function(y){y.depth=y.parent.depth+1,--c}).eachBefore(cm),h.parent=null,c>0)throw new Error("cycle");return h}return r.id=function(i){return arguments.length?(t=Sl(i),r):t},r.parentId=function(i){return arguments.length?(e=Sl(i),r):e},r.path=function(i){return arguments.length?(n=Sl(i),r):n},r}function S7(t){t=`${t}`;let e=t.length;return Yf(t,e-1)&&!Yf(t,e-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function lm(t){let e=t.length;if(e<2)return"";for(;--e>1&&!Yf(t,e););return t.slice(0,e)}function Yf(t,e){if(t[e]==="/"){let n=0;for(;e>0&&t[--e]==="\\";)++n;if((n&1)===0)return!0}return!1}function k7(t,e){return t.parent===e.parent?1:2}function Lf(t){var e=t.children;return e?e[0]:t.t}function qf(t){var e=t.children;return e?e[e.length-1]:t.t}function A7(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function E7(t){for(var e=0,n=0,r=t.children,i=r.length,o;--i>=0;)o=r[i],o.z+=e,o.m+=e,e+=o.s+(n+=o.c)}function M7(t,e,n){return t.a.parent===e.parent?t.a:n}function kl(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}kl.prototype=Object.create(Ir.prototype);function C7(t){for(var e=new kl(t,0),n,r=[e],i,o,a,s;n=r.pop();)if(o=n._.children)for(n.children=new Array(s=o.length),a=s-1;a>=0;--a)r.push(i=n.children[a]=new kl(o[a],a)),i.parent=n;return(e.parent=new kl(null,0)).children=[e],e}function F7(){var t=k7,e=1,n=1,r=null;function i(l){var u=C7(l);if(u.eachAfter(o),u.parent.m=-u.z,u.eachBefore(a),r)l.eachBefore(c);else{var h=l,f=l,d=l;l.eachBefore(function(w){w.x<h.x&&(h=w),w.x>f.x&&(f=w),w.depth>d.depth&&(d=w)});var m=h===f?1:t(h,f)/2,p=m-h.x,g=e/(f.x+m+p),y=n/(d.depth||1);l.eachBefore(function(w){w.x=(w.x+p)*g,w.y=w.depth*y})}return l}function o(l){var u=l.children,h=l.parent.children,f=l.i?h[l.i-1]:null;if(u){E7(l);var d=(u[0].z+u[u.length-1].z)/2;f?(l.z=f.z+t(l._,f._),l.m=l.z-d):l.z=d}else f&&(l.z=f.z+t(l._,f._));l.parent.A=s(l,f,l.parent.A||h[0])}function a(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function s(l,u,h){if(u){for(var f=l,d=l,m=u,p=f.parent.children[0],g=f.m,y=d.m,w=m.m,b=p.m,v;m=qf(m),f=Lf(f),m&&f;)p=Lf(p),d=qf(d),d.a=l,v=m.z+w-f.z-g+t(m._,f._),v>0&&(A7(M7(m,l,h),l,v),g+=v,y+=v),w+=m.m,g+=f.m,b+=p.m,y+=d.m;m&&!qf(d)&&(d.t=m,d.m+=w-y),f&&!Lf(p)&&(p.t=f,p.m+=g-b,h=l)}return h}function c(l){l.x*=e,l.y=l.depth*n}return i.separation=function(l){return arguments.length?(t=l,i):t},i.size=function(l){return arguments.length?(r=!1,e=+l[0],n=+l[1],i):r?null:[e,n]},i.nodeSize=function(l){return arguments.length?(r=!0,e=+l[0],n=+l[1],i):r?[e,n]:null},i}function Al(t,e,n,r,i){for(var o=t.children,a,s=-1,c=o.length,l=t.value&&(i-n)/t.value;++s<c;)a=o[s],a.x0=e,a.x1=r,a.y0=n,a.y1=n+=a.value*l}var mm=(1+Math.sqrt(5))/2;function ym(t,e,n,r,i,o){for(var a=[],s=e.children,c,l,u=0,h=0,f=s.length,d,m,p=e.value,g,y,w,b,v,_,S;u<f;){d=i-n,m=o-r;do g=s[h++].value;while(!g&&h<f);for(y=w=g,_=Math.max(m/d,d/m)/(p*t),S=g*g*_,v=Math.max(w/S,S/y);h<f;++h){if(g+=l=s[h].value,l<y&&(y=l),l>w&&(w=l),S=g*g*_,b=Math.max(w/S,S/y),b>v){g-=l;break}v=b}a.push(c={value:g,dice:d<m,children:s.slice(u,h)}),c.dice?Jo(c,n,r,i,p?r+=m*g/p:o):Al(c,n,r,p?n+=d*g/p:i,o),p-=g,u=h}return a}var bm=(function t(e){function n(r,i,o,a,s){ym(e,r,i,o,a,s)}return n.ratio=function(r){return t((r=+r)>1?r:1)},n})(mm);function T7(){var t=bm,e=!1,n=1,r=1,i=[0],o=Pr,a=Pr,s=Pr,c=Pr,l=Pr;function u(f){return f.x0=f.y0=0,f.x1=n,f.y1=r,f.eachBefore(h),i=[0],e&&f.eachBefore(gm),f}function h(f){var d=i[f.depth],m=f.x0+d,p=f.y0+d,g=f.x1-d,y=f.y1-d;g<m&&(m=g=(m+g)/2),y<p&&(p=y=(p+y)/2),f.x0=m,f.y0=p,f.x1=g,f.y1=y,f.children&&(d=i[f.depth+1]=o(f)/2,m+=l(f)-d,p+=a(f)-d,g-=s(f)-d,y-=c(f)-d,g<m&&(m=g=(m+g)/2),y<p&&(p=y=(p+y)/2),t(f,m,p,g,y))}return u.round=function(f){return arguments.length?(e=!!f,u):e},u.size=function(f){return arguments.length?(n=+f[0],r=+f[1],u):[n,r]},u.tile=function(f){return arguments.length?(t=um(f),u):t},u.padding=function(f){return arguments.length?u.paddingInner(f).paddingOuter(f):u.paddingInner()},u.paddingInner=function(f){return arguments.length?(o=typeof f=="function"?f:Ni(+f),u):o},u.paddingOuter=function(f){return arguments.length?u.paddingTop(f).paddingRight(f).paddingBottom(f).paddingLeft(f):u.paddingTop()},u.paddingTop=function(f){return arguments.length?(a=typeof f=="function"?f:Ni(+f),u):a},u.paddingRight=function(f){return arguments.length?(s=typeof f=="function"?f:Ni(+f),u):s},u.paddingBottom=function(f){return arguments.length?(c=typeof f=="function"?f:Ni(+f),u):c},u.paddingLeft=function(f){return arguments.length?(l=typeof f=="function"?f:Ni(+f),u):l},u}function O7(t,e,n,r,i){var o=t.children,a,s=o.length,c,l=new Array(s+1);for(l[0]=c=a=0;a<s;++a)l[a+1]=c+=o[a].value;u(0,s,t.value,e,n,r,i);function u(h,f,d,m,p,g,y){if(h>=f-1){var w=o[h];w.x0=m,w.y0=p,w.x1=g,w.y1=y;return}for(var b=l[h],v=d/2+b,_=h+1,S=f-1;_<S;){var k=_+S>>>1;l[k]<v?_=k+1:S=k}v-l[_-1]<l[_]-v&&h+1<_&&--_;var C=l[_]-b,F=d-C;if(g-m>y-p){var A=d?(m*F+g*C)/d:g;u(h,_,C,m,p,A,y),u(_,f,F,A,p,g,y)}else{var E=d?(p*F+y*C)/d:y;u(h,_,C,m,p,g,E),u(_,f,F,m,E,g,y)}}}function B7(t,e,n,r,i){(t.depth&1?Al:Jo)(t,e,n,r,i)}var D7=(function t(e){function n(r,i,o,a,s){if((c=r._squarify)&&c.ratio===e)for(var c,l,u,h,f=-1,d,m=c.length,p=r.value;++f<m;){for(l=c[f],u=l.children,h=l.value=0,d=u.length;h<d;++h)l.value+=u[h].value;l.dice?Jo(l,i,o,a,p?o+=(s-o)*l.value/p:s):Al(l,i,o,p?i+=(a-i)*l.value/p:a,s),p-=l.value}else r._squarify=c=ym(e,r,i,o,a,s),c.ratio=e}return n.ratio=function(r){return t((r=+r)>1?r:1)},n})(mm);function $7(t){for(var e=-1,n=t.length,r,i=t[n-1],o=0;++e<n;)r=i,i=t[e],o+=r[1]*i[0]-r[0]*i[1];return o/2}function z7(t){for(var e=-1,n=t.length,r=0,i=0,o,a=t[n-1],s,c=0;++e<n;)o=a,a=t[e],c+=s=o[0]*a[1]-a[0]*o[1],r+=(o[0]+a[0])*s,i+=(o[1]+a[1])*s;return c*=3,[r/c,i/c]}function N7(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(e[1]-t[1])*(n[0]-t[0])}function R7(t,e){return t[0]-e[0]||t[1]-e[1]}function vm(t){let e=t.length,n=[0,1],r=2,i;for(i=2;i<e;++i){for(;r>1&&N7(t[n[r-2]],t[n[r-1]],t[i])<=0;)--r;n[r++]=i}return n.slice(0,r)}function P7(t){if((n=t.length)<3)return null;var e,n,r=new Array(n),i=new Array(n);for(e=0;e<n;++e)r[e]=[+t[e][0],+t[e][1],e];for(r.sort(R7),e=0;e<n;++e)i[e]=[r[e][0],-r[e][1]];var o=vm(r),a=vm(i),s=a[0]===o[0],c=a[a.length-1]===o[o.length-1],l=[];for(e=o.length-1;e>=0;--e)l.push(t[r[o[e]][2]]);for(e=+s;e<a.length-c;++e)l.push(t[r[a[e]][2]]);return l}function I7(t,e){for(var n=t.length,r=t[n-1],i=e[0],o=e[1],a=r[0],s=r[1],c,l,u=!1,h=0;h<n;++h)r=t[h],c=r[0],l=r[1],l>o!=s>o&&i<(a-c)*(o-l)/(s-l)+c&&(u=!u),a=c,s=l;return u}function L7(t){for(var e=-1,n=t.length,r=t[n-1],i,o,a=r[0],s=r[1],c=0;++e<n;)i=a,o=s,r=t[e],a=r[0],s=r[1],i-=a,o-=s,c+=Math.hypot(i,o);return c}var re=Math.random,q7=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,arguments.length===1?(i=r,r=0):i-=r,function(){return e()*i+r}}return n.source=t,n})(re),Y7=(function t(e){function n(r,i){return arguments.length<2&&(i=r,r=0),r=Math.floor(r),i=Math.floor(i)-r,function(){return Math.floor(e()*i+r)}}return n.source=t,n})(re),Wf=(function t(e){function n(r,i){var o,a;return r=r==null?0:+r,i=i==null?1:+i,function(){var s;if(o!=null)s=o,o=null;else do o=e()*2-1,s=e()*2-1,a=o*o+s*s;while(!a||a>1);return r+i*s*Math.sqrt(-2*Math.log(a)/a)}}return n.source=t,n})(re),U7=(function t(e){var n=Wf.source(e);function r(){var i=n.apply(this,arguments);return function(){return Math.exp(i())}}return r.source=t,r})(re),xm=(function t(e){function n(r){return(r=+r)<=0?()=>0:function(){for(var i=0,o=r;o>1;--o)i+=e();return i+o*e()}}return n.source=t,n})(re),H7=(function t(e){var n=xm.source(e);function r(i){if((i=+i)==0)return e;var o=n(i);return function(){return o()/i}}return r.source=t,r})(re),W7=(function t(e){function n(r){return function(){return-Math.log1p(-e())/r}}return n.source=t,n})(re),j7=(function t(e){function n(r){if((r=+r)<0)throw new RangeError("invalid alpha");return r=1/-r,function(){return Math.pow(1-e(),r)}}return n.source=t,n})(re),X7=(function t(e){function n(r){if((r=+r)<0||r>1)throw new RangeError("invalid p");return function(){return Math.floor(e()+r)}}return n.source=t,n})(re),_m=(function t(e){function n(r){if((r=+r)<0||r>1)throw new RangeError("invalid p");return r===0?()=>1/0:r===1?()=>1:(r=Math.log1p(-r),function(){return 1+Math.floor(Math.log1p(-e())/r)})}return n.source=t,n})(re),jf=(function t(e){var n=Wf.source(e)();function r(i,o){if((i=+i)<0)throw new RangeError("invalid k");if(i===0)return()=>0;if(o=o==null?1:+o,i===1)return()=>-Math.log1p(-e())*o;var a=(i<1?i+1:i)-1/3,s=1/(3*Math.sqrt(a)),c=i<1?()=>Math.pow(e(),1/i):()=>1;return function(){do{do var l=n(),u=1+s*l;while(u<=0);u*=u*u;var h=1-e()}while(h>=1-.0331*l*l*l*l&&Math.log(h)>=.5*l*l+a*(1-u+Math.log(u)));return a*u*c()*o}}return r.source=t,r})(re),Sm=(function t(e){var n=jf.source(e);function r(i,o){var a=n(i),s=n(o);return function(){var c=a();return c===0?0:c/(c+s())}}return r.source=t,r})(re),km=(function t(e){var n=_m.source(e),r=Sm.source(e);function i(o,a){return o=+o,(a=+a)>=1?()=>o:a<=0?()=>0:function(){for(var s=0,c=o,l=a;c*l>16&&c*(1-l)>16;){var u=Math.floor((c+1)*l),h=r(u,c-u+1)();h<=l?(s+=u,c-=u,l=(l-h)/(1-h)):(c=u-1,l/=h)}for(var f=l<.5,d=f?l:1-l,m=n(d),p=m(),g=0;p<=c;++g)p+=m();return s+(f?g:c-g)}}return i.source=t,i})(re),G7=(function t(e){function n(r,i,o){var a;return(r=+r)==0?a=s=>-Math.log(s):(r=1/r,a=s=>Math.pow(s,r)),i=i==null?0:+i,o=o==null?1:+o,function(){return i+o*a(-Math.log1p(-e()))}}return n.source=t,n})(re),V7=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,function(){return r+i*Math.tan(Math.PI*e())}}return n.source=t,n})(re),Z7=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,function(){var o=e();return r+i*Math.log(o/(1-o))}}return n.source=t,n})(re),K7=(function t(e){var n=jf.source(e),r=km.source(e);function i(o){return function(){for(var a=0,s=o;s>16;){var c=Math.floor(.875*s),l=n(c)();if(l>s)return a+r(c-1,s/l)();a+=c,s-=l}for(var u=-Math.log1p(-e()),h=0;u<=s;++h)u-=Math.log1p(-e());return a+h}}return i.source=t,i})(re),Q7=1664525,J7=1013904223,wm=1/4294967296;function tS(t=Math.random()){let e=(0<=t&&t<1?t/wm:Math.abs(t))|0;return()=>(e=Q7*e+J7|0,wm*(e>>>0))}var Xf=new Date,Gf=new Date;function Wt(t,e,n,r){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(t(o=new Date(+o)),o),i.ceil=o=>(t(o=new Date(o-1)),e(o,1),t(o),o),i.round=o=>{let a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=(o,a)=>(e(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{let c=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;let l;do c.push(l=new Date(+o)),e(o,s),t(o);while(l<o&&o<a);return c},i.filter=o=>Wt(a=>{if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););}),n&&(i.count=(o,a)=>(Xf.setTime(+o),Gf.setTime(+a),t(Xf),t(Gf),Math.floor(n(Xf,Gf))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}var ta=Wt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);ta.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?Wt(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):ta);var eS=ta.range,Yn=1e3,We=Yn*60,Un=We*60,Hn=Un*24,Zf=Hn*7,Am=Hn*30,Vf=Hn*365,kn=Wt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Yn)},(t,e)=>(e-t)/Yn,t=>t.getUTCSeconds()),nS=kn.range,ea=Wt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Yn)},(t,e)=>{t.setTime(+t+e*We)},(t,e)=>(e-t)/We,t=>t.getMinutes()),rS=ea.range,na=Wt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*We)},(t,e)=>(e-t)/We,t=>t.getUTCMinutes()),iS=na.range,ra=Wt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Yn-t.getMinutes()*We)},(t,e)=>{t.setTime(+t+e*Un)},(t,e)=>(e-t)/Un,t=>t.getHours()),oS=ra.range,ia=Wt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Un)},(t,e)=>(e-t)/Un,t=>t.getUTCHours()),aS=ia.range,hr=Wt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*We)/Hn,t=>t.getDate()-1),sS=hr.range,Lr=Wt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Hn,t=>t.getUTCDate()-1),lS=Lr.range,Kf=Wt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Hn,t=>Math.floor(t/Hn)),cS=Kf.range;function qr(t){return Wt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*We)/Zf)}var Yr=qr(0),Ri=qr(1),Em=qr(2),Mm=qr(3),dr=qr(4),Cm=qr(5),Fm=qr(6),uS=Yr.range,fS=Ri.range,hS=Em.range,dS=Mm.range,pS=dr.range,gS=Cm.range,mS=Fm.range;function Ur(t){return Wt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/Zf)}var Hr=Ur(0),Pi=Ur(1),Tm=Ur(2),Om=Ur(3),pr=Ur(4),Bm=Ur(5),Dm=Ur(6),yS=Hr.range,bS=Pi.range,vS=Tm.range,wS=Om.range,xS=pr.range,_S=Bm.range,SS=Dm.range,oa=Wt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),kS=oa.range,aa=Wt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),AS=aa.range,je=Wt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());je.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Wt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});var ES=je.range,Xe=Wt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Xe.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Wt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});var MS=Xe.range;function $m(t,e,n,r,i,o){let a=[[kn,1,Yn],[kn,5,5*Yn],[kn,15,15*Yn],[kn,30,30*Yn],[o,1,We],[o,5,5*We],[o,15,15*We],[o,30,30*We],[i,1,Un],[i,3,3*Un],[i,6,6*Un],[i,12,12*Un],[r,1,Hn],[r,2,2*Hn],[n,1,Zf],[e,1,Am],[e,3,3*Am],[t,1,Vf]];function s(l,u,h){let f=u<l;f&&([l,u]=[u,l]);let d=h&&typeof h.range=="function"?h:c(l,u,h),m=d?d.range(l,+u+1):[];return f?m.reverse():m}function c(l,u,h){let f=Math.abs(u-l)/h,d=ao(([,,g])=>g).right(a,f);if(d===a.length)return t.every(si(l/Vf,u/Vf,h));if(d===0)return ta.every(Math.max(si(l,u,h),1));let[m,p]=a[f/a[d-1][2]<a[d][2]/f?d-1:d];return m.every(p)}return[s,c]}var[Qf,Jf]=$m(Xe,aa,Hr,Kf,ia,na),[th,eh]=$m(je,oa,Yr,hr,ra,ea);function nh(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function rh(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function sa(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Wm(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,l=la(i),u=ca(i),h=la(o),f=ca(o),d=la(a),m=ca(a),p=la(s),g=ca(s),y=la(c),w=ca(c),b={a:N,A:L,b:q,B:U,c:null,d:Lm,e:Lm,f:ZS,g:a9,G:l9,H:XS,I:GS,j:VS,L:jm,m:KS,M:QS,p:Z,q:Q,Q:Um,s:Hm,S:JS,u:t9,U:e9,V:n9,w:r9,W:i9,x:null,X:null,y:o9,Y:s9,Z:c9,"%":Ym},v={a:j,A:H,b:W,B:J,c:null,d:qm,e:qm,f:d9,g:S9,G:A9,H:u9,I:f9,j:h9,L:Gm,m:p9,M:g9,p:K,q:ht,Q:Um,s:Hm,S:m9,u:y9,U:b9,V:v9,w:w9,W:x9,x:null,X:null,y:_9,Y:k9,Z:E9,"%":Ym},_={a:A,A:E,b:D,B:$,c:M,d:Pm,e:Pm,f:US,g:Rm,G:Nm,H:Im,I:Im,j:IS,L:YS,m:PS,M:LS,p:F,q:RS,Q:WS,s:jS,S:qS,u:BS,U:DS,V:$S,w:OS,W:zS,x:T,X:B,y:Rm,Y:Nm,Z:NS,"%":HS};b.x=S(n,b),b.X=S(r,b),b.c=S(e,b),v.x=S(n,v),v.X=S(r,v),v.c=S(e,v);function S(G,tt){return function(ot){var X=[],vt=-1,yt=0,Tt=G.length,Mt,st,St;for(ot instanceof Date||(ot=new Date(+ot));++vt<Tt;)G.charCodeAt(vt)===37&&(X.push(G.slice(yt,vt)),(st=zm[Mt=G.charAt(++vt)])!=null?Mt=G.charAt(++vt):st=Mt==="e"?" ":"0",(St=tt[Mt])&&(Mt=St(ot,st)),X.push(Mt),yt=vt+1);return X.push(G.slice(yt,vt)),X.join("")}}function k(G,tt){return function(ot){var X=sa(1900,void 0,1),vt=C(X,G,ot+="",0),yt,Tt;if(vt!=ot.length)return null;if("Q"in X)return new Date(X.Q);if("s"in X)return new Date(X.s*1e3+("L"in X?X.L:0));if(tt&&!("Z"in X)&&(X.Z=0),"p"in X&&(X.H=X.H%12+X.p*12),X.m===void 0&&(X.m="q"in X?X.q:0),"V"in X){if(X.V<1||X.V>53)return null;"w"in X||(X.w=1),"Z"in X?(yt=rh(sa(X.y,0,1)),Tt=yt.getUTCDay(),yt=Tt>4||Tt===0?Pi.ceil(yt):Pi(yt),yt=Lr.offset(yt,(X.V-1)*7),X.y=yt.getUTCFullYear(),X.m=yt.getUTCMonth(),X.d=yt.getUTCDate()+(X.w+6)%7):(yt=nh(sa(X.y,0,1)),Tt=yt.getDay(),yt=Tt>4||Tt===0?Ri.ceil(yt):Ri(yt),yt=hr.offset(yt,(X.V-1)*7),X.y=yt.getFullYear(),X.m=yt.getMonth(),X.d=yt.getDate()+(X.w+6)%7)}else("W"in X||"U"in X)&&("w"in X||(X.w="u"in X?X.u%7:"W"in X?1:0),Tt="Z"in X?rh(sa(X.y,0,1)).getUTCDay():nh(sa(X.y,0,1)).getDay(),X.m=0,X.d="W"in X?(X.w+6)%7+X.W*7-(Tt+5)%7:X.w+X.U*7-(Tt+6)%7);return"Z"in X?(X.H+=X.Z/100|0,X.M+=X.Z%100,rh(X)):nh(X)}}function C(G,tt,ot,X){for(var vt=0,yt=tt.length,Tt=ot.length,Mt,st;vt<yt;){if(X>=Tt)return-1;if(Mt=tt.charCodeAt(vt++),Mt===37){if(Mt=tt.charAt(vt++),st=_[Mt in zm?tt.charAt(vt++):Mt],!st||(X=st(G,ot,X))<0)return-1}else if(Mt!=ot.charCodeAt(X++))return-1}return X}function F(G,tt,ot){var X=l.exec(tt.slice(ot));return X?(G.p=u.get(X[0].toLowerCase()),ot+X[0].length):-1}function A(G,tt,ot){var X=d.exec(tt.slice(ot));return X?(G.w=m.get(X[0].toLowerCase()),ot+X[0].length):-1}function E(G,tt,ot){var X=h.exec(tt.slice(ot));return X?(G.w=f.get(X[0].toLowerCase()),ot+X[0].length):-1}function D(G,tt,ot){var X=y.exec(tt.slice(ot));return X?(G.m=w.get(X[0].toLowerCase()),ot+X[0].length):-1}function $(G,tt,ot){var X=p.exec(tt.slice(ot));return X?(G.m=g.get(X[0].toLowerCase()),ot+X[0].length):-1}function M(G,tt,ot){return C(G,e,tt,ot)}function T(G,tt,ot){return C(G,n,tt,ot)}function B(G,tt,ot){return C(G,r,tt,ot)}function N(G){return a[G.getDay()]}function L(G){return o[G.getDay()]}function q(G){return c[G.getMonth()]}function U(G){return s[G.getMonth()]}function Z(G){return i[+(G.getHours()>=12)]}function Q(G){return 1+~~(G.getMonth()/3)}function j(G){return a[G.getUTCDay()]}function H(G){return o[G.getUTCDay()]}function W(G){return c[G.getUTCMonth()]}function J(G){return s[G.getUTCMonth()]}function K(G){return i[+(G.getUTCHours()>=12)]}function ht(G){return 1+~~(G.getUTCMonth()/3)}return{format:function(G){var tt=S(G+="",b);return tt.toString=function(){return G},tt},parse:function(G){var tt=k(G+="",!1);return tt.toString=function(){return G},tt},utcFormat:function(G){var tt=S(G+="",v);return tt.toString=function(){return G},tt},utcParse:function(G){var tt=k(G+="",!0);return tt.toString=function(){return G},tt}}}var zm={"-":"",_:" ",0:"0"},te=/^\s*\d+/,CS=/^%/,FS=/[\\^$*+?|[\]().{}]/g;function xt(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function TS(t){return t.replace(FS,"\\$&")}function la(t){return new RegExp("^(?:"+t.map(TS).join("|")+")","i")}function ca(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function OS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function BS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function DS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function $S(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function zS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Nm(t,e,n){var r=te.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Rm(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function NS(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function RS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function PS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Pm(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function IS(t,e,n){var r=te.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Im(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function LS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function qS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function YS(t,e,n){var r=te.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function US(t,e,n){var r=te.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function HS(t,e,n){var r=CS.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function WS(t,e,n){var r=te.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function jS(t,e,n){var r=te.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Lm(t,e){return xt(t.getDate(),e,2)}function XS(t,e){return xt(t.getHours(),e,2)}function GS(t,e){return xt(t.getHours()%12||12,e,2)}function VS(t,e){return xt(1+hr.count(je(t),t),e,3)}function jm(t,e){return xt(t.getMilliseconds(),e,3)}function ZS(t,e){return jm(t,e)+"000"}function KS(t,e){return xt(t.getMonth()+1,e,2)}function QS(t,e){return xt(t.getMinutes(),e,2)}function JS(t,e){return xt(t.getSeconds(),e,2)}function t9(t){var e=t.getDay();return e===0?7:e}function e9(t,e){return xt(Yr.count(je(t)-1,t),e,2)}function Xm(t){var e=t.getDay();return e>=4||e===0?dr(t):dr.ceil(t)}function n9(t,e){return t=Xm(t),xt(dr.count(je(t),t)+(je(t).getDay()===4),e,2)}function r9(t){return t.getDay()}function i9(t,e){return xt(Ri.count(je(t)-1,t),e,2)}function o9(t,e){return xt(t.getFullYear()%100,e,2)}function a9(t,e){return t=Xm(t),xt(t.getFullYear()%100,e,2)}function s9(t,e){return xt(t.getFullYear()%1e4,e,4)}function l9(t,e){var n=t.getDay();return t=n>=4||n===0?dr(t):dr.ceil(t),xt(t.getFullYear()%1e4,e,4)}function c9(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+xt(e/60|0,"0",2)+xt(e%60,"0",2)}function qm(t,e){return xt(t.getUTCDate(),e,2)}function u9(t,e){return xt(t.getUTCHours(),e,2)}function f9(t,e){return xt(t.getUTCHours()%12||12,e,2)}function h9(t,e){return xt(1+Lr.count(Xe(t),t),e,3)}function Gm(t,e){return xt(t.getUTCMilliseconds(),e,3)}function d9(t,e){return Gm(t,e)+"000"}function p9(t,e){return xt(t.getUTCMonth()+1,e,2)}function g9(t,e){return xt(t.getUTCMinutes(),e,2)}function m9(t,e){return xt(t.getUTCSeconds(),e,2)}function y9(t){var e=t.getUTCDay();return e===0?7:e}function b9(t,e){return xt(Hr.count(Xe(t)-1,t),e,2)}function Vm(t){var e=t.getUTCDay();return e>=4||e===0?pr(t):pr.ceil(t)}function v9(t,e){return t=Vm(t),xt(pr.count(Xe(t),t)+(Xe(t).getUTCDay()===4),e,2)}function w9(t){return t.getUTCDay()}function x9(t,e){return xt(Pi.count(Xe(t)-1,t),e,2)}function _9(t,e){return xt(t.getUTCFullYear()%100,e,2)}function S9(t,e){return t=Vm(t),xt(t.getUTCFullYear()%100,e,2)}function k9(t,e){return xt(t.getUTCFullYear()%1e4,e,4)}function A9(t,e){var n=t.getUTCDay();return t=n>=4||n===0?pr(t):pr.ceil(t),xt(t.getUTCFullYear()%1e4,e,4)}function E9(){return"+0000"}function Ym(){return"%"}function Um(t){return+t}function Hm(t){return Math.floor(+t/1e3)}var Ii,El,Zm,ua,ih;Km({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 Km(t){return Ii=Wm(t),El=Ii.format,Zm=Ii.parse,ua=Ii.utcFormat,ih=Ii.utcParse,Ii}var Qm="%Y-%m-%dT%H:%M:%S.%LZ";function M9(t){return t.toISOString()}var C9=Date.prototype.toISOString?M9:ua(Qm);function F9(t){var e=new Date(t);return isNaN(e)?null:e}var T9=+new Date("2000-01-01T00:00:00.000Z")?F9:ih(Qm);function Ge(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Wn(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}var oh=Symbol("implicit");function sh(){var t=new tr,e=[],n=[],r=oh;function i(o){let a=t.get(o);if(a===void 0){if(r!==oh)return r;t.set(o,a=e.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new tr;for(let a of o)t.has(a)||t.set(a,e.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 sh(e,n).unknown(r)},Ge.apply(i,arguments),i}function lh(){var t=sh().unknown(void 0),e=t.domain,n=t.range,r=0,i=1,o,a,s=!1,c=0,l=0,u=.5;delete t.unknown;function h(){var f=e().length,d=i<r,m=d?i:r,p=d?r:i;o=(p-m)/Math.max(1,f-c+l*2),s&&(o=Math.floor(o)),m+=(p-m-o*(f-c))*u,a=o*(1-c),s&&(m=Math.round(m),a=Math.round(a));var g=dn(f).map(function(y){return m+o*y});return n(d?g.reverse():g)}return t.domain=function(f){return arguments.length?(e(f),h()):e()},t.range=function(f){return arguments.length?([r,i]=f,r=+r,i=+i,h()):[r,i]},t.rangeRound=function(f){return[r,i]=f,r=+r,i=+i,s=!0,h()},t.bandwidth=function(){return a},t.step=function(){return o},t.round=function(f){return arguments.length?(s=!!f,h()):s},t.padding=function(f){return arguments.length?(c=Math.min(1,l=+f),h()):c},t.paddingInner=function(f){return arguments.length?(c=Math.min(1,f),h()):c},t.paddingOuter=function(f){return arguments.length?(l=+f,h()):l},t.align=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),h()):u},t.copy=function(){return lh(e(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},Ge.apply(h(),arguments)}function s1(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return s1(e())},t}function O9(){return s1(lh.apply(null,arguments).paddingInner(1))}function B9(t){return function(){return t}}function Ml(t){return+t}var Jm=[0,1];function Me(t){return t}function ah(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:B9(isNaN(e)?NaN:.5)}function D9(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function $9(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=ah(i,r),o=n(a,o)):(r=ah(r,i),o=n(o,a)),function(s){return o(r(s))}}function z9(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)i[a]=ah(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=nr(t,s,1,r)-1;return o[c](i[c](s))}}function fa(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Cl(){var t=Jm,e=Jm,n=yn,r,i,o,a=Me,s,c,l;function u(){var f=Math.min(t.length,e.length);return a!==Me&&(a=D9(t[0],t[f-1])),s=f>2?z9:$9,c=l=null,h}function h(f){return f==null||isNaN(f=+f)?o:(c||(c=s(t.map(r),e,n)))(r(a(f)))}return h.invert=function(f){return a(i((l||(l=s(e,t.map(r),Fe)))(f)))},h.domain=function(f){return arguments.length?(t=Array.from(f,Ml),u()):t.slice()},h.range=function(f){return arguments.length?(e=Array.from(f),u()):e.slice()},h.rangeRound=function(f){return e=Array.from(f),n=yo,u()},h.clamp=function(f){return arguments.length?(a=f?!0:Me,u()):a!==Me},h.interpolate=function(f){return arguments.length?(n=f,u()):n},h.unknown=function(f){return arguments.length?(o=f,h):o},function(f,d){return r=f,i=d,u()}}function ch(){return Cl()(Me,Me)}function l1(t,e,n,r){var i=si(t,e,n),o;switch(r=$r(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=Yu(i,a))&&(r.precision=o),Ps(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Uu(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=qu(i))&&(r.precision=o-(r.type==="%")*2);break}}return Oo(r)}function gr(t){var e=t.domain;return t.ticks=function(n){var r=e();return Bn(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return l1(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,o=r.length-1,a=r[i],s=r[o],c,l,u=10;for(s<a&&(l=a,a=s,s=l,l=i,i=o,o=l);u-- >0;){if(l=er(a,s,n),l===c)return r[i]=a,r[o]=s,e(r);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;c=l}return t},t}function c1(){var t=ch();return t.copy=function(){return fa(t,c1())},Ge.apply(t,arguments),gr(t)}function u1(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,Ml),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return u1(t).unknown(e)},t=arguments.length?Array.from(t,Ml):[0,1],gr(n)}function f1(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],o=t[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),t[n]=e.floor(i),t[r]=e.ceil(o),t}function t1(t){return Math.log(t)}function e1(t){return Math.exp(t)}function N9(t){return-Math.log(-t)}function R9(t){return-Math.exp(-t)}function P9(t){return isFinite(t)?+("1e"+t):t<0?0:t}function I9(t){return t===10?P9:t===Math.E?Math.exp:e=>Math.pow(t,e)}function L9(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function n1(t){return(e,n)=>-t(-e,n)}function uh(t){let e=t(t1,e1),n=e.domain,r=10,i,o;function a(){return i=L9(r),o=I9(r),n()[0]<0?(i=n1(i),o=n1(o),t(N9,R9)):t(t1,e1),e}return e.base=function(s){return arguments.length?(r=+s,a()):r},e.domain=function(s){return arguments.length?(n(s),a()):n()},e.ticks=s=>{let c=n(),l=c[0],u=c[c.length-1],h=u<l;h&&([l,u]=[u,l]);let f=i(l),d=i(u),m,p,g=s==null?10:+s,y=[];if(!(r%1)&&d-f<g){if(f=Math.floor(f),d=Math.ceil(d),l>0){for(;f<=d;++f)for(m=1;m<r;++m)if(p=f<0?m/o(-f):m*o(f),!(p<l)){if(p>u)break;y.push(p)}}else for(;f<=d;++f)for(m=r-1;m>=1;--m)if(p=f>0?m/o(-f):m*o(f),!(p<l)){if(p>u)break;y.push(p)}y.length*2<g&&(y=Bn(l,u,g))}else y=Bn(f,d,Math.min(d-f,g)).map(o);return h?y.reverse():y},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=$r(c)).precision==null&&(c.trim=!0),c=Oo(c)),s===1/0)return c;let l=Math.max(1,r*s/e.ticks().length);return u=>{let h=u/o(Math.round(i(u)));return h*r<r-.5&&(h*=r),h<=l?c(u):""}},e.nice=()=>n(f1(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),e}function h1(){let t=uh(Cl()).domain([1,10]);return t.copy=()=>fa(t,h1()).base(t.base()),Ge.apply(t,arguments),t}function r1(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function i1(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function fh(t){var e=1,n=t(r1(e),i1(e));return n.constant=function(r){return arguments.length?t(r1(e=+r),i1(e)):e},gr(n)}function d1(){var t=fh(Cl());return t.copy=function(){return fa(t,d1()).constant(t.constant())},Ge.apply(t,arguments)}function o1(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function q9(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function Y9(t){return t<0?-t*t:t*t}function hh(t){var e=t(Me,Me),n=1;function r(){return n===1?t(Me,Me):n===.5?t(q9,Y9):t(o1(n),o1(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},gr(e)}function dh(){var t=hh(Cl());return t.copy=function(){return fa(t,dh()).exponent(t.exponent())},Ge.apply(t,arguments),t}function U9(){return dh.apply(null,arguments).exponent(.5)}function a1(t){return Math.sign(t)*t*t}function H9(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function p1(){var t=ch(),e=[0,1],n=!1,r;function i(o){var a=H9(t(o));return isNaN(a)?r:n?Math.round(a):a}return i.invert=function(o){return t.invert(a1(o))},i.domain=function(o){return arguments.length?(t.domain(o),i):t.domain()},i.range=function(o){return arguments.length?(t.range((e=Array.from(o,Ml)).map(a1)),i):e.slice()},i.rangeRound=function(o){return i.range(o).round(!0)},i.round=function(o){return arguments.length?(n=!!o,i):n},i.clamp=function(o){return arguments.length?(t.clamp(o),i):t.clamp()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return p1(t.domain(),e).round(n).clamp(t.clamp()).unknown(r)},Ge.apply(i,arguments),gr(i)}function g1(){var t=[],e=[],n=[],r;function i(){var a=0,s=Math.max(1,e.length);for(n=new Array(s-1);++a<s;)n[a-1]=$c(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[nr(n,a)]}return o.invertExtent=function(a){var s=e.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},o.domain=function(a){if(!arguments.length)return t.slice();t=[];for(let s of a)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(Bt),i()},o.range=function(a){return arguments.length?(e=Array.from(a),i()):e.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return g1().domain(t).range(e).unknown(r)},Ge.apply(o,arguments)}function m1(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[nr(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*e-(c-n)*t)/(n+1);return a}return a.domain=function(c){return arguments.length?([t,e]=c,t=+t,e=+e,s()):[t,e]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var l=i.indexOf(c);return l<0?[NaN,NaN]:l<1?[t,r[0]]:l>=n?[r[n-1],e]:[r[l-1],r[l]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return m1().domain([t,e]).range(i).unknown(o)},Ge.apply(gr(a),arguments)}function y1(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[nr(t,o,0,r)]:n}return i.domain=function(o){return arguments.length?(t=Array.from(o),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(o){return arguments.length?(e=Array.from(o),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(o){var a=e.indexOf(o);return[t[a-1],t[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return y1().domain(t).range(e).unknown(n)},Ge.apply(i,arguments)}function W9(t){return new Date(t)}function j9(t){return t instanceof Date?+t:Math.round(t)}function ph(t,e,n,r,i,o,a,s,c,l){var u=ch(),h=u.invert,f=u.domain,d=l(".%L"),m=l(":%S"),p=l("%I:%M"),g=l("%I %p"),y=l("%a %d"),w=l("%b %d"),b=l("%B"),v=l("%Y");function _(S){return(c(S)<S?d:s(S)<S?m:a(S)<S?p:o(S)<S?g:r(S)<S?i(S)<S?y:w:n(S)<S?b:v)(S)}return u.invert=function(S){return new Date(Math.round(h(S)))},u.domain=function(S){return arguments.length?f(Array.from(S,j9)):f().map(W9)},u.ticks=function(S){var k=f();return t(k[0],k[k.length-1],S??10)},u.tickFormat=function(S,k){return k==null?_:l(k)},u.nice=function(S){var k=f();return(!S||typeof S.range!="function")&&(S=e(k[0],k[k.length-1],S??10)),S?f(f1(k,S)):u},u.copy=function(){return fa(u,ph(t,e,n,r,i,o,a,s,c,l))},u}function X9(){return Ge.apply(ph(th,eh,je,oa,Yr,hr,ra,ea,kn,El).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function G9(){return Ge.apply(ph(Qf,Jf,Xe,aa,Hr,Lr,ia,na,kn,ua).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Fl(){var t=0,e=1,n,r,i,o,a=Me,s=!1,c;function l(h){return h==null||isNaN(h=+h)?c:a(i===0?.5:(h=(o(h)-n)*i,s?Math.max(0,Math.min(1,h)):h))}l.domain=function(h){return arguments.length?([t,e]=h,n=o(t=+t),r=o(e=+e),i=n===r?0:1/(r-n),l):[t,e]},l.clamp=function(h){return arguments.length?(s=!!h,l):s},l.interpolator=function(h){return arguments.length?(a=h,l):a};function u(h){return function(f){var d,m;return arguments.length?([d,m]=f,a=h(d,m),l):[a(0),a(1)]}}return l.range=u(yn),l.rangeRound=u(yo),l.unknown=function(h){return arguments.length?(c=h,l):c},function(h){return o=h,n=h(t),r=h(e),i=n===r?0:1/(r-n),l}}function mr(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function b1(){var t=gr(Fl()(Me));return t.copy=function(){return mr(t,b1())},Wn.apply(t,arguments)}function v1(){var t=uh(Fl()).domain([1,10]);return t.copy=function(){return mr(t,v1()).base(t.base())},Wn.apply(t,arguments)}function w1(){var t=fh(Fl());return t.copy=function(){return mr(t,w1()).constant(t.constant())},Wn.apply(t,arguments)}function gh(){var t=hh(Fl());return t.copy=function(){return mr(t,gh()).exponent(t.exponent())},Wn.apply(t,arguments)}function V9(){return gh.apply(null,arguments).exponent(.5)}function x1(){var t=[],e=Me;function n(r){if(r!=null&&!isNaN(r=+r))return e((nr(t,r,1)-1)/(t.length-1))}return n.domain=function(r){if(!arguments.length)return t.slice();t=[];for(let i of r)i!=null&&!isNaN(i=+i)&&t.push(i);return t.sort(Bt),n},n.interpolator=function(r){return arguments.length?(e=r,n):e},n.range=function(){return t.map((r,i)=>e(i/(t.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(i,o)=>oi(t,o/r))},n.copy=function(){return x1(e).domain(t)},Wn.apply(n,arguments)}function Tl(){var t=0,e=.5,n=1,r=1,i,o,a,s,c,l=Me,u,h=!1,f;function d(p){return p==null||isNaN(p=+p)?f:(p=.5+((p=+u(p))-o)*(r*p<r*o?s:c),l(h?Math.max(0,Math.min(1,p)):p))}d.domain=function(p){return arguments.length?([t,e,n]=p,i=u(t=+t),o=u(e=+e),a=u(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d):[t,e,n]},d.clamp=function(p){return arguments.length?(h=!!p,d):h},d.interpolator=function(p){return arguments.length?(l=p,d):l};function m(p){return function(g){var y,w,b;return arguments.length?([y,w,b]=g,l=au(p,[y,w,b]),d):[l(0),l(.5),l(1)]}}return d.range=m(yn),d.rangeRound=m(yo),d.unknown=function(p){return arguments.length?(f=p,d):f},function(p){return u=p,i=p(t),o=p(e),a=p(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function _1(){var t=gr(Tl()(Me));return t.copy=function(){return mr(t,_1())},Wn.apply(t,arguments)}function S1(){var t=uh(Tl()).domain([.1,1,10]);return t.copy=function(){return mr(t,S1()).base(t.base())},Wn.apply(t,arguments)}function k1(){var t=fh(Tl());return t.copy=function(){return mr(t,k1()).constant(t.constant())},Wn.apply(t,arguments)}function mh(){var t=hh(Tl());return t.copy=function(){return mr(t,mh()).exponent(t.exponent())},Wn.apply(t,arguments)}function Z9(){return mh.apply(null,arguments).exponent(.5)}function pt(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}var K9=pt("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Q9=pt("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),J9=pt("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),tk=pt("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),ek=pt("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),nk=pt("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),rk=pt("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),ik=pt("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),ok=pt("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),ak=pt("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),sk=pt("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),Et=t=>eu(t[t.length-1]),A1=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(pt),lk=Et(A1),E1=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(pt),ck=Et(E1),M1=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(pt),uk=Et(M1),C1=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(pt),fk=Et(C1),F1=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(pt),hk=Et(F1),T1=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(pt),dk=Et(T1),O1=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(pt),pk=Et(O1),B1=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(pt),gk=Et(B1),D1=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(pt),mk=Et(D1),$1=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(pt),yk=Et($1),z1=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(pt),bk=Et(z1),N1=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(pt),vk=Et(N1),R1=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(pt),wk=Et(R1),P1=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(pt),xk=Et(P1),I1=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(pt),_k=Et(I1),L1=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(pt),Sk=Et(L1),q1=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(pt),kk=Et(q1),Y1=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(pt),Ak=Et(Y1),U1=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(pt),Ek=Et(U1),H1=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(pt),Mk=Et(H1),W1=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(pt),Ck=Et(W1),j1=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(pt),Fk=Et(j1),X1=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(pt),Tk=Et(X1),G1=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(pt),Ok=Et(G1),V1=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(pt),Bk=Et(V1),Z1=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(pt),Dk=Et(Z1),K1=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(pt),$k=Et(K1);function zk(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-t*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-t*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-t*2475.67)))))))+")"}var Nk=bo(Re(300,.5,0),Re(-240,.5,1)),Rk=bo(Re(-100,.75,.35),Re(80,1.5,.8)),Pk=bo(Re(260,.75,.35),Re(80,1.5,.8)),Ol=Re();function Ik(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return Ol.h=360*t-100,Ol.s=1.5-1.5*e,Ol.l=.8-.9*e,Ol+""}var Bl=ar(),Lk=Math.PI/3,qk=Math.PI*2/3;function Yk(t){var e;return t=(.5-t)*Math.PI,Bl.r=255*(e=Math.sin(t))*e,Bl.g=255*(e=Math.sin(t+Lk))*e,Bl.b=255*(e=Math.sin(t+qk))*e,Bl+""}function Uk(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-t*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+t*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-t*6838.66)))))))+")"}function Dl(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}var Hk=Dl(pt("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),Wk=Dl(pt("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),jk=Dl(pt("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),Xk=Dl(pt("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function dt(t){return function(){return t}}var Q1=Math.abs,he=Math.atan2,jn=Math.cos,Gk=Math.max,Li=Math.min,Be=Math.sin,Ct=Math.sqrt,de=1e-12,br=Math.PI,zl=br/2,yr=2*br;function Vk(t){return t>1?0:t<-1?br:Math.acos(t)}function J1(t){return t>=1?zl:t<=-1?-zl:Math.asin(t)}function pa(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{let r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new lr(e)}function Zk(t){return t.innerRadius}function Kk(t){return t.outerRadius}function Qk(t){return t.startAngle}function Jk(t){return t.endAngle}function tA(t){return t&&t.padAngle}function eA(t,e,n,r,i,o,a,s){var c=n-t,l=r-e,u=a-i,h=s-o,f=h*c-u*l;if(!(f*f<de))return f=(u*(e-o)-h*(t-i))/f,[t+f*c,e+f*l]}function $l(t,e,n,r,i,o,a){var s=t-n,c=e-r,l=(a?o:-o)/Ct(s*s+c*c),u=l*c,h=-l*s,f=t+u,d=e+h,m=n+u,p=r+h,g=(f+m)/2,y=(d+p)/2,w=m-f,b=p-d,v=w*w+b*b,_=i-o,S=f*p-m*d,k=(b<0?-1:1)*Ct(Gk(0,_*_*v-S*S)),C=(S*b-w*k)/v,F=(-S*w-b*k)/v,A=(S*b+w*k)/v,E=(-S*w+b*k)/v,D=C-g,$=F-y,M=A-g,T=E-y;return D*D+$*$>M*M+T*T&&(C=A,F=E),{cx:C,cy:F,x01:-u,y01:-h,x11:C*(i/_-1),y11:F*(i/_-1)}}function nA(){var t=Zk,e=Kk,n=dt(0),r=null,i=Qk,o=Jk,a=tA,s=null,c=pa(l);function l(){var u,h,f=+t.apply(this,arguments),d=+e.apply(this,arguments),m=i.apply(this,arguments)-zl,p=o.apply(this,arguments)-zl,g=Q1(p-m),y=p>m;if(s||(s=u=c()),d<f&&(h=d,d=f,f=h),!(d>de))s.moveTo(0,0);else if(g>yr-de)s.moveTo(d*jn(m),d*Be(m)),s.arc(0,0,d,m,p,!y),f>de&&(s.moveTo(f*jn(p),f*Be(p)),s.arc(0,0,f,p,m,y));else{var w=m,b=p,v=m,_=p,S=g,k=g,C=a.apply(this,arguments)/2,F=C>de&&(r?+r.apply(this,arguments):Ct(f*f+d*d)),A=Li(Q1(d-f)/2,+n.apply(this,arguments)),E=A,D=A,$,M;if(F>de){var T=J1(F/f*Be(C)),B=J1(F/d*Be(C));(S-=T*2)>de?(T*=y?1:-1,v+=T,_-=T):(S=0,v=_=(m+p)/2),(k-=B*2)>de?(B*=y?1:-1,w+=B,b-=B):(k=0,w=b=(m+p)/2)}var N=d*jn(w),L=d*Be(w),q=f*jn(_),U=f*Be(_);if(A>de){var Z=d*jn(b),Q=d*Be(b),j=f*jn(v),H=f*Be(v),W;if(g<br)if(W=eA(N,L,j,H,Z,Q,q,U)){var J=N-W[0],K=L-W[1],ht=Z-W[0],G=Q-W[1],tt=1/Be(Vk((J*ht+K*G)/(Ct(J*J+K*K)*Ct(ht*ht+G*G)))/2),ot=Ct(W[0]*W[0]+W[1]*W[1]);E=Li(A,(f-ot)/(tt-1)),D=Li(A,(d-ot)/(tt+1))}else E=D=0}k>de?D>de?($=$l(j,H,N,L,d,D,y),M=$l(Z,Q,q,U,d,D,y),s.moveTo($.cx+$.x01,$.cy+$.y01),D<A?s.arc($.cx,$.cy,D,he($.y01,$.x01),he(M.y01,M.x01),!y):(s.arc($.cx,$.cy,D,he($.y01,$.x01),he($.y11,$.x11),!y),s.arc(0,0,d,he($.cy+$.y11,$.cx+$.x11),he(M.cy+M.y11,M.cx+M.x11),!y),s.arc(M.cx,M.cy,D,he(M.y11,M.x11),he(M.y01,M.x01),!y))):(s.moveTo(N,L),s.arc(0,0,d,w,b,!y)):s.moveTo(N,L),!(f>de)||!(S>de)?s.lineTo(q,U):E>de?($=$l(q,U,Z,Q,f,-E,y),M=$l(N,L,j,H,f,-E,y),s.lineTo($.cx+$.x01,$.cy+$.y01),E<A?s.arc($.cx,$.cy,E,he($.y01,$.x01),he(M.y01,M.x01),!y):(s.arc($.cx,$.cy,E,he($.y01,$.x01),he($.y11,$.x11),!y),s.arc(0,0,f,he($.cy+$.y11,$.cx+$.x11),he(M.cy+M.y11,M.cx+M.x11),y),s.arc(M.cx,M.cy,E,he(M.y11,M.x11),he(M.y01,M.x01),!y))):s.arc(0,0,f,_,v,y)}if(s.closePath(),u)return s=null,u+""||null}return l.centroid=function(){var u=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,h=(+i.apply(this,arguments)+ +o.apply(this,arguments))/2-br/2;return[jn(h)*u,Be(h)*u]},l.innerRadius=function(u){return arguments.length?(t=typeof u=="function"?u:dt(+u),l):t},l.outerRadius=function(u){return arguments.length?(e=typeof u=="function"?u:dt(+u),l):e},l.cornerRadius=function(u){return arguments.length?(n=typeof u=="function"?u:dt(+u),l):n},l.padRadius=function(u){return arguments.length?(r=u==null?null:typeof u=="function"?u:dt(+u),l):r},l.startAngle=function(u){return arguments.length?(i=typeof u=="function"?u:dt(+u),l):i},l.endAngle=function(u){return arguments.length?(o=typeof u=="function"?u:dt(+u),l):o},l.padAngle=function(u){return arguments.length?(a=typeof u=="function"?u:dt(+u),l):a},l.context=function(u){return arguments.length?(s=u??null,l):s},l}var rA=Array.prototype.slice;function Ll(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function iy(t){this._context=t}iy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function ql(t){return new iy(t)}function xh(t){return t[0]}function _h(t){return t[1]}function Sh(t,e){var n=dt(!0),r=null,i=ql,o=null,a=pa(s);t=typeof t=="function"?t:t===void 0?xh:dt(t),e=typeof e=="function"?e:e===void 0?_h:dt(e);function s(c){var l,u=(c=Ll(c)).length,h,f=!1,d;for(r==null&&(o=i(d=a())),l=0;l<=u;++l)!(l<u&&n(h=c[l],l,c))===f&&((f=!f)?o.lineStart():o.lineEnd()),f&&o.point(+t(h,l,c),+e(h,l,c));if(d)return o=null,d+""||null}return s.x=function(c){return arguments.length?(t=typeof c=="function"?c:dt(+c),s):t},s.y=function(c){return arguments.length?(e=typeof c=="function"?c:dt(+c),s):e},s.defined=function(c){return arguments.length?(n=typeof c=="function"?c:dt(!!c),s):n},s.curve=function(c){return arguments.length?(i=c,r!=null&&(o=i(r)),s):i},s.context=function(c){return arguments.length?(c==null?r=o=null:o=i(r=c),s):r},s}function oy(t,e,n){var r=null,i=dt(!0),o=null,a=ql,s=null,c=pa(l);t=typeof t=="function"?t:t===void 0?xh:dt(+t),e=typeof e=="function"?e:dt(e===void 0?0:+e),n=typeof n=="function"?n:n===void 0?_h:dt(+n);function l(h){var f,d,m,p=(h=Ll(h)).length,g,y=!1,w,b=new Array(p),v=new Array(p);for(o==null&&(s=a(w=c())),f=0;f<=p;++f){if(!(f<p&&i(g=h[f],f,h))===y)if(y=!y)d=f,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),m=f-1;m>=d;--m)s.point(b[m],v[m]);s.lineEnd(),s.areaEnd()}y&&(b[f]=+t(g,f,h),v[f]=+e(g,f,h),s.point(r?+r(g,f,h):b[f],n?+n(g,f,h):v[f]))}if(w)return s=null,w+""||null}function u(){return Sh().defined(i).curve(a).context(o)}return l.x=function(h){return arguments.length?(t=typeof h=="function"?h:dt(+h),r=null,l):t},l.x0=function(h){return arguments.length?(t=typeof h=="function"?h:dt(+h),l):t},l.x1=function(h){return arguments.length?(r=h==null?null:typeof h=="function"?h:dt(+h),l):r},l.y=function(h){return arguments.length?(e=typeof h=="function"?h:dt(+h),n=null,l):e},l.y0=function(h){return arguments.length?(e=typeof h=="function"?h:dt(+h),l):e},l.y1=function(h){return arguments.length?(n=h==null?null:typeof h=="function"?h:dt(+h),l):n},l.lineX0=l.lineY0=function(){return u().x(t).y(e)},l.lineY1=function(){return u().x(t).y(n)},l.lineX1=function(){return u().x(r).y(e)},l.defined=function(h){return arguments.length?(i=typeof h=="function"?h:dt(!!h),l):i},l.curve=function(h){return arguments.length?(a=h,o!=null&&(s=a(o)),l):a},l.context=function(h){return arguments.length?(h==null?o=s=null:s=a(o=h),l):o},l}function iA(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function oA(t){return t}function aA(){var t=oA,e=iA,n=null,r=dt(0),i=dt(yr),o=dt(0);function a(s){var c,l=(s=Ll(s)).length,u,h,f=0,d=new Array(l),m=new Array(l),p=+r.apply(this,arguments),g=Math.min(yr,Math.max(-yr,i.apply(this,arguments)-p)),y,w=Math.min(Math.abs(g)/l,o.apply(this,arguments)),b=w*(g<0?-1:1),v;for(c=0;c<l;++c)(v=m[d[c]=c]=+t(s[c],c,s))>0&&(f+=v);for(e!=null?d.sort(function(_,S){return e(m[_],m[S])}):n!=null&&d.sort(function(_,S){return n(s[_],s[S])}),c=0,h=f?(g-l*b)/f:0;c<l;++c,p=y)u=d[c],v=m[u],y=p+(v>0?v*h:0)+b,m[u]={data:s[u],index:c,value:v,startAngle:p,endAngle:y,padAngle:w};return m}return a.value=function(s){return arguments.length?(t=typeof s=="function"?s:dt(+s),a):t},a.sortValues=function(s){return arguments.length?(e=s,n=null,a):e},a.sort=function(s){return arguments.length?(n=s,e=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:dt(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:dt(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:dt(+s),a):o},a}var ay=kh(ql);function sy(t){this._curve=t}sy.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};function kh(t){function e(n){return new sy(t(n))}return e._curve=t,e}function ha(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(n){return arguments.length?e(kh(n)):e()._curve},t}function sA(){return ha(Sh().curve(ay))}function lA(){var t=oy().curve(ay),e=t.curve,n=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return ha(n())},delete t.lineX0,t.lineEndAngle=function(){return ha(r())},delete t.lineX1,t.lineInnerRadius=function(){return ha(i())},delete t.lineY0,t.lineOuterRadius=function(){return ha(o())},delete t.lineY1,t.curve=function(a){return arguments.length?e(kh(a)):e()._curve},t}function da(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}var Nl=class{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}},vh=class{constructor(e){this._context=e}lineStart(){this._point=0}lineEnd(){}point(e,n){if(e=+e,n=+n,this._point===0)this._point=1;else{let r=da(this._x0,this._y0),i=da(this._x0,this._y0=(this._y0+n)/2),o=da(e,this._y0),a=da(e,n);this._context.moveTo(...r),this._context.bezierCurveTo(...i,...o,...a)}this._x0=e,this._y0=n}};function ly(t){return new Nl(t,!0)}function cy(t){return new Nl(t,!1)}function cA(t){return new vh(t)}function uA(t){return t.source}function fA(t){return t.target}function Yl(t){let e=uA,n=fA,r=xh,i=_h,o=null,a=null,s=pa(c);function c(){let l,u=rA.call(arguments),h=e.apply(this,u),f=n.apply(this,u);if(o==null&&(a=t(l=s())),a.lineStart(),u[0]=h,a.point(+r.apply(this,u),+i.apply(this,u)),u[0]=f,a.point(+r.apply(this,u),+i.apply(this,u)),a.lineEnd(),l)return a=null,l+""||null}return c.source=function(l){return arguments.length?(e=l,c):e},c.target=function(l){return arguments.length?(n=l,c):n},c.x=function(l){return arguments.length?(r=typeof l=="function"?l:dt(+l),c):r},c.y=function(l){return arguments.length?(i=typeof l=="function"?l:dt(+l),c):i},c.context=function(l){return arguments.length?(l==null?o=a=null:a=t(o=l),c):o},c}function hA(){return Yl(ly)}function dA(){return Yl(cy)}function pA(){let t=Yl(cA);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}var gA=Ct(3),uy={draw(t,e){let n=Ct(e+Li(e/28,.75))*.59436,r=n/2,i=r*gA;t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-i,-r),t.lineTo(i,r),t.moveTo(-i,r),t.lineTo(i,-r)}},Ul={draw(t,e){let n=Ct(e/br);t.moveTo(n,0),t.arc(0,0,n,0,yr)}},fy={draw(t,e){let n=Ct(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},hy=Ct(1/3),mA=hy*2,dy={draw(t,e){let n=Ct(e/mA),r=n*hy;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},py={draw(t,e){let n=Ct(e)*.62625;t.moveTo(0,-n),t.lineTo(n,0),t.lineTo(0,n),t.lineTo(-n,0),t.closePath()}},gy={draw(t,e){let n=Ct(e-Li(e/7,2))*.87559;t.moveTo(-n,0),t.lineTo(n,0),t.moveTo(0,n),t.lineTo(0,-n)}},my={draw(t,e){let n=Ct(e),r=-n/2;t.rect(r,r,n,n)}},yy={draw(t,e){let n=Ct(e)*.4431;t.moveTo(n,n),t.lineTo(n,-n),t.lineTo(-n,-n),t.lineTo(-n,n),t.closePath()}},yA=.8908130915292852,by=Be(br/10)/Be(7*br/10),bA=Be(yr/10)*by,vA=-jn(yr/10)*by,vy={draw(t,e){let n=Ct(e*yA),r=bA*n,i=vA*n;t.moveTo(0,-n),t.lineTo(r,i);for(let o=1;o<5;++o){let a=yr*o/5,s=jn(a),c=Be(a);t.lineTo(c*n,-s*n),t.lineTo(s*r-c*i,c*r+s*i)}t.closePath()}},yh=Ct(3),wy={draw(t,e){let n=-Ct(e/(yh*3));t.moveTo(0,n*2),t.lineTo(-yh*n,-n),t.lineTo(yh*n,-n),t.closePath()}},wA=Ct(3),xy={draw(t,e){let n=Ct(e)*.6824,r=n/2,i=n*wA/2;t.moveTo(0,-n),t.lineTo(i,r),t.lineTo(-i,r),t.closePath()}},Ve=-.5,Ze=Ct(3)/2,wh=1/Ct(12),xA=(wh/2+1)*3,_y={draw(t,e){let n=Ct(e/xA),r=n/2,i=n*wh,o=r,a=n*wh+n,s=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(s,c),t.lineTo(Ve*r-Ze*i,Ze*r+Ve*i),t.lineTo(Ve*o-Ze*a,Ze*o+Ve*a),t.lineTo(Ve*s-Ze*c,Ze*s+Ve*c),t.lineTo(Ve*r+Ze*i,Ve*i-Ze*r),t.lineTo(Ve*o+Ze*a,Ve*a-Ze*o),t.lineTo(Ve*s+Ze*c,Ve*c-Ze*s),t.closePath()}},Sy={draw(t,e){let n=Ct(e-Li(e/6,1.7))*.6189;t.moveTo(-n,-n),t.lineTo(n,n),t.moveTo(-n,n),t.lineTo(n,-n)}},_A=[Ul,fy,dy,my,vy,wy,_y],SA=[Ul,gy,Sy,xy,uy,yy,py];function kA(t,e){let n=null,r=pa(i);t=typeof t=="function"?t:dt(t||Ul),e=typeof e=="function"?e:dt(e===void 0?64:+e);function i(){let o;if(n||(n=o=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),o)return n=null,o+""||null}return i.type=function(o){return arguments.length?(t=typeof o=="function"?o:dt(o),i):t},i.size=function(o){return arguments.length?(e=typeof o=="function"?o:dt(+o),i):e},i.context=function(o){return arguments.length?(n=o??null,i):n},i}function vr(){}function Rl(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function Hl(t){this._context=t}Hl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Rl(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Rl(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function AA(t){return new Hl(t)}function ky(t){this._context=t}ky.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Rl(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function EA(t){return new ky(t)}function Ay(t){this._context=t}Ay.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Rl(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function MA(t){return new Ay(t)}function Ey(t,e){this._basis=new Hl(t),this._beta=e}Ey.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r=t[0],i=e[0],o=t[n]-r,a=e[n]-i,s=-1,c;++s<=n;)c=s/n,this._basis.point(this._beta*t[s]+(1-this._beta)*(r+c*o),this._beta*e[s]+(1-this._beta)*(i+c*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var CA=(function t(e){function n(r){return e===1?new Hl(r):new Ey(r,e)}return n.beta=function(r){return t(+r)},n})(.85);function Pl(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function Ah(t,e){this._context=t,this._k=(1-e)/6}Ah.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Pl(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Pl(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var FA=(function t(e){function n(r){return new Ah(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Eh(t,e){this._context=t,this._k=(1-e)/6}Eh.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Pl(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var TA=(function t(e){function n(r){return new Eh(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Mh(t,e){this._context=t,this._k=(1-e)/6}Mh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Pl(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var OA=(function t(e){function n(r){return new Mh(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Ch(t,e,n){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>de){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>de){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*l+t._x1*t._l23_2a-e*t._l12_2a)/u,a=(a*l+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function My(t,e){this._context=t,this._alpha=e}My.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Ch(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var BA=(function t(e){function n(r){return e?new My(r,e):new Ah(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Cy(t,e){this._context=t,this._alpha=e}Cy.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Ch(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var DA=(function t(e){function n(r){return e?new Cy(r,e):new Eh(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Fy(t,e){this._context=t,this._alpha=e}Fy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Ch(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var $A=(function t(e){function n(r){return e?new Fy(r,e):new Mh(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Ty(t){this._context=t}Ty.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function zA(t){return new Ty(t)}function ty(t){return t<0?-1:1}function ey(t,e,n){var r=t._x1-t._x0,i=e-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(n-t._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(ty(o)+ty(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function ny(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function bh(t,e,n){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,s=(o-r)/3;t._context.bezierCurveTo(r+s,i+s*e,o-s,a-s*n,o,a)}function Il(t){this._context=t}Il.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:bh(this,this._t0,ny(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,bh(this,ny(this,n=ey(this,t,e)),n);break;default:bh(this,this._t0,n=ey(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function Oy(t){this._context=new By(t)}(Oy.prototype=Object.create(Il.prototype)).point=function(t,e){Il.prototype.point.call(this,e,t)};function By(t){this._context=t}By.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,o){this._context.bezierCurveTo(e,t,r,n,o,i)}};function NA(t){return new Il(t)}function RA(t){return new Oy(t)}function Dy(t){this._context=t}Dy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=ry(t),i=ry(e),o=0,a=1;a<n;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],e[a]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function ry(t){var e,n=t.length-1,r,i=new Array(n),o=new Array(n),a=new Array(n);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<n-1;++e)i[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(i[n-1]=2,o[n-1]=7,a[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)r=i[e]/o[e-1],o[e]-=r,a[e]-=r*a[e-1];for(i[n-1]=a[n-1]/o[n-1],e=n-2;e>=0;--e)i[e]=(a[e]-i[e+1])/o[e];for(o[n-1]=(t[n]+i[n-1])/2,e=0;e<n-1;++e)o[e]=2*t[e+1]-i[e+1];return[i,o]}function PA(t){return new Dy(t)}function Wl(t,e){this._context=t,this._t=e}Wl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function IA(t){return new Wl(t,.5)}function LA(t){return new Wl(t,0)}function qA(t){return new Wl(t,1)}function qi(t,e){if((a=t.length)>1)for(var n=1,r,i,o=t[e[0]],a,s=o.length;n<a;++n)for(i=o,o=t[e[n]],r=0;r<s;++r)o[r][1]+=o[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function Yi(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function YA(t,e){return t[e]}function UA(t){let e=[];return e.key=t,e}function HA(){var t=dt([]),e=Yi,n=qi,r=YA;function i(o){var a=Array.from(t.apply(this,arguments),UA),s,c=a.length,l=-1,u;for(let h of o)for(s=0,++l;s<c;++s)(a[s][l]=[0,+r(h,a[s].key,l,o)]).data=h;for(s=0,u=Ll(e(a));s<c;++s)a[u[s]].index=s;return n(a,u),a}return i.keys=function(o){return arguments.length?(t=typeof o=="function"?o:dt(Array.from(o)),i):t},i.value=function(o){return arguments.length?(r=typeof o=="function"?o:dt(+o),i):r},i.order=function(o){return arguments.length?(e=o==null?Yi:typeof o=="function"?o:dt(Array.from(o)),i):e},i.offset=function(o){return arguments.length?(n=o??qi,i):n},i}function WA(t,e){if((r=t.length)>0){for(var n,r,i=0,o=t[0].length,a;i<o;++i){for(a=n=0;n<r;++n)a+=t[n][i][1]||0;if(a)for(n=0;n<r;++n)t[n][i][1]/=a}qi(t,e)}}function jA(t,e){if((c=t.length)>0)for(var n,r=0,i,o,a,s,c,l=t[e[0]].length;r<l;++r)for(a=s=0,n=0;n<c;++n)(o=(i=t[e[n]][r])[1]-i[0])>0?(i[0]=a,i[1]=a+=o):o<0?(i[1]=s,i[0]=s+=o):(i[0]=0,i[1]=o)}function XA(t,e){if((i=t.length)>0){for(var n=0,r=t[e[0]],i,o=r.length;n<o;++n){for(var a=0,s=0;a<i;++a)s+=t[a][n][1]||0;r[n][1]+=r[n][0]=-s/2}qi(t,e)}}function GA(t,e){if(!(!((a=t.length)>0)||!((o=(i=t[e[0]]).length)>0))){for(var n=0,r=1,i,o,a;r<o;++r){for(var s=0,c=0,l=0;s<a;++s){for(var u=t[e[s]],h=u[r][1]||0,f=u[r-1][1]||0,d=(h-f)/2,m=0;m<s;++m){var p=t[e[m]],g=p[r][1]||0,y=p[r-1][1]||0;d+=g-y}c+=h,l+=d*h}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,qi(t,e)}}function $y(t){var e=t.map(VA);return Yi(t).sort(function(n,r){return e[n]-e[r]})}function VA(t){for(var e=-1,n=0,r=t.length,i,o=-1/0;++e<r;)(i=+t[e][1])>o&&(o=i,n=e);return n}function zy(t){var e=t.map(Ny);return Yi(t).sort(function(n,r){return e[n]-e[r]})}function Ny(t){for(var e=0,n=-1,r=t.length,i;++n<r;)(i=+t[n][1])&&(e+=i);return e}function ZA(t){return zy(t).reverse()}function KA(t){var e=t.length,n,r,i=t.map(Ny),o=$y(t),a=0,s=0,c=[],l=[];for(n=0;n<e;++n)r=o[n],a<s?(a+=i[r],c.push(r)):(s+=i[r],l.push(r));return l.reverse().concat(c)}function QA(t){return Yi(t).reverse()}var jl=t=>()=>t;function JA(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function An(t,e,n){this.k=t,this.x=e,this.y=n}An.prototype={constructor:An,scale:function(t){return t===1?this:new An(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new An(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Xl=new An(1,0,0);Py.prototype=An.prototype;function Py(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Xl;return t.__zoom}function Fh(t){t.stopImmediatePropagation()}function ga(t){t.preventDefault(),t.stopImmediatePropagation()}function tE(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function eE(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Ry(){return this.__zoom||Xl}function nE(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function rE(){return navigator.maxTouchPoints||"ontouchstart"in this}function iE(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function oE(){var t=tE,e=eE,n=iE,r=nE,i=rE,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],s=250,c=ou,l=Ye("start","zoom","end"),u,h,f,d=500,m=150,p=0,g=10;function y(M){M.property("__zoom",Ry).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",F).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",E).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",$).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(M,T,B,N){var L=M.selection?M.selection():M;L.property("__zoom",Ry),M!==L?_(M,T,B,N):L.interrupt().each(function(){S(this,arguments).event(N).start().zoom(null,typeof T=="function"?T.apply(this,arguments):T).end()})},y.scaleBy=function(M,T,B,N){y.scaleTo(M,function(){var L=this.__zoom.k,q=typeof T=="function"?T.apply(this,arguments):T;return L*q},B,N)},y.scaleTo=function(M,T,B,N){y.transform(M,function(){var L=e.apply(this,arguments),q=this.__zoom,U=B==null?v(L):typeof B=="function"?B.apply(this,arguments):B,Z=q.invert(U),Q=typeof T=="function"?T.apply(this,arguments):T;return n(b(w(q,Q),U,Z),L,a)},B,N)},y.translateBy=function(M,T,B,N){y.transform(M,function(){return n(this.__zoom.translate(typeof T=="function"?T.apply(this,arguments):T,typeof B=="function"?B.apply(this,arguments):B),e.apply(this,arguments),a)},null,N)},y.translateTo=function(M,T,B,N,L){y.transform(M,function(){var q=e.apply(this,arguments),U=this.__zoom,Z=N==null?v(q):typeof N=="function"?N.apply(this,arguments):N;return n(Xl.translate(Z[0],Z[1]).scale(U.k).translate(typeof T=="function"?-T.apply(this,arguments):-T,typeof B=="function"?-B.apply(this,arguments):-B),q,a)},N,L)};function w(M,T){return T=Math.max(o[0],Math.min(o[1],T)),T===M.k?M:new An(T,M.x,M.y)}function b(M,T,B){var N=T[0]-B[0]*M.k,L=T[1]-B[1]*M.k;return N===M.x&&L===M.y?M:new An(M.k,N,L)}function v(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function _(M,T,B,N){M.on("start.zoom",function(){S(this,arguments).event(N).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(N).end()}).tween("zoom",function(){var L=this,q=arguments,U=S(L,q).event(N),Z=e.apply(L,q),Q=B==null?v(Z):typeof B=="function"?B.apply(L,q):B,j=Math.max(Z[1][0]-Z[0][0],Z[1][1]-Z[0][1]),H=L.__zoom,W=typeof T=="function"?T.apply(L,q):T,J=c(H.invert(Q).concat(j/H.k),W.invert(Q).concat(j/W.k));return function(K){if(K===1)K=W;else{var ht=J(K),G=j/ht[2];K=new An(G,Q[0]-ht[0]*G,Q[1]-ht[1]*G)}U.zoom(null,K)}})}function S(M,T,B){return!B&&M.__zooming||new k(M,T)}function k(M,T){this.that=M,this.args=T,this.active=0,this.sourceEvent=null,this.extent=e.apply(M,T),this.taps=0}k.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,T){return this.mouse&&M!=="mouse"&&(this.mouse[1]=T.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=T.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=T.invert(this.touch1[0])),this.that.__zoom=T,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var T=Xt(this.that).datum();l.call(M,this.that,new JA(M,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:l}),T)}};function C(M,...T){if(!t.apply(this,arguments))return;var B=S(this,T).event(M),N=this.__zoom,L=Math.max(o[0],Math.min(o[1],N.k*Math.pow(2,r.apply(this,arguments)))),q=le(M);if(B.wheel)(B.mouse[0][0]!==q[0]||B.mouse[0][1]!==q[1])&&(B.mouse[1]=N.invert(B.mouse[0]=q)),clearTimeout(B.wheel);else{if(N.k===L)return;B.mouse=[q,N.invert(q)],$n(this),B.start()}ga(M),B.wheel=setTimeout(U,m),B.zoom("mouse",n(b(w(N,L),B.mouse[0],B.mouse[1]),B.extent,a));function U(){B.wheel=null,B.end()}}function F(M,...T){if(f||!t.apply(this,arguments))return;var B=M.currentTarget,N=S(this,T,!0).event(M),L=Xt(M.view).on("mousemove.zoom",Q,!0).on("mouseup.zoom",j,!0),q=le(M,B),U=M.clientX,Z=M.clientY;ui(M.view),Fh(M),N.mouse=[q,this.__zoom.invert(q)],$n(this),N.start();function Q(H){if(ga(H),!N.moved){var W=H.clientX-U,J=H.clientY-Z;N.moved=W*W+J*J>p}N.event(H).zoom("mouse",n(b(N.that.__zoom,N.mouse[0]=le(H,B),N.mouse[1]),N.extent,a))}function j(H){L.on("mousemove.zoom mouseup.zoom",null),fi(H.view,N.moved),ga(H),N.event(H).end()}}function A(M,...T){if(t.apply(this,arguments)){var B=this.__zoom,N=le(M.changedTouches?M.changedTouches[0]:M,this),L=B.invert(N),q=B.k*(M.shiftKey?.5:2),U=n(b(w(B,q),N,L),e.apply(this,T),a);ga(M),s>0?Xt(this).transition().duration(s).call(_,U,N,M):Xt(this).call(y.transform,U,N,M)}}function E(M,...T){if(t.apply(this,arguments)){var B=M.touches,N=B.length,L=S(this,T,M.changedTouches.length===N).event(M),q,U,Z,Q;for(Fh(M),U=0;U<N;++U)Z=B[U],Q=le(Z,this),Q=[Q,this.__zoom.invert(Q),Z.identifier],L.touch0?!L.touch1&&L.touch0[2]!==Q[2]&&(L.touch1=Q,L.taps=0):(L.touch0=Q,q=!0,L.taps=1+!!u);u&&(u=clearTimeout(u)),q&&(L.taps<2&&(h=Q[0],u=setTimeout(function(){u=null},d)),$n(this),L.start())}}function D(M,...T){if(this.__zooming){var B=S(this,T).event(M),N=M.changedTouches,L=N.length,q,U,Z,Q;for(ga(M),q=0;q<L;++q)U=N[q],Z=le(U,this),B.touch0&&B.touch0[2]===U.identifier?B.touch0[0]=Z:B.touch1&&B.touch1[2]===U.identifier&&(B.touch1[0]=Z);if(U=B.that.__zoom,B.touch1){var j=B.touch0[0],H=B.touch0[1],W=B.touch1[0],J=B.touch1[1],K=(K=W[0]-j[0])*K+(K=W[1]-j[1])*K,ht=(ht=J[0]-H[0])*ht+(ht=J[1]-H[1])*ht;U=w(U,Math.sqrt(K/ht)),Z=[(j[0]+W[0])/2,(j[1]+W[1])/2],Q=[(H[0]+J[0])/2,(H[1]+J[1])/2]}else if(B.touch0)Z=B.touch0[0],Q=B.touch0[1];else return;B.zoom("touch",n(b(U,Z,Q),B.extent,a))}}function $(M,...T){if(this.__zooming){var B=S(this,T).event(M),N=M.changedTouches,L=N.length,q,U;for(Fh(M),f&&clearTimeout(f),f=setTimeout(function(){f=null},d),q=0;q<L;++q)U=N[q],B.touch0&&B.touch0[2]===U.identifier?delete B.touch0:B.touch1&&B.touch1[2]===U.identifier&&delete B.touch1;if(B.touch1&&!B.touch0&&(B.touch0=B.touch1,delete B.touch1),B.touch0)B.touch0[1]=this.__zoom.invert(B.touch0[0]);else if(B.end(),B.taps===2&&(U=le(U,this),Math.hypot(h[0]-U[0],h[1]-U[1])<g)){var Z=Xt(this).on("dblclick.zoom");Z&&Z.apply(this,arguments)}}}return y.wheelDelta=function(M){return arguments.length?(r=typeof M=="function"?M:jl(+M),y):r},y.filter=function(M){return arguments.length?(t=typeof M=="function"?M:jl(!!M),y):t},y.touchable=function(M){return arguments.length?(i=typeof M=="function"?M:jl(!!M),y):i},y.extent=function(M){return arguments.length?(e=typeof M=="function"?M:jl([[+M[0][0],+M[0][1]],[+M[1][0],+M[1][1]]]),y):e},y.scaleExtent=function(M){return arguments.length?(o[0]=+M[0],o[1]=+M[1],y):[o[0],o[1]]},y.translateExtent=function(M){return arguments.length?(a[0][0]=+M[0][0],a[1][0]=+M[1][0],a[0][1]=+M[0][1],a[1][1]=+M[1][1],y):[[a[0][0],a[0][1]],[a[1][0],a[1][1]]]},y.constrain=function(M){return arguments.length?(n=M,y):n},y.duration=function(M){return arguments.length?(s=+M,y):s},y.interpolate=function(M){return arguments.length?(c=M,y):c},y.on=function(){var M=l.on.apply(l,arguments);return M===l?y:M},y.clickDistance=function(M){return arguments.length?(p=(M=+M)*M,y):Math.sqrt(p)},y.tapDistance=function(M){return arguments.length?(g=+M,y):g},y}function Gl(t){return t.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function at(t,e){return Object.keys(t).reduce((r,i)=>(i in e||(r[i]=t[i]),r),{})}var Th=["moveX","moveY"],aE=["fill","fillOpacity","stroke","strokeOpacity","strokeWidth","strokeDasharray","opacity","color","cursor","pointerEvents"],sE=["index","rowID","text","labelAdjustmentOptions",...Th];function ma(t){return Object.keys(t??{}).some(e=>!aE.includes(e)&&!sE.includes(e)&&e in document.documentElement.style)}function rt(t,e){for(let[n,r]of Object.entries(e))Th.includes(n)||t.style(Gl(n),r)}function Ui(t,e,n,r=[]){return t.flatMap((i,o)=>{let a=e&&n?n[i[e]]:void 0,s=r.find(l=>l.rowID==null&&l.index===o),c=r.find(l=>l.rowID!=null&&l.rowID===i.rowID);return a||s||c?[{...a,...s,...c,index:o}]:[]})}function Hi(t,e,n){let r=e.find(i=>i.index===n);if(r)for(let[i,o]of Object.entries(r))["index","rowID","text","labelAdjustmentOptions",...Th].includes(i)||t.style(Gl(i),o)}function Iy(t){let e=typeof t=="string"?R.color(t)?.rgb():null;return!!e&&e.r===255&&e.g===255&&e.b===255&&e.opacity===1}function Xn(t,e){let{part:n,text:r,...i}=(t??[]).find(o=>o.part===e)??{};return{text:r,style:i}}function De(t,e={}){t.each(function(){let n=Number(e.moveX??0),r=Number(e.moveY??0),i=this.getAttribute("transform")||"";this.__drawn__={...this.__drawn__,moveX:n,moveY:r},this.setAttribute("transform",`translate(${n}, ${r}) ${i}`.trim())})}function jr(t){if(t==null)return[];if(Array.isArray(t))return t;let e=Object.keys(t),n=e.length?t[e[0]].length:0,r=[];for(let i=0;i<n;i++){let o={};for(let a of e)o[a]=t[a][i];r.push(o)}return r}function Xr(t){for(var e=1;document.getElementById(t+"-"+e);)e++;return t+"-"+e}function wr(t){return t.replace(/[^a-zA-Z0-9_-]/g,"_")}function Le(t,e){if(typeof t>"u"||t===null)return 0;if(typeof t=="number")return t;var n;if(t.includes("%")){var r=parseFloat(t),i=r/100;n=Math.round(i*e)}else t.includes("px"),n=parseFloat(t);return Math.floor(n)}function Wr(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function ya(t,e){let n={...t};if(!Wr(e))return n;for(let r in e){let i=e[r];if(i!=null)if(Wr(i))n[r]=ya(Wr(n[r])?n[r]:{},i);else{if(Array.isArray(i)&&i.length===0&&Wr(n[r]))continue;n[r]=i}}return n}function lE(t,e){if(typeof t=="number")return t*e;let n=typeof t=="string"&&t.trim().match(/^(-?[\d.]+)([a-z%]*)$/i);return n?`${parseFloat(n[1])*e}${n[2]}`:t}function qy(t,e){if(!Wr(t))return t;let n={};for(let r in t)n[r]=r==="fontSize"?lE(t[r],e):qy(t[r],e);return n}function ut(t,e,n={},r=this?.themeOptions){let i=r?.[e],o=ya(t,i),a=Gn(r);return a!==1&&(o=qy(o,a)),ya(o,n)}function Gn(t){let e=t?.textScale;return typeof e=="number"&&e>0?e:1}var Ly=new Set;function qe(t){Ly.has(t)||(Ly.add(t),console.warn(t))}function ft(t,e,n,r){this.svg=t,this.margin=e,this.width=n,this.height=r}function Vl(t,e,n,r={},i={}){let o={id:e||"svg-container",margin:{top:5,right:50,bottom:5,left:50},style:{backgroundColor:"#0000"},width:null,height:null},a=ut(o,n,r,i),{id:s,margin:c,style:l,width:u,height:h}=a,f=at(l,o.style),d={top:Le(c?.top??0,h),right:Le(c?.right??0,u),bottom:Le(c?.bottom??0,h),left:Le(c?.left??0,u)};var m=R.select(t).append("svg").attr("id",Xr(s)).attr("width",u||"100%").attr("height",h||"100%").attr("preserveAspectRatio","xMinYMin meet").attr("viewBox",`0 0 ${u} ${h}`).classed("geneviewer-svg-content",!0).style("box-sizing","border-box").style("background-color",l.backgroundColor).each(function(){let g=R.select(this);rt(g,f)});Object.entries(l).forEach(([g,y])=>{m.style(g,y)});let p=new ft(m,d,u,h);return p.themeOptions=i,p}ft.prototype.cluster=function(t={}){let e={separateStrands:!1,strandSpacing:0,preventGeneOverlap:!1,overlapSpacing:5},n=ut.call(this,e,"clusterOptions",t),{separateStrands:r,strandSpacing:i,preventGeneOverlap:o,overlapSpacing:a}=n;return this.separateStrands=r,this.strandSpacing=i,this.preventGeneOverlap=o,this.overlapSpacing=a,this};ft.prototype.geneData=function(t,e){return this.dataAll=t,this.data=e.map(n=>{var r={...n};return r.cluster=String(r.cluster),r.direction="forward",r.start>r.end&&(r.direction="reverse"),r}),this};function cE(t,e){for(let n of e)if(t>=n.start&&t<=n.end)return!0;return!1}function Oh(t,e,n,r,i,o=!1){i=[...i].sort((h,f)=>h.start-f.start);let a=0;for(let h of i)h.start>=t&&h.end<=e&&(a+=h.end-h.start);let s=o?e-a:t,c=o?t:e-a,l=R.scaleLinear().domain([s,c]).range([0,n-r.left-r.right]),u=function(h){if(cE(h,i))return null;let f=0;for(let d of i)if(h>d.end)f+=d.end-d.start;else break;return h=h-f,l(h)};for(let h in l)typeof l[h]=="function"?u[h]=(...f)=>{let d=l[h](...f);return d===l?u:d}:u[h]=l[h];return u.invert=function(h){let f=l.invert(h);for(let d of i)if(f>d.start)f+=d.end-d.start;else break;return f},u}function Wi(t,e,n,r,i=[]){let o;if(typeof n=="string"&&n.endsWith("%"))o=parseFloat(n)/100;else if(typeof n=="number"&&n>=0&&n<=100)o=n/100;else return qe("Invalid padding format. Padding should be a percentage (as a string or a number between 0 and 100). No padding applied."),r==="start"?t:e;let[a,s]=[Math.min(t,e),Math.max(t,e)],c=i.reduce((u,h)=>u+Math.max(0,Math.min(h.end,s)-Math.max(h.start,a)),0);return o=(s-a-c)*o,r==="start"?t-o:r==="end"?e+o:(console.error('Invalid "to" parameter in addScalePadding. Must be "start" or "end".'),r==="start"?t:e)}ft.prototype.scale=function(t={}){if(!this.data)return console.error("No data has been added to this cluster container."),this;let e={start:null,end:null,xMin:null,xMax:null,padding:2,hidden:!0,reverse:!1,axisPosition:"bottom",breaks:[],tickValues:null,ticksCount:10,ticksFormat:",.0f",y:null,tickStyle:{stroke:"grey",strokeWidth:1,lineLength:6},textStyle:{fill:"black",fontSize:"10px",fontFamily:"Arial",cursor:"default"},lineStyle:{stroke:"grey",strokeWidth:1}},n=ut.call(this,e,"scaleOptions",t),{start:r,end:i,xMin:o,xMax:a,padding:s,hidden:c,breaks:l,tickValues:u,reverse:h,axisPosition:f,ticksCount:d,ticksFormat:m,y:p,tickStyle:g,textStyle:y,lineStyle:w}=n,b=p!==null?p:f==="bottom"?20:80,v=at(g,e.tickStyle),_=at(y,e.textStyle),S=at(w,e.lineStyle);if(r!==null&&(this.data=this.data.filter(C=>C.start>=r)),i!==null&&(this.data=this.data.filter(C=>C.end<=i)),this.data=this.data.filter(C=>!l.some(F=>C.start>=F.start&&C.start<=F.end||C.end>=F.start&&C.end<=F.end)),this.reverse=h,this.padding=s,this.minStart=r!==null?r:o!==null?o:R.min(this.data,C=>Math.min(C.start,C.end)),this.maxEnd=i!==null?i:a!==null?a:R.max(this.data,C=>Math.max(C.start,C.end)),r==null&&(this.minStart=Wi(this.minStart,this.maxEnd,s,"start",l)),i==null&&(this.maxEnd=Wi(this.minStart,this.maxEnd,s,"end",l)),this.xScale=Oh(this.minStart,this.maxEnd,this.width,this.margin,l,h),this.fullScale=Oh(this.minStart,this.maxEnd,this.width,this.margin,l,h),this.zoom=null,t.zoom){let C=this.width-this.margin.left-this.margin.right,F=T=>{let B=l.find(N=>T>=N.start&&T<=N.end);return this.fullScale(B?B.end+1e-9:T)/C},{from:A,to:E,mode:D}=t.zoom,[$,M]=(D==="absolute"?[F(A),F(E)]:[A,E]).sort((T,B)=>T-B);M-$>1e-9||(M=$+1e-9),($>1e-9||M<1-1e-9)&&(this.zoom=[$,M],this.xScale.range([-$*C/(M-$),(1-$)*C/(M-$)]))}this.yScale=R.scaleLinear().domain([0,100]).range([this.height-this.margin.bottom-this.margin.top,0]),this.breaks=l.filter(C=>C.start>=this.minStart&&C.end<=this.maxEnd);let k=this;if(!c){let C=this.yScale?this.yScale(b):b,F=this.svg.append("g").attr("data-component","scale").attr("transform",`translate(${this.margin.left},${this.margin.top+C})`),A=this.width-this.margin.left-this.margin.right,E=this.zoom?[this.xScale.invert(0),this.xScale.invert(A)].sort((T,B)=>T-B):[this.minStart,this.maxEnd],D=R.scaleLinear().domain(E).range([0,A]),$=R.axisBottom(D).tickFormat(R.format(m));Array.isArray(u)&&u.length>0?$.tickValues(u):typeof u=="number"?$.tickValues([u]):$.ticks(d);let M=F.append("g").call($);De(F,n.itemStyle?.[0]),M.selectAll(".tick line").style("stroke",g.stroke).style("stroke-width",g.strokeWidth).attr("y2",g.lineLength).each(function(){let T=R.select(this);rt(T,v)}),M.selectAll(".tick text").style("fill",y.fill).style("font-size",y.fontSize).style("font-family",y.fontFamily).style("cursor",y.cursor).each(function(){let T=R.select(this);rt(T,_)}),M.selectAll(".tick").each(function(T){let B=R.select(this).data()[0],N=k.xScale(B);N===null||N<-.5||N>A+.5?R.select(this).remove():R.select(this).attr("transform",`translate(${N},0)`)}),M.select(".domain").style("stroke",w.stroke).style("stroke-width",w.strokeWidth).each(function(){let T=R.select(this);rt(T,S)})}return this};function Bh(t,e,n={}){let r={dyAdjust:0,lineHeightEms:1.05,lineHeightSquishFactor:1,splitOnHyphen:!0,centreVertically:!0},{dyAdjust:i,lineHeightEms:o,lineHeightSquishFactor:a,splitOnHyphen:s,centreVertically:c}={...r,...n};t.each(function(){var l=R.select(this),u=l.attr("x"),h=l.attr("y"),f=[],d=[],m=function(_){d.length&&f.push({pieces:d,space:_}),d=[]};Yy(l.text()).forEach(function(_){_.content.split(/(\s+)/).forEach(function(S){if(/^\s+$/.test(S)){m(!0);return}var k=s?S.split(/(?<=-)/):[S];k.forEach(function(C,F){C&&d.push({..._,content:C}),F<k.length-1&&m(!1)})})}),m(!0);var p=function(_,S){_.selectAll("*").remove(),S.forEach(function(k,C){k.pieces.forEach(function(F,A){var E=A===k.pieces.length-1&&C<S.length-1,D=E&&k.space?" ":"",$=_.append("tspan").text(F.content+D);F.bold&&$.style("font-weight","bold"),F.italic&&$.style("font-style","italic"),F.underline&&$.style("text-decoration","underline")})})};l.text(null);for(var g=l.append("tspan").attr("class","wrap-line"),y=[],w=0;w<f.length;w++)y.push(f[w]),p(g,y),g.node().getComputedTextLength()>e&&y.length>1&&(y.pop(),p(g,y),y=[f[w]],g=l.append("tspan").attr("class","wrap-line"),p(g,y));var b=l.selectAll("tspan.wrap-line"),v=o;if(b.size()>2)for(var w=0;w<b.size();w++)v*=a;b.each(function(_,S){var k=S*v+i;c&&(k-=(b.size()-1)*v/2),R.select(this).attr("y",h).attr("x",u).attr("dy",k+"em")})})}function Zl(t,e,n=null){let r={rotation:-65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"},i=(b,v)=>{let _=Math.max(0,Math.min(b.right,v.right)-Math.max(b.left,v.left)),S=Math.max(0,Math.min(b.bottom,v.bottom)-Math.max(b.top,v.top)),k=_*S,C=(b.right-b.left)*(b.bottom-b.top);return k/C*100},o=new Map,a=(b,v)=>{let _=b.parentNode;if(!o.has(_)){let E=_.getScreenCTM?.();o.set(_,E?DOMMatrix.fromMatrix(E):null)}let S=o.get(_);if(!S)return b.getBoundingClientRect();let k=b.transform?.baseVal?.consolidate();k&&(S=S.multiply(DOMMatrix.fromMatrix(k.matrix)));let C=[[v.x,v.y],[v.x+v.width,v.y],[v.x,v.y+v.height],[v.x+v.width,v.y+v.height]].map(([E,D])=>new DOMPoint(E,D).matrixTransform(S)),F=C.map(E=>E.x),A=C.map(E=>E.y);return{left:Math.min(...F),right:Math.max(...F),top:Math.min(...A),bottom:Math.max(...A)}},s=new Map,c=b=>{let v=b.getBBox();return s.set(b,v),a(b,v)},l=(b,v)=>{if(v==null||v==="")return 0;let _=String(v).trim().match(/^([-+]?[0-9.]+(?:e[-+]?[0-9]+)?)(px|em)?$/i);if(!_)return null;let S=parseFloat(_[1]);if(S===0||!_[2]||_[2].toLowerCase()==="px")return S;let k=b.style.fontSize.endsWith("px")?b.style.fontSize:getComputedStyle(b).fontSize;return S*parseFloat(k)},u=50,h=new Map,f=b=>{if(!Number.isFinite(b.left)||!Number.isFinite(b.right))return[];let v=[];for(let _=Math.floor(b.left/u);_<=Math.floor(b.right/u);_++)v.push(_);return v},d=(b,v)=>{let _=g.get(b);_&&f(_).forEach(S=>h.get(S).delete(b)),g.set(b,v),f(v).forEach(S=>{h.has(S)||h.set(S,new Set),h.get(S).add(b)})},m=b=>{let v=new Set;return f(g.get(b)).forEach(_=>h.get(_)?.forEach(S=>v.add(S))),v.delete(b),v},p=null,g=new Map,y=b=>{p&&d(b,c(b))};return{adjust:(b,v={})=>{p||(p=t.svg.selectAll(e).nodes(),p.forEach(T=>d(T,c(T))));let{rotation:_,offsetX:S,offsetY:k,dx:C,dy:F,hide:A=!1}={...r,...v},E=s.get(b)??b.getBBox(),D=E.x+E.width/2,$=E.y;D+=S,$+=_<0?E.height:E.height/2,$+=k,g.has(b)||d(b,c(b));let M=g.get(b);for(let T of m(b))if(i(M,g.get(T))>0){if(A)return R.select(b).style("display","none"),f(M).forEach(K=>h.get(K)?.delete(b)),g.delete(b),!1;let B=parseFloat(b.getAttribute("y")),N=l(b,b.getAttribute("dy")),L=l(b,C),q=l(b,F),U=K=>Math.abs(K)*Math.PI/180,Z=K=>E.width*Math.sin(U(K))+E.height*Math.cos(U(K)),Q=$+(q??0),j=K=>!n||(K<0?Q-Z(K)>=n.top:Q+Z(K)<=n.bottom),H=E.width*Math.cos(U(_)),W=D+S+(L??0);if(!j(_)||n&&W+H>n.right)return R.select(b).style("display","none"),f(M).forEach(K=>h.get(K)?.delete(b)),g.delete(b),!1;let J=_;if(R.select(b).style("text-anchor","start").attr("dx",C).attr("dy",F).attr("x",D+S).attr("y",$).attr("transform",`rotate(${J}, ${D}, ${$})`),b.__drawn__={...b.__drawn__,rotate:J},!b.childElementCount&&Number.isFinite(B)&&[N,L,q].every(Number.isFinite)){let K={x:D+S+L,y:E.y+($+q)-(B+N),width:E.width,height:E.height};s.set(b,K),d(b,a(b,K))}else y(b);return!0}return!1},refresh:y}}function Yy(t){let e=/<([biu])>(.*?)<\/\1>/g,n=[],r=a=>({content:a,bold:!1,italic:!1,underline:!1}),i=0,o;for(;(o=e.exec(t))!==null;){o.index>i&&n.push(r(t.substring(i,o.index)));let[,a,s]=o;n.push({content:s,bold:a==="b",italic:a==="i",underline:a==="u"}),i=o.index+o[0].length}return i<t.length&&n.push(r(t.substring(i))),n}function xr(t,e,n){Yy(t).forEach(({content:r,bold:i,italic:o,underline:a})=>{let s=e.append("tspan").style("font-weight",i?"bold":n.weight).style("font-style",o?"italic":n.style).text(r);a&&s.style("text-decoration","underline")})}function Dh(t,e,n,r=!1){let{width:i,margin:o}=t;switch(e){case"left":return{xPos:r?o.left+n:n,textAnchor:"start"};case"right":return{xPos:(r?i-o.right:i-o.left-o.right)+n,textAnchor:"end"};default:{let a=i-o.left-o.right;return{xPos:(r?o.left+a/2:a/2)+n,textAnchor:"middle"}}}}function ba(t,e,n,r){for(let o of Object.keys(r))t.style(Gl(o),n[o]);let i=at(n,r);t.each(function(){let o=R.select(this);xr(e,o,n),rt(o,i)}),De(t,n)}ft.prototype.title=function(t,e,n=!0,r={},i="titleOptions"){if(!t&&!e)return this;if(!n)return this;let o=Gn(this.themeOptions),a={x:0,y:20*o,align:"center",spacing:20*o,titleFont:{fontSize:"16px",fontStyle:"normal",fontWeight:"bold",textDecoration:"normal",fontFamily:"sans-serif",cursor:"default"},subtitleFont:{fontSize:"14px",fontStyle:"normal",fontWeight:"normal",textDecoration:"none",fontFamily:"sans-serif",cursor:"default"}},s=ut.call(this,a,i,r),{x:c,y:l,align:u,spacing:h,itemStyle:f}=s,d=Xn(f,"title"),m=Xn(f,"subtitle"),p={...s.titleFont,...d.style},g={...s.subtitleFont,...m.style};t=d.text??t,e=m.text??e;let{xPos:y,textAnchor:w}=Dh(this,u,c);var b=this.svg.append("g").attr("data-component",i==="clusterTitleOptions"?"clusterTitle":"title").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);return t&&b.append("text").attr("data-part","title").property("__text__",t).attr("x",y).attr("y",l+this.margin.top/2).attr("text-anchor",w).call(ba,t,p,a.titleFont),e&&b.append("text").attr("data-part","subtitle").property("__text__",e).attr("x",y).attr("y",l+this.margin.top/2+h).attr("text-anchor",w).call(ba,e,g,a.subtitleFont),this};ft.prototype.footer=function(t,e,n=!0,r={}){if(!t&&!e)return this;if(!n)return this;let i={x:0,y:0,align:"left",spacing:12*Gn(this.themeOptions),titleFont:{fontSize:"12px",fontWeight:"bold",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default"},subtitleFont:{fontSize:"10px",fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default"}},o=ut.call(this,i,"footerOptions",r),{x:a,y:s,align:c,spacing:l,itemStyle:u}=o,h=Xn(u,"title"),f=Xn(u,"subtitle"),d={...o.titleFont,...h.style},m={...o.subtitleFont,...f.style};t=h.text??t,e=f.text??e;let{xPos:p,textAnchor:g}=Dh(this,c,a,!0),y=this.height-this.margin.bottom+s-20,w=y+l;return t&&this.svg.append("text").attr("data-component","clusterFooter").attr("data-part","title").property("__text__",t).attr("x",p).attr("y",y).attr("text-anchor",g).call(ba,t,d,i.titleFont),e&&this.svg.append("text").attr("data-component","clusterFooter").attr("data-part","subtitle").property("__text__",e).attr("x",p).attr("y",w).attr("text-anchor",g).call(ba,e,m,i.subtitleFont),this};function Wy(t,e,n={}){let r=n?.clusterLabelOptions??{},i=e?.position??r.position??"left",o=e?.width??t?.margin?.[i]??r.width??n?.containerOptions?.margin?.[i]??`${100*Gn(n)}px`;return{[i]:o}}ft.prototype.clusterLabel=function(t,e=!0,n={}){if(!e)return this;let r={x:0,y:0,position:"left",align:"center",width:null,wrapLabel:!0,wrapOptions:{},fontSize:"12px",fontStyle:"normal",fontWeight:"bold",fontFamily:"sans-serif",cursor:"default",subtitle:null,spacing:null,subtitleFont:{fontSize:"11px",fontStyle:"normal",fontWeight:"normal",fontFamily:"sans-serif",cursor:"default"}},{itemStyle:i,...o}=ut.call(this,r,"clusterLabelOptions",n),a=Xn(i,"title"),s=Xn(i,"subtitle"),c={...o,...a.style,subtitle:s.text??o.subtitle,subtitleFont:{...o.subtitleFont,...s.style}};t=a.text??t;let{x:l,y:u,position:h,align:f,wrapLabel:d,wrapOptions:m,fontSize:p,fontStyle:g,fontWeight:y,fontFamily:w,cursor:b,subtitle:v,spacing:_,subtitleFont:S}=c,k=at(m,r.wrapOptions),C=at(c,r),F={size:p,style:g,weight:y,family:w,cursor:b},A=this.height-this.margin.top-this.margin.bottom,E=this.margin.top+A/2+u,D=h==="left"?this.margin.left-l:this.margin.right-l,$={left:0,right:1}[f]??.5,M={left:"start",right:"end"}[f]??"middle",T;h==="left"?T=this.margin.left*$+l:T=this.width-this.margin.right*(1-$)-l;let B=this.svg.append("text").attr("data-component","clusterLabel").attr("data-part","title").property("__text__",t).attr("x",T).attr("y",E).attr("text-anchor",M).attr("dominant-baseline","central").style("font-size",p).style("font-style",g).style("font-weight",y).style("font-family",w).style("cursor",b).each(function(){let N=R.select(this);d?(N.text(t),Bh(N,D,m)):xr(t,N,F),rt(N,C)});if(v){let N=at(S,r.subtitleFont),L={size:S.fontSize,style:S.fontStyle,weight:S.fontWeight,family:S.fontFamily,cursor:S.cursor},q=this.svg.append("text").attr("data-component","clusterLabel").attr("data-part","subtitle").property("__text__",v).attr("x",T).attr("y",E).attr("text-anchor",M).attr("dominant-baseline","central").style("font-size",S.fontSize).style("font-style",S.fontStyle).style("font-weight",S.fontWeight).style("font-family",S.fontFamily).style("cursor",S.cursor).each(function(){let H=R.select(this);d?(H.text(v),Bh(H,D,m)):xr(v,H,L),rt(H,N)}),U=Uy(B),Z=Uy(q),Q=_??1.2*(U.fontSize+Z.fontSize)/2,j=E-(U.first+U.last+Q-Z.first+Z.last)/2;Hy(B,j),Hy(q,j+U.last+Q-Z.first)}return De(B,a.style),this.svg.selectAll('text[data-component="clusterLabel"][data-part="subtitle"]').call(De,s.style),this};function Uy(t){let e=parseFloat(getComputedStyle(t.node()).fontSize),n=t.selectAll("tspan.wrap-line").nodes();if(!n.length)return{fontSize:e,first:0,last:0};let r=i=>(parseFloat(i.getAttribute("dy"))||0)*e;return{fontSize:e,first:r(n[0]),last:r(n[n.length-1])}}function Hy(t,e){t.attr("y",e),t.selectAll("tspan.wrap-line").attr("y",e)}ft.prototype.sequence=function(t=!0,e={}){if(!t)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the addGeneData() function before attempting to draw a gene line."),this;let n={y:50,start:null,end:null,sequenceStyle:{stroke:"grey",strokeWidth:1},markerStyle:{markerHeight:10,stroke:"grey",strokeWidth:1,tiltAmount:-5,gap:0}},r=ut.call(this,n,"sequenceOptions",e),{y:i,start:o,end:a,markerStyle:s,sequenceStyle:c}=r,l=at(c,n.sequenceStyle);var u=this.svg.append("g").attr("data-component","sequence").attr("transform",`translate(${this.margin.left},${this.margin.top})`),h=o??R.min(this.data,b=>Math.min(b.start,b.end)),f=a??R.max(this.data,b=>Math.max(b.start,b.end));o==null&&(h=Wi(h,f,this.padding,"start",this.breaks)),a==null&&(f=Wi(h,f,this.padding,"end",this.breaks));let d=this.breaks.map(b=>({xStart:this.xScale(b.start-.001)-s.gap,xEnd:this.xScale(b.end+.001)+s.gap})),[m,p]=[this.xScale(h),this.xScale(f)].sort((b,v)=>b-v),g=d.map(({xStart:b,xEnd:v})=>[b+s.tiltAmount/2,v-s.tiltAmount/2].sort((_,S)=>_-S)).sort((b,v)=>b[0]-v[0]),y=[],w=m;for(let[b,v]of g)b>w&&y.push([w,Math.min(b,p)]),w=Math.max(w,v);w<p&&y.push([w,p]),u.selectAll("line.baseline").data(y).enter().append("line").attr("class","baseline").attr("x1",b=>b[0]).attr("y1",this.yScale(i)).attr("x2",b=>b[1]).attr("y2",this.yScale(i)).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let b=R.select(this);rt(b,l)});for(let{xStart:b,xEnd:v}of d){let _=this.yScale(i),S=_-s.markerHeight/2,k=_+s.markerHeight/2;u.append("line").attr("x1",b).attr("y1",S).attr("x2",b+s.tiltAmount).attr("y2",k).attr("stroke",s.stroke).attr("stroke-width",s.strokeWidth),u.append("line").attr("x1",v-s.tiltAmount).attr("y1",S).attr("x2",v).attr("y2",k).attr("stroke",s.stroke).attr("stroke-width",s.strokeWidth)}return this};ft.prototype.coordinates=function(t=!0,e={}){if(!t)return this;let n={rotate:-45,yPositionTop:53,yPositionBottom:48,tickValuesTop:null,tickValuesBottom:null,overlapThreshold:20,ticksFormat:",.0f",groupStyle:{},styleBy:null,itemStyle:[],tickStyle:{stroke:"black",strokeWidth:1,lineLength:6},textStyle:{fill:"black",fontSize:"10px",fontFamily:"Arial",cursor:"default",x:0,y:0}},r=ut.call(this,n,"coordinatesOptions",e),{rotate:i,yPositionTop:o,yPositionBottom:a,tickValuesBottom:s,tickValuesTop:c,ticksFormat:l,tickStyle:u,textStyle:h,groupStyle:f,styleBy:d,itemStyle:m}=r,p=A=>m.filter(E=>A?.rowID!=null&&E.rowID===A.rowID&&(E.end==null||E.end===A.end)).reduce((E,{rowID:D,end:$,...M})=>({...E,...M}),{}),g=A=>{let E=(d&&A?.gene?f[A.gene[d]]:void 0)??{},D=p(A);return{...E,...D,tick:{...E.tick,...D.tick}}},y=A=>{let{show:E,tick:D,...$}=g(A);return $},w=at(u,n.tickStyle),b=at(h,n.textStyle),v=this.svg.append("g").attr("data-component","coordinates").attr("transform","translate("+this.margin.left+","+this.margin.top+")"),_=Array.isArray(c)?c.map(A=>({value:A,rowID:null})):c!=null?[{value:c,rowID:null}]:[],S=Array.isArray(s)?s.map(A=>({value:A,rowID:null})):s!=null?[{value:s,rowID:null}]:[];if(!c&&!s){let A=this.data.reduce((E,D)=>{let $={value:D.start,rowID:D.rowID,end:"start",gene:D},M={value:D.end,rowID:D.rowID,end:"end",gene:D};return $.strand=D.strand,M.strand=D.strand,"geneTrack"in D&&($.geneTrack=D.geneTrack,M.geneTrack=D.geneTrack),E.push($),E.push(M),E},[]);if(A=A.filter(E=>g(E).show!==!1),A=A.filter((E,D,$)=>D===$.findIndex(M=>M.value===E.value)),A.sort((E,D)=>E.value-D.value),this.separateStrands)A.forEach(E=>{E.strand==="forward"?_.push(E):S.push(E)});else{let E=r.overlapThreshold;for(let D=0;D<A.length;D++){if(D===0){S.push(A[D]);continue}this.xScale(A[D].value)-this.xScale(A[D-1].value)<E?(_.push(A[D]),D+1<A.length&&(S.push(A[D+1]),D++)):S.push(A[D])}}}let k=this,C=v.append("g").attr("transform","translate(0,"+this.yScale(o)+")").call(R.axisTop(this.xScale).tickValues(_.map(A=>A.value)).tickFormat(R.format(l)));C.selectAll(".tick").data(_).attr("rowID",A=>A.rowID).attr("transform",function(A){let E=k.xScale(A.value);var D=A.geneTrack?(A.geneTrack-1)*k.geneOverlapSpacing:0;return"translate("+E+","+-D+")"}),C.select(".domain").attr("stroke","none"),C.selectAll("text").data(_).attr("class","coordinate").style("text-anchor","end").attr("dx",`${-.8+h.x}em`).attr("dy",`${.4+h.y}em`).attr("transform","rotate("+-i+")").style("fill",h.fill).style("font-size",h.fontSize).style("font-family",h.fontFamily).style("cursor",h.cursor).each(function(A){let E=R.select(this);rt(E,b),rt(E,y(A))}),C.selectAll(".tick line").style("stroke",u.stroke).style("stroke-width",u.strokeWidth).attr("y2",-u.lineLength).each(function(){let A=R.select(this);rt(A,w),rt(A,g(R.select(this.parentNode).datum()).tick??{})});let F=v.append("g").attr("transform","translate(0,"+this.yScale(a)+")").call(R.axisBottom(this.xScale).tickValues(S.map(A=>A.value)).tickFormat(R.format(l)));return F.selectAll(".tick").data(S).attr("rowID",A=>A.rowID).attr("transform",function(A){let E=k.xScale(A.value);var D=A.geneTrack?-(A.geneTrack-1)*k.geneOverlapSpacing:0;return"translate("+E+","+-D+")"}),F.select(".domain").attr("stroke","none"),F.selectAll("text").data(S).attr("class","coordinate").style("text-anchor","start").attr("dx",`${.8+h.x}em`).attr("dy",`${-.15+h.y}em`).attr("transform","rotate("+-i+")").style("fill",h.fill).style("font-size",h.fontSize).style("font-family",h.fontFamily).style("cursor",h.cursor).each(function(A){let E=R.select(this);rt(E,b),rt(E,y(A))}),F.selectAll(".tick line").style("stroke",u.stroke).style("stroke-width",u.strokeWidth).attr("y2",u.lineLength).each(function(){let A=R.select(this);rt(A,w),rt(A,g(R.select(this.parentNode).datum()).tick??{})}),this};ft.prototype.scaleBar=function(t=!0,e={}){if(!t)return this;let n={title:"1 kb",scaleBarUnit:1e3,x:0,y:10,labelStyle:{fontSize:"10px",fontFamily:"sans-serif",cursor:"default",fill:"black",labelPosition:"left"},textPadding:0,scaleBarLineStyle:{stroke:"grey",strokeWidth:1},scaleBarTickStyle:{stroke:"grey",strokeWidth:1}},r=ut.call(this,n,"scaleBarOptions",e),{title:i,scaleBarUnit:o,x:a,y:s,textPadding:c,labelStyle:l,scaleBarLineStyle:u,scaleBarTickStyle:h}=r,f=at(u,n.scaleBarLineStyle),d=at(h,n.scaleBarTickStyle),m=at(l,n.labelStyle),p=Math.abs(this.xScale(o)-this.xScale(0)),g=this.svg.append("g").attr("data-component","scaleBar").attr("transform",`translate(${this.width-this.margin.right-p-parseInt(l.fontSize)-5+a}, ${this.height-this.margin.bottom})`);g.append("line").attr("x1",parseInt(l.fontSize)+5+p).attr("x2",parseInt(l.fontSize)+5).attr("y1",-s).attr("y2",-s).style("stroke",u.stroke).style("stroke-width",u.strokeWidth).each(function(){let b=R.select(this);rt(b,f)}),[parseInt(l.fontSize)+5,parseInt(l.fontSize)+5+p].forEach(b=>{g.append("line").attr("x1",b).attr("x2",b).attr("y1",-s-5).attr("y2",-s+5).style("stroke",h.stroke).style("stroke-width",h.strokeWidth).each(function(){let v=R.select(this);rt(v,d)})});let y=l.labelPosition==="left"?parseInt(l.fontSize)-c:parseInt(l.fontSize)+5+p+c,w=l.labelPosition==="left"?"end":"start";return g.append("text").attr("x",y).attr("y",-s).style("text-anchor",w).style("dominant-baseline","middle").style("font-size",l.fontSize).style("font-family",l.fontFamily).style("cursor",l.cursor).style("fill",l.fill).each(function(){let b=R.select(this);rt(b,m)}).text(i),De(g,r.itemStyle?.[0]),this};function uE(t,e){let n=R.select(t),r=t.textContent;t.textContent="",n.append("tspan").attr("class","label-name").text(r);let i=n.append("tspan").attr("class","label-measure").text(e.textContent);for(let o of e.style)o!=="text-anchor"&&i.style(o,e.style.getPropertyValue(o));if(e.remove(),r){i.attr("x",n.attr("x")).attr("dy","1.1em");let o=1.1*parseFloat(getComputedStyle(i.node()).fontSize);n.attr("y",parseFloat(n.attr("y"))-o)}}function fE(t){let e=R.select(t),n=e.select(".label-measure");n.empty()||n.attr("x",null).attr("dy",null).attr("dx",e.select(".label-name").text()?"0.3em":null)}function hE(t,e,n,r,i){let o=t.map((l,u)=>u).sort((l,u)=>t[l]-t[u]),a=[],s=l=>{l.start=Math.max(r,Math.min(l.total/l.members.length,i-l.width))};for(let l of o){let u={members:[{i:l,offset:0}],width:e[l],total:t[l]-e[l]/2};s(u);let h=a[a.length-1];for(;h&&h.start+h.width+n>u.start;){let f=h.width+n;u.members.forEach(d=>{d.offset+=f}),h.members.push(...u.members),h.total+=u.total-u.members.length*f,h.width+=n+u.width,u=a.pop(),s(u),h=a[a.length-1]}a.push(u)}let c=new Array(t.length);return a.forEach(l=>l.members.forEach(({i:u,offset:h})=>{c[u]=l.start+h+e[u]/2})),c}function jy(t){let e=t.__leader__;if(!e||!e.line.isConnected)return;let n=!t.isConnected||getComputedStyle(t).display==="none";if(e.line.style.display=n?"none":null,n)return;let r=t.getScreenCTM?.(),i=e.line.parentNode.getScreenCTM?.(),o=t.transform?.baseVal?.consolidate(),a=r&&i?i.inverse().multiply(r):o?o.matrix:new DOMMatrix,s=t.getBBox(),c=new DOMPoint(s.x+s.width/2,s.y).matrixTransform(a),l=new DOMPoint(s.x+s.width/2,s.y+s.height).matrixTransform(a),u=l.y<=(e.geneTop+e.geneBottom)/2,h=u?l:c;e.line.setAttribute("y1",u?e.geneTop-e.gap:e.geneBottom+e.gap),e.line.setAttribute("x2",h.x),e.line.setAttribute("y2",u?h.y+e.gap:h.y-e.gap)}ft.prototype.labels=function(t,e=!0,n={}){if(!e)return this;if(!t)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the addGeneData() function before attempting to draw genes."),this;let r={x:0,y:55,dy:"0em",dx:"0em",rotate:0,start:null,end:null,adjustLabels:!0,spreadPosition:"bottom",leaderLine:{length:20,stroke:"#999999",strokeWidth:.75},fontSize:"12px",fontStyle:"italic",fontFamily:"sans-serif",textAnchor:"middle",cursor:"default",labelAdjustmentOptions:{rotation:65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"},itemStyle:[],groupStyle:{},styleBy:null,group:null},i=ut.call(this,r,"labelsOptions",n),{x:o,y:a,start:s,end:c,adjustLabels:l,labelAdjustmentOptions:u,spreadPosition:h,leaderLine:f,groupStyle:d,styleBy:m,group:p,dx:g,dy:y,anchor:w,rotate:b,fontSize:v,fontStyle:_,fontFamily:S,textAnchor:k,cursor:C}=i,F=at(i,r),A=this.svg.append("g").attr("data-component","labels").attr("transform",`translate(${this.margin.left},${this.margin.top})`);this.data.sort((j,H)=>Math.min(j.start,j.end)-Math.min(H.start,H.end));let E=Ui(this.data,m??p,d,i.itemStyle),D=new Map(E.map(j=>[j.index,j])),$=(j,H)=>{let W=D.get(H)||{},J=W.x??o,K=W.y??a,ht=W.dx??g,G=W.dy??y,tt=W.adjustLabels!==void 0?W.adjustLabels:l,ot=tt==="spread",X=ot?0:W.rotate??b,vt=!ot&&j.geneTrack>1,yt={...W.labelAdjustmentOptions??u};yt.rotation=-Math.abs(yt.rotation);let Tt=j.strand=="forward"&&this.geneStrandSpacing!==0?this.geneStrandSpacing:-this.geneStrandSpacing;var Mt=j.geneTrack?(j.geneTrack-1)*this.geneOverlapSpacing:0;let st=this.yScale(this.markerY??50),St=this.yScale(K)-this.markerHeight/2-Tt+Mt,ne=2*st-this.yScale(K)+this.markerHeight/2-Tt+Mt,Zt=vt?ne:St;return{xPos:this.xScale((j.start+j.end)/2)+J,yPos:Zt,dx:ht,dy:G,rotate:X,labelAdjustmentOptions:yt,adjustLabels:tt,spread:ot,below:vt,yAbove:St}},M=R.group(this.data,j=>j.geneTrack??1),T=(j,H,W)=>(M.get(j)||[]).some(J=>{let[K,ht]=[this.xScale(J.start),this.xScale(J.end)].sort((G,tt)=>G-tt);return K<W&&ht>H}),B=(j,H,W)=>{if(!W.below)return;let J=j.getBBox(),K=J.x,ht=J.x+J.width;T(H.geneTrack+1,K,ht)&&!T(H.geneTrack-1,K,ht)&&(W.below=!1,W.yPos=W.yAbove,R.select(j).attr("dominant-baseline",null).attr("y",W.yPos).attr("transform",`rotate(${W.rotate}, ${W.xPos}, ${W.yPos})`))},N=this.data.map((j,H)=>$(j,H)),L=Zl(this,"text.label",{left:0,right:this.width-this.margin.left-this.margin.right,top:-this.margin.top,bottom:this.height-this.margin.top}),q=new Map(this.svg.selectAll(".link-text").nodes().map(j=>[j.getAttribute("rowID"),j]));A.selectAll("text.label").data(this.data).enter().append("text").attr("id",(j,H)=>`cluster-${wr(j.cluster)}-label-${H}`).attr("rowID",(j,H)=>`${j.rowID}`).attr("class","label").each(function(j,H){let{dx:W,dy:J,rotate:K}=N[H];this.__drawn__={dx:W,dy:J,rotate:K}}).attr("x",(j,H)=>N[H].xPos).attr("y",(j,H)=>N[H].yPos).attr("dx",(j,H)=>N[H].dx).attr("dy",(j,H)=>N[H].dy).attr("text-anchor",k).attr("dominant-baseline",(j,H)=>N[H].below?"hanging":null).attr("transform",(j,H)=>{let{xPos:W,yPos:J,rotate:K}=N[H];return`rotate(${K}, ${W}, ${J})`}).style("font-size",v).style("font-style",_).style("font-family",S).style("cursor",C).text((j,H)=>D.get(H)?.text??j[t]).each(function(j){let H=q.get(String(j.rowID));H&&uE(this,H)}).each(function(j,H){let W=N[H];B(this,j,W),W.below&&(W.labelAdjustmentOptions.rotation=Math.abs(W.labelAdjustmentOptions.rotation))});let U=(j,H)=>{let W=R.select(j);rt(W,F),Hi(W,D.has(H)?[D.get(H)]:[],H),(j.childElementCount||ma(F)||ma(D.get(H)))&&L.refresh(j)};A.selectAll("text.label").each(function(j,H){N[H].spread&&U(this,H)});let{length:Z,...Q}={...r.leaderLine,...Wr(f)?f:{}};return this.spreadLabels(A,N,{length:Number.isFinite(Number(Z))?Number(Z):r.leaderLine.length,lineStyle:f===!1?null:Q,onTop:h==="top"}),A.selectAll("text.label").each(function(j,H){let W=N[H];W.spread||(W.adjustLabels&&L.adjust(this,{...W.labelAdjustmentOptions,hide:W.adjustLabels==="hide"})&&fE(this),U(this,H))}),A.selectAll("text.label").each(function(j,H){De(R.select(this),D.get(H)??{})}),this.labels=A.selectAll(".label"),this};ft.prototype.spreadLabels=function(t,e,n){let r=this.svg.node();if(!r.getClientRects().length){let k=new ResizeObserver(()=>{if(!r.isConnected)return k.disconnect();r.getClientRects().length&&(k.disconnect(),this.spreadLabels(t,e,n))});return k.observe(r),this}let i=this.width-this.margin.left-this.margin.right,o=k=>{let[C,F]=[this.xScale(k.start),this.xScale(k.end)].sort((D,$)=>D-$),A=Math.max(0,C),E=Math.min(i,F);return A<=E?[A,E]:null},a=[];if(t.selectAll("text.label").each(function(k,C){if(!e[C].spread||this.textContent.trim()==="")return;let F=o(k);if(!F){this.style.display="none";return}let{xPos:A}=e[C];a.push({node:this,d:k,geneX:(F[0]+F[1])/2,wanted:Math.min(F[1],Math.max(F[0],A))})}),!a.length)return this;let s=t.node().getCTM(),c=new Set(a.map(({d:k})=>String(k.rowID))),l=new Map,u=new Map,h=1/0,f=-1/0;this.svg.selectAll(".gene, .exon, .intron, .utr").each(function(){let k=this.getCTM();if(!k||!s)return;let C=s.inverse().multiply(k),F=this.getBBox(),A=1/0,E=-1/0;for(let[$,M]of[[F.x,F.y],[F.x+F.width,F.y],[F.x,F.y+F.height],[F.x+F.width,F.y+F.height]]){let T=new DOMPoint($,M).matrixTransform(C).y;A=Math.min(A,T),E=Math.max(E,T)}h=Math.min(h,A),f=Math.max(f,E);let D=this.getAttribute("rowID");c.has(D)&&(l.set(D,Math.min(l.get(D)??1/0,A)),u.set(D,Math.max(u.get(D)??-1/0,E)))});let d=this.yScale(this.markerY??50),m=(this.markerHeight??0)/2;Number.isFinite(h)||(h=d-m),Number.isFinite(f)||(f=d+m);let p=6,g=2,y=a.map(({node:k})=>k.getBBox()),w=hE(a.map(({wanted:k})=>k),y.map(k=>k.width),p,0,i),b=y.reduce((k,C)=>Math.max(k,C.height),0),v=n.onTop?h-b+this.margin.top:this.height-this.margin.top-f-b,_=Math.max(2*g,Math.min(n.length,v));if(a.forEach(({node:k},C)=>{let F=y[C],A=w[C]-F.width/2;if(A<-.5||A+F.width>i+.5){k.style.display="none";return}let E=n.onTop?h-_-(F.y+F.height):f+_-F.y,{moveX:D=0,moveY:$=0}=k.__drawn__??{},M=D||$?`translate(${D}, ${$}) `:"";k.setAttribute("transform",`${M}translate(${w[C]-(F.x+F.width/2)}, ${E})`)}),!n.lineStyle)return this;let S=t.insert("g","text.label").attr("class","leader-lines").style("pointer-events","none");return a.forEach(({node:k,d:C,geneX:F})=>{if(k.style.display==="none")return;let A=S.append("line").attr("x1",F).attr("x2",F);rt(A,n.lineStyle),k.__leader__={line:A.node(),gap:g,geneTop:l.get(String(C.rowID))??h,geneBottom:u.get(String(C.rowID))??f},jy(k),new MutationObserver(()=>jy(k)).observe(k,{attributes:!0,attributeFilter:["transform","style"]})}),this};ft.prototype.tooltip=function(t=!0,e={}){if(!t)return this;let n={triggers:["markers","genes","labels","exons","introns","utrs"],formatter:"<b>Start:</b> {start}<br><b>End: {end}</b>",opacity:0,position:"absolute",backgroundColor:"rgba(255, 255, 255, 0.9)",padding:"8px",borderRadius:"4px",border:"1px solid rgba(0,0,0,0.1)",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",pointerEvents:"none",fontFamily:"Arial, sans-serif",fontSize:"12px",zIndex:1e3,color:"#333",lineHeight:"1.5"},r=ut.call(this,n,"tooltipOptions",e),i=at(r,n);typeof r.triggers=="string"&&(r.triggers=[r.triggers]);let o=this.svg.node().closest(".html-widget")||document.body,a=R.select(o).append("div").attr("class","cluster-tooltip").style("opacity",r.opacity).style("position",r.position).style("background-color",r.backgroundColor).style("--tooltip-bg",r.backgroundColor).style("padding",r.padding).style("border-radius",r.borderRadius).style("border",r.border).style("box-shadow",r.boxShadow).style("pointer-events",r.pointerEvents).style("font-family",r.fontFamily).style("font-size",r.fontSize).style("z-index",r.zIndex).style("color",r.color).style("line-height",r.lineHeight);rt(a,i);let s=h=>{let[f,d]=R.pointer(h,o);a.style("left",f-a.node().offsetWidth/2+"px").style("top",d-a.node().offsetHeight-15+"px")},c=R.format(","),l=h=>h==null||h===""||typeof h=="number"&&isNaN(h),u=h=>r.formatter.split(/<br\s*\/?>/i).filter(f=>{let d=[...f.matchAll(/\{(\w+)\}/g)].map(m=>m[1]);return d.length===0||!d.every(m=>l(h[m]))}).join("<br>").replace(/\{(\w+)\}/g,(f,d)=>typeof h[d]=="number"?c(h[d]):h[d]||"");return r.triggers.forEach(h=>{if(!this.hasOwnProperty(h))return;let f=this[h];!f||f.empty()||(f.on("mouseover",(d,m)=>{let p=this.data.find(y=>y===m);R.select(d.currentTarget).classed("hovered",!0),a.transition().duration(200).style("opacity",1),a.html(u(p)),s(d)}),f.on("mousemove",s),f.on("mouseout",d=>{R.select(d.currentTarget).classed("hovered",!1),a.transition().duration(500).style("opacity",0)}))}),this};function ji(t,e,n){let r=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf","#393b79","#637939","#8c6d31","#843c39","#7b4173","#bd9e39","#ad494a","#d6616b","#31a354","#cedb9c","#9c9ede","#5254a3","#8ca252","#b5cf6b","#e7ba52","#ce6dbd","#e7cb94","#e7969c","#6b6ecf","#a55194"],i=n.filter(s=>s!==null),o=(s=()=>!0)=>{if(t&&(Array.isArray(t)||R[t])){let c=Array.isArray(t)?t:R[t];return i.some((l,u)=>u>=c.length&&s(l))&&qe("Warning: More unique groups than colors. Some colors will repeat."),i.map((l,u)=>c[u%c.length])}return t&&qe(`Warning: The color scheme "${t}" does not exist. Defaulting to schemeCategory30.`),i.map((c,l)=>c==="No Hit"?"#FFF":r[l%r.length])},a;if(e&&typeof e=="string")a=i.map(()=>e);else if(e&&Array.isArray(e))a=i.map((s,c)=>e[c%e.length]||"#FFF");else if(e&&typeof e=="object"){let s=o(c=>!e[c]);a=i.map((c,l)=>e[c]||s[l])}else a=o();return R.scaleOrdinal().domain([...i,null]).range([...a,"#FFF"])}var va={none:()=>{},solid:(t,e,n)=>t.append("rect").attr("width",e).attr("height",e).attr("fill",n),horizontal:(t,e,n,r)=>t.append("path").attr("d",`M0,${e/2}H${e}`).attr("stroke",n).attr("stroke-width",r),vertical:(t,e,n,r)=>t.append("path").attr("d",`M${e/2},0V${e}`).attr("stroke",n).attr("stroke-width",r),diagonal:(t,e,n,r)=>t.append("path").attr("d",`M0,${e}L${e},0M${-e/4},${e/4}L${e/4},${-e/4}M${e*3/4},${e*5/4}L${e*5/4},${e*3/4}`).attr("stroke",n).attr("stroke-width",r),antidiagonal:(t,e,n,r)=>t.append("path").attr("d",`M0,0L${e},${e}M${-e/4},${e*3/4}L${e/4},${e*5/4}M${e*3/4},${-e/4}L${e*5/4},${e/4}`).attr("stroke",n).attr("stroke-width",r),grid:(t,e,n,r)=>t.append("path").attr("d",`M0,${e/2}H${e}M${e/2},0V${e}`).attr("stroke",n).attr("stroke-width",r),crosshatch:(t,e,n,r)=>{va.diagonal(t,e,n,r),va.antidiagonal(t,e,n,r)},dots:(t,e,n)=>t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/5).attr("fill",n),zigzag:(t,e,n,r)=>t.append("path").attr("d",`M0,${e*.7}L${e/2},${e*.3}L${e},${e*.7}`).attr("fill","none").attr("stroke",n).attr("stroke-width",r),checkerboard:(t,e,n)=>t.append("path").attr("d",`M0,0H${e/2}V${e/2}H0ZM${e/2},${e/2}H${e}V${e}H${e/2}Z`).attr("fill",n),rings:(t,e,n,r)=>t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/3.2).attr("fill","none").attr("stroke",n).attr("stroke-width",r*.8),bricks:(t,e,n,r)=>t.append("path").attr("d",`M0,0H${e}M0,${e/2}H${e}M${e/4},0V${e/2}M${e*3/4},${e/2}V${e}`).attr("stroke",n).attr("stroke-width",r),plus:(t,e,n,r)=>t.append("path").attr("d",`M${e/2},${e*.2}V${e*.8}M${e*.2},${e/2}H${e*.8}`).attr("stroke",n).attr("stroke-width",r),wideStripes:(t,e,n)=>t.append("path").attr("d",`M0,${e}L${e},0H${e/2}L0,${e/2}ZM${e},${e/2}V${e}H${e/2}Z`).attr("fill",n),inverseDots:(t,e,n,r,i)=>{va.solid(t,e,n),t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/4).attr("fill",i)}},dE={checkerboard:4/3,rings:7/6,bricks:5/3,plus:4/3,wideStripes:4/3},$h=["diagonal","dots","horizontal","crosshatch","vertical","zigzag","checkerboard","solid","rings","bricks","inverseDots","grid","wideStripes","plus","antidiagonal"];function zh(t,e,n){return t==null?e.map(()=>n):typeof t=="string"?e.map(()=>t):Array.isArray(t)?e.map((r,i)=>t[i%t.length]):e.map(r=>t[r]??n)}function Xi(t,e,n,r,i){if(!e)return{fill:r,stroke:r,outline:null,align:()=>{}};let{patterns:o=null,color:a="black",background:s=null,size:c=6,strokeWidth:l=1}=e,u=n.filter(b=>b!==null),h=zh(o,u,"none");o==null&&(u.forEach((b,v)=>{h[v]=$h[v%$h.length]}),u.length>$h.length&&qe("Warning: More unique groups than patterns. Some patterns will repeat."));let f=zh(s,u,null),d=zh(a,u,"black"),m=t.attr("id")||"geneviewer",p=t.append("defs"),g=new Map,y=new Map;u.forEach((b,v)=>{let _=h[v];va[_]||(qe(`Warning: The pattern "${_}" does not exist. Using "none".`),_="none"),b==="No Hit"&&o==null&&(_="none");let S=`${m}-${i}-pattern-${v}`,k=c*(dE[_]??1),C=f[v]??r(b),F=p.append("pattern").attr("id",S).attr("patternUnits","userSpaceOnUse").attr("width",k).attr("height",k);F.append("rect").attr("width",k).attr("height",k).attr("fill",C),va[_](F,k,d[v],l,C),g.set(b,`url(#${S})`),y.set(b,F)});let w=new Map(u.map((b,v)=>[b,d[v]]));return{fill:b=>g.get(b)??r(b),stroke:b=>s==null?r(b):w.get(b)??d[0],outline:typeof a=="string"?a:"black",align:(b,v,_)=>y.get(b)?.attr("x",v).attr("y",_)}}function pE(t,e){let n=t.filter((u,h)=>{let f=t[(h-1+t.length)%t.length];return Math.abs(u[0]-f[0])>1e-6||Math.abs(u[1]-f[1])>1e-6});if(!(e>0)||n.length<3)return`M${n.map(u=>`${u[0]} ${u[1]}`).join(" L")} Z`;let r=n.length,i=(u,h)=>Math.hypot(h[0]-u[0],h[1]-u[1]),o=(u,h,f)=>{let d=i(u,h);return[u[0]+(h[0]-u[0])*f/d,u[1]+(h[1]-u[1])*f/d]},a=(u,h,f)=>(h[0]-u[0])*(f[1]-h[1])-(h[1]-u[1])*(f[0]-h[0]),s=Math.sign(n.reduce((u,h,f)=>{let d=n[(f+1)%r];return u+h[0]*d[1]-d[0]*h[1]},0)),c=n.map((u,h)=>{let f=n[(h-1+r)%r],d=n[(h+1)%r],p=Math.sign(a(f,u,d))===s?Math.min(e,i(f,u)/2,i(u,d)/2):0;return{p:u,start:o(u,f,p),end:o(u,d,p)}}),l=`M${c[0].end[0]} ${c[0].end[1]}`;for(let u=1;u<=r;u++){let{p:h,start:f,end:d}=c[u%r];l+=` L${f[0]} ${f[1]} Q${h[0]} ${h[1]} ${d[0]} ${d[1]}`}return l+" Z"}function Xy(t,e,n,r={}){let i={small:{scale:.75},medium:{scale:1},large:{scale:1.25}},o={arrow:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:15},boxarrow:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:30},box:{arrowheadWidth:0,arrowheadHeight:30,markerHeight:30},rbox:{arrowheadWidth:0,arrowheadHeight:30,markerHeight:30,cornerRadius:5},cbox:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:30},intron:{arrowheadWidth:0,arrowheadHeight:0,markerHeight:20}},a=i[n]||i.medium,s=o[t]||{},c=ya(s,r),{arrowheadWidth:l,arrowheadHeight:u,markerHeight:h,cornerRadius:f}=c,d=l*a.scale,m=u*a.scale,p=h*a.scale,g=e-d;g=Math.max(0,g);let y=(m-p)/2,w=y+p,b,v=Math.max(p,m),_;switch(t){case"arrow":case"boxarrow":case"box":b=pE([[0,y],[0,w],[g,w],[g,m],[e,m/2],[g,0],[g,y]],f||0);break;case"rbox":_=Math.min(f,p/2,e/2),v=p,b=`M ${_},0
|
|
5
|
+
`)}function l(h){return h.map(u).join(t)}function u(h){return h==null?"":h instanceof Date?s8(h):e.test(h+="")?'"'+h.replace(/"/g,'""')+'"':h}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:l,formatValue:u}}var Br=Fo(","),Ru=Br.parse,l8=Br.parseRows,c8=Br.format,u8=Br.formatBody,f8=Br.formatRows,h8=Br.formatRow,d8=Br.formatValue,Dr=Fo(" "),Pu=Dr.parse,p8=Dr.parseRows,g8=Dr.format,m8=Dr.formatBody,y8=Dr.formatRows,b8=Dr.formatRow,v8=Dr.formatValue;function w8(t){for(var e in t){var n=t[e].trim(),r,i;if(!n)n=null;else if(n==="true")n=!0;else if(n==="false")n=!1;else if(n==="NaN")n=NaN;else if(!isNaN(r=+n))n=r;else if(i=n.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/))x8&&i[4]&&!i[7]&&(n=n.replace(/-/g,"/").replace(/T/," ")),n=new Date(n);else continue;t[e]=n}return t}var x8=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function _8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function S8(t,e){return fetch(t,e).then(_8)}function k8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function A8(t,e){return fetch(t,e).then(k8)}function E8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Ds(t,e){return fetch(t,e).then(E8)}function Fp(t){return function(e,n,r){return arguments.length===2&&typeof n=="function"&&(r=n,n=void 0),Ds(e,n).then(function(i){return t(i,r)})}}function M8(t,e,n,r){arguments.length===3&&typeof n=="function"&&(r=n,n=void 0);var i=Fo(t);return Ds(e,n).then(function(o){return i.parse(o,r)})}var C8=Fp(Ru),F8=Fp(Pu);function T8(t,e){return new Promise(function(n,r){var i=new Image;for(var o in e)i[o]=e[o];i.onerror=r,i.onload=function(){n(i)},i.src=t})}function O8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);if(!(t.status===204||t.status===205))return t.json()}function B8(t,e){return fetch(t,e).then(O8)}function Iu(t){return(e,n)=>Ds(e,n).then(r=>new DOMParser().parseFromString(r,t))}var D8=Iu("application/xml"),$8=Iu("text/html"),z8=Iu("image/svg+xml");function N8(t){let e=+this._x.call(null,t),n=+this._y.call(null,t);return Op(this.cover(e,n),e,n,t)}function Op(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,o=t._root,a={data:r},s=t._x0,c=t._y0,l=t._x1,u=t._y1,h,f,d,m,p,g,y,w;if(!o)return t._root=a,t;for(;o.length;)if((p=e>=(h=(s+l)/2))?s=h:l=h,(g=n>=(f=(c+u)/2))?c=f:u=f,i=o,!(o=o[y=g<<1|p]))return i[y]=a,t;if(d=+t._x.call(null,o.data),m=+t._y.call(null,o.data),e===d&&n===m)return a.next=o,i?i[y]=a:t._root=a,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(p=e>=(h=(s+l)/2))?s=h:l=h,(g=n>=(f=(c+u)/2))?c=f:u=f;while((y=g<<1|p)===(w=(m>=f)<<1|d>=h));return i[w]=o,i[y]=a,t}function R8(t){Array.isArray(t)||(t=Array.from(t));let e=t.length,n=new Float64Array(e),r=new Float64Array(e),i=1/0,o=i,a=-i,s=a;for(let c=0,l,u,h;c<e;++c){if(isNaN(u=+this._x.call(null,l=t[c]))||isNaN(h=+this._y.call(null,l))){n[c]=NaN;continue}n[c]=u,r[c]=h,u<i&&(i=u),u>a&&(a=u),h<o&&(o=h),h>s&&(s=h)}if(i>a||o>s)return this;this.cover(i,o).cover(a,s);for(let c=0;c<e;++c)Op(this,n[c],r[c],t[c]);return this}function P8(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,o=(r=Math.floor(e))+1;else{for(var a=i-n||1,s=this._root,c,l;n>t||t>=i||r>e||e>=o;)switch(l=(e<r)<<1|t<n,c=new Array(4),c[l]=s,s=c,a*=2,l){case 0:i=n+a,o=r+a;break;case 1:n=i-a,o=r+a;break;case 2:i=n+a,r=o-a;break;case 3:n=i-a,r=o-a;break}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this}function I8(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function L8(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function ve(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function q8(t,e,n){var r,i=this._x0,o=this._y0,a,s,c,l,u=this._x1,h=this._y1,f=[],d=this._root,m,p;for(d&&f.push(new ve(d,i,o,u,h)),n==null?n=1/0:(i=t-n,o=e-n,u=t+n,h=e+n,n*=n);m=f.pop();)if(!(!(d=m.node)||(a=m.x0)>u||(s=m.y0)>h||(c=m.x1)<i||(l=m.y1)<o))if(d.length){var g=(a+c)/2,y=(s+l)/2;f.push(new ve(d[3],g,y,c,l),new ve(d[2],a,y,g,l),new ve(d[1],g,s,c,y),new ve(d[0],a,s,g,y)),(p=(e>=y)<<1|t>=g)&&(m=f[f.length-1],f[f.length-1]=f[f.length-1-p],f[f.length-1-p]=m)}else{var w=t-+this._x.call(null,d.data),b=e-+this._y.call(null,d.data),v=w*w+b*b;if(v<n){var _=Math.sqrt(n=v);i=t-_,o=e-_,u=t+_,h=e+_,r=d.data}}return r}function Y8(t){if(isNaN(u=+this._x.call(null,t))||isNaN(h=+this._y.call(null,t)))return this;var e,n=this._root,r,i,o,a=this._x0,s=this._y0,c=this._x1,l=this._y1,u,h,f,d,m,p,g,y;if(!n)return this;if(n.length)for(;;){if((m=u>=(f=(a+c)/2))?a=f:c=f,(p=h>=(d=(s+l)/2))?s=d:l=d,e=n,!(n=n[g=p<<1|m]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,y=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(o=n.next)&&delete n.next,i?(o?i.next=o:delete i.next,this):e?(o?e[g]=o:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[y]=n:this._root=n),this):(this._root=o,this)}function U8(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function H8(){return this._root}function W8(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function j8(t){var e=[],n,r=this._root,i,o,a,s,c;for(r&&e.push(new ve(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,o=n.x0,a=n.y0,s=n.x1,c=n.y1)&&r.length){var l=(o+s)/2,u=(a+c)/2;(i=r[3])&&e.push(new ve(i,l,u,s,c)),(i=r[2])&&e.push(new ve(i,o,u,l,c)),(i=r[1])&&e.push(new ve(i,l,a,s,u)),(i=r[0])&&e.push(new ve(i,o,a,l,u))}return this}function X8(t){var e=[],n=[],r;for(this._root&&e.push(new ve(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var o,a=r.x0,s=r.y0,c=r.x1,l=r.y1,u=(a+c)/2,h=(s+l)/2;(o=i[0])&&e.push(new ve(o,a,s,u,h)),(o=i[1])&&e.push(new ve(o,u,s,c,h)),(o=i[2])&&e.push(new ve(o,a,h,u,l)),(o=i[3])&&e.push(new ve(o,u,h,c,l))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function G8(t){return t[0]}function V8(t){return arguments.length?(this._x=t,this):this._x}function Z8(t){return t[1]}function K8(t){return arguments.length?(this._y=t,this):this._y}function To(t,e,n){var r=new Lu(e??G8,n??Z8,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function Lu(t,e,n,r,i,o){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Tp(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var we=To.prototype=Lu.prototype;we.copy=function(){var t=new Lu(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Tp(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Tp(r));return t};we.add=N8;we.addAll=R8;we.cover=P8;we.data=I8;we.extent=L8;we.find=q8;we.remove=Y8;we.removeAll=U8;we.root=H8;we.size=W8;we.visit=j8;we.visitAfter=X8;we.x=V8;we.y=K8;function Q8(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var o,a=n.length,s,c=0,l=0;for(o=0;o<a;++o)s=n[o],c+=s.x,l+=s.y;for(c=(c/a-t)*r,l=(l/a-e)*r,o=0;o<a;++o)s=n[o],s.x-=c,s.y-=l}return i.initialize=function(o){n=o},i.x=function(o){return arguments.length?(t=+o,i):t},i.y=function(o){return arguments.length?(e=+o,i):e},i.strength=function(o){return arguments.length?(r=+o,i):r},i}function Gt(t){return function(){return t}}function ur(t){return(t()-.5)*1e-6}function J8(t){return t.x+t.vx}function t4(t){return t.y+t.vy}function e4(t){var e,n,r,i=1,o=1;typeof t!="function"&&(t=Gt(t==null?1:+t));function a(){for(var l,u=e.length,h,f,d,m,p,g,y=0;y<o;++y)for(h=To(e,J8,t4).visitAfter(s),l=0;l<u;++l)f=e[l],p=n[f.index],g=p*p,d=f.x+f.vx,m=f.y+f.vy,h.visit(w);function w(b,v,_,S,k){var C=b.data,F=b.r,A=p+F;if(C){if(C.index>f.index){var E=d-C.x-C.vx,D=m-C.y-C.vy,z=E*E+D*D;z<A*A&&(E===0&&(E=ur(r),z+=E*E),D===0&&(D=ur(r),z+=D*D),z=(A-(z=Math.sqrt(z)))/z*i,f.vx+=(E*=z)*(A=(F*=F)/(g+F)),f.vy+=(D*=z)*A,C.vx-=E*(A=1-A),C.vy-=D*A)}return}return v>d+A||S<d-A||_>m+A||k<m-A}}function s(l){if(l.data)return l.r=n[l.data.index];for(var u=l.r=0;u<4;++u)l[u]&&l[u].r>l.r&&(l.r=l[u].r)}function c(){if(e){var l,u=e.length,h;for(n=new Array(u),l=0;l<u;++l)h=e[l],n[h.index]=+t(h,l,e)}}return a.initialize=function(l,u){e=l,r=u,c()},a.iterations=function(l){return arguments.length?(o=+l,a):o},a.strength=function(l){return arguments.length?(i=+l,a):i},a.radius=function(l){return arguments.length?(t=typeof l=="function"?l:Gt(+l),c(),a):t},a}function n4(t){return t.index}function Bp(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function r4(t){var e=n4,n=h,r,i=Gt(30),o,a,s,c,l,u=1;t==null&&(t=[]);function h(g){return 1/Math.min(s[g.source.index],s[g.target.index])}function f(g){for(var y=0,w=t.length;y<u;++y)for(var b=0,v,_,S,k,C,F,A;b<w;++b)v=t[b],_=v.source,S=v.target,k=S.x+S.vx-_.x-_.vx||ur(l),C=S.y+S.vy-_.y-_.vy||ur(l),F=Math.sqrt(k*k+C*C),F=(F-o[b])/F*g*r[b],k*=F,C*=F,S.vx-=k*(A=c[b]),S.vy-=C*A,_.vx+=k*(A=1-A),_.vy+=C*A}function d(){if(a){var g,y=a.length,w=t.length,b=new Map(a.map((_,S)=>[e(_,S,a),_])),v;for(g=0,s=new Array(y);g<w;++g)v=t[g],v.index=g,typeof v.source!="object"&&(v.source=Bp(b,v.source)),typeof v.target!="object"&&(v.target=Bp(b,v.target)),s[v.source.index]=(s[v.source.index]||0)+1,s[v.target.index]=(s[v.target.index]||0)+1;for(g=0,c=new Array(w);g<w;++g)v=t[g],c[g]=s[v.source.index]/(s[v.source.index]+s[v.target.index]);r=new Array(w),m(),o=new Array(w),p()}}function m(){if(a)for(var g=0,y=t.length;g<y;++g)r[g]=+n(t[g],g,t)}function p(){if(a)for(var g=0,y=t.length;g<y;++g)o[g]=+i(t[g],g,t)}return f.initialize=function(g,y){a=g,l=y,d()},f.links=function(g){return arguments.length?(t=g,d(),f):t},f.id=function(g){return arguments.length?(e=g,f):e},f.iterations=function(g){return arguments.length?(u=+g,f):u},f.strength=function(g){return arguments.length?(n=typeof g=="function"?g:Gt(+g),m(),f):n},f.distance=function(g){return arguments.length?(i=typeof g=="function"?g:Gt(+g),p(),f):i},f}var i4=1664525,o4=1013904223,Dp=4294967296;function a4(){let t=1;return()=>(t=(i4*t+o4)%Dp)/Dp}function s4(t){return t.x}function l4(t){return t.y}var c4=10,u4=Math.PI*(3-Math.sqrt(5));function f4(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,s=new Map,c=vi(h),l=Ye("tick","end"),u=a4();t==null&&(t=[]);function h(){f(),l.call("tick",e),n<r&&(c.stop(),l.call("end",e))}function f(p){var g,y=t.length,w;p===void 0&&(p=1);for(var b=0;b<p;++b)for(n+=(o-n)*i,s.forEach(function(v){v(n)}),g=0;g<y;++g)w=t[g],w.fx==null?w.x+=w.vx*=a:(w.x=w.fx,w.vx=0),w.fy==null?w.y+=w.vy*=a:(w.y=w.fy,w.vy=0);return e}function d(){for(var p=0,g=t.length,y;p<g;++p){if(y=t[p],y.index=p,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var w=c4*Math.sqrt(.5+p),b=p*u4;y.x=w*Math.cos(b),y.y=w*Math.sin(b)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function m(p){return p.initialize&&p.initialize(t,u),p}return d(),e={tick:f,restart:function(){return c.restart(h),e},stop:function(){return c.stop(),e},nodes:function(p){return arguments.length?(t=p,d(),s.forEach(m),e):t},alpha:function(p){return arguments.length?(n=+p,e):n},alphaMin:function(p){return arguments.length?(r=+p,e):r},alphaDecay:function(p){return arguments.length?(i=+p,e):+i},alphaTarget:function(p){return arguments.length?(o=+p,e):o},velocityDecay:function(p){return arguments.length?(a=1-p,e):1-a},randomSource:function(p){return arguments.length?(u=p,s.forEach(m),e):u},force:function(p,g){return arguments.length>1?(g==null?s.delete(p):s.set(p,m(g)),e):s.get(p)},find:function(p,g,y){var w=0,b=t.length,v,_,S,k,C;for(y==null?y=1/0:y*=y,w=0;w<b;++w)k=t[w],v=p-k.x,_=g-k.y,S=v*v+_*_,S<y&&(C=k,y=S);return C},on:function(p,g){return arguments.length>1?(l.on(p,g),e):l.on(p)}}}function h4(){var t,e,n,r,i=Gt(-30),o,a=1,s=1/0,c=.81;function l(d){var m,p=t.length,g=To(t,s4,l4).visitAfter(h);for(r=d,m=0;m<p;++m)e=t[m],g.visit(f)}function u(){if(t){var d,m=t.length,p;for(o=new Array(m),d=0;d<m;++d)p=t[d],o[p.index]=+i(p,d,t)}}function h(d){var m=0,p,g,y=0,w,b,v;if(d.length){for(w=b=v=0;v<4;++v)(p=d[v])&&(g=Math.abs(p.value))&&(m+=p.value,y+=g,w+=g*p.x,b+=g*p.y);d.x=w/y,d.y=b/y}else{p=d,p.x=p.data.x,p.y=p.data.y;do m+=o[p.data.index];while(p=p.next)}d.value=m}function f(d,m,p,g){if(!d.value)return!0;var y=d.x-e.x,w=d.y-e.y,b=g-m,v=y*y+w*w;if(b*b/c<v)return v<s&&(y===0&&(y=ur(n),v+=y*y),w===0&&(w=ur(n),v+=w*w),v<a&&(v=Math.sqrt(a*v)),e.vx+=y*d.value*r/v,e.vy+=w*d.value*r/v),!0;if(d.length||v>=s)return;(d.data!==e||d.next)&&(y===0&&(y=ur(n),v+=y*y),w===0&&(w=ur(n),v+=w*w),v<a&&(v=Math.sqrt(a*v)));do d.data!==e&&(b=o[d.data.index]*r/v,e.vx+=y*b,e.vy+=w*b);while(d=d.next)}return l.initialize=function(d,m){t=d,n=m,u()},l.strength=function(d){return arguments.length?(i=typeof d=="function"?d:Gt(+d),u(),l):i},l.distanceMin=function(d){return arguments.length?(a=d*d,l):Math.sqrt(a)},l.distanceMax=function(d){return arguments.length?(s=d*d,l):Math.sqrt(s)},l.theta=function(d){return arguments.length?(c=d*d,l):Math.sqrt(c)},l}function d4(t,e,n){var r,i=Gt(.1),o,a;typeof t!="function"&&(t=Gt(+t)),e==null&&(e=0),n==null&&(n=0);function s(l){for(var u=0,h=r.length;u<h;++u){var f=r[u],d=f.x-e||1e-6,m=f.y-n||1e-6,p=Math.sqrt(d*d+m*m),g=(a[u]-p)*o[u]*l/p;f.vx+=d*g,f.vy+=m*g}}function c(){if(r){var l,u=r.length;for(o=new Array(u),a=new Array(u),l=0;l<u;++l)a[l]=+t(r[l],l,r),o[l]=isNaN(a[l])?0:+i(r[l],l,r)}}return s.initialize=function(l){r=l,c()},s.strength=function(l){return arguments.length?(i=typeof l=="function"?l:Gt(+l),c(),s):i},s.radius=function(l){return arguments.length?(t=typeof l=="function"?l:Gt(+l),c(),s):t},s.x=function(l){return arguments.length?(e=+l,s):e},s.y=function(l){return arguments.length?(n=+l,s):n},s}function p4(t){var e=Gt(.1),n,r,i;typeof t!="function"&&(t=Gt(t==null?0:+t));function o(s){for(var c=0,l=n.length,u;c<l;++c)u=n[c],u.vx+=(i[c]-u.x)*r[c]*s}function a(){if(n){var s,c=n.length;for(r=new Array(c),i=new Array(c),s=0;s<c;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:Gt(+s),a(),o):e},o.x=function(s){return arguments.length?(t=typeof s=="function"?s:Gt(+s),a(),o):t},o}function g4(t){var e=Gt(.1),n,r,i;typeof t!="function"&&(t=Gt(t==null?0:+t));function o(s){for(var c=0,l=n.length,u;c<l;++c)u=n[c],u.vy+=(i[c]-u.y)*r[c]*s}function a(){if(n){var s,c=n.length;for(r=new Array(c),i=new Array(c),s=0;s<c;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:Gt(+s),a(),o):e},o.y=function(s){return arguments.length?(t=typeof s=="function"?s:Gt(+s),a(),o):t},o}function m4(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function zs(t,e){if(!isFinite(t)||t===0)return null;var n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Ci(t){return t=zs(Math.abs(t)),t?t[1]:NaN}function y4(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[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=t[a=(a+1)%t.length];return o.reverse().join(e)}}function b4(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var v4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function $r(t){if(!(e=v4.exec(t)))throw new Error("invalid format: "+t);var e;return new Rs({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}$r.prototype=Rs.prototype;function Rs(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Rs.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 w4(t){t:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break t;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var Ns;function x4(t,e){var n=zs(t,e);if(!n)return Ns=void 0,t.toPrecision(e);var r=n[0],i=n[1],o=i-(Ns=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")+zs(t,Math.max(0,e+o-1))[0]}function $p(t,e){var n=zs(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}var zp={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:m4,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>$p(t*100,e),r:$p,s:x4,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Np(t){return t}var Rp=Array.prototype.map,Pp=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Ip(t){var e=t.grouping===void 0||t.thousands===void 0?Np:y4(Rp.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Np:b4(Rp.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function l(h,f){h=$r(h);var d=h.fill,m=h.align,p=h.sign,g=h.symbol,y=h.zero,w=h.width,b=h.comma,v=h.precision,_=h.trim,S=h.type;S==="n"?(b=!0,S="g"):zp[S]||(v===void 0&&(v=12),_=!0,S="g"),(y||d==="0"&&m==="=")&&(y=!0,d="0",m="=");var k=(f&&f.prefix!==void 0?f.prefix:"")+(g==="$"?n:g==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():""),C=(g==="$"?r:/[%p]/.test(S)?a:"")+(f&&f.suffix!==void 0?f.suffix:""),F=zp[S],A=/[defgprs%]/.test(S);v=v===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v));function E(D){var z=k,M=C,T,B,N;if(S==="c")M=F(D)+M,D="";else{D=+D;var L=D<0||1/D<0;if(D=isNaN(D)?c:F(Math.abs(D),v),_&&(D=w4(D)),L&&+D==0&&p!=="+"&&(L=!1),z=(L?p==="("?p:s:p==="-"||p==="("?"":p)+z,M=(S==="s"&&!isNaN(D)&&Ns!==void 0?Pp[8+Ns/3]:"")+M+(L&&p==="("?")":""),A){for(T=-1,B=D.length;++T<B;)if(N=D.charCodeAt(T),48>N||N>57){M=(N===46?i+D.slice(T+1):D.slice(T))+M,D=D.slice(0,T);break}}}b&&!y&&(D=e(D,1/0));var q=z.length+D.length+M.length,U=q<w?new Array(w-q+1).join(d):"";switch(b&&y&&(D=e(U+D,U.length?w-M.length:1/0),U=""),m){case"<":D=z+D+M+U;break;case"=":D=z+U+D+M;break;case"^":D=U.slice(0,q=U.length>>1)+z+D+M+U.slice(q);break;default:D=U+z+D+M;break}return o(D)}return E.toString=function(){return h+""},E}function u(h,f){var d=Math.max(-8,Math.min(8,Math.floor(Ci(f)/3)))*3,m=Math.pow(10,-d),p=l((h=$r(h),h.type="f",h),{suffix:Pp[8+d/3]});return function(g){return p(m*g)}}return{format:l,formatPrefix:u}}var $s,Oo,Ps;Lp({thousands:",",grouping:[3],currency:["$",""]});function Lp(t){return $s=Ip(t),Oo=$s.format,Ps=$s.formatPrefix,$s}function qu(t){return Math.max(0,-Ci(Math.abs(t)))}function Yu(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ci(e)/3)))*3-Ci(Math.abs(t)))}function Uu(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Ci(e)-Ci(t))+1}var lt=1e-6,Uo=1e-12,mt=Math.PI,qt=mt/2,Gs=mt/4,ke=mt*2,At=180/mt,ct=mt/180,bt=Math.abs,zi=Math.atan,Ae=Math.atan2,it=Math.cos,Is=Math.ceil,mg=Math.exp,Vu=Math.hypot,Vs=Math.log,Hu=Math.pow,et=Math.sin,He=Math.sign||function(t){return t>0?1:t<0?-1:0},Jt=Math.sqrt,wf=Math.tan;function yg(t){return t>1?0:t<-1?mt:Math.acos(t)}function Ee(t){return t>1?qt:t<-1?-qt:Math.asin(t)}function qp(t){return(t=et(t/2))*t}function zt(){}function Zs(t,e){t&&Up.hasOwnProperty(t.type)&&Up[t.type](t,e)}var Yp={Feature:function(t,e){Zs(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)Zs(n[r].geometry,e)}},Up={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){Zu(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Zu(n[r],e,0)},Polygon:function(t,e){Hp(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Hp(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)Zs(n[r],e)}};function Zu(t,e,n){var r=-1,i=t.length-n,o;for(e.lineStart();++r<i;)o=t[r],e.point(o[0],o[1],o[2]);e.lineEnd()}function Hp(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)Zu(t[n],e,1);e.polygonEnd()}function cn(t,e){t&&Yp.hasOwnProperty(t.type)?Yp[t.type](t,e):Zs(t,e)}var Ks=new It,Qs=new It,bg,vg,Ku,Qu,Ju,_n={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){Ks=new It,_n.lineStart=_4,_n.lineEnd=S4},polygonEnd:function(){var t=+Ks;Qs.add(t<0?ke+t:t),this.lineStart=this.lineEnd=this.point=zt},sphere:function(){Qs.add(ke)}};function _4(){_n.point=k4}function S4(){wg(bg,vg)}function k4(t,e){_n.point=wg,bg=t,vg=e,t*=ct,e*=ct,Ku=t,Qu=it(e=e/2+Gs),Ju=et(e)}function wg(t,e){t*=ct,e*=ct,e=e/2+Gs;var n=t-Ku,r=n>=0?1:-1,i=r*n,o=it(e),a=et(e),s=Ju*a,c=Qu*o+s*it(i),l=s*r*et(i);Ks.add(Ae(l,c)),Ku=t,Qu=o,Ju=a}function A4(t){return Qs=new It,cn(t,_n),Qs*2}function Js(t){return[Ae(t[1],t[0]),Ee(t[2])]}function Nr(t){var e=t[0],n=t[1],r=it(n);return[r*it(e),r*et(e),et(n)]}function Ls(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Bi(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Wu(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function qs(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function tl(t){var e=Jt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var $t,Oe,Lt,Ie,zr,xg,_g,Oi,Po,fr,qn,In={point:tf,lineStart:Wp,lineEnd:jp,polygonStart:function(){In.point=kg,In.lineStart=E4,In.lineEnd=M4,Po=new It,_n.polygonStart()},polygonEnd:function(){_n.polygonEnd(),In.point=tf,In.lineStart=Wp,In.lineEnd=jp,Ks<0?($t=-(Lt=180),Oe=-(Ie=90)):Po>lt?Ie=90:Po<-lt&&(Oe=-90),qn[0]=$t,qn[1]=Lt},sphere:function(){$t=-(Lt=180),Oe=-(Ie=90)}};function tf(t,e){fr.push(qn=[$t=t,Lt=t]),e<Oe&&(Oe=e),e>Ie&&(Ie=e)}function Sg(t,e){var n=Nr([t*ct,e*ct]);if(Oi){var r=Bi(Oi,n),i=[r[1],-r[0],0],o=Bi(i,r);tl(o),o=Js(o);var a=t-zr,s=a>0?1:-1,c=o[0]*At*s,l,u=bt(a)>180;u^(s*zr<c&&c<s*t)?(l=o[1]*At,l>Ie&&(Ie=l)):(c=(c+360)%360-180,u^(s*zr<c&&c<s*t)?(l=-o[1]*At,l<Oe&&(Oe=l)):(e<Oe&&(Oe=e),e>Ie&&(Ie=e))),u?t<zr?Pe($t,t)>Pe($t,Lt)&&(Lt=t):Pe(t,Lt)>Pe($t,Lt)&&($t=t):Lt>=$t?(t<$t&&($t=t),t>Lt&&(Lt=t)):t>zr?Pe($t,t)>Pe($t,Lt)&&(Lt=t):Pe(t,Lt)>Pe($t,Lt)&&($t=t)}else fr.push(qn=[$t=t,Lt=t]);e<Oe&&(Oe=e),e>Ie&&(Ie=e),Oi=n,zr=t}function Wp(){In.point=Sg}function jp(){qn[0]=$t,qn[1]=Lt,In.point=tf,Oi=null}function kg(t,e){if(Oi){var n=t-zr;Po.add(bt(n)>180?n+(n>0?360:-360):n)}else xg=t,_g=e;_n.point(t,e),Sg(t,e)}function E4(){_n.lineStart()}function M4(){kg(xg,_g),_n.lineEnd(),bt(Po)>lt&&($t=-(Lt=180)),qn[0]=$t,qn[1]=Lt,Oi=null}function Pe(t,e){return(e-=t)<0?e+360:e}function C4(t,e){return t[0]-e[0]}function Xp(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}function F4(t){var e,n,r,i,o,a,s;if(Ie=Lt=-($t=Oe=1/0),fr=[],cn(t,In),n=fr.length){for(fr.sort(C4),e=1,r=fr[0],o=[r];e<n;++e)i=fr[e],Xp(r,i[0])||Xp(r,i[1])?(Pe(r[0],i[1])>Pe(r[0],r[1])&&(r[1]=i[1]),Pe(i[0],r[1])>Pe(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=o.length-1,e=0,r=o[n];e<=n;r=i,++e)i=o[e],(s=Pe(r[1],i[0]))>a&&(a=s,$t=i[0],Lt=r[1])}return fr=qn=null,$t===1/0||Oe===1/0?[[NaN,NaN],[NaN,NaN]]:[[$t,Oe],[Lt,Ie]]}var Bo,el,nl,rl,il,ol,al,sl,ef,nf,rf,Ag,Eg,xe,_e,Se,un={sphere:zt,point:xf,lineStart:Gp,lineEnd:Vp,polygonStart:function(){un.lineStart=B4,un.lineEnd=D4},polygonEnd:function(){un.lineStart=Gp,un.lineEnd=Vp}};function xf(t,e){t*=ct,e*=ct;var n=it(e);Go(n*it(t),n*et(t),et(e))}function Go(t,e,n){++Bo,nl+=(t-nl)/Bo,rl+=(e-rl)/Bo,il+=(n-il)/Bo}function Gp(){un.point=T4}function T4(t,e){t*=ct,e*=ct;var n=it(e);xe=n*it(t),_e=n*et(t),Se=et(e),un.point=O4,Go(xe,_e,Se)}function O4(t,e){t*=ct,e*=ct;var n=it(e),r=n*it(t),i=n*et(t),o=et(e),a=Ae(Jt((a=_e*o-Se*i)*a+(a=Se*r-xe*o)*a+(a=xe*i-_e*r)*a),xe*r+_e*i+Se*o);el+=a,ol+=a*(xe+(xe=r)),al+=a*(_e+(_e=i)),sl+=a*(Se+(Se=o)),Go(xe,_e,Se)}function Vp(){un.point=xf}function B4(){un.point=$4}function D4(){Mg(Ag,Eg),un.point=xf}function $4(t,e){Ag=t,Eg=e,t*=ct,e*=ct,un.point=Mg;var n=it(e);xe=n*it(t),_e=n*et(t),Se=et(e),Go(xe,_e,Se)}function Mg(t,e){t*=ct,e*=ct;var n=it(e),r=n*it(t),i=n*et(t),o=et(e),a=_e*o-Se*i,s=Se*r-xe*o,c=xe*i-_e*r,l=Vu(a,s,c),u=Ee(l),h=l&&-u/l;ef.add(h*a),nf.add(h*s),rf.add(h*c),el+=u,ol+=u*(xe+(xe=r)),al+=u*(_e+(_e=i)),sl+=u*(Se+(Se=o)),Go(xe,_e,Se)}function z4(t){Bo=el=nl=rl=il=ol=al=sl=0,ef=new It,nf=new It,rf=new It,cn(t,un);var e=+ef,n=+nf,r=+rf,i=Vu(e,n,r);return i<Uo&&(e=ol,n=al,r=sl,el<lt&&(e=nl,n=rl,r=il),i=Vu(e,n,r),i<Uo)?[NaN,NaN]:[Ae(n,e)*At,Ee(r/i)*At]}function Fi(t){return function(){return t}}function of(t,e){function n(r,i){return r=t(r,i),e(r[0],r[1])}return t.invert&&e.invert&&(n.invert=function(r,i){return r=e.invert(r,i),r&&t.invert(r[0],r[1])}),n}function af(t,e){return bt(t)>mt&&(t-=Math.round(t/ke)*ke),[t,e]}af.invert=af;function _f(t,e,n){return(t%=ke)?e||n?of(Kp(t),Qp(e,n)):Kp(t):e||n?Qp(e,n):af}function Zp(t){return function(e,n){return e+=t,bt(e)>mt&&(e-=Math.round(e/ke)*ke),[e,n]}}function Kp(t){var e=Zp(t);return e.invert=Zp(-t),e}function Qp(t,e){var n=it(t),r=et(t),i=it(e),o=et(e);function a(s,c){var l=it(c),u=it(s)*l,h=et(s)*l,f=et(c),d=f*n+u*r;return[Ae(h*i-d*o,u*n-f*r),Ee(d*i+h*o)]}return a.invert=function(s,c){var l=it(c),u=it(s)*l,h=et(s)*l,f=et(c),d=f*i-h*o;return[Ae(h*i+f*o,u*n+d*r),Ee(d*n-u*r)]},a}function Cg(t){t=_f(t[0]*ct,t[1]*ct,t.length>2?t[2]*ct:0);function e(n){return n=t(n[0]*ct,n[1]*ct),n[0]*=At,n[1]*=At,n}return e.invert=function(n){return n=t.invert(n[0]*ct,n[1]*ct),n[0]*=At,n[1]*=At,n},e}function Fg(t,e,n,r,i,o){if(n){var a=it(e),s=et(e),c=r*n;i==null?(i=e+r*ke,o=e-c/2):(i=Jp(a,i),o=Jp(a,o),(r>0?i<o:i>o)&&(i+=r*ke));for(var l,u=i;r>0?u>o:u<o;u-=c)l=Js([a,-s*it(u),-s*et(u)]),t.point(l[0],l[1])}}function Jp(t,e){e=Nr(e),e[0]-=t,tl(e);var n=yg(-e[1]);return((-e[2]<0?-n:n)+ke-lt)%ke}function N4(){var t=Fi([0,0]),e=Fi(90),n=Fi(2),r,i,o={point:a};function a(c,l){r.push(c=i(c,l)),c[0]*=At,c[1]*=At}function s(){var c=t.apply(this,arguments),l=e.apply(this,arguments)*ct,u=n.apply(this,arguments)*ct;return r=[],i=_f(-c[0]*ct,-c[1]*ct,0).invert,Fg(o,l,u,1),c={type:"Polygon",coordinates:[r]},r=i=null,c}return s.center=function(c){return arguments.length?(t=typeof c=="function"?c:Fi([+c[0],+c[1]]),s):t},s.radius=function(c){return arguments.length?(e=typeof c=="function"?c:Fi(+c),s):e},s.precision=function(c){return arguments.length?(n=typeof c=="function"?c:Fi(+c),s):n},s}function Tg(){var t=[],e;return{point:function(n,r,i){e.push([n,r,i])},lineStart:function(){t.push(e=[])},lineEnd:zt,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Ws(t,e){return bt(t[0]-e[0])<lt&&bt(t[1]-e[1])<lt}function Ys(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Og(t,e,n,r,i){var o=[],a=[],s,c;if(t.forEach(function(m){if(!((p=m.length-1)<=0)){var p,g=m[0],y=m[p],w;if(Ws(g,y)){if(!g[2]&&!y[2]){for(i.lineStart(),s=0;s<p;++s)i.point((g=m[s])[0],g[1]);i.lineEnd();return}y[0]+=2*lt}o.push(w=new Ys(g,m,null,!0)),a.push(w.o=new Ys(g,null,w,!1)),o.push(w=new Ys(y,m,null,!1)),a.push(w.o=new Ys(y,null,w,!0))}}),!!o.length){for(a.sort(e),tg(o),tg(a),s=0,c=a.length;s<c;++s)a[s].e=n=!n;for(var l=o[0],u,h;;){for(var f=l,d=!0;f.v;)if((f=f.n)===l)return;u=f.z,i.lineStart();do{if(f.v=f.o.v=!0,f.e){if(d)for(s=0,c=u.length;s<c;++s)i.point((h=u[s])[0],h[1]);else r(f.x,f.n.x,1,i);f=f.n}else{if(d)for(u=f.p.z,s=u.length-1;s>=0;--s)i.point((h=u[s])[0],h[1]);else r(f.x,f.p.x,-1,i);f=f.p}f=f.o,u=f.z,d=!d}while(!f.v);i.lineEnd()}}}function tg(t){if(e=t.length){for(var e,n=0,r=t[0],i;++n<e;)r.n=i=t[n],i.p=r,r=i;r.n=i=t[0],i.p=r}}function ju(t){return bt(t[0])<=mt?t[0]:He(t[0])*((bt(t[0])+mt)%ke-mt)}function Bg(t,e){var n=ju(e),r=e[1],i=et(r),o=[et(n),-it(n),0],a=0,s=0,c=new It;i===1?r=qt+lt:i===-1&&(r=-qt-lt);for(var l=0,u=t.length;l<u;++l)if(f=(h=t[l]).length)for(var h,f,d=h[f-1],m=ju(d),p=d[1]/2+Gs,g=et(p),y=it(p),w=0;w<f;++w,m=v,g=S,y=k,d=b){var b=h[w],v=ju(b),_=b[1]/2+Gs,S=et(_),k=it(_),C=v-m,F=C>=0?1:-1,A=F*C,E=A>mt,D=g*S;if(c.add(Ae(D*F*et(A),y*k+D*it(A))),a+=E?C+F*ke:C,E^m>=n^v>=n){var z=Bi(Nr(d),Nr(b));tl(z);var M=Bi(o,z);tl(M);var T=(E^C>=0?-1:1)*Ee(M[2]);(r>T||r===T&&(z[0]||z[1]))&&(s+=E^C>=0?1:-1)}}return(a<-lt||a<lt&&c<-Uo)^s&1}function Dg(t,e,n,r){return function(i){var o=e(i),a=Tg(),s=e(a),c=!1,l,u,h,f={point:d,lineStart:p,lineEnd:g,polygonStart:function(){f.point=y,f.lineStart=w,f.lineEnd=b,u=[],l=[]},polygonEnd:function(){f.point=d,f.lineStart=p,f.lineEnd=g,u=Ka(u);var v=Bg(l,r);u.length?(c||(i.polygonStart(),c=!0),Og(u,P4,v,n,i)):v&&(c||(i.polygonStart(),c=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),c&&(i.polygonEnd(),c=!1),u=l=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(v,_){t(v,_)&&i.point(v,_)}function m(v,_){o.point(v,_)}function p(){f.point=m,o.lineStart()}function g(){f.point=d,o.lineEnd()}function y(v,_){h.push([v,_]),s.point(v,_)}function w(){s.lineStart(),h=[]}function b(){y(h[0][0],h[0][1]),s.lineEnd();var v=s.clean(),_=a.result(),S,k=_.length,C,F,A;if(h.pop(),l.push(h),h=null,!!k){if(v&1){if(F=_[0],(C=F.length-1)>0){for(c||(i.polygonStart(),c=!0),i.lineStart(),S=0;S<C;++S)i.point((A=F[S])[0],A[1]);i.lineEnd()}return}k>1&&v&2&&_.push(_.pop().concat(_.shift())),u.push(_.filter(R4))}}return f}}function R4(t){return t.length>1}function P4(t,e){return((t=t.x)[0]<0?t[1]-qt-lt:qt-t[1])-((e=e.x)[0]<0?e[1]-qt-lt:qt-e[1])}var sf=Dg(function(){return!0},I4,q4,[-mt,-qt]);function I4(t){var e=NaN,n=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(o,a){var s=o>0?mt:-mt,c=bt(o-e);bt(c-mt)<lt?(t.point(e,n=(n+a)/2>0?qt:-qt),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(o,n),i=0):r!==s&&c>=mt&&(bt(e-r)<lt&&(e-=r*lt),bt(o-s)<lt&&(o-=s*lt),n=L4(e,n,o,a),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(s,n),i=0),t.point(e=o,n=a),r=s},lineEnd:function(){t.lineEnd(),e=n=NaN},clean:function(){return 2-i}}}function L4(t,e,n,r){var i,o,a=et(t-n);return bt(a)>lt?zi((et(e)*(o=it(r))*et(n)-et(r)*(i=it(e))*et(t))/(i*o*a)):(e+r)/2}function q4(t,e,n,r){var i;if(t==null)i=n*qt,r.point(-mt,i),r.point(0,i),r.point(mt,i),r.point(mt,0),r.point(mt,-i),r.point(0,-i),r.point(-mt,-i),r.point(-mt,0),r.point(-mt,i);else if(bt(t[0]-e[0])>lt){var o=t[0]<e[0]?mt:-mt;i=n*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(e[0],e[1])}function $g(t){var e=it(t),n=2*ct,r=e>0,i=bt(e)>lt;function o(u,h,f,d){Fg(d,t,n,f,u,h)}function a(u,h){return it(u)*it(h)>e}function s(u){var h,f,d,m,p;return{lineStart:function(){m=d=!1,p=1},point:function(g,y){var w=[g,y],b,v=a(g,y),_=r?v?0:l(g,y):v?l(g+(g<0?mt:-mt),y):0;if(!h&&(m=d=v)&&u.lineStart(),v!==d&&(b=c(h,w),(!b||Ws(h,b)||Ws(w,b))&&(w[2]=1)),v!==d)p=0,v?(u.lineStart(),b=c(w,h),u.point(b[0],b[1])):(b=c(h,w),u.point(b[0],b[1],2),u.lineEnd()),h=b;else if(i&&h&&r^v){var S;!(_&f)&&(S=c(w,h,!0))&&(p=0,r?(u.lineStart(),u.point(S[0][0],S[0][1]),u.point(S[1][0],S[1][1]),u.lineEnd()):(u.point(S[1][0],S[1][1]),u.lineEnd(),u.lineStart(),u.point(S[0][0],S[0][1],3)))}v&&(!h||!Ws(h,w))&&u.point(w[0],w[1]),h=w,d=v,f=_},lineEnd:function(){d&&u.lineEnd(),h=null},clean:function(){return p|(m&&d)<<1}}}function c(u,h,f){var d=Nr(u),m=Nr(h),p=[1,0,0],g=Bi(d,m),y=Ls(g,g),w=g[0],b=y-w*w;if(!b)return!f&&u;var v=e*y/b,_=-e*w/b,S=Bi(p,g),k=qs(p,v),C=qs(g,_);Wu(k,C);var F=S,A=Ls(k,F),E=Ls(F,F),D=A*A-E*(Ls(k,k)-1);if(!(D<0)){var z=Jt(D),M=qs(F,(-A-z)/E);if(Wu(M,k),M=Js(M),!f)return M;var T=u[0],B=h[0],N=u[1],L=h[1],q;B<T&&(q=T,T=B,B=q);var U=B-T,Z=bt(U-mt)<lt,Q=Z||U<lt;if(!Z&&L<N&&(q=N,N=L,L=q),Q?Z?N+L>0^M[1]<(bt(M[0]-T)<lt?N:L):N<=M[1]&&M[1]<=L:U>mt^(T<=M[0]&&M[0]<=B)){var j=qs(F,(-A+z)/E);return Wu(j,k),[M,Js(j)]}}}function l(u,h){var f=r?t:mt-t,d=0;return u<-f?d|=1:u>f&&(d|=2),h<-f?d|=4:h>f&&(d|=8),d}return Dg(a,s,o,r?[0,-t]:[-mt,t-mt])}function Y4(t,e,n,r,i,o){var a=t[0],s=t[1],c=e[0],l=e[1],u=0,h=1,f=c-a,d=l-s,m;if(m=n-a,!(!f&&m>0)){if(m/=f,f<0){if(m<u)return;m<h&&(h=m)}else if(f>0){if(m>h)return;m>u&&(u=m)}if(m=i-a,!(!f&&m<0)){if(m/=f,f<0){if(m>h)return;m>u&&(u=m)}else if(f>0){if(m<u)return;m<h&&(h=m)}if(m=r-s,!(!d&&m>0)){if(m/=d,d<0){if(m<u)return;m<h&&(h=m)}else if(d>0){if(m>h)return;m>u&&(u=m)}if(m=o-s,!(!d&&m<0)){if(m/=d,d<0){if(m>h)return;m>u&&(u=m)}else if(d>0){if(m<u)return;m<h&&(h=m)}return u>0&&(t[0]=a+u*f,t[1]=s+u*d),h<1&&(e[0]=a+h*f,e[1]=s+h*d),!0}}}}}var Do=1e9,Us=-Do;function vl(t,e,n,r){function i(l,u){return t<=l&&l<=n&&e<=u&&u<=r}function o(l,u,h,f){var d=0,m=0;if(l==null||(d=a(l,h))!==(m=a(u,h))||c(l,u)<0^h>0)do f.point(d===0||d===3?t:n,d>1?r:e);while((d=(d+h+4)%4)!==m);else f.point(u[0],u[1])}function a(l,u){return bt(l[0]-t)<lt?u>0?0:3:bt(l[0]-n)<lt?u>0?2:1:bt(l[1]-e)<lt?u>0?1:0:u>0?3:2}function s(l,u){return c(l.x,u.x)}function c(l,u){var h=a(l,1),f=a(u,1);return h!==f?h-f:h===0?u[1]-l[1]:h===1?l[0]-u[0]:h===2?l[1]-u[1]:u[0]-l[0]}return function(l){var u=l,h=Tg(),f,d,m,p,g,y,w,b,v,_,S,k={point:C,lineStart:D,lineEnd:z,polygonStart:A,polygonEnd:E};function C(T,B){i(T,B)&&u.point(T,B)}function F(){for(var T=0,B=0,N=d.length;B<N;++B)for(var L=d[B],q=1,U=L.length,Z=L[0],Q,j,H=Z[0],W=Z[1];q<U;++q)Q=H,j=W,Z=L[q],H=Z[0],W=Z[1],j<=r?W>r&&(H-Q)*(r-j)>(W-j)*(t-Q)&&++T:W<=r&&(H-Q)*(r-j)<(W-j)*(t-Q)&&--T;return T}function A(){u=h,f=[],d=[],S=!0}function E(){var T=F(),B=S&&T,N=(f=Ka(f)).length;(B||N)&&(l.polygonStart(),B&&(l.lineStart(),o(null,null,1,l),l.lineEnd()),N&&Og(f,s,T,o,l),l.polygonEnd()),u=l,f=d=m=null}function D(){k.point=M,d&&d.push(m=[]),_=!0,v=!1,w=b=NaN}function z(){f&&(M(p,g),y&&v&&h.rejoin(),f.push(h.result())),k.point=C,v&&u.lineEnd()}function M(T,B){var N=i(T,B);if(d&&m.push([T,B]),_)p=T,g=B,y=N,_=!1,N&&(u.lineStart(),u.point(T,B));else if(N&&v)u.point(T,B);else{var L=[w=Math.max(Us,Math.min(Do,w)),b=Math.max(Us,Math.min(Do,b))],q=[T=Math.max(Us,Math.min(Do,T)),B=Math.max(Us,Math.min(Do,B))];Y4(L,q,t,e,n,r)?(v||(u.lineStart(),u.point(L[0],L[1])),u.point(q[0],q[1]),N||u.lineEnd(),S=!1):N&&(u.lineStart(),u.point(T,B),S=!1)}w=T,b=B,v=N}return k}}function U4(){var t=0,e=0,n=960,r=500,i,o,a;return a={stream:function(s){return i&&o===s?i:i=vl(t,e,n,r)(o=s)},extent:function(s){return arguments.length?(t=+s[0][0],e=+s[0][1],n=+s[1][0],r=+s[1][1],i=o=null,a):[[t,e],[n,r]]}}}var lf,cf,js,Xs,Di={sphere:zt,point:zt,lineStart:H4,lineEnd:zt,polygonStart:zt,polygonEnd:zt};function H4(){Di.point=j4,Di.lineEnd=W4}function W4(){Di.point=Di.lineEnd=zt}function j4(t,e){t*=ct,e*=ct,cf=t,js=et(e),Xs=it(e),Di.point=X4}function X4(t,e){t*=ct,e*=ct;var n=et(e),r=it(e),i=bt(t-cf),o=it(i),a=et(i),s=r*a,c=Xs*n-js*r*o,l=js*n+Xs*r*o;lf.add(Ae(Jt(s*s+c*c),l)),cf=t,js=n,Xs=r}function zg(t){return lf=new It,cn(t,Di),+lf}var uf=[null,null],G4={type:"LineString",coordinates:uf};function ll(t,e){return uf[0]=t,uf[1]=e,zg(G4)}var eg={Feature:function(t,e){return cl(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)if(cl(n[r].geometry,e))return!0;return!1}},ng={Sphere:function(){return!0},Point:function(t,e){return rg(t.coordinates,e)},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(rg(n[r],e))return!0;return!1},LineString:function(t,e){return ig(t.coordinates,e)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(ig(n[r],e))return!0;return!1},Polygon:function(t,e){return og(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(og(n[r],e))return!0;return!1},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)if(cl(n[r],e))return!0;return!1}};function cl(t,e){return t&&ng.hasOwnProperty(t.type)?ng[t.type](t,e):!1}function rg(t,e){return ll(t,e)===0}function ig(t,e){for(var n,r,i,o=0,a=t.length;o<a;o++){if(r=ll(t[o],e),r===0||o>0&&(i=ll(t[o],t[o-1]),i>0&&n<=i&&r<=i&&(n+r-i)*(1-Math.pow((n-r)/i,2))<Uo*i))return!0;n=r}return!1}function og(t,e){return!!Bg(t.map(V4),Ng(e))}function V4(t){return t=t.map(Ng),t.pop(),t}function Ng(t){return[t[0]*ct,t[1]*ct]}function Z4(t,e){return(t&&eg.hasOwnProperty(t.type)?eg[t.type]:cl)(t,e)}function ag(t,e,n){var r=dn(t,e-lt,n).concat(e);return function(i){return r.map(function(o){return[i,o]})}}function sg(t,e,n){var r=dn(t,e-lt,n).concat(e);return function(i){return r.map(function(o){return[o,i]})}}function Rg(){var t,e,n,r,i,o,a,s,c=10,l=c,u=90,h=360,f,d,m,p,g=2.5;function y(){return{type:"MultiLineString",coordinates:w()}}function w(){return dn(Is(r/u)*u,n,u).map(m).concat(dn(Is(s/h)*h,a,h).map(p)).concat(dn(Is(e/c)*c,t,c).filter(function(b){return bt(b%u)>lt}).map(f)).concat(dn(Is(o/l)*l,i,l).filter(function(b){return bt(b%h)>lt}).map(d))}return y.lines=function(){return w().map(function(b){return{type:"LineString",coordinates:b}})},y.outline=function(){return{type:"Polygon",coordinates:[m(r).concat(p(a).slice(1),m(n).reverse().slice(1),p(s).reverse().slice(1))]}},y.extent=function(b){return arguments.length?y.extentMajor(b).extentMinor(b):y.extentMinor()},y.extentMajor=function(b){return arguments.length?(r=+b[0][0],n=+b[1][0],s=+b[0][1],a=+b[1][1],r>n&&(b=r,r=n,n=b),s>a&&(b=s,s=a,a=b),y.precision(g)):[[r,s],[n,a]]},y.extentMinor=function(b){return arguments.length?(e=+b[0][0],t=+b[1][0],o=+b[0][1],i=+b[1][1],e>t&&(b=e,e=t,t=b),o>i&&(b=o,o=i,i=b),y.precision(g)):[[e,o],[t,i]]},y.step=function(b){return arguments.length?y.stepMajor(b).stepMinor(b):y.stepMinor()},y.stepMajor=function(b){return arguments.length?(u=+b[0],h=+b[1],y):[u,h]},y.stepMinor=function(b){return arguments.length?(c=+b[0],l=+b[1],y):[c,l]},y.precision=function(b){return arguments.length?(g=+b,f=ag(o,i,90),d=sg(e,t,g),m=ag(s,a,90),p=sg(r,n,g),y):g},y.extentMajor([[-180,-90+lt],[180,90-lt]]).extentMinor([[-180,-80-lt],[180,80+lt]])}function K4(){return Rg()()}function Q4(t,e){var n=t[0]*ct,r=t[1]*ct,i=e[0]*ct,o=e[1]*ct,a=it(r),s=et(r),c=it(o),l=et(o),u=a*it(n),h=a*et(n),f=c*it(i),d=c*et(i),m=2*Ee(Jt(qp(o-r)+a*c*qp(i-n))),p=et(m),g=m?function(y){var w=et(y*=m)/p,b=et(m-y)/p,v=b*u+w*f,_=b*h+w*d,S=b*s+w*l;return[Ae(_,v)*At,Ae(S,Jt(v*v+_*_))*At]}:function(){return[n*At,r*At]};return g.distance=m,g}var Ho=t=>t,Xu=new It,ff=new It,Pg,Ig,hf,df,Ln={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){Ln.lineStart=J4,Ln.lineEnd=e6},polygonEnd:function(){Ln.lineStart=Ln.lineEnd=Ln.point=zt,Xu.add(bt(ff)),ff=new It},result:function(){var t=Xu/2;return Xu=new It,t}};function J4(){Ln.point=t6}function t6(t,e){Ln.point=Lg,Pg=hf=t,Ig=df=e}function Lg(t,e){ff.add(df*t-hf*e),hf=t,df=e}function e6(){Lg(Pg,Ig)}var $i=1/0,ul=$i,Wo=-$i,fl=Wo,hl={point:n6,lineStart:zt,lineEnd:zt,polygonStart:zt,polygonEnd:zt,result:function(){var t=[[$i,ul],[Wo,fl]];return Wo=fl=-(ul=$i=1/0),t}};function n6(t,e){t<$i&&($i=t),t>Wo&&(Wo=t),e<ul&&(ul=e),e>fl&&(fl=e)}var pf=0,gf=0,$o=0,dl=0,pl=0,Ti=0,mf=0,yf=0,zo=0,qg,Yg,wn,xn,Ue={point:Rr,lineStart:lg,lineEnd:cg,polygonStart:function(){Ue.lineStart=o6,Ue.lineEnd=a6},polygonEnd:function(){Ue.point=Rr,Ue.lineStart=lg,Ue.lineEnd=cg},result:function(){var t=zo?[mf/zo,yf/zo]:Ti?[dl/Ti,pl/Ti]:$o?[pf/$o,gf/$o]:[NaN,NaN];return pf=gf=$o=dl=pl=Ti=mf=yf=zo=0,t}};function Rr(t,e){pf+=t,gf+=e,++$o}function lg(){Ue.point=r6}function r6(t,e){Ue.point=i6,Rr(wn=t,xn=e)}function i6(t,e){var n=t-wn,r=e-xn,i=Jt(n*n+r*r);dl+=i*(wn+t)/2,pl+=i*(xn+e)/2,Ti+=i,Rr(wn=t,xn=e)}function cg(){Ue.point=Rr}function o6(){Ue.point=s6}function a6(){Ug(qg,Yg)}function s6(t,e){Ue.point=Ug,Rr(qg=wn=t,Yg=xn=e)}function Ug(t,e){var n=t-wn,r=e-xn,i=Jt(n*n+r*r);dl+=i*(wn+t)/2,pl+=i*(xn+e)/2,Ti+=i,i=xn*t-wn*e,mf+=i*(wn+t),yf+=i*(xn+e),zo+=i*3,Rr(wn=t,xn=e)}function Hg(t){this._context=t}Hg.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:{this._context.moveTo(t,e),this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,ke);break}}},result:zt};var bf=new It,Gu,Wg,jg,No,Ro,jo={point:zt,lineStart:function(){jo.point=l6},lineEnd:function(){Gu&&Xg(Wg,jg),jo.point=zt},polygonStart:function(){Gu=!0},polygonEnd:function(){Gu=null},result:function(){var t=+bf;return bf=new It,t}};function l6(t,e){jo.point=Xg,Wg=No=t,jg=Ro=e}function Xg(t,e){No-=t,Ro-=e,bf.add(Jt(No*No+Ro*Ro)),No=t,Ro=e}var ug,gl,fg,hg,ml=class{constructor(e){this._append=e==null?Gg:c6(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(e,n){switch(this._point){case 0:{this._append`M${e},${n}`,this._point=1;break}case 1:{this._append`L${e},${n}`;break}default:{if(this._append`M${e},${n}`,this._radius!==fg||this._append!==gl){let r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,fg=r,gl=this._append,hg=this._,this._=i}this._+=hg;break}}}result(){let e=this._;return this._="",e.length?e:null}};function Gg(t){let e=1;this._+=t[0];for(let n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function c6(t){let e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return Gg;if(e!==ug){let n=10**e;ug=e,gl=function(i){let o=1;this._+=i[0];for(let a=i.length;o<a;++o)this._+=Math.round(arguments[o]*n)/n+i[o]}}return gl}function u6(t,e){let n=3,r=4.5,i,o;function a(s){return s&&(typeof r=="function"&&o.pointRadius(+r.apply(this,arguments)),cn(s,i(o))),o.result()}return a.area=function(s){return cn(s,i(Ln)),Ln.result()},a.measure=function(s){return cn(s,i(jo)),jo.result()},a.bounds=function(s){return cn(s,i(hl)),hl.result()},a.centroid=function(s){return cn(s,i(Ue)),Ue.result()},a.projection=function(s){return arguments.length?(i=s==null?(t=null,Ho):(t=s).stream,a):t},a.context=function(s){return arguments.length?(o=s==null?(e=null,new ml(n)):new Hg(e=s),typeof r!="function"&&o.pointRadius(r),a):e},a.pointRadius=function(s){return arguments.length?(r=typeof s=="function"?s:(o.pointRadius(+s),+s),a):r},a.digits=function(s){if(!arguments.length)return n;if(s==null)n=null;else{let c=Math.floor(s);if(!(c>=0))throw new RangeError(`invalid digits: ${s}`);n=c}return e===null&&(o=new ml(n)),a},a.projection(t).digits(n).context(e)}function f6(t){return{stream:Vo(t)}}function Vo(t){return function(e){var n=new vf;for(var r in t)n[r]=t[r];return n.stream=e,n}}function vf(){}vf.prototype={constructor:vf,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function Sf(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),cn(n,t.stream(hl)),e(hl.result()),r!=null&&t.clipExtent(r),t}function wl(t,e,n){return Sf(t,function(r){var i=e[1][0]-e[0][0],o=e[1][1]-e[0][1],a=Math.min(i/(r[1][0]-r[0][0]),o/(r[1][1]-r[0][1])),s=+e[0][0]+(i-a*(r[1][0]+r[0][0]))/2,c=+e[0][1]+(o-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([s,c])},n)}function kf(t,e,n){return wl(t,[[0,0],e],n)}function Af(t,e,n){return Sf(t,function(r){var i=+e,o=i/(r[1][0]-r[0][0]),a=(i-o*(r[1][0]+r[0][0]))/2,s=-o*r[0][1];t.scale(150*o).translate([a,s])},n)}function Ef(t,e,n){return Sf(t,function(r){var i=+e,o=i/(r[1][1]-r[0][1]),a=-o*r[0][0],s=(i-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([a,s])},n)}var dg=16,h6=it(30*ct);function pg(t,e){return+e?p6(t,e):d6(t)}function d6(t){return Vo({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function p6(t,e){function n(r,i,o,a,s,c,l,u,h,f,d,m,p,g){var y=l-r,w=u-i,b=y*y+w*w;if(b>4*e&&p--){var v=a+f,_=s+d,S=c+m,k=Jt(v*v+_*_+S*S),C=Ee(S/=k),F=bt(bt(S)-1)<lt||bt(o-h)<lt?(o+h)/2:Ae(_,v),A=t(F,C),E=A[0],D=A[1],z=E-r,M=D-i,T=w*z-y*M;(T*T/b>e||bt((y*z+w*M)/b-.5)>.3||a*f+s*d+c*m<h6)&&(n(r,i,o,a,s,c,E,D,F,v/=k,_/=k,S,p,g),g.point(E,D),n(E,D,F,v,_,S,l,u,h,f,d,m,p,g))}}return function(r){var i,o,a,s,c,l,u,h,f,d,m,p,g={point:y,lineStart:w,lineEnd:v,polygonStart:function(){r.polygonStart(),g.lineStart=_},polygonEnd:function(){r.polygonEnd(),g.lineStart=w}};function y(C,F){C=t(C,F),r.point(C[0],C[1])}function w(){h=NaN,g.point=b,r.lineStart()}function b(C,F){var A=Nr([C,F]),E=t(C,F);n(h,f,u,d,m,p,h=E[0],f=E[1],u=C,d=A[0],m=A[1],p=A[2],dg,r),r.point(h,f)}function v(){g.point=y,r.lineEnd()}function _(){w(),g.point=S,g.lineEnd=k}function S(C,F){b(i=C,F),o=h,a=f,s=d,c=m,l=p,g.point=b}function k(){n(h,f,u,d,m,p,o,a,i,s,c,l,dg,r),g.lineEnd=v,v()}return g}}var g6=Vo({point:function(t,e){this.stream.point(t*ct,e*ct)}});function m6(t){return Vo({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}function y6(t,e,n,r,i){function o(a,s){return a*=r,s*=i,[e+t*a,n-t*s]}return o.invert=function(a,s){return[(a-e)/t*r,(n-s)/t*i]},o}function gg(t,e,n,r,i,o){if(!o)return y6(t,e,n,r,i);var a=it(o),s=et(o),c=a*t,l=s*t,u=a/t,h=s/t,f=(s*n-a*e)/t,d=(s*e+a*n)/t;function m(p,g){return p*=r,g*=i,[c*p-l*g+e,n-l*p-c*g]}return m.invert=function(p,g){return[r*(u*p-h*g+f),i*(d-h*p-u*g)]},m}function Sn(t){return Mf(function(){return t})()}function Mf(t){var e,n=150,r=480,i=250,o=0,a=0,s=0,c=0,l=0,u,h=0,f=1,d=1,m=null,p=sf,g=null,y,w,b,v=Ho,_=.5,S,k,C,F,A;function E(T){return C(T[0]*ct,T[1]*ct)}function D(T){return T=C.invert(T[0],T[1]),T&&[T[0]*At,T[1]*At]}E.stream=function(T){return F&&A===T?F:F=g6(m6(u)(p(S(v(A=T)))))},E.preclip=function(T){return arguments.length?(p=T,m=void 0,M()):p},E.postclip=function(T){return arguments.length?(v=T,g=y=w=b=null,M()):v},E.clipAngle=function(T){return arguments.length?(p=+T?$g(m=T*ct):(m=null,sf),M()):m*At},E.clipExtent=function(T){return arguments.length?(v=T==null?(g=y=w=b=null,Ho):vl(g=+T[0][0],y=+T[0][1],w=+T[1][0],b=+T[1][1]),M()):g==null?null:[[g,y],[w,b]]},E.scale=function(T){return arguments.length?(n=+T,z()):n},E.translate=function(T){return arguments.length?(r=+T[0],i=+T[1],z()):[r,i]},E.center=function(T){return arguments.length?(o=T[0]%360*ct,a=T[1]%360*ct,z()):[o*At,a*At]},E.rotate=function(T){return arguments.length?(s=T[0]%360*ct,c=T[1]%360*ct,l=T.length>2?T[2]%360*ct:0,z()):[s*At,c*At,l*At]},E.angle=function(T){return arguments.length?(h=T%360*ct,z()):h*At},E.reflectX=function(T){return arguments.length?(f=T?-1:1,z()):f<0},E.reflectY=function(T){return arguments.length?(d=T?-1:1,z()):d<0},E.precision=function(T){return arguments.length?(S=pg(k,_=T*T),M()):Jt(_)},E.fitExtent=function(T,B){return wl(E,T,B)},E.fitSize=function(T,B){return kf(E,T,B)},E.fitWidth=function(T,B){return Af(E,T,B)},E.fitHeight=function(T,B){return Ef(E,T,B)};function z(){var T=gg(n,0,0,f,d,h).apply(null,e(o,a)),B=gg(n,r-T[0],i-T[1],f,d,h);return u=_f(s,c,l),k=of(e,B),C=of(u,k),S=pg(k,_),M()}function M(){return F=A=null,E}return function(){return e=t.apply(this,arguments),E.invert=e.invert&&D,z()}}function Cf(t){var e=0,n=mt/3,r=Mf(t),i=r(e,n);return i.parallels=function(o){return arguments.length?r(e=o[0]*ct,n=o[1]*ct):[e*At,n*At]},i}function b6(t){var e=it(t);function n(r,i){return[r*e,et(i)/e]}return n.invert=function(r,i){return[r/e,Ee(i*e)]},n}function Vg(t,e){var n=et(t),r=(n+et(e))/2;if(bt(r)<lt)return b6(t);var i=1+n*(2*r-n),o=Jt(i)/r;function a(s,c){var l=Jt(i-2*r*et(c))/r;return[l*et(s*=r),o-l*it(s)]}return a.invert=function(s,c){var l=o-c,u=Ae(s,bt(l))*He(l);return l*r<0&&(u-=mt*He(s)*He(l)),[u/r,Ee((i-(s*s+l*l)*r*r)/(2*r))]},a}function yl(){return Cf(Vg).scale(155.424).center([0,33.6442])}function Zg(){return yl().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function v6(t){var e=t.length;return{point:function(n,r){for(var i=-1;++i<e;)t[i].point(n,r)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}}function w6(){var t,e,n=Zg(),r,i=yl().rotate([154,0]).center([-2,58.5]).parallels([55,65]),o,a=yl().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s,c,l={point:function(f,d){c=[f,d]}};function u(f){var d=f[0],m=f[1];return c=null,r.point(d,m),c||(o.point(d,m),c)||(s.point(d,m),c)}u.invert=function(f){var d=n.scale(),m=n.translate(),p=(f[0]-m[0])/d,g=(f[1]-m[1])/d;return(g>=.12&&g<.234&&p>=-.425&&p<-.214?i:g>=.166&&g<.234&&p>=-.214&&p<-.115?a:n).invert(f)},u.stream=function(f){return t&&e===f?t:t=v6([n.stream(e=f),i.stream(f),a.stream(f)])},u.precision=function(f){return arguments.length?(n.precision(f),i.precision(f),a.precision(f),h()):n.precision()},u.scale=function(f){return arguments.length?(n.scale(f),i.scale(f*.35),a.scale(f),u.translate(n.translate())):n.scale()},u.translate=function(f){if(!arguments.length)return n.translate();var d=n.scale(),m=+f[0],p=+f[1];return r=n.translate(f).clipExtent([[m-.455*d,p-.238*d],[m+.455*d,p+.238*d]]).stream(l),o=i.translate([m-.307*d,p+.201*d]).clipExtent([[m-.425*d+lt,p+.12*d+lt],[m-.214*d-lt,p+.234*d-lt]]).stream(l),s=a.translate([m-.205*d,p+.212*d]).clipExtent([[m-.214*d+lt,p+.166*d+lt],[m-.115*d-lt,p+.234*d-lt]]).stream(l),h()},u.fitExtent=function(f,d){return wl(u,f,d)},u.fitSize=function(f,d){return kf(u,f,d)},u.fitWidth=function(f,d){return Af(u,f,d)},u.fitHeight=function(f,d){return Ef(u,f,d)};function h(){return t=e=null,u}return u.scale(1070)}function Kg(t){return function(e,n){var r=it(e),i=it(n),o=t(r*i);return o===1/0?[2,0]:[o*i*et(e),o*et(n)]}}function Zo(t){return function(e,n){var r=Jt(e*e+n*n),i=t(r),o=et(i),a=it(i);return[Ae(e*o,r*a),Ee(r&&n*o/r)]}}var Ff=Kg(function(t){return Jt(2/(1+t))});Ff.invert=Zo(function(t){return 2*Ee(t/2)});function x6(){return Sn(Ff).scale(124.75).clipAngle(180-.001)}var Tf=Kg(function(t){return(t=yg(t))&&t/et(t)});Tf.invert=Zo(function(t){return t});function _6(){return Sn(Tf).scale(79.4188).clipAngle(180-.001)}function Ko(t,e){return[t,Vs(wf((qt+e)/2))]}Ko.invert=function(t,e){return[t,2*zi(mg(e))-qt]};function S6(){return Qg(Ko).scale(961/ke)}function Qg(t){var e=Sn(t),n=e.center,r=e.scale,i=e.translate,o=e.clipExtent,a=null,s,c,l;e.scale=function(h){return arguments.length?(r(h),u()):r()},e.translate=function(h){return arguments.length?(i(h),u()):i()},e.center=function(h){return arguments.length?(n(h),u()):n()},e.clipExtent=function(h){return arguments.length?(h==null?a=s=c=l=null:(a=+h[0][0],s=+h[0][1],c=+h[1][0],l=+h[1][1]),u()):a==null?null:[[a,s],[c,l]]};function u(){var h=mt*r(),f=e(Cg(e.rotate()).invert([0,0]));return o(a==null?[[f[0]-h,f[1]-h],[f[0]+h,f[1]+h]]:t===Ko?[[Math.max(f[0]-h,a),s],[Math.min(f[0]+h,c),l]]:[[a,Math.max(f[1]-h,s)],[c,Math.min(f[1]+h,l)]])}return u()}function Hs(t){return wf((qt+t)/2)}function Jg(t,e){var n=it(t),r=t===e?et(t):Vs(n/it(e))/Vs(Hs(e)/Hs(t)),i=n*Hu(Hs(t),r)/r;if(!r)return Ko;function o(a,s){i>0?s<-qt+lt&&(s=-qt+lt):s>qt-lt&&(s=qt-lt);var c=i/Hu(Hs(s),r);return[c*et(r*a),i-c*it(r*a)]}return o.invert=function(a,s){var c=i-s,l=He(r)*Jt(a*a+c*c),u=Ae(a,bt(c))*He(c);return c*r<0&&(u-=mt*He(a)*He(c)),[u/r,2*zi(Hu(i/l,1/r))-qt]},o}function k6(){return Cf(Jg).scale(109.5).parallels([30,30])}function Xo(t,e){return[t,e]}Xo.invert=Xo;function A6(){return Sn(Xo).scale(152.63)}function tm(t,e){var n=it(t),r=t===e?et(t):(n-it(e))/(e-t),i=n/r+t;if(bt(r)<lt)return Xo;function o(a,s){var c=i-s,l=r*a;return[c*et(l),i-c*it(l)]}return o.invert=function(a,s){var c=i-s,l=Ae(a,bt(c))*He(c);return c*r<0&&(l-=mt*He(a)*He(c)),[l/r,i-He(r)*Jt(a*a+c*c)]},o}function E6(){return Cf(tm).scale(131.154).center([0,13.9389])}var Io=1.340264,Lo=-.081106,qo=893e-6,Yo=.003796,bl=Jt(3)/2,M6=12;function Of(t,e){var n=Ee(bl*et(e)),r=n*n,i=r*r*r;return[t*it(n)/(bl*(Io+3*Lo*r+i*(7*qo+9*Yo*r))),n*(Io+Lo*r+i*(qo+Yo*r))]}Of.invert=function(t,e){for(var n=e,r=n*n,i=r*r*r,o=0,a,s,c;o<M6&&(s=n*(Io+Lo*r+i*(qo+Yo*r))-e,c=Io+3*Lo*r+i*(7*qo+9*Yo*r),n-=a=s/c,r=n*n,i=r*r*r,!(bt(a)<Uo));++o);return[bl*t*(Io+3*Lo*r+i*(7*qo+9*Yo*r))/it(n),Ee(et(n)/bl)]};function C6(){return Sn(Of).scale(177.158)}function Bf(t,e){var n=it(e),r=it(t)*n;return[n*et(t)/r,et(e)/r]}Bf.invert=Zo(zi);function F6(){return Sn(Bf).scale(144.049).clipAngle(60)}function T6(){var t=1,e=0,n=0,r=1,i=1,o=0,a,s,c=null,l,u,h,f=1,d=1,m=Vo({point:function(v,_){var S=b([v,_]);this.stream.point(S[0],S[1])}}),p=Ho,g,y;function w(){return f=t*r,d=t*i,g=y=null,b}function b(v){var _=v[0]*f,S=v[1]*d;if(o){var k=S*a-_*s;_=_*a+S*s,S=k}return[_+e,S+n]}return b.invert=function(v){var _=v[0]-e,S=v[1]-n;if(o){var k=S*a+_*s;_=_*a-S*s,S=k}return[_/f,S/d]},b.stream=function(v){return g&&y===v?g:g=m(p(y=v))},b.postclip=function(v){return arguments.length?(p=v,c=l=u=h=null,w()):p},b.clipExtent=function(v){return arguments.length?(p=v==null?(c=l=u=h=null,Ho):vl(c=+v[0][0],l=+v[0][1],u=+v[1][0],h=+v[1][1]),w()):c==null?null:[[c,l],[u,h]]},b.scale=function(v){return arguments.length?(t=+v,w()):t},b.translate=function(v){return arguments.length?(e=+v[0],n=+v[1],w()):[e,n]},b.angle=function(v){return arguments.length?(o=v%360*ct,s=et(o),a=it(o),w()):o*At},b.reflectX=function(v){return arguments.length?(r=v?-1:1,w()):r<0},b.reflectY=function(v){return arguments.length?(i=v?-1:1,w()):i<0},b.fitExtent=function(v,_){return wl(b,v,_)},b.fitSize=function(v,_){return kf(b,v,_)},b.fitWidth=function(v,_){return Af(b,v,_)},b.fitHeight=function(v,_){return Ef(b,v,_)},b}function Df(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(-.013791+r*(.003971*n-.001529*r))),e*(1.007226+n*(.015085+r*(-.044475+.028874*n-.005916*r)))]}Df.invert=function(t,e){var n=e,r=25,i;do{var o=n*n,a=o*o;n-=i=(n*(1.007226+o*(.015085+a*(-.044475+.028874*o-.005916*a)))-e)/(1.007226+o*(.015085*3+a*(-.044475*7+.028874*9*o-.005916*11*a)))}while(bt(i)>lt&&--r>0);return[t/(.8707+(o=n*n)*(-.131979+o*(-.013791+o*o*o*(.003971-.001529*o)))),n]};function O6(){return Sn(Df).scale(175.295)}function $f(t,e){return[it(e)*et(t),et(e)]}$f.invert=Zo(Ee);function B6(){return Sn($f).scale(249.5).clipAngle(90+lt)}function zf(t,e){var n=it(e),r=1+it(t)*n;return[n*et(t)/r,et(e)/r]}zf.invert=Zo(function(t){return 2*zi(t)});function D6(){return Sn(zf).scale(250).clipAngle(142)}function Nf(t,e){return[Vs(wf((qt+e)/2)),-t]}Nf.invert=function(t,e){return[-e,2*zi(mg(t))-qt]};function $6(){var t=Qg(Nf),e=t.center,n=t.rotate;return t.center=function(r){return arguments.length?e([-r[1],r[0]]):(r=e(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?n([r[0],r[1],r.length>2?r[2]+90:90]):(r=n(),[r[0],r[1],r[2]-90])},n([0,0,90]).scale(159.155)}function z6(t,e){return t.parent===e.parent?1:2}function N6(t){return t.reduce(R6,0)/t.length}function R6(t,e){return t+e.x}function P6(t){return 1+t.reduce(I6,0)}function I6(t,e){return Math.max(t,e.y)}function L6(t){for(var e;e=t.children;)t=e[0];return t}function q6(t){for(var e;e=t.children;)t=e[e.length-1];return t}function Y6(){var t=z6,e=1,n=1,r=!1;function i(o){var a,s=0;o.eachAfter(function(f){var d=f.children;d?(f.x=N6(d),f.y=P6(d)):(f.x=a?s+=t(f,a):0,f.y=0,a=f)});var c=L6(o),l=q6(o),u=c.x-t(c,l)/2,h=l.x+t(l,c)/2;return o.eachAfter(r?function(f){f.x=(f.x-o.x)*e,f.y=(o.y-f.y)*n}:function(f){f.x=(f.x-u)/(h-u)*e,f.y=(1-(o.y?f.y/o.y:1))*n})}return i.separation=function(o){return arguments.length?(t=o,i):t},i.size=function(o){return arguments.length?(r=!1,e=+o[0],n=+o[1],i):r?null:[e,n]},i.nodeSize=function(o){return arguments.length?(r=!0,e=+o[0],n=+o[1],i):r?[e,n]:null},i}function U6(t){var e=0,n=t.children,r=n&&n.length;if(!r)e=1;else for(;--r>=0;)e+=n[r].value;t.value=e}function H6(){return this.eachAfter(U6)}function W6(t,e){let n=-1;for(let r of this)t.call(e,r,++n,this);return this}function j6(t,e){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(t.call(e,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function X6(t,e){for(var n=this,r=[n],i=[],o,a,s,c=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a<s;++a)r.push(o[a]);for(;n=i.pop();)t.call(e,n,++c,this);return this}function G6(t,e){let n=-1;for(let r of this)if(t.call(e,r,++n,this))return r}function V6(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n})}function Z6(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function K6(t){for(var e=this,n=Q6(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r}function Q6(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;for(t=n.pop(),e=r.pop();t===e;)i=t,t=n.pop(),e=r.pop();return i}function J6(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function t7(){return Array.from(this)}function e7(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function n7(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*r7(){var t=this,e,n=[t],r,i,o;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,r=t.children)for(i=0,o=r.length;i<o;++i)n.push(r[i]);while(n.length)}function Uf(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=a7)):e===void 0&&(e=o7);for(var n=new Ir(t),r,i=[n],o,a,s,c;r=i.pop();)if((a=e(r.data))&&(c=(a=Array.from(a)).length))for(r.children=a,s=c-1;s>=0;--s)i.push(o=a[s]=new Ir(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(cm)}function i7(){return Uf(this).eachBefore(s7)}function o7(t){return t.children}function a7(t){return Array.isArray(t)?t[1]:null}function s7(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function cm(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function Ir(t){this.data=t,this.depth=this.height=0,this.parent=null}Ir.prototype=Uf.prototype={constructor:Ir,count:H6,each:W6,eachAfter:X6,eachBefore:j6,find:G6,sum:V6,sort:Z6,path:K6,ancestors:J6,descendants:t7,leaves:e7,links:n7,copy:i7,[Symbol.iterator]:r7};function Sl(t){return t==null?null:um(t)}function um(t){if(typeof t!="function")throw new Error;return t}function Pr(){return 0}function Ni(t){return function(){return t}}var l7=1664525,c7=1013904223,em=4294967296;function Hf(){let t=1;return()=>(t=(l7*t+c7)%em)/em}function u7(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function f7(t,e){let n=t.length,r,i;for(;n;)i=e()*n--|0,r=t[n],t[n]=t[i],t[i]=r;return t}function h7(t){return fm(t,Hf())}function fm(t,e){for(var n=0,r=(t=f7(Array.from(t),e)).length,i=[],o,a;n<r;)o=t[n],a&&hm(a,o)?++n:(a=p7(i=d7(i,o)),n=0);return a}function d7(t,e){var n,r;if(Rf(e,t))return[e];for(n=0;n<t.length;++n)if(xl(e,t[n])&&Rf(Qo(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if(xl(Qo(t[n],t[r]),e)&&xl(Qo(t[n],e),t[r])&&xl(Qo(t[r],e),t[n])&&Rf(dm(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function xl(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function hm(t,e){var n=t.r-e.r+Math.max(t.r,e.r,1)*1e-9,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function Rf(t,e){for(var n=0;n<e.length;++n)if(!hm(t,e[n]))return!1;return!0}function p7(t){switch(t.length){case 1:return g7(t[0]);case 2:return Qo(t[0],t[1]);case 3:return dm(t[0],t[1],t[2])}}function g7(t){return{x:t.x,y:t.y,r:t.r}}function Qo(t,e){var n=t.x,r=t.y,i=t.r,o=e.x,a=e.y,s=e.r,c=o-n,l=a-r,u=s-i,h=Math.sqrt(c*c+l*l);return{x:(n+o+c/h*u)/2,y:(r+a+l/h*u)/2,r:(h+i+s)/2}}function dm(t,e,n){var r=t.x,i=t.y,o=t.r,a=e.x,s=e.y,c=e.r,l=n.x,u=n.y,h=n.r,f=r-a,d=r-l,m=i-s,p=i-u,g=c-o,y=h-o,w=r*r+i*i-o*o,b=w-a*a-s*s+c*c,v=w-l*l-u*u+h*h,_=d*m-f*p,S=(m*v-p*b)/(_*2)-r,k=(p*g-m*y)/_,C=(d*b-f*v)/(_*2)-i,F=(f*y-d*g)/_,A=k*k+F*F-1,E=2*(o+S*k+C*F),D=S*S+C*C-o*o,z=-(Math.abs(A)>1e-6?(E+Math.sqrt(E*E-4*A*D))/(2*A):D/E);return{x:r+S+k*z,y:i+C+F*z,r:z}}function nm(t,e,n){var r=t.x-e.x,i,o,a=t.y-e.y,s,c,l=r*r+a*a;l?(o=e.r+n.r,o*=o,c=t.r+n.r,c*=c,o>c?(i=(l+c-o)/(2*l),s=Math.sqrt(Math.max(0,c/l-i*i)),n.x=t.x-i*r-s*a,n.y=t.y-i*a+s*r):(i=(l+o-c)/(2*l),s=Math.sqrt(Math.max(0,o/l-i*i)),n.x=e.x+i*r-s*a,n.y=e.y+i*a+s*r)):(n.x=e.x+n.r,n.y=e.y)}function rm(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function im(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,o=(e.y*n.r+n.y*e.r)/r;return i*i+o*o}function _l(t){this._=t,this.next=null,this.previous=null}function pm(t,e){if(!(o=(t=u7(t)).length))return 0;var n,r,i,o,a,s,c,l,u,h,f;if(n=t[0],n.x=0,n.y=0,!(o>1))return n.r;if(r=t[1],n.x=-r.r,r.x=n.r,r.y=0,!(o>2))return n.r+r.r;nm(r,n,i=t[2]),n=new _l(n),r=new _l(r),i=new _l(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;t:for(c=3;c<o;++c){nm(n._,r._,i=t[c]),i=new _l(i),l=r.next,u=n.previous,h=r._.r,f=n._.r;do if(h<=f){if(rm(l._,i._)){r=l,n.next=r,r.previous=n,--c;continue t}h+=l._.r,l=l.next}else{if(rm(u._,i._)){n=u,n.next=r,r.previous=n,--c;continue t}f+=u._.r,u=u.previous}while(l!==u.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,a=im(n);(i=i.next)!==r;)(s=im(i))<a&&(n=i,a=s);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=fm(n,e),c=0;c<o;++c)n=t[c],n.x-=i.x,n.y-=i.y;return i.r}function m7(t){return pm(t,Hf()),t}function y7(t){return Math.sqrt(t.value)}function b7(){var t=null,e=1,n=1,r=Pr;function i(o){let a=Hf();return o.x=e/2,o.y=n/2,t?o.eachBefore(om(t)).eachAfter(Pf(r,.5,a)).eachBefore(am(1)):o.eachBefore(om(y7)).eachAfter(Pf(Pr,1,a)).eachAfter(Pf(r,o.r/Math.min(e,n),a)).eachBefore(am(Math.min(e,n)/(2*o.r))),o}return i.radius=function(o){return arguments.length?(t=Sl(o),i):t},i.size=function(o){return arguments.length?(e=+o[0],n=+o[1],i):[e,n]},i.padding=function(o){return arguments.length?(r=typeof o=="function"?o:Ni(+o),i):r},i}function om(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function Pf(t,e,n){return function(r){if(i=r.children){var i,o,a=i.length,s=t(r)*e||0,c;if(s)for(o=0;o<a;++o)i[o].r+=s;if(c=pm(i,n),s)for(o=0;o<a;++o)i[o].r-=s;r.r=c+s}}}function am(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function gm(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Jo(t,e,n,r,i){for(var o=t.children,a,s=-1,c=o.length,l=t.value&&(r-e)/t.value;++s<c;)a=o[s],a.y0=n,a.y1=i,a.x0=e,a.x1=e+=a.value*l}function v7(){var t=1,e=1,n=0,r=!1;function i(a){var s=a.height+1;return a.x0=a.y0=n,a.x1=t,a.y1=e/s,a.eachBefore(o(e,s)),r&&a.eachBefore(gm),a}function o(a,s){return function(c){c.children&&Jo(c,c.x0,a*(c.depth+1)/s,c.x1,a*(c.depth+2)/s);var l=c.x0,u=c.y0,h=c.x1-n,f=c.y1-n;h<l&&(l=h=(l+h)/2),f<u&&(u=f=(u+f)/2),c.x0=l,c.y0=u,c.x1=h,c.y1=f}}return i.round=function(a){return arguments.length?(r=!!a,i):r},i.size=function(a){return arguments.length?(t=+a[0],e=+a[1],i):[t,e]},i.padding=function(a){return arguments.length?(n=+a,i):n},i}var w7={depth:-1},sm={},If={};function x7(t){return t.id}function _7(t){return t.parentId}function S7(){var t=x7,e=_7,n;function r(i){var o=Array.from(i),a=t,s=e,c,l,u,h,f,d,m,p,g=new Map;if(n!=null){let y=o.map((v,_)=>k7(n(v,_,i))),w=y.map(lm),b=new Set(y).add("");for(let v of w)b.has(v)||(b.add(v),y.push(v),w.push(lm(v)),o.push(If));a=(v,_)=>y[_],s=(v,_)=>w[_]}for(u=0,c=o.length;u<c;++u)l=o[u],d=o[u]=new Ir(l),(m=a(l,u,i))!=null&&(m+="")&&(p=d.id=m,g.set(p,g.has(p)?sm:d)),(m=s(l,u,i))!=null&&(m+="")&&(d.parent=m);for(u=0;u<c;++u)if(d=o[u],m=d.parent){if(f=g.get(m),!f)throw new Error("missing: "+m);if(f===sm)throw new Error("ambiguous: "+m);f.children?f.children.push(d):f.children=[d],d.parent=f}else{if(h)throw new Error("multiple roots");h=d}if(!h)throw new Error("no root");if(n!=null){for(;h.data===If&&h.children.length===1;)h=h.children[0],--c;for(let y=o.length-1;y>=0&&(d=o[y],d.data===If);--y)d.data=null}if(h.parent=w7,h.eachBefore(function(y){y.depth=y.parent.depth+1,--c}).eachBefore(cm),h.parent=null,c>0)throw new Error("cycle");return h}return r.id=function(i){return arguments.length?(t=Sl(i),r):t},r.parentId=function(i){return arguments.length?(e=Sl(i),r):e},r.path=function(i){return arguments.length?(n=Sl(i),r):n},r}function k7(t){t=`${t}`;let e=t.length;return Yf(t,e-1)&&!Yf(t,e-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function lm(t){let e=t.length;if(e<2)return"";for(;--e>1&&!Yf(t,e););return t.slice(0,e)}function Yf(t,e){if(t[e]==="/"){let n=0;for(;e>0&&t[--e]==="\\";)++n;if((n&1)===0)return!0}return!1}function A7(t,e){return t.parent===e.parent?1:2}function Lf(t){var e=t.children;return e?e[0]:t.t}function qf(t){var e=t.children;return e?e[e.length-1]:t.t}function E7(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function M7(t){for(var e=0,n=0,r=t.children,i=r.length,o;--i>=0;)o=r[i],o.z+=e,o.m+=e,e+=o.s+(n+=o.c)}function C7(t,e,n){return t.a.parent===e.parent?t.a:n}function kl(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}kl.prototype=Object.create(Ir.prototype);function F7(t){for(var e=new kl(t,0),n,r=[e],i,o,a,s;n=r.pop();)if(o=n._.children)for(n.children=new Array(s=o.length),a=s-1;a>=0;--a)r.push(i=n.children[a]=new kl(o[a],a)),i.parent=n;return(e.parent=new kl(null,0)).children=[e],e}function T7(){var t=A7,e=1,n=1,r=null;function i(l){var u=F7(l);if(u.eachAfter(o),u.parent.m=-u.z,u.eachBefore(a),r)l.eachBefore(c);else{var h=l,f=l,d=l;l.eachBefore(function(w){w.x<h.x&&(h=w),w.x>f.x&&(f=w),w.depth>d.depth&&(d=w)});var m=h===f?1:t(h,f)/2,p=m-h.x,g=e/(f.x+m+p),y=n/(d.depth||1);l.eachBefore(function(w){w.x=(w.x+p)*g,w.y=w.depth*y})}return l}function o(l){var u=l.children,h=l.parent.children,f=l.i?h[l.i-1]:null;if(u){M7(l);var d=(u[0].z+u[u.length-1].z)/2;f?(l.z=f.z+t(l._,f._),l.m=l.z-d):l.z=d}else f&&(l.z=f.z+t(l._,f._));l.parent.A=s(l,f,l.parent.A||h[0])}function a(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function s(l,u,h){if(u){for(var f=l,d=l,m=u,p=f.parent.children[0],g=f.m,y=d.m,w=m.m,b=p.m,v;m=qf(m),f=Lf(f),m&&f;)p=Lf(p),d=qf(d),d.a=l,v=m.z+w-f.z-g+t(m._,f._),v>0&&(E7(C7(m,l,h),l,v),g+=v,y+=v),w+=m.m,g+=f.m,b+=p.m,y+=d.m;m&&!qf(d)&&(d.t=m,d.m+=w-y),f&&!Lf(p)&&(p.t=f,p.m+=g-b,h=l)}return h}function c(l){l.x*=e,l.y=l.depth*n}return i.separation=function(l){return arguments.length?(t=l,i):t},i.size=function(l){return arguments.length?(r=!1,e=+l[0],n=+l[1],i):r?null:[e,n]},i.nodeSize=function(l){return arguments.length?(r=!0,e=+l[0],n=+l[1],i):r?[e,n]:null},i}function Al(t,e,n,r,i){for(var o=t.children,a,s=-1,c=o.length,l=t.value&&(i-n)/t.value;++s<c;)a=o[s],a.x0=e,a.x1=r,a.y0=n,a.y1=n+=a.value*l}var mm=(1+Math.sqrt(5))/2;function ym(t,e,n,r,i,o){for(var a=[],s=e.children,c,l,u=0,h=0,f=s.length,d,m,p=e.value,g,y,w,b,v,_,S;u<f;){d=i-n,m=o-r;do g=s[h++].value;while(!g&&h<f);for(y=w=g,_=Math.max(m/d,d/m)/(p*t),S=g*g*_,v=Math.max(w/S,S/y);h<f;++h){if(g+=l=s[h].value,l<y&&(y=l),l>w&&(w=l),S=g*g*_,b=Math.max(w/S,S/y),b>v){g-=l;break}v=b}a.push(c={value:g,dice:d<m,children:s.slice(u,h)}),c.dice?Jo(c,n,r,i,p?r+=m*g/p:o):Al(c,n,r,p?n+=d*g/p:i,o),p-=g,u=h}return a}var bm=(function t(e){function n(r,i,o,a,s){ym(e,r,i,o,a,s)}return n.ratio=function(r){return t((r=+r)>1?r:1)},n})(mm);function O7(){var t=bm,e=!1,n=1,r=1,i=[0],o=Pr,a=Pr,s=Pr,c=Pr,l=Pr;function u(f){return f.x0=f.y0=0,f.x1=n,f.y1=r,f.eachBefore(h),i=[0],e&&f.eachBefore(gm),f}function h(f){var d=i[f.depth],m=f.x0+d,p=f.y0+d,g=f.x1-d,y=f.y1-d;g<m&&(m=g=(m+g)/2),y<p&&(p=y=(p+y)/2),f.x0=m,f.y0=p,f.x1=g,f.y1=y,f.children&&(d=i[f.depth+1]=o(f)/2,m+=l(f)-d,p+=a(f)-d,g-=s(f)-d,y-=c(f)-d,g<m&&(m=g=(m+g)/2),y<p&&(p=y=(p+y)/2),t(f,m,p,g,y))}return u.round=function(f){return arguments.length?(e=!!f,u):e},u.size=function(f){return arguments.length?(n=+f[0],r=+f[1],u):[n,r]},u.tile=function(f){return arguments.length?(t=um(f),u):t},u.padding=function(f){return arguments.length?u.paddingInner(f).paddingOuter(f):u.paddingInner()},u.paddingInner=function(f){return arguments.length?(o=typeof f=="function"?f:Ni(+f),u):o},u.paddingOuter=function(f){return arguments.length?u.paddingTop(f).paddingRight(f).paddingBottom(f).paddingLeft(f):u.paddingTop()},u.paddingTop=function(f){return arguments.length?(a=typeof f=="function"?f:Ni(+f),u):a},u.paddingRight=function(f){return arguments.length?(s=typeof f=="function"?f:Ni(+f),u):s},u.paddingBottom=function(f){return arguments.length?(c=typeof f=="function"?f:Ni(+f),u):c},u.paddingLeft=function(f){return arguments.length?(l=typeof f=="function"?f:Ni(+f),u):l},u}function B7(t,e,n,r,i){var o=t.children,a,s=o.length,c,l=new Array(s+1);for(l[0]=c=a=0;a<s;++a)l[a+1]=c+=o[a].value;u(0,s,t.value,e,n,r,i);function u(h,f,d,m,p,g,y){if(h>=f-1){var w=o[h];w.x0=m,w.y0=p,w.x1=g,w.y1=y;return}for(var b=l[h],v=d/2+b,_=h+1,S=f-1;_<S;){var k=_+S>>>1;l[k]<v?_=k+1:S=k}v-l[_-1]<l[_]-v&&h+1<_&&--_;var C=l[_]-b,F=d-C;if(g-m>y-p){var A=d?(m*F+g*C)/d:g;u(h,_,C,m,p,A,y),u(_,f,F,A,p,g,y)}else{var E=d?(p*F+y*C)/d:y;u(h,_,C,m,p,g,E),u(_,f,F,m,E,g,y)}}}function D7(t,e,n,r,i){(t.depth&1?Al:Jo)(t,e,n,r,i)}var $7=(function t(e){function n(r,i,o,a,s){if((c=r._squarify)&&c.ratio===e)for(var c,l,u,h,f=-1,d,m=c.length,p=r.value;++f<m;){for(l=c[f],u=l.children,h=l.value=0,d=u.length;h<d;++h)l.value+=u[h].value;l.dice?Jo(l,i,o,a,p?o+=(s-o)*l.value/p:s):Al(l,i,o,p?i+=(a-i)*l.value/p:a,s),p-=l.value}else r._squarify=c=ym(e,r,i,o,a,s),c.ratio=e}return n.ratio=function(r){return t((r=+r)>1?r:1)},n})(mm);function z7(t){for(var e=-1,n=t.length,r,i=t[n-1],o=0;++e<n;)r=i,i=t[e],o+=r[1]*i[0]-r[0]*i[1];return o/2}function N7(t){for(var e=-1,n=t.length,r=0,i=0,o,a=t[n-1],s,c=0;++e<n;)o=a,a=t[e],c+=s=o[0]*a[1]-a[0]*o[1],r+=(o[0]+a[0])*s,i+=(o[1]+a[1])*s;return c*=3,[r/c,i/c]}function R7(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(e[1]-t[1])*(n[0]-t[0])}function P7(t,e){return t[0]-e[0]||t[1]-e[1]}function vm(t){let e=t.length,n=[0,1],r=2,i;for(i=2;i<e;++i){for(;r>1&&R7(t[n[r-2]],t[n[r-1]],t[i])<=0;)--r;n[r++]=i}return n.slice(0,r)}function I7(t){if((n=t.length)<3)return null;var e,n,r=new Array(n),i=new Array(n);for(e=0;e<n;++e)r[e]=[+t[e][0],+t[e][1],e];for(r.sort(P7),e=0;e<n;++e)i[e]=[r[e][0],-r[e][1]];var o=vm(r),a=vm(i),s=a[0]===o[0],c=a[a.length-1]===o[o.length-1],l=[];for(e=o.length-1;e>=0;--e)l.push(t[r[o[e]][2]]);for(e=+s;e<a.length-c;++e)l.push(t[r[a[e]][2]]);return l}function L7(t,e){for(var n=t.length,r=t[n-1],i=e[0],o=e[1],a=r[0],s=r[1],c,l,u=!1,h=0;h<n;++h)r=t[h],c=r[0],l=r[1],l>o!=s>o&&i<(a-c)*(o-l)/(s-l)+c&&(u=!u),a=c,s=l;return u}function q7(t){for(var e=-1,n=t.length,r=t[n-1],i,o,a=r[0],s=r[1],c=0;++e<n;)i=a,o=s,r=t[e],a=r[0],s=r[1],i-=a,o-=s,c+=Math.hypot(i,o);return c}var re=Math.random,Y7=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,arguments.length===1?(i=r,r=0):i-=r,function(){return e()*i+r}}return n.source=t,n})(re),U7=(function t(e){function n(r,i){return arguments.length<2&&(i=r,r=0),r=Math.floor(r),i=Math.floor(i)-r,function(){return Math.floor(e()*i+r)}}return n.source=t,n})(re),Wf=(function t(e){function n(r,i){var o,a;return r=r==null?0:+r,i=i==null?1:+i,function(){var s;if(o!=null)s=o,o=null;else do o=e()*2-1,s=e()*2-1,a=o*o+s*s;while(!a||a>1);return r+i*s*Math.sqrt(-2*Math.log(a)/a)}}return n.source=t,n})(re),H7=(function t(e){var n=Wf.source(e);function r(){var i=n.apply(this,arguments);return function(){return Math.exp(i())}}return r.source=t,r})(re),xm=(function t(e){function n(r){return(r=+r)<=0?()=>0:function(){for(var i=0,o=r;o>1;--o)i+=e();return i+o*e()}}return n.source=t,n})(re),W7=(function t(e){var n=xm.source(e);function r(i){if((i=+i)==0)return e;var o=n(i);return function(){return o()/i}}return r.source=t,r})(re),j7=(function t(e){function n(r){return function(){return-Math.log1p(-e())/r}}return n.source=t,n})(re),X7=(function t(e){function n(r){if((r=+r)<0)throw new RangeError("invalid alpha");return r=1/-r,function(){return Math.pow(1-e(),r)}}return n.source=t,n})(re),G7=(function t(e){function n(r){if((r=+r)<0||r>1)throw new RangeError("invalid p");return function(){return Math.floor(e()+r)}}return n.source=t,n})(re),_m=(function t(e){function n(r){if((r=+r)<0||r>1)throw new RangeError("invalid p");return r===0?()=>1/0:r===1?()=>1:(r=Math.log1p(-r),function(){return 1+Math.floor(Math.log1p(-e())/r)})}return n.source=t,n})(re),jf=(function t(e){var n=Wf.source(e)();function r(i,o){if((i=+i)<0)throw new RangeError("invalid k");if(i===0)return()=>0;if(o=o==null?1:+o,i===1)return()=>-Math.log1p(-e())*o;var a=(i<1?i+1:i)-1/3,s=1/(3*Math.sqrt(a)),c=i<1?()=>Math.pow(e(),1/i):()=>1;return function(){do{do var l=n(),u=1+s*l;while(u<=0);u*=u*u;var h=1-e()}while(h>=1-.0331*l*l*l*l&&Math.log(h)>=.5*l*l+a*(1-u+Math.log(u)));return a*u*c()*o}}return r.source=t,r})(re),Sm=(function t(e){var n=jf.source(e);function r(i,o){var a=n(i),s=n(o);return function(){var c=a();return c===0?0:c/(c+s())}}return r.source=t,r})(re),km=(function t(e){var n=_m.source(e),r=Sm.source(e);function i(o,a){return o=+o,(a=+a)>=1?()=>o:a<=0?()=>0:function(){for(var s=0,c=o,l=a;c*l>16&&c*(1-l)>16;){var u=Math.floor((c+1)*l),h=r(u,c-u+1)();h<=l?(s+=u,c-=u,l=(l-h)/(1-h)):(c=u-1,l/=h)}for(var f=l<.5,d=f?l:1-l,m=n(d),p=m(),g=0;p<=c;++g)p+=m();return s+(f?g:c-g)}}return i.source=t,i})(re),V7=(function t(e){function n(r,i,o){var a;return(r=+r)==0?a=s=>-Math.log(s):(r=1/r,a=s=>Math.pow(s,r)),i=i==null?0:+i,o=o==null?1:+o,function(){return i+o*a(-Math.log1p(-e()))}}return n.source=t,n})(re),Z7=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,function(){return r+i*Math.tan(Math.PI*e())}}return n.source=t,n})(re),K7=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,function(){var o=e();return r+i*Math.log(o/(1-o))}}return n.source=t,n})(re),Q7=(function t(e){var n=jf.source(e),r=km.source(e);function i(o){return function(){for(var a=0,s=o;s>16;){var c=Math.floor(.875*s),l=n(c)();if(l>s)return a+r(c-1,s/l)();a+=c,s-=l}for(var u=-Math.log1p(-e()),h=0;u<=s;++h)u-=Math.log1p(-e());return a+h}}return i.source=t,i})(re),J7=1664525,tS=1013904223,wm=1/4294967296;function eS(t=Math.random()){let e=(0<=t&&t<1?t/wm:Math.abs(t))|0;return()=>(e=J7*e+tS|0,wm*(e>>>0))}var Xf=new Date,Gf=new Date;function Wt(t,e,n,r){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(t(o=new Date(+o)),o),i.ceil=o=>(t(o=new Date(o-1)),e(o,1),t(o),o),i.round=o=>{let a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=(o,a)=>(e(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{let c=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;let l;do c.push(l=new Date(+o)),e(o,s),t(o);while(l<o&&o<a);return c},i.filter=o=>Wt(a=>{if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););}),n&&(i.count=(o,a)=>(Xf.setTime(+o),Gf.setTime(+a),t(Xf),t(Gf),Math.floor(n(Xf,Gf))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}var ta=Wt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);ta.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?Wt(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):ta);var nS=ta.range,Yn=1e3,We=Yn*60,Un=We*60,Hn=Un*24,Zf=Hn*7,Am=Hn*30,Vf=Hn*365,kn=Wt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Yn)},(t,e)=>(e-t)/Yn,t=>t.getUTCSeconds()),rS=kn.range,ea=Wt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Yn)},(t,e)=>{t.setTime(+t+e*We)},(t,e)=>(e-t)/We,t=>t.getMinutes()),iS=ea.range,na=Wt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*We)},(t,e)=>(e-t)/We,t=>t.getUTCMinutes()),oS=na.range,ra=Wt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Yn-t.getMinutes()*We)},(t,e)=>{t.setTime(+t+e*Un)},(t,e)=>(e-t)/Un,t=>t.getHours()),aS=ra.range,ia=Wt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Un)},(t,e)=>(e-t)/Un,t=>t.getUTCHours()),sS=ia.range,hr=Wt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*We)/Hn,t=>t.getDate()-1),lS=hr.range,Lr=Wt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Hn,t=>t.getUTCDate()-1),cS=Lr.range,Kf=Wt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Hn,t=>Math.floor(t/Hn)),uS=Kf.range;function qr(t){return Wt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*We)/Zf)}var Yr=qr(0),Ri=qr(1),Em=qr(2),Mm=qr(3),dr=qr(4),Cm=qr(5),Fm=qr(6),fS=Yr.range,hS=Ri.range,dS=Em.range,pS=Mm.range,gS=dr.range,mS=Cm.range,yS=Fm.range;function Ur(t){return Wt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/Zf)}var Hr=Ur(0),Pi=Ur(1),Tm=Ur(2),Om=Ur(3),pr=Ur(4),Bm=Ur(5),Dm=Ur(6),bS=Hr.range,vS=Pi.range,wS=Tm.range,xS=Om.range,_S=pr.range,SS=Bm.range,kS=Dm.range,oa=Wt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),AS=oa.range,aa=Wt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),ES=aa.range,je=Wt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());je.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Wt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});var MS=je.range,Xe=Wt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Xe.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Wt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});var CS=Xe.range;function $m(t,e,n,r,i,o){let a=[[kn,1,Yn],[kn,5,5*Yn],[kn,15,15*Yn],[kn,30,30*Yn],[o,1,We],[o,5,5*We],[o,15,15*We],[o,30,30*We],[i,1,Un],[i,3,3*Un],[i,6,6*Un],[i,12,12*Un],[r,1,Hn],[r,2,2*Hn],[n,1,Zf],[e,1,Am],[e,3,3*Am],[t,1,Vf]];function s(l,u,h){let f=u<l;f&&([l,u]=[u,l]);let d=h&&typeof h.range=="function"?h:c(l,u,h),m=d?d.range(l,+u+1):[];return f?m.reverse():m}function c(l,u,h){let f=Math.abs(u-l)/h,d=ao(([,,g])=>g).right(a,f);if(d===a.length)return t.every(si(l/Vf,u/Vf,h));if(d===0)return ta.every(Math.max(si(l,u,h),1));let[m,p]=a[f/a[d-1][2]<a[d][2]/f?d-1:d];return m.every(p)}return[s,c]}var[Qf,Jf]=$m(Xe,aa,Hr,Kf,ia,na),[th,eh]=$m(je,oa,Yr,hr,ra,ea);function nh(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function rh(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function sa(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Wm(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,l=la(i),u=ca(i),h=la(o),f=ca(o),d=la(a),m=ca(a),p=la(s),g=ca(s),y=la(c),w=ca(c),b={a:N,A:L,b:q,B:U,c:null,d:Lm,e:Lm,f:KS,g:s9,G:c9,H:GS,I:VS,j:ZS,L:jm,m:QS,M:JS,p:Z,q:Q,Q:Um,s:Hm,S:t9,u:e9,U:n9,V:r9,w:i9,W:o9,x:null,X:null,y:a9,Y:l9,Z:u9,"%":Ym},v={a:j,A:H,b:W,B:J,c:null,d:qm,e:qm,f:p9,g:k9,G:E9,H:f9,I:h9,j:d9,L:Gm,m:g9,M:m9,p:K,q:ht,Q:Um,s:Hm,S:y9,u:b9,U:v9,V:w9,w:x9,W:_9,x:null,X:null,y:S9,Y:A9,Z:M9,"%":Ym},_={a:A,A:E,b:D,B:z,c:M,d:Pm,e:Pm,f:HS,g:Rm,G:Nm,H:Im,I:Im,j:LS,L:US,m:IS,M:qS,p:F,q:PS,Q:jS,s:XS,S:YS,u:DS,U:$S,V:zS,w:BS,W:NS,x:T,X:B,y:Rm,Y:Nm,Z:RS,"%":WS};b.x=S(n,b),b.X=S(r,b),b.c=S(e,b),v.x=S(n,v),v.X=S(r,v),v.c=S(e,v);function S(G,tt){return function(ot){var X=[],vt=-1,yt=0,Tt=G.length,Mt,st,St;for(ot instanceof Date||(ot=new Date(+ot));++vt<Tt;)G.charCodeAt(vt)===37&&(X.push(G.slice(yt,vt)),(st=zm[Mt=G.charAt(++vt)])!=null?Mt=G.charAt(++vt):st=Mt==="e"?" ":"0",(St=tt[Mt])&&(Mt=St(ot,st)),X.push(Mt),yt=vt+1);return X.push(G.slice(yt,vt)),X.join("")}}function k(G,tt){return function(ot){var X=sa(1900,void 0,1),vt=C(X,G,ot+="",0),yt,Tt;if(vt!=ot.length)return null;if("Q"in X)return new Date(X.Q);if("s"in X)return new Date(X.s*1e3+("L"in X?X.L:0));if(tt&&!("Z"in X)&&(X.Z=0),"p"in X&&(X.H=X.H%12+X.p*12),X.m===void 0&&(X.m="q"in X?X.q:0),"V"in X){if(X.V<1||X.V>53)return null;"w"in X||(X.w=1),"Z"in X?(yt=rh(sa(X.y,0,1)),Tt=yt.getUTCDay(),yt=Tt>4||Tt===0?Pi.ceil(yt):Pi(yt),yt=Lr.offset(yt,(X.V-1)*7),X.y=yt.getUTCFullYear(),X.m=yt.getUTCMonth(),X.d=yt.getUTCDate()+(X.w+6)%7):(yt=nh(sa(X.y,0,1)),Tt=yt.getDay(),yt=Tt>4||Tt===0?Ri.ceil(yt):Ri(yt),yt=hr.offset(yt,(X.V-1)*7),X.y=yt.getFullYear(),X.m=yt.getMonth(),X.d=yt.getDate()+(X.w+6)%7)}else("W"in X||"U"in X)&&("w"in X||(X.w="u"in X?X.u%7:"W"in X?1:0),Tt="Z"in X?rh(sa(X.y,0,1)).getUTCDay():nh(sa(X.y,0,1)).getDay(),X.m=0,X.d="W"in X?(X.w+6)%7+X.W*7-(Tt+5)%7:X.w+X.U*7-(Tt+6)%7);return"Z"in X?(X.H+=X.Z/100|0,X.M+=X.Z%100,rh(X)):nh(X)}}function C(G,tt,ot,X){for(var vt=0,yt=tt.length,Tt=ot.length,Mt,st;vt<yt;){if(X>=Tt)return-1;if(Mt=tt.charCodeAt(vt++),Mt===37){if(Mt=tt.charAt(vt++),st=_[Mt in zm?tt.charAt(vt++):Mt],!st||(X=st(G,ot,X))<0)return-1}else if(Mt!=ot.charCodeAt(X++))return-1}return X}function F(G,tt,ot){var X=l.exec(tt.slice(ot));return X?(G.p=u.get(X[0].toLowerCase()),ot+X[0].length):-1}function A(G,tt,ot){var X=d.exec(tt.slice(ot));return X?(G.w=m.get(X[0].toLowerCase()),ot+X[0].length):-1}function E(G,tt,ot){var X=h.exec(tt.slice(ot));return X?(G.w=f.get(X[0].toLowerCase()),ot+X[0].length):-1}function D(G,tt,ot){var X=y.exec(tt.slice(ot));return X?(G.m=w.get(X[0].toLowerCase()),ot+X[0].length):-1}function z(G,tt,ot){var X=p.exec(tt.slice(ot));return X?(G.m=g.get(X[0].toLowerCase()),ot+X[0].length):-1}function M(G,tt,ot){return C(G,e,tt,ot)}function T(G,tt,ot){return C(G,n,tt,ot)}function B(G,tt,ot){return C(G,r,tt,ot)}function N(G){return a[G.getDay()]}function L(G){return o[G.getDay()]}function q(G){return c[G.getMonth()]}function U(G){return s[G.getMonth()]}function Z(G){return i[+(G.getHours()>=12)]}function Q(G){return 1+~~(G.getMonth()/3)}function j(G){return a[G.getUTCDay()]}function H(G){return o[G.getUTCDay()]}function W(G){return c[G.getUTCMonth()]}function J(G){return s[G.getUTCMonth()]}function K(G){return i[+(G.getUTCHours()>=12)]}function ht(G){return 1+~~(G.getUTCMonth()/3)}return{format:function(G){var tt=S(G+="",b);return tt.toString=function(){return G},tt},parse:function(G){var tt=k(G+="",!1);return tt.toString=function(){return G},tt},utcFormat:function(G){var tt=S(G+="",v);return tt.toString=function(){return G},tt},utcParse:function(G){var tt=k(G+="",!0);return tt.toString=function(){return G},tt}}}var zm={"-":"",_:" ",0:"0"},te=/^\s*\d+/,FS=/^%/,TS=/[\\^$*+?|[\]().{}]/g;function xt(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function OS(t){return t.replace(TS,"\\$&")}function la(t){return new RegExp("^(?:"+t.map(OS).join("|")+")","i")}function ca(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function BS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function DS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function $S(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function zS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function NS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Nm(t,e,n){var r=te.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Rm(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function RS(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function PS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function IS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Pm(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function LS(t,e,n){var r=te.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Im(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function qS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function YS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function US(t,e,n){var r=te.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function HS(t,e,n){var r=te.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function WS(t,e,n){var r=FS.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function jS(t,e,n){var r=te.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function XS(t,e,n){var r=te.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Lm(t,e){return xt(t.getDate(),e,2)}function GS(t,e){return xt(t.getHours(),e,2)}function VS(t,e){return xt(t.getHours()%12||12,e,2)}function ZS(t,e){return xt(1+hr.count(je(t),t),e,3)}function jm(t,e){return xt(t.getMilliseconds(),e,3)}function KS(t,e){return jm(t,e)+"000"}function QS(t,e){return xt(t.getMonth()+1,e,2)}function JS(t,e){return xt(t.getMinutes(),e,2)}function t9(t,e){return xt(t.getSeconds(),e,2)}function e9(t){var e=t.getDay();return e===0?7:e}function n9(t,e){return xt(Yr.count(je(t)-1,t),e,2)}function Xm(t){var e=t.getDay();return e>=4||e===0?dr(t):dr.ceil(t)}function r9(t,e){return t=Xm(t),xt(dr.count(je(t),t)+(je(t).getDay()===4),e,2)}function i9(t){return t.getDay()}function o9(t,e){return xt(Ri.count(je(t)-1,t),e,2)}function a9(t,e){return xt(t.getFullYear()%100,e,2)}function s9(t,e){return t=Xm(t),xt(t.getFullYear()%100,e,2)}function l9(t,e){return xt(t.getFullYear()%1e4,e,4)}function c9(t,e){var n=t.getDay();return t=n>=4||n===0?dr(t):dr.ceil(t),xt(t.getFullYear()%1e4,e,4)}function u9(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+xt(e/60|0,"0",2)+xt(e%60,"0",2)}function qm(t,e){return xt(t.getUTCDate(),e,2)}function f9(t,e){return xt(t.getUTCHours(),e,2)}function h9(t,e){return xt(t.getUTCHours()%12||12,e,2)}function d9(t,e){return xt(1+Lr.count(Xe(t),t),e,3)}function Gm(t,e){return xt(t.getUTCMilliseconds(),e,3)}function p9(t,e){return Gm(t,e)+"000"}function g9(t,e){return xt(t.getUTCMonth()+1,e,2)}function m9(t,e){return xt(t.getUTCMinutes(),e,2)}function y9(t,e){return xt(t.getUTCSeconds(),e,2)}function b9(t){var e=t.getUTCDay();return e===0?7:e}function v9(t,e){return xt(Hr.count(Xe(t)-1,t),e,2)}function Vm(t){var e=t.getUTCDay();return e>=4||e===0?pr(t):pr.ceil(t)}function w9(t,e){return t=Vm(t),xt(pr.count(Xe(t),t)+(Xe(t).getUTCDay()===4),e,2)}function x9(t){return t.getUTCDay()}function _9(t,e){return xt(Pi.count(Xe(t)-1,t),e,2)}function S9(t,e){return xt(t.getUTCFullYear()%100,e,2)}function k9(t,e){return t=Vm(t),xt(t.getUTCFullYear()%100,e,2)}function A9(t,e){return xt(t.getUTCFullYear()%1e4,e,4)}function E9(t,e){var n=t.getUTCDay();return t=n>=4||n===0?pr(t):pr.ceil(t),xt(t.getUTCFullYear()%1e4,e,4)}function M9(){return"+0000"}function Ym(){return"%"}function Um(t){return+t}function Hm(t){return Math.floor(+t/1e3)}var Ii,El,Zm,ua,ih;Km({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 Km(t){return Ii=Wm(t),El=Ii.format,Zm=Ii.parse,ua=Ii.utcFormat,ih=Ii.utcParse,Ii}var Qm="%Y-%m-%dT%H:%M:%S.%LZ";function C9(t){return t.toISOString()}var F9=Date.prototype.toISOString?C9:ua(Qm);function T9(t){var e=new Date(t);return isNaN(e)?null:e}var O9=+new Date("2000-01-01T00:00:00.000Z")?T9:ih(Qm);function Ge(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Wn(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}var oh=Symbol("implicit");function sh(){var t=new tr,e=[],n=[],r=oh;function i(o){let a=t.get(o);if(a===void 0){if(r!==oh)return r;t.set(o,a=e.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new tr;for(let a of o)t.has(a)||t.set(a,e.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 sh(e,n).unknown(r)},Ge.apply(i,arguments),i}function lh(){var t=sh().unknown(void 0),e=t.domain,n=t.range,r=0,i=1,o,a,s=!1,c=0,l=0,u=.5;delete t.unknown;function h(){var f=e().length,d=i<r,m=d?i:r,p=d?r:i;o=(p-m)/Math.max(1,f-c+l*2),s&&(o=Math.floor(o)),m+=(p-m-o*(f-c))*u,a=o*(1-c),s&&(m=Math.round(m),a=Math.round(a));var g=dn(f).map(function(y){return m+o*y});return n(d?g.reverse():g)}return t.domain=function(f){return arguments.length?(e(f),h()):e()},t.range=function(f){return arguments.length?([r,i]=f,r=+r,i=+i,h()):[r,i]},t.rangeRound=function(f){return[r,i]=f,r=+r,i=+i,s=!0,h()},t.bandwidth=function(){return a},t.step=function(){return o},t.round=function(f){return arguments.length?(s=!!f,h()):s},t.padding=function(f){return arguments.length?(c=Math.min(1,l=+f),h()):c},t.paddingInner=function(f){return arguments.length?(c=Math.min(1,f),h()):c},t.paddingOuter=function(f){return arguments.length?(l=+f,h()):l},t.align=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),h()):u},t.copy=function(){return lh(e(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},Ge.apply(h(),arguments)}function s1(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return s1(e())},t}function B9(){return s1(lh.apply(null,arguments).paddingInner(1))}function D9(t){return function(){return t}}function Ml(t){return+t}var Jm=[0,1];function Me(t){return t}function ah(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:D9(isNaN(e)?NaN:.5)}function $9(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function z9(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=ah(i,r),o=n(a,o)):(r=ah(r,i),o=n(o,a)),function(s){return o(r(s))}}function N9(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)i[a]=ah(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=nr(t,s,1,r)-1;return o[c](i[c](s))}}function fa(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Cl(){var t=Jm,e=Jm,n=yn,r,i,o,a=Me,s,c,l;function u(){var f=Math.min(t.length,e.length);return a!==Me&&(a=$9(t[0],t[f-1])),s=f>2?N9:z9,c=l=null,h}function h(f){return f==null||isNaN(f=+f)?o:(c||(c=s(t.map(r),e,n)))(r(a(f)))}return h.invert=function(f){return a(i((l||(l=s(e,t.map(r),Fe)))(f)))},h.domain=function(f){return arguments.length?(t=Array.from(f,Ml),u()):t.slice()},h.range=function(f){return arguments.length?(e=Array.from(f),u()):e.slice()},h.rangeRound=function(f){return e=Array.from(f),n=yo,u()},h.clamp=function(f){return arguments.length?(a=f?!0:Me,u()):a!==Me},h.interpolate=function(f){return arguments.length?(n=f,u()):n},h.unknown=function(f){return arguments.length?(o=f,h):o},function(f,d){return r=f,i=d,u()}}function ch(){return Cl()(Me,Me)}function l1(t,e,n,r){var i=si(t,e,n),o;switch(r=$r(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=Yu(i,a))&&(r.precision=o),Ps(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Uu(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=qu(i))&&(r.precision=o-(r.type==="%")*2);break}}return Oo(r)}function gr(t){var e=t.domain;return t.ticks=function(n){var r=e();return Bn(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return l1(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,o=r.length-1,a=r[i],s=r[o],c,l,u=10;for(s<a&&(l=a,a=s,s=l,l=i,i=o,o=l);u-- >0;){if(l=er(a,s,n),l===c)return r[i]=a,r[o]=s,e(r);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;c=l}return t},t}function c1(){var t=ch();return t.copy=function(){return fa(t,c1())},Ge.apply(t,arguments),gr(t)}function u1(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,Ml),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return u1(t).unknown(e)},t=arguments.length?Array.from(t,Ml):[0,1],gr(n)}function f1(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],o=t[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),t[n]=e.floor(i),t[r]=e.ceil(o),t}function t1(t){return Math.log(t)}function e1(t){return Math.exp(t)}function R9(t){return-Math.log(-t)}function P9(t){return-Math.exp(-t)}function I9(t){return isFinite(t)?+("1e"+t):t<0?0:t}function L9(t){return t===10?I9:t===Math.E?Math.exp:e=>Math.pow(t,e)}function q9(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function n1(t){return(e,n)=>-t(-e,n)}function uh(t){let e=t(t1,e1),n=e.domain,r=10,i,o;function a(){return i=q9(r),o=L9(r),n()[0]<0?(i=n1(i),o=n1(o),t(R9,P9)):t(t1,e1),e}return e.base=function(s){return arguments.length?(r=+s,a()):r},e.domain=function(s){return arguments.length?(n(s),a()):n()},e.ticks=s=>{let c=n(),l=c[0],u=c[c.length-1],h=u<l;h&&([l,u]=[u,l]);let f=i(l),d=i(u),m,p,g=s==null?10:+s,y=[];if(!(r%1)&&d-f<g){if(f=Math.floor(f),d=Math.ceil(d),l>0){for(;f<=d;++f)for(m=1;m<r;++m)if(p=f<0?m/o(-f):m*o(f),!(p<l)){if(p>u)break;y.push(p)}}else for(;f<=d;++f)for(m=r-1;m>=1;--m)if(p=f>0?m/o(-f):m*o(f),!(p<l)){if(p>u)break;y.push(p)}y.length*2<g&&(y=Bn(l,u,g))}else y=Bn(f,d,Math.min(d-f,g)).map(o);return h?y.reverse():y},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=$r(c)).precision==null&&(c.trim=!0),c=Oo(c)),s===1/0)return c;let l=Math.max(1,r*s/e.ticks().length);return u=>{let h=u/o(Math.round(i(u)));return h*r<r-.5&&(h*=r),h<=l?c(u):""}},e.nice=()=>n(f1(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),e}function h1(){let t=uh(Cl()).domain([1,10]);return t.copy=()=>fa(t,h1()).base(t.base()),Ge.apply(t,arguments),t}function r1(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function i1(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function fh(t){var e=1,n=t(r1(e),i1(e));return n.constant=function(r){return arguments.length?t(r1(e=+r),i1(e)):e},gr(n)}function d1(){var t=fh(Cl());return t.copy=function(){return fa(t,d1()).constant(t.constant())},Ge.apply(t,arguments)}function o1(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function Y9(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function U9(t){return t<0?-t*t:t*t}function hh(t){var e=t(Me,Me),n=1;function r(){return n===1?t(Me,Me):n===.5?t(Y9,U9):t(o1(n),o1(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},gr(e)}function dh(){var t=hh(Cl());return t.copy=function(){return fa(t,dh()).exponent(t.exponent())},Ge.apply(t,arguments),t}function H9(){return dh.apply(null,arguments).exponent(.5)}function a1(t){return Math.sign(t)*t*t}function W9(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function p1(){var t=ch(),e=[0,1],n=!1,r;function i(o){var a=W9(t(o));return isNaN(a)?r:n?Math.round(a):a}return i.invert=function(o){return t.invert(a1(o))},i.domain=function(o){return arguments.length?(t.domain(o),i):t.domain()},i.range=function(o){return arguments.length?(t.range((e=Array.from(o,Ml)).map(a1)),i):e.slice()},i.rangeRound=function(o){return i.range(o).round(!0)},i.round=function(o){return arguments.length?(n=!!o,i):n},i.clamp=function(o){return arguments.length?(t.clamp(o),i):t.clamp()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return p1(t.domain(),e).round(n).clamp(t.clamp()).unknown(r)},Ge.apply(i,arguments),gr(i)}function g1(){var t=[],e=[],n=[],r;function i(){var a=0,s=Math.max(1,e.length);for(n=new Array(s-1);++a<s;)n[a-1]=$c(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[nr(n,a)]}return o.invertExtent=function(a){var s=e.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},o.domain=function(a){if(!arguments.length)return t.slice();t=[];for(let s of a)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(Bt),i()},o.range=function(a){return arguments.length?(e=Array.from(a),i()):e.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return g1().domain(t).range(e).unknown(r)},Ge.apply(o,arguments)}function m1(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[nr(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*e-(c-n)*t)/(n+1);return a}return a.domain=function(c){return arguments.length?([t,e]=c,t=+t,e=+e,s()):[t,e]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var l=i.indexOf(c);return l<0?[NaN,NaN]:l<1?[t,r[0]]:l>=n?[r[n-1],e]:[r[l-1],r[l]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return m1().domain([t,e]).range(i).unknown(o)},Ge.apply(gr(a),arguments)}function y1(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[nr(t,o,0,r)]:n}return i.domain=function(o){return arguments.length?(t=Array.from(o),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(o){return arguments.length?(e=Array.from(o),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(o){var a=e.indexOf(o);return[t[a-1],t[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return y1().domain(t).range(e).unknown(n)},Ge.apply(i,arguments)}function j9(t){return new Date(t)}function X9(t){return t instanceof Date?+t:Math.round(t)}function ph(t,e,n,r,i,o,a,s,c,l){var u=ch(),h=u.invert,f=u.domain,d=l(".%L"),m=l(":%S"),p=l("%I:%M"),g=l("%I %p"),y=l("%a %d"),w=l("%b %d"),b=l("%B"),v=l("%Y");function _(S){return(c(S)<S?d:s(S)<S?m:a(S)<S?p:o(S)<S?g:r(S)<S?i(S)<S?y:w:n(S)<S?b:v)(S)}return u.invert=function(S){return new Date(Math.round(h(S)))},u.domain=function(S){return arguments.length?f(Array.from(S,X9)):f().map(j9)},u.ticks=function(S){var k=f();return t(k[0],k[k.length-1],S??10)},u.tickFormat=function(S,k){return k==null?_:l(k)},u.nice=function(S){var k=f();return(!S||typeof S.range!="function")&&(S=e(k[0],k[k.length-1],S??10)),S?f(f1(k,S)):u},u.copy=function(){return fa(u,ph(t,e,n,r,i,o,a,s,c,l))},u}function G9(){return Ge.apply(ph(th,eh,je,oa,Yr,hr,ra,ea,kn,El).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function V9(){return Ge.apply(ph(Qf,Jf,Xe,aa,Hr,Lr,ia,na,kn,ua).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Fl(){var t=0,e=1,n,r,i,o,a=Me,s=!1,c;function l(h){return h==null||isNaN(h=+h)?c:a(i===0?.5:(h=(o(h)-n)*i,s?Math.max(0,Math.min(1,h)):h))}l.domain=function(h){return arguments.length?([t,e]=h,n=o(t=+t),r=o(e=+e),i=n===r?0:1/(r-n),l):[t,e]},l.clamp=function(h){return arguments.length?(s=!!h,l):s},l.interpolator=function(h){return arguments.length?(a=h,l):a};function u(h){return function(f){var d,m;return arguments.length?([d,m]=f,a=h(d,m),l):[a(0),a(1)]}}return l.range=u(yn),l.rangeRound=u(yo),l.unknown=function(h){return arguments.length?(c=h,l):c},function(h){return o=h,n=h(t),r=h(e),i=n===r?0:1/(r-n),l}}function mr(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function b1(){var t=gr(Fl()(Me));return t.copy=function(){return mr(t,b1())},Wn.apply(t,arguments)}function v1(){var t=uh(Fl()).domain([1,10]);return t.copy=function(){return mr(t,v1()).base(t.base())},Wn.apply(t,arguments)}function w1(){var t=fh(Fl());return t.copy=function(){return mr(t,w1()).constant(t.constant())},Wn.apply(t,arguments)}function gh(){var t=hh(Fl());return t.copy=function(){return mr(t,gh()).exponent(t.exponent())},Wn.apply(t,arguments)}function Z9(){return gh.apply(null,arguments).exponent(.5)}function x1(){var t=[],e=Me;function n(r){if(r!=null&&!isNaN(r=+r))return e((nr(t,r,1)-1)/(t.length-1))}return n.domain=function(r){if(!arguments.length)return t.slice();t=[];for(let i of r)i!=null&&!isNaN(i=+i)&&t.push(i);return t.sort(Bt),n},n.interpolator=function(r){return arguments.length?(e=r,n):e},n.range=function(){return t.map((r,i)=>e(i/(t.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(i,o)=>oi(t,o/r))},n.copy=function(){return x1(e).domain(t)},Wn.apply(n,arguments)}function Tl(){var t=0,e=.5,n=1,r=1,i,o,a,s,c,l=Me,u,h=!1,f;function d(p){return p==null||isNaN(p=+p)?f:(p=.5+((p=+u(p))-o)*(r*p<r*o?s:c),l(h?Math.max(0,Math.min(1,p)):p))}d.domain=function(p){return arguments.length?([t,e,n]=p,i=u(t=+t),o=u(e=+e),a=u(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d):[t,e,n]},d.clamp=function(p){return arguments.length?(h=!!p,d):h},d.interpolator=function(p){return arguments.length?(l=p,d):l};function m(p){return function(g){var y,w,b;return arguments.length?([y,w,b]=g,l=au(p,[y,w,b]),d):[l(0),l(.5),l(1)]}}return d.range=m(yn),d.rangeRound=m(yo),d.unknown=function(p){return arguments.length?(f=p,d):f},function(p){return u=p,i=p(t),o=p(e),a=p(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function _1(){var t=gr(Tl()(Me));return t.copy=function(){return mr(t,_1())},Wn.apply(t,arguments)}function S1(){var t=uh(Tl()).domain([.1,1,10]);return t.copy=function(){return mr(t,S1()).base(t.base())},Wn.apply(t,arguments)}function k1(){var t=fh(Tl());return t.copy=function(){return mr(t,k1()).constant(t.constant())},Wn.apply(t,arguments)}function mh(){var t=hh(Tl());return t.copy=function(){return mr(t,mh()).exponent(t.exponent())},Wn.apply(t,arguments)}function K9(){return mh.apply(null,arguments).exponent(.5)}function pt(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}var Q9=pt("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),J9=pt("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),tk=pt("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),ek=pt("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),nk=pt("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),rk=pt("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),ik=pt("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),ok=pt("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),ak=pt("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),sk=pt("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),lk=pt("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),Et=t=>eu(t[t.length-1]),A1=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(pt),ck=Et(A1),E1=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(pt),uk=Et(E1),M1=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(pt),fk=Et(M1),C1=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(pt),hk=Et(C1),F1=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(pt),dk=Et(F1),T1=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(pt),pk=Et(T1),O1=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(pt),gk=Et(O1),B1=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(pt),mk=Et(B1),D1=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(pt),yk=Et(D1),$1=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(pt),bk=Et($1),z1=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(pt),vk=Et(z1),N1=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(pt),wk=Et(N1),R1=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(pt),xk=Et(R1),P1=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(pt),_k=Et(P1),I1=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(pt),Sk=Et(I1),L1=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(pt),kk=Et(L1),q1=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(pt),Ak=Et(q1),Y1=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(pt),Ek=Et(Y1),U1=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(pt),Mk=Et(U1),H1=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(pt),Ck=Et(H1),W1=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(pt),Fk=Et(W1),j1=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(pt),Tk=Et(j1),X1=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(pt),Ok=Et(X1),G1=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(pt),Bk=Et(G1),V1=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(pt),Dk=Et(V1),Z1=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(pt),$k=Et(Z1),K1=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(pt),zk=Et(K1);function Nk(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-t*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-t*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-t*2475.67)))))))+")"}var Rk=bo(Re(300,.5,0),Re(-240,.5,1)),Pk=bo(Re(-100,.75,.35),Re(80,1.5,.8)),Ik=bo(Re(260,.75,.35),Re(80,1.5,.8)),Ol=Re();function Lk(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return Ol.h=360*t-100,Ol.s=1.5-1.5*e,Ol.l=.8-.9*e,Ol+""}var Bl=ar(),qk=Math.PI/3,Yk=Math.PI*2/3;function Uk(t){var e;return t=(.5-t)*Math.PI,Bl.r=255*(e=Math.sin(t))*e,Bl.g=255*(e=Math.sin(t+qk))*e,Bl.b=255*(e=Math.sin(t+Yk))*e,Bl+""}function Hk(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-t*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+t*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-t*6838.66)))))))+")"}function Dl(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}var Wk=Dl(pt("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),jk=Dl(pt("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),Xk=Dl(pt("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),Gk=Dl(pt("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function dt(t){return function(){return t}}var Q1=Math.abs,he=Math.atan2,jn=Math.cos,Vk=Math.max,Li=Math.min,Be=Math.sin,Ct=Math.sqrt,de=1e-12,br=Math.PI,zl=br/2,yr=2*br;function Zk(t){return t>1?0:t<-1?br:Math.acos(t)}function J1(t){return t>=1?zl:t<=-1?-zl:Math.asin(t)}function pa(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{let r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new lr(e)}function Kk(t){return t.innerRadius}function Qk(t){return t.outerRadius}function Jk(t){return t.startAngle}function tA(t){return t.endAngle}function eA(t){return t&&t.padAngle}function nA(t,e,n,r,i,o,a,s){var c=n-t,l=r-e,u=a-i,h=s-o,f=h*c-u*l;if(!(f*f<de))return f=(u*(e-o)-h*(t-i))/f,[t+f*c,e+f*l]}function $l(t,e,n,r,i,o,a){var s=t-n,c=e-r,l=(a?o:-o)/Ct(s*s+c*c),u=l*c,h=-l*s,f=t+u,d=e+h,m=n+u,p=r+h,g=(f+m)/2,y=(d+p)/2,w=m-f,b=p-d,v=w*w+b*b,_=i-o,S=f*p-m*d,k=(b<0?-1:1)*Ct(Vk(0,_*_*v-S*S)),C=(S*b-w*k)/v,F=(-S*w-b*k)/v,A=(S*b+w*k)/v,E=(-S*w+b*k)/v,D=C-g,z=F-y,M=A-g,T=E-y;return D*D+z*z>M*M+T*T&&(C=A,F=E),{cx:C,cy:F,x01:-u,y01:-h,x11:C*(i/_-1),y11:F*(i/_-1)}}function rA(){var t=Kk,e=Qk,n=dt(0),r=null,i=Jk,o=tA,a=eA,s=null,c=pa(l);function l(){var u,h,f=+t.apply(this,arguments),d=+e.apply(this,arguments),m=i.apply(this,arguments)-zl,p=o.apply(this,arguments)-zl,g=Q1(p-m),y=p>m;if(s||(s=u=c()),d<f&&(h=d,d=f,f=h),!(d>de))s.moveTo(0,0);else if(g>yr-de)s.moveTo(d*jn(m),d*Be(m)),s.arc(0,0,d,m,p,!y),f>de&&(s.moveTo(f*jn(p),f*Be(p)),s.arc(0,0,f,p,m,y));else{var w=m,b=p,v=m,_=p,S=g,k=g,C=a.apply(this,arguments)/2,F=C>de&&(r?+r.apply(this,arguments):Ct(f*f+d*d)),A=Li(Q1(d-f)/2,+n.apply(this,arguments)),E=A,D=A,z,M;if(F>de){var T=J1(F/f*Be(C)),B=J1(F/d*Be(C));(S-=T*2)>de?(T*=y?1:-1,v+=T,_-=T):(S=0,v=_=(m+p)/2),(k-=B*2)>de?(B*=y?1:-1,w+=B,b-=B):(k=0,w=b=(m+p)/2)}var N=d*jn(w),L=d*Be(w),q=f*jn(_),U=f*Be(_);if(A>de){var Z=d*jn(b),Q=d*Be(b),j=f*jn(v),H=f*Be(v),W;if(g<br)if(W=nA(N,L,j,H,Z,Q,q,U)){var J=N-W[0],K=L-W[1],ht=Z-W[0],G=Q-W[1],tt=1/Be(Zk((J*ht+K*G)/(Ct(J*J+K*K)*Ct(ht*ht+G*G)))/2),ot=Ct(W[0]*W[0]+W[1]*W[1]);E=Li(A,(f-ot)/(tt-1)),D=Li(A,(d-ot)/(tt+1))}else E=D=0}k>de?D>de?(z=$l(j,H,N,L,d,D,y),M=$l(Z,Q,q,U,d,D,y),s.moveTo(z.cx+z.x01,z.cy+z.y01),D<A?s.arc(z.cx,z.cy,D,he(z.y01,z.x01),he(M.y01,M.x01),!y):(s.arc(z.cx,z.cy,D,he(z.y01,z.x01),he(z.y11,z.x11),!y),s.arc(0,0,d,he(z.cy+z.y11,z.cx+z.x11),he(M.cy+M.y11,M.cx+M.x11),!y),s.arc(M.cx,M.cy,D,he(M.y11,M.x11),he(M.y01,M.x01),!y))):(s.moveTo(N,L),s.arc(0,0,d,w,b,!y)):s.moveTo(N,L),!(f>de)||!(S>de)?s.lineTo(q,U):E>de?(z=$l(q,U,Z,Q,f,-E,y),M=$l(N,L,j,H,f,-E,y),s.lineTo(z.cx+z.x01,z.cy+z.y01),E<A?s.arc(z.cx,z.cy,E,he(z.y01,z.x01),he(M.y01,M.x01),!y):(s.arc(z.cx,z.cy,E,he(z.y01,z.x01),he(z.y11,z.x11),!y),s.arc(0,0,f,he(z.cy+z.y11,z.cx+z.x11),he(M.cy+M.y11,M.cx+M.x11),y),s.arc(M.cx,M.cy,E,he(M.y11,M.x11),he(M.y01,M.x01),!y))):s.arc(0,0,f,_,v,y)}if(s.closePath(),u)return s=null,u+""||null}return l.centroid=function(){var u=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,h=(+i.apply(this,arguments)+ +o.apply(this,arguments))/2-br/2;return[jn(h)*u,Be(h)*u]},l.innerRadius=function(u){return arguments.length?(t=typeof u=="function"?u:dt(+u),l):t},l.outerRadius=function(u){return arguments.length?(e=typeof u=="function"?u:dt(+u),l):e},l.cornerRadius=function(u){return arguments.length?(n=typeof u=="function"?u:dt(+u),l):n},l.padRadius=function(u){return arguments.length?(r=u==null?null:typeof u=="function"?u:dt(+u),l):r},l.startAngle=function(u){return arguments.length?(i=typeof u=="function"?u:dt(+u),l):i},l.endAngle=function(u){return arguments.length?(o=typeof u=="function"?u:dt(+u),l):o},l.padAngle=function(u){return arguments.length?(a=typeof u=="function"?u:dt(+u),l):a},l.context=function(u){return arguments.length?(s=u??null,l):s},l}var iA=Array.prototype.slice;function Ll(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function iy(t){this._context=t}iy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function ql(t){return new iy(t)}function xh(t){return t[0]}function _h(t){return t[1]}function Sh(t,e){var n=dt(!0),r=null,i=ql,o=null,a=pa(s);t=typeof t=="function"?t:t===void 0?xh:dt(t),e=typeof e=="function"?e:e===void 0?_h:dt(e);function s(c){var l,u=(c=Ll(c)).length,h,f=!1,d;for(r==null&&(o=i(d=a())),l=0;l<=u;++l)!(l<u&&n(h=c[l],l,c))===f&&((f=!f)?o.lineStart():o.lineEnd()),f&&o.point(+t(h,l,c),+e(h,l,c));if(d)return o=null,d+""||null}return s.x=function(c){return arguments.length?(t=typeof c=="function"?c:dt(+c),s):t},s.y=function(c){return arguments.length?(e=typeof c=="function"?c:dt(+c),s):e},s.defined=function(c){return arguments.length?(n=typeof c=="function"?c:dt(!!c),s):n},s.curve=function(c){return arguments.length?(i=c,r!=null&&(o=i(r)),s):i},s.context=function(c){return arguments.length?(c==null?r=o=null:o=i(r=c),s):r},s}function oy(t,e,n){var r=null,i=dt(!0),o=null,a=ql,s=null,c=pa(l);t=typeof t=="function"?t:t===void 0?xh:dt(+t),e=typeof e=="function"?e:dt(e===void 0?0:+e),n=typeof n=="function"?n:n===void 0?_h:dt(+n);function l(h){var f,d,m,p=(h=Ll(h)).length,g,y=!1,w,b=new Array(p),v=new Array(p);for(o==null&&(s=a(w=c())),f=0;f<=p;++f){if(!(f<p&&i(g=h[f],f,h))===y)if(y=!y)d=f,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),m=f-1;m>=d;--m)s.point(b[m],v[m]);s.lineEnd(),s.areaEnd()}y&&(b[f]=+t(g,f,h),v[f]=+e(g,f,h),s.point(r?+r(g,f,h):b[f],n?+n(g,f,h):v[f]))}if(w)return s=null,w+""||null}function u(){return Sh().defined(i).curve(a).context(o)}return l.x=function(h){return arguments.length?(t=typeof h=="function"?h:dt(+h),r=null,l):t},l.x0=function(h){return arguments.length?(t=typeof h=="function"?h:dt(+h),l):t},l.x1=function(h){return arguments.length?(r=h==null?null:typeof h=="function"?h:dt(+h),l):r},l.y=function(h){return arguments.length?(e=typeof h=="function"?h:dt(+h),n=null,l):e},l.y0=function(h){return arguments.length?(e=typeof h=="function"?h:dt(+h),l):e},l.y1=function(h){return arguments.length?(n=h==null?null:typeof h=="function"?h:dt(+h),l):n},l.lineX0=l.lineY0=function(){return u().x(t).y(e)},l.lineY1=function(){return u().x(t).y(n)},l.lineX1=function(){return u().x(r).y(e)},l.defined=function(h){return arguments.length?(i=typeof h=="function"?h:dt(!!h),l):i},l.curve=function(h){return arguments.length?(a=h,o!=null&&(s=a(o)),l):a},l.context=function(h){return arguments.length?(h==null?o=s=null:s=a(o=h),l):o},l}function oA(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function aA(t){return t}function sA(){var t=aA,e=oA,n=null,r=dt(0),i=dt(yr),o=dt(0);function a(s){var c,l=(s=Ll(s)).length,u,h,f=0,d=new Array(l),m=new Array(l),p=+r.apply(this,arguments),g=Math.min(yr,Math.max(-yr,i.apply(this,arguments)-p)),y,w=Math.min(Math.abs(g)/l,o.apply(this,arguments)),b=w*(g<0?-1:1),v;for(c=0;c<l;++c)(v=m[d[c]=c]=+t(s[c],c,s))>0&&(f+=v);for(e!=null?d.sort(function(_,S){return e(m[_],m[S])}):n!=null&&d.sort(function(_,S){return n(s[_],s[S])}),c=0,h=f?(g-l*b)/f:0;c<l;++c,p=y)u=d[c],v=m[u],y=p+(v>0?v*h:0)+b,m[u]={data:s[u],index:c,value:v,startAngle:p,endAngle:y,padAngle:w};return m}return a.value=function(s){return arguments.length?(t=typeof s=="function"?s:dt(+s),a):t},a.sortValues=function(s){return arguments.length?(e=s,n=null,a):e},a.sort=function(s){return arguments.length?(n=s,e=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:dt(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:dt(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:dt(+s),a):o},a}var ay=kh(ql);function sy(t){this._curve=t}sy.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};function kh(t){function e(n){return new sy(t(n))}return e._curve=t,e}function ha(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(n){return arguments.length?e(kh(n)):e()._curve},t}function lA(){return ha(Sh().curve(ay))}function cA(){var t=oy().curve(ay),e=t.curve,n=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return ha(n())},delete t.lineX0,t.lineEndAngle=function(){return ha(r())},delete t.lineX1,t.lineInnerRadius=function(){return ha(i())},delete t.lineY0,t.lineOuterRadius=function(){return ha(o())},delete t.lineY1,t.curve=function(a){return arguments.length?e(kh(a)):e()._curve},t}function da(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}var Nl=class{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}},vh=class{constructor(e){this._context=e}lineStart(){this._point=0}lineEnd(){}point(e,n){if(e=+e,n=+n,this._point===0)this._point=1;else{let r=da(this._x0,this._y0),i=da(this._x0,this._y0=(this._y0+n)/2),o=da(e,this._y0),a=da(e,n);this._context.moveTo(...r),this._context.bezierCurveTo(...i,...o,...a)}this._x0=e,this._y0=n}};function ly(t){return new Nl(t,!0)}function cy(t){return new Nl(t,!1)}function uA(t){return new vh(t)}function fA(t){return t.source}function hA(t){return t.target}function Yl(t){let e=fA,n=hA,r=xh,i=_h,o=null,a=null,s=pa(c);function c(){let l,u=iA.call(arguments),h=e.apply(this,u),f=n.apply(this,u);if(o==null&&(a=t(l=s())),a.lineStart(),u[0]=h,a.point(+r.apply(this,u),+i.apply(this,u)),u[0]=f,a.point(+r.apply(this,u),+i.apply(this,u)),a.lineEnd(),l)return a=null,l+""||null}return c.source=function(l){return arguments.length?(e=l,c):e},c.target=function(l){return arguments.length?(n=l,c):n},c.x=function(l){return arguments.length?(r=typeof l=="function"?l:dt(+l),c):r},c.y=function(l){return arguments.length?(i=typeof l=="function"?l:dt(+l),c):i},c.context=function(l){return arguments.length?(l==null?o=a=null:a=t(o=l),c):o},c}function dA(){return Yl(ly)}function pA(){return Yl(cy)}function gA(){let t=Yl(uA);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}var mA=Ct(3),uy={draw(t,e){let n=Ct(e+Li(e/28,.75))*.59436,r=n/2,i=r*mA;t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-i,-r),t.lineTo(i,r),t.moveTo(-i,r),t.lineTo(i,-r)}},Ul={draw(t,e){let n=Ct(e/br);t.moveTo(n,0),t.arc(0,0,n,0,yr)}},fy={draw(t,e){let n=Ct(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},hy=Ct(1/3),yA=hy*2,dy={draw(t,e){let n=Ct(e/yA),r=n*hy;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},py={draw(t,e){let n=Ct(e)*.62625;t.moveTo(0,-n),t.lineTo(n,0),t.lineTo(0,n),t.lineTo(-n,0),t.closePath()}},gy={draw(t,e){let n=Ct(e-Li(e/7,2))*.87559;t.moveTo(-n,0),t.lineTo(n,0),t.moveTo(0,n),t.lineTo(0,-n)}},my={draw(t,e){let n=Ct(e),r=-n/2;t.rect(r,r,n,n)}},yy={draw(t,e){let n=Ct(e)*.4431;t.moveTo(n,n),t.lineTo(n,-n),t.lineTo(-n,-n),t.lineTo(-n,n),t.closePath()}},bA=.8908130915292852,by=Be(br/10)/Be(7*br/10),vA=Be(yr/10)*by,wA=-jn(yr/10)*by,vy={draw(t,e){let n=Ct(e*bA),r=vA*n,i=wA*n;t.moveTo(0,-n),t.lineTo(r,i);for(let o=1;o<5;++o){let a=yr*o/5,s=jn(a),c=Be(a);t.lineTo(c*n,-s*n),t.lineTo(s*r-c*i,c*r+s*i)}t.closePath()}},yh=Ct(3),wy={draw(t,e){let n=-Ct(e/(yh*3));t.moveTo(0,n*2),t.lineTo(-yh*n,-n),t.lineTo(yh*n,-n),t.closePath()}},xA=Ct(3),xy={draw(t,e){let n=Ct(e)*.6824,r=n/2,i=n*xA/2;t.moveTo(0,-n),t.lineTo(i,r),t.lineTo(-i,r),t.closePath()}},Ve=-.5,Ze=Ct(3)/2,wh=1/Ct(12),_A=(wh/2+1)*3,_y={draw(t,e){let n=Ct(e/_A),r=n/2,i=n*wh,o=r,a=n*wh+n,s=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(s,c),t.lineTo(Ve*r-Ze*i,Ze*r+Ve*i),t.lineTo(Ve*o-Ze*a,Ze*o+Ve*a),t.lineTo(Ve*s-Ze*c,Ze*s+Ve*c),t.lineTo(Ve*r+Ze*i,Ve*i-Ze*r),t.lineTo(Ve*o+Ze*a,Ve*a-Ze*o),t.lineTo(Ve*s+Ze*c,Ve*c-Ze*s),t.closePath()}},Sy={draw(t,e){let n=Ct(e-Li(e/6,1.7))*.6189;t.moveTo(-n,-n),t.lineTo(n,n),t.moveTo(-n,n),t.lineTo(n,-n)}},SA=[Ul,fy,dy,my,vy,wy,_y],kA=[Ul,gy,Sy,xy,uy,yy,py];function AA(t,e){let n=null,r=pa(i);t=typeof t=="function"?t:dt(t||Ul),e=typeof e=="function"?e:dt(e===void 0?64:+e);function i(){let o;if(n||(n=o=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),o)return n=null,o+""||null}return i.type=function(o){return arguments.length?(t=typeof o=="function"?o:dt(o),i):t},i.size=function(o){return arguments.length?(e=typeof o=="function"?o:dt(+o),i):e},i.context=function(o){return arguments.length?(n=o??null,i):n},i}function vr(){}function Rl(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function Hl(t){this._context=t}Hl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Rl(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Rl(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function EA(t){return new Hl(t)}function ky(t){this._context=t}ky.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Rl(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function MA(t){return new ky(t)}function Ay(t){this._context=t}Ay.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Rl(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function CA(t){return new Ay(t)}function Ey(t,e){this._basis=new Hl(t),this._beta=e}Ey.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r=t[0],i=e[0],o=t[n]-r,a=e[n]-i,s=-1,c;++s<=n;)c=s/n,this._basis.point(this._beta*t[s]+(1-this._beta)*(r+c*o),this._beta*e[s]+(1-this._beta)*(i+c*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var FA=(function t(e){function n(r){return e===1?new Hl(r):new Ey(r,e)}return n.beta=function(r){return t(+r)},n})(.85);function Pl(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function Ah(t,e){this._context=t,this._k=(1-e)/6}Ah.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Pl(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Pl(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var TA=(function t(e){function n(r){return new Ah(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Eh(t,e){this._context=t,this._k=(1-e)/6}Eh.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Pl(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var OA=(function t(e){function n(r){return new Eh(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Mh(t,e){this._context=t,this._k=(1-e)/6}Mh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Pl(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var BA=(function t(e){function n(r){return new Mh(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Ch(t,e,n){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>de){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>de){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*l+t._x1*t._l23_2a-e*t._l12_2a)/u,a=(a*l+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function My(t,e){this._context=t,this._alpha=e}My.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Ch(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var DA=(function t(e){function n(r){return e?new My(r,e):new Ah(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Cy(t,e){this._context=t,this._alpha=e}Cy.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Ch(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var $A=(function t(e){function n(r){return e?new Cy(r,e):new Eh(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Fy(t,e){this._context=t,this._alpha=e}Fy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Ch(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var zA=(function t(e){function n(r){return e?new Fy(r,e):new Mh(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Ty(t){this._context=t}Ty.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function NA(t){return new Ty(t)}function ty(t){return t<0?-1:1}function ey(t,e,n){var r=t._x1-t._x0,i=e-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(n-t._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(ty(o)+ty(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function ny(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function bh(t,e,n){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,s=(o-r)/3;t._context.bezierCurveTo(r+s,i+s*e,o-s,a-s*n,o,a)}function Il(t){this._context=t}Il.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:bh(this,this._t0,ny(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,bh(this,ny(this,n=ey(this,t,e)),n);break;default:bh(this,this._t0,n=ey(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function Oy(t){this._context=new By(t)}(Oy.prototype=Object.create(Il.prototype)).point=function(t,e){Il.prototype.point.call(this,e,t)};function By(t){this._context=t}By.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,o){this._context.bezierCurveTo(e,t,r,n,o,i)}};function RA(t){return new Il(t)}function PA(t){return new Oy(t)}function Dy(t){this._context=t}Dy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=ry(t),i=ry(e),o=0,a=1;a<n;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],e[a]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function ry(t){var e,n=t.length-1,r,i=new Array(n),o=new Array(n),a=new Array(n);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<n-1;++e)i[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(i[n-1]=2,o[n-1]=7,a[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)r=i[e]/o[e-1],o[e]-=r,a[e]-=r*a[e-1];for(i[n-1]=a[n-1]/o[n-1],e=n-2;e>=0;--e)i[e]=(a[e]-i[e+1])/o[e];for(o[n-1]=(t[n]+i[n-1])/2,e=0;e<n-1;++e)o[e]=2*t[e+1]-i[e+1];return[i,o]}function IA(t){return new Dy(t)}function Wl(t,e){this._context=t,this._t=e}Wl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function LA(t){return new Wl(t,.5)}function qA(t){return new Wl(t,0)}function YA(t){return new Wl(t,1)}function qi(t,e){if((a=t.length)>1)for(var n=1,r,i,o=t[e[0]],a,s=o.length;n<a;++n)for(i=o,o=t[e[n]],r=0;r<s;++r)o[r][1]+=o[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function Yi(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function UA(t,e){return t[e]}function HA(t){let e=[];return e.key=t,e}function WA(){var t=dt([]),e=Yi,n=qi,r=UA;function i(o){var a=Array.from(t.apply(this,arguments),HA),s,c=a.length,l=-1,u;for(let h of o)for(s=0,++l;s<c;++s)(a[s][l]=[0,+r(h,a[s].key,l,o)]).data=h;for(s=0,u=Ll(e(a));s<c;++s)a[u[s]].index=s;return n(a,u),a}return i.keys=function(o){return arguments.length?(t=typeof o=="function"?o:dt(Array.from(o)),i):t},i.value=function(o){return arguments.length?(r=typeof o=="function"?o:dt(+o),i):r},i.order=function(o){return arguments.length?(e=o==null?Yi:typeof o=="function"?o:dt(Array.from(o)),i):e},i.offset=function(o){return arguments.length?(n=o??qi,i):n},i}function jA(t,e){if((r=t.length)>0){for(var n,r,i=0,o=t[0].length,a;i<o;++i){for(a=n=0;n<r;++n)a+=t[n][i][1]||0;if(a)for(n=0;n<r;++n)t[n][i][1]/=a}qi(t,e)}}function XA(t,e){if((c=t.length)>0)for(var n,r=0,i,o,a,s,c,l=t[e[0]].length;r<l;++r)for(a=s=0,n=0;n<c;++n)(o=(i=t[e[n]][r])[1]-i[0])>0?(i[0]=a,i[1]=a+=o):o<0?(i[1]=s,i[0]=s+=o):(i[0]=0,i[1]=o)}function GA(t,e){if((i=t.length)>0){for(var n=0,r=t[e[0]],i,o=r.length;n<o;++n){for(var a=0,s=0;a<i;++a)s+=t[a][n][1]||0;r[n][1]+=r[n][0]=-s/2}qi(t,e)}}function VA(t,e){if(!(!((a=t.length)>0)||!((o=(i=t[e[0]]).length)>0))){for(var n=0,r=1,i,o,a;r<o;++r){for(var s=0,c=0,l=0;s<a;++s){for(var u=t[e[s]],h=u[r][1]||0,f=u[r-1][1]||0,d=(h-f)/2,m=0;m<s;++m){var p=t[e[m]],g=p[r][1]||0,y=p[r-1][1]||0;d+=g-y}c+=h,l+=d*h}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,qi(t,e)}}function $y(t){var e=t.map(ZA);return Yi(t).sort(function(n,r){return e[n]-e[r]})}function ZA(t){for(var e=-1,n=0,r=t.length,i,o=-1/0;++e<r;)(i=+t[e][1])>o&&(o=i,n=e);return n}function zy(t){var e=t.map(Ny);return Yi(t).sort(function(n,r){return e[n]-e[r]})}function Ny(t){for(var e=0,n=-1,r=t.length,i;++n<r;)(i=+t[n][1])&&(e+=i);return e}function KA(t){return zy(t).reverse()}function QA(t){var e=t.length,n,r,i=t.map(Ny),o=$y(t),a=0,s=0,c=[],l=[];for(n=0;n<e;++n)r=o[n],a<s?(a+=i[r],c.push(r)):(s+=i[r],l.push(r));return l.reverse().concat(c)}function JA(t){return Yi(t).reverse()}var jl=t=>()=>t;function tE(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function An(t,e,n){this.k=t,this.x=e,this.y=n}An.prototype={constructor:An,scale:function(t){return t===1?this:new An(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new An(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Xl=new An(1,0,0);Py.prototype=An.prototype;function Py(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Xl;return t.__zoom}function Fh(t){t.stopImmediatePropagation()}function ga(t){t.preventDefault(),t.stopImmediatePropagation()}function eE(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function nE(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Ry(){return this.__zoom||Xl}function rE(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function iE(){return navigator.maxTouchPoints||"ontouchstart"in this}function oE(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function aE(){var t=eE,e=nE,n=oE,r=rE,i=iE,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],s=250,c=ou,l=Ye("start","zoom","end"),u,h,f,d=500,m=150,p=0,g=10;function y(M){M.property("__zoom",Ry).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",F).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",E).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(M,T,B,N){var L=M.selection?M.selection():M;L.property("__zoom",Ry),M!==L?_(M,T,B,N):L.interrupt().each(function(){S(this,arguments).event(N).start().zoom(null,typeof T=="function"?T.apply(this,arguments):T).end()})},y.scaleBy=function(M,T,B,N){y.scaleTo(M,function(){var L=this.__zoom.k,q=typeof T=="function"?T.apply(this,arguments):T;return L*q},B,N)},y.scaleTo=function(M,T,B,N){y.transform(M,function(){var L=e.apply(this,arguments),q=this.__zoom,U=B==null?v(L):typeof B=="function"?B.apply(this,arguments):B,Z=q.invert(U),Q=typeof T=="function"?T.apply(this,arguments):T;return n(b(w(q,Q),U,Z),L,a)},B,N)},y.translateBy=function(M,T,B,N){y.transform(M,function(){return n(this.__zoom.translate(typeof T=="function"?T.apply(this,arguments):T,typeof B=="function"?B.apply(this,arguments):B),e.apply(this,arguments),a)},null,N)},y.translateTo=function(M,T,B,N,L){y.transform(M,function(){var q=e.apply(this,arguments),U=this.__zoom,Z=N==null?v(q):typeof N=="function"?N.apply(this,arguments):N;return n(Xl.translate(Z[0],Z[1]).scale(U.k).translate(typeof T=="function"?-T.apply(this,arguments):-T,typeof B=="function"?-B.apply(this,arguments):-B),q,a)},N,L)};function w(M,T){return T=Math.max(o[0],Math.min(o[1],T)),T===M.k?M:new An(T,M.x,M.y)}function b(M,T,B){var N=T[0]-B[0]*M.k,L=T[1]-B[1]*M.k;return N===M.x&&L===M.y?M:new An(M.k,N,L)}function v(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function _(M,T,B,N){M.on("start.zoom",function(){S(this,arguments).event(N).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(N).end()}).tween("zoom",function(){var L=this,q=arguments,U=S(L,q).event(N),Z=e.apply(L,q),Q=B==null?v(Z):typeof B=="function"?B.apply(L,q):B,j=Math.max(Z[1][0]-Z[0][0],Z[1][1]-Z[0][1]),H=L.__zoom,W=typeof T=="function"?T.apply(L,q):T,J=c(H.invert(Q).concat(j/H.k),W.invert(Q).concat(j/W.k));return function(K){if(K===1)K=W;else{var ht=J(K),G=j/ht[2];K=new An(G,Q[0]-ht[0]*G,Q[1]-ht[1]*G)}U.zoom(null,K)}})}function S(M,T,B){return!B&&M.__zooming||new k(M,T)}function k(M,T){this.that=M,this.args=T,this.active=0,this.sourceEvent=null,this.extent=e.apply(M,T),this.taps=0}k.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,T){return this.mouse&&M!=="mouse"&&(this.mouse[1]=T.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=T.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=T.invert(this.touch1[0])),this.that.__zoom=T,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var T=Xt(this.that).datum();l.call(M,this.that,new tE(M,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:l}),T)}};function C(M,...T){if(!t.apply(this,arguments))return;var B=S(this,T).event(M),N=this.__zoom,L=Math.max(o[0],Math.min(o[1],N.k*Math.pow(2,r.apply(this,arguments)))),q=le(M);if(B.wheel)(B.mouse[0][0]!==q[0]||B.mouse[0][1]!==q[1])&&(B.mouse[1]=N.invert(B.mouse[0]=q)),clearTimeout(B.wheel);else{if(N.k===L)return;B.mouse=[q,N.invert(q)],$n(this),B.start()}ga(M),B.wheel=setTimeout(U,m),B.zoom("mouse",n(b(w(N,L),B.mouse[0],B.mouse[1]),B.extent,a));function U(){B.wheel=null,B.end()}}function F(M,...T){if(f||!t.apply(this,arguments))return;var B=M.currentTarget,N=S(this,T,!0).event(M),L=Xt(M.view).on("mousemove.zoom",Q,!0).on("mouseup.zoom",j,!0),q=le(M,B),U=M.clientX,Z=M.clientY;ui(M.view),Fh(M),N.mouse=[q,this.__zoom.invert(q)],$n(this),N.start();function Q(H){if(ga(H),!N.moved){var W=H.clientX-U,J=H.clientY-Z;N.moved=W*W+J*J>p}N.event(H).zoom("mouse",n(b(N.that.__zoom,N.mouse[0]=le(H,B),N.mouse[1]),N.extent,a))}function j(H){L.on("mousemove.zoom mouseup.zoom",null),fi(H.view,N.moved),ga(H),N.event(H).end()}}function A(M,...T){if(t.apply(this,arguments)){var B=this.__zoom,N=le(M.changedTouches?M.changedTouches[0]:M,this),L=B.invert(N),q=B.k*(M.shiftKey?.5:2),U=n(b(w(B,q),N,L),e.apply(this,T),a);ga(M),s>0?Xt(this).transition().duration(s).call(_,U,N,M):Xt(this).call(y.transform,U,N,M)}}function E(M,...T){if(t.apply(this,arguments)){var B=M.touches,N=B.length,L=S(this,T,M.changedTouches.length===N).event(M),q,U,Z,Q;for(Fh(M),U=0;U<N;++U)Z=B[U],Q=le(Z,this),Q=[Q,this.__zoom.invert(Q),Z.identifier],L.touch0?!L.touch1&&L.touch0[2]!==Q[2]&&(L.touch1=Q,L.taps=0):(L.touch0=Q,q=!0,L.taps=1+!!u);u&&(u=clearTimeout(u)),q&&(L.taps<2&&(h=Q[0],u=setTimeout(function(){u=null},d)),$n(this),L.start())}}function D(M,...T){if(this.__zooming){var B=S(this,T).event(M),N=M.changedTouches,L=N.length,q,U,Z,Q;for(ga(M),q=0;q<L;++q)U=N[q],Z=le(U,this),B.touch0&&B.touch0[2]===U.identifier?B.touch0[0]=Z:B.touch1&&B.touch1[2]===U.identifier&&(B.touch1[0]=Z);if(U=B.that.__zoom,B.touch1){var j=B.touch0[0],H=B.touch0[1],W=B.touch1[0],J=B.touch1[1],K=(K=W[0]-j[0])*K+(K=W[1]-j[1])*K,ht=(ht=J[0]-H[0])*ht+(ht=J[1]-H[1])*ht;U=w(U,Math.sqrt(K/ht)),Z=[(j[0]+W[0])/2,(j[1]+W[1])/2],Q=[(H[0]+J[0])/2,(H[1]+J[1])/2]}else if(B.touch0)Z=B.touch0[0],Q=B.touch0[1];else return;B.zoom("touch",n(b(U,Z,Q),B.extent,a))}}function z(M,...T){if(this.__zooming){var B=S(this,T).event(M),N=M.changedTouches,L=N.length,q,U;for(Fh(M),f&&clearTimeout(f),f=setTimeout(function(){f=null},d),q=0;q<L;++q)U=N[q],B.touch0&&B.touch0[2]===U.identifier?delete B.touch0:B.touch1&&B.touch1[2]===U.identifier&&delete B.touch1;if(B.touch1&&!B.touch0&&(B.touch0=B.touch1,delete B.touch1),B.touch0)B.touch0[1]=this.__zoom.invert(B.touch0[0]);else if(B.end(),B.taps===2&&(U=le(U,this),Math.hypot(h[0]-U[0],h[1]-U[1])<g)){var Z=Xt(this).on("dblclick.zoom");Z&&Z.apply(this,arguments)}}}return y.wheelDelta=function(M){return arguments.length?(r=typeof M=="function"?M:jl(+M),y):r},y.filter=function(M){return arguments.length?(t=typeof M=="function"?M:jl(!!M),y):t},y.touchable=function(M){return arguments.length?(i=typeof M=="function"?M:jl(!!M),y):i},y.extent=function(M){return arguments.length?(e=typeof M=="function"?M:jl([[+M[0][0],+M[0][1]],[+M[1][0],+M[1][1]]]),y):e},y.scaleExtent=function(M){return arguments.length?(o[0]=+M[0],o[1]=+M[1],y):[o[0],o[1]]},y.translateExtent=function(M){return arguments.length?(a[0][0]=+M[0][0],a[1][0]=+M[1][0],a[0][1]=+M[0][1],a[1][1]=+M[1][1],y):[[a[0][0],a[0][1]],[a[1][0],a[1][1]]]},y.constrain=function(M){return arguments.length?(n=M,y):n},y.duration=function(M){return arguments.length?(s=+M,y):s},y.interpolate=function(M){return arguments.length?(c=M,y):c},y.on=function(){var M=l.on.apply(l,arguments);return M===l?y:M},y.clickDistance=function(M){return arguments.length?(p=(M=+M)*M,y):Math.sqrt(p)},y.tapDistance=function(M){return arguments.length?(g=+M,y):g},y}function Gl(t){return t.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function at(t,e){return Object.keys(t).reduce((r,i)=>(i in e||(r[i]=t[i]),r),{})}var Th=["moveX","moveY"],sE=["fill","fillOpacity","stroke","strokeOpacity","strokeWidth","strokeDasharray","opacity","color","cursor","pointerEvents"],lE=["index","rowID","text","labelAdjustmentOptions",...Th];function ma(t){return Object.keys(t??{}).some(e=>!sE.includes(e)&&!lE.includes(e)&&e in document.documentElement.style)}function rt(t,e){for(let[n,r]of Object.entries(e))Th.includes(n)||t.style(Gl(n),r)}function Ui(t,e,n,r=[]){return t.flatMap((i,o)=>{let a=e&&n?n[i[e]]:void 0,s=r.find(l=>l.rowID==null&&l.index===o),c=r.find(l=>l.rowID!=null&&l.rowID===i.rowID);return a||s||c?[{...a,...s,...c,index:o}]:[]})}function Hi(t,e,n){let r=e.find(i=>i.index===n);if(r)for(let[i,o]of Object.entries(r))["index","rowID","text","labelAdjustmentOptions",...Th].includes(i)||t.style(Gl(i),o)}function Iy(t){let e=typeof t=="string"?R.color(t)?.rgb():null;return!!e&&e.r===255&&e.g===255&&e.b===255&&e.opacity===1}function Xn(t,e){let{part:n,text:r,...i}=(t??[]).find(o=>o.part===e)??{};return{text:r,style:i}}function De(t,e={}){t.each(function(){let n=Number(e.moveX??0),r=Number(e.moveY??0),i=this.getAttribute("transform")||"";this.__drawn__={...this.__drawn__,moveX:n,moveY:r},this.setAttribute("transform",`translate(${n}, ${r}) ${i}`.trim())})}function jr(t){if(t==null)return[];if(Array.isArray(t))return t;let e=Object.keys(t),n=e.length?t[e[0]].length:0,r=[];for(let i=0;i<n;i++){let o={};for(let a of e)o[a]=t[a][i];r.push(o)}return r}function Xr(t){for(var e=1;document.getElementById(t+"-"+e);)e++;return t+"-"+e}function wr(t){return t.replace(/[^a-zA-Z0-9_-]/g,"_")}function Le(t,e){if(typeof t>"u"||t===null)return 0;if(typeof t=="number")return t;var n;if(t.includes("%")){var r=parseFloat(t),i=r/100;n=Math.round(i*e)}else t.includes("px"),n=parseFloat(t);return Math.floor(n)}function Wr(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function ya(t,e){let n={...t};if(!Wr(e))return n;for(let r in e){let i=e[r];if(i!=null)if(Wr(i))n[r]=ya(Wr(n[r])?n[r]:{},i);else{if(Array.isArray(i)&&i.length===0&&Wr(n[r]))continue;n[r]=i}}return n}function cE(t,e){if(typeof t=="number")return t*e;let n=typeof t=="string"&&t.trim().match(/^(-?[\d.]+)([a-z%]*)$/i);return n?`${parseFloat(n[1])*e}${n[2]}`:t}function qy(t,e){if(!Wr(t))return t;let n={};for(let r in t)n[r]=r==="fontSize"?cE(t[r],e):qy(t[r],e);return n}function ut(t,e,n={},r=this?.themeOptions){let i=r?.[e],o=ya(t,i),a=Gn(r);return a!==1&&(o=qy(o,a)),ya(o,n)}function Gn(t){let e=t?.textScale;return typeof e=="number"&&e>0?e:1}var Ly=new Set;function qe(t){Ly.has(t)||(Ly.add(t),console.warn(t))}function ft(t,e,n,r){this.svg=t,this.margin=e,this.width=n,this.height=r}function Vl(t,e,n,r={},i={}){let o={id:e||"svg-container",margin:{top:5,right:50,bottom:5,left:50},style:{backgroundColor:"#0000"},width:null,height:null},a=ut(o,n,r,i),{id:s,margin:c,style:l,width:u,height:h}=a,f=at(l,o.style),d={top:Le(c?.top??0,h),right:Le(c?.right??0,u),bottom:Le(c?.bottom??0,h),left:Le(c?.left??0,u)};var m=R.select(t).append("svg").attr("id",Xr(s)).attr("width",u||"100%").attr("height",h||"100%").attr("preserveAspectRatio","xMinYMin meet").attr("viewBox",`0 0 ${u} ${h}`).classed("geneviewer-svg-content",!0).style("box-sizing","border-box").style("background-color",l.backgroundColor).each(function(){let g=R.select(this);rt(g,f)});Object.entries(l).forEach(([g,y])=>{m.style(g,y)});let p=new ft(m,d,u,h);return p.themeOptions=i,p}ft.prototype.cluster=function(t={}){let e={separateStrands:!1,strandSpacing:0,preventGeneOverlap:!1,overlapSpacing:5},n=ut.call(this,e,"clusterOptions",t),{separateStrands:r,strandSpacing:i,preventGeneOverlap:o,overlapSpacing:a}=n;return this.separateStrands=r,this.strandSpacing=i,this.preventGeneOverlap=o,this.overlapSpacing=a,this};ft.prototype.geneData=function(t,e){return this.dataAll=t,this.data=e.map(n=>{var r={...n};return r.cluster=String(r.cluster),r.direction="forward",r.start>r.end&&(r.direction="reverse"),r}),this};function uE(t,e){for(let n of e)if(t>=n.start&&t<=n.end)return!0;return!1}function Oh(t,e,n,r,i,o=!1){i=[...i].sort((h,f)=>h.start-f.start);let a=0;for(let h of i)h.start>=t&&h.end<=e&&(a+=h.end-h.start);let s=o?e-a:t,c=o?t:e-a,l=R.scaleLinear().domain([s,c]).range([0,n-r.left-r.right]),u=function(h){if(uE(h,i))return null;let f=0;for(let d of i)if(h>d.end)f+=d.end-d.start;else break;return h=h-f,l(h)};for(let h in l)typeof l[h]=="function"?u[h]=(...f)=>{let d=l[h](...f);return d===l?u:d}:u[h]=l[h];return u.invert=function(h){let f=l.invert(h);for(let d of i)if(f>d.start)f+=d.end-d.start;else break;return f},u}function Wi(t,e,n,r,i=[]){let o;if(typeof n=="string"&&n.endsWith("%"))o=parseFloat(n)/100;else if(typeof n=="number"&&n>=0&&n<=100)o=n/100;else return qe("Invalid padding format. Padding should be a percentage (as a string or a number between 0 and 100). No padding applied."),r==="start"?t:e;let[a,s]=[Math.min(t,e),Math.max(t,e)],c=i.reduce((u,h)=>u+Math.max(0,Math.min(h.end,s)-Math.max(h.start,a)),0);return o=(s-a-c)*o,r==="start"?t-o:r==="end"?e+o:(console.error('Invalid "to" parameter in addScalePadding. Must be "start" or "end".'),r==="start"?t:e)}ft.prototype.scale=function(t={}){if(!this.data)return console.error("No data has been added to this cluster container."),this;let e={start:null,end:null,xMin:null,xMax:null,padding:2,hidden:!0,reverse:!1,axisPosition:"bottom",breaks:[],tickValues:null,ticksCount:10,ticksFormat:",.0f",y:null,tickStyle:{stroke:"grey",strokeWidth:1,lineLength:6},textStyle:{fill:"black",fontSize:"10px",fontFamily:"Arial",cursor:"default"},lineStyle:{stroke:"grey",strokeWidth:1}},n=ut.call(this,e,"scaleOptions",t),{start:r,end:i,xMin:o,xMax:a,padding:s,hidden:c,breaks:l,tickValues:u,reverse:h,axisPosition:f,ticksCount:d,ticksFormat:m,y:p,tickStyle:g,textStyle:y,lineStyle:w}=n,b=p!==null?p:f==="bottom"?20:80,v=at(g,e.tickStyle),_=at(y,e.textStyle),S=at(w,e.lineStyle);if(r!==null&&(this.data=this.data.filter(C=>C.start>=r)),i!==null&&(this.data=this.data.filter(C=>C.end<=i)),this.data=this.data.filter(C=>!l.some(F=>C.start>=F.start&&C.start<=F.end||C.end>=F.start&&C.end<=F.end)),this.reverse=h,this.padding=s,this.minStart=r!==null?r:o!==null?o:R.min(this.data,C=>Math.min(C.start,C.end)),this.maxEnd=i!==null?i:a!==null?a:R.max(this.data,C=>Math.max(C.start,C.end)),r==null&&(this.minStart=Wi(this.minStart,this.maxEnd,s,"start",l)),i==null&&(this.maxEnd=Wi(this.minStart,this.maxEnd,s,"end",l)),this.xScale=Oh(this.minStart,this.maxEnd,this.width,this.margin,l,h),this.fullScale=Oh(this.minStart,this.maxEnd,this.width,this.margin,l,h),this.zoom=null,t.zoom){let C=this.width-this.margin.left-this.margin.right,F=T=>{let B=l.find(N=>T>=N.start&&T<=N.end);return this.fullScale(B?B.end+1e-9:T)/C},{from:A,to:E,mode:D}=t.zoom,[z,M]=(D==="absolute"?[F(A),F(E)]:[A,E]).sort((T,B)=>T-B);M-z>1e-9||(M=z+1e-9),(z>1e-9||M<1-1e-9)&&(this.zoom=[z,M],this.xScale.range([-z*C/(M-z),(1-z)*C/(M-z)]))}this.yScale=R.scaleLinear().domain([0,100]).range([this.height-this.margin.bottom-this.margin.top,0]),this.breaks=l.filter(C=>C.start>=this.minStart&&C.end<=this.maxEnd);let k=this;if(!c){let C=this.yScale?this.yScale(b):b,F=this.svg.append("g").attr("data-component","scale").attr("transform",`translate(${this.margin.left},${this.margin.top+C})`),A=this.width-this.margin.left-this.margin.right,E=this.zoom?[this.xScale.invert(0),this.xScale.invert(A)].sort((T,B)=>T-B):[this.minStart,this.maxEnd],D=R.scaleLinear().domain(E).range([0,A]),z=R.axisBottom(D).tickFormat(R.format(m));Array.isArray(u)&&u.length>0?z.tickValues(u):typeof u=="number"?z.tickValues([u]):z.ticks(d);let M=F.append("g").call(z);De(F,n.itemStyle?.[0]),M.selectAll(".tick line").style("stroke",g.stroke).style("stroke-width",g.strokeWidth).attr("y2",g.lineLength).each(function(){let T=R.select(this);rt(T,v)}),M.selectAll(".tick text").style("fill",y.fill).style("font-size",y.fontSize).style("font-family",y.fontFamily).style("cursor",y.cursor).each(function(){let T=R.select(this);rt(T,_)}),M.selectAll(".tick").each(function(T){let B=R.select(this).data()[0],N=k.xScale(B);N===null||N<-.5||N>A+.5?R.select(this).remove():R.select(this).attr("transform",`translate(${N},0)`)}),M.select(".domain").style("stroke",w.stroke).style("stroke-width",w.strokeWidth).each(function(){let T=R.select(this);rt(T,S)})}return this};function Bh(t,e,n={}){let r={dyAdjust:0,lineHeightEms:1.05,lineHeightSquishFactor:1,splitOnHyphen:!0,centreVertically:!0},{dyAdjust:i,lineHeightEms:o,lineHeightSquishFactor:a,splitOnHyphen:s,centreVertically:c}={...r,...n};t.each(function(){var l=R.select(this),u=l.attr("x"),h=l.attr("y"),f=[],d=[],m=function(_){d.length&&f.push({pieces:d,space:_}),d=[]};Yy(l.text()).forEach(function(_){_.content.split(/(\s+)/).forEach(function(S){if(/^\s+$/.test(S)){m(!0);return}var k=s?S.split(/(?<=-)/):[S];k.forEach(function(C,F){C&&d.push({..._,content:C}),F<k.length-1&&m(!1)})})}),m(!0);var p=function(_,S){_.selectAll("*").remove(),S.forEach(function(k,C){k.pieces.forEach(function(F,A){var E=A===k.pieces.length-1&&C<S.length-1,D=E&&k.space?" ":"",z=_.append("tspan").text(F.content+D);F.bold&&z.style("font-weight","bold"),F.italic&&z.style("font-style","italic"),F.underline&&z.style("text-decoration","underline")})})};l.text(null);for(var g=l.append("tspan").attr("class","wrap-line"),y=[],w=0;w<f.length;w++)y.push(f[w]),p(g,y),g.node().getComputedTextLength()>e&&y.length>1&&(y.pop(),p(g,y),y=[f[w]],g=l.append("tspan").attr("class","wrap-line"),p(g,y));var b=l.selectAll("tspan.wrap-line"),v=o;if(b.size()>2)for(var w=0;w<b.size();w++)v*=a;b.each(function(_,S){var k=S*v+i;c&&(k-=(b.size()-1)*v/2),R.select(this).attr("y",h).attr("x",u).attr("dy",k+"em")})})}function Zl(t,e,n=null){let r={rotation:-65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"},i=(b,v)=>{let _=Math.max(0,Math.min(b.right,v.right)-Math.max(b.left,v.left)),S=Math.max(0,Math.min(b.bottom,v.bottom)-Math.max(b.top,v.top)),k=_*S,C=(b.right-b.left)*(b.bottom-b.top);return k/C*100},o=new Map,a=(b,v)=>{let _=b.parentNode;if(!o.has(_)){let E=_.getScreenCTM?.();o.set(_,E?DOMMatrix.fromMatrix(E):null)}let S=o.get(_);if(!S)return b.getBoundingClientRect();let k=b.transform?.baseVal?.consolidate();k&&(S=S.multiply(DOMMatrix.fromMatrix(k.matrix)));let C=[[v.x,v.y],[v.x+v.width,v.y],[v.x,v.y+v.height],[v.x+v.width,v.y+v.height]].map(([E,D])=>new DOMPoint(E,D).matrixTransform(S)),F=C.map(E=>E.x),A=C.map(E=>E.y);return{left:Math.min(...F),right:Math.max(...F),top:Math.min(...A),bottom:Math.max(...A)}},s=new Map,c=b=>{let v=b.getBBox();return s.set(b,v),a(b,v)},l=(b,v)=>{if(v==null||v==="")return 0;let _=String(v).trim().match(/^([-+]?[0-9.]+(?:e[-+]?[0-9]+)?)(px|em)?$/i);if(!_)return null;let S=parseFloat(_[1]);if(S===0||!_[2]||_[2].toLowerCase()==="px")return S;let k=b.style.fontSize.endsWith("px")?b.style.fontSize:getComputedStyle(b).fontSize;return S*parseFloat(k)},u=50,h=new Map,f=b=>{if(!Number.isFinite(b.left)||!Number.isFinite(b.right))return[];let v=[];for(let _=Math.floor(b.left/u);_<=Math.floor(b.right/u);_++)v.push(_);return v},d=(b,v)=>{let _=g.get(b);_&&f(_).forEach(S=>h.get(S).delete(b)),g.set(b,v),f(v).forEach(S=>{h.has(S)||h.set(S,new Set),h.get(S).add(b)})},m=b=>{let v=new Set;return f(g.get(b)).forEach(_=>h.get(_)?.forEach(S=>v.add(S))),v.delete(b),v},p=null,g=new Map,y=b=>{p&&d(b,c(b))};return{adjust:(b,v={})=>{p||(p=t.svg.selectAll(e).nodes(),p.forEach(T=>d(T,c(T))));let{rotation:_,offsetX:S,offsetY:k,dx:C,dy:F,hide:A=!1}={...r,...v},E=s.get(b)??b.getBBox(),D=E.x+E.width/2,z=E.y;D+=S,z+=_<0?E.height:E.height/2,z+=k,g.has(b)||d(b,c(b));let M=g.get(b);for(let T of m(b))if(i(M,g.get(T))>0){if(A)return R.select(b).style("display","none"),f(M).forEach(K=>h.get(K)?.delete(b)),g.delete(b),!1;let B=parseFloat(b.getAttribute("y")),N=l(b,b.getAttribute("dy")),L=l(b,C),q=l(b,F),U=K=>Math.abs(K)*Math.PI/180,Z=K=>E.width*Math.sin(U(K))+E.height*Math.cos(U(K)),Q=z+(q??0),j=K=>!n||(K<0?Q-Z(K)>=n.top:Q+Z(K)<=n.bottom),H=E.width*Math.cos(U(_)),W=D+S+(L??0);if(!j(_)||n&&W+H>n.right)return R.select(b).style("display","none"),f(M).forEach(K=>h.get(K)?.delete(b)),g.delete(b),!1;let J=_;if(R.select(b).style("text-anchor","start").attr("dx",C).attr("dy",F).attr("x",D+S).attr("y",z).attr("transform",`rotate(${J}, ${D}, ${z})`),b.__drawn__={...b.__drawn__,rotate:J},!b.childElementCount&&Number.isFinite(B)&&[N,L,q].every(Number.isFinite)){let K={x:D+S+L,y:E.y+(z+q)-(B+N),width:E.width,height:E.height};s.set(b,K),d(b,a(b,K))}else y(b);return!0}return!1},refresh:y}}function Yy(t){let e=/<([biu])>(.*?)<\/\1>/g,n=[],r=a=>({content:a,bold:!1,italic:!1,underline:!1}),i=0,o;for(;(o=e.exec(t))!==null;){o.index>i&&n.push(r(t.substring(i,o.index)));let[,a,s]=o;n.push({content:s,bold:a==="b",italic:a==="i",underline:a==="u"}),i=o.index+o[0].length}return i<t.length&&n.push(r(t.substring(i))),n}function xr(t,e,n){Yy(t).forEach(({content:r,bold:i,italic:o,underline:a})=>{let s=e.append("tspan").style("font-weight",i?"bold":n.weight).style("font-style",o?"italic":n.style).text(r);a&&s.style("text-decoration","underline")})}function Dh(t,e,n,r=!1){let{width:i,margin:o}=t;switch(e){case"left":return{xPos:r?o.left+n:n,textAnchor:"start"};case"right":return{xPos:(r?i-o.right:i-o.left-o.right)+n,textAnchor:"end"};default:{let a=i-o.left-o.right;return{xPos:(r?o.left+a/2:a/2)+n,textAnchor:"middle"}}}}function ba(t,e,n,r){for(let o of Object.keys(r))t.style(Gl(o),n[o]);let i=at(n,r);t.each(function(){let o=R.select(this);xr(e,o,n),rt(o,i)}),De(t,n)}ft.prototype.title=function(t,e,n=!0,r={},i="titleOptions"){if(!t&&!e)return this;if(!n)return this;let o=Gn(this.themeOptions),a={x:0,y:20*o,align:"center",spacing:20*o,titleFont:{fontSize:"16px",fontStyle:"normal",fontWeight:"bold",textDecoration:"normal",fontFamily:"sans-serif",cursor:"default"},subtitleFont:{fontSize:"14px",fontStyle:"normal",fontWeight:"normal",textDecoration:"none",fontFamily:"sans-serif",cursor:"default"}},s=ut.call(this,a,i,r),{x:c,y:l,align:u,spacing:h,itemStyle:f}=s,d=Xn(f,"title"),m=Xn(f,"subtitle"),p={...s.titleFont,...d.style},g={...s.subtitleFont,...m.style};t=d.text??t,e=m.text??e;let{xPos:y,textAnchor:w}=Dh(this,u,c);var b=this.svg.append("g").attr("data-component",i==="clusterTitleOptions"?"clusterTitle":"title").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);return t&&b.append("text").attr("data-part","title").property("__text__",t).attr("x",y).attr("y",l+this.margin.top/2).attr("text-anchor",w).call(ba,t,p,a.titleFont),e&&b.append("text").attr("data-part","subtitle").property("__text__",e).attr("x",y).attr("y",l+this.margin.top/2+h).attr("text-anchor",w).call(ba,e,g,a.subtitleFont),this};ft.prototype.footer=function(t,e,n=!0,r={}){if(!t&&!e)return this;if(!n)return this;let i={x:0,y:0,align:"left",spacing:12*Gn(this.themeOptions),titleFont:{fontSize:"12px",fontWeight:"bold",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default"},subtitleFont:{fontSize:"10px",fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default"}},o=ut.call(this,i,"footerOptions",r),{x:a,y:s,align:c,spacing:l,itemStyle:u}=o,h=Xn(u,"title"),f=Xn(u,"subtitle"),d={...o.titleFont,...h.style},m={...o.subtitleFont,...f.style};t=h.text??t,e=f.text??e;let{xPos:p,textAnchor:g}=Dh(this,c,a,!0),y=this.height-this.margin.bottom+s-20,w=y+l;return t&&this.svg.append("text").attr("data-component","clusterFooter").attr("data-part","title").property("__text__",t).attr("x",p).attr("y",y).attr("text-anchor",g).call(ba,t,d,i.titleFont),e&&this.svg.append("text").attr("data-component","clusterFooter").attr("data-part","subtitle").property("__text__",e).attr("x",p).attr("y",w).attr("text-anchor",g).call(ba,e,m,i.subtitleFont),this};function Wy(t,e,n={}){let r=n?.clusterLabelOptions??{},i=e?.position??r.position??"left",o=e?.width??t?.margin?.[i]??r.width??n?.containerOptions?.margin?.[i]??`${100*Gn(n)}px`;return{[i]:o}}ft.prototype.clusterLabel=function(t,e=!0,n={}){if(!e)return this;let r={x:0,y:0,position:"left",align:"center",width:null,wrapLabel:!0,wrapOptions:{},fontSize:"12px",fontStyle:"normal",fontWeight:"bold",fontFamily:"sans-serif",cursor:"default",subtitle:null,spacing:null,subtitleFont:{fontSize:"11px",fontStyle:"normal",fontWeight:"normal",fontFamily:"sans-serif",cursor:"default"}},{itemStyle:i,...o}=ut.call(this,r,"clusterLabelOptions",n),a=Xn(i,"title"),s=Xn(i,"subtitle"),c={...o,...a.style,subtitle:s.text??o.subtitle,subtitleFont:{...o.subtitleFont,...s.style}};t=a.text??t;let{x:l,y:u,position:h,align:f,wrapLabel:d,wrapOptions:m,fontSize:p,fontStyle:g,fontWeight:y,fontFamily:w,cursor:b,subtitle:v,spacing:_,subtitleFont:S}=c,k=at(m,r.wrapOptions),C=at(c,r),F={size:p,style:g,weight:y,family:w,cursor:b},A=this.height-this.margin.top-this.margin.bottom,E=this.margin.top+A/2+u,D=h==="left"?this.margin.left-l:this.margin.right-l,z={left:0,right:1}[f]??.5,M={left:"start",right:"end"}[f]??"middle",T;h==="left"?T=this.margin.left*z+l:T=this.width-this.margin.right*(1-z)-l;let B=this.svg.append("text").attr("data-component","clusterLabel").attr("data-part","title").property("__text__",t).attr("x",T).attr("y",E).attr("text-anchor",M).attr("dominant-baseline","central").style("font-size",p).style("font-style",g).style("font-weight",y).style("font-family",w).style("cursor",b).each(function(){let N=R.select(this);d?(N.text(t),Bh(N,D,m)):xr(t,N,F),rt(N,C)});if(v){let N=at(S,r.subtitleFont),L={size:S.fontSize,style:S.fontStyle,weight:S.fontWeight,family:S.fontFamily,cursor:S.cursor},q=this.svg.append("text").attr("data-component","clusterLabel").attr("data-part","subtitle").property("__text__",v).attr("x",T).attr("y",E).attr("text-anchor",M).attr("dominant-baseline","central").style("font-size",S.fontSize).style("font-style",S.fontStyle).style("font-weight",S.fontWeight).style("font-family",S.fontFamily).style("cursor",S.cursor).each(function(){let H=R.select(this);d?(H.text(v),Bh(H,D,m)):xr(v,H,L),rt(H,N)}),U=Uy(B),Z=Uy(q),Q=_??1.2*(U.fontSize+Z.fontSize)/2,j=E-(U.first+U.last+Q-Z.first+Z.last)/2;Hy(B,j),Hy(q,j+U.last+Q-Z.first)}return De(B,a.style),this.svg.selectAll('text[data-component="clusterLabel"][data-part="subtitle"]').call(De,s.style),this};function Uy(t){let e=parseFloat(getComputedStyle(t.node()).fontSize),n=t.selectAll("tspan.wrap-line").nodes();if(!n.length)return{fontSize:e,first:0,last:0};let r=i=>(parseFloat(i.getAttribute("dy"))||0)*e;return{fontSize:e,first:r(n[0]),last:r(n[n.length-1])}}function Hy(t,e){t.attr("y",e),t.selectAll("tspan.wrap-line").attr("y",e)}ft.prototype.sequence=function(t=!0,e={}){if(!t)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the addGeneData() function before attempting to draw a gene line."),this;let n={y:50,start:null,end:null,sequenceStyle:{stroke:"grey",strokeWidth:1},markerStyle:{markerHeight:10,stroke:"grey",strokeWidth:1,tiltAmount:-5,gap:0}},r=ut.call(this,n,"sequenceOptions",e),{y:i,start:o,end:a,markerStyle:s,sequenceStyle:c}=r,l=at(c,n.sequenceStyle);var u=this.svg.append("g").attr("data-component","sequence").attr("transform",`translate(${this.margin.left},${this.margin.top})`),h=o??R.min(this.data,b=>Math.min(b.start,b.end)),f=a??R.max(this.data,b=>Math.max(b.start,b.end));o==null&&(h=Wi(h,f,this.padding,"start",this.breaks)),a==null&&(f=Wi(h,f,this.padding,"end",this.breaks));let d=this.breaks.map(b=>({xStart:this.xScale(b.start-.001)-s.gap,xEnd:this.xScale(b.end+.001)+s.gap})),[m,p]=[this.xScale(h),this.xScale(f)].sort((b,v)=>b-v),g=d.map(({xStart:b,xEnd:v})=>[b+s.tiltAmount/2,v-s.tiltAmount/2].sort((_,S)=>_-S)).sort((b,v)=>b[0]-v[0]),y=[],w=m;for(let[b,v]of g)b>w&&y.push([w,Math.min(b,p)]),w=Math.max(w,v);w<p&&y.push([w,p]),u.selectAll("line.baseline").data(y).enter().append("line").attr("class","baseline").attr("x1",b=>b[0]).attr("y1",this.yScale(i)).attr("x2",b=>b[1]).attr("y2",this.yScale(i)).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let b=R.select(this);rt(b,l)});for(let{xStart:b,xEnd:v}of d){let _=this.yScale(i),S=_-s.markerHeight/2,k=_+s.markerHeight/2;u.append("line").attr("x1",b).attr("y1",S).attr("x2",b+s.tiltAmount).attr("y2",k).attr("stroke",s.stroke).attr("stroke-width",s.strokeWidth),u.append("line").attr("x1",v-s.tiltAmount).attr("y1",S).attr("x2",v).attr("y2",k).attr("stroke",s.stroke).attr("stroke-width",s.strokeWidth)}return this};ft.prototype.coordinates=function(t=!0,e={}){if(!t)return this;let n={rotate:-45,yPositionTop:53,yPositionBottom:48,tickValuesTop:null,tickValuesBottom:null,overlapThreshold:20,ticksFormat:",.0f",groupStyle:{},styleBy:null,itemStyle:[],tickStyle:{stroke:"black",strokeWidth:1,lineLength:6},textStyle:{fill:"black",fontSize:"10px",fontFamily:"Arial",cursor:"default",x:0,y:0}},r=ut.call(this,n,"coordinatesOptions",e),{rotate:i,yPositionTop:o,yPositionBottom:a,tickValuesBottom:s,tickValuesTop:c,ticksFormat:l,tickStyle:u,textStyle:h,groupStyle:f,styleBy:d,itemStyle:m}=r,p=A=>m.filter(E=>A?.rowID!=null&&E.rowID===A.rowID&&(E.end==null||E.end===A.end)).reduce((E,{rowID:D,end:z,...M})=>({...E,...M}),{}),g=A=>{let E=(d&&A?.gene?f[A.gene[d]]:void 0)??{},D=p(A);return{...E,...D,tick:{...E.tick,...D.tick}}},y=A=>{let{show:E,tick:D,...z}=g(A);return z},w=at(u,n.tickStyle),b=at(h,n.textStyle),v=this.svg.append("g").attr("data-component","coordinates").attr("transform","translate("+this.margin.left+","+this.margin.top+")"),_=Array.isArray(c)?c.map(A=>({value:A,rowID:null})):c!=null?[{value:c,rowID:null}]:[],S=Array.isArray(s)?s.map(A=>({value:A,rowID:null})):s!=null?[{value:s,rowID:null}]:[];if(!c&&!s){let A=this.data.reduce((E,D)=>{let z={value:D.start,rowID:D.rowID,end:"start",gene:D},M={value:D.end,rowID:D.rowID,end:"end",gene:D};return z.strand=D.strand,M.strand=D.strand,"geneTrack"in D&&(z.geneTrack=D.geneTrack,M.geneTrack=D.geneTrack),E.push(z),E.push(M),E},[]);if(A=A.filter(E=>g(E).show!==!1),A=A.filter((E,D,z)=>D===z.findIndex(M=>M.value===E.value)),A.sort((E,D)=>E.value-D.value),this.separateStrands)A.forEach(E=>{E.strand==="forward"?_.push(E):S.push(E)});else{let E=r.overlapThreshold;for(let D=0;D<A.length;D++){if(D===0){S.push(A[D]);continue}this.xScale(A[D].value)-this.xScale(A[D-1].value)<E?(_.push(A[D]),D+1<A.length&&(S.push(A[D+1]),D++)):S.push(A[D])}}}let k=this,C=v.append("g").attr("transform","translate(0,"+this.yScale(o)+")").call(R.axisTop(this.xScale).tickValues(_.map(A=>A.value)).tickFormat(R.format(l)));C.selectAll(".tick").data(_).attr("rowID",A=>A.rowID).attr("transform",function(A){let E=k.xScale(A.value);var D=A.geneTrack?(A.geneTrack-1)*k.geneOverlapSpacing:0;return"translate("+E+","+-D+")"}),C.select(".domain").attr("stroke","none"),C.selectAll("text").data(_).attr("class","coordinate").style("text-anchor","end").attr("dx",`${-.8+h.x}em`).attr("dy",`${.4+h.y}em`).attr("transform","rotate("+-i+")").style("fill",h.fill).style("font-size",h.fontSize).style("font-family",h.fontFamily).style("cursor",h.cursor).each(function(A){let E=R.select(this);rt(E,b),rt(E,y(A))}),C.selectAll(".tick line").style("stroke",u.stroke).style("stroke-width",u.strokeWidth).attr("y2",-u.lineLength).each(function(){let A=R.select(this);rt(A,w),rt(A,g(R.select(this.parentNode).datum()).tick??{})});let F=v.append("g").attr("transform","translate(0,"+this.yScale(a)+")").call(R.axisBottom(this.xScale).tickValues(S.map(A=>A.value)).tickFormat(R.format(l)));return F.selectAll(".tick").data(S).attr("rowID",A=>A.rowID).attr("transform",function(A){let E=k.xScale(A.value);var D=A.geneTrack?-(A.geneTrack-1)*k.geneOverlapSpacing:0;return"translate("+E+","+-D+")"}),F.select(".domain").attr("stroke","none"),F.selectAll("text").data(S).attr("class","coordinate").style("text-anchor","start").attr("dx",`${.8+h.x}em`).attr("dy",`${-.15+h.y}em`).attr("transform","rotate("+-i+")").style("fill",h.fill).style("font-size",h.fontSize).style("font-family",h.fontFamily).style("cursor",h.cursor).each(function(A){let E=R.select(this);rt(E,b),rt(E,y(A))}),F.selectAll(".tick line").style("stroke",u.stroke).style("stroke-width",u.strokeWidth).attr("y2",u.lineLength).each(function(){let A=R.select(this);rt(A,w),rt(A,g(R.select(this.parentNode).datum()).tick??{})}),this};ft.prototype.scaleBar=function(t=!0,e={}){if(!t)return this;let n={title:"1 kb",scaleBarUnit:1e3,x:0,y:10,labelStyle:{fontSize:"10px",fontFamily:"sans-serif",cursor:"default",fill:"black",labelPosition:"left"},textPadding:0,scaleBarLineStyle:{stroke:"grey",strokeWidth:1},scaleBarTickStyle:{stroke:"grey",strokeWidth:1}},r=ut.call(this,n,"scaleBarOptions",e),{title:i,scaleBarUnit:o,x:a,y:s,textPadding:c,labelStyle:l,scaleBarLineStyle:u,scaleBarTickStyle:h}=r,f=at(u,n.scaleBarLineStyle),d=at(h,n.scaleBarTickStyle),m=at(l,n.labelStyle),p=Math.abs(this.xScale(o)-this.xScale(0)),g=this.svg.append("g").attr("data-component","scaleBar").attr("transform",`translate(${this.width-this.margin.right-p-parseInt(l.fontSize)-5+a}, ${this.height-this.margin.bottom})`);g.append("line").attr("x1",parseInt(l.fontSize)+5+p).attr("x2",parseInt(l.fontSize)+5).attr("y1",-s).attr("y2",-s).style("stroke",u.stroke).style("stroke-width",u.strokeWidth).each(function(){let b=R.select(this);rt(b,f)}),[parseInt(l.fontSize)+5,parseInt(l.fontSize)+5+p].forEach(b=>{g.append("line").attr("x1",b).attr("x2",b).attr("y1",-s-5).attr("y2",-s+5).style("stroke",h.stroke).style("stroke-width",h.strokeWidth).each(function(){let v=R.select(this);rt(v,d)})});let y=l.labelPosition==="left"?parseInt(l.fontSize)-c:parseInt(l.fontSize)+5+p+c,w=l.labelPosition==="left"?"end":"start";return g.append("text").attr("x",y).attr("y",-s).style("text-anchor",w).style("dominant-baseline","middle").style("font-size",l.fontSize).style("font-family",l.fontFamily).style("cursor",l.cursor).style("fill",l.fill).each(function(){let b=R.select(this);rt(b,m)}).text(i),De(g,r.itemStyle?.[0]),this};function fE(t,e){let n=R.select(t),r=t.textContent;t.textContent="",n.append("tspan").attr("class","label-name").text(r);let i=n.append("tspan").attr("class","label-measure").text(e.textContent);for(let o of e.style)o!=="text-anchor"&&i.style(o,e.style.getPropertyValue(o));if(e.remove(),r){i.attr("x",n.attr("x")).attr("dy","1.1em");let o=1.1*parseFloat(getComputedStyle(i.node()).fontSize);n.attr("y",parseFloat(n.attr("y"))-o)}}function hE(t){let e=R.select(t),n=e.select(".label-measure");n.empty()||n.attr("x",null).attr("dy",null).attr("dx",e.select(".label-name").text()?"0.3em":null)}function dE(t,e,n,r,i){let o=t.map((l,u)=>u).sort((l,u)=>t[l]-t[u]),a=[],s=l=>{l.start=Math.max(r,Math.min(l.total/l.members.length,i-l.width))};for(let l of o){let u={members:[{i:l,offset:0}],width:e[l],total:t[l]-e[l]/2};s(u);let h=a[a.length-1];for(;h&&h.start+h.width+n>u.start;){let f=h.width+n;u.members.forEach(d=>{d.offset+=f}),h.members.push(...u.members),h.total+=u.total-u.members.length*f,h.width+=n+u.width,u=a.pop(),s(u),h=a[a.length-1]}a.push(u)}let c=new Array(t.length);return a.forEach(l=>l.members.forEach(({i:u,offset:h})=>{c[u]=l.start+h+e[u]/2})),c}function jy(t){let e=t.__leader__;if(!e||!e.line.isConnected)return;let n=!t.isConnected||getComputedStyle(t).display==="none";if(e.line.style.display=n?"none":null,n)return;let r=t.getScreenCTM?.(),i=e.line.parentNode.getScreenCTM?.(),o=t.transform?.baseVal?.consolidate(),a=r&&i?i.inverse().multiply(r):o?o.matrix:new DOMMatrix,s=t.getBBox(),c=new DOMPoint(s.x+s.width/2,s.y).matrixTransform(a),l=new DOMPoint(s.x+s.width/2,s.y+s.height).matrixTransform(a),u=l.y<=(e.geneTop+e.geneBottom)/2,h=u?l:c;e.line.setAttribute("y1",u?e.geneTop-e.gap:e.geneBottom+e.gap),e.line.setAttribute("x2",h.x),e.line.setAttribute("y2",u?h.y+e.gap:h.y-e.gap)}ft.prototype.labels=function(t,e=!0,n={}){if(!e)return this;if(!t)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the addGeneData() function before attempting to draw genes."),this;let r={x:0,y:55,dy:"0em",dx:"0em",rotate:0,start:null,end:null,adjustLabels:!0,spreadPosition:"bottom",leaderLine:{length:20,stroke:"#999999",strokeWidth:.75},fontSize:"12px",fontStyle:"italic",fontFamily:"sans-serif",textAnchor:"middle",cursor:"default",labelAdjustmentOptions:{rotation:65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"},itemStyle:[],groupStyle:{},styleBy:null,group:null},i=ut.call(this,r,"labelsOptions",n),{x:o,y:a,start:s,end:c,adjustLabels:l,labelAdjustmentOptions:u,spreadPosition:h,leaderLine:f,groupStyle:d,styleBy:m,group:p,dx:g,dy:y,anchor:w,rotate:b,fontSize:v,fontStyle:_,fontFamily:S,textAnchor:k,cursor:C}=i,F=at(i,r),A=this.svg.append("g").attr("data-component","labels").attr("transform",`translate(${this.margin.left},${this.margin.top})`);this.data.sort((j,H)=>Math.min(j.start,j.end)-Math.min(H.start,H.end));let E=Ui(this.data,m??p,d,i.itemStyle),D=new Map(E.map(j=>[j.index,j])),z=(j,H)=>{let W=D.get(H)||{},J=W.x??o,K=W.y??a,ht=W.dx??g,G=W.dy??y,tt=W.adjustLabels!==void 0?W.adjustLabels:l,ot=tt==="spread",X=ot?0:W.rotate??b,vt=!ot&&j.geneTrack>1,yt={...W.labelAdjustmentOptions??u};yt.rotation=-Math.abs(yt.rotation);let Tt=j.strand=="forward"&&this.geneStrandSpacing!==0?this.geneStrandSpacing:-this.geneStrandSpacing;var Mt=j.geneTrack?(j.geneTrack-1)*this.geneOverlapSpacing:0;let st=this.yScale(this.markerY??50),St=this.yScale(K)-this.markerHeight/2-Tt+Mt,ne=2*st-this.yScale(K)+this.markerHeight/2-Tt+Mt,Zt=vt?ne:St;return{xPos:this.xScale((j.start+j.end)/2)+J,yPos:Zt,dx:ht,dy:G,rotate:X,labelAdjustmentOptions:yt,adjustLabels:tt,spread:ot,below:vt,yAbove:St}},M=R.group(this.data,j=>j.geneTrack??1),T=(j,H,W)=>(M.get(j)||[]).some(J=>{let[K,ht]=[this.xScale(J.start),this.xScale(J.end)].sort((G,tt)=>G-tt);return K<W&&ht>H}),B=(j,H,W)=>{if(!W.below)return;let J=j.getBBox(),K=J.x,ht=J.x+J.width;T(H.geneTrack+1,K,ht)&&!T(H.geneTrack-1,K,ht)&&(W.below=!1,W.yPos=W.yAbove,R.select(j).attr("dominant-baseline",null).attr("y",W.yPos).attr("transform",`rotate(${W.rotate}, ${W.xPos}, ${W.yPos})`))},N=this.data.map((j,H)=>z(j,H)),L=Zl(this,"text.label",{left:0,right:this.width-this.margin.left-this.margin.right,top:-this.margin.top,bottom:this.height-this.margin.top}),q=new Map(this.svg.selectAll(".link-text").nodes().map(j=>[j.getAttribute("rowID"),j]));A.selectAll("text.label").data(this.data).enter().append("text").attr("id",(j,H)=>`cluster-${wr(j.cluster)}-label-${H}`).attr("rowID",(j,H)=>`${j.rowID}`).attr("class","label").each(function(j,H){let{dx:W,dy:J,rotate:K}=N[H];this.__drawn__={dx:W,dy:J,rotate:K}}).attr("x",(j,H)=>N[H].xPos).attr("y",(j,H)=>N[H].yPos).attr("dx",(j,H)=>N[H].dx).attr("dy",(j,H)=>N[H].dy).attr("text-anchor",k).attr("dominant-baseline",(j,H)=>N[H].below?"hanging":null).attr("transform",(j,H)=>{let{xPos:W,yPos:J,rotate:K}=N[H];return`rotate(${K}, ${W}, ${J})`}).style("font-size",v).style("font-style",_).style("font-family",S).style("cursor",C).text((j,H)=>D.get(H)?.text??j[t]).each(function(j){let H=q.get(String(j.rowID));H&&fE(this,H)}).each(function(j,H){let W=N[H];B(this,j,W),W.below&&(W.labelAdjustmentOptions.rotation=Math.abs(W.labelAdjustmentOptions.rotation))});let U=(j,H)=>{let W=R.select(j);rt(W,F),Hi(W,D.has(H)?[D.get(H)]:[],H),(j.childElementCount||ma(F)||ma(D.get(H)))&&L.refresh(j)};A.selectAll("text.label").each(function(j,H){N[H].spread&&U(this,H)});let{length:Z,...Q}={...r.leaderLine,...Wr(f)?f:{}};return this.spreadLabels(A,N,{length:Number.isFinite(Number(Z))?Number(Z):r.leaderLine.length,lineStyle:f===!1?null:Q,onTop:h==="top"}),A.selectAll("text.label").each(function(j,H){let W=N[H];W.spread||(W.adjustLabels&&L.adjust(this,{...W.labelAdjustmentOptions,hide:W.adjustLabels==="hide"})&&hE(this),U(this,H))}),A.selectAll("text.label").each(function(j,H){De(R.select(this),D.get(H)??{})}),this.labels=A.selectAll(".label"),this};ft.prototype.spreadLabels=function(t,e,n){let r=this.svg.node();if(!r.getClientRects().length){let k=new ResizeObserver(()=>{if(!r.isConnected)return k.disconnect();r.getClientRects().length&&(k.disconnect(),this.spreadLabels(t,e,n))});return k.observe(r),this}let i=this.width-this.margin.left-this.margin.right,o=k=>{let[C,F]=[this.xScale(k.start),this.xScale(k.end)].sort((D,z)=>D-z),A=Math.max(0,C),E=Math.min(i,F);return A<=E?[A,E]:null},a=[];if(t.selectAll("text.label").each(function(k,C){if(!e[C].spread||this.textContent.trim()==="")return;let F=o(k);if(!F){this.style.display="none";return}let{xPos:A}=e[C];a.push({node:this,d:k,geneX:(F[0]+F[1])/2,wanted:Math.min(F[1],Math.max(F[0],A))})}),!a.length)return this;let s=t.node().getCTM(),c=new Set(a.map(({d:k})=>String(k.rowID))),l=new Map,u=new Map,h=1/0,f=-1/0;this.svg.selectAll(".gene, .exon, .intron, .utr").each(function(){let k=this.getCTM();if(!k||!s)return;let C=s.inverse().multiply(k),F=this.getBBox(),A=1/0,E=-1/0;for(let[z,M]of[[F.x,F.y],[F.x+F.width,F.y],[F.x,F.y+F.height],[F.x+F.width,F.y+F.height]]){let T=new DOMPoint(z,M).matrixTransform(C).y;A=Math.min(A,T),E=Math.max(E,T)}h=Math.min(h,A),f=Math.max(f,E);let D=this.getAttribute("rowID");c.has(D)&&(l.set(D,Math.min(l.get(D)??1/0,A)),u.set(D,Math.max(u.get(D)??-1/0,E)))});let d=this.yScale(this.markerY??50),m=(this.markerHeight??0)/2;Number.isFinite(h)||(h=d-m),Number.isFinite(f)||(f=d+m);let p=6,g=2,y=a.map(({node:k})=>k.getBBox()),w=dE(a.map(({wanted:k})=>k),y.map(k=>k.width),p,0,i),b=y.reduce((k,C)=>Math.max(k,C.height),0),v=n.onTop?h-b+this.margin.top:this.height-this.margin.top-f-b,_=Math.max(2*g,Math.min(n.length,v));if(a.forEach(({node:k},C)=>{let F=y[C],A=w[C]-F.width/2;if(A<-.5||A+F.width>i+.5){k.style.display="none";return}let E=n.onTop?h-_-(F.y+F.height):f+_-F.y,{moveX:D=0,moveY:z=0}=k.__drawn__??{},M=D||z?`translate(${D}, ${z}) `:"";k.setAttribute("transform",`${M}translate(${w[C]-(F.x+F.width/2)}, ${E})`)}),!n.lineStyle)return this;let S=t.insert("g","text.label").attr("class","leader-lines").style("pointer-events","none");return a.forEach(({node:k,d:C,geneX:F})=>{if(k.style.display==="none")return;let A=S.append("line").attr("x1",F).attr("x2",F);rt(A,n.lineStyle),k.__leader__={line:A.node(),gap:g,geneTop:l.get(String(C.rowID))??h,geneBottom:u.get(String(C.rowID))??f},jy(k),new MutationObserver(()=>jy(k)).observe(k,{attributes:!0,attributeFilter:["transform","style"]})}),this};ft.prototype.tooltip=function(t=!0,e={}){if(!t)return this;let n={triggers:["markers","genes","labels","exons","introns","utrs"],formatter:"<b>Start:</b> {start}<br><b>End: {end}</b>",opacity:0,position:"absolute",backgroundColor:"rgba(255, 255, 255, 0.9)",padding:"8px",borderRadius:"4px",border:"1px solid rgba(0,0,0,0.1)",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",pointerEvents:"none",fontFamily:"Arial, sans-serif",fontSize:"12px",zIndex:1e3,color:"#333",lineHeight:"1.5"},r=ut.call(this,n,"tooltipOptions",e),i=at(r,n);typeof r.triggers=="string"&&(r.triggers=[r.triggers]);let o=this.svg.node().closest(".html-widget")||document.body,a=R.select(o).append("div").attr("class","cluster-tooltip").style("opacity",r.opacity).style("position",r.position).style("background-color",r.backgroundColor).style("--tooltip-bg",r.backgroundColor).style("padding",r.padding).style("border-radius",r.borderRadius).style("border",r.border).style("box-shadow",r.boxShadow).style("pointer-events",r.pointerEvents).style("font-family",r.fontFamily).style("font-size",r.fontSize).style("z-index",r.zIndex).style("color",r.color).style("line-height",r.lineHeight);rt(a,i);let s=h=>{let[f,d]=R.pointer(h,o);a.style("left",f-a.node().offsetWidth/2+"px").style("top",d-a.node().offsetHeight-15+"px")},c=R.format(","),l=h=>h==null||h===""||typeof h=="number"&&isNaN(h),u=h=>r.formatter.split(/<br\s*\/?>/i).filter(f=>{let d=[...f.matchAll(/\{(\w+)\}/g)].map(m=>m[1]);return d.length===0||!d.every(m=>l(h[m]))}).join("<br>").replace(/\{(\w+)\}/g,(f,d)=>typeof h[d]=="number"?c(h[d]):h[d]||"");return r.triggers.forEach(h=>{if(!this.hasOwnProperty(h))return;let f=this[h];!f||f.empty()||(f.on("mouseover",(d,m)=>{let p=this.data.find(y=>y===m);R.select(d.currentTarget).classed("hovered",!0),a.transition().duration(200).style("opacity",1),a.html(u(p)),s(d)}),f.on("mousemove",s),f.on("mouseout",d=>{R.select(d.currentTarget).classed("hovered",!1),a.transition().duration(500).style("opacity",0)}))}),this};function ji(t,e,n){let r=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf","#393b79","#637939","#8c6d31","#843c39","#7b4173","#bd9e39","#ad494a","#d6616b","#31a354","#cedb9c","#9c9ede","#5254a3","#8ca252","#b5cf6b","#e7ba52","#ce6dbd","#e7cb94","#e7969c","#6b6ecf","#a55194"],i=n.filter(s=>s!==null),o=(s=()=>!0)=>{if(t&&(Array.isArray(t)||R[t])){let c=Array.isArray(t)?t:R[t];return i.some((l,u)=>u>=c.length&&s(l))&&qe("Warning: More unique groups than colors. Some colors will repeat."),i.map((l,u)=>c[u%c.length])}return t&&qe(`Warning: The color scheme "${t}" does not exist. Defaulting to schemeCategory30.`),i.map((c,l)=>c==="No Hit"?"#FFF":r[l%r.length])},a;if(e&&typeof e=="string")a=i.map(()=>e);else if(e&&Array.isArray(e))a=i.map((s,c)=>e[c%e.length]||"#FFF");else if(e&&typeof e=="object"){let s=o(c=>!e[c]);a=i.map((c,l)=>e[c]||s[l])}else a=o();return R.scaleOrdinal().domain([...i,null]).range([...a,"#FFF"])}var va={none:()=>{},solid:(t,e,n)=>t.append("rect").attr("width",e).attr("height",e).attr("fill",n),horizontal:(t,e,n,r)=>t.append("path").attr("d",`M0,${e/2}H${e}`).attr("stroke",n).attr("stroke-width",r),vertical:(t,e,n,r)=>t.append("path").attr("d",`M${e/2},0V${e}`).attr("stroke",n).attr("stroke-width",r),diagonal:(t,e,n,r)=>t.append("path").attr("d",`M0,${e}L${e},0M${-e/4},${e/4}L${e/4},${-e/4}M${e*3/4},${e*5/4}L${e*5/4},${e*3/4}`).attr("stroke",n).attr("stroke-width",r),antidiagonal:(t,e,n,r)=>t.append("path").attr("d",`M0,0L${e},${e}M${-e/4},${e*3/4}L${e/4},${e*5/4}M${e*3/4},${-e/4}L${e*5/4},${e/4}`).attr("stroke",n).attr("stroke-width",r),grid:(t,e,n,r)=>t.append("path").attr("d",`M0,${e/2}H${e}M${e/2},0V${e}`).attr("stroke",n).attr("stroke-width",r),crosshatch:(t,e,n,r)=>{va.diagonal(t,e,n,r),va.antidiagonal(t,e,n,r)},dots:(t,e,n)=>t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/5).attr("fill",n),zigzag:(t,e,n,r)=>t.append("path").attr("d",`M0,${e*.7}L${e/2},${e*.3}L${e},${e*.7}`).attr("fill","none").attr("stroke",n).attr("stroke-width",r),checkerboard:(t,e,n)=>t.append("path").attr("d",`M0,0H${e/2}V${e/2}H0ZM${e/2},${e/2}H${e}V${e}H${e/2}Z`).attr("fill",n),rings:(t,e,n,r)=>t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/3.2).attr("fill","none").attr("stroke",n).attr("stroke-width",r*.8),bricks:(t,e,n,r)=>t.append("path").attr("d",`M0,0H${e}M0,${e/2}H${e}M${e/4},0V${e/2}M${e*3/4},${e/2}V${e}`).attr("stroke",n).attr("stroke-width",r),plus:(t,e,n,r)=>t.append("path").attr("d",`M${e/2},${e*.2}V${e*.8}M${e*.2},${e/2}H${e*.8}`).attr("stroke",n).attr("stroke-width",r),wideStripes:(t,e,n)=>t.append("path").attr("d",`M0,${e}L${e},0H${e/2}L0,${e/2}ZM${e},${e/2}V${e}H${e/2}Z`).attr("fill",n),inverseDots:(t,e,n,r,i)=>{va.solid(t,e,n),t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/4).attr("fill",i)}},pE={checkerboard:4/3,rings:7/6,bricks:5/3,plus:4/3,wideStripes:4/3},$h=["diagonal","dots","horizontal","crosshatch","vertical","zigzag","checkerboard","solid","rings","bricks","inverseDots","grid","wideStripes","plus","antidiagonal"];function zh(t,e,n){return t==null?e.map(()=>n):typeof t=="string"?e.map(()=>t):Array.isArray(t)?e.map((r,i)=>t[i%t.length]):e.map(r=>t[r]??n)}function Xi(t,e,n,r,i){if(!e)return{fill:r,stroke:r,outline:null,align:()=>{}};let{patterns:o=null,color:a="black",background:s=null,size:c=6,strokeWidth:l=1}=e,u=n.filter(b=>b!==null),h=zh(o,u,"none");o==null&&(u.forEach((b,v)=>{h[v]=$h[v%$h.length]}),u.length>$h.length&&qe("Warning: More unique groups than patterns. Some patterns will repeat."));let f=zh(s,u,null),d=zh(a,u,"black"),m=t.attr("id")||"geneviewer",p=t.append("defs"),g=new Map,y=new Map;u.forEach((b,v)=>{let _=h[v];va[_]||(qe(`Warning: The pattern "${_}" does not exist. Using "none".`),_="none"),b==="No Hit"&&o==null&&(_="none");let S=`${m}-${i}-pattern-${v}`,k=c*(pE[_]??1),C=f[v]??r(b),F=p.append("pattern").attr("id",S).attr("patternUnits","userSpaceOnUse").attr("width",k).attr("height",k);F.append("rect").attr("width",k).attr("height",k).attr("fill",C),va[_](F,k,d[v],l,C),g.set(b,`url(#${S})`),y.set(b,F)});let w=new Map(u.map((b,v)=>[b,d[v]]));return{fill:b=>g.get(b)??r(b),stroke:b=>s==null?r(b):w.get(b)??d[0],outline:typeof a=="string"?a:"black",align:(b,v,_)=>y.get(b)?.attr("x",v).attr("y",_)}}function gE(t,e){let n=t.filter((u,h)=>{let f=t[(h-1+t.length)%t.length];return Math.abs(u[0]-f[0])>1e-6||Math.abs(u[1]-f[1])>1e-6});if(!(e>0)||n.length<3)return`M${n.map(u=>`${u[0]} ${u[1]}`).join(" L")} Z`;let r=n.length,i=(u,h)=>Math.hypot(h[0]-u[0],h[1]-u[1]),o=(u,h,f)=>{let d=i(u,h);return[u[0]+(h[0]-u[0])*f/d,u[1]+(h[1]-u[1])*f/d]},a=(u,h,f)=>(h[0]-u[0])*(f[1]-h[1])-(h[1]-u[1])*(f[0]-h[0]),s=Math.sign(n.reduce((u,h,f)=>{let d=n[(f+1)%r];return u+h[0]*d[1]-d[0]*h[1]},0)),c=n.map((u,h)=>{let f=n[(h-1+r)%r],d=n[(h+1)%r],p=Math.sign(a(f,u,d))===s?Math.min(e,i(f,u)/2,i(u,d)/2):0;return{p:u,start:o(u,f,p),end:o(u,d,p)}}),l=`M${c[0].end[0]} ${c[0].end[1]}`;for(let u=1;u<=r;u++){let{p:h,start:f,end:d}=c[u%r];l+=` L${f[0]} ${f[1]} Q${h[0]} ${h[1]} ${d[0]} ${d[1]}`}return l+" Z"}function Xy(t,e,n,r={}){let i={small:{scale:.75},medium:{scale:1},large:{scale:1.25}},o={arrow:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:15},boxarrow:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:30},box:{arrowheadWidth:0,arrowheadHeight:30,markerHeight:30},rbox:{arrowheadWidth:0,arrowheadHeight:30,markerHeight:30,cornerRadius:5},cbox:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:30},intron:{arrowheadWidth:0,arrowheadHeight:0,markerHeight:20}},a=i[n]||i.medium,s=o[t]||{},c=ya(s,r),{arrowheadWidth:l,arrowheadHeight:u,markerHeight:h,cornerRadius:f}=c,d=l*a.scale,m=u*a.scale,p=h*a.scale,g=e-d;g=Math.max(0,g);let y=(m-p)/2,w=y+p,b,v=Math.max(p,m),_;switch(t){case"arrow":case"boxarrow":case"box":b=gE([[0,y],[0,w],[g,w],[g,m],[e,m/2],[g,0],[g,y]],f||0);break;case"rbox":_=Math.min(f,p/2,e/2),v=p,b=`M ${_},0
|
|
6
6
|
H ${e-_}
|
|
7
7
|
A ${_},${_} 0 0 1 ${e},${_}
|
|
8
8
|
V ${p-_}
|
|
@@ -18,13 +18,13 @@ var v2=Object.defineProperty;var w2=(t,e)=>{for(var n in e)v2(t,n,{get:e[n],enum
|
|
|
18
18
|
Q 0 ${p/2} ${_} 0
|
|
19
19
|
Z`;break;case"intron":let k=e/2;v=p/2,b=`M0 ${v}
|
|
20
20
|
L${k} 0
|
|
21
|
-
L${e} ${v}`;break;default:qe(`Marker type '${t}' not recognized.`),b=""}return{path:b,length:e,scaledArrowheadWidth:d,scaledArrowheadHeight:m,height:v,used:{arrowheadWidth:l,arrowheadHeight:u,markerHeight:h,cornerRadius:f??0}}}function Nh(t){t.attr("rowID",(e,n)=>`${e.rowID}`).attr("start",(e,n)=>`${e.start}`).attr("end",(e,n)=>`${e.end}`).attr("strand",(e,n)=>`${e.strand}`).attr("cluster",(e,n)=>`${e.cluster}`)}function Rh(t,e,{xPos:n,yPos:r,height:i}){return`rotate(${t?e.direction==="forward"?180:0:e.direction==="forward"?0:180}, ${n}, ${r}) translate(${n}, ${r-i/2})`}function Ph(t,e,n,r,i,o){let a=o.find(S=>S.index===n)||{},s=Math.abs(t.xScale(e.end)-t.xScale(e.start)),c=a.y??r,l=a.marker??i.marker,u=a.markerSize??i.markerSize,{path:h,arrowheadWidth:f,arrowheadHeight:d,height:m,used:p}=Xy(l,s,u,{arrowheadWidth:a.arrowheadWidth??i.arrowheadWidth,arrowheadHeight:a.arrowheadHeight??i.arrowheadHeight,markerHeight:a.markerHeight??i.markerHeight,cornerRadius:a.cornerRadius??i.cornerRadius}),g=Xy(i.marker,s,i.markerSize,{arrowheadWidth:i.arrowheadWidth,arrowheadHeight:i.arrowheadHeight,markerHeight:i.markerHeight,cornerRadius:i.cornerRadius}).height;t.markerHeight=g,t.markerY=r,t.geneStrandSpacing=t.separateStrands?g/2+t.strandSpacing:0,t.geneOverlapSpacing=g+t.overlapSpacing;let y=e.strand==="forward"&&t.geneStrandSpacing!==0?t.geneStrandSpacing:-t.geneStrandSpacing,w=e.geneTrack?(e.geneTrack-1)*t.geneOverlapSpacing:0,b=t.yScale(c)-y+w,v=t.xScale(e.start),_={marker:l,markerSize:u,...p,y:c};return{xPos:v,yPos:b,path:h,arrowheadWidth:f,arrowheadHeight:d,height:m,drawn:_}}ft.prototype.genes=function(t,e=!0,n={}){if(!e)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the geneData() function before attempting to draw arrows."),this;let r={x:1,y:50,stroke:"black",strokeWidth:1,colorScheme:null,customColors:null,pattern:null,cursor:"default",marker:"arrow",markerSize:"medium",itemStyle:[],groupStyle:{},styleBy:null,arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},i=ut.call(this,r,"geneOptions",n),{x:o,y:a,stroke:s,strokeWidth:c,colorScheme:l,customColors:u,pattern:h,cursor:f,groupStyle:d,styleBy:m}=i,p=at(i,r),g=[...new Set(this.dataAll.map(S=>S[t]))],y=ji(l,u,g);this.genesColorScale=y;let w=Xi(this.svg,h,g,y,"gene");var b=this.svg.append("g").attr("data-component","genes").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);this.data.sort((S,k)=>Math.min(S.start,S.end)-Math.min(k.start,k.end));let v=Ui(this.data,m??t,d,i.itemStyle),_=(S,k)=>Ph(this,S,k,a,i,v);return b.selectAll(".gene").data(this.data).enter().append("path").attr("d",(S,k)=>_(S,k).path).attr("transform",(S,k)=>Rh(this.reverse,S,_(S,k))).attr("fill",S=>w.fill(S[t])).attr("class","gene").attr("id",(S,k)=>`${wr(S.cluster)}-gene-${k}`).call(Nh).style("stroke-width",c).style("stroke",s).style("cursor",f).each(function(S,k){let C=R.select(this);rt(C,p),Hi(C,v,k),this.__drawn__=_(S,k).drawn}),this.genes=b.selectAll(".gene"),this};ft.prototype.transcript=function(t,e=!0,n={}){if(!e)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the geneData() function before attempting to draw arrows."),this;let r={x:1,y:50,colorScheme:null,customColors:null,pattern:null,styleExons:{show:!0,strokeWidth:0,cursor:"default",marker:"box",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},styleIntrons:{show:!0,strokeWidth:1,fill:"none",cursor:"default",marker:"intron",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},styleUTRs:{show:!0,fontSize:"10px",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default",color:"black",fill:"#FFF",strokeWidth:1,marker:"box",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},labelOptions:{show:!0,xOffset:2,yOffset:0,fontSize:"12px",fontStyle:"normal",fontWeight:"normal",fontFamily:"sans-serif",cursor:"default",color:"black"},itemStyleExons:[],itemStyleIntrons:[],itemStyleUTRs:[],groupStyleExons:{},groupStyleIntrons:{},groupStyleUTRs:{},styleBy:null},i=ut.call(this,r,"transcriptOptions",n),{x:o,y:a,colorScheme:s,customColors:c,pattern:l,styleExons:u,styleIntrons:h,styleUTRs:f,labelOptions:d}=i,m=i.styleBy??t,p=at(i.styleExons,r.styleExons),g=at(i.styleIntrons,r.styleIntrons),y=at(i.styleUTRs,r.styleUTRs),w=[...new Set(this.dataAll.map(A=>A[t]))],b=ji(s,c,w);this.genesColorScale=b;let v=Xi(this.svg,l,w,b,"exon"),_=this.svg.append("g").attr("data-component","transcript").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);this.data.sort((A,E)=>Math.min(A.start,A.end)-Math.min(E.start,E.end));let S=(A,E,D,$)=>Ph(this,A,E,a,D,$),k=(A,E,D,$,M,T,B,N)=>{let L=this.data.filter(U=>new RegExp(A,"i").test(U.type)),q=Ui(L,m,D,$);return _.selectAll(`.${A}`).data(L).enter().append("path").attr("d",(U,Z)=>S(U,Z,E,q).path).attr("transform",(U,Z)=>T(U,S(U,Z,E,q))).attr("fill",B).attr("class",A).attr("id",(U,Z)=>`${wr(U.cluster)}-${A}-${Z}`).call(Nh).style("stroke-width",E.strokeWidth).style("stroke",N).style("cursor",E.cursor).each(function(U,Z){let Q=R.select(this);rt(Q,M),Hi(Q,q,Z)}),_.selectAll(`.${A}`)},C=(A,E)=>Rh(this.reverse,A,E),F=A=>v.stroke(A[t]);if(u.show&&(this.exons=k("exon",u,i.groupStyleExons,i.itemStyleExons,p,C,A=>v.fill(A[t]),u.stroke)),h.show){let A=(E,{xPos:D,yPos:$,height:M})=>{let T=E.direction==="forward"?-M:+M;return`rotate(${this.reverse?E.direction==="reverse"?180:0:E.direction==="forward"?0:180}, ${D}, ${$+T}) translate(${D}, ${$+T})`};this.introns=k("intron",h,i.groupStyleIntrons,i.itemStyleIntrons,g,A,h.fill,F)}if(f.show&&(this.utrs=k("utr",f,i.groupStyleUTRs,i.itemStyleUTRs,y,C,f.fill,F),d.show)){let A=this.data[0].direction==="forward"?this.xScale(this.maxEnd)+d.xOffset:this.xScale(this.minStart)-d.xOffset,E=this.data[0].direction==="forward"?this.xScale(this.minStart)-d.xOffset:this.xScale(this.maxEnd)+d.xOffset;_.append("text").attr("x",A).attr("y",D=>this.yScale(a+d.yOffset)).attr("class","three-prime-label").attr("text-anchor","middle").attr("alignment-baseline","middle").style("font-size",d.fontSize).style("font-style",d.fontStyle).style("font-weight",d.fontWeight).style("font-family",d.fontFamily).style("cursor",d.cursor).style("fill",d.color).text("3'"),_.append("text").attr("x",E).attr("y",D=>this.yScale(a+d.yOffset)).attr("class","five-prime-label").attr("text-anchor","middle").attr("alignment-baseline","middle").style("font-size",d.fontSize).style("font-style",d.fontStyle).style("font-weight",d.fontWeight).style("font-family",d.fontFamily).style("cursor",d.cursor).style("fill",d.color).text("5'")}return this};function gE(t,e){return e.map(r=>{let i=`.link-marker[cluster='${r.cluster1}'][linkID='${r.linkID}'][position='${r.start1}']`,o=`.link-marker[cluster='${r.cluster2}'][linkID='${r.linkID}'][position='${r.start2}']`,a=`.link-marker[cluster='${r.cluster1}'][linkID='${r.linkID}'][position='${r.end1}']`,s=`.link-marker[cluster='${r.cluster2}'][linkID='${r.linkID}'][position='${r.end2}']`,c=t.select(i).node(),l=t.select(o).node(),u=t.select(a).node(),h=t.select(s).node();if(!c||!l||!u||!h)return null;let f=c.getBoundingClientRect(),d=l.getBoundingClientRect(),m=u.getBoundingClientRect(),p=h.getBoundingClientRect(),g=t.node().getBoundingClientRect(),y=S=>({x:S.left-g.left,y:S.top-g.top}),w=r.start1<=r.end1?"forward":"reverse",b=r.start2<=r.end2?"forward":"reverse",v=c.getAttribute("groupColor"),_=l.getAttribute("groupColor");return[{startPoint:y(f),endPoint:y(d),strand:w,groupColor:v},{startPoint:y(m),endPoint:y(p),strand:b,groupColor:_}]})}var Gy={normalColor:"#969696",invertedColor:"#d62728",lowColor:"#FFFFFF",vmin:0,vmax:100};function Vy(t,e,n,r){let i=R.interpolateRgb(t,e)(.1);return R.scaleLinear().domain([n,r]).range([i,e]).interpolate(R.interpolateRgb).clamp(!0)}function Zy(t,e,n={}){if(!e||e.length===0)return;let r={curve:!0,...Gy,useGroupColors:!1,color:"lightgrey",measure:"identity",label:!0,labelPosition:"gene",linkStyle:{stroke:"none",fillOpacity:.8},labelStyle:{fontSize:"10px",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default",textAnchor:"middle",alignmentBaseline:"middle"}},i=t.node().getBoundingClientRect();var a=t.insert("div",":first-child").style("position","relative").style("width","100%").style("height","100%").insert("svg",":first-child").attr("width",i.width).attr("height",i.height).classed("GeneLink",!0).style("position","absolute").style("z-index",1);let s=[];e.forEach(function(u){let h=ut(r,"linkOptions",u.options,n),{curve:f,invertedColor:d,normalColor:m,lowColor:p,vmin:g,vmax:y,useGroupColors:w,color:b,linkStyle:v,measure:_}=h,S=at(v,r.linkStyle),k=jr(u.data);gE(t,k).forEach(function(F,A){if(!F)return;let E=F[0].strand==F[1].strand?R.rgb(m):R.rgb(d);var D=Vy(p,E,g,y);let $=h.measure==="none"?100:u.data?.[_]?.[A]??100,M=w?F[0].groupColor:D($);a.append("path").attr("data-component","links").datum(k[A]).attr("d",mE(F[0],F[1],f)).style("fill",M).style("stroke",v.stroke).style("fill-opacity",v.fillOpacity).classed("GeneLink",!0).each(function(){let B=R.select(this);rt(B,S)});let T=u.data?.[_]?.[A];if(h.label&&h.labelPosition==="link"&&_!=="none"&&T!=null&&Number.isFinite(+T)){let B=(F[0].startPoint.x+F[0].endPoint.x)/2,N=(F[1].startPoint.x+F[1].endPoint.x)/2;s.push({x:(B+N)/2,y:(F[0].startPoint.y+F[0].endPoint.y)/2,width:Math.abs(N-B),text:`${parseFloat((+T).toFixed(1))}%`,fill:R.hsl(R.color(M)??"#ffffff").l<.55?"#ffffff":"#333333",datum:k[A],labelStyle:h.labelStyle,defaults:r.labelStyle})}})});let c=a.append("g").attr("class","link-measure-labels"),l=[];s.sort((u,h)=>h.width-u.width).forEach(u=>{let{labelStyle:h}=u,f=c.append("text").attr("class","link-measure").attr("data-component","links").datum(u.datum).attr("x",u.x).attr("y",u.y).attr("text-anchor","middle").attr("dominant-baseline","central").style("font-size",h.fontSize).style("font-style",h.fontStyle).style("font-family",h.fontFamily).style("fill",u.fill).style("pointer-events","none").text(u.text).each(function(){let p=at(h,u.defaults);delete p.labelPosition,rt(R.select(this),p)}),d=f.node().getBBox(),m=l.every(p=>d.x+d.width<p.x||p.x+p.width<d.x||d.y+d.height<p.y||p.y+p.height<d.y);d.width+4>u.width||!m?f.remove():l.push(d)})}function mE(t,e,n=!0){var r=R.path();if(n){var i=(t.startPoint.y+t.endPoint.y)/2;r.moveTo(t.startPoint.x,t.startPoint.y),r.bezierCurveTo(t.startPoint.x,i,t.endPoint.x,i,t.endPoint.x,t.endPoint.y),r.lineTo(e.endPoint.x,e.endPoint.y);var o=(e.startPoint.y+e.endPoint.y)/2;r.bezierCurveTo(e.endPoint.x,o,e.startPoint.x,o,e.startPoint.x,e.startPoint.y)}else r.moveTo(t.startPoint.x,t.startPoint.y),r.lineTo(t.endPoint.x,t.endPoint.y),r.lineTo(e.endPoint.x,e.endPoint.y),r.lineTo(e.startPoint.x,e.startPoint.y);return r.closePath(),r.toString()}function Ky(t,e){if(!t||t.length===0)return[];let n=t.filter(o=>o.cluster1===e),r=t.filter(o=>o.cluster2===e);return n.concat(r)}function yE(t){let e=!1,n=!1;return t.forEach(r=>{let{start1:i=[],end1:o=[],start2:a=[],end2:s=[]}=r.data;for(let c=0;c<i.length;c++)i[c]<=o[c]==a[c]<=s[c]?e=!0:n=!0}),{normal:e,inverted:n}}function Ih(t,e={}){let n={colorBar:!0,...Gy,measure:"identity",margin:{top:5,right:25,bottom:0,left:50},colorBarOptions:{position:"bottomright",orientation:"vertical",labels:"inline",legendSide:"left",x:0,y:null,title:!0,width:null,height:null,labelOptions:{fontSize:8,fontFamily:"sans-serif",xOffset:2,yOffset:0},titleOptions:{fontSize:10,fontFamily:"sans-serif",xOffset:2,yOffset:0},barOptions:{stroke:"#000",strokeWidth:.5,opacity:1}}},r=ut(n,"linkOptions",t[0].options,e),{colorBarOptions:i}=r;if(r.colorBar===!1||r.measure==="none"||!t[0].data.hasOwnProperty("identity")&&!t[0].data.hasOwnProperty("similarity"))return null;let{normal:o,inverted:a}=yE(t);if(!o&&!a)return null;let s=n.colorBarOptions;return{linkOptions:r,colorBarOptions:i,horizontal:i.position==="legend"||i.orientation==="horizontal",hasNormal:o,hasInverted:a,additional:{label:at(i.labelOptions,s.labelOptions),title:at(i.titleOptions,s.titleOptions),bar:at(i.barOptions,s.barOptions)}}}function Lh(t,e,n={}){let{linkOptions:r,colorBarOptions:i,horizontal:o,hasNormal:a,hasInverted:s,additional:c}=e,{labelOptions:l,titleOptions:u,barOptions:h}=i,f=o&&(n.labels??i.labels)==="below",d=parseFloat(n.width??i.width??(o?f?120:80:10)),m=parseFloat(n.height??i.height??(o?8:60)),p=n.fontSize??l.fontSize,g=n.fontSize??u.fontSize,y=n.fontFamily,w=n.outline&&(!h.stroke||h.stroke==="none")?n.outline:h.stroke,b=w===h.stroke?h.strokeWidth:.5,v=t.append("defs"),_=r.vmin,S=r.vmax,k=(B,N,L,q)=>{let U=Xr(B),Z=v.append("linearGradient").attr("id",U).attr("gradientTransform",o?null:"rotate(90)"),Q=Vy(r.lowColor,N,_,S);Z.append("stop").attr("offset","0%").attr("stop-color",Q(o?_:S)),Z.append("stop").attr("offset","100%").attr("stop-color",Q(o?S:_)),t.append("rect").attr("x",L).attr("y",q).attr("width",d).attr("height",m).style("fill",`url(#${U})`).style("stroke",w).style("stroke-width",b).style("opacity",h.opacity).each(function(){rt(R.select(this),c.bar)})},C=(B,N,L,q)=>t.append("text").attr("font-size",L).style("font-family",y??N.fontFamily).text(B).each(function(){rt(R.select(this),q)});if(!o)return i.title!==!1&&C(r.measure,u,g,c.title).attr("x",d+u.xOffset).attr("y",m/2+u.yOffset+10).attr("transform",`rotate(-90, ${d+u.xOffset}, ${m/2+u.yOffset})`).attr("alignment-baseline","bottom").attr("text-anchor","middle"),a&&k("linear-gradient",r.normalColor,0,0),s&&k("reverse-gradient",r.invertedColor,a?-d:0,0),C(S+"%",l,p,c.label).attr("x",d+l.xOffset).attr("y",-l.yOffset).attr("alignment-baseline","middle"),C(_+"%",l,p,c.label).attr("x",d+l.xOffset).attr("y",m+l.yOffset).attr("alignment-baseline","middle"),{width:(a&&s?2:1)*d,height:m};let F=(a&&s?2:1)*m,A=()=>C(r.measure,u,g,{fontWeight:"bold",...c.title}),E=(B,N)=>{a&&k("linear-gradient",r.normalColor,B,N),s&&k("reverse-gradient",r.invertedColor,B,N+(a?m:0))};if(f){let B=0;i.title!==!1&&(B=A().attr("x",0).attr("y",u.yOffset).attr("dominant-baseline","hanging").node().getBBox().height+3),E(0,B);let N=R.scaleLinear().domain([_,S]).range([0,d]),L=3,q=w&&w!=="none"?w:"#555555",U=j=>{let H=C(j,l,p,c.label),W=H.node().getComputedTextLength();return H.remove(),W},Z=j=>j.length>1&&j.every((H,W)=>W===0||N(H)-N(j[W-1])>(U(j[W-1]+"%")+U(H+"%"))/2+4);return([5,4,3,2].map(j=>N.ticks(j)).find(Z)??[_,S]).forEach(j=>{t.append("line").attr("x1",N(j)).attr("x2",N(j)).attr("y1",B+F).attr("y2",B+F+L).style("stroke",q).style("stroke-width",.5),C(j+"%",l,p,c.label).attr("x",N(j)).attr("y",B+F+L+1+l.yOffset).attr("dominant-baseline","hanging").attr("text-anchor","middle")}),{width:d,height:F}}let D=F/2,$=4,M=0,T=(B,N)=>{B.attr("x",M).attr("y",D+N).attr("dominant-baseline","central"),M+=B.node().getComputedTextLength()+$};return i.title!==!1&&(T(A(),u.yOffset),M+=$),T(C(_+"%",l,p,c.label),l.yOffset),E(M,0),M+=d+$,T(C(S+"%",l,p,c.label),l.yOffset),{width:d,height:F}}function Qy(t,e,n={},r=!1){let i=Ih(e,n);if(!i)return null;let{linkOptions:o,colorBarOptions:a}=i;if(a.position==="legend"&&r)return null;let s=a.position==="legend"?"bottomright":a.position,c=a.orientation==="horizontal",l=t.node().getBoundingClientRect(),h=t.insert("div",":first-child").style("position","relative").style("width","100%").style("height","100%").append("svg").attr("width",l.width).attr("height",l.height).classed("color-bar",!0).attr("data-component","links").style("position","absolute"),f=h.append("g").attr("transform",`translate(${o.margin.left}, ${o.margin.top})`),d=l.width-o.margin.left-o.margin.right,m=l.height-o.margin.top-o.margin.bottom,p=s==="topleft"||s==="topright",g=s==="topleft"||s==="bottomleft",y=a.x??0,w=a.y??(p||c?0:24),b=f.append("g"),{width:v,height:_}=Lh(b,{...i,horizontal:c});if(s==="bottomright"&&!c)b.attr("transform",`translate(${d-v-y}, ${m-_-w})`);else{let S=b.node().getBBox(),k=g?y-S.x:d-y-(S.x+S.width),C=p?w-S.y:m-w-(S.y+S.height);b.attr("transform",`translate(${k}, ${C})`)}return h}ft.prototype.legendData=function(t){return this.data=[...new Set(t)],this};ft.prototype.legend=function(t,e=!0,n=null,r={},i=null){if(!e)return this;let o={x:0,y:0,width:null,orientation:"horizontal",align:"left",adjustHeight:!0,order:[],cornerRadius:0,groupStyle:{},legendOptions:{cursor:"pointer",colorScheme:null,customColors:null,pattern:null},legendTextOptions:{cursor:"pointer",textAnchor:"start",dy:".35em",fontSize:"12px",fontFamily:"sans-serif"}},a=ut.call(this,o,"legendOptions",r),{x:s,y:c,width:l,orientation:u,align:h,adjustHeight:f,order:d,cornerRadius:m,legendOptions:p,legendTextOptions:g,groupStyle:y,itemStyle:w=[],editable:b=!1}=a,v=at(p,o.legendOptions),_=at(g,o.legendTextOptions),S=this.svg,k=Le(l,S.node().getBoundingClientRect().width)||S.node().getBoundingClientRect().width,C=[...new Set(this.data.map(J=>J[t]))];C=C.filter(J=>J!==null);let F=ji(p.colorScheme,p.customColors,C),A=Xi(this.svg,p.pattern,C,F,"legend"),E=["Other","No Hit","Unknown"],D=C.filter(J=>!E.includes(J)),$=E.filter(J=>C.includes(J));if(C=[...D,...$],d&&d.length>0&&(C=d.filter(J=>C.includes(J)).concat(C.filter(J=>!d.includes(J)))),!C.length){console.error(`Error: No labels provided and the group "${t}" does not exist in the data.`);return}let M=parseFloat(g.fontSize),T=M/2,B=s,N=c,L=[];var q=this.svg.append("g").attr("data-component","legend").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let U=i?.colorBarOptions.legendSide==="right"?"right":"left",Z=()=>{let J=q.append("g").attr("class","legend-color-bar").attr("data-component","links"),K=J.append("g"),ht=i.hasNormal&&i.hasInverted;Lh(K,i,{height:i.colorBarOptions.height??M/(ht?2:1),fontSize:g.fontSize,fontFamily:g.fontFamily,outline:"#bdbdbd",labels:"inline"});let G=K.node().getBBox(),tt=2*M+T;if(u==="horizontal"&&U==="right"&&B>s){let ot=this.width-this.margin.left-this.margin.right;B+tt+G.width>ot?(B=s,N+=M+T):B+=tt}K.attr("transform",`translate(${B-G.x}, ${N+M/2-(G.y+G.height/2)})`),L.push({node:J.node(),row:N,start:B,end:B+G.width}),u==="horizontal"?B+=G.width+tt+T:N+=Math.max(M,G.height)+T};i&&U==="left"&&Z(),q.selectAll(".legend").data(C).enter().append("g").attr("class","legend").each((J,K,ht)=>{let G=R.select(ht[K]),{marker:tt={},text:ot,...X}=y[J]??{},{group:vt,part:yt,text:Tt,...Mt}=w.find(ie=>ie.group===J&&ie.part==="label")??{},{group:st,part:St,...ne}=w.find(ie=>ie.group===J&&ie.part==="marker")??{},Zt=G.append("text").attr("class","legend-label").attr("data-part","label").attr("id",`legend-label-${K}`).attr("dy",g.dy).style("text-anchor",g.textAnchor).style("font-size",g.fontSize).style("font-family",g.fontFamily).style("cursor",g.cursor).text(Tt??ot??J).each(function(){let ie=R.select(this);rt(ie,_),rt(ie,X),rt(ie,Mt)}),Mn=Zt.node().getComputedTextLength(),Fa=this.width-this.margin.left-this.margin.right,Vi=Mn+M+2*T;B+Vi>Fa&&(B=s,N+=M+T),Zt.attr("x",B+M+T).attr("y",N+M/2);let Zr=G.append("rect").attr("class","legend-marker").attr("data-part","marker").attr("id",`legend-marker-${K}`).style("cursor",p.cursor).attr("x",B).attr("y",N).attr("width",M).attr("height",M).attr("rx",m).style("fill",A.fill(J)).style("stroke",A.outline??(Iy(A.fill(J))?"#bdbdbd":null)).each(()=>A.align(J,B,N)).each(function(){let ie=R.select(this);rt(ie,v),rt(ie,tt),rt(ie,ne)});De(Zt,Mt),De(Zr,ne),L.push({node:ht[K],row:N,start:B,end:B+M+T+Mn}),u==="horizontal"?B+=Mn+M+2*T:N+=M+T}).on("mouseover",(J,K)=>{R.select(J.currentTarget).classed("hovered",!0)}).on("mouseout",(J,K)=>{R.select(J.currentTarget).classed("hovered",!1)}).on("click",(J,K)=>{if(J.detail>1||b&&J.bubbles)return;let ht=R.select(J.currentTarget);ht.classed("unselected")?ht.classed("unselected",!1):ht.classed("unselected",!0);let G=q.selectAll(".unselected").data(),tt=this.data.filter(ot=>G.includes(ot[t])).map(ot=>ot.rowID);n&&typeof n=="string"?R.select("#"+n).selectAll("[rowID]").each(function(){let ot=+R.select(this).attr("rowID");tt.includes(ot)?R.select(this).style("display","none"):R.select(this).style("display","")}):R.selectAll("[rowID]").each(function(){let ot=+R.select(this).attr("rowID");tt.includes(ot)?R.select(this).style("display","none"):R.select(this).style("display","")})}),i&&U==="right"&&Z();let Q={center:.5,right:1}[h]??0;if(Q>0){let J=this.width-this.margin.left-this.margin.right,K=G=>u==="horizontal"?G.row:0,ht=R.rollup(L,G=>R.max(G,tt=>tt.end)-R.min(G,tt=>tt.start),K);L.forEach(G=>{let tt=Math.max(0,J-ht.get(K(G)))*Q;R.select(G.node).attr("transform",`translate(${tt}, 0)`)})}if(f&&this.height===0){var j=20,H=N+M+T+j;S.attr("height",H);var W=k;S.attr("viewBox",`0 0 ${W} ${H}`),q.attr("transform",`translate(${this.margin.left}, ${this.margin.top+j/2})`)}return this};ft.prototype.links=function(t,e,n={}){let r={y:50,showLinks:!0,label:!0,measure:"identity",linkWidth:1,labelStyle:{cursor:"pointer",fontSize:"12px",fontStyle:"italic",fontFamily:"sans-serif",textAnchor:"middle"},labelAdjustmentOptions:{rotation:-65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"}};if(!t||t.length===0)return this;let i=ut.call(this,r,"linkOptions",n),{x:o,y:a,cursor:s,fontSize:c,fontStyle:l,fontFamily:u,textAnchor:h,showLinks:f,label:d,measure:m,labelStyle:p,labelAdjustmentOptions:g,linkWidth:y}=i,w=at(n,r),b=at(p,r.labelStyle);var v=this.svg.append("g").attr("data-component","links").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let S=this.data.some(k=>k.strand==="reverse")?this.geneStrandSpacing*1:0;if(f&&t.forEach(k=>{let C=(1-y)/2,F=k.start1+(k.end1-k.start1)*C,A=k.end1-(k.end1-k.start1)*C,E=k.start2+(k.end2-k.start2)*C,D=k.end2-(k.end2-k.start2)*C;if(k.cluster1===e){let $=k.groupColor?this.genesColorScale(k.groupColor):this.genesColorScale(k.group1);v.append("circle").attr("cx",this.xScale(F)).attr("cy",this.yScale(a)+S).attr("position",k.start1).attr("r",1).attr("cluster",e).attr("visibility","hidden").attr("groupColor",$).attr("linkID",k.linkID).attr("class","link-marker"),v.append("circle").attr("cx",this.xScale(A)).attr("cy",this.yScale(a)+S).attr("position",k.end1).attr("class","link-marker").attr("groupColor",$).attr("visibility","hidden").attr("linkID",k.linkID).attr("cluster",e).attr("r",1)}if(k.cluster2===e){let $=k.groupColor?this.genesColorScale(k.groupColor):this.genesColorScale(k.group2);v.append("circle").attr("cx",this.xScale(E)).attr("cy",this.yScale(a)-S).attr("position",k.start2).attr("class","link-marker").attr("cluster",e).attr("visibility","hidden").attr("groupColor",$).attr("linkID",k.linkID).attr("r",1),v.append("circle").attr("cx",this.xScale(D)).attr("cy",this.yScale(a)-S).attr("position",k.end2).attr("class","link-marker").attr("linkID",k.linkID).attr("cluster",e).attr("visibility","hidden").attr("groupColor",$).attr("r",1)}}),d&&i.labelPosition!=="link"){let k=Zl(this,".link-text"),C=this.svg.selectAll(".link-text").nodes(),F=new Set(C.map(E=>E.getAttribute("rowID"))),A=this.data.filter(E=>!F.has(`${E.rowID}`)&&E[m]!=null&&E.BlastP!="No Hit"&&(E.BlastP===void 0||E.BlastP!=E.protein_id&&E.BlastP)&&(n.value1===void 0&&n.value2===void 0||n.value1&&n.value1.includes(E[n.group])||n.value2&&n.value2.includes(E[n.group])));v.selectAll(".link-text").data(A).enter().append("text").attr("id",(E,D)=>`cluster-${wr(E.cluster)}-link-label-${C.length+D}`).attr("rowID",(E,D)=>`${E.rowID}`).attr("class","link-text").attr("x",(E,D)=>this.xScale((E.start+E.end)/2)).attr("y",(E,D)=>this.yScale(a)-this.markerHeight/1.5-S).text(E=>`${parseFloat(E[m].toFixed(1))}%`).style("font-size",p.fontSize).style("font-style",p.fontStyle).style("font-family",p.fontFamily).style("cursor",p.cursor).attr("text-anchor",p.textAnchor).attr("cluster",e).each(function(E,D){let $=R.select(this);k.adjust(this,g),rt($,b),ma(b)&&k.refresh(this)})}return this};ft.prototype.trackMouse=function(t=!0,e={}){if(!t)return this;let n={cursor:"crosshair",backgroundColor:"rgba(255, 255, 255, 0.9)",padding:"8px",borderRadius:"4px",border:"1px solid rgba(0,0,0,0.1)",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",fontFamily:"Arial, sans-serif",fontSize:"12px",color:"#333",lineHeight:"1.5",zIndex:1e3},{cursor:r,show:i,...o}=ut.call(this,n,"trackMouseOptions",e);this.svg.style("cursor",r),this.svg.selectAll("*").each(function(){this.style.cssText+=`cursor: ${r} !important;`});let a=this.svg.node().closest(".html-widget")||document.body,s=R.select(a).append("div").attr("class","coordinate-tooltip").style("pointer-events","none").style("position","absolute").style("visibility","hidden");rt(s,o);let c=R.scaleLinear().domain([0+this.margin.left,this.width-this.margin.right]).range([0,100]),l=R.scaleLinear().domain([this.height-this.margin.bottom,0+this.margin.top]).range([0,100]),u=R.scaleLinear().domain([0-this.margin.left,this.width]).range([0,100]);return this.svg.on("mousemove",h=>{let[f,d]=R.pointer(h),m=f-this.margin.left,p=Math.round(this.xScale.invert(m)),g=R.format(",");s.html(`x: ${g(p)} <br>y: ${l(d).toFixed(1)}`).style("visibility","visible").style("left",R.pointer(h,a)[0]+10+"px").style("top",R.pointer(h,a)[1]-10+"px")}),this.svg.on("mouseout",()=>{s.style("visibility","hidden")}),this};var bE=["sequence","genes","transcript","links","coordinates","labels","annotations"];ft.prototype.clipZoom=function(){if(!this.zoom)return this;let t=this.svg.node(),e=Array.from(t.children).filter(i=>bE.includes(i.getAttribute("data-component")));if(!e.length)return this;let n=this.width-this.margin.left-this.margin.right,r=document.createElementNS("http://www.w3.org/2000/svg","svg");return r.setAttribute("class","geneviewer-zoom-clip"),r.setAttribute("x",this.margin.left),r.setAttribute("y",0),r.setAttribute("width",n),r.setAttribute("height",this.height),r.setAttribute("viewBox",`${this.margin.left} 0 ${n} ${this.height}`),r.setAttribute("preserveAspectRatio","none"),r.setAttribute("overflow","hidden"),t.insertBefore(r,e[0]),e.forEach(i=>r.appendChild(i)),this};ft.prototype.addAnnotations=function(t){if(!t||t.length===0)return this;var e=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);return t.forEach(n=>{this.createAnnotation(e,n)}),this};ft.prototype.createAnnotation=function(t,e){switch(e.type){case"text":this.createTextAnnotation(t,e);break;case"line":this.createLineAnnotation(t,e);break;case"textMarker":this.createTextMarkerAnnotation(t,e);break;case"arrow":this.createArrowAnnotation(t,e);break;case"promoter":this.createPromoterAnnotation(t,e);break;case"terminator":this.createTerminatorAnnotation(t,e);break;case"rectangle":this.createRectangleAnnotation(t,e);break;case"symbol":this.createSymbolAnnotation(t,e);break;case"arc":this.createCurveAnnotation(t,e);break;default:qe("Unsupported annotation type: "+e.type)}};ft.prototype.createTextAnnotation=function(l,e){let n={x:0,y:60,text:"",style:{fontSize:"10px",fontStyle:"normal",fontWeight:"normal",textDecoration:"none",fontFamily:"sans-serif",cursor:"default"}},r=ut.call(this,n,"textAnnotationOptions",e),{x:i,y:o,text:a,style:s}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]);let c=at(s,n.style);var l=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let u=0;u<Math.max(i.length,o.length,a.length);u++){let h=i[Math.min(u,i.length-1)],f=o[Math.min(u,o.length-1)],d=a[Math.min(u,a.length-1)];l.append("text").attr("x",this.xScale(h)).attr("y",this.yScale(f)).style("font-size",s.fontSize).style("font-style",s.fontStyle).style("font-weight",s.fontWeight).style("text-decoration",s.textDecoration).style("font-family",s.fontFamily).style("cursor",s.cursor).each(function(){let m=R.select(this);xr(d,m,s),rt(m,c)})}};ft.prototype.createLineAnnotation=function(u,e){let n={x1:0,y1:70,x2:0,y2:50,style:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"lineAnnotationOptions",e),{x1:i,y1:o,x2:a,y2:s,style:c}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]);let l=at(c,n.style);var u=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let h=0;h<Math.max(i.length,o.length,a.length,s.length);h++){let f=i[Math.min(h,i.length-1)],d=o[Math.min(h,o.length-1)],m=a[Math.min(h,a.length-1)],p=s[Math.min(h,s.length-1)];u.append("line").attr("x1",this.xScale(f)).attr("y1",this.yScale(d)).attr("x2",this.xScale(m)).attr("y2",this.yScale(p)).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let g=R.select(this);rt(g,l)})}};ft.prototype.createArrowAnnotation=function(d,e){let n={x1:1,y1:70,x2:1,y2:50,arrowSize:8,arrowStyle:{fill:"black"},lineStyle:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"arrowAnnotationOptions",e),{x1:i,y1:o,x2:a,y2:s,arrowSize:c,arrowStyle:l,lineStyle:u}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h=at(u,n.lineStyle),f=at(l,n.arrowStyle);var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=Xr("arrowhead");this.svg.append("defs").append("marker").attr("id",v).attr("viewBox","-0 -5 10 10").attr("refX",5).attr("refY",0).attr("orient","auto").attr("markerWidth",b).attr("markerHeight",b).attr("xoverflow","visible").append("path").attr("d","M 0,-5 L 10 ,0 L 0,5").attr("fill",l.fill).each(function(){let _=R.select(this);rt(_,f)}),d.append("line").attr("x1",this.xScale(p)).attr("y1",this.yScale(g)).attr("x2",this.xScale(y)).attr("y2",this.yScale(w+b/2)).attr("marker-end",`url(#${v})`).style("stroke",u.stroke).style("stroke-width",u.strokeWidth).each(function(){let _=R.select(this);rt(_,h)})}};ft.prototype.createTextMarkerAnnotation=function(t,e){let n={x1:null,y1:66,x2:null,y2:50,position:0,text:"",labelX:0,labelY:0,showArrow:!1,arrowSize:8,textStyle:{fontSize:"10px",fontFamily:"sans-serif",fill:"black",textAnchor:"middle"},arrowStyle:{fill:"black"},lineStyle:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"textMarkerAnnotationOptions",e),{textStyle:i,arrowStyle:o,lineStyle:a}=r,s=["x1","y1","x2","y2","position","text","labelX","labelY","showArrow","arrowSize"];s.forEach(h=>{Array.isArray(r[h])||(r[h]=[r[h]])});let c=at(a,n.lineStyle),l=at(o,n.arrowStyle),u=Math.max(...s.map(h=>r[h].length));for(let h=0;h<u;h++){let f={};s.forEach(b=>{f[b]=r[b][h%r[b].length]});let d=f.showArrow?f.arrowSize/2:0;var t=this.svg.insert("g",":first-child").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let p=Math.round(this.xScale(f.x1!==null?f.x1:f.position)),g=Math.round(this.xScale(f.x2!==null?f.x2:f.position)),y=t.append("line").attr("x1",p).attr("y1",this.yScale(f.y1)).attr("x2",g).attr("y2",this.yScale(f.y2+d)).style("stroke",a.stroke).style("stroke-width",a.strokeWidth).each(function(){let b=R.select(this);rt(b,c)}),w=Xr("arrowhead-marker");this.svg.append("defs").append("marker").attr("id",w).attr("viewBox","-0 -5 10 10").attr("refX",5).attr("refY",0).attr("orient","auto").attr("markerWidth",f.arrowSize).attr("markerHeight",f.arrowSize).attr("xoverflow","visible").append("path").attr("d","M 0,-5 L 10 ,0 L 0,5").attr("fill",o.fill).each(function(){let b=R.select(this);rt(b,l)}),f.showArrow&&y.attr("marker-end",`url(#${w})`),f.text&&t.append("text").attr("x",this.xScale(f.x1!==null?f.x1:f.position)+f.labelX).attr("y",this.yScale(f.y1)-5-f.labelY).style("text-anchor",i.textAnchor).style("font-size",i.fontSize).style("font-family",i.fontFamily).style("fill",i.fill).each(function(){let b=R.select(this);xr(f.text,b,i),rt(b,at(i,n.textStyle))})}return t};ft.prototype.createSymbolAnnotation=function(u,e){let n={x:0,y:50,size:64,symbol:"circle",style:{fill:"black",stroke:"black",strokeWidth:2},rotation:0},r=ut.call(this,n,"symbolAnnotationOptions",e),{x:i,y:o,size:a,symbol:s,style:c,rotation:l}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(s)||(s=[s]),Array.isArray(l)||(l=[l]),Array.isArray(a)||(a=[a]);var u=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let h=at(c,n.style),f={circle:R.symbolCircle,cross:R.symbolCross,diamond:R.symbolDiamond,square:R.symbolSquare,star:R.symbolStar,triangle:R.symbolTriangle,wye:R.symbolWye};for(let d=0;d<Math.max(i.length,o.length,s.length,l.length);d++){let m=i[Math.min(d,i.length-1)],p=o[Math.min(d,o.length-1)],g=s[Math.min(d,s.length-1)],y=l[Math.min(d,l.length-1)],w=a[Math.min(d,a.length-1)];if(!f[g]){console.error(`Unsupported symbol type: ${g}`);continue}let b=R.symbol().type(f[g]).size(w);u.append("path").attr("d",b).attr("transform",`translate(${this.xScale(m)}, ${this.yScale(p)}) rotate(${y})`).style("fill",c.fill).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let v=R.select(this);rt(v,h)})}return u};ft.prototype.createRectangleAnnotation=function(c,e){let n={position:[[[9300,20],[9400,50]]],rotation:[0],style:{fill:"#0000",stroke:"black",strokeWidth:2}},r=ut.call(this,n,"rectangleAnnotationOptions",e),{position:i,style:o,rotation:a}=r;Array.isArray(i[0][0])||(i=[i]),Array.isArray(a)||(a=[a]);let s=at(o,n.style);var c=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let l=Math.max(i.length,a.length);for(let u=0;u<l;u++){let h=i[Math.min(u,i.length-1)],f=a[Math.min(u,a.length-1)],d=Math.min(h[0][0],h[1][0]),m=Math.max(h[0][0],h[1][0]),p=Math.max(h[0][1],h[1][1]),g=Math.min(h[0][1],h[1][1]),y=Math.abs(d-m),w=Math.abs(g-p);c.append("rect").attr("x",this.xScale(d)).attr("y",this.yScale(p)).attr("width",this.xScale(m)-this.xScale(d)).attr("height",this.yScale(g)-this.yScale(p)).attr("transform",`rotate(${f}, ${this.xScale(d+y/2)}, ${this.yScale(p+w/2)})`).style("fill",o.fill).style("stroke",o.stroke).style("stroke-width",o.strokeWidth).each(function(){let b=R.select(this);rt(b,s)})}};ft.prototype.createPromoterAnnotation=function(d,e){let n={x:0,y:50,direction:"forward",rotation:0,scale:1,style:{fill:"none",stroke:"black",strokeWidth:1}},r=ut.call(this,n,"promoterAnnotationOptions",e),{x:i,y:o,direction:a,rotation:s,scale:c,style:l}=r,u=at(l,n.style);Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h="M -8 -17.5 L -13 -14 l 5 3.5 M -13 -14 L 0 -14 v 14",f="M 8 -17.5 L 13 -14 l -5 3.5 M 13 -14 H 0 v 14";var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=y==="forward"?f:h,_=this.xScale(p);d.append("path").attr("d",v).attr("transform",`translate(${_}, ${this.yScale(g)}) scale(${b}) rotate(${w})`).style("fill",l.fill).style("stroke",l.stroke).style("stroke-width",l.strokeWidth).each(function(){let S=R.select(this);rt(S,u)})}};ft.prototype.createTerminatorAnnotation=function(d,e){let n={x:0,y:50,direction:"forward",rotation:0,scale:1,style:{fill:"none",stroke:"black",strokeWidth:1}},r=ut.call(this,n,"terminatorAnnotationOptions",e),{x:i,y:o,direction:a,rotation:s,scale:c,style:l}=r,u=at(l,n.style);Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h="M -8 17.5 L -13 14 l 5 -3.5 M -13 14 H 0 v -14",f="M 8 17.5 L 13 14 l -5 -3.5 M 13 14 L 0 14 v -14";var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=y==="forward"?h:f,_=this.xScale(p);d.append("path").attr("d",v).attr("transform",`translate(${_}, ${this.yScale(g)}) scale(${b}) rotate(${w})`).style("fill",l.fill).style("stroke",l.stroke).style("stroke-width",l.strokeWidth).each(function(){let S=R.select(this);rt(S,u)})}};ft.prototype.createCurveAnnotation=function(y,e){let n={x1:[0],y1:[50],x2:[100],y2:[50],midY:[80],stroke:["black"],strokeWidth:[1],lineStyle:{},text:[""],labelX:[0],labelY:[0],textStyle:{fontSize:"10px",fontFamily:"sans-serif",fill:"black",textAnchor:"middle"}},r=ut.call(this,n,"curveAnnotationOptions",e);["x1","y1","x2","y2","midY","stroke","strokeWidth","text","labelX","labelY"].forEach(w=>{Array.isArray(r[w])||(r[w]=[r[w]])});let{x1:o,y1:a,x2:s,y2:c,midY:l,stroke:u,strokeWidth:h,lineStyle:f,text:d,labelX:m,labelY:p,textStyle:g}=r;var y=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let w=0;w<Math.max(o.length,a.length,s.length,c.length,d.length,m.length,p.length);w++){let b=o[w%o.length],v=a[w%a.length],_=s[w%s.length],S=c[w%c.length],k=l[w%l.length],C=u[w%u.length],F=h[w%h.length],A=d[w%d.length],E=m[w%m.length],D=p[w%p.length],$=(b+_)/2,M=R.line().curve(R.curveBasis).x(L=>this.xScale(L.x)).y(L=>this.yScale(L.y)),T=[{x:b,y:v},{x:$,y:k},{x:_,y:S}],B=y.append("path").attr("d",M(T)).style("stroke",C).style("stroke-width",F).style("fill","none");rt(B,at(f,n.lineStyle));let N=y.append("text").attr("x",this.xScale($)+E).attr("y",this.yScale(k)-D).text(A);rt(N,g)}};var Ke=class t{constructor(e={}){this.columns=new Map(Object.entries(e))}static from(e){if(e instanceof t)return e.copy();if(Array.isArray(e)){let r=[];for(let o of e)for(let a of Object.keys(o))r.includes(a)||r.push(a);let i=new t;for(let o of r)i.columns.set(o,e.map(a=>a[o]===void 0?null:a[o]));return i}let n=new t;for(let[r,i]of Object.entries(e||{}))n.columns.set(r,Array.isArray(i)?i.slice():[i]);return n}copy(){let e=new t;for(let[n,r]of this.columns)e.columns.set(n,r.slice());return e}get nrow(){let e=this.columns.values().next();return e.done?0:e.value.length}get names(){return[...this.columns.keys()]}has(e){return this.columns.has(e)}get(e){return this.columns.get(e)}set(e,n){let r=this.nrow;return this.columns.set(e,Array.isArray(n)?n:Array.from({length:r},()=>n)),this}drop(e){return this.columns.delete(e),this}rows(e){let n=new t;for(let[r,i]of this.columns)n.columns.set(r,e.map(o=>i[o]));return n}filter(e){let n=[];for(let r=0;r<this.nrow;r++)e(r)&&n.push(r);return this.rows(n)}select(e){let n=new t;for(let r of e)this.columns.has(r)&&n.columns.set(r,this.columns.get(r).slice());return n}row(e){let n={};for(let[r,i]of this.columns)n[r]=i[e];return n}toJSON(){return Object.fromEntries(this.columns)}};function pe(t){if(t==null)return null;if(typeof t=="boolean")return t?"TRUE":"FALSE";if(typeof t!="number")return String(t);if(Number.isNaN(t))return"NaN";if(!Number.isFinite(t))return t>0?"Inf":"-Inf";if(t===0)return"0";let e=Number(t.toPrecision(15)),n=e!==t&&Number.isInteger(t)?t:e,[r,i]=Math.abs(n).toExponential().split("e"),o=r.replace(".",""),a=Number(i),s=n<0?"-":"",c;a>=0?c=o.length>a+1?`${o.slice(0,a+1)}.${o.slice(a+1)}`:o+"0".repeat(a+1-o.length):c=`0.${"0".repeat(-a-1)}${o}`;let l=`${r}e${a<0?"-":"+"}${String(Math.abs(a)).padStart(2,"0")}`;return s+(c.length<=l.length?c:l)}function Gi(t){if(t==null)return null;if(typeof t=="number")return t;if(typeof t=="boolean")return t?1:0;let e=String(t).trim();return e===""||!/^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$|^[-+]?(Inf|NaN)$/.test(e)?null:Number(e.replace("Inf","Infinity"))}function gt(t,e){if(t!=null){if(Array.isArray(t)){if(!t.length)return;let n=t[e%t.length];return n!==null&&typeof n=="object"?[n]:n}if(Ht(t)){let n=Object.keys(t);if(!n.length)return;let r=n[e%n.length];return{[r]:t[r]}}return t}}function wa(t,e,n){return Object.prototype.hasOwnProperty.call(t,e)?t[e]:n}function Ht(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Jy(t){return t==null?!0:Array.isArray(t)?t.length===0:Ht(t)?Object.keys(t).length===0:!1}function Ce(t){let e={};for(let[n,r]of Object.entries(t))r!=null&&(Array.isArray(r)&&r.length===0||Ht(r)&&Object.keys(r).length===0||(e[n]=r));return e}function xa(t){let e={};for(let[n,r]of Object.entries(t))r!=null&&(e[n]=r);return e}function Gr(t,e){let n=Ht(t)?{...t}:{};for(let[r,i]of Object.entries(e||{}))i==null?delete n[r]:Ht(n[r])&&Ht(i)?n[r]=Gr(n[r],i):n[r]=i;return n}function Qe(t,e){return t==null?e:Gr(t,e)}function Kl(t,e=2){if(typeof t=="number")return t/e;if(/px$/.test(t))return`${pe(Gi(t.replace(/px$/,""))/e)}px`;if(/%$/.test(t))return`${pe(Gi(t.replace(/%$/,""))/e)}%`;throw new Error("Unsupported format")}function Vn(t,e){let n=o=>typeof o=="string"&&/%$/.test(o);if(n(t)&&n(e))return e;let r=t;if(typeof r=="string"&&/px$/.test(r)&&(r=Gi(r.replace("px",""))),n(e)){let o=Gi(String(e).replace("%",""))/100;return typeof r=="number"?r*o:null}let i=e;return typeof i=="string"&&/px$/.test(i)&&(i=Gi(String(i).replace("px",""))),Gi(i)}function ge(t){if(t===null||typeof t!="object")return t;if(typeof t.copy=="function")return t.copy();if(Array.isArray(t))return t.map(ge);let e={};for(let[n,r]of Object.entries(t))e[n]=ge(r);return e}var vE="<b>Start:</b> {start}<br><b>End:</b> {end}",wE=`<b>{protein_id}</b><br>
|
|
21
|
+
L${e} ${v}`;break;default:qe(`Marker type '${t}' not recognized.`),b=""}return{path:b,length:e,scaledArrowheadWidth:d,scaledArrowheadHeight:m,height:v,used:{arrowheadWidth:l,arrowheadHeight:u,markerHeight:h,cornerRadius:f??0}}}function Nh(t){t.attr("rowID",(e,n)=>`${e.rowID}`).attr("start",(e,n)=>`${e.start}`).attr("end",(e,n)=>`${e.end}`).attr("strand",(e,n)=>`${e.strand}`).attr("cluster",(e,n)=>`${e.cluster}`)}function Rh(t,e,{xPos:n,yPos:r,height:i}){return`rotate(${t?e.direction==="forward"?180:0:e.direction==="forward"?0:180}, ${n}, ${r}) translate(${n}, ${r-i/2})`}function Ph(t,e,n,r,i,o){let a=o.find(S=>S.index===n)||{},s=Math.abs(t.xScale(e.end)-t.xScale(e.start)),c=a.y??r,l=a.marker??i.marker,u=a.markerSize??i.markerSize,{path:h,arrowheadWidth:f,arrowheadHeight:d,height:m,used:p}=Xy(l,s,u,{arrowheadWidth:a.arrowheadWidth??i.arrowheadWidth,arrowheadHeight:a.arrowheadHeight??i.arrowheadHeight,markerHeight:a.markerHeight??i.markerHeight,cornerRadius:a.cornerRadius??i.cornerRadius}),g=Xy(i.marker,s,i.markerSize,{arrowheadWidth:i.arrowheadWidth,arrowheadHeight:i.arrowheadHeight,markerHeight:i.markerHeight,cornerRadius:i.cornerRadius}).height;t.markerHeight=g,t.markerY=r,t.geneStrandSpacing=t.separateStrands?g/2+t.strandSpacing:0,t.geneOverlapSpacing=g+t.overlapSpacing;let y=e.strand==="forward"&&t.geneStrandSpacing!==0?t.geneStrandSpacing:-t.geneStrandSpacing,w=e.geneTrack?(e.geneTrack-1)*t.geneOverlapSpacing:0,b=t.yScale(c)-y+w,v=t.xScale(e.start),_={marker:l,markerSize:u,...p,y:c};return{xPos:v,yPos:b,path:h,arrowheadWidth:f,arrowheadHeight:d,height:m,drawn:_}}ft.prototype.genes=function(t,e=!0,n={}){if(!e)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the geneData() function before attempting to draw arrows."),this;let r={x:1,y:50,stroke:"black",strokeWidth:1,colorScheme:null,customColors:null,pattern:null,cursor:"default",marker:"arrow",markerSize:"medium",itemStyle:[],groupStyle:{},styleBy:null,arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},i=ut.call(this,r,"geneOptions",n),{x:o,y:a,stroke:s,strokeWidth:c,colorScheme:l,customColors:u,pattern:h,cursor:f,groupStyle:d,styleBy:m}=i,p=at(i,r),g=[...new Set(this.dataAll.map(S=>S[t]))],y=ji(l,u,g);this.genesColorScale=y;let w=Xi(this.svg,h,g,y,"gene");var b=this.svg.append("g").attr("data-component","genes").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);this.data.sort((S,k)=>Math.min(S.start,S.end)-Math.min(k.start,k.end));let v=Ui(this.data,m??t,d,i.itemStyle),_=(S,k)=>Ph(this,S,k,a,i,v);return b.selectAll(".gene").data(this.data).enter().append("path").attr("d",(S,k)=>_(S,k).path).attr("transform",(S,k)=>Rh(this.reverse,S,_(S,k))).attr("fill",S=>w.fill(S[t])).attr("class","gene").attr("id",(S,k)=>`${wr(S.cluster)}-gene-${k}`).call(Nh).style("stroke-width",c).style("stroke",s).style("cursor",f).each(function(S,k){let C=R.select(this);rt(C,p),Hi(C,v,k),this.__drawn__=_(S,k).drawn}),this.genes=b.selectAll(".gene"),this};ft.prototype.transcript=function(t,e=!0,n={}){if(!e)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the geneData() function before attempting to draw arrows."),this;let r={x:1,y:50,colorScheme:null,customColors:null,pattern:null,styleExons:{show:!0,strokeWidth:0,cursor:"default",marker:"box",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},styleIntrons:{show:!0,strokeWidth:1,fill:"none",cursor:"default",marker:"intron",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},styleUTRs:{show:!0,fontSize:"10px",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default",color:"black",fill:"#FFF",strokeWidth:1,marker:"box",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},labelOptions:{show:!0,xOffset:2,yOffset:0,fontSize:"12px",fontStyle:"normal",fontWeight:"normal",fontFamily:"sans-serif",cursor:"default",color:"black"},itemStyleExons:[],itemStyleIntrons:[],itemStyleUTRs:[],groupStyleExons:{},groupStyleIntrons:{},groupStyleUTRs:{},styleBy:null},i=ut.call(this,r,"transcriptOptions",n),{x:o,y:a,colorScheme:s,customColors:c,pattern:l,styleExons:u,styleIntrons:h,styleUTRs:f,labelOptions:d}=i,m=i.styleBy??t,p=at(i.styleExons,r.styleExons),g=at(i.styleIntrons,r.styleIntrons),y=at(i.styleUTRs,r.styleUTRs),w=[...new Set(this.dataAll.map(A=>A[t]))],b=ji(s,c,w);this.genesColorScale=b;let v=Xi(this.svg,l,w,b,"exon"),_=this.svg.append("g").attr("data-component","transcript").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);this.data.sort((A,E)=>Math.min(A.start,A.end)-Math.min(E.start,E.end));let S=(A,E,D,z)=>Ph(this,A,E,a,D,z),k=(A,E,D,z,M,T,B,N)=>{let L=this.data.filter(U=>new RegExp(A,"i").test(U.type)),q=Ui(L,m,D,z);return _.selectAll(`.${A}`).data(L).enter().append("path").attr("d",(U,Z)=>S(U,Z,E,q).path).attr("transform",(U,Z)=>T(U,S(U,Z,E,q))).attr("fill",B).attr("class",A).attr("id",(U,Z)=>`${wr(U.cluster)}-${A}-${Z}`).call(Nh).style("stroke-width",E.strokeWidth).style("stroke",N).style("cursor",E.cursor).each(function(U,Z){let Q=R.select(this);rt(Q,M),Hi(Q,q,Z)}),_.selectAll(`.${A}`)},C=(A,E)=>Rh(this.reverse,A,E),F=A=>v.stroke(A[t]);if(u.show&&(this.exons=k("exon",u,i.groupStyleExons,i.itemStyleExons,p,C,A=>v.fill(A[t]),u.stroke)),h.show){let A=(E,{xPos:D,yPos:z,height:M})=>{let T=E.direction==="forward"?-M:+M;return`rotate(${this.reverse?E.direction==="reverse"?180:0:E.direction==="forward"?0:180}, ${D}, ${z+T}) translate(${D}, ${z+T})`};this.introns=k("intron",h,i.groupStyleIntrons,i.itemStyleIntrons,g,A,h.fill,F)}if(f.show&&(this.utrs=k("utr",f,i.groupStyleUTRs,i.itemStyleUTRs,y,C,f.fill,F),d.show)){let A=this.data[0].direction==="forward"?this.xScale(this.maxEnd)+d.xOffset:this.xScale(this.minStart)-d.xOffset,E=this.data[0].direction==="forward"?this.xScale(this.minStart)-d.xOffset:this.xScale(this.maxEnd)+d.xOffset;_.append("text").attr("x",A).attr("y",D=>this.yScale(a+d.yOffset)).attr("class","three-prime-label").attr("text-anchor","middle").attr("alignment-baseline","middle").style("font-size",d.fontSize).style("font-style",d.fontStyle).style("font-weight",d.fontWeight).style("font-family",d.fontFamily).style("cursor",d.cursor).style("fill",d.color).text("3'"),_.append("text").attr("x",E).attr("y",D=>this.yScale(a+d.yOffset)).attr("class","five-prime-label").attr("text-anchor","middle").attr("alignment-baseline","middle").style("font-size",d.fontSize).style("font-style",d.fontStyle).style("font-weight",d.fontWeight).style("font-family",d.fontFamily).style("cursor",d.cursor).style("fill",d.color).text("5'")}return this};function mE(t,e){return e.map(r=>{let i=`.link-marker[cluster='${r.cluster1}'][linkID='${r.linkID}'][position='${r.start1}']`,o=`.link-marker[cluster='${r.cluster2}'][linkID='${r.linkID}'][position='${r.start2}']`,a=`.link-marker[cluster='${r.cluster1}'][linkID='${r.linkID}'][position='${r.end1}']`,s=`.link-marker[cluster='${r.cluster2}'][linkID='${r.linkID}'][position='${r.end2}']`,c=t.select(i).node(),l=t.select(o).node(),u=t.select(a).node(),h=t.select(s).node();if(!c||!l||!u||!h)return null;let f=c.getBoundingClientRect(),d=l.getBoundingClientRect(),m=u.getBoundingClientRect(),p=h.getBoundingClientRect(),g=t.node().getBoundingClientRect(),y=S=>({x:S.left-g.left,y:S.top-g.top}),w=r.start1<=r.end1?"forward":"reverse",b=r.start2<=r.end2?"forward":"reverse",v=c.getAttribute("groupColor"),_=l.getAttribute("groupColor");return[{startPoint:y(f),endPoint:y(d),strand:w,groupColor:v},{startPoint:y(m),endPoint:y(p),strand:b,groupColor:_}]})}var Gy={normalColor:"#969696",invertedColor:"#d62728",lowColor:"#FFFFFF",vmin:0,vmax:100};function Vy(t,e,n,r){let i=R.interpolateRgb(t,e)(.1);return R.scaleLinear().domain([n,r]).range([i,e]).interpolate(R.interpolateRgb).clamp(!0)}function Zy(t,e,n={}){if(!e||e.length===0)return;let r={curve:!0,...Gy,useGroupColors:!1,color:"lightgrey",measure:"identity",label:!0,labelPosition:"gene",linkStyle:{stroke:"none",fillOpacity:.8},labelStyle:{fontSize:"10px",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default",textAnchor:"middle",alignmentBaseline:"middle"}},i=t.node().getBoundingClientRect();var a=t.insert("div",":first-child").style("position","relative").style("width","100%").style("height","100%").insert("svg",":first-child").attr("width",i.width).attr("height",i.height).classed("GeneLink",!0).style("position","absolute").style("z-index",1);let s=[];e.forEach(function(u){let h=ut(r,"linkOptions",u.options,n),{curve:f,invertedColor:d,normalColor:m,lowColor:p,vmin:g,vmax:y,useGroupColors:w,color:b,linkStyle:v,measure:_}=h,S=at(v,r.linkStyle),k=jr(u.data);mE(t,k).forEach(function(F,A){if(!F)return;let E=F[0].strand==F[1].strand?R.rgb(m):R.rgb(d);var D=Vy(p,E,g,y);let z=h.measure==="none"?100:u.data?.[_]?.[A]??100,M=w?F[0].groupColor:D(z);a.append("path").attr("data-component","links").datum(k[A]).attr("d",yE(F[0],F[1],f)).style("fill",M).style("stroke",v.stroke).style("fill-opacity",v.fillOpacity).classed("GeneLink",!0).each(function(){let B=R.select(this);rt(B,S)});let T=u.data?.[_]?.[A];if(h.label&&h.labelPosition==="link"&&_!=="none"&&T!=null&&Number.isFinite(+T)){let B=(F[0].startPoint.x+F[0].endPoint.x)/2,N=(F[1].startPoint.x+F[1].endPoint.x)/2;s.push({x:(B+N)/2,y:(F[0].startPoint.y+F[0].endPoint.y)/2,width:Math.abs(N-B),text:`${parseFloat((+T).toFixed(1))}%`,fill:R.hsl(R.color(M)??"#ffffff").l<.55?"#ffffff":"#333333",datum:k[A],labelStyle:h.labelStyle,defaults:r.labelStyle})}})});let c=a.append("g").attr("class","link-measure-labels"),l=[];s.sort((u,h)=>h.width-u.width).forEach(u=>{let{labelStyle:h}=u,f=c.append("text").attr("class","link-measure").attr("data-component","links").datum(u.datum).attr("x",u.x).attr("y",u.y).attr("text-anchor","middle").attr("dominant-baseline","central").style("font-size",h.fontSize).style("font-style",h.fontStyle).style("font-family",h.fontFamily).style("fill",u.fill).style("pointer-events","none").text(u.text).each(function(){let p=at(h,u.defaults);delete p.labelPosition,rt(R.select(this),p)}),d=f.node().getBBox(),m=l.every(p=>d.x+d.width<p.x||p.x+p.width<d.x||d.y+d.height<p.y||p.y+p.height<d.y);d.width+4>u.width||!m?f.remove():l.push(d)})}function yE(t,e,n=!0){var r=R.path();if(n){var i=(t.startPoint.y+t.endPoint.y)/2;r.moveTo(t.startPoint.x,t.startPoint.y),r.bezierCurveTo(t.startPoint.x,i,t.endPoint.x,i,t.endPoint.x,t.endPoint.y),r.lineTo(e.endPoint.x,e.endPoint.y);var o=(e.startPoint.y+e.endPoint.y)/2;r.bezierCurveTo(e.endPoint.x,o,e.startPoint.x,o,e.startPoint.x,e.startPoint.y)}else r.moveTo(t.startPoint.x,t.startPoint.y),r.lineTo(t.endPoint.x,t.endPoint.y),r.lineTo(e.endPoint.x,e.endPoint.y),r.lineTo(e.startPoint.x,e.startPoint.y);return r.closePath(),r.toString()}function Ky(t,e){if(!t||t.length===0)return[];let n=t.filter(o=>o.cluster1===e),r=t.filter(o=>o.cluster2===e);return n.concat(r)}function bE(t){let e=!1,n=!1;return t.forEach(r=>{let{start1:i=[],end1:o=[],start2:a=[],end2:s=[]}=r.data;for(let c=0;c<i.length;c++)i[c]<=o[c]==a[c]<=s[c]?e=!0:n=!0}),{normal:e,inverted:n}}function Ih(t,e={}){let n={colorBar:!0,...Gy,measure:"identity",margin:{top:5,right:25,bottom:0,left:50},colorBarOptions:{position:"bottomright",orientation:"vertical",labels:"inline",legendSide:"left",x:0,y:null,title:!0,width:null,height:null,labelOptions:{fontSize:8,fontFamily:"sans-serif",xOffset:2,yOffset:0},titleOptions:{fontSize:10,fontFamily:"sans-serif",xOffset:2,yOffset:0},barOptions:{stroke:"#000",strokeWidth:.5,opacity:1}}},r=ut(n,"linkOptions",t[0].options,e),{colorBarOptions:i}=r;if(r.colorBar===!1||r.measure==="none"||!t[0].data.hasOwnProperty("identity")&&!t[0].data.hasOwnProperty("similarity"))return null;let{normal:o,inverted:a}=bE(t);if(!o&&!a)return null;let s=n.colorBarOptions;return{linkOptions:r,colorBarOptions:i,horizontal:i.position==="legend"||i.orientation==="horizontal",hasNormal:o,hasInverted:a,additional:{label:at(i.labelOptions,s.labelOptions),title:at(i.titleOptions,s.titleOptions),bar:at(i.barOptions,s.barOptions)}}}function Lh(t,e,n={}){let{linkOptions:r,colorBarOptions:i,horizontal:o,hasNormal:a,hasInverted:s,additional:c}=e,{labelOptions:l,titleOptions:u,barOptions:h}=i,f=o&&(n.labels??i.labels)==="below",d=parseFloat(n.width??i.width??(o?f?120:80:10)),m=parseFloat(n.height??i.height??(o?8:60)),p=n.fontSize??l.fontSize,g=n.fontSize??u.fontSize,y=n.fontFamily,w=n.outline&&(!h.stroke||h.stroke==="none")?n.outline:h.stroke,b=w===h.stroke?h.strokeWidth:.5,v=t.append("defs"),_=r.vmin,S=r.vmax,k=(B,N,L,q)=>{let U=Xr(B),Z=v.append("linearGradient").attr("id",U).attr("gradientTransform",o?null:"rotate(90)"),Q=Vy(r.lowColor,N,_,S);Z.append("stop").attr("offset","0%").attr("stop-color",Q(o?_:S)),Z.append("stop").attr("offset","100%").attr("stop-color",Q(o?S:_)),t.append("rect").attr("x",L).attr("y",q).attr("width",d).attr("height",m).style("fill",`url(#${U})`).style("stroke",w).style("stroke-width",b).style("opacity",h.opacity).each(function(){rt(R.select(this),c.bar)})},C=(B,N,L,q)=>t.append("text").attr("font-size",L).style("font-family",y??N.fontFamily).text(B).each(function(){rt(R.select(this),q)});if(!o)return i.title!==!1&&C(r.measure,u,g,c.title).attr("x",d+u.xOffset).attr("y",m/2+u.yOffset+10).attr("transform",`rotate(-90, ${d+u.xOffset}, ${m/2+u.yOffset})`).attr("alignment-baseline","bottom").attr("text-anchor","middle"),a&&k("linear-gradient",r.normalColor,0,0),s&&k("reverse-gradient",r.invertedColor,a?-d:0,0),C(S+"%",l,p,c.label).attr("x",d+l.xOffset).attr("y",-l.yOffset).attr("alignment-baseline","middle"),C(_+"%",l,p,c.label).attr("x",d+l.xOffset).attr("y",m+l.yOffset).attr("alignment-baseline","middle"),{width:(a&&s?2:1)*d,height:m};let F=(a&&s?2:1)*m,A=()=>C(r.measure,u,g,{fontWeight:"bold",...c.title}),E=(B,N)=>{a&&k("linear-gradient",r.normalColor,B,N),s&&k("reverse-gradient",r.invertedColor,B,N+(a?m:0))};if(f){let B=0;i.title!==!1&&(B=A().attr("x",0).attr("y",u.yOffset).attr("dominant-baseline","hanging").node().getBBox().height+3),E(0,B);let N=R.scaleLinear().domain([_,S]).range([0,d]),L=3,q=w&&w!=="none"?w:"#555555",U=j=>{let H=C(j,l,p,c.label),W=H.node().getComputedTextLength();return H.remove(),W},Z=j=>j.length>1&&j.every((H,W)=>W===0||N(H)-N(j[W-1])>(U(j[W-1]+"%")+U(H+"%"))/2+4);return([5,4,3,2].map(j=>N.ticks(j)).find(Z)??[_,S]).forEach(j=>{t.append("line").attr("x1",N(j)).attr("x2",N(j)).attr("y1",B+F).attr("y2",B+F+L).style("stroke",q).style("stroke-width",.5),C(j+"%",l,p,c.label).attr("x",N(j)).attr("y",B+F+L+1+l.yOffset).attr("dominant-baseline","hanging").attr("text-anchor","middle")}),{width:d,height:F}}let D=F/2,z=4,M=0,T=(B,N)=>{B.attr("x",M).attr("y",D+N).attr("dominant-baseline","central"),M+=B.node().getComputedTextLength()+z};return i.title!==!1&&(T(A(),u.yOffset),M+=z),T(C(_+"%",l,p,c.label),l.yOffset),E(M,0),M+=d+z,T(C(S+"%",l,p,c.label),l.yOffset),{width:d,height:F}}function Qy(t,e,n={},r=!1){let i=Ih(e,n);if(!i)return null;let{linkOptions:o,colorBarOptions:a}=i;if(a.position==="legend"&&r)return null;let s=a.position==="legend"?"bottomright":a.position,c=a.orientation==="horizontal",l=t.node().getBoundingClientRect(),h=t.insert("div",":first-child").style("position","relative").style("width","100%").style("height","100%").append("svg").attr("width",l.width).attr("height",l.height).classed("color-bar",!0).attr("data-component","links").style("position","absolute"),f=h.append("g").attr("transform",`translate(${o.margin.left}, ${o.margin.top})`),d=l.width-o.margin.left-o.margin.right,m=l.height-o.margin.top-o.margin.bottom,p=s==="topleft"||s==="topright",g=s==="topleft"||s==="bottomleft",y=a.x??0,w=a.y??(p||c?0:24),b=f.append("g"),{width:v,height:_}=Lh(b,{...i,horizontal:c});if(s==="bottomright"&&!c)b.attr("transform",`translate(${d-v-y}, ${m-_-w})`);else{let S=b.node().getBBox(),k=g?y-S.x:d-y-(S.x+S.width),C=p?w-S.y:m-w-(S.y+S.height);b.attr("transform",`translate(${k}, ${C})`)}return h}ft.prototype.legendData=function(t){return this.data=[...new Set(t)],this};ft.prototype.legend=function(t,e=!0,n=null,r={},i=null){if(!e)return this;let o={x:0,y:0,width:null,orientation:"horizontal",align:"left",adjustHeight:!0,order:[],cornerRadius:0,groupStyle:{},legendOptions:{cursor:"pointer",colorScheme:null,customColors:null,pattern:null},legendTextOptions:{cursor:"pointer",textAnchor:"start",dy:".35em",fontSize:"12px",fontFamily:"sans-serif"}},a=ut.call(this,o,"legendOptions",r),{x:s,y:c,width:l,orientation:u,align:h,adjustHeight:f,order:d,cornerRadius:m,legendOptions:p,legendTextOptions:g,groupStyle:y,itemStyle:w=[],editable:b=!1}=a,v=at(p,o.legendOptions),_=at(g,o.legendTextOptions),S=this.svg,k=Le(l,S.node().getBoundingClientRect().width)||S.node().getBoundingClientRect().width,C=[...new Set(this.data.map(J=>J[t]))];C=C.filter(J=>J!==null);let F=ji(p.colorScheme,p.customColors,C),A=Xi(this.svg,p.pattern,C,F,"legend"),E=["Other","No Hit","Unknown"],D=C.filter(J=>!E.includes(J)),z=E.filter(J=>C.includes(J));if(C=[...D,...z],d&&d.length>0&&(C=d.filter(J=>C.includes(J)).concat(C.filter(J=>!d.includes(J)))),!C.length){console.error(`Error: No labels provided and the group "${t}" does not exist in the data.`);return}let M=parseFloat(g.fontSize),T=M/2,B=s,N=c,L=[];var q=this.svg.append("g").attr("data-component","legend").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let U=i?.colorBarOptions.legendSide==="right"?"right":"left",Z=()=>{let J=q.append("g").attr("class","legend-color-bar").attr("data-component","links"),K=J.append("g"),ht=i.hasNormal&&i.hasInverted;Lh(K,i,{height:i.colorBarOptions.height??M/(ht?2:1),fontSize:g.fontSize,fontFamily:g.fontFamily,outline:"#bdbdbd",labels:"inline"});let G=K.node().getBBox(),tt=2*M+T;if(u==="horizontal"&&U==="right"&&B>s){let ot=this.width-this.margin.left-this.margin.right;B+tt+G.width>ot?(B=s,N+=M+T):B+=tt}K.attr("transform",`translate(${B-G.x}, ${N+M/2-(G.y+G.height/2)})`),L.push({node:J.node(),row:N,start:B,end:B+G.width}),u==="horizontal"?B+=G.width+tt+T:N+=Math.max(M,G.height)+T};i&&U==="left"&&Z(),q.selectAll(".legend").data(C).enter().append("g").attr("class","legend").each((J,K,ht)=>{let G=R.select(ht[K]),{marker:tt={},text:ot,...X}=y[J]??{},{group:vt,part:yt,text:Tt,...Mt}=w.find(ie=>ie.group===J&&ie.part==="label")??{},{group:st,part:St,...ne}=w.find(ie=>ie.group===J&&ie.part==="marker")??{},Zt=G.append("text").attr("class","legend-label").attr("data-part","label").attr("id",`legend-label-${K}`).attr("dy",g.dy).style("text-anchor",g.textAnchor).style("font-size",g.fontSize).style("font-family",g.fontFamily).style("cursor",g.cursor).text(Tt??ot??J).each(function(){let ie=R.select(this);rt(ie,_),rt(ie,X),rt(ie,Mt)}),Mn=Zt.node().getComputedTextLength(),Fa=this.width-this.margin.left-this.margin.right,Vi=Mn+M+2*T;B+Vi>Fa&&(B=s,N+=M+T),Zt.attr("x",B+M+T).attr("y",N+M/2);let Zr=G.append("rect").attr("class","legend-marker").attr("data-part","marker").attr("id",`legend-marker-${K}`).style("cursor",p.cursor).attr("x",B).attr("y",N).attr("width",M).attr("height",M).attr("rx",m).style("fill",A.fill(J)).style("stroke",A.outline??(Iy(A.fill(J))?"#bdbdbd":null)).each(()=>A.align(J,B,N)).each(function(){let ie=R.select(this);rt(ie,v),rt(ie,tt),rt(ie,ne)});De(Zt,Mt),De(Zr,ne),L.push({node:ht[K],row:N,start:B,end:B+M+T+Mn}),u==="horizontal"?B+=Mn+M+2*T:N+=M+T}).on("mouseover",(J,K)=>{R.select(J.currentTarget).classed("hovered",!0)}).on("mouseout",(J,K)=>{R.select(J.currentTarget).classed("hovered",!1)}).on("click",(J,K)=>{if(J.detail>1||b&&J.bubbles)return;let ht=R.select(J.currentTarget);ht.classed("unselected")?ht.classed("unselected",!1):ht.classed("unselected",!0);let G=q.selectAll(".unselected").data(),tt=this.data.filter(ot=>G.includes(ot[t])).map(ot=>ot.rowID);n&&typeof n=="string"?R.select("#"+n).selectAll("[rowID]").each(function(){let ot=+R.select(this).attr("rowID");tt.includes(ot)?R.select(this).style("display","none"):R.select(this).style("display","")}):R.selectAll("[rowID]").each(function(){let ot=+R.select(this).attr("rowID");tt.includes(ot)?R.select(this).style("display","none"):R.select(this).style("display","")})}),i&&U==="right"&&Z();let Q={center:.5,right:1}[h]??0;if(Q>0){let J=this.width-this.margin.left-this.margin.right,K=G=>u==="horizontal"?G.row:0,ht=R.rollup(L,G=>R.max(G,tt=>tt.end)-R.min(G,tt=>tt.start),K);L.forEach(G=>{let tt=Math.max(0,J-ht.get(K(G)))*Q;R.select(G.node).attr("transform",`translate(${tt}, 0)`)})}if(f&&this.height===0){var j=20,H=N+M+T+j;S.attr("height",H);var W=k;S.attr("viewBox",`0 0 ${W} ${H}`),q.attr("transform",`translate(${this.margin.left}, ${this.margin.top+j/2})`)}return this};ft.prototype.links=function(t,e,n={}){let r={y:50,showLinks:!0,label:!0,measure:"identity",linkWidth:1,labelStyle:{cursor:"pointer",fontSize:"12px",fontStyle:"italic",fontFamily:"sans-serif",textAnchor:"middle"},labelAdjustmentOptions:{rotation:-65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"}};if(!t||t.length===0)return this;let i=ut.call(this,r,"linkOptions",n),{x:o,y:a,cursor:s,fontSize:c,fontStyle:l,fontFamily:u,textAnchor:h,showLinks:f,label:d,measure:m,labelStyle:p,labelAdjustmentOptions:g,linkWidth:y}=i,w=at(n,r),b=at(p,r.labelStyle);var v=this.svg.append("g").attr("data-component","links").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let S=this.data.some(k=>k.strand==="reverse")?this.geneStrandSpacing*1:0;if(f&&t.forEach(k=>{let C=(1-y)/2,F=k.start1+(k.end1-k.start1)*C,A=k.end1-(k.end1-k.start1)*C,E=k.start2+(k.end2-k.start2)*C,D=k.end2-(k.end2-k.start2)*C;if(k.cluster1===e){let z=k.groupColor?this.genesColorScale(k.groupColor):this.genesColorScale(k.group1);v.append("circle").attr("cx",this.xScale(F)).attr("cy",this.yScale(a)+S).attr("position",k.start1).attr("r",1).attr("cluster",e).attr("visibility","hidden").attr("groupColor",z).attr("linkID",k.linkID).attr("class","link-marker"),v.append("circle").attr("cx",this.xScale(A)).attr("cy",this.yScale(a)+S).attr("position",k.end1).attr("class","link-marker").attr("groupColor",z).attr("visibility","hidden").attr("linkID",k.linkID).attr("cluster",e).attr("r",1)}if(k.cluster2===e){let z=k.groupColor?this.genesColorScale(k.groupColor):this.genesColorScale(k.group2);v.append("circle").attr("cx",this.xScale(E)).attr("cy",this.yScale(a)-S).attr("position",k.start2).attr("class","link-marker").attr("cluster",e).attr("visibility","hidden").attr("groupColor",z).attr("linkID",k.linkID).attr("r",1),v.append("circle").attr("cx",this.xScale(D)).attr("cy",this.yScale(a)-S).attr("position",k.end2).attr("class","link-marker").attr("linkID",k.linkID).attr("cluster",e).attr("visibility","hidden").attr("groupColor",z).attr("r",1)}}),d&&i.labelPosition!=="link"){let k=Zl(this,".link-text"),C=this.svg.selectAll(".link-text").nodes(),F=new Set(C.map(E=>E.getAttribute("rowID"))),A=this.data.filter(E=>!F.has(`${E.rowID}`)&&E[m]!=null&&E.BlastP!="No Hit"&&(E.BlastP===void 0||E.BlastP!=E.protein_id&&E.BlastP)&&(n.value1===void 0&&n.value2===void 0||n.value1&&n.value1.includes(E[n.group])||n.value2&&n.value2.includes(E[n.group])));v.selectAll(".link-text").data(A).enter().append("text").attr("id",(E,D)=>`cluster-${wr(E.cluster)}-link-label-${C.length+D}`).attr("rowID",(E,D)=>`${E.rowID}`).attr("class","link-text").attr("x",(E,D)=>this.xScale((E.start+E.end)/2)).attr("y",(E,D)=>this.yScale(a)-this.markerHeight/1.5-S).text(E=>`${parseFloat(E[m].toFixed(1))}%`).style("font-size",p.fontSize).style("font-style",p.fontStyle).style("font-family",p.fontFamily).style("cursor",p.cursor).attr("text-anchor",p.textAnchor).attr("cluster",e).each(function(E,D){let z=R.select(this);k.adjust(this,g),rt(z,b),ma(b)&&k.refresh(this)})}return this};ft.prototype.trackMouse=function(t=!0,e={}){if(!t)return this;let n={cursor:"crosshair",backgroundColor:"rgba(255, 255, 255, 0.9)",padding:"8px",borderRadius:"4px",border:"1px solid rgba(0,0,0,0.1)",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",fontFamily:"Arial, sans-serif",fontSize:"12px",color:"#333",lineHeight:"1.5",zIndex:1e3},{cursor:r,show:i,...o}=ut.call(this,n,"trackMouseOptions",e);this.svg.style("cursor",r),this.svg.selectAll("*").each(function(){this.style.cssText+=`cursor: ${r} !important;`});let a=this.svg.node().closest(".html-widget")||document.body,s=R.select(a).append("div").attr("class","coordinate-tooltip").style("pointer-events","none").style("position","absolute").style("visibility","hidden");rt(s,o);let c=R.scaleLinear().domain([0+this.margin.left,this.width-this.margin.right]).range([0,100]),l=R.scaleLinear().domain([this.height-this.margin.bottom,0+this.margin.top]).range([0,100]),u=R.scaleLinear().domain([0-this.margin.left,this.width]).range([0,100]);return this.svg.on("mousemove",h=>{let[f,d]=R.pointer(h),m=f-this.margin.left,p=Math.round(this.xScale.invert(m)),g=R.format(",");s.html(`x: ${g(p)} <br>y: ${l(d).toFixed(1)}`).style("visibility","visible").style("left",R.pointer(h,a)[0]+10+"px").style("top",R.pointer(h,a)[1]-10+"px")}),this.svg.on("mouseout",()=>{s.style("visibility","hidden")}),this};var vE=["sequence","genes","transcript","links","coordinates","labels","annotations"];ft.prototype.clipZoom=function(){if(!this.zoom)return this;let t=this.svg.node(),e=Array.from(t.children).filter(i=>vE.includes(i.getAttribute("data-component")));if(!e.length)return this;let n=this.width-this.margin.left-this.margin.right,r=document.createElementNS("http://www.w3.org/2000/svg","svg");return r.setAttribute("class","geneviewer-zoom-clip"),r.setAttribute("x",this.margin.left),r.setAttribute("y",0),r.setAttribute("width",n),r.setAttribute("height",this.height),r.setAttribute("viewBox",`${this.margin.left} 0 ${n} ${this.height}`),r.setAttribute("preserveAspectRatio","none"),r.setAttribute("overflow","hidden"),t.insertBefore(r,e[0]),e.forEach(i=>r.appendChild(i)),this};ft.prototype.addAnnotations=function(t){if(!t||t.length===0)return this;var e=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);return t.forEach(n=>{this.createAnnotation(e,n)}),this};ft.prototype.createAnnotation=function(t,e){switch(e.type){case"text":this.createTextAnnotation(t,e);break;case"line":this.createLineAnnotation(t,e);break;case"textMarker":this.createTextMarkerAnnotation(t,e);break;case"arrow":this.createArrowAnnotation(t,e);break;case"promoter":this.createPromoterAnnotation(t,e);break;case"terminator":this.createTerminatorAnnotation(t,e);break;case"rectangle":this.createRectangleAnnotation(t,e);break;case"symbol":this.createSymbolAnnotation(t,e);break;case"arc":this.createCurveAnnotation(t,e);break;default:qe("Unsupported annotation type: "+e.type)}};ft.prototype.createTextAnnotation=function(l,e){let n={x:0,y:60,text:"",style:{fontSize:"10px",fontStyle:"normal",fontWeight:"normal",textDecoration:"none",fontFamily:"sans-serif",cursor:"default"}},r=ut.call(this,n,"textAnnotationOptions",e),{x:i,y:o,text:a,style:s}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]);let c=at(s,n.style);var l=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let u=0;u<Math.max(i.length,o.length,a.length);u++){let h=i[Math.min(u,i.length-1)],f=o[Math.min(u,o.length-1)],d=a[Math.min(u,a.length-1)];l.append("text").attr("x",this.xScale(h)).attr("y",this.yScale(f)).style("font-size",s.fontSize).style("font-style",s.fontStyle).style("font-weight",s.fontWeight).style("text-decoration",s.textDecoration).style("font-family",s.fontFamily).style("cursor",s.cursor).each(function(){let m=R.select(this);xr(d,m,s),rt(m,c)})}};ft.prototype.createLineAnnotation=function(u,e){let n={x1:0,y1:70,x2:0,y2:50,style:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"lineAnnotationOptions",e),{x1:i,y1:o,x2:a,y2:s,style:c}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]);let l=at(c,n.style);var u=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let h=0;h<Math.max(i.length,o.length,a.length,s.length);h++){let f=i[Math.min(h,i.length-1)],d=o[Math.min(h,o.length-1)],m=a[Math.min(h,a.length-1)],p=s[Math.min(h,s.length-1)];u.append("line").attr("x1",this.xScale(f)).attr("y1",this.yScale(d)).attr("x2",this.xScale(m)).attr("y2",this.yScale(p)).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let g=R.select(this);rt(g,l)})}};ft.prototype.createArrowAnnotation=function(d,e){let n={x1:1,y1:70,x2:1,y2:50,arrowSize:8,arrowStyle:{fill:"black"},lineStyle:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"arrowAnnotationOptions",e),{x1:i,y1:o,x2:a,y2:s,arrowSize:c,arrowStyle:l,lineStyle:u}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h=at(u,n.lineStyle),f=at(l,n.arrowStyle);var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=Xr("arrowhead");this.svg.append("defs").append("marker").attr("id",v).attr("viewBox","-0 -5 10 10").attr("refX",5).attr("refY",0).attr("orient","auto").attr("markerWidth",b).attr("markerHeight",b).attr("xoverflow","visible").append("path").attr("d","M 0,-5 L 10 ,0 L 0,5").attr("fill",l.fill).each(function(){let _=R.select(this);rt(_,f)}),d.append("line").attr("x1",this.xScale(p)).attr("y1",this.yScale(g)).attr("x2",this.xScale(y)).attr("y2",this.yScale(w+b/2)).attr("marker-end",`url(#${v})`).style("stroke",u.stroke).style("stroke-width",u.strokeWidth).each(function(){let _=R.select(this);rt(_,h)})}};ft.prototype.createTextMarkerAnnotation=function(t,e){let n={x1:null,y1:66,x2:null,y2:50,position:0,text:"",labelX:0,labelY:0,showArrow:!1,arrowSize:8,textStyle:{fontSize:"10px",fontFamily:"sans-serif",fill:"black",textAnchor:"middle"},arrowStyle:{fill:"black"},lineStyle:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"textMarkerAnnotationOptions",e),{textStyle:i,arrowStyle:o,lineStyle:a}=r,s=["x1","y1","x2","y2","position","text","labelX","labelY","showArrow","arrowSize"];s.forEach(h=>{Array.isArray(r[h])||(r[h]=[r[h]])});let c=at(a,n.lineStyle),l=at(o,n.arrowStyle),u=Math.max(...s.map(h=>r[h].length));for(let h=0;h<u;h++){let f={};s.forEach(b=>{f[b]=r[b][h%r[b].length]});let d=f.showArrow?f.arrowSize/2:0;var t=this.svg.insert("g",":first-child").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let p=Math.round(this.xScale(f.x1!==null?f.x1:f.position)),g=Math.round(this.xScale(f.x2!==null?f.x2:f.position)),y=t.append("line").attr("x1",p).attr("y1",this.yScale(f.y1)).attr("x2",g).attr("y2",this.yScale(f.y2+d)).style("stroke",a.stroke).style("stroke-width",a.strokeWidth).each(function(){let b=R.select(this);rt(b,c)}),w=Xr("arrowhead-marker");this.svg.append("defs").append("marker").attr("id",w).attr("viewBox","-0 -5 10 10").attr("refX",5).attr("refY",0).attr("orient","auto").attr("markerWidth",f.arrowSize).attr("markerHeight",f.arrowSize).attr("xoverflow","visible").append("path").attr("d","M 0,-5 L 10 ,0 L 0,5").attr("fill",o.fill).each(function(){let b=R.select(this);rt(b,l)}),f.showArrow&&y.attr("marker-end",`url(#${w})`),f.text&&t.append("text").attr("x",this.xScale(f.x1!==null?f.x1:f.position)+f.labelX).attr("y",this.yScale(f.y1)-5-f.labelY).style("text-anchor",i.textAnchor).style("font-size",i.fontSize).style("font-family",i.fontFamily).style("fill",i.fill).each(function(){let b=R.select(this);xr(f.text,b,i),rt(b,at(i,n.textStyle))})}return t};ft.prototype.createSymbolAnnotation=function(u,e){let n={x:0,y:50,size:64,symbol:"circle",style:{fill:"black",stroke:"black",strokeWidth:2},rotation:0},r=ut.call(this,n,"symbolAnnotationOptions",e),{x:i,y:o,size:a,symbol:s,style:c,rotation:l}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(s)||(s=[s]),Array.isArray(l)||(l=[l]),Array.isArray(a)||(a=[a]);var u=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let h=at(c,n.style),f={circle:R.symbolCircle,cross:R.symbolCross,diamond:R.symbolDiamond,square:R.symbolSquare,star:R.symbolStar,triangle:R.symbolTriangle,wye:R.symbolWye};for(let d=0;d<Math.max(i.length,o.length,s.length,l.length);d++){let m=i[Math.min(d,i.length-1)],p=o[Math.min(d,o.length-1)],g=s[Math.min(d,s.length-1)],y=l[Math.min(d,l.length-1)],w=a[Math.min(d,a.length-1)];if(!f[g]){console.error(`Unsupported symbol type: ${g}`);continue}let b=R.symbol().type(f[g]).size(w);u.append("path").attr("d",b).attr("transform",`translate(${this.xScale(m)}, ${this.yScale(p)}) rotate(${y})`).style("fill",c.fill).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let v=R.select(this);rt(v,h)})}return u};ft.prototype.createRectangleAnnotation=function(c,e){let n={position:[[[9300,20],[9400,50]]],rotation:[0],style:{fill:"#0000",stroke:"black",strokeWidth:2}},r=ut.call(this,n,"rectangleAnnotationOptions",e),{position:i,style:o,rotation:a}=r;Array.isArray(i[0][0])||(i=[i]),Array.isArray(a)||(a=[a]);let s=at(o,n.style);var c=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let l=Math.max(i.length,a.length);for(let u=0;u<l;u++){let h=i[Math.min(u,i.length-1)],f=a[Math.min(u,a.length-1)],d=Math.min(h[0][0],h[1][0]),m=Math.max(h[0][0],h[1][0]),p=Math.max(h[0][1],h[1][1]),g=Math.min(h[0][1],h[1][1]),y=Math.abs(d-m),w=Math.abs(g-p);c.append("rect").attr("x",this.xScale(d)).attr("y",this.yScale(p)).attr("width",this.xScale(m)-this.xScale(d)).attr("height",this.yScale(g)-this.yScale(p)).attr("transform",`rotate(${f}, ${this.xScale(d+y/2)}, ${this.yScale(p+w/2)})`).style("fill",o.fill).style("stroke",o.stroke).style("stroke-width",o.strokeWidth).each(function(){let b=R.select(this);rt(b,s)})}};ft.prototype.createPromoterAnnotation=function(d,e){let n={x:0,y:50,direction:"forward",rotation:0,scale:1,style:{fill:"none",stroke:"black",strokeWidth:1}},r=ut.call(this,n,"promoterAnnotationOptions",e),{x:i,y:o,direction:a,rotation:s,scale:c,style:l}=r,u=at(l,n.style);Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h="M -8 -17.5 L -13 -14 l 5 3.5 M -13 -14 L 0 -14 v 14",f="M 8 -17.5 L 13 -14 l -5 3.5 M 13 -14 H 0 v 14";var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=y==="forward"?f:h,_=this.xScale(p);d.append("path").attr("d",v).attr("transform",`translate(${_}, ${this.yScale(g)}) scale(${b}) rotate(${w})`).style("fill",l.fill).style("stroke",l.stroke).style("stroke-width",l.strokeWidth).each(function(){let S=R.select(this);rt(S,u)})}};ft.prototype.createTerminatorAnnotation=function(d,e){let n={x:0,y:50,direction:"forward",rotation:0,scale:1,style:{fill:"none",stroke:"black",strokeWidth:1}},r=ut.call(this,n,"terminatorAnnotationOptions",e),{x:i,y:o,direction:a,rotation:s,scale:c,style:l}=r,u=at(l,n.style);Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h="M -8 17.5 L -13 14 l 5 -3.5 M -13 14 H 0 v -14",f="M 8 17.5 L 13 14 l -5 -3.5 M 13 14 L 0 14 v -14";var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=y==="forward"?h:f,_=this.xScale(p);d.append("path").attr("d",v).attr("transform",`translate(${_}, ${this.yScale(g)}) scale(${b}) rotate(${w})`).style("fill",l.fill).style("stroke",l.stroke).style("stroke-width",l.strokeWidth).each(function(){let S=R.select(this);rt(S,u)})}};ft.prototype.createCurveAnnotation=function(y,e){let n={x1:[0],y1:[50],x2:[100],y2:[50],midY:[80],stroke:["black"],strokeWidth:[1],lineStyle:{},text:[""],labelX:[0],labelY:[0],textStyle:{fontSize:"10px",fontFamily:"sans-serif",fill:"black",textAnchor:"middle"}},r=ut.call(this,n,"curveAnnotationOptions",e);["x1","y1","x2","y2","midY","stroke","strokeWidth","text","labelX","labelY"].forEach(w=>{Array.isArray(r[w])||(r[w]=[r[w]])});let{x1:o,y1:a,x2:s,y2:c,midY:l,stroke:u,strokeWidth:h,lineStyle:f,text:d,labelX:m,labelY:p,textStyle:g}=r;var y=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let w=0;w<Math.max(o.length,a.length,s.length,c.length,d.length,m.length,p.length);w++){let b=o[w%o.length],v=a[w%a.length],_=s[w%s.length],S=c[w%c.length],k=l[w%l.length],C=u[w%u.length],F=h[w%h.length],A=d[w%d.length],E=m[w%m.length],D=p[w%p.length],z=(b+_)/2,M=R.line().curve(R.curveBasis).x(L=>this.xScale(L.x)).y(L=>this.yScale(L.y)),T=[{x:b,y:v},{x:z,y:k},{x:_,y:S}],B=y.append("path").attr("d",M(T)).style("stroke",C).style("stroke-width",F).style("fill","none");rt(B,at(f,n.lineStyle));let N=y.append("text").attr("x",this.xScale(z)+E).attr("y",this.yScale(k)-D).text(A);rt(N,g)}};var Ke=class t{constructor(e={}){this.columns=new Map(Object.entries(e))}static from(e){if(e instanceof t)return e.copy();if(Array.isArray(e)){let r=[];for(let o of e)for(let a of Object.keys(o))r.includes(a)||r.push(a);let i=new t;for(let o of r)i.columns.set(o,e.map(a=>a[o]===void 0?null:a[o]));return i}let n=new t;for(let[r,i]of Object.entries(e||{}))n.columns.set(r,Array.isArray(i)?i.slice():[i]);return n}copy(){let e=new t;for(let[n,r]of this.columns)e.columns.set(n,r.slice());return e}get nrow(){let e=this.columns.values().next();return e.done?0:e.value.length}get names(){return[...this.columns.keys()]}has(e){return this.columns.has(e)}get(e){return this.columns.get(e)}set(e,n){let r=this.nrow;return this.columns.set(e,Array.isArray(n)?n:Array.from({length:r},()=>n)),this}drop(e){return this.columns.delete(e),this}rows(e){let n=new t;for(let[r,i]of this.columns)n.columns.set(r,e.map(o=>i[o]));return n}filter(e){let n=[];for(let r=0;r<this.nrow;r++)e(r)&&n.push(r);return this.rows(n)}select(e){let n=new t;for(let r of e)this.columns.has(r)&&n.columns.set(r,this.columns.get(r).slice());return n}row(e){let n={};for(let[r,i]of this.columns)n[r]=i[e];return n}toJSON(){return Object.fromEntries(this.columns)}};function pe(t){if(t==null)return null;if(typeof t=="boolean")return t?"TRUE":"FALSE";if(typeof t!="number")return String(t);if(Number.isNaN(t))return"NaN";if(!Number.isFinite(t))return t>0?"Inf":"-Inf";if(t===0)return"0";let e=Number(t.toPrecision(15)),n=e!==t&&Number.isInteger(t)?t:e,[r,i]=Math.abs(n).toExponential().split("e"),o=r.replace(".",""),a=Number(i),s=n<0?"-":"",c;a>=0?c=o.length>a+1?`${o.slice(0,a+1)}.${o.slice(a+1)}`:o+"0".repeat(a+1-o.length):c=`0.${"0".repeat(-a-1)}${o}`;let l=`${r}e${a<0?"-":"+"}${String(Math.abs(a)).padStart(2,"0")}`;return s+(c.length<=l.length?c:l)}function Gi(t){if(t==null)return null;if(typeof t=="number")return t;if(typeof t=="boolean")return t?1:0;let e=String(t).trim();return e===""||!/^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$|^[-+]?(Inf|NaN)$/.test(e)?null:Number(e.replace("Inf","Infinity"))}function gt(t,e){if(t!=null){if(Array.isArray(t)){if(!t.length)return;let n=t[e%t.length];return n!==null&&typeof n=="object"?[n]:n}if(Ht(t)){let n=Object.keys(t);if(!n.length)return;let r=n[e%n.length];return{[r]:t[r]}}return t}}function wa(t,e,n){return Object.prototype.hasOwnProperty.call(t,e)?t[e]:n}function Ht(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Jy(t){return t==null?!0:Array.isArray(t)?t.length===0:Ht(t)?Object.keys(t).length===0:!1}function Ce(t){let e={};for(let[n,r]of Object.entries(t))r!=null&&(Array.isArray(r)&&r.length===0||Ht(r)&&Object.keys(r).length===0||(e[n]=r));return e}function xa(t){let e={};for(let[n,r]of Object.entries(t))r!=null&&(e[n]=r);return e}function Gr(t,e){let n=Ht(t)?{...t}:{};for(let[r,i]of Object.entries(e||{}))i==null?delete n[r]:Ht(n[r])&&Ht(i)?n[r]=Gr(n[r],i):n[r]=i;return n}function Qe(t,e){return t==null?e:Gr(t,e)}function Kl(t,e=2){if(typeof t=="number")return t/e;if(/px$/.test(t))return`${pe(Gi(t.replace(/px$/,""))/e)}px`;if(/%$/.test(t))return`${pe(Gi(t.replace(/%$/,""))/e)}%`;throw new Error("Unsupported format")}function Vn(t,e){let n=o=>typeof o=="string"&&/%$/.test(o);if(n(t)&&n(e))return e;let r=t;if(typeof r=="string"&&/px$/.test(r)&&(r=Gi(r.replace("px",""))),n(e)){let o=Gi(String(e).replace("%",""))/100;return typeof r=="number"?r*o:null}let i=e;return typeof i=="string"&&/px$/.test(i)&&(i=Gi(String(i).replace("px",""))),Gi(i)}function ge(t){if(t===null||typeof t!="object")return t;if(typeof t.copy=="function")return t.copy();if(Array.isArray(t))return t.map(ge);let e={};for(let[n,r]of Object.entries(t))e[n]=ge(r);return e}var wE="<b>Start:</b> {start}<br><b>End:</b> {end}",xE=`<b>{protein_id}</b><br>
|
|
22
22
|
<b>Query gene</b><br>
|
|
23
|
-
<b>Location:</b> {start} - {end}<br>`,
|
|
23
|
+
<b>Location:</b> {start} - {end}<br>`,_E=`<b>{protein_id}</b><br>
|
|
24
24
|
<b>Best hit:</b> {BlastP}<br>
|
|
25
25
|
<b>Identity:</b> {identity}%<br>
|
|
26
26
|
<b>Similarity:</b> {similarity}%<br>
|
|
27
|
-
<b>Location:</b> {start} - {end}<br>`,tb=["1","forward","+","sense"],_E=["-1","0","reverse","-","antisense","complement"];function SE(t,e=null){if(!t||t.nrow===0)return null;if(e===null&&t.has("strand")&&(e="strand"),!t.has("start"))throw new Error("start column not found in data");if(!t.has("end"))throw new Error("end column not found in data");let n=t.get("start"),r=t.get("end");if(e===null)return t.set("strand",n.map((c,l)=>c===null||r[l]===null?null:c<r[l]?"forward":"reverse")),t;if(!t.has(e))throw new Error("strand column not found in data");let i=t.get(e).map(pe);if(!i.every(c=>tb.includes(c)||_E.includes(c)))throw new Error("Invalid strand values found. Valid values are 1/forward/+/sense or -1/0/reverse/-/antisense/complement.");let o=i.map(c=>tb.includes(c)?"forward":"reverse");t.set("strand",o);let a=n.slice(),s=r.slice();return o.forEach((c,l)=>{(c==="forward"&&n[l]>r[l]||c==="reverse"&&n[l]<r[l])&&(a[l]=r[l],s[l]=n[l])}),t.set("start",a),t.set("end",s),t}function Vt(t,e){let n=[...t.x.series.keys()];if(e==null)return n;let r=Array.isArray(e)?e:[e];if(r.length&&r.every(o=>typeof o=="number"))return r.some(o=>o>n.length||o<1)?(t.warnings.push("Some cluster numbers provided are out of range. Please check the cluster numbers."),[]):r.map(o=>n[Math.trunc(o)-1]);let i=r.map(o=>pe(o));return i.every(o=>n.includes(o))?i:(t.warnings.push("Some cluster names provided are not valid. Please check the cluster names."),[])}function Ql(t){let e=t.fields||{},n=e.start??"start",r=e.end??"end",i=e.cluster??null,o=e.group??null,a=e.strand??null,s=t.width??"100%",c=t.height??"400px",l=t.style??{},u=t.toolbar&&!Array.isArray(t.toolbar)?t.toolbar.buttons:void 0,h=!(Array.isArray(u)&&!u.includes("save")),f={};f.params={start:n,end:r},i!==null&&(f.params.cluster=i),o!==null&&(f.params.group=o),a!==null&&(f.params.strand=a),f.params.width=s,f.params.height=c,Object.keys(l).length&&(f.params.style=ge(l)),f.params.save_button=h;let d=Ke.from(t.data);for(let[k,C]of[[n,"start"],[r,"end"],[i,"cluster"],[o,"group"],[a,"strand"]])if(k!==null&&!d.has(k))throw new Error(`${C} column not found in data`);let m=d.names,p=d.get(n),g=d.get(r),y=d.filter(k=>p[k]!==null&&g[k]!==null),w=[];y.nrow<d.nrow&&w.push("Rows with NA values in 'start' or 'end' columns have been filtered out."),d=y,d.set("rowID",Array.from({length:d.nrow},(k,C)=>C+1));let b=d.copy();d.set("start",b.get(n).slice()),d.set("end",b.get(r).slice()),i!==null&&d.set(i,d.get(i).map(pe)),d=SE(d,a),f.data=d,o!==null&&(f.group=o),i!==null&&(f.cluster=i),f.graphContainer={direction:"column"},f.style=l,f.title={style:{width:"100%"}},f.legend={group:o,show:o!==null,width:s},f.legend.style={width:"100%",backgroundColor:l.backgroundColor??null},f.saveButton=h;let v=i===null?["cluster"]:[...new Set(d.get(i))],_=m.includes("BlastP")&&m.includes("protein_id"),S=new Map;for(let k of v){let C=i===null?d.copy():d.filter(M=>d.get(i)[M]===k);C.set("cluster",k);let F=typeof c=="string"&&/%$/.test(c)?Kl(c,v.length):Number(Vn(c,c))/v.length,A=C.get("start"),E=C.get("end"),D=[...A,...E].filter(M=>M!==null),$=vE;if(_){let M=C.get("BlastP"),T=C.get("protein_id");$=M.some((N,L)=>N!==null&&T[L]!==null&&N===T[L])&&M.every(N=>N===null||N==="No Hit"||T.includes(N))?wE:xE}S.set(k,{clusterName:k,data:C,cluster:{},container:{height:F,width:s,style:{width:"100%",backgroundColor:l.backgroundColor??null}},genes:{group:o,show:!0},sequence:{show:!0},scale:{xMin:Math.min(...D),xMax:Math.max(...D)},transcript:{group:o,show:!1},labels:{group:o,show:!0},coordinates:{show:!1},scaleBar:{},footer:{},clusterLabel:{},clusterTitle:{},annotations:[],trackMouse:{show:!1},tooltip:{show:!0,formatter:$}})}return f.series=S,{x:f,width:s,height:c,spec:t,warnings:w}}var qh={palettes:{okabeIto:["#E69F00","#56B4E9","#009E73","#F0E442","#0072B2","#D55E00","#CC79A7","#999999"],classic:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],vivid:["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],dark:["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],vintage:["#d87c7c","#919e8b","#d7ab82","#6e7074","#61a0a8","#efa18d","#787464","#cc7e63","#724e58","#4b565b"],infographic:["#C1232B","#27727B","#FCCE10","#E87C25","#B5C334","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],greys:["#252525","#525252","#737373","#969696","#bdbdbd","#d9d9d9"],blues:["#08306b","#08519c","#2171b5","#4292c6","#6baed6","#9ecae1","#c6dbef"]},themes:{default:{},classic:{fontFamily:"sans-serif",textColor:"#6E7079",lineColor:"#6E7079",palette:"classic",title:{titleFont:{fontSize:"18px",fill:"#464646"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"#464646"}},clusterLabel:{fill:"#464646"},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"#464646"}},links:{normal_color:"#5470c6",inverted_color:"#ee6666",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#999999",hoverColor:"#3E98C5",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},dark:{fontFamily:"sans-serif",background:"#333333",textColor:"#eeeeee",lineColor:"#eeeeee",palette:"dark",title:{titleFont:{fontSize:"18px"},subtitleFont:{fontSize:"12px",fill:"#aaaaaa"}},clusterTitle:{subtitleFont:{fill:"#aaaaaa"}},clusterLabel:{subtitleFont:{fill:"#aaaaaa"}},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3},links:{normal_color:"#759aa0",inverted_color:"#dd6b66",low_color:"#333333",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#999999",hoverColor:"#eeeeee",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},vintage:{background:"#fef8ef",textColor:"#3f3a33",lineColor:"#787464",palette:"vintage",title:{subtitleFont:{fill:"#787464"}},clusterTitle:{subtitleFont:{fill:"#787464"}},clusterLabel:{subtitleFont:{fill:"#787464"}},sequence:{sequenceStyle:{stroke:"#c9c2b5"}},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"11px",leaderLine:{stroke:"#c9c2b5",strokeWidth:1}},legend:{corner_radius:3},links:{normal_color:"#61a0a8",inverted_color:"#d87c7c",low_color:"#fef8ef",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#c9c2b5",hoverColor:"#d87c7c",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},infographic:{fontFamily:"sans-serif",textColor:"#6E7079",lineColor:"#6E7079",palette:"infographic",title:{titleFont:{fontSize:"18px",fill:"#464646"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"#464646"}},clusterLabel:{fill:"#464646"},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"#464646"}},links:{normal_color:"#27727B",inverted_color:"#C1232B",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"rgba(50, 50, 50, 0.85)",color:"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px"},trackMouse:{backgroundColor:"rgba(50, 50, 50, 0.85)",color:"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px"},toolbar:{color:"#C1232B",hoverColor:"#E87C25",tooltipBackground:"rgba(50, 50, 50, 0.85)",tooltipColor:"#ffffff",tooltipBorder:"none",tooltipRadius:"4px"}},publication:{fontFamily:"Arial, Helvetica, sans-serif",textColor:"black",lineColor:"black",palette:"okabeIto",title:{titleFont:{fontSize:"9.33px",fill:"black"},subtitleFont:{fontSize:"9.33px"}},clusterTitle:{titleFont:{fontSize:"9.33px"},subtitleFont:{fontSize:"9.33px"}},clusterFooter:{titleFont:{fontSize:"9.33px"},subtitleFont:{fontSize:"9.33px"}},clusterLabel:{fontSize:"9.33px",subtitleFont:{fontSize:"9.33px"}},genes:{stroke:"black",strokeWidth:.75,corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3,fontSize:"9.33px"},labelOptions:{fontSize:"9.33px"}},labels:{fontStyle:"italic",fontSize:"9.33px",leaderLine:{strokeWidth:.75}},coordinates:{textStyle:{fontSize:"9.33px"},tickStyle:{lineLength:4}},scale:{textStyle:{fontSize:"9.33px"},tickStyle:{lineLength:4}},scaleBar:{labelStyle:{fontSize:"9.33px"}},legend:{corner_radius:2,legendOptions:{stroke:"black",strokeWidth:.75},legendTextOptions:{fontSize:"9.33px"}},links:{normal_color:"#0072B2",inverted_color:"#D55E00",linkStyle:{fillOpacity:.6},labelStyle:{fontSize:"9.33px"},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:9.33},titleOptions:{fontSize:9.33}}},annotations:{text:{style:{fontSize:"9.33px"}},textMarker:{textStyle:{fontSize:"9.33px"}},arc:{textStyle:{fontSize:"9.33px"}}},tooltip:{backgroundColor:"white",color:"black",border:"1px solid black",borderRadius:"0",boxShadow:"none",fontSize:"9.33px",padding:"8px"},trackMouse:{backgroundColor:"white",color:"black",border:"1px solid black",borderRadius:"0",boxShadow:"none",fontSize:"9.33px",padding:"8px"},toolbar:{color:"#999999",hoverColor:"black",tooltipBackground:"white",tooltipColor:"black",tooltipBorder:"1px solid black",tooltipRadius:"0",tooltipShadow:"none"}},bw:{fontFamily:"sans-serif",textColor:"#555555",lineColor:"#555555",pattern:{color:"black",background:"white",size:6,strokeWidth:1},title:{titleFont:{fontSize:"18px",fill:"black"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"black"}},clusterLabel:{fill:"black"},genes:{stroke:"black",strokeWidth:.75,corner_radius:3},transcript:{styleExons:{stroke:"black",strokeWidth:.75,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"black"}},links:{normal_color:"#bdbdbd",inverted_color:"#525252",colorBarOptions:{barOptions:{stroke:"#555555"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#bdbdbd",hoverColor:"black",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}}}};function Ft(t,e){let n={};for(let[r,i]of Object.entries(t))e.includes(r)||(n[r]=i);return n}function _a(t,e){return Array.from({length:t},(r,i)=>i).sort((r,i)=>{for(let o of e){let a=o(r),s=o(i),c=a===null||Number.isNaN(a),l=s===null||Number.isNaN(s);if(c||l){if(c!==l)return c?1:-1;continue}if(a<s)return-1;if(a>s)return 1}return r-i})}function AE(t,e=!1,n=0){if(!t||t.nrow===0)return null;let r=t.get("start"),i=t.get("end"),o=r.map((d,m)=>Math.min(d,i[m])),a=r.map((d,m)=>Math.max(d,i[m])),s=typeof n=="string",c=s?Number(n.replace(/%$/,""))/100:n,l=(d,m)=>{let p=Math.min(a[d],a[m])-Math.max(o[d],o[m])+1;if(p<=0)return!1;let g=s?c*Math.min(a[d]-o[d]+1,a[m]-o[m]+1):c;return p>g},u=o.map((d,m)=>o.some((p,g)=>g!==m&&o[g]<=o[m]&&a[g]>=a[m]&&(o[g]<o[m]||a[g]>a[m]||g<m))),h=[],f=new Map;for(let d=0;d<o.length;d++){if(e&&!u[d]){h[d]=1;continue}let m=e?2:1;for(;(f.get(m)||[]).some(p=>l(d,p));)m++;h[d]=m,f.set(m,[...f.get(m)||[],d])}return t.set("geneTrack",h),t}var EE=["separateStrands","strandSpacing","preventGeneOverlap","overlapMin","overlapSpacing","clusters","style"];function eb(t,e){let n=e.separateStrands??null,r=e.preventGeneOverlap??null,i=e.overlapMin??null;n===!0&&r!==null&&r!==!1&&(t.warnings.push("Setting both 'separate_strands' and 'prevent_gene_overlap' to TRUE is not supported. Resetting to NULL."),n=null,r=null);let o=Ft(e,EE);for(let a of Vt(t,e.clusters)){let s=t.x.series.get(a);if(r!==null&&r!==!1){let l=s.data,u=l.get("start"),h=l.get("end"),f=_a(l.nrow,[d=>-Math.max(u[d],h[d]),d=>Math.abs(h[d]-u[d])]);s.data=AE(l.rows(f),r==="nested",i===null?0:i)}s.container.style=Qe(s.container.style,e.style??{});let c=Ce({separateStrands:n,strandSpacing:e.strandSpacing,preventGeneOverlap:r!==null?r!==!1:null,overlapSpacing:e.overlapSpacing,...o});s.cluster=Qe(s.cluster,c),s.container=Qe(s.container,Ce({...o}))}}var Yh={white:"#FFFFFF",aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",antiquewhite1:"#FFEFDB",antiquewhite2:"#EEDFCC",antiquewhite3:"#CDC0B0",antiquewhite4:"#8B8378",aquamarine:"#7FFFD4",aquamarine1:"#7FFFD4",aquamarine2:"#76EEC6",aquamarine3:"#66CDAA",aquamarine4:"#458B74",azure:"#F0FFFF",azure1:"#F0FFFF",azure2:"#E0EEEE",azure3:"#C1CDCD",azure4:"#838B8B",beige:"#F5F5DC",bisque:"#FFE4C4",bisque1:"#FFE4C4",bisque2:"#EED5B7",bisque3:"#CDB79E",bisque4:"#8B7D6B",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blue1:"#0000FF",blue2:"#0000EE",blue3:"#0000CD",blue4:"#00008B",blueviolet:"#8A2BE2",brown:"#A52A2A",brown1:"#FF4040",brown2:"#EE3B3B",brown3:"#CD3333",brown4:"#8B2323",burlywood:"#DEB887",burlywood1:"#FFD39B",burlywood2:"#EEC591",burlywood3:"#CDAA7D",burlywood4:"#8B7355",cadetblue:"#5F9EA0",cadetblue1:"#98F5FF",cadetblue2:"#8EE5EE",cadetblue3:"#7AC5CD",cadetblue4:"#53868B",chartreuse:"#7FFF00",chartreuse1:"#7FFF00",chartreuse2:"#76EE00",chartreuse3:"#66CD00",chartreuse4:"#458B00",chocolate:"#D2691E",chocolate1:"#FF7F24",chocolate2:"#EE7621",chocolate3:"#CD661D",chocolate4:"#8B4513",coral:"#FF7F50",coral1:"#FF7256",coral2:"#EE6A50",coral3:"#CD5B45",coral4:"#8B3E2F",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",cornsilk1:"#FFF8DC",cornsilk2:"#EEE8CD",cornsilk3:"#CDC8B1",cornsilk4:"#8B8878",cyan:"#00FFFF",cyan1:"#00FFFF",cyan2:"#00EEEE",cyan3:"#00CDCD",cyan4:"#008B8B",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgoldenrod1:"#FFB90F",darkgoldenrod2:"#EEAD0E",darkgoldenrod3:"#CD950C",darkgoldenrod4:"#8B6508",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkolivegreen1:"#CAFF70",darkolivegreen2:"#BCEE68",darkolivegreen3:"#A2CD5A",darkolivegreen4:"#6E8B3D",darkorange:"#FF8C00",darkorange1:"#FF7F00",darkorange2:"#EE7600",darkorange3:"#CD6600",darkorange4:"#8B4500",darkorchid:"#9932CC",darkorchid1:"#BF3EFF",darkorchid2:"#B23AEE",darkorchid3:"#9A32CD",darkorchid4:"#68228B",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkseagreen1:"#C1FFC1",darkseagreen2:"#B4EEB4",darkseagreen3:"#9BCD9B",darkseagreen4:"#698B69",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategray1:"#97FFFF",darkslategray2:"#8DEEEE",darkslategray3:"#79CDCD",darkslategray4:"#528B8B",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deeppink1:"#FF1493",deeppink2:"#EE1289",deeppink3:"#CD1076",deeppink4:"#8B0A50",deepskyblue:"#00BFFF",deepskyblue1:"#00BFFF",deepskyblue2:"#00B2EE",deepskyblue3:"#009ACD",deepskyblue4:"#00688B",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",dodgerblue1:"#1E90FF",dodgerblue2:"#1C86EE",dodgerblue3:"#1874CD",dodgerblue4:"#104E8B",firebrick:"#B22222",firebrick1:"#FF3030",firebrick2:"#EE2C2C",firebrick3:"#CD2626",firebrick4:"#8B1A1A",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",gold1:"#FFD700",gold2:"#EEC900",gold3:"#CDAD00",gold4:"#8B7500",goldenrod:"#DAA520",goldenrod1:"#FFC125",goldenrod2:"#EEB422",goldenrod3:"#CD9B1D",goldenrod4:"#8B6914",gray:"#BEBEBE",gray0:"#000000",gray1:"#030303",gray2:"#050505",gray3:"#080808",gray4:"#0A0A0A",gray5:"#0D0D0D",gray6:"#0F0F0F",gray7:"#121212",gray8:"#141414",gray9:"#171717",gray10:"#1A1A1A",gray11:"#1C1C1C",gray12:"#1F1F1F",gray13:"#212121",gray14:"#242424",gray15:"#262626",gray16:"#292929",gray17:"#2B2B2B",gray18:"#2E2E2E",gray19:"#303030",gray20:"#333333",gray21:"#363636",gray22:"#383838",gray23:"#3B3B3B",gray24:"#3D3D3D",gray25:"#404040",gray26:"#424242",gray27:"#454545",gray28:"#474747",gray29:"#4A4A4A",gray30:"#4D4D4D",gray31:"#4F4F4F",gray32:"#525252",gray33:"#545454",gray34:"#575757",gray35:"#595959",gray36:"#5C5C5C",gray37:"#5E5E5E",gray38:"#616161",gray39:"#636363",gray40:"#666666",gray41:"#696969",gray42:"#6B6B6B",gray43:"#6E6E6E",gray44:"#707070",gray45:"#737373",gray46:"#757575",gray47:"#787878",gray48:"#7A7A7A",gray49:"#7D7D7D",gray50:"#7F7F7F",gray51:"#828282",gray52:"#858585",gray53:"#878787",gray54:"#8A8A8A",gray55:"#8C8C8C",gray56:"#8F8F8F",gray57:"#919191",gray58:"#949494",gray59:"#969696",gray60:"#999999",gray61:"#9C9C9C",gray62:"#9E9E9E",gray63:"#A1A1A1",gray64:"#A3A3A3",gray65:"#A6A6A6",gray66:"#A8A8A8",gray67:"#ABABAB",gray68:"#ADADAD",gray69:"#B0B0B0",gray70:"#B3B3B3",gray71:"#B5B5B5",gray72:"#B8B8B8",gray73:"#BABABA",gray74:"#BDBDBD",gray75:"#BFBFBF",gray76:"#C2C2C2",gray77:"#C4C4C4",gray78:"#C7C7C7",gray79:"#C9C9C9",gray80:"#CCCCCC",gray81:"#CFCFCF",gray82:"#D1D1D1",gray83:"#D4D4D4",gray84:"#D6D6D6",gray85:"#D9D9D9",gray86:"#DBDBDB",gray87:"#DEDEDE",gray88:"#E0E0E0",gray89:"#E3E3E3",gray90:"#E5E5E5",gray91:"#E8E8E8",gray92:"#EBEBEB",gray93:"#EDEDED",gray94:"#F0F0F0",gray95:"#F2F2F2",gray96:"#F5F5F5",gray97:"#F7F7F7",gray98:"#FAFAFA",gray99:"#FCFCFC",gray100:"#FFFFFF",green:"#00FF00",green1:"#00FF00",green2:"#00EE00",green3:"#00CD00",green4:"#008B00",greenyellow:"#ADFF2F",grey:"#BEBEBE",grey0:"#000000",grey1:"#030303",grey2:"#050505",grey3:"#080808",grey4:"#0A0A0A",grey5:"#0D0D0D",grey6:"#0F0F0F",grey7:"#121212",grey8:"#141414",grey9:"#171717",grey10:"#1A1A1A",grey11:"#1C1C1C",grey12:"#1F1F1F",grey13:"#212121",grey14:"#242424",grey15:"#262626",grey16:"#292929",grey17:"#2B2B2B",grey18:"#2E2E2E",grey19:"#303030",grey20:"#333333",grey21:"#363636",grey22:"#383838",grey23:"#3B3B3B",grey24:"#3D3D3D",grey25:"#404040",grey26:"#424242",grey27:"#454545",grey28:"#474747",grey29:"#4A4A4A",grey30:"#4D4D4D",grey31:"#4F4F4F",grey32:"#525252",grey33:"#545454",grey34:"#575757",grey35:"#595959",grey36:"#5C5C5C",grey37:"#5E5E5E",grey38:"#616161",grey39:"#636363",grey40:"#666666",grey41:"#696969",grey42:"#6B6B6B",grey43:"#6E6E6E",grey44:"#707070",grey45:"#737373",grey46:"#757575",grey47:"#787878",grey48:"#7A7A7A",grey49:"#7D7D7D",grey50:"#7F7F7F",grey51:"#828282",grey52:"#858585",grey53:"#878787",grey54:"#8A8A8A",grey55:"#8C8C8C",grey56:"#8F8F8F",grey57:"#919191",grey58:"#949494",grey59:"#969696",grey60:"#999999",grey61:"#9C9C9C",grey62:"#9E9E9E",grey63:"#A1A1A1",grey64:"#A3A3A3",grey65:"#A6A6A6",grey66:"#A8A8A8",grey67:"#ABABAB",grey68:"#ADADAD",grey69:"#B0B0B0",grey70:"#B3B3B3",grey71:"#B5B5B5",grey72:"#B8B8B8",grey73:"#BABABA",grey74:"#BDBDBD",grey75:"#BFBFBF",grey76:"#C2C2C2",grey77:"#C4C4C4",grey78:"#C7C7C7",grey79:"#C9C9C9",grey80:"#CCCCCC",grey81:"#CFCFCF",grey82:"#D1D1D1",grey83:"#D4D4D4",grey84:"#D6D6D6",grey85:"#D9D9D9",grey86:"#DBDBDB",grey87:"#DEDEDE",grey88:"#E0E0E0",grey89:"#E3E3E3",grey90:"#E5E5E5",grey91:"#E8E8E8",grey92:"#EBEBEB",grey93:"#EDEDED",grey94:"#F0F0F0",grey95:"#F2F2F2",grey96:"#F5F5F5",grey97:"#F7F7F7",grey98:"#FAFAFA",grey99:"#FCFCFC",grey100:"#FFFFFF",honeydew:"#F0FFF0",honeydew1:"#F0FFF0",honeydew2:"#E0EEE0",honeydew3:"#C1CDC1",honeydew4:"#838B83",hotpink:"#FF69B4",hotpink1:"#FF6EB4",hotpink2:"#EE6AA7",hotpink3:"#CD6090",hotpink4:"#8B3A62",indianred:"#CD5C5C",indianred1:"#FF6A6A",indianred2:"#EE6363",indianred3:"#CD5555",indianred4:"#8B3A3A",ivory:"#FFFFF0",ivory1:"#FFFFF0",ivory2:"#EEEEE0",ivory3:"#CDCDC1",ivory4:"#8B8B83",khaki:"#F0E68C",khaki1:"#FFF68F",khaki2:"#EEE685",khaki3:"#CDC673",khaki4:"#8B864E",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lavenderblush1:"#FFF0F5",lavenderblush2:"#EEE0E5",lavenderblush3:"#CDC1C5",lavenderblush4:"#8B8386",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lemonchiffon1:"#FFFACD",lemonchiffon2:"#EEE9BF",lemonchiffon3:"#CDC9A5",lemonchiffon4:"#8B8970",lightblue:"#ADD8E6",lightblue1:"#BFEFFF",lightblue2:"#B2DFEE",lightblue3:"#9AC0CD",lightblue4:"#68838B",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightcyan1:"#E0FFFF",lightcyan2:"#D1EEEE",lightcyan3:"#B4CDCD",lightcyan4:"#7A8B8B",lightgoldenrod:"#EEDD82",lightgoldenrod1:"#FFEC8B",lightgoldenrod2:"#EEDC82",lightgoldenrod3:"#CDBE70",lightgoldenrod4:"#8B814C",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightpink1:"#FFAEB9",lightpink2:"#EEA2AD",lightpink3:"#CD8C95",lightpink4:"#8B5F65",lightsalmon:"#FFA07A",lightsalmon1:"#FFA07A",lightsalmon2:"#EE9572",lightsalmon3:"#CD8162",lightsalmon4:"#8B5742",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightskyblue1:"#B0E2FF",lightskyblue2:"#A4D3EE",lightskyblue3:"#8DB6CD",lightskyblue4:"#607B8B",lightslateblue:"#8470FF",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightsteelblue1:"#CAE1FF",lightsteelblue2:"#BCD2EE",lightsteelblue3:"#A2B5CD",lightsteelblue4:"#6E7B8B",lightyellow:"#FFFFE0",lightyellow1:"#FFFFE0",lightyellow2:"#EEEED1",lightyellow3:"#CDCDB4",lightyellow4:"#8B8B7A",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",magenta1:"#FF00FF",magenta2:"#EE00EE",magenta3:"#CD00CD",magenta4:"#8B008B",maroon:"#B03060",maroon1:"#FF34B3",maroon2:"#EE30A7",maroon3:"#CD2990",maroon4:"#8B1C62",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumorchid1:"#E066FF",mediumorchid2:"#D15FEE",mediumorchid3:"#B452CD",mediumorchid4:"#7A378B",mediumpurple:"#9370DB",mediumpurple1:"#AB82FF",mediumpurple2:"#9F79EE",mediumpurple3:"#8968CD",mediumpurple4:"#5D478B",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",mistyrose1:"#FFE4E1",mistyrose2:"#EED5D2",mistyrose3:"#CDB7B5",mistyrose4:"#8B7D7B",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navajowhite1:"#FFDEAD",navajowhite2:"#EECFA1",navajowhite3:"#CDB38B",navajowhite4:"#8B795E",navy:"#000080",navyblue:"#000080",oldlace:"#FDF5E6",olivedrab:"#6B8E23",olivedrab1:"#C0FF3E",olivedrab2:"#B3EE3A",olivedrab3:"#9ACD32",olivedrab4:"#698B22",orange:"#FFA500",orange1:"#FFA500",orange2:"#EE9A00",orange3:"#CD8500",orange4:"#8B5A00",orangered:"#FF4500",orangered1:"#FF4500",orangered2:"#EE4000",orangered3:"#CD3700",orangered4:"#8B2500",orchid:"#DA70D6",orchid1:"#FF83FA",orchid2:"#EE7AE9",orchid3:"#CD69C9",orchid4:"#8B4789",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",palegreen1:"#9AFF9A",palegreen2:"#90EE90",palegreen3:"#7CCD7C",palegreen4:"#548B54",paleturquoise:"#AFEEEE",paleturquoise1:"#BBFFFF",paleturquoise2:"#AEEEEE",paleturquoise3:"#96CDCD",paleturquoise4:"#668B8B",palevioletred:"#DB7093",palevioletred1:"#FF82AB",palevioletred2:"#EE799F",palevioletred3:"#CD6889",palevioletred4:"#8B475D",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peachpuff1:"#FFDAB9",peachpuff2:"#EECBAD",peachpuff3:"#CDAF95",peachpuff4:"#8B7765",peru:"#CD853F",pink:"#FFC0CB",pink1:"#FFB5C5",pink2:"#EEA9B8",pink3:"#CD919E",pink4:"#8B636C",plum:"#DDA0DD",plum1:"#FFBBFF",plum2:"#EEAEEE",plum3:"#CD96CD",plum4:"#8B668B",powderblue:"#B0E0E6",purple:"#A020F0",purple1:"#9B30FF",purple2:"#912CEE",purple3:"#7D26CD",purple4:"#551A8B",red:"#FF0000",red1:"#FF0000",red2:"#EE0000",red3:"#CD0000",red4:"#8B0000",rosybrown:"#BC8F8F",rosybrown1:"#FFC1C1",rosybrown2:"#EEB4B4",rosybrown3:"#CD9B9B",rosybrown4:"#8B6969",royalblue:"#4169E1",royalblue1:"#4876FF",royalblue2:"#436EEE",royalblue3:"#3A5FCD",royalblue4:"#27408B",saddlebrown:"#8B4513",salmon:"#FA8072",salmon1:"#FF8C69",salmon2:"#EE8262",salmon3:"#CD7054",salmon4:"#8B4C39",sandybrown:"#F4A460",seagreen:"#2E8B57",seagreen1:"#54FF9F",seagreen2:"#4EEE94",seagreen3:"#43CD80",seagreen4:"#2E8B57",seashell:"#FFF5EE",seashell1:"#FFF5EE",seashell2:"#EEE5DE",seashell3:"#CDC5BF",seashell4:"#8B8682",sienna:"#A0522D",sienna1:"#FF8247",sienna2:"#EE7942",sienna3:"#CD6839",sienna4:"#8B4726",skyblue:"#87CEEB",skyblue1:"#87CEFF",skyblue2:"#7EC0EE",skyblue3:"#6CA6CD",skyblue4:"#4A708B",slateblue:"#6A5ACD",slateblue1:"#836FFF",slateblue2:"#7A67EE",slateblue3:"#6959CD",slateblue4:"#473C8B",slategray:"#708090",slategray1:"#C6E2FF",slategray2:"#B9D3EE",slategray3:"#9FB6CD",slategray4:"#6C7B8B",slategrey:"#708090",snow:"#FFFAFA",snow1:"#FFFAFA",snow2:"#EEE9E9",snow3:"#CDC9C9",snow4:"#8B8989",springgreen:"#00FF7F",springgreen1:"#00FF7F",springgreen2:"#00EE76",springgreen3:"#00CD66",springgreen4:"#008B45",steelblue:"#4682B4",steelblue1:"#63B8FF",steelblue2:"#5CACEE",steelblue3:"#4F94CD",steelblue4:"#36648B",tan:"#D2B48C",tan1:"#FFA54F",tan2:"#EE9A49",tan3:"#CD853F",tan4:"#8B5A2B",thistle:"#D8BFD8",thistle1:"#FFE1FF",thistle2:"#EED2EE",thistle3:"#CDB5CD",thistle4:"#8B7B8B",tomato:"#FF6347",tomato1:"#FF6347",tomato2:"#EE5C42",tomato3:"#CD4F39",tomato4:"#8B3626",turquoise:"#40E0D0",turquoise1:"#00F5FF",turquoise2:"#00E5EE",turquoise3:"#00C5CD",turquoise4:"#00868B",violet:"#EE82EE",violetred:"#D02090",violetred1:"#FF3E96",violetred2:"#EE3A8C",violetred3:"#CD3278",violetred4:"#8B2252",wheat:"#F5DEB3",wheat1:"#FFE7BA",wheat2:"#EED8AE",wheat3:"#CDBA96",wheat4:"#8B7E66",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellow1:"#FFFF00",yellow2:"#EEEE00",yellow3:"#CDCD00",yellow4:"#8B8B00",yellowgreen:"#9ACD32"},Uh=["#000000","#DF536B","#61D04F","#2297E6","#28E2E5","#CD0BBC","#F5C710","#9E9E9E"];function ee(t,e,n){let r=e[e.length-1],i=t;for(let o of e.slice(0,-1)){if(!Ht(i[o])){if(n==null)return;i[o]={}}i=i[o]}n==null?delete i[r]:i[r]=n}function En(t,e,n){for(let[r,i]of Object.entries(e)){let o=gt(i,n);o===void 0?delete t[r]:t[r]=o}return t}function Vr(t,e,n,r){Vt(t,e).forEach((i,o)=>{let a=t.x.series.get(i);a[n]=r(o,a)})}var ME=t=>Array.isArray(t)?t:[t];function Wh(t,e,n){let r=t.x.data.names;if(!ME(e).every(i=>r.includes(i)))throw new Error(n)}var CE=["label","show","clusters","itemStyle","groupStyle","styleBy"];function rb(t,e){let n=e.label??null,r=e.show??!0;if(n===null&&t.x.group===void 0)throw new Error("Please define labels");n===null&&(n=t.x.group),Wh(t,n,"label column not found in data");let i=Ft(e,CE);Vt(t,e.clusters).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({label:gt(n,a),show:gt(r,a),itemStyle:e.itemStyle,groupStyle:e.groupStyle,styleBy:e.styleBy,...i});s.labels=Qe(s.labels,c)})}function jh(t,e){return t.colorScheme==null&&t.customColors==null&&(ee(t,["colorScheme"],e?.colorScheme),ee(t,["customColors"],e?.customColors)),t.pattern==null&&ee(t,["pattern"],e?.pattern),t}function Xh(t,e,n){e==null&&n==null||(ee(t.x,["legend","legendOptions","colorScheme"],e),ee(t.x,["legend","legendOptions","customColors"],n))}var FE=["group","marker","markerSize","show","colorScheme","customColors","clusters","itemStyle","groupStyle","styleBy","cornerRadius"];function ib(t,e){let n=e.group??null,r=e.show??!0;n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&Wh(t,n,"group column not found in data");let i=Ft(e,FE);Vt(t,e.clusters).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({group:gt(n,a),marker:gt(e.marker,a),cornerRadius:e.cornerRadius,markerSize:e.markerSize,show:gt(r,a),colorScheme:e.colorScheme,customColors:e.customColors,itemStyle:e.itemStyle,groupStyle:e.groupStyle,styleBy:e.styleBy,...i});s.genes=jh(c,s.genes)}),e.clusters==null&&Xh(t,e.colorScheme,e.customColors)}function ob(t,e){let n=e.colorScheme??null,r=e.customColors??null;if(n!==null&&r!==null&&!Ht(r)){t.warnings.push("Both colorScheme and customColors are selected. Use a named list of customColors to set the colours of some groups, or choose only one.");return}ee(t.x,["legend","legendOptions","colorScheme"],n),ee(t.x,["legend","legendOptions","customColors"],r);for(let i of t.x.series.values())for(let o of["genes","transcript"])ee(i,[o,"colorScheme"],n),ee(i,[o,"customColors"],r)}var nb=["none","solid","horizontal","vertical","diagonal","antidiagonal","grid","crosshatch","dots","zigzag","checkerboard","rings","bricks","plus","wideStripes","inverseDots"];function Hh(t){if(t==null)return"#FFFFFF00";let e=String(t),n=o=>o.toString(16).toUpperCase().padStart(2,"0"),r=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(r){let o=r[1];return o.length<=4&&(o=o.split("").map(a=>a+a).join("")),o=o.toUpperCase(),o.length===8&&o.endsWith("FF")?`#${o.slice(0,6)}`:`#${o}`}let i=e.toLowerCase();return i==="transparent"?"#FFFFFF00":Yh[i]?Yh[i]:/^[1-9][0-9]*$/.test(e)?Uh[(Number(e)-1)%Uh.length]:t}function Gh(t){let n=(Ht(t.patterns)?Object.values(t.patterns):[t.patterns??[]].flat()).filter(o=>o!==null&&!nb.includes(o));if(n.length)throw new Error(`Unknown pattern(s): ${n.join(", ")}. Available patterns: ${nb.join(", ")}`);let r=o=>{if(o!=null)return Ht(o)?Object.fromEntries(Object.entries(o).map(([a,s])=>[a,Hh(s)])):Array.isArray(o)?o.map(Hh):Hh(o)},i={};for(let[o,a]of Object.entries({patterns:t.patterns,color:r(t.color),background:r(t.background),size:t.size,strokeWidth:t.strokeWidth}))a!=null&&(i[o]=a);return i}function ab(t,e){let n=Gh({patterns:e.patterns,color:wa(e,"color","black"),background:wa(e,"background","white"),size:wa(e,"size",6),strokeWidth:wa(e,"strokeWidth",1)});ee(t.x,["legend","legendOptions","pattern"],n);for(let r of t.x.series.values())r.genes.pattern=n,r.transcript.pattern=n}var TE=["group","show","backgroundColor","order","position","align","style","markerStyle","textStyle","cornerRadius","groupStyle"];function sb(t,e){let n=e.group??null,r=e.show??!0;if(r===!0&&n===null&&t.x.group===void 0)throw new Error("Please define a group");n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&Wh(t,n,"group column not found in data");let i={...e.style??{}};e.backgroundColor!=null&&i.backgroundColor==null&&(i.backgroundColor=e.backgroundColor);let o=Ce({group:n,show:r,order:e.order,position:e.position,align:e.align,cornerRadius:e.cornerRadius,style:i,legendOptions:e.markerStyle,legendTextOptions:e.textStyle,groupStyle:e.groupStyle,...Ft(e,TE)});t.x.legend=Qe(t.x.legend,o)}var OE=["show","clusters","y","lineStyle","markerStyle"];function Vh(t,e){if(!t||!e)return t;for(let n of["start","end"])typeof t[n]=="number"&&(t[n]-=e);return t}function lb(t,e){let n=e.show??!0,r=Ft(e,OE);Vr(t,e.clusters,"sequence",(i,o)=>{let a={show:gt(n,i),y:gt(e.y,i)??null,sequenceStyle:e.lineStyle??{},markerStyle:e.markerStyle??{}};return Vh(En(a,r,i),o.positionShift)})}var BE=["show","tickValuesTop","tickValuesBottom","ticksFormat","tickStyle","textStyle","clusters","groupStyle","styleBy"];function cb(t,e){let n=e.show??!0,r=e.styleBy??null;if(r===null&&t.x.group!==void 0&&(r=t.x.group),e.groupStyle!=null&&r===null)throw new Error("groupStyle needs a group in GC_chart() or a style_by column");let i=Ft(e,BE);Vr(t,e.clusters,"coordinates",o=>{let a={show:gt(n,o),ticksFormat:e.ticksFormat??null,tickStyle:e.tickStyle??{},textStyle:e.textStyle??{}};return e.groupStyle!=null&&(a.groupStyle=e.groupStyle,a.styleBy=r),En(a,i,o),ee(a,["tickValuesTop"],e.tickValuesTop),ee(a,["tickValuesBottom"],e.tickValuesBottom),a})}var DE=["formatter","show","clusters"];function ub(t,e){let n=e.formatter??"<b>Start:</b> {start}<br><b>End:</b> {end}",r=e.show??!0,i=Ft(e,DE);Vr(t,e.clusters,"tooltip",o=>En({formatter:n,show:gt(r,o)},i,o))}var fb={scaleBar:{unit:"scaleBarUnit"},labels:{labelAdjustment:"labelAdjustmentOptions"},links:{labelAdjustment:"labelAdjustmentOptions"}},Zh={legend:{markerStyle:"legendOptions",textStyle:"legendTextOptions"},sequence:{lineStyle:"sequenceStyle"},scaleBar:{lineStyle:"scaleBarLineStyle",tickStyle:"scaleBarTickStyle",unit:"scaleBarUnit"},links:{show:"showLinks",labelAdjustment:"labelAdjustmentOptions"},labels:{labelAdjustment:"labelAdjustmentOptions"},scale:{autoBreaks:"scaleBreaks",autoBreakThreshold:"scaleBreakThreshold",breakPadding:"scaleBreakPadding"}};function Jl(t,e){return!e||t===null||typeof t!="object"||Array.isArray(t)?t:Object.fromEntries(Object.entries(t).map(([n,r])=>[e[n]??n,r]))}var Kh={chart:"chartOptions",grid:"containerOptions",cluster:"clusterOptions",title:"titleOptions",clusterTitle:"clusterTitleOptions",clusterFooter:"footerOptions",clusterLabel:"clusterLabelOptions",sequence:"sequenceOptions",genes:"geneOptions",transcript:"transcriptOptions",labels:"labelsOptions",coordinates:"coordinatesOptions",scale:"scaleOptions",scaleBar:"scaleBarOptions",legend:"legendOptions",links:"linkOptions",tooltip:"tooltipOptions",trackMouse:"trackMouseOptions",toolbar:"toolbarOptions"},hb={text:"textAnnotationOptions",line:"lineAnnotationOptions",arrow:"arrowAnnotationOptions",textMarker:"textMarkerAnnotationOptions",symbol:"symbolAnnotationOptions",rectangle:"rectangleAnnotationOptions",promoter:"promoterAnnotationOptions",terminator:"terminatorAnnotationOptions",arc:"curveAnnotationOptions"},tc=qh.themes,Sa=qh.palettes,$E=t=>t.replace(/_([a-z])/g,(e,n)=>n.toUpperCase());function ec(t){return Ht(t)?Object.fromEntries(Object.entries(t).map(([e,n])=>[$E(e),n])):t}function zE(t){let e={...t};for(let n of Object.keys(e))n==="annotations"?Ht(e[n])&&(e[n]=Object.fromEntries(Object.entries(e[n]).map(([r,i])=>[r,ec(i)]))):n in Kh&&(e[n]=ec(e[n]));return e}function Jh(t,e){let n={...t};for(let[r,i]of Object.entries(e||{}))i==null?delete n[r]:Ht(n[r])&&Ht(i)?n[r]=Jh(n[r],i):n[r]=i;return n}function db(t,e){let n=typeof e=="string"?{base:e}:ge(e),r=n.base;delete n.base;let i;if(r==null)i=t.x.theme||{};else{if(!(r in tc))throw new Error(`name must be one of: ${Object.keys(tc).map(a=>`"${a}"`).join(", ")}`);i=zE(ge(tc[r]))}for(let a of Object.keys(n))a in Zh&&(n[a]=Jl(n[a],Zh[a]));let o=n.pattern===!1;o&&delete n.pattern,t.x.theme=Jh(i,n),o&&delete t.x.theme.pattern}function Qh(t){if(!Ht(t)&&!Array.isArray(t))return t;if(Array.isArray(t))return t.map(Qh).filter(n=>!((Ht(n)||Array.isArray(n))&&!Object.keys(n).length));let e={};for(let[n,r]of Object.entries(t)){let i=Qh(r);(Ht(i)||Array.isArray(i))&&Object.keys(i).length===0||(e[n]=i)}return e}function NE(t){let e=t.fontFamily!=null?{fontFamily:t.fontFamily}:{},n={...e,...t.textColor!=null?{fill:t.textColor}:{}},r={...e,...t.textColor!=null?{color:t.textColor}:{}},i=t.lineColor!=null?{stroke:t.lineColor}:{},o=t.palette??null;o!==null&&!(typeof o=="string"&&(o.startsWith("scheme")||o in Sa))&&(o=Array.isArray(o)?o:[o]);let a=o!==null?{colorScheme:o}:{},s=t.pattern!=null?{pattern:Gh(t.pattern)}:{},c=t.background!=null?{backgroundColor:t.background}:{};return Qh({chart:{style:c},title:{titleFont:n,subtitleFont:n},clusterTitle:{titleFont:n,subtitleFont:n},clusterFooter:{titleFont:n,subtitleFont:n},clusterLabel:{...n,subtitleFont:n},sequence:{sequenceStyle:i,markerStyle:i},genes:{...a,...s},transcript:{...a,...s,labelOptions:r,styleUTRs:t.background!=null?{fill:t.background}:{}},labels:{...n,leaderLine:i},coordinates:{textStyle:n,tickStyle:i},scale:{textStyle:n,tickStyle:i,lineStyle:i},scaleBar:{labelStyle:n,scaleBarLineStyle:i,scaleBarTickStyle:i},legend:{legendOptions:{...a,...s},legendTextOptions:n},links:{labelStyle:n,colorBarOptions:{labelOptions:n,titleOptions:n}},tooltip:r,trackMouse:r,toolbar:e,annotations:{text:{style:n},textMarker:{textStyle:n},arc:{textStyle:n}}})}function pb(t){if(!t||Object.keys(t).length===0)return;let e={};for(let i of Object.keys(t))i in Kh&&(e[i]=ec(t[i]));t.annotations!=null&&(e.annotations=Object.fromEntries(Object.entries(t.annotations).map(([i,o])=>[i,ec(o)])));let n=Jh(NE(t),e),r={};for(let[i,o]of Object.entries(Kh))i in n&&(r[o]=n[i]);for(let i of Object.keys(n.annotations||{}))i in hb&&(r[hb[i]]=n.annotations[i]);return t.textScale!=null&&(r.textScale=t.textScale),r}var RE=["translation","sequence"];function nc(t,e=[]){if(t instanceof Ke)return e;if(t instanceof Map)for(let n of t.values())nc(n,e);else if(Array.isArray(t))for(let n of t)nc(n,e);else if(t!==null&&typeof t=="object")for(let n of Object.values(t))nc(n,e);else typeof t=="string"&&e.push(t);return e}function PE(t){if(!t.data)return;let e={...t,data:void 0,series:new Map};for(let[o,a]of t.series)e.series.set(o,{...a,data:void 0});let n=nc(e),r=t.data.names,i=RE.filter(o=>r.includes(o)&&!n.some(a=>a.includes(o)));t.dataColumns=r.filter(o=>!i.includes(o)),delete t.data;for(let o of t.series.values())o.data instanceof Ke&&(o.data=o.data.select(o.data.names.filter(a=>!i.includes(a))))}function td(t){if(t instanceof Map){for(let[e,n]of t)t.set(e,td(n));return t}if(t===null||typeof t!="object"||t instanceof Ke)return t;for(let[e,n]of Object.entries(t))e==="colorScheme"&&typeof n=="string"&&Sa[n]?t[e]=Sa[n].slice():n!==null&&typeof n=="object"&&(t[e]=td(n));return t}function gb(t){let e=t.x;e.size={width:t.width};let n=pb(e.theme);return n===void 0?delete e.theme:e.theme=n,td(e),PE(e),e}var IE=["title","subtitle","style","subtitleFont","titleFont","show","height","align","spacing"];function mb(t,e){let n=e.show??!0;if(!n||e.title==null&&e.subtitle==null)return;let r=Ce({title:e.title,subtitle:e.subtitle,subtitleFont:e.subtitleFont,titleFont:e.titleFont,style:e.style,height:e.height,show:n,align:e.align,spacing:e.spacing,...Ft(e,IE)});t.x.title=Qe(t.x.title,r)}var LE=["title","subtitle","subtitleFont","titleFont","show","height","clusters","align","spacing"];function yb(t,e){let n=e.show??!0,r=Ft(e,LE);Vt(t,e.clusters).forEach((i,o)=>{let a=t.x.series.get(i),s={title:gt(e.title,o)??null,subtitle:gt(e.subtitle,o)??null,subtitleFont:e.subtitleFont??{},titleFont:e.titleFont??{},show:gt(n,o)};ee(s,["align"],gt(e.align,o)),ee(s,["spacing"],gt(e.spacing,o)),En(s,r,o),ee(a,["grid","margin","top"],gt(e.height,o)),a.clusterTitle=s})}var qE=["title","show","width","clusters","position","align","wrapLabel","wrapOptions","subtitle","subtitleFont","spacing"];function bb(t,e){let n=e.show??!0,r=Ft(e,qE),i=Vt(t,e.clusters),o=e.title??null;t.x.cluster!==void 0&&o===null&&(o=i),i.forEach((a,s)=>{let c=t.x.series.get(a),l=xa({title:gt(o,s),show:gt(n,s),width:gt(e.width,s),wrapLabel:e.wrapLabel,wrapOptions:e.wrapOptions??{},position:gt(e.position,s),align:gt(e.align,s),subtitle:gt(e.subtitle,s),spacing:gt(e.spacing,s)});Jy(e.subtitleFont)||(l.subtitleFont=e.subtitleFont),c.clusterLabel=En(l,r,s)})}var YE=["title","subtitle","show","clusters","subtitleFont","titleFont","align","spacing"];function vb(t,e){let n=e.show??!0,r=Ft(e,YE);Vr(t,e.clusters,"footer",i=>{let o={title:gt(e.title,i)??null,subtitle:gt(e.subtitle,i)??null,show:gt(n,i),subtitleFont:e.subtitleFont??{},titleFont:e.titleFont??{}};return ee(o,["align"],gt(e.align,i)),ee(o,["spacing"],gt(e.spacing,i)),En(o,r,i)})}function UE(t,e){let n=10**e;return Math.round(t*n)/n}function ka(t,e){let n=t.x,r=[...n.series.keys()],i=Vt(t,e.clusters),o=t.height,a=e.clusters!=null,s=e.margin==null?null:{...e.margin},c=e.width??null,l=e.height??null;if(c!==null&&!a&&(t.width=Vn(t.width,c)),(e.direction??"column")==="row"&&(n.graphContainer.direction="row",i.length>0)){let u=`${pe(UE(100/i.length,3))}%`;for(let h of i){let f=n.series.get(h).container;f.style={...f.style||{},width:u},f.width=u}}if(s!==null&&!a){let u=s.top!=null?Vn(o,s.top):0,h=s.bottom!=null?Vn(o,s.bottom):0;if(typeof u!="number"||typeof h!="number")throw new Error("Use pixel values for the top and bottom margins when the chart height is a percentage.");if(delete s.top,delete s.bottom,n.legend.margin=Qe(n.legend.margin,s),n.title.margin=Qe(n.title.margin,s),Array.isArray(n.style)&&(n.style={}),u>0&&(n.style.paddingTop=`${pe(u)}px`),h>0&&(n.style.paddingBottom=`${pe(h)}px`),u>0||h>0){t.height="100%";for(let f of r){let d=n.series.get(f).container;if(typeof d.height=="string"&&/%$/.test(d.height))continue;let m=Number(Vn(d.height,d.height));d.height=m-(u+h)/r.length}}}i.forEach((u,h)=>{let f=n.series.get(u).container;if(s!==null&&(f.margin=Qe(f.margin,s)),c!==null&&a){let d=Vn(t.width,gt(c,h));f.style={...f.style||{},width:d},f.width=d}l!==null&&(f.height=a?Vn(o,gt(l,h)):Kl(l,r.length))})}function wb(t){if(!/^\s*[0-9]*\.?[0-9]+\s*bp\s*$/.test(t))throw new Error('scale_break_padding must be a percentage, e.g. 1, or base pairs, e.g. "500bp"');return Number(t.replace(/\s*bp\s*$/,""))}function HE(t,e=0,n=0){let r=t.get("start").slice(),i=t.get("end").slice();r.forEach((f,d)=>{f>i[d]&&([r[d],i[d]]=[i[d],f])});let o=Math.max(...i)-Math.min(...r)+1,a=o*e/100,s=_a(r.length,[f=>r[f]]);r=s.map(f=>r[f]),i=s.map(f=>i[f]);let c=[],l={start:r[0],end:i[0]};for(let f=1;f<r.length;f++)r[f]<=l.end?l.end=Math.max(l.end,i[f]):(c.push(l),l={start:r[f],end:i[f]});c.push(l);let u=[];for(let f=0;f<c.length-1;f++){let d=c[f].end+1,m=c[f+1].start-1;m-d+1>=a&&u.push({start:d,end:m})}let h;return typeof n=="string"?h=wb(n):h=(o-u.reduce((d,m)=>d+(m.end-m.start+1),0))*n/100,u=u.map(f=>({start:f.start+h,end:f.end-h})),u.filter(f=>f.start<f.end)}function WE(t,e,n){if(Ht(t)){if(!("start"in t)||!("end"in t))throw new Error("A data frame of breaks needs a start and an end column");let r=[t.start].flat(),i=[t.end].flat(),o=r.map((a,s)=>s);if("cluster"in t){let a=[t.cluster].flat();o=o.filter(s=>pe(a[s])===e)}t=o.map(a=>({start:r[a],end:i[a]}))}return n?(t||[]).map(r=>({...r,start:r.start-n,end:r.end-n})):t}function ed(t,e){if(!e)return t;let n=i=>typeof i=="number"?i-e:i,r=i=>Array.isArray(i)?i.map(n):n(i);for(let i of["x","x1","x2"])i in t&&(t[i]=r(t[i]));return t.position!==null&&t.position!==void 0&&(t.type==="rectangle"?t.position=[t.position].flat(0).map(i=>Array.isArray(i)?i.map(o=>Array.isArray(o)?[n(o[0]),...o.slice(1)]:n(o)):[n(i)]):t.position=r(t.position)),t}var jE=["clusters","start","end","padding","hidden","breaks","tickValues","reverse","axisPosition","axisType","y","autoBreaks","autoBreakThreshold","breakPadding","ticksCount","ticksFormat","tickStyle","textStyle","lineStyle"];function xb(t,e){let n=t.x,r=e.axisType??"position",i=e.hidden??!1,o=e.autoBreaks??!1,a=e.autoBreakThreshold??20,s=e.breakPadding??1,c=e.ticksFormat??null;typeof s=="string"&&wb(s);let l=null,u=null,h=Vt(t,e.clusters);if(r==="range"){c===null&&(c=".2s");for(let d of h){let m=n.series.get(d),p=m.data,g=Math.min(...p.get("start"),...p.get("end"));p.set("start",p.get("start").map(_=>_-g+1)),p.set("end",p.get("end").map(_=>_-g+1));let y=g-1;m.sequence=Vh(m.sequence,y),m.annotations.length>0&&(m.annotations=m.annotations.map(_=>ed(_,y))),m.positionShift=m.positionShift==null?y:m.positionShift+y;let w=n.data.get("rowID"),b=n.data.get("start"),v=n.data.get("end");p.get("rowID").forEach((_,S)=>{let k=w.indexOf(_);b[k]=p.get("start")[S],v[k]=p.get("end")[S]})}l=1,u=Math.max(...h.flatMap(d=>{let m=n.series.get(d).data;return[...m.get("start"),...m.get("end")]}))}let f=Ft(e,jE);h.forEach((d,m)=>{let p=n.series.get(d),g=r==="range"&&!i&&m<h.length-1?!0:i,y=o?HE(p.data,a,s):WE(e.breaks??[],d,p.positionShift),w={start:gt(e.start,m)??null,end:gt(e.end,m)??null,xMin:l,xMax:u,padding:e.padding??null,hidden:g,breaks:y,tickValues:e.tickValues??null,reverse:gt(e.reverse??!1,m),axisPosition:e.axisPosition??null,axisType:r,scale_breaks:o,scale_break_threshold:a,scale_break_padding:s,ticksCount:e.ticksCount??null,ticksFormat:c,y:e.y??null,tickStyle:e.tickStyle??{},textStyle:e.textStyle??{},lineStyle:e.lineStyle??{}};p.scale=En(w,f,m)}),kb(t)}var XE=["show","clusters","lineStyle","tickStyle","labelStyle"];function _b(t,e){let n=e.show??!0,r=Ft(e,XE);Vr(t,e.clusters,"scaleBar",i=>En({show:gt(n,i),scaleBarLineStyle:e.lineStyle??{},scaleBarTickStyle:e.tickStyle??{},labelStyle:e.labelStyle??{}},r,i))}function GE(t,e,n,r){return t==="left"&&!r||t==="right"&&r?e:t==="right"&&!r||t==="left"&&r?n:t==="center"?(e+n)/2:e}function Sb(t,e){let n=t.x;if(n.cluster===void 0){t.warnings.push("Could not align selected gene. Please define cluster in the GC_chart function.");return}if(!n.data.has(e.idColumn)){t.warnings.push(`Column ${e.idColumn} not found in the data.`);return}let r=pe(e.id);if(!n.data.get(e.idColumn).some(i=>pe(i)===r)){t.warnings.push(`ID ${e.id} not found in the ${e.idColumn} column.`);return}t.align={idColumn:e.idColumn,id:e.id,align:e.align??"left"},n.align={id_column:e.idColumn,id:e.id,align:t.align.align},kb(t)}function kb(t){let e=t.align;if(!e)return;let n=t.x,r=n.data,i=n.cluster,o=r.get(i),a=[...new Set(o)],s=new Set(a.filter(w=>n.series.get(w)?.scale?.reverse===!0)),c=r.get("start").map((w,b)=>Math.min(w,r.get("end")[b])),l=r.get("start").map((w,b)=>Math.max(w,r.get("end")[b])),u=r.get(e.idColumn),h=pe(e.id),f=[];for(let w=0;w<r.nrow;w++)u[w]!==null&&pe(u[w])===h&&f.push(w);if(!f.length){t.warnings.push(`Selected gene coud not be aligned. Gene ${e.id} not found in the ${e.idColumn} column.`);return}if(new Set(f.map(w=>o[w])).size<f.length){t.warnings.push(`The selected gene ${e.id} appears multiple times in some clusters. Please make sure to use a unique gene id.`);return}let d=new Map;o.forEach((w,b)=>{let v=d.get(w)||{start:1/0,end:-1/0};d.set(w,{start:Math.min(v.start,c[b]),end:Math.max(v.end,l[b])})});let m=(w,b,v)=>(n.series.get(v)?.scale?.breaks||[]).reduce((_,S)=>_+Math.max(0,Math.min(S.end,b)-Math.max(S.start,w)),0),p=f.map(w=>{let b=o[w],v=s.has(b),_=GE(e.align,c[w],l[w],v),{start:S,end:k}=d.get(b),C=m(S,_,b),F=m(_,k,b),A=_-S-C,E=k-_-F;return{cl:b,isReversed:v,position:_,gapsBelow:C,gapsAbove:F,left:v?E:A,right:v?A:E}}),g=Math.max(...p.map(w=>w.left)),y=Math.max(...p.map(w=>w.right));for(let w of p){let b=n.series.get(w.cl);b.scale.start=w.position-(w.isReversed?y:g)-w.gapsBelow,b.scale.end=w.position+(w.isReversed?g:y)+w.gapsAbove}}var VE=["identity","similarity","none"],ZE=["data","group","value1","value2","clusters","curve","measure","show","label","labelPosition","normalColor","invertedColor","lowColor","vmin","vmax","useGroupColors","colorBar","colorBarOptions","linkWidth","linkStyle","labelStyle"],KE={position:["bottomright","bottomleft","topright","topleft","legend"],orientation:["vertical","horizontal"],labels:["inline","below"],legendSide:["left","right"]};function rc(t,e,n){t.has(e)&&(t.columns=new Map([...t.columns].map(([r,i])=>[r===e?n:r,i])))}function Ab(t,e){let n=e.measure??"identity",r=e.labelPosition??"gene",i=e.colorBarOptions??{};if(!VE.includes(n))throw new Error("Invalid measure specified. Choose 'identity', 'similarity', or 'none'.");if(!["gene","link"].includes(r))throw new Error(`'label_position' must be one of "gene", "link".`);for(let[y,w]of Object.entries(KE)){let b=i[y];if(b!=null&&!w.includes(b))throw new Error(`'colorBarOptions$${y}' must be one of ${w.map(v=>`"${v}"`).join(", ")}.`)}let o=e.vmin??null,a=e.vmax??null;if((o!==null||a!==null)&&(o??0)>=(a??100))throw new Error("'vmin' must be smaller than 'vmax'.");let s=e.group??null,c=e.label??!0;s===null&&r==="gene"&&(c=!1);let l=Ke.from(e.data??[]);if(l.nrow===0)return;l.has("identity2")&&rc(l,"identity2","identity"),l.has("similarity2")&&rc(l,"similarity2","similarity"),rc(l,`${s??""}1`,"group1"),rc(l,`${s??""}2`,"group2");let u=["cluster1","group1","start1","end1","cluster2","group2","start2","end2"];n!=="none"&&u.push(n);let h=e.useGroupColors??!1,f=e.colorBar;if(h){let y=t.x.group!==void 0?t.x.group:s,w=l.get(`${y??""}2`);w&&l.set("groupColor",w.slice()),u.push("groupColor"),f=!1}let d=l.select(u.filter(y=>l.has(y))),m=d.get("start2")||[];d=d.rows(_a(d.nrow,[y=>m[y]]));let p=Ce({group:s,curve:e.curve,measure:n,showLinks:e.show??!0,label:c,labelPosition:r,normalColor:e.normalColor,invertedColor:e.invertedColor,lowColor:e.lowColor,vmin:o,vmax:a,useGroupColors:h,value1:e.value1,value2:e.value2,colorBar:f,colorBarOptions:i,linkWidth:e.linkWidth,linkStyle:e.linkStyle,labelStyle:e.labelStyle,...Ft(e,ZE)}),g=t.x.links||[];d.set("linkID",Array.from({length:d.nrow},(y,w)=>`${g.length}-${w+1}`)),t.x.links=[...g,{data:d,options:p}]}var QE=["transcript","type","strand","group","selection","show","colorScheme","customColors","styleExons","styleIntrons","styleUTRs","itemStyleExons","itemStyleIntrons","itemStyleUTRs","groupStyleExons","groupStyleIntrons","groupStyleUTRs","styleBy","labelOptions"];function JE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function tM(t,e){for(let a of["title","legend","theme","events","toolbar","zoom"])e.x[a]===void 0?delete t.x[a]:t.x[a]=e.x[a];t.width=e.width;let n=[...e.x.series.values()].map(a=>a.container.margin),i=n.length>0&&n.every(a=>JE(a,n[0]))?n[0]:{},o=Array.isArray(e.x.style)?{}:e.x.style||{};o.paddingTop!=null&&(i={...i||{},top:o.paddingTop}),o.paddingBottom!=null&&(i={...i||{},bottom:o.paddingBottom}),i&&Object.keys(i).length>0&&ka(t,{margin:i}),e.x.graphContainer?.direction==="row"&&ka(t,{direction:"row"})}function Eb(t,e){if(!t.x.transcript_called){let o=t.x.params,a={...t,x:t.x},s={start:o.start,end:o.end,cluster:e.transcript??"transcript"};o.group!==void 0&&(s.group=o.group),e.strand!=null&&(s.strand=e.strand);let c=Ql({...t.spec,fields:s,width:o.width,height:o.height,style:o.style});c.x.saveButton=o.save_button,c.x.params.save_button=o.save_button,t.x=c.x,t.width=c.width,t.height=c.height,tM(t,a);let l=[...new Set(t.x.data.get("transcript").map(String))];for(let u of l){let h=t.x.series.get(u);h.genes={group:null,show:!1},h.sequence={show:!1},h.transcript={group:null,show:!0}}}let n=e.group??null,r=e.show??!0;if(n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&![n].flat().every(o=>t.x.data.has(o)))throw new Error("group column not found in data");let i=Ft(e,QE);Vt(t,e.selection).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({group:gt(n,a),show:gt(r,a),colorScheme:e.colorScheme,customColors:e.customColors,styleExons:e.styleExons,styleIntrons:e.styleIntrons,styleUTRs:e.styleUTRs,itemStyleExons:e.itemStyleExons,itemStyleIntrons:e.itemStyleIntrons,itemStyleUTRs:e.itemStyleUTRs,groupStyleExons:e.groupStyleExons,groupStyleIntrons:e.groupStyleIntrons,groupStyleUTRs:e.groupStyleUTRs,styleBy:e.styleBy,labelOptions:e.labelOptions,...i});s.transcript=jh(c,s.transcript)}),e.selection==null&&Xh(t,e.colorScheme,e.customColors),t.x.transcript_called=!0}var Mb=["text","textMarker","line","arrow","symbol","rectangle","promoter","terminator","arc"];function Tb(t,e){let n=e.type??"text";if(typeof n!="string"||!Mb.includes(n))throw new Error(`'type' must be one of ${Mb.map(i=>`"${i}"`).join(", ")}.`);let r=Ft(e,["type","clusters"]);for(let i of Vt(t,e.clusters)){let o=t.x.series.get(i),a=ed(Ce({type:n,...ge(r)}),o.positionShift);o.annotations=[...o.annotations||[],a]}}var eM=["genes","labels","coordinates"],nM=["legend","title"],rM=["scaleBar","scale"],Cb=["genes","labels","coordinates","clusterTitle","clusterFooter","clusterLabel","legend","title","scaleBar","scale"];function Fb(t,e,n,r){let i=Array.isArray(t)?t:[],o=i.find(e)||{},a=i.filter(c=>!e(c)),s=Gr(o,r);for(let[c,l]of Object.entries(n))s[c]=l;return[...a,s]}function Ob(t,e){let n=e.component??"genes";if(!Cb.includes(n))throw new Error(`'component' must be one of ${Cb.join(", ")}`);let{rowID:r=null,cluster:i=null,part:o=null,end:a=null,group:s=null}=e,c=ge(Ft(e,["component","rowID","cluster","part","end","group"])),l=eM.includes(n),u=t.x;if(nM.includes(n)){if(n==="legend"){let y=u.legend?.group;if(s===null||y==null||!u.data.get(y)?.some(w=>String(w)===String(s)))throw new Error("'group' must identify one group in the legend.")}let p=n==="legend"?{group:s,part:o}:{part:o},g=y=>y.part===o&&(n==="title"||y.group===s);u[n].itemStyle=Fb(u[n].itemStyle,g,p,c);return}let h=n==="clusterFooter"?"footer":n,f,d,m;if(l){if(typeof r!="number"||!u.data.get("rowID").includes(r))throw new Error("'row_id' must identify one row in the chart's data.");f=a===null?{rowID:r}:{rowID:r,end:a},d=p=>Number(p.rowID)===Number(r)&&(p.end??null)===a,m=[...u.series.keys()]}else if(f=rM.includes(n)?{}:{part:o},d=p=>(p.part??null)===o,m=Vt(t,i),!m.length)throw new Error("'cluster' must be the name or number of a cluster of the chart.");for(let p of m){let g=u.series.get(p);l&&!g.data.get("rowID").includes(r)||((!g[h]||Array.isArray(g[h]))&&(g[h]={}),g[h].itemStyle=Fb(g[h].itemStyle,d,f,c))}}function Bb(t,e){let n=e.show??!0,r=Ft(e,["show","clusters"]);Vt(t,e.clusters).forEach((i,o)=>{t.x.series.get(i).trackMouse={show:gt(n,o),...ge(r)}})}function Db(t,e){let n={click:e.click??!0,highlight:e.highlight??!1};e.dblclick&&(n.dblclick=!0),e.select&&(n.select=!0),e.drag&&(n.drag=!0),e.legendClick===!1&&(n.legendClick=!1),e.zoom&&(n.zoom=!0),e.rendered&&(n.rendered=!0),e.renderId!=null&&(n.renderId=e.renderId),t.x.events=n}var iM=["show","position","buttons","size","color","hoverColor","tooltipBackground","tooltipColor","tooltipBorder","tooltipRadius","tooltipShadow","fontFamily","icons"];function $b(t,e){let n=xa(Object.fromEntries(iM.map(r=>[r,ge(e[r])])));n.buttons!==void 0&&!Array.isArray(n.buttons)&&(n.buttons=[n.buttons]),t.x.toolbar=Gr(t.x.toolbar||{},n)}var oM=["show","range","mode","min","update","height","overview","color","style","windowStyle","handleStyle"];function zb(t,e){let n=xa(Object.fromEntries(oM.map(i=>[i,ge(e[i])])));n.show===void 0&&(n.show=!0);let r={...t.x.zoom||{}};n.mode!==void 0&&n.mode!==r.mode&&(delete r.range,delete r.min),n.range!==void 0&&(n.range=[n.range].flat().map(Number).sort((i,o)=>i-o)),t.x.zoom=Gr(r,n)}var aM={cluster:eb,labels:rb,genes:ib,color:ob,pattern:ab,legend:sb,sequence:lb,coordinates:cb,tooltip:ub,title:mb,clusterTitle:yb,clusterLabel:bb,clusterFooter:vb,grid:ka,scale:xb,scaleBar:_b,align:Sb,links:Ab,transcript:Eb,annotation:Tb,elementStyle:Ob,theme:db,zoom:zb,toolbar:$b,events:Db,trackMouse:Bb},Nb=1,sM=new Set(["version","data","fields","width","height","style"]);function lM(t){return t==null?[]:Array.isArray(t)?t:[t]}function oc(t){if(!t||typeof t!="object")throw new Error("compile() needs a spec object");typeof t.version=="number"&&t.version>Nb&&console.warn(`geneviewer: spec version ${t.version} is newer than this library's (${Nb}); drawing what it knows`),t=ge(t);let e=Ql(t);for(let[n,r]of Object.entries(t)){if(sM.has(n))continue;let i=aM[n];if(i)for(let o of lM(r))i(e,Jl(o,fb[n]))}return ic(gb(e))}function ic(t){if(t instanceof Ke)return t.toJSON();if(t instanceof Map){let e={};for(let[n,r]of t)e[n]=ic(r);return e}if(Array.isArray(t))return t.map(ic);if(t!==null&&typeof t=="object"){let e={};for(let[n,r]of Object.entries(t))r!==void 0&&(e[n]=ic(r));return e}return t}var Rb=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);function nd(t,e){let n={...t};for(let[r,i]of Object.entries(e||{}))i!==void 0&&(n[r]=r!=="data"&&Rb(n[r])&&Rb(i)?nd(n[r],i):structuredClone(i));return n}var Pb=`.geneviewer-container {
|
|
27
|
+
<b>Location:</b> {start} - {end}<br>`,tb=["1","forward","+","sense"],SE=["-1","0","reverse","-","antisense","complement"];function kE(t,e=null){if(!t||t.nrow===0)return null;if(e===null&&t.has("strand")&&(e="strand"),!t.has("start"))throw new Error("start column not found in data");if(!t.has("end"))throw new Error("end column not found in data");let n=t.get("start"),r=t.get("end");if(e===null)return t.set("strand",n.map((c,l)=>c===null||r[l]===null?null:c<r[l]?"forward":"reverse")),t;if(!t.has(e))throw new Error("strand column not found in data");let i=t.get(e).map(pe);if(!i.every(c=>tb.includes(c)||SE.includes(c)))throw new Error("Invalid strand values found. Valid values are 1/forward/+/sense or -1/0/reverse/-/antisense/complement.");let o=i.map(c=>tb.includes(c)?"forward":"reverse");t.set("strand",o);let a=n.slice(),s=r.slice();return o.forEach((c,l)=>{(c==="forward"&&n[l]>r[l]||c==="reverse"&&n[l]<r[l])&&(a[l]=r[l],s[l]=n[l])}),t.set("start",a),t.set("end",s),t}function Vt(t,e){let n=[...t.x.series.keys()];if(e==null)return n;let r=Array.isArray(e)?e:[e];if(r.length&&r.every(o=>typeof o=="number"))return r.some(o=>o>n.length||o<1)?(t.warnings.push("Some cluster numbers provided are out of range. Please check the cluster numbers."),[]):r.map(o=>n[Math.trunc(o)-1]);let i=r.map(o=>pe(o));return i.every(o=>n.includes(o))?i:(t.warnings.push("Some cluster names provided are not valid. Please check the cluster names."),[])}function Ql(t){let e=t.fields||{},n=e.start??"start",r=e.end??"end",i=e.cluster??null,o=e.group??null,a=e.strand??null,s=t.width??"100%",c=t.height??"400px",l=t.style??{},u=t.toolbar&&!Array.isArray(t.toolbar)?t.toolbar.buttons:void 0,h=!(Array.isArray(u)&&!u.includes("save")),f={};f.params={start:n,end:r},i!==null&&(f.params.cluster=i),o!==null&&(f.params.group=o),a!==null&&(f.params.strand=a),f.params.width=s,f.params.height=c,Object.keys(l).length&&(f.params.style=ge(l)),f.params.save_button=h;let d=Ke.from(t.data);for(let[k,C]of[[n,"start"],[r,"end"],[i,"cluster"],[o,"group"],[a,"strand"]])if(k!==null&&!d.has(k))throw new Error(`${C} column not found in data`);let m=d.names,p=d.get(n),g=d.get(r),y=d.filter(k=>p[k]!==null&&g[k]!==null),w=[];y.nrow<d.nrow&&w.push("Rows with NA values in 'start' or 'end' columns have been filtered out."),d=y,d.set("rowID",Array.from({length:d.nrow},(k,C)=>C+1));let b=d.copy();d.set("start",b.get(n).slice()),d.set("end",b.get(r).slice()),i!==null&&d.set(i,d.get(i).map(pe)),d=kE(d,a),f.data=d,o!==null&&(f.group=o),i!==null&&(f.cluster=i),f.graphContainer={direction:"column"},f.style=l,f.title={style:{width:"100%"}},f.legend={group:o,show:o!==null,width:s},f.legend.style={width:"100%",backgroundColor:l.backgroundColor??null},f.saveButton=h;let v=i===null?["cluster"]:[...new Set(d.get(i))],_=m.includes("BlastP")&&m.includes("protein_id"),S=new Map;for(let k of v){let C=i===null?d.copy():d.filter(M=>d.get(i)[M]===k);C.set("cluster",k);let F=typeof c=="string"&&/%$/.test(c)?Kl(c,v.length):Number(Vn(c,c))/v.length,A=C.get("start"),E=C.get("end"),D=[...A,...E].filter(M=>M!==null),z=wE;if(_){let M=C.get("BlastP"),T=C.get("protein_id");z=M.some((N,L)=>N!==null&&T[L]!==null&&N===T[L])&&M.every(N=>N===null||N==="No Hit"||T.includes(N))?xE:_E}S.set(k,{clusterName:k,data:C,cluster:{},container:{height:F,width:s,style:{width:"100%",backgroundColor:l.backgroundColor??null}},genes:{group:o,show:!0},sequence:{show:!0},scale:{xMin:Math.min(...D),xMax:Math.max(...D)},transcript:{group:o,show:!1},labels:{group:o,show:!0},coordinates:{show:!1},scaleBar:{},footer:{},clusterLabel:{},clusterTitle:{},annotations:[],trackMouse:{show:!1},tooltip:{show:!0,formatter:z}})}return f.series=S,{x:f,width:s,height:c,spec:t,warnings:w}}var qh={palettes:{okabeIto:["#E69F00","#56B4E9","#009E73","#F0E442","#0072B2","#D55E00","#CC79A7","#999999"],classic:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],vivid:["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],dark:["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],vintage:["#d87c7c","#919e8b","#d7ab82","#6e7074","#61a0a8","#efa18d","#787464","#cc7e63","#724e58","#4b565b"],infographic:["#C1232B","#27727B","#FCCE10","#E87C25","#B5C334","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],greys:["#252525","#525252","#737373","#969696","#bdbdbd","#d9d9d9"],blues:["#08306b","#08519c","#2171b5","#4292c6","#6baed6","#9ecae1","#c6dbef"]},themes:{default:{},classic:{fontFamily:"sans-serif",textColor:"#6E7079",lineColor:"#6E7079",palette:"classic",title:{titleFont:{fontSize:"18px",fill:"#464646"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"#464646"}},clusterLabel:{fill:"#464646"},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"#464646"}},links:{normal_color:"#5470c6",inverted_color:"#ee6666",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#999999",hoverColor:"#3E98C5",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},dark:{fontFamily:"sans-serif",background:"#333333",textColor:"#eeeeee",lineColor:"#eeeeee",palette:"dark",title:{titleFont:{fontSize:"18px"},subtitleFont:{fontSize:"12px",fill:"#aaaaaa"}},clusterTitle:{subtitleFont:{fill:"#aaaaaa"}},clusterLabel:{subtitleFont:{fill:"#aaaaaa"}},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3},links:{normal_color:"#759aa0",inverted_color:"#dd6b66",low_color:"#333333",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#999999",hoverColor:"#eeeeee",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},vintage:{background:"#fef8ef",textColor:"#3f3a33",lineColor:"#787464",palette:"vintage",title:{subtitleFont:{fill:"#787464"}},clusterTitle:{subtitleFont:{fill:"#787464"}},clusterLabel:{subtitleFont:{fill:"#787464"}},sequence:{sequenceStyle:{stroke:"#c9c2b5"}},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"11px",leaderLine:{stroke:"#c9c2b5",strokeWidth:1}},legend:{corner_radius:3},links:{normal_color:"#61a0a8",inverted_color:"#d87c7c",low_color:"#fef8ef",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#c9c2b5",hoverColor:"#d87c7c",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},infographic:{fontFamily:"sans-serif",textColor:"#6E7079",lineColor:"#6E7079",palette:"infographic",title:{titleFont:{fontSize:"18px",fill:"#464646"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"#464646"}},clusterLabel:{fill:"#464646"},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"#464646"}},links:{normal_color:"#27727B",inverted_color:"#C1232B",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"rgba(50, 50, 50, 0.85)",color:"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px"},trackMouse:{backgroundColor:"rgba(50, 50, 50, 0.85)",color:"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px"},toolbar:{color:"#C1232B",hoverColor:"#E87C25",tooltipBackground:"rgba(50, 50, 50, 0.85)",tooltipColor:"#ffffff",tooltipBorder:"none",tooltipRadius:"4px"}},publication:{fontFamily:"Arial, Helvetica, sans-serif",textColor:"black",lineColor:"black",palette:"okabeIto",title:{titleFont:{fontSize:"9.33px",fill:"black"},subtitleFont:{fontSize:"9.33px"}},clusterTitle:{titleFont:{fontSize:"9.33px"},subtitleFont:{fontSize:"9.33px"}},clusterFooter:{titleFont:{fontSize:"9.33px"},subtitleFont:{fontSize:"9.33px"}},clusterLabel:{fontSize:"9.33px",subtitleFont:{fontSize:"9.33px"}},genes:{stroke:"black",strokeWidth:.75,corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3,fontSize:"9.33px"},labelOptions:{fontSize:"9.33px"}},labels:{fontStyle:"italic",fontSize:"9.33px",leaderLine:{strokeWidth:.75}},coordinates:{textStyle:{fontSize:"9.33px"},tickStyle:{lineLength:4}},scale:{textStyle:{fontSize:"9.33px"},tickStyle:{lineLength:4}},scaleBar:{labelStyle:{fontSize:"9.33px"}},legend:{corner_radius:2,legendOptions:{stroke:"black",strokeWidth:.75},legendTextOptions:{fontSize:"9.33px"}},links:{normal_color:"#0072B2",inverted_color:"#D55E00",linkStyle:{fillOpacity:.6},labelStyle:{fontSize:"9.33px"},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:9.33},titleOptions:{fontSize:9.33}}},annotations:{text:{style:{fontSize:"9.33px"}},textMarker:{textStyle:{fontSize:"9.33px"}},arc:{textStyle:{fontSize:"9.33px"}}},tooltip:{backgroundColor:"white",color:"black",border:"1px solid black",borderRadius:"0",boxShadow:"none",fontSize:"9.33px",padding:"8px"},trackMouse:{backgroundColor:"white",color:"black",border:"1px solid black",borderRadius:"0",boxShadow:"none",fontSize:"9.33px",padding:"8px"},toolbar:{color:"#999999",hoverColor:"black",tooltipBackground:"white",tooltipColor:"black",tooltipBorder:"1px solid black",tooltipRadius:"0",tooltipShadow:"none"}},bw:{fontFamily:"sans-serif",textColor:"#555555",lineColor:"#555555",pattern:{color:"black",background:"white",size:6,strokeWidth:1},title:{titleFont:{fontSize:"18px",fill:"black"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"black"}},clusterLabel:{fill:"black"},genes:{stroke:"black",strokeWidth:.75,corner_radius:3},transcript:{styleExons:{stroke:"black",strokeWidth:.75,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"black"}},links:{normal_color:"#bdbdbd",inverted_color:"#525252",colorBarOptions:{barOptions:{stroke:"#555555"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#bdbdbd",hoverColor:"black",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}}}};function Ft(t,e){let n={};for(let[r,i]of Object.entries(t))e.includes(r)||(n[r]=i);return n}function _a(t,e){return Array.from({length:t},(r,i)=>i).sort((r,i)=>{for(let o of e){let a=o(r),s=o(i),c=a===null||Number.isNaN(a),l=s===null||Number.isNaN(s);if(c||l){if(c!==l)return c?1:-1;continue}if(a<s)return-1;if(a>s)return 1}return r-i})}function EE(t,e=!1,n=0){if(!t||t.nrow===0)return null;let r=t.get("start"),i=t.get("end"),o=r.map((d,m)=>Math.min(d,i[m])),a=r.map((d,m)=>Math.max(d,i[m])),s=typeof n=="string",c=s?Number(n.replace(/%$/,""))/100:n,l=(d,m)=>{let p=Math.min(a[d],a[m])-Math.max(o[d],o[m])+1;if(p<=0)return!1;let g=s?c*Math.min(a[d]-o[d]+1,a[m]-o[m]+1):c;return p>g},u=o.map((d,m)=>o.some((p,g)=>g!==m&&o[g]<=o[m]&&a[g]>=a[m]&&(o[g]<o[m]||a[g]>a[m]||g<m))),h=[],f=new Map;for(let d=0;d<o.length;d++){if(e&&!u[d]){h[d]=1;continue}let m=e?2:1;for(;(f.get(m)||[]).some(p=>l(d,p));)m++;h[d]=m,f.set(m,[...f.get(m)||[],d])}return t.set("geneTrack",h),t}var ME=["separateStrands","strandSpacing","preventGeneOverlap","overlapMin","overlapSpacing","clusters","style"];function eb(t,e){let n=e.separateStrands??null,r=e.preventGeneOverlap??null,i=e.overlapMin??null;n===!0&&r!==null&&r!==!1&&(t.warnings.push("Setting both 'separate_strands' and 'prevent_gene_overlap' to TRUE is not supported. Resetting to NULL."),n=null,r=null);let o=Ft(e,ME);for(let a of Vt(t,e.clusters)){let s=t.x.series.get(a);if(r!==null&&r!==!1){let l=s.data,u=l.get("start"),h=l.get("end"),f=_a(l.nrow,[d=>-Math.max(u[d],h[d]),d=>Math.abs(h[d]-u[d])]);s.data=EE(l.rows(f),r==="nested",i===null?0:i)}s.container.style=Qe(s.container.style,e.style??{});let c=Ce({separateStrands:n,strandSpacing:e.strandSpacing,preventGeneOverlap:r!==null?r!==!1:null,overlapSpacing:e.overlapSpacing,...o});s.cluster=Qe(s.cluster,c),s.container=Qe(s.container,Ce({...o}))}}var Yh={white:"#FFFFFF",aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",antiquewhite1:"#FFEFDB",antiquewhite2:"#EEDFCC",antiquewhite3:"#CDC0B0",antiquewhite4:"#8B8378",aquamarine:"#7FFFD4",aquamarine1:"#7FFFD4",aquamarine2:"#76EEC6",aquamarine3:"#66CDAA",aquamarine4:"#458B74",azure:"#F0FFFF",azure1:"#F0FFFF",azure2:"#E0EEEE",azure3:"#C1CDCD",azure4:"#838B8B",beige:"#F5F5DC",bisque:"#FFE4C4",bisque1:"#FFE4C4",bisque2:"#EED5B7",bisque3:"#CDB79E",bisque4:"#8B7D6B",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blue1:"#0000FF",blue2:"#0000EE",blue3:"#0000CD",blue4:"#00008B",blueviolet:"#8A2BE2",brown:"#A52A2A",brown1:"#FF4040",brown2:"#EE3B3B",brown3:"#CD3333",brown4:"#8B2323",burlywood:"#DEB887",burlywood1:"#FFD39B",burlywood2:"#EEC591",burlywood3:"#CDAA7D",burlywood4:"#8B7355",cadetblue:"#5F9EA0",cadetblue1:"#98F5FF",cadetblue2:"#8EE5EE",cadetblue3:"#7AC5CD",cadetblue4:"#53868B",chartreuse:"#7FFF00",chartreuse1:"#7FFF00",chartreuse2:"#76EE00",chartreuse3:"#66CD00",chartreuse4:"#458B00",chocolate:"#D2691E",chocolate1:"#FF7F24",chocolate2:"#EE7621",chocolate3:"#CD661D",chocolate4:"#8B4513",coral:"#FF7F50",coral1:"#FF7256",coral2:"#EE6A50",coral3:"#CD5B45",coral4:"#8B3E2F",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",cornsilk1:"#FFF8DC",cornsilk2:"#EEE8CD",cornsilk3:"#CDC8B1",cornsilk4:"#8B8878",cyan:"#00FFFF",cyan1:"#00FFFF",cyan2:"#00EEEE",cyan3:"#00CDCD",cyan4:"#008B8B",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgoldenrod1:"#FFB90F",darkgoldenrod2:"#EEAD0E",darkgoldenrod3:"#CD950C",darkgoldenrod4:"#8B6508",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkolivegreen1:"#CAFF70",darkolivegreen2:"#BCEE68",darkolivegreen3:"#A2CD5A",darkolivegreen4:"#6E8B3D",darkorange:"#FF8C00",darkorange1:"#FF7F00",darkorange2:"#EE7600",darkorange3:"#CD6600",darkorange4:"#8B4500",darkorchid:"#9932CC",darkorchid1:"#BF3EFF",darkorchid2:"#B23AEE",darkorchid3:"#9A32CD",darkorchid4:"#68228B",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkseagreen1:"#C1FFC1",darkseagreen2:"#B4EEB4",darkseagreen3:"#9BCD9B",darkseagreen4:"#698B69",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategray1:"#97FFFF",darkslategray2:"#8DEEEE",darkslategray3:"#79CDCD",darkslategray4:"#528B8B",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deeppink1:"#FF1493",deeppink2:"#EE1289",deeppink3:"#CD1076",deeppink4:"#8B0A50",deepskyblue:"#00BFFF",deepskyblue1:"#00BFFF",deepskyblue2:"#00B2EE",deepskyblue3:"#009ACD",deepskyblue4:"#00688B",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",dodgerblue1:"#1E90FF",dodgerblue2:"#1C86EE",dodgerblue3:"#1874CD",dodgerblue4:"#104E8B",firebrick:"#B22222",firebrick1:"#FF3030",firebrick2:"#EE2C2C",firebrick3:"#CD2626",firebrick4:"#8B1A1A",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",gold1:"#FFD700",gold2:"#EEC900",gold3:"#CDAD00",gold4:"#8B7500",goldenrod:"#DAA520",goldenrod1:"#FFC125",goldenrod2:"#EEB422",goldenrod3:"#CD9B1D",goldenrod4:"#8B6914",gray:"#BEBEBE",gray0:"#000000",gray1:"#030303",gray2:"#050505",gray3:"#080808",gray4:"#0A0A0A",gray5:"#0D0D0D",gray6:"#0F0F0F",gray7:"#121212",gray8:"#141414",gray9:"#171717",gray10:"#1A1A1A",gray11:"#1C1C1C",gray12:"#1F1F1F",gray13:"#212121",gray14:"#242424",gray15:"#262626",gray16:"#292929",gray17:"#2B2B2B",gray18:"#2E2E2E",gray19:"#303030",gray20:"#333333",gray21:"#363636",gray22:"#383838",gray23:"#3B3B3B",gray24:"#3D3D3D",gray25:"#404040",gray26:"#424242",gray27:"#454545",gray28:"#474747",gray29:"#4A4A4A",gray30:"#4D4D4D",gray31:"#4F4F4F",gray32:"#525252",gray33:"#545454",gray34:"#575757",gray35:"#595959",gray36:"#5C5C5C",gray37:"#5E5E5E",gray38:"#616161",gray39:"#636363",gray40:"#666666",gray41:"#696969",gray42:"#6B6B6B",gray43:"#6E6E6E",gray44:"#707070",gray45:"#737373",gray46:"#757575",gray47:"#787878",gray48:"#7A7A7A",gray49:"#7D7D7D",gray50:"#7F7F7F",gray51:"#828282",gray52:"#858585",gray53:"#878787",gray54:"#8A8A8A",gray55:"#8C8C8C",gray56:"#8F8F8F",gray57:"#919191",gray58:"#949494",gray59:"#969696",gray60:"#999999",gray61:"#9C9C9C",gray62:"#9E9E9E",gray63:"#A1A1A1",gray64:"#A3A3A3",gray65:"#A6A6A6",gray66:"#A8A8A8",gray67:"#ABABAB",gray68:"#ADADAD",gray69:"#B0B0B0",gray70:"#B3B3B3",gray71:"#B5B5B5",gray72:"#B8B8B8",gray73:"#BABABA",gray74:"#BDBDBD",gray75:"#BFBFBF",gray76:"#C2C2C2",gray77:"#C4C4C4",gray78:"#C7C7C7",gray79:"#C9C9C9",gray80:"#CCCCCC",gray81:"#CFCFCF",gray82:"#D1D1D1",gray83:"#D4D4D4",gray84:"#D6D6D6",gray85:"#D9D9D9",gray86:"#DBDBDB",gray87:"#DEDEDE",gray88:"#E0E0E0",gray89:"#E3E3E3",gray90:"#E5E5E5",gray91:"#E8E8E8",gray92:"#EBEBEB",gray93:"#EDEDED",gray94:"#F0F0F0",gray95:"#F2F2F2",gray96:"#F5F5F5",gray97:"#F7F7F7",gray98:"#FAFAFA",gray99:"#FCFCFC",gray100:"#FFFFFF",green:"#00FF00",green1:"#00FF00",green2:"#00EE00",green3:"#00CD00",green4:"#008B00",greenyellow:"#ADFF2F",grey:"#BEBEBE",grey0:"#000000",grey1:"#030303",grey2:"#050505",grey3:"#080808",grey4:"#0A0A0A",grey5:"#0D0D0D",grey6:"#0F0F0F",grey7:"#121212",grey8:"#141414",grey9:"#171717",grey10:"#1A1A1A",grey11:"#1C1C1C",grey12:"#1F1F1F",grey13:"#212121",grey14:"#242424",grey15:"#262626",grey16:"#292929",grey17:"#2B2B2B",grey18:"#2E2E2E",grey19:"#303030",grey20:"#333333",grey21:"#363636",grey22:"#383838",grey23:"#3B3B3B",grey24:"#3D3D3D",grey25:"#404040",grey26:"#424242",grey27:"#454545",grey28:"#474747",grey29:"#4A4A4A",grey30:"#4D4D4D",grey31:"#4F4F4F",grey32:"#525252",grey33:"#545454",grey34:"#575757",grey35:"#595959",grey36:"#5C5C5C",grey37:"#5E5E5E",grey38:"#616161",grey39:"#636363",grey40:"#666666",grey41:"#696969",grey42:"#6B6B6B",grey43:"#6E6E6E",grey44:"#707070",grey45:"#737373",grey46:"#757575",grey47:"#787878",grey48:"#7A7A7A",grey49:"#7D7D7D",grey50:"#7F7F7F",grey51:"#828282",grey52:"#858585",grey53:"#878787",grey54:"#8A8A8A",grey55:"#8C8C8C",grey56:"#8F8F8F",grey57:"#919191",grey58:"#949494",grey59:"#969696",grey60:"#999999",grey61:"#9C9C9C",grey62:"#9E9E9E",grey63:"#A1A1A1",grey64:"#A3A3A3",grey65:"#A6A6A6",grey66:"#A8A8A8",grey67:"#ABABAB",grey68:"#ADADAD",grey69:"#B0B0B0",grey70:"#B3B3B3",grey71:"#B5B5B5",grey72:"#B8B8B8",grey73:"#BABABA",grey74:"#BDBDBD",grey75:"#BFBFBF",grey76:"#C2C2C2",grey77:"#C4C4C4",grey78:"#C7C7C7",grey79:"#C9C9C9",grey80:"#CCCCCC",grey81:"#CFCFCF",grey82:"#D1D1D1",grey83:"#D4D4D4",grey84:"#D6D6D6",grey85:"#D9D9D9",grey86:"#DBDBDB",grey87:"#DEDEDE",grey88:"#E0E0E0",grey89:"#E3E3E3",grey90:"#E5E5E5",grey91:"#E8E8E8",grey92:"#EBEBEB",grey93:"#EDEDED",grey94:"#F0F0F0",grey95:"#F2F2F2",grey96:"#F5F5F5",grey97:"#F7F7F7",grey98:"#FAFAFA",grey99:"#FCFCFC",grey100:"#FFFFFF",honeydew:"#F0FFF0",honeydew1:"#F0FFF0",honeydew2:"#E0EEE0",honeydew3:"#C1CDC1",honeydew4:"#838B83",hotpink:"#FF69B4",hotpink1:"#FF6EB4",hotpink2:"#EE6AA7",hotpink3:"#CD6090",hotpink4:"#8B3A62",indianred:"#CD5C5C",indianred1:"#FF6A6A",indianred2:"#EE6363",indianred3:"#CD5555",indianred4:"#8B3A3A",ivory:"#FFFFF0",ivory1:"#FFFFF0",ivory2:"#EEEEE0",ivory3:"#CDCDC1",ivory4:"#8B8B83",khaki:"#F0E68C",khaki1:"#FFF68F",khaki2:"#EEE685",khaki3:"#CDC673",khaki4:"#8B864E",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lavenderblush1:"#FFF0F5",lavenderblush2:"#EEE0E5",lavenderblush3:"#CDC1C5",lavenderblush4:"#8B8386",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lemonchiffon1:"#FFFACD",lemonchiffon2:"#EEE9BF",lemonchiffon3:"#CDC9A5",lemonchiffon4:"#8B8970",lightblue:"#ADD8E6",lightblue1:"#BFEFFF",lightblue2:"#B2DFEE",lightblue3:"#9AC0CD",lightblue4:"#68838B",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightcyan1:"#E0FFFF",lightcyan2:"#D1EEEE",lightcyan3:"#B4CDCD",lightcyan4:"#7A8B8B",lightgoldenrod:"#EEDD82",lightgoldenrod1:"#FFEC8B",lightgoldenrod2:"#EEDC82",lightgoldenrod3:"#CDBE70",lightgoldenrod4:"#8B814C",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightpink1:"#FFAEB9",lightpink2:"#EEA2AD",lightpink3:"#CD8C95",lightpink4:"#8B5F65",lightsalmon:"#FFA07A",lightsalmon1:"#FFA07A",lightsalmon2:"#EE9572",lightsalmon3:"#CD8162",lightsalmon4:"#8B5742",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightskyblue1:"#B0E2FF",lightskyblue2:"#A4D3EE",lightskyblue3:"#8DB6CD",lightskyblue4:"#607B8B",lightslateblue:"#8470FF",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightsteelblue1:"#CAE1FF",lightsteelblue2:"#BCD2EE",lightsteelblue3:"#A2B5CD",lightsteelblue4:"#6E7B8B",lightyellow:"#FFFFE0",lightyellow1:"#FFFFE0",lightyellow2:"#EEEED1",lightyellow3:"#CDCDB4",lightyellow4:"#8B8B7A",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",magenta1:"#FF00FF",magenta2:"#EE00EE",magenta3:"#CD00CD",magenta4:"#8B008B",maroon:"#B03060",maroon1:"#FF34B3",maroon2:"#EE30A7",maroon3:"#CD2990",maroon4:"#8B1C62",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumorchid1:"#E066FF",mediumorchid2:"#D15FEE",mediumorchid3:"#B452CD",mediumorchid4:"#7A378B",mediumpurple:"#9370DB",mediumpurple1:"#AB82FF",mediumpurple2:"#9F79EE",mediumpurple3:"#8968CD",mediumpurple4:"#5D478B",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",mistyrose1:"#FFE4E1",mistyrose2:"#EED5D2",mistyrose3:"#CDB7B5",mistyrose4:"#8B7D7B",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navajowhite1:"#FFDEAD",navajowhite2:"#EECFA1",navajowhite3:"#CDB38B",navajowhite4:"#8B795E",navy:"#000080",navyblue:"#000080",oldlace:"#FDF5E6",olivedrab:"#6B8E23",olivedrab1:"#C0FF3E",olivedrab2:"#B3EE3A",olivedrab3:"#9ACD32",olivedrab4:"#698B22",orange:"#FFA500",orange1:"#FFA500",orange2:"#EE9A00",orange3:"#CD8500",orange4:"#8B5A00",orangered:"#FF4500",orangered1:"#FF4500",orangered2:"#EE4000",orangered3:"#CD3700",orangered4:"#8B2500",orchid:"#DA70D6",orchid1:"#FF83FA",orchid2:"#EE7AE9",orchid3:"#CD69C9",orchid4:"#8B4789",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",palegreen1:"#9AFF9A",palegreen2:"#90EE90",palegreen3:"#7CCD7C",palegreen4:"#548B54",paleturquoise:"#AFEEEE",paleturquoise1:"#BBFFFF",paleturquoise2:"#AEEEEE",paleturquoise3:"#96CDCD",paleturquoise4:"#668B8B",palevioletred:"#DB7093",palevioletred1:"#FF82AB",palevioletred2:"#EE799F",palevioletred3:"#CD6889",palevioletred4:"#8B475D",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peachpuff1:"#FFDAB9",peachpuff2:"#EECBAD",peachpuff3:"#CDAF95",peachpuff4:"#8B7765",peru:"#CD853F",pink:"#FFC0CB",pink1:"#FFB5C5",pink2:"#EEA9B8",pink3:"#CD919E",pink4:"#8B636C",plum:"#DDA0DD",plum1:"#FFBBFF",plum2:"#EEAEEE",plum3:"#CD96CD",plum4:"#8B668B",powderblue:"#B0E0E6",purple:"#A020F0",purple1:"#9B30FF",purple2:"#912CEE",purple3:"#7D26CD",purple4:"#551A8B",red:"#FF0000",red1:"#FF0000",red2:"#EE0000",red3:"#CD0000",red4:"#8B0000",rosybrown:"#BC8F8F",rosybrown1:"#FFC1C1",rosybrown2:"#EEB4B4",rosybrown3:"#CD9B9B",rosybrown4:"#8B6969",royalblue:"#4169E1",royalblue1:"#4876FF",royalblue2:"#436EEE",royalblue3:"#3A5FCD",royalblue4:"#27408B",saddlebrown:"#8B4513",salmon:"#FA8072",salmon1:"#FF8C69",salmon2:"#EE8262",salmon3:"#CD7054",salmon4:"#8B4C39",sandybrown:"#F4A460",seagreen:"#2E8B57",seagreen1:"#54FF9F",seagreen2:"#4EEE94",seagreen3:"#43CD80",seagreen4:"#2E8B57",seashell:"#FFF5EE",seashell1:"#FFF5EE",seashell2:"#EEE5DE",seashell3:"#CDC5BF",seashell4:"#8B8682",sienna:"#A0522D",sienna1:"#FF8247",sienna2:"#EE7942",sienna3:"#CD6839",sienna4:"#8B4726",skyblue:"#87CEEB",skyblue1:"#87CEFF",skyblue2:"#7EC0EE",skyblue3:"#6CA6CD",skyblue4:"#4A708B",slateblue:"#6A5ACD",slateblue1:"#836FFF",slateblue2:"#7A67EE",slateblue3:"#6959CD",slateblue4:"#473C8B",slategray:"#708090",slategray1:"#C6E2FF",slategray2:"#B9D3EE",slategray3:"#9FB6CD",slategray4:"#6C7B8B",slategrey:"#708090",snow:"#FFFAFA",snow1:"#FFFAFA",snow2:"#EEE9E9",snow3:"#CDC9C9",snow4:"#8B8989",springgreen:"#00FF7F",springgreen1:"#00FF7F",springgreen2:"#00EE76",springgreen3:"#00CD66",springgreen4:"#008B45",steelblue:"#4682B4",steelblue1:"#63B8FF",steelblue2:"#5CACEE",steelblue3:"#4F94CD",steelblue4:"#36648B",tan:"#D2B48C",tan1:"#FFA54F",tan2:"#EE9A49",tan3:"#CD853F",tan4:"#8B5A2B",thistle:"#D8BFD8",thistle1:"#FFE1FF",thistle2:"#EED2EE",thistle3:"#CDB5CD",thistle4:"#8B7B8B",tomato:"#FF6347",tomato1:"#FF6347",tomato2:"#EE5C42",tomato3:"#CD4F39",tomato4:"#8B3626",turquoise:"#40E0D0",turquoise1:"#00F5FF",turquoise2:"#00E5EE",turquoise3:"#00C5CD",turquoise4:"#00868B",violet:"#EE82EE",violetred:"#D02090",violetred1:"#FF3E96",violetred2:"#EE3A8C",violetred3:"#CD3278",violetred4:"#8B2252",wheat:"#F5DEB3",wheat1:"#FFE7BA",wheat2:"#EED8AE",wheat3:"#CDBA96",wheat4:"#8B7E66",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellow1:"#FFFF00",yellow2:"#EEEE00",yellow3:"#CDCD00",yellow4:"#8B8B00",yellowgreen:"#9ACD32"},Uh=["#000000","#DF536B","#61D04F","#2297E6","#28E2E5","#CD0BBC","#F5C710","#9E9E9E"];function ee(t,e,n){let r=e[e.length-1],i=t;for(let o of e.slice(0,-1)){if(!Ht(i[o])){if(n==null)return;i[o]={}}i=i[o]}n==null?delete i[r]:i[r]=n}function En(t,e,n){for(let[r,i]of Object.entries(e)){let o=gt(i,n);o===void 0?delete t[r]:t[r]=o}return t}function Vr(t,e,n,r){Vt(t,e).forEach((i,o)=>{let a=t.x.series.get(i);a[n]=r(o,a)})}var CE=t=>Array.isArray(t)?t:[t];function Wh(t,e,n){let r=t.x.data.names;if(!CE(e).every(i=>r.includes(i)))throw new Error(n)}var FE=["label","show","clusters","itemStyle","groupStyle","styleBy"];function rb(t,e){let n=e.label??null,r=e.show??!0;if(n===null&&t.x.group===void 0)throw new Error("Please define labels");n===null&&(n=t.x.group),Wh(t,n,"label column not found in data");let i=Ft(e,FE);Vt(t,e.clusters).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({label:gt(n,a),show:gt(r,a),itemStyle:e.itemStyle,groupStyle:e.groupStyle,styleBy:e.styleBy,...i});s.labels=Qe(s.labels,c)})}function jh(t,e){return t.colorScheme==null&&t.customColors==null&&(ee(t,["colorScheme"],e?.colorScheme),ee(t,["customColors"],e?.customColors)),t.pattern==null&&ee(t,["pattern"],e?.pattern),t}function Xh(t,e,n){e==null&&n==null||(ee(t.x,["legend","legendOptions","colorScheme"],e),ee(t.x,["legend","legendOptions","customColors"],n))}var TE=["group","marker","markerSize","show","colorScheme","customColors","clusters","itemStyle","groupStyle","styleBy","cornerRadius"];function ib(t,e){let n=e.group??null,r=e.show??!0;n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&Wh(t,n,"group column not found in data");let i=Ft(e,TE);Vt(t,e.clusters).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({group:gt(n,a),marker:gt(e.marker,a),cornerRadius:e.cornerRadius,markerSize:e.markerSize,show:gt(r,a),colorScheme:e.colorScheme,customColors:e.customColors,itemStyle:e.itemStyle,groupStyle:e.groupStyle,styleBy:e.styleBy,...i});s.genes=jh(c,s.genes)}),e.clusters==null&&Xh(t,e.colorScheme,e.customColors)}function ob(t,e){let n=e.colorScheme??null,r=e.customColors??null;if(n!==null&&r!==null&&!Ht(r)){t.warnings.push("Both colorScheme and customColors are selected. Use a named list of customColors to set the colours of some groups, or choose only one.");return}ee(t.x,["legend","legendOptions","colorScheme"],n),ee(t.x,["legend","legendOptions","customColors"],r);for(let i of t.x.series.values())for(let o of["genes","transcript"])ee(i,[o,"colorScheme"],n),ee(i,[o,"customColors"],r)}var nb=["none","solid","horizontal","vertical","diagonal","antidiagonal","grid","crosshatch","dots","zigzag","checkerboard","rings","bricks","plus","wideStripes","inverseDots"];function Hh(t){if(t==null)return"#FFFFFF00";let e=String(t),n=o=>o.toString(16).toUpperCase().padStart(2,"0"),r=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(r){let o=r[1];return o.length<=4&&(o=o.split("").map(a=>a+a).join("")),o=o.toUpperCase(),o.length===8&&o.endsWith("FF")?`#${o.slice(0,6)}`:`#${o}`}let i=e.toLowerCase();return i==="transparent"?"#FFFFFF00":Yh[i]?Yh[i]:/^[1-9][0-9]*$/.test(e)?Uh[(Number(e)-1)%Uh.length]:t}function Gh(t){let n=(Ht(t.patterns)?Object.values(t.patterns):[t.patterns??[]].flat()).filter(o=>o!==null&&!nb.includes(o));if(n.length)throw new Error(`Unknown pattern(s): ${n.join(", ")}. Available patterns: ${nb.join(", ")}`);let r=o=>{if(o!=null)return Ht(o)?Object.fromEntries(Object.entries(o).map(([a,s])=>[a,Hh(s)])):Array.isArray(o)?o.map(Hh):Hh(o)},i={};for(let[o,a]of Object.entries({patterns:t.patterns,color:r(t.color),background:r(t.background),size:t.size,strokeWidth:t.strokeWidth}))a!=null&&(i[o]=a);return i}function ab(t,e){let n=Gh({patterns:e.patterns,color:wa(e,"color","black"),background:wa(e,"background","white"),size:wa(e,"size",6),strokeWidth:wa(e,"strokeWidth",1)});ee(t.x,["legend","legendOptions","pattern"],n);for(let r of t.x.series.values())r.genes.pattern=n,r.transcript.pattern=n}var OE=["group","show","backgroundColor","order","position","align","style","markerStyle","textStyle","cornerRadius","groupStyle"];function sb(t,e){let n=e.group??null,r=e.show??!0;if(r===!0&&n===null&&t.x.group===void 0)throw new Error("Please define a group");n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&Wh(t,n,"group column not found in data");let i={...e.style??{}};e.backgroundColor!=null&&i.backgroundColor==null&&(i.backgroundColor=e.backgroundColor);let o=Ce({group:n,show:r,order:e.order,position:e.position,align:e.align,cornerRadius:e.cornerRadius,style:i,legendOptions:e.markerStyle,legendTextOptions:e.textStyle,groupStyle:e.groupStyle,...Ft(e,OE)});t.x.legend=Qe(t.x.legend,o)}var BE=["show","clusters","y","lineStyle","markerStyle"];function Vh(t,e){if(!t||!e)return t;for(let n of["start","end"])typeof t[n]=="number"&&(t[n]-=e);return t}function lb(t,e){let n=e.show??!0,r=Ft(e,BE);Vr(t,e.clusters,"sequence",(i,o)=>{let a={show:gt(n,i),y:gt(e.y,i)??null,sequenceStyle:e.lineStyle??{},markerStyle:e.markerStyle??{}};return Vh(En(a,r,i),o.positionShift)})}var DE=["show","tickValuesTop","tickValuesBottom","ticksFormat","tickStyle","textStyle","clusters","groupStyle","styleBy"];function cb(t,e){let n=e.show??!0,r=e.styleBy??null;if(r===null&&t.x.group!==void 0&&(r=t.x.group),e.groupStyle!=null&&r===null)throw new Error("groupStyle needs a group in GC_chart() or a style_by column");let i=Ft(e,DE);Vr(t,e.clusters,"coordinates",o=>{let a={show:gt(n,o),ticksFormat:e.ticksFormat??null,tickStyle:e.tickStyle??{},textStyle:e.textStyle??{}};return e.groupStyle!=null&&(a.groupStyle=e.groupStyle,a.styleBy=r),En(a,i,o),ee(a,["tickValuesTop"],e.tickValuesTop),ee(a,["tickValuesBottom"],e.tickValuesBottom),a})}var $E=["formatter","show","clusters"];function ub(t,e){let n=e.formatter??"<b>Start:</b> {start}<br><b>End:</b> {end}",r=e.show??!0,i=Ft(e,$E);Vr(t,e.clusters,"tooltip",o=>En({formatter:n,show:gt(r,o)},i,o))}var fb={scaleBar:{unit:"scaleBarUnit"},labels:{labelAdjustment:"labelAdjustmentOptions"},links:{labelAdjustment:"labelAdjustmentOptions"}},Zh={legend:{markerStyle:"legendOptions",textStyle:"legendTextOptions"},sequence:{lineStyle:"sequenceStyle"},scaleBar:{lineStyle:"scaleBarLineStyle",tickStyle:"scaleBarTickStyle",unit:"scaleBarUnit"},links:{show:"showLinks",labelAdjustment:"labelAdjustmentOptions"},labels:{labelAdjustment:"labelAdjustmentOptions"},scale:{autoBreaks:"scaleBreaks",autoBreakThreshold:"scaleBreakThreshold",breakPadding:"scaleBreakPadding"}};function Jl(t,e){return!e||t===null||typeof t!="object"||Array.isArray(t)?t:Object.fromEntries(Object.entries(t).map(([n,r])=>[e[n]??n,r]))}var Kh={chart:"chartOptions",grid:"containerOptions",cluster:"clusterOptions",title:"titleOptions",clusterTitle:"clusterTitleOptions",clusterFooter:"footerOptions",clusterLabel:"clusterLabelOptions",sequence:"sequenceOptions",genes:"geneOptions",transcript:"transcriptOptions",labels:"labelsOptions",coordinates:"coordinatesOptions",scale:"scaleOptions",scaleBar:"scaleBarOptions",legend:"legendOptions",links:"linkOptions",tooltip:"tooltipOptions",trackMouse:"trackMouseOptions",toolbar:"toolbarOptions"},hb={text:"textAnnotationOptions",line:"lineAnnotationOptions",arrow:"arrowAnnotationOptions",textMarker:"textMarkerAnnotationOptions",symbol:"symbolAnnotationOptions",rectangle:"rectangleAnnotationOptions",promoter:"promoterAnnotationOptions",terminator:"terminatorAnnotationOptions",arc:"curveAnnotationOptions"},tc=qh.themes,Sa=qh.palettes,zE=t=>t.replace(/_([a-z])/g,(e,n)=>n.toUpperCase());function ec(t){return Ht(t)?Object.fromEntries(Object.entries(t).map(([e,n])=>[zE(e),n])):t}function NE(t){let e={...t};for(let n of Object.keys(e))n==="annotations"?Ht(e[n])&&(e[n]=Object.fromEntries(Object.entries(e[n]).map(([r,i])=>[r,ec(i)]))):n in Kh&&(e[n]=ec(e[n]));return e}function Jh(t,e){let n={...t};for(let[r,i]of Object.entries(e||{}))i==null?delete n[r]:Ht(n[r])&&Ht(i)?n[r]=Jh(n[r],i):n[r]=i;return n}function db(t,e){let n=typeof e=="string"?{base:e}:ge(e),r=n.base;delete n.base;let i;if(r==null)i=t.x.theme||{};else{if(!(r in tc))throw new Error(`name must be one of: ${Object.keys(tc).map(a=>`"${a}"`).join(", ")}`);i=NE(ge(tc[r]))}for(let a of Object.keys(n))a in Zh&&(n[a]=Jl(n[a],Zh[a]));let o=n.pattern===!1;o&&delete n.pattern,t.x.theme=Jh(i,n),o&&delete t.x.theme.pattern}function Qh(t){if(!Ht(t)&&!Array.isArray(t))return t;if(Array.isArray(t))return t.map(Qh).filter(n=>!((Ht(n)||Array.isArray(n))&&!Object.keys(n).length));let e={};for(let[n,r]of Object.entries(t)){let i=Qh(r);(Ht(i)||Array.isArray(i))&&Object.keys(i).length===0||(e[n]=i)}return e}function RE(t){let e=t.fontFamily!=null?{fontFamily:t.fontFamily}:{},n={...e,...t.textColor!=null?{fill:t.textColor}:{}},r={...e,...t.textColor!=null?{color:t.textColor}:{}},i=t.lineColor!=null?{stroke:t.lineColor}:{},o=t.palette??null;o!==null&&!(typeof o=="string"&&(o.startsWith("scheme")||o in Sa))&&(o=Array.isArray(o)?o:[o]);let a=o!==null?{colorScheme:o}:{},s=t.pattern!=null?{pattern:Gh(t.pattern)}:{},c=t.background!=null?{backgroundColor:t.background}:{};return Qh({chart:{style:c},title:{titleFont:n,subtitleFont:n},clusterTitle:{titleFont:n,subtitleFont:n},clusterFooter:{titleFont:n,subtitleFont:n},clusterLabel:{...n,subtitleFont:n},sequence:{sequenceStyle:i,markerStyle:i},genes:{...a,...s},transcript:{...a,...s,labelOptions:r,styleUTRs:t.background!=null?{fill:t.background}:{}},labels:{...n,leaderLine:i},coordinates:{textStyle:n,tickStyle:i},scale:{textStyle:n,tickStyle:i,lineStyle:i},scaleBar:{labelStyle:n,scaleBarLineStyle:i,scaleBarTickStyle:i},legend:{legendOptions:{...a,...s},legendTextOptions:n},links:{labelStyle:n,colorBarOptions:{labelOptions:n,titleOptions:n}},tooltip:r,trackMouse:r,toolbar:e,annotations:{text:{style:n},textMarker:{textStyle:n},arc:{textStyle:n}}})}function pb(t){if(!t||Object.keys(t).length===0)return;let e={};for(let i of Object.keys(t))i in Kh&&(e[i]=ec(t[i]));t.annotations!=null&&(e.annotations=Object.fromEntries(Object.entries(t.annotations).map(([i,o])=>[i,ec(o)])));let n=Jh(RE(t),e),r={};for(let[i,o]of Object.entries(Kh))i in n&&(r[o]=n[i]);for(let i of Object.keys(n.annotations||{}))i in hb&&(r[hb[i]]=n.annotations[i]);return t.textScale!=null&&(r.textScale=t.textScale),r}var PE=["translation","sequence"];function nc(t,e=[]){if(t instanceof Ke)return e;if(t instanceof Map)for(let n of t.values())nc(n,e);else if(Array.isArray(t))for(let n of t)nc(n,e);else if(t!==null&&typeof t=="object")for(let n of Object.values(t))nc(n,e);else typeof t=="string"&&e.push(t);return e}function IE(t){if(!t.data)return;let e={...t,data:void 0,series:new Map};for(let[o,a]of t.series)e.series.set(o,{...a,data:void 0});let n=nc(e),r=t.data.names,i=PE.filter(o=>r.includes(o)&&!n.some(a=>a.includes(o)));t.dataColumns=r.filter(o=>!i.includes(o)),delete t.data;for(let o of t.series.values())o.data instanceof Ke&&(o.data=o.data.select(o.data.names.filter(a=>!i.includes(a))))}function td(t){if(t instanceof Map){for(let[e,n]of t)t.set(e,td(n));return t}if(t===null||typeof t!="object"||t instanceof Ke)return t;for(let[e,n]of Object.entries(t))e==="colorScheme"&&typeof n=="string"&&Sa[n]?t[e]=Sa[n].slice():n!==null&&typeof n=="object"&&(t[e]=td(n));return t}function gb(t){let e=t.x;e.size={width:t.width};let n=pb(e.theme);return n===void 0?delete e.theme:e.theme=n,td(e),IE(e),e}var LE=["title","subtitle","style","subtitleFont","titleFont","show","height","align","spacing"];function mb(t,e){let n=e.show??!0;if(!n||e.title==null&&e.subtitle==null)return;let r=Ce({title:e.title,subtitle:e.subtitle,subtitleFont:e.subtitleFont,titleFont:e.titleFont,style:e.style,height:e.height,show:n,align:e.align,spacing:e.spacing,...Ft(e,LE)});t.x.title=Qe(t.x.title,r)}var qE=["title","subtitle","subtitleFont","titleFont","show","height","clusters","align","spacing"];function yb(t,e){let n=e.show??!0,r=Ft(e,qE);Vt(t,e.clusters).forEach((i,o)=>{let a=t.x.series.get(i),s={title:gt(e.title,o)??null,subtitle:gt(e.subtitle,o)??null,subtitleFont:e.subtitleFont??{},titleFont:e.titleFont??{},show:gt(n,o)};ee(s,["align"],gt(e.align,o)),ee(s,["spacing"],gt(e.spacing,o)),En(s,r,o),ee(a,["grid","margin","top"],gt(e.height,o)),a.clusterTitle=s})}var YE=["title","show","width","clusters","position","align","wrapLabel","wrapOptions","subtitle","subtitleFont","spacing"];function bb(t,e){let n=e.show??!0,r=Ft(e,YE),i=Vt(t,e.clusters),o=e.title??null;t.x.cluster!==void 0&&o===null&&(o=i),i.forEach((a,s)=>{let c=t.x.series.get(a),l=xa({title:gt(o,s),show:gt(n,s),width:gt(e.width,s),wrapLabel:e.wrapLabel,wrapOptions:e.wrapOptions??{},position:gt(e.position,s),align:gt(e.align,s),subtitle:gt(e.subtitle,s),spacing:gt(e.spacing,s)});Jy(e.subtitleFont)||(l.subtitleFont=e.subtitleFont),c.clusterLabel=En(l,r,s)})}var UE=["title","subtitle","show","clusters","subtitleFont","titleFont","align","spacing"];function vb(t,e){let n=e.show??!0,r=Ft(e,UE);Vr(t,e.clusters,"footer",i=>{let o={title:gt(e.title,i)??null,subtitle:gt(e.subtitle,i)??null,show:gt(n,i),subtitleFont:e.subtitleFont??{},titleFont:e.titleFont??{}};return ee(o,["align"],gt(e.align,i)),ee(o,["spacing"],gt(e.spacing,i)),En(o,r,i)})}function HE(t,e){let n=10**e;return Math.round(t*n)/n}function ka(t,e){let n=t.x,r=[...n.series.keys()],i=Vt(t,e.clusters),o=t.height,a=e.clusters!=null,s=e.margin==null?null:{...e.margin},c=e.width??null,l=e.height??null;if(c!==null&&!a&&(t.width=Vn(t.width,c)),(e.direction??"column")==="row"&&(n.graphContainer.direction="row",i.length>0)){let u=`${pe(HE(100/i.length,3))}%`;for(let h of i){let f=n.series.get(h).container;f.style={...f.style||{},width:u},f.width=u}}if(s!==null&&!a){let u=s.top!=null?Vn(o,s.top):0,h=s.bottom!=null?Vn(o,s.bottom):0;if(typeof u!="number"||typeof h!="number")throw new Error("Use pixel values for the top and bottom margins when the chart height is a percentage.");if(delete s.top,delete s.bottom,n.legend.margin=Qe(n.legend.margin,s),n.title.margin=Qe(n.title.margin,s),Array.isArray(n.style)&&(n.style={}),u>0&&(n.style.paddingTop=`${pe(u)}px`),h>0&&(n.style.paddingBottom=`${pe(h)}px`),u>0||h>0){t.height="100%";for(let f of r){let d=n.series.get(f).container;if(typeof d.height=="string"&&/%$/.test(d.height))continue;let m=Number(Vn(d.height,d.height));d.height=m-(u+h)/r.length}}}i.forEach((u,h)=>{let f=n.series.get(u).container;if(s!==null&&(f.margin=Qe(f.margin,s)),c!==null&&a){let d=Vn(t.width,gt(c,h));f.style={...f.style||{},width:d},f.width=d}l!==null&&(f.height=a?Vn(o,gt(l,h)):Kl(l,r.length))})}function wb(t){if(!/^\s*[0-9]*\.?[0-9]+\s*bp\s*$/.test(t))throw new Error('scale_break_padding must be a percentage, e.g. 1, or base pairs, e.g. "500bp"');return Number(t.replace(/\s*bp\s*$/,""))}function WE(t,e=0,n=0){let r=t.get("start").slice(),i=t.get("end").slice();r.forEach((f,d)=>{f>i[d]&&([r[d],i[d]]=[i[d],f])});let o=Math.max(...i)-Math.min(...r)+1,a=o*e/100,s=_a(r.length,[f=>r[f]]);r=s.map(f=>r[f]),i=s.map(f=>i[f]);let c=[],l={start:r[0],end:i[0]};for(let f=1;f<r.length;f++)r[f]<=l.end?l.end=Math.max(l.end,i[f]):(c.push(l),l={start:r[f],end:i[f]});c.push(l);let u=[];for(let f=0;f<c.length-1;f++){let d=c[f].end+1,m=c[f+1].start-1;m-d+1>=a&&u.push({start:d,end:m})}let h;return typeof n=="string"?h=wb(n):h=(o-u.reduce((d,m)=>d+(m.end-m.start+1),0))*n/100,u=u.map(f=>({start:f.start+h,end:f.end-h})),u.filter(f=>f.start<f.end)}function jE(t,e,n){if(Ht(t)){if(!("start"in t)||!("end"in t))throw new Error("A data frame of breaks needs a start and an end column");let r=[t.start].flat(),i=[t.end].flat(),o=r.map((a,s)=>s);if("cluster"in t){let a=[t.cluster].flat();o=o.filter(s=>pe(a[s])===e)}t=o.map(a=>({start:r[a],end:i[a]}))}return n?(t||[]).map(r=>({...r,start:r.start-n,end:r.end-n})):t}function ed(t,e){if(!e)return t;let n=i=>typeof i=="number"?i-e:i,r=i=>Array.isArray(i)?i.map(n):n(i);for(let i of["x","x1","x2"])i in t&&(t[i]=r(t[i]));if(t.position!==null&&t.position!==void 0)if(t.type==="rectangle"){let i=Array.isArray(t.position)?t.position:[t.position];t.position=i.map(o=>Array.isArray(o)?o.map(a=>Array.isArray(a)?[n(a[0]),...a.slice(1)]:n(a)):[n(o)])}else t.position=r(t.position);return t}var XE=["clusters","start","end","padding","hidden","breaks","tickValues","reverse","axisPosition","axisType","y","autoBreaks","autoBreakThreshold","breakPadding","ticksCount","ticksFormat","tickStyle","textStyle","lineStyle"];function xb(t,e){let n=t.x,r=e.axisType??"position",i=e.hidden??!1,o=e.autoBreaks??!1,a=e.autoBreakThreshold??20,s=e.breakPadding??1,c=e.ticksFormat??null;typeof s=="string"&&wb(s);let l=null,u=null,h=Vt(t,e.clusters);if(r==="range"){c===null&&(c=".2s");for(let d of h){let m=n.series.get(d),p=m.data,g=Math.min(...p.get("start"),...p.get("end"));p.set("start",p.get("start").map(_=>_-g+1)),p.set("end",p.get("end").map(_=>_-g+1));let y=g-1;m.sequence=Vh(m.sequence,y),m.annotations.length>0&&(m.annotations=m.annotations.map(_=>ed(_,y))),m.positionShift=m.positionShift==null?y:m.positionShift+y;let w=n.data.get("rowID"),b=n.data.get("start"),v=n.data.get("end");p.get("rowID").forEach((_,S)=>{let k=w.indexOf(_);b[k]=p.get("start")[S],v[k]=p.get("end")[S]})}l=1,u=Math.max(...h.flatMap(d=>{let m=n.series.get(d).data;return[...m.get("start"),...m.get("end")]}))}let f=Ft(e,XE);h.forEach((d,m)=>{let p=n.series.get(d),g=r==="range"&&!i&&m<h.length-1?!0:i,y=o?WE(p.data,a,s):jE(e.breaks??[],d,p.positionShift),w={start:gt(e.start,m)??null,end:gt(e.end,m)??null,xMin:l,xMax:u,padding:e.padding??null,hidden:g,breaks:y,tickValues:e.tickValues??null,reverse:gt(e.reverse??!1,m),axisPosition:e.axisPosition??null,axisType:r,scale_breaks:o,scale_break_threshold:a,scale_break_padding:s,ticksCount:e.ticksCount??null,ticksFormat:c,y:e.y??null,tickStyle:e.tickStyle??{},textStyle:e.textStyle??{},lineStyle:e.lineStyle??{}};p.scale=En(w,f,m)}),kb(t)}var GE=["show","clusters","lineStyle","tickStyle","labelStyle"];function _b(t,e){let n=e.show??!0,r=Ft(e,GE);Vr(t,e.clusters,"scaleBar",i=>En({show:gt(n,i),scaleBarLineStyle:e.lineStyle??{},scaleBarTickStyle:e.tickStyle??{},labelStyle:e.labelStyle??{}},r,i))}function VE(t,e,n,r){return t==="left"&&!r||t==="right"&&r?e:t==="right"&&!r||t==="left"&&r?n:t==="center"?(e+n)/2:e}function Sb(t,e){let n=t.x;if(n.cluster===void 0){t.warnings.push("Could not align selected gene. Please define cluster in the GC_chart function.");return}if(!n.data.has(e.idColumn)){t.warnings.push(`Column ${e.idColumn} not found in the data.`);return}let r=pe(e.id);if(!n.data.get(e.idColumn).some(i=>pe(i)===r)){t.warnings.push(`ID ${e.id} not found in the ${e.idColumn} column.`);return}t.align={idColumn:e.idColumn,id:e.id,align:e.align??"left"},n.align={id_column:e.idColumn,id:e.id,align:t.align.align},kb(t)}function kb(t){let e=t.align;if(!e)return;let n=t.x,r=n.data,i=n.cluster,o=r.get(i),a=[...new Set(o)],s=new Set(a.filter(w=>n.series.get(w)?.scale?.reverse===!0)),c=r.get("start").map((w,b)=>Math.min(w,r.get("end")[b])),l=r.get("start").map((w,b)=>Math.max(w,r.get("end")[b])),u=r.get(e.idColumn),h=pe(e.id),f=[];for(let w=0;w<r.nrow;w++)u[w]!==null&&pe(u[w])===h&&f.push(w);if(!f.length){t.warnings.push(`Selected gene coud not be aligned. Gene ${e.id} not found in the ${e.idColumn} column.`);return}if(new Set(f.map(w=>o[w])).size<f.length){t.warnings.push(`The selected gene ${e.id} appears multiple times in some clusters. Please make sure to use a unique gene id.`);return}let d=new Map;o.forEach((w,b)=>{let v=d.get(w)||{start:1/0,end:-1/0};d.set(w,{start:Math.min(v.start,c[b]),end:Math.max(v.end,l[b])})});let m=(w,b,v)=>(n.series.get(v)?.scale?.breaks||[]).reduce((_,S)=>_+Math.max(0,Math.min(S.end,b)-Math.max(S.start,w)),0),p=f.map(w=>{let b=o[w],v=s.has(b),_=VE(e.align,c[w],l[w],v),{start:S,end:k}=d.get(b),C=m(S,_,b),F=m(_,k,b),A=_-S-C,E=k-_-F;return{cl:b,isReversed:v,position:_,gapsBelow:C,gapsAbove:F,left:v?E:A,right:v?A:E}}),g=Math.max(...p.map(w=>w.left)),y=Math.max(...p.map(w=>w.right));for(let w of p){let b=n.series.get(w.cl);b.scale.start=w.position-(w.isReversed?y:g)-w.gapsBelow,b.scale.end=w.position+(w.isReversed?g:y)+w.gapsAbove}}var ZE=["identity","similarity","none"],KE=["data","group","value1","value2","clusters","curve","measure","show","label","labelPosition","normalColor","invertedColor","lowColor","vmin","vmax","useGroupColors","colorBar","colorBarOptions","linkWidth","linkStyle","labelStyle"],QE={position:["bottomright","bottomleft","topright","topleft","legend"],orientation:["vertical","horizontal"],labels:["inline","below"],legendSide:["left","right"]};function rc(t,e,n){t.has(e)&&(t.columns=new Map([...t.columns].map(([r,i])=>[r===e?n:r,i])))}function Ab(t,e){let n=e.measure??"identity",r=e.labelPosition??"gene",i=e.colorBarOptions??{};if(!ZE.includes(n))throw new Error("Invalid measure specified. Choose 'identity', 'similarity', or 'none'.");if(!["gene","link"].includes(r))throw new Error(`'label_position' must be one of "gene", "link".`);for(let[y,w]of Object.entries(QE)){let b=i[y];if(b!=null&&!w.includes(b))throw new Error(`'colorBarOptions$${y}' must be one of ${w.map(v=>`"${v}"`).join(", ")}.`)}let o=e.vmin??null,a=e.vmax??null;if((o!==null||a!==null)&&(o??0)>=(a??100))throw new Error("'vmin' must be smaller than 'vmax'.");let s=e.group??null,c=e.label??!0;s===null&&r==="gene"&&(c=!1);let l=Ke.from(e.data??[]);if(l.nrow===0)return;l.has("identity2")&&rc(l,"identity2","identity"),l.has("similarity2")&&rc(l,"similarity2","similarity"),rc(l,`${s??""}1`,"group1"),rc(l,`${s??""}2`,"group2");let u=["cluster1","group1","start1","end1","cluster2","group2","start2","end2"];n!=="none"&&u.push(n);let h=e.useGroupColors??!1,f=e.colorBar;if(h){let y=t.x.group!==void 0?t.x.group:s,w=l.get(`${y??""}2`);w&&l.set("groupColor",w.slice()),u.push("groupColor"),f=!1}let d=l.select(u.filter(y=>l.has(y))),m=d.get("start2")||[];d=d.rows(_a(d.nrow,[y=>m[y]]));let p=Ce({group:s,curve:e.curve,measure:n,showLinks:e.show??!0,label:c,labelPosition:r,normalColor:e.normalColor,invertedColor:e.invertedColor,lowColor:e.lowColor,vmin:o,vmax:a,useGroupColors:h,value1:e.value1,value2:e.value2,colorBar:f,colorBarOptions:i,linkWidth:e.linkWidth,linkStyle:e.linkStyle,labelStyle:e.labelStyle,...Ft(e,KE)}),g=t.x.links||[];d.set("linkID",Array.from({length:d.nrow},(y,w)=>`${g.length}-${w+1}`)),t.x.links=[...g,{data:d,options:p}]}var JE=["transcript","type","strand","group","selection","show","colorScheme","customColors","styleExons","styleIntrons","styleUTRs","itemStyleExons","itemStyleIntrons","itemStyleUTRs","groupStyleExons","groupStyleIntrons","groupStyleUTRs","styleBy","labelOptions"];function tM(t,e){return JSON.stringify(t)===JSON.stringify(e)}function eM(t,e){for(let a of["title","legend","theme","events","toolbar","zoom"])e.x[a]===void 0?delete t.x[a]:t.x[a]=e.x[a];t.width=e.width;let n=[...e.x.series.values()].map(a=>a.container.margin),i=n.length>0&&n.every(a=>tM(a,n[0]))?n[0]:{},o=Array.isArray(e.x.style)?{}:e.x.style||{};o.paddingTop!=null&&(i={...i||{},top:o.paddingTop}),o.paddingBottom!=null&&(i={...i||{},bottom:o.paddingBottom}),i&&Object.keys(i).length>0&&ka(t,{margin:i}),e.x.graphContainer?.direction==="row"&&ka(t,{direction:"row"})}function Eb(t,e){if(!t.x.transcript_called){let o=t.x.params,a={...t,x:t.x},s={start:o.start,end:o.end,cluster:e.transcript??"transcript"};o.group!==void 0&&(s.group=o.group),e.strand!=null&&(s.strand=e.strand);let c=Ql({...t.spec,fields:s,width:o.width,height:o.height,style:o.style});c.x.saveButton=o.save_button,c.x.params.save_button=o.save_button,t.x=c.x,t.width=c.width,t.height=c.height,eM(t,a);let l=[...new Set(t.x.data.get("transcript").map(String))];for(let u of l){let h=t.x.series.get(u);h.genes={group:null,show:!1},h.sequence={show:!1},h.transcript={group:null,show:!0}}}let n=e.group??null,r=e.show??!0;if(n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&![n].flat().every(o=>t.x.data.has(o)))throw new Error("group column not found in data");let i=Ft(e,JE);Vt(t,e.selection).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({group:gt(n,a),show:gt(r,a),colorScheme:e.colorScheme,customColors:e.customColors,styleExons:e.styleExons,styleIntrons:e.styleIntrons,styleUTRs:e.styleUTRs,itemStyleExons:e.itemStyleExons,itemStyleIntrons:e.itemStyleIntrons,itemStyleUTRs:e.itemStyleUTRs,groupStyleExons:e.groupStyleExons,groupStyleIntrons:e.groupStyleIntrons,groupStyleUTRs:e.groupStyleUTRs,styleBy:e.styleBy,labelOptions:e.labelOptions,...i});s.transcript=jh(c,s.transcript)}),e.selection==null&&Xh(t,e.colorScheme,e.customColors),t.x.transcript_called=!0}var Mb=["text","textMarker","line","arrow","symbol","rectangle","promoter","terminator","arc"];function Tb(t,e){let n=e.type??"text";if(typeof n!="string"||!Mb.includes(n))throw new Error(`'type' must be one of ${Mb.map(i=>`"${i}"`).join(", ")}.`);let r=Ft(e,["type","clusters"]);for(let i of Vt(t,e.clusters)){let o=t.x.series.get(i),a=ed(Ce({type:n,...ge(r)}),o.positionShift);o.annotations=[...o.annotations||[],a]}}var nM=["genes","labels","coordinates"],rM=["legend","title"],iM=["scaleBar","scale"],Cb=["genes","labels","coordinates","clusterTitle","clusterFooter","clusterLabel","legend","title","scaleBar","scale"];function Fb(t,e,n,r){let i=Array.isArray(t)?t:[],o=i.find(e)||{},a=i.filter(c=>!e(c)),s=Gr(o,r);for(let[c,l]of Object.entries(n))s[c]=l;return[...a,s]}function Ob(t,e){let n=e.component??"genes";if(!Cb.includes(n))throw new Error(`'component' must be one of ${Cb.join(", ")}`);let{rowID:r=null,cluster:i=null,part:o=null,end:a=null,group:s=null}=e,c=ge(Ft(e,["component","rowID","cluster","part","end","group"])),l=nM.includes(n),u=t.x;if(rM.includes(n)){if(n==="legend"){let y=u.legend?.group;if(s===null||y==null||!u.data.get(y)?.some(w=>String(w)===String(s)))throw new Error("'group' must identify one group in the legend.")}let p=n==="legend"?{group:s,part:o}:{part:o},g=y=>y.part===o&&(n==="title"||y.group===s);u[n].itemStyle=Fb(u[n].itemStyle,g,p,c);return}let h=n==="clusterFooter"?"footer":n,f,d,m;if(l){if(typeof r!="number"||!u.data.get("rowID").includes(r))throw new Error("'row_id' must identify one row in the chart's data.");f=a===null?{rowID:r}:{rowID:r,end:a},d=p=>Number(p.rowID)===Number(r)&&(p.end??null)===a,m=[...u.series.keys()]}else if(f=iM.includes(n)?{}:{part:o},d=p=>(p.part??null)===o,m=Vt(t,i),!m.length)throw new Error("'cluster' must be the name or number of a cluster of the chart.");for(let p of m){let g=u.series.get(p);l&&!g.data.get("rowID").includes(r)||((!g[h]||Array.isArray(g[h]))&&(g[h]={}),g[h].itemStyle=Fb(g[h].itemStyle,d,f,c))}}function Bb(t,e){let n=e.show??!0,r=Ft(e,["show","clusters"]);Vt(t,e.clusters).forEach((i,o)=>{t.x.series.get(i).trackMouse={show:gt(n,o),...ge(r)}})}function Db(t,e){let n={click:e.click??!0,highlight:e.highlight??!1};e.dblclick&&(n.dblclick=!0),e.select&&(n.select=!0),e.drag&&(n.drag=!0),e.legendClick===!1&&(n.legendClick=!1),e.zoom&&(n.zoom=!0),e.rendered&&(n.rendered=!0),e.renderId!=null&&(n.renderId=e.renderId),t.x.events=n}var oM=["show","position","buttons","size","color","hoverColor","tooltipBackground","tooltipColor","tooltipBorder","tooltipRadius","tooltipShadow","fontFamily","icons"];function $b(t,e){let n=xa(Object.fromEntries(oM.map(r=>[r,ge(e[r])])));n.buttons!==void 0&&!Array.isArray(n.buttons)&&(n.buttons=[n.buttons]),t.x.toolbar=Gr(t.x.toolbar||{},n)}var aM=["show","range","mode","min","update","height","overview","color","style","windowStyle","handleStyle"];function zb(t,e){let n=xa(Object.fromEntries(aM.map(i=>[i,ge(e[i])])));n.show===void 0&&(n.show=!0);let r={...t.x.zoom||{}};n.mode!==void 0&&n.mode!==r.mode&&(delete r.range,delete r.min),n.range!==void 0&&(n.range=[n.range].flat().map(Number).sort((i,o)=>i-o)),t.x.zoom=Gr(r,n)}var sM={cluster:eb,labels:rb,genes:ib,color:ob,pattern:ab,legend:sb,sequence:lb,coordinates:cb,tooltip:ub,title:mb,clusterTitle:yb,clusterLabel:bb,clusterFooter:vb,grid:ka,scale:xb,scaleBar:_b,align:Sb,links:Ab,transcript:Eb,annotation:Tb,elementStyle:Ob,theme:db,zoom:zb,toolbar:$b,events:Db,trackMouse:Bb},Nb=1,lM=new Set(["version","data","fields","width","height","style"]);function cM(t){return t==null?[]:Array.isArray(t)?t:[t]}function oc(t){if(!t||typeof t!="object")throw new Error("compile() needs a spec object");typeof t.version=="number"&&t.version>Nb&&console.warn(`geneviewer: spec version ${t.version} is newer than this library's (${Nb}); drawing what it knows`),t=ge(t);let e=Ql(t);for(let[n,r]of Object.entries(t)){if(lM.has(n))continue;let i=sM[n];if(i)for(let o of cM(r))i(e,Jl(o,fb[n]))}return ic(gb(e))}function ic(t){if(t instanceof Ke)return t.toJSON();if(t instanceof Map){let e={};for(let[n,r]of t)e[n]=ic(r);return e}if(Array.isArray(t))return t.map(ic);if(t!==null&&typeof t=="object"){let e={};for(let[n,r]of Object.entries(t))r!==void 0&&(e[n]=ic(r));return e}return t}var Rb=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);function nd(t,e){let n={...t};for(let[r,i]of Object.entries(e||{}))i!==void 0&&(n[r]=r!=="data"&&Rb(n[r])&&Rb(i)?nd(n[r],i):structuredClone(i));return n}var Pb=`.geneviewer-container {
|
|
28
28
|
display: flex;
|
|
29
29
|
flex-direction: column; /* or row, depending on the desired layout */
|
|
30
30
|
align-content: stretch;
|
|
@@ -411,7 +411,7 @@ var v2=Object.defineProperty;var w2=(t,e)=>{for(var n in e)v2(t,n,{get:e[n],enum
|
|
|
411
411
|
outline: 2px solid #4a90e2;
|
|
412
412
|
outline-offset: 1px;
|
|
413
413
|
}
|
|
414
|
-
`;function Ib(t){if(!t||!t.head||t.querySelector("style[data-geneviewer]"))return;let e=t.createElement("style");e.setAttribute("data-geneviewer",""),e.textContent=Pb,t.head.insertBefore(e,t.head.firstChild)}var
|
|
415
|
-
`+new XMLSerializer().serializeToString(l)}function sc(t,e=null){let n=new Blob([Aa(t,e)],{type:"image/svg+xml;charset=utf-8"}),r=URL.createObjectURL(n);return new Promise((i,o)=>{let a=new Image,s=c=>{URL.revokeObjectURL(r),o(c)};a.onerror=()=>s(new Error("Could not render the chart SVG as PNG.")),a.onload=()=>{try{let c=window.devicePixelRatio||1,l=document.createElement("canvas");l.width=Math.ceil(a.naturalWidth*c),l.height=Math.ceil(a.naturalHeight*c),l.getContext("2d").drawImage(a,0,0,l.width,l.height),l.toBlob(u=>{URL.revokeObjectURL(r),u?i(u):o(new Error("Could not encode the chart as PNG."))},"image/png")}catch(c){s(c)}},a.src=r})}function rd(t,e){let n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=e,r.style.display="none",document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),4e4)}function Lb(t,e,n,r=null,i=rd){var o=R.select(n).append("div").attr("id",`saveMenu-${t}`).style("position","relative").style("z-index","1000").style("display","block"),a=o.append(r?"i":"span").attr("class",(r?r+" ":"")+"geneviewer-save-icon").attr("id",`saveIcon-${t}`).attr("tabindex","0").attr("role","button").attr("aria-label","Save chart").attr("aria-haspopup","menu").style("text-align","right").style("cursor","pointer");r||ac(a,"download");var s=o.append("div").attr("id",`saveIconTooltip-${t}`).attr("class","save-tooltip").attr("role","menu").style("display","none").style("font-size","12px").style("overflow","hidden").style("white-space","nowrap"),c=function(){s.style("display","none")},l=[{label:"Save as SVG",save:function(){var u=Aa(e,n);i(new Blob([u],{type:"image/svg+xml;charset=utf-8"}),"graph.svg")}},{label:"Save as PNG",save:function(){return sc(e,n).then(u=>i(u,"graph.png"))}}];l.forEach(function(u){s.append("div").attr("class","save-option").attr("tabindex","0").attr("role","menuitem").text(u.label).style("padding","5px 8px").style("cursor","pointer").on("click",function(){c(),u.save()}).on("keydown",function(h){(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),this.click())})}),o.on("focusin",function(){s.style("display","block")}).on("focusout",function(u){o.node().contains(u.relatedTarget)||c()}),R.select(e).on("mouseleave",c),o.on("mouseenter",function(){s.style("display","block")}).on("mouseleave",c)}var
|
|
416
|
-
`)};return{canUndo:function(){return t.length>0},canRedo:function(){return e.length>0},clear:function(){t=[],e=[]},record:function(r,i){if(r=r.filter(function(s){return s.key!==null&&!Ma(s.before,s.after)}),!!r.length){var o=t[t.length-1],a=performance.now();i&&o&&o.merge&&n(o.items)===n(r)&&a-o.time<1e3?(o.items.forEach(function(s,c){s.after=r[c].after}),o.time=a):(t.push({items:r,merge:i,time:a}),t.length>100&&t.shift()),e=[]}},next:function(r){var i=r?t:e;return i[i.length-1]},take:function(r){var i=(r?t:e).pop();return i.merge=!1,(r?e:t).push(i),i.items.map(function(o){return{key:o.key,position:r?o.before:o.after}})},expected:function(){var r={};return e.forEach(function(i){i.items.forEach(function(o){r[o.key]=o.before})}),t.forEach(function(i){i.items.forEach(function(o){r[o.key]=o.after})}),r}}};function wM(t,e,n){if(typeof t=="string"){var r=document.querySelector(t);if(!r)throw new Error("No element matches "+t);t=r}var i=t;n=n||{},n.injectStyles!==!1&&Ib(i.ownerDocument);var o=!i.classList.contains("geneviewer");i.classList.add("geneviewer");var a,s,c,l,u,h,f,d,m,p,g={},y={},w=i.style.width,b=i.style.flex,v=!1,_=!1,S=i.id?i.id.replace(/[^A-Za-z0-9_-]/g,"_"):"geneviewer-chart-"+ ++gM,k={},C=!1,F=[],A=["genes","transcript","labels","links","legend","coordinates"],E=["genes","labels","coordinates","clusterTitle","clusterFooter","clusterLabel","legend","title","scaleBar","scale"],D=".gene, text.label, text.coordinate, [data-part], "+Yb,$=E.filter(function(x){return!["genes","coordinates"].includes(x)}),M="text.label, [data-part], "+Yb,T=[],B=null,N=function(x){T=x,B=x[x.length-1]??null},L=null,q=!0,U=function(x){var O=x.target;if(!O.classList||!O.classList.contains("geneviewer-svg-content")||typeof x.clientX!="number")return O;var z=document.elementsFromPoint(x.clientX,x.clientY).find(function(P){return P.closest&&P.closest('[data-component="links"]')&&i.contains(P)});return z||O},Z=function(x){var O=/^rgba?\((\d+), (\d+), (\d+)(?:, ([\d.]+))?\)$/.exec(x);return!O||O[4]!==void 0&&O[4]!=="1"?x:"#"+O.slice(1,4).map(function(z){return(+z).toString(16).padStart(2,"0")}).join("")},Q=function(x){var O=/^url\("?#([^")]+)"?\)$/.exec(x),z=O&&i.querySelector("#"+CSS.escape(O[1]));return!z||z.children.length!==1||z.firstElementChild.tagName!=="rect"?x:getComputedStyle(z.firstElementChild).fill},j=function(x,O){if(Ea(x))return Object.assign({moveX:0,moveY:0},O.__drawn__);O=O.closest(x==="genes"?".gene":x==="legend"?"[data-part]":"text")||O;var z=getComputedStyle(O),P={fill:Z(Q(z.fill)),opacity:+z.opacity};return x==="genes"||x==="legend"&&O.matches(".legend-marker")?Object.assign(P,{stroke:Z(z.stroke),strokeWidth:parseFloat(z.strokeWidth),strokeDasharray:z.strokeDasharray},O.__drawn__):(Object.assign(P,{text:O.__text__??O.textContent,fontSize:parseFloat(z.fontSize),fontWeight:z.fontWeight,fontStyle:z.fontStyle,fontFamily:z.fontFamily},O.__drawn__),x==="labels"&&["dx","dy"].forEach(function(I){var Y=O[I].baseVal;Y.numberOfItems&&(P[I]=Y.getItem(0).value)}),P)},H=function(x,O){var z=U(x),P=z.closest&&z.closest("[data-component]");if(!(!P||!i.contains(P))){for(var I=P.getAttribute("data-component"),Y=null,nt=z;A.includes(I)&&nt&&nt!==P.parentNode;nt=nt.parentNode)if(nt.__data__!==void 0){Y=nt.__data__;break}var wt=P.closest("[data-cluster]"),kt={component:I,cluster:wt?wt.getAttribute("data-cluster"):null,data:Y},Pt=z.closest("[data-part]");return Pt&&P.contains(Pt)&&(kt.part=Pt.getAttribute("data-part")),O&&W(kt)!==null&&(kt.style=j(I,Ea(I)?P:I==="legend"?Pt:nt)),kt}},W=function(x){return!x||!E.includes(x.component)?null:Ea(x.component)?[x.component,x.cluster].join("|"):x.component==="legend"?x.data!=null&&["label","marker"].includes(x.part)?JSON.stringify([x.component,x.data,x.part]):null:["genes","labels","coordinates"].includes(x.component)?!x.data||x.data.rowID==null?null:[x.component,x.cluster,x.data.rowID,x.data.end??""].join("|"):x.part?[x.component,x.cluster,x.part].join("|"):null},J=function(x){return JSON.stringify(x.map(W))},K=function(x,O){(k[x]||[]).slice().forEach(function(z){z({type:x,detail:O})}),i.dispatchEvent(new CustomEvent("geneviewer:"+x,{bubbles:!0,detail:O}))},ht=function(x,O){return W(x)!==null&&W(x)===W(O)},G=function(x){var O=W(x);return O!==null&&T.some(function(z){return W(z)===O})},tt=function(x){return x===null?null:structuredClone(x)},ot=function(){return T.map(tt)},X=function(){K("select",tt(B)),K("selection",ot())},vt=function(x){var O=JSON.stringify(T.map(function(Y){return Y.style})),z={};i.querySelectorAll(D).forEach(function(Y){var nt=H({target:Y}),wt=W(nt);if(wt!==null){var kt=G(nt);Y.classList.toggle("geneviewer-selected",kt),y.select===!0&&(Y.setAttribute("tabindex","0"),Y.setAttribute("role","button"),Y.setAttribute("aria-pressed",String(kt)),Y.setAttribute("aria-label",nt.component+": "+(nt.component==="legend"?String(nt.data)+" "+nt.part:nt.data?.name??Y.__text__??Y.textContent))),kt&&!z[wt]&&(z[wt]=H({target:Y},!0))}});var P=T.map(function(Y){return z[W(Y)]}).filter(Boolean),I=P.length!==T.length;N(P),(I||x&&T.length&&JSON.stringify(T.map(function(Y){return Y.style}))!==O)&&X()},yt=function(x,O,z){var P=z==="replace"?[]:x.slice();return O.forEach(function(I){if(W(I)!==null){var Y=P.findIndex(function(nt){return W(nt)===W(I)});Y>=0&&z==="toggle"?P.splice(Y,1):Y<0&&P.push(I)}}),P},Tt=function(x,O,z){var P=yt(T,x,O);J(P)!==J(T)&&(N(P),vt(),z||X())},Mt=function(x){Tt(x?[x]:[],"replace")},st=function(x,O){return x===null||typeof x!="object"?x===O:O===null||typeof O!="object"?!1:Object.keys(x).every(function(z){return st(x[z],O[z])})},St=function(x){var O=[];i.querySelectorAll(D).forEach(function(P){var I=H({target:P});W(I)!==null&&O.push(I)});var z=[];return x.forEach(function(P){if(!P||typeof P!="object"||typeof P.component!="string")throw new Error("select() needs items with a component, as getSelection() gives them");O.forEach(function(I){var Y=I.component===P.component&&(P.cluster==null||String(P.cluster)===I.cluster)&&(P.part==null||P.part===I.part)&&(P.data===void 0||st(P.data,I.data));Y&&z.push(I)})}),z},ne=0,Zt=function(x){if(performance.now()<ne){x.preventDefault(),x.stopPropagation();return}var O=H(x,!0);if(y.select===!0&&x.detail<2){var z=x.shiftKey||x.metaKey||x.ctrlKey;if(z)W(O)!==null&&Tt([O],"toggle");else if(O||x.target.closest("svg")&&!x.target.closest(".geneviewer-toolbar")||x.target===i){var P=T.length===1&&ht(B,O);Mt(P?null:O??null)}}!O||O.component==="legend"&&y.legendClick===!1||y.click===!0&&K("click",O)},Mn=function(x){if(!(performance.now()<ne)){var O=H(x,!0);O&&(y.select===!0&&Mt(O),K("dblclick",O))}},Fa=function(x,O){return Ea(O)?x.closest('[data-component="'+O+'"]'):x.closest(O==="legend"?"[data-part]":"text")},Vi=function(x,O){if(x.closest(".geneviewer-move-overlay")||!i.clientWidth||!i.clientHeight)return null;var z=x.parentNode,P=z.getScreenCTM();if(!P)return null;var I="http://www.w3.org/2000/svg",Y=i.querySelector(".geneviewer-move-overlay");Y||(Y=document.createElementNS(I,"svg"),Y.setAttribute("class","geneviewer-move-overlay"),Y.setAttribute("width",i.clientWidth),Y.setAttribute("height",i.clientHeight),Y.setAttribute("viewBox",`0 0 ${i.clientWidth} ${i.clientHeight}`),Object.assign(Y.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",pointerEvents:"none",zIndex:"4"}),i.appendChild(Y));var nt={parent:z,next:x.nextSibling};O.component==="legend"&&(x.__home__=z.closest(".legend"));var wt=getComputedStyle(x);["fill","fill-opacity","stroke","stroke-width","stroke-opacity","font-family","font-size","font-weight","font-style","text-anchor","dominant-baseline"].forEach(function(Dt){x.style.getPropertyValue(Dt)||x.style.setProperty(Dt,wt.getPropertyValue(Dt))});var kt=document.createElementNS(I,"g"),Pt=Y.getScreenCTM().inverse().multiply(P);return kt.setAttribute("transform",`matrix(${Pt.a} ${Pt.b} ${Pt.c} ${Pt.d} ${Pt.e} ${Pt.f})`),Ea(O.component)||kt.setAttribute("data-component",O.component),O.cluster!=null&&kt.setAttribute("data-cluster",O.cluster),Y.appendChild(kt),kt.appendChild(x),x.style.pointerEvents="visiblePainted",nt.frame=kt,Zr(),nt},Zr=function(){i.querySelectorAll(".geneviewer-move-overlay [data-part]").forEach(function(x){x.__home__&&x.parentNode.classList.toggle("unselected",x.__home__.classList.contains("unselected"))})},ie=function(){i.querySelectorAll(M).forEach(function(x){if(x.__drawn__?.moveX||x.__drawn__?.moveY){var O=H({target:x});O&&$.includes(O.component)&&Vi(x,O)}})},lc=function(x,O){K("dragmove",Object.assign({},x,{position:O}))},$e=null,Zi=null,cc=function(){var x=Zi;return Zi=null,x&&Pa(x),!!x},od=function(x){if($e){var O=$e;if($e=null,O.stopListening(),i.classList.remove("geneviewer-dragging"),!O.moved){cc();return}if(ne=performance.now()+350,!x){O.items.forEach(function(I){if(I.node.setAttribute("transform",I.transform),I.placement){var Y=I.placement;Y.parent.insertBefore(I.node,Y.next&&Y.next.parentNode===Y.parent?Y.next:null);var nt=Y.frame.parentNode;Y.frame.remove(),nt.firstChild||nt.remove()}lc(I.detail,{moveX:I.moveX,moveY:I.moveY})}),N(O.selection),vt(),cc();return}var z=O.items.map(function(I){I.node.__drawn__=Object.assign({},I.node.__drawn__,I.position);var Y=H({target:I.node},!0);return Y.position=I.position,Y.action="drag",Y});if(cc()){var P=fn();O.items.forEach(function(I){var Y=P[W(I.detail)];Y&&Da(Y,I.position)})}ze.record(O.items.map(function(I){return{key:W(I.detail),before:{moveX:I.moveX,moveY:I.moveY},after:I.position}}),!1),Ki(),fc(z,!1)}},Zn=function(){od(!1)},Hb=function(x){x.key==="Escape"&&$e&&(x.preventDefault(),Zn())},Wb=function(x){$e&&x.pointerId===$e.id&&od(!0)},jb=function(x){var O=$e;!O||x.pointerId!==O.id||!O.moved&&Math.hypot(x.clientX-O.x,x.clientY-O.y)<4||(O.moved||(O.moved=!0,O.items.forEach(function(z){z.placement=Vi(z.node,z.detail)}),y.select===!0&&O.items.length===1&&!G(O.items[0].detail)&&(N([O.items[0].detail]),vt()),i.classList.add("geneviewer-dragging")),x.preventDefault(),O.items.forEach(function(z){var P=new DOMPoint(x.clientX,x.clientY).matrixTransform(z.inverse);z.position={moveX:Math.round(z.moveX+P.x-z.start.x),moveY:Math.round(z.moveY+P.y-z.start.y)};var I=z.position.moveX-z.moveX,Y=z.position.moveY-z.moveY;z.node.setAttribute("transform",`translate(${I}, ${Y}) ${z.transform}`),lc(z.detail,z.position)}))},ad=function(x,O,z){var P=x.parentNode.getScreenCTM();if(!P)return null;var I=P.inverse();return{node:x,detail:O,inverse:I,start:new DOMPoint(z.clientX,z.clientY).matrixTransform(I),transform:x.getAttribute("transform")||"",moveX:O.style?.moveX??Je(x).moveX,moveY:O.style?.moveY??Je(x).moveY}},uc=function(x){if(!(x.button!==0||x.isPrimary===!1)){var O=H(x,!0);if(!O||!$.includes(O.component)||W(O)===null){Xb(x,O);return}if(y.drag===!0){var z=Fa(x.target,O.component);if(z){var P=ad(z,O,x);if(P){var I=[P];if(y.select===!0&&G(O)&&T.length>1){var Y=fn();T.forEach(function(nt){var wt=W(nt);if(!(wt===W(O)||!Y[wt])){var kt=ad(Y[wt],H({target:Y[wt]},!0),x);kt&&I.push(kt)}})}$e={id:x.pointerId,items:I,selection:T.slice(),x:x.clientX,y:x.clientY,moved:!1,stopListening:id({pointermove:jb,pointerup:Wb,pointercancel:Zn,blur:Zn,keydown:Hb})}}}}}},Ot=null,Xb=function(x,O){y.select!==!0||W(O)!==null||x.target.closest(".geneviewer-toolbar")||!i.contains(x.target)||(Ot={id:x.pointerId,x:x.clientX,y:x.clientY,node:null,mode:x.shiftKey||x.metaKey||x.ctrlKey?"add":"replace",selection:T.slice(),stopListening:id({pointermove:Vb,pointerup:Zb,pointercancel:Oa,blur:Oa,keydown:Kb})})},Gb=function(x){var O={};return i.querySelectorAll(D).forEach(function(z){var P=H({target:z}),I=W(P);if(!(I===null||O[I])){var Y=z.getBoundingClientRect();(Y.width||Y.height)&&Y.left>=x.left&&Y.right<=x.right&&Y.top>=x.top&&Y.bottom<=x.bottom&&(O[I]=H({target:z},!0))}}),Object.values(O)},Vb=function(x){if(!(!Ot||x.pointerId!==Ot.id)&&!(!Ot.node&&Math.hypot(x.clientX-Ot.x,x.clientY-Ot.y)<4)){x.preventDefault();var O={left:Math.min(Ot.x,x.clientX),right:Math.max(Ot.x,x.clientX),top:Math.min(Ot.y,x.clientY),bottom:Math.max(Ot.y,x.clientY)};Ot.node||(Ot.node=document.createElement("div"),Ot.node.className="geneviewer-marquee",i.appendChild(Ot.node));var z=i.getBoundingClientRect(),P=z.width/i.offsetWidth||1,I=z.height/i.offsetHeight||1;Object.assign(Ot.node.style,{left:(O.left-z.left)/P+"px",top:(O.top-z.top)/I+"px",width:(O.right-O.left)/P+"px",height:(O.bottom-O.top)/I+"px"}),N(yt(Ot.selection,Gb(O),Ot.mode)),vt()}},Ta=function(x){if(Ot){var O=Ot;if(Ot=null,O.stopListening(),!!O.node){if(O.node.remove(),ne=performance.now()+350,!x){N(O.selection),vt();return}J(T)!==J(O.selection)&&X()}}},Zb=function(x){Ot&&x.pointerId===Ot.id&&Ta(!0)},Oa=function(){Ta(!1)},Kb=function(x){x.key==="Escape"&&Ot&&(x.preventDefault(),Oa())},ze=vM(),Kr={},Ba={},Qr={},_r=null,oe=null,Je=function(x){return{moveX:x.__drawn__?.moveX??0,moveY:x.__drawn__?.moveY??0}},fn=function(){var x={};return i.querySelectorAll(D).forEach(function(O){var z=H({target:O}),P=z&&$.includes(z.component)?W(z):null;P===null||x[P]||(x[P]=Fa(O,z.component))}),x},Da=function(x,O){var z=Je(x),P=O.moveX-z.moveX,I=O.moveY-z.moveY;if(P||I){var Y=H({target:x});Y&&Vi(x,Y),x.setAttribute("transform",`translate(${P}, ${I}) ${x.getAttribute("transform")||""}`.trim())}x.__drawn__=Object.assign({},x.__drawn__,{moveX:O.moveX,moveY:O.moveY})},sd=function(x,O){var z=H({target:x},!0);return z?(z.position=Je(x),z.action=O,z):null},fc=function(x,O){x.forEach(function(z){var P=W(z);n.server?Kr[P]=z.position:Ba[P]=z.position}),x.length&&(y.select===!0&&(O&&x.length===1&&N([x[0]]),vt(),X()),x.length===1?K("drag",x[0]):K("moves",{action:x[0].action,moves:x}))},ld=function(x){return Object.keys(x).filter(function(O){return Qr[O]&&!Ma(Je(x[O]),Qr[O])})},Ki=function(x){if(!(!oe||y.drag!==!0)){var O=ld(x||fn()).length>0;oe.select(".geneviewer-history").property("hidden",!ze.canUndo()&&!ze.canRedo()&&!O),oe.select(".geneviewer-undo").property("disabled",!ze.canUndo()),oe.select(".geneviewer-redo").property("disabled",!ze.canRedo()),oe.select(".geneviewer-reset").property("disabled",!O)}},cd=function(x,O,z){var P=fn(),I=[];x.forEach(function(Y){var nt=P[Y.key];if(nt){Da(nt,Y.position);var wt=sd(nt,O);wt&&I.push(wt)}}),clearTimeout(_r),_r=null,Ki(P),fc(I,z)},Qi=function(x){var O=ze.next(x);if(!(!O||$e)){var z=fn(),P=O.items.every(function(I){return z[I.key]&&Ma(Je(z[I.key]),x?I.after:I.before)});if(!P)return ze.clear(),Ki(z);cd(ze.take(x),x?"undo":"redo",O.items.length===1)}},Qb=function(){if(!$e){var x=fn(),O=ld(x).map(function(z){return{key:z,before:Je(x[z]),after:Qr[z]}});O.length&&(ze.record(O,!1),cd(O.map(function(z){return{key:z.key,position:z.after}}),"reset",!1))}},ud=function(){var x=fn();if(Object.keys(x).forEach(function(P){Qr[P]||(Qr[P]=Je(x[P]))}),Object.keys(Kr).forEach(function(P){(!x[P]||Ma(Je(x[P]),Kr[P]))&&delete Kr[P]}),_r===null&&!Object.keys(Kr).length){var O=ze.expected(),z=Object.keys(O).some(function(P){return!x[P]||!Ma(Je(x[P]),O[P])});z&&ze.clear()}Ki(x)},Jb=function(){var x=fn();Object.keys(Ba).forEach(function(O){x[O]&&Da(x[O],Ba[O])})},t2=function(x,O){var z=fn(),P=T.map(function(I){return W(I)}).filter(function(I){return I!==null&&z[I]}).map(function(I){var Y=Je(z[I]),nt={moveX:Math.round(Y.moveX+x),moveY:Math.round(Y.moveY+O)};return Da(z[I],nt),lc(H({target:z[I]}),nt),{key:I,before:Y,after:nt}});return P.length?(ze.record(P,!0),Ki(),clearTimeout(_r),_r=setTimeout(function(){_r=null;var I=fn();fc(P.map(function(Y){return I[Y.key]&&sd(I[Y.key],"nudge")}).filter(Boolean),!1)},300),!0):!1},fd=function(x){if(!(y.drag!==!0||!i.isConnected)){var O=x.key.toLowerCase();if((x.metaKey||x.ctrlKey)&&(O==="z"||O==="y")){x.preventDefault(),Qi(!(O==="y"||x.shiftKey));return}var z={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]}[x.key];if(!(!z||x.metaKey||x.ctrlKey||y.select!==!0||$e)&&!(x.target!==document.body&&!i.contains(x.target))){var P=x.shiftKey?10:1;t2(z[0]*P,z[1]*P)&&x.preventDefault()}}},$a=function(){Ca=fd},hd=function(x){if(performance.now()<ne&&!x.target.closest(".geneviewer-toolbar")){ne=0,x.preventDefault(),x.stopPropagation();return}var O=x.target.closest&&x.target.closest(".geneviewer-move-overlay [data-part]")?.__home__,z=y.select===!0||y.dblclick===!0||y.click===!0&&y.legendClick!==!1;O&&!z&&O.isConnected&&(x.stopPropagation(),O.dispatchEvent(new MouseEvent("click",{bubbles:!1,detail:x.detail})),Zr())};i.addEventListener("click",hd,!0),i.addEventListener("click",Zr),i.addEventListener("pointerdown",$a,!0),i.addEventListener("focusin",$a);var e2=function(x){return/(^|\s)fa-/.test(x)?x:"fa-solid fa-"+x},n2=function(){oe=null;var x=ut({show:"hover",position:"topright",buttons:yM,icons:{}},"toolbarOptions",p,d),O=[].concat(x.buttons),z=function(_t){return O.includes(_t)},P=y.drag===!0&&["undo","redo","reset"].some(z),I=m&&z("save"),Y=!!Nt&&z("zoom");if(!(x.show==="never"||!P&&!I&&!Y)){var nt=function(_t){return x.icons[_t]!=null?e2(x.icons[_t]):null};oe=R.select(i).append("div").attr("class",`geneviewer-toolbar geneviewer-toolbar-${x.position}`+(x.show==="always"?" geneviewer-toolbar-always":"")).attr("id",`geneviewer-toolbar-${S}`).attr("role","toolbar").attr("aria-label","Chart");var wt=function(_t){return typeof _t=="number"?_t+"px":_t};[["color","--gv-toolbar-color"],["hoverColor","--gv-toolbar-hover"],["tooltipBackground","--gv-toolbar-tip-background"],["tooltipColor","--gv-toolbar-tip-color"],["tooltipBorder","--gv-toolbar-tip-border"],["tooltipRadius","--gv-toolbar-tip-radius"],["tooltipShadow","--gv-toolbar-tip-shadow"],["fontFamily","--gv-toolbar-font"],["size","--gv-toolbar-size"]].forEach(function(_t){x[_t[0]]!=null&&oe.style(_t[1],wt(x[_t[0]]))});var kt=function(_t,jt){var ae=_t.append("button").attr("type","button").attr("class","geneviewer-toolbar-button geneviewer-"+jt.name).attr("aria-label",jt.label).attr("aria-keyshortcuts",jt.shortcuts).property("disabled",!!jt.disabled).on("click",jt.onClick);nt(jt.name)?ae.append("i").attr("class",nt(jt.name)).attr("aria-hidden","true"):ac(ae.append("span").attr("class","geneviewer-icon").attr("aria-hidden","true"),jt.icon);var Fn=ae.append("span").attr("class","geneviewer-toolbar-tip").attr("aria-hidden","true");Fn.append("span").text(jt.label),jt.kbd&&Fn.append("kbd").text(jt.kbd)};if(P){var Pt=oe.append("div").attr("class","geneviewer-history").attr("role","group").attr("aria-label","Positions").property("hidden",!0);[{name:"undo",label:"Undo",icon:"rotate-left",kbd:qb?"⌘Z":"Ctrl+Z",shortcuts:"Control+Z Meta+Z",onClick:function(){Qi(!0)}},{name:"redo",label:"Redo",icon:"rotate-right",kbd:qb?"⇧⌘Z":"Ctrl+Y",shortcuts:"Control+Shift+Z Meta+Shift+Z Control+Y",onClick:function(){Qi(!1)}},{name:"reset",label:"Reset positions",icon:"house",kbd:null,shortcuts:null,onClick:Qb}].filter(function(_t){return z(_t.name)}).forEach(function(_t){kt(Pt,Object.assign({disabled:!0},_t))}),(I||Y)&&Pt.append("span").attr("class","geneviewer-toolbar-divider")}if(Y){var Dt=oe.append("div").attr("class","geneviewer-history geneviewer-zoom-buttons").attr("role","group").attr("aria-label","Zoom").property("hidden",Yt===null);kt(Dt,{name:"zoom",label:"Reset zoom",icon:"magnifying-glass-minus",kbd:null,shortcuts:null,onClick:vd}),I&&Dt.append("span").attr("class","geneviewer-toolbar-divider")}I&&Lb(S,i,oe.node(),nt("save"),n.saveAs)}},Kn=null,dd=function(x){Kn!==x&&(Kn&&Kn.classList.remove("geneviewer-hover"),Kn=x,Kn&&Kn.classList.add("geneviewer-hover"),i.classList.toggle("geneviewer-hover-below",!!Kn))},hc=function(x){var O=U(x);dd(O===x.target?null:O.closest("[data-component]"))},dc=function(){dd(null)},pc=function(x){if(x.key==="Escape"){$e?Zn():Ot?Oa():Mt(null);return}x.key==="Enter"&&y.dblclick===!0&&x.target.matches(D)&&(x.preventDefault(),Mn(x))},pd=function(){Zn();var x=y.click===!0;i.removeEventListener("click",Zt),i.removeEventListener("dblclick",Mn),i.removeEventListener("keydown",pc),i.removeEventListener("pointerdown",uc),Ta(!1),i.removeEventListener("mousemove",hc),i.removeEventListener("mouseleave",dc),Kn=null,i.classList.remove("geneviewer-hover-below");var O=(x||y.select===!0||y.dblclick===!0)&&y.highlight===!0;O&&(i.addEventListener("mousemove",hc),i.addEventListener("mouseleave",dc)),(x||y.select===!0)&&i.addEventListener("click",Zt),y.dblclick===!0&&i.addEventListener("dblclick",Mn),(y.select===!0||y.drag===!0)&&i.addEventListener("keydown",pc),(y.drag===!0||y.select===!0)&&i.addEventListener("pointerdown",uc),i.classList.toggle("geneviewer-draggable",y.drag===!0),y.select!==!0&&T.length&&(N([]),X()),i.classList.toggle("geneviewer-selectable",y.select===!0),i.classList.toggle("geneviewer-highlight",O),vt(!0)},Nt=null,Yt=null,gd=null,md=null,tn=[],en=[0,1],za=null,nn=null,Rt=null,Qn=null,Ji=null,Ne=function(){return Nt?.mode==="absolute"?"absolute":"relative"},r2=function(){var x=Nt?.range;return!Array.isArray(x)||x.length!==2?null:(x=x.slice().sort(function(O,z){return O-z}),Ne()==="relative"&&x[0]<=0&&x[1]>=1?null:x)},yd=function(x){return(x-en[0])/(en[1]-en[0])},i2=function(x){return en[0]+x*(en[1]-en[0])},gc=function(){return Yt?Ne()==="absolute"?Yt.map(yd):Yt.slice():[0,1]},bd=function(){var x=Nt?.min;return x==null?.01:Math.min(1,Ne()==="absolute"?x/(en[1]-en[0]):x)},mc=function(x){return Ne()==="absolute"?Math.round(x):Math.round(x*1e4)/1e4},o2=function(x){Yt=x[0]<=1e-6&&x[1]>=1-1e-6?null:x.map(function(O){return mc(Ne()==="absolute"?i2(O):O)})},a2=function(){var x=Ne()==="absolute",O=Yt||(x?en:[0,1]);return{mode:Ne(),start:mc(O[0]),end:mc(O[1]),zoomed:Yt!==null,range:Yt?Yt.slice():null,clusters:tn.map(function(z){var P=z.chart,I=[P.xScale.invert(0),P.xScale.invert(P.width-P.margin.left-P.margin.right)].sort(function(Y,nt){return Y-nt});return{cluster:z.key,start:Math.round(I[0]),end:Math.round(I[1])}})}},Na=null,to=function(x){if(clearTimeout(Ji),Ji=null,!(y.zoom!==!0||!Nt)){var O=a2(),z=JSON.stringify([O.mode,O.range,O.clusters]);(x==="render"||x==="set")&&z===Na||(Na=z,O.action=x,K("zoom",O))}},yc=function(){if(nn){var x=gc(),O=function(Y){return Y*100+"%"};nn.querySelector('[data-side="start"]').style.width=O(x[0]),nn.querySelector('[data-side="end"]').style.left=O(x[1]);var z=nn.querySelector('[data-zoom-part="window"]');z.style.left=O(x[0]),z.style.width=O(x[1]-x[0]);var P=Yt||(Ne()==="absolute"?en:[0,1]),I=function(Y){return Ne()==="absolute"?R.format(",.0f")(Y):R.format(".0%")(Y)};["start","end"].forEach(function(Y,nt){var wt=nn.querySelector('[data-zoom-part="'+Y+'"]');wt.style.left=O(x[nt]),wt.setAttribute("aria-valuenow",Math.round(x[nt]*100)),wt.setAttribute("aria-valuetext",I(P[nt]))}),z.setAttribute("aria-valuenow",Math.round(x[0]*100)),z.setAttribute("aria-valuetext",I(P[0])+" to "+I(P[1])),oe?.select(".geneviewer-zoom-buttons").property("hidden",Yt===null)}},bc=function(x){if(yc(),x)return Qn&&cancelAnimationFrame(Qn),Qn=null,xc();Qn||(Qn=requestAnimationFrame(function(){Qn=null,xc()}))},Ra=function(x,O){o2(x),Rt&&Nt?.update==="release"?yc():bc(O)},vd=function(){Yt!==null&&(Ra([0,1],!0),to("reset"))},s2=function(x){if(x.stopPropagation(),!(x.button!==0||Rt)){x.preventDefault();var O=x.currentTarget.getBoundingClientRect(),z=(x.clientX-O.left)/O.width,P=x.target.closest("[data-zoom-part]")?.getAttribute("data-zoom-part")??"track",I=gc();if(Rt={id:x.pointerId,left:O.left,width:O.width,at:z,moved:!1,stopListening:id({pointermove:l2,pointerup:vc,pointercancel:vc,blur:vc})},P==="track"){var Y=(I[1]-I[0])/2,nt=Math.max(Y,Math.min(1-Y,z));I=[nt-Y,nt+Y],Rt.moved=!0,Ra(I),P="window"}Rt.part=P,Rt.shares=I}},l2=function(x){if(!(!Rt||x.pointerId!==Rt.id)){x.preventDefault();var O=(x.clientX-Rt.left)/Rt.width-Rt.at,z=Rt.shares,P=bd(),I=Rt.part==="start"?[Math.max(0,Math.min(z[1]-P,z[0]+O)),z[1]]:Rt.part==="end"?[z[0],Math.min(1,Math.max(z[0]+P,z[1]+O))]:(function(){var Y=Math.max(-z[0],Math.min(1-z[1],O));return[z[0]+Y,z[1]+Y]})();Rt.moved=!0,Ra(I)}},vc=function(x){if(!(!Rt||x.pointerId!==void 0&&x.pointerId!==Rt.id)){var O=Rt;Rt=null,O.stopListening(),O.moved&&(bc(!0),to("drag"))}},c2=function(x){var O=x.target.getAttribute&&x.target.getAttribute("data-zoom-part");if(O){var z=gc(),P=bd(),I={ArrowLeft:-1,ArrowDown:-1,ArrowRight:1,ArrowUp:1}[x.key],Y=null;if(I){var nt=I*(x.shiftKey?.1:.01);Y=O==="start"?[Math.max(0,Math.min(z[1]-P,z[0]+nt)),z[1]]:O==="end"?[z[0],Math.min(1,Math.max(z[0]+P,z[1]+nt))]:[z[0]+Math.max(-z[0],Math.min(1-z[1],nt)),z[1]+Math.max(-z[0],Math.min(1-z[1],nt))]}else x.key==="Home"?Y=O==="end"?[z[0],Math.min(1,z[0]+P)]:O==="start"?[0,z[1]]:[0,z[1]-z[0]]:x.key==="End"&&(Y=O==="start"?[Math.max(0,z[1]-P),z[1]]:O==="end"?[z[0],1]:[1-(z[1]-z[0]),1]);Y&&(x.preventDefault(),x.stopPropagation(),Ra(Y),clearTimeout(Ji),Ji=setTimeout(function(){to("keyboard")},300))}},wc=function(x,O){Object.keys(O||{}).forEach(function(z){z.includes("-")?x.style.setProperty(z,O[z]):x.style[z]=O[z]})},u2=function(x){if(nn=null,!(!Nt||!tn.length)){var O=Ne()==="absolute";en=O?[R.min(tn,function(Ut){return Ut.chart.minStart}),R.max(tn,function(Ut){return Ut.chart.maxEnd})]:[0,1];var z=tn[0].chart,P=R.select(i).append("div").attr("class","geneviewer-zoom-row").style("height",x+"px"),I=i.getBoundingClientRect(),Y=I.width/i.offsetWidth||1,nt=z.svg.node().getBoundingClientRect(),wt=nt.width/z.width||1,kt=z.width-z.margin.left-z.margin.right,Pt=P.node().getBoundingClientRect(),Dt=P.append("div").attr("class","geneviewer-zoom-slider").attr("role","group").attr("aria-label","Zoom").style("left",(nt.left+z.margin.left*wt-Pt.left)/Y+"px").style("width",kt*wt/Y+"px").on("pointerdown",s2).on("click",function(Ut){Ut.stopPropagation()}).on("dblclick",function(Ut){Ut.stopPropagation(),vd()}).on("keydown",c2);if(wc(Dt.node(),Nt.style),Nt.overview!==!1){var _t=Dt.append("svg").attr("class","geneviewer-zoom-overview").attr("viewBox","0 0 1000 "+x).attr("preserveAspectRatio","none").attr("aria-hidden","true"),jt=(x-6)/tn.length,ae=Math.max(1,Math.min(jt*.7,8));tn.forEach(function(Ut,hn){var Tn=Ut.chart,Sr=Tn.width-Tn.margin.left-Tn.margin.right,no=function(rn){if(O)return yd(rn);var Jn=Tn.fullScale(rn);return Jn===null?null:Jn/Sr},Sc=function(rn){return Nt.color?Nt.color:Ut.group&&Tn.genesColorScale?Tn.genesColorScale(rn[Ut.group]):"#9e9e9e"};(Tn.data||[]).forEach(function(rn){var Jn=no(rn.start),ro=no(rn.end);Jn===null||ro===null||_t.append("rect").attr("x",Math.min(Jn,ro)*1e3).attr("width",Math.max(Math.abs(ro-Jn)*1e3,1)).attr("y",3+jt*hn+(jt-ae)/2).attr("height",ae).attr("fill",Sc(rn))})})}Dt.append("div").attr("class","geneviewer-zoom-shade").attr("data-side","start"),Dt.append("div").attr("class","geneviewer-zoom-shade").attr("data-side","end");var Fn=Dt.append("div").attr("class","geneviewer-zoom-window").attr("data-zoom-part","window");wc(Fn.node(),Nt.windowStyle),[Fn].concat(["start","end"].map(function(Ut){var hn=Dt.append("div").attr("class","geneviewer-zoom-handle").attr("data-zoom-part",Ut);return wc(hn.node(),Nt.handleStyle),hn})).forEach(function(Ut){var hn=Ut.attr("data-zoom-part");Ut.attr("tabindex",0).attr("role","slider").attr("aria-label",hn==="window"?"Zoom window":hn==="start"?"Zoom start":"Zoom end").attr("aria-valuemin",0).attr("aria-valuemax",100)}),nn=Dt.node(),yc()}},f2=function(){if(tn.some(function(O){return O.chart.zoom})){var x="http://www.w3.org/2000/svg";i.querySelectorAll("svg.GeneLink").forEach(function(O,z){var P=O.getBoundingClientRect(),I=P.width/(+O.getAttribute("width")||P.width)||1,Y="geneviewer-zoom-links-"+S+"-"+z,nt=document.createElementNS(x,"clipPath");nt.setAttribute("id",Y),tn.forEach(function(Pt){var Dt=Pt.chart,_t=Dt.svg.node().getBoundingClientRect(),jt=_t.width/Dt.width||1,ae=document.createElementNS(x,"rect");ae.setAttribute("x",(_t.left+Dt.margin.left*jt-P.left)/I),ae.setAttribute("y",0),ae.setAttribute("width",(Dt.width-Dt.margin.left-Dt.margin.right)*jt/I),ae.setAttribute("height",O.getAttribute("height")),nt.appendChild(ae)});var wt=document.createElementNS(x,"defs");wt.appendChild(nt);var kt=document.createElementNS(x,"g");kt.setAttribute("clip-path","url(#"+Y+")"),Array.from(O.childNodes).forEach(function(Pt){kt.appendChild(Pt)}),O.appendChild(wt),O.appendChild(kt)})}},h2=function(x){C||!Nt||(Yt=Array.isArray(x)&&x.length===2?x.slice().sort(function(O,z){return O-z}):null,Yt&&Ne()==="relative"&&Yt[0]<=0&&Yt[1]>=1&&(Yt=null),bc(!0),to("set"))},wd=function(){Zn(),tn=[],za=null;var x=q?Array.from(i.querySelectorAll(".legend.unselected"),function(se){return se.__data__}):[];if(q=!0,R.select(i).selectAll("*").remove(),F.forEach(function(se){i.style[se]=""}),n.server){var O=typeof g.width=="number"?g.width+"px":g.width,z=typeof O=="string"&&/^\d+(\.\d+)?px$/.test(O);z?(i.style.width=O,v=!0):v&&(i.style.width=w,v=!1);var P=i.parentElement&&getComputedStyle(i.parentElement),I=P&&/^(inline-)?flex$/.test(P.display)&&/^row/.test(P.flexDirection);z&&I?(i.style.flex="0 0 auto",_=!0):_&&(i.style.flex=b,_=!1)}i.style.height="100%",i.style.position="relative",i.style.boxSizing="border-box";var Y=ut({style:{}},"chartOptions",{style:s},d).style;F=Object.keys(Y);for(var nt in Y)i.style[nt]=Y[nt];var wt=0;if(h?.show){var kt=R.select(i).append("div").attr("id",`geneviewer-title-container-${S}`).classed("geneviewer-container",!0),Pt=(h.title&&h.subtitle?50:40)*Gn(d),Dt=ut({height:Pt},"titleOptions",h,d).height;wt=Le(Dt,i.clientHeight);var _t={...h,width:i.clientWidth,height:wt},jt=Vl(`#geneviewer-title-container-${S}`,"svg-container","titleOptions",_t,d).title(_t.title,_t.subtitle,_t.show??!1,_t)}var ae=f?.show===!1?0:Le(f?.height,i.clientHeight);if(f?.group!==null&&f?.show){R.select(i).append("div").attr("id",`geneviewer-legend-container-${S}`).classed("geneviewer-container",!0);var Fn=Array.isArray(l)&&l.length?Ih(l,d):null;za=Fn&&Fn.colorBarOptions.position==="legend"?Fn:null;var Ut={...f,width:i.clientWidth,height:Le(f.height,i.clientHeight),editable:y.select===!0||y.dblclick===!0||y.click===!0&&y.legendClick!==!1};Vl(`#geneviewer-legend-container-${S}`,"svg-container","legendOptions",Ut,d).legendData(c).legend(Ut.group??!1,Ut.show??!1,i.id,Ut,za);var hn=R.select(`#geneviewer-legend-container-${S}`).node(),Tn=hn.getBoundingClientRect();ae=Tn.height}R.select(i).append("div").attr("id",`geneviewer-graph-container-${S}`).style("flex-direction",a.direction).style("position","relative").classed("geneviewer-container",!0);var Sr=Object.keys(u),no=Nt?Nt.height??24:0,Sc=Nt?no+8:0,rn=Nt&&Yt?{from:Yt[0],to:Yt[1],mode:Ne()}:null,Jn=(Array.isArray(l)?l:[]).map(se=>({data:jr(se.data),options:se.options??{}}));Sr.forEach(function(se){var me=u[se],Ia=me.container,g2=me.cluster,m2=jr(u[se].data),_d=me.scale,La=me.clusterTitle,qa=me.footer,io=me.clusterLabel,kc=me.labels,Sd=me.sequence,Ya=me.genes,Ac=me.transcript,kd=me.coordinates,Ad=me.scaleBar,y2=me.annotations,Ed=me.trackMouse,Md=me.tooltip,on=JSON.parse(JSON.stringify(Ia));if(on.height=Le(on.height,i.clientHeight),on.height-=wt/Sr.length,on.height-=ae?ae/Sr.length:0,on.height-=Sc/Sr.length,typeof Ia.height=="string"&&Ia.height.endsWith("%")){var b2=(parseFloat(Y.paddingTop)||0)+(parseFloat(Y.paddingBottom)||0);on.height-=b2/Sr.length}on.width=Le(on.width,i.clientWidth),io?.show&&(on.margin={...on.margin,...Wy(Ia,io,d)});var Ua=Vl(`#geneviewer-graph-container-${S}`,"svg-container","containerOptions",on,d).cluster(g2).title(La?.title,La?.subtitle,La?.show??!1,La,"clusterTitleOptions").footer(qa?.title,qa?.subtitle,qa?.show??!1,qa).clusterLabel(io?.title,io?.show??!1,io).geneData(c,m2).scale(rn?Object.assign({},_d,{zoom:rn}):_d).sequence(Sd?.show??!1,Sd).genes(Ya?.group,Ya?.show??!1,Ya).transcript(Ac?.group,Ac?.show??!1,Ac);Ua.svg.attr("data-cluster",se),Jn.forEach(Cd=>{Ua.links(Ky(Cd.data,se),se,Cd.options)}),Ua.coordinates(kd?.show??!1,kd).labels(kc?.label,kc?.show??!1,kc).scaleBar(Ad?.show??!1,Ad).addAnnotations(y2).trackMouse(Ed?.show??!1,Ed).tooltip(Md?.show??!1,Md).clipZoom(),tn.push({key:se,chart:Ua,group:Ya?.group})}),u2(no);var ro=ut({position:"bottom"},"legendOptions",f,d).position;ro=="bottom"&&f?.show&&f?.group!==null&&i.appendChild(hn),n2(),i.querySelectorAll(".legend").forEach(function(se){x.includes(se.__data__)&&se.dispatchEvent(new MouseEvent("click",{bubbles:!1}))})},xd=function(){if(!l||l.length===0)return;let x=R.select(`#geneviewer-graph-container-${S}`);Zy(x,l,d),Qy(x,l,d,za!==null),f2()},d2=function(x){for(var O=[],z=i.parentElement;z;z=z.parentElement)(z.scrollTop||z.scrollLeft)&&O.push([z,z.scrollTop,z.scrollLeft]);var P=document.scrollingElement;P&&!O.some(function(I){return I[0]===P})&&O.push([P,P.scrollTop,P.scrollLeft]);try{x()}finally{O.forEach(function(I){I[0].scrollTop!==I[1]&&(I[0].scrollTop=I[1]),I[0].scrollLeft!==I[2]&&(I[0].scrollLeft=I[2])})}},xc=function(){var x=nn&&nn.contains(document.activeElement)?document.activeElement.getAttribute("data-zoom-part"):null;d2(function(){wd(),xd(),ie(),Jb(),pd(),ud()}),x&&nn&&nn.querySelector('[data-zoom-part="'+x+'"]')?.focus({preventScroll:!0})},p2=function(x){if(x.data)return jr(x.data);var O=x.dataColumns??[],z=[];return Object.values(x.series??{}).forEach(function(P){jr(P.data).forEach(function(I){var Y={};O.forEach(function(nt){Y[nt]=I[nt]}),z.push(Y)})}),z.sort(function(P,I){return P.rowID-I.rowID})},Pa=function(x){var O=p2(x),z=JSON.stringify([O,x.group,x.cluster,x.legend?.group]);if($e&&z===L&&x.events?.drag===!0){Zi=x;return}Zi=null,Zn(),Nt=x.zoom&&x.zoom.show!==!1?x.zoom:null;var P=Nt?JSON.stringify([Nt.range??null,Ne()]):null,I=x.events?.renderId??null,Y=I!==null&&I!==md;if(md=I,(z!==L||P!==gd||Y)&&(Yt=r2(),Na=null),Nt||(Na=null),gd=P,L!==null&&z!==L&&(q=!1,T.length&&(N([]),X()),ze.clear(),Kr={},Qr={}),Ba={},L=z,a=x.graphContainer,s=x.style,c=O,l=x.links,u=x.series,m=x.saveButton,p=x.toolbar??{},h=x.title,f=x.legend,d=x.theme??{},y=x.events??{},g=x.size??{},wd(),xd(),ie(),pd(),ud(),to("render"),y.rendered===!0){var nt={id:y.renderId??i.id+"-render-"+ ++pM,chartId:i.id,width:i.clientWidth,height:i.clientHeight};K("rendered",nt)}},Cn=null,_c=function(x){x&&x.version!==void 0?(Cn=structuredClone(x),Pa(oc(Cn))):(Cn=null,Pa(x))},eo={update:function(x){C||(Cn!==null?(Cn=nd(Cn,x),Pa(oc(Cn))):_c(x))},setSpec:function(x){if(!C){if(!x||x.version===void 0)throw new Error("setSpec() needs a spec with a version");_c(x)}},getSpec:function(){return Cn===null?null:structuredClone(Cn)},resize:function(){C||xc()},on:function(x,O){if(!bM.includes(x))throw new Error("Unknown event: "+x);return(k[x]=k[x]||[]).push(O),function(){eo.off(x,O)}},off:function(x,O){var z=k[x]||[],P=z.indexOf(O);P>=0&&z.splice(P,1)},zoomTo:h2,select:function(x){if(!C){if(y.select!==!0){qe("chart.select() needs events: { select: true }; nothing was selected.");return}Tt(St(x==null?[]:Array.isArray(x)?x:[x]),"replace")}},getSelection:function(){return ot()},undo:function(){C||Qi(!0)},redo:function(){C||Qi(!1)},download:function(x,O){if(x!=="svg"&&x!=="png")return Promise.reject(new Error('download() needs the format "svg" or "png"'));var z=O??"graph."+x,P=n.saveAs||rd;return Promise.resolve().then(function(){return x==="svg"?new Blob([eo.toSVG()],{type:"image/svg+xml;charset=utf-8"}):eo.toPNG()}).then(function(I){return P(I,z)}).then(function(){})},toSVG:function(){return Aa(i,oe?oe.node():null)},toPNG:function(){return sc(i,oe?oe.node():null)},destroy:function(){C||(C=!0,Zi=null,Zn(),Ta(!1),Rt&&Rt.stopListening(),Rt=null,clearTimeout(_r),clearTimeout(Ji),Qn&&cancelAnimationFrame(Qn),Ca===fd&&(Ca=null),k={},[["click",hd,!0],["click",Zr],["pointerdown",$a,!0],["focusin",$a],["click",Zt],["dblclick",Mn],["keydown",pc],["pointerdown",uc],["mousemove",hc],["mouseleave",dc]].forEach(function(x){i.removeEventListener(x[0],x[1],x[2])}),R.select(i).on("mouseleave",null).selectAll("*").remove(),F.forEach(function(x){i.style[x]=""}),i.classList.remove("geneviewer-draggable","geneviewer-selectable","geneviewer-highlight","geneviewer-dragging","geneviewer-hover-below"),o&&i.classList.remove("geneviewer"))}};return Object.keys(n.on||{}).forEach(function(x){eo.on(x,n.on[x])}),_c(e),eo}export{sc as chartToPNG,Aa as chartToSVG,oc as compile,wM as newChart,Sa as palettes,tc as themes,dM as version};
|
|
414
|
+
`;function Ib(t){if(!t||!t.head||t.querySelector("style[data-geneviewer]"))return;let e=t.createElement("style");e.setAttribute("data-geneviewer",""),e.textContent=Pb,t.head.insertBefore(e,t.head.firstChild)}var fM={download:{width:512,height:512,path:"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"},"rotate-left":{width:512,height:512,path:"M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z"},"rotate-right":{width:512,height:512,path:"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z"},house:{width:576,height:512,path:"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"},"magnifying-glass-minus":{width:512,height:512,path:"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z"}};function ac(t,e){let n=fM[e],r=t.append("svg").attr("class","geneviewer-icon-svg").attr("viewBox",`0 0 ${n.width} ${n.height}`).attr("aria-hidden","true").attr("focusable","false").style("width",`${n.width/n.height}em`);return r.append("path").attr("d",n.path),r}var hM=["fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-opacity","stroke-dasharray","stroke-linecap","stroke-linejoin","font-family","font-size","font-weight","font-style","text-anchor","dominant-baseline","visibility"],dM={opacity:"1"};function Aa(t,e=null){let n="http://www.w3.org/2000/svg",r=t.getBoundingClientRect(),i=Math.ceil(r.width),o=t.querySelector(".geneviewer-zoom-row"),a=null;if(o){let p=o.getBoundingClientRect(),g=getComputedStyle(o),y=p.top-r.top-(parseFloat(g.marginTop)||0),w=p.bottom-r.top+(parseFloat(g.marginBottom)||0);w>y&&(a={top:y,bottom:w,height:w-y})}let s=p=>a&&p>=a.bottom-.5?a.height:0,c=Math.ceil(r.height-(a?a.height:0)),l=document.createElementNS(n,"svg");l.setAttribute("xmlns",n),l.setAttribute("width",i),l.setAttribute("height",c),l.setAttribute("viewBox",`0 0 ${i} ${c}`);let u=(p,g,y,w,b,v)=>{if(!v||v==="transparent"||v==="rgba(0, 0, 0, 0)")return;let _=document.createElementNS(n,"rect");_.setAttribute("x",g),_.setAttribute("y",y),_.setAttribute("width",w),_.setAttribute("height",b),_.setAttribute("fill",v),_.setAttribute("shape-rendering","crispEdges"),p.appendChild(_)};u(l,0,0,i,c,getComputedStyle(t).backgroundColor);let h=p=>p.replace(/url\((["']?)[^#)]*#([^)"']+)\1\)/g,"url(#$2)"),f=(p,g,y)=>{let w=getComputedStyle(p);return hM.forEach(b=>{let v=w.getPropertyValue(b);v&&(!y||y.getPropertyValue(b)!==v)&&g.style.setProperty(b,h(v))}),Object.entries(dM).forEach(([b,v])=>{let _=w.getPropertyValue(b);_&&_!==v&&g.style.setProperty(b,_)}),w},d=p=>parseInt(getComputedStyle(p).zIndex,10)||0;return Array.from(t.querySelectorAll("svg")).filter(p=>!p.parentElement.closest("svg")&&!(e&&e.contains(p))&&!p.closest(".geneviewer-zoom-slider")).map((p,g)=>({svg:p,order:g,z:d(p)})).sort((p,g)=>p.z-g.z||p.order-g.order).map(p=>p.svg).forEach(p=>{let g=getComputedStyle(p);if(g.display==="none"||g.visibility==="hidden")return;let y=p.getBoundingClientRect();if(y.width===0||y.height===0)return;let w=y.left-r.left,b=y.top-r.top,v=b-s(b);u(l,w,v,y.width,y.height,g.backgroundColor);let _=p.cloneNode(!0);_.removeAttribute("style"),_.removeAttribute("class"),_.setAttribute("x",w),_.setAttribute("y",v),_.setAttribute("width",y.width),_.setAttribute("height",y.height);let S=p.querySelectorAll("*"),k=_.querySelectorAll("*"),C=new Map([[p,f(p,_,null)]]);S.forEach((F,A)=>{let E=k[A];if(getComputedStyle(F).display==="none"&&!F.closest("defs")){E.setAttribute("display","none");return}F.closest("defs")||(E.removeAttribute("class"),C.set(F,f(F,E,C.get(F.parentNode))))}),a&&b<a.bottom-.5&&Array.from(p.children).forEach((F,A)=>{if(F.tagName.toLowerCase()==="defs")return;let E=F.getBoundingClientRect().top-r.top,D=s(E);if(!D)return;let z=_.children[A];z.setAttribute("transform",`translate(0, ${-D}) ${z.getAttribute("transform")||""}`.trim())}),_.querySelectorAll("[display='none']").forEach(F=>F.remove()),l.appendChild(_)}),`<?xml version="1.0" encoding="UTF-8"?>
|
|
415
|
+
`+new XMLSerializer().serializeToString(l)}function sc(t,e=null){let n=new Blob([Aa(t,e)],{type:"image/svg+xml;charset=utf-8"}),r=URL.createObjectURL(n);return new Promise((i,o)=>{let a=new Image,s=c=>{URL.revokeObjectURL(r),o(c)};a.onerror=()=>s(new Error("Could not render the chart SVG as PNG.")),a.onload=()=>{try{let c=window.devicePixelRatio||1,l=document.createElement("canvas");l.width=Math.ceil(a.naturalWidth*c),l.height=Math.ceil(a.naturalHeight*c),l.getContext("2d").drawImage(a,0,0,l.width,l.height),l.toBlob(u=>{URL.revokeObjectURL(r),u?i(u):o(new Error("Could not encode the chart as PNG."))},"image/png")}catch(c){s(c)}},a.src=r})}function rd(t,e){let n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=e,r.style.display="none",document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),4e4)}function Lb(t,e,n,r=null,i=rd){var o=R.select(n).append("div").attr("id",`saveMenu-${t}`).style("position","relative").style("z-index","1000").style("display","block"),a=o.append(r?"i":"span").attr("class",(r?r+" ":"")+"geneviewer-save-icon").attr("id",`saveIcon-${t}`).attr("tabindex","0").attr("role","button").attr("aria-label","Save chart").attr("aria-haspopup","menu").style("text-align","right").style("cursor","pointer");r||ac(a,"download");var s=o.append("div").attr("id",`saveIconTooltip-${t}`).attr("class","save-tooltip").attr("role","menu").style("display","none").style("font-size","12px").style("overflow","hidden").style("white-space","nowrap"),c=function(){s.style("display","none")},l=[{label:"Save as SVG",save:function(){var u=Aa(e,n);i(new Blob([u],{type:"image/svg+xml;charset=utf-8"}),"graph.svg")}},{label:"Save as PNG",save:function(){return sc(e,n).then(u=>i(u,"graph.png"))}}];l.forEach(function(u){s.append("div").attr("class","save-option").attr("tabindex","0").attr("role","menuitem").text(u.label).style("padding","5px 8px").style("cursor","pointer").on("click",function(){c(),u.save()}).on("keydown",function(h){(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),this.click())})}),o.on("focusin",function(){s.style("display","block")}).on("focusout",function(u){o.node().contains(u.relatedTarget)||c()}),R.select(e).on("mouseleave",c),o.on("mouseenter",function(){s.style("display","block")}).on("mouseleave",c)}var pM="0.3.3",gM=0,mM=0,Ca=null,yM=function(t){return!t||t.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName)||!!(t.closest&&t.closest('[role="combobox"], [role="listbox"], [role="menu"], [role="dialog"], [role="slider"], [role="tablist"], [role="radiogroup"], [role="spinbutton"]'))};document.addEventListener("keydown",function(t){!Ca||t.defaultPrevented||t.altKey||yM(t.target)||Ca(t)});var qb=/Mac|iPhone|iPad/.test(navigator.platform||navigator.userAgent),Ub=["scale","scaleBar"],Ea=function(t){return Ub.includes(t)},Yb=Ub.map(function(t){return'[data-component="'+t+'"]'}).join(", "),bM=["undo","redo","reset","zoom","save"],vM=["click","dblclick","select","selection","drag","dragmove","moves","zoom","rendered"],Ma=function(t,e){return!!t&&!!e&&Math.abs(t.moveX-e.moveX)<.01&&Math.abs(t.moveY-e.moveY)<.01},id=function(t){return Object.keys(t).forEach(function(e){window.addEventListener(e,t[e],e==="pointermove"?{passive:!1}:void 0)}),function(){Object.keys(t).forEach(function(e){window.removeEventListener(e,t[e])})}},wM=function(){var t=[],e=[],n=function(r){return r.map(function(i){return i.key}).join(`
|
|
416
|
+
`)};return{canUndo:function(){return t.length>0},canRedo:function(){return e.length>0},clear:function(){t=[],e=[]},record:function(r,i){if(r=r.filter(function(s){return s.key!==null&&!Ma(s.before,s.after)}),!!r.length){var o=t[t.length-1],a=performance.now();i&&o&&o.merge&&n(o.items)===n(r)&&a-o.time<1e3?(o.items.forEach(function(s,c){s.after=r[c].after}),o.time=a):(t.push({items:r,merge:i,time:a}),t.length>100&&t.shift()),e=[]}},next:function(r){var i=r?t:e;return i[i.length-1]},take:function(r){var i=(r?t:e).pop();return i.merge=!1,(r?e:t).push(i),i.items.map(function(o){return{key:o.key,position:r?o.before:o.after}})},expected:function(){var r={};return e.forEach(function(i){i.items.forEach(function(o){r[o.key]=o.before})}),t.forEach(function(i){i.items.forEach(function(o){r[o.key]=o.after})}),r}}};function xM(t,e,n){if(typeof t=="string"){var r=document.querySelector(t);if(!r)throw new Error("No element matches "+t);t=r}var i=t;n=n||{},n.injectStyles!==!1&&Ib(i.ownerDocument);var o=!i.classList.contains("geneviewer");i.classList.add("geneviewer");var a,s,c,l,u,h,f,d,m,p,g={},y={},w=i.style.width,b=i.style.flex,v=!1,_=!1,S=i.id?i.id.replace(/[^A-Za-z0-9_-]/g,"_"):"geneviewer-chart-"+ ++mM,k={},C=!1,F=[],A=["genes","transcript","labels","links","legend","coordinates"],E=["genes","labels","coordinates","clusterTitle","clusterFooter","clusterLabel","legend","title","scaleBar","scale"],D=".gene, text.label, text.coordinate, [data-part], "+Yb,z=E.filter(function(x){return!["genes","coordinates"].includes(x)}),M="text.label, [data-part], "+Yb,T=[],B=null,N=function(x){T=x,B=x[x.length-1]??null},L=null,q=!0,U=function(x){var O=x.target;if(!O.classList||!O.classList.contains("geneviewer-svg-content")||typeof x.clientX!="number")return O;var $=document.elementsFromPoint(x.clientX,x.clientY).find(function(P){return P.closest&&P.closest('[data-component="links"]')&&i.contains(P)});return $||O},Z=function(x){var O=/^rgba?\((\d+), (\d+), (\d+)(?:, ([\d.]+))?\)$/.exec(x);return!O||O[4]!==void 0&&O[4]!=="1"?x:"#"+O.slice(1,4).map(function($){return(+$).toString(16).padStart(2,"0")}).join("")},Q=function(x){var O=/^url\("?#([^")]+)"?\)$/.exec(x),$=O&&i.querySelector("#"+CSS.escape(O[1]));return!$||$.children.length!==1||$.firstElementChild.tagName!=="rect"?x:getComputedStyle($.firstElementChild).fill},j=function(x,O){if(Ea(x))return Object.assign({moveX:0,moveY:0},O.__drawn__);O=O.closest(x==="genes"?".gene":x==="legend"?"[data-part]":"text")||O;var $=getComputedStyle(O),P={fill:Z(Q($.fill)),opacity:+$.opacity};return x==="genes"||x==="legend"&&O.matches(".legend-marker")?Object.assign(P,{stroke:Z($.stroke),strokeWidth:parseFloat($.strokeWidth),strokeDasharray:$.strokeDasharray},O.__drawn__):(Object.assign(P,{text:O.__text__??O.textContent,fontSize:parseFloat($.fontSize),fontWeight:$.fontWeight,fontStyle:$.fontStyle,fontFamily:$.fontFamily},O.__drawn__),x==="labels"&&["dx","dy"].forEach(function(I){var Y=O[I].baseVal;Y.numberOfItems&&(P[I]=Y.getItem(0).value)}),P)},H=function(x,O){var $=U(x),P=$.closest&&$.closest("[data-component]");if(!(!P||!i.contains(P))){for(var I=P.getAttribute("data-component"),Y=null,nt=$;A.includes(I)&&nt&&nt!==P.parentNode;nt=nt.parentNode)if(nt.__data__!==void 0){Y=nt.__data__;break}var wt=P.closest("[data-cluster]"),kt={component:I,cluster:wt?wt.getAttribute("data-cluster"):null,data:Y},Pt=$.closest("[data-part]");return Pt&&P.contains(Pt)&&(kt.part=Pt.getAttribute("data-part")),O&&W(kt)!==null&&(kt.style=j(I,Ea(I)?P:I==="legend"?Pt:nt)),kt}},W=function(x){return!x||!E.includes(x.component)?null:Ea(x.component)?[x.component,x.cluster].join("|"):x.component==="legend"?x.data!=null&&["label","marker"].includes(x.part)?JSON.stringify([x.component,x.data,x.part]):null:["genes","labels","coordinates"].includes(x.component)?!x.data||x.data.rowID==null?null:[x.component,x.cluster,x.data.rowID,x.data.end??""].join("|"):x.part?[x.component,x.cluster,x.part].join("|"):null},J=function(x){return JSON.stringify(x.map(W))},K=function(x,O){(k[x]||[]).slice().forEach(function($){$({type:x,detail:O})}),i.dispatchEvent(new CustomEvent("geneviewer:"+x,{bubbles:!0,detail:O}))},ht=function(x,O){return W(x)!==null&&W(x)===W(O)},G=function(x){var O=W(x);return O!==null&&T.some(function($){return W($)===O})},tt=function(x){return x===null?null:structuredClone(x)},ot=function(){return T.map(tt)},X=function(){K("select",tt(B)),K("selection",ot())},vt=function(x){var O=JSON.stringify(T.map(function(Y){return Y.style})),$={};i.querySelectorAll(D).forEach(function(Y){var nt=H({target:Y}),wt=W(nt);if(wt!==null){var kt=G(nt);Y.classList.toggle("geneviewer-selected",kt),y.select===!0&&(Y.setAttribute("tabindex","0"),Y.setAttribute("role","button"),Y.setAttribute("aria-pressed",String(kt)),Y.setAttribute("aria-label",nt.component+": "+(nt.component==="legend"?String(nt.data)+" "+nt.part:nt.data?.name??Y.__text__??Y.textContent))),kt&&!$[wt]&&($[wt]=H({target:Y},!0))}});var P=T.map(function(Y){return $[W(Y)]}).filter(Boolean),I=P.length!==T.length;N(P),(I||x&&T.length&&JSON.stringify(T.map(function(Y){return Y.style}))!==O)&&X()},yt=function(x,O,$){var P=$==="replace"?[]:x.slice();return O.forEach(function(I){if(W(I)!==null){var Y=P.findIndex(function(nt){return W(nt)===W(I)});Y>=0&&$==="toggle"?P.splice(Y,1):Y<0&&P.push(I)}}),P},Tt=function(x,O,$){var P=yt(T,x,O);J(P)!==J(T)&&(N(P),vt(),$||X())},Mt=function(x){Tt(x?[x]:[],"replace")},st=function(x,O){return x===null||typeof x!="object"?x===O:O===null||typeof O!="object"?!1:Object.keys(x).every(function($){return st(x[$],O[$])})},St=function(x){var O=[];i.querySelectorAll(D).forEach(function(P){var I=H({target:P});W(I)!==null&&O.push(I)});var $=[];return x.forEach(function(P){if(!P||typeof P!="object"||typeof P.component!="string")throw new Error("select() needs items with a component, as getSelection() gives them");O.forEach(function(I){var Y=I.component===P.component&&(P.cluster==null||String(P.cluster)===I.cluster)&&(P.part==null||P.part===I.part)&&(P.data===void 0||st(P.data,I.data));Y&&$.push(I)})}),$},ne=0,Zt=function(x){if(performance.now()<ne){x.preventDefault(),x.stopPropagation();return}var O=H(x,!0);if(y.select===!0&&x.detail<2){var $=x.shiftKey||x.metaKey||x.ctrlKey;if($)W(O)!==null&&Tt([O],"toggle");else if(O||x.target.closest("svg")&&!x.target.closest(".geneviewer-toolbar")||x.target===i){var P=T.length===1&&ht(B,O);Mt(P?null:O??null)}}!O||O.component==="legend"&&y.legendClick===!1||y.click===!0&&K("click",O)},Mn=function(x){if(!(performance.now()<ne)){var O=H(x,!0);O&&(y.select===!0&&Mt(O),K("dblclick",O))}},Fa=function(x,O){return Ea(O)?x.closest('[data-component="'+O+'"]'):x.closest(O==="legend"?"[data-part]":"text")},Vi=function(x,O){if(x.closest(".geneviewer-move-overlay")||!i.clientWidth||!i.clientHeight)return null;var $=x.parentNode,P=$.getScreenCTM();if(!P)return null;var I="http://www.w3.org/2000/svg",Y=i.querySelector(".geneviewer-move-overlay");Y||(Y=document.createElementNS(I,"svg"),Y.setAttribute("class","geneviewer-move-overlay"),Y.setAttribute("width",i.clientWidth),Y.setAttribute("height",i.clientHeight),Y.setAttribute("viewBox",`0 0 ${i.clientWidth} ${i.clientHeight}`),Object.assign(Y.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",pointerEvents:"none",zIndex:"4"}),i.appendChild(Y));var nt={parent:$,next:x.nextSibling};O.component==="legend"&&(x.__home__=$.closest(".legend"));var wt=getComputedStyle(x);["fill","fill-opacity","stroke","stroke-width","stroke-opacity","font-family","font-size","font-weight","font-style","text-anchor","dominant-baseline"].forEach(function(Dt){x.style.getPropertyValue(Dt)||x.style.setProperty(Dt,wt.getPropertyValue(Dt))});var kt=document.createElementNS(I,"g"),Pt=Y.getScreenCTM().inverse().multiply(P);return kt.setAttribute("transform",`matrix(${Pt.a} ${Pt.b} ${Pt.c} ${Pt.d} ${Pt.e} ${Pt.f})`),Ea(O.component)||kt.setAttribute("data-component",O.component),O.cluster!=null&&kt.setAttribute("data-cluster",O.cluster),Y.appendChild(kt),kt.appendChild(x),x.style.pointerEvents="visiblePainted",nt.frame=kt,Zr(),nt},Zr=function(){i.querySelectorAll(".geneviewer-move-overlay [data-part]").forEach(function(x){x.__home__&&x.parentNode.classList.toggle("unselected",x.__home__.classList.contains("unselected"))})},ie=function(){i.querySelectorAll(M).forEach(function(x){if(x.__drawn__?.moveX||x.__drawn__?.moveY){var O=H({target:x});O&&z.includes(O.component)&&Vi(x,O)}})},lc=function(x,O){K("dragmove",Object.assign({},x,{position:O}))},$e=null,Zi=null,cc=function(){var x=Zi;return Zi=null,x&&Pa(x),!!x},od=function(x){if($e){var O=$e;if($e=null,O.stopListening(),i.classList.remove("geneviewer-dragging"),!O.moved){cc();return}if(ne=performance.now()+350,!x){O.items.forEach(function(I){if(I.node.setAttribute("transform",I.transform),I.placement){var Y=I.placement;Y.parent.insertBefore(I.node,Y.next&&Y.next.parentNode===Y.parent?Y.next:null);var nt=Y.frame.parentNode;Y.frame.remove(),nt.firstChild||nt.remove()}lc(I.detail,{moveX:I.moveX,moveY:I.moveY})}),N(O.selection),vt(),cc();return}var $=O.items.map(function(I){I.node.__drawn__=Object.assign({},I.node.__drawn__,I.position);var Y=H({target:I.node},!0);return Y.position=I.position,Y.action="drag",Y});if(cc()){var P=fn();O.items.forEach(function(I){var Y=P[W(I.detail)];Y&&Da(Y,I.position)})}ze.record(O.items.map(function(I){return{key:W(I.detail),before:{moveX:I.moveX,moveY:I.moveY},after:I.position}}),!1),Ki(),fc($,!1)}},Zn=function(){od(!1)},Hb=function(x){x.key==="Escape"&&$e&&(x.preventDefault(),Zn())},Wb=function(x){$e&&x.pointerId===$e.id&&od(!0)},jb=function(x){var O=$e;!O||x.pointerId!==O.id||!O.moved&&Math.hypot(x.clientX-O.x,x.clientY-O.y)<4||(O.moved||(O.moved=!0,O.items.forEach(function($){$.placement=Vi($.node,$.detail)}),y.select===!0&&O.items.length===1&&!G(O.items[0].detail)&&(N([O.items[0].detail]),vt()),i.classList.add("geneviewer-dragging")),x.preventDefault(),O.items.forEach(function($){var P=new DOMPoint(x.clientX,x.clientY).matrixTransform($.inverse);$.position={moveX:Math.round($.moveX+P.x-$.start.x),moveY:Math.round($.moveY+P.y-$.start.y)};var I=$.position.moveX-$.moveX,Y=$.position.moveY-$.moveY;$.node.setAttribute("transform",`translate(${I}, ${Y}) ${$.transform}`),lc($.detail,$.position)}))},ad=function(x,O,$){var P=x.parentNode.getScreenCTM();if(!P)return null;var I=P.inverse();return{node:x,detail:O,inverse:I,start:new DOMPoint($.clientX,$.clientY).matrixTransform(I),transform:x.getAttribute("transform")||"",moveX:O.style?.moveX??Je(x).moveX,moveY:O.style?.moveY??Je(x).moveY}},uc=function(x){if(!(x.button!==0||x.isPrimary===!1)){var O=H(x,!0);if(!O||!z.includes(O.component)||W(O)===null){Xb(x,O);return}if(y.drag===!0){var $=Fa(x.target,O.component);if($){var P=ad($,O,x);if(P){var I=[P];if(y.select===!0&&G(O)&&T.length>1){var Y=fn();T.forEach(function(nt){var wt=W(nt);if(!(wt===W(O)||!Y[wt])){var kt=ad(Y[wt],H({target:Y[wt]},!0),x);kt&&I.push(kt)}})}$e={id:x.pointerId,items:I,selection:T.slice(),x:x.clientX,y:x.clientY,moved:!1,stopListening:id({pointermove:jb,pointerup:Wb,pointercancel:Zn,blur:Zn,keydown:Hb})}}}}}},Ot=null,Xb=function(x,O){y.select!==!0||W(O)!==null||x.target.closest(".geneviewer-toolbar")||!i.contains(x.target)||(Ot={id:x.pointerId,x:x.clientX,y:x.clientY,node:null,mode:x.shiftKey||x.metaKey||x.ctrlKey?"add":"replace",selection:T.slice(),stopListening:id({pointermove:Vb,pointerup:Zb,pointercancel:Oa,blur:Oa,keydown:Kb})})},Gb=function(x){var O={};return i.querySelectorAll(D).forEach(function($){var P=H({target:$}),I=W(P);if(!(I===null||O[I])){var Y=$.getBoundingClientRect();(Y.width||Y.height)&&Y.left>=x.left&&Y.right<=x.right&&Y.top>=x.top&&Y.bottom<=x.bottom&&(O[I]=H({target:$},!0))}}),Object.values(O)},Vb=function(x){if(!(!Ot||x.pointerId!==Ot.id)&&!(!Ot.node&&Math.hypot(x.clientX-Ot.x,x.clientY-Ot.y)<4)){x.preventDefault();var O={left:Math.min(Ot.x,x.clientX),right:Math.max(Ot.x,x.clientX),top:Math.min(Ot.y,x.clientY),bottom:Math.max(Ot.y,x.clientY)};Ot.node||(Ot.node=document.createElement("div"),Ot.node.className="geneviewer-marquee",i.appendChild(Ot.node));var $=i.getBoundingClientRect(),P=$.width/i.offsetWidth||1,I=$.height/i.offsetHeight||1;Object.assign(Ot.node.style,{left:(O.left-$.left)/P+"px",top:(O.top-$.top)/I+"px",width:(O.right-O.left)/P+"px",height:(O.bottom-O.top)/I+"px"}),N(yt(Ot.selection,Gb(O),Ot.mode)),vt()}},Ta=function(x){if(Ot){var O=Ot;if(Ot=null,O.stopListening(),!!O.node){if(O.node.remove(),ne=performance.now()+350,!x){N(O.selection),vt();return}J(T)!==J(O.selection)&&X()}}},Zb=function(x){Ot&&x.pointerId===Ot.id&&Ta(!0)},Oa=function(){Ta(!1)},Kb=function(x){x.key==="Escape"&&Ot&&(x.preventDefault(),Oa())},ze=wM(),Kr={},Ba={},Qr={},_r=null,oe=null,Je=function(x){return{moveX:x.__drawn__?.moveX??0,moveY:x.__drawn__?.moveY??0}},fn=function(){var x={};return i.querySelectorAll(D).forEach(function(O){var $=H({target:O}),P=$&&z.includes($.component)?W($):null;P===null||x[P]||(x[P]=Fa(O,$.component))}),x},Da=function(x,O){var $=Je(x),P=O.moveX-$.moveX,I=O.moveY-$.moveY;if(P||I){var Y=H({target:x});Y&&Vi(x,Y),x.setAttribute("transform",`translate(${P}, ${I}) ${x.getAttribute("transform")||""}`.trim())}x.__drawn__=Object.assign({},x.__drawn__,{moveX:O.moveX,moveY:O.moveY})},sd=function(x,O){var $=H({target:x},!0);return $?($.position=Je(x),$.action=O,$):null},fc=function(x,O){x.forEach(function($){var P=W($);n.server?Kr[P]=$.position:Ba[P]=$.position}),x.length&&(y.select===!0&&(O&&x.length===1&&N([x[0]]),vt(),X()),x.length===1?K("drag",x[0]):K("moves",{action:x[0].action,moves:x}))},ld=function(x){return Object.keys(x).filter(function(O){return Qr[O]&&!Ma(Je(x[O]),Qr[O])})},Ki=function(x){if(!(!oe||y.drag!==!0)){var O=ld(x||fn()).length>0;oe.select(".geneviewer-history").property("hidden",!ze.canUndo()&&!ze.canRedo()&&!O),oe.select(".geneviewer-undo").property("disabled",!ze.canUndo()),oe.select(".geneviewer-redo").property("disabled",!ze.canRedo()),oe.select(".geneviewer-reset").property("disabled",!O)}},cd=function(x,O,$){var P=fn(),I=[];x.forEach(function(Y){var nt=P[Y.key];if(nt){Da(nt,Y.position);var wt=sd(nt,O);wt&&I.push(wt)}}),clearTimeout(_r),_r=null,Ki(P),fc(I,$)},Qi=function(x){var O=ze.next(x);if(!(!O||$e)){var $=fn(),P=O.items.every(function(I){return $[I.key]&&Ma(Je($[I.key]),x?I.after:I.before)});if(!P)return ze.clear(),Ki($);cd(ze.take(x),x?"undo":"redo",O.items.length===1)}},Qb=function(){if(!$e){var x=fn(),O=ld(x).map(function($){return{key:$,before:Je(x[$]),after:Qr[$]}});O.length&&(ze.record(O,!1),cd(O.map(function($){return{key:$.key,position:$.after}}),"reset",!1))}},ud=function(){var x=fn();if(Object.keys(x).forEach(function(P){Qr[P]||(Qr[P]=Je(x[P]))}),Object.keys(Kr).forEach(function(P){(!x[P]||Ma(Je(x[P]),Kr[P]))&&delete Kr[P]}),_r===null&&!Object.keys(Kr).length){var O=ze.expected(),$=Object.keys(O).some(function(P){return!x[P]||!Ma(Je(x[P]),O[P])});$&&ze.clear()}Ki(x)},Jb=function(){var x=fn();Object.keys(Ba).forEach(function(O){x[O]&&Da(x[O],Ba[O])})},t2=function(x,O){var $=fn(),P=T.map(function(I){return W(I)}).filter(function(I){return I!==null&&$[I]}).map(function(I){var Y=Je($[I]),nt={moveX:Math.round(Y.moveX+x),moveY:Math.round(Y.moveY+O)};return Da($[I],nt),lc(H({target:$[I]}),nt),{key:I,before:Y,after:nt}});return P.length?(ze.record(P,!0),Ki(),clearTimeout(_r),_r=setTimeout(function(){_r=null;var I=fn();fc(P.map(function(Y){return I[Y.key]&&sd(I[Y.key],"nudge")}).filter(Boolean),!1)},300),!0):!1},fd=function(x){if(!(y.drag!==!0||!i.isConnected)){var O=x.key.toLowerCase();if((x.metaKey||x.ctrlKey)&&(O==="z"||O==="y")){x.preventDefault(),Qi(!(O==="y"||x.shiftKey));return}var $={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]}[x.key];if(!(!$||x.metaKey||x.ctrlKey||y.select!==!0||$e)&&!(x.target!==document.body&&!i.contains(x.target))){var P=x.shiftKey?10:1;t2($[0]*P,$[1]*P)&&x.preventDefault()}}},$a=function(){Ca=fd},hd=function(x){if(performance.now()<ne&&!x.target.closest(".geneviewer-toolbar")){ne=0,x.preventDefault(),x.stopPropagation();return}var O=x.target.closest&&x.target.closest(".geneviewer-move-overlay [data-part]")?.__home__,$=y.select===!0||y.dblclick===!0||y.click===!0&&y.legendClick!==!1;O&&!$&&O.isConnected&&(x.stopPropagation(),O.dispatchEvent(new MouseEvent("click",{bubbles:!1,detail:x.detail})),Zr())};i.addEventListener("click",hd,!0),i.addEventListener("click",Zr),i.addEventListener("pointerdown",$a,!0),i.addEventListener("focusin",$a);var e2=function(x){return/(^|\s)fa-/.test(x)?x:"fa-solid fa-"+x},n2=function(){oe=null;var x=ut({show:"hover",position:"topright",buttons:bM,icons:{}},"toolbarOptions",p,d),O=[].concat(x.buttons),$=function(_t){return O.includes(_t)},P=y.drag===!0&&["undo","redo","reset"].some($),I=m&&$("save"),Y=!!Nt&&$("zoom");if(!(x.show==="never"||!P&&!I&&!Y)){var nt=function(_t){return x.icons[_t]!=null?e2(x.icons[_t]):null};oe=R.select(i).append("div").attr("class",`geneviewer-toolbar geneviewer-toolbar-${x.position}`+(x.show==="always"?" geneviewer-toolbar-always":"")).attr("id",`geneviewer-toolbar-${S}`).attr("role","toolbar").attr("aria-label","Chart");var wt=function(_t){return typeof _t=="number"?_t+"px":_t};[["color","--gv-toolbar-color"],["hoverColor","--gv-toolbar-hover"],["tooltipBackground","--gv-toolbar-tip-background"],["tooltipColor","--gv-toolbar-tip-color"],["tooltipBorder","--gv-toolbar-tip-border"],["tooltipRadius","--gv-toolbar-tip-radius"],["tooltipShadow","--gv-toolbar-tip-shadow"],["fontFamily","--gv-toolbar-font"],["size","--gv-toolbar-size"]].forEach(function(_t){x[_t[0]]!=null&&oe.style(_t[1],wt(x[_t[0]]))});var kt=function(_t,jt){var ae=_t.append("button").attr("type","button").attr("class","geneviewer-toolbar-button geneviewer-"+jt.name).attr("aria-label",jt.label).attr("aria-keyshortcuts",jt.shortcuts).property("disabled",!!jt.disabled).on("click",jt.onClick);nt(jt.name)?ae.append("i").attr("class",nt(jt.name)).attr("aria-hidden","true"):ac(ae.append("span").attr("class","geneviewer-icon").attr("aria-hidden","true"),jt.icon);var Fn=ae.append("span").attr("class","geneviewer-toolbar-tip").attr("aria-hidden","true");Fn.append("span").text(jt.label),jt.kbd&&Fn.append("kbd").text(jt.kbd)};if(P){var Pt=oe.append("div").attr("class","geneviewer-history").attr("role","group").attr("aria-label","Positions").property("hidden",!0);[{name:"undo",label:"Undo",icon:"rotate-left",kbd:qb?"⌘Z":"Ctrl+Z",shortcuts:"Control+Z Meta+Z",onClick:function(){Qi(!0)}},{name:"redo",label:"Redo",icon:"rotate-right",kbd:qb?"⇧⌘Z":"Ctrl+Y",shortcuts:"Control+Shift+Z Meta+Shift+Z Control+Y",onClick:function(){Qi(!1)}},{name:"reset",label:"Reset positions",icon:"house",kbd:null,shortcuts:null,onClick:Qb}].filter(function(_t){return $(_t.name)}).forEach(function(_t){kt(Pt,Object.assign({disabled:!0},_t))}),(I||Y)&&Pt.append("span").attr("class","geneviewer-toolbar-divider")}if(Y){var Dt=oe.append("div").attr("class","geneviewer-history geneviewer-zoom-buttons").attr("role","group").attr("aria-label","Zoom").property("hidden",Yt===null);kt(Dt,{name:"zoom",label:"Reset zoom",icon:"magnifying-glass-minus",kbd:null,shortcuts:null,onClick:vd}),I&&Dt.append("span").attr("class","geneviewer-toolbar-divider")}I&&Lb(S,i,oe.node(),nt("save"),n.saveAs)}},Kn=null,dd=function(x){Kn!==x&&(Kn&&Kn.classList.remove("geneviewer-hover"),Kn=x,Kn&&Kn.classList.add("geneviewer-hover"),i.classList.toggle("geneviewer-hover-below",!!Kn))},hc=function(x){var O=U(x);dd(O===x.target?null:O.closest("[data-component]"))},dc=function(){dd(null)},pc=function(x){if(x.key==="Escape"){$e?Zn():Ot?Oa():Mt(null);return}x.key==="Enter"&&y.dblclick===!0&&x.target.matches(D)&&(x.preventDefault(),Mn(x))},pd=function(){Zn();var x=y.click===!0;i.removeEventListener("click",Zt),i.removeEventListener("dblclick",Mn),i.removeEventListener("keydown",pc),i.removeEventListener("pointerdown",uc),Ta(!1),i.removeEventListener("mousemove",hc),i.removeEventListener("mouseleave",dc),Kn=null,i.classList.remove("geneviewer-hover-below");var O=(x||y.select===!0||y.dblclick===!0)&&y.highlight===!0;O&&(i.addEventListener("mousemove",hc),i.addEventListener("mouseleave",dc)),(x||y.select===!0)&&i.addEventListener("click",Zt),y.dblclick===!0&&i.addEventListener("dblclick",Mn),(y.select===!0||y.drag===!0)&&i.addEventListener("keydown",pc),(y.drag===!0||y.select===!0)&&i.addEventListener("pointerdown",uc),i.classList.toggle("geneviewer-draggable",y.drag===!0),y.select!==!0&&T.length&&(N([]),X()),i.classList.toggle("geneviewer-selectable",y.select===!0),i.classList.toggle("geneviewer-highlight",O),vt(!0)},Nt=null,Yt=null,gd=null,md=null,tn=[],en=[0,1],za=null,nn=null,Rt=null,Qn=null,Ji=null,Ne=function(){return Nt?.mode==="absolute"?"absolute":"relative"},r2=function(){var x=Nt?.range;return!Array.isArray(x)||x.length!==2?null:(x=x.slice().sort(function(O,$){return O-$}),Ne()==="relative"&&x[0]<=0&&x[1]>=1?null:x)},yd=function(x){return(x-en[0])/(en[1]-en[0])},i2=function(x){return en[0]+x*(en[1]-en[0])},gc=function(){return Yt?Ne()==="absolute"?Yt.map(yd):Yt.slice():[0,1]},bd=function(){var x=Nt?.min;return x==null?.01:Math.min(1,Ne()==="absolute"?x/(en[1]-en[0]):x)},mc=function(x){return Ne()==="absolute"?Math.round(x):Math.round(x*1e4)/1e4},o2=function(x){Yt=x[0]<=1e-6&&x[1]>=1-1e-6?null:x.map(function(O){return mc(Ne()==="absolute"?i2(O):O)})},a2=function(){var x=Ne()==="absolute",O=Yt||(x?en:[0,1]);return{mode:Ne(),start:mc(O[0]),end:mc(O[1]),zoomed:Yt!==null,range:Yt?Yt.slice():null,clusters:tn.map(function($){var P=$.chart,I=[P.xScale.invert(0),P.xScale.invert(P.width-P.margin.left-P.margin.right)].sort(function(Y,nt){return Y-nt});return{cluster:$.key,start:Math.round(I[0]),end:Math.round(I[1])}})}},Na=null,to=function(x){if(clearTimeout(Ji),Ji=null,!(y.zoom!==!0||!Nt)){var O=a2(),$=JSON.stringify([O.mode,O.range,O.clusters]);(x==="render"||x==="set")&&$===Na||(Na=$,O.action=x,K("zoom",O))}},yc=function(){if(nn){var x=gc(),O=function(Y){return Y*100+"%"};nn.querySelector('[data-side="start"]').style.width=O(x[0]),nn.querySelector('[data-side="end"]').style.left=O(x[1]);var $=nn.querySelector('[data-zoom-part="window"]');$.style.left=O(x[0]),$.style.width=O(x[1]-x[0]);var P=Yt||(Ne()==="absolute"?en:[0,1]),I=function(Y){return Ne()==="absolute"?R.format(",.0f")(Y):R.format(".0%")(Y)};["start","end"].forEach(function(Y,nt){var wt=nn.querySelector('[data-zoom-part="'+Y+'"]');wt.style.left=O(x[nt]),wt.setAttribute("aria-valuenow",Math.round(x[nt]*100)),wt.setAttribute("aria-valuetext",I(P[nt]))}),$.setAttribute("aria-valuenow",Math.round(x[0]*100)),$.setAttribute("aria-valuetext",I(P[0])+" to "+I(P[1])),oe?.select(".geneviewer-zoom-buttons").property("hidden",Yt===null)}},bc=function(x){if(yc(),x)return Qn&&cancelAnimationFrame(Qn),Qn=null,xc();Qn||(Qn=requestAnimationFrame(function(){Qn=null,xc()}))},Ra=function(x,O){o2(x),Rt&&Nt?.update==="release"?yc():bc(O)},vd=function(){Yt!==null&&(Ra([0,1],!0),to("reset"))},s2=function(x){if(x.stopPropagation(),!(x.button!==0||Rt)){x.preventDefault();var O=x.currentTarget.getBoundingClientRect(),$=(x.clientX-O.left)/O.width,P=x.target.closest("[data-zoom-part]")?.getAttribute("data-zoom-part")??"track",I=gc();if(Rt={id:x.pointerId,left:O.left,width:O.width,at:$,moved:!1,stopListening:id({pointermove:l2,pointerup:vc,pointercancel:vc,blur:vc})},P==="track"){var Y=(I[1]-I[0])/2,nt=Math.max(Y,Math.min(1-Y,$));I=[nt-Y,nt+Y],Rt.moved=!0,Ra(I),P="window"}Rt.part=P,Rt.shares=I}},l2=function(x){if(!(!Rt||x.pointerId!==Rt.id)){x.preventDefault();var O=(x.clientX-Rt.left)/Rt.width-Rt.at,$=Rt.shares,P=bd(),I=Rt.part==="start"?[Math.max(0,Math.min($[1]-P,$[0]+O)),$[1]]:Rt.part==="end"?[$[0],Math.min(1,Math.max($[0]+P,$[1]+O))]:(function(){var Y=Math.max(-$[0],Math.min(1-$[1],O));return[$[0]+Y,$[1]+Y]})();Rt.moved=!0,Ra(I)}},vc=function(x){if(!(!Rt||x.pointerId!==void 0&&x.pointerId!==Rt.id)){var O=Rt;Rt=null,O.stopListening(),O.moved&&(bc(!0),to("drag"))}},c2=function(x){var O=x.target.getAttribute&&x.target.getAttribute("data-zoom-part");if(O){var $=gc(),P=bd(),I={ArrowLeft:-1,ArrowDown:-1,ArrowRight:1,ArrowUp:1}[x.key],Y=null;if(I){var nt=I*(x.shiftKey?.1:.01);Y=O==="start"?[Math.max(0,Math.min($[1]-P,$[0]+nt)),$[1]]:O==="end"?[$[0],Math.min(1,Math.max($[0]+P,$[1]+nt))]:[$[0]+Math.max(-$[0],Math.min(1-$[1],nt)),$[1]+Math.max(-$[0],Math.min(1-$[1],nt))]}else x.key==="Home"?Y=O==="end"?[$[0],Math.min(1,$[0]+P)]:O==="start"?[0,$[1]]:[0,$[1]-$[0]]:x.key==="End"&&(Y=O==="start"?[Math.max(0,$[1]-P),$[1]]:O==="end"?[$[0],1]:[1-($[1]-$[0]),1]);Y&&(x.preventDefault(),x.stopPropagation(),Ra(Y),clearTimeout(Ji),Ji=setTimeout(function(){to("keyboard")},300))}},wc=function(x,O){Object.keys(O||{}).forEach(function($){$.includes("-")?x.style.setProperty($,O[$]):x.style[$]=O[$]})},u2=function(x){if(nn=null,!(!Nt||!tn.length)){var O=Ne()==="absolute";en=O?[R.min(tn,function(Ut){return Ut.chart.minStart}),R.max(tn,function(Ut){return Ut.chart.maxEnd})]:[0,1];var $=tn[0].chart,P=R.select(i).append("div").attr("class","geneviewer-zoom-row").style("height",x+"px"),I=i.getBoundingClientRect(),Y=I.width/i.offsetWidth||1,nt=$.svg.node().getBoundingClientRect(),wt=nt.width/$.width||1,kt=$.width-$.margin.left-$.margin.right,Pt=P.node().getBoundingClientRect(),Dt=P.append("div").attr("class","geneviewer-zoom-slider").attr("role","group").attr("aria-label","Zoom").style("left",(nt.left+$.margin.left*wt-Pt.left)/Y+"px").style("width",kt*wt/Y+"px").on("pointerdown",s2).on("click",function(Ut){Ut.stopPropagation()}).on("dblclick",function(Ut){Ut.stopPropagation(),vd()}).on("keydown",c2);if(wc(Dt.node(),Nt.style),Nt.overview!==!1){var _t=Dt.append("svg").attr("class","geneviewer-zoom-overview").attr("viewBox","0 0 1000 "+x).attr("preserveAspectRatio","none").attr("aria-hidden","true"),jt=(x-6)/tn.length,ae=Math.max(1,Math.min(jt*.7,8));tn.forEach(function(Ut,hn){var Tn=Ut.chart,Sr=Tn.width-Tn.margin.left-Tn.margin.right,no=function(rn){if(O)return yd(rn);var Jn=Tn.fullScale(rn);return Jn===null?null:Jn/Sr},Sc=function(rn){return Nt.color?Nt.color:Ut.group&&Tn.genesColorScale?Tn.genesColorScale(rn[Ut.group]):"#9e9e9e"};(Tn.data||[]).forEach(function(rn){var Jn=no(rn.start),ro=no(rn.end);Jn===null||ro===null||_t.append("rect").attr("x",Math.min(Jn,ro)*1e3).attr("width",Math.max(Math.abs(ro-Jn)*1e3,1)).attr("y",3+jt*hn+(jt-ae)/2).attr("height",ae).attr("fill",Sc(rn))})})}Dt.append("div").attr("class","geneviewer-zoom-shade").attr("data-side","start"),Dt.append("div").attr("class","geneviewer-zoom-shade").attr("data-side","end");var Fn=Dt.append("div").attr("class","geneviewer-zoom-window").attr("data-zoom-part","window");wc(Fn.node(),Nt.windowStyle),[Fn].concat(["start","end"].map(function(Ut){var hn=Dt.append("div").attr("class","geneviewer-zoom-handle").attr("data-zoom-part",Ut);return wc(hn.node(),Nt.handleStyle),hn})).forEach(function(Ut){var hn=Ut.attr("data-zoom-part");Ut.attr("tabindex",0).attr("role","slider").attr("aria-label",hn==="window"?"Zoom window":hn==="start"?"Zoom start":"Zoom end").attr("aria-valuemin",0).attr("aria-valuemax",100)}),nn=Dt.node(),yc()}},f2=function(){if(tn.some(function(O){return O.chart.zoom})){var x="http://www.w3.org/2000/svg";i.querySelectorAll("svg.GeneLink").forEach(function(O,$){var P=O.getBoundingClientRect(),I=P.width/(+O.getAttribute("width")||P.width)||1,Y="geneviewer-zoom-links-"+S+"-"+$,nt=document.createElementNS(x,"clipPath");nt.setAttribute("id",Y),tn.forEach(function(Pt){var Dt=Pt.chart,_t=Dt.svg.node().getBoundingClientRect(),jt=_t.width/Dt.width||1,ae=document.createElementNS(x,"rect");ae.setAttribute("x",(_t.left+Dt.margin.left*jt-P.left)/I),ae.setAttribute("y",0),ae.setAttribute("width",(Dt.width-Dt.margin.left-Dt.margin.right)*jt/I),ae.setAttribute("height",O.getAttribute("height")),nt.appendChild(ae)});var wt=document.createElementNS(x,"defs");wt.appendChild(nt);var kt=document.createElementNS(x,"g");kt.setAttribute("clip-path","url(#"+Y+")"),Array.from(O.childNodes).forEach(function(Pt){kt.appendChild(Pt)}),O.appendChild(wt),O.appendChild(kt)})}},h2=function(x){C||!Nt||(Yt=Array.isArray(x)&&x.length===2?x.slice().sort(function(O,$){return O-$}):null,Yt&&Ne()==="relative"&&Yt[0]<=0&&Yt[1]>=1&&(Yt=null),bc(!0),to("set"))},wd=function(){for(var x=[],O=i.parentElement;O;O=O.parentElement)(O.scrollTop||O.scrollLeft)&&x.push([O,O.scrollTop,O.scrollLeft]);var $=i.ownerDocument.scrollingElement;$&&($.scrollTop||$.scrollLeft)&&!x.some(function(P){return P[0]===$})&&x.push([$,$.scrollTop,$.scrollLeft]);try{d2()}finally{x.forEach(function(P){P[0].scrollTop!==P[1]&&(P[0].scrollTop=P[1]),P[0].scrollLeft!==P[2]&&(P[0].scrollLeft=P[2])})}},d2=function(){Zn(),tn=[],za=null;var x=q?Array.from(i.querySelectorAll(".legend.unselected"),function(se){return se.__data__}):[];if(q=!0,R.select(i).selectAll("*").remove(),F.forEach(function(se){i.style[se]=""}),n.server){var O=typeof g.width=="number"?g.width+"px":g.width,$=typeof O=="string"&&/^\d+(\.\d+)?px$/.test(O);$?(i.style.width=O,v=!0):v&&(i.style.width=w,v=!1);var P=i.parentElement&&getComputedStyle(i.parentElement),I=P&&/^(inline-)?flex$/.test(P.display)&&/^row/.test(P.flexDirection);$&&I?(i.style.flex="0 0 auto",_=!0):_&&(i.style.flex=b,_=!1)}i.style.height="100%",i.style.position="relative",i.style.boxSizing="border-box";var Y=ut({style:{}},"chartOptions",{style:s},d).style;F=Object.keys(Y);for(var nt in Y)i.style[nt]=Y[nt];var wt=0;if(h?.show){var kt=R.select(i).append("div").attr("id",`geneviewer-title-container-${S}`).classed("geneviewer-container",!0),Pt=(h.title&&h.subtitle?50:40)*Gn(d),Dt=ut({height:Pt},"titleOptions",h,d).height;wt=Le(Dt,i.clientHeight);var _t={...h,width:i.clientWidth,height:wt},jt=Vl(`#geneviewer-title-container-${S}`,"svg-container","titleOptions",_t,d).title(_t.title,_t.subtitle,_t.show??!1,_t)}var ae=f?.show===!1?0:Le(f?.height,i.clientHeight);if(f?.group!==null&&f?.show){R.select(i).append("div").attr("id",`geneviewer-legend-container-${S}`).classed("geneviewer-container",!0);var Fn=Array.isArray(l)&&l.length?Ih(l,d):null;za=Fn&&Fn.colorBarOptions.position==="legend"?Fn:null;var Ut={...f,width:i.clientWidth,height:Le(f.height,i.clientHeight),editable:y.select===!0||y.dblclick===!0||y.click===!0&&y.legendClick!==!1};Vl(`#geneviewer-legend-container-${S}`,"svg-container","legendOptions",Ut,d).legendData(c).legend(Ut.group??!1,Ut.show??!1,i.id,Ut,za);var hn=R.select(`#geneviewer-legend-container-${S}`).node(),Tn=hn.getBoundingClientRect();ae=Tn.height}R.select(i).append("div").attr("id",`geneviewer-graph-container-${S}`).style("flex-direction",a.direction).style("position","relative").classed("geneviewer-container",!0);var Sr=Object.keys(u),no=Nt?Nt.height??24:0,Sc=Nt?no+8:0,rn=Nt&&Yt?{from:Yt[0],to:Yt[1],mode:Ne()}:null,Jn=(Array.isArray(l)?l:[]).map(se=>({data:jr(se.data),options:se.options??{}}));Sr.forEach(function(se){var me=u[se],Ia=me.container,m2=me.cluster,y2=jr(u[se].data),_d=me.scale,La=me.clusterTitle,qa=me.footer,io=me.clusterLabel,kc=me.labels,Sd=me.sequence,Ya=me.genes,Ac=me.transcript,kd=me.coordinates,Ad=me.scaleBar,b2=me.annotations,Ed=me.trackMouse,Md=me.tooltip,on=JSON.parse(JSON.stringify(Ia));if(on.height=Le(on.height,i.clientHeight),on.height-=wt/Sr.length,on.height-=ae?ae/Sr.length:0,on.height-=Sc/Sr.length,typeof Ia.height=="string"&&Ia.height.endsWith("%")){var v2=(parseFloat(Y.paddingTop)||0)+(parseFloat(Y.paddingBottom)||0);on.height-=v2/Sr.length}on.width=Le(on.width,i.clientWidth),io?.show&&(on.margin={...on.margin,...Wy(Ia,io,d)});var Ua=Vl(`#geneviewer-graph-container-${S}`,"svg-container","containerOptions",on,d).cluster(m2).title(La?.title,La?.subtitle,La?.show??!1,La,"clusterTitleOptions").footer(qa?.title,qa?.subtitle,qa?.show??!1,qa).clusterLabel(io?.title,io?.show??!1,io).geneData(c,y2).scale(rn?Object.assign({},_d,{zoom:rn}):_d).sequence(Sd?.show??!1,Sd).genes(Ya?.group,Ya?.show??!1,Ya).transcript(Ac?.group,Ac?.show??!1,Ac);Ua.svg.attr("data-cluster",se),Jn.forEach(Cd=>{Ua.links(Ky(Cd.data,se),se,Cd.options)}),Ua.coordinates(kd?.show??!1,kd).labels(kc?.label,kc?.show??!1,kc).scaleBar(Ad?.show??!1,Ad).addAnnotations(b2).trackMouse(Ed?.show??!1,Ed).tooltip(Md?.show??!1,Md).clipZoom(),tn.push({key:se,chart:Ua,group:Ya?.group})}),u2(no);var ro=ut({position:"bottom"},"legendOptions",f,d).position;ro=="bottom"&&f?.show&&f?.group!==null&&i.appendChild(hn),n2(),i.querySelectorAll(".legend").forEach(function(se){x.includes(se.__data__)&&se.dispatchEvent(new MouseEvent("click",{bubbles:!1}))})},xd=function(){if(!l||l.length===0)return;let x=R.select(`#geneviewer-graph-container-${S}`);Zy(x,l,d),Qy(x,l,d,za!==null),f2()},p2=function(x){for(var O=[],$=i.parentElement;$;$=$.parentElement)($.scrollTop||$.scrollLeft)&&O.push([$,$.scrollTop,$.scrollLeft]);var P=document.scrollingElement;P&&!O.some(function(I){return I[0]===P})&&O.push([P,P.scrollTop,P.scrollLeft]);try{x()}finally{O.forEach(function(I){I[0].scrollTop!==I[1]&&(I[0].scrollTop=I[1]),I[0].scrollLeft!==I[2]&&(I[0].scrollLeft=I[2])})}},xc=function(){var x=nn&&nn.contains(document.activeElement)?document.activeElement.getAttribute("data-zoom-part"):null;p2(function(){wd(),xd(),ie(),Jb(),pd(),ud()}),x&&nn&&nn.querySelector('[data-zoom-part="'+x+'"]')?.focus({preventScroll:!0})},g2=function(x){if(x.data)return jr(x.data);var O=x.dataColumns??[],$=[];return Object.values(x.series??{}).forEach(function(P){jr(P.data).forEach(function(I){var Y={};O.forEach(function(nt){Y[nt]=I[nt]}),$.push(Y)})}),$.sort(function(P,I){return P.rowID-I.rowID})},Pa=function(x){var O=g2(x),$=JSON.stringify([O,x.group,x.cluster,x.legend?.group]);if($e&&$===L&&x.events?.drag===!0){Zi=x;return}Zi=null,Zn(),Nt=x.zoom&&x.zoom.show!==!1?x.zoom:null;var P=Nt?JSON.stringify([Nt.range??null,Ne()]):null,I=x.events?.renderId??null,Y=I!==null&&I!==md;if(md=I,($!==L||P!==gd||Y)&&(Yt=r2(),Na=null),Nt||(Na=null),gd=P,L!==null&&$!==L&&(q=!1,T.length&&(N([]),X()),ze.clear(),Kr={},Qr={}),Ba={},L=$,a=x.graphContainer,s=x.style,c=O,l=x.links,u=x.series,m=x.saveButton,p=x.toolbar??{},h=x.title,f=x.legend,d=x.theme??{},y=x.events??{},g=x.size??{},wd(),xd(),ie(),pd(),ud(),to("render"),y.rendered===!0){var nt={id:y.renderId??i.id+"-render-"+ ++gM,chartId:i.id,width:i.clientWidth,height:i.clientHeight};K("rendered",nt)}},Cn=null,_c=function(x){x&&x.version!==void 0?(Cn=structuredClone(x),Pa(oc(Cn))):(Cn=null,Pa(x))},eo={update:function(x){C||(Cn!==null?(Cn=nd(Cn,x),Pa(oc(Cn))):_c(x))},setSpec:function(x){if(!C){if(!x||x.version===void 0)throw new Error("setSpec() needs a spec with a version");_c(x)}},getSpec:function(){return Cn===null?null:structuredClone(Cn)},resize:function(){C||xc()},on:function(x,O){if(!vM.includes(x))throw new Error("Unknown event: "+x);return(k[x]=k[x]||[]).push(O),function(){eo.off(x,O)}},off:function(x,O){var $=k[x]||[],P=$.indexOf(O);P>=0&&$.splice(P,1)},zoomTo:h2,select:function(x){if(!C){if(y.select!==!0){qe("chart.select() needs events: { select: true }; nothing was selected.");return}Tt(St(x==null?[]:Array.isArray(x)?x:[x]),"replace")}},getSelection:function(){return ot()},undo:function(){C||Qi(!0)},redo:function(){C||Qi(!1)},download:function(x,O){if(x!=="svg"&&x!=="png")return Promise.reject(new Error('download() needs the format "svg" or "png"'));var $=O??"graph."+x,P=n.saveAs||rd;return Promise.resolve().then(function(){return x==="svg"?new Blob([eo.toSVG()],{type:"image/svg+xml;charset=utf-8"}):eo.toPNG()}).then(function(I){return P(I,$)}).then(function(){})},toSVG:function(){return Aa(i,oe?oe.node():null)},toPNG:function(){return sc(i,oe?oe.node():null)},destroy:function(){C||(C=!0,Zi=null,Zn(),Ta(!1),Rt&&Rt.stopListening(),Rt=null,clearTimeout(_r),clearTimeout(Ji),Qn&&cancelAnimationFrame(Qn),Ca===fd&&(Ca=null),k={},[["click",hd,!0],["click",Zr],["pointerdown",$a,!0],["focusin",$a],["click",Zt],["dblclick",Mn],["keydown",pc],["pointerdown",uc],["mousemove",hc],["mouseleave",dc]].forEach(function(x){i.removeEventListener(x[0],x[1],x[2])}),R.select(i).on("mouseleave",null).selectAll("*").remove(),F.forEach(function(x){i.style[x]=""}),i.classList.remove("geneviewer-draggable","geneviewer-selectable","geneviewer-highlight","geneviewer-dragging","geneviewer-hover-below"),o&&i.classList.remove("geneviewer"))}};return Object.keys(n.on||{}).forEach(function(x){eo.on(x,n.on[x])}),_c(e),eo}export{sc as chartToPNG,Aa as chartToSVG,oc as compile,xM as newChart,Sa as palettes,tc as themes,pM as version};
|
|
417
417
|
//# sourceMappingURL=geneviewer.standalone.mjs.map
|