@shipx/timelines-chart
Version:
A parallel (swimlanes) timelines D3 chart for representing state of time-series over time.
2 lines • 143 kB
JavaScript
// Version 2.11.5 @shipx/timelines-chart - https://github.com/yoozrr/timelines-chart
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).TimelinesChart=n()}(this,(function(){"use strict";function t(t){return function(t){if(Array.isArray(t))return n(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function e(t,n,e){var r,i,a,o,u;function l(){var s=Date.now()-o;s<n&&s>=0?r=setTimeout(l,n-s):(r=null,e||(u=t.apply(a,i),a=i=null))}null==n&&(n=100);var s=function(){a=this,i=arguments,o=Date.now();var s=e&&!r;return r||(r=setTimeout(l,n)),s&&(u=t.apply(a,i),a=i=null),u};return s.clear=function(){r&&(clearTimeout(r),r=null)},s.flush=function(){r&&(u=t.apply(a,i),a=i=null,clearTimeout(r),r=null)},s}!function(t,n){void 0===n&&(n={});var e=n.insertAt;if(t&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===e&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}('.timelines-chart {\n\n text-align: center;\n\n /* Cancel selection interaction */\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n .timelines-chart .axises line, .timelines-chart .axises path {\n stroke: #808080;\n }\n\n .timelines-chart .axises .x-axis {\n font: 12px sans-serif;\n }\n\n .timelines-chart .axises .x-grid line {\n stroke: #D3D3D3;\n }\n\n .timelines-chart .axises .y-axis line, .timelines-chart .axises .y-axis path, .timelines-chart .axises .grp-axis line, .timelines-chart .axises .grp-axis path {\n stroke: none;\n }\n\n .timelines-chart .axises .y-axis text, .timelines-chart .axises .grp-axis text {\n fill: #2F4F4F;\n }\n\n .timelines-chart line.x-axis-date-marker {\n stroke-width: 1;\n stroke: #293cb7;\n fill: "none";\n }\n\n .timelines-chart .series-group {\n fill-opacity: 0.6;\n stroke: #808080;\n stroke-opacity: 0.2;\n }\n\n .timelines-chart .series-segment {\n stroke: none;\n }\n\n .timelines-chart .series-group, .timelines-chart .series-segment {\n cursor: crosshair;\n }\n\n .timelines-chart .legend {\n font-family: Sans-Serif;\n }\n\n .timelines-chart .legend .legendText {\n fill: #666;\n }\n\n .timelines-chart .reset-zoom-btn {\n font-family: sans-serif;\n fill: blue;\n opacity: .6;\n cursor: pointer;\n }\n\n.brusher .grid-background {\n fill: lightgrey;\n }\n\n.brusher .axis path {\n display: none;\n }\n\n.brusher .tick text {\n text-anchor: middle;\n }\n\n.brusher .grid line, .brusher .grid path {\n stroke: #fff;\n }\n\n.chart-zoom-selection, .brusher .brush .selection {\n stroke: blue;\n stroke-opacity: 0.6;\n fill: blue;\n fill-opacity: 0.3;\n shape-rendering: crispEdges;\n}\n\n.chart-tooltip {\n color: #eee;\n background: rgba(0,0,140,0.85);\n padding: 5px;\n border-radius: 3px;\n font: 11px sans-serif;\n z-index: 4000;\n}\n\n.chart-tooltip.group-tooltip {\n font-size: 14px;\n }\n\n.chart-tooltip.line-tooltip {\n font-size: 13px;\n }\n\n.chart-tooltip.group-tooltip, .chart-tooltip.line-tooltip {\n font-weight: bold;\n }\n\n.chart-tooltip.segment-tooltip {\n text-align: center;\n }'),e.debounce=e;var r=e;function i(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){if(!(Symbol.iterator in Object(t))&&"[object Arguments]"!==Object.prototype.toString.call(t))return;var e=[],r=!0,i=!1,a=void 0;try{for(var o,u=t[Symbol.iterator]();!(r=(o=u.next()).done)&&(e.push(o.value),!n||e.length!==n);r=!0);}catch(t){i=!0,a=t}finally{try{r||null==u.return||u.return()}finally{if(i)throw a}}return e}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var a=function t(n,e){var r=e.default,i=void 0===r?null:r,a=e.triggerUpdate,o=void 0===a||a,u=e.onChange,l=void 0===u?function(t,n){}:u;!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,t),this.name=n,this.defaultVal=i,this.triggerUpdate=o,this.onChange=l};function o(t){var n=t.stateInit,e=void 0===n?function(){return{}}:n,o=t.props,u=void 0===o?{}:o,l=t.methods,s=void 0===l?{}:l,c=t.aliases,f=void 0===c?{}:c,h=t.init,g=void 0===h?function(){}:h,p=t.update,d=void 0===p?function(){}:p,m=Object.keys(u).map((function(t){return new a(t,u[t])}));return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign({},e instanceof Function?e(t):e,{initialised:!1}),a={};function o(n){return u(n,t),l(),o}var u=function(t,e){g.call(o,t,n,e),n.initialised=!0},l=r((function(){n.initialised&&(d.call(o,n,a),a={})}),1);return m.forEach((function(t){o[t.name]=function(t){var e=t.name,r=t.triggerUpdate,i=void 0!==r&&r,u=t.onChange,s=void 0===u?function(t,n){}:u,c=t.defaultVal,f=void 0===c?null:c;return function(t){var r=n[e];if(!arguments.length)return r;var u=void 0===t?f:t;return n[e]=u,s.call(o,u,n,r),!a.hasOwnProperty(e)&&(a[e]=r),i&&l(),o}}(t)})),Object.keys(s).forEach((function(t){o[t]=function(){for(var e,r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return(e=s[t]).call.apply(e,[o,n].concat(i))}})),Object.entries(f).forEach((function(t){var n=i(t,2),e=n[0],r=n[1];return o[e]=o[r]})),o.resetProps=function(){return m.forEach((function(t){o[t.name](t.defaultVal)})),o},o.resetProps(),n._rerender=l,o}}function u(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function l(t){let n=t,e=t;function r(t,n,r,i){for(null==r&&(r=0),null==i&&(i=t.length);r<i;){const a=r+i>>>1;e(t[a],n)<0?r=a+1:i=a}return r}return 1===t.length&&(n=(n,e)=>t(n)-e,e=function(t){return(n,e)=>u(t(n),e)}(t)),{left:r,center:function(t,e,i,a){null==i&&(i=0),null==a&&(a=t.length);const o=r(t,e,i,a-1);return o>i&&n(t[o-1],e)>-n(t[o],e)?o-1:o},right:function(t,n,r,i){for(null==r&&(r=0),null==i&&(i=t.length);r<i;){const a=r+i>>>1;e(t[a],n)>0?i=a:r=a+1}return r}}}const s=l(u).right;l((function(t){return null===t?NaN:+t})).center;var c=Math.sqrt(50),f=Math.sqrt(10),h=Math.sqrt(2);function g(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=c?10:a>=f?5:a>=h?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=c?10:a>=f?5:a>=h?2:1)}function p(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=c?i*=10:a>=f?i*=5:a>=h&&(i*=2),n<t?-i:i}function d(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e<i||void 0===e&&i>=i)&&(e=i)}return e}function m(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}function v(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),a=new Array(i);++r<i;)a[r]=t+r*e;return a}var y=Array.prototype.slice;function b(t){return t}var w=1e-6;function x(t){return"translate("+(t+.5)+",0)"}function _(t){return"translate(0,"+(t+.5)+")"}function M(t){return n=>+t(n)}function A(t){var n=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(n=Math.round(n)),function(e){return+t(e)+n}}function S(){return!this.__axis}function k(t,n){var e=[],r=null,i=null,a=6,o=6,u=3,l=1===t||4===t?-1:1,s=4===t||2===t?"x":"y",c=1===t||3===t?x:_;function f(f){var h=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,g=null==i?n.tickFormat?n.tickFormat.apply(n,e):b:i,p=Math.max(a,0)+u,d=n.range(),m=+d[0]+.5,v=+d[d.length-1]+.5,y=(n.bandwidth?A:M)(n.copy()),x=f.selection?f.selection():f,_=x.selectAll(".domain").data([null]),k=x.selectAll(".tick").data(h,n).order(),C=k.exit(),T=k.enter().append("g").attr("class","tick"),D=k.select("line"),z=k.select("text");_=_.merge(_.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),k=k.merge(T),D=D.merge(T.append("line").attr("stroke","currentColor").attr(s+"2",l*a)),z=z.merge(T.append("text").attr("fill","currentColor").attr(s,l*p).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),f!==x&&(_=_.transition(f),k=k.transition(f),D=D.transition(f),z=z.transition(f),C=C.transition(f).attr("opacity",w).attr("transform",(function(t){return isFinite(t=y(t))?c(t):this.getAttribute("transform")})),T.attr("opacity",w).attr("transform",(function(t){var n=this.parentNode.__axis;return c(n&&isFinite(n=n(t))?n:y(t))}))),C.remove(),_.attr("d",4===t||2==t?o?"M"+l*o+","+m+"H0.5V"+v+"H"+l*o:"M0.5,"+m+"V"+v:o?"M"+m+","+l*o+"V0.5H"+v+"V"+l*o:"M"+m+",0.5H"+v),k.attr("opacity",1).attr("transform",(function(t){return c(y(t))})),D.attr(s+"2",l*a),z.attr(s,l*p).text(g),x.filter(S).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),x.each((function(){this.__axis=y}))}return f.scale=function(t){return arguments.length?(n=t,f):n},f.ticks=function(){return e=y.call(arguments),f},f.tickArguments=function(t){return arguments.length?(e=null==t?[]:y.call(t),f):e.slice()},f.tickValues=function(t){return arguments.length?(r=null==t?null:y.call(t),f):r&&r.slice()},f.tickFormat=function(t){return arguments.length?(i=t,f):i},f.tickSize=function(t){return arguments.length?(a=o=+t,f):a},f.tickSizeInner=function(t){return arguments.length?(a=+t,f):a},f.tickSizeOuter=function(t){return arguments.length?(o=+t,f):o},f.tickPadding=function(t){return arguments.length?(u=+t,f):u},f}function C(t){return k(3,t)}function T(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function D(t,n){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof n?this.interpolator(n):this.range(n)}return this}const z=Symbol("implicit");function N(){var t=new Map,n=[],e=[],r=z;function i(i){var a=i+"",o=t.get(a);if(!o){if(r!==z)return r;t.set(a,o=n.push(i))}return e[(o-1)%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new Map;for(const r of e){const e=r+"";t.has(e)||t.set(e,n.push(r))}return i},i.range=function(t){return arguments.length?(e=Array.from(t),i):e.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return N(n,e).unknown(r)},T.apply(i,arguments),i}function F(){var t,n,e=N().unknown(void 0),r=e.domain,i=e.range,a=0,o=1,u=!1,l=0,s=0,c=.5;function f(){var e=r().length,f=o<a,h=f?o:a,g=f?a:o;t=(g-h)/Math.max(1,e-l+2*s),u&&(t=Math.floor(t)),h+=(g-h-t*(e-l))*c,n=t*(1-l),u&&(h=Math.round(h),n=Math.round(n));var p=v(e).map((function(n){return h+t*n}));return i(f?p.reverse():p)}return delete e.unknown,e.domain=function(t){return arguments.length?(r(t),f()):r()},e.range=function(t){return arguments.length?([a,o]=t,a=+a,o=+o,f()):[a,o]},e.rangeRound=function(t){return[a,o]=t,a=+a,o=+o,u=!0,f()},e.bandwidth=function(){return n},e.step=function(){return t},e.round=function(t){return arguments.length?(u=!!t,f()):u},e.padding=function(t){return arguments.length?(l=Math.min(1,s=+t),f()):l},e.paddingInner=function(t){return arguments.length?(l=Math.min(1,t),f()):l},e.paddingOuter=function(t){return arguments.length?(s=+t,f()):s},e.align=function(t){return arguments.length?(c=Math.max(0,Math.min(1,t)),f()):c},e.copy=function(){return F(r(),[a,o]).round(u).paddingInner(l).paddingOuter(s).align(c)},T.apply(f(),arguments)}function H(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return H(n())},t}function E(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function L(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function U(){}var R=.7,Y=1/R,O="\\s*([+-]?\\d+)\\s*",P="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",j="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",I=/^#([0-9a-f]{3,8})$/,X=new RegExp("^rgb\\("+[O,O,O]+"\\)$"),q=new RegExp("^rgb\\("+[j,j,j]+"\\)$"),B=new RegExp("^rgba\\("+[O,O,O,P]+"\\)$"),V=new RegExp("^rgba\\("+[j,j,j,P]+"\\)$"),W=new RegExp("^hsl\\("+[P,j,j]+"\\)$"),G=new RegExp("^hsla\\("+[P,j,j,P]+"\\)$"),$={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};function Z(){return this.rgb().formatHex()}function Q(){return this.rgb().formatRgb()}function J(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=I.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?K(n):3===e?new rt(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?tt(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?tt(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=X.exec(t))?new rt(n[1],n[2],n[3],1):(n=q.exec(t))?new rt(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=B.exec(t))?tt(n[1],n[2],n[3],n[4]):(n=V.exec(t))?tt(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=W.exec(t))?ut(n[1],n[2]/100,n[3]/100,1):(n=G.exec(t))?ut(n[1],n[2]/100,n[3]/100,n[4]):$.hasOwnProperty(t)?K($[t]):"transparent"===t?new rt(NaN,NaN,NaN,0):null}function K(t){return new rt(t>>16&255,t>>8&255,255&t,1)}function tt(t,n,e,r){return r<=0&&(t=n=e=NaN),new rt(t,n,e,r)}function nt(t){return t instanceof U||(t=J(t)),t?new rt((t=t.rgb()).r,t.g,t.b,t.opacity):new rt}function et(t,n,e,r){return 1===arguments.length?nt(t):new rt(t,n,e,null==r?1:r)}function rt(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function it(){return"#"+ot(this.r)+ot(this.g)+ot(this.b)}function at(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function ot(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function ut(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new st(t,n,e,r)}function lt(t){if(t instanceof st)return new st(t.h,t.s,t.l,t.opacity);if(t instanceof U||(t=J(t)),!t)return new st;if(t instanceof st)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=Math.max(n,e,r),o=NaN,u=a-i,l=(a+i)/2;return u?(o=n===a?(e-r)/u+6*(e<r):e===a?(r-n)/u+2:(n-e)/u+4,u/=l<.5?a+i:2-a-i,o*=60):u=l>0&&l<1?0:o,new st(o,u,l,t.opacity)}function st(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function ct(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}E(U,J,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Z,formatHex:Z,formatHsl:function(){return lt(this).formatHsl()},formatRgb:Q,toString:Q}),E(rt,et,L(U,{brighter:function(t){return t=null==t?Y:Math.pow(Y,t),new rt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?R:Math.pow(R,t),new rt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){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:it,formatHex:it,formatRgb:at,toString:at})),E(st,(function(t,n,e,r){return 1===arguments.length?lt(t):new st(t,n,e,null==r?1:r)}),L(U,{brighter:function(t){return t=null==t?Y:Math.pow(Y,t),new st(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?R:Math.pow(R,t),new st(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new rt(ct(t>=240?t-240:t+120,i,r),ct(t,i,r),ct(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var ft=t=>()=>t;function ht(t){return 1==(t=+t)?gt:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):ft(isNaN(n)?e:n)}}function gt(t,n){var e=n-t;return e?function(t,n){return function(e){return t+e*n}}(t,e):ft(isNaN(t)?n:t)}var pt=function t(n){var e=ht(n);function r(t,n){var r=e((t=et(t)).r,(n=et(n)).r),i=e(t.g,n.g),a=e(t.b,n.b),o=gt(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=a(n),t.opacity=o(n),t+""}}return r.gamma=t,r}(1);var dt,mt=(dt=function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,u=r<n-1?t[r+2]:2*a-i;return function(t,n,e,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*n+(4-6*a+3*o)*e+(1+3*t+3*a-3*o)*r+o*i)/6}((e-r/n)*n,o,i,a,u)}},function(t){var n,e,r=t.length,i=new Array(r),a=new Array(r),o=new Array(r);for(n=0;n<r;++n)e=et(t[n]),i[n]=e.r||0,a[n]=e.g||0,o[n]=e.b||0;return i=dt(i),a=dt(a),o=dt(o),e.opacity=1,function(t){return e.r=i(t),e.g=a(t),e.b=o(t),e+""}});function vt(t,n){n||(n=[]);var e,r=t?Math.min(n.length,t.length):0,i=n.slice();return function(a){for(e=0;e<r;++e)i[e]=t[e]*(1-a)+n[e]*a;return i}}function yt(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,a=new Array(i),o=new Array(r);for(e=0;e<i;++e)a[e]=St(t[e],n[e]);for(;e<r;++e)o[e]=n[e];return function(t){for(e=0;e<i;++e)o[e]=a[e](t);return o}}function bt(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}}function wt(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}function xt(t,n){var e,r={},i={};for(e in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)e in t?r[e]=St(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}}var _t=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Mt=new RegExp(_t.source,"g");function At(t,n){var e,r,i,a=_t.lastIndex=Mt.lastIndex=0,o=-1,u=[],l=[];for(t+="",n+="";(e=_t.exec(t))&&(r=Mt.exec(n));)(i=r.index)>a&&(i=n.slice(a,i),u[o]?u[o]+=i:u[++o]=i),(e=e[0])===(r=r[0])?u[o]?u[o]+=r:u[++o]=r:(u[++o]=null,l.push({i:o,x:wt(e,r)})),a=Mt.lastIndex;return a<n.length&&(i=n.slice(a),u[o]?u[o]+=i:u[++o]=i),u.length<2?l[0]?function(t){return function(n){return t(n)+""}}(l[0].x):function(t){return function(){return t}}(n):(n=l.length,function(t){for(var e,r=0;r<n;++r)u[(e=l[r]).i]=e.x(t);return u.join("")})}function St(t,n){var e,r,i=typeof n;return null==n||"boolean"===i?ft(n):("number"===i?wt:"string"===i?(e=J(n))?(n=e,pt):At:n instanceof J?pt:n instanceof Date?bt:(r=n,!ArrayBuffer.isView(r)||r instanceof DataView?Array.isArray(n)?yt:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?xt:wt:vt))(t,n)}function kt(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}}var Ct,Tt=180/Math.PI,Dt={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function zt(t,n,e,r,i,a){var o,u,l;return(o=Math.sqrt(t*t+n*n))&&(t/=o,n/=o),(l=t*e+n*r)&&(e-=t*l,r-=n*l),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,l/=u),t*r<n*e&&(t=-t,n=-n,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(n,t)*Tt,skewX:Math.atan(l)*Tt,scaleX:o,scaleY:u}}function Nt(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(a,o){var u=[],l=[];return a=t(a),o=t(o),function(t,r,i,a,o,u){if(t!==i||r!==a){var l=o.push("translate(",null,n,null,e);u.push({i:l-4,x:wt(t,i)},{i:l-2,x:wt(r,a)})}else(i||a)&&o.push("translate("+i+n+a+e)}(a.translateX,a.translateY,o.translateX,o.translateY,u,l),function(t,n,e,a){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),a.push({i:e.push(i(e)+"rotate(",null,r)-2,x:wt(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(a.rotate,o.rotate,u,l),function(t,n,e,a){t!==n?a.push({i:e.push(i(e)+"skewX(",null,r)-2,x:wt(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(a.skewX,o.skewX,u,l),function(t,n,e,r,a,o){if(t!==e||n!==r){var u=a.push(i(a)+"scale(",null,",",null,")");o.push({i:u-4,x:wt(t,e)},{i:u-2,x:wt(n,r)})}else 1===e&&1===r||a.push(i(a)+"scale("+e+","+r+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,u,l),a=o=null,function(t){for(var n,e=-1,r=l.length;++e<r;)u[(n=l[e]).i]=n.x(t);return u.join("")}}}var Ft=Nt((function(t){const n=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?Dt:zt(n.a,n.b,n.c,n.d,n.e,n.f)}),"px, ","px)","deg)"),Ht=Nt((function(t){return null==t?Dt:(Ct||(Ct=document.createElementNS("http://www.w3.org/2000/svg","g")),Ct.setAttribute("transform",t),(t=Ct.transform.baseVal.consolidate())?zt((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Dt)}),", ",")",")");function Et(t){return+t}var Lt=[0,1];function Ut(t){return t}function Rt(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:(e=isNaN(n)?NaN:.5,function(){return e});var e}function Yt(t,n,e){var r=t[0],i=t[1],a=n[0],o=n[1];return i<r?(r=Rt(i,r),a=e(o,a)):(r=Rt(r,i),a=e(a,o)),function(t){return a(r(t))}}function Ot(t,n,e){var r=Math.min(t.length,n.length)-1,i=new Array(r),a=new Array(r),o=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++o<r;)i[o]=Rt(t[o],t[o+1]),a[o]=e(n[o],n[o+1]);return function(n){var e=s(t,n,1,r)-1;return a[e](i[e](n))}}function Pt(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function jt(){var t,n,e,r,i,a,o=Lt,u=Lt,l=St,s=Ut;function c(){var t,n,e,l=Math.min(o.length,u.length);return s!==Ut&&(t=o[0],n=o[l-1],t>n&&(e=t,t=n,n=e),s=function(e){return Math.max(t,Math.min(n,e))}),r=l>2?Ot:Yt,i=a=null,f}function f(n){return isNaN(n=+n)?e:(i||(i=r(o.map(t),u,l)))(t(s(n)))}return f.invert=function(e){return s(n((a||(a=r(u,o.map(t),wt)))(e)))},f.domain=function(t){return arguments.length?(o=Array.from(t,Et),c()):o.slice()},f.range=function(t){return arguments.length?(u=Array.from(t),c()):u.slice()},f.rangeRound=function(t){return u=Array.from(t),l=kt,c()},f.clamp=function(t){return arguments.length?(s=!!t||Ut,c()):s!==Ut},f.interpolate=function(t){return arguments.length?(l=t,c()):l},f.unknown=function(t){return arguments.length?(e=t,f):e},function(e,r){return t=e,n=r,c()}}function It(){return jt()(Ut,Ut)}function Xt(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function qt(t){return(t=Xt(Math.abs(t)))?t[1]:NaN}var Bt,Vt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Wt(t){if(!(n=Vt.exec(t)))throw new Error("invalid format: "+t);var n;return new Gt({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function Gt(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function $t(t,n){var e=Xt(t,n);if(!e)return t+"";var r=e[0],i=e[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")}Wt.prototype=Gt.prototype,Gt.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Zt={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>$t(100*t,n),r:$t,s:function(t,n){var e=Xt(t,n);if(!e)return t+"";var r=e[0],i=e[1],a=i-(Bt=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Xt(t,Math.max(0,n+a-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Qt(t){return t}var Jt,Kt,tn,nn=Array.prototype.map,en=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function rn(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?Qt:(n=nn.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,a=[],o=0,u=n[0],l=0;i>0&&u>0&&(l+u+1>r&&(u=Math.max(1,r-l)),a.push(t.substring(i-=u,i+u)),!((l+=u+1)>r));)u=n[o=(o+1)%n.length];return a.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?Qt:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(nn.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",s=void 0===t.minus?"−":t.minus+"",c=void 0===t.nan?"NaN":t.nan+"";function f(t){var n=(t=Wt(t)).fill,e=t.align,f=t.sign,h=t.symbol,g=t.zero,p=t.width,d=t.comma,m=t.precision,v=t.trim,y=t.type;"n"===y?(d=!0,y="g"):Zt[y]||(void 0===m&&(m=12),v=!0,y="g"),(g||"0"===n&&"="===e)&&(g=!0,n="0",e="=");var b="$"===h?i:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===h?a:/[%p]/.test(y)?l:"",x=Zt[y],_=/[defgprs%]/.test(y);function M(t){var i,a,l,h=b,M=w;if("c"===y)M=x(t)+M,t="";else{var A=(t=+t)<0||1/t<0;if(t=isNaN(t)?c:x(Math.abs(t),m),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(!+t[r])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),A&&0==+t&&"+"!==f&&(A=!1),h=(A?"("===f?f:s:"-"===f||"("===f?"":f)+h,M=("s"===y?en[8+Bt/3]:"")+M+(A&&"("===f?")":""),_)for(i=-1,a=t.length;++i<a;)if(48>(l=t.charCodeAt(i))||l>57){M=(46===l?o+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}d&&!g&&(t=r(t,1/0));var S=h.length+t.length+M.length,k=S<p?new Array(p-S+1).join(n):"";switch(d&&g&&(t=r(k+t,k.length?p-M.length:1/0),k=""),e){case"<":t=h+t+M+k;break;case"=":t=h+k+t+M;break;case"^":t=k.slice(0,S=k.length>>1)+h+t+M+k.slice(S);break;default:t=k+h+t+M}return u(t)}return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),M.toString=function(){return t+""},M}return{format:f,formatPrefix:function(t,n){var e=f(((t=Wt(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(qt(n)/3))),i=Math.pow(10,-r),a=en[8+r/3];return function(t){return e(i*t)+a}}}}function an(t,n,e,r){var i,a=p(t,n,e);switch((r=Wt(null==r?",f":r)).type){case"s":var o=Math.max(Math.abs(t),Math.abs(n));return null!=r.precision||isNaN(i=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(qt(n)/3)))-qt(Math.abs(t)))}(a,o))||(r.precision=i),tn(r,o);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,qt(n)-qt(t))+1}(a,Math.max(Math.abs(t),Math.abs(n))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=function(t){return Math.max(0,-qt(Math.abs(t)))}(a))||(r.precision=i-2*("%"===r.type))}return Kt(r)}function on(t){var n=t.domain;return t.ticks=function(t){var e=n();return function(t,n,e){var r,i,a,o,u=-1;if(e=+e,(t=+t)==(n=+n)&&e>0)return[t];if((r=n<t)&&(i=t,t=n,n=i),0===(o=g(t,n,e))||!isFinite(o))return[];if(o>0)for(t=Math.ceil(t/o),n=Math.floor(n/o),a=new Array(i=Math.ceil(n-t+1));++u<i;)a[u]=(t+u)*o;else for(o=-o,t=Math.ceil(t*o),n=Math.floor(n*o),a=new Array(i=Math.ceil(n-t+1));++u<i;)a[u]=(t+u)/o;return r&&a.reverse(),a}(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return an(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i,a=n(),o=0,u=a.length-1,l=a[o],s=a[u],c=10;for(s<l&&(i=l,l=s,s=i,i=o,o=u,u=i);c-- >0;){if((i=g(l,s,e))===r)return a[o]=l,a[u]=s,n(a);if(i>0)l=Math.floor(l/i)*i,s=Math.ceil(s/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,s=Math.floor(s*i)/i}r=i}return t},t}function un(){var t=It();return t.copy=function(){return Pt(t,un())},T.apply(t,arguments),on(t)}Jt=rn({thousands:",",grouping:[3],currency:["$",""]}),Kt=Jt.format,tn=Jt.formatPrefix;var ln=new Date,sn=new Date;function cn(t,n,e,r){function i(n){return t(n=0===arguments.length?new Date:new Date(+n)),n}return i.floor=function(n){return t(n=new Date(+n)),n},i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,a){var o,u=[];if(e=i.ceil(e),a=null==a?1:Math.floor(a),!(e<r&&a>0))return u;do{u.push(o=new Date(+e)),n(e,a),t(e)}while(o<e&&e<r);return u},i.filter=function(e){return cn((function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););}))},e&&(i.count=function(n,r){return ln.setTime(+n),sn.setTime(+r),t(ln),t(sn),Math.floor(e(ln,sn))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}var fn=cn((function(){}),(function(t,n){t.setTime(+t+n)}),(function(t,n){return n-t}));fn.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?cn((function(n){n.setTime(Math.floor(n/t)*t)}),(function(n,e){n.setTime(+n+e*t)}),(function(n,e){return(e-n)/t})):fn:null};var hn=1e3,gn=6e4,pn=36e5,dn=864e5,mn=6048e5,vn=cn((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,n){t.setTime(+t+n*hn)}),(function(t,n){return(n-t)/hn}),(function(t){return t.getUTCSeconds()})),yn=cn((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*hn)}),(function(t,n){t.setTime(+t+n*gn)}),(function(t,n){return(n-t)/gn}),(function(t){return t.getMinutes()})),bn=cn((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*hn-t.getMinutes()*gn)}),(function(t,n){t.setTime(+t+n*pn)}),(function(t,n){return(n-t)/pn}),(function(t){return t.getHours()})),wn=cn((t=>t.setHours(0,0,0,0)),((t,n)=>t.setDate(t.getDate()+n)),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*gn)/dn),(t=>t.getDate()-1));function xn(t){return cn((function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)}),(function(t,n){t.setDate(t.getDate()+7*n)}),(function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*gn)/mn}))}var _n=xn(0),Mn=xn(1),An=(xn(2),xn(3),xn(4)),Sn=(xn(5),xn(6),cn((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,n){t.setMonth(t.getMonth()+n)}),(function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}))),kn=cn((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n)}),(function(t,n){return n.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));kn.every=function(t){return isFinite(t=Math.floor(t))&&t>0?cn((function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)}),(function(n,e){n.setFullYear(n.getFullYear()+e*t)})):null};var Cn=cn((function(t){t.setUTCSeconds(0,0)}),(function(t,n){t.setTime(+t+n*gn)}),(function(t,n){return(n-t)/gn}),(function(t){return t.getUTCMinutes()})),Tn=cn((function(t){t.setUTCMinutes(0,0,0)}),(function(t,n){t.setTime(+t+n*pn)}),(function(t,n){return(n-t)/pn}),(function(t){return t.getUTCHours()})),Dn=cn((function(t){t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+n)}),(function(t,n){return(n-t)/dn}),(function(t){return t.getUTCDate()-1}));function zn(t){return cn((function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+7*n)}),(function(t,n){return(n-t)/mn}))}var Nn=zn(0),Fn=zn(1),Hn=(zn(2),zn(3),zn(4)),En=(zn(5),zn(6),cn((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCMonth(t.getUTCMonth()+n)}),(function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}))),Ln=cn((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)}),(function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));function Un(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Rn(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Yn(t,n,e){return{y:t,m:n,d:e,H:0,M:0,S:0,L:0}}Ln.every=function(t){return isFinite(t=Math.floor(t))&&t>0?cn((function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),(function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)})):null};var On,Pn,jn,In={"-":"",_:" ",0:"0"},Xn=/^\s*\d+/,qn=/^%/,Bn=/[\\^$*+?|[\]().{}]/g;function Vn(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a<e?new Array(e-a+1).join(n)+i:i)}function Wn(t){return t.replace(Bn,"\\$&")}function Gn(t){return new RegExp("^(?:"+t.map(Wn).join("|")+")","i")}function $n(t){return new Map(t.map(((t,n)=>[t.toLowerCase(),n])))}function Zn(t,n,e){var r=Xn.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function Qn(t,n,e){var r=Xn.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function Jn(t,n,e){var r=Xn.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function Kn(t,n,e){var r=Xn.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function te(t,n,e){var r=Xn.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function ne(t,n,e){var r=Xn.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function ee(t,n,e){var r=Xn.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function re(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function ie(t,n,e){var r=Xn.exec(n.slice(e,e+1));return r?(t.q=3*r[0]-3,e+r[0].length):-1}function ae(t,n,e){var r=Xn.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function oe(t,n,e){var r=Xn.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function ue(t,n,e){var r=Xn.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function le(t,n,e){var r=Xn.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function se(t,n,e){var r=Xn.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function ce(t,n,e){var r=Xn.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function fe(t,n,e){var r=Xn.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function he(t,n,e){var r=Xn.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function ge(t,n,e){var r=qn.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function pe(t,n,e){var r=Xn.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function de(t,n,e){var r=Xn.exec(n.slice(e));return r?(t.s=+r[0],e+r[0].length):-1}function me(t,n){return Vn(t.getDate(),n,2)}function ve(t,n){return Vn(t.getHours(),n,2)}function ye(t,n){return Vn(t.getHours()%12||12,n,2)}function be(t,n){return Vn(1+wn.count(kn(t),t),n,3)}function we(t,n){return Vn(t.getMilliseconds(),n,3)}function xe(t,n){return we(t,n)+"000"}function _e(t,n){return Vn(t.getMonth()+1,n,2)}function Me(t,n){return Vn(t.getMinutes(),n,2)}function Ae(t,n){return Vn(t.getSeconds(),n,2)}function Se(t){var n=t.getDay();return 0===n?7:n}function ke(t,n){return Vn(_n.count(kn(t)-1,t),n,2)}function Ce(t){var n=t.getDay();return n>=4||0===n?An(t):An.ceil(t)}function Te(t,n){return t=Ce(t),Vn(An.count(kn(t),t)+(4===kn(t).getDay()),n,2)}function De(t){return t.getDay()}function ze(t,n){return Vn(Mn.count(kn(t)-1,t),n,2)}function Ne(t,n){return Vn(t.getFullYear()%100,n,2)}function Fe(t,n){return Vn((t=Ce(t)).getFullYear()%100,n,2)}function He(t,n){return Vn(t.getFullYear()%1e4,n,4)}function Ee(t,n){var e=t.getDay();return Vn((t=e>=4||0===e?An(t):An.ceil(t)).getFullYear()%1e4,n,4)}function Le(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+Vn(n/60|0,"0",2)+Vn(n%60,"0",2)}function Ue(t,n){return Vn(t.getUTCDate(),n,2)}function Re(t,n){return Vn(t.getUTCHours(),n,2)}function Ye(t,n){return Vn(t.getUTCHours()%12||12,n,2)}function Oe(t,n){return Vn(1+Dn.count(Ln(t),t),n,3)}function Pe(t,n){return Vn(t.getUTCMilliseconds(),n,3)}function je(t,n){return Pe(t,n)+"000"}function Ie(t,n){return Vn(t.getUTCMonth()+1,n,2)}function Xe(t,n){return Vn(t.getUTCMinutes(),n,2)}function qe(t,n){return Vn(t.getUTCSeconds(),n,2)}function Be(t){var n=t.getUTCDay();return 0===n?7:n}function Ve(t,n){return Vn(Nn.count(Ln(t)-1,t),n,2)}function We(t){var n=t.getUTCDay();return n>=4||0===n?Hn(t):Hn.ceil(t)}function Ge(t,n){return t=We(t),Vn(Hn.count(Ln(t),t)+(4===Ln(t).getUTCDay()),n,2)}function $e(t){return t.getUTCDay()}function Ze(t,n){return Vn(Fn.count(Ln(t)-1,t),n,2)}function Qe(t,n){return Vn(t.getUTCFullYear()%100,n,2)}function Je(t,n){return Vn((t=We(t)).getUTCFullYear()%100,n,2)}function Ke(t,n){return Vn(t.getUTCFullYear()%1e4,n,4)}function tr(t,n){var e=t.getUTCDay();return Vn((t=e>=4||0===e?Hn(t):Hn.ceil(t)).getUTCFullYear()%1e4,n,4)}function nr(){return"+0000"}function er(){return"%"}function rr(t){return+t}function ir(t){return Math.floor(+t/1e3)}!function(t){On=function(t){var n=t.dateTime,e=t.date,r=t.time,i=t.periods,a=t.days,o=t.shortDays,u=t.months,l=t.shortMonths,s=Gn(i),c=$n(i),f=Gn(a),h=$n(a),g=Gn(o),p=$n(o),d=Gn(u),m=$n(u),v=Gn(l),y=$n(l),b={a:function(t){return o[t.getDay()]},A:function(t){return a[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return u[t.getMonth()]},c:null,d:me,e:me,f:xe,g:Fe,G:Ee,H:ve,I:ye,j:be,L:we,m:_e,M:Me,p:function(t){return i[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:rr,s:ir,S:Ae,u:Se,U:ke,V:Te,w:De,W:ze,x:null,X:null,y:Ne,Y:He,Z:Le,"%":er},w={a:function(t){return o[t.getUTCDay()]},A:function(t){return a[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:Ue,e:Ue,f:je,g:Je,G:tr,H:Re,I:Ye,j:Oe,L:Pe,m:Ie,M:Xe,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:rr,s:ir,S:qe,u:Be,U:Ve,V:Ge,w:$e,W:Ze,x:null,X:null,y:Qe,Y:Ke,Z:nr,"%":er},x={a:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.w=p.get(r[0].toLowerCase()),e+r[0].length):-1},A:function(t,n,e){var r=f.exec(n.slice(e));return r?(t.w=h.get(r[0].toLowerCase()),e+r[0].length):-1},b:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=y.get(r[0].toLowerCase()),e+r[0].length):-1},B:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.m=m.get(r[0].toLowerCase()),e+r[0].length):-1},c:function(t,e,r){return A(t,n,e,r)},d:oe,e:oe,f:he,g:ee,G:ne,H:le,I:le,j:ue,L:fe,m:ae,M:se,p:function(t,n,e){var r=s.exec(n.slice(e));return r?(t.p=c.get(r[0].toLowerCase()),e+r[0].length):-1},q:ie,Q:pe,s:de,S:ce,u:Qn,U:Jn,V:Kn,w:Zn,W:te,x:function(t,n,r){return A(t,e,n,r)},X:function(t,n,e){return A(t,r,n,e)},y:ee,Y:ne,Z:re,"%":ge};function _(t,n){return function(e){var r,i,a,o=[],u=-1,l=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++u<s;)37===t.charCodeAt(u)&&(o.push(t.slice(l,u)),null!=(i=In[r=t.charAt(++u)])?r=t.charAt(++u):i="e"===r?" ":"0",(a=n[r])&&(r=a(e,i)),o.push(r),l=u+1);return o.push(t.slice(l,u)),o.join("")}}function M(t,n){return function(e){var r,i,a=Yn(1900,void 0,1);if(A(a,t,e+="",0)!=e.length)return null;if("Q"in a)return new Date(a.Q);if("s"in a)return new Date(1e3*a.s+("L"in a?a.L:0));if(n&&!("Z"in a)&&(a.Z=0),"p"in a&&(a.H=a.H%12+12*a.p),void 0===a.m&&(a.m="q"in a?a.q:0),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(r=Rn(Yn(a.y,0,1))).getUTCDay(),r=i>4||0===i?Fn.ceil(r):Fn(r),r=Dn.offset(r,7*(a.V-1)),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(i=(r=Un(Yn(a.y,0,1))).getDay(),r=i>4||0===i?Mn.ceil(r):Mn(r),r=wn.offset(r,7*(a.V-1)),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?Rn(Yn(a.y,0,1)).getUTCDay():Un(Yn(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,Rn(a)):Un(a)}}function A(t,n,e,r){for(var i,a,o=0,u=n.length,l=e.length;o<u;){if(r>=l)return-1;if(37===(i=n.charCodeAt(o++))){if(i=n.charAt(o++),!(a=x[i in In?n.charAt(o++):i])||(r=a(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return b.x=_(e,b),b.X=_(r,b),b.c=_(n,b),w.x=_(e,w),w.X=_(r,w),w.c=_(n,w),{format:function(t){var n=_(t+="",b);return n.toString=function(){return t},n},parse:function(t){var n=M(t+="",!1);return n.toString=function(){return t},n},utcFormat:function(t){var n=_(t+="",w);return n.toString=function(){return t},n},utcParse:function(t){var n=M(t+="",!0);return n.toString=function(){return t},n}}}(t),Pn=On.format,On.parse,jn=On.utcFormat,On.utcParse}({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"]});var ar=1e3,or=6e4,ur=36e5,lr=864e5,sr=2592e6,cr=31536e6;function fr(t){return new Date(t)}function hr(t){return t instanceof Date?+t:+new Date(+t)}function gr(t,n,e,r,i,a,o,u,s){var c=It(),f=c.invert,h=c.domain,g=s(".%L"),d=s(":%S"),m=s("%I:%M"),v=s("%I %p"),y=s("%a %d"),b=s("%b %d"),w=s("%B"),x=s("%Y"),_=[[o,1,ar],[o,5,5e3],[o,15,15e3],[o,30,3e4],[a,1,or],[a,5,3e5],[a,15,9e5],[a,30,18e5],[i,1,ur],[i,3,108e5],[i,6,216e5],[i,12,432e5],[r,1,lr],[r,2,1728e5],[e,1,6048e5],[n,1,sr],[n,3,7776e6],[t,1,cr]];function M(u){return(o(u)<u?g:a(u)<u?d:i(u)<u?m:r(u)<u?v:n(u)<u?e(u)<u?y:b:t(u)<u?w:x)(u)}function A(n,e,r){if(null==n&&(n=10),"number"==typeof n){var i,a=Math.abs(r-e)/n,o=l((function(t){return t[2]})).right(_,a);return o===_.length?(i=p(e/cr,r/cr,n),n=t):o?(i=(o=_[a/_[o-1][2]<_[o][2]/a?o-1:o])[1],n=o[0]):(i=Math.max(p(e,r,n),1),n=u),n.every(i)}return n}return c.invert=function(t){return new Date(f(t))},c.domain=function(t){return arguments.length?h(Array.from(t,hr)):h().map(fr)},c.ticks=function(t){var n,e=h(),r=e[0],i=e[e.length-1],a=i<r;return a&&(n=r,r=i,i=n),n=(n=A(t,r,i))?n.range(r,i+1):[],a?n.reverse():n},c.tickFormat=function(t,n){return null==n?M:s(n)},c.nice=function(t){var n=h();return(t=A(t,n[0],n[n.length-1]))?h(function(t,n){var e,r=0,i=(t=t.slice()).length-1,a=t[r],o=t[i];return o<a&&(e=r,r=i,i=e,e=a,a=o,o=e),t[r]=n.floor(a),t[i]=n.ceil(o),t}(n,t)):c},c.copy=function(){return Pt(c,gr(t,n,e,r,i,a,o,u,s))},c}function pr(){return T.apply(gr(kn,Sn,_n,wn,bn,yn,vn,fn,Pn).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function dr(){return T.apply(gr(Ln,En,Nn,Dn,Tn,Cn,vn,fn,jn).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function mr(){var t,n,e,r,i,a=0,o=1,u=Ut,l=!1;function s(n){return isNaN(n=+n)?i:u(0===e?.5:(n=(r(n)-t)*e,l?Math.max(0,Math.min(1,n)):n))}function c(t){return function(n){var e,r;return arguments.length?([e,r]=n,u=t(e,r),s):[u(0),u(1)]}}return s.domain=function(i){return arguments.length?([a,o]=i,t=r(a=+a),n=r(o=+o),e=t===n?0:1/(n-t),s):[a,o]},s.clamp=function(t){return arguments.length?(l=!!t,s):l},s.interpolator=function(t){return arguments.length?(u=t,s):u},s.range=c(St),s.rangeRound=c(kt),s.unknown=function(t){return arguments.length?(i=t,s):i},function(i){return r=i,t=i(a),n=i(o),e=t===n?0:1/(n-t),s}}function vr(t,n){return n.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function yr(){var t=on(mr()(Ut));return t.copy=function(){return vr(t,yr())},D.apply(t,arguments)}var br="http://www.w3.org/1999/xhtml",wr={svg:"http://www.w3.org/2000/svg",xhtml:br,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function xr(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),wr.hasOwnProperty(n)?{space:wr[n],local:t}:t}function _r(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===br&&n.documentElement.namespaceURI===br?n.createElement(t):n.createElementNS(e,t)}}function Mr(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ar(t){var n=xr(t);return(n.local?Mr:_r)(n)}function Sr(){}function kr(t){return null==t?Sr:function(){return this.querySelector(t)}}function Cr(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Tr(){return[]}function Dr(t){return null==t?Tr:function(){return this.querySelectorAll(t)}}function zr(t){return function(){return this.matches(t)}}function Nr(t){return function(n){return n.matches(t)}}var Fr=Array.prototype.find;function Hr(){return this.firstElementChild}var Er=Array.prototype.filter;function Lr(){return this.children}function Ur(t){return new Array(t.length)}function Rr(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function Yr(t){return function(){return t}}function Or(t,n,e,r,i,a){for(var o,u=0,l=n.length,s=a.length;u<s;++u)(o=n[u])?(o.__data__=a[u],r[u]=o):e[u]=new Rr(t,a[u]);for(;u<l;++u)(o=n[u])&&(i[u]=o)}function Pr(t,n,e,r,i,a,o){var u,l,s,c=new Map,f=n.length,h=a.length,g=new Array(f);for(u=0;u<f;++u)(l=n[u])&&(g[u]=s=o.call(l,l.__data__,u,n)+"",c.has(s)?i[u]=l:c.set(s,l));for(u=0;u<h;++u)s=o.call(t,a[u],u,a)+"",(l=c.get(s))?(r[u]=l,l.__data__=a[u],c.delete(s)):e[u]=new Rr(t,a[u]);for(u=0;u<f;++u)(l=n[u])&&c.get(g[u])===l&&(i[u]=l)}function jr(t){return t.__data__}function Ir(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function Xr(t){return function(){this.removeAttribute(t)}}function qr(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Br(t,n){return function(){this.setAttribute(t,n)}}function Vr(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function Wr(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function Gr(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function $r(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Zr(t){return function(){this.style.removeProperty(t)}}function Qr(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Jr(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.