From eaacf0e87928b7f47d72c8ef4c60ce16f392c754 Mon Sep 17 00:00:00 2001 From: nickmelnikov82 Date: Sat, 18 Sep 2021 09:57:01 +0300 Subject: [PATCH 1/4] Bump the Ideogram version to 1.6.0 --- dash_bio/async-circos.js | 4 +- dash_bio/async-circos.js.map | 2 +- dash_bio/async-ideogram.js | 2 +- dash_bio/async-ideogram.js.map | 2 +- dash_bio/bundle.js | 2 +- dash_bio/bundle.js.map | 2 +- dash_bio/package-info.json | 2 +- inst/deps/async-circos.js | 4 +- inst/deps/async-circos.js.map | 2 +- inst/deps/async-ideogram.js | 2 +- inst/deps/async-ideogram.js.map | 2 +- inst/deps/bundle.js | 2 +- inst/deps/bundle.js.map | 2 +- package-lock.json | 63 +++++++++++++++++++++----- package.json | 2 +- tests/integration/test_ideogram.py | 71 +++++++++++++++++++++++++++++- 16 files changed, 137 insertions(+), 29 deletions(-) diff --git a/dash_bio/async-circos.js b/dash_bio/async-circos.js index 54cccefe5..bb0f33dca 100644 --- a/dash_bio/async-circos.js +++ b/dash_bio/async-circos.js @@ -1,4 +1,4 @@ -(window.webpackJsonpdash_bio=window.webpackJsonpdash_bio||[]).push([[2],{247:function(t,e,n){t.exports=n(248)},248:function(t,e,n){var r;"undefined"!=typeof self&&self,r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=240)}([function(t,e,n){"use strict";e.a=function(t){for(var e=t.length/6|0,n=new Array(e),r=0;r0))return o;do{o.push(a=new Date(+t)),n(t,i),e(t)}while(a=t)for(;e(t),!r(t);)t.setTime(t-1)}),(function(t,e){if(t>=t)if(e<0)for(;++e<=0;)for(;n(t,-1),!r(t););else for(;--e>=0;)for(;n(t,1),!r(t););}))},a&&(c.count=function(t,n){return r.setTime(+t),i.setTime(+n),e(r),e(i),Math.floor(a(r,i))},c.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?c.filter(o?function(e){return o(e)%t==0}:function(e){return c.count(0,e)%t==0}):c:null}),c};var r=new Date,i=new Date},function(t,e,n){var r=n(128),i="object"==typeof self&&self&&self.Object===Object&&self,a=r||i||Function("return this")();t.exports=a},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,n){"use strict";var r=n(99);n.d(e,"a",(function(){return r.a})),n(171),n(102),n(169),n(172);var i=n(69);n.d(e,"c",(function(){return i.a})),n(173);var a=n(357);n.d(e,"f",(function(){return a.a}));var o=n(174);n.d(e,"g",(function(){return o.a}));var c=n(358);n.d(e,"h",(function(){return c.a})),n.d(e,"i",(function(){return c.b}));var u=n(361);n.d(e,"j",(function(){return u.a}));var f=n(168);n.d(e,"d",(function(){return f.a})),n.d(e,"e",(function(){return f.b})),n(362),n(363),n(364);var s=n(365);n.d(e,"b",(function(){return s.a})),n(366)},function(t,e,n){"use strict";var r=n(100);n.d(e,"a",(function(){return r.e})),n.d(e,"f",(function(){return r.g})),n.d(e,"d",(function(){return r.f}));var i=n(355);n.d(e,"e",(function(){return i.a})),n.d(e,"c",(function(){return i.b}));var a=n(356);n.d(e,"b",(function(){return a.a}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(197);n.d(e,"bisect",(function(){return r.c})),n.d(e,"bisectRight",(function(){return r.b})),n.d(e,"bisectLeft",(function(){return r.a}));var i=n(36);n.d(e,"ascending",(function(){return i.a}));var a=n(198);n.d(e,"bisector",(function(){return a.a}));var o=n(452);n.d(e,"cross",(function(){return o.a}));var c=n(453);n.d(e,"descending",(function(){return c.a}));var u=n(200);n.d(e,"deviation",(function(){return u.a}));var f=n(202);n.d(e,"extent",(function(){return f.a}));var s=n(454);n.d(e,"histogram",(function(){return s.a}));var l=n(457);n.d(e,"thresholdFreedmanDiaconis",(function(){return l.a}));var d=n(458);n.d(e,"thresholdScott",(function(){return d.a}));var h=n(206);n.d(e,"thresholdSturges",(function(){return h.a}));var b=n(459);n.d(e,"max",(function(){return b.a}));var p=n(460);n.d(e,"mean",(function(){return p.a}));var v=n(461);n.d(e,"median",(function(){return v.a}));var y=n(462);n.d(e,"merge",(function(){return y.a}));var _=n(207);n.d(e,"min",(function(){return _.a}));var g=n(199);n.d(e,"pairs",(function(){return g.a}));var m=n(463);n.d(e,"permute",(function(){return m.a}));var x=n(112);n.d(e,"quantile",(function(){return x.a}));var w=n(204);n.d(e,"range",(function(){return w.a}));var j=n(464);n.d(e,"scan",(function(){return j.a}));var O=n(465);n.d(e,"shuffle",(function(){return O.a}));var M=n(466);n.d(e,"sum",(function(){return M.a}));var k=n(205);n.d(e,"ticks",(function(){return k.a})),n.d(e,"tickIncrement",(function(){return k.b})),n.d(e,"tickStep",(function(){return k.c}));var A=n(208);n.d(e,"transpose",(function(){return A.a}));var T=n(201);n.d(e,"variance",(function(){return T.a}));var S=n(467);n.d(e,"zip",(function(){return S.a}))},function(t,e,n){"use strict";n.d(e,"c",(function(){return C})),e.a=I;var r=n(315),i=n(316),a=n(317),o=n(318),c=n(162),u=n(320),f=n(321),s=n(322),l=n(323),d=n(324),h=n(325),b=n(326),p=n(327),v=n(328),y=n(329),_=n(330),g=n(164),m=n(331),x=n(332),w=n(333),j=n(334),O=n(335),M=n(336),k=n(337),A=n(338),T=n(339),S=n(340),P=n(341),R=n(97),E=n(342),C=[null];function I(t,e){this._groups=t,this._parents=e}function N(){return new I([[document.documentElement]],C)}I.prototype=N.prototype={constructor:I,select:r.a,selectAll:i.a,filter:a.a,data:o.a,enter:c.b,exit:u.a,merge:f.a,order:s.a,sort:l.a,call:d.a,nodes:h.a,node:b.a,size:p.a,empty:v.a,each:y.a,attr:_.a,style:g.a,property:m.a,classed:x.a,text:w.a,html:j.a,raise:O.a,lower:M.a,append:k.a,insert:A.a,remove:T.a,clone:S.a,datum:P.a,on:R.b,dispatch:E.a},e.b=N},function(t,e,n){"use strict";n.d(e,"c",(function(){return c})),n.d(e,"d",(function(){return u})),n.d(e,"b",(function(){return f})),n.d(e,"a",(function(){return s})),e.g=function(t,e){var n=l(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n},e.h=function(t,e){var n=l(t,e);if(n.state>u)throw new Error("too late; already started");return n},e.f=l;var r=n(68),i=n(177),a=Object(r.dispatch)("start","end","interrupt"),o=[],c=1,u=2,f=5,s=6;function l(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}e.e=function(t,e,n,r,l,d){var h=t.__transition;if(h){if(n in h)return}else t.__transition={};!function(t,e,n){var r,a=t.__transition;function o(f){var h,b,p,v;if(n.state!==c)return d();for(h in a)if((v=a[h]).name===n.name){if(3===v.state)return Object(i.b)(o);4===v.state?(v.state=s,v.timer.stop(),v.on.call("interrupt",t,t.__data__,v.index,v.group),delete a[h]):+h0&&(0,l.renderAxes)(o,this.conf,t,this.scale);var u=this.renderDatum(o,this.conf,t._layout);return this.conf.tooltipContent&&(0,i.registerTooltip)(this,t,u,this.conf),u.on("mouseover",(function(e,n){r.dispatch.call("mouseover",r,e),r.conf.tooltipContent&&t.clipboard.attr("value",r.conf.tooltipContent(e))})),u.on("mouseout",(function(t,e){r.dispatch.call("mouseout",r,t)})),Object.keys(this.conf.events).forEach((function(t){var e=r.conf;u.on(t,(function(n,r,i){e.events[t](n,r,i,c.event)}))})),this}},{key:"renderBlock",value:function(t,e,n,r){var i=this,a=t.selectAll(".block").data(e).enter().append("g").attr("class","block").attr("transform",(function(t){return"rotate("+360*n.blocks[t.key].start/(2*Math.PI)+")"}));return r.backgrounds&&a.selectAll(".background").data((function(t){return r.backgrounds.map((function(e){return{start:e.start||r.cmin,end:e.end||r.cmax,angle:n.blocks[t.key].end-n.blocks[t.key].start,color:e.color,opacity:e.opacity}}))})).enter().append("path").attr("class","background").attr("fill",(function(t){return t.color})).attr("opacity",(function(t){return t.opacity||1})).attr("d",(0,o.arc)().innerRadius((function(t){return"in"===r.direction?r.outerRadius-i.scale(t.start):r.innerRadius+i.scale(t.start)})).outerRadius((function(t){return"in"===r.direction?r.outerRadius-i.scale(t.end):r.innerRadius+i.scale(t.end)})).startAngle(0).endAngle((function(t){return t.angle}))),a}},{key:"theta",value:function(t,e){return t/e.len*(e.end-e.start)}},{key:"x",value:function(t,e,n){var r=this.scale(t.value),i="in"===n.direction?n.outerRadius-r:n.innerRadius+r,a=this.theta(t.position,e.blocks[t.block_id])-Math.PI/2;return i*Math.cos(a)}},{key:"y",value:function(t,e,n){var r=this.scale(t.value),i="in"===n.direction?n.outerRadius-r:n.innerRadius+r,a=this.theta(t.position,e.blocks[t.block_id])-Math.PI/2;return i*Math.sin(a)}}]),t}();e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseSpanValueData=function(t,e){return 0===t.length?{data:[],meta:{min:null,max:null}}:d(t.filter((function(t,n){return s(t.block_id,n,e,"parent")})))},e.parseSpanStringData=function(t,e){return 0===t.length?{data:[],meta:{min:null,max:null}}:d(t.filter((function(t,n){return s(t.block_id,n,e,"parent")})).filter((function(t,e){return l({start:t.start,end:t.end},e)})).filter((function(t){return!(t.start<0||t.end>e[t.block_id])||(f.log(2,"position","position inconsistency",{datum:t,layoutSummary:e}),!1)})))},e.parsePositionValueData=function(t,e){return 0===t.length?{data:[],meta:{min:null,max:null}}:d(t.filter((function(t,n){return s(t.block_id,n,e,"parent")})).filter((function(t,e){return l({position:t.position,value:t.value},e)})))},e.parsePositionTextData=function(t,e){return 0===t.length?{data:[],meta:{min:null,max:null}}:d(t.filter((function(t,n){return s(t.block_id,n,e,"parent")})).filter((function(t,e){return l({position:t.position},e)})))},e.parseChordData=function(t,e){if(0===t.length)return{data:[],meta:{min:null,max:null}};var n=t.filter((function(t,n){return t.source?s(t.source.id,n,e,"sourceId"):(f.warn("No source for data at index "+n),!1)})).filter((function(t,n){return t.target?s(t.target.id,n,e,"targetId"):(f.warn("No target for data at index "+n),!1)})).filter((function(t,e){return l({sourceStart:t.source.start,sourceEnd:t.source.end,targetStart:t.target.start,targetEnd:t.target.end,value:t.value||1},e)}));return{data:n,meta:{min:(0,c.min)(n,(function(t){return t.value})),max:(0,c.max)(n,(function(t){return t.value}))}}};var r=u(n(18)),i=u(n(613)),a=u(n(617)),o=(u(n(144)),n(227)),c=n(10);function u(t){return t&&t.__esModule?t:{default:t}}var f=console;function s(t,e,n,a){return!!(0,i.default)((0,r.default)(n),t)||(f.log(1,"datum","unknown parent id",{line:e+1,value:t,header:a,layoutSummary:n}),!1)}function l(t,e){return(0,a.default)(t,(function(t,n){return!isNaN(t)||(f.log(1,"datum","not a number",{line:e+1,value:t,header:n}),!1)}))}function d(t){return{data:(0,o.nest)().key((function(t){return t.block_id})).entries(t),meta:{min:(0,c.min)(t,(function(t){return t.value})),max:(0,c.max)(t,(function(t){return t.value}))}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r={min:{value:null,iteratee:!1},max:{value:null,iteratee:!1},logScale:{value:!1,iteratee:!1},logScaleBase:{value:Math.E,iteratee:!1}};e.axes={axes:{value:[],iteratee:!1},showAxesTooltip:{value:!0,iteratee:!1}},e.palette={colorPaletteSize:{value:9,iteratee:!1},colorPalette:{value:"YlGnBu",iteratee:!1},usePalette:{value:!0,iteratee:!1},colorPaletteReverse:{value:!0,iteratee:!1}},e.radial={innerRadius:{value:0,iteratee:!1},outerRadius:{value:0,iteratee:!1}},e.values=r,e.common={zIndex:{value:!1,iteratee:!1},opacity:{value:1,iteratee:!0},tooltipContent:{value:null,iteratee:!1},events:{value:{},iteratee:!1}}},function(t,e,n){var r=n(243),i=n(248);t.exports=function(t,e){var n=i(t,e);return r(n)?n:void 0}},function(t,e,n){var r=n(16),i=n(7);t.exports=function(t){if(!i(t))return!1;var e=r(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},function(t,e,n){"use strict";e.a=function(t){return function(){return t}}},function(t,e){t.exports={}},function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return a}));var r=Array.prototype,i=r.map,a=r.slice},function(t,e){t.exports=function(t){return t}},function(t,e,n){var r=n(5).Symbol;t.exports=r},function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++ne?1:t>=e?0:NaN}},function(t,e,n){var r=n(476),i=n(478);t.exports=function(t,e,n){return r(i,t,e,n)}},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,n){var r=n(283),i=n(285)(r);t.exports=i},function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n180||n<-180?n-360*Math.round(n/360):n):Object(r.a)(isNaN(t)?e:t)},e.b=function(t){return 1==(t=+t)?a:function(e,n){return n-e?function(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)}}(e,n,t):Object(r.a)(isNaN(e)?n:e)}},e.a=a;var r=n(170);function i(t,e){return function(n){return t+n*e}}function a(t,e){var n=e-t;return n?i(t,n):Object(r.a)(isNaN(t)?e:t)}},function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"d",(function(){return i})),n.d(e,"e",(function(){return a})),n.d(e,"h",(function(){return o})),n.d(e,"i",(function(){return c})),n.d(e,"k",(function(){return u})),n.d(e,"l",(function(){return f})),n.d(e,"f",(function(){return s})),n.d(e,"j",(function(){return l})),n.d(e,"g",(function(){return d})),n.d(e,"m",(function(){return h})),e.b=function(t){return t>1?0:t<-1?l:Math.acos(t)},e.c=function(t){return t>=1?d:t<=-1?-d:Math.asin(t)};var r=Math.abs,i=Math.atan2,a=Math.cos,o=Math.max,c=Math.min,u=Math.sin,f=Math.sqrt,s=1e-12,l=Math.PI,d=l/2,h=2*l},function(t,e,n){"use strict";e.a=function(t,e){if((i=t.length)>1)for(var n,r,i,a=1,o=t[e[0]],c=o.length;a=0;)n[e]=e;return n}},function(t,e,n){"use strict";e.a=function(t){return null===t?NaN:+t}},function(t,e,n){"use strict";e.b=c,e.a=function t(){var e=Object(a.b)(a.c,i.c);return e.copy=function(){return Object(a.a)(e,t())},c(e)};var r=n(10),i=n(8),a=n(76),o=n(527);function c(t){var e=t.domain;return t.ticks=function(t){var n=e();return Object(r.ticks)(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){return Object(o.a)(e(),t,n)},t.nice=function(n){null==n&&(n=10);var i,a=e(),o=0,c=a.length-1,u=a[o],f=a[c];return f0?(u=Math.floor(u/i)*i,f=Math.ceil(f/i)*i,i=Object(r.tickIncrement)(u,f,n)):i<0&&(u=Math.ceil(u*i)/i,f=Math.floor(f*i)/i,i=Object(r.tickIncrement)(u,f,n)),i>0?(a[o]=Math.floor(u/i)*i,a[c]=Math.ceil(f/i)*i,e(a)):i<0&&(a[o]=Math.ceil(u*i)/i,a[c]=Math.floor(f*i)/i,e(a)),t},t}},function(t,e,n){"use strict";e.a=function(t){return t.match(/.{6}/g).map((function(t){return"#"+t}))}},function(t,e){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},function(t,e,n){var r=n(52),i=n(255),a=n(256),o=n(257),c=n(258),u=n(259);function f(t){var e=this.__data__=new r(t);this.size=e.size}f.prototype.clear=i,f.prototype.delete=a,f.prototype.get=o,f.prototype.has=c,f.prototype.set=u,t.exports=f},function(t,e,n){var r=n(250),i=n(251),a=n(252),o=n(253),c=n(254);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t2?l:s,r=o=null,y}function y(e){return(r||(r=n(d,h,p?function(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=e?0:t>=n?1:r(t)}}}(t):t,b)))(+e)}return y.invert=function(t){return(o||(o=n(h,d,f,p?function(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=0?e:t>=1?n:r(t)}}}(e):e)))(+t)},y.domain=function(t){return arguments.length?(d=a.a.call(t,c.a),v()):d.slice()},y.range=function(t){return arguments.length?(h=a.b.call(t),v()):h.slice()},y.rangeRound=function(t){return h=a.b.call(t),b=i.f,v()},y.clamp=function(t){return arguments.length?(p=!!t,v()):p},y.interpolate=function(t){return arguments.length?(b=t,v()):b},v()};var r=n(10),i=n(8),a=n(27),o=n(121),c=n(228),u=[0,1];function f(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Object(o.a)(e)}function s(t,e,n,r){var i=t[0],a=t[1],o=e[0],c=e[1];return a-1&&t%1==0&&t<=9007199254740991}},function(t,e,n){var r=n(277),i=n(60),a=n(89),o=a&&a.isTypedArray,c=o?i(o):r;t.exports=c},function(t,e,n){(function(t){var r=n(128),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i&&r.process,c=function(){try{var t=a&&a.require&&a.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=c}).call(e,n(84)(t))},function(t,e,n){var r=n(83),i=n(38),a=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var o=t[e];a.call(t,e)&&i(o,n)&&(void 0!==n||e in t)||r(t,e,n)}},function(t,e,n){var r=n(149),i=n(150),a=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,c=o?function(t){return null==t?[]:(t=Object(t),r(o(t),(function(e){return a.call(t,e)})))}:i;t.exports=c},function(t,e,n){var r=n(2),i=n(34),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!i(t))||o.test(t)||!a.test(t)||null!=e&&t in Object(e)}},function(t,e,n){"use strict";var r=n(94);e.a=function(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.a.hasOwnProperty(e)?{space:r.a[e],local:t}:t}},function(t,e,n){"use strict";n.d(e,"b",(function(){return r}));var r="http://www.w3.org/1999/xhtml";e.a={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},function(t,e,n){"use strict";function r(){}e.a=function(t){return null==t?r:function(){return this.querySelector(t)}}},function(t,e,n){"use strict";e.a=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}},function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),e.a=function(t,e,n,r){var a=i;t.sourceEvent=i,i=t;try{return e.apply(n,r)}finally{i=a}};var r={},i=null;function a(t,e,n){return t=o(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function o(t,e,n){return function(r){var a=i;i=r;try{t.call(this,this.__data__,e,n)}finally{i=a}}}function c(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function u(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,a=e.length;r>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=l.exec(t))?m(parseInt(e[1],16)):(e=d.exec(t))?new O(e[1],e[2],e[3],1):(e=h.exec(t))?new O(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=b.exec(t))?x(e[1],e[2],e[3],e[4]):(e=p.exec(t))?x(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=v.exec(t))?M(e[1],e[2]/100,e[3]/100,1):(e=y.exec(t))?M(e[1],e[2]/100,e[3]/100,e[4]):_.hasOwnProperty(t)?m(_[t]):"transparent"===t?new O(NaN,NaN,NaN,0):null}function m(t){return new O(t>>16&255,t>>8&255,255&t,1)}function x(t,e,n,r){return r<=0&&(t=e=n=NaN),new O(t,e,n,r)}function w(t){return t instanceof i||(t=g(t)),t?new O((t=t.rgb()).r,t.g,t.b,t.opacity):new O}function j(t,e,n,r){return 1===arguments.length?w(t):new O(t,e,n,null==r?1:r)}function O(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function M(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new T(t,e,n,r)}function k(t){if(t instanceof T)return new T(t.h,t.s,t.l,t.opacity);if(t instanceof i||(t=g(t)),!t)return new T;if(t instanceof T)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),o=Math.max(e,n,r),c=NaN,u=o-a,f=(o+a)/2;return u?(c=e===o?(n-r)/u+6*(n0&&f<1?0:c,new T(c,u,f,t.opacity)}function A(t,e,n,r){return 1===arguments.length?k(t):new T(t,e,n,null==r?1:r)}function T(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function S(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}Object(r.a)(i,g,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),Object(r.a)(O,j,Object(r.b)(i,{brighter:function(t){return t=null==t?o:Math.pow(o,t),new O(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?a:Math.pow(a,t),new O(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){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+")")}})),Object(r.a)(T,A,Object(r.b)(i,{brighter:function(t){return t=null==t?o:Math.pow(o,t),new T(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?a:Math.pow(a,t),new T(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),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 O(S(t>=240?t-240:t+120,i,r),S(t,i,r),S(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}}))},function(t,e,n){"use strict";e.b=function(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n},e.a=function(t,e,n){t.prototype=e.prototype=n,n.constructor=t}},function(t,e,n){"use strict";function r(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}e.a=r,e.b=function(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],o=t[i+1],c=i>0?t[i-1]:2*a-o,u=i=0&&e._call.call(null,t),e=e._next;--a}()}finally{a=0,function(){for(var t,e,n=r,a=1/0;n;)n._call?(a>n._time&&(a=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:r=e);i=t,g(a)}(),f=0}}function _(){var t=l.now(),e=t-u;e>1e3&&(s-=e,u=t)}function g(t){a||(o&&(o=clearTimeout(o)),t-f>24?(t<1/0&&(o=setTimeout(y,t-l.now()-s)),c&&(c=clearInterval(c))):(c||(u=l.now(),c=setInterval(_,1e3)),a=1,d(y)))}p.prototype=v.prototype={constructor:p,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?h():+n)+(null==e?0:+e),this._next||i===this||(i?i._next=this:r=this,i=this),this._call=t,this._time=n,g()},stop:function(){this._call&&(this._call=null,this._time=1/0,g())}}},function(t,e,n){var r=n(51),i=n(64),a=n(90),o=n(181),c=n(404),u=n(134),f=n(30),s=n(405),l=n(406),d=n(147),h=n(407),b=n(41),p=n(408),v=n(409),y=n(137),_=n(2),g=n(59),m=n(413),x=n(7),w=n(415),j=n(18),O={};O["[object Arguments]"]=O["[object Array]"]=O["[object ArrayBuffer]"]=O["[object DataView]"]=O["[object Boolean]"]=O["[object Date]"]=O["[object Float32Array]"]=O["[object Float64Array]"]=O["[object Int8Array]"]=O["[object Int16Array]"]=O["[object Int32Array]"]=O["[object Map]"]=O["[object Number]"]=O["[object Object]"]=O["[object RegExp]"]=O["[object Set]"]=O["[object String]"]=O["[object Symbol]"]=O["[object Uint8Array]"]=O["[object Uint8ClampedArray]"]=O["[object Uint16Array]"]=O["[object Uint32Array]"]=!0,O["[object Error]"]=O["[object Function]"]=O["[object WeakMap]"]=!1,t.exports=function t(e,n,M,k,A,T){var S,P=1&n,R=2&n,E=4&n;if(M&&(S=A?M(e,k,A,T):M(e)),void 0!==S)return S;if(!x(e))return e;var C=_(e);if(C){if(S=p(e),!P)return f(e,S)}else{var I=b(e),N="[object Function]"==I||"[object GeneratorFunction]"==I;if(g(e))return u(e,P);if("[object Object]"==I||"[object Arguments]"==I||N&&!A){if(S=R||N?{}:y(e),!P)return R?l(e,c(S,e)):s(e,o(S,e))}else{if(!O[I])return A?e:{};S=v(e,I,P)}}T||(T=new r);var D=T.get(e);if(D)return D;if(T.set(e,S),w(e))return e.forEach((function(r){S.add(t(r,n,M,r,e,T))})),S;if(m(e))return e.forEach((function(r,i){S.set(i,t(r,n,M,i,e,T))})),S;var z=E?R?h:d:R?keysIn:j,B=C?void 0:z(e);return i(B||e,(function(r,i){B&&(r=e[i=r]),a(S,i,t(r,n,M,i,e,T))})),S}},function(t,e,n){var r=n(417),i=n(39),a=n(33),o=n(418),c=n(2);t.exports=function(t,e,n){var u=c(t)?r:o,f=arguments.length<3;return u(t,a(e,4),n,f,i)}},function(t,e,n){var r=n(107),i=n(422),a=n(78),o=n(63),c=a((function(t,e){if(null==t)return[];var n=e.length;return n>1&&o(t,e[0],e[1])?e=[]:n>2&&o(e[0],e[1],e[2])&&(e=[e[0]]),i(t,r(e,1),[])}));t.exports=c},function(t,e,n){var r=n(65),i=n(421);t.exports=function t(e,n,a,o,c){var u=-1,f=e.length;for(a||(a=i),c||(c=[]);++u0&&a(s)?n>1?t(s,n-1,a,o,c):r(c,s):o||(c[c.length]=s)}return c}},function(t,e,n){"use strict";var r=n(35),i=n(25),a=n(71),o=n(109);e.a=function(){var t=o.a,e=o.b,n=Object(i.a)(!0),c=null,u=a.a,f=null;function s(i){var a,o,s,l=i.length,d=!1;for(null==c&&(f=u(s=Object(r.a)())),a=0;a<=l;++a)!(ar.f){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,f=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/f,a=(a*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/f}if(t._l23_a>r.f){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,l=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-e*t._l12_2a)/l,c=(c*s+t._y1*t._l23_2a-n*t._l12_2a)/l}t._context.bezierCurveTo(i,a,o,c,t._x2,t._y2)}function o(t,e){this._context=t,this._alpha=e}o.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)}(this._line||0!==this._line&&1===this._point)&&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:a(this,t,e)}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}},e.a=function t(e){function n(t){return e?new o(t,e):new i.a(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){"use strict";e.b=i;var r=n(46);function i(t){for(var e,n=0,r=-1,i=t.length;++r=1)return+n(t[i-1],i-1,t);var i,a=(i-1)*e,o=Math.floor(a),c=+n(t[o],o,t);return c+(+n(t[o+1],o+1,t)-c)*(a-o)}}},function(t,e,n){var r=n(211),i=n(480),a=n(481),o=n(213),c=n(495),u=n(116),f=n(496),s=n(219),l=n(220),d=n(119),h=Math.max;t.exports=function(t,e,n,b,p,v,y,_){var g=2&e;if(!g&&"function"!=typeof t)throw new TypeError("Expected a function");var m=b?b.length:0;if(m||(e&=-97,b=p=void 0),y=void 0===y?y:h(d(y),0),_=void 0===_?_:d(_),m-=p?p.length:0,64&e){var x=b,w=p;b=p=void 0}var j=g?void 0:u(t),O=[t,e,n,b,p,x,w,v,y,_];if(j&&f(O,j),t=O[0],e=O[1],n=O[2],b=O[3],p=O[4],!(_=O[9]=void 0===O[9]?g?0:t.length:h(O[9]-m,0))&&24&e&&(e&=-25),e&&1!=e)M=8==e||16==e?a(t,e,_):32!=e&&33!=e||p.length?o.apply(void 0,O):c(t,e,n,b);else var M=i(t,e,n);return l((j?r:s)(M,O),t,e)}},function(t,e,n){var r=n(56),i=n(115);function a(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}a.prototype=r(i.prototype),a.prototype.constructor=a,t.exports=a},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(212),i=n(483),a=r?function(t){return r.get(t)}:i;t.exports=a},function(t,e,n){var r=n(56),i=n(115);function a(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}a.prototype=r(i.prototype),a.prototype.constructor=a,t.exports=a},function(t,e){t.exports=function(t,e){for(var n=-1,r=t.length,i=0,a=[];++n1?r[0]+r.slice(2):r,+t.slice(n+1)]}},function(t,e,n){"use strict";n(4);var r=n(542);n.d(e,"c",(function(){return r.a})),n.d(e,"n",(function(){return r.a}));var i=n(543);n.d(e,"g",(function(){return i.a})),n.d(e,"r",(function(){return i.a}));var a=n(544);n.d(e,"d",(function(){return a.a}));var o=n(545);n.d(e,"b",(function(){return o.a}));var c=n(546);n.d(e,"a",(function(){return c.a}));var u=n(547);n.d(e,"j",(function(){return u.b})),n.d(e,"h",(function(){return u.b})),n.d(e,"e",(function(){return u.a})),n.d(e,"i",(function(){return u.c}));var f=n(548);n.d(e,"f",(function(){return f.a}));var s=n(549);n.d(e,"k",(function(){return s.a}));var l=n(550);n.d(e,"o",(function(){return l.a}));var d=n(551);n.d(e,"m",(function(){return d.a}));var h=n(552);n.d(e,"l",(function(){return h.a}));var b=n(553);n.d(e,"u",(function(){return b.b})),n.d(e,"s",(function(){return b.b})),n.d(e,"p",(function(){return b.a})),n.d(e,"t",(function(){return b.c}));var p=n(554);n.d(e,"q",(function(){return p.a}));var v=n(555);n.d(e,"v",(function(){return v.a}))},function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return a})),n.d(e,"c",(function(){return o}));var r,i,a,o,c,u=n(237);c={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"]},r=Object(u.a)(c),i=r.format,r.parse,a=r.utcFormat,o=r.utcParse},function(t,e,n){var r=n(50),i=n(78),a=n(249),o=n(282),c=i((function(t){return t.push(void 0,a),r(o,void 0,t)}));t.exports=c},function(t,e,n){var r=n(50),i=Math.max;t.exports=function(t,e,n){return e=i(void 0===e?t.length-1:e,0),function(){for(var a=arguments,o=-1,c=i(a.length-e,0),u=Array(c);++o0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},function(t,e,n){var r=n(51),i=n(132),a=n(133),o=n(273),c=n(7),u=n(61),f=n(140);t.exports=function t(e,n,s,l,d){e!==n&&a(n,(function(a,u){if(c(a))d||(d=new r),o(e,n,u,s,t,l,d);else{var h=l?l(f(e,u),a,u+"",e,n,d):void 0;void 0===h&&(h=a),i(e,u,h)}}),u)}},function(t,e,n){var r=n(83),i=n(38);t.exports=function(t,e,n){(void 0===n||i(t[e],n))&&(void 0!==n||e in t)||r(t,e,n)}},function(t,e,n){var r=n(272)();t.exports=r},function(t,e,n){(function(t){var r=n(5),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i?r.Buffer:void 0,c=o?o.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,r=c?c(n):new t.constructor(n);return t.copy(r),r}}).call(e,n(84)(t))},function(t,e,n){var r=n(85);t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},function(t,e,n){var r=n(5).Uint8Array;t.exports=r},function(t,e,n){var r=n(56),i=n(86),a=n(57);t.exports=function(t){return"function"!=typeof t.constructor||a(t)?{}:r(i(t))}},function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},function(t,e,n){var r=n(16),i=n(86),a=n(6),o=Function.prototype,c=Object.prototype,u=o.toString,f=c.hasOwnProperty,s=u.call(Object);t.exports=function(t){if(!a(t)||"[object Object]"!=r(t))return!1;var e=i(t);if(null===e)return!0;var n=f.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==s}},function(t,e){t.exports=function(t,e){if("__proto__"!=e)return t[e]}},function(t,e,n){var r=n(279),i=n(58),a=n(2),o=n(59),c=n(62),u=n(88),f=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=a(t),s=!n&&i(t),l=!n&&!s&&o(t),d=!n&&!s&&!l&&u(t),h=n||s||l||d,b=h?r(t.length,String):[],p=b.length;for(var v in t)!e&&!f.call(t,v)||h&&("length"==v||l&&("offset"==v||"parent"==v)||d&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||c(v,p))||b.push(v);return b}},function(t,e,n){var r=n(78),i=n(63);t.exports=function(t){return r((function(e,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,c=a>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,c&&i(n[0],n[1],c)&&(o=a<3?void 0:o,a=1),e=Object(e);++rs))return!1;var d=u.get(t);if(d&&u.get(e))return d==e;var h=-1,b=!0,p=2&n?new r:void 0;for(u.set(t,e),u.set(e,t);++h1?this.each((null==e?i:"function"==typeof e?o:a)(t,e,null==n?"":n)):c(this.node(),t)}},function(t,e,n){"use strict";e.b=function(t,e){var n=t.document.documentElement,a=Object(r.select)(t).on("dragstart.drag",null);e&&(a.on("click.drag",i.a,!0),setTimeout((function(){a.on("click.drag",null)}),0)),"onselectstart"in n?a.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)};var r=n(3),i=n(166);e.a=function(t){var e=t.document.documentElement,n=Object(r.select)(t).on("dragstart.drag",i.a,!0);"onselectstart"in e?n.on("selectstart.drag",i.a,!0):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}},function(t,e,n){"use strict";e.b=function(){r.event.stopImmediatePropagation()};var r=n(3);e.a=function(){r.event.preventDefault(),r.event.stopImmediatePropagation()}},function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}));var r=Math.PI/180,i=180/Math.PI},function(t,e,n){"use strict";n.d(e,"b",(function(){return u}));var r=n(9),i=n(102),a=n(169),o=n(43);function c(t){return function(e){var n,i,a=e.length,o=new Array(a),c=new Array(a),u=new Array(a);for(n=0;nu&&(c=e.slice(u,c),s[f]?s[f]+=c:s[++f]=c),(n=n[0])===(o=o[0])?s[f]?s[f]+=o:s[++f]=o:(s[++f]=null,l.push({i:f,x:Object(r.a)(n,o)})),u=a.lastIndex;return ur.d&&n.state=o;--c)d.point(y[c],_[c]);d.lineEnd(),d.areaEnd()}v&&(y[a]=+t(h,a,i),_[a]=+n(h,a,i),d.point(e?+e(h,a,i):y[a],u?+u(h,a,i):_[a]))}if(b)return d=null,b+""||null}function b(){return Object(o.a)().defined(f).curve(l).context(s)}return h.x=function(n){return arguments.length?(t="function"==typeof n?n:Object(i.a)(+n),e=null,h):t},h.x0=function(e){return arguments.length?(t="function"==typeof e?e:Object(i.a)(+e),h):t},h.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:Object(i.a)(+t),h):e},h.y=function(t){return arguments.length?(n="function"==typeof t?t:Object(i.a)(+t),u=null,h):n},h.y0=function(t){return arguments.length?(n="function"==typeof t?t:Object(i.a)(+t),h):n},h.y1=function(t){return arguments.length?(u=null==t?null:"function"==typeof t?t:Object(i.a)(+t),h):u},h.lineX0=h.lineY0=function(){return b().x(t).y(n)},h.lineY1=function(){return b().x(t).y(u)},h.lineX1=function(){return b().x(e).y(n)},h.defined=function(t){return arguments.length?(f="function"==typeof t?t:Object(i.a)(!!t),h):f},h.curve=function(t){return arguments.length?(l=t,null!=s&&(d=l(s)),h):l},h.context=function(t){return arguments.length?(null==t?s=d=null:d=l(s=t),h):s},h}},function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),e.b=a;var r=a(n(71).a);function i(t){this._curve=t}function a(t){function e(e){return new i(t(e))}return e._curve=t,e}i.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(t,e,n){"use strict";e.b=a;var r=n(184),i=n(108);function a(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(Object(r.b)(t)):e()._curve},t}e.a=function(){return a(Object(i.a)().curve(r.a))}},function(t,e,n){"use strict";e.a=function(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}},function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var r=Array.prototype.slice},function(t,e,n){"use strict";var r=n(44);e.a={draw:function(t,e){var n=Math.sqrt(e/r.j);t.moveTo(n,0),t.arc(0,0,n,0,r.m)}}},function(t,e,n){"use strict";e.a={draw:function(t,e){var n=Math.sqrt(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()}}},function(t,e,n){"use strict";var r=Math.sqrt(1/3),i=2*r;e.a={draw:function(t,e){var n=Math.sqrt(e/i),a=n*r;t.moveTo(0,-n),t.lineTo(a,0),t.lineTo(0,n),t.lineTo(-a,0),t.closePath()}}},function(t,e,n){"use strict";var r=n(44),i=Math.sin(r.j/10)/Math.sin(7*r.j/10),a=Math.sin(r.m/10)*i,o=-Math.cos(r.m/10)*i;e.a={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),i=a*n,c=o*n;t.moveTo(0,-n),t.lineTo(i,c);for(var u=1;u<5;++u){var f=r.m*u/5,s=Math.cos(f),l=Math.sin(f);t.lineTo(l*n,-s*n),t.lineTo(s*i-l*c,l*i+s*c)}t.closePath()}}},function(t,e,n){"use strict";e.a={draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}}},function(t,e,n){"use strict";var r=Math.sqrt(3);e.a={draw:function(t,e){var n=-Math.sqrt(e/(3*r));t.moveTo(0,2*n),t.lineTo(-r*n,-n),t.lineTo(r*n,-n),t.closePath()}}},function(t,e,n){"use strict";var r=-.5,i=Math.sqrt(3)/2,a=1/Math.sqrt(12),o=3*(a/2+1);e.a={draw:function(t,e){var n=Math.sqrt(e/o),c=n/2,u=n*a,f=c,s=n*a+n,l=-f,d=s;t.moveTo(c,u),t.lineTo(f,s),t.lineTo(l,d),t.lineTo(r*c-i*u,i*c+r*u),t.lineTo(r*f-i*s,i*f+r*s),t.lineTo(r*l-i*d,i*l+r*d),t.lineTo(r*c+i*u,r*u-i*c),t.lineTo(r*f+i*s,r*s-i*f),t.lineTo(r*l+i*d,r*d-i*l),t.closePath()}}},function(t,e,n){"use strict";e.a=a;var r=n(72),i=n(74);function a(t,e){this._context=t,this._k=(1-e)/6}a.prototype={areaStart:r.a,areaEnd:r.a,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)}},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:Object(i.c)(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.b=function t(e){function n(t){return new a(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){"use strict";e.a=i;var r=n(74);function i(t,e){this._context=t,this._k=(1-e)/6}i.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||0!==this._line&&3===this._point)&&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:Object(r.c)(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.b=function t(e){function n(t){return new i(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"a",(function(){return c}));var r=n(36),i=n(198),a=Object(i.a)(r.a),o=a.right,c=a.left;e.c=o},function(t,e,n){"use strict";var r=n(36);e.a=function(t){var e;return 1===t.length&&(e=t,t=function(t,n){return Object(r.a)(e(t),n)}),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[a],n)<0?r=a+1:i=a}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[a],n)>0?i=a:r=a+1}return r}}}},function(t,e,n){"use strict";function r(t,e){return[t,e]}e.b=r,e.a=function(t,e){null==e&&(e=r);for(var n=0,i=t.length-1,a=t[0],o=new Array(i<0?0:i);n1)return f/(o-1)}},function(t,e,n){"use strict";e.a=function(t,e){var n,r,i,a=t.length,o=-1;if(null==e){for(;++o=n)for(r=i=n;++on&&(r=n),i=n)for(r=i=n;++on&&(r=n),i=r?c*=10:u>=i?c*=5:u>=a&&(c*=2),e=0?(u>=r?10:u>=i?5:u>=a?2:1)*Math.pow(10,c):-Math.pow(10,-c)/(u>=r?10:u>=i?5:u>=a?2:1)}e.a=function(t,e,n){var r,i,a,c,u=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((r=e0)for(t=Math.ceil(t/c),e=Math.floor(e/c),a=new Array(i=Math.ceil(e-t+1));++u=n)for(r=n;++an&&(r=n)}else for(;++a=n)for(r=n;++an&&(r=n);return r}},function(t,e,n){"use strict";var r=n(207);function i(t){return t.length}e.a=function(t){if(!(o=t.length))return[];for(var e=-1,n=Object(r.a)(t,i),a=new Array(n);++e3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Math.E;r&&t*e<=0&&console.warn("As log(0) = -∞, a log scale domain must be\n strictly-positive or strictly-negative. logscale ignored");var a=r&&t*e>0?(0,f.scaleLog)().base(i):(0,f.scaleLinear)();return a.domain([t,e]).range([0,n]).clamp(!0)};var r=s(n(475)),i=s(n(506)),a=s(n(509)),o=s(n(511)),c=s(n(514)),u=s(n(518)),f=n(225);function s(t){return t&&t.__esModule?t:{default:t}}},function(t,e,n){var r=n(28),i=n(212),a=i?function(t,e){return i.set(t,e),t}:r;t.exports=a},function(t,e,n){var r=n(151),i=r&&new r;t.exports=i},function(t,e,n){var r=n(214),i=n(215),a=n(482),o=n(75),c=n(216),u=n(222),f=n(494),s=n(118),l=n(5);t.exports=function t(e,n,d,h,b,p,v,y,_,g){var m=128&n,x=1&n,w=2&n,j=24&n,O=512&n,M=w?void 0:o(e);return function k(){for(var A=arguments.length,T=Array(A),S=A;S--;)T[S]=arguments[S];if(j)var P=u(k),R=a(T,P);if(h&&(T=r(T,h,b,j)),p&&(T=i(T,p,v,j)),A-=R,j&&A1&&T.reverse(),m&&_(c=t.charCodeAt(n))||c>57){h=(46===c?l+t.slice(n+1):t.slice(n))+h,t=t.slice(0,n);break}}v&&!b&&(t=e(t,1/0));var O=f.length+t.length+h.length,M=O>1)+f+t+h+M.slice(O);break;default:t=M+f+t+h}return d(t)}return y=null==y?_?6:12:/[gprs]/.test(_)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),j.toString=function(){return t+""},j}return{format:b,formatPrefix:function(t,e){var n=b(((t=Object(o.a)(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Object(r.a)(e)/3))),a=Math.pow(10,-i),c=s[8+i/3];return function(t){return n(a*t)+c}}}}},function(t,e,n){"use strict";e.a=a;var r=n(232),i=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;function a(t){return new o(t)}function o(t){if(!(e=i.exec(t)))throw new Error("invalid format: "+t);var e,n=e[1]||" ",a=e[2]||">",o=e[3]||"-",c=e[4]||"",u=!!e[5],f=e[6]&&+e[6],s=!!e[7],l=e[8]&&+e[8].slice(1),d=e[9]||"";"n"===d?(s=!0,d="g"):r.a[d]||(d=""),(u||"0"===n&&"="===a)&&(u=!0,n="0",a="="),this.fill=n,this.align=a,this.sign=o,this.symbol=c,this.zero=u,this.width=f,this.comma=s,this.precision=l,this.type=d}a.prototype=o.prototype,o.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type}},function(t,e,n){"use strict";var r=n(531),i=n(233),a=n(532);e.a={"":r.a,"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return Object(a.a)(100*t,e)},r:a.a,s:i.a,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}}},function(t,e,n){"use strict";n.d(e,"b",(function(){return r}));var r,i=n(122);e.a=function(t,e){var n=Object(i.a)(t,e);if(!n)return t+"";var a=n[0],o=n[1],c=o-(r=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,u=a.length;return c===u?a:c>u?a+new Array(c-u+1).join("0"):c>0?a.slice(0,c)+"."+a.slice(c):"0."+new Array(1-c).join("0")+Object(i.a)(t,Math.max(0,e+c-1))[0]}},function(t,e,n){"use strict";e.a=function(t,e){var n,r=0,i=(t=t.slice()).length-1,a=t[r],o=t[i];return o=12)]},Q:pt,s:vt,S:F,u:Y,U:q,V:G,w:V,W:X,x:null,X:null,y:H,Y:$,Z:Z,"%":bt},St={a:function(t){return l[t.getUTCDay()]},A:function(t){return s[t.getUTCDay()]},b:function(t){return yt[t.getUTCMonth()]},B:function(t){return d[t.getUTCMonth()]},c:null,d:K,e:K,f:nt,H:J,I:Q,j:tt,L:et,m:rt,M:it,p:function(t){return f[+(t.getUTCHours()>=12)]},Q:pt,s:vt,S:at,u:ot,U:ct,V:ut,w:ft,W:st,x:null,X:null,y:lt,Y:dt,Z:ht,"%":bt},Pt={a:function(t,e,n){var r=wt.exec(e.slice(n));return r?(t.w=jt[r[0].toLowerCase()],n+r[0].length):-1},A:function(t,e,n){var r=mt.exec(e.slice(n));return r?(t.w=xt[r[0].toLowerCase()],n+r[0].length):-1},b:function(t,e,n){var r=kt.exec(e.slice(n));return r?(t.m=At[r[0].toLowerCase()],n+r[0].length):-1},B:function(t,e,n){var r=Ot.exec(e.slice(n));return r?(t.m=Mt[r[0].toLowerCase()],n+r[0].length):-1},c:function(t,n,r){return Ct(t,e,n,r)},d:O,e:O,f:P,H:k,I:k,j:M,L:S,m:j,M:A,p:function(t,e,n){var r=_t.exec(e.slice(n));return r?(t.p=gt[r[0].toLowerCase()],n+r[0].length):-1},Q:E,s:C,S:T,u:v,U:y,V:_,w:p,W:g,x:function(t,e,r){return Ct(t,n,e,r)},X:function(t,e,n){return Ct(t,u,e,n)},y:x,Y:m,Z:w,"%":R};function Rt(t,e){return function(n){var r,i,a,o=[],u=-1,f=0,s=t.length;for(n instanceof Date||(n=new Date(+n));++u53)return null;"w"in u||(u.w=1),"Z"in u?(c=(i=a(o(u.y))).getUTCDay(),i=c>4||0===c?r.p.ceil(i):Object(r.p)(i),i=r.l.offset(i,7*(u.V-1)),u.y=i.getUTCFullYear(),u.m=i.getUTCMonth(),u.d=i.getUTCDate()+(u.w+6)%7):(c=(i=e(o(u.y))).getDay(),i=c>4||0===c?r.e.ceil(i):Object(r.e)(i),i=r.a.offset(i,7*(u.V-1)),u.y=i.getFullYear(),u.m=i.getMonth(),u.d=i.getDate()+(u.w+6)%7)}else("W"in u||"U"in u)&&("w"in u||(u.w="u"in u?u.u%7:"W"in u?1:0),c="Z"in u?a(o(u.y)).getUTCDay():e(o(u.y)).getDay(),u.m=0,u.d="W"in u?(u.w+6)%7+7*u.W-(c+5)%7:u.w+7*u.U-(c+6)%7);return"Z"in u?(u.H+=u.Z/100|0,u.M+=u.Z%100,a(u)):e(u)}}function Ct(t,e,n,r){for(var i,a,o=0,u=e.length,f=n.length;o=f)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=Pt[i in c?e.charAt(o++):i])||(r=a(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return(Tt.x=Rt(n,Tt),Tt.X=Rt(u,Tt),Tt.c=Rt(e,Tt),St.x=Rt(n,St),St.X=Rt(u,St),St.c=Rt(e,St),{format:function(t){var e=Rt(t+="",Tt);return e.toString=function(){return t},e},parse:function(t){var e=Et(t+="",i);return e.toString=function(){return t},e},utcFormat:function(t){var e=Rt(t+="",St);return e.toString=function(){return t},e},utcParse:function(t){var e=Et(t,a);return e.toString=function(){return t},e}})};var r=n(123);function i(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 a(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 o(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}var c={"-":"",_:" ",0:"0"},u=/^\s*\d+/,f=/^%/,s=/[\\^$*+?|[\]().{}]/g;function l(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a68?1900:2e3),n+r[0].length):-1}function w(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 j(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function O(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function M(t,e,n){var r=u.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function k(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function A(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function T(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function S(t,e,n){var r=u.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function P(t,e,n){var r=u.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function R(t,e,n){var r=f.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function E(t,e,n){var r=u.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function C(t,e,n){var r=u.exec(e.slice(n));return r?(t.Q=1e3*+r[0],n+r[0].length):-1}function I(t,e){return l(t.getDate(),e,2)}function N(t,e){return l(t.getHours(),e,2)}function D(t,e){return l(t.getHours()%12||12,e,2)}function z(t,e){return l(1+r.a.count(Object(r.k)(t),t),e,3)}function B(t,e){return l(t.getMilliseconds(),e,3)}function U(t,e){return B(t,e)+"000"}function L(t,e){return l(t.getMonth()+1,e,2)}function W(t,e){return l(t.getMinutes(),e,2)}function F(t,e){return l(t.getSeconds(),e,2)}function Y(t){var e=t.getDay();return 0===e?7:e}function q(t,e){return l(r.h.count(Object(r.k)(t),t),e,2)}function G(t,e){var n=t.getDay();return t=n>=4||0===n?Object(r.i)(t):r.i.ceil(t),l(r.i.count(Object(r.k)(t),t)+(4===Object(r.k)(t).getDay()),e,2)}function V(t){return t.getDay()}function X(t,e){return l(r.e.count(Object(r.k)(t),t),e,2)}function H(t,e){return l(t.getFullYear()%100,e,2)}function $(t,e){return l(t.getFullYear()%1e4,e,4)}function Z(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+l(e/60|0,"0",2)+l(e%60,"0",2)}function K(t,e){return l(t.getUTCDate(),e,2)}function J(t,e){return l(t.getUTCHours(),e,2)}function Q(t,e){return l(t.getUTCHours()%12||12,e,2)}function tt(t,e){return l(1+r.l.count(Object(r.v)(t),t),e,3)}function et(t,e){return l(t.getUTCMilliseconds(),e,3)}function nt(t,e){return et(t,e)+"000"}function rt(t,e){return l(t.getUTCMonth()+1,e,2)}function it(t,e){return l(t.getUTCMinutes(),e,2)}function at(t,e){return l(t.getUTCSeconds(),e,2)}function ot(t){var e=t.getUTCDay();return 0===e?7:e}function ct(t,e){return l(r.s.count(Object(r.v)(t),t),e,2)}function ut(t,e){var n=t.getUTCDay();return t=n>=4||0===n?Object(r.t)(t):r.t.ceil(t),l(r.t.count(Object(r.v)(t),t)+(4===Object(r.v)(t).getUTCDay()),e,2)}function ft(t){return t.getUTCDay()}function st(t,e){return l(r.p.count(Object(r.v)(t),t),e,2)}function lt(t,e){return l(t.getUTCFullYear()%100,e,2)}function dt(t,e){return l(t.getUTCFullYear()%1e4,e,4)}function ht(){return"+0000"}function bt(){return"%"}function pt(t){return+t}function vt(t){return Math.floor(+t/1e3)}},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(124),i="%Y-%m-%dT%H:%M:%S.%LZ";Date.prototype.toISOString||Object(r.b)(i)},function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"d",(function(){return i})),n.d(e,"b",(function(){return o})),n.d(e,"e",(function(){return c})),n.d(e,"c",(function(){return u}));var r=Math.cos,i=Math.sin,a=Math.PI,o=a/2,c=2*a,u=Math.max},function(t,e,n){"use strict";var r=function(){function t(t,e){for(var n=0;n-1}},function(t,e,n){var r=n(53);t.exports=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}},function(t,e,n){var r=n(52);t.exports=function(){this.__data__=new r,this.size=0}},function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},function(t,e){t.exports=function(t){return this.__data__.get(t)}},function(t,e){t.exports=function(t){return this.__data__.has(t)}},function(t,e,n){var r=n(52),i=n(81),a=n(82);t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var o=n.__data__;if(!i||o.length<199)return o.push([t,e]),this.size=++n.size,this;n=this.__data__=new a(o)}return n.set(t,e),this.size=n.size,this}},function(t,e,n){var r=n(261),i=n(52),a=n(81);t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}},function(t,e,n){var r=n(262),i=n(263),a=n(264),o=n(265),c=n(266);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=O&&(O=j+1);!(w=m[O])&&++O<_;);x._next=w||null}}return(s=new r.a(s,i))._enter=l,s._exit=d,s}},function(t,e,n){"use strict";e.a=function(t){return function(){return t}}},function(t,e,n){"use strict";var r=n(163),i=n(11);e.a=function(){return new i.a(this._exit||this._groups.map(r.a),this._parents)}},function(t,e,n){"use strict";var r=n(11);e.a=function(t){for(var e=this._groups,n=t._groups,i=e.length,a=n.length,o=Math.min(i,a),c=new Array(i),u=0;u=0;)(r=i[a])&&(o&&o!==r.nextSibling&&o.parentNode.insertBefore(r,o),o=r);return this}},function(t,e,n){"use strict";var r=n(11);function i(t,e){return te?1:t>=e?0:NaN}e.a=function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=i);for(var n=this._groups,a=n.length,o=new Array(a),c=0;c1?this.each((null==e?r:"function"==typeof e?a:i)(t,e)):this.node()[t]}},function(t,e,n){"use strict";function r(t){return t.trim().split(/^|\s+/)}function i(t){return t.classList||new a(t)}function a(t){this._node=t,this._names=r(t.getAttribute("class")||"")}function o(t,e){for(var n=i(t),r=-1,a=e.length;++r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}},e.a=function(t,e){var n=r(t+"");if(arguments.length<2){for(var a=i(this.node()),o=-1,c=n.length;++or?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}e.a=function(){var t,e,n=d,_=h,g=y,m=p,x=v,w=[0,1/0],j=[[-1/0,-1/0],[1/0,1/0]],O=250,M=a.j,k=[],A=Object(r.dispatch)("start","zoom","end"),T=0;function S(t){t.property("__zoom",b).on("wheel.zoom",D).on("mousedown.zoom",z).on("dblclick.zoom",B).filter(x).on("touchstart.zoom",U).on("touchmove.zoom",L).on("touchend.zoom touchcancel.zoom",W).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function P(t,e){return(e=Math.max(w[0],Math.min(w[1],e)))===t.k?t:new s.a(e,t.x,t.y)}function R(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new s.a(t.k,r,i)}function E(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function C(t,e,n){t.on("start.zoom",(function(){I(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){I(this,arguments).end()})).tween("zoom",(function(){var t=this,r=arguments,i=I(t,r),a=_.apply(t,r),o=n||E(a),c=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),u=t.__zoom,f="function"==typeof e?e.apply(t,r):e,l=M(u.invert(o).concat(c/u.k),f.invert(o).concat(c/f.k));return function(t){if(1===t)t=f;else{var e=l(t),n=c/e[2];t=new s.a(n,o[0]-e[0]*n,o[1]-e[1]*n)}i.zoom(null,t)}}))}function I(t,e){for(var n,r=0,i=k.length;rT}t.zoom("mouse",g(R(t.that.__zoom,t.mouse[0]=Object(o.mouse)(t.that),t.mouse[1]),t.extent,j))}function d(){r.on("mousemove.zoom mouseup.zoom",null),Object(i.b)(o.event.view,t.moved),Object(l.a)(),t.end()}}function B(){if(n.apply(this,arguments)){var t=this.__zoom,e=Object(o.mouse)(this),r=t.invert(e),i=t.k*(o.event.shiftKey?.5:2),a=g(R(P(t,i),e,r),_.apply(this,arguments),j);Object(l.a)(),O>0?Object(o.select)(this).transition().duration(O).call(C,a,e):Object(o.select)(this).call(S.transform,a)}}function U(){if(n.apply(this,arguments)){var e,r,i,a,u=I(this,arguments),f=o.event.changedTouches,s=f.length;for(Object(l.b)(),r=0;r=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function c(t,e){for(var n,r=0,i=t.length;r0)for(var n,r,i=new Array(n),a=0;a.008856451679035631?Math.pow(t,1/3):t/c+4/29}function d(t){return t>o?t*t*t:c*(t-4/29)}function h(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function b(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function p(t){if(t instanceof y)return new y(t.h,t.c,t.l,t.opacity);t instanceof s||(t=u(t));var e=Math.atan2(t.b,t.a)*a.b;return new y(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function v(t,e,n,r){return 1===arguments.length?p(t):new y(t,e,n,null==r?1:r)}function y(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}Object(r.a)(s,f,Object(r.b)(i.a,{brighter:function(t){return new s(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new s(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){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 t=1*d(t),e=.95047*d(e),n=1.08883*d(n),new i.b(h(3.2404542*e-1.5371385*t-.4985314*n),h(-.969266*e+1.8760108*t+.041556*n),h(.0556434*e-.2040259*t+1.0572252*n),this.opacity)}})),Object(r.a)(y,v,Object(r.b)(i.a,{brighter:function(t){return new y(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new y(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return u(this).rgb()}}))},function(t,e,n){"use strict";e.a=p;var r=n(101),i=n(100),a=n(167),o=-.14861,c=1.78277,u=-.29227,f=-.90649,s=1.97294,l=s*f,d=s*c,h=c*u-f*o;function b(t){if(t instanceof v)return new v(t.h,t.s,t.l,t.opacity);t instanceof i.b||(t=Object(i.h)(t));var e=t.r/255,n=t.g/255,r=t.b/255,o=(h*r+l*e-d*n)/(h+l-d),c=r-o,b=(s*(n-o)-u*c)/f,p=Math.sqrt(b*b+c*c)/(s*o*(1-o)),y=p?Math.atan2(b,c)*a.b-120:NaN;return new v(y<0?y+360:y,p,o,t.opacity)}function p(t,e,n,r){return 1===arguments.length?b(t):new v(t,e,n,null==r?1:r)}function v(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Object(r.a)(v,p,Object(r.b)(i.a,{brighter:function(t){return t=null==t?i.c:Math.pow(i.c,t),new v(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?i.d:Math.pow(i.d,t),new v(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*a.a,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),l=Math.sin(t);return new i.b(255*(e+n*(o*r+c*l)),255*(e+n*(u*r+f*l)),255*(e+n*(s*r)),this.opacity)}}))},function(t,e,n){"use strict";e.a=function(t,e){return e-=t=+t,function(n){return Math.round(t+e*n)}}},function(t,e,n){"use strict";n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return c}));var r=n(69),i=n(359);function a(t,e,n,i){function a(t){return t.length?t.pop()+" ":""}return function(o,c){var u=[],f=[];return o=t(o),c=t(c),function(t,i,a,o,c,u){if(t!==a||i!==o){var f=c.push("translate(",null,e,null,n);u.push({i:f-4,x:Object(r.a)(t,a)},{i:f-2,x:Object(r.a)(i,o)})}else(a||o)&&c.push("translate("+a+e+o+n)}(o.translateX,o.translateY,c.translateX,c.translateY,u,f),function(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(a(n)+"rotate(",null,i)-2,x:Object(r.a)(t,e)})):e&&n.push(a(n)+"rotate("+e+i)}(o.rotate,c.rotate,u,f),function(t,e,n,o){t!==e?o.push({i:n.push(a(n)+"skewX(",null,i)-2,x:Object(r.a)(t,e)}):e&&n.push(a(n)+"skewX("+e+i)}(o.skewX,c.skewX,u,f),function(t,e,n,i,o,c){if(t!==n||e!==i){var u=o.push(a(o)+"scale(",null,",",null,")");c.push({i:u-4,x:Object(r.a)(t,n)},{i:u-2,x:Object(r.a)(e,i)})}else 1===n&&1===i||o.push(a(o)+"scale("+n+","+i+")")}(o.scaleX,o.scaleY,c.scaleX,c.scaleY,u,f),o=c=null,function(t){for(var e,n=-1,r=f.length;++n=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?r.g:r.h;return function(){var r=o(this,t),c=r.on;c!==i&&(a=(i=c).copy()).on(e,n),r.on=a}}e.a=function(t,e){var n=this._id;return arguments.length<2?Object(r.f)(this.node(),n).on.on(t):this.each(i(n,t,e))}},function(t,e,n){"use strict";e.a=function(){return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}));var t}},function(t,e,n){"use strict";var r=n(3),i=n(19),a=n(12);e.a=function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=Object(r.selector)(t));for(var o=this._groups,c=o.length,u=new Array(c),f=0;fi.c&&n.name===e)return new r.a([[t]],a,e,+o);return null}},function(t,e,n){"use strict";e.a=function(t){return function(){return t}}},function(t,e,n){"use strict";e.a=function(t,e,n){this.target=t,this.type=e,this.transform=n}},function(t,e,n){"use strict";e.b=function(){r.event.stopImmediatePropagation()};var r=n(3);e.a=function(){r.event.preventDefault(),r.event.stopImmediatePropagation()}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[],e=arguments[1],n=arguments[2],o=0===t.length,c=n.svg.attr("width",n.conf.width).attr("height",n.conf.height);e&&(0,r.default)(n.tracks,(function(t,e){c.select("."+e).remove()}));var u=c.select(".all");u.empty()&&(u=c.append("g").attr("class","all").attr("transform","translate(\n "+parseInt(n.conf.width/2)+",\n "+parseInt(n.conf.height/2)+"\n )")),(0,r.default)(n.tracks,(function(e,r){(o||r in t)&&e.render(n,u,r)})),(o||"layout"in t)&&(0,a.default)(u,n);var f=c.selectAll(".all > g").remove(),s=(0,i.default)(f._groups[0],(function(t){return t.getAttribute("z-index")}));return c.select(".all").selectAll("g").data(s).enter().append((function(t){return t})),n};var r=o(n(32)),i=o(n(106)),a=o(n(426));function o(t){return t&&t.__esModule?t:{default:t}}},function(t,e,n){var r=n(29),i=n(58),a=n(2),o=r?r.isConcatSpreadable:void 0;t.exports=function(t){return a(t)||i(t)||!!(o&&t&&t[o])}},function(t,e,n){var r=n(40),i=n(33),a=n(158),o=n(423),c=n(60),u=n(424),f=n(28);t.exports=function(t,e,n){var s=-1;e=r(e.length?e:[f],c(i));var l=a(t,(function(t,n,i){return{criteria:r(e,(function(e){return e(t)})),index:++s,value:t}}));return o(l,(function(t,e){return u(t,e,n)}))}},function(t,e){t.exports=function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}},function(t,e,n){var r=n(425);t.exports=function(t,e,n){for(var i=-1,a=t.criteria,o=e.criteria,c=a.length,u=n.length;++i=u?f:f*("desc"==n[i]?-1:1)}return t.index-e.index}},function(t,e,n){var r=n(34);t.exports=function(t,e){if(t!==e){var n=void 0!==t,i=null===t,a=t==t,o=r(t),c=void 0!==e,u=null===e,f=e==e,s=r(e);if(!u&&!s&&!o&&t>e||o&&c&&f&&!u&&!s||i&&c&&f||!n&&f||!a)return 1;if(!i&&!o&&!s&&tMath.PI?"rotate(180)translate(-16)":null})).style("text-anchor",(function(t){return t.angle>Math.PI?"end":null})).style("font-size",t.ticks.labelSize+"px").style("fill",t.ticks.labelColor).text((function(t){return t.label}))}(n,o,e)};var r=n(13),i=n(10),a=n(3)},function(t,e,n){"use strict";var r=n(35),i=n(25),a=n(44);function o(t){return t.innerRadius}function c(t){return t.outerRadius}function u(t){return t.startAngle}function f(t){return t.endAngle}function s(t){return t&&t.padAngle}function l(t,e,n,r,i,a,o,c){var u=n-t,f=r-e,s=o-i,l=c-a,d=(s*(e-a)-l*(t-i))/(l*u-s*f);return[t+d*u,e+d*f]}function d(t,e,n,r,i,o,c){var u=t-n,f=e-r,s=(c?o:-o)/Object(a.l)(u*u+f*f),l=s*f,d=-s*u,h=t+l,b=e+d,p=n+l,v=r+d,y=(h+p)/2,_=(b+v)/2,g=p-h,m=v-b,x=g*g+m*m,w=i-o,j=h*v-p*b,O=(m<0?-1:1)*Object(a.l)(Object(a.h)(0,w*w*x-j*j)),M=(j*m-g*O)/x,k=(-j*g-m*O)/x,A=(j*m+g*O)/x,T=(-j*g+m*O)/x,S=M-y,P=k-_,R=A-y,E=T-_;return S*S+P*P>R*R+E*E&&(M=A,k=T),{cx:M,cy:k,x01:-l,y01:-d,x11:M*(i/w-1),y11:k*(i/w-1)}}e.a=function(){var t=o,e=c,n=Object(i.a)(0),h=null,b=u,p=f,v=s,y=null;function _(){var i,o,c=+t.apply(this,arguments),u=+e.apply(this,arguments),f=b.apply(this,arguments)-a.g,s=p.apply(this,arguments)-a.g,_=Object(a.a)(s-f),g=s>f;if(y||(y=i=Object(r.a)()),ua.f)if(_>a.m-a.f)y.moveTo(u*Object(a.e)(f),u*Object(a.k)(f)),y.arc(0,0,u,f,s,!g),c>a.f&&(y.moveTo(c*Object(a.e)(s),c*Object(a.k)(s)),y.arc(0,0,c,s,f,g));else{var m,x,w=f,j=s,O=f,M=s,k=_,A=_,T=v.apply(this,arguments)/2,S=T>a.f&&(h?+h.apply(this,arguments):Object(a.l)(c*c+u*u)),P=Object(a.i)(Object(a.a)(u-c)/2,+n.apply(this,arguments)),R=P,E=P;if(S>a.f){var C=Object(a.c)(S/c*Object(a.k)(T)),I=Object(a.c)(S/u*Object(a.k)(T));(k-=2*C)>a.f?(O+=C*=g?1:-1,M-=C):(k=0,O=M=(f+s)/2),(A-=2*I)>a.f?(w+=I*=g?1:-1,j-=I):(A=0,w=j=(f+s)/2)}var N=u*Object(a.e)(w),D=u*Object(a.k)(w),z=c*Object(a.e)(M),B=c*Object(a.k)(M);if(P>a.f){var U=u*Object(a.e)(j),L=u*Object(a.k)(j),W=c*Object(a.e)(O),F=c*Object(a.k)(O);if(_a.f?l(N,D,W,F,U,L,z,B):[z,B],q=N-Y[0],G=D-Y[1],V=U-Y[0],X=L-Y[1],H=1/Object(a.k)(Object(a.b)((q*V+G*X)/(Object(a.l)(q*q+G*G)*Object(a.l)(V*V+X*X)))/2),$=Object(a.l)(Y[0]*Y[0]+Y[1]*Y[1]);R=Object(a.i)(P,(c-$)/(H-1)),E=Object(a.i)(P,(u-$)/(H+1))}}A>a.f?E>a.f?(m=d(W,F,N,D,u,E,g),x=d(U,L,z,B,u,E,g),y.moveTo(m.cx+m.x01,m.cy+m.y01),Ea.f&&k>a.f?R>a.f?(m=d(z,B,U,L,c,-R,g),x=d(N,D,W,F,c,-R,g),y.lineTo(m.cx+m.x01,m.cy+m.y01),R1e-6)if(Math.abs(l*u-f*s)>1e-6&&a){var h=n-o,b=i-c,p=u*u+f*f,v=h*h+b*b,y=Math.sqrt(p),_=Math.sqrt(d),g=a*Math.tan((r-Math.acos((p+d-v)/(2*y*_)))/2),m=g/_,x=g/y;Math.abs(m-1)>1e-6&&(this._+="L"+(t+m*s)+","+(e+m*l)),this._+="A"+a+","+a+",0,0,"+ +(l*h>s*b)+","+(this._x1=t+x*u)+","+(this._y1=e+x*f)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,o,c,u){t=+t,e=+e;var f=(n=+n)*Math.cos(o),s=n*Math.sin(o),l=t+f,d=e+s,h=1^u,b=u?o-c:c-o;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+d:(Math.abs(this._x1-l)>1e-6||Math.abs(this._y1-d)>1e-6)&&(this._+="L"+l+","+d),n&&(b<0&&(b=b%i+i),b>a?this._+="A"+n+","+n+",0,1,"+h+","+(t-f)+","+(e-s)+"A"+n+","+n+",0,1,"+h+","+(this._x1=l)+","+(this._y1=d):b>1e-6&&(this._+="A"+n+","+n+",0,"+ +(b>=r)+","+h+","+(this._x1=t+n*Math.cos(c))+","+(this._y1=e+n*Math.sin(c))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}},e.a=c},function(t,e,n){"use strict";var r=n(25),i=n(430),a=n(431),o=n(44);e.a=function(){var t=a.a,e=i.a,n=null,c=Object(r.a)(0),u=Object(r.a)(o.m),f=Object(r.a)(0);function s(r){var i,a,s,l,d,h=r.length,b=0,p=new Array(h),v=new Array(h),y=+c.apply(this,arguments),_=Math.min(o.m,Math.max(-o.m,u.apply(this,arguments)-y)),g=Math.min(Math.abs(_)/h,f.apply(this,arguments)),m=g*(_<0?-1:1);for(i=0;i0&&(b+=d);for(null!=e?p.sort((function(t,n){return e(v[t],v[n])})):null!=n&&p.sort((function(t,e){return n(r[t],r[e])})),i=0,s=b?(_-h*m)/b:0;i0?d*s:0)+m,v[a]={data:r[a],index:i,value:d,startAngle:y,endAngle:l,padAngle:g};return v}return s.value=function(e){return arguments.length?(t="function"==typeof e?e:Object(r.a)(+e),s):t},s.sortValues=function(t){return arguments.length?(e=t,n=null,s):e},s.sort=function(t){return arguments.length?(n=t,e=null,s):n},s.startAngle=function(t){return arguments.length?(c="function"==typeof t?t:Object(r.a)(+t),s):c},s.endAngle=function(t){return arguments.length?(u="function"==typeof t?t:Object(r.a)(+t),s):u},s.padAngle=function(t){return arguments.length?(f="function"==typeof t?t:Object(r.a)(+t),s):f},s}},function(t,e,n){"use strict";e.a=function(t,e){return et?1:e>=t?0:NaN}},function(t,e,n){"use strict";e.a=function(t){return t}},function(t,e,n){"use strict";var r=n(184),i=n(183),a=n(185);e.a=function(){var t=Object(i.a)().curve(r.a),e=t.curve,n=t.lineX0,o=t.lineX1,c=t.lineY0,u=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 Object(a.b)(n())},delete t.lineX0,t.lineEndAngle=function(){return Object(a.b)(o())},delete t.lineX1,t.lineInnerRadius=function(){return Object(a.b)(c())},delete t.lineY0,t.lineOuterRadius=function(){return Object(a.b)(u())},delete t.lineY1,t.curve=function(t){return arguments.length?e(Object(r.b)(t)):e()._curve},t}},function(t,e,n){"use strict";e.a=function(){return s(l)},e.c=function(){return s(d)},e.b=function(){var t=s(h);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t};var r=n(35),i=n(187),a=n(25),o=n(109),c=n(186);function u(t){return t.source}function f(t){return t.target}function s(t){var e=u,n=f,c=o.a,s=o.b,l=null;function d(){var a,o=i.a.call(arguments),u=e.apply(this,o),f=n.apply(this,o);if(l||(l=a=Object(r.a)()),t(l,+c.apply(this,(o[0]=u,o)),+s.apply(this,o),+c.apply(this,(o[0]=f,o)),+s.apply(this,o)),a)return l=null,a+""||null}return d.source=function(t){return arguments.length?(e=t,d):e},d.target=function(t){return arguments.length?(n=t,d):n},d.x=function(t){return arguments.length?(c="function"==typeof t?t:Object(a.a)(+t),d):c},d.y=function(t){return arguments.length?(s="function"==typeof t?t:Object(a.a)(+t),d):s},d.context=function(t){return arguments.length?(l=null==t?null:t,d):l},d}function l(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e=(e+r)/2,n,e,i,r,i)}function d(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e,n=(n+i)/2,r,n,r,i)}function h(t,e,n,r,i){var a=Object(c.a)(e,n),o=Object(c.a)(e,n=(n+i)/2),u=Object(c.a)(r,n),f=Object(c.a)(r,i);t.moveTo(a[0],a[1]),t.bezierCurveTo(o[0],o[1],u[0],u[1],f[0],f[1])}},function(t,e,n){"use strict";n.d(e,"b",(function(){return d}));var r=n(35),i=n(188),a=n(189),o=n(190),c=n(191),u=n(192),f=n(193),s=n(194),l=n(25),d=[i.a,a.a,o.a,u.a,c.a,f.a,s.a];e.a=function(){var t=Object(l.a)(i.a),e=Object(l.a)(64),n=null;function a(){var i;if(n||(n=i=Object(r.a)()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),i)return n=null,i+""||null}return a.type=function(e){return arguments.length?(t="function"==typeof e?e:Object(l.a)(e),a):t},a.size=function(t){return arguments.length?(e="function"==typeof t?t:Object(l.a)(+t),a):e},a.context=function(t){return arguments.length?(n=null==t?null:t,a):n},a}},function(t,e,n){"use strict";var r=n(72),i=n(73);function a(t){this._context=t}a.prototype={areaStart:r.a,areaEnd:r.a,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)}},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:Object(i.c)(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new a(t)}},function(t,e,n){"use strict";var r=n(73);function i(t){this._context=t}i.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||0!==this._line&&3===this._point)&&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,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:Object(r.c)(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new i(t)}},function(t,e,n){"use strict";var r=n(73);function i(t,e){this._basis=new r.a(t),this._beta=e}i.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,i=t[0],a=e[0],o=t[n]-i,c=e[n]-a,u=-1;++u<=n;)r=u/n,this._basis.point(this._beta*t[u]+(1-this._beta)*(i+r*o),this._beta*e[u]+(1-this._beta)*(a+r*c));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}},e.a=function t(e){function n(t){return 1===e?new r.a(t):new i(t,e)}return n.beta=function(e){return t(+e)},n}(.85)},function(t,e,n){"use strict";var r=n(195),i=n(72),a=n(110);function o(t,e){this._context=t,this._alpha=e}o.prototype={areaStart:i.a,areaEnd:i.a,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)}},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:Object(a.b)(this,t,e)}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}},e.a=function t(e){function n(t){return e?new o(t,e):new r.a(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){"use strict";var r=n(196),i=n(110);function a(t,e){this._context=t,this._alpha=e}a.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||0!==this._line&&3===this._point)&&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:Object(i.b)(this,t,e)}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}},e.a=function t(e){function n(t){return e?new a(t,e):new r.a(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){"use strict";var r=n(72);function i(t){this._context=t}i.prototype={areaStart:r.a,areaEnd:r.a,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))}},e.a=function(t){return new i(t)}},function(t,e,n){"use strict";function r(t){return t<0?-1:1}function i(t,e,n){var i=t._x1-t._x0,a=e-t._x1,o=(t._y1-t._y0)/(i||a<0&&-0),c=(n-t._y1)/(a||i<0&&-0),u=(o*a+c*i)/(i+a);return(r(o)+r(c))*Math.min(Math.abs(o),Math.abs(c),.5*Math.abs(u))||0}function a(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function o(t,e,n){var r=t._x0,i=t._y0,a=t._x1,o=t._y1,c=(a-r)/3;t._context.bezierCurveTo(r+c,i+c*e,a-c,o-c*n,a,o)}function c(t){this._context=t}function u(t){this._context=new f(t)}function f(t){this._context=t}e.a=function(t){return new c(t)},e.b=function(t){return new u(t)},c.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:o(this,this._t0,a(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+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,o(this,a(this,n=i(this,t,e)),n);break;default:o(this,this._t0,n=i(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(u.prototype=Object.create(c.prototype)).point=function(t,e){c.prototype.point.call(this,e,t)},f.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,a){this._context.bezierCurveTo(e,t,r,n,a,i)}}},function(t,e,n){"use strict";function r(t){this._context=t}function i(t){var e,n,r=t.length-1,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(o[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e=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)}}this._x=t,this._y=e}},e.a=function(t){return new r(t,.5)}},function(t,e,n){"use strict";var r=n(187),i=n(25),a=n(45),o=n(46);function c(t,e){return t[e]}e.a=function(){var t=Object(i.a)([]),e=o.a,n=a.a,u=c;function f(r){var i,a,o=t.apply(this,arguments),c=r.length,f=o.length,s=new Array(f);for(i=0;i0){for(var n,i,a,o=0,c=t[0].length;o1)for(var n,r,i,a,o,c,u=0,f=t[e[0]].length;u=0?(r[0]=a,r[1]=a+=i):i<0?(r[1]=o,r[0]=o+=i):r[0]=a}},function(t,e,n){"use strict";var r=n(45);e.a=function(t,e){if((n=t.length)>0){for(var n,i=0,a=t[e[0]],o=a.length;i0&&(i=(n=t[e[0]]).length)>0){for(var n,i,a,o=0,c=1;ct?1:e>=t?0:NaN}},function(t,e,n){"use strict";var r=n(203),i=n(197),a=n(455),o=n(202),c=n(456),u=n(204),f=n(205),s=n(206);e.a=function(){var t=c.a,e=o.a,n=s.a;function l(r){var a,o,c=r.length,s=new Array(c);for(a=0;ah;)b.pop(),--p;var v,y=new Array(p+1);for(a=0;a<=p;++a)(v=y[a]=[]).x0=a>0?b[a-1]:d,v.x1=a=n)for(r=n;++ar&&(r=n)}else for(;++a=n)for(r=n;++ar&&(r=n);return r}},function(t,e,n){"use strict";var r=n(47);e.a=function(t,e){var n,i=t.length,a=i,o=-1,c=0;if(null==e)for(;++o=0;)for(e=(r=t[i]).length;--e>=0;)n[--o]=r[e];return n}},function(t,e,n){"use strict";e.a=function(t,e){for(var n=e.length,r=new Array(n);n--;)r[n]=t[e[n]];return r}},function(t,e,n){"use strict";var r=n(36);e.a=function(t,e){if(n=t.length){var n,i,a=0,o=0,c=t[o];for(null==e&&(e=r.a);++a90?"end":"start",t._rotate=t._angle>90?180:0,t}))})).enter().append("g").append("text").text((function(t){return t.value})).attr("transform",(function(t){return"\n rotate("+t._angle+")\n translate("+e.innerRadius+", 0)\n rotate("+t._rotate+")\n "})).attr("text-anchor",(function(t){return t._anchor}));return(0,o.default)(e.style,(function(t,e){i.style(e,t)})),i}}]),e}(i.default);e.default=l},function(t,e,n){var r=n(470);"string"==typeof r&&(r=[[t.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(472)(r,i),r.locals&&(t.exports=r.locals)},function(t,e,n){(t.exports=n(471)(!1)).push([t.i,"div.circos-tooltip {\r\n position: absolute;\r\n text-align: center;\r\n padding: 5px 10px;\r\n background: #111111;\r\n color: white;\r\n border: 0px;\r\n pointer-events: none;\r\n z-index: 1000;\r\n}\r\n",""])},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=function(t,e){var n,r=t[1]||"",i=t[3];if(!i)return r;if(e&&"function"==typeof btoa){var a=(n=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */"),o=i.sources.map((function(t){return"/*# sourceURL="+i.sourceRoot+t+" */"}));return[r].concat(o).concat([a]).join("\n")}return[r].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n})).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i=0&&l.splice(e,1)}function y(t){var e=document.createElement("style");return void 0===t.attrs.type&&(t.attrs.type="text/css"),_(e,t.attrs),p(t,e),e}function _(t,e){Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])}))}function g(t,e){var n,r,i,a;if(e.transform&&t.css){if(!(a=e.transform(t.css)))return function(){};t.css=a}if(e.singleton){var o=s++;n=f||(f=y(e)),r=w.bind(null,n,o,!1),i=w.bind(null,n,o,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(t){var e=document.createElement("link");return void 0===t.attrs.type&&(t.attrs.type="text/css"),t.attrs.rel="stylesheet",_(e,t.attrs),p(t,e),e}(e),r=O.bind(null,n,e),i=function(){v(n),n.href&&URL.revokeObjectURL(n.href)}):(n=y(e),r=j.bind(null,n),i=function(){v(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else i()}}t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=b(t,e);return h(n,e),function(t){for(var r=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=arguments[1],r={};return(0,i.default)(n,(function(n,i){void 0!==n.iteratee?n.iteratee?Object.keys(e).indexOf(i)>-1?((0,a.default)(e[i]),r[i]=e[i]):r[i]=function(){return n.value}:r[i]=Object.keys(e).indexOf(i)>-1?e[i]:n.value:r[i]=t(e[i],n)})),r}(t,(0,r.default)(e));return(0,o.default)(f,function(t,e){return{cmin:null===t.min?e.min:t.min,cmax:null===t.max?e.max:t.max}}(f,n),function(t,e){if(0===t.innerRadius&&0===t.outerRadius){var n=(0,c.smartBorders)(t,e._layout,e.tracks);return{innerRadius:n.in,outerRadius:n.out}}return t.innerRadius<=1&&t.outerRadius<=1?{innerRadius:t.innerRadius*e._layout.conf.innerRadius,outerRadius:t.outerRadius*e._layout.conf.innerRadius}:t.innerRadius<=10&&t.outerRadius<=10?{innerRadius:t.innerRadius*e._layout.conf.outerRadius,outerRadius:t.outerRadius*e._layout.conf.outerRadius}:void 0}(f,u)),f}},function(t,e,n){var r=n(37)("sortBy",n(106));r.placeholder=n(26),t.exports=r},function(t,e,n){var r=n(477),i=n(26),a=Array.prototype.push;function o(t,e){return 2==e?function(e,n){return t(e,n)}:function(e){return t(e)}}function c(t){for(var e=t?t.length:0,n=Array(e);e--;)n[e]=t[e];return n}function u(t,e){return function(){var n=arguments.length;if(n){for(var r=Array(n);n--;)r[n]=arguments[n];var i=r[0]=e.apply(void 0,r);return t.apply(void 0,r),i}}}t.exports=function t(e,n,f,s){var l="function"==typeof n,d=n===Object(n);if(d&&(s=f,f=n,n=void 0),null==f)throw new TypeError;s||(s={});var h=!("cap"in s)||s.cap,b=!("curry"in s)||s.curry,p=!("fixed"in s)||s.fixed,v=!("immutable"in s)||s.immutable,y=!("rearg"in s)||s.rearg,_=l?f:i,g="curry"in s&&s.curry,m="fixed"in s&&s.fixed,x="rearg"in s&&s.rearg,w=l?f.runInContext():void 0,j=l?f:{ary:e.ary,assign:e.assign,clone:e.clone,curry:e.curry,forEach:e.forEach,isArray:e.isArray,isError:e.isError,isFunction:e.isFunction,isWeakMap:e.isWeakMap,iteratee:e.iteratee,keys:e.keys,rearg:e.rearg,toInteger:e.toInteger,toPath:e.toPath},O=j.ary,M=j.assign,k=j.clone,A=j.curry,T=j.forEach,S=j.isArray,P=j.isError,R=j.isFunction,E=j.isWeakMap,C=j.keys,I=j.rearg,N=j.toInteger,D=j.toPath,z=C(r.aryMethod),B={castArray:function(t){return function(){var e=arguments[0];return S(e)?t(c(e)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var e=arguments[0],n=arguments[1],r=t(e,n),i=r.length;return h&&"number"==typeof n?(n=n>2?n-2:1,i&&i<=n?r:o(r,n)):r}},mixin:function(t){return function(e){var n=this;if(!R(n))return t(n,Object(e));var r=[];return T(C(e),(function(t){R(e[t])&&r.push([t,n.prototype[t]])})),t(n,Object(e)),T(r,(function(t){var e=t[1];R(e)?n.prototype[t[0]]=e:delete n.prototype[t[0]]})),n}},nthArg:function(t){return function(e){var n=e<0?1:N(e)+1;return A(t(e),n)}},rearg:function(t){return function(e,n){var r=n?n.length:0;return A(t(e,n),r)}},runInContext:function(n){return function(r){return t(e,n(r),s)}}};function U(t,e){if(h){var n=r.iterateeRearg[t];if(n)return function(t,e){return q(t,(function(t){var n=e.length;return function(t,e){return 2==e?function(e,n){return t.apply(void 0,arguments)}:function(e){return t.apply(void 0,arguments)}}(I(o(t,n),e),n)}))}(e,n);var i=!l&&r.iterateeAry[t];if(i)return function(t,e){return q(t,(function(t){return"function"==typeof t?o(t,e):t}))}(e,i)}return e}function L(t,e,n){if(p&&(m||!r.skipFixed[t])){var i=r.methodSpread[t],o=i&&i.start;return void 0===o?O(e,n):function(t,e){return function(){for(var n=arguments.length,r=n-1,i=Array(n);n--;)i[n]=arguments[n];var o=i[e],c=i.slice(0,e);return o&&a.apply(c,o),e!=r&&a.apply(c,i.slice(e+1)),t.apply(this,c)}}(e,o)}return e}function W(t,e,n){return y&&n>1&&(x||!r.skipRearg[t])?I(e,r.methodRearg[t]||r.aryRearg[n]):e}function F(t,e){for(var n=-1,r=(e=D(e)).length,i=r-1,a=k(Object(t)),o=a;null!=o&&++n1?A(e,n):e}(0,i=U(a,i),t),!1}})),!i})),i||(i=o),i==e&&(i=g?A(i,1):function(){return e.apply(this,arguments)}),i.convert=Y(a,e),i.placeholder=e.placeholder=n,i}if(!d)return G(n,f,_);var V=f,X=[];return T(z,(function(t){T(r.aryMethod[t],(function(t){var e=V[r.remap[t]||t];e&&X.push([t,G(t,e,V)])}))})),T(C(V),(function(t){var e=V[t];if("function"==typeof e){for(var n=X.length;n--;)if(X[n][0]==t)return;e.convert=Y(t,e),X.push([t,e])}})),T(X,(function(t){V[t[0]]=t[1]})),V.convert=function(t){return V.runInContext.convert(t)(void 0)},V.placeholder=V,T(C(V),(function(t){T(r.realToAlias[t]||[],(function(e){V[e]=V[t]}))})),V}},function(t,e){e.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},e.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},e.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},e.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},e.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},e.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},e.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},e.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},e.realToAlias=function(){var t=Object.prototype.hasOwnProperty,n=e.aliasToReal,r={};for(var i in n){var a=n[i];t.call(r,a)?r[a].push(i):r[a]=[i]}return r}(),e.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},e.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},e.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},function(t,e,n){t.exports={ary:n(479),assign:n(181),clone:n(498),curry:n(499),forEach:n(64),isArray:n(2),isError:n(500),isFunction:n(24),isWeakMap:n(501),iteratee:n(502),keys:n(143),rearg:n(503),toInteger:n(119),toPath:n(505)}},function(t,e,n){var r=n(113);t.exports=function(t,e,n){return e=n?void 0:e,e=t&&null==e?t.length:e,r(t,128,void 0,void 0,void 0,void 0,e)}},function(t,e,n){var r=n(75),i=n(5);t.exports=function(t,e,n){var a=1&e,o=r(t);return function e(){var r=this&&this!==i&&this instanceof e?o:t;return r.apply(a?n:this,arguments)}}},function(t,e,n){var r=n(50),i=n(75),a=n(213),o=n(216),c=n(222),u=n(118),f=n(5);t.exports=function(t,e,n){var s=i(t);return function i(){for(var l=arguments.length,d=Array(l),h=l,b=c(i);h--;)d[h]=arguments[h];var p=l<3&&d[0]!==b&&d[l-1]!==b?[]:u(d,b);if((l-=p.length)1?"& ":"")+e[i],e=e.join(r>2?", ":" "),t.replace(n,"{\n/* [wrapped with "+e+"] */\n")}},function(t,e,n){var r=n(64),i=n(490),a=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]];t.exports=function(t,e){return r(a,(function(n){var r="_."+n[0];e&n[1]&&!i(t,r)&&t.push(r)})),t.sort()}},function(t,e,n){var r=n(221);t.exports=function(t,e){return!(null==t||!t.length)&&r(t,e,0)>-1}},function(t,e){t.exports=function(t,e,n,r){for(var i=t.length,a=n+(r?1:-1);r?a--:++a=u.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var c,f,l,d=-1,h=n.length,b=u[i++],p=Object(r.a)(),v=a();++du.length)return n;var i,a=f[r-1];return null!=e&&r>=u.length?i=n.entries():(i=[],n.each((function(e,n){i.push({key:n,values:t(e,r)})}))),null!=a?i.sort((function(t,e){return a(t.key,e.key)})):i}(s(t,0,o,c),0)},key:function(t){return u.push(t),n},sortKeys:function(t){return f[u.length-1]=t,n},sortValues:function(e){return t=e,n},rollup:function(t){return e=t,n}}}},function(t,e,n){"use strict";var r=n(120);function i(){}var a=r.a.prototype;function o(t,e){var n=new i;if(t instanceof i)t.each((function(t){n.add(t)}));else if(t){var r=-1,a=t.length;if(null==e)for(;++r0&&c>0&&(u+c+1>r&&(c=Math.max(1,r-u)),a.push(n.substring(i-=c,i+c)),!((u+=c+1)>r));)c=t[o=(o+1)%t.length];return a.reverse().join(e)}}},function(t,e,n){"use strict";e.a=function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}},function(t,e,n){"use strict";e.a=function(t,e){t:for(var n,r=(t=t.toPrecision(e)).length,i=1,a=-1;i0&&(a=0)}return a>0?t.slice(0,a)+t.slice(n+1):t}},function(t,e,n){"use strict";var r=n(122);e.a=function(t,e){var n=Object(r.a)(t,e);if(!n)return t+"";var i=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}},function(t,e,n){"use strict";e.a=function(t){return t}},function(t,e,n){"use strict";var r=n(77);e.a=function(t){return Math.max(0,-Object(r.a)(Math.abs(t)))}},function(t,e,n){"use strict";var r=n(77);e.a=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Object(r.a)(e)/3)))-Object(r.a)(Math.abs(t)))}},function(t,e,n){"use strict";var r=n(77);e.a=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Object(r.a)(e)-Object(r.a)(t))+1}},function(t,e,n){"use strict";e.a=function t(){var e=Object(c.b)(u,f).domain([1,10]),n=e.domain,a=10,s=d(10),b=l(10);function p(){return s=d(a),b=l(a),n()[0]<0&&(s=h(s),b=h(b)),e}return e.base=function(t){return arguments.length?(a=+t,p()):a},e.domain=function(t){return arguments.length?(n(t),p()):n()},e.ticks=function(t){var e,i=n(),o=i[0],c=i[i.length-1];(e=c0){for(;dc)break;v.push(l)}}else for(;d=1;--f)if(!((l=u*f)c)break;v.push(l)}}else v=Object(r.ticks)(d,h,Math.min(h-d,p)).map(b);return e?v.reverse():v},e.tickFormat=function(t,n){if(null==n&&(n=10===a?".0e":","),"function"!=typeof n&&(n=Object(i.a)(n)),t===1/0)return n;null==t&&(t=10);var r=Math.max(1,a*t/e.ticks().length);return function(t){var e=t/b(Math.round(s(t)));return e*a0?a[r-1]:e[0],r=o?[c[o-1],n]:[c[r-1],c[r]]},f.copy=function(){return t().domain([e,n]).range(u)},Object(a.b)(f)};var r=n(10),i=n(27),a=n(48)},function(t,e,n){"use strict";e.a=function t(){var e=[.5],n=[0,1],a=1;function o(t){if(t<=t)return n[Object(r.bisect)(e,t,0,a)]}return o.domain=function(t){return arguments.length?(e=i.b.call(t),a=Math.min(e.length,n.length-1),o):e.slice()},o.range=function(t){return arguments.length?(n=i.b.call(t),a=Math.min(e.length,n.length-1),o):n.slice()},o.invertExtent=function(t){var r=n.indexOf(t);return[e[r-1],e[r]]},o.copy=function(){return t().domain(e).range(n)},o};var r=n(10),i=n(27)},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Object(r.a)((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):i:null},e.a=i,i.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setTime(Math.floor(t/i.d)*i.d)}),(function(t,e){t.setTime(+t+e*i.d)}),(function(t,e){return(e-t)/i.d}),(function(t){return t.getUTCSeconds()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setTime(Math.floor(t/i.c)*i.c)}),(function(t,e){t.setTime(+t+e*i.c)}),(function(t,e){return(e-t)/i.c}),(function(t){return t.getMinutes()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){var e=t.getTimezoneOffset()*i.c%i.b;e<0&&(e+=i.b),t.setTime(Math.floor((+t-e)/i.b)*i.b+e)}),(function(t,e){t.setTime(+t+e*i.b)}),(function(t,e){return(e-t)/i.b}),(function(t){return t.getHours()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.c)/i.a}),(function(t){return t.getDate()-1}));e.a=a,a.range},function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"a",(function(){return c})),n.d(e,"c",(function(){return s}));var r=n(4),i=n(15);function a(t){return Object(r.a)((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.c)/i.e}))}var o=a(0),c=a(1),u=a(2),f=a(3),s=a(4),l=a(5),d=a(6);o.range,c.range,u.range,f.range,s.range,l.range,d.range},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}));e.a=i,i.range},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Object(r.a)((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null},e.a=i,i.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*i.c)}),(function(t,e){return(e-t)/i.c}),(function(t){return t.getUTCMinutes()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*i.b)}),(function(t,e){return(e-t)/i.b}),(function(t){return t.getUTCHours()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/i.a}),(function(t){return t.getUTCDate()-1}));e.a=a,a.range},function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"a",(function(){return c})),n.d(e,"c",(function(){return s}));var r=n(4),i=n(15);function a(t){return Object(r.a)((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/i.e}))}var o=a(0),c=a(1),u=a(2),f=a(3),s=a(4),l=a(5),d=a(6);o.range,c.range,u.range,f.range,s.range,l.range,d.range},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}));e.a=i,i.range},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Object(r.a)((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null},e.a=i,i.range},function(t,e,n){"use strict";var r=n(238),i=n(124);+new Date("2000-01-01T00:00:00.000Z")||Object(i.c)(r.a)},function(t,e,n){"use strict";var r=n(235),i=n(236),a=n(123);e.a=function(){return Object(r.a)(a.v,a.q,a.u,a.l,a.m,a.o,a.r,a.n,i.b).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])}},function(t,e,n){"use strict";var r=n(49);e.a=Object(r.a)("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf")},function(t,e,n){"use strict";var r=n(49);e.a=Object(r.a)("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6")},function(t,e,n){"use strict";var r=n(49);e.a=Object(r.a)("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9")},function(t,e,n){"use strict";var r=n(49);e.a=Object(r.a)("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5")},function(t,e,n){"use strict";var r=n(9),i=n(8);e.a=Object(i.b)(Object(r.b)(300,.5,0),Object(r.b)(-240,.5,1))},function(t,e,n){"use strict";n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return o}));var r=n(9),i=n(8),a=Object(i.b)(Object(r.b)(-100,.75,.35),Object(r.b)(80,1.5,.8)),o=Object(i.b)(Object(r.b)(260,.75,.35),Object(r.b)(80,1.5,.8)),c=Object(r.b)();e.b=function(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return c.h=360*t-100,c.s=1.5-1.5*e,c.l=.8-.9*e,c+""}},function(t,e,n){"use strict";n.d(e,"c",(function(){return a})),n.d(e,"b",(function(){return o})),n.d(e,"d",(function(){return c}));var r=n(49);function i(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}e.a=i(Object(r.a)("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var a=i(Object(r.a)("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),o=i(Object(r.a)("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),c=i(Object(r.a)("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"))},function(t,e,n){"use strict";e.a=function t(e){var n=0,i=1,a=!1;function o(t){var r=(t-n)/(i-n);return e(a?Math.max(0,Math.min(1,r)):r)}return o.domain=function(t){return arguments.length?(n=+t[0],i=+t[1],o):[n,i]},o.clamp=function(t){return arguments.length?(a=!!t,o):a},o.interpolator=function(t){return arguments.length?(e=t,o):e},o.copy=function(){return t(e).domain([n,i]).clamp(a)},Object(r.b)(o)};var r=n(48)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.buildColorValue=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Math.E;if((0,a.default)(t))return t;var o="-"===t[0],c="-"===t[0]?t.slice(1):t;if(u[c]){var s=f(u[c],e,n,o,r,i);return function(t){return s(t.value)}}return t};var r,i=n(24),a=(r=i)&&r.__esModule?r:{default:r},o=n(225),c=n(567),u={BrBG:c.interpolateBrBG,PRGn:c.interpolatePRGn,PiYG:c.interpolatePiYG,PuOr:c.interpolatePuOr,RdBu:c.interpolateRdBu,RdGy:c.interpolateRdGy,RdYlBu:c.interpolateRdYlBu,RdYlGn:c.interpolateRdYlGn,Spectral:c.interpolateSpectral,Blues:c.interpolateBlues,Greens:c.interpolateGreens,Greys:c.interpolateGreys,Oranges:c.interpolateOranges,Purples:c.interpolatePurples,Reds:c.interpolateReds,BuGn:c.interpolateBuGn,BuPu:c.interpolateBuPu,GnBu:c.interpolateGnBu,OrRd:c.interpolateOrRd,PuBuGn:c.interpolatePuBuGn,PuBu:c.interpolatePuBu,PuRd:c.interpolatePuRd,RdPu:c.interpolateRdPu,YlGnBu:c.interpolateYlGnBu,YlGn:c.interpolateYlGn,YlOrBr:c.interpolateYlOrBr,YlOrRd:c.interpolateYlOrRd},f=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Math.E;if(i&&e*n<=0&&console.warn("As log(0) = -∞, a log scale domain must be\n strictly-positive or strictly-negative. logscale ignored"),i&&e*n>0){var c=(0,o.scaleLog)().base(a).domain(r?[n,e]:[e,n]).range([0,1]);return(0,o.scaleSequential)((function(e){return t(c(e))})).domain([0,1])}return(0,o.scaleSequential)(t).domain(r?[n,e]:[e,n])}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(568);n.d(e,"schemeCategory10",(function(){return r.a}));var i=n(569);n.d(e,"schemeAccent",(function(){return i.a}));var a=n(570);n.d(e,"schemeDark2",(function(){return a.a}));var o=n(571);n.d(e,"schemePaired",(function(){return o.a}));var c=n(572);n.d(e,"schemePastel1",(function(){return c.a}));var u=n(573);n.d(e,"schemePastel2",(function(){return u.a}));var f=n(574);n.d(e,"schemeSet1",(function(){return f.a}));var s=n(575);n.d(e,"schemeSet2",(function(){return s.a}));var l=n(576);n.d(e,"schemeSet3",(function(){return l.a}));var d=n(577);n.d(e,"interpolateBrBG",(function(){return d.a})),n.d(e,"schemeBrBG",(function(){return d.b}));var h=n(578);n.d(e,"interpolatePRGn",(function(){return h.a})),n.d(e,"schemePRGn",(function(){return h.b}));var b=n(579);n.d(e,"interpolatePiYG",(function(){return b.a})),n.d(e,"schemePiYG",(function(){return b.b}));var p=n(580);n.d(e,"interpolatePuOr",(function(){return p.a})),n.d(e,"schemePuOr",(function(){return p.b}));var v=n(581);n.d(e,"interpolateRdBu",(function(){return v.a})),n.d(e,"schemeRdBu",(function(){return v.b}));var y=n(582);n.d(e,"interpolateRdGy",(function(){return y.a})),n.d(e,"schemeRdGy",(function(){return y.b}));var _=n(583);n.d(e,"interpolateRdYlBu",(function(){return _.a})),n.d(e,"schemeRdYlBu",(function(){return _.b}));var g=n(584);n.d(e,"interpolateRdYlGn",(function(){return g.a})),n.d(e,"schemeRdYlGn",(function(){return g.b}));var m=n(585);n.d(e,"interpolateSpectral",(function(){return m.a})),n.d(e,"schemeSpectral",(function(){return m.b}));var x=n(586);n.d(e,"interpolateBuGn",(function(){return x.a})),n.d(e,"schemeBuGn",(function(){return x.b}));var w=n(587);n.d(e,"interpolateBuPu",(function(){return w.a})),n.d(e,"schemeBuPu",(function(){return w.b}));var j=n(588);n.d(e,"interpolateGnBu",(function(){return j.a})),n.d(e,"schemeGnBu",(function(){return j.b}));var O=n(589);n.d(e,"interpolateOrRd",(function(){return O.a})),n.d(e,"schemeOrRd",(function(){return O.b}));var M=n(590);n.d(e,"interpolatePuBuGn",(function(){return M.a})),n.d(e,"schemePuBuGn",(function(){return M.b}));var k=n(591);n.d(e,"interpolatePuBu",(function(){return k.a})),n.d(e,"schemePuBu",(function(){return k.b}));var A=n(592);n.d(e,"interpolatePuRd",(function(){return A.a})),n.d(e,"schemePuRd",(function(){return A.b}));var T=n(593);n.d(e,"interpolateRdPu",(function(){return T.a})),n.d(e,"schemeRdPu",(function(){return T.b}));var S=n(594);n.d(e,"interpolateYlGnBu",(function(){return S.a})),n.d(e,"schemeYlGnBu",(function(){return S.b}));var P=n(595);n.d(e,"interpolateYlGn",(function(){return P.a})),n.d(e,"schemeYlGn",(function(){return P.b}));var R=n(596);n.d(e,"interpolateYlOrBr",(function(){return R.a})),n.d(e,"schemeYlOrBr",(function(){return R.b}));var E=n(597);n.d(e,"interpolateYlOrRd",(function(){return E.a})),n.d(e,"schemeYlOrRd",(function(){return E.b}));var C=n(598);n.d(e,"interpolateBlues",(function(){return C.a})),n.d(e,"schemeBlues",(function(){return C.b}));var I=n(599);n.d(e,"interpolateGreens",(function(){return I.a})),n.d(e,"schemeGreens",(function(){return I.b}));var N=n(600);n.d(e,"interpolateGreys",(function(){return N.a})),n.d(e,"schemeGreys",(function(){return N.b}));var D=n(601);n.d(e,"interpolatePurples",(function(){return D.a})),n.d(e,"schemePurples",(function(){return D.b}));var z=n(602);n.d(e,"interpolateReds",(function(){return z.a})),n.d(e,"schemeReds",(function(){return z.b}));var B=n(603);n.d(e,"interpolateOranges",(function(){return B.a})),n.d(e,"schemeOranges",(function(){return B.b}));var U=n(604);n.d(e,"interpolateCubehelixDefault",(function(){return U.a}));var L=n(605);n.d(e,"interpolateRainbow",(function(){return L.b})),n.d(e,"interpolateWarm",(function(){return L.c})),n.d(e,"interpolateCool",(function(){return L.a}));var W=n(606);n.d(e,"interpolateSinebow",(function(){return W.a}));var F=n(607);n.d(e,"interpolateViridis",(function(){return F.a})),n.d(e,"interpolateMagma",(function(){return F.c})),n.d(e,"interpolateInferno",(function(){return F.b})),n.d(e,"interpolatePlasma",(function(){return F.d}))},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f")},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";var r=n(9),i=n(8);e.a=Object(i.b)(Object(r.b)(300,.5,0),Object(r.b)(-240,.5,1))},function(t,e,n){"use strict";n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return o}));var r=n(9),i=n(8),a=Object(i.b)(Object(r.b)(-100,.75,.35),Object(r.b)(80,1.5,.8)),o=Object(i.b)(Object(r.b)(260,.75,.35),Object(r.b)(80,1.5,.8)),c=Object(r.b)();e.b=function(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return c.h=360*t-100,c.s=1.5-1.5*e,c.l=.8-.9*e,c+""}},function(t,e,n){"use strict";var r=n(9),i=Object(r.f)(),a=Math.PI/3,o=2*Math.PI/3;e.a=function(t){var e;return t=(.5-t)*Math.PI,i.r=255*(e=Math.sin(t))*e,i.g=255*(e=Math.sin(t+a))*e,i.b=255*(e=Math.sin(t+o))*e,i+""}},function(t,e,n){"use strict";n.d(e,"c",(function(){return a})),n.d(e,"b",(function(){return o})),n.d(e,"d",(function(){return c}));var r=n(0);function i(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}e.a=i(Object(r.a)("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var a=i(Object(r.a)("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),o=i(Object(r.a)("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),c=i(Object(r.a)("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderAxes=e._buildAxesData=void 0;var r=c(n(609)),i=c(n(105)),a=n(13),o=c(n(612));function c(t){return t&&t.__esModule?t:{default:t}}var u=function(t,e,n){return{value:t,thickness:e.thickness||1,color:e.color||"#d3d3d3",opacity:e.opacity||n.opacity}},f=e._buildAxesData=function(t){return(0,i.default)(t.axes,(function(e,n){if(!n.position&&!n.spacing)return o.default.warn("Skipping axe group with no position and spacing defined"),e;if(n.position&&e.push(u(n.position,n,t)),n.spacing){var i=(0,r.default)(n.start||t.cmin,n.end||t.cmax,n.spacing).map((function(e){return u(e,n,t)}));return e.concat(i)}return e}),[])};e.renderAxes=function(t,e,n,r){var i=f(e),o=(0,a.arc)().innerRadius((function(t){return"in"===e.direction?e.outerRadius-r(t.value):e.innerRadius+r(t.value)})).outerRadius((function(t){return"in"===e.direction?e.outerRadius-r(t.value):e.innerRadius+r(t.value)})).startAngle(0).endAngle((function(t){return t.length})),c=t.selectAll(".axis").data((function(t){var e=n._layout.blocks[t.key];return i.map((function(n){return{value:n.value,thickness:n.thickness,color:n.color,opacity:n.opacity,block_id:t.key,length:e.end-e.start}}))})).enter().append("path").attr("opacity",(function(t){return t.opacity})).attr("class","axis").attr("d",o).attr("stroke-width",(function(t){return t.thickness})).attr("stroke",(function(t){return t.color}));return e.showAxesTooltip&&(c.on("mouseover",(function(t,e){n.tip.html(t.value).transition().style("opacity",.9).style("left",event.pageX+"px").style("top",event.pageY-28+"px")})),c.on("mouseout",(function(t,e){n.tip.transition().duration(500).style("opacity",0)}))),c}},function(t,e,n){var r=n(610)();t.exports=r},function(t,e,n){var r=n(611),i=n(63),a=n(223);t.exports=function(t){return function(e,n,o){return o&&"number"!=typeof o&&i(e,n,o)&&(n=o=void 0),e=a(e),void 0===n?(n=e,e=0):n=a(n),o=void 0===o?e-1:!!s&&r(t,e,n)>-1}},function(t,e,n){var r=n(16),i=n(2),a=n(6);t.exports=function(t){return"string"==typeof t||!i(t)&&a(t)&&"[object String]"==r(t)}},function(t,e,n){var r=n(616),i=n(18);t.exports=function(t){return null==t?[]:r(t,i(t))}},function(t,e,n){var r=n(40);t.exports=function(t,e){return r(e,(function(e){return t[e]}))}},function(t,e,n){var r=n(618),i=n(619),a=n(33),o=n(2),c=n(63);t.exports=function(t,e,n){var u=o(t)?r:i;return n&&c(t,e,n)&&(e=void 0),u(t,a(e,3))}},function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n=1?t:t*e},p=function(t){function e(t,n,r){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n,h,r,a.parseChordData))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),r(e,[{key:"getCoordinates",value:function(t,e,n,r){var i=e.blocks[t.id],a=i.start+t.start/i.len*(i.end-i.start),o=i.start+t.end/i.len*(i.end-i.start),c=void 0;return(0,f.default)(n.radius)?c=b(n.radius(r),e.conf.innerRadius):n.radius&&(c=b(n.radius,e.conf.innerRadius)),c||(c=e.conf.innerRadius),{radius:c,startAngle:a,endAngle:o}}},{key:"renderChords",value:function(t,e,n,r,i,a){var o=this,u=t.append("g").selectAll(".chord").data(r).enter().append("path").attr("class","chord").attr("d",(0,c.ribbon)().source((function(t){return a(t.source,i._layout,o.conf,t)})).target((function(t){return a(t.target,i._layout,o.conf,t)}))).attr("opacity",n.opacity).on("mouseover",(function(t){o.dispatch.call("mouseover",o,t),i.clipboard.attr("value",n.tooltipContent(t))})).on("mouseout",(function(t){return o.dispatch.call("mouseout",o,t)}));return Object.keys(n.events).forEach((function(t){u.on(t,(function(e,r,i){n.events[t](e,r,i,s.event)}))})),u.attr("fill",n.colorValue),u}},{key:"render",value:function(t,e,n){e.select("."+n).remove();var r=e.append("g").attr("class",n).attr("z-index",this.conf.zIndex),i=this.renderChords(r,n,this.conf,this.data,t,this.getCoordinates);return this.conf.tooltipContent&&(0,o.registerTooltip)(this,t,i,this.conf),this}}]),e}(i.default);e.default=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(624);n.d(e,"chord",(function(){return r.a}));var i=n(625);n.d(e,"ribbon",(function(){return i.a}))},function(t,e,n){"use strict";var r=n(10),i=n(239);function a(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}e.a=function(){var t=0,e=null,n=null,o=null;function c(a){var c,u,f,s,l,d,h=a.length,b=[],p=Object(r.range)(h),v=[],y=[],_=y.groups=new Array(h),g=new Array(h*h);for(c=0,l=-1;++lt.position+r?t.groups.push([e]):t.groups[t.groups.length-1].push(e),t.position=e.position,t)}),{position:null,groups:[]}).groups):[t.values];var n,r})).enter().append("g").attr("class","line").append("path").datum((function(t){return t.map((function(t){var i=r.scale(t.value);return(0,o.default)(t,{angle:r.theta(t.position,n.blocks[t.block_id])},function(t){return e.fill?{innerRadius:"out"===e.direction?e.innerRadius:e.outerRadius-t,outerRadius:"out"===e.direction?e.innerRadius+t:e.outerRadius}:{radius:"out"===e.direction?e.innerRadius+t:e.outerRadius-t}}(i))}))})).attr("d",f).attr("opacity",e.opacity).attr("stroke-width",e.thickness).attr("stroke",e.colorValue).attr("fill","none");return e.fill&&l.attr("fill",e.fillColor),l}}]),e}(i.default);e.default=h},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;ne.end?-1:t.start==e.start&&t.end==e.end?0:1}));var r=[];(0,u.default)(t.values,(function(t){var n=!1;(0,u.default)(r,(function(r,i){if(r.slice(0).pop().end+e0))return o;do{o.push(a=new Date(+t)),n(t,i),e(t)}while(a=t)for(;e(t),!r(t);)t.setTime(t-1)}),(function(t,e){if(t>=t)if(e<0)for(;++e<=0;)for(;n(t,-1),!r(t););else for(;--e>=0;)for(;n(t,1),!r(t););}))},a&&(c.count=function(t,n){return r.setTime(+t),i.setTime(+n),e(r),e(i),Math.floor(a(r,i))},c.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?c.filter(o?function(e){return o(e)%t==0}:function(e){return c.count(0,e)%t==0}):c:null}),c};var r=new Date,i=new Date},function(t,e,n){var r=n(128),i="object"==typeof self&&self&&self.Object===Object&&self,a=r||i||Function("return this")();t.exports=a},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,n){"use strict";var r=n(99);n.d(e,"a",(function(){return r.a})),n(171),n(102),n(169),n(172);var i=n(69);n.d(e,"c",(function(){return i.a})),n(173);var a=n(357);n.d(e,"f",(function(){return a.a}));var o=n(174);n.d(e,"g",(function(){return o.a}));var c=n(358);n.d(e,"h",(function(){return c.a})),n.d(e,"i",(function(){return c.b}));var u=n(361);n.d(e,"j",(function(){return u.a}));var f=n(168);n.d(e,"d",(function(){return f.a})),n.d(e,"e",(function(){return f.b})),n(362),n(363),n(364);var s=n(365);n.d(e,"b",(function(){return s.a})),n(366)},function(t,e,n){"use strict";var r=n(100);n.d(e,"a",(function(){return r.e})),n.d(e,"f",(function(){return r.g})),n.d(e,"d",(function(){return r.f}));var i=n(355);n.d(e,"e",(function(){return i.a})),n.d(e,"c",(function(){return i.b}));var a=n(356);n.d(e,"b",(function(){return a.a}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(197);n.d(e,"bisect",(function(){return r.c})),n.d(e,"bisectRight",(function(){return r.b})),n.d(e,"bisectLeft",(function(){return r.a}));var i=n(36);n.d(e,"ascending",(function(){return i.a}));var a=n(198);n.d(e,"bisector",(function(){return a.a}));var o=n(452);n.d(e,"cross",(function(){return o.a}));var c=n(453);n.d(e,"descending",(function(){return c.a}));var u=n(200);n.d(e,"deviation",(function(){return u.a}));var f=n(202);n.d(e,"extent",(function(){return f.a}));var s=n(454);n.d(e,"histogram",(function(){return s.a}));var l=n(457);n.d(e,"thresholdFreedmanDiaconis",(function(){return l.a}));var d=n(458);n.d(e,"thresholdScott",(function(){return d.a}));var h=n(206);n.d(e,"thresholdSturges",(function(){return h.a}));var b=n(459);n.d(e,"max",(function(){return b.a}));var p=n(460);n.d(e,"mean",(function(){return p.a}));var v=n(461);n.d(e,"median",(function(){return v.a}));var y=n(462);n.d(e,"merge",(function(){return y.a}));var _=n(207);n.d(e,"min",(function(){return _.a}));var g=n(199);n.d(e,"pairs",(function(){return g.a}));var m=n(463);n.d(e,"permute",(function(){return m.a}));var x=n(112);n.d(e,"quantile",(function(){return x.a}));var w=n(204);n.d(e,"range",(function(){return w.a}));var j=n(464);n.d(e,"scan",(function(){return j.a}));var O=n(465);n.d(e,"shuffle",(function(){return O.a}));var M=n(466);n.d(e,"sum",(function(){return M.a}));var k=n(205);n.d(e,"ticks",(function(){return k.a})),n.d(e,"tickIncrement",(function(){return k.b})),n.d(e,"tickStep",(function(){return k.c}));var A=n(208);n.d(e,"transpose",(function(){return A.a}));var T=n(201);n.d(e,"variance",(function(){return T.a}));var S=n(467);n.d(e,"zip",(function(){return S.a}))},function(t,e,n){"use strict";n.d(e,"c",(function(){return C})),e.a=I;var r=n(315),i=n(316),a=n(317),o=n(318),c=n(162),u=n(320),f=n(321),s=n(322),l=n(323),d=n(324),h=n(325),b=n(326),p=n(327),v=n(328),y=n(329),_=n(330),g=n(164),m=n(331),x=n(332),w=n(333),j=n(334),O=n(335),M=n(336),k=n(337),A=n(338),T=n(339),S=n(340),P=n(341),R=n(97),E=n(342),C=[null];function I(t,e){this._groups=t,this._parents=e}function N(){return new I([[document.documentElement]],C)}I.prototype=N.prototype={constructor:I,select:r.a,selectAll:i.a,filter:a.a,data:o.a,enter:c.b,exit:u.a,merge:f.a,order:s.a,sort:l.a,call:d.a,nodes:h.a,node:b.a,size:p.a,empty:v.a,each:y.a,attr:_.a,style:g.a,property:m.a,classed:x.a,text:w.a,html:j.a,raise:O.a,lower:M.a,append:k.a,insert:A.a,remove:T.a,clone:S.a,datum:P.a,on:R.b,dispatch:E.a},e.b=N},function(t,e,n){"use strict";n.d(e,"c",(function(){return c})),n.d(e,"d",(function(){return u})),n.d(e,"b",(function(){return f})),n.d(e,"a",(function(){return s})),e.g=function(t,e){var n=l(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n},e.h=function(t,e){var n=l(t,e);if(n.state>u)throw new Error("too late; already started");return n},e.f=l;var r=n(68),i=n(177),a=Object(r.dispatch)("start","end","interrupt"),o=[],c=1,u=2,f=5,s=6;function l(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}e.e=function(t,e,n,r,l,d){var h=t.__transition;if(h){if(n in h)return}else t.__transition={};!function(t,e,n){var r,a=t.__transition;function o(f){var h,b,p,v;if(n.state!==c)return d();for(h in a)if((v=a[h]).name===n.name){if(3===v.state)return Object(i.b)(o);4===v.state?(v.state=s,v.timer.stop(),v.on.call("interrupt",t,t.__data__,v.index,v.group),delete a[h]):+h0&&(0,l.renderAxes)(o,this.conf,t,this.scale);var u=this.renderDatum(o,this.conf,t._layout);return this.conf.tooltipContent&&(0,i.registerTooltip)(this,t,u,this.conf),u.on("mouseover",(function(e,n){r.dispatch.call("mouseover",r,e),r.conf.tooltipContent&&t.clipboard.attr("value",r.conf.tooltipContent(e))})),u.on("mouseout",(function(t,e){r.dispatch.call("mouseout",r,t)})),Object.keys(this.conf.events).forEach((function(t){var e=r.conf;u.on(t,(function(n,r,i){e.events[t](n,r,i,c.event)}))})),this}},{key:"renderBlock",value:function(t,e,n,r){var i=this,a=t.selectAll(".block").data(e).enter().append("g").attr("class","block").attr("transform",(function(t){return"rotate("+360*n.blocks[t.key].start/(2*Math.PI)+")"}));return r.backgrounds&&a.selectAll(".background").data((function(t){return r.backgrounds.map((function(e){return{start:e.start||r.cmin,end:e.end||r.cmax,angle:n.blocks[t.key].end-n.blocks[t.key].start,color:e.color,opacity:e.opacity}}))})).enter().append("path").attr("class","background").attr("fill",(function(t){return t.color})).attr("opacity",(function(t){return t.opacity||1})).attr("d",(0,o.arc)().innerRadius((function(t){return"in"===r.direction?r.outerRadius-i.scale(t.start):r.innerRadius+i.scale(t.start)})).outerRadius((function(t){return"in"===r.direction?r.outerRadius-i.scale(t.end):r.innerRadius+i.scale(t.end)})).startAngle(0).endAngle((function(t){return t.angle}))),a}},{key:"theta",value:function(t,e){return t/e.len*(e.end-e.start)}},{key:"x",value:function(t,e,n){var r=this.scale(t.value),i="in"===n.direction?n.outerRadius-r:n.innerRadius+r,a=this.theta(t.position,e.blocks[t.block_id])-Math.PI/2;return i*Math.cos(a)}},{key:"y",value:function(t,e,n){var r=this.scale(t.value),i="in"===n.direction?n.outerRadius-r:n.innerRadius+r,a=this.theta(t.position,e.blocks[t.block_id])-Math.PI/2;return i*Math.sin(a)}}]),t}();e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseSpanValueData=function(t,e){return 0===t.length?{data:[],meta:{min:null,max:null}}:d(t.filter((function(t,n){return s(t.block_id,n,e,"parent")})))},e.parseSpanStringData=function(t,e){return 0===t.length?{data:[],meta:{min:null,max:null}}:d(t.filter((function(t,n){return s(t.block_id,n,e,"parent")})).filter((function(t,e){return l({start:t.start,end:t.end},e)})).filter((function(t){return!(t.start<0||t.end>e[t.block_id])||(f.log(2,"position","position inconsistency",{datum:t,layoutSummary:e}),!1)})))},e.parsePositionValueData=function(t,e){return 0===t.length?{data:[],meta:{min:null,max:null}}:d(t.filter((function(t,n){return s(t.block_id,n,e,"parent")})).filter((function(t,e){return l({position:t.position,value:t.value},e)})))},e.parsePositionTextData=function(t,e){return 0===t.length?{data:[],meta:{min:null,max:null}}:d(t.filter((function(t,n){return s(t.block_id,n,e,"parent")})).filter((function(t,e){return l({position:t.position},e)})))},e.parseChordData=function(t,e){if(0===t.length)return{data:[],meta:{min:null,max:null}};var n=t.filter((function(t,n){return t.source?s(t.source.id,n,e,"sourceId"):(f.warn("No source for data at index "+n),!1)})).filter((function(t,n){return t.target?s(t.target.id,n,e,"targetId"):(f.warn("No target for data at index "+n),!1)})).filter((function(t,e){return l({sourceStart:t.source.start,sourceEnd:t.source.end,targetStart:t.target.start,targetEnd:t.target.end,value:t.value||1},e)}));return{data:n,meta:{min:(0,c.min)(n,(function(t){return t.value})),max:(0,c.max)(n,(function(t){return t.value}))}}};var r=u(n(18)),i=u(n(613)),a=u(n(617)),o=(u(n(144)),n(227)),c=n(10);function u(t){return t&&t.__esModule?t:{default:t}}var f=console;function s(t,e,n,a){return!!(0,i.default)((0,r.default)(n),t)||(f.log(1,"datum","unknown parent id",{line:e+1,value:t,header:a,layoutSummary:n}),!1)}function l(t,e){return(0,a.default)(t,(function(t,n){return!isNaN(t)||(f.log(1,"datum","not a number",{line:e+1,value:t,header:n}),!1)}))}function d(t){return{data:(0,o.nest)().key((function(t){return t.block_id})).entries(t),meta:{min:(0,c.min)(t,(function(t){return t.value})),max:(0,c.max)(t,(function(t){return t.value}))}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r={min:{value:null,iteratee:!1},max:{value:null,iteratee:!1},logScale:{value:!1,iteratee:!1},logScaleBase:{value:Math.E,iteratee:!1}};e.axes={axes:{value:[],iteratee:!1},showAxesTooltip:{value:!0,iteratee:!1}},e.palette={colorPaletteSize:{value:9,iteratee:!1},colorPalette:{value:"YlGnBu",iteratee:!1},usePalette:{value:!0,iteratee:!1},colorPaletteReverse:{value:!0,iteratee:!1}},e.radial={innerRadius:{value:0,iteratee:!1},outerRadius:{value:0,iteratee:!1}},e.values=r,e.common={zIndex:{value:!1,iteratee:!1},opacity:{value:1,iteratee:!0},tooltipContent:{value:null,iteratee:!1},events:{value:{},iteratee:!1}}},function(t,e,n){var r=n(243),i=n(248);t.exports=function(t,e){var n=i(t,e);return r(n)?n:void 0}},function(t,e,n){var r=n(16),i=n(7);t.exports=function(t){if(!i(t))return!1;var e=r(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},function(t,e,n){"use strict";e.a=function(t){return function(){return t}}},function(t,e){t.exports={}},function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return a}));var r=Array.prototype,i=r.map,a=r.slice},function(t,e){t.exports=function(t){return t}},function(t,e,n){var r=n(5).Symbol;t.exports=r},function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++ne?1:t>=e?0:NaN}},function(t,e,n){var r=n(476),i=n(478);t.exports=function(t,e,n){return r(i,t,e,n)}},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,n){var r=n(283),i=n(285)(r);t.exports=i},function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n180||n<-180?n-360*Math.round(n/360):n):Object(r.a)(isNaN(t)?e:t)},e.b=function(t){return 1==(t=+t)?a:function(e,n){return n-e?function(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)}}(e,n,t):Object(r.a)(isNaN(e)?n:e)}},e.a=a;var r=n(170);function i(t,e){return function(n){return t+n*e}}function a(t,e){var n=e-t;return n?i(t,n):Object(r.a)(isNaN(t)?e:t)}},function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"d",(function(){return i})),n.d(e,"e",(function(){return a})),n.d(e,"h",(function(){return o})),n.d(e,"i",(function(){return c})),n.d(e,"k",(function(){return u})),n.d(e,"l",(function(){return f})),n.d(e,"f",(function(){return s})),n.d(e,"j",(function(){return l})),n.d(e,"g",(function(){return d})),n.d(e,"m",(function(){return h})),e.b=function(t){return t>1?0:t<-1?l:Math.acos(t)},e.c=function(t){return t>=1?d:t<=-1?-d:Math.asin(t)};var r=Math.abs,i=Math.atan2,a=Math.cos,o=Math.max,c=Math.min,u=Math.sin,f=Math.sqrt,s=1e-12,l=Math.PI,d=l/2,h=2*l},function(t,e,n){"use strict";e.a=function(t,e){if((i=t.length)>1)for(var n,r,i,a=1,o=t[e[0]],c=o.length;a=0;)n[e]=e;return n}},function(t,e,n){"use strict";e.a=function(t){return null===t?NaN:+t}},function(t,e,n){"use strict";e.b=c,e.a=function t(){var e=Object(a.b)(a.c,i.c);return e.copy=function(){return Object(a.a)(e,t())},c(e)};var r=n(10),i=n(8),a=n(76),o=n(527);function c(t){var e=t.domain;return t.ticks=function(t){var n=e();return Object(r.ticks)(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){return Object(o.a)(e(),t,n)},t.nice=function(n){null==n&&(n=10);var i,a=e(),o=0,c=a.length-1,u=a[o],f=a[c];return f0?(u=Math.floor(u/i)*i,f=Math.ceil(f/i)*i,i=Object(r.tickIncrement)(u,f,n)):i<0&&(u=Math.ceil(u*i)/i,f=Math.floor(f*i)/i,i=Object(r.tickIncrement)(u,f,n)),i>0?(a[o]=Math.floor(u/i)*i,a[c]=Math.ceil(f/i)*i,e(a)):i<0&&(a[o]=Math.ceil(u*i)/i,a[c]=Math.floor(f*i)/i,e(a)),t},t}},function(t,e,n){"use strict";e.a=function(t){return t.match(/.{6}/g).map((function(t){return"#"+t}))}},function(t,e){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},function(t,e,n){var r=n(52),i=n(255),a=n(256),o=n(257),c=n(258),u=n(259);function f(t){var e=this.__data__=new r(t);this.size=e.size}f.prototype.clear=i,f.prototype.delete=a,f.prototype.get=o,f.prototype.has=c,f.prototype.set=u,t.exports=f},function(t,e,n){var r=n(250),i=n(251),a=n(252),o=n(253),c=n(254);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t2?l:s,r=o=null,y}function y(e){return(r||(r=n(d,h,p?function(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=e?0:t>=n?1:r(t)}}}(t):t,b)))(+e)}return y.invert=function(t){return(o||(o=n(h,d,f,p?function(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=0?e:t>=1?n:r(t)}}}(e):e)))(+t)},y.domain=function(t){return arguments.length?(d=a.a.call(t,c.a),v()):d.slice()},y.range=function(t){return arguments.length?(h=a.b.call(t),v()):h.slice()},y.rangeRound=function(t){return h=a.b.call(t),b=i.f,v()},y.clamp=function(t){return arguments.length?(p=!!t,v()):p},y.interpolate=function(t){return arguments.length?(b=t,v()):b},v()};var r=n(10),i=n(8),a=n(27),o=n(121),c=n(228),u=[0,1];function f(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Object(o.a)(e)}function s(t,e,n,r){var i=t[0],a=t[1],o=e[0],c=e[1];return a-1&&t%1==0&&t<=9007199254740991}},function(t,e,n){var r=n(277),i=n(60),a=n(89),o=a&&a.isTypedArray,c=o?i(o):r;t.exports=c},function(t,e,n){(function(t){var r=n(128),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i&&r.process,c=function(){try{var t=a&&a.require&&a.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=c}).call(e,n(84)(t))},function(t,e,n){var r=n(83),i=n(38),a=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var o=t[e];a.call(t,e)&&i(o,n)&&(void 0!==n||e in t)||r(t,e,n)}},function(t,e,n){var r=n(149),i=n(150),a=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,c=o?function(t){return null==t?[]:(t=Object(t),r(o(t),(function(e){return a.call(t,e)})))}:i;t.exports=c},function(t,e,n){var r=n(2),i=n(34),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!i(t))||o.test(t)||!a.test(t)||null!=e&&t in Object(e)}},function(t,e,n){"use strict";var r=n(94);e.a=function(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.a.hasOwnProperty(e)?{space:r.a[e],local:t}:t}},function(t,e,n){"use strict";n.d(e,"b",(function(){return r}));var r="http://www.w3.org/1999/xhtml";e.a={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},function(t,e,n){"use strict";function r(){}e.a=function(t){return null==t?r:function(){return this.querySelector(t)}}},function(t,e,n){"use strict";e.a=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}},function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),e.a=function(t,e,n,r){var a=i;t.sourceEvent=i,i=t;try{return e.apply(n,r)}finally{i=a}};var r={},i=null;function a(t,e,n){return t=o(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function o(t,e,n){return function(r){var a=i;i=r;try{t.call(this,this.__data__,e,n)}finally{i=a}}}function c(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function u(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,a=e.length;r>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=l.exec(t))?m(parseInt(e[1],16)):(e=d.exec(t))?new O(e[1],e[2],e[3],1):(e=h.exec(t))?new O(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=b.exec(t))?x(e[1],e[2],e[3],e[4]):(e=p.exec(t))?x(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=v.exec(t))?M(e[1],e[2]/100,e[3]/100,1):(e=y.exec(t))?M(e[1],e[2]/100,e[3]/100,e[4]):_.hasOwnProperty(t)?m(_[t]):"transparent"===t?new O(NaN,NaN,NaN,0):null}function m(t){return new O(t>>16&255,t>>8&255,255&t,1)}function x(t,e,n,r){return r<=0&&(t=e=n=NaN),new O(t,e,n,r)}function w(t){return t instanceof i||(t=g(t)),t?new O((t=t.rgb()).r,t.g,t.b,t.opacity):new O}function j(t,e,n,r){return 1===arguments.length?w(t):new O(t,e,n,null==r?1:r)}function O(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function M(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new T(t,e,n,r)}function k(t){if(t instanceof T)return new T(t.h,t.s,t.l,t.opacity);if(t instanceof i||(t=g(t)),!t)return new T;if(t instanceof T)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),o=Math.max(e,n,r),c=NaN,u=o-a,f=(o+a)/2;return u?(c=e===o?(n-r)/u+6*(n0&&f<1?0:c,new T(c,u,f,t.opacity)}function A(t,e,n,r){return 1===arguments.length?k(t):new T(t,e,n,null==r?1:r)}function T(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function S(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}Object(r.a)(i,g,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),Object(r.a)(O,j,Object(r.b)(i,{brighter:function(t){return t=null==t?o:Math.pow(o,t),new O(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?a:Math.pow(a,t),new O(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){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+")")}})),Object(r.a)(T,A,Object(r.b)(i,{brighter:function(t){return t=null==t?o:Math.pow(o,t),new T(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?a:Math.pow(a,t),new T(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),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 O(S(t>=240?t-240:t+120,i,r),S(t,i,r),S(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}}))},function(t,e,n){"use strict";e.b=function(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n},e.a=function(t,e,n){t.prototype=e.prototype=n,n.constructor=t}},function(t,e,n){"use strict";function r(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}e.a=r,e.b=function(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],o=t[i+1],c=i>0?t[i-1]:2*a-o,u=i=0&&e._call.call(null,t),e=e._next;--a}()}finally{a=0,function(){for(var t,e,n=r,a=1/0;n;)n._call?(a>n._time&&(a=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:r=e);i=t,g(a)}(),f=0}}function _(){var t=l.now(),e=t-u;e>1e3&&(s-=e,u=t)}function g(t){a||(o&&(o=clearTimeout(o)),t-f>24?(t<1/0&&(o=setTimeout(y,t-l.now()-s)),c&&(c=clearInterval(c))):(c||(u=l.now(),c=setInterval(_,1e3)),a=1,d(y)))}p.prototype=v.prototype={constructor:p,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?h():+n)+(null==e?0:+e),this._next||i===this||(i?i._next=this:r=this,i=this),this._call=t,this._time=n,g()},stop:function(){this._call&&(this._call=null,this._time=1/0,g())}}},function(t,e,n){var r=n(51),i=n(64),a=n(90),o=n(181),c=n(404),u=n(134),f=n(30),s=n(405),l=n(406),d=n(147),h=n(407),b=n(41),p=n(408),v=n(409),y=n(137),_=n(2),g=n(59),m=n(413),x=n(7),w=n(415),j=n(18),O={};O["[object Arguments]"]=O["[object Array]"]=O["[object ArrayBuffer]"]=O["[object DataView]"]=O["[object Boolean]"]=O["[object Date]"]=O["[object Float32Array]"]=O["[object Float64Array]"]=O["[object Int8Array]"]=O["[object Int16Array]"]=O["[object Int32Array]"]=O["[object Map]"]=O["[object Number]"]=O["[object Object]"]=O["[object RegExp]"]=O["[object Set]"]=O["[object String]"]=O["[object Symbol]"]=O["[object Uint8Array]"]=O["[object Uint8ClampedArray]"]=O["[object Uint16Array]"]=O["[object Uint32Array]"]=!0,O["[object Error]"]=O["[object Function]"]=O["[object WeakMap]"]=!1,t.exports=function t(e,n,M,k,A,T){var S,P=1&n,R=2&n,E=4&n;if(M&&(S=A?M(e,k,A,T):M(e)),void 0!==S)return S;if(!x(e))return e;var C=_(e);if(C){if(S=p(e),!P)return f(e,S)}else{var I=b(e),N="[object Function]"==I||"[object GeneratorFunction]"==I;if(g(e))return u(e,P);if("[object Object]"==I||"[object Arguments]"==I||N&&!A){if(S=R||N?{}:y(e),!P)return R?l(e,c(S,e)):s(e,o(S,e))}else{if(!O[I])return A?e:{};S=v(e,I,P)}}T||(T=new r);var D=T.get(e);if(D)return D;if(T.set(e,S),w(e))return e.forEach((function(r){S.add(t(r,n,M,r,e,T))})),S;if(m(e))return e.forEach((function(r,i){S.set(i,t(r,n,M,i,e,T))})),S;var z=E?R?h:d:R?keysIn:j,B=C?void 0:z(e);return i(B||e,(function(r,i){B&&(r=e[i=r]),a(S,i,t(r,n,M,i,e,T))})),S}},function(t,e,n){var r=n(417),i=n(39),a=n(33),o=n(418),c=n(2);t.exports=function(t,e,n){var u=c(t)?r:o,f=arguments.length<3;return u(t,a(e,4),n,f,i)}},function(t,e,n){var r=n(107),i=n(422),a=n(78),o=n(63),c=a((function(t,e){if(null==t)return[];var n=e.length;return n>1&&o(t,e[0],e[1])?e=[]:n>2&&o(e[0],e[1],e[2])&&(e=[e[0]]),i(t,r(e,1),[])}));t.exports=c},function(t,e,n){var r=n(65),i=n(421);t.exports=function t(e,n,a,o,c){var u=-1,f=e.length;for(a||(a=i),c||(c=[]);++u0&&a(s)?n>1?t(s,n-1,a,o,c):r(c,s):o||(c[c.length]=s)}return c}},function(t,e,n){"use strict";var r=n(35),i=n(25),a=n(71),o=n(109);e.a=function(){var t=o.a,e=o.b,n=Object(i.a)(!0),c=null,u=a.a,f=null;function s(i){var a,o,s,l=i.length,d=!1;for(null==c&&(f=u(s=Object(r.a)())),a=0;a<=l;++a)!(ar.f){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,f=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/f,a=(a*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/f}if(t._l23_a>r.f){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,l=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-e*t._l12_2a)/l,c=(c*s+t._y1*t._l23_2a-n*t._l12_2a)/l}t._context.bezierCurveTo(i,a,o,c,t._x2,t._y2)}function o(t,e){this._context=t,this._alpha=e}o.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)}(this._line||0!==this._line&&1===this._point)&&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:a(this,t,e)}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}},e.a=function t(e){function n(t){return e?new o(t,e):new i.a(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){"use strict";e.b=i;var r=n(46);function i(t){for(var e,n=0,r=-1,i=t.length;++r=1)return+n(t[i-1],i-1,t);var i,a=(i-1)*e,o=Math.floor(a),c=+n(t[o],o,t);return c+(+n(t[o+1],o+1,t)-c)*(a-o)}}},function(t,e,n){var r=n(211),i=n(480),a=n(481),o=n(213),c=n(495),u=n(116),f=n(496),s=n(219),l=n(220),d=n(119),h=Math.max;t.exports=function(t,e,n,b,p,v,y,_){var g=2&e;if(!g&&"function"!=typeof t)throw new TypeError("Expected a function");var m=b?b.length:0;if(m||(e&=-97,b=p=void 0),y=void 0===y?y:h(d(y),0),_=void 0===_?_:d(_),m-=p?p.length:0,64&e){var x=b,w=p;b=p=void 0}var j=g?void 0:u(t),O=[t,e,n,b,p,x,w,v,y,_];if(j&&f(O,j),t=O[0],e=O[1],n=O[2],b=O[3],p=O[4],!(_=O[9]=void 0===O[9]?g?0:t.length:h(O[9]-m,0))&&24&e&&(e&=-25),e&&1!=e)M=8==e||16==e?a(t,e,_):32!=e&&33!=e||p.length?o.apply(void 0,O):c(t,e,n,b);else var M=i(t,e,n);return l((j?r:s)(M,O),t,e)}},function(t,e,n){var r=n(56),i=n(115);function a(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}a.prototype=r(i.prototype),a.prototype.constructor=a,t.exports=a},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(212),i=n(483),a=r?function(t){return r.get(t)}:i;t.exports=a},function(t,e,n){var r=n(56),i=n(115);function a(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}a.prototype=r(i.prototype),a.prototype.constructor=a,t.exports=a},function(t,e){t.exports=function(t,e){for(var n=-1,r=t.length,i=0,a=[];++n1?r[0]+r.slice(2):r,+t.slice(n+1)]}},function(t,e,n){"use strict";n(4);var r=n(542);n.d(e,"c",(function(){return r.a})),n.d(e,"n",(function(){return r.a}));var i=n(543);n.d(e,"g",(function(){return i.a})),n.d(e,"r",(function(){return i.a}));var a=n(544);n.d(e,"d",(function(){return a.a}));var o=n(545);n.d(e,"b",(function(){return o.a}));var c=n(546);n.d(e,"a",(function(){return c.a}));var u=n(547);n.d(e,"j",(function(){return u.b})),n.d(e,"h",(function(){return u.b})),n.d(e,"e",(function(){return u.a})),n.d(e,"i",(function(){return u.c}));var f=n(548);n.d(e,"f",(function(){return f.a}));var s=n(549);n.d(e,"k",(function(){return s.a}));var l=n(550);n.d(e,"o",(function(){return l.a}));var d=n(551);n.d(e,"m",(function(){return d.a}));var h=n(552);n.d(e,"l",(function(){return h.a}));var b=n(553);n.d(e,"u",(function(){return b.b})),n.d(e,"s",(function(){return b.b})),n.d(e,"p",(function(){return b.a})),n.d(e,"t",(function(){return b.c}));var p=n(554);n.d(e,"q",(function(){return p.a}));var v=n(555);n.d(e,"v",(function(){return v.a}))},function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return a})),n.d(e,"c",(function(){return o}));var r,i,a,o,c,u=n(237);c={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"]},r=Object(u.a)(c),i=r.format,r.parse,a=r.utcFormat,o=r.utcParse},function(t,e,n){var r=n(50),i=n(78),a=n(249),o=n(282),c=i((function(t){return t.push(void 0,a),r(o,void 0,t)}));t.exports=c},function(t,e,n){var r=n(50),i=Math.max;t.exports=function(t,e,n){return e=i(void 0===e?t.length-1:e,0),function(){for(var a=arguments,o=-1,c=i(a.length-e,0),u=Array(c);++o0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},function(t,e,n){var r=n(51),i=n(132),a=n(133),o=n(273),c=n(7),u=n(61),f=n(140);t.exports=function t(e,n,s,l,d){e!==n&&a(n,(function(a,u){if(c(a))d||(d=new r),o(e,n,u,s,t,l,d);else{var h=l?l(f(e,u),a,u+"",e,n,d):void 0;void 0===h&&(h=a),i(e,u,h)}}),u)}},function(t,e,n){var r=n(83),i=n(38);t.exports=function(t,e,n){(void 0===n||i(t[e],n))&&(void 0!==n||e in t)||r(t,e,n)}},function(t,e,n){var r=n(272)();t.exports=r},function(t,e,n){(function(t){var r=n(5),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i?r.Buffer:void 0,c=o?o.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,r=c?c(n):new t.constructor(n);return t.copy(r),r}}).call(e,n(84)(t))},function(t,e,n){var r=n(85);t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},function(t,e,n){var r=n(5).Uint8Array;t.exports=r},function(t,e,n){var r=n(56),i=n(86),a=n(57);t.exports=function(t){return"function"!=typeof t.constructor||a(t)?{}:r(i(t))}},function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},function(t,e,n){var r=n(16),i=n(86),a=n(6),o=Function.prototype,c=Object.prototype,u=o.toString,f=c.hasOwnProperty,s=u.call(Object);t.exports=function(t){if(!a(t)||"[object Object]"!=r(t))return!1;var e=i(t);if(null===e)return!0;var n=f.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==s}},function(t,e){t.exports=function(t,e){if("__proto__"!=e)return t[e]}},function(t,e,n){var r=n(279),i=n(58),a=n(2),o=n(59),c=n(62),u=n(88),f=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=a(t),s=!n&&i(t),l=!n&&!s&&o(t),d=!n&&!s&&!l&&u(t),h=n||s||l||d,b=h?r(t.length,String):[],p=b.length;for(var v in t)!e&&!f.call(t,v)||h&&("length"==v||l&&("offset"==v||"parent"==v)||d&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||c(v,p))||b.push(v);return b}},function(t,e,n){var r=n(78),i=n(63);t.exports=function(t){return r((function(e,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,c=a>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,c&&i(n[0],n[1],c)&&(o=a<3?void 0:o,a=1),e=Object(e);++rs))return!1;var d=u.get(t);if(d&&u.get(e))return d==e;var h=-1,b=!0,p=2&n?new r:void 0;for(u.set(t,e),u.set(e,t);++h1?this.each((null==e?i:"function"==typeof e?o:a)(t,e,null==n?"":n)):c(this.node(),t)}},function(t,e,n){"use strict";e.b=function(t,e){var n=t.document.documentElement,a=Object(r.select)(t).on("dragstart.drag",null);e&&(a.on("click.drag",i.a,!0),setTimeout((function(){a.on("click.drag",null)}),0)),"onselectstart"in n?a.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)};var r=n(3),i=n(166);e.a=function(t){var e=t.document.documentElement,n=Object(r.select)(t).on("dragstart.drag",i.a,!0);"onselectstart"in e?n.on("selectstart.drag",i.a,!0):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}},function(t,e,n){"use strict";e.b=function(){r.event.stopImmediatePropagation()};var r=n(3);e.a=function(){r.event.preventDefault(),r.event.stopImmediatePropagation()}},function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}));var r=Math.PI/180,i=180/Math.PI},function(t,e,n){"use strict";n.d(e,"b",(function(){return u}));var r=n(9),i=n(102),a=n(169),o=n(43);function c(t){return function(e){var n,i,a=e.length,o=new Array(a),c=new Array(a),u=new Array(a);for(n=0;nu&&(c=e.slice(u,c),s[f]?s[f]+=c:s[++f]=c),(n=n[0])===(o=o[0])?s[f]?s[f]+=o:s[++f]=o:(s[++f]=null,l.push({i:f,x:Object(r.a)(n,o)})),u=a.lastIndex;return ur.d&&n.state=o;--c)d.point(y[c],_[c]);d.lineEnd(),d.areaEnd()}v&&(y[a]=+t(h,a,i),_[a]=+n(h,a,i),d.point(e?+e(h,a,i):y[a],u?+u(h,a,i):_[a]))}if(b)return d=null,b+""||null}function b(){return Object(o.a)().defined(f).curve(l).context(s)}return h.x=function(n){return arguments.length?(t="function"==typeof n?n:Object(i.a)(+n),e=null,h):t},h.x0=function(e){return arguments.length?(t="function"==typeof e?e:Object(i.a)(+e),h):t},h.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:Object(i.a)(+t),h):e},h.y=function(t){return arguments.length?(n="function"==typeof t?t:Object(i.a)(+t),u=null,h):n},h.y0=function(t){return arguments.length?(n="function"==typeof t?t:Object(i.a)(+t),h):n},h.y1=function(t){return arguments.length?(u=null==t?null:"function"==typeof t?t:Object(i.a)(+t),h):u},h.lineX0=h.lineY0=function(){return b().x(t).y(n)},h.lineY1=function(){return b().x(t).y(u)},h.lineX1=function(){return b().x(e).y(n)},h.defined=function(t){return arguments.length?(f="function"==typeof t?t:Object(i.a)(!!t),h):f},h.curve=function(t){return arguments.length?(l=t,null!=s&&(d=l(s)),h):l},h.context=function(t){return arguments.length?(null==t?s=d=null:d=l(s=t),h):s},h}},function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),e.b=a;var r=a(n(71).a);function i(t){this._curve=t}function a(t){function e(e){return new i(t(e))}return e._curve=t,e}i.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(t,e,n){"use strict";e.b=a;var r=n(184),i=n(108);function a(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(Object(r.b)(t)):e()._curve},t}e.a=function(){return a(Object(i.a)().curve(r.a))}},function(t,e,n){"use strict";e.a=function(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}},function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var r=Array.prototype.slice},function(t,e,n){"use strict";var r=n(44);e.a={draw:function(t,e){var n=Math.sqrt(e/r.j);t.moveTo(n,0),t.arc(0,0,n,0,r.m)}}},function(t,e,n){"use strict";e.a={draw:function(t,e){var n=Math.sqrt(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()}}},function(t,e,n){"use strict";var r=Math.sqrt(1/3),i=2*r;e.a={draw:function(t,e){var n=Math.sqrt(e/i),a=n*r;t.moveTo(0,-n),t.lineTo(a,0),t.lineTo(0,n),t.lineTo(-a,0),t.closePath()}}},function(t,e,n){"use strict";var r=n(44),i=Math.sin(r.j/10)/Math.sin(7*r.j/10),a=Math.sin(r.m/10)*i,o=-Math.cos(r.m/10)*i;e.a={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),i=a*n,c=o*n;t.moveTo(0,-n),t.lineTo(i,c);for(var u=1;u<5;++u){var f=r.m*u/5,s=Math.cos(f),l=Math.sin(f);t.lineTo(l*n,-s*n),t.lineTo(s*i-l*c,l*i+s*c)}t.closePath()}}},function(t,e,n){"use strict";e.a={draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}}},function(t,e,n){"use strict";var r=Math.sqrt(3);e.a={draw:function(t,e){var n=-Math.sqrt(e/(3*r));t.moveTo(0,2*n),t.lineTo(-r*n,-n),t.lineTo(r*n,-n),t.closePath()}}},function(t,e,n){"use strict";var r=-.5,i=Math.sqrt(3)/2,a=1/Math.sqrt(12),o=3*(a/2+1);e.a={draw:function(t,e){var n=Math.sqrt(e/o),c=n/2,u=n*a,f=c,s=n*a+n,l=-f,d=s;t.moveTo(c,u),t.lineTo(f,s),t.lineTo(l,d),t.lineTo(r*c-i*u,i*c+r*u),t.lineTo(r*f-i*s,i*f+r*s),t.lineTo(r*l-i*d,i*l+r*d),t.lineTo(r*c+i*u,r*u-i*c),t.lineTo(r*f+i*s,r*s-i*f),t.lineTo(r*l+i*d,r*d-i*l),t.closePath()}}},function(t,e,n){"use strict";e.a=a;var r=n(72),i=n(74);function a(t,e){this._context=t,this._k=(1-e)/6}a.prototype={areaStart:r.a,areaEnd:r.a,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)}},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:Object(i.c)(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.b=function t(e){function n(t){return new a(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){"use strict";e.a=i;var r=n(74);function i(t,e){this._context=t,this._k=(1-e)/6}i.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||0!==this._line&&3===this._point)&&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:Object(r.c)(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.b=function t(e){function n(t){return new i(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"a",(function(){return c}));var r=n(36),i=n(198),a=Object(i.a)(r.a),o=a.right,c=a.left;e.c=o},function(t,e,n){"use strict";var r=n(36);e.a=function(t){var e;return 1===t.length&&(e=t,t=function(t,n){return Object(r.a)(e(t),n)}),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[a],n)<0?r=a+1:i=a}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[a],n)>0?i=a:r=a+1}return r}}}},function(t,e,n){"use strict";function r(t,e){return[t,e]}e.b=r,e.a=function(t,e){null==e&&(e=r);for(var n=0,i=t.length-1,a=t[0],o=new Array(i<0?0:i);n1)return f/(o-1)}},function(t,e,n){"use strict";e.a=function(t,e){var n,r,i,a=t.length,o=-1;if(null==e){for(;++o=n)for(r=i=n;++on&&(r=n),i=n)for(r=i=n;++on&&(r=n),i=r?c*=10:u>=i?c*=5:u>=a&&(c*=2),e=0?(u>=r?10:u>=i?5:u>=a?2:1)*Math.pow(10,c):-Math.pow(10,-c)/(u>=r?10:u>=i?5:u>=a?2:1)}e.a=function(t,e,n){var r,i,a,c,u=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((r=e0)for(t=Math.ceil(t/c),e=Math.floor(e/c),a=new Array(i=Math.ceil(e-t+1));++u=n)for(r=n;++an&&(r=n)}else for(;++a=n)for(r=n;++an&&(r=n);return r}},function(t,e,n){"use strict";var r=n(207);function i(t){return t.length}e.a=function(t){if(!(o=t.length))return[];for(var e=-1,n=Object(r.a)(t,i),a=new Array(n);++e3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Math.E;r&&t*e<=0&&console.warn("As log(0) = -∞, a log scale domain must be\n strictly-positive or strictly-negative. logscale ignored");var a=r&&t*e>0?(0,f.scaleLog)().base(i):(0,f.scaleLinear)();return a.domain([t,e]).range([0,n]).clamp(!0)};var r=s(n(475)),i=s(n(506)),a=s(n(509)),o=s(n(511)),c=s(n(514)),u=s(n(518)),f=n(225);function s(t){return t&&t.__esModule?t:{default:t}}},function(t,e,n){var r=n(28),i=n(212),a=i?function(t,e){return i.set(t,e),t}:r;t.exports=a},function(t,e,n){var r=n(151),i=r&&new r;t.exports=i},function(t,e,n){var r=n(214),i=n(215),a=n(482),o=n(75),c=n(216),u=n(222),f=n(494),s=n(118),l=n(5);t.exports=function t(e,n,d,h,b,p,v,y,_,g){var m=128&n,x=1&n,w=2&n,j=24&n,O=512&n,M=w?void 0:o(e);return function k(){for(var A=arguments.length,T=Array(A),S=A;S--;)T[S]=arguments[S];if(j)var P=u(k),R=a(T,P);if(h&&(T=r(T,h,b,j)),p&&(T=i(T,p,v,j)),A-=R,j&&A1&&T.reverse(),m&&_(c=t.charCodeAt(n))||c>57){h=(46===c?l+t.slice(n+1):t.slice(n))+h,t=t.slice(0,n);break}}v&&!b&&(t=e(t,1/0));var O=f.length+t.length+h.length,M=O>1)+f+t+h+M.slice(O);break;default:t=M+f+t+h}return d(t)}return y=null==y?_?6:12:/[gprs]/.test(_)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),j.toString=function(){return t+""},j}return{format:b,formatPrefix:function(t,e){var n=b(((t=Object(o.a)(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Object(r.a)(e)/3))),a=Math.pow(10,-i),c=s[8+i/3];return function(t){return n(a*t)+c}}}}},function(t,e,n){"use strict";e.a=a;var r=n(232),i=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;function a(t){return new o(t)}function o(t){if(!(e=i.exec(t)))throw new Error("invalid format: "+t);var e,n=e[1]||" ",a=e[2]||">",o=e[3]||"-",c=e[4]||"",u=!!e[5],f=e[6]&&+e[6],s=!!e[7],l=e[8]&&+e[8].slice(1),d=e[9]||"";"n"===d?(s=!0,d="g"):r.a[d]||(d=""),(u||"0"===n&&"="===a)&&(u=!0,n="0",a="="),this.fill=n,this.align=a,this.sign=o,this.symbol=c,this.zero=u,this.width=f,this.comma=s,this.precision=l,this.type=d}a.prototype=o.prototype,o.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type}},function(t,e,n){"use strict";var r=n(531),i=n(233),a=n(532);e.a={"":r.a,"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return Object(a.a)(100*t,e)},r:a.a,s:i.a,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}}},function(t,e,n){"use strict";n.d(e,"b",(function(){return r}));var r,i=n(122);e.a=function(t,e){var n=Object(i.a)(t,e);if(!n)return t+"";var a=n[0],o=n[1],c=o-(r=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,u=a.length;return c===u?a:c>u?a+new Array(c-u+1).join("0"):c>0?a.slice(0,c)+"."+a.slice(c):"0."+new Array(1-c).join("0")+Object(i.a)(t,Math.max(0,e+c-1))[0]}},function(t,e,n){"use strict";e.a=function(t,e){var n,r=0,i=(t=t.slice()).length-1,a=t[r],o=t[i];return o=12)]},Q:pt,s:vt,S:F,u:Y,U:q,V:G,w:V,W:X,x:null,X:null,y:H,Y:$,Z:Z,"%":bt},St={a:function(t){return l[t.getUTCDay()]},A:function(t){return s[t.getUTCDay()]},b:function(t){return yt[t.getUTCMonth()]},B:function(t){return d[t.getUTCMonth()]},c:null,d:K,e:K,f:nt,H:J,I:Q,j:tt,L:et,m:rt,M:it,p:function(t){return f[+(t.getUTCHours()>=12)]},Q:pt,s:vt,S:at,u:ot,U:ct,V:ut,w:ft,W:st,x:null,X:null,y:lt,Y:dt,Z:ht,"%":bt},Pt={a:function(t,e,n){var r=wt.exec(e.slice(n));return r?(t.w=jt[r[0].toLowerCase()],n+r[0].length):-1},A:function(t,e,n){var r=mt.exec(e.slice(n));return r?(t.w=xt[r[0].toLowerCase()],n+r[0].length):-1},b:function(t,e,n){var r=kt.exec(e.slice(n));return r?(t.m=At[r[0].toLowerCase()],n+r[0].length):-1},B:function(t,e,n){var r=Ot.exec(e.slice(n));return r?(t.m=Mt[r[0].toLowerCase()],n+r[0].length):-1},c:function(t,n,r){return Ct(t,e,n,r)},d:O,e:O,f:P,H:k,I:k,j:M,L:S,m:j,M:A,p:function(t,e,n){var r=_t.exec(e.slice(n));return r?(t.p=gt[r[0].toLowerCase()],n+r[0].length):-1},Q:E,s:C,S:T,u:v,U:y,V:_,w:p,W:g,x:function(t,e,r){return Ct(t,n,e,r)},X:function(t,e,n){return Ct(t,u,e,n)},y:x,Y:m,Z:w,"%":R};function Rt(t,e){return function(n){var r,i,a,o=[],u=-1,f=0,s=t.length;for(n instanceof Date||(n=new Date(+n));++u53)return null;"w"in u||(u.w=1),"Z"in u?(c=(i=a(o(u.y))).getUTCDay(),i=c>4||0===c?r.p.ceil(i):Object(r.p)(i),i=r.l.offset(i,7*(u.V-1)),u.y=i.getUTCFullYear(),u.m=i.getUTCMonth(),u.d=i.getUTCDate()+(u.w+6)%7):(c=(i=e(o(u.y))).getDay(),i=c>4||0===c?r.e.ceil(i):Object(r.e)(i),i=r.a.offset(i,7*(u.V-1)),u.y=i.getFullYear(),u.m=i.getMonth(),u.d=i.getDate()+(u.w+6)%7)}else("W"in u||"U"in u)&&("w"in u||(u.w="u"in u?u.u%7:"W"in u?1:0),c="Z"in u?a(o(u.y)).getUTCDay():e(o(u.y)).getDay(),u.m=0,u.d="W"in u?(u.w+6)%7+7*u.W-(c+5)%7:u.w+7*u.U-(c+6)%7);return"Z"in u?(u.H+=u.Z/100|0,u.M+=u.Z%100,a(u)):e(u)}}function Ct(t,e,n,r){for(var i,a,o=0,u=e.length,f=n.length;o=f)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=Pt[i in c?e.charAt(o++):i])||(r=a(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return(Tt.x=Rt(n,Tt),Tt.X=Rt(u,Tt),Tt.c=Rt(e,Tt),St.x=Rt(n,St),St.X=Rt(u,St),St.c=Rt(e,St),{format:function(t){var e=Rt(t+="",Tt);return e.toString=function(){return t},e},parse:function(t){var e=Et(t+="",i);return e.toString=function(){return t},e},utcFormat:function(t){var e=Rt(t+="",St);return e.toString=function(){return t},e},utcParse:function(t){var e=Et(t,a);return e.toString=function(){return t},e}})};var r=n(123);function i(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 a(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 o(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}var c={"-":"",_:" ",0:"0"},u=/^\s*\d+/,f=/^%/,s=/[\\^$*+?|[\]().{}]/g;function l(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a68?1900:2e3),n+r[0].length):-1}function w(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 j(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function O(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function M(t,e,n){var r=u.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function k(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function A(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function T(t,e,n){var r=u.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function S(t,e,n){var r=u.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function P(t,e,n){var r=u.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function R(t,e,n){var r=f.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function E(t,e,n){var r=u.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function C(t,e,n){var r=u.exec(e.slice(n));return r?(t.Q=1e3*+r[0],n+r[0].length):-1}function I(t,e){return l(t.getDate(),e,2)}function N(t,e){return l(t.getHours(),e,2)}function D(t,e){return l(t.getHours()%12||12,e,2)}function z(t,e){return l(1+r.a.count(Object(r.k)(t),t),e,3)}function B(t,e){return l(t.getMilliseconds(),e,3)}function U(t,e){return B(t,e)+"000"}function L(t,e){return l(t.getMonth()+1,e,2)}function W(t,e){return l(t.getMinutes(),e,2)}function F(t,e){return l(t.getSeconds(),e,2)}function Y(t){var e=t.getDay();return 0===e?7:e}function q(t,e){return l(r.h.count(Object(r.k)(t),t),e,2)}function G(t,e){var n=t.getDay();return t=n>=4||0===n?Object(r.i)(t):r.i.ceil(t),l(r.i.count(Object(r.k)(t),t)+(4===Object(r.k)(t).getDay()),e,2)}function V(t){return t.getDay()}function X(t,e){return l(r.e.count(Object(r.k)(t),t),e,2)}function H(t,e){return l(t.getFullYear()%100,e,2)}function $(t,e){return l(t.getFullYear()%1e4,e,4)}function Z(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+l(e/60|0,"0",2)+l(e%60,"0",2)}function K(t,e){return l(t.getUTCDate(),e,2)}function J(t,e){return l(t.getUTCHours(),e,2)}function Q(t,e){return l(t.getUTCHours()%12||12,e,2)}function tt(t,e){return l(1+r.l.count(Object(r.v)(t),t),e,3)}function et(t,e){return l(t.getUTCMilliseconds(),e,3)}function nt(t,e){return et(t,e)+"000"}function rt(t,e){return l(t.getUTCMonth()+1,e,2)}function it(t,e){return l(t.getUTCMinutes(),e,2)}function at(t,e){return l(t.getUTCSeconds(),e,2)}function ot(t){var e=t.getUTCDay();return 0===e?7:e}function ct(t,e){return l(r.s.count(Object(r.v)(t),t),e,2)}function ut(t,e){var n=t.getUTCDay();return t=n>=4||0===n?Object(r.t)(t):r.t.ceil(t),l(r.t.count(Object(r.v)(t),t)+(4===Object(r.v)(t).getUTCDay()),e,2)}function ft(t){return t.getUTCDay()}function st(t,e){return l(r.p.count(Object(r.v)(t),t),e,2)}function lt(t,e){return l(t.getUTCFullYear()%100,e,2)}function dt(t,e){return l(t.getUTCFullYear()%1e4,e,4)}function ht(){return"+0000"}function bt(){return"%"}function pt(t){return+t}function vt(t){return Math.floor(+t/1e3)}},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(124),i="%Y-%m-%dT%H:%M:%S.%LZ";Date.prototype.toISOString||Object(r.b)(i)},function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"d",(function(){return i})),n.d(e,"b",(function(){return o})),n.d(e,"e",(function(){return c})),n.d(e,"c",(function(){return u}));var r=Math.cos,i=Math.sin,a=Math.PI,o=a/2,c=2*a,u=Math.max},function(t,e,n){"use strict";var r=function(){function t(t,e){for(var n=0;n-1}},function(t,e,n){var r=n(53);t.exports=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}},function(t,e,n){var r=n(52);t.exports=function(){this.__data__=new r,this.size=0}},function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},function(t,e){t.exports=function(t){return this.__data__.get(t)}},function(t,e){t.exports=function(t){return this.__data__.has(t)}},function(t,e,n){var r=n(52),i=n(81),a=n(82);t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var o=n.__data__;if(!i||o.length<199)return o.push([t,e]),this.size=++n.size,this;n=this.__data__=new a(o)}return n.set(t,e),this.size=n.size,this}},function(t,e,n){var r=n(261),i=n(52),a=n(81);t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}},function(t,e,n){var r=n(262),i=n(263),a=n(264),o=n(265),c=n(266);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=O&&(O=j+1);!(w=m[O])&&++O<_;);x._next=w||null}}return(s=new r.a(s,i))._enter=l,s._exit=d,s}},function(t,e,n){"use strict";e.a=function(t){return function(){return t}}},function(t,e,n){"use strict";var r=n(163),i=n(11);e.a=function(){return new i.a(this._exit||this._groups.map(r.a),this._parents)}},function(t,e,n){"use strict";var r=n(11);e.a=function(t){for(var e=this._groups,n=t._groups,i=e.length,a=n.length,o=Math.min(i,a),c=new Array(i),u=0;u=0;)(r=i[a])&&(o&&o!==r.nextSibling&&o.parentNode.insertBefore(r,o),o=r);return this}},function(t,e,n){"use strict";var r=n(11);function i(t,e){return te?1:t>=e?0:NaN}e.a=function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=i);for(var n=this._groups,a=n.length,o=new Array(a),c=0;c1?this.each((null==e?r:"function"==typeof e?a:i)(t,e)):this.node()[t]}},function(t,e,n){"use strict";function r(t){return t.trim().split(/^|\s+/)}function i(t){return t.classList||new a(t)}function a(t){this._node=t,this._names=r(t.getAttribute("class")||"")}function o(t,e){for(var n=i(t),r=-1,a=e.length;++r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}},e.a=function(t,e){var n=r(t+"");if(arguments.length<2){for(var a=i(this.node()),o=-1,c=n.length;++or?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}e.a=function(){var t,e,n=d,_=h,g=y,m=p,x=v,w=[0,1/0],j=[[-1/0,-1/0],[1/0,1/0]],O=250,M=a.j,k=[],A=Object(r.dispatch)("start","zoom","end"),T=0;function S(t){t.property("__zoom",b).on("wheel.zoom",D).on("mousedown.zoom",z).on("dblclick.zoom",B).filter(x).on("touchstart.zoom",U).on("touchmove.zoom",L).on("touchend.zoom touchcancel.zoom",W).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function P(t,e){return(e=Math.max(w[0],Math.min(w[1],e)))===t.k?t:new s.a(e,t.x,t.y)}function R(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new s.a(t.k,r,i)}function E(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function C(t,e,n){t.on("start.zoom",(function(){I(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){I(this,arguments).end()})).tween("zoom",(function(){var t=this,r=arguments,i=I(t,r),a=_.apply(t,r),o=n||E(a),c=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),u=t.__zoom,f="function"==typeof e?e.apply(t,r):e,l=M(u.invert(o).concat(c/u.k),f.invert(o).concat(c/f.k));return function(t){if(1===t)t=f;else{var e=l(t),n=c/e[2];t=new s.a(n,o[0]-e[0]*n,o[1]-e[1]*n)}i.zoom(null,t)}}))}function I(t,e){for(var n,r=0,i=k.length;rT}t.zoom("mouse",g(R(t.that.__zoom,t.mouse[0]=Object(o.mouse)(t.that),t.mouse[1]),t.extent,j))}function d(){r.on("mousemove.zoom mouseup.zoom",null),Object(i.b)(o.event.view,t.moved),Object(l.a)(),t.end()}}function B(){if(n.apply(this,arguments)){var t=this.__zoom,e=Object(o.mouse)(this),r=t.invert(e),i=t.k*(o.event.shiftKey?.5:2),a=g(R(P(t,i),e,r),_.apply(this,arguments),j);Object(l.a)(),O>0?Object(o.select)(this).transition().duration(O).call(C,a,e):Object(o.select)(this).call(S.transform,a)}}function U(){if(n.apply(this,arguments)){var e,r,i,a,u=I(this,arguments),f=o.event.changedTouches,s=f.length;for(Object(l.b)(),r=0;r=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function c(t,e){for(var n,r=0,i=t.length;r0)for(var n,r,i=new Array(n),a=0;a.008856451679035631?Math.pow(t,1/3):t/c+4/29}function d(t){return t>o?t*t*t:c*(t-4/29)}function h(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function b(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function p(t){if(t instanceof y)return new y(t.h,t.c,t.l,t.opacity);t instanceof s||(t=u(t));var e=Math.atan2(t.b,t.a)*a.b;return new y(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function v(t,e,n,r){return 1===arguments.length?p(t):new y(t,e,n,null==r?1:r)}function y(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}Object(r.a)(s,f,Object(r.b)(i.a,{brighter:function(t){return new s(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new s(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){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 t=1*d(t),e=.95047*d(e),n=1.08883*d(n),new i.b(h(3.2404542*e-1.5371385*t-.4985314*n),h(-.969266*e+1.8760108*t+.041556*n),h(.0556434*e-.2040259*t+1.0572252*n),this.opacity)}})),Object(r.a)(y,v,Object(r.b)(i.a,{brighter:function(t){return new y(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new y(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return u(this).rgb()}}))},function(t,e,n){"use strict";e.a=p;var r=n(101),i=n(100),a=n(167),o=-.14861,c=1.78277,u=-.29227,f=-.90649,s=1.97294,l=s*f,d=s*c,h=c*u-f*o;function b(t){if(t instanceof v)return new v(t.h,t.s,t.l,t.opacity);t instanceof i.b||(t=Object(i.h)(t));var e=t.r/255,n=t.g/255,r=t.b/255,o=(h*r+l*e-d*n)/(h+l-d),c=r-o,b=(s*(n-o)-u*c)/f,p=Math.sqrt(b*b+c*c)/(s*o*(1-o)),y=p?Math.atan2(b,c)*a.b-120:NaN;return new v(y<0?y+360:y,p,o,t.opacity)}function p(t,e,n,r){return 1===arguments.length?b(t):new v(t,e,n,null==r?1:r)}function v(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Object(r.a)(v,p,Object(r.b)(i.a,{brighter:function(t){return t=null==t?i.c:Math.pow(i.c,t),new v(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?i.d:Math.pow(i.d,t),new v(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*a.a,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),l=Math.sin(t);return new i.b(255*(e+n*(o*r+c*l)),255*(e+n*(u*r+f*l)),255*(e+n*(s*r)),this.opacity)}}))},function(t,e,n){"use strict";e.a=function(t,e){return e-=t=+t,function(n){return Math.round(t+e*n)}}},function(t,e,n){"use strict";n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return c}));var r=n(69),i=n(359);function a(t,e,n,i){function a(t){return t.length?t.pop()+" ":""}return function(o,c){var u=[],f=[];return o=t(o),c=t(c),function(t,i,a,o,c,u){if(t!==a||i!==o){var f=c.push("translate(",null,e,null,n);u.push({i:f-4,x:Object(r.a)(t,a)},{i:f-2,x:Object(r.a)(i,o)})}else(a||o)&&c.push("translate("+a+e+o+n)}(o.translateX,o.translateY,c.translateX,c.translateY,u,f),function(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(a(n)+"rotate(",null,i)-2,x:Object(r.a)(t,e)})):e&&n.push(a(n)+"rotate("+e+i)}(o.rotate,c.rotate,u,f),function(t,e,n,o){t!==e?o.push({i:n.push(a(n)+"skewX(",null,i)-2,x:Object(r.a)(t,e)}):e&&n.push(a(n)+"skewX("+e+i)}(o.skewX,c.skewX,u,f),function(t,e,n,i,o,c){if(t!==n||e!==i){var u=o.push(a(o)+"scale(",null,",",null,")");c.push({i:u-4,x:Object(r.a)(t,n)},{i:u-2,x:Object(r.a)(e,i)})}else 1===n&&1===i||o.push(a(o)+"scale("+n+","+i+")")}(o.scaleX,o.scaleY,c.scaleX,c.scaleY,u,f),o=c=null,function(t){for(var e,n=-1,r=f.length;++n=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?r.g:r.h;return function(){var r=o(this,t),c=r.on;c!==i&&(a=(i=c).copy()).on(e,n),r.on=a}}e.a=function(t,e){var n=this._id;return arguments.length<2?Object(r.f)(this.node(),n).on.on(t):this.each(i(n,t,e))}},function(t,e,n){"use strict";e.a=function(){return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}));var t}},function(t,e,n){"use strict";var r=n(3),i=n(19),a=n(12);e.a=function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=Object(r.selector)(t));for(var o=this._groups,c=o.length,u=new Array(c),f=0;fi.c&&n.name===e)return new r.a([[t]],a,e,+o);return null}},function(t,e,n){"use strict";e.a=function(t){return function(){return t}}},function(t,e,n){"use strict";e.a=function(t,e,n){this.target=t,this.type=e,this.transform=n}},function(t,e,n){"use strict";e.b=function(){r.event.stopImmediatePropagation()};var r=n(3);e.a=function(){r.event.preventDefault(),r.event.stopImmediatePropagation()}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[],e=arguments[1],n=arguments[2],o=0===t.length,c=n.svg.attr("width",n.conf.width).attr("height",n.conf.height);e&&(0,r.default)(n.tracks,(function(t,e){c.select("."+e).remove()}));var u=c.select(".all");u.empty()&&(u=c.append("g").attr("class","all").attr("transform","translate(\n "+parseInt(n.conf.width/2)+",\n "+parseInt(n.conf.height/2)+"\n )")),(0,r.default)(n.tracks,(function(e,r){(o||r in t)&&e.render(n,u,r)})),(o||"layout"in t)&&(0,a.default)(u,n);var f=c.selectAll(".all > g").remove(),s=(0,i.default)(f._groups[0],(function(t){return t.getAttribute("z-index")}));return c.select(".all").selectAll("g").data(s).enter().append((function(t){return t})),n};var r=o(n(32)),i=o(n(106)),a=o(n(426));function o(t){return t&&t.__esModule?t:{default:t}}},function(t,e,n){var r=n(29),i=n(58),a=n(2),o=r?r.isConcatSpreadable:void 0;t.exports=function(t){return a(t)||i(t)||!!(o&&t&&t[o])}},function(t,e,n){var r=n(40),i=n(33),a=n(158),o=n(423),c=n(60),u=n(424),f=n(28);t.exports=function(t,e,n){var s=-1;e=r(e.length?e:[f],c(i));var l=a(t,(function(t,n,i){return{criteria:r(e,(function(e){return e(t)})),index:++s,value:t}}));return o(l,(function(t,e){return u(t,e,n)}))}},function(t,e){t.exports=function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}},function(t,e,n){var r=n(425);t.exports=function(t,e,n){for(var i=-1,a=t.criteria,o=e.criteria,c=a.length,u=n.length;++i=u?f:f*("desc"==n[i]?-1:1)}return t.index-e.index}},function(t,e,n){var r=n(34);t.exports=function(t,e){if(t!==e){var n=void 0!==t,i=null===t,a=t==t,o=r(t),c=void 0!==e,u=null===e,f=e==e,s=r(e);if(!u&&!s&&!o&&t>e||o&&c&&f&&!u&&!s||i&&c&&f||!n&&f||!a)return 1;if(!i&&!o&&!s&&tMath.PI?"rotate(180)translate(-16)":null})).style("text-anchor",(function(t){return t.angle>Math.PI?"end":null})).style("font-size",t.ticks.labelSize+"px").style("fill",t.ticks.labelColor).text((function(t){return t.label}))}(n,o,e)};var r=n(13),i=n(10),a=n(3)},function(t,e,n){"use strict";var r=n(35),i=n(25),a=n(44);function o(t){return t.innerRadius}function c(t){return t.outerRadius}function u(t){return t.startAngle}function f(t){return t.endAngle}function s(t){return t&&t.padAngle}function l(t,e,n,r,i,a,o,c){var u=n-t,f=r-e,s=o-i,l=c-a,d=(s*(e-a)-l*(t-i))/(l*u-s*f);return[t+d*u,e+d*f]}function d(t,e,n,r,i,o,c){var u=t-n,f=e-r,s=(c?o:-o)/Object(a.l)(u*u+f*f),l=s*f,d=-s*u,h=t+l,b=e+d,p=n+l,v=r+d,y=(h+p)/2,_=(b+v)/2,g=p-h,m=v-b,x=g*g+m*m,w=i-o,j=h*v-p*b,O=(m<0?-1:1)*Object(a.l)(Object(a.h)(0,w*w*x-j*j)),M=(j*m-g*O)/x,k=(-j*g-m*O)/x,A=(j*m+g*O)/x,T=(-j*g+m*O)/x,S=M-y,P=k-_,R=A-y,E=T-_;return S*S+P*P>R*R+E*E&&(M=A,k=T),{cx:M,cy:k,x01:-l,y01:-d,x11:M*(i/w-1),y11:k*(i/w-1)}}e.a=function(){var t=o,e=c,n=Object(i.a)(0),h=null,b=u,p=f,v=s,y=null;function _(){var i,o,c=+t.apply(this,arguments),u=+e.apply(this,arguments),f=b.apply(this,arguments)-a.g,s=p.apply(this,arguments)-a.g,_=Object(a.a)(s-f),g=s>f;if(y||(y=i=Object(r.a)()),ua.f)if(_>a.m-a.f)y.moveTo(u*Object(a.e)(f),u*Object(a.k)(f)),y.arc(0,0,u,f,s,!g),c>a.f&&(y.moveTo(c*Object(a.e)(s),c*Object(a.k)(s)),y.arc(0,0,c,s,f,g));else{var m,x,w=f,j=s,O=f,M=s,k=_,A=_,T=v.apply(this,arguments)/2,S=T>a.f&&(h?+h.apply(this,arguments):Object(a.l)(c*c+u*u)),P=Object(a.i)(Object(a.a)(u-c)/2,+n.apply(this,arguments)),R=P,E=P;if(S>a.f){var C=Object(a.c)(S/c*Object(a.k)(T)),I=Object(a.c)(S/u*Object(a.k)(T));(k-=2*C)>a.f?(O+=C*=g?1:-1,M-=C):(k=0,O=M=(f+s)/2),(A-=2*I)>a.f?(w+=I*=g?1:-1,j-=I):(A=0,w=j=(f+s)/2)}var N=u*Object(a.e)(w),D=u*Object(a.k)(w),z=c*Object(a.e)(M),B=c*Object(a.k)(M);if(P>a.f){var U=u*Object(a.e)(j),L=u*Object(a.k)(j),W=c*Object(a.e)(O),F=c*Object(a.k)(O);if(_a.f?l(N,D,W,F,U,L,z,B):[z,B],q=N-Y[0],G=D-Y[1],V=U-Y[0],X=L-Y[1],H=1/Object(a.k)(Object(a.b)((q*V+G*X)/(Object(a.l)(q*q+G*G)*Object(a.l)(V*V+X*X)))/2),$=Object(a.l)(Y[0]*Y[0]+Y[1]*Y[1]);R=Object(a.i)(P,(c-$)/(H-1)),E=Object(a.i)(P,(u-$)/(H+1))}}A>a.f?E>a.f?(m=d(W,F,N,D,u,E,g),x=d(U,L,z,B,u,E,g),y.moveTo(m.cx+m.x01,m.cy+m.y01),Ea.f&&k>a.f?R>a.f?(m=d(z,B,U,L,c,-R,g),x=d(N,D,W,F,c,-R,g),y.lineTo(m.cx+m.x01,m.cy+m.y01),R1e-6)if(Math.abs(l*u-f*s)>1e-6&&a){var h=n-o,b=i-c,p=u*u+f*f,v=h*h+b*b,y=Math.sqrt(p),_=Math.sqrt(d),g=a*Math.tan((r-Math.acos((p+d-v)/(2*y*_)))/2),m=g/_,x=g/y;Math.abs(m-1)>1e-6&&(this._+="L"+(t+m*s)+","+(e+m*l)),this._+="A"+a+","+a+",0,0,"+ +(l*h>s*b)+","+(this._x1=t+x*u)+","+(this._y1=e+x*f)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,o,c,u){t=+t,e=+e;var f=(n=+n)*Math.cos(o),s=n*Math.sin(o),l=t+f,d=e+s,h=1^u,b=u?o-c:c-o;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+d:(Math.abs(this._x1-l)>1e-6||Math.abs(this._y1-d)>1e-6)&&(this._+="L"+l+","+d),n&&(b<0&&(b=b%i+i),b>a?this._+="A"+n+","+n+",0,1,"+h+","+(t-f)+","+(e-s)+"A"+n+","+n+",0,1,"+h+","+(this._x1=l)+","+(this._y1=d):b>1e-6&&(this._+="A"+n+","+n+",0,"+ +(b>=r)+","+h+","+(this._x1=t+n*Math.cos(c))+","+(this._y1=e+n*Math.sin(c))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}},e.a=c},function(t,e,n){"use strict";var r=n(25),i=n(430),a=n(431),o=n(44);e.a=function(){var t=a.a,e=i.a,n=null,c=Object(r.a)(0),u=Object(r.a)(o.m),f=Object(r.a)(0);function s(r){var i,a,s,l,d,h=r.length,b=0,p=new Array(h),v=new Array(h),y=+c.apply(this,arguments),_=Math.min(o.m,Math.max(-o.m,u.apply(this,arguments)-y)),g=Math.min(Math.abs(_)/h,f.apply(this,arguments)),m=g*(_<0?-1:1);for(i=0;i0&&(b+=d);for(null!=e?p.sort((function(t,n){return e(v[t],v[n])})):null!=n&&p.sort((function(t,e){return n(r[t],r[e])})),i=0,s=b?(_-h*m)/b:0;i0?d*s:0)+m,v[a]={data:r[a],index:i,value:d,startAngle:y,endAngle:l,padAngle:g};return v}return s.value=function(e){return arguments.length?(t="function"==typeof e?e:Object(r.a)(+e),s):t},s.sortValues=function(t){return arguments.length?(e=t,n=null,s):e},s.sort=function(t){return arguments.length?(n=t,e=null,s):n},s.startAngle=function(t){return arguments.length?(c="function"==typeof t?t:Object(r.a)(+t),s):c},s.endAngle=function(t){return arguments.length?(u="function"==typeof t?t:Object(r.a)(+t),s):u},s.padAngle=function(t){return arguments.length?(f="function"==typeof t?t:Object(r.a)(+t),s):f},s}},function(t,e,n){"use strict";e.a=function(t,e){return et?1:e>=t?0:NaN}},function(t,e,n){"use strict";e.a=function(t){return t}},function(t,e,n){"use strict";var r=n(184),i=n(183),a=n(185);e.a=function(){var t=Object(i.a)().curve(r.a),e=t.curve,n=t.lineX0,o=t.lineX1,c=t.lineY0,u=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 Object(a.b)(n())},delete t.lineX0,t.lineEndAngle=function(){return Object(a.b)(o())},delete t.lineX1,t.lineInnerRadius=function(){return Object(a.b)(c())},delete t.lineY0,t.lineOuterRadius=function(){return Object(a.b)(u())},delete t.lineY1,t.curve=function(t){return arguments.length?e(Object(r.b)(t)):e()._curve},t}},function(t,e,n){"use strict";e.a=function(){return s(l)},e.c=function(){return s(d)},e.b=function(){var t=s(h);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t};var r=n(35),i=n(187),a=n(25),o=n(109),c=n(186);function u(t){return t.source}function f(t){return t.target}function s(t){var e=u,n=f,c=o.a,s=o.b,l=null;function d(){var a,o=i.a.call(arguments),u=e.apply(this,o),f=n.apply(this,o);if(l||(l=a=Object(r.a)()),t(l,+c.apply(this,(o[0]=u,o)),+s.apply(this,o),+c.apply(this,(o[0]=f,o)),+s.apply(this,o)),a)return l=null,a+""||null}return d.source=function(t){return arguments.length?(e=t,d):e},d.target=function(t){return arguments.length?(n=t,d):n},d.x=function(t){return arguments.length?(c="function"==typeof t?t:Object(a.a)(+t),d):c},d.y=function(t){return arguments.length?(s="function"==typeof t?t:Object(a.a)(+t),d):s},d.context=function(t){return arguments.length?(l=null==t?null:t,d):l},d}function l(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e=(e+r)/2,n,e,i,r,i)}function d(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e,n=(n+i)/2,r,n,r,i)}function h(t,e,n,r,i){var a=Object(c.a)(e,n),o=Object(c.a)(e,n=(n+i)/2),u=Object(c.a)(r,n),f=Object(c.a)(r,i);t.moveTo(a[0],a[1]),t.bezierCurveTo(o[0],o[1],u[0],u[1],f[0],f[1])}},function(t,e,n){"use strict";n.d(e,"b",(function(){return d}));var r=n(35),i=n(188),a=n(189),o=n(190),c=n(191),u=n(192),f=n(193),s=n(194),l=n(25),d=[i.a,a.a,o.a,u.a,c.a,f.a,s.a];e.a=function(){var t=Object(l.a)(i.a),e=Object(l.a)(64),n=null;function a(){var i;if(n||(n=i=Object(r.a)()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),i)return n=null,i+""||null}return a.type=function(e){return arguments.length?(t="function"==typeof e?e:Object(l.a)(e),a):t},a.size=function(t){return arguments.length?(e="function"==typeof t?t:Object(l.a)(+t),a):e},a.context=function(t){return arguments.length?(n=null==t?null:t,a):n},a}},function(t,e,n){"use strict";var r=n(72),i=n(73);function a(t){this._context=t}a.prototype={areaStart:r.a,areaEnd:r.a,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)}},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:Object(i.c)(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new a(t)}},function(t,e,n){"use strict";var r=n(73);function i(t){this._context=t}i.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||0!==this._line&&3===this._point)&&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,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:Object(r.c)(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new i(t)}},function(t,e,n){"use strict";var r=n(73);function i(t,e){this._basis=new r.a(t),this._beta=e}i.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,i=t[0],a=e[0],o=t[n]-i,c=e[n]-a,u=-1;++u<=n;)r=u/n,this._basis.point(this._beta*t[u]+(1-this._beta)*(i+r*o),this._beta*e[u]+(1-this._beta)*(a+r*c));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}},e.a=function t(e){function n(t){return 1===e?new r.a(t):new i(t,e)}return n.beta=function(e){return t(+e)},n}(.85)},function(t,e,n){"use strict";var r=n(195),i=n(72),a=n(110);function o(t,e){this._context=t,this._alpha=e}o.prototype={areaStart:i.a,areaEnd:i.a,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)}},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:Object(a.b)(this,t,e)}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}},e.a=function t(e){function n(t){return e?new o(t,e):new r.a(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){"use strict";var r=n(196),i=n(110);function a(t,e){this._context=t,this._alpha=e}a.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||0!==this._line&&3===this._point)&&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:Object(i.b)(this,t,e)}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}},e.a=function t(e){function n(t){return e?new a(t,e):new r.a(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){"use strict";var r=n(72);function i(t){this._context=t}i.prototype={areaStart:r.a,areaEnd:r.a,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))}},e.a=function(t){return new i(t)}},function(t,e,n){"use strict";function r(t){return t<0?-1:1}function i(t,e,n){var i=t._x1-t._x0,a=e-t._x1,o=(t._y1-t._y0)/(i||a<0&&-0),c=(n-t._y1)/(a||i<0&&-0),u=(o*a+c*i)/(i+a);return(r(o)+r(c))*Math.min(Math.abs(o),Math.abs(c),.5*Math.abs(u))||0}function a(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function o(t,e,n){var r=t._x0,i=t._y0,a=t._x1,o=t._y1,c=(a-r)/3;t._context.bezierCurveTo(r+c,i+c*e,a-c,o-c*n,a,o)}function c(t){this._context=t}function u(t){this._context=new f(t)}function f(t){this._context=t}e.a=function(t){return new c(t)},e.b=function(t){return new u(t)},c.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:o(this,this._t0,a(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+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,o(this,a(this,n=i(this,t,e)),n);break;default:o(this,this._t0,n=i(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(u.prototype=Object.create(c.prototype)).point=function(t,e){c.prototype.point.call(this,e,t)},f.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,a){this._context.bezierCurveTo(e,t,r,n,a,i)}}},function(t,e,n){"use strict";function r(t){this._context=t}function i(t){var e,n,r=t.length-1,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(o[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e=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)}}this._x=t,this._y=e}},e.a=function(t){return new r(t,.5)}},function(t,e,n){"use strict";var r=n(187),i=n(25),a=n(45),o=n(46);function c(t,e){return t[e]}e.a=function(){var t=Object(i.a)([]),e=o.a,n=a.a,u=c;function f(r){var i,a,o=t.apply(this,arguments),c=r.length,f=o.length,s=new Array(f);for(i=0;i0){for(var n,i,a,o=0,c=t[0].length;o1)for(var n,r,i,a,o,c,u=0,f=t[e[0]].length;u=0?(r[0]=a,r[1]=a+=i):i<0?(r[1]=o,r[0]=o+=i):r[0]=a}},function(t,e,n){"use strict";var r=n(45);e.a=function(t,e){if((n=t.length)>0){for(var n,i=0,a=t[e[0]],o=a.length;i0&&(i=(n=t[e[0]]).length)>0){for(var n,i,a,o=0,c=1;ct?1:e>=t?0:NaN}},function(t,e,n){"use strict";var r=n(203),i=n(197),a=n(455),o=n(202),c=n(456),u=n(204),f=n(205),s=n(206);e.a=function(){var t=c.a,e=o.a,n=s.a;function l(r){var a,o,c=r.length,s=new Array(c);for(a=0;ah;)b.pop(),--p;var v,y=new Array(p+1);for(a=0;a<=p;++a)(v=y[a]=[]).x0=a>0?b[a-1]:d,v.x1=a=n)for(r=n;++ar&&(r=n)}else for(;++a=n)for(r=n;++ar&&(r=n);return r}},function(t,e,n){"use strict";var r=n(47);e.a=function(t,e){var n,i=t.length,a=i,o=-1,c=0;if(null==e)for(;++o=0;)for(e=(r=t[i]).length;--e>=0;)n[--o]=r[e];return n}},function(t,e,n){"use strict";e.a=function(t,e){for(var n=e.length,r=new Array(n);n--;)r[n]=t[e[n]];return r}},function(t,e,n){"use strict";var r=n(36);e.a=function(t,e){if(n=t.length){var n,i,a=0,o=0,c=t[o];for(null==e&&(e=r.a);++a90?"end":"start",t._rotate=t._angle>90?180:0,t}))})).enter().append("g").append("text").text((function(t){return t.value})).attr("transform",(function(t){return"\n rotate("+t._angle+")\n translate("+e.innerRadius+", 0)\n rotate("+t._rotate+")\n "})).attr("text-anchor",(function(t){return t._anchor}));return(0,o.default)(e.style,(function(t,e){i.style(e,t)})),i}}]),e}(i.default);e.default=l},function(t,e,n){var r=n(470);"string"==typeof r&&(r=[[t.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(472)(r,i),r.locals&&(t.exports=r.locals)},function(t,e,n){(t.exports=n(471)(!1)).push([t.i,"div.circos-tooltip {\n position: absolute;\n text-align: center;\n padding: 5px 10px;\n background: #111111;\n color: white;\n border: 0px;\n pointer-events: none;\n z-index: 1000;\n}\n",""])},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=function(t,e){var n,r=t[1]||"",i=t[3];if(!i)return r;if(e&&"function"==typeof btoa){var a=(n=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */"),o=i.sources.map((function(t){return"/*# sourceURL="+i.sourceRoot+t+" */"}));return[r].concat(o).concat([a]).join("\n")}return[r].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n})).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i=0&&l.splice(e,1)}function y(t){var e=document.createElement("style");return void 0===t.attrs.type&&(t.attrs.type="text/css"),_(e,t.attrs),p(t,e),e}function _(t,e){Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])}))}function g(t,e){var n,r,i,a;if(e.transform&&t.css){if(!(a=e.transform(t.css)))return function(){};t.css=a}if(e.singleton){var o=s++;n=f||(f=y(e)),r=w.bind(null,n,o,!1),i=w.bind(null,n,o,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(t){var e=document.createElement("link");return void 0===t.attrs.type&&(t.attrs.type="text/css"),t.attrs.rel="stylesheet",_(e,t.attrs),p(t,e),e}(e),r=O.bind(null,n,e),i=function(){v(n),n.href&&URL.revokeObjectURL(n.href)}):(n=y(e),r=j.bind(null,n),i=function(){v(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else i()}}t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=b(t,e);return h(n,e),function(t){for(var r=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=arguments[1],r={};return(0,i.default)(n,(function(n,i){void 0!==n.iteratee?n.iteratee?Object.keys(e).indexOf(i)>-1?((0,a.default)(e[i]),r[i]=e[i]):r[i]=function(){return n.value}:r[i]=Object.keys(e).indexOf(i)>-1?e[i]:n.value:r[i]=t(e[i],n)})),r}(t,(0,r.default)(e));return(0,o.default)(f,function(t,e){return{cmin:null===t.min?e.min:t.min,cmax:null===t.max?e.max:t.max}}(f,n),function(t,e){if(0===t.innerRadius&&0===t.outerRadius){var n=(0,c.smartBorders)(t,e._layout,e.tracks);return{innerRadius:n.in,outerRadius:n.out}}return t.innerRadius<=1&&t.outerRadius<=1?{innerRadius:t.innerRadius*e._layout.conf.innerRadius,outerRadius:t.outerRadius*e._layout.conf.innerRadius}:t.innerRadius<=10&&t.outerRadius<=10?{innerRadius:t.innerRadius*e._layout.conf.outerRadius,outerRadius:t.outerRadius*e._layout.conf.outerRadius}:void 0}(f,u)),f}},function(t,e,n){var r=n(37)("sortBy",n(106));r.placeholder=n(26),t.exports=r},function(t,e,n){var r=n(477),i=n(26),a=Array.prototype.push;function o(t,e){return 2==e?function(e,n){return t(e,n)}:function(e){return t(e)}}function c(t){for(var e=t?t.length:0,n=Array(e);e--;)n[e]=t[e];return n}function u(t,e){return function(){var n=arguments.length;if(n){for(var r=Array(n);n--;)r[n]=arguments[n];var i=r[0]=e.apply(void 0,r);return t.apply(void 0,r),i}}}t.exports=function t(e,n,f,s){var l="function"==typeof n,d=n===Object(n);if(d&&(s=f,f=n,n=void 0),null==f)throw new TypeError;s||(s={});var h=!("cap"in s)||s.cap,b=!("curry"in s)||s.curry,p=!("fixed"in s)||s.fixed,v=!("immutable"in s)||s.immutable,y=!("rearg"in s)||s.rearg,_=l?f:i,g="curry"in s&&s.curry,m="fixed"in s&&s.fixed,x="rearg"in s&&s.rearg,w=l?f.runInContext():void 0,j=l?f:{ary:e.ary,assign:e.assign,clone:e.clone,curry:e.curry,forEach:e.forEach,isArray:e.isArray,isError:e.isError,isFunction:e.isFunction,isWeakMap:e.isWeakMap,iteratee:e.iteratee,keys:e.keys,rearg:e.rearg,toInteger:e.toInteger,toPath:e.toPath},O=j.ary,M=j.assign,k=j.clone,A=j.curry,T=j.forEach,S=j.isArray,P=j.isError,R=j.isFunction,E=j.isWeakMap,C=j.keys,I=j.rearg,N=j.toInteger,D=j.toPath,z=C(r.aryMethod),B={castArray:function(t){return function(){var e=arguments[0];return S(e)?t(c(e)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var e=arguments[0],n=arguments[1],r=t(e,n),i=r.length;return h&&"number"==typeof n?(n=n>2?n-2:1,i&&i<=n?r:o(r,n)):r}},mixin:function(t){return function(e){var n=this;if(!R(n))return t(n,Object(e));var r=[];return T(C(e),(function(t){R(e[t])&&r.push([t,n.prototype[t]])})),t(n,Object(e)),T(r,(function(t){var e=t[1];R(e)?n.prototype[t[0]]=e:delete n.prototype[t[0]]})),n}},nthArg:function(t){return function(e){var n=e<0?1:N(e)+1;return A(t(e),n)}},rearg:function(t){return function(e,n){var r=n?n.length:0;return A(t(e,n),r)}},runInContext:function(n){return function(r){return t(e,n(r),s)}}};function U(t,e){if(h){var n=r.iterateeRearg[t];if(n)return function(t,e){return q(t,(function(t){var n=e.length;return function(t,e){return 2==e?function(e,n){return t.apply(void 0,arguments)}:function(e){return t.apply(void 0,arguments)}}(I(o(t,n),e),n)}))}(e,n);var i=!l&&r.iterateeAry[t];if(i)return function(t,e){return q(t,(function(t){return"function"==typeof t?o(t,e):t}))}(e,i)}return e}function L(t,e,n){if(p&&(m||!r.skipFixed[t])){var i=r.methodSpread[t],o=i&&i.start;return void 0===o?O(e,n):function(t,e){return function(){for(var n=arguments.length,r=n-1,i=Array(n);n--;)i[n]=arguments[n];var o=i[e],c=i.slice(0,e);return o&&a.apply(c,o),e!=r&&a.apply(c,i.slice(e+1)),t.apply(this,c)}}(e,o)}return e}function W(t,e,n){return y&&n>1&&(x||!r.skipRearg[t])?I(e,r.methodRearg[t]||r.aryRearg[n]):e}function F(t,e){for(var n=-1,r=(e=D(e)).length,i=r-1,a=k(Object(t)),o=a;null!=o&&++n1?A(e,n):e}(0,i=U(a,i),t),!1}})),!i})),i||(i=o),i==e&&(i=g?A(i,1):function(){return e.apply(this,arguments)}),i.convert=Y(a,e),i.placeholder=e.placeholder=n,i}if(!d)return G(n,f,_);var V=f,X=[];return T(z,(function(t){T(r.aryMethod[t],(function(t){var e=V[r.remap[t]||t];e&&X.push([t,G(t,e,V)])}))})),T(C(V),(function(t){var e=V[t];if("function"==typeof e){for(var n=X.length;n--;)if(X[n][0]==t)return;e.convert=Y(t,e),X.push([t,e])}})),T(X,(function(t){V[t[0]]=t[1]})),V.convert=function(t){return V.runInContext.convert(t)(void 0)},V.placeholder=V,T(C(V),(function(t){T(r.realToAlias[t]||[],(function(e){V[e]=V[t]}))})),V}},function(t,e){e.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},e.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},e.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},e.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},e.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},e.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},e.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},e.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},e.realToAlias=function(){var t=Object.prototype.hasOwnProperty,n=e.aliasToReal,r={};for(var i in n){var a=n[i];t.call(r,a)?r[a].push(i):r[a]=[i]}return r}(),e.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},e.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},e.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},function(t,e,n){t.exports={ary:n(479),assign:n(181),clone:n(498),curry:n(499),forEach:n(64),isArray:n(2),isError:n(500),isFunction:n(24),isWeakMap:n(501),iteratee:n(502),keys:n(143),rearg:n(503),toInteger:n(119),toPath:n(505)}},function(t,e,n){var r=n(113);t.exports=function(t,e,n){return e=n?void 0:e,e=t&&null==e?t.length:e,r(t,128,void 0,void 0,void 0,void 0,e)}},function(t,e,n){var r=n(75),i=n(5);t.exports=function(t,e,n){var a=1&e,o=r(t);return function e(){var r=this&&this!==i&&this instanceof e?o:t;return r.apply(a?n:this,arguments)}}},function(t,e,n){var r=n(50),i=n(75),a=n(213),o=n(216),c=n(222),u=n(118),f=n(5);t.exports=function(t,e,n){var s=i(t);return function i(){for(var l=arguments.length,d=Array(l),h=l,b=c(i);h--;)d[h]=arguments[h];var p=l<3&&d[0]!==b&&d[l-1]!==b?[]:u(d,b);if((l-=p.length)1?"& ":"")+e[i],e=e.join(r>2?", ":" "),t.replace(n,"{\n/* [wrapped with "+e+"] */\n")}},function(t,e,n){var r=n(64),i=n(490),a=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]];t.exports=function(t,e){return r(a,(function(n){var r="_."+n[0];e&n[1]&&!i(t,r)&&t.push(r)})),t.sort()}},function(t,e,n){var r=n(221);t.exports=function(t,e){return!(null==t||!t.length)&&r(t,e,0)>-1}},function(t,e){t.exports=function(t,e,n,r){for(var i=t.length,a=n+(r?1:-1);r?a--:++a=u.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var c,f,l,d=-1,h=n.length,b=u[i++],p=Object(r.a)(),v=a();++du.length)return n;var i,a=f[r-1];return null!=e&&r>=u.length?i=n.entries():(i=[],n.each((function(e,n){i.push({key:n,values:t(e,r)})}))),null!=a?i.sort((function(t,e){return a(t.key,e.key)})):i}(s(t,0,o,c),0)},key:function(t){return u.push(t),n},sortKeys:function(t){return f[u.length-1]=t,n},sortValues:function(e){return t=e,n},rollup:function(t){return e=t,n}}}},function(t,e,n){"use strict";var r=n(120);function i(){}var a=r.a.prototype;function o(t,e){var n=new i;if(t instanceof i)t.each((function(t){n.add(t)}));else if(t){var r=-1,a=t.length;if(null==e)for(;++r0&&c>0&&(u+c+1>r&&(c=Math.max(1,r-u)),a.push(n.substring(i-=c,i+c)),!((u+=c+1)>r));)c=t[o=(o+1)%t.length];return a.reverse().join(e)}}},function(t,e,n){"use strict";e.a=function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}},function(t,e,n){"use strict";e.a=function(t,e){t:for(var n,r=(t=t.toPrecision(e)).length,i=1,a=-1;i0&&(a=0)}return a>0?t.slice(0,a)+t.slice(n+1):t}},function(t,e,n){"use strict";var r=n(122);e.a=function(t,e){var n=Object(r.a)(t,e);if(!n)return t+"";var i=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}},function(t,e,n){"use strict";e.a=function(t){return t}},function(t,e,n){"use strict";var r=n(77);e.a=function(t){return Math.max(0,-Object(r.a)(Math.abs(t)))}},function(t,e,n){"use strict";var r=n(77);e.a=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Object(r.a)(e)/3)))-Object(r.a)(Math.abs(t)))}},function(t,e,n){"use strict";var r=n(77);e.a=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Object(r.a)(e)-Object(r.a)(t))+1}},function(t,e,n){"use strict";e.a=function t(){var e=Object(c.b)(u,f).domain([1,10]),n=e.domain,a=10,s=d(10),b=l(10);function p(){return s=d(a),b=l(a),n()[0]<0&&(s=h(s),b=h(b)),e}return e.base=function(t){return arguments.length?(a=+t,p()):a},e.domain=function(t){return arguments.length?(n(t),p()):n()},e.ticks=function(t){var e,i=n(),o=i[0],c=i[i.length-1];(e=c0){for(;dc)break;v.push(l)}}else for(;d=1;--f)if(!((l=u*f)c)break;v.push(l)}}else v=Object(r.ticks)(d,h,Math.min(h-d,p)).map(b);return e?v.reverse():v},e.tickFormat=function(t,n){if(null==n&&(n=10===a?".0e":","),"function"!=typeof n&&(n=Object(i.a)(n)),t===1/0)return n;null==t&&(t=10);var r=Math.max(1,a*t/e.ticks().length);return function(t){var e=t/b(Math.round(s(t)));return e*a0?a[r-1]:e[0],r=o?[c[o-1],n]:[c[r-1],c[r]]},f.copy=function(){return t().domain([e,n]).range(u)},Object(a.b)(f)};var r=n(10),i=n(27),a=n(48)},function(t,e,n){"use strict";e.a=function t(){var e=[.5],n=[0,1],a=1;function o(t){if(t<=t)return n[Object(r.bisect)(e,t,0,a)]}return o.domain=function(t){return arguments.length?(e=i.b.call(t),a=Math.min(e.length,n.length-1),o):e.slice()},o.range=function(t){return arguments.length?(n=i.b.call(t),a=Math.min(e.length,n.length-1),o):n.slice()},o.invertExtent=function(t){var r=n.indexOf(t);return[e[r-1],e[r]]},o.copy=function(){return t().domain(e).range(n)},o};var r=n(10),i=n(27)},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Object(r.a)((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):i:null},e.a=i,i.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setTime(Math.floor(t/i.d)*i.d)}),(function(t,e){t.setTime(+t+e*i.d)}),(function(t,e){return(e-t)/i.d}),(function(t){return t.getUTCSeconds()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setTime(Math.floor(t/i.c)*i.c)}),(function(t,e){t.setTime(+t+e*i.c)}),(function(t,e){return(e-t)/i.c}),(function(t){return t.getMinutes()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){var e=t.getTimezoneOffset()*i.c%i.b;e<0&&(e+=i.b),t.setTime(Math.floor((+t-e)/i.b)*i.b+e)}),(function(t,e){t.setTime(+t+e*i.b)}),(function(t,e){return(e-t)/i.b}),(function(t){return t.getHours()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.c)/i.a}),(function(t){return t.getDate()-1}));e.a=a,a.range},function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"a",(function(){return c})),n.d(e,"c",(function(){return s}));var r=n(4),i=n(15);function a(t){return Object(r.a)((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.c)/i.e}))}var o=a(0),c=a(1),u=a(2),f=a(3),s=a(4),l=a(5),d=a(6);o.range,c.range,u.range,f.range,s.range,l.range,d.range},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}));e.a=i,i.range},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Object(r.a)((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null},e.a=i,i.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*i.c)}),(function(t,e){return(e-t)/i.c}),(function(t){return t.getUTCMinutes()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*i.b)}),(function(t,e){return(e-t)/i.b}),(function(t){return t.getUTCHours()}));e.a=a,a.range},function(t,e,n){"use strict";var r=n(4),i=n(15),a=Object(r.a)((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/i.a}),(function(t){return t.getUTCDate()-1}));e.a=a,a.range},function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"a",(function(){return c})),n.d(e,"c",(function(){return s}));var r=n(4),i=n(15);function a(t){return Object(r.a)((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/i.e}))}var o=a(0),c=a(1),u=a(2),f=a(3),s=a(4),l=a(5),d=a(6);o.range,c.range,u.range,f.range,s.range,l.range,d.range},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}));e.a=i,i.range},function(t,e,n){"use strict";var r=n(4),i=Object(r.a)((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Object(r.a)((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null},e.a=i,i.range},function(t,e,n){"use strict";var r=n(238),i=n(124);+new Date("2000-01-01T00:00:00.000Z")||Object(i.c)(r.a)},function(t,e,n){"use strict";var r=n(235),i=n(236),a=n(123);e.a=function(){return Object(r.a)(a.v,a.q,a.u,a.l,a.m,a.o,a.r,a.n,i.b).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])}},function(t,e,n){"use strict";var r=n(49);e.a=Object(r.a)("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf")},function(t,e,n){"use strict";var r=n(49);e.a=Object(r.a)("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6")},function(t,e,n){"use strict";var r=n(49);e.a=Object(r.a)("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9")},function(t,e,n){"use strict";var r=n(49);e.a=Object(r.a)("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5")},function(t,e,n){"use strict";var r=n(9),i=n(8);e.a=Object(i.b)(Object(r.b)(300,.5,0),Object(r.b)(-240,.5,1))},function(t,e,n){"use strict";n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return o}));var r=n(9),i=n(8),a=Object(i.b)(Object(r.b)(-100,.75,.35),Object(r.b)(80,1.5,.8)),o=Object(i.b)(Object(r.b)(260,.75,.35),Object(r.b)(80,1.5,.8)),c=Object(r.b)();e.b=function(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return c.h=360*t-100,c.s=1.5-1.5*e,c.l=.8-.9*e,c+""}},function(t,e,n){"use strict";n.d(e,"c",(function(){return a})),n.d(e,"b",(function(){return o})),n.d(e,"d",(function(){return c}));var r=n(49);function i(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}e.a=i(Object(r.a)("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var a=i(Object(r.a)("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),o=i(Object(r.a)("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),c=i(Object(r.a)("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"))},function(t,e,n){"use strict";e.a=function t(e){var n=0,i=1,a=!1;function o(t){var r=(t-n)/(i-n);return e(a?Math.max(0,Math.min(1,r)):r)}return o.domain=function(t){return arguments.length?(n=+t[0],i=+t[1],o):[n,i]},o.clamp=function(t){return arguments.length?(a=!!t,o):a},o.interpolator=function(t){return arguments.length?(e=t,o):e},o.copy=function(){return t(e).domain([n,i]).clamp(a)},Object(r.b)(o)};var r=n(48)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.buildColorValue=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Math.E;if((0,a.default)(t))return t;var o="-"===t[0],c="-"===t[0]?t.slice(1):t;if(u[c]){var s=f(u[c],e,n,o,r,i);return function(t){return s(t.value)}}return t};var r,i=n(24),a=(r=i)&&r.__esModule?r:{default:r},o=n(225),c=n(567),u={BrBG:c.interpolateBrBG,PRGn:c.interpolatePRGn,PiYG:c.interpolatePiYG,PuOr:c.interpolatePuOr,RdBu:c.interpolateRdBu,RdGy:c.interpolateRdGy,RdYlBu:c.interpolateRdYlBu,RdYlGn:c.interpolateRdYlGn,Spectral:c.interpolateSpectral,Blues:c.interpolateBlues,Greens:c.interpolateGreens,Greys:c.interpolateGreys,Oranges:c.interpolateOranges,Purples:c.interpolatePurples,Reds:c.interpolateReds,BuGn:c.interpolateBuGn,BuPu:c.interpolateBuPu,GnBu:c.interpolateGnBu,OrRd:c.interpolateOrRd,PuBuGn:c.interpolatePuBuGn,PuBu:c.interpolatePuBu,PuRd:c.interpolatePuRd,RdPu:c.interpolateRdPu,YlGnBu:c.interpolateYlGnBu,YlGn:c.interpolateYlGn,YlOrBr:c.interpolateYlOrBr,YlOrRd:c.interpolateYlOrRd},f=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Math.E;if(i&&e*n<=0&&console.warn("As log(0) = -∞, a log scale domain must be\n strictly-positive or strictly-negative. logscale ignored"),i&&e*n>0){var c=(0,o.scaleLog)().base(a).domain(r?[n,e]:[e,n]).range([0,1]);return(0,o.scaleSequential)((function(e){return t(c(e))})).domain([0,1])}return(0,o.scaleSequential)(t).domain(r?[n,e]:[e,n])}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(568);n.d(e,"schemeCategory10",(function(){return r.a}));var i=n(569);n.d(e,"schemeAccent",(function(){return i.a}));var a=n(570);n.d(e,"schemeDark2",(function(){return a.a}));var o=n(571);n.d(e,"schemePaired",(function(){return o.a}));var c=n(572);n.d(e,"schemePastel1",(function(){return c.a}));var u=n(573);n.d(e,"schemePastel2",(function(){return u.a}));var f=n(574);n.d(e,"schemeSet1",(function(){return f.a}));var s=n(575);n.d(e,"schemeSet2",(function(){return s.a}));var l=n(576);n.d(e,"schemeSet3",(function(){return l.a}));var d=n(577);n.d(e,"interpolateBrBG",(function(){return d.a})),n.d(e,"schemeBrBG",(function(){return d.b}));var h=n(578);n.d(e,"interpolatePRGn",(function(){return h.a})),n.d(e,"schemePRGn",(function(){return h.b}));var b=n(579);n.d(e,"interpolatePiYG",(function(){return b.a})),n.d(e,"schemePiYG",(function(){return b.b}));var p=n(580);n.d(e,"interpolatePuOr",(function(){return p.a})),n.d(e,"schemePuOr",(function(){return p.b}));var v=n(581);n.d(e,"interpolateRdBu",(function(){return v.a})),n.d(e,"schemeRdBu",(function(){return v.b}));var y=n(582);n.d(e,"interpolateRdGy",(function(){return y.a})),n.d(e,"schemeRdGy",(function(){return y.b}));var _=n(583);n.d(e,"interpolateRdYlBu",(function(){return _.a})),n.d(e,"schemeRdYlBu",(function(){return _.b}));var g=n(584);n.d(e,"interpolateRdYlGn",(function(){return g.a})),n.d(e,"schemeRdYlGn",(function(){return g.b}));var m=n(585);n.d(e,"interpolateSpectral",(function(){return m.a})),n.d(e,"schemeSpectral",(function(){return m.b}));var x=n(586);n.d(e,"interpolateBuGn",(function(){return x.a})),n.d(e,"schemeBuGn",(function(){return x.b}));var w=n(587);n.d(e,"interpolateBuPu",(function(){return w.a})),n.d(e,"schemeBuPu",(function(){return w.b}));var j=n(588);n.d(e,"interpolateGnBu",(function(){return j.a})),n.d(e,"schemeGnBu",(function(){return j.b}));var O=n(589);n.d(e,"interpolateOrRd",(function(){return O.a})),n.d(e,"schemeOrRd",(function(){return O.b}));var M=n(590);n.d(e,"interpolatePuBuGn",(function(){return M.a})),n.d(e,"schemePuBuGn",(function(){return M.b}));var k=n(591);n.d(e,"interpolatePuBu",(function(){return k.a})),n.d(e,"schemePuBu",(function(){return k.b}));var A=n(592);n.d(e,"interpolatePuRd",(function(){return A.a})),n.d(e,"schemePuRd",(function(){return A.b}));var T=n(593);n.d(e,"interpolateRdPu",(function(){return T.a})),n.d(e,"schemeRdPu",(function(){return T.b}));var S=n(594);n.d(e,"interpolateYlGnBu",(function(){return S.a})),n.d(e,"schemeYlGnBu",(function(){return S.b}));var P=n(595);n.d(e,"interpolateYlGn",(function(){return P.a})),n.d(e,"schemeYlGn",(function(){return P.b}));var R=n(596);n.d(e,"interpolateYlOrBr",(function(){return R.a})),n.d(e,"schemeYlOrBr",(function(){return R.b}));var E=n(597);n.d(e,"interpolateYlOrRd",(function(){return E.a})),n.d(e,"schemeYlOrRd",(function(){return E.b}));var C=n(598);n.d(e,"interpolateBlues",(function(){return C.a})),n.d(e,"schemeBlues",(function(){return C.b}));var I=n(599);n.d(e,"interpolateGreens",(function(){return I.a})),n.d(e,"schemeGreens",(function(){return I.b}));var N=n(600);n.d(e,"interpolateGreys",(function(){return N.a})),n.d(e,"schemeGreys",(function(){return N.b}));var D=n(601);n.d(e,"interpolatePurples",(function(){return D.a})),n.d(e,"schemePurples",(function(){return D.b}));var z=n(602);n.d(e,"interpolateReds",(function(){return z.a})),n.d(e,"schemeReds",(function(){return z.b}));var B=n(603);n.d(e,"interpolateOranges",(function(){return B.a})),n.d(e,"schemeOranges",(function(){return B.b}));var U=n(604);n.d(e,"interpolateCubehelixDefault",(function(){return U.a}));var L=n(605);n.d(e,"interpolateRainbow",(function(){return L.b})),n.d(e,"interpolateWarm",(function(){return L.c})),n.d(e,"interpolateCool",(function(){return L.a}));var W=n(606);n.d(e,"interpolateSinebow",(function(){return W.a}));var F=n(607);n.d(e,"interpolateViridis",(function(){return F.a})),n.d(e,"interpolateMagma",(function(){return F.c})),n.d(e,"interpolateInferno",(function(){return F.b})),n.d(e,"interpolatePlasma",(function(){return F.d}))},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3")},function(t,e,n){"use strict";var r=n(0);e.a=Object(r.a)("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f")},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var r=n(0),i=n(1),a=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(r.a);e.a=Object(i.a)(a)},function(t,e,n){"use strict";var r=n(9),i=n(8);e.a=Object(i.b)(Object(r.b)(300,.5,0),Object(r.b)(-240,.5,1))},function(t,e,n){"use strict";n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return o}));var r=n(9),i=n(8),a=Object(i.b)(Object(r.b)(-100,.75,.35),Object(r.b)(80,1.5,.8)),o=Object(i.b)(Object(r.b)(260,.75,.35),Object(r.b)(80,1.5,.8)),c=Object(r.b)();e.b=function(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return c.h=360*t-100,c.s=1.5-1.5*e,c.l=.8-.9*e,c+""}},function(t,e,n){"use strict";var r=n(9),i=Object(r.f)(),a=Math.PI/3,o=2*Math.PI/3;e.a=function(t){var e;return t=(.5-t)*Math.PI,i.r=255*(e=Math.sin(t))*e,i.g=255*(e=Math.sin(t+a))*e,i.b=255*(e=Math.sin(t+o))*e,i+""}},function(t,e,n){"use strict";n.d(e,"c",(function(){return a})),n.d(e,"b",(function(){return o})),n.d(e,"d",(function(){return c}));var r=n(0);function i(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}e.a=i(Object(r.a)("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var a=i(Object(r.a)("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),o=i(Object(r.a)("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),c=i(Object(r.a)("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderAxes=e._buildAxesData=void 0;var r=c(n(609)),i=c(n(105)),a=n(13),o=c(n(612));function c(t){return t&&t.__esModule?t:{default:t}}var u=function(t,e,n){return{value:t,thickness:e.thickness||1,color:e.color||"#d3d3d3",opacity:e.opacity||n.opacity}},f=e._buildAxesData=function(t){return(0,i.default)(t.axes,(function(e,n){if(!n.position&&!n.spacing)return o.default.warn("Skipping axe group with no position and spacing defined"),e;if(n.position&&e.push(u(n.position,n,t)),n.spacing){var i=(0,r.default)(n.start||t.cmin,n.end||t.cmax,n.spacing).map((function(e){return u(e,n,t)}));return e.concat(i)}return e}),[])};e.renderAxes=function(t,e,n,r){var i=f(e),o=(0,a.arc)().innerRadius((function(t){return"in"===e.direction?e.outerRadius-r(t.value):e.innerRadius+r(t.value)})).outerRadius((function(t){return"in"===e.direction?e.outerRadius-r(t.value):e.innerRadius+r(t.value)})).startAngle(0).endAngle((function(t){return t.length})),c=t.selectAll(".axis").data((function(t){var e=n._layout.blocks[t.key];return i.map((function(n){return{value:n.value,thickness:n.thickness,color:n.color,opacity:n.opacity,block_id:t.key,length:e.end-e.start}}))})).enter().append("path").attr("opacity",(function(t){return t.opacity})).attr("class","axis").attr("d",o).attr("stroke-width",(function(t){return t.thickness})).attr("stroke",(function(t){return t.color}));return e.showAxesTooltip&&(c.on("mouseover",(function(t,e){n.tip.html(t.value).transition().style("opacity",.9).style("left",event.pageX+"px").style("top",event.pageY-28+"px")})),c.on("mouseout",(function(t,e){n.tip.transition().duration(500).style("opacity",0)}))),c}},function(t,e,n){var r=n(610)();t.exports=r},function(t,e,n){var r=n(611),i=n(63),a=n(223);t.exports=function(t){return function(e,n,o){return o&&"number"!=typeof o&&i(e,n,o)&&(n=o=void 0),e=a(e),void 0===n?(n=e,e=0):n=a(n),o=void 0===o?e-1:!!s&&r(t,e,n)>-1}},function(t,e,n){var r=n(16),i=n(2),a=n(6);t.exports=function(t){return"string"==typeof t||!i(t)&&a(t)&&"[object String]"==r(t)}},function(t,e,n){var r=n(616),i=n(18);t.exports=function(t){return null==t?[]:r(t,i(t))}},function(t,e,n){var r=n(40);t.exports=function(t,e){return r(e,(function(e){return t[e]}))}},function(t,e,n){var r=n(618),i=n(619),a=n(33),o=n(2),c=n(63);t.exports=function(t,e,n){var u=o(t)?r:i;return n&&c(t,e,n)&&(e=void 0),u(t,a(e,3))}},function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n=1?t:t*e},p=function(t){function e(t,n,r){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n,h,r,a.parseChordData))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),r(e,[{key:"getCoordinates",value:function(t,e,n,r){var i=e.blocks[t.id],a=i.start+t.start/i.len*(i.end-i.start),o=i.start+t.end/i.len*(i.end-i.start),c=void 0;return(0,f.default)(n.radius)?c=b(n.radius(r),e.conf.innerRadius):n.radius&&(c=b(n.radius,e.conf.innerRadius)),c||(c=e.conf.innerRadius),{radius:c,startAngle:a,endAngle:o}}},{key:"renderChords",value:function(t,e,n,r,i,a){var o=this,u=t.append("g").selectAll(".chord").data(r).enter().append("path").attr("class","chord").attr("d",(0,c.ribbon)().source((function(t){return a(t.source,i._layout,o.conf,t)})).target((function(t){return a(t.target,i._layout,o.conf,t)}))).attr("opacity",n.opacity).on("mouseover",(function(t){o.dispatch.call("mouseover",o,t),i.clipboard.attr("value",n.tooltipContent(t))})).on("mouseout",(function(t){return o.dispatch.call("mouseout",o,t)}));return Object.keys(n.events).forEach((function(t){u.on(t,(function(e,r,i){n.events[t](e,r,i,s.event)}))})),u.attr("fill",n.colorValue),u}},{key:"render",value:function(t,e,n){e.select("."+n).remove();var r=e.append("g").attr("class",n).attr("z-index",this.conf.zIndex),i=this.renderChords(r,n,this.conf,this.data,t,this.getCoordinates);return this.conf.tooltipContent&&(0,o.registerTooltip)(this,t,i,this.conf),this}}]),e}(i.default);e.default=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(624);n.d(e,"chord",(function(){return r.a}));var i=n(625);n.d(e,"ribbon",(function(){return i.a}))},function(t,e,n){"use strict";var r=n(10),i=n(239);function a(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}e.a=function(){var t=0,e=null,n=null,o=null;function c(a){var c,u,f,s,l,d,h=a.length,b=[],p=Object(r.range)(h),v=[],y=[],_=y.groups=new Array(h),g=new Array(h*h);for(c=0,l=-1;++lt.position+r?t.groups.push([e]):t.groups[t.groups.length-1].push(e),t.position=e.position,t)}),{position:null,groups:[]}).groups):[t.values];var n,r})).enter().append("g").attr("class","line").append("path").datum((function(t){return t.map((function(t){var i=r.scale(t.value);return(0,o.default)(t,{angle:r.theta(t.position,n.blocks[t.block_id])},function(t){return e.fill?{innerRadius:"out"===e.direction?e.innerRadius:e.outerRadius-t,outerRadius:"out"===e.direction?e.innerRadius+t:e.outerRadius}:{radius:"out"===e.direction?e.innerRadius+t:e.outerRadius-t}}(i))}))})).attr("d",f).attr("opacity",e.opacity).attr("stroke-width",e.thickness).attr("stroke",e.colorValue).attr("fill","none");return e.fill&&l.attr("fill",e.fillColor),l}}]),e}(i.default);e.default=h},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;ne.end?-1:t.start==e.start&&t.end==e.end?0:1}));var r=[];(0,u.default)(t.values,(function(t){var n=!1;(0,u.default)(r,(function(r,i){if(r.slice(0).pop().end+et;t++)a.call(this,this._deferreds[t]);this._deferreds=null}function f(t,e,n,r){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.resolve=n,this.reject=r}function s(t,e,n){var r=!1;try{t((function(t){r||(r=!0,e(t))}),(function(t){r||(r=!0,n(t))}))}catch(t){if(r)return;r=!0,n(t)}}var l=i.immediateFn||"function"==typeof e&&e||function(t){setTimeout(t,1)},d=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};i.prototype.catch=function(t){return this.then(null,t)},i.prototype.then=function(t,e){var n=this;return new i((function(r,i){a.call(n,new f(t,e,r,i))}))},i.all=function(){var t=Array.prototype.slice.call(1===arguments.length&&d(arguments[0])?arguments[0]:arguments);return new i((function(e,n){function r(a,o){try{if(o&&("object"==typeof o||"function"==typeof o)){var c=o.then;if("function"==typeof c)return void c.call(o,(function(t){r(a,t)}),n)}t[a]=o,0==--i&&e(t)}catch(t){n(t)}}if(0===t.length)return e([]);for(var i=t.length,a=0;ar;r++)t[r].then(e,n)}))},void 0!==t&&t.exports?t.exports=i:n.Promise||(n.Promise=i)}(this),a.copy=function(t){return new Promise((function(e,n){if("string"!=typeof t&&!("text/plain"in t))throw new Error("You must provide a text/plain type.");var r="string"==typeof t?t:t["text/plain"];window.clipboardData.setData("Text",r)?e():n(new Error("Copying was rejected."))}))},a.paste=function(){return new Promise((function(t,e){var n=window.clipboardData.getData("Text");n?t(n):e(new Error("Pasting was rejected."))}))}),a}()}).call(e,n(634).setImmediate)},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function a(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new a(i.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new a(i.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(635),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(e,n(80))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,i,a,o,c,u=1,f={},s=!1,l=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){b(t)}))}:function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?(o="setImmediate$"+Math.random()+"$",c=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(o)&&b(+e.data.slice(o.length))},t.addEventListener?t.addEventListener("message",c,!1):t.attachEvent("onmessage",c),r=function(e){t.postMessage(o+e,"*")}):t.MessageChannel?((a=new MessageChannel).port1.onmessage=function(t){b(t.data)},r=function(t){a.port2.postMessage(t)}):l&&"onreadystatechange"in l.createElement("script")?(i=l.documentElement,r=function(t){var e=l.createElement("script");e.onreadystatechange=function(){b(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):r=function(t){setTimeout(b,0,t)},d.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;nn.value[r]){e=n.color[r];break}return e}}}},{key:"setToolTip",value:function(t){if(void 0!==t.tooltipContent&&null!==t.tooltipContent)if(void 0!==t.tooltipContent.name)if("all"===t.tooltipContent.name)t.tooltipContent=function(t){var e="";for(var n in t)e="

"+(n.charAt(0).toUpperCase()+n.slice(1))+" : "+t[n]+"

"+e;return"

"+e+"

"};else{var e=t.tooltipContent.name;t.tooltipContent=function(t){return t[e]}}else if(void 0!==t.tooltipContent.source){var n=t.tooltipContent;void 0!==n.sourceID&&void 0!==n.targetID?t.tooltipContent=function(t){return"

"+t[n.source][n.sourceID]+" ➤ "+t[n.target][n.targetID]+": "+t[n.target][n.targetEnd]+"

"}:t.tooltipContent=function(t){return"

"+t[n.source]+" ➤ "+t[n.target]+": "+t[n.targetEnd]+"

"}}else t.tooltipContent=void 0;else t.tooltipContent=void 0}},{key:"configCircos",value:function(t,e,n,r){var i=this;this.circos.layout(t,e),n&&n.forEach((function(t,e){var n,a=t.id,o=t.data,c=t.config,u=t.type;void 0!==c&&((n=c).events=i.setEvent(r,e),i.setColor(n),i.setToolTip(n)),i.circos[u.toLowerCase()](a||"track-".concat(e),o,n)})),this.circos.render()}},{key:"componentDidMount",value:function(){var t=this.props,e=t.enableDownloadSVG,n=t.enableZoomPan,r=t.size,i=t.layout,a=t.config,c=t.tracks,u=t.setProps;this.circos=new o.a({container:this.ref,width:r,height:r,enableZoomPan:n,enableDownloadSVG:e}),this.configCircos(i,a,c,u),this.setStopScroll(n)}},{key:"shouldComponentUpdate",value:function(t){return this.props.config!==t.config||this.props.layout!==t.layout||this.props.tracks!==t.tracks||this.props.size!==t.size||this.props.selectEvent!==t.selectEvent}},{key:"componentDidUpdate",value:function(){var t=this.props,e=t.size,n=t.layout,r=t.config,i=t.tracks,a=t.setProps;this.circos.removeTracks(),this.container=this.ref,this.circos.width=e,this.circos.height=e,this.configCircos(n,r,i,a)}},{key:"componentWillUnmount",value:function(){this.setStopScroll(!1)}},{key:"render",value:function(){var t=this,e=this.props,n=e.id,r=e.style,a=e.config,o=e.layout,c=e.tracks,u=e.size,f=e.eventDatum;return i.a.createElement("div",{id:n,style:r,"data-event-datum":f},i.a.createElement("div",{id:"Circos-container",ref:function(e){t.ref=e},config:a,layout:o,tracks:c,size:u}))}}])&&f(n.prototype,r),a&&f(n,a),e}(r.Component);h.defaultProps=c.b,h.propTypes=c.c}}]); +function(n){function r(t,e){return function(){t.apply(e,arguments)}}function i(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],s(t,r(o,this),r(c,this))}function a(t){var e=this;return null===this._state?void this._deferreds.push(t):void l((function(){var n=e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(e){return void t.reject(e)}t.resolve(r)}else(e._state?t.resolve:t.reject)(e._value)}))}function o(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var e=t.then;if("function"==typeof e)return void s(r(e,t),r(o,this),r(c,this))}this._state=!0,this._value=t,u.call(this)}catch(t){c.call(this,t)}}function c(t){this._state=!1,this._value=t,u.call(this)}function u(){for(var t=0,e=this._deferreds.length;e>t;t++)a.call(this,this._deferreds[t]);this._deferreds=null}function f(t,e,n,r){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.resolve=n,this.reject=r}function s(t,e,n){var r=!1;try{t((function(t){r||(r=!0,e(t))}),(function(t){r||(r=!0,n(t))}))}catch(t){if(r)return;r=!0,n(t)}}var l=i.immediateFn||"function"==typeof e&&e||function(t){setTimeout(t,1)},d=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};i.prototype.catch=function(t){return this.then(null,t)},i.prototype.then=function(t,e){var n=this;return new i((function(r,i){a.call(n,new f(t,e,r,i))}))},i.all=function(){var t=Array.prototype.slice.call(1===arguments.length&&d(arguments[0])?arguments[0]:arguments);return new i((function(e,n){function r(a,o){try{if(o&&("object"==typeof o||"function"==typeof o)){var c=o.then;if("function"==typeof c)return void c.call(o,(function(t){r(a,t)}),n)}t[a]=o,0==--i&&e(t)}catch(t){n(t)}}if(0===t.length)return e([]);for(var i=t.length,a=0;ar;r++)t[r].then(e,n)}))},void 0!==t&&t.exports?t.exports=i:n.Promise||(n.Promise=i)}(this),a.copy=function(t){return new Promise((function(e,n){if("string"!=typeof t&&!("text/plain"in t))throw new Error("You must provide a text/plain type.");var r="string"==typeof t?t:t["text/plain"];window.clipboardData.setData("Text",r)?e():n(new Error("Copying was rejected."))}))},a.paste=function(){return new Promise((function(t,e){var n=window.clipboardData.getData("Text");n?t(n):e(new Error("Pasting was rejected."))}))}),a}()}).call(e,n(634).setImmediate)},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function a(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new a(i.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new a(i.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(635),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(e,n(80))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,i,a,o,c,u=1,f={},s=!1,l=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){b(t)}))}:function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?(o="setImmediate$"+Math.random()+"$",c=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(o)&&b(+e.data.slice(o.length))},t.addEventListener?t.addEventListener("message",c,!1):t.attachEvent("onmessage",c),r=function(e){t.postMessage(o+e,"*")}):t.MessageChannel?((a=new MessageChannel).port1.onmessage=function(t){b(t.data)},r=function(t){a.port2.postMessage(t)}):l&&"onreadystatechange"in l.createElement("script")?(i=l.documentElement,r=function(t){var e=l.createElement("script");e.onreadystatechange=function(){b(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):r=function(t){setTimeout(b,0,t)},d.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;nn.value[r]){e=n.color[r];break}return e}}}},{key:"setToolTip",value:function(t){if(void 0!==t.tooltipContent&&null!==t.tooltipContent)if(void 0!==t.tooltipContent.name)if("all"===t.tooltipContent.name)t.tooltipContent=function(t){var e="";for(var n in t)e="

"+(n.charAt(0).toUpperCase()+n.slice(1))+" : "+t[n]+"

"+e;return"

"+e+"

"};else{var e=t.tooltipContent.name;t.tooltipContent=function(t){return t[e]}}else if(void 0!==t.tooltipContent.source){var n=t.tooltipContent;void 0!==n.sourceID&&void 0!==n.targetID?t.tooltipContent=function(t){return"

"+t[n.source][n.sourceID]+" ➤ "+t[n.target][n.targetID]+": "+t[n.target][n.targetEnd]+"

"}:t.tooltipContent=function(t){return"

"+t[n.source]+" ➤ "+t[n.target]+": "+t[n.targetEnd]+"

"}}else t.tooltipContent=void 0;else t.tooltipContent=void 0}},{key:"configCircos",value:function(t,e,n,r){var i=this;this.circos.layout(t,e),n&&n.forEach((function(t,e){var n,a=t.id,o=t.data,c=t.config,u=t.type;void 0!==c&&((n=c).events=i.setEvent(r,e),i.setColor(n),i.setToolTip(n)),i.circos[u.toLowerCase()](a||"track-".concat(e),o,n)})),this.circos.render()}},{key:"componentDidMount",value:function(){var t=this.props,e=t.enableDownloadSVG,n=t.enableZoomPan,r=t.size,i=t.layout,a=t.config,c=t.tracks,u=t.setProps;this.circos=new o.a({container:this.ref,width:r,height:r,enableZoomPan:n,enableDownloadSVG:e}),this.configCircos(i,a,c,u),this.setStopScroll(n)}},{key:"shouldComponentUpdate",value:function(t){return this.props.config!==t.config||this.props.layout!==t.layout||this.props.tracks!==t.tracks||this.props.size!==t.size||this.props.selectEvent!==t.selectEvent}},{key:"componentDidUpdate",value:function(){var t=this.props,e=t.size,n=t.layout,r=t.config,i=t.tracks,a=t.setProps;this.circos.removeTracks(),this.container=this.ref,this.circos.width=e,this.circos.height=e,this.configCircos(n,r,i,a)}},{key:"componentWillUnmount",value:function(){this.setStopScroll(!1)}},{key:"render",value:function(){var t=this,e=this.props,n=e.id,r=e.style,a=e.config,o=e.layout,c=e.tracks,u=e.size,f=e.eventDatum;return i.a.createElement("div",{id:n,style:r,eventdatum:f},i.a.createElement("div",{id:"Circos-container",ref:function(e){t.ref=e},config:a,layout:o,tracks:c,size:u}))}}])&&f(n.prototype,r),a&&f(n,a),e}(r.Component);h.defaultProps=c.b,h.propTypes=c.c}}]); //# sourceMappingURL=async-circos.js.map \ No newline at end of file diff --git a/dash_bio/async-circos.js.map b/dash_bio/async-circos.js.map index 828063855..89800d4d1 100644 --- a/dash_bio/async-circos.js.map +++ b/dash_bio/async-circos.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/circos/index.js","webpack:///./node_modules/circos/dist/circos.es6.js","webpack:///./src/lib/fragments/Circos.react.js"],"names":["module","exports","factory","self","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","specifier","length","colors","Array","slice","__WEBPACK_IMPORTED_MODULE_0_d3_interpolate__","scheme","isArray","value","__WEBPACK_IMPORTED_MODULE_0__src_create__","__WEBPACK_IMPORTED_MODULE_1__src_creator__","__WEBPACK_IMPORTED_MODULE_2__src_local__","__WEBPACK_IMPORTED_MODULE_3__src_matcher__","__WEBPACK_IMPORTED_MODULE_4__src_mouse__","__WEBPACK_IMPORTED_MODULE_5__src_namespace__","__WEBPACK_IMPORTED_MODULE_6__src_namespaces__","__WEBPACK_IMPORTED_MODULE_7__src_point__","__WEBPACK_IMPORTED_MODULE_8__src_select__","__WEBPACK_IMPORTED_MODULE_9__src_selectAll__","__WEBPACK_IMPORTED_MODULE_10__src_selection_index__","__WEBPACK_IMPORTED_MODULE_11__src_selector__","__WEBPACK_IMPORTED_MODULE_12__src_selectorAll__","__WEBPACK_IMPORTED_MODULE_13__src_selection_style__","__WEBPACK_IMPORTED_MODULE_14__src_touch__","__WEBPACK_IMPORTED_MODULE_15__src_touches__","__WEBPACK_IMPORTED_MODULE_16__src_window__","__WEBPACK_IMPORTED_MODULE_17__src_selection_on__","newInterval","floori","offseti","count","field","interval","date","Date","floor","ceil","round","d0","d1","offset","step","Math","range","start","stop","previous","push","filter","test","setTime","end","t0","t1","every","isFinite","freeGlobal","freeSelf","root","Function","type","__WEBPACK_IMPORTED_MODULE_0__src_value__","__WEBPACK_IMPORTED_MODULE_5__src_number__","__WEBPACK_IMPORTED_MODULE_7__src_round__","__WEBPACK_IMPORTED_MODULE_8__src_string__","__WEBPACK_IMPORTED_MODULE_9__src_transform_index__","__WEBPACK_IMPORTED_MODULE_10__src_zoom__","__WEBPACK_IMPORTED_MODULE_11__src_rgb__","__WEBPACK_IMPORTED_MODULE_15__src_cubehelix__","__WEBPACK_IMPORTED_MODULE_0__src_color__","__WEBPACK_IMPORTED_MODULE_1__src_lab__","__WEBPACK_IMPORTED_MODULE_2__src_cubehelix__","__WEBPACK_IMPORTED_MODULE_0__src_bisect__","__WEBPACK_IMPORTED_MODULE_1__src_ascending__","__WEBPACK_IMPORTED_MODULE_2__src_bisector__","__WEBPACK_IMPORTED_MODULE_3__src_cross__","__WEBPACK_IMPORTED_MODULE_4__src_descending__","__WEBPACK_IMPORTED_MODULE_5__src_deviation__","__WEBPACK_IMPORTED_MODULE_6__src_extent__","__WEBPACK_IMPORTED_MODULE_7__src_histogram__","__WEBPACK_IMPORTED_MODULE_8__src_threshold_freedmanDiaconis__","__WEBPACK_IMPORTED_MODULE_9__src_threshold_scott__","__WEBPACK_IMPORTED_MODULE_10__src_threshold_sturges__","__WEBPACK_IMPORTED_MODULE_11__src_max__","__WEBPACK_IMPORTED_MODULE_12__src_mean__","__WEBPACK_IMPORTED_MODULE_13__src_median__","__WEBPACK_IMPORTED_MODULE_14__src_merge__","__WEBPACK_IMPORTED_MODULE_15__src_min__","__WEBPACK_IMPORTED_MODULE_16__src_pairs__","__WEBPACK_IMPORTED_MODULE_17__src_permute__","__WEBPACK_IMPORTED_MODULE_18__src_quantile__","__WEBPACK_IMPORTED_MODULE_19__src_range__","__WEBPACK_IMPORTED_MODULE_20__src_scan__","__WEBPACK_IMPORTED_MODULE_21__src_shuffle__","__WEBPACK_IMPORTED_MODULE_22__src_sum__","__WEBPACK_IMPORTED_MODULE_23__src_ticks__","__WEBPACK_IMPORTED_MODULE_24__src_transpose__","__WEBPACK_IMPORTED_MODULE_25__src_variance__","__WEBPACK_IMPORTED_MODULE_26__src_zip__","Selection","__WEBPACK_IMPORTED_MODULE_0__select__","__WEBPACK_IMPORTED_MODULE_1__selectAll__","__WEBPACK_IMPORTED_MODULE_2__filter__","__WEBPACK_IMPORTED_MODULE_3__data__","__WEBPACK_IMPORTED_MODULE_4__enter__","__WEBPACK_IMPORTED_MODULE_5__exit__","__WEBPACK_IMPORTED_MODULE_6__merge__","__WEBPACK_IMPORTED_MODULE_7__order__","__WEBPACK_IMPORTED_MODULE_8__sort__","__WEBPACK_IMPORTED_MODULE_9__call__","__WEBPACK_IMPORTED_MODULE_10__nodes__","__WEBPACK_IMPORTED_MODULE_11__node__","__WEBPACK_IMPORTED_MODULE_12__size__","__WEBPACK_IMPORTED_MODULE_13__empty__","__WEBPACK_IMPORTED_MODULE_14__each__","__WEBPACK_IMPORTED_MODULE_15__attr__","__WEBPACK_IMPORTED_MODULE_16__style__","__WEBPACK_IMPORTED_MODULE_17__property__","__WEBPACK_IMPORTED_MODULE_18__classed__","__WEBPACK_IMPORTED_MODULE_19__text__","__WEBPACK_IMPORTED_MODULE_20__html__","__WEBPACK_IMPORTED_MODULE_21__raise__","__WEBPACK_IMPORTED_MODULE_22__lower__","__WEBPACK_IMPORTED_MODULE_23__append__","__WEBPACK_IMPORTED_MODULE_24__insert__","__WEBPACK_IMPORTED_MODULE_25__remove__","__WEBPACK_IMPORTED_MODULE_26__clone__","__WEBPACK_IMPORTED_MODULE_27__datum__","__WEBPACK_IMPORTED_MODULE_28__on__","__WEBPACK_IMPORTED_MODULE_29__dispatch__","groups","parents","this","_groups","_parents","selection","document","documentElement","constructor","select","selectAll","data","enter","exit","merge","order","sort","nodes","node","size","empty","each","attr","style","classed","text","html","raise","lower","append","insert","remove","clone","datum","on","dispatch","SCHEDULED","STARTING","ENDING","ENDED","id","schedule","state","Error","__WEBPACK_IMPORTED_MODULE_0_d3_dispatch__","__WEBPACK_IMPORTED_MODULE_1_d3_timer__","emptyOn","emptyTween","__transition","index","group","timing","schedules","tween","elapsed","j","timer","__data__","restart","tick","delay","time","t","duration","ease","create","__WEBPACK_IMPORTED_MODULE_0__src_arc__","__WEBPACK_IMPORTED_MODULE_1__src_area__","__WEBPACK_IMPORTED_MODULE_2__src_line__","__WEBPACK_IMPORTED_MODULE_3__src_pie__","__WEBPACK_IMPORTED_MODULE_4__src_areaRadial__","__WEBPACK_IMPORTED_MODULE_5__src_lineRadial__","__WEBPACK_IMPORTED_MODULE_6__src_pointRadial__","__WEBPACK_IMPORTED_MODULE_7__src_link_index__","__WEBPACK_IMPORTED_MODULE_8__src_symbol__","__WEBPACK_IMPORTED_MODULE_9__src_symbol_circle__","__WEBPACK_IMPORTED_MODULE_10__src_symbol_cross__","__WEBPACK_IMPORTED_MODULE_11__src_symbol_diamond__","__WEBPACK_IMPORTED_MODULE_12__src_symbol_square__","__WEBPACK_IMPORTED_MODULE_13__src_symbol_star__","__WEBPACK_IMPORTED_MODULE_14__src_symbol_triangle__","__WEBPACK_IMPORTED_MODULE_15__src_symbol_wye__","__WEBPACK_IMPORTED_MODULE_16__src_curve_basisClosed__","__WEBPACK_IMPORTED_MODULE_17__src_curve_basisOpen__","__WEBPACK_IMPORTED_MODULE_18__src_curve_basis__","__WEBPACK_IMPORTED_MODULE_19__src_curve_bundle__","__WEBPACK_IMPORTED_MODULE_20__src_curve_cardinalClosed__","__WEBPACK_IMPORTED_MODULE_21__src_curve_cardinalOpen__","__WEBPACK_IMPORTED_MODULE_22__src_curve_cardinal__","__WEBPACK_IMPORTED_MODULE_23__src_curve_catmullRomClosed__","__WEBPACK_IMPORTED_MODULE_24__src_curve_catmullRomOpen__","__WEBPACK_IMPORTED_MODULE_25__src_curve_catmullRom__","__WEBPACK_IMPORTED_MODULE_26__src_curve_linearClosed__","__WEBPACK_IMPORTED_MODULE_27__src_curve_linear__","__WEBPACK_IMPORTED_MODULE_28__src_curve_monotone__","__WEBPACK_IMPORTED_MODULE_29__src_curve_natural__","__WEBPACK_IMPORTED_MODULE_30__src_curve_step__","__WEBPACK_IMPORTED_MODULE_31__src_stack__","__WEBPACK_IMPORTED_MODULE_32__src_offset_expand__","__WEBPACK_IMPORTED_MODULE_33__src_offset_diverging__","__WEBPACK_IMPORTED_MODULE_34__src_offset_none__","__WEBPACK_IMPORTED_MODULE_35__src_offset_silhouette__","__WEBPACK_IMPORTED_MODULE_36__src_offset_wiggle__","__WEBPACK_IMPORTED_MODULE_37__src_order_ascending__","__WEBPACK_IMPORTED_MODULE_38__src_order_descending__","__WEBPACK_IMPORTED_MODULE_39__src_order_insideOut__","__WEBPACK_IMPORTED_MODULE_40__src_order_none__","__WEBPACK_IMPORTED_MODULE_41__src_order_reverse__","assignValue","copyObject","createAssigner","isArrayLike","isPrototype","keys","assign","source","key","durationSecond","durationMinute","durationHour","durationDay","durationWeek","Symbol","getRawTag","objectToString","symToStringTag","toStringTag","undefined","isFunction","isLength","arrayLikeKeys","baseKeys","Transition","transition","__WEBPACK_IMPORTED_MODULE_0_d3_selection__","__WEBPACK_IMPORTED_MODULE_1__attr__","__WEBPACK_IMPORTED_MODULE_2__attrTween__","__WEBPACK_IMPORTED_MODULE_3__delay__","__WEBPACK_IMPORTED_MODULE_4__duration__","__WEBPACK_IMPORTED_MODULE_5__ease__","__WEBPACK_IMPORTED_MODULE_6__filter__","__WEBPACK_IMPORTED_MODULE_7__merge__","__WEBPACK_IMPORTED_MODULE_8__on__","__WEBPACK_IMPORTED_MODULE_9__remove__","__WEBPACK_IMPORTED_MODULE_10__select__","__WEBPACK_IMPORTED_MODULE_11__selectAll__","__WEBPACK_IMPORTED_MODULE_12__selection__","__WEBPACK_IMPORTED_MODULE_13__style__","__WEBPACK_IMPORTED_MODULE_14__styleTween__","__WEBPACK_IMPORTED_MODULE_15__text__","__WEBPACK_IMPORTED_MODULE_16__transition__","__WEBPACK_IMPORTED_MODULE_17__tween__","_name","_id","selection_prototype","attrTween","styleTween","_createClass","defineProperties","target","props","descriptor","writable","Constructor","protoProps","staticProps","_tooltip","_d3Dispatch","_d3Shape","_d3Selection","_configUtils","_utils","_colors","_axes","Track","instance","conf","defaultConf","dataParser","TypeError","_classCallCheck","parseData","loadData","getConf","meta","colorValue","buildColorValue","color","cmin","cmax","logScale","logScaleBase","scale","buildScale","outerRadius","innerRadius","result","_layout","summary","parentElement","_this","track","zIndex","datumContainer","renderBlock","axes","renderAxes","renderDatum","tooltipContent","registerTooltip","clipboard","events","forEach","eventName","event","layout","_this2","block","blocks","PI","backgrounds","map","background","angle","opacity","arc","direction","startAngle","endAngle","position","len","height","r","theta","block_id","cos","sin","default","parseSpanValueData","layoutSummary","min","max","buildOutput","checkParent","parseSpanStringData","checkNumber","logger","log","parsePositionValueData","parsePositionTextData","parseChordData","formatedData","warn","sourceStart","sourceEnd","targetStart","targetEnd","_d3Array","_keys2","_interopRequireDefault","_includes2","_every2","_d3Collection","obj","console","header","line","isNaN","nest","entries","values","iteratee","E","showAxesTooltip","palette","colorPaletteSize","colorPalette","usePalette","colorPaletteReverse","radial","common","baseIsNative","getValue","baseGetTag","isObject","tag","x","array","baseAssignValue","customizer","isNew","newValue","arrayEach","baseEach","castFunction","collection","baseMatches","baseMatchesProperty","identity","isObjectLike","__WEBPACK_IMPORTED_MODULE_0__src_path__","a","b","NaN","baseConvert","util","func","options","other","baseForOwn","createBaseEach","DataView","Map","Promise","Set","WeakMap","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","Ctor","ctorString","isSymbol","linear","__WEBPACK_IMPORTED_MODULE_0__constant__","y","nogamma","pow","exponential","abs","atan2","sqrt","epsilon","pi","halfPi","tau","acos","asin","series","s0","s1","linearish","__WEBPACK_IMPORTED_MODULE_2__continuous__","__WEBPACK_IMPORTED_MODULE_1_d3_interpolate__","copy","__WEBPACK_IMPORTED_MODULE_0_d3_array__","__WEBPACK_IMPORTED_MODULE_3__tickFormat__","domain","ticks","tickFormat","nice","i0","i1","match","thisArg","args","apply","ListCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","clear","has","set","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","entry","eq","nativeCreate","getNative","isKeyable","objectCreate","baseCreate","proto","objectProto","baseIsArguments","propertyIsEnumerable","isArguments","arguments","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","baseKeysIn","reIsUint","isIndex","__WEBPACK_IMPORTED_MODULE_0__namespace__","__WEBPACK_IMPORTED_MODULE_1__namespaces__","creatorInherit","ownerDocument","uri","namespaceURI","createElement","createElementNS","creatorFixed","fullname","space","local","svg","ownerSVGElement","createSVGPoint","point","clientX","clientY","matrixTransform","getScreenCTM","inverse","rect","getBoundingClientRect","left","clientLeft","top","clientTop","__WEBPACK_IMPORTED_MODULE_0__src_dispatch__","__WEBPACK_IMPORTED_MODULE_0__schedule__","tweenRemove","tween0","tween1","splice","tweenFunction","Linear","context","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","closePath","lineTo","moveTo","that","bezierCurveTo","_x0","_x1","_y0","_y1","Basis","_k","_x2","_y2","Cardinal","tension","custom","cardinal","thisBinding","deinterpolateLinear","interpolate","clamp","deinterpolate","reinterpolate","piecewise","output","input","unit","rescale","polymap","bimap","deinterpolateClamp","invert","reinterpolateClamp","_","__WEBPACK_IMPORTED_MODULE_2__array__","__WEBPACK_IMPORTED_MODULE_4__number__","rangeRound","__WEBPACK_IMPORTED_MODULE_3__constant__","r0","r1","reverse","__WEBPACK_IMPORTED_MODULE_0__formatDecimal__","overRest","setToString","baseSetToString","shortOut","g","eval","e","window","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","webpackPolyfill","deprecate","paths","children","Uint8Array","arrayBuffer","byteLength","getPrototype","overArg","getPrototypeOf","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","freeProcess","process","types","require","binding","objValue","arrayFilter","stubArray","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","reIsDeepProp","reIsPlainProp","__WEBPACK_IMPORTED_MODULE_0__namespaces__","prefix","indexOf","xhtml","xlink","xml","xmlns","none","selector","querySelector","defaultView","event1","listener","event0","sourceEvent","filterEvents","filterContextListener","contextListener","related","relatedTarget","compareDocumentPosition","parseTypenames","typenames","trim","split","onRemove","typename","__on","removeEventListener","capture","onAdd","wrap","addEventListener","mouseenter","mouseleave","__WEBPACK_IMPORTED_MODULE_0__selection_on__","current","__WEBPACK_IMPORTED_MODULE_0_d3_color__","__WEBPACK_IMPORTED_MODULE_1__rgb__","__WEBPACK_IMPORTED_MODULE_3__date__","__WEBPACK_IMPORTED_MODULE_5__object__","__WEBPACK_IMPORTED_MODULE_6__string__","__WEBPACK_IMPORTED_MODULE_7__constant__","valueOf","toString","Color","darker","brighter","rgbConvert","rgb","Rgb","hsl","__WEBPACK_IMPORTED_MODULE_0__define__","reI","reN","reP","reHex3","reHex6","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","format","toLowerCase","exec","parseInt","rgbn","rgba","hsla","h","Hsl","hslConvert","hsl2rgb","m1","m2","displayable","k","parent","definition","basis","v0","v1","v2","v3","t2","t3","now","Timer","taskHead","taskTail","frame","timeout","clockLast","clockNow","clockSkew","clock","performance","setFrame","requestAnimationFrame","bind","f","setTimeout","clearNow","_call","_time","_next","callback","wake","timerFlush","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","cloneableTags","baseClone","bitmask","stack","isDeep","isFlat","isFull","isArr","isFunc","stacked","subValue","add","keysFunc","keysIn","arrayReduce","baseIteratee","baseReduce","accumulator","initAccum","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","iteratees","arrayPush","isFlattenable","depth","predicate","isStrict","__WEBPACK_IMPORTED_MODULE_0_d3_path__","__WEBPACK_IMPORTED_MODULE_1__constant__","__WEBPACK_IMPORTED_MODULE_2__curve_linear__","__WEBPACK_IMPORTED_MODULE_3__point__","defined","curve","buffer","defined0","__WEBPACK_IMPORTED_MODULE_0__math__","__WEBPACK_IMPORTED_MODULE_1__cardinal__","x1","y1","x2","y2","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","x23","y23","catmullRom","sum","__WEBPACK_IMPORTED_MODULE_0__none__","v","sums","__WEBPACK_IMPORTED_MODULE_0__number__","valueof","value0","baseSetData","createBind","createCurry","createHybrid","createPartial","getData","mergeData","setData","setWrapToString","toInteger","nativeMax","partials","holders","argPos","ary","arity","isBindKey","partialsRight","holdersRight","newData","baseLodash","LazyWrapper","__wrapped__","__actions__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","metaMap","noop","LodashWrapper","chainAll","__chain__","__index__","__values__","placeholder","resIndex","toFinite","remainder","toExponential","coefficient","__WEBPACK_IMPORTED_MODULE_1__src_millisecond__","__WEBPACK_IMPORTED_MODULE_2__src_second__","__WEBPACK_IMPORTED_MODULE_3__src_minute__","__WEBPACK_IMPORTED_MODULE_4__src_hour__","__WEBPACK_IMPORTED_MODULE_5__src_day__","__WEBPACK_IMPORTED_MODULE_6__src_week__","__WEBPACK_IMPORTED_MODULE_7__src_month__","__WEBPACK_IMPORTED_MODULE_8__src_year__","__WEBPACK_IMPORTED_MODULE_9__src_utcMinute__","__WEBPACK_IMPORTED_MODULE_10__src_utcHour__","__WEBPACK_IMPORTED_MODULE_11__src_utcDay__","__WEBPACK_IMPORTED_MODULE_12__src_utcWeek__","__WEBPACK_IMPORTED_MODULE_13__src_utcMonth__","__WEBPACK_IMPORTED_MODULE_14__src_utcYear__","timeFormat","utcFormat","utcParse","locale","__WEBPACK_IMPORTED_MODULE_0__locale__","dateTime","periods","days","shortDays","months","shortMonths","parse","customDefaultsMerge","mergeWith","defaultsDeep","transform","otherArgs","global","funcToString","nativeNow","lastCalled","stamp","remaining","assignMergeValue","baseFor","baseMergeDeep","safeGet","baseMerge","srcIndex","srcValue","createBaseFor","allocUnsafe","cloneArrayBuffer","typedArray","byteOffset","arg","funcProto","objectCtorString","baseTimes","inherited","isArg","isBuff","isType","skipIndexes","String","assigner","sources","guard","nativeKeys","arrayMap","baseMap","baseIsEqualDeep","baseIsEqual","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","seen","arrValue","othValue","compared","othIndex","baseGetAllKeys","symbolsFunc","castPath","toKey","path","isKey","stringToPath","memoizeCapped","rePropName","reEscapeChar","string","charCodeAt","replace","number","quote","subString","baseToString","__WEBPACK_IMPORTED_MODULE_0__selection_index__","querySelectorAll","matcher","matches","element","vendorMatches","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","EnterNode","__WEBPACK_IMPORTED_MODULE_0__sparse__","__WEBPACK_IMPORTED_MODULE_1__index__","_parent","_enter","appendChild","child","insertBefore","next","update","styleValue","__WEBPACK_IMPORTED_MODULE_0__window__","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","getPropertyValue","getComputedStyle","view","noclick","__WEBPACK_IMPORTED_MODULE_1__noevent__","MozUserSelect","__noselect","stopImmediatePropagation","preventDefault","deg2rad","rad2deg","rgbBasis","__WEBPACK_IMPORTED_MODULE_1__basis__","__WEBPACK_IMPORTED_MODULE_2__basisClosed__","__WEBPACK_IMPORTED_MODULE_3__color__","rgbSpline","spline","rgbGamma","gamma","__WEBPACK_IMPORTED_MODULE_0__basis__","__WEBPACK_IMPORTED_MODULE_0__value__","nb","na","reA","reB","am","bm","bs","bi","lastIndex","q","one","zero","join","__WEBPACK_IMPORTED_MODULE_1__src_transition_index__","__WEBPACK_IMPORTED_MODULE_2__src_active__","__WEBPACK_IMPORTED_MODULE_3__src_interrupt__","__WEBPACK_IMPORTED_MODULE_0__transition_schedule__","active","__WEBPACK_IMPORTED_MODULE_0__src_timer__","__WEBPACK_IMPORTED_MODULE_1__src_timeout__","Transform","translate","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","__zoom","CLONE_DEEP_FLAG","getSymbolsIn","__WEBPACK_IMPORTED_MODULE_3__line__","__WEBPACK_IMPORTED_MODULE_4__point__","x0","y0","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","curveRadialLinear","curveRadial","Radial","_curve","lineRadial","__WEBPACK_IMPORTED_MODULE_0__curve_radial__","__WEBPACK_IMPORTED_MODULE_1__line__","radius","draw","tan30","tan30_2","kr","kx","ky","w","sqrt3","CardinalClosed","__WEBPACK_IMPORTED_MODULE_0__noop__","_x3","_x4","_x5","_y3","_y4","_y5","CardinalOpen","__WEBPACK_IMPORTED_MODULE_0__cardinal__","bisectRight","bisectLeft","__WEBPACK_IMPORTED_MODULE_0__ascending__","__WEBPACK_IMPORTED_MODULE_1__bisector__","ascendingBisect","right","compare","lo","hi","mid","pair","pairs","__WEBPACK_IMPORTED_MODULE_0__variance__","delta","mean","tickIncrement","step0","step1","LN10","error","e10","e5","e2","power","LN2","__WEBPACK_IMPORTED_MODULE_0__min__","matrix","transpose","row","trackParams","tip","pageX","pageY","smartBorders","tracks","width","defaultTrackWidth","externalTrack","_flow2","_filter2","_sortBy2","_reverse2","_first2","_concat2","in","out","computeMinMax","_d3Scale","scaleLog","base","scaleLinear","composeArgs","composeArgsRight","countHolders","createCtor","createRecurry","getHolder","reorder","replaceHolders","isAry","isBind","isCurried","isFlip","wrapper","holdersCount","newHolders","fn","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","holdersIndex","rightIndex","rightLength","isLaziable","wrapFunc","isCurry","getFuncName","lodash","funcName","realNames","otherFunc","getWrapDetails","insertWrapDetails","updateWrapDetails","reference","baseFindIndex","baseIsNaN","strictIndexOf","fromIndex","toNumber","flatten","__WEBPACK_IMPORTED_MODULE_0__src_band__","__WEBPACK_IMPORTED_MODULE_1__src_identity__","__WEBPACK_IMPORTED_MODULE_2__src_linear__","__WEBPACK_IMPORTED_MODULE_3__src_log__","__WEBPACK_IMPORTED_MODULE_4__src_ordinal__","__WEBPACK_IMPORTED_MODULE_5__src_pow__","__WEBPACK_IMPORTED_MODULE_6__src_quantile__","__WEBPACK_IMPORTED_MODULE_7__src_quantize__","__WEBPACK_IMPORTED_MODULE_8__src_threshold__","__WEBPACK_IMPORTED_MODULE_9__src_time__","__WEBPACK_IMPORTED_MODULE_10__src_utcTime__","__WEBPACK_IMPORTED_MODULE_11__src_category10__","__WEBPACK_IMPORTED_MODULE_12__src_category20b__","__WEBPACK_IMPORTED_MODULE_13__src_category20c__","__WEBPACK_IMPORTED_MODULE_14__src_category20__","__WEBPACK_IMPORTED_MODULE_16__src_rainbow__","__WEBPACK_IMPORTED_MODULE_17__src_viridis__","__WEBPACK_IMPORTED_MODULE_18__src_sequential__","implicit","ordinal","__WEBPACK_IMPORTED_MODULE_0_d3_collection__","unknown","__WEBPACK_IMPORTED_MODULE_1__array__","__WEBPACK_IMPORTED_MODULE_0__src_nest__","__WEBPACK_IMPORTED_MODULE_1__src_set__","__WEBPACK_IMPORTED_MODULE_2__src_map__","__WEBPACK_IMPORTED_MODULE_3__src_keys__","__WEBPACK_IMPORTED_MODULE_4__src_values__","__WEBPACK_IMPORTED_MODULE_5__src_entries__","__WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__","__WEBPACK_IMPORTED_MODULE_2__src_formatSpecifier__","__WEBPACK_IMPORTED_MODULE_3__src_precisionFixed__","__WEBPACK_IMPORTED_MODULE_4__src_precisionPrefix__","__WEBPACK_IMPORTED_MODULE_5__src_precisionRound__","__WEBPACK_IMPORTED_MODULE_0__exponent__","__WEBPACK_IMPORTED_MODULE_1__formatGroup__","__WEBPACK_IMPORTED_MODULE_2__formatNumerals__","__WEBPACK_IMPORTED_MODULE_3__formatSpecifier__","__WEBPACK_IMPORTED_MODULE_4__formatTypes__","__WEBPACK_IMPORTED_MODULE_5__formatPrefixAuto__","__WEBPACK_IMPORTED_MODULE_6__identity__","prefixes","grouping","thousands","currency","decimal","numerals","percent","newFormat","fill","align","sign","comma","precision","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","formatSpecifier","__WEBPACK_IMPORTED_MODULE_0__formatTypes__","re","FormatSpecifier","__WEBPACK_IMPORTED_MODULE_0__formatDefault__","__WEBPACK_IMPORTED_MODULE_1__formatPrefixAuto__","__WEBPACK_IMPORTED_MODULE_2__formatRounded__","toFixed","toPrecision","toUpperCase","prefixExponent","exponent","calendar","__WEBPACK_IMPORTED_MODULE_2_d3_time__","__WEBPACK_IMPORTED_MODULE_3_d3_time_format__","__WEBPACK_IMPORTED_MODULE_4__array__","__WEBPACK_IMPORTED_MODULE_5__continuous__","__WEBPACK_IMPORTED_MODULE_6__nice__","year","month","week","day","hour","minute","second","millisecond","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","tickIntervals","tickInterval","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","getDay","getMonth","formatDayOfMonth","formatMicroseconds","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","getHours","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatFullYear","formatZone","formatLiteralPercent","utcFormats","getUTCDay","getUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","getUTCHours","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseSpecifier","parseDayOfMonth","parseMicroseconds","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseYear","parseFullYear","parseZone","parseLiteralPercent","pad","pads","charAt","newParse","newDate","newYear","Q","H","V","utcDate","__WEBPACK_IMPORTED_MODULE_0_d3_time__","getUTCFullYear","getUTCDate","getFullYear","getDate","u","W","U","Z","M","X","localDate","S","L","setFullYear","UTC","setUTCFullYear","numberRe","percentRe","requoteRe","requote","names","getMilliseconds","getMinutes","getSeconds","z","getTimezoneOffset","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","dow","isoSpecifier","__WEBPACK_IMPORTED_MODULE_0__defaultLocale__","toISOString","_defaultsDeep2","_forEach2","_isArray2","_map2","_d3Zoom","_index2","_render3","_Text2","_Highlight2","_Histogram2","_Chords2","_Heatmap2","_Line2","_Scatter2","_Stack2","_clipboard","container","zoom_handler","zoom","scaleExtent","Core","enableZoomPan","zoomIdentity","enableDownloadSVG","getElementById","hasChildNodes","circos_svg","svg_as_xml","XMLSerializer","serializeToString","svg_data","encodeURIComponent","link","setAttribute","click","download_svg","initClipboard","trackIds","trackId","ids","removeTracks","constant","isMasked","reIsHostCtor","reIsNative","nativeObjectToString","isOwn","unmasked","uid","coreJsData","maskSrcKey","IE_PROTO","assocIndexOf","pop","LARGE_ARRAY_SIZE","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","fromRight","iterable","cloneTypedArray","isArrayLikeObject","isPlainObject","toPlainObject","mergeFunc","isCommon","isTyped","typedArrayTags","nativeKeysIn","isProto","eachFunc","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","equalArrays","equalByTag","equalObjects","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","setCacheAdd","setCacheHas","cache","mapToArray","setToArray","symbolProto","symbolValueOf","message","convert","objProps","objLength","skipCtor","objCtor","othCtor","isStrictComparable","hasIn","baseGet","defaultValue","memoize","resolver","memoized","Cache","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","__WEBPACK_IMPORTED_MODULE_0__creator__","__WEBPACK_IMPORTED_MODULE_1__select__","__WEBPACK_IMPORTED_MODULE_0__index__","__WEBPACK_IMPORTED_MODULE_1__selector__","subgroups","subnode","subgroup","__WEBPACK_IMPORTED_MODULE_1__selectorAll__","__WEBPACK_IMPORTED_MODULE_1__matcher__","__WEBPACK_IMPORTED_MODULE_1__enter__","__WEBPACK_IMPORTED_MODULE_2__constant__","bindIndex","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","enterGroup","updateGroup","_exit","groups0","groups1","m0","merges","group0","group1","nextSibling","parentNode","ascending","compareNode","sortgroups","sortgroup","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","getAttributeNS","getAttribute","propertyRemove","propertyConstant","propertyFunction","classArray","classList","ClassList","_node","_names","classedAdd","list","classedRemove","classedTrue","classedFalse","classedFunction","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","previousSibling","firstChild","constantNull","before","removeChild","selection_cloneShallow","cloneNode","selection_cloneDeep","deep","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","nextId","Local","__WEBPACK_IMPORTED_MODULE_0__sourceEvent__","__WEBPACK_IMPORTED_MODULE_1__point__","changedTouches","touches","identifier","touch","points","__WEBPACK_IMPORTED_MODULE_0__zoom__","__WEBPACK_IMPORTED_MODULE_1__transform__","__WEBPACK_IMPORTED_MODULE_1_d3_drag__","__WEBPACK_IMPORTED_MODULE_2_d3_interpolate__","__WEBPACK_IMPORTED_MODULE_3_d3_selection__","__WEBPACK_IMPORTED_MODULE_4_d3_transition__","__WEBPACK_IMPORTED_MODULE_5__constant__","__WEBPACK_IMPORTED_MODULE_6__event__","__WEBPACK_IMPORTED_MODULE_7__transform__","__WEBPACK_IMPORTED_MODULE_8__noevent__","defaultFilter","button","defaultExtent","SVGElement","baseVal","clientWidth","clientHeight","defaultTransform","defaultWheelDelta","deltaY","deltaMode","defaultTouchable","defaultConstrain","extent","translateExtent","dx0","dx1","dy0","dy1","touchstarting","touchending","constrain","wheelDelta","touchable","gestures","listeners","clickDistance2","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","p0","p1","centroid","center","gesture","concat","Gesture","wheel","mouse","wheelidled","mousemoved","mouseupped","moved","dx","dy","k1","shiftKey","started","touch0","touch1","l0","l1","dp","dl","interrupt","scaleBy","scaleTo","k0","translateBy","translateTo","emit","clickDistance","Dispatch","T","__WEBPACK_IMPORTED_MODULE_1__src_nodrag__","DragEvent","subject","lab","hcl","__WEBPACK_IMPORTED_MODULE_1__color__","__WEBPACK_IMPORTED_MODULE_2__math__","labConvert","Lab","Hcl","rgb2xyz","xyz2lab","lab2xyz","xyz2rgb","hclConvert","cubehelix","A","B","C","D","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","cosh","sinh","interpolateTransformCss","interpolateTransformSvg","__WEBPACK_IMPORTED_MODULE_1__parse__","interpolateTransform","pxComma","pxParen","degParen","xa","ya","xb","yb","translateX","translateY","rotate","skewX","scaleX","scaleY","__WEBPACK_IMPORTED_MODULE_0__decompose__","cssNode","cssRoot","cssView","svgNode","consolidate","degrees","atan","rho","SQRT2","exp","ux0","uy0","w0","ux1","uy1","w1","d2","b0","b1","coshr0","hue","cubehelixLong","cubehelixGamma","__WEBPACK_IMPORTED_MODULE_1__interrupt__","__WEBPACK_IMPORTED_MODULE_2__transition__","__WEBPACK_IMPORTED_MODULE_0__interrupt__","__WEBPACK_IMPORTED_MODULE_0__timer__","__WEBPACK_IMPORTED_MODULE_0__transition_index__","__WEBPACK_IMPORTED_MODULE_1__transition_schedule__","__WEBPACK_IMPORTED_MODULE_2_d3_ease__","__WEBPACK_IMPORTED_MODULE_3_d3_timer__","defaultTiming","inherit","__WEBPACK_IMPORTED_MODULE_1_d3_selection__","__WEBPACK_IMPORTED_MODULE_2__tween__","__WEBPACK_IMPORTED_MODULE_3__interpolate__","value1","value00","interpolate0","value10","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","__WEBPACK_IMPORTED_MODULE_2__schedule__","styleRemoveEnd","__WEBPACK_IMPORTED_MODULE_0__tween__","__WEBPACK_IMPORTED_MODULE_1__schedule__","id0","id1","__WEBPACK_IMPORTED_MODULE_2__src_cubic__","polyIn","polyOut","polyInOut","backIn","overshoot","backOut","backInOut","elasticIn","amplitude","period","elasticOut","elasticInOut","_cloneDeep2","_reduce2","_conf2","Layout","agg","aggregator","label","gap","blockId","cloneDataView","cloneRegExp","cloneSymbol","dataView","reFlags","regexp","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","cornerRadius","labels","display","radialOffset","spacing","labelSpacing","labelSuffix","labelDenominator","labelDisplay0","labelSize","labelColor","labelFont","majorSpacing","minor","major","onClick","onMouseOver","circos","renderAll","translated","render","_render2","trackContainers","sortedTrackContainers","elt","spreadableSymbol","isConcatSpreadable","baseSortBy","compareMultiple","orders","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","labelArc","renderLayoutLabels","displayLabel","renderLayoutTicks","arcInnerRadius","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","rc","cw","x01","y01","ox","oy","x11","y11","x00","y00","cx0","cy0","cx1","cy1","cx","cy","padRadius","a0","a1","da","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","oc","ax","ay","bx","by","kc","lc","tauEpsilon","Path","quadraticCurveTo","arcTo","x21","y21","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","ccw","__WEBPACK_IMPORTED_MODULE_1__descending__","__WEBPACK_IMPORTED_MODULE_2__identity__","__WEBPACK_IMPORTED_MODULE_3__math__","sortValues","pie","arcs","pa","__WEBPACK_IMPORTED_MODULE_1__area__","__WEBPACK_IMPORTED_MODULE_2__lineRadial__","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","curveHorizontal","curveVertical","__WEBPACK_IMPORTED_MODULE_4__pointRadial__","linkSource","linkTarget","argv","p2","p3","symbols","__WEBPACK_IMPORTED_MODULE_1__symbol_circle__","__WEBPACK_IMPORTED_MODULE_2__symbol_cross__","__WEBPACK_IMPORTED_MODULE_3__symbol_diamond__","__WEBPACK_IMPORTED_MODULE_4__symbol_star__","__WEBPACK_IMPORTED_MODULE_5__symbol_square__","__WEBPACK_IMPORTED_MODULE_6__symbol_triangle__","__WEBPACK_IMPORTED_MODULE_7__symbol_wye__","__WEBPACK_IMPORTED_MODULE_8__constant__","BasisClosed","BasisOpen","Bundle","beta","_basis","_beta","_x","_y","bundle","__WEBPACK_IMPORTED_MODULE_0__cardinalClosed__","__WEBPACK_IMPORTED_MODULE_1__noop__","__WEBPACK_IMPORTED_MODULE_2__catmullRom__","CatmullRomClosed","__WEBPACK_IMPORTED_MODULE_0__cardinalOpen__","__WEBPACK_IMPORTED_MODULE_1__catmullRom__","CatmullRomOpen","LinearClosed","slope3","h0","h1","slope2","MonotoneX","MonotoneY","ReflectContext","_t0","Natural","controlPoints","px","py","Step","_t","__WEBPACK_IMPORTED_MODULE_0__array__","__WEBPACK_IMPORTED_MODULE_2__offset_none__","__WEBPACK_IMPORTED_MODULE_3__order_none__","stackValue","oz","kz","sz","sij","ki","si","yp","yn","s2","sij0","s3","sk","__WEBPACK_IMPORTED_MODULE_1__ascending__","bottom","tops","bottoms","__WEBPACK_IMPORTED_MODULE_0__pairs__","values0","values1","reduce","n0","n1","__WEBPACK_IMPORTED_MODULE_1__bisect__","__WEBPACK_IMPORTED_MODULE_3__extent__","__WEBPACK_IMPORTED_MODULE_4__identity__","__WEBPACK_IMPORTED_MODULE_5__range__","__WEBPACK_IMPORTED_MODULE_6__ticks__","__WEBPACK_IMPORTED_MODULE_7__threshold_sturges__","threshold","histogram","xz","tz","shift","bin","bins","thresholds","__WEBPACK_IMPORTED_MODULE_2__number__","__WEBPACK_IMPORTED_MODULE_3__quantile__","__WEBPACK_IMPORTED_MODULE_0__deviation__","__WEBPACK_IMPORTED_MODULE_1__number__","__WEBPACK_IMPORTED_MODULE_2__quantile__","numbers","arrays","merged","indexes","permutes","xi","xj","random","__WEBPACK_IMPORTED_MODULE_0__transpose__","_Track3","_dataParser","_assign2","_configs","Text","_Track","ReferenceError","_possibleConstructorReturn","__proto__","subClass","superClass","setPrototypeOf","_inherits","item","_angle","_anchor","_rotate","content","locals","useSourceMap","sourceMap","cssMapping","btoa","sourceMapping","unescape","JSON","stringify","sourceURLs","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","memo","stylesInDom","isOldIE","all","atob","getTarget","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","parts","addStyle","listToStyles","newStyles","part","css","media","insertStyleElement","insertInto","lastStyleElementInsertedAtTop","insertAt","removeStyleElement","idx","createStyleElement","attrs","addAttrs","el","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","rel","createLinkElement","updateLink","href","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","replacement","Boolean","styleSheet","cssText","createTextNode","childNodes","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","_isFunction2","userConf","buildConf","borders","computeRadius","mapping","fallbackHolder","baseAry","cloneArray","wrapImmutable","cloner","isLib","isObj","config","cap","curry","fixed","immutable","rearg","defaultHolder","forceCurry","forceFixed","forceRearg","pristine","runInContext","helpers","isError","isWeakMap","toPath","aryMethodKeys","aryMethod","wrappers","castArray","mixin","nthArg","castCap","iterateeRearg","baseArity","iterateeAry","castFixed","skipFixed","methodSpread","flatSpread","castRearg","skipRearg","methodRearg","aryRearg","cloneByPath","nested","createConverter","realName","aliasToReal","methodName","remap","oldOptions","newUtil","newFunc","newOptions","wrapped","mutate","createCloner","aryKey","otherName","afterRearg","castCurry","realToAlias","alias","createWrap","wrapperClone","reWrapDetails","reSplitDetails","reWrapComment","details","arrayIncludes","wrapFlags","baseIndexOf","nativeMin","oldArray","srcBitmask","newBitmask","isCombo","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","flatRest","flow","createFlow","funcs","prereq","thru","plant","baseFilter","nativeReverse","band","pointish","paddingOuter","paddingInner","__WEBPACK_IMPORTED_MODULE_1__ordinal__","bandwidth","ordinalRange","__WEBPACK_IMPORTED_MODULE_0__map__","createObject","setObject","createMap","setMap","rollup","sortKeys","createResult","setResult","valuesByKey","sortKey","__WEBPACK_IMPORTED_MODULE_1__linear__","__WEBPACK_IMPORTED_MODULE_1_d3_format__","substring","__WEBPACK_IMPORTED_MODULE_4__continuous__","logs","logp","pows","powp","reflect","__WEBPACK_IMPORTED_MODULE_3__nice__","pow10","log10","log2","quantile","invertExtent","quantiles","quantize","__WEBPACK_IMPORTED_MODULE_2__linear__","__WEBPACK_IMPORTED_MODULE_0__interval__","__WEBPACK_IMPORTED_MODULE_1__duration__","setHours","setDate","sunday","monday","thursday","weekday","tuesday","wednesday","friday","saturday","setMonth","utcMinute","setUTCSeconds","utcHour","setUTCMinutes","utcDay","setUTCHours","setUTCDate","utcSunday","utcMonday","utcThursday","utcWeekday","utcTuesday","utcWednesday","utcFriday","utcSaturday","utcMonth","setUTCMonth","utcYear","__WEBPACK_IMPORTED_MODULE_0__isoFormat__","__WEBPACK_IMPORTED_MODULE_1__defaultLocale__","__WEBPACK_IMPORTED_MODULE_0__time__","__WEBPACK_IMPORTED_MODULE_1_d3_time_format__","__WEBPACK_IMPORTED_MODULE_0__colors__","warm","cool","rainbow","ts","magma","inferno","plasma","ramp","sequential","interpolator","__WEBPACK_IMPORTED_MODULE_0__linear__","paletteName","palettes","buildColorScale","_isFunction","_d3ScaleChromatic","BrBG","interpolateBrBG","PRGn","interpolatePRGn","PiYG","interpolatePiYG","PuOr","interpolatePuOr","RdBu","interpolateRdBu","RdGy","interpolateRdGy","RdYlBu","interpolateRdYlBu","RdYlGn","interpolateRdYlGn","Spectral","interpolateSpectral","Blues","interpolateBlues","Greens","interpolateGreens","Greys","interpolateGreys","Oranges","interpolateOranges","Purples","interpolatePurples","Reds","interpolateReds","BuGn","interpolateBuGn","BuPu","interpolateBuPu","GnBu","interpolateGnBu","OrRd","interpolateOrRd","PuBuGn","interpolatePuBuGn","PuBu","interpolatePuBu","PuRd","interpolatePuRd","RdPu","interpolateRdPu","YlGnBu","interpolateYlGnBu","YlGn","interpolateYlGn","YlOrBr","interpolateYlOrBr","YlOrRd","interpolateYlOrRd","scaleSequential","__WEBPACK_IMPORTED_MODULE_0__categorical_category10__","__WEBPACK_IMPORTED_MODULE_1__categorical_Accent__","__WEBPACK_IMPORTED_MODULE_2__categorical_Dark2__","__WEBPACK_IMPORTED_MODULE_3__categorical_Paired__","__WEBPACK_IMPORTED_MODULE_4__categorical_Pastel1__","__WEBPACK_IMPORTED_MODULE_5__categorical_Pastel2__","__WEBPACK_IMPORTED_MODULE_6__categorical_Set1__","__WEBPACK_IMPORTED_MODULE_7__categorical_Set2__","__WEBPACK_IMPORTED_MODULE_8__categorical_Set3__","__WEBPACK_IMPORTED_MODULE_9__diverging_BrBG__","__WEBPACK_IMPORTED_MODULE_10__diverging_PRGn__","__WEBPACK_IMPORTED_MODULE_11__diverging_PiYG__","__WEBPACK_IMPORTED_MODULE_12__diverging_PuOr__","__WEBPACK_IMPORTED_MODULE_13__diverging_RdBu__","__WEBPACK_IMPORTED_MODULE_14__diverging_RdGy__","__WEBPACK_IMPORTED_MODULE_15__diverging_RdYlBu__","__WEBPACK_IMPORTED_MODULE_16__diverging_RdYlGn__","__WEBPACK_IMPORTED_MODULE_17__diverging_Spectral__","__WEBPACK_IMPORTED_MODULE_18__sequential_multi_BuGn__","__WEBPACK_IMPORTED_MODULE_19__sequential_multi_BuPu__","__WEBPACK_IMPORTED_MODULE_20__sequential_multi_GnBu__","__WEBPACK_IMPORTED_MODULE_21__sequential_multi_OrRd__","__WEBPACK_IMPORTED_MODULE_22__sequential_multi_PuBuGn__","__WEBPACK_IMPORTED_MODULE_23__sequential_multi_PuBu__","__WEBPACK_IMPORTED_MODULE_24__sequential_multi_PuRd__","__WEBPACK_IMPORTED_MODULE_25__sequential_multi_RdPu__","__WEBPACK_IMPORTED_MODULE_26__sequential_multi_YlGnBu__","__WEBPACK_IMPORTED_MODULE_27__sequential_multi_YlGn__","__WEBPACK_IMPORTED_MODULE_28__sequential_multi_YlOrBr__","__WEBPACK_IMPORTED_MODULE_29__sequential_multi_YlOrRd__","__WEBPACK_IMPORTED_MODULE_30__sequential_single_Blues__","__WEBPACK_IMPORTED_MODULE_31__sequential_single_Greens__","__WEBPACK_IMPORTED_MODULE_32__sequential_single_Greys__","__WEBPACK_IMPORTED_MODULE_33__sequential_single_Purples__","__WEBPACK_IMPORTED_MODULE_34__sequential_single_Reds__","__WEBPACK_IMPORTED_MODULE_35__sequential_single_Oranges__","__WEBPACK_IMPORTED_MODULE_36__sequential_multi_cubehelix__","__WEBPACK_IMPORTED_MODULE_37__sequential_multi_rainbow__","__WEBPACK_IMPORTED_MODULE_38__sequential_multi_sinebow__","__WEBPACK_IMPORTED_MODULE_39__sequential_multi_viridis__","__WEBPACK_IMPORTED_MODULE_1__ramp__","pi_1_3","pi_2_3","_buildAxesData","_range2","_logger2","_buildAxisData","axesGroup","thickness","builtAxes","axis","blockData","createRange","baseRange","nativeCeil","isString","baseValues","arrayEvery","baseEvery","strokeColor","strokeWidth","Highlight","Histogram","_d3Chord","normalizeRadius","layoutRadius","Chords","getCoordinates","ribbon","renderChords","__WEBPACK_IMPORTED_MODULE_0__src_chord__","__WEBPACK_IMPORTED_MODULE_1__src_ribbon__","__WEBPACK_IMPORTED_MODULE_1__math__","compareValue","sortGroups","sortSubgroups","sortChords","chord","groupSums","groupIndex","subgroupIndex","chords","di","dj","subindex","__WEBPACK_IMPORTED_MODULE_3_d3_path__","defaultSource","defaultTarget","defaultRadius","defaultStartAngle","defaultEndAngle","sr","sa0","sa1","sx0","sy0","tr","ta0","ta1","Heatmap","fillColor","maxGap","Line","radialLine","curveLinear","radialArea","generator","buildRadius","shape","Scatter","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolTriangle","symbolStar","symbolWye","getSymbol","radialMargin","margin","buildLayers","layers","placed","layer","radialStart","radialEnd","origin","_radialStart","_radialEnd","datumRadialPosition","_clipboardJs","_clipboardJs2","ctrlKey","code","setImmediate","_resolve","_dataType","_intercept","_data","_bogusSelection","cleanup","getSelection","removeAllRanges","clipboardData","reject","Node","triggerCopy","tryBogusSelect","execCommand","sel","queryCommandEnabled","isCollapsed","selectNodeContents","body","addRange","bogusSelect","paste","dataType","ClipboardEvent","_state","_deferreds","onFulfilled","onRejected","then","immediateFn","race","strData","scope","Timeout","clearFn","_clearFn","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","nextTick","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","attachEvent","MessageChannel","port1","port2","script","onreadystatechange","task","run","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","title","browser","env","version","versions","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","dir","umask","Circos","configCircos","setEvent","setColor","setToolTip","stopScroll","setStopScroll","setProps","selectEvent","eventDatum","configApply","colorName","conditional","condColor","returnedColor","contents","toolName","tooltipData","sourceID","targetID","CircosJS","nextProps","data-event-datum","Component","defaultProps","propTypes"],"mappings":"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","file":"async-circos.js","sourcesContent":["module.exports = require('./dist/circos.es6');\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 240);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n});\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_interpolate__ = __webpack_require__(8);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(scheme) {\n return Object(__WEBPACK_IMPORTED_MODULE_0_d3_interpolate__[\"e\" /* interpolateRgbBasis */])(scheme[scheme.length - 1]);\n});\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_create__ = __webpack_require__(314);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"create\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_create__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_creator__ = __webpack_require__(66);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"creator\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_creator__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_local__ = __webpack_require__(343);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"local\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_local__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_matcher__ = __webpack_require__(161);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"matcher\", function() { return __WEBPACK_IMPORTED_MODULE_3__src_matcher__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_mouse__ = __webpack_require__(344);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"mouse\", function() { return __WEBPACK_IMPORTED_MODULE_4__src_mouse__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_namespace__ = __webpack_require__(93);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"namespace\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_namespace__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_namespaces__ = __webpack_require__(94);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"namespaces\", function() { return __WEBPACK_IMPORTED_MODULE_6__src_namespaces__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_point__ = __webpack_require__(67);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"clientPoint\", function() { return __WEBPACK_IMPORTED_MODULE_7__src_point__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_select__ = __webpack_require__(159);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"select\", function() { return __WEBPACK_IMPORTED_MODULE_8__src_select__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_selectAll__ = __webpack_require__(345);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"selectAll\", function() { return __WEBPACK_IMPORTED_MODULE_9__src_selectAll__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_selection_index__ = __webpack_require__(11);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"selection\", function() { return __WEBPACK_IMPORTED_MODULE_10__src_selection_index__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_selector__ = __webpack_require__(95);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"selector\", function() { return __WEBPACK_IMPORTED_MODULE_11__src_selector__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_selectorAll__ = __webpack_require__(160);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"selectorAll\", function() { return __WEBPACK_IMPORTED_MODULE_12__src_selectorAll__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_selection_style__ = __webpack_require__(164);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"style\", function() { return __WEBPACK_IMPORTED_MODULE_13__src_selection_style__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_touch__ = __webpack_require__(346);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"touch\", function() { return __WEBPACK_IMPORTED_MODULE_14__src_touch__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__src_touches__ = __webpack_require__(347);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"touches\", function() { return __WEBPACK_IMPORTED_MODULE_15__src_touches__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__src_window__ = __webpack_require__(96);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"window\", function() { return __WEBPACK_IMPORTED_MODULE_16__src_window__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__src_selection_on__ = __webpack_require__(97);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"event\", function() { return __WEBPACK_IMPORTED_MODULE_17__src_selection_on__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"customEvent\", function() { return __WEBPACK_IMPORTED_MODULE_17__src_selection_on__[\"a\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = newInterval;\nvar t0 = new Date,\n t1 = new Date;\n\nfunction newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor = interval;\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar freeGlobal = __webpack_require__(128);\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_value__ = __webpack_require__(99);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_value__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_array__ = __webpack_require__(171);\n/* unused harmony reexport interpolateArray */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_basis__ = __webpack_require__(102);\n/* unused harmony reexport interpolateBasis */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_basisClosed__ = __webpack_require__(169);\n/* unused harmony reexport interpolateBasisClosed */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_date__ = __webpack_require__(172);\n/* unused harmony reexport interpolateDate */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_number__ = __webpack_require__(69);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_number__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_object__ = __webpack_require__(173);\n/* unused harmony reexport interpolateObject */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_round__ = __webpack_require__(357);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_7__src_round__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_string__ = __webpack_require__(174);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return __WEBPACK_IMPORTED_MODULE_8__src_string__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_transform_index__ = __webpack_require__(358);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return __WEBPACK_IMPORTED_MODULE_9__src_transform_index__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return __WEBPACK_IMPORTED_MODULE_9__src_transform_index__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_zoom__ = __webpack_require__(361);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return __WEBPACK_IMPORTED_MODULE_10__src_zoom__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_rgb__ = __webpack_require__(168);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_11__src_rgb__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_11__src_rgb__[\"b\"]; });\n/* unused harmony reexport interpolateRgbBasisClosed */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_hsl__ = __webpack_require__(362);\n/* unused harmony reexport interpolateHsl */\n/* unused harmony reexport interpolateHslLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_lab__ = __webpack_require__(363);\n/* unused harmony reexport interpolateLab */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_hcl__ = __webpack_require__(364);\n/* unused harmony reexport interpolateHcl */\n/* unused harmony reexport interpolateHclLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__src_cubehelix__ = __webpack_require__(365);\n/* unused harmony reexport interpolateCubehelix */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_15__src_cubehelix__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__src_quantize__ = __webpack_require__(366);\n/* unused harmony reexport quantize */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_color__ = __webpack_require__(100);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_color__[\"e\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_color__[\"g\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_color__[\"f\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_lab__ = __webpack_require__(355);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_lab__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_lab__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_cubehelix__ = __webpack_require__(356);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_cubehelix__[\"a\"]; });\n\n\n\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_bisect__ = __webpack_require__(197);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"bisect\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_bisect__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"bisectRight\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_bisect__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"bisectLeft\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_bisect__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_ascending__ = __webpack_require__(36);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ascending\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ascending__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_bisector__ = __webpack_require__(198);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"bisector\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_bisector__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_cross__ = __webpack_require__(452);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"cross\", function() { return __WEBPACK_IMPORTED_MODULE_3__src_cross__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_descending__ = __webpack_require__(453);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"descending\", function() { return __WEBPACK_IMPORTED_MODULE_4__src_descending__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_deviation__ = __webpack_require__(200);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"deviation\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_deviation__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_extent__ = __webpack_require__(202);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"extent\", function() { return __WEBPACK_IMPORTED_MODULE_6__src_extent__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_histogram__ = __webpack_require__(454);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"histogram\", function() { return __WEBPACK_IMPORTED_MODULE_7__src_histogram__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_threshold_freedmanDiaconis__ = __webpack_require__(457);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"thresholdFreedmanDiaconis\", function() { return __WEBPACK_IMPORTED_MODULE_8__src_threshold_freedmanDiaconis__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_threshold_scott__ = __webpack_require__(458);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"thresholdScott\", function() { return __WEBPACK_IMPORTED_MODULE_9__src_threshold_scott__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_threshold_sturges__ = __webpack_require__(206);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"thresholdSturges\", function() { return __WEBPACK_IMPORTED_MODULE_10__src_threshold_sturges__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_max__ = __webpack_require__(459);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return __WEBPACK_IMPORTED_MODULE_11__src_max__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_mean__ = __webpack_require__(460);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"mean\", function() { return __WEBPACK_IMPORTED_MODULE_12__src_mean__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_median__ = __webpack_require__(461);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"median\", function() { return __WEBPACK_IMPORTED_MODULE_13__src_median__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_merge__ = __webpack_require__(462);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return __WEBPACK_IMPORTED_MODULE_14__src_merge__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__src_min__ = __webpack_require__(207);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return __WEBPACK_IMPORTED_MODULE_15__src_min__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__src_pairs__ = __webpack_require__(199);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"pairs\", function() { return __WEBPACK_IMPORTED_MODULE_16__src_pairs__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__src_permute__ = __webpack_require__(463);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"permute\", function() { return __WEBPACK_IMPORTED_MODULE_17__src_permute__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__src_quantile__ = __webpack_require__(112);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"quantile\", function() { return __WEBPACK_IMPORTED_MODULE_18__src_quantile__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__src_range__ = __webpack_require__(204);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return __WEBPACK_IMPORTED_MODULE_19__src_range__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__src_scan__ = __webpack_require__(464);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return __WEBPACK_IMPORTED_MODULE_20__src_scan__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__src_shuffle__ = __webpack_require__(465);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"shuffle\", function() { return __WEBPACK_IMPORTED_MODULE_21__src_shuffle__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__src_sum__ = __webpack_require__(466);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"sum\", function() { return __WEBPACK_IMPORTED_MODULE_22__src_sum__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__src_ticks__ = __webpack_require__(205);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ticks\", function() { return __WEBPACK_IMPORTED_MODULE_23__src_ticks__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"tickIncrement\", function() { return __WEBPACK_IMPORTED_MODULE_23__src_ticks__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"tickStep\", function() { return __WEBPACK_IMPORTED_MODULE_23__src_ticks__[\"c\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__src_transpose__ = __webpack_require__(208);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"transpose\", function() { return __WEBPACK_IMPORTED_MODULE_24__src_transpose__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__src_variance__ = __webpack_require__(201);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"variance\", function() { return __WEBPACK_IMPORTED_MODULE_25__src_variance__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__src_zip__ = __webpack_require__(467);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return __WEBPACK_IMPORTED_MODULE_26__src_zip__[\"a\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return root; });\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Selection;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__select__ = __webpack_require__(315);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__selectAll__ = __webpack_require__(316);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__filter__ = __webpack_require__(317);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__data__ = __webpack_require__(318);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__enter__ = __webpack_require__(162);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__exit__ = __webpack_require__(320);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__merge__ = __webpack_require__(321);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__order__ = __webpack_require__(322);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__sort__ = __webpack_require__(323);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__call__ = __webpack_require__(324);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__nodes__ = __webpack_require__(325);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__node__ = __webpack_require__(326);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__size__ = __webpack_require__(327);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__empty__ = __webpack_require__(328);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__each__ = __webpack_require__(329);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__attr__ = __webpack_require__(330);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__style__ = __webpack_require__(164);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__property__ = __webpack_require__(331);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__classed__ = __webpack_require__(332);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__text__ = __webpack_require__(333);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__html__ = __webpack_require__(334);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__raise__ = __webpack_require__(335);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__lower__ = __webpack_require__(336);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__append__ = __webpack_require__(337);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__insert__ = __webpack_require__(338);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__remove__ = __webpack_require__(339);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__clone__ = __webpack_require__(340);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__datum__ = __webpack_require__(341);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__on__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__dispatch__ = __webpack_require__(342);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar root = [null];\n\nfunction Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: __WEBPACK_IMPORTED_MODULE_0__select__[\"a\" /* default */],\n selectAll: __WEBPACK_IMPORTED_MODULE_1__selectAll__[\"a\" /* default */],\n filter: __WEBPACK_IMPORTED_MODULE_2__filter__[\"a\" /* default */],\n data: __WEBPACK_IMPORTED_MODULE_3__data__[\"a\" /* default */],\n enter: __WEBPACK_IMPORTED_MODULE_4__enter__[\"b\" /* default */],\n exit: __WEBPACK_IMPORTED_MODULE_5__exit__[\"a\" /* default */],\n merge: __WEBPACK_IMPORTED_MODULE_6__merge__[\"a\" /* default */],\n order: __WEBPACK_IMPORTED_MODULE_7__order__[\"a\" /* default */],\n sort: __WEBPACK_IMPORTED_MODULE_8__sort__[\"a\" /* default */],\n call: __WEBPACK_IMPORTED_MODULE_9__call__[\"a\" /* default */],\n nodes: __WEBPACK_IMPORTED_MODULE_10__nodes__[\"a\" /* default */],\n node: __WEBPACK_IMPORTED_MODULE_11__node__[\"a\" /* default */],\n size: __WEBPACK_IMPORTED_MODULE_12__size__[\"a\" /* default */],\n empty: __WEBPACK_IMPORTED_MODULE_13__empty__[\"a\" /* default */],\n each: __WEBPACK_IMPORTED_MODULE_14__each__[\"a\" /* default */],\n attr: __WEBPACK_IMPORTED_MODULE_15__attr__[\"a\" /* default */],\n style: __WEBPACK_IMPORTED_MODULE_16__style__[\"a\" /* default */],\n property: __WEBPACK_IMPORTED_MODULE_17__property__[\"a\" /* default */],\n classed: __WEBPACK_IMPORTED_MODULE_18__classed__[\"a\" /* default */],\n text: __WEBPACK_IMPORTED_MODULE_19__text__[\"a\" /* default */],\n html: __WEBPACK_IMPORTED_MODULE_20__html__[\"a\" /* default */],\n raise: __WEBPACK_IMPORTED_MODULE_21__raise__[\"a\" /* default */],\n lower: __WEBPACK_IMPORTED_MODULE_22__lower__[\"a\" /* default */],\n append: __WEBPACK_IMPORTED_MODULE_23__append__[\"a\" /* default */],\n insert: __WEBPACK_IMPORTED_MODULE_24__insert__[\"a\" /* default */],\n remove: __WEBPACK_IMPORTED_MODULE_25__remove__[\"a\" /* default */],\n clone: __WEBPACK_IMPORTED_MODULE_26__clone__[\"a\" /* default */],\n datum: __WEBPACK_IMPORTED_MODULE_27__datum__[\"a\" /* default */],\n on: __WEBPACK_IMPORTED_MODULE_28__on__[\"b\" /* default */],\n dispatch: __WEBPACK_IMPORTED_MODULE_29__dispatch__[\"a\" /* default */]\n};\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (selection);\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export CREATED */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return SCHEDULED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return STARTING; });\n/* unused harmony export STARTED */\n/* unused harmony export RUNNING */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ENDING; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ENDED; });\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = init;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = set;\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = get;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_dispatch__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_timer__ = __webpack_require__(177);\n\n\n\nvar emptyOn = Object(__WEBPACK_IMPORTED_MODULE_0_d3_dispatch__[\"dispatch\"])(\"start\", \"end\", \"interrupt\");\nvar emptyTween = [];\n\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar RUNNING = 4;\nvar ENDING = 5;\nvar ENDED = 6;\n\n/* harmony default export */ __webpack_exports__[\"e\"] = (function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n});\n\nfunction init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nfunction set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTING) throw new Error(\"too late; already started\");\n return schedule;\n}\n\nfunction get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = Object(__WEBPACK_IMPORTED_MODULE_1_d3_timer__[\"c\" /* timer */])(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return Object(__WEBPACK_IMPORTED_MODULE_1_d3_timer__[\"b\" /* timeout */])(start);\n\n // Interrupt the active transition, if any.\n // Dispatch the interrupt event.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions. No interrupt event is dispatched\n // because the cancelled transitions never started. Note that this also\n // removes this transition from the pending list!\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n Object(__WEBPACK_IMPORTED_MODULE_1_d3_timer__[\"b\" /* timeout */])(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(null, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_arc__ = __webpack_require__(427);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"arc\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_arc__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_area__ = __webpack_require__(183);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"area\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_area__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_line__ = __webpack_require__(108);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"line\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_line__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_pie__ = __webpack_require__(429);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"pie\", function() { return __WEBPACK_IMPORTED_MODULE_3__src_pie__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_areaRadial__ = __webpack_require__(432);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"areaRadial\", function() { return __WEBPACK_IMPORTED_MODULE_4__src_areaRadial__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"radialArea\", function() { return __WEBPACK_IMPORTED_MODULE_4__src_areaRadial__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_lineRadial__ = __webpack_require__(185);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"lineRadial\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_lineRadial__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"radialLine\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_lineRadial__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_pointRadial__ = __webpack_require__(186);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"pointRadial\", function() { return __WEBPACK_IMPORTED_MODULE_6__src_pointRadial__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_link_index__ = __webpack_require__(433);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"linkHorizontal\", function() { return __WEBPACK_IMPORTED_MODULE_7__src_link_index__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"linkVertical\", function() { return __WEBPACK_IMPORTED_MODULE_7__src_link_index__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"linkRadial\", function() { return __WEBPACK_IMPORTED_MODULE_7__src_link_index__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_symbol__ = __webpack_require__(434);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"symbol\", function() { return __WEBPACK_IMPORTED_MODULE_8__src_symbol__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"symbols\", function() { return __WEBPACK_IMPORTED_MODULE_8__src_symbol__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_symbol_circle__ = __webpack_require__(188);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"symbolCircle\", function() { return __WEBPACK_IMPORTED_MODULE_9__src_symbol_circle__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_symbol_cross__ = __webpack_require__(189);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"symbolCross\", function() { return __WEBPACK_IMPORTED_MODULE_10__src_symbol_cross__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_symbol_diamond__ = __webpack_require__(190);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"symbolDiamond\", function() { return __WEBPACK_IMPORTED_MODULE_11__src_symbol_diamond__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_symbol_square__ = __webpack_require__(192);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"symbolSquare\", function() { return __WEBPACK_IMPORTED_MODULE_12__src_symbol_square__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_symbol_star__ = __webpack_require__(191);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"symbolStar\", function() { return __WEBPACK_IMPORTED_MODULE_13__src_symbol_star__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_symbol_triangle__ = __webpack_require__(193);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"symbolTriangle\", function() { return __WEBPACK_IMPORTED_MODULE_14__src_symbol_triangle__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__src_symbol_wye__ = __webpack_require__(194);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"symbolWye\", function() { return __WEBPACK_IMPORTED_MODULE_15__src_symbol_wye__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__src_curve_basisClosed__ = __webpack_require__(435);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveBasisClosed\", function() { return __WEBPACK_IMPORTED_MODULE_16__src_curve_basisClosed__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__src_curve_basisOpen__ = __webpack_require__(436);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveBasisOpen\", function() { return __WEBPACK_IMPORTED_MODULE_17__src_curve_basisOpen__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__src_curve_basis__ = __webpack_require__(73);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveBasis\", function() { return __WEBPACK_IMPORTED_MODULE_18__src_curve_basis__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__src_curve_bundle__ = __webpack_require__(437);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveBundle\", function() { return __WEBPACK_IMPORTED_MODULE_19__src_curve_bundle__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__src_curve_cardinalClosed__ = __webpack_require__(195);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveCardinalClosed\", function() { return __WEBPACK_IMPORTED_MODULE_20__src_curve_cardinalClosed__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__src_curve_cardinalOpen__ = __webpack_require__(196);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveCardinalOpen\", function() { return __WEBPACK_IMPORTED_MODULE_21__src_curve_cardinalOpen__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__src_curve_cardinal__ = __webpack_require__(74);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveCardinal\", function() { return __WEBPACK_IMPORTED_MODULE_22__src_curve_cardinal__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__src_curve_catmullRomClosed__ = __webpack_require__(438);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveCatmullRomClosed\", function() { return __WEBPACK_IMPORTED_MODULE_23__src_curve_catmullRomClosed__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__src_curve_catmullRomOpen__ = __webpack_require__(439);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveCatmullRomOpen\", function() { return __WEBPACK_IMPORTED_MODULE_24__src_curve_catmullRomOpen__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__src_curve_catmullRom__ = __webpack_require__(110);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveCatmullRom\", function() { return __WEBPACK_IMPORTED_MODULE_25__src_curve_catmullRom__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__src_curve_linearClosed__ = __webpack_require__(440);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveLinearClosed\", function() { return __WEBPACK_IMPORTED_MODULE_26__src_curve_linearClosed__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__src_curve_linear__ = __webpack_require__(71);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveLinear\", function() { return __WEBPACK_IMPORTED_MODULE_27__src_curve_linear__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__src_curve_monotone__ = __webpack_require__(441);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveMonotoneX\", function() { return __WEBPACK_IMPORTED_MODULE_28__src_curve_monotone__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveMonotoneY\", function() { return __WEBPACK_IMPORTED_MODULE_28__src_curve_monotone__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__src_curve_natural__ = __webpack_require__(442);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveNatural\", function() { return __WEBPACK_IMPORTED_MODULE_29__src_curve_natural__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__src_curve_step__ = __webpack_require__(443);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveStep\", function() { return __WEBPACK_IMPORTED_MODULE_30__src_curve_step__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveStepAfter\", function() { return __WEBPACK_IMPORTED_MODULE_30__src_curve_step__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"curveStepBefore\", function() { return __WEBPACK_IMPORTED_MODULE_30__src_curve_step__[\"c\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__src_stack__ = __webpack_require__(444);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stack\", function() { return __WEBPACK_IMPORTED_MODULE_31__src_stack__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__src_offset_expand__ = __webpack_require__(445);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetExpand\", function() { return __WEBPACK_IMPORTED_MODULE_32__src_offset_expand__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__src_offset_diverging__ = __webpack_require__(446);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetDiverging\", function() { return __WEBPACK_IMPORTED_MODULE_33__src_offset_diverging__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__src_offset_none__ = __webpack_require__(45);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetNone\", function() { return __WEBPACK_IMPORTED_MODULE_34__src_offset_none__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__src_offset_silhouette__ = __webpack_require__(447);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetSilhouette\", function() { return __WEBPACK_IMPORTED_MODULE_35__src_offset_silhouette__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__src_offset_wiggle__ = __webpack_require__(448);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetWiggle\", function() { return __WEBPACK_IMPORTED_MODULE_36__src_offset_wiggle__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__src_order_ascending__ = __webpack_require__(111);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOrderAscending\", function() { return __WEBPACK_IMPORTED_MODULE_37__src_order_ascending__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__src_order_descending__ = __webpack_require__(449);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOrderDescending\", function() { return __WEBPACK_IMPORTED_MODULE_38__src_order_descending__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__src_order_insideOut__ = __webpack_require__(450);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOrderInsideOut\", function() { return __WEBPACK_IMPORTED_MODULE_39__src_order_insideOut__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__src_order_none__ = __webpack_require__(46);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOrderNone\", function() { return __WEBPACK_IMPORTED_MODULE_40__src_order_none__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__src_order_reverse__ = __webpack_require__(451);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"stackOrderReverse\", function() { return __WEBPACK_IMPORTED_MODULE_41__src_order_reverse__[\"a\"]; });\n\n\n\n\n // Note: radialArea is deprecated!\n // Note: radialLine is deprecated!\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assignValue = __webpack_require__(90),\n copyObject = __webpack_require__(31),\n createAssigner = __webpack_require__(142),\n isArrayLike = __webpack_require__(17),\n isPrototype = __webpack_require__(57),\n keys = __webpack_require__(18);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return durationSecond; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return durationMinute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return durationHour; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return durationDay; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return durationWeek; });\nvar durationSecond = 1e3;\nvar durationMinute = 6e4;\nvar durationHour = 36e5;\nvar durationDay = 864e5;\nvar durationWeek = 6048e5;\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(29),\n getRawTag = __webpack_require__(244),\n objectToString = __webpack_require__(245);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isFunction = __webpack_require__(24),\n isLength = __webpack_require__(87);\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayLikeKeys = __webpack_require__(141),\n baseKeys = __webpack_require__(143),\n isArrayLike = __webpack_require__(17);\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Transition;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = transition;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = newId;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__attr__ = __webpack_require__(372);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__attrTween__ = __webpack_require__(373);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__delay__ = __webpack_require__(374);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__duration__ = __webpack_require__(375);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ease__ = __webpack_require__(376);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__filter__ = __webpack_require__(377);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__merge__ = __webpack_require__(378);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__on__ = __webpack_require__(379);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__remove__ = __webpack_require__(380);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__select__ = __webpack_require__(381);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__selectAll__ = __webpack_require__(382);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__selection__ = __webpack_require__(383);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__style__ = __webpack_require__(384);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__styleTween__ = __webpack_require__(385);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__text__ = __webpack_require__(386);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__transition__ = __webpack_require__(387);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__tween__ = __webpack_require__(70);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar id = 0;\n\nfunction Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nfunction transition(name) {\n return Object(__WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"selection\"])().transition(name);\n}\n\nfunction newId() {\n return ++id;\n}\n\nvar selection_prototype = __WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"selection\"].prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: __WEBPACK_IMPORTED_MODULE_10__select__[\"a\" /* default */],\n selectAll: __WEBPACK_IMPORTED_MODULE_11__selectAll__[\"a\" /* default */],\n filter: __WEBPACK_IMPORTED_MODULE_6__filter__[\"a\" /* default */],\n merge: __WEBPACK_IMPORTED_MODULE_7__merge__[\"a\" /* default */],\n selection: __WEBPACK_IMPORTED_MODULE_12__selection__[\"a\" /* default */],\n transition: __WEBPACK_IMPORTED_MODULE_16__transition__[\"a\" /* default */],\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: __WEBPACK_IMPORTED_MODULE_8__on__[\"a\" /* default */],\n attr: __WEBPACK_IMPORTED_MODULE_1__attr__[\"a\" /* default */],\n attrTween: __WEBPACK_IMPORTED_MODULE_2__attrTween__[\"a\" /* default */],\n style: __WEBPACK_IMPORTED_MODULE_13__style__[\"a\" /* default */],\n styleTween: __WEBPACK_IMPORTED_MODULE_14__styleTween__[\"a\" /* default */],\n text: __WEBPACK_IMPORTED_MODULE_15__text__[\"a\" /* default */],\n remove: __WEBPACK_IMPORTED_MODULE_9__remove__[\"a\" /* default */],\n tween: __WEBPACK_IMPORTED_MODULE_17__tween__[\"a\" /* default */],\n delay: __WEBPACK_IMPORTED_MODULE_3__delay__[\"a\" /* default */],\n duration: __WEBPACK_IMPORTED_MODULE_4__duration__[\"a\" /* default */],\n ease: __WEBPACK_IMPORTED_MODULE_5__ease__[\"a\" /* default */]\n};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _tooltip = __webpack_require__(209);\n\nvar _d3Dispatch = __webpack_require__(68);\n\nvar _d3Shape = __webpack_require__(13);\n\nvar _d3Selection = __webpack_require__(3);\n\nvar _configUtils = __webpack_require__(474);\n\nvar _utils = __webpack_require__(210);\n\nvar _colors = __webpack_require__(566);\n\nvar _axes = __webpack_require__(608);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\r\n * Abstract class used by all tracks\r\n**/\nvar Track = function () {\n function Track(instance, conf, defaultConf, data, dataParser) {\n _classCallCheck(this, Track);\n\n this.dispatch = (0, _d3Dispatch.dispatch)('mouseover', 'mouseout');\n this.parseData = dataParser;\n this.loadData(data, instance);\n this.conf = (0, _configUtils.getConf)(conf, defaultConf, this.meta, instance);\n this.conf.colorValue = (0, _colors.buildColorValue)(this.conf.color, this.conf.cmin, this.conf.cmax, this.conf.logScale, this.conf.logScaleBase);\n this.scale = (0, _utils.buildScale)(this.conf.cmin, this.conf.cmax, this.conf.outerRadius - this.conf.innerRadius, this.conf.logScale, this.conf.logScaleBase);\n }\n\n _createClass(Track, [{\n key: 'loadData',\n value: function loadData(data, instance) {\n var result = this.parseData(data, instance._layout.summary());\n this.data = result.data;\n this.meta = result.meta;\n }\n }, {\n key: 'render',\n value: function render(instance, parentElement, name) {\n var _this = this;\n\n parentElement.select('.' + name).remove();\n var track = parentElement.append('g').attr('class', name).attr('z-index', this.conf.zIndex);\n var datumContainer = this.renderBlock(track, this.data, instance._layout, this.conf);\n if (this.conf.axes && this.conf.axes.length > 0) {\n (0, _axes.renderAxes)(datumContainer, this.conf, instance, this.scale);\n }\n var selection = this.renderDatum(datumContainer, this.conf, instance._layout);\n if (this.conf.tooltipContent) {\n (0, _tooltip.registerTooltip)(this, instance, selection, this.conf);\n }\n selection.on('mouseover', function (d, i) {\n _this.dispatch.call('mouseover', _this, d);\n if (_this.conf.tooltipContent) {\n instance.clipboard.attr('value', _this.conf.tooltipContent(d));\n }\n });\n selection.on('mouseout', function (d, i) {\n _this.dispatch.call('mouseout', _this, d);\n });\n\n Object.keys(this.conf.events).forEach(function (eventName) {\n var conf = _this.conf;\n selection.on(eventName, function (d, i, nodes) {\n conf.events[eventName](d, i, nodes, _d3Selection.event);\n });\n });\n\n return this;\n }\n }, {\n key: 'renderBlock',\n value: function renderBlock(parentElement, data, layout, conf) {\n var _this2 = this;\n\n var block = parentElement.selectAll('.block').data(data).enter().append('g').attr('class', 'block').attr('transform', function (d) {\n return 'rotate(' + layout.blocks[d.key].start * 360 / (2 * Math.PI) + ')';\n });\n\n if (conf.backgrounds) {\n block.selectAll('.background').data(function (d) {\n return conf.backgrounds.map(function (background) {\n return {\n start: background.start || conf.cmin,\n end: background.end || conf.cmax,\n angle: layout.blocks[d.key].end - layout.blocks[d.key].start,\n color: background.color,\n opacity: background.opacity\n };\n });\n }).enter().append('path').attr('class', 'background').attr('fill', function (background) {\n return background.color;\n }).attr('opacity', function (background) {\n return background.opacity || 1;\n }).attr('d', (0, _d3Shape.arc)().innerRadius(function (background) {\n return conf.direction === 'in' ? conf.outerRadius - _this2.scale(background.start) : conf.innerRadius + _this2.scale(background.start);\n }).outerRadius(function (background) {\n return conf.direction === 'in' ? conf.outerRadius - _this2.scale(background.end) : conf.innerRadius + _this2.scale(background.end);\n }).startAngle(0).endAngle(function (d) {\n return d.angle;\n }));\n }\n\n return block;\n }\n }, {\n key: 'theta',\n value: function theta(position, block) {\n return position / block.len * (block.end - block.start);\n }\n }, {\n key: 'x',\n value: function x(d, layout, conf) {\n var height = this.scale(d.value);\n var r = conf.direction === 'in' ? conf.outerRadius - height : conf.innerRadius + height;\n\n var angle = this.theta(d.position, layout.blocks[d.block_id]) - Math.PI / 2;\n return r * Math.cos(angle);\n }\n }, {\n key: 'y',\n value: function y(d, layout, conf) {\n var height = this.scale(d.value);\n var r = conf.direction === 'in' ? conf.outerRadius - height : conf.innerRadius + height;\n\n var angle = this.theta(d.position, layout.blocks[d.block_id]) - Math.PI / 2;\n return r * Math.sin(angle);\n }\n }]);\n\n return Track;\n}();\n\nexports.default = Track;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseSpanValueData = parseSpanValueData;\nexports.parseSpanStringData = parseSpanStringData;\nexports.parsePositionValueData = parsePositionValueData;\nexports.parsePositionTextData = parsePositionTextData;\nexports.parseChordData = parseChordData;\n\nvar _keys = __webpack_require__(18);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _includes = __webpack_require__(613);\n\nvar _includes2 = _interopRequireDefault(_includes);\n\nvar _every = __webpack_require__(617);\n\nvar _every2 = _interopRequireDefault(_every);\n\nvar _map = __webpack_require__(144);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _d3Collection = __webpack_require__(227);\n\nvar _d3Array = __webpack_require__(10);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar logger = console;\n\nfunction checkParent(key, index, layoutSummary, header) {\n if (!(0, _includes2.default)((0, _keys2.default)(layoutSummary), key)) {\n logger.log(1, 'datum', 'unknown parent id', { line: index + 1, value: key, header: header, layoutSummary: layoutSummary });\n return false;\n }\n return true;\n}\n\nfunction checkNumber(keys, index) {\n return (0, _every2.default)(keys, function (value, header) {\n if (isNaN(value)) {\n logger.log(1, 'datum', 'not a number', { line: index + 1, value: value, header: header });\n return false;\n }\n return true;\n });\n}\n\nfunction normalize(data, idKeys) {\n var sampleKeys = (0, _keys2.default)(data[0]);\n var isObject = (0, _every2.default)((0, _map2.default)(idKeys, function (key) {\n return (0, _includes2.default)(sampleKeys, key);\n }));\n if (isObject) {\n return (0, _map2.default)(data, function (datum) {\n return (0, _map2.default)(idKeys, function (key) {\n return datum[key];\n });\n });\n }\n\n return data;\n}\n\nfunction buildOutput(data) {\n return {\n data: (0, _d3Collection.nest)().key(function (datum) {\n return datum.block_id;\n }).entries(data),\n meta: {\n min: (0, _d3Array.min)(data, function (d) {\n return d.value;\n }),\n max: (0, _d3Array.max)(data, function (d) {\n return d.value;\n })\n }\n };\n}\n\nfunction parseSpanValueData(data, layoutSummary) {\n // ['parent_id', 'start', 'end', 'value']\n if (data.length === 0) {\n return { data: [], meta: { min: null, max: null } };\n }\n\n var filteredData = data.filter(function (datum, index) {\n return checkParent(datum.block_id, index, layoutSummary, 'parent');\n });\n\n return buildOutput(filteredData);\n}\n\nfunction parseSpanStringData(data, layoutSummary) {\n // ['parent_id', 'start', 'end', 'value']\n\n if (data.length === 0) {\n return { data: [], meta: { min: null, max: null } };\n }\n\n var filteredData = data.filter(function (datum, index) {\n return checkParent(datum.block_id, index, layoutSummary, 'parent');\n }).filter(function (datum, index) {\n return checkNumber({ start: datum.start, end: datum.end }, index);\n }).filter(function (datum) {\n if (datum.start < 0 || datum.end > layoutSummary[datum.block_id]) {\n logger.log(2, 'position', 'position inconsistency', { datum: datum, layoutSummary: layoutSummary });\n return false;\n }\n return true;\n });\n\n return buildOutput(filteredData);\n}\n\nfunction parsePositionValueData(data, layoutSummary) {\n // ['parent_id', 'position', 'value']\n if (data.length === 0) {\n return { data: [], meta: { min: null, max: null } };\n }\n\n var filteredData = data.filter(function (datum, index) {\n return checkParent(datum.block_id, index, layoutSummary, 'parent');\n }).filter(function (datum, index) {\n return checkNumber({ position: datum.position, value: datum.value }, index);\n });\n\n return buildOutput(filteredData);\n}\n\nfunction parsePositionTextData(data, layoutSummary) {\n // ['parent_id', 'position', 'value']\n if (data.length === 0) {\n return { data: [], meta: { min: null, max: null } };\n }\n\n var filteredData = data.filter(function (datum, index) {\n return checkParent(datum.block_id, index, layoutSummary, 'parent');\n }).filter(function (datum, index) {\n return checkNumber({ position: datum.position }, index);\n });\n\n return buildOutput(filteredData);\n}\n\nfunction parseChordData(data, layoutSummary) {\n if (data.length === 0) {\n return { data: [], meta: { min: null, max: null } };\n }\n\n var formatedData = data.filter(function (datum, index) {\n if (datum.source) {\n return checkParent(datum.source.id, index, layoutSummary, 'sourceId');\n }\n logger.warn('No source for data at index ' + index);\n return false;\n }).filter(function (datum, index) {\n if (datum.target) {\n return checkParent(datum.target.id, index, layoutSummary, 'targetId');\n }\n logger.warn('No target for data at index ' + index);\n return false;\n }).filter(function (datum, index) {\n return checkNumber({\n sourceStart: datum.source.start,\n sourceEnd: datum.source.end,\n targetStart: datum.target.start,\n targetEnd: datum.target.end,\n value: datum.value || 1\n }, index);\n });\n\n return {\n data: formatedData,\n meta: {\n min: (0, _d3Array.min)(formatedData, function (d) {\n return d.value;\n }),\n max: (0, _d3Array.max)(formatedData, function (d) {\n return d.value;\n })\n }\n };\n}\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar axes = {\n axes: {\n value: [],\n iteratee: false\n },\n showAxesTooltip: {\n value: true,\n iteratee: false\n }\n};\n\nvar palette = {\n colorPaletteSize: {\n value: 9,\n iteratee: false\n },\n colorPalette: {\n value: 'YlGnBu',\n iteratee: false\n },\n usePalette: {\n value: true,\n iteratee: false\n },\n colorPaletteReverse: {\n value: true,\n iteratee: false\n }\n};\n\nvar radial = {\n innerRadius: {\n value: 0,\n iteratee: false\n },\n outerRadius: {\n value: 0,\n iteratee: false\n }\n};\n\nvar values = {\n min: {\n value: null,\n iteratee: false\n },\n max: {\n value: null,\n iteratee: false\n },\n logScale: {\n value: false,\n iteratee: false\n },\n logScaleBase: {\n value: Math.E,\n iteratee: false\n }\n};\n\nvar common = {\n zIndex: {\n value: false,\n iteratee: false\n },\n opacity: {\n value: 1,\n iteratee: true\n },\n tooltipContent: {\n value: null,\n iteratee: false\n },\n events: {\n value: {},\n iteratee: false\n }\n};\n\nexports.axes = axes;\nexports.palette = palette;\nexports.radial = radial;\nexports.values = values;\nexports.common = common;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsNative = __webpack_require__(243),\n getValue = __webpack_require__(248);\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(16),\n isObject = __webpack_require__(7);\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function constant() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\n/**\n * The default argument placeholder value for methods.\n *\n * @type {Object}\n */\nmodule.exports = {};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return map; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return slice; });\nvar array = Array.prototype;\n\nvar map = array.map;\nvar slice = array.slice;\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(5);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports) {\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assignValue = __webpack_require__(90),\n baseAssignValue = __webpack_require__(83);\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayEach = __webpack_require__(64),\n baseEach = __webpack_require__(39),\n castFunction = __webpack_require__(286),\n isArray = __webpack_require__(2);\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseMatches = __webpack_require__(287),\n baseMatchesProperty = __webpack_require__(303),\n identity = __webpack_require__(28),\n isArray = __webpack_require__(2),\n property = __webpack_require__(311);\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(16),\n isObjectLike = __webpack_require__(6);\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_path__ = __webpack_require__(428);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_path__[\"a\"]; });\n\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n});\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseConvert = __webpack_require__(476),\n util = __webpack_require__(478);\n\n/**\n * Converts `func` of `name` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied. If `name` is an object its methods\n * will be converted.\n *\n * @param {string} name The name of the function to wrap.\n * @param {Function} [func] The function to wrap.\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction convert(name, func, options) {\n return baseConvert(util, name, func, options);\n}\n\nmodule.exports = convert;\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseForOwn = __webpack_require__(283),\n createBaseEach = __webpack_require__(285);\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DataView = __webpack_require__(299),\n Map = __webpack_require__(81),\n Promise = __webpack_require__(300),\n Set = __webpack_require__(301),\n WeakMap = __webpack_require__(151),\n baseGetTag = __webpack_require__(16),\n toSource = __webpack_require__(129);\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isSymbol = __webpack_require__(34);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = hue;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = gamma;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = nogamma;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constant__ = __webpack_require__(170);\n\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nfunction hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(isNaN(a) ? b : a);\n };\n}\n\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(isNaN(a) ? b : a);\n}\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return abs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return atan2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return cos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return max; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return min; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return sin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return sqrt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return epsilon; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return pi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return halfPi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return tau; });\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = acos;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = asin;\nvar abs = Math.abs;\nvar atan2 = Math.atan2;\nvar cos = Math.cos;\nvar max = Math.max;\nvar min = Math.min;\nvar sin = Math.sin;\nvar sqrt = Math.sqrt;\n\nvar epsilon = 1e-12;\nvar pi = Math.PI;\nvar halfPi = pi / 2;\nvar tau = 2 * pi;\n\nfunction acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nfunction asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n});\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n});\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return x === null ? NaN : +x;\n});\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = linearish;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = linear;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__continuous__ = __webpack_require__(76);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__tickFormat__ = __webpack_require__(527);\n\n\n\n\n\nfunction linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return Object(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"ticks\"])(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n return Object(__WEBPACK_IMPORTED_MODULE_3__tickFormat__[\"a\" /* default */])(domain(), count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = Object(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"tickIncrement\"])(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = Object(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"tickIncrement\"])(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = Object(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"tickIncrement\"])(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nfunction linear() {\n var scale = Object(__WEBPACK_IMPORTED_MODULE_2__continuous__[\"b\" /* default */])(__WEBPACK_IMPORTED_MODULE_2__continuous__[\"c\" /* deinterpolateLinear */], __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"c\" /* interpolateNumber */]);\n\n scale.copy = function() {\n return Object(__WEBPACK_IMPORTED_MODULE_2__continuous__[\"a\" /* copy */])(scale, linear());\n };\n\n return linearish(scale);\n}\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(s) {\n return s.match(/.{6}/g).map(function(x) {\n return \"#\" + x;\n });\n});\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports) {\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ListCache = __webpack_require__(52),\n stackClear = __webpack_require__(255),\n stackDelete = __webpack_require__(256),\n stackGet = __webpack_require__(257),\n stackHas = __webpack_require__(258),\n stackSet = __webpack_require__(259);\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar listCacheClear = __webpack_require__(250),\n listCacheDelete = __webpack_require__(251),\n listCacheGet = __webpack_require__(252),\n listCacheHas = __webpack_require__(253),\n listCacheSet = __webpack_require__(254);\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar eq = __webpack_require__(38);\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(23);\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isKeyable = __webpack_require__(268);\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsArguments = __webpack_require__(274),\n isObjectLike = __webpack_require__(6);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(5),\n stubFalse = __webpack_require__(276);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(84)(module)))\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayLikeKeys = __webpack_require__(141),\n baseKeysIn = __webpack_require__(280),\n isArrayLike = __webpack_require__(17);\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports) {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar eq = __webpack_require__(38),\n isArrayLike = __webpack_require__(17),\n isIndex = __webpack_require__(62),\n isObject = __webpack_require__(7);\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports) {\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__namespace__ = __webpack_require__(93);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__namespaces__ = __webpack_require__(94);\n\n\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === __WEBPACK_IMPORTED_MODULE_1__namespaces__[\"b\" /* xhtml */] && document.documentElement.namespaceURI === __WEBPACK_IMPORTED_MODULE_1__namespaces__[\"b\" /* xhtml */]\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name) {\n var fullname = Object(__WEBPACK_IMPORTED_MODULE_0__namespace__[\"a\" /* default */])(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n});\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n});\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_dispatch__ = __webpack_require__(350);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_dispatch__[\"a\"]; });\n\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n});\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = tweenValue;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__schedule__ = __webpack_require__(12);\n\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"h\" /* set */])(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"h\" /* set */])(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"f\" /* get */])(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n});\n\nfunction tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"h\" /* set */])(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"f\" /* get */])(node, id).value[name];\n };\n}\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new Linear(context);\n});\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {});\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = point;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Basis;\nfunction point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nfunction Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (function(context) {\n return new Basis(context);\n});\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = point;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Cardinal;\nfunction point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nfunction Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"b\"] = ((function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0));\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseCreate = __webpack_require__(56),\n isObject = __webpack_require__(7);\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nmodule.exports = createCtor;\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = deinterpolateLinear;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = copy;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = continuous;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__array__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constant__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__number__ = __webpack_require__(228);\n\n\n\n\n\n\nvar unit = [0, 1];\n\nfunction deinterpolateLinear(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : Object(__WEBPACK_IMPORTED_MODULE_3__constant__[\"a\" /* default */])(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n return function(a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function(a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = Object(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"bisect\"])(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nfunction copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp());\n}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nfunction continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate = __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"a\" /* interpolate */],\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);\n }\n\n scale.invert = function(y) {\n return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = __WEBPACK_IMPORTED_MODULE_2__array__[\"a\" /* map */].call(_, __WEBPACK_IMPORTED_MODULE_4__number__[\"a\" /* default */]), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_2__array__[\"b\" /* slice */].call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = __WEBPACK_IMPORTED_MODULE_2__array__[\"b\" /* slice */].call(_), interpolate = __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"f\" /* interpolateRound */], rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n return rescale();\n}\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDecimal__ = __webpack_require__(122);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return x = Object(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__[\"a\" /* default */])(Math.abs(x)), x ? x[1] : NaN;\n});\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar identity = __webpack_require__(28),\n overRest = __webpack_require__(126),\n setToString = __webpack_require__(79);\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseSetToString = __webpack_require__(241),\n shortOut = __webpack_require__(130);\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(23),\n root = __webpack_require__(5);\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar mapCacheClear = __webpack_require__(260),\n mapCacheDelete = __webpack_require__(267),\n mapCacheGet = __webpack_require__(269),\n mapCacheHas = __webpack_require__(270),\n mapCacheSet = __webpack_require__(271);\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(127);\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Uint8Array = __webpack_require__(136);\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar overArg = __webpack_require__(138);\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsTypedArray = __webpack_require__(277),\n baseUnary = __webpack_require__(60),\n nodeUtil = __webpack_require__(89);\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(128);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(84)(module)))\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseAssignValue = __webpack_require__(83),\n eq = __webpack_require__(38);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayFilter = __webpack_require__(149),\n stubArray = __webpack_require__(150);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArray = __webpack_require__(2),\n isSymbol = __webpack_require__(34);\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__namespaces__ = __webpack_require__(94);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return __WEBPACK_IMPORTED_MODULE_0__namespaces__[\"a\" /* default */].hasOwnProperty(prefix) ? {space: __WEBPACK_IMPORTED_MODULE_0__namespaces__[\"a\" /* default */][prefix], local: name} : name;\n});\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return xhtml; });\nvar xhtml = \"http://www.w3.org/1999/xhtml\";\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n});\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction none() {}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n});\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n});\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return event; });\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = customEvent;\nvar filterEvents = {};\n\nvar event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n});\n\nfunction customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__selection_on__ = __webpack_require__(97);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var current = __WEBPACK_IMPORTED_MODULE_0__selection_on__[\"c\" /* event */], source;\n while (source = current.sourceEvent) current = source;\n return current;\n});\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__rgb__ = __webpack_require__(168);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__array__ = __webpack_require__(171);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__date__ = __webpack_require__(172);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__number__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__object__ = __webpack_require__(173);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__string__ = __webpack_require__(174);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__constant__ = __webpack_require__(170);\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? Object(__WEBPACK_IMPORTED_MODULE_7__constant__[\"a\" /* default */])(b)\n : (t === \"number\" ? __WEBPACK_IMPORTED_MODULE_4__number__[\"a\" /* default */]\n : t === \"string\" ? ((c = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"a\" /* color */])(b)) ? (b = c, __WEBPACK_IMPORTED_MODULE_1__rgb__[\"a\" /* default */]) : __WEBPACK_IMPORTED_MODULE_6__string__[\"a\" /* default */])\n : b instanceof __WEBPACK_IMPORTED_MODULE_0_d3_color__[\"a\" /* color */] ? __WEBPACK_IMPORTED_MODULE_1__rgb__[\"a\" /* default */]\n : b instanceof Date ? __WEBPACK_IMPORTED_MODULE_3__date__[\"a\" /* default */]\n : Array.isArray(b) ? __WEBPACK_IMPORTED_MODULE_2__array__[\"a\" /* default */]\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? __WEBPACK_IMPORTED_MODULE_5__object__[\"a\" /* default */]\n : __WEBPACK_IMPORTED_MODULE_4__number__[\"a\" /* default */])(a, b);\n});\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Color;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return darker; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return brighter; });\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = color;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = rgbConvert;\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = rgb;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = Rgb;\n/* unused harmony export hslConvert */\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = hsl;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__define__ = __webpack_require__(101);\n\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex3 = /^#([0-9a-f]{3})$/,\n reHex6 = /^#([0-9a-f]{6})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\nObject(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nfunction color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Rgb, rgb, Object(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (0 <= this.r && this.r <= 255)\n && (0 <= this.g && this.g <= 255)\n && (0 <= this.b && this.b <= 255)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Hsl, hsl, Object(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = extend;\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n});\n\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = basis;\nfunction basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n});\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = now;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Timer;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = timer;\n/* unused harmony export timerFlush */\nvar frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Stack = __webpack_require__(51),\n arrayEach = __webpack_require__(64),\n assignValue = __webpack_require__(90),\n baseAssign = __webpack_require__(181),\n baseAssignIn = __webpack_require__(404),\n cloneBuffer = __webpack_require__(134),\n copyArray = __webpack_require__(30),\n copySymbols = __webpack_require__(405),\n copySymbolsIn = __webpack_require__(406),\n getAllKeys = __webpack_require__(147),\n getAllKeysIn = __webpack_require__(407),\n getTag = __webpack_require__(41),\n initCloneArray = __webpack_require__(408),\n initCloneByTag = __webpack_require__(409),\n initCloneObject = __webpack_require__(137),\n isArray = __webpack_require__(2),\n isBuffer = __webpack_require__(59),\n isMap = __webpack_require__(413),\n isObject = __webpack_require__(7),\n isSet = __webpack_require__(415),\n keys = __webpack_require__(18);\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n\n return result;\n }\n\n if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n\n return result;\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayReduce = __webpack_require__(417),\n baseEach = __webpack_require__(39),\n baseIteratee = __webpack_require__(33),\n baseReduce = __webpack_require__(418),\n isArray = __webpack_require__(2);\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nmodule.exports = reduce;\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseFlatten = __webpack_require__(107),\n baseOrderBy = __webpack_require__(422),\n baseRest = __webpack_require__(78),\n isIterateeCall = __webpack_require__(63);\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayPush = __webpack_require__(65),\n isFlattenable = __webpack_require__(421);\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constant__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__curve_linear__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__point__ = __webpack_require__(109);\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var x = __WEBPACK_IMPORTED_MODULE_3__point__[\"a\" /* x */],\n y = __WEBPACK_IMPORTED_MODULE_3__point__[\"b\" /* y */],\n defined = Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(true),\n context = null,\n curve = __WEBPACK_IMPORTED_MODULE_2__curve_linear__[\"a\" /* default */],\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = Object(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n});\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = x;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = y;\nfunction x(p) {\n return p[0];\n}\n\nfunction y(p) {\n return p[1];\n}\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = point;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__math__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__cardinal__ = __webpack_require__(74);\n\n\n\nfunction point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > __WEBPACK_IMPORTED_MODULE_0__math__[\"f\" /* epsilon */]) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > __WEBPACK_IMPORTED_MODULE_0__math__[\"f\" /* epsilon */]) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ((function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new __WEBPACK_IMPORTED_MODULE_1__cardinal__[\"a\" /* Cardinal */](context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5));\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = sum;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(46);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series) {\n var sums = series.map(sum);\n return Object(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series).sort(function(a, b) { return sums[a] - sums[b]; });\n});\n\nfunction sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(47);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, p, valueof) {\n if (valueof == null) valueof = __WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */];\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n});\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseSetData = __webpack_require__(211),\n createBind = __webpack_require__(480),\n createCurry = __webpack_require__(481),\n createHybrid = __webpack_require__(213),\n createPartial = __webpack_require__(495),\n getData = __webpack_require__(116),\n mergeData = __webpack_require__(496),\n setData = __webpack_require__(219),\n setWrapToString = __webpack_require__(220),\n toInteger = __webpack_require__(119);\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nmodule.exports = createWrap;\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseCreate = __webpack_require__(56),\n baseLodash = __webpack_require__(115);\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nmodule.exports = LazyWrapper;\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nmodule.exports = baseLodash;\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar metaMap = __webpack_require__(212),\n noop = __webpack_require__(483);\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nmodule.exports = getData;\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseCreate = __webpack_require__(56),\n baseLodash = __webpack_require__(115);\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nmodule.exports = LodashWrapper;\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports) {\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nmodule.exports = replaceHolders;\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toFinite = __webpack_require__(223);\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return prefix; });\nvar prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (map);\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n});\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_interval__ = __webpack_require__(4);\n/* unused harmony reexport timeInterval */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_millisecond__ = __webpack_require__(542);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_millisecond__[\"a\"]; });\n/* unused harmony reexport timeMilliseconds */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_millisecond__[\"a\"]; });\n/* unused harmony reexport utcMilliseconds */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_second__ = __webpack_require__(543);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_second__[\"a\"]; });\n/* unused harmony reexport timeSeconds */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_second__[\"a\"]; });\n/* unused harmony reexport utcSeconds */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_minute__ = __webpack_require__(544);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_3__src_minute__[\"a\"]; });\n/* unused harmony reexport timeMinutes */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_hour__ = __webpack_require__(545);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_4__src_hour__[\"a\"]; });\n/* unused harmony reexport timeHours */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_day__ = __webpack_require__(546);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_day__[\"a\"]; });\n/* unused harmony reexport timeDays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_week__ = __webpack_require__(547);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return __WEBPACK_IMPORTED_MODULE_6__src_week__[\"b\"]; });\n/* unused harmony reexport timeWeeks */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return __WEBPACK_IMPORTED_MODULE_6__src_week__[\"b\"]; });\n/* unused harmony reexport timeSundays */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_6__src_week__[\"a\"]; });\n/* unused harmony reexport timeMondays */\n/* unused harmony reexport timeTuesday */\n/* unused harmony reexport timeTuesdays */\n/* unused harmony reexport timeWednesday */\n/* unused harmony reexport timeWednesdays */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return __WEBPACK_IMPORTED_MODULE_6__src_week__[\"c\"]; });\n/* unused harmony reexport timeThursdays */\n/* unused harmony reexport timeFriday */\n/* unused harmony reexport timeFridays */\n/* unused harmony reexport timeSaturday */\n/* unused harmony reexport timeSaturdays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_month__ = __webpack_require__(548);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_7__src_month__[\"a\"]; });\n/* unused harmony reexport timeMonths */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_year__ = __webpack_require__(549);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return __WEBPACK_IMPORTED_MODULE_8__src_year__[\"a\"]; });\n/* unused harmony reexport timeYears */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_utcMinute__ = __webpack_require__(550);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return __WEBPACK_IMPORTED_MODULE_9__src_utcMinute__[\"a\"]; });\n/* unused harmony reexport utcMinutes */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_utcHour__ = __webpack_require__(551);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return __WEBPACK_IMPORTED_MODULE_10__src_utcHour__[\"a\"]; });\n/* unused harmony reexport utcHours */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_utcDay__ = __webpack_require__(552);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return __WEBPACK_IMPORTED_MODULE_11__src_utcDay__[\"a\"]; });\n/* unused harmony reexport utcDays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_utcWeek__ = __webpack_require__(553);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"u\", function() { return __WEBPACK_IMPORTED_MODULE_12__src_utcWeek__[\"b\"]; });\n/* unused harmony reexport utcWeeks */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"s\", function() { return __WEBPACK_IMPORTED_MODULE_12__src_utcWeek__[\"b\"]; });\n/* unused harmony reexport utcSundays */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return __WEBPACK_IMPORTED_MODULE_12__src_utcWeek__[\"a\"]; });\n/* unused harmony reexport utcMondays */\n/* unused harmony reexport utcTuesday */\n/* unused harmony reexport utcTuesdays */\n/* unused harmony reexport utcWednesday */\n/* unused harmony reexport utcWednesdays */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return __WEBPACK_IMPORTED_MODULE_12__src_utcWeek__[\"c\"]; });\n/* unused harmony reexport utcThursdays */\n/* unused harmony reexport utcFriday */\n/* unused harmony reexport utcFridays */\n/* unused harmony reexport utcSaturday */\n/* unused harmony reexport utcSaturdays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_utcMonth__ = __webpack_require__(554);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return __WEBPACK_IMPORTED_MODULE_13__src_utcMonth__[\"a\"]; });\n/* unused harmony reexport utcMonths */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_utcYear__ = __webpack_require__(555);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"v\", function() { return __WEBPACK_IMPORTED_MODULE_14__src_utcYear__[\"a\"]; });\n/* unused harmony reexport utcYears */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return timeFormat; });\n/* unused harmony export timeParse */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return utcFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return utcParse; });\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale__ = __webpack_require__(237);\n\n\nvar locale;\nvar timeFormat;\nvar timeParse;\nvar utcFormat;\nvar utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nfunction defaultLocale(definition) {\n locale = Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* default */])(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar apply = __webpack_require__(50),\n baseRest = __webpack_require__(78),\n customDefaultsMerge = __webpack_require__(249),\n mergeWith = __webpack_require__(282);\n\n/**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\nvar defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n});\n\nmodule.exports = defaultsDeep;\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar apply = __webpack_require__(50);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(23);\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(80)))\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports) {\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Stack = __webpack_require__(51),\n assignMergeValue = __webpack_require__(132),\n baseFor = __webpack_require__(133),\n baseMergeDeep = __webpack_require__(273),\n isObject = __webpack_require__(7),\n keysIn = __webpack_require__(61),\n safeGet = __webpack_require__(140);\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n if (isObject(srcValue)) {\n stack || (stack = new Stack);\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseAssignValue = __webpack_require__(83),\n eq = __webpack_require__(38);\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createBaseFor = __webpack_require__(272);\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(5);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(84)(module)))\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar cloneArrayBuffer = __webpack_require__(85);\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(5);\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseCreate = __webpack_require__(56),\n getPrototype = __webpack_require__(86),\n isPrototype = __webpack_require__(57);\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports) {\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(16),\n getPrototype = __webpack_require__(86),\n isObjectLike = __webpack_require__(6);\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports) {\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseTimes = __webpack_require__(279),\n isArguments = __webpack_require__(58),\n isArray = __webpack_require__(2),\n isBuffer = __webpack_require__(59),\n isIndex = __webpack_require__(62),\n isTypedArray = __webpack_require__(88);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseRest = __webpack_require__(78),\n isIterateeCall = __webpack_require__(63);\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isPrototype = __webpack_require__(57),\n nativeKeys = __webpack_require__(284);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayMap = __webpack_require__(40),\n baseIteratee = __webpack_require__(33),\n baseMap = __webpack_require__(158),\n isArray = __webpack_require__(2);\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsEqualDeep = __webpack_require__(289),\n isObjectLike = __webpack_require__(6);\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar SetCache = __webpack_require__(290),\n arraySome = __webpack_require__(293),\n cacheHas = __webpack_require__(294);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetAllKeys = __webpack_require__(148),\n getSymbols = __webpack_require__(91),\n keys = __webpack_require__(18);\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayPush = __webpack_require__(65),\n isArray = __webpack_require__(2);\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(23),\n root = __webpack_require__(5);\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar castPath = __webpack_require__(155),\n toKey = __webpack_require__(42);\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArray = __webpack_require__(2),\n isKey = __webpack_require__(92),\n stringToPath = __webpack_require__(156),\n toString = __webpack_require__(157);\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar memoizeCapped = __webpack_require__(305);\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseToString = __webpack_require__(307);\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseEach = __webpack_require__(39),\n isArrayLike = __webpack_require__(17);\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n\n\n/***/ }),\n/* 159 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__selection_index__ = __webpack_require__(11);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(selector) {\n return typeof selector === \"string\"\n ? new __WEBPACK_IMPORTED_MODULE_0__selection_index__[\"a\" /* Selection */]([[document.querySelector(selector)]], [document.documentElement])\n : new __WEBPACK_IMPORTED_MODULE_0__selection_index__[\"a\" /* Selection */]([[selector]], __WEBPACK_IMPORTED_MODULE_0__selection_index__[\"c\" /* root */]);\n});\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction empty() {\n return [];\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n});\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar matcher = function(selector) {\n return function() {\n return this.matches(selector);\n };\n};\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!element.matches) {\n var vendorMatches = element.webkitMatchesSelector\n || element.msMatchesSelector\n || element.mozMatchesSelector\n || element.oMatchesSelector;\n matcher = function(selector) {\n return function() {\n return vendorMatches.call(this, selector);\n };\n };\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (matcher);\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = EnterNode;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sparse__ = __webpack_require__(163);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__index__ = __webpack_require__(11);\n\n\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (function() {\n return new __WEBPACK_IMPORTED_MODULE_1__index__[\"a\" /* Selection */](this._enter || this._groups.map(__WEBPACK_IMPORTED_MODULE_0__sparse__[\"a\" /* default */]), this._parents);\n});\n\nfunction EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(update) {\n return new Array(update.length);\n});\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = styleValue;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__window__ = __webpack_require__(96);\n\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n});\n\nfunction styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || Object(__WEBPACK_IMPORTED_MODULE_0__window__[\"a\" /* default */])(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = yesdrag;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__noevent__ = __webpack_require__(166);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(view) {\n var root = view.document.documentElement,\n selection = Object(__WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"select\"])(view).on(\"dragstart.drag\", __WEBPACK_IMPORTED_MODULE_1__noevent__[\"a\" /* default */], true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", __WEBPACK_IMPORTED_MODULE_1__noevent__[\"a\" /* default */], true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n});\n\nfunction yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = Object(__WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"select\"])(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", __WEBPACK_IMPORTED_MODULE_1__noevent__[\"a\" /* default */], true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = nopropagation;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n\n\nfunction nopropagation() {\n __WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"event\"].stopImmediatePropagation();\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n __WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"event\"].preventDefault();\n __WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"event\"].stopImmediatePropagation();\n});\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return deg2rad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return rad2deg; });\nvar deg2rad = Math.PI / 180;\nvar rad2deg = 180 / Math.PI;\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return rgbBasis; });\n/* unused harmony export rgbBasisClosed */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__basis__ = __webpack_require__(102);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__basisClosed__ = __webpack_require__(169);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__color__ = __webpack_require__(43);\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ((function rgbGamma(y) {\n var color = Object(__WEBPACK_IMPORTED_MODULE_3__color__[\"b\" /* gamma */])(y);\n\n function rgb(start, end) {\n var r = color((start = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"f\" /* rgb */])(start)).r, (end = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"f\" /* rgb */])(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = Object(__WEBPACK_IMPORTED_MODULE_3__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1));\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"f\" /* rgb */])(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nvar rgbBasis = rgbSpline(__WEBPACK_IMPORTED_MODULE_1__basis__[\"b\" /* default */]);\nvar rgbBasisClosed = rgbSpline(__WEBPACK_IMPORTED_MODULE_2__basisClosed__[\"a\" /* default */]);\n\n\n/***/ }),\n/* 169 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__basis__ = __webpack_require__(102);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return Object(__WEBPACK_IMPORTED_MODULE_0__basis__[\"a\" /* basis */])((t - i / n) * n, v0, v1, v2, v3);\n };\n});\n\n\n/***/ }),\n/* 170 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 171 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__value__ = __webpack_require__(99);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = Object(__WEBPACK_IMPORTED_MODULE_0__value__[\"a\" /* default */])(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n});\n\n\n/***/ }),\n/* 172 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n});\n\n\n/***/ }),\n/* 173 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__value__ = __webpack_require__(99);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = Object(__WEBPACK_IMPORTED_MODULE_0__value__[\"a\" /* default */])(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n});\n\n\n/***/ }),\n/* 174 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(69);\n\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n});\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_selection_index__ = __webpack_require__(367);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_transition_index__ = __webpack_require__(19);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"transition\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_transition_index__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_active__ = __webpack_require__(399);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"active\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_active__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_interrupt__ = __webpack_require__(176);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"interrupt\", function() { return __WEBPACK_IMPORTED_MODULE_3__src_interrupt__[\"a\"]; });\n\n\n\n\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transition_schedule__ = __webpack_require__(12);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > __WEBPACK_IMPORTED_MODULE_0__transition_schedule__[\"d\" /* STARTING */] && schedule.state < __WEBPACK_IMPORTED_MODULE_0__transition_schedule__[\"b\" /* ENDING */];\n schedule.state = __WEBPACK_IMPORTED_MODULE_0__transition_schedule__[\"a\" /* ENDED */];\n schedule.timer.stop();\n if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n});\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_timer__ = __webpack_require__(103);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_timer__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_timer__[\"c\"]; });\n/* unused harmony reexport timerFlush */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_timeout__ = __webpack_require__(369);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_timeout__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_interval__ = __webpack_require__(370);\n/* unused harmony reexport interval */\n\n\n\n\n\n\n\n/***/ }),\n/* 178 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(8);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var c;\n return (typeof b === \"number\" ? __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"c\" /* interpolateNumber */]\n : b instanceof __WEBPACK_IMPORTED_MODULE_0_d3_color__[\"a\" /* color */] ? __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"d\" /* interpolateRgb */]\n : (c = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"a\" /* color */])(b)) ? (b = c, __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"d\" /* interpolateRgb */])\n : __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"g\" /* interpolateString */])(a, b);\n});\n\n\n/***/ }),\n/* 179 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Transform;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return identity; });\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = transform;\nfunction Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nvar identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nfunction transform(node) {\n return node.__zoom || identity;\n}\n\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseClone = __webpack_require__(104);\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(31),\n keys = __webpack_require__(18);\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayPush = __webpack_require__(65),\n getPrototype = __webpack_require__(86),\n getSymbols = __webpack_require__(91),\n stubArray = __webpack_require__(150);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constant__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__curve_linear__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__line__ = __webpack_require__(108);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__point__ = __webpack_require__(109);\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var x0 = __WEBPACK_IMPORTED_MODULE_4__point__[\"a\" /* x */],\n x1 = null,\n y0 = Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(0),\n y1 = __WEBPACK_IMPORTED_MODULE_4__point__[\"b\" /* y */],\n defined = Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(true),\n context = null,\n curve = __WEBPACK_IMPORTED_MODULE_2__curve_linear__[\"a\" /* default */],\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = Object(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return Object(__WEBPACK_IMPORTED_MODULE_3__line__[\"a\" /* default */])().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n});\n\n\n/***/ }),\n/* 184 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return curveRadialLinear; });\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = curveRadial;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__linear__ = __webpack_require__(71);\n\n\nvar curveRadialLinear = curveRadial(__WEBPACK_IMPORTED_MODULE_0__linear__[\"a\" /* default */]);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nfunction curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n\n\n/***/ }),\n/* 185 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = lineRadial;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__curve_radial__ = __webpack_require__(184);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__line__ = __webpack_require__(108);\n\n\n\nfunction lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(Object(__WEBPACK_IMPORTED_MODULE_0__curve_radial__[\"b\" /* default */])(_)) : c()._curve;\n };\n\n return l;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return lineRadial(Object(__WEBPACK_IMPORTED_MODULE_1__line__[\"a\" /* default */])().curve(__WEBPACK_IMPORTED_MODULE_0__curve_radial__[\"a\" /* curveRadialLinear */]));\n});\n\n\n/***/ }),\n/* 186 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n});\n\n\n/***/ }),\n/* 187 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return slice; });\nvar slice = Array.prototype.slice;\n\n\n/***/ }),\n/* 188 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__math__ = __webpack_require__(44);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var r = Math.sqrt(size / __WEBPACK_IMPORTED_MODULE_0__math__[\"j\" /* pi */]);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, __WEBPACK_IMPORTED_MODULE_0__math__[\"m\" /* tau */]);\n }\n});\n\n\n/***/ }),\n/* 189 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 190 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 191 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__math__ = __webpack_require__(44);\n\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(__WEBPACK_IMPORTED_MODULE_0__math__[\"j\" /* pi */] / 10) / Math.sin(7 * __WEBPACK_IMPORTED_MODULE_0__math__[\"j\" /* pi */] / 10),\n kx = Math.sin(__WEBPACK_IMPORTED_MODULE_0__math__[\"m\" /* tau */] / 10) * kr,\n ky = -Math.cos(__WEBPACK_IMPORTED_MODULE_0__math__[\"m\" /* tau */] / 10) * kr;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = __WEBPACK_IMPORTED_MODULE_0__math__[\"m\" /* tau */] * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 192 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n});\n\n\n/***/ }),\n/* 193 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar sqrt3 = Math.sqrt(3);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 194 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 195 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = CardinalClosed;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__noop__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__cardinal__ = __webpack_require__(74);\n\n\n\nfunction CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n areaEnd: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: Object(__WEBPACK_IMPORTED_MODULE_1__cardinal__[\"c\" /* point */])(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"b\"] = ((function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0));\n\n\n/***/ }),\n/* 196 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = CardinalOpen;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cardinal__ = __webpack_require__(74);\n\n\nfunction CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: Object(__WEBPACK_IMPORTED_MODULE_0__cardinal__[\"c\" /* point */])(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"b\"] = ((function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0));\n\n\n/***/ }),\n/* 197 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return bisectRight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return bisectLeft; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bisector__ = __webpack_require__(198);\n\n\n\nvar ascendingBisect = Object(__WEBPACK_IMPORTED_MODULE_1__bisector__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_0__ascending__[\"a\" /* default */]);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n/* harmony default export */ __webpack_exports__[\"c\"] = (bisectRight);\n\n\n/***/ }),\n/* 198 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(36);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n});\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return Object(__WEBPACK_IMPORTED_MODULE_0__ascending__[\"a\" /* default */])(f(d), x);\n };\n}\n\n\n/***/ }),\n/* 199 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = pair;\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n});\n\nfunction pair(a, b) {\n return [a, b];\n}\n\n\n/***/ }),\n/* 200 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__variance__ = __webpack_require__(201);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(array, f) {\n var v = Object(__WEBPACK_IMPORTED_MODULE_0__variance__[\"a\" /* default */])(array, f);\n return v ? Math.sqrt(v) : v;\n});\n\n\n/***/ }),\n/* 201 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(47);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n});\n\n\n/***/ }),\n/* 202 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n});\n\n\n/***/ }),\n/* 203 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return slice; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return map; });\nvar array = Array.prototype;\n\nvar slice = array.slice;\nvar map = array.map;\n\n\n/***/ }),\n/* 204 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n});\n\n\n/***/ }),\n/* 205 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = tickIncrement;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = tickStep;\nvar e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n});\n\nfunction tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\n\n/***/ }),\n/* 206 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n});\n\n\n/***/ }),\n/* 207 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n});\n\n\n/***/ }),\n/* 208 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__min__ = __webpack_require__(207);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = Object(__WEBPACK_IMPORTED_MODULE_0__min__[\"a\" /* default */])(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n});\n\nfunction length(d) {\n return d.length;\n}\n\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.registerTooltip = registerTooltip;\n\nvar _d3Selection = __webpack_require__(3);\n\n__webpack_require__(175);\n\n__webpack_require__(469);\n\nfunction registerTooltip(track, instance, element, trackParams) {\n track.dispatch.on('mouseover', function (d) {\n instance.tip.html(trackParams.tooltipContent(d)).transition().style('opacity', 0.9).style('left', _d3Selection.event.pageX + 'px').style('top', _d3Selection.event.pageY - 28 + 'px');\n });\n\n track.dispatch.on('mouseout', function (d) {\n instance.tip.transition().duration(500).style('opacity', 0);\n });\n}\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.smartBorders = smartBorders;\nexports.computeMinMax = computeMinMax;\nexports.buildScale = buildScale;\n\nvar _sortBy = __webpack_require__(475);\n\nvar _sortBy2 = _interopRequireDefault(_sortBy);\n\nvar _flow = __webpack_require__(506);\n\nvar _flow2 = _interopRequireDefault(_flow);\n\nvar _concat = __webpack_require__(509);\n\nvar _concat2 = _interopRequireDefault(_concat);\n\nvar _filter = __webpack_require__(511);\n\nvar _filter2 = _interopRequireDefault(_filter);\n\nvar _first = __webpack_require__(514);\n\nvar _first2 = _interopRequireDefault(_first);\n\nvar _reverse = __webpack_require__(518);\n\nvar _reverse2 = _interopRequireDefault(_reverse);\n\nvar _d3Scale = __webpack_require__(225);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction smartBorders(conf, layout, tracks) {\n var width = conf.defaultTrackWidth || 30;\n\n var externalTrack = (0, _flow2.default)((0, _filter2.default)('conf.outerRadius'), (0, _sortBy2.default)('conf.outerRadius'), _reverse2.default, _first2.default)((0, _concat2.default)(tracks, layout));\n\n return {\n in: externalTrack.conf.outerRadius,\n out: externalTrack.conf.outerRadius + width\n };\n}\n\nfunction computeMinMax(conf, meta) {\n conf.cmin = conf.min === null ? meta.min : conf.min;\n conf.cmax = conf.max === null ? meta.max : conf.max;\n return conf;\n}\n\nfunction buildScale(min, max, height) {\n var logScale = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var logScaleBase = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : Math.E;\n\n if (logScale && min * max <= 0) {\n console.warn('As log(0) = -\\u221E, a log scale domain must be\\n strictly-positive or strictly-negative. logscale ignored');\n }\n var scale = logScale && min * max > 0 ? (0, _d3Scale.scaleLog)().base(logScaleBase) : (0, _d3Scale.scaleLinear)();\n\n return scale.domain([min, max]).range([0, height]).clamp(true);\n}\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar identity = __webpack_require__(28),\n metaMap = __webpack_require__(212);\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nmodule.exports = baseSetData;\n\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar WeakMap = __webpack_require__(151);\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nmodule.exports = metaMap;\n\n\n/***/ }),\n/* 213 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar composeArgs = __webpack_require__(214),\n composeArgsRight = __webpack_require__(215),\n countHolders = __webpack_require__(482),\n createCtor = __webpack_require__(75),\n createRecurry = __webpack_require__(216),\n getHolder = __webpack_require__(222),\n reorder = __webpack_require__(494),\n replaceHolders = __webpack_require__(118),\n root = __webpack_require__(5);\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nmodule.exports = createHybrid;\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports) {\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nmodule.exports = composeArgs;\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports) {\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nmodule.exports = composeArgsRight;\n\n\n/***/ }),\n/* 216 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isLaziable = __webpack_require__(217),\n setData = __webpack_require__(219),\n setWrapToString = __webpack_require__(220);\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nmodule.exports = createRecurry;\n\n\n/***/ }),\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar LazyWrapper = __webpack_require__(114),\n getData = __webpack_require__(116),\n getFuncName = __webpack_require__(218),\n lodash = __webpack_require__(485);\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nmodule.exports = isLaziable;\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar realNames = __webpack_require__(484);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nmodule.exports = getFuncName;\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseSetData = __webpack_require__(211),\n shortOut = __webpack_require__(130);\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nmodule.exports = setData;\n\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getWrapDetails = __webpack_require__(487),\n insertWrapDetails = __webpack_require__(488),\n setToString = __webpack_require__(79),\n updateWrapDetails = __webpack_require__(489);\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nmodule.exports = setWrapToString;\n\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseFindIndex = __webpack_require__(491),\n baseIsNaN = __webpack_require__(492),\n strictIndexOf = __webpack_require__(493);\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports) {\n\n/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nmodule.exports = getHolder;\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toNumber = __webpack_require__(497);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar flatten = __webpack_require__(504),\n overRest = __webpack_require__(126),\n setToString = __webpack_require__(79);\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n\n\n/***/ }),\n/* 225 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_band__ = __webpack_require__(520);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleBand\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_band__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scalePoint\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_band__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_identity__ = __webpack_require__(526);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleIdentity\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_identity__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_linear__ = __webpack_require__(48);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleLinear\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_linear__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_log__ = __webpack_require__(537);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleLog\", function() { return __WEBPACK_IMPORTED_MODULE_3__src_log__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_ordinal__ = __webpack_require__(226);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleOrdinal\", function() { return __WEBPACK_IMPORTED_MODULE_4__src_ordinal__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleImplicit\", function() { return __WEBPACK_IMPORTED_MODULE_4__src_ordinal__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_pow__ = __webpack_require__(538);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scalePow\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_pow__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSqrt\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_pow__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_quantile__ = __webpack_require__(539);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleQuantile\", function() { return __WEBPACK_IMPORTED_MODULE_6__src_quantile__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_quantize__ = __webpack_require__(540);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleQuantize\", function() { return __WEBPACK_IMPORTED_MODULE_7__src_quantize__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_threshold__ = __webpack_require__(541);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleThreshold\", function() { return __WEBPACK_IMPORTED_MODULE_8__src_threshold__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_time__ = __webpack_require__(235);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleTime\", function() { return __WEBPACK_IMPORTED_MODULE_9__src_time__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_utcTime__ = __webpack_require__(557);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleUtc\", function() { return __WEBPACK_IMPORTED_MODULE_10__src_utcTime__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_category10__ = __webpack_require__(558);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"schemeCategory10\", function() { return __WEBPACK_IMPORTED_MODULE_11__src_category10__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_category20b__ = __webpack_require__(559);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"schemeCategory20b\", function() { return __WEBPACK_IMPORTED_MODULE_12__src_category20b__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_category20c__ = __webpack_require__(560);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"schemeCategory20c\", function() { return __WEBPACK_IMPORTED_MODULE_13__src_category20c__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_category20__ = __webpack_require__(561);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"schemeCategory20\", function() { return __WEBPACK_IMPORTED_MODULE_14__src_category20__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__src_cubehelix__ = __webpack_require__(562);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateCubehelixDefault\", function() { return __WEBPACK_IMPORTED_MODULE_15__src_cubehelix__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__src_rainbow__ = __webpack_require__(563);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateRainbow\", function() { return __WEBPACK_IMPORTED_MODULE_16__src_rainbow__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateWarm\", function() { return __WEBPACK_IMPORTED_MODULE_16__src_rainbow__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateCool\", function() { return __WEBPACK_IMPORTED_MODULE_16__src_rainbow__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__src_viridis__ = __webpack_require__(564);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateViridis\", function() { return __WEBPACK_IMPORTED_MODULE_17__src_viridis__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateMagma\", function() { return __WEBPACK_IMPORTED_MODULE_17__src_viridis__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateInferno\", function() { return __WEBPACK_IMPORTED_MODULE_17__src_viridis__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolatePlasma\", function() { return __WEBPACK_IMPORTED_MODULE_17__src_viridis__[\"d\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__src_sequential__ = __webpack_require__(565);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSequential\", function() { return __WEBPACK_IMPORTED_MODULE_18__src_sequential__[\"a\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 226 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return implicit; });\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = ordinal;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_collection__ = __webpack_require__(227);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(27);\n\n\n\nvar implicit = {name: \"implicit\"};\n\nfunction ordinal(range) {\n var index = Object(__WEBPACK_IMPORTED_MODULE_0_d3_collection__[\"map\"])(),\n domain = [],\n unknown = implicit;\n\n range = range == null ? [] : __WEBPACK_IMPORTED_MODULE_1__array__[\"b\" /* slice */].call(range);\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = Object(__WEBPACK_IMPORTED_MODULE_0_d3_collection__[\"map\"])();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_1__array__[\"b\" /* slice */].call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return scale;\n}\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_nest__ = __webpack_require__(521);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"nest\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_nest__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_set__ = __webpack_require__(522);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_set__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_map__ = __webpack_require__(120);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_map__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_keys__ = __webpack_require__(523);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return __WEBPACK_IMPORTED_MODULE_3__src_keys__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_values__ = __webpack_require__(524);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return __WEBPACK_IMPORTED_MODULE_4__src_values__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_entries__ = __webpack_require__(525);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_entries__[\"a\"]; });\n\n\n\n\n\n\n\n\n/***/ }),\n/* 228 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return +x;\n});\n\n\n/***/ }),\n/* 229 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__ = __webpack_require__(528);\n/* unused harmony reexport formatDefaultLocale */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_locale__ = __webpack_require__(230);\n/* unused harmony reexport formatLocale */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_formatSpecifier__ = __webpack_require__(231);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_formatSpecifier__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_precisionFixed__ = __webpack_require__(534);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_3__src_precisionFixed__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_precisionPrefix__ = __webpack_require__(535);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_4__src_precisionPrefix__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_precisionRound__ = __webpack_require__(536);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_5__src_precisionRound__[\"a\"]; });\n\n\n\n\n\n\n\n\n/***/ }),\n/* 230 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exponent__ = __webpack_require__(77);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__formatGroup__ = __webpack_require__(529);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__formatNumerals__ = __webpack_require__(530);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__formatSpecifier__ = __webpack_require__(231);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__formatTypes__ = __webpack_require__(232);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__formatPrefixAuto__ = __webpack_require__(233);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__identity__ = __webpack_require__(533);\n\n\n\n\n\n\n\n\nvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(locale) {\n var group = locale.grouping && locale.thousands ? Object(__WEBPACK_IMPORTED_MODULE_1__formatGroup__[\"a\" /* default */])(locale.grouping, locale.thousands) : __WEBPACK_IMPORTED_MODULE_6__identity__[\"a\" /* default */],\n currency = locale.currency,\n decimal = locale.decimal,\n numerals = locale.numerals ? Object(__WEBPACK_IMPORTED_MODULE_2__formatNumerals__[\"a\" /* default */])(locale.numerals) : __WEBPACK_IMPORTED_MODULE_6__identity__[\"a\" /* default */],\n percent = locale.percent || \"%\";\n\n function newFormat(specifier) {\n specifier = Object(__WEBPACK_IMPORTED_MODULE_3__formatSpecifier__[\"a\" /* default */])(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n type = specifier.type;\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = __WEBPACK_IMPORTED_MODULE_4__formatTypes__[\"a\" /* default */][type],\n maybeSuffix = !type || /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision == null ? (type ? 6 : 12)\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = formatType(Math.abs(value), precision);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + __WEBPACK_IMPORTED_MODULE_5__formatPrefixAuto__[\"b\" /* prefixExponent */] / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = Object(__WEBPACK_IMPORTED_MODULE_3__formatSpecifier__[\"a\" /* default */])(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(Object(__WEBPACK_IMPORTED_MODULE_0__exponent__[\"a\" /* default */])(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n});\n\n\n/***/ }),\n/* 231 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = formatSpecifier;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatTypes__ = __webpack_require__(232);\n\n\n// [[fill]align][sign][symbol][0][width][,][.precision][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n return new FormatSpecifier(specifier);\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n\n var match,\n fill = match[1] || \" \",\n align = match[2] || \">\",\n sign = match[3] || \"-\",\n symbol = match[4] || \"\",\n zero = !!match[5],\n width = match[6] && +match[6],\n comma = !!match[7],\n precision = match[8] && +match[8].slice(1),\n type = match[9] || \"\";\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // Map invalid types to the default format.\n else if (!__WEBPACK_IMPORTED_MODULE_0__formatTypes__[\"a\" /* default */][type]) type = \"\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n this.fill = fill;\n this.align = align;\n this.sign = sign;\n this.symbol = symbol;\n this.zero = zero;\n this.width = width;\n this.comma = comma;\n this.precision = precision;\n this.type = type;\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + this.type;\n};\n\n\n/***/ }),\n/* 232 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDefault__ = __webpack_require__(531);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__formatPrefixAuto__ = __webpack_require__(233);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__formatRounded__ = __webpack_require__(532);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n \"\": __WEBPACK_IMPORTED_MODULE_0__formatDefault__[\"a\" /* default */],\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return Object(__WEBPACK_IMPORTED_MODULE_2__formatRounded__[\"a\" /* default */])(x * 100, p); },\n \"r\": __WEBPACK_IMPORTED_MODULE_2__formatRounded__[\"a\" /* default */],\n \"s\": __WEBPACK_IMPORTED_MODULE_1__formatPrefixAuto__[\"a\" /* default */],\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n});\n\n\n/***/ }),\n/* 233 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return prefixExponent; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDecimal__ = __webpack_require__(122);\n\n\nvar prefixExponent;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x, p) {\n var d = Object(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__[\"a\" /* default */])(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + Object(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__[\"a\" /* default */])(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n});\n\n\n/***/ }),\n/* 234 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n});\n\n\n/***/ }),\n/* 235 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = calendar;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3_time__ = __webpack_require__(123);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_d3_time_format__ = __webpack_require__(236);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__array__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__continuous__ = __webpack_require__(76);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nice__ = __webpack_require__(234);\n\n\n\n\n\n\n\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nfunction calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = Object(__WEBPACK_IMPORTED_MODULE_5__continuous__[\"b\" /* default */])(__WEBPACK_IMPORTED_MODULE_5__continuous__[\"c\" /* deinterpolateLinear */], __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"c\" /* interpolateNumber */]),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = Object(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"bisector\"])(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = Object(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"tickStep\"])(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(Object(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"tickStep\"])(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(__WEBPACK_IMPORTED_MODULE_4__array__[\"a\" /* map */].call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(Object(__WEBPACK_IMPORTED_MODULE_6__nice__[\"a\" /* default */])(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return Object(__WEBPACK_IMPORTED_MODULE_5__continuous__[\"a\" /* copy */])(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (function() {\n return calendar(__WEBPACK_IMPORTED_MODULE_2_d3_time__[\"k\" /* timeYear */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"f\" /* timeMonth */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"j\" /* timeWeek */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"a\" /* timeDay */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"b\" /* timeHour */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"d\" /* timeMinute */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"g\" /* timeSecond */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"c\" /* timeMillisecond */], __WEBPACK_IMPORTED_MODULE_3_d3_time_format__[\"a\" /* timeFormat */]).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n});\n\n\n/***/ }),\n/* 236 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__ = __webpack_require__(124);\n/* unused harmony reexport timeFormatDefaultLocale */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__[\"a\"]; });\n/* unused harmony reexport timeParse */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__[\"b\"]; });\n/* unused harmony reexport utcParse */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_locale__ = __webpack_require__(237);\n/* unused harmony reexport timeFormatLocale */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_isoFormat__ = __webpack_require__(238);\n/* unused harmony reexport isoFormat */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_isoParse__ = __webpack_require__(556);\n/* unused harmony reexport isoParse */\n\n\n\n\n\n\n/***/ }),\n/* 237 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = formatLocale;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_time__ = __webpack_require__(123);\n\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, newDate) {\n return function(string) {\n var d = newYear(1900),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newYear(d.y)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"p\" /* utcMonday */].ceil(week) : Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"p\" /* utcMonday */])(week);\n week = __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"l\" /* utcDay */].offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = newDate(newYear(d.y)), day = week.getDay();\n week = day > 4 || day === 0 ? __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"e\" /* timeMonday */].ceil(week) : Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"e\" /* timeMonday */])(week);\n week = __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"a\" /* timeDay */].offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", localDate);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"a\" /* timeDay */].count(Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"k\" /* timeYear */])(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"h\" /* timeSunday */].count(Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"k\" /* timeYear */])(d), d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"i\" /* timeThursday */])(d) : __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"i\" /* timeThursday */].ceil(d);\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"i\" /* timeThursday */].count(Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"k\" /* timeYear */])(d), d) + (Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"k\" /* timeYear */])(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"e\" /* timeMonday */].count(Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"k\" /* timeYear */])(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"l\" /* utcDay */].count(Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"v\" /* utcYear */])(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"s\" /* utcSunday */].count(Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"v\" /* utcYear */])(d), d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"t\" /* utcThursday */])(d) : __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"t\" /* utcThursday */].ceil(d);\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"t\" /* utcThursday */].count(Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"v\" /* utcYear */])(d), d) + (Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"v\" /* utcYear */])(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"p\" /* utcMonday */].count(Object(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"v\" /* utcYear */])(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n\n\n/***/ }),\n/* 238 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return isoSpecifier; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defaultLocale__ = __webpack_require__(124);\n\n\nvar isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : Object(__WEBPACK_IMPORTED_MODULE_0__defaultLocale__[\"b\" /* utcFormat */])(isoSpecifier);\n\n/* unused harmony default export */ var _unused_webpack_default_export = (formatIso);\n\n\n/***/ }),\n/* 239 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return cos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return sin; });\n/* unused harmony export pi */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return halfPi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return tau; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return max; });\nvar cos = Math.cos;\nvar sin = Math.sin;\nvar pi = Math.PI;\nvar halfPi = pi / 2;\nvar tau = pi * 2;\nvar max = Math.max;\n\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _defaultsDeep = __webpack_require__(125);\n\nvar _defaultsDeep2 = _interopRequireDefault(_defaultsDeep);\n\nvar _forEach = __webpack_require__(32);\n\nvar _forEach2 = _interopRequireDefault(_forEach);\n\nvar _isArray = __webpack_require__(2);\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nvar _map = __webpack_require__(144);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _d3Selection = __webpack_require__(3);\n\nvar _d3Zoom = __webpack_require__(348);\n\nvar _index = __webpack_require__(403);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _render2 = __webpack_require__(420);\n\nvar _render3 = _interopRequireDefault(_render2);\n\nvar _Text = __webpack_require__(468);\n\nvar _Text2 = _interopRequireDefault(_Text);\n\nvar _Highlight = __webpack_require__(620);\n\nvar _Highlight2 = _interopRequireDefault(_Highlight);\n\nvar _Histogram = __webpack_require__(621);\n\nvar _Histogram2 = _interopRequireDefault(_Histogram);\n\nvar _Chords = __webpack_require__(622);\n\nvar _Chords2 = _interopRequireDefault(_Chords);\n\nvar _Heatmap = __webpack_require__(628);\n\nvar _Heatmap2 = _interopRequireDefault(_Heatmap);\n\nvar _Line = __webpack_require__(629);\n\nvar _Line2 = _interopRequireDefault(_Line);\n\nvar _Scatter = __webpack_require__(630);\n\nvar _Scatter2 = _interopRequireDefault(_Scatter);\n\nvar _Stack = __webpack_require__(631);\n\nvar _Stack2 = _interopRequireDefault(_Stack);\n\nvar _clipboard = __webpack_require__(632);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConf = {\n width: 700,\n height: 700,\n container: 'circos',\n defaultTrackWidth: 10\n};\n\nvar zoom_handler = (0, _d3Zoom.zoom)().scaleExtent([1, 2]).on(\"zoom\", function () {\n (0, _d3Selection.select)('.all').attr(\"transform\", _d3Selection.event.transform);\n});\n\nfunction download_svg() {\n if (document.getElementById('svg-child').hasChildNodes() === true) {\n var circos_svg = document.getElementById('svg-child');\n var svg_as_xml = new XMLSerializer().serializeToString(circos_svg);\n var svg_data = 'data:image/svg+xml,' + encodeURIComponent(svg_as_xml);\n var link = document.getElementById('download-link');\n link.setAttribute(\"href\", svg_data);\n link.setAttribute(\"download\", \"circos.svg\");\n link.click();\n }\n}\n\nvar Core = function () {\n function Core(conf) {\n _classCallCheck(this, Core);\n\n this.tracks = {};\n this._layout = null;\n this.conf = (0, _defaultsDeep2.default)(conf, defaultConf);\n\n // Apply style for positioning button\n var container = (0, _d3Selection.select)(this.conf.container).style('position', 'relative');\n this.svg = container.append('svg');\n if (conf.enableZoomPan === true) {\n // Apply zoom & pan handler\n this.svg.attr('id', 'svg-child').call(zoom_handler);\n this.svg.call(zoom_handler.transform, _d3Zoom.zoomIdentity.translate(conf.width / 2, conf.height / 2));\n\n // Reset to center on dbl click\n this.svg.on('dblclick.zoom', function () {\n (0, _d3Selection.select)('#svg-child').call(zoom_handler.transform, _d3Zoom.zoomIdentity.translate(conf.width / 2, conf.height / 2));\n });\n }\n\n if (conf.enableDownloadSVG === true) {\n // Add svg download button\n var button_svg = (0, _d3Selection.select)('#' + this.conf.container.id).append(\"button\").style('position', 'absolute').style('top', '5%').style('right', '5%').text(\"Download SVG\").attr(\"id\", \"button\").classed(\"Button\", true).on(\"click.button\", function () {\n download_svg();\n }).append('a').attr('id', 'download-link');\n }\n\n if ((0, _d3Selection.select)('body').select('.circos-tooltip').empty()) {\n this.tip = (0, _d3Selection.select)('body').append('div').attr('class', 'circos-tooltip').style('position', 'fixed').style('opacity', 0);\n } else {\n this.tip = (0, _d3Selection.select)('body').select('.circos-tooltip');\n }\n\n this.clipboard = (0, _clipboard.initClipboard)(this.conf.container);\n }\n\n _createClass(Core, [{\n key: 'removeToolTip',\n value: function removeToolTip() {\n this.tip.remove();\n }\n }, {\n key: 'removeTracks',\n value: function removeTracks(trackIds) {\n var _this = this;\n\n if (typeof trackIds === 'undefined') {\n (0, _map2.default)(this.tracks, function (track, id) {\n _this.svg.select('.' + id).remove();\n });\n this.tracks = {};\n } else if (typeof trackIds === 'string') {\n this.svg.select('.' + trackIds).remove();\n delete this.tracks[trackIds];\n } else if ((0, _isArray2.default)(trackIds)) {\n (0, _forEach2.default)(trackIds, function (trackId) {\n this.svg.select('.' + trackId).remove();\n delete this.tracks[trackId];\n });\n } else {\n console.warn('removeTracks received an unhandled attribute type');\n }\n\n return this;\n }\n }, {\n key: 'layout',\n value: function layout(data, conf) {\n this._layout = new _index2.default(conf, data);\n return this;\n }\n }, {\n key: 'chords',\n value: function chords(id, data, conf) {\n this.tracks[id] = new _Chords2.default(this, conf, data);\n return this;\n }\n }, {\n key: 'heatmap',\n value: function heatmap(id, data, conf) {\n this.tracks[id] = new _Heatmap2.default(this, conf, data);\n return this;\n }\n }, {\n key: 'highlight',\n value: function highlight(id, data, conf) {\n this.tracks[id] = new _Highlight2.default(this, conf, data);\n return this;\n }\n }, {\n key: 'histogram',\n value: function histogram(id, data, conf) {\n this.tracks[id] = new _Histogram2.default(this, conf, data);\n return this;\n }\n }, {\n key: 'line',\n value: function line(id, data, conf) {\n this.tracks[id] = new _Line2.default(this, conf, data);\n return this;\n }\n }, {\n key: 'scatter',\n value: function scatter(id, data, conf) {\n this.tracks[id] = new _Scatter2.default(this, conf, data);\n return this;\n }\n }, {\n key: 'stack',\n value: function stack(id, data, conf) {\n this.tracks[id] = new _Stack2.default(this, conf, data);\n return this;\n }\n }, {\n key: 'text',\n value: function text(id, data, conf) {\n this.tracks[id] = new _Text2.default(this, conf, data);\n return this;\n }\n }, {\n key: 'render',\n value: function render(ids, removeTracks) {\n (0, _render3.default)(ids, removeTracks, this);\n }\n }]);\n\n return Core;\n}();\n\nvar Circos = function Circos(conf) {\n var instance = new Core(conf);\n return instance;\n};\n\nmodule.exports = Circos;\n\n/***/ }),\n/* 241 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar constant = __webpack_require__(242),\n defineProperty = __webpack_require__(127),\n identity = __webpack_require__(28);\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports) {\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n\n\n/***/ }),\n/* 243 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isFunction = __webpack_require__(24),\n isMasked = __webpack_require__(246),\n isObject = __webpack_require__(7),\n toSource = __webpack_require__(129);\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(29);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n/***/ }),\n/* 245 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar coreJsData = __webpack_require__(247);\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n/***/ }),\n/* 247 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(5);\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports) {\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n/***/ }),\n/* 249 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseMerge = __webpack_require__(131),\n isObject = __webpack_require__(7);\n\n/**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n}\n\nmodule.exports = customDefaultsMerge;\n\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports) {\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n/***/ }),\n/* 251 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assocIndexOf = __webpack_require__(53);\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n/***/ }),\n/* 252 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assocIndexOf = __webpack_require__(53);\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n/***/ }),\n/* 253 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assocIndexOf = __webpack_require__(53);\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n/***/ }),\n/* 254 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assocIndexOf = __webpack_require__(53);\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n/***/ }),\n/* 255 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ListCache = __webpack_require__(52);\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n/***/ }),\n/* 256 */\n/***/ (function(module, exports) {\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n\n\n/***/ }),\n/* 257 */\n/***/ (function(module, exports) {\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n/***/ }),\n/* 258 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ListCache = __webpack_require__(52),\n Map = __webpack_require__(81),\n MapCache = __webpack_require__(82);\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n\n\n/***/ }),\n/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Hash = __webpack_require__(261),\n ListCache = __webpack_require__(52),\n Map = __webpack_require__(81);\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hashClear = __webpack_require__(262),\n hashDelete = __webpack_require__(263),\n hashGet = __webpack_require__(264),\n hashHas = __webpack_require__(265),\n hashSet = __webpack_require__(266);\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n/***/ }),\n/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar nativeCreate = __webpack_require__(54);\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports) {\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar nativeCreate = __webpack_require__(54);\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar nativeCreate = __webpack_require__(54);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar nativeCreate = __webpack_require__(54);\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n/***/ }),\n/* 267 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getMapData = __webpack_require__(55);\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n/***/ }),\n/* 268 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n/***/ }),\n/* 269 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getMapData = __webpack_require__(55);\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n/***/ }),\n/* 270 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getMapData = __webpack_require__(55);\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n/***/ }),\n/* 271 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getMapData = __webpack_require__(55);\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n/***/ }),\n/* 272 */\n/***/ (function(module, exports) {\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n\n\n/***/ }),\n/* 273 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assignMergeValue = __webpack_require__(132),\n cloneBuffer = __webpack_require__(134),\n cloneTypedArray = __webpack_require__(135),\n copyArray = __webpack_require__(30),\n initCloneObject = __webpack_require__(137),\n isArguments = __webpack_require__(58),\n isArray = __webpack_require__(2),\n isArrayLikeObject = __webpack_require__(275),\n isBuffer = __webpack_require__(59),\n isFunction = __webpack_require__(24),\n isObject = __webpack_require__(7),\n isPlainObject = __webpack_require__(139),\n isTypedArray = __webpack_require__(88),\n safeGet = __webpack_require__(140),\n toPlainObject = __webpack_require__(278);\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n\n\n/***/ }),\n/* 274 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(16),\n isObjectLike = __webpack_require__(6);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n/***/ }),\n/* 275 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArrayLike = __webpack_require__(17),\n isObjectLike = __webpack_require__(6);\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n\n\n/***/ }),\n/* 276 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n/***/ }),\n/* 277 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(16),\n isLength = __webpack_require__(87),\n isObjectLike = __webpack_require__(6);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n/***/ }),\n/* 278 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(31),\n keysIn = __webpack_require__(61);\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n\n\n/***/ }),\n/* 279 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n/***/ }),\n/* 280 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7),\n isPrototype = __webpack_require__(57),\n nativeKeysIn = __webpack_require__(281);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n/***/ }),\n/* 281 */\n/***/ (function(module, exports) {\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n/***/ }),\n/* 282 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseMerge = __webpack_require__(131),\n createAssigner = __webpack_require__(142);\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\n\n\n/***/ }),\n/* 283 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseFor = __webpack_require__(133),\n keys = __webpack_require__(18);\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n\n\n/***/ }),\n/* 284 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar overArg = __webpack_require__(138);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n/***/ }),\n/* 285 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArrayLike = __webpack_require__(17);\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n\n\n/***/ }),\n/* 286 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar identity = __webpack_require__(28);\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n\n\n/***/ }),\n/* 287 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsMatch = __webpack_require__(288),\n getMatchData = __webpack_require__(302),\n matchesStrictComparable = __webpack_require__(153);\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n\n\n/***/ }),\n/* 288 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Stack = __webpack_require__(51),\n baseIsEqual = __webpack_require__(145);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n/***/ }),\n/* 289 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Stack = __webpack_require__(51),\n equalArrays = __webpack_require__(146),\n equalByTag = __webpack_require__(295),\n equalObjects = __webpack_require__(298),\n getTag = __webpack_require__(41),\n isArray = __webpack_require__(2),\n isBuffer = __webpack_require__(59),\n isTypedArray = __webpack_require__(88);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n/***/ }),\n/* 290 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MapCache = __webpack_require__(82),\n setCacheAdd = __webpack_require__(291),\n setCacheHas = __webpack_require__(292);\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n/***/ }),\n/* 291 */\n/***/ (function(module, exports) {\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n/***/ }),\n/* 292 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n/***/ }),\n/* 293 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n\n\n/***/ }),\n/* 294 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n/***/ }),\n/* 295 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(29),\n Uint8Array = __webpack_require__(136),\n eq = __webpack_require__(38),\n equalArrays = __webpack_require__(146),\n mapToArray = __webpack_require__(296),\n setToArray = __webpack_require__(297);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n\n\n/***/ }),\n/* 296 */\n/***/ (function(module, exports) {\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n\n\n/***/ }),\n/* 297 */\n/***/ (function(module, exports) {\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n\n\n/***/ }),\n/* 298 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getAllKeys = __webpack_require__(147);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n\n\n/***/ }),\n/* 299 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(23),\n root = __webpack_require__(5);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n/***/ }),\n/* 300 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(23),\n root = __webpack_require__(5);\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n/***/ }),\n/* 301 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(23),\n root = __webpack_require__(5);\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n/***/ }),\n/* 302 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isStrictComparable = __webpack_require__(152),\n keys = __webpack_require__(18);\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n\n\n/***/ }),\n/* 303 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsEqual = __webpack_require__(145),\n get = __webpack_require__(304),\n hasIn = __webpack_require__(308),\n isKey = __webpack_require__(92),\n isStrictComparable = __webpack_require__(152),\n matchesStrictComparable = __webpack_require__(153),\n toKey = __webpack_require__(42);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n/***/ }),\n/* 304 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGet = __webpack_require__(154);\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n/***/ }),\n/* 305 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar memoize = __webpack_require__(306);\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n/***/ }),\n/* 306 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MapCache = __webpack_require__(82);\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n/***/ }),\n/* 307 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(29),\n arrayMap = __webpack_require__(40),\n isArray = __webpack_require__(2),\n isSymbol = __webpack_require__(34);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n/***/ }),\n/* 308 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseHasIn = __webpack_require__(309),\n hasPath = __webpack_require__(310);\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n/***/ }),\n/* 309 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n/***/ }),\n/* 310 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar castPath = __webpack_require__(155),\n isArguments = __webpack_require__(58),\n isArray = __webpack_require__(2),\n isIndex = __webpack_require__(62),\n isLength = __webpack_require__(87),\n toKey = __webpack_require__(42);\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n/***/ }),\n/* 311 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseProperty = __webpack_require__(312),\n basePropertyDeep = __webpack_require__(313),\n isKey = __webpack_require__(92),\n toKey = __webpack_require__(42);\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n/***/ }),\n/* 312 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n\n\n/***/ }),\n/* 313 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGet = __webpack_require__(154);\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n/***/ }),\n/* 314 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__creator__ = __webpack_require__(66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__select__ = __webpack_require__(159);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name) {\n return Object(__WEBPACK_IMPORTED_MODULE_1__select__[\"a\" /* default */])(Object(__WEBPACK_IMPORTED_MODULE_0__creator__[\"a\" /* default */])(name).call(document.documentElement));\n});\n\n\n/***/ }),\n/* 315 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__selector__ = __webpack_require__(95);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(select) {\n if (typeof select !== \"function\") select = Object(__WEBPACK_IMPORTED_MODULE_1__selector__[\"a\" /* default */])(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new __WEBPACK_IMPORTED_MODULE_0__index__[\"a\" /* Selection */](subgroups, this._parents);\n});\n\n\n/***/ }),\n/* 316 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__selectorAll__ = __webpack_require__(160);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(select) {\n if (typeof select !== \"function\") select = Object(__WEBPACK_IMPORTED_MODULE_1__selectorAll__[\"a\" /* default */])(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new __WEBPACK_IMPORTED_MODULE_0__index__[\"a\" /* Selection */](subgroups, parents);\n});\n\n\n/***/ }),\n/* 317 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__matcher__ = __webpack_require__(161);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(match) {\n if (typeof match !== \"function\") match = Object(__WEBPACK_IMPORTED_MODULE_1__matcher__[\"a\" /* default */])(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new __WEBPACK_IMPORTED_MODULE_0__index__[\"a\" /* Selection */](subgroups, this._parents);\n});\n\n\n/***/ }),\n/* 318 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__enter__ = __webpack_require__(162);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constant__ = __webpack_require__(319);\n\n\n\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new __WEBPACK_IMPORTED_MODULE_1__enter__[\"a\" /* EnterNode */](parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new __WEBPACK_IMPORTED_MODULE_1__enter__[\"a\" /* EnterNode */](parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = Object(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new __WEBPACK_IMPORTED_MODULE_0__index__[\"a\" /* Selection */](update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n});\n\n\n/***/ }),\n/* 319 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 320 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sparse__ = __webpack_require__(163);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__index__ = __webpack_require__(11);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return new __WEBPACK_IMPORTED_MODULE_1__index__[\"a\" /* Selection */](this._exit || this._groups.map(__WEBPACK_IMPORTED_MODULE_0__sparse__[\"a\" /* default */]), this._parents);\n});\n\n\n/***/ }),\n/* 321 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(11);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new __WEBPACK_IMPORTED_MODULE_0__index__[\"a\" /* Selection */](merges, this._parents);\n});\n\n\n/***/ }),\n/* 322 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n});\n\n\n/***/ }),\n/* 323 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(11);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new __WEBPACK_IMPORTED_MODULE_0__index__[\"a\" /* Selection */](sortgroups, this._parents).order();\n});\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n\n/***/ }),\n/* 324 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n});\n\n\n/***/ }),\n/* 325 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n});\n\n\n/***/ }),\n/* 326 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n});\n\n\n/***/ }),\n/* 327 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n});\n\n\n/***/ }),\n/* 328 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return !this.node();\n});\n\n\n/***/ }),\n/* 329 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n});\n\n\n/***/ }),\n/* 330 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__namespace__ = __webpack_require__(93);\n\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, value) {\n var fullname = Object(__WEBPACK_IMPORTED_MODULE_0__namespace__[\"a\" /* default */])(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n});\n\n\n/***/ }),\n/* 331 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n});\n\n\n/***/ }),\n/* 332 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n});\n\n\n/***/ }),\n/* 333 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n});\n\n\n/***/ }),\n/* 334 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n});\n\n\n/***/ }),\n/* 335 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return this.each(raise);\n});\n\n\n/***/ }),\n/* 336 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return this.each(lower);\n});\n\n\n/***/ }),\n/* 337 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__creator__ = __webpack_require__(66);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name) {\n var create = typeof name === \"function\" ? name : Object(__WEBPACK_IMPORTED_MODULE_0__creator__[\"a\" /* default */])(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n});\n\n\n/***/ }),\n/* 338 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__creator__ = __webpack_require__(66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__selector__ = __webpack_require__(95);\n\n\n\nfunction constantNull() {\n return null;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, before) {\n var create = typeof name === \"function\" ? name : Object(__WEBPACK_IMPORTED_MODULE_0__creator__[\"a\" /* default */])(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : Object(__WEBPACK_IMPORTED_MODULE_1__selector__[\"a\" /* default */])(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n});\n\n\n/***/ }),\n/* 339 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return this.each(remove);\n});\n\n\n/***/ }),\n/* 340 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction selection_cloneShallow() {\n return this.parentNode.insertBefore(this.cloneNode(false), this.nextSibling);\n}\n\nfunction selection_cloneDeep() {\n return this.parentNode.insertBefore(this.cloneNode(true), this.nextSibling);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n});\n\n\n/***/ }),\n/* 341 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n});\n\n\n/***/ }),\n/* 342 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__window__ = __webpack_require__(96);\n\n\nfunction dispatchEvent(node, type, params) {\n var window = Object(__WEBPACK_IMPORTED_MODULE_0__window__[\"a\" /* default */])(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n});\n\n\n/***/ }),\n/* 343 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = local;\nvar nextId = 0;\n\nfunction local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n\n\n/***/ }),\n/* 344 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sourceEvent__ = __webpack_require__(98);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__point__ = __webpack_require__(67);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(node) {\n var event = Object(__WEBPACK_IMPORTED_MODULE_0__sourceEvent__[\"a\" /* default */])();\n if (event.changedTouches) event = event.changedTouches[0];\n return Object(__WEBPACK_IMPORTED_MODULE_1__point__[\"a\" /* default */])(node, event);\n});\n\n\n/***/ }),\n/* 345 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__selection_index__ = __webpack_require__(11);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(selector) {\n return typeof selector === \"string\"\n ? new __WEBPACK_IMPORTED_MODULE_0__selection_index__[\"a\" /* Selection */]([document.querySelectorAll(selector)], [document.documentElement])\n : new __WEBPACK_IMPORTED_MODULE_0__selection_index__[\"a\" /* Selection */]([selector == null ? [] : selector], __WEBPACK_IMPORTED_MODULE_0__selection_index__[\"c\" /* root */]);\n});\n\n\n/***/ }),\n/* 346 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sourceEvent__ = __webpack_require__(98);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__point__ = __webpack_require__(67);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = Object(__WEBPACK_IMPORTED_MODULE_0__sourceEvent__[\"a\" /* default */])().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return Object(__WEBPACK_IMPORTED_MODULE_1__point__[\"a\" /* default */])(node, touch);\n }\n }\n\n return null;\n});\n\n\n/***/ }),\n/* 347 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sourceEvent__ = __webpack_require__(98);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__point__ = __webpack_require__(67);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(node, touches) {\n if (touches == null) touches = Object(__WEBPACK_IMPORTED_MODULE_0__sourceEvent__[\"a\" /* default */])().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = Object(__WEBPACK_IMPORTED_MODULE_1__point__[\"a\" /* default */])(node, touches[i]);\n }\n\n return points;\n});\n\n\n/***/ }),\n/* 348 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__zoom__ = __webpack_require__(349);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"zoom\", function() { return __WEBPACK_IMPORTED_MODULE_0__zoom__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__transform__ = __webpack_require__(179);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomTransform\", function() { return __WEBPACK_IMPORTED_MODULE_1__transform__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomIdentity\", function() { return __WEBPACK_IMPORTED_MODULE_1__transform__[\"c\"]; });\n\n\n\n\n/***/ }),\n/* 349 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_dispatch__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_drag__ = __webpack_require__(351);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3_interpolate__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_d3_transition__ = __webpack_require__(175);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__constant__ = __webpack_require__(400);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__event__ = __webpack_require__(401);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__transform__ = __webpack_require__(179);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__noevent__ = __webpack_require__(402);\n\n\n\n\n\n\n\n\n\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].button;\n}\n\nfunction defaultExtent() {\n var e = this, w, h;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n w = e.width.baseVal.value;\n h = e.height.baseVal.value;\n } else {\n w = e.clientWidth;\n h = e.clientHeight;\n }\n return [[0, 0], [w, h]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || __WEBPACK_IMPORTED_MODULE_7__transform__[\"c\" /* identity */];\n}\n\nfunction defaultWheelDelta() {\n return -__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].deltaY * (__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].deltaMode ? 120 : 1) / 500;\n}\n\nfunction defaultTouchable() {\n return \"ontouchstart\" in this;\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = __WEBPACK_IMPORTED_MODULE_2_d3_interpolate__[\"j\" /* interpolateZoom */],\n gestures = [],\n listeners = Object(__WEBPACK_IMPORTED_MODULE_0_d3_dispatch__[\"dispatch\"])(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n });\n };\n\n zoom.scaleTo = function(selection, k) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = centroid(e),\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n });\n };\n\n zoom.translateBy = function(selection, x, y) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n });\n };\n\n zoom.translateTo = function(selection, x, y) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p = centroid(e);\n return constrain(__WEBPACK_IMPORTED_MODULE_7__transform__[\"c\" /* identity */].translate(p[0], p[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n });\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new __WEBPACK_IMPORTED_MODULE_7__transform__[\"a\" /* Transform */](k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new __WEBPACK_IMPORTED_MODULE_7__transform__[\"a\" /* Transform */](transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, center) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = center || centroid(e),\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new __WEBPACK_IMPORTED_MODULE_7__transform__[\"a\" /* Transform */](k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args) {\n for (var i = 0, n = gestures.length, g; i < n; ++i) {\n if ((g = gestures[i]).that === that) {\n return g;\n }\n }\n return new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.index = -1;\n this.active = 0;\n this.extent = extent.apply(that, args);\n }\n\n Gesture.prototype = {\n start: function() {\n if (++this.active === 1) {\n this.index = gestures.push(this) - 1;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n gestures.splice(this.index, 1);\n this.index = -1;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"customEvent\"])(new __WEBPACK_IMPORTED_MODULE_6__event__[\"a\" /* default */](zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"mouse\"])(this);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n Object(__WEBPACK_IMPORTED_MODULE_4_d3_transition__[\"interrupt\"])(this);\n g.start();\n }\n\n Object(__WEBPACK_IMPORTED_MODULE_8__noevent__[\"a\" /* default */])();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n v = Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"select\"])(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"mouse\"])(this),\n x0 = __WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].clientX,\n y0 = __WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].clientY;\n\n Object(__WEBPACK_IMPORTED_MODULE_1_d3_drag__[\"a\" /* dragDisable */])(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].view);\n Object(__WEBPACK_IMPORTED_MODULE_8__noevent__[\"b\" /* nopropagation */])();\n g.mouse = [p, this.__zoom.invert(p)];\n Object(__WEBPACK_IMPORTED_MODULE_4_d3_transition__[\"interrupt\"])(this);\n g.start();\n\n function mousemoved() {\n Object(__WEBPACK_IMPORTED_MODULE_8__noevent__[\"a\" /* default */])();\n if (!g.moved) {\n var dx = __WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].clientX - x0, dy = __WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"mouse\"])(g.that), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n Object(__WEBPACK_IMPORTED_MODULE_1_d3_drag__[\"b\" /* dragEnable */])(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].view, g.moved);\n Object(__WEBPACK_IMPORTED_MODULE_8__noevent__[\"a\" /* default */])();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"mouse\"])(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);\n\n Object(__WEBPACK_IMPORTED_MODULE_8__noevent__[\"a\" /* default */])();\n if (duration > 0) Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"select\"])(this).transition().duration(duration).call(schedule, t1, p0);\n else Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"select\"])(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n touches = __WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].changedTouches,\n started,\n n = touches.length, i, t, p;\n\n Object(__WEBPACK_IMPORTED_MODULE_8__noevent__[\"b\" /* nopropagation */])();\n for (i = 0; i < n; ++i) {\n t = touches[i], p = Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"touch\"])(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true;\n else if (!g.touch1) g.touch1 = p;\n }\n\n // If this is a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (touchstarting) {\n touchstarting = clearTimeout(touchstarting);\n if (!g.touch1) {\n g.end();\n p = Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"select\"])(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n return;\n }\n }\n\n if (started) {\n touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n Object(__WEBPACK_IMPORTED_MODULE_4_d3_transition__[\"interrupt\"])(this);\n g.start();\n }\n }\n\n function touchmoved() {\n var g = gesture(this, arguments),\n touches = __WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].changedTouches,\n n = touches.length, i, t, p, l;\n\n Object(__WEBPACK_IMPORTED_MODULE_8__noevent__[\"a\" /* default */])();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = Object(__WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"touch\"])(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended() {\n var g = gesture(this, arguments),\n touches = __WEBPACK_IMPORTED_MODULE_3_d3_selection__[\"event\"].changedTouches,\n n = touches.length, i, t;\n\n Object(__WEBPACK_IMPORTED_MODULE_8__noevent__[\"b\" /* nopropagation */])();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else g.end();\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_5__constant__[\"a\" /* default */])(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_5__constant__[\"a\" /* default */])(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_5__constant__[\"a\" /* default */])(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_5__constant__[\"a\" /* default */])([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n return zoom;\n});\n\n\n/***/ }),\n/* 350 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (dispatch);\n\n\n/***/ }),\n/* 351 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_drag__ = __webpack_require__(352);\n/* unused harmony reexport drag */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_nodrag__ = __webpack_require__(165);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_nodrag__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_1__src_nodrag__[\"b\"]; });\n\n\n\n\n/***/ }),\n/* 352 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_dispatch__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nodrag__ = __webpack_require__(165);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__noevent__ = __webpack_require__(166);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constant__ = __webpack_require__(353);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__event__ = __webpack_require__(354);\n\n\n\n\n\n\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].x, y: __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].y} : d;\n}\n\nfunction defaultTouchable() {\n return \"ontouchstart\" in this;\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = Object(__WEBPACK_IMPORTED_MODULE_0_d3_dispatch__[\"dispatch\"])(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"mouse\"], this, arguments);\n if (!gesture) return;\n Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"select\"])(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n Object(__WEBPACK_IMPORTED_MODULE_2__nodrag__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].view);\n Object(__WEBPACK_IMPORTED_MODULE_3__noevent__[\"b\" /* nopropagation */])();\n mousemoving = false;\n mousedownx = __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].clientX;\n mousedowny = __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n Object(__WEBPACK_IMPORTED_MODULE_3__noevent__[\"a\" /* default */])();\n if (!mousemoving) {\n var dx = __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].clientX - mousedownx, dy = __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"select\"])(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].view).on(\"mousemove.drag mouseup.drag\", null);\n Object(__WEBPACK_IMPORTED_MODULE_2__nodrag__[\"b\" /* yesdrag */])(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].view, mousemoving);\n Object(__WEBPACK_IMPORTED_MODULE_3__noevent__[\"a\" /* default */])();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"touch\"], this, arguments)) {\n Object(__WEBPACK_IMPORTED_MODULE_3__noevent__[\"b\" /* nopropagation */])();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n Object(__WEBPACK_IMPORTED_MODULE_3__noevent__[\"a\" /* default */])();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = __WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n Object(__WEBPACK_IMPORTED_MODULE_3__noevent__[\"b\" /* nopropagation */])();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"customEvent\"])(new __WEBPACK_IMPORTED_MODULE_5__event__[\"a\" /* default */](drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"event\"].subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"customEvent\"])(new __WEBPACK_IMPORTED_MODULE_5__event__[\"a\" /* default */](drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_4__constant__[\"a\" /* default */])(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_4__constant__[\"a\" /* default */])(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_4__constant__[\"a\" /* default */])(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_4__constant__[\"a\" /* default */])(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n});\n\n\n/***/ }),\n/* 353 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 354 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = DragEvent;\nfunction DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n\n\n/***/ }),\n/* 355 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = lab;\n/* unused harmony export Lab */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = hcl;\n/* unused harmony export Hcl */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__define__ = __webpack_require__(101);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(100);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__math__ = __webpack_require__(167);\n\n\n\n\nvar Kn = 18,\n Xn = 0.950470, // D65 standard referent\n Yn = 1,\n Zn = 1.088830,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) {\n var h = o.h * __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* deg2rad */];\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n if (!(o instanceof __WEBPACK_IMPORTED_MODULE_1__color__[\"b\" /* Rgb */])) o = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"h\" /* rgbConvert */])(o);\n var b = rgb2xyz(o.r),\n a = rgb2xyz(o.g),\n l = rgb2xyz(o.b),\n x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),\n y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),\n z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nfunction lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nfunction Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Lab, lab, Object(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* Color */], {\n brighter: function(k) {\n return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n y = Yn * lab2xyz(y);\n x = Xn * lab2xyz(x);\n z = Zn * lab2xyz(z);\n return new __WEBPACK_IMPORTED_MODULE_1__color__[\"b\" /* Rgb */](\n xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB\n xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),\n xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction xyz2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2xyz(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n var h = Math.atan2(o.b, o.a) * __WEBPACK_IMPORTED_MODULE_2__math__[\"b\" /* rad2deg */];\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nfunction hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Hcl, hcl, Object(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* Color */], {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return labConvert(this).rgb();\n }\n}));\n\n\n/***/ }),\n/* 356 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = cubehelix;\n/* unused harmony export Cubehelix */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__define__ = __webpack_require__(101);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(100);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__math__ = __webpack_require__(167);\n\n\n\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof __WEBPACK_IMPORTED_MODULE_1__color__[\"b\" /* Rgb */])) o = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"h\" /* rgbConvert */])(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * __WEBPACK_IMPORTED_MODULE_2__math__[\"b\" /* rad2deg */] - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nfunction cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Cubehelix, cubehelix, Object(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* Color */], {\n brighter: function(k) {\n k = k == null ? __WEBPACK_IMPORTED_MODULE_1__color__[\"c\" /* brighter */] : Math.pow(__WEBPACK_IMPORTED_MODULE_1__color__[\"c\" /* brighter */], k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? __WEBPACK_IMPORTED_MODULE_1__color__[\"d\" /* darker */] : Math.pow(__WEBPACK_IMPORTED_MODULE_1__color__[\"d\" /* darker */], k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* deg2rad */],\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new __WEBPACK_IMPORTED_MODULE_1__color__[\"b\" /* Rgb */](\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\n\n/***/ }),\n/* 357 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n});\n\n\n/***/ }),\n/* 358 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return interpolateTransformCss; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return interpolateTransformSvg; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__parse__ = __webpack_require__(359);\n\n\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(xa, xb)}, {i: i - 2, x: Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(xa, xb)}, {i: i - 2, x: Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nvar interpolateTransformCss = interpolateTransform(__WEBPACK_IMPORTED_MODULE_1__parse__[\"a\" /* parseCss */], \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(__WEBPACK_IMPORTED_MODULE_1__parse__[\"b\" /* parseSvg */], \", \", \")\", \")\");\n\n\n/***/ }),\n/* 359 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = parseCss;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = parseSvg;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__decompose__ = __webpack_require__(360);\n\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nfunction parseCss(value) {\n if (value === \"none\") return __WEBPACK_IMPORTED_MODULE_0__decompose__[\"b\" /* identity */];\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return Object(__WEBPACK_IMPORTED_MODULE_0__decompose__[\"a\" /* default */])(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nfunction parseSvg(value) {\n if (value == null) return __WEBPACK_IMPORTED_MODULE_0__decompose__[\"b\" /* identity */];\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return __WEBPACK_IMPORTED_MODULE_0__decompose__[\"b\" /* identity */];\n value = value.matrix;\n return Object(__WEBPACK_IMPORTED_MODULE_0__decompose__[\"a\" /* default */])(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\n\n/***/ }),\n/* 360 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return identity; });\nvar degrees = 180 / Math.PI;\n\nvar identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n});\n\n\n/***/ }),\n/* 361 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n});\n\n\n/***/ }),\n/* 362 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export hslLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(43);\n\n\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"d\" /* hsl */])(start)).h, (end = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"d\" /* hsl */])(end)).h),\n s = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.s, end.s),\n l = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.l, end.l),\n opacity = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (hsl(__WEBPACK_IMPORTED_MODULE_1__color__[\"c\" /* hue */]));\nvar hslLong = hsl(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */]);\n\n\n/***/ }),\n/* 363 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(43);\n\n\n\nfunction lab(start, end) {\n var l = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])((start = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"e\" /* lab */])(start)).l, (end = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"e\" /* lab */])(end)).l),\n a = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.a, end.a),\n b = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.b, end.b),\n opacity = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n\n\n/***/ }),\n/* 364 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export hclLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(43);\n\n\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"c\" /* hcl */])(start)).h, (end = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"c\" /* hcl */])(end)).h),\n c = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.c, end.c),\n l = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.l, end.l),\n opacity = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (hcl(__WEBPACK_IMPORTED_MODULE_1__color__[\"c\" /* hue */]));\nvar hclLong = hcl(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */]);\n\n\n/***/ }),\n/* 365 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return cubehelixLong; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(43);\n\n\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"b\" /* cubehelix */])(start)).h, (end = Object(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"b\" /* cubehelix */])(end)).h),\n s = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.s, end.s),\n l = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.l, end.l),\n opacity = Object(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (cubehelix(__WEBPACK_IMPORTED_MODULE_1__color__[\"c\" /* hue */]));\nvar cubehelixLong = cubehelix(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */]);\n\n\n/***/ }),\n/* 366 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n});\n\n\n/***/ }),\n/* 367 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__interrupt__ = __webpack_require__(368);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__transition__ = __webpack_require__(371);\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"selection\"].prototype.interrupt = __WEBPACK_IMPORTED_MODULE_1__interrupt__[\"a\" /* default */];\n__WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"selection\"].prototype.transition = __WEBPACK_IMPORTED_MODULE_2__transition__[\"a\" /* default */];\n\n\n/***/ }),\n/* 368 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interrupt__ = __webpack_require__(176);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name) {\n return this.each(function() {\n Object(__WEBPACK_IMPORTED_MODULE_0__interrupt__[\"a\" /* default */])(this, name);\n });\n});\n\n\n/***/ }),\n/* 369 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__timer__ = __webpack_require__(103);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(callback, delay, time) {\n var t = new __WEBPACK_IMPORTED_MODULE_0__timer__[\"a\" /* Timer */];\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n});\n\n\n/***/ }),\n/* 370 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__timer__ = __webpack_require__(103);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(callback, delay, time) {\n var t = new __WEBPACK_IMPORTED_MODULE_0__timer__[\"a\" /* Timer */], total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? Object(__WEBPACK_IMPORTED_MODULE_0__timer__[\"b\" /* now */])() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n});\n\n\n/***/ }),\n/* 371 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transition_index__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__transition_schedule__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3_ease__ = __webpack_require__(388);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_d3_timer__ = __webpack_require__(177);\n\n\n\n\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: __WEBPACK_IMPORTED_MODULE_2_d3_ease__[\"a\" /* easeCubicInOut */]\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = Object(__WEBPACK_IMPORTED_MODULE_3_d3_timer__[\"a\" /* now */])(), defaultTiming;\n }\n }\n return timing;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name) {\n var id,\n timing;\n\n if (name instanceof __WEBPACK_IMPORTED_MODULE_0__transition_index__[\"a\" /* Transition */]) {\n id = name._id, name = name._name;\n } else {\n id = Object(__WEBPACK_IMPORTED_MODULE_0__transition_index__[\"c\" /* newId */])(), (timing = defaultTiming).time = Object(__WEBPACK_IMPORTED_MODULE_3_d3_timer__[\"a\" /* now */])(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n Object(__WEBPACK_IMPORTED_MODULE_1__transition_schedule__[\"e\" /* default */])(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new __WEBPACK_IMPORTED_MODULE_0__transition_index__[\"a\" /* Transition */](groups, this._parents, name, id);\n});\n\n\n/***/ }),\n/* 372 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_interpolate__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__tween__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__interpolate__ = __webpack_require__(178);\n\n\n\n\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttribute(name);\n value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, value) {\n var fullname = Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"namespace\"])(name), i = fullname === \"transform\" ? __WEBPACK_IMPORTED_MODULE_0_d3_interpolate__[\"i\" /* interpolateTransformSvg */] : __WEBPACK_IMPORTED_MODULE_3__interpolate__[\"a\" /* default */];\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, Object(__WEBPACK_IMPORTED_MODULE_2__tween__[\"b\" /* tweenValue */])(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + \"\"));\n});\n\n\n/***/ }),\n/* 373 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n\n\nfunction attrTweenNS(fullname, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttributeNS(fullname.space, fullname.local, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttribute(name, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = Object(__WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"namespace\"])(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n});\n\n\n/***/ }),\n/* 374 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__schedule__ = __webpack_require__(12);\n\n\nfunction delayFunction(id, value) {\n return function() {\n Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"g\" /* init */])(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"g\" /* init */])(this, id).delay = value;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"f\" /* get */])(this.node(), id).delay;\n});\n\n\n/***/ }),\n/* 375 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__schedule__ = __webpack_require__(12);\n\n\nfunction durationFunction(id, value) {\n return function() {\n Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"h\" /* set */])(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"h\" /* set */])(this, id).duration = value;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"f\" /* get */])(this.node(), id).duration;\n});\n\n\n/***/ }),\n/* 376 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__schedule__ = __webpack_require__(12);\n\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"h\" /* set */])(this, id).ease = value;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"f\" /* get */])(this.node(), id).ease;\n});\n\n\n/***/ }),\n/* 377 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__index__ = __webpack_require__(19);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(match) {\n if (typeof match !== \"function\") match = Object(__WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"matcher\"])(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new __WEBPACK_IMPORTED_MODULE_1__index__[\"a\" /* Transition */](subgroups, this._parents, this._name, this._id);\n});\n\n\n/***/ }),\n/* 378 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(19);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new __WEBPACK_IMPORTED_MODULE_0__index__[\"a\" /* Transition */](merges, this._parents, this._name, this._id);\n});\n\n\n/***/ }),\n/* 379 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__schedule__ = __webpack_require__(12);\n\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? __WEBPACK_IMPORTED_MODULE_0__schedule__[\"g\" /* init */] : __WEBPACK_IMPORTED_MODULE_0__schedule__[\"h\" /* set */];\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? Object(__WEBPACK_IMPORTED_MODULE_0__schedule__[\"f\" /* get */])(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n});\n\n\n/***/ }),\n/* 380 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n});\n\n\n/***/ }),\n/* 381 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__index__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__schedule__ = __webpack_require__(12);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = Object(__WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"selector\"])(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n Object(__WEBPACK_IMPORTED_MODULE_2__schedule__[\"e\" /* default */])(subgroup[i], name, id, i, subgroup, Object(__WEBPACK_IMPORTED_MODULE_2__schedule__[\"f\" /* get */])(node, id));\n }\n }\n }\n\n return new __WEBPACK_IMPORTED_MODULE_1__index__[\"a\" /* Transition */](subgroups, this._parents, name, id);\n});\n\n\n/***/ }),\n/* 382 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__index__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__schedule__ = __webpack_require__(12);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = Object(__WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"selectorAll\"])(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = Object(__WEBPACK_IMPORTED_MODULE_2__schedule__[\"f\" /* get */])(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n Object(__WEBPACK_IMPORTED_MODULE_2__schedule__[\"e\" /* default */])(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new __WEBPACK_IMPORTED_MODULE_1__index__[\"a\" /* Transition */](subgroups, parents, name, id);\n});\n\n\n/***/ }),\n/* 383 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n\n\nvar Selection = __WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"selection\"].prototype.constructor;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return new Selection(this._groups, this._parents);\n});\n\n\n/***/ }),\n/* 384 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_interpolate__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_selection__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__tween__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__interpolate__ = __webpack_require__(178);\n\n\n\n\n\nfunction styleRemove(name, interpolate) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"style\"])(this, name),\n value1 = (this.style.removeProperty(name), Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"style\"])(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction styleRemoveEnd(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"style\"])(this, name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"style\"])(this, name),\n value1 = value(this);\n if (value1 == null) value1 = (this.style.removeProperty(name), Object(__WEBPACK_IMPORTED_MODULE_1_d3_selection__[\"style\"])(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? __WEBPACK_IMPORTED_MODULE_0_d3_interpolate__[\"h\" /* interpolateTransformCss */] : __WEBPACK_IMPORTED_MODULE_3__interpolate__[\"a\" /* default */];\n return value == null ? this\n .styleTween(name, styleRemove(name, i))\n .on(\"end.style.\" + name, styleRemoveEnd(name))\n : this.styleTween(name, typeof value === \"function\"\n ? styleFunction(name, i, Object(__WEBPACK_IMPORTED_MODULE_2__tween__[\"b\" /* tweenValue */])(this, \"style.\" + name, value))\n : styleConstant(name, i, value + \"\"), priority);\n});\n\n\n/***/ }),\n/* 385 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction styleTween(name, value, priority) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.style.setProperty(name, i(t), priority);\n };\n }\n tween._value = value;\n return tween;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n});\n\n\n/***/ }),\n/* 386 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tween__ = __webpack_require__(70);\n\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(Object(__WEBPACK_IMPORTED_MODULE_0__tween__[\"b\" /* tweenValue */])(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n});\n\n\n/***/ }),\n/* 387 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__schedule__ = __webpack_require__(12);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var name = this._name,\n id0 = this._id,\n id1 = Object(__WEBPACK_IMPORTED_MODULE_0__index__[\"c\" /* newId */])();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = Object(__WEBPACK_IMPORTED_MODULE_1__schedule__[\"f\" /* get */])(node, id0);\n Object(__WEBPACK_IMPORTED_MODULE_1__schedule__[\"e\" /* default */])(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new __WEBPACK_IMPORTED_MODULE_0__index__[\"a\" /* Transition */](groups, this._parents, name, id1);\n});\n\n\n/***/ }),\n/* 388 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_linear__ = __webpack_require__(389);\n/* unused harmony reexport easeLinear */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_quad__ = __webpack_require__(390);\n/* unused harmony reexport easeQuad */\n/* unused harmony reexport easeQuadIn */\n/* unused harmony reexport easeQuadOut */\n/* unused harmony reexport easeQuadInOut */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_cubic__ = __webpack_require__(391);\n/* unused harmony reexport easeCubic */\n/* unused harmony reexport easeCubicIn */\n/* unused harmony reexport easeCubicOut */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_2__src_cubic__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_poly__ = __webpack_require__(392);\n/* unused harmony reexport easePoly */\n/* unused harmony reexport easePolyIn */\n/* unused harmony reexport easePolyOut */\n/* unused harmony reexport easePolyInOut */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_sin__ = __webpack_require__(393);\n/* unused harmony reexport easeSin */\n/* unused harmony reexport easeSinIn */\n/* unused harmony reexport easeSinOut */\n/* unused harmony reexport easeSinInOut */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_exp__ = __webpack_require__(394);\n/* unused harmony reexport easeExp */\n/* unused harmony reexport easeExpIn */\n/* unused harmony reexport easeExpOut */\n/* unused harmony reexport easeExpInOut */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_circle__ = __webpack_require__(395);\n/* unused harmony reexport easeCircle */\n/* unused harmony reexport easeCircleIn */\n/* unused harmony reexport easeCircleOut */\n/* unused harmony reexport easeCircleInOut */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_bounce__ = __webpack_require__(396);\n/* unused harmony reexport easeBounce */\n/* unused harmony reexport easeBounceIn */\n/* unused harmony reexport easeBounceOut */\n/* unused harmony reexport easeBounceInOut */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_back__ = __webpack_require__(397);\n/* unused harmony reexport easeBack */\n/* unused harmony reexport easeBackIn */\n/* unused harmony reexport easeBackOut */\n/* unused harmony reexport easeBackInOut */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_elastic__ = __webpack_require__(398);\n/* unused harmony reexport easeElastic */\n/* unused harmony reexport easeElasticIn */\n/* unused harmony reexport easeElasticOut */\n/* unused harmony reexport easeElasticInOut */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 389 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export linear */\nfunction linear(t) {\n return +t;\n}\n\n\n/***/ }),\n/* 390 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export quadIn */\n/* unused harmony export quadOut */\n/* unused harmony export quadInOut */\nfunction quadIn(t) {\n return t * t;\n}\n\nfunction quadOut(t) {\n return t * (2 - t);\n}\n\nfunction quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n\n\n/***/ }),\n/* 391 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export cubicIn */\n/* unused harmony export cubicOut */\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = cubicInOut;\nfunction cubicIn(t) {\n return t * t * t;\n}\n\nfunction cubicOut(t) {\n return --t * t * t + 1;\n}\n\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\n\n/***/ }),\n/* 392 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export polyIn */\n/* unused harmony export polyOut */\n/* unused harmony export polyInOut */\nvar exponent = 3;\n\nvar polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nvar polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nvar polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n\n\n/***/ }),\n/* 393 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export sinIn */\n/* unused harmony export sinOut */\n/* unused harmony export sinInOut */\nvar pi = Math.PI,\n halfPi = pi / 2;\n\nfunction sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nfunction sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nfunction sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n\n\n/***/ }),\n/* 394 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export expIn */\n/* unused harmony export expOut */\n/* unused harmony export expInOut */\nfunction expIn(t) {\n return Math.pow(2, 10 * t - 10);\n}\n\nfunction expOut(t) {\n return 1 - Math.pow(2, -10 * t);\n}\n\nfunction expInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n}\n\n\n/***/ }),\n/* 395 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export circleIn */\n/* unused harmony export circleOut */\n/* unused harmony export circleInOut */\nfunction circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nfunction circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nfunction circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n\n\n/***/ }),\n/* 396 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export bounceIn */\n/* unused harmony export bounceOut */\n/* unused harmony export bounceInOut */\nvar b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nfunction bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nfunction bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nfunction bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n\n\n/***/ }),\n/* 397 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export backIn */\n/* unused harmony export backOut */\n/* unused harmony export backInOut */\nvar overshoot = 1.70158;\n\nvar backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nvar backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nvar backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n\n\n/***/ }),\n/* 398 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export elasticIn */\n/* unused harmony export elasticOut */\n/* unused harmony export elasticInOut */\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nvar elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nvar elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nvar elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n\n\n/***/ }),\n/* 399 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transition_index__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__transition_schedule__ = __webpack_require__(12);\n\n\n\nvar root = [null];\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > __WEBPACK_IMPORTED_MODULE_1__transition_schedule__[\"c\" /* SCHEDULED */] && schedule.name === name) {\n return new __WEBPACK_IMPORTED_MODULE_0__transition_index__[\"a\" /* Transition */]([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n});\n\n\n/***/ }),\n/* 400 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 401 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = ZoomEvent;\nfunction ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\n}\n\n\n/***/ }),\n/* 402 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = nopropagation;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_selection__ = __webpack_require__(3);\n\n\nfunction nopropagation() {\n __WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"event\"].stopImmediatePropagation();\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n __WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"event\"].preventDefault();\n __WEBPACK_IMPORTED_MODULE_0_d3_selection__[\"event\"].stopImmediatePropagation();\n});\n\n\n/***/ }),\n/* 403 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _cloneDeep = __webpack_require__(180);\n\nvar _cloneDeep2 = _interopRequireDefault(_cloneDeep);\n\nvar _defaultsDeep = __webpack_require__(125);\n\nvar _defaultsDeep2 = _interopRequireDefault(_defaultsDeep);\n\nvar _reduce = __webpack_require__(105);\n\nvar _reduce2 = _interopRequireDefault(_reduce);\n\nvar _forEach = __webpack_require__(32);\n\nvar _forEach2 = _interopRequireDefault(_forEach);\n\nvar _conf = __webpack_require__(419);\n\nvar _conf2 = _interopRequireDefault(_conf);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar logger = console;\n\nvar Layout = function () {\n function Layout(conf, data) {\n var _this = this;\n\n _classCallCheck(this, Layout);\n\n if (!data) {\n logger.log(2, 'no layout data', '');\n }\n\n this.conf = (0, _defaultsDeep2.default)(conf, (0, _cloneDeep2.default)(_conf2.default));\n this.data = data;\n var agg = (0, _reduce2.default)(data, function (aggregator, block) {\n block.offset = aggregator.offset;\n aggregator.blocks[block.id] = {\n label: block.label,\n len: block.len,\n color: block.color,\n offset: aggregator.offset\n };\n aggregator.offset += block.len;\n return aggregator;\n }, { blocks: {}, offset: 0 });\n this.blocks = agg.blocks;\n this.size = agg.offset;\n\n // thanks to sum of blocks' length, compute start and end angles in radian\n (0, _forEach2.default)(this.data, function (block, index) {\n _this.blocks[block.id].start = block.offset / _this.size * (2 * Math.PI - _this.data.length * _this.conf.gap) + index * _this.conf.gap;\n\n _this.blocks[block.id].end = (block.offset + block.len) / _this.size * (2 * Math.PI - _this.data.length * _this.conf.gap) + index * _this.conf.gap;\n\n block.start = block.offset / _this.size * (2 * Math.PI - _this.data.length * _this.conf.gap) + index * _this.conf.gap;\n\n block.end = (block.offset + block.len) / _this.size * (2 * Math.PI - _this.data.length * _this.conf.gap) + index * _this.conf.gap;\n });\n }\n\n _createClass(Layout, [{\n key: 'getAngle',\n value: function getAngle(blockId, unit) {\n var position = this.blocks[blockId].start / this.size;\n if (unit === 'deg') {\n return angle * 360;\n }\n\n if (unit === 'rad') {\n return position * 2 * Math.PI;\n }\n\n return null;\n }\n }, {\n key: 'summary',\n value: function summary() {\n return (0, _reduce2.default)(this.data, function (summary, block) {\n summary[block.id] = block.len;\n return summary;\n }, {});\n }\n }]);\n\n return Layout;\n}();\n\nexports.default = Layout;\n\n/***/ }),\n/* 404 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(31),\n keysIn = __webpack_require__(61);\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n\n\n/***/ }),\n/* 405 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(31),\n getSymbols = __webpack_require__(91);\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n\n\n/***/ }),\n/* 406 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(31),\n getSymbolsIn = __webpack_require__(182);\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n\n\n/***/ }),\n/* 407 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetAllKeys = __webpack_require__(148),\n getSymbolsIn = __webpack_require__(182),\n keysIn = __webpack_require__(61);\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n\n\n/***/ }),\n/* 408 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n\n\n/***/ }),\n/* 409 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar cloneArrayBuffer = __webpack_require__(85),\n cloneDataView = __webpack_require__(410),\n cloneRegExp = __webpack_require__(411),\n cloneSymbol = __webpack_require__(412),\n cloneTypedArray = __webpack_require__(135);\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n\n\n/***/ }),\n/* 410 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar cloneArrayBuffer = __webpack_require__(85);\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n\n\n/***/ }),\n/* 411 */\n/***/ (function(module, exports) {\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n\n\n/***/ }),\n/* 412 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(29);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n\n\n/***/ }),\n/* 413 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsMap = __webpack_require__(414),\n baseUnary = __webpack_require__(60),\n nodeUtil = __webpack_require__(89);\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n\n\n/***/ }),\n/* 414 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getTag = __webpack_require__(41),\n isObjectLike = __webpack_require__(6);\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n\n\n/***/ }),\n/* 415 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsSet = __webpack_require__(416),\n baseUnary = __webpack_require__(60),\n nodeUtil = __webpack_require__(89);\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n\n\n/***/ }),\n/* 416 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getTag = __webpack_require__(41),\n isObjectLike = __webpack_require__(6);\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n\n\n/***/ }),\n/* 417 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n\n\n/***/ }),\n/* 418 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseReduce;\n\n\n/***/ }),\n/* 419 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n innerRadius: 250,\n outerRadius: 300,\n cornerRadius: 0,\n gap: 0.04, // in radian\n opacity: 1,\n labels: {\n position: 'center',\n display: true,\n size: 14,\n color: '#000',\n radialOffset: 20\n },\n ticks: {\n display: true,\n color: 'grey',\n spacing: 10000000,\n labels: true,\n labelSpacing: 10,\n labelSuffix: '',\n labelDenominator: 1,\n labelDisplay0: true,\n labelSize: 10,\n labelColor: '#000',\n labelFont: 'default',\n majorSpacing: 5,\n size: {\n minor: 2,\n major: 5\n }\n },\n onClick: null,\n onMouseOver: null,\n events: {},\n zIndex: 100\n};\n\n/***/ }),\n/* 420 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = render;\n\nvar _forEach = __webpack_require__(32);\n\nvar _forEach2 = _interopRequireDefault(_forEach);\n\nvar _sortBy = __webpack_require__(106);\n\nvar _sortBy2 = _interopRequireDefault(_sortBy);\n\nvar _render = __webpack_require__(426);\n\nvar _render2 = _interopRequireDefault(_render);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction render() {\n var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var removeTracks = arguments[1];\n var circos = arguments[2];\n\n var renderAll = ids.length === 0;\n\n var svg = circos.svg.attr('width', circos.conf.width).attr('height', circos.conf.height);\n\n if (removeTracks) {\n (0, _forEach2.default)(circos.tracks, function (track, trackId) {\n svg.select('.' + trackId).remove();\n });\n }\n\n var translated = svg.select('.all');\n if (translated.empty()) {\n translated = svg.append('g').attr('class', 'all').attr('transform', 'translate(\\n ' + parseInt(circos.conf.width / 2) + ',\\n ' + parseInt(circos.conf.height / 2) + '\\n )');\n }\n\n (0, _forEach2.default)(circos.tracks, function (track, trackId) {\n if (renderAll || trackId in ids) {\n track.render(circos, translated, trackId);\n }\n });\n if (renderAll || 'layout' in ids) {\n (0, _render2.default)(translated, circos);\n }\n\n // re-order tracks and layout according to z-index\n var trackContainers = svg.selectAll('.all > g').remove();\n var sortedTrackContainers = (0, _sortBy2.default)(trackContainers._groups[0], function (elt) {\n return elt.getAttribute('z-index');\n });\n\n svg.select('.all').selectAll('g').data(sortedTrackContainers).enter().append(function (d) {\n return d;\n });\n\n return circos;\n}\n\n/***/ }),\n/* 421 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(29),\n isArguments = __webpack_require__(58),\n isArray = __webpack_require__(2);\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n\n\n/***/ }),\n/* 422 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayMap = __webpack_require__(40),\n baseIteratee = __webpack_require__(33),\n baseMap = __webpack_require__(158),\n baseSortBy = __webpack_require__(423),\n baseUnary = __webpack_require__(60),\n compareMultiple = __webpack_require__(424),\n identity = __webpack_require__(28);\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n\n\n/***/ }),\n/* 423 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n\n\n/***/ }),\n/* 424 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar compareAscending = __webpack_require__(425);\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n\n\n/***/ }),\n/* 425 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isSymbol = __webpack_require__(34);\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n\n\n/***/ }),\n/* 426 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = renderLayout;\n\nvar _d3Shape = __webpack_require__(13);\n\nvar _d3Array = __webpack_require__(10);\n\nvar _d3Selection = __webpack_require__(3);\n\nfunction renderLayoutLabels(conf, block) {\n var radius = conf.innerRadius + conf.labels.radialOffset;\n\n var labelArc = (0, _d3Shape.arc)().innerRadius(radius).outerRadius(radius).startAngle(function (d, i) {\n return d.start;\n }).endAngle(function (d, i) {\n return d.end;\n });\n\n block.append('path').attr('fill', 'none').attr('stroke', 'none').attr('d', labelArc).attr('id', function (d) {\n return 'arc-label' + d.id;\n });\n\n var label = block.append('text').style('font-size', '' + conf.labels.size + 'px').attr('text-anchor', 'middle');\n\n // http://stackoverflow.com/questions/20447106/how-to-center-horizontal-and-vertical-text-along-an-textpath-inside-an-arc-usi\n label.append('textPath').attr('startOffset', '25%').attr('xlink:href', function (d) {\n return '#arc-label' + d.id;\n }).style('fill', conf.labels.color).text(function (d) {\n return d.label;\n });\n}\n\nfunction renderLayoutTicks(conf, layout, instance) {\n // Returns an array of tick angles and labels, given a block.\n function blockTicks(d) {\n var k = (d.end - d.start) / d.len;\n return (0, _d3Array.range)(0, d.len, conf.ticks.spacing).map(function (v, i) {\n return {\n angle: v * k + d.start,\n label: displayLabel(v, i)\n };\n });\n }\n\n function displayLabel(v, i) {\n if (conf.ticks.labels === false) {\n return null;\n } else if (conf.ticks.labelDisplay0 === false && i === 0) {\n return null;\n } else if (i % conf.ticks.labelSpacing) {\n return null;\n } else {\n return v / conf.ticks.labelDenominator + conf.ticks.labelSuffix;\n }\n }\n\n var ticks = layout.append('g').selectAll('g').data(instance._layout.data).enter().append('g').selectAll('g').data(blockTicks).enter().append('g').attr('transform', function (d) {\n return 'rotate(' + (d.angle * 180 / Math.PI - 90) + ')' + 'translate(' + conf.outerRadius + ',0)';\n });\n\n ticks.append('line').attr('x1', 0).attr('y1', 1).attr('x2', function (d, i) {\n if (i % conf.ticks.majorSpacing) {\n return conf.ticks.size.minor;\n } else {\n return conf.ticks.size.major;\n }\n }).attr('y2', 1).style('stroke', conf.ticks.color);\n\n ticks.append('text').attr('x', 8).attr('dy', '.35em').attr('transform', function (d) {\n return d.angle > Math.PI ? 'rotate(180)translate(-16)' : null;\n }).style('text-anchor', function (d) {\n return d.angle > Math.PI ? 'end' : null;\n }).style('font-size', '' + conf.ticks.labelSize + 'px').style('fill', conf.ticks.labelColor).text(function (d) {\n return d.label;\n });\n}\n\nfunction renderLayout(parentElement, instance) {\n var conf = instance._layout.conf;\n parentElement.select('.cs-layout').remove();\n\n var layout = parentElement.append('g').attr('class', 'cs-layout').attr('z-index', conf.zIndex).on('click', conf.onClick);\n\n var block = layout.selectAll('g').data(instance._layout.data).enter().append('g').attr('class', function (d) {\n return d.id;\n }).attr('opacity', conf.opacity);\n\n Object.keys(conf.events).forEach(function (eventName) {\n block.on(eventName, function (d, i, nodes) {\n conf.events[eventName](d, i, nodes, _d3Selection.event);\n });\n });\n\n var entry = (0, _d3Shape.arc)().innerRadius(conf.innerRadius).outerRadius(conf.outerRadius).cornerRadius(conf.cornerRadius).startAngle(function (d) {\n return d.start;\n }).endAngle(function (d) {\n return d.end;\n });\n\n block.append('path').attr('d', entry).attr('fill', function (d) {\n return d.color;\n }).attr('id', function (d) {\n return d.id;\n });\n\n if (conf.labels.display) {\n renderLayoutLabels(conf, block);\n }\n\n if (conf.ticks.display) {\n renderLayoutTicks(conf, layout, instance);\n }\n}\n\n/***/ }),\n/* 427 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constant__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__math__ = __webpack_require__(44);\n\n\n\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / (y32 * x10 - x32 * y10);\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"l\" /* sqrt */])(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"l\" /* sqrt */])(Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"h\" /* max */])(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - __WEBPACK_IMPORTED_MODULE_2__math__[\"g\" /* halfPi */],\n a1 = endAngle.apply(this, arguments) - __WEBPACK_IMPORTED_MODULE_2__math__[\"g\" /* halfPi */],\n da = Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* abs */])(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = Object(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */])) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > __WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* tau */] - __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) {\n context.moveTo(r1 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"e\" /* cos */])(a0), r1 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) {\n context.moveTo(r0 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"e\" /* cos */])(a1), r0 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) && (padRadius ? +padRadius.apply(this, arguments) : Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"l\" /* sqrt */])(r0 * r0 + r1 * r1)),\n rc = Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* min */])(Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* abs */])(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) {\n var p0 = Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"c\" /* asin */])(rp / r0 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(ap)),\n p1 = Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"c\" /* asin */])(rp / r1 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(ap));\n if ((da0 -= p0 * 2) > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"e\" /* cos */])(a01),\n y01 = r1 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(a01),\n x10 = r0 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"e\" /* cos */])(a10),\n y10 = r0 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(a10);\n\n // Apply rounded corners?\n if (rc > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) {\n var x11 = r1 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"e\" /* cos */])(a11),\n y11 = r1 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(a11),\n x00 = r0 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"e\" /* cos */])(a00),\n y00 = r0 * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(a00);\n\n // Restrict the corner radius according to the sector angle.\n if (da < __WEBPACK_IMPORTED_MODULE_2__math__[\"j\" /* pi */]) {\n var oc = da0 > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */] ? intersect(x01, y01, x00, y00, x11, y11, x10, y10) : [x10, y10],\n ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"b\" /* acos */])((ax * bx + ay * by) / (Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"l\" /* sqrt */])(ax * ax + ay * ay) * Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"l\" /* sqrt */])(bx * bx + by * by))) / 2),\n lc = Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"l\" /* sqrt */])(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* min */])(rc, (r0 - lc) / (kc - 1));\n rc1 = Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* min */])(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */])) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t0.y01, t0.x01), Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t0.y01, t0.x01), Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t0.cy + t0.y11, t0.cx + t0.x11), Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t1.y11, t1.x11), Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) || !(da0 > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */])) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* epsilon */]) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t0.y01, t0.x01), Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t0.y01, t0.x01), Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t0.cy + t0.y11, t0.cx + t0.x11), Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t1.y11, t1.x11), Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* atan2 */])(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - __WEBPACK_IMPORTED_MODULE_2__math__[\"j\" /* pi */] / 2;\n return [Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"e\" /* cos */])(a) * r, Object(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* sin */])(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n});\n\n\n/***/ }),\n/* 428 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) {}\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (path);\n\n\n/***/ }),\n/* 429 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constant__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__descending__ = __webpack_require__(430);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__identity__ = __webpack_require__(431);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__math__ = __webpack_require__(44);\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var value = __WEBPACK_IMPORTED_MODULE_2__identity__[\"a\" /* default */],\n sortValues = __WEBPACK_IMPORTED_MODULE_1__descending__[\"a\" /* default */],\n sort = null,\n startAngle = Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(0),\n endAngle = Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_3__math__[\"m\" /* tau */]),\n padAngle = Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(__WEBPACK_IMPORTED_MODULE_3__math__[\"m\" /* tau */], Math.max(-__WEBPACK_IMPORTED_MODULE_3__math__[\"m\" /* tau */], endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(+_), pie) : padAngle;\n };\n\n return pie;\n});\n\n\n/***/ }),\n/* 430 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n});\n\n\n/***/ }),\n/* 431 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(d) {\n return d;\n});\n\n\n/***/ }),\n/* 432 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__curve_radial__ = __webpack_require__(184);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__area__ = __webpack_require__(183);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__lineRadial__ = __webpack_require__(185);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var a = Object(__WEBPACK_IMPORTED_MODULE_1__area__[\"a\" /* default */])().curve(__WEBPACK_IMPORTED_MODULE_0__curve_radial__[\"a\" /* curveRadialLinear */]),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return Object(__WEBPACK_IMPORTED_MODULE_2__lineRadial__[\"b\" /* lineRadial */])(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return Object(__WEBPACK_IMPORTED_MODULE_2__lineRadial__[\"b\" /* lineRadial */])(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return Object(__WEBPACK_IMPORTED_MODULE_2__lineRadial__[\"b\" /* lineRadial */])(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return Object(__WEBPACK_IMPORTED_MODULE_2__lineRadial__[\"b\" /* lineRadial */])(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(Object(__WEBPACK_IMPORTED_MODULE_0__curve_radial__[\"b\" /* default */])(_)) : c()._curve;\n };\n\n return a;\n});\n\n\n/***/ }),\n/* 433 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = linkHorizontal;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = linkVertical;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = linkRadial;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(187);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constant__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__point__ = __webpack_require__(109);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__pointRadial__ = __webpack_require__(186);\n\n\n\n\n\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = __WEBPACK_IMPORTED_MODULE_3__point__[\"a\" /* x */],\n y = __WEBPACK_IMPORTED_MODULE_3__point__[\"b\" /* y */],\n context = null;\n\n function link() {\n var buffer, argv = __WEBPACK_IMPORTED_MODULE_1__array__[\"a\" /* slice */].call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = Object(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = Object(__WEBPACK_IMPORTED_MODULE_4__pointRadial__[\"a\" /* default */])(x0, y0),\n p1 = Object(__WEBPACK_IMPORTED_MODULE_4__pointRadial__[\"a\" /* default */])(x0, y0 = (y0 + y1) / 2),\n p2 = Object(__WEBPACK_IMPORTED_MODULE_4__pointRadial__[\"a\" /* default */])(x1, y0),\n p3 = Object(__WEBPACK_IMPORTED_MODULE_4__pointRadial__[\"a\" /* default */])(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nfunction linkHorizontal() {\n return link(curveHorizontal);\n}\n\nfunction linkVertical() {\n return link(curveVertical);\n}\n\nfunction linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n\n\n/***/ }),\n/* 434 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return symbols; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__symbol_circle__ = __webpack_require__(188);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__symbol_cross__ = __webpack_require__(189);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__symbol_diamond__ = __webpack_require__(190);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__symbol_star__ = __webpack_require__(191);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__symbol_square__ = __webpack_require__(192);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__symbol_triangle__ = __webpack_require__(193);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__symbol_wye__ = __webpack_require__(194);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__constant__ = __webpack_require__(25);\n\n\n\n\n\n\n\n\n\n\nvar symbols = [\n __WEBPACK_IMPORTED_MODULE_1__symbol_circle__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_2__symbol_cross__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_3__symbol_diamond__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_5__symbol_square__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_4__symbol_star__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_6__symbol_triangle__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_7__symbol_wye__[\"a\" /* default */]\n];\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var type = Object(__WEBPACK_IMPORTED_MODULE_8__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_1__symbol_circle__[\"a\" /* default */]),\n size = Object(__WEBPACK_IMPORTED_MODULE_8__constant__[\"a\" /* default */])(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = Object(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_8__constant__[\"a\" /* default */])(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_8__constant__[\"a\" /* default */])(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n});\n\n\n/***/ }),\n/* 435 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__noop__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__basis__ = __webpack_require__(73);\n\n\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n areaEnd: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: Object(__WEBPACK_IMPORTED_MODULE_1__basis__[\"c\" /* point */])(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new BasisClosed(context);\n});\n\n\n/***/ }),\n/* 436 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__basis__ = __webpack_require__(73);\n\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: Object(__WEBPACK_IMPORTED_MODULE_0__basis__[\"c\" /* point */])(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new BasisOpen(context);\n});\n\n\n/***/ }),\n/* 437 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__basis__ = __webpack_require__(73);\n\n\nfunction Bundle(context, beta) {\n this._basis = new __WEBPACK_IMPORTED_MODULE_0__basis__[\"a\" /* Basis */](context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ((function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new __WEBPACK_IMPORTED_MODULE_0__basis__[\"a\" /* Basis */](context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85));\n\n\n/***/ }),\n/* 438 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cardinalClosed__ = __webpack_require__(195);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__noop__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__catmullRom__ = __webpack_require__(110);\n\n\n\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: __WEBPACK_IMPORTED_MODULE_1__noop__[\"a\" /* default */],\n areaEnd: __WEBPACK_IMPORTED_MODULE_1__noop__[\"a\" /* default */],\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: Object(__WEBPACK_IMPORTED_MODULE_2__catmullRom__[\"b\" /* point */])(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ((function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new __WEBPACK_IMPORTED_MODULE_0__cardinalClosed__[\"a\" /* CardinalClosed */](context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5));\n\n\n/***/ }),\n/* 439 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cardinalOpen__ = __webpack_require__(196);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__catmullRom__ = __webpack_require__(110);\n\n\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: Object(__WEBPACK_IMPORTED_MODULE_1__catmullRom__[\"b\" /* point */])(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ((function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new __WEBPACK_IMPORTED_MODULE_0__cardinalOpen__[\"a\" /* CardinalOpen */](context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5));\n\n\n/***/ }),\n/* 440 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__noop__ = __webpack_require__(72);\n\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n areaEnd: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new LinearClosed(context);\n});\n\n\n/***/ }),\n/* 441 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = monotoneX;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = monotoneY;\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nfunction monotoneX(context) {\n return new MonotoneX(context);\n}\n\nfunction monotoneY(context) {\n return new MonotoneY(context);\n}\n\n\n/***/ }),\n/* 442 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new Natural(context);\n});\n\n\n/***/ }),\n/* 443 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = stepBefore;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = stepAfter;\nfunction Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new Step(context, 0.5);\n});\n\nfunction stepBefore(context) {\n return new Step(context, 0);\n}\n\nfunction stepAfter(context) {\n return new Step(context, 1);\n}\n\n\n/***/ }),\n/* 444 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(187);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constant__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__offset_none__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__order_none__ = __webpack_require__(46);\n\n\n\n\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var keys = Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])([]),\n order = __WEBPACK_IMPORTED_MODULE_3__order_none__[\"a\" /* default */],\n offset = __WEBPACK_IMPORTED_MODULE_2__offset_none__[\"a\" /* default */],\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_0__array__[\"a\" /* slice */].call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? __WEBPACK_IMPORTED_MODULE_3__order_none__[\"a\" /* default */] : typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_0__array__[\"a\" /* slice */].call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? __WEBPACK_IMPORTED_MODULE_2__offset_none__[\"a\" /* default */] : _, stack) : offset;\n };\n\n return stack;\n});\n\n\n/***/ }),\n/* 445 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(45);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n Object(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series, order);\n});\n\n\n/***/ }),\n/* 446 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) >= 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = yp;\n }\n }\n }\n});\n\n\n/***/ }),\n/* 447 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(45);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n Object(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series, order);\n});\n\n\n/***/ }),\n/* 448 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(45);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n Object(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series, order);\n});\n\n\n/***/ }),\n/* 449 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(111);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series) {\n return Object(__WEBPACK_IMPORTED_MODULE_0__ascending__[\"a\" /* default */])(series).reverse();\n});\n\n\n/***/ }),\n/* 450 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(46);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ascending__ = __webpack_require__(111);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(__WEBPACK_IMPORTED_MODULE_1__ascending__[\"b\" /* sum */]),\n order = Object(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series).sort(function(a, b) { return sums[b] - sums[a]; }),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n});\n\n\n/***/ }),\n/* 451 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(46);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series) {\n return Object(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series).reverse();\n});\n\n\n/***/ }),\n/* 452 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__pairs__ = __webpack_require__(199);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = __WEBPACK_IMPORTED_MODULE_0__pairs__[\"b\" /* pair */];\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n});\n\n\n/***/ }),\n/* 453 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n});\n\n\n/***/ }),\n/* 454 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(203);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bisect__ = __webpack_require__(197);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constant__ = __webpack_require__(455);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__extent__ = __webpack_require__(202);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__identity__ = __webpack_require__(456);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__range__ = __webpack_require__(204);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ticks__ = __webpack_require__(205);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__threshold_sturges__ = __webpack_require__(206);\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var value = __WEBPACK_IMPORTED_MODULE_4__identity__[\"a\" /* default */],\n domain = __WEBPACK_IMPORTED_MODULE_3__extent__[\"a\" /* default */],\n threshold = __WEBPACK_IMPORTED_MODULE_7__threshold_sturges__[\"a\" /* default */];\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = Object(__WEBPACK_IMPORTED_MODULE_6__ticks__[\"c\" /* tickStep */])(x0, x1, tz);\n tz = Object(__WEBPACK_IMPORTED_MODULE_5__range__[\"a\" /* default */])(Math.ceil(x0 / tz) * tz, Math.floor(x1 / tz) * tz, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[Object(__WEBPACK_IMPORTED_MODULE_1__bisect__[\"c\" /* default */])(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : Object(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? Object(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_0__array__[\"b\" /* slice */].call(_)) : Object(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(_), histogram) : threshold;\n };\n\n return histogram;\n});\n\n\n/***/ }),\n/* 455 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 456 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return x;\n});\n\n\n/***/ }),\n/* 457 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(203);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ascending__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__number__ = __webpack_require__(47);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__quantile__ = __webpack_require__(112);\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, min, max) {\n values = __WEBPACK_IMPORTED_MODULE_0__array__[\"a\" /* map */].call(values, __WEBPACK_IMPORTED_MODULE_2__number__[\"a\" /* default */]).sort(__WEBPACK_IMPORTED_MODULE_1__ascending__[\"a\" /* default */]);\n return Math.ceil((max - min) / (2 * (Object(__WEBPACK_IMPORTED_MODULE_3__quantile__[\"a\" /* default */])(values, 0.75) - Object(__WEBPACK_IMPORTED_MODULE_3__quantile__[\"a\" /* default */])(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n});\n\n\n/***/ }),\n/* 458 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__deviation__ = __webpack_require__(200);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * Object(__WEBPACK_IMPORTED_MODULE_0__deviation__[\"a\" /* default */])(values) * Math.pow(values.length, -1 / 3)));\n});\n\n\n/***/ }),\n/* 459 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n});\n\n\n/***/ }),\n/* 460 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(47);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = Object(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n});\n\n\n/***/ }),\n/* 461 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__number__ = __webpack_require__(47);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__quantile__ = __webpack_require__(112);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = Object(__WEBPACK_IMPORTED_MODULE_1__number__[\"a\" /* default */])(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = Object(__WEBPACK_IMPORTED_MODULE_1__number__[\"a\" /* default */])(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return Object(__WEBPACK_IMPORTED_MODULE_2__quantile__[\"a\" /* default */])(numbers.sort(__WEBPACK_IMPORTED_MODULE_0__ascending__[\"a\" /* default */]), 0.5);\n});\n\n\n/***/ }),\n/* 462 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n});\n\n\n/***/ }),\n/* 463 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n});\n\n\n/***/ }),\n/* 464 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(36);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = __WEBPACK_IMPORTED_MODULE_0__ascending__[\"a\" /* default */];\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n});\n\n\n/***/ }),\n/* 465 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n});\n\n\n/***/ }),\n/* 466 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n});\n\n\n/***/ }),\n/* 467 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transpose__ = __webpack_require__(208);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return Object(__WEBPACK_IMPORTED_MODULE_0__transpose__[\"a\" /* default */])(arguments);\n});\n\n\n/***/ }),\n/* 468 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Track2 = __webpack_require__(20);\n\nvar _Track3 = _interopRequireDefault(_Track2);\n\nvar _dataParser = __webpack_require__(21);\n\nvar _forEach = __webpack_require__(32);\n\nvar _forEach2 = _interopRequireDefault(_forEach);\n\nvar _assign = __webpack_require__(14);\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _configs = __webpack_require__(22);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar defaultConf = (0, _assign2.default)({\n style: {\n value: {},\n iteratee: true\n },\n color: {\n value: 'black',\n iteratee: true\n },\n backgrounds: {\n value: [],\n iteratee: false\n }\n}, _configs.common, _configs.radial);\n\nvar Text = function (_Track) {\n _inherits(Text, _Track);\n\n function Text(instance, conf, data) {\n _classCallCheck(this, Text);\n\n return _possibleConstructorReturn(this, (Text.__proto__ || Object.getPrototypeOf(Text)).call(this, instance, conf, defaultConf, data, _dataParser.parsePositionTextData));\n }\n\n _createClass(Text, [{\n key: 'renderDatum',\n value: function renderDatum(parentElement, conf, layout) {\n var _this2 = this;\n\n var text = parentElement.selectAll('g').data(function (d) {\n return d.values.map(function (item) {\n item._angle = _this2.theta(item.position, layout.blocks[item.block_id]) * 360 / (2 * Math.PI) - 90;\n item._anchor = item._angle > 90 ? 'end' : 'start';\n item._rotate = item._angle > 90 ? 180 : 0;\n return item;\n });\n }).enter().append('g').append('text').text(function (d) {\n return d.value;\n }).attr('transform', function (d) {\n return '\\n rotate(' + d._angle + ')\\n translate(' + conf.innerRadius + ', 0)\\n rotate(' + d._rotate + ')\\n ';\n }).attr('text-anchor', function (d) {\n return d._anchor;\n });\n (0, _forEach2.default)(conf.style, function (value, key) {\n text.style(key, value);\n });\n return text;\n }\n }]);\n\n return Text;\n}(_Track3.default);\n\nexports.default = Text;\n\n/***/ }),\n/* 469 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\nvar content = __webpack_require__(470);\n\nif(typeof content === 'string') content = [[module.i, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(472)(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {\n\tmodule.hot.accept(\"!!../../node_modules/css-loader/index.js!./tooltip.css\", function() {\n\t\tvar newContent = require(\"!!../../node_modules/css-loader/index.js!./tooltip.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n/***/ }),\n/* 470 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(471)(false);\n// imports\n\n\n// module\nexports.push([module.i, \"div.circos-tooltip {\\r\\n position: absolute;\\r\\n text-align: center;\\r\\n padding: 5px 10px;\\r\\n background: #111111;\\r\\n color: white;\\r\\n border: 0px;\\r\\n pointer-events: none;\\r\\n z-index: 1000;\\r\\n}\\r\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 471 */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n/***/ }),\n/* 472 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(473);\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of '+(t+=' ')+""}var ua=e(4);function la(t,n,e,r){var o,i;return o=n[t],e.push(o),(i={iscn:o[o.length-1].iscn.stop,bp:o[o.length-1].bp.stop}).iscn>r.maxLength.iscn&&(r.maxLength.iscn=i.iscn),i.bp>r.maxLength.bp&&(r.maxLength.bp=i.bp),e}function fa(t,n,e,r){var o,i;if("iscn"===r.coordinateSystem||r.config.multiorganism)e=function(t,n,e,r){var o,i,a;for(o=r.bandData[t],i=r.parseBands(o,t,n),n=Object.keys(i).sort((function(t,n){return Co(t,n)})),r.config.chromosomes[t]=n.slice(),r.numChromosomes+=r.config.chromosomes[t].length,a=0;ar.maxLength.bp&&(r.maxLength.bp=o.length);return e}function ha(){var t,n,e,r,o,i,a,s,c=(new Date).getTime();e=[],t=function(t){var n,e,r;if(!0===t.config.multiorganism)for(t.coordinateSystem="bp",r=t.config.taxids,n=0;n1&&o.length>1&&(t=r[0].replace("chr",""),o=r[1].split("-"),n=parseInt(o[0]),e=parseInt(o[1]-1)),[t,n,e]}(t,n,e),t=(o=_slicedToArray(r,3))[0],n=o[1],e=o[2],u=(a=_slicedToArray(function(t,n){var e,r,o=[1],i=[1],a=t.bands.slice(-1)[0];for(r=0;r1){if(o=function(t,n){var e,r,o,i,a,s,c,u,l;for(e=0;e=a&&n<=s)return[u+l*(o+i/c*(n-a)-o)/i,r];return[null,r]}(t,n),r=(i=_slicedToArray(o,2))[0],e=i[1],null!==r)return r}else if(n>=1&&n<=t.length)return t.scale.bp*n;!function(t,n,e){throw new Error("Base pair out of range. bp: "+t+"; length of chr"+n.name+": "+e.bp.stop)}(n,t,e)}function ba(t,n,e,r,o,i,a){var s,c,u,l;return a=t-n,s=r-o,c=i.bp.stop-i.bp.start,u=n+a/s*(e-o),l=i.bp.start+c*(u-n)/a,Math.round(l)}function _a(t,n){var e,r,o,i,a,s;for(0===n&&(n=t.bands[0].px.start),e=0;e=o&&n<=i)return ba(s,a,n,i,o,r,void 0);!function(t,n,e){throw new Error("Pixel out of range. px: "+t+"; length of chr"+n.name+": "+e)}(n,t,i)}da.scaleLinear=De,da.max=ee;var wa=e(6),xa=Object.assign({},i);function Aa(){var t,n,e=[],r=this.annots;for(n=0;n1&&this._model.bands.push({name:"q",px:{start:0,stop:this._model.width,width:this._model.width},bp:{start:1,stop:this._model.length}}),this._model}},{key:"getCssClass",value:function(){return"noBands"}}]),n}(La),Ba=function(){function t(n){_classCallCheck(this,t),this._config=n,this._ploidy=new Bo(this._config)}return _createClass(t,[{key:"getArmColor",value:function(t,n,e){return this._config.armColors?this._config.armColors[e]:this._config.ancestors?this._getPolyploidArmColor(t,n,e):null}},{key:"getBorderColor",value:function(t,n,e){return n1&&(r=this._ploidy.getChromosomesNumber(n)),i=0;i1||""===n.orientation)&&(t-=1),t}(n,s),o=-4,!0===s.showBandLabels&&(o=s.chrMargin+s.chrWidth+26),i=s.chrMargin*n,s.numAnnotTracks>1==0&&(i+=1),a=i+o,t.selectAll("text.chrLabel").attr("transform",e.scaleSvg).selectAll("tspan").attr("x",e.x).attr("y",a)}(t,n,o,this):function(t,n,e,r){var o,i,a,s=r.config;o=-s.chrWidth-2,!0===s.showBandLabels&&(o=s.chrMargin+8),i=s.annotTracksHeight,"overlay"!==s.annotationsLayout&&(i*=2),a=3-(s.chrMargin*n+o)+i,a/=e.scale.x,t.selectAll("text.chrLabel").attr("transform","rotate(-90)"+e.scaleSvg).selectAll("tspan").attr("x",a).attr("y",e.y)}(t,n,o,this)}var za=To.a.assign({},i,a,o,r);za.scaleLinear=De,za.max=ee;var qa=function(){function t(n){_classCallCheck(this,t),this.configure=Mo,this.initDrawChromosomes=Go,this.onLoad=Ko,this.handleRotateOnClick=Qo,this.init=ti,this.finishInit=Do,this.writeContainer=Yo,this.onLoadAnnots=gi,this.onDrawAnnots=pi,this.processAnnotData=Ri,this.restoreDefaultTracks=Pi,this.updateDisplayedTracks=Fi,this.initAnnotSettings=Ui,this.fetchAnnots=zi,this.drawAnnots=ki,this.getHistogramBars=bi,this.drawHeatmaps=ci,this.deserializeAnnotsForHeatmap=hi,this.fillAnnots=qi,this.drawProcessedAnnots=Ci,this.drawSynteny=Bi,this.startHideAnnotTooltipTimeout=mi,this.showAnnotTooltip=yi,this.onWillShowAnnotTooltip=vi,this.setOriginalTrackIndexes=Ei,this.esearch="https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?retmode=json&api_key=7e33ac6a08a6955ec3b83d214d22b21a2808",this.esummary="https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?retmode=json&api_key=7e33ac6a08a6955ec3b83d214d22b21a2808",this.elink="https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?retmode=json&api_key=7e33ac6a08a6955ec3b83d214d22b21a2808",this.getTaxidFromEutils=Xi.b,this.setTaxidData=Xi.e,this.setTaxidAndAssemblyAndChromosomes=Xi.d,this.getOrganismFromEutils=Xi.a,this.getTaxids=Xi.c,this.getAssemblyAndChromosomesFromEutils=Gi,this.parseBands=ua.a,this.drawBandLabels=aa,this.getBandColorGradients=ca,this.processBandData=ha,this.setBandsToShow=ea,this.hideUnshownBandLabels=Zi,this.drawBandLabelText=oa,this.drawBandLabelStalk=ia,this.onBrushMove=ga,this.createBrush=pa,this.drawSexChromosomes=ma,this.setSexChromosomes=va,this.convertBpToPx=ya,this.convertPxToBp=_a,this.unpackAnnots=Aa,this.packAnnots=ka,this.initCrossFilter=Ca,this.filterAnnots=Ta,this.assemblyIsAccession=To.b,this.getDataDir=To.c,this.round=To.h,this.onDidRotate=To.g,this.getSvg=To.d,this.getChromosomeModel=Sa,this.getChromosomePixels=Ma,this.drawChromosomeLabels=Ua,this.rotateChromosomeLabels=Ya,this.appendHomolog=Ha,this.drawChromosome=Ia,this.rotateAndToggleDisplay=ja,this.setOverflowScroll=Ra,this.configure(n)}return _createClass(t,null,[{key:"slugify",value:function(t){return t.toLowerCase().replace(" ","-")}},{key:"sortChromosomes",value:function(t,n){var e="nuclear"===t.type,r="nuclear"===n.type,o="chloroplast"===t.type,i="chloroplast"===n.type,a="mitochondrion"===t.type,s="mitochondrion"===n.type,c="apicoplast"===t.type,u="apicoplast"===n.type;return e&&r?Co(t.name,n.name):!e&&r?1:a&&i?1:o&&s?-1:c||a||o||!(s||i||u)?void 0:-1}},{key:"version",get:function(){return"1.4.1"}},{key:"d3",get:function(){return za}}]),t}();window.Ideogram=qa,n.default=qa}])},"object"==_typeof(exports)&&"object"==_typeof(module)?module.exports=n():(__WEBPACK_AMD_DEFINE_ARRAY__=[],void 0===(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof(__WEBPACK_AMD_DEFINE_FACTORY__=n)?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__)||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}).call(this,__webpack_require__(75)(module))},41:function(t,n,e){"use strict";e.r(n),e.d(n,"default",(function(){return p}));var r=e(1),o=e.n(r),i=e(249),a=e.n(i),s=e(466),c=e(14);function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(){return(l=Object.assign||function(t){for(var n=1;n=i?c=!0:10===(r=t.charCodeAt(a++))?u=!0:13===r&&(u=!0,10===t.charCodeAt(a)&&++a),t.slice(o+1,n-1).replace(/""/g,'"')}for(;a=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a0)for(var e,r,o=new Array(e),i=0;i>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):(n=V.exec(t))?rt(parseInt(n[1],16)):(n=G.exec(t))?new st(n[1],n[2],n[3],1):(n=Q.exec(t))?new st(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=K.exec(t))?ot(n[1],n[2],n[3],n[4]):(n=Z.exec(t))?ot(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=J.exec(t))?ut(n[1],n[2]/100,n[3]/100,1):(n=tt.exec(t))?ut(n[1],n[2]/100,n[3]/100,n[4]):nt.hasOwnProperty(t)?rt(nt[t]):"transparent"===t?new st(NaN,NaN,NaN,0):null}function rt(t){return new st(t>>16&255,t>>8&255,255&t,1)}function ot(t,n,e,r){return r<=0&&(t=n=e=NaN),new st(t,n,e,r)}function it(t){return t instanceof Y||(t=et(t)),t?new st((t=t.rgb()).r,t.g,t.b,t.opacity):new st}function at(t,n,e,r){return 1===arguments.length?it(t):new st(t,n,e,null==r?1:r)}function st(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function ct(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 ft(t,n,e,r)}function lt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof ft)return new ft(t.h,t.s,t.l,t.opacity);if(t instanceof Y||(t=et(t)),!t)return new ft;if(t instanceof ft)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,o=Math.min(n,e,r),i=Math.max(n,e,r),a=NaN,s=i-o,c=(i+o)/2;return s?(a=n===i?(e-r)/s+6*(e0&&c<1?0:a,new ft(a,s,c,t.opacity)}(t):new ft(t,n,e,null==r?1:r)}function ft(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function ht(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}W(Y,et,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),W(st,at,U(Y,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new st(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new st(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+ct(this.r)+ct(this.g)+ct(this.b)},toString:function(){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+")")}})),W(ft,lt,U(Y,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new ft(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new ft(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,o=2*e-r;return new st(ht(t>=240?t-240:t+120,o,r),ht(t,o,r),ht(t<120?t+240:t-120,o,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}}));var dt=Math.PI/180,gt=180/Math.PI,pt=6/29,mt=3*pt*pt;function bt(t){if(t instanceof yt)return new yt(t.l,t.a,t.b,t.opacity);if(t instanceof Ct){if(isNaN(t.h))return new yt(t.l,0,0,t.opacity);var n=t.h*dt;return new yt(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof st||(t=it(t));var e,r,o=xt(t.r),i=xt(t.g),a=xt(t.b),s=vt((.2225045*o+.7168786*i+.0606169*a)/1);return o===i&&i===a?e=r=s:(e=vt((.4360747*o+.3850649*i+.1430804*a)/.96422),r=vt((.0139322*o+.0971045*i+.7141733*a)/.82521)),new yt(116*s-16,500*(e-s),200*(s-r),t.opacity)}function yt(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function vt(t){return t>.008856451679035631?Math.pow(t,1/3):t/mt+4/29}function _t(t){return t>pt?t*t*t:mt*(t-4/29)}function wt(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function xt(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function At(t){if(t instanceof Ct)return new Ct(t.h,t.c,t.l,t.opacity);if(t instanceof yt||(t=bt(t)),0===t.a&&0===t.b)return new Ct(NaN,0,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*gt;return new Ct(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function kt(t,n,e,r){return 1===arguments.length?At(t):new Ct(t,n,e,null==r?1:r)}function Ct(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}W(yt,(function(t,n,e,r){return 1===arguments.length?bt(t):new yt(t,n,e,null==r?1:r)}),U(Y,{brighter:function(t){return new yt(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new yt(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return new st(wt(3.1338561*(n=.96422*_t(n))-1.6168667*(t=1*_t(t))-.4906146*(e=.82521*_t(e))),wt(-.9787684*n+1.9161415*t+.033454*e),wt(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),W(Ct,kt,U(Y,{brighter:function(t){return new Ct(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Ct(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return bt(this).rgb()}}));var Tt=1.78277,Mt=-.29227,St=-.90649,Lt=1.97294,Dt=Lt*St,Bt=Lt*Tt,Ot=Tt*Mt- -.14861*St;function Pt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Ft)return new Ft(t.h,t.s,t.l,t.opacity);t instanceof st||(t=it(t));var n=t.r/255,e=t.g/255,r=t.b/255,o=(Ot*r+Dt*n-Bt*e)/(Ot+Dt-Bt),i=r-o,a=(Lt*(e-o)-Mt*i)/St,s=Math.sqrt(a*a+i*i)/(Lt*o*(1-o)),c=s?Math.atan2(a,i)*gt-120:NaN;return new Ft(c<0?c+360:c,s,o,t.opacity)}(t):new Ft(t,n,e,null==r?1:r)}function Ft(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Et(t,n,e,r,o){var i=t*t,a=i*t;return((1-3*t+3*i-a)*n+(4-6*i+3*a)*e+(1+3*t+3*i-3*a)*r+a*o)/6}W(Ft,Pt,U(Y,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ft(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ft(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*dt,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),o=Math.sin(t);return new st(255*(n+e*(-.14861*r+Tt*o)),255*(n+e*(Mt*r+St*o)),255*(n+e*(Lt*r)),this.opacity)}}));var Nt=function(t){return function(){return t}};function Ht(t,n){return function(e){return t+e*n}}function It(t,n){var e=n-t;return e?Ht(t,e>180||e<-180?e-360*Math.round(e/360):e):Nt(isNaN(t)?n:t)}function jt(t,n){var e=n-t;return e?Ht(t,e):Nt(isNaN(t)?n:t)}var Rt=function t(n){var e=function(t){return 1==(t=+t)?jt: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):Nt(isNaN(n)?e:n)}}(n);function r(t,n){var r=e((t=at(t)).r,(n=at(n)).r),o=e(t.g,n.g),i=e(t.b,n.b),a=jt(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=o(n),t.b=i(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function Wt(t){return function(n){var e,r,o=n.length,i=new Array(o),a=new Array(o),s=new Array(o);for(e=0;e=1?(e=1,n-1):Math.floor(e*n),o=t[r],i=t[r+1],a=r>0?t[r-1]:2*o-i,s=ri&&(o=n.slice(i,o),s[a]?s[a]+=o:s[++a]=o),(e=e[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,c.push({i:a,x:Xt(e,r)})),i=Vt.lastIndex;return i180?n+=360:n-t>180&&(t+=360),i.push({i:e.push(o(e)+"rotate(",null,r)-2,x:Xt(t,n)})):n&&e.push(o(e)+"rotate("+n+r)}(i.rotate,a.rotate,s,c),function(t,n,e,i){t!==n?i.push({i:e.push(o(e)+"skewX(",null,r)-2,x:Xt(t,n)}):n&&e.push(o(e)+"skewX("+n+r)}(i.skewX,a.skewX,s,c),function(t,n,e,r,i,a){if(t!==e||n!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:Xt(t,e)},{i:s-2,x:Xt(n,r)})}else 1===e&&1===r||i.push(o(i)+"scale("+e+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,c),i=a=null,function(t){for(var n,e=-1,r=c.length;++e=0&&n._call.call(null,t),n=n._next;--fn}()}finally{fn=0,function(){for(var t,n,e=cn,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:cn=n);un=t,Cn(r)}(),pn=0}}function kn(){var t=bn.now(),n=t-gn;n>1e3&&(mn-=n,gn=t)}function Cn(t){fn||(hn&&(hn=clearTimeout(hn)),t-pn>24?(t<1/0&&(hn=setTimeout(An,t-bn.now()-mn)),dn&&(dn=clearInterval(dn))):(dn||(gn=bn.now(),dn=setInterval(kn,1e3)),fn=1,yn(An)))}wn.prototype=xn.prototype={constructor:wn,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?vn():+e)+(null==n?0:+n),this._next||un===this||(un?un._next=this:cn=this,un=this),this._call=t,this._time=e,Cn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Cn())}};var Tn=function(t,n,e){var r=new wn;return n=null==n?0:+n,r.restart((function(e){r.stop(),t(e+n)}),n,e),r},Mn=H("start","end","interrupt"),Sn=[],Ln=function(t,n,e,r,o,i){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,o=t.__transition;function i(c){var u,l,f,h;if(1!==e.state)return s();for(u in o)if((h=o[u]).name===e.name){if(3===h.state)return Tn(i);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete o[u]):+u0)throw new Error("too late; already scheduled");return e}function Bn(t,n){var e=On(t,n);if(e.state>2)throw new Error("too late; already started");return e}function On(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}var Pn=function(t,n){var e,r,o,i=t.__transition,a=!0;if(i){for(o in n=null==n?null:n+"",i)(e=i[o]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete i[o]):a=!1;a&&delete t.__transition}};function Fn(t,n,e){var r=t._id;return t.each((function(){var t=Bn(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)})),function(t){return On(t,r).value[n]}}var En=function(t,n){var e;return("number"==typeof n?Xt:n instanceof et?Rt:(e=et(n))?(n=e,Rt):Gt)(t,n)},Nn=a.h.prototype.constructor,Hn=0;function In(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function jn(){return++Hn}var Rn=a.h.prototype;In.prototype=function(t){return Object(a.h)().transition(t)}.prototype={constructor:In,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=Object(a.i)(t));for(var r=this._groups,o=r.length,i=new Array(o),s=0;s=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?Dn:Bn;return function(){var a=i(this,t),s=a.on;s!==r&&(o=(r=s).copy()).on(n,e),a.on=o}}(e,t,n))},attr:function(t,n){var e=Object(a.e)(t),r="transform"===e?rn:En;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,o,i;return function(){var a,s=e(this);if(null!=s)return(a=this.getAttributeNS(t.space,t.local))===s?null:a===r&&s===o?i:i=n(r=a,o=s);this.removeAttributeNS(t.space,t.local)}}:function(t,n,e){var r,o,i;return function(){var a,s=e(this);if(null!=s)return(a=this.getAttribute(t))===s?null:a===r&&s===o?i:i=n(r=a,o=s);this.removeAttribute(t)}})(e,r,Fn(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,o;return function(){var i=this.getAttributeNS(t.space,t.local);return i===e?null:i===r?o:o=n(r=i,e)}}:function(t,n,e){var r,o;return function(){var i=this.getAttribute(t);return i===e?null:i===r?o:o=n(r=i,e)}})(e,r,n+""))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=Object(a.e)(t);return this.tween(e,(r.local?function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}:function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e})(r,n))},style:function(t,n,e){var r="transform"==(t+="")?en:En;return null==n?this.styleTween(t,function(t,n){var e,r,o;return function(){var i=Object(a.k)(this,t),s=(this.style.removeProperty(t),Object(a.k)(this,t));return i===s?null:i===e&&s===r?o:o=n(e=i,r=s)}}(t,r)).on("end.style."+t,function(t){return function(){this.style.removeProperty(t)}}(t)):this.styleTween(t,"function"==typeof n?function(t,n,e){var r,o,i;return function(){var s=Object(a.k)(this,t),c=e(this);return null==c&&(this.style.removeProperty(t),c=Object(a.k)(this,t)),s===c?null:s===r&&c===o?i:i=n(r=s,o=c)}}(t,r,Fn(this,"style."+t,n)):function(t,n,e){var r,o;return function(){var i=Object(a.k)(this,t);return i===e?null:i===r?o:o=n(r=i,e)}}(t,r,n+""),e)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){function r(){var r=this,o=n.apply(r,arguments);return o&&function(n){r.style.setProperty(t,o(n),e)}}return r._value=n,r}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(Fn(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}));var t},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,o=On(this.node(),e).tween,i=0,a=o.length;i0&&(e=o-g),A<0?h=d-p:A>0&&(i=s-p),w=Gn,N.attr("cursor",ne.selection),W());break;default:return}$n()}),!0).on("keyup.brush",(function(){switch(a.b.keyCode){case 16:B&&(b=y=B=!1,W());break;case 18:w===Kn&&(x<0?l=f:x>0&&(e=o),A<0?h=d:A>0&&(i=s),w=Qn,W());break;case 32:w===Gn&&(a.b.altKey?(x&&(l=f-g*x,e=o+g*x),A&&(h=d-p*A,i=s+p*A),w=Kn):(x<0?l=f:x>0&&(e=o),A<0?h=d:A>0&&(i=s),w=Qn),N.attr("cursor",ne[_]),W());break;default:return}$n()}),!0).on("mousemove.brush",I,!0).on("mouseup.brush",U,!0);j(a.b.view)}Xn(),Pn(v),c.call(v),F.start()}function I(){var t=Object(a.d)(v);!B||b||y||(Math.abs(t[0]-P[0])>Math.abs(t[1]-P[1])?y=!0:b=!0),P=t,m=!0,$n(),W()}function W(){var t;switch(g=P[0]-O[0],p=P[1]-O[1],w){case Gn:case Vn:x&&(g=Math.max(M-e,Math.min(L-l,g)),o=e+g,f=l+g),A&&(p=Math.max(S-i,Math.min(D-h,p)),s=i+p,d=h+p);break;case Qn:x<0?(g=Math.max(M-e,Math.min(L-e,g)),o=e+g,f=l):x>0&&(g=Math.max(M-l,Math.min(L-l,g)),o=e,f=l+g),A<0?(p=Math.max(S-i,Math.min(D-i,p)),s=i+p,d=h):A>0&&(p=Math.max(S-h,Math.min(D-h,p)),s=i,d=h+p);break;case Kn:x&&(o=Math.max(M,Math.min(L,e-g*x)),f=Math.max(M,Math.min(L,l+g*x))),A&&(s=Math.max(S,Math.min(D,i-p*A)),d=Math.max(S,Math.min(D,h+p*A)))}fn?1:t>=n?0:NaN},be=function(t){var n;return 1===t.length&&(n=t,t=function(t,e){return me(n(t),e)}),{left:function(n,e,r,o){for(null==r&&(r=0),null==o&&(o=n.length);r>>1;t(n[i],e)<0?r=i+1:o=i}return r},right:function(n,e,r,o){for(null==r&&(r=0),null==o&&(o=n.length);r>>1;t(n[i],e)>0?o=i:r=i+1}return r}}}(me),ye=be.right,ve=(be.left,ye),_e=Array.prototype,we=(_e.slice,_e.map,Math.sqrt(50)),xe=Math.sqrt(10),Ae=Math.sqrt(2);function ke(t,n,e){var r=(n-t)/Math.max(0,e),o=Math.floor(Math.log(r)/Math.LN10),i=r/Math.pow(10,o);return o>=0?(i>=we?10:i>=xe?5:i>=Ae?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(i>=we?10:i>=xe?5:i>=Ae?2:1)}function Ce(){}function Te(t,n){var e=new Ce;if(t instanceof Ce)t.each((function(t,n){e.set(n,t)}));else if(Array.isArray(t)){var r,o=-1,i=t.length;if(null==n)for(;++o1?r[0]+r.slice(2):r,+t.slice(e+1)]},Ie=function(t){return(t=He(Math.abs(t)))?t[1]:NaN},je=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Re(t){return new We(t)}function We(t){if(!(n=je.exec(t)))throw new Error("invalid format: "+t);var n;this.fill=n[1]||" ",this.align=n[2]||">",this.sign=n[3]||"-",this.symbol=n[4]||"",this.zero=!!n[5],this.width=n[6]&&+n[6],this.comma=!!n[7],this.precision=n[8]&&+n[8].slice(1),this.trim=!!n[9],this.type=n[10]||""}Re.prototype=We.prototype,We.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Ue,Ye,ze,qe,Xe=function(t,n){var e=He(t,n);if(!e)return t+"";var r=e[0],o=e[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")},$e={"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return Xe(100*t,n)},r:Xe,s:function(t,n){var e=He(t,n);if(!e)return t+"";var r=e[0],o=e[1],i=o-(Ue=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,a=r.length;return i===a?r:i>a?r+new Array(i-a+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+He(t,Math.max(0,n+i-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Ve=function(t){return t},Ge=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];Ye=function(t){var n,e,r=t.grouping&&t.thousands?(n=t.grouping,e=t.thousands,function(t,r){for(var o=t.length,i=[],a=0,s=n[0],c=0;o>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),i.push(t.substring(o-=s,o+s)),!((c+=s+1)>r));)s=n[a=(a+1)%n.length];return i.reverse().join(e)}):Ve,o=t.currency,i=t.decimal,a=t.numerals?function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(t.numerals):Ve,s=t.percent||"%";function c(t){var n=(t=Re(t)).fill,e=t.align,c=t.sign,u=t.symbol,l=t.zero,f=t.width,h=t.comma,d=t.precision,g=t.trim,p=t.type;"n"===p?(h=!0,p="g"):$e[p]||(null==d&&(d=12),g=!0,p="g"),(l||"0"===n&&"="===e)&&(l=!0,n="0",e="=");var m="$"===u?o[0]:"#"===u&&/[boxX]/.test(p)?"0"+p.toLowerCase():"",b="$"===u?o[1]:/[%p]/.test(p)?s:"",y=$e[p],v=/[defgprs%]/.test(p);function _(t){var o,s,u,_=m,w=b;if("c"===p)w=y(t)+w,t="";else{var x=(t=+t)<0;if(t=y(Math.abs(t),d),g&&(t=function(t){t:for(var n,e=t.length,r=1,o=-1;r0){if(!+t[r])break t;o=0}}return o>0?t.slice(0,o)+t.slice(n+1):t}(t)),x&&0==+t&&(x=!1),_=(x?"("===c?c:"-":"-"===c||"("===c?"":c)+_,w=("s"===p?Ge[8+Ue/3]:"")+w+(x&&"("===c?")":""),v)for(o=-1,s=t.length;++o(u=t.charCodeAt(o))||u>57){w=(46===u?i+t.slice(o+1):t.slice(o))+w,t=t.slice(0,o);break}}h&&!l&&(t=r(t,1/0));var A=_.length+t.length+w.length,k=A>1)+_+t+w+k.slice(A);break;default:t=k+_+t+w}return a(t)}return d=null==d?6:/[gprs]/.test(p)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d)),_.toString=function(){return t+""},_}return{format:c,formatPrefix:function(t,n){var e=c(((t=Re(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(Ie(n)/3))),o=Math.pow(10,-r),i=Ge[8+r/3];return function(t){return e(o*t)+i}}}}({decimal:".",thousands:",",grouping:[3],currency:["$",""]}),ze=Ye.format,qe=Ye.formatPrefix;var Qe=function(t,n,e){var r,o=t[0],i=t[t.length-1],a=function(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/o;return i>=we?o*=10:i>=xe?o*=5:i>=Ae&&(o*=2),n0)return[t];if((r=n0)for(t=Math.ceil(t/a),n=Math.floor(n/a),i=new Array(o=Math.ceil(n-t+1));++s0?r=ke(s=Math.floor(s/r)*r,c=Math.ceil(c/r)*r,e):r<0&&(r=ke(s=Math.ceil(s*r)/r,c=Math.floor(c*r)/r,e)),r>0?(o[i]=Math.floor(s/r)*r,o[a]=Math.ceil(c/r)*r,n(o)):r<0&&(o[i]=Math.ceil(s*r)/r,o[a]=Math.floor(c*r)/r,n(o)),t},t}var Ze=new Date,Je=new Date;function tr(t,n,e,r){function o(n){return t(n=new Date(+n)),n}return o.floor=o,o.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},o.round=function(t){var n=o(t),e=o.ceil(t);return t-n0))return s;do{s.push(a=new Date(+e)),n(e,i),t(e)}while(a=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&&(o.count=function(n,r){return Ze.setTime(+n),Je.setTime(+r),t(Ze),t(Je),Math.floor(e(Ze,Je))},o.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?o.filter(r?function(n){return r(n)%t==0}:function(n){return o.count(0,n)%t==0}):o:null}),o}var nr=tr((function(){}),(function(t,n){t.setTime(+t+n)}),(function(t,n){return n-t}));nr.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?tr((function(n){n.setTime(Math.floor(n/t)*t)}),(function(n,e){n.setTime(+n+e*t)}),(function(n,e){return(e-n)/t})):nr:null},nr.range;var er=6e4,rr=(((tr((function(t){t.setTime(1e3*Math.floor(t/1e3))}),(function(t,n){t.setTime(+t+1e3*n)}),(function(t,n){return(n-t)/1e3}),(function(t){return t.getUTCSeconds()})).range,tr((function(t){t.setTime(Math.floor(t/er)*er)}),(function(t,n){t.setTime(+t+n*er)}),(function(t,n){return(n-t)/er}),(function(t){return t.getMinutes()}))).range,tr((function(t){var n=t.getTimezoneOffset()*er%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)}),(function(t,n){t.setTime(+t+36e5*n)}),(function(t,n){return(n-t)/36e5}),(function(t){return t.getHours()}))).range,tr((function(t){t.setHours(0,0,0,0)}),(function(t,n){t.setDate(t.getDate()+n)}),(function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*er)/864e5}),(function(t){return t.getDate()-1}))),or=rr;function ir(t){return tr((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())*er)/6048e5}))}rr.range;var ar=ir(0),sr=ir(1),cr=ir(2),ur=ir(3),lr=ir(4),fr=ir(5),hr=ir(6),dr=((ar.range,sr.range,cr.range,ur.range,lr.range,fr.range,hr.range,tr((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()}))).range,tr((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()})));dr.every=function(t){return isFinite(t=Math.floor(t))&&t>0?tr((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 gr=dr,pr=(((dr.range,tr((function(t){t.setUTCSeconds(0,0)}),(function(t,n){t.setTime(+t+n*er)}),(function(t,n){return(n-t)/er}),(function(t){return t.getUTCMinutes()}))).range,tr((function(t){t.setUTCMinutes(0,0,0)}),(function(t,n){t.setTime(+t+36e5*n)}),(function(t,n){return(n-t)/36e5}),(function(t){return t.getUTCHours()}))).range,tr((function(t){t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+n)}),(function(t,n){return(n-t)/864e5}),(function(t){return t.getUTCDate()-1}))),mr=pr;function br(t){return tr((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)/6048e5}))}pr.range;var yr=br(0),vr=br(1),_r=br(2),wr=br(3),xr=br(4),Ar=br(5),kr=br(6),Cr=((yr.range,vr.range,_r.range,wr.range,xr.range,Ar.range,kr.range,tr((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()}))).range,tr((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()})));Cr.every=function(t){return isFinite(t=Math.floor(t))&&t>0?tr((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 Tr=Cr;function Mr(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 Sr(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 Lr(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}Cr.range;var Dr,Br,Or,Pr={"-":"",_:" ",0:"0"},Fr=/^\s*\d+/,Er=/^%/,Nr=/[\\^$*+?|[\]().{}]/g;function Hr(t,n,e){var r=t<0?"-":"",o=(r?-t:t)+"",i=o.length;return r+(i68?1900:2e3),e+r[0].length):-1}function Vr(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 Gr(t,n,e){var r=Fr.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function Qr(t,n,e){var r=Fr.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function Kr(t,n,e){var r=Fr.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Zr(t,n,e){var r=Fr.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Jr(t,n,e){var r=Fr.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function to(t,n,e){var r=Fr.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function no(t,n,e){var r=Fr.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function eo(t,n,e){var r=Fr.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function ro(t,n,e){var r=Er.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function oo(t,n,e){var r=Fr.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function io(t,n,e){var r=Fr.exec(n.slice(e));return r?(t.Q=1e3*+r[0],e+r[0].length):-1}function ao(t,n){return Hr(t.getDate(),n,2)}function so(t,n){return Hr(t.getHours(),n,2)}function co(t,n){return Hr(t.getHours()%12||12,n,2)}function uo(t,n){return Hr(1+or.count(gr(t),t),n,3)}function lo(t,n){return Hr(t.getMilliseconds(),n,3)}function fo(t,n){return lo(t,n)+"000"}function ho(t,n){return Hr(t.getMonth()+1,n,2)}function go(t,n){return Hr(t.getMinutes(),n,2)}function po(t,n){return Hr(t.getSeconds(),n,2)}function mo(t){var n=t.getDay();return 0===n?7:n}function bo(t,n){return Hr(ar.count(gr(t),t),n,2)}function yo(t,n){var e=t.getDay();return t=e>=4||0===e?lr(t):lr.ceil(t),Hr(lr.count(gr(t),t)+(4===gr(t).getDay()),n,2)}function vo(t){return t.getDay()}function _o(t,n){return Hr(sr.count(gr(t),t),n,2)}function wo(t,n){return Hr(t.getFullYear()%100,n,2)}function xo(t,n){return Hr(t.getFullYear()%1e4,n,4)}function Ao(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+Hr(n/60|0,"0",2)+Hr(n%60,"0",2)}function ko(t,n){return Hr(t.getUTCDate(),n,2)}function Co(t,n){return Hr(t.getUTCHours(),n,2)}function To(t,n){return Hr(t.getUTCHours()%12||12,n,2)}function Mo(t,n){return Hr(1+mr.count(Tr(t),t),n,3)}function So(t,n){return Hr(t.getUTCMilliseconds(),n,3)}function Lo(t,n){return So(t,n)+"000"}function Do(t,n){return Hr(t.getUTCMonth()+1,n,2)}function Bo(t,n){return Hr(t.getUTCMinutes(),n,2)}function Oo(t,n){return Hr(t.getUTCSeconds(),n,2)}function Po(t){var n=t.getUTCDay();return 0===n?7:n}function Fo(t,n){return Hr(yr.count(Tr(t),t),n,2)}function Eo(t,n){var e=t.getUTCDay();return t=e>=4||0===e?xr(t):xr.ceil(t),Hr(xr.count(Tr(t),t)+(4===Tr(t).getUTCDay()),n,2)}function No(t){return t.getUTCDay()}function Ho(t,n){return Hr(vr.count(Tr(t),t),n,2)}function Io(t,n){return Hr(t.getUTCFullYear()%100,n,2)}function jo(t,n){return Hr(t.getUTCFullYear()%1e4,n,4)}function Ro(){return"+0000"}function Wo(){return"%"}function Uo(t){return+t}function Yo(t){return Math.floor(+t/1e3)}(Dr=function(t){var n=t.dateTime,e=t.date,r=t.time,o=t.periods,i=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,u=jr(o),l=Rr(o),f=jr(i),h=Rr(i),d=jr(a),g=Rr(a),p=jr(s),m=Rr(s),b=jr(c),y=Rr(c),v={a:function(t){return a[t.getDay()]},A:function(t){return i[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:ao,e:ao,f:fo,H:so,I:co,j:uo,L:lo,m:ho,M:go,p:function(t){return o[+(t.getHours()>=12)]},Q:Uo,s:Yo,S:po,u:mo,U:bo,V:yo,w:vo,W:_o,x:null,X:null,y:wo,Y:xo,Z:Ao,"%":Wo},_={a:function(t){return a[t.getUTCDay()]},A:function(t){return i[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:ko,e:ko,f:Lo,H:Co,I:To,j:Mo,L:So,m:Do,M:Bo,p:function(t){return o[+(t.getUTCHours()>=12)]},Q:Uo,s:Yo,S:Oo,u:Po,U:Fo,V:Eo,w:No,W:Ho,x:null,X:null,y:Io,Y:jo,Z:Ro,"%":Wo},w={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=g[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[r[0].toLowerCase()],e+r[0].length):-1},b:function(t,n,e){var r=b.exec(n.slice(e));return r?(t.m=y[r[0].toLowerCase()],e+r[0].length):-1},B:function(t,n,e){var r=p.exec(n.slice(e));return r?(t.m=m[r[0].toLowerCase()],e+r[0].length):-1},c:function(t,e,r){return k(t,n,e,r)},d:Qr,e:Qr,f:eo,H:Zr,I:Zr,j:Kr,L:no,m:Gr,M:Jr,p:function(t,n,e){var r=u.exec(n.slice(e));return r?(t.p=l[r[0].toLowerCase()],e+r[0].length):-1},Q:oo,s:io,S:to,u:Ur,U:Yr,V:zr,w:Wr,W:qr,x:function(t,n,r){return k(t,e,n,r)},X:function(t,n,e){return k(t,r,n,e)},y:$r,Y:Xr,Z:Vr,"%":ro};function x(t,n){return function(e){var r,o,i,a=[],s=-1,c=0,u=t.length;for(e instanceof Date||(e=new Date(+e));++s53)return null;"w"in i||(i.w=1),"Z"in i?(o=(r=Sr(Lr(i.y))).getUTCDay(),r=o>4||0===o?vr.ceil(r):vr(r),r=mr.offset(r,7*(i.V-1)),i.y=r.getUTCFullYear(),i.m=r.getUTCMonth(),i.d=r.getUTCDate()+(i.w+6)%7):(o=(r=n(Lr(i.y))).getDay(),r=o>4||0===o?sr.ceil(r):sr(r),r=or.offset(r,7*(i.V-1)),i.y=r.getFullYear(),i.m=r.getMonth(),i.d=r.getDate()+(i.w+6)%7)}else("W"in i||"U"in i)&&("w"in i||(i.w="u"in i?i.u%7:"W"in i?1:0),o="Z"in i?Sr(Lr(i.y)).getUTCDay():n(Lr(i.y)).getDay(),i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(o+5)%7:i.w+7*i.U-(o+6)%7);return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,Sr(i)):n(i)}}function k(t,n,e,r){for(var o,i,a=0,s=n.length,c=e.length;a=c)return-1;if(37===(o=n.charCodeAt(a++))){if(o=n.charAt(a++),!(i=w[o in Pr?n.charAt(a++):o])||(r=i(t,e,r))<0)return-1}else if(o!=e.charCodeAt(r++))return-1}return r}return v.x=x(e,v),v.X=x(r,v),v.c=x(n,v),_.x=x(e,_),_.X=x(r,_),_.c=x(n,_),{format:function(t){var n=x(t+="",v);return n.toString=function(){return t},n},parse:function(t){var n=A(t+="",Mr);return n.toString=function(){return t},n},utcFormat:function(t){var n=x(t+="",_);return n.toString=function(){return t},n},utcParse:function(t){var n=A(t,Sr);return n.toString=function(){return t},n}}}({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"]})).format,Dr.parse,Br=Dr.utcFormat,Or=Dr.utcParse,Date.prototype.toISOString||Br("%Y-%m-%dT%H:%M:%S.%LZ"),+new Date("2000-01-01T00:00:00.000Z")||Or("%Y-%m-%dT%H:%M:%S.%LZ");var zo=function(t){return t.match(/.{6}/g).map((function(t){return"#"+t}))};function qo(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}zo("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),zo("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"),zo("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"),zo("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"),ln(Pt(300,.5,0),Pt(-240,.5,1)),ln(Pt(-100,.75,.35),Pt(80,1.5,.8)),ln(Pt(260,.75,.35),Pt(80,1.5,.8)),Pt(),qo(zo("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),qo(zo("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),qo(zo("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),qo(zo("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),e.d(n,"a",(function(){return $o})),e.d(n,"f",(function(){return Vo})),e.d(n,"e",(function(){return Go})),e.d(n,"c",(function(){return Qo})),e.d(n,"h",(function(){return Ko})),e.d(n,"g",(function(){return Zo})),e.d(n,"d",(function(){return Jo})),e.d(n,"b",(function(){return Xo}));var Xo=Object.assign({},r,i,o);function $o(){return"assembly"in this.config&&/(GCF_|GCA_)/.test(this.config.assembly)}function Vo(t){return"assembly"in t.config&&!1===/(GCA_)/.test(t.config.assembly)}function Go(t){return"assembly"in t.config&&/(GCA_)/.test(t.config.assembly)}function Qo(){var t,n,e,r=document.scripts,o=location.host.split(":")[0],i=Ideogram.version;if("localhost"!==o&&"127.0.0.1"!==o)return"https://unpkg.com/ideogram@"+i+"/dist/data/bands/native/";for(var a=0;a2?Ne:Ee,r=o=null,l}function l(n){return(r||(r=e(i,a,c?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}(t):t,s)))(+n)}return l.invert=function(t){return(o||(o=e(a,i,Fe,c?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}(n):n)))(+t)},l.domain=function(t){return arguments.length?(i=De.call(t,Oe),u()):i.slice()},l.range=function(t){return arguments.length?(a=Be.call(t),u()):a.slice()},l.rangeRound=function(t){return a=Be.call(t),s=Kt,u()},l.clamp=function(t){return arguments.length?(c=!!t,u()):c},l.interpolate=function(t){return arguments.length?(s=t,u()):s},u()}(Fe,Xt);return n.copy=function(){return function(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}(n,t())},Ke(n)},Xo.max=function(t,n){var e,r,o=t.length,i=-1;if(null==n){for(;++i=e)for(r=e;++ir&&(r=e)}else for(;++i=e)for(r=e;++ir&&(r=e);return r}},function(t,n,e){"use strict";var r="http://www.w3.org/1999/xhtml",o={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},i=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),o.hasOwnProperty(n)?{space:o[n],local:t}:t},a=function(t){var n=i(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===r&&n.documentElement.namespaceURI===r?n.createElement(t):n.createElementNS(e,t)}})(n)};function s(){}var c=function(t){return null==t?s:function(){return this.querySelector(t)}};function u(){return[]}var l=function(t){return null==t?u:function(){return this.querySelectorAll(t)}},f=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var h=document.documentElement;if(!h.matches){var d=h.webkitMatchesSelector||h.msMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector;f=function(t){return function(){return d.call(this,t)}}}}var g=f,p=function(t){return new Array(t.length)};function m(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function b(t,n,e,r,o,i){for(var a,s=0,c=n.length,u=i.length;sn?1:t>=n?0:NaN}m.prototype={constructor:m,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var _=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView};function w(t,n){return t.style.getPropertyValue(n)||_(t).getComputedStyle(t,null).getPropertyValue(n)}function x(t){return t.trim().split(/^|\s+/)}function A(t){return t.classList||new k(t)}function k(t){this._node=t,this._names=x(t.getAttribute("class")||"")}function C(t,n){for(var e=A(t),r=-1,o=n.length;++r=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var E={},N=null;function H(t,n,e){return t=I(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function I(t,n,e){return function(r){var o=N;N=r;try{t.call(this,this.__data__,n,e)}finally{N=o}}}function j(t){return function(){var n=this.__on;if(n){for(var e,r=0,o=-1,i=n.length;r=A&&(A=x+1);!(w=v[A])&&++A=0;)(r=o[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=v);for(var e=this._groups,r=e.length,o=new Array(r),i=0;i1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):w(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=x(t+"");if(arguments.length<2){for(var r=A(this.node()),o=-1,i=e.length;++o=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}(t+""),a=i.length;if(!(arguments.length<2)){for(s=n?R:j,null==e&&(e=!1),r=0;r>>1;e>>1;t(n[i])>>1);--i>0;)e(t,i,o,n);return t}function e(n,e,r,o){for(var i,a=n[--o+e],s=t(a);(i=e<<1)<=r&&(it(n[o+i+1])&&i++,!(s<=t(n[o+i])));)n[o+e]=n[o+i],e=i;n[o+e]=a}return n.sort=function(t,n,r){for(var o,i=r-n;--i>0;)o=t[n],t[n]=t[n+i],t[n+i]=o,e(t,1,i,n);return t},n}function a(t){var n=i(t);return function(e,r,o,i){var a,s,c,u=new Array(i=Math.min(o-r,i));for(s=0;sa&&(u[0]=c,a=t(n(u,0,i)[0]))}while(++re&&t(n[i-1])>s;--i)n[i]=n[i-1];n[i]=a}return n}}function c(t){var n=s(t);return function e(r,o,i){return(i-o>1,l=u-a,f=u+a,h=n[s],d=t(h),g=n[l],p=t(g),m=n[u],b=t(m),y=n[f],v=t(y),_=n[c],w=t(_);d>p&&(i=h,h=g,g=i,i=d,d=p,p=i),v>w&&(i=y,y=_,_=i,i=v,v=w,w=i),d>b&&(i=h,h=m,m=i,i=d,d=b,b=i),p>b&&(i=g,g=m,m=i,i=p,p=b,b=i),d>v&&(i=h,h=y,y=i,i=d,d=v,v=i),b>v&&(i=m,m=y,y=i,i=b,b=v,v=i),p>w&&(i=g,g=_,_=i,i=p,p=w,w=i),p>b&&(i=g,g=m,m=i,i=p,p=b,b=i),v>w&&(i=y,y=_,_=i,i=v,v=w,w=i);var x=g,A=p,k=y,C=v;n[s]=h,n[l]=n[r],n[u]=m,n[f]=n[o-1],n[c]=_;var T=r+1,M=o-2,S=A<=C&&A>=C;if(S)for(var L=T;L<=M;++L){var D=n[L];if((O=t(D))A)for(;;){if(!((P=t(n[M]))>A)){if(PC)for(;;){if(!((P=t(n[M]))>C)){Pc){for(var B;(B=t(n[T]))<=A&&B>=A;)++T;for(;(P=t(n[M]))<=C&&P>=C;)--M;for(L=T;L<=M;L++){var O;if(D=n[L],(O=t(D))<=A&&O>=A)L!==T&&(n[L]=n[T],n[T]=D),T++;else if(O<=C&&O>=C)for(;;){var P;if(!((P=t(n[M]))<=C&&P>=C)){P32)throw new Error("invalid array width!");return t};function p(t){for(var n=new Array(t),e=-1;++er;)h[--s]=0},dimension:function(t){var l,M,S,L,D,B={filter:function(t){return null==t?X():Array.isArray(t)?q(t):"function"==typeof t?$(t):z(t)},filterExact:z,filterRange:q,filterFunction:$,filterAll:X,top:function(t){for(var n,e=[],r=j;--r>=I&&t>0;)h[n=M[r]]||(e.push(o[n]),--t);return e},bottom:function(t){for(var n,e=[],r=I;r0;)h[n=M[r]]||(e.push(o[n]),--t),r++;return e},group:G,groupAll:function(){var t=G(b),n=t.all;return delete t.all,delete t.top,delete t.order,delete t.orderNatural,delete t.size,t.value=function(){return n()[0].value},t},dispose:Q,remove:Q},O=~u&-~u,P=~O,F=c((function(t){return S[t]})),E=m,N=[],H=[],I=0,j=0;function R(n,r,o){S=n.map(t),L=F(function(t){for(var n=k(t,t),e=-1;++eI)for(r=I,o=Math.min(n,j);rj)for(r=Math.max(n,j),o=e;r1?d(c,s):k(s,D),M&&(f=(l=w[0]).key);N=y);)++N;for(;N_||(c[u=e[N]+i]=B,h[u]&P||(v.value=A(v.value,o[u])),++N>=a));)y=t(n[N]);H()}for(;OO)for(O=0;O1?(F=U,E=z):(!B&&j&&(B=1,r=[{key:null,value:T()}]),1===B?(F=Y,E=q):(F=b,E=b),c=null),p[u]=F}function W(){if(B>1){for(var t=B,n=r,e=k(t,t),o=0,i=0;o1)for(o=0;o1?(E=z,F=U):1===B?(E=q,F=Y):E=F=b}else if(1===B){if(j)return;for(o=0;o=0&&p.splice(t,1),(t=N.indexOf(R))>=0&&N.splice(t,1),(t=T.indexOf(W))>=0&&T.splice(t,1),e}return arguments.length<1&&(t=n),p.push(F),N.push(R),T.push(W),R(l,M,0,s),V().orderNatural()}function Q(){H.forEach((function(t){t.dispose()}));var t=A.indexOf(R);return t>=0&&A.splice(t,1),(t=A.indexOf(W))>=0&&A.splice(t,1),(t=T.indexOf(U))>=0&&T.splice(t,1),u&=P,X()}return A.unshift(R),A.push(W),T.push(U),u|=O,(f>=32?!O:u&-(1<=0&&p.splice(t),(t=A.indexOf(c))>=0&&A.splice(t),i}return p.push(u),A.push(c),c(0,0),f()},size:function(){return s}},o=[],s=0,u=0,f=8,h=l(0),p=[],A=[],T=[];function M(n){var e=s,r=n.length;return r&&(o=o.concat(n),h=d(h,s+=r),A.forEach((function(t){t(n,e,r)}))),t}return arguments.length?M(arguments[0]):t}function k(t,n){return(n<257?l:n<65537?f:h)(t)}function C(t){return 8===t?256:16===t?65536:4294967296}"undefined"!=typeof Uint8Array&&(l=function(t){return new Uint8Array(t)},f=function(t){return new Uint16Array(t)},h=function(t){return new Uint32Array(t)},d=function(t,n){if(t.length>=n)return t;var e=new t.constructor(n);return e.set(t),e},g=function(t,n){var e;switch(n){case 16:e=f(t.length);break;case 32:e=h(t.length);break;default:throw new Error("invalid array width!")}return e.set(t),e}),t.crossfilter=A}(n||this)},function(t,n,e){"use strict";function r(t,n){var e,o,i=/(^([+\-]?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?(?=\D|\s|$))|^0x[\da-fA-F]+$|\d+)/g,a=/^\s+|\s+$/g,s=/\s+/g,c=/^0x[0-9a-f]+$/i,u=/^0/,l=function(t){return(r.insensitive&&(""+t).toLowerCase()||""+t).replace(a,"")},f=l(t),h=l(n),d=f.replace(i,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),g=h.replace(i,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),p=parseInt(f.match(c),16)||1!==d.length&&Date.parse(f),m=parseInt(h.match(c),16)||p&&h.match(/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/)&&Date.parse(h)||null,b=function(t,n){return(!t.match(u)||1==n)&&parseFloat(t)||t.replace(s," ").replace(a,"")||0};if(m){if(pm)return 1}for(var y=0,v=d.length,_=g.length,w=Math.max(v,_);yo)return 1}}e.r(n);var o=e(0);function i(t){var n;this.config=JSON.parse(JSON.stringify(t)),(n=this).chromosomesArray=[],n.coordinateSystem="iscn",n.maxLength={bp:0,iscn:0},n.chromosomes={},n.numChromosomes=0,n.config.debug||(n.config.debug=!1),n.config.dataDir||(n.config.dataDir=n.getDataDir()),n.config.container||(n.config.container="body"),n.selector=n.config.container+" #_ideogram",n.config.resolution||(n.config.resolution=""),n.config.orientation||(n.config.orientation="vertical"),n.config.brush||(n.config.brush=null),n.config.rows||(n.config.rows=1),"showChromosomeLabels"in n.config==0&&(n.config.showChromosomeLabels=!0),n.config.showNonNuclearChromosomes||(n.config.showNonNuclearChromosomes=!1),function(t){t.config.ploidy||(t.config.ploidy=1),t.config.ploidy>1&&(t.sexChromosomes={},t.config.sex||(t.config.sex="male"),2!==t.config.ploidy||t.config.ancestors||(t.config.ancestors={M:"#ffb6c1",P:"#add8e6"},t.config.ploidyDesc="MP"))}(this),function(t){t.config.showBandLabels||(t.config.showBandLabels=!1),"showFullyBanded"in t.config?t.config.showFullyBanded=t.config.showFullyBanded:t.config.showFullyBanded=!0,t.bandsToShow=[],t.bandData={}}(this),function(t){var n,e,r;t.config.chrHeight||(n=t.config.container,e=document.querySelector(n).getBoundingClientRect(),r="vertical"===t.config.orientation?e.height:e.width,"body"!==n&&0!==r||(r=400),t.config.chrHeight=r)}(this),function(t){var n,e;t.config.chrWidth||(n=10,(e=t.config.chrHeight)<900&&e>500?n=Math.round(e/40):e>=900&&(n=Math.round(e/45)),t.config.chrWidth=n)}(this),function(t){t.config.geometry?"chrMargin"in t.config==0&&(t.config.chrMargin=0):(t.config.chrMargin||(1===t.config.ploidy?t.config.chrMargin=10:t.config.chrMargin=Math.round(t.config.chrWidth/4)),t.config.showBandLabels&&(t.config.chrMargin+=20))}(this),function(t,n){t.onLoad&&(n.onLoadCallback=t.onLoad),t.onLoadAnnots&&(n.onLoadAnnotsCallback=t.onLoadAnnots),t.onDrawAnnots&&(n.onDrawAnnotsCallback=t.onDrawAnnots),t.onBrushMove&&(n.onBrushMoveCallback=t.onBrushMove),t.onDidRotate&&(n.onDidRotateCallback=t.onDidRotate),t.onWillShowAnnotTooltip&&(n.onWillShowAnnotTooltipCallback=t.onWillShowAnnotTooltip)}(t,this),function(t){t.organisms={9606:{commonName:"Human",scientificName:"Homo sapiens",scientificNameAbbr:"H. sapiens",assemblies:{default:"GCF_000001405.26",GRCh38:"GCF_000001405.26",GRCh37:"GCF_000001405.13"}},10090:{commonName:"Mouse",scientificName:"Mus musculus",scientificNameAbbr:"M. musculus",assemblies:{default:"GCF_000001635.20"}},4641:{commonName:"banana",scientificName:"Musa acuminata",scientificNameAbbr:"M. acuminata",assemblies:{default:"mock"}}}}(this),function(t){t.bump=Math.round(t.config.chrHeight/125),t.adjustedBump=!1,t.config.chrHeight<200&&(t.adjustedBump=!0,t.bump=4)}(this),function(t,n){t.chromosome&&(n.config.chromosomes=[t.chromosome],"showBandLabels"in t==0&&(n.config.showBandLabels=!0),"rotatable"in t==0&&(n.config.rotatable=!1))}(t,this),this.initAnnotSettings(),"geometry"in this.config==0&&(this.config.chrMargin+=this.config.chrWidth,"heatmap"===this.config.annotationsLayout?this.config.chrMargin+=this.config.annotTracksHeight:this.config.chrMargin+=2*this.config.annotTracksHeight),this.init()}var a=e(4),s=e.n(a),c=function(t){var n,e,r,i=t.config,a=i.annotationHeight;if("vertical"!==i.orientation){t.config.annotLabelHeight=12;var c=t.config.annotLabelHeight;"demarcateCollinearChromosomes"in t.config==0&&(t.config.demarcateCollinearChromosomes=!0),n=document.querySelectorAll(".chromosome-set"),e=i.numAnnotTracks*(a+c+4)-i.chrWidth+1,function(t,n,e,r){var o,i,a;for(o=0;o0}return!0}}]),t}(),h=function(){function t(n){_classCallCheck(this,t),this._node=n}return _createClass(t,[{key:"getLabel",value:function(){return o.b.select(this._node.parentNode).select("text.chrLabel").text()}},{key:"getSetLabel",value:function(){return o.b.select(this._node.parentNode).select("text.chrSetLabel").text()}}]),t}(),d=function(){function t(n,e){if(_classCallCheck(this,t),this._config=n,this._ideo=e,this._ploidy=this._ideo._ploidy,this._translate=void 0,"chrSetMargin"in n)this.chrSetMargin=n.chrSetMargin;else{var r=this._config.chrMargin;this.chrSetMargin=this._config.ploidy>1?r:0}this._tickSize=8,this._isRotated=!1}return _createClass(t,[{key:"_getLeftMargin",value:function(){return this.margin.left}},{key:"_getYScale",value:function(){return 20/this._config.chrWidth}},{key:"getChromosomeLabels",value:function(t){var n=new h(t),e=[];return this._ideo.config.ploidy>1&&e.push(n.getSetLabel()),e.push(n.getLabel()),e.filter((function(t){return t.length>0}))}},{key:"getChromosomeBandLabelTranslate",value:function(t){var n,e,r,o=this._ideo,i=this._tickSize,a=o.config.orientation;return"vertical"===a?r="rotate(-90)translate("+(n=i)+","+(e=o.round(2+t.px.start+t.px.width/2))+")":"horizontal"===a&&(r="translate("+(n=o.round(-i+t.px.start+t.px.width/2))+","+(e=-10)+")"),{x:n,y:e,translate:r}}},{key:"didRotate",value:function(t,n){var e,r,i,a,s,c,u,l,f;r=(e=this._ideo).config.taxid,i=n.id.split("-")[0].replace("chr",""),a=(s=e.chromosomes[r][i]).bands,l=(u=o.b.select(n.parentNode)).attr("transform"),f=/scale\(.*\)/.exec(l),l=l.replace(f,""),u.attr("transform",l),c=s.width,(s=e.getChromosomeModel(a,i,r,t)).oldWidth=c,e.chromosomes[r][i]=s,e.drawChromosome(s),e.handleRotateOnClick(),e.rawAnnots&&(e.displayedTrackIndexes?e.updateDisplayedTracks(e.displayedTrackIndexes):(e.annots=e.processAnnotData(e.rawAnnots),e.drawProcessedAnnots(e.annots),e.config.filterable&&e.initCrossFilter())),!0===e.config.showBandLabels&&(e.drawBandLabels(e.chromosomes),e.hideUnshownBandLabels()),e.onDidRotateCallback&&e.onDidRotateCallback(s)}},{key:"rotate",value:function(t,n,e){var r,i,a,s;r=this._ideo,s=r.selector+" .chrSetLabel, "+r.selector+" .chrLabel",a=document.querySelector(r.selector).getBoundingClientRect(),i=o.b.selectAll(r.selector+" g.chromosome").filter((function(){return this!==e})),this._isRotated?(this._isRotated=!1,r.config.chrHeight=r.config.chrHeightOriginal,r.config.chrWidth=r.config.chrWidthOriginal,r.config.annotationHeight=r.config.annotationHeightOriginal,this.rotateBack(t,n,e,(function(){i.style("display",null),o.b.selectAll(s).style("display",null),r._layout.didRotate(n,e)}))):(this._isRotated=!0,i.style("display","none"),o.b.selectAll(s).style("display","none"),this.rotateForward(t,n,e,(function(){var t,o,i;r.config.chrHeightOriginal=r.config.chrHeight,r.config.chrWidthOriginal=r.config.chrWidth,r.config.annotationHeightOriginal=r.config.annotationHeight,"VerticalLayout"===r._layout._class?(o=a.width,i=window.innerWidth):(o=a.height-10,i=window.innerHeight-10),t=i0?n:n+4+2*t);if(!this._translate){var i;this._translate=[this._ploidy.getSetSize(0)*o*2];for(var a=1;a1&&(t*=1.8),t}},{key:"rotateForward",value:function(t,n,e,r){var i;o.b.select(e.parentNode).transition().attr("transform","rotate(90) translate(30, -37.5) ").on("end",r),i=this.getChromosomeLabels(e),o.b.select(this._ideo.getSvg()).append("g").attr("class","tmp").selectAll("text").data(i).enter().append("text").attr("class",(function(t,n){return 0===n&&2===i.length?"chrSetLabel":null})).attr("x",26).attr("y",(function(t,n){return 12*(n+1+i.length%2)})).style("text-anchor","middle").style("opacity",0).text(String).transition().style("opacity",1),this._ideo.config.orientation="vertical"}},{key:"rotateBack",value:function(t,n,e,r){var i=this.getChromosomeSetTranslate(t);o.b.select(e.parentNode).transition().attr("transform",i).on("end",r),o.b.selectAll(this._ideo.selector+" g.tmp").style("opacity",0).remove(),this._ideo.config.orientation="horizontal"}},{key:"getHeight",value:function(t){var n=this._config.chromosomes[t].length,e=this.getChromosomeSetYTranslate(n-1);return(e+=this._getChromosomeSetSize(n-1))+2*this._getAdditionalOffset()}},{key:"getWidth",value:function(){return this._config.chrHeight+1.5*this.margin.top}},{key:"getChromosomeSetLabelAnchor",value:function(){return"end"}},{key:"getChromosomeBandLabelAnchor",value:function(){return null}},{key:"getChromosomeBandTickY1",value:function(){return 2}},{key:"getChromosomeBandTickY2",value:function(){return 10}},{key:"getChromosomeSetLabelTranslate",value:function(){return null}},{key:"getChromosomeSetTranslate",value:function(t){return"translate("+this._getLeftMargin()+", "+this.getChromosomeSetYTranslate(t)+")"}},{key:"getChromosomeSetYTranslate",value:function(t){if(!this._config.ploidyDesc)return this._config.chrMargin*(t+1);if(!this._translate){this._translate=[1];for(var n=1;no-1?(e=this.margin.left+1.4*this._config.chrHeight,r=this.getChromosomeSetYTranslate(t-o)):(e=this.margin.left,r=this.getChromosomeSetYTranslate(t)),"rotate(90) translate("+e+", -"+r+")"}},{key:"getChromosomeSetYTranslate",value:function(t){var n=this._getAdditionalOffset();return this.margin.left*t+this._config.chrWidth+2*n+n*t}},{key:"getChromosomeSetLabelXPosition",value:function(t){return(this._ploidy.getSetSize(t)*this._config.chrWidth+20)/-2+(this._config.ploidy>1?0:this._config.chrWidth)}},{key:"getChromosomeLabelXPosition",value:function(){return this._config.chrWidth/-2}}]),n}(d);function y(t,n,e){this.config.annotationsPath&&this.fetchAnnots(this.config.annotationsPath),function(t){if("ploidyDesc"in t.config&&"string"==typeof t.config.ploidyDesc){for(var n=[],e=0;e1?new b(n,t):"vertical"===n.orientation?new g(n,t):"horizontal"===n.orientation?new p(n,t):new g(n,t)}(this),function(t,n){o.b.selectAll(n.config.container+" #_ideogramOuterWrap").remove(),o.b.select(n.config.container).append("div").attr("id","_ideogramOuterWrap").append("div").attr("id","_ideogramTrackLabelContainer").style("position","absolute"),o.b.select(n.config.container+" #_ideogramOuterWrap").append("div").attr("id","_ideogramMiddleWrap").style("position","relative").style("overflow-x","auto").append("div").attr("id","_ideogramInnerWrap").append("svg").attr("id","_ideogram").attr("class",function(t){var n="";return t.config.showChromosomeLabels&&("horizontal"===t.config.orientation?n+="labeledLeft ":n+="labeled "),t.config.annotationsLayout&&"overlay"===t.config.annotationsLayout&&(n+="faint"),n}(n)).attr("width",n._layout.getWidth(t)).attr("height",n._layout.getHeight(t)).html(n.getBandColorGradients())}(n,this),this.isOnlyIdeogram=1===document.querySelectorAll("#_ideogram").length,function(t){o.b.select(t.config.container+" #_ideogramOuterWrap").append("div").attr("class","_ideogramTooltip").attr("id","_ideogramTooltip").style("opacity",0).style("position","fixed").style("text-align","center").style("padding","4px").style("font","12px sans-serif").style("background","white").style("border","1px solid black").style("border-radius","5px").style("z-index","100")}(this),this.finishInit(t,e)}var v=e(5);function _(t,n,e){var r=e.config.ploidy;return"sex"in e.config&&(2===r&&e.sexChromosomes.index+2===n||"female"===e.config.sex&&"Y"===t.name)}function w(t,n,e,r,o){var i,a,s,c;for(i=0;i=chrBands.length/2&&(n.coordinateSystem="bp")}function A(t){var n,e,r,o=this.config.taxids,i=0;for(t.length>0&&(this.bandsArray={}),e=0;e=4&&(f=h[3],i[0]=f),h.length>=8&&(u=h[8].split(","),l=t.rgbToHex(u[0],u[1],u[2]),i.push(l)),[a,i])}},{key:"parseRawAnnots",value:function(t,n,e,r){var o,i,a,s,c,u;for(u=!0,!1===isNaN(parseInt(e[n],10))&&(u=!1),o=n;o=8&&c.push("color"),{keys:c,annots:t}}},{key:"parseBed",value:function(t,n){var e,r,o,i,a=[],s=t.split(/\r\n|\n/);for(r=Object.keys(n.chromosomes[n.config.taxid]),e=0;er||e===o||0!==t&&t!==n&&e<=o&&e>r||0===t&&e<=o}function E(t,n){var e,r,o,i,a,s,c,u;for(e=0;e0&&(i+=e.config.chrMargin*t.chrIndex-1),s=o.b.select(e.config.container+" #_ideogramInnerWrap").append("canvas").attr("id",c).attr("width",u+1).attr("height",a).style("position","absolute").style("left",i+"px").style("top",a*r+1+"px").nodes()[0].getContext("2d"),l.push([s,t]);return l}function H(t,n,e){var r,o,i,a,s=e.config.annotLabelHeight,c=e.config.annotationHeight,u=e.config.demarcateCollinearChromosomes,l=c+s+4;for(r=0;ro.startPx||o.startPx>a.width-1)continue;i.fillRect(o.startPx,1,.5,l)}else i.fillRect(o.startPx,s+1,.5,c);if(u)for(r=0;r"),o.b.select(n.config.container+" #_ideogramTrackLabel").interrupt().style("top","").style("left","").style("transform",null).style("transform","rotate(-90deg)").html(i),e=function(t,n,e){var r,i,a,s,c;return r=n.id.split("-").slice(0,-1).join("-")+"-0",i=o.b.select(e.config.container+" #"+r).nodes()[0].getBoundingClientRect(),a=o.b.select(e.config.container+" #_ideogramTrackLabel").nodes()[0].getBoundingClientRect(),s=o.b.select(e.config.container).nodes()[0].getBoundingClientRect(),c=Math.round(i.left+a.width)-i.width-1,[c-=s.left-7,-(t.split("
").length-2)*i.width+2]}(i,t,n),a=(r=_slicedToArray(e,2))[0],function(t,n,e){o.b.select(e.config.container+" #_ideogramTrackLabel").style("opacity",1).style("left",n+"px").style("top",t+"px").style("width","max-content").style("transform-origin","bottom left").style("text-align","left").on("mouseover",(function(){clearTimeout(e.hideTrackLabelTimeout)})).on("mouseout",(function(){R(e)}))}(r[1],a,n)}(this,a)})).on("mouseout",(function(){R(a)})),a.onDrawAnnotsCallback&&a.onDrawAnnotsCallback()}function z(t,n,e){var r,o,i,a,s,c,u,l=[];for(r=0;r0&&(r+="-"+t.stop.toLocaleString()),n=r,e=24,t.name&&(n=(t.displayName?t.displayName:t.name)+"
"+n,e+=8),[n,e]}(t),function(t,n,e,r,o){t.html(n).style("opacity",1).style("left",e.e+"px").style("top",e.f-r+"px").style("pointer-events",null).on("mouseover",(function(){clearTimeout(o.hideAnnotTooltipTimeout)})).on("mouseout",(function(){o.startHideAnnotTooltipTimeout()}))}(a,(r=_slicedToArray(e,2))[0],i,r[1],this))}function K(t){var n,e,r=!1,o=(new Date).getTime();return n=this.chromosomes[this.config.taxid],function(t){"histogramScaling"in t.config==0&&(t.config.histogramScaling="absolute")}(this),void 0===this.maxAnnotsPerBar&&(this.maxAnnotsPerBar={},r=!0),function(t,n,e){var r,o,i,a,s,c,u;if(n||"relative"===e.config.histogramScaling){for(r=0,o=0;oi&&(i=u),u>r&&(r=u);e.maxAnnotsPerBar[s]=i}e.maxAnnotsPerBarAllChrs=r}}(e=function(t,n,e,r){var o,i,a,s,c,u,l,f,h,d,g=r.config.barWidth;for(o in t)for(i=t[o].annots,s=n[(a=e[t[o].chr]).chrIndex].annots,c=0;c=h&&l":"triangle"===r&&(n='"):n='",n}function J(t,n,e){var r,o,i;for(r=0;r"+(i=e.rows[r]).name+"",o=19*r,"name"in e&&(o+=19),n+=''+Z(i)+"";return[t,n]}function tt(t){var n,e,r=[],o=this.chromosomes[this.config.taxid];if("annots"in t[0]||"values"in t[0])return this.drawProcessedAnnots(t);for(e in o)r.push({chr:e,annots:[]});r=function(t,n){var e,r,o,i;for(e=0;e"+a.name+""),i=(c=_slicedToArray(J(i,r='',a),2))[0],r=c[1],s+=(r+="")+"
    "+i+"
"}var u=o.b.select(t.config.container+" #_ideogramOuterWrap");u.append("style").html("#_ideogramLegend {font: 12px Arial; line-height: 19px; overflow: auto;} #_ideogramLegend svg {float: left;} #_ideogramLegend ul {position: relative; left: -14px; list-style: none; float: left; padding-left: 10px; margin: 0 0 1em 0; width: auto; border: none;} #_ideogramLegend li {float: none; margin: 0;}#_ideogramLegend ul span {position: relative; left: -15px;} "),u.append("div").attr("id","_ideogramLegend").html(s)}(this),/heatmap/.test(n)?this.drawHeatmaps(t):(function(t,n,e){var r;!function(t,n){var e,r;if(!/heatmap/.test(t)&&"histogram"!==t){for(r=0,e=0;e2e3&&console.warn('Rendering more than 2000 annotations in Ideogram?\nTry setting "annotationsLayout" to "heatmap" or "histogram" in your Ideogram configuration object for better layout and performance.')}}(t,n),"histogram"===t&&(n=e.getHistogramBars(n)),r=function(t,n){return o.b.selectAll(n.selector+" .chromosome").data(t).selectAll("path.annot").data((function(t){return t.annots})).enter()}(e.fillAnnots(n),e),"tracks"===t?function(t,n){var e,r=n.config.annotationHeight;e=function(t){var n;return{triangle:"m0,0 l -"+t+" "+2*t+" l "+2*t+" 0 z",circle:"m -"+(n=t)+", "+n+"a "+n+","+n+" 0 1,0 "+2*n+",0a "+n+","+n+" 0 1,0 -"+2*n+",0",rectangle:"m0,0 l 0 "+2*t+"l "+t+" 0l 0 -"+2*t+"z"}}(r),t.append("g").attr("id",(function(t){return t.id})).attr("class","annot").attr("transform",(function(t){var e=n.config.chrWidth+t.trackIndex*r*2;return"translate("+t.px+","+e+")"})).append("path").attr("d",(function(t){return function(t,n){return t.shape&&"triangle"!==t.shape?"circle"===t.shape?n.circle:"rectangle"===t.shape?n.rectangle:t.shape:n.triangle}(t,e)})).attr("fill",(function(t){return t.color})).on("mouseover",(function(t){n.showAnnotTooltip(t,this)})).on("mouseout",(function(){n.startHideAnnotTooltipTimeout()}))}(r,e):"overlay"===t?function(t,n){t.append("polygon").attr("id",(function(t){return t.id})).attr("class","annot").attr("points",(function(t){var e,r,o=n.config.chrWidth;return t.stopPx-t.startPx>1?(e=t.startPx,r=t.stopPx):(e=t.px-.5,r=t.px+.5),e+","+o+" "+r+","+o+" "+r+",0 "+e+",0"})).attr("fill",(function(t){return t.color})).on("mouseover",(function(t){n.showAnnotTooltip(t,this)})).on("mouseout",(function(){n.startHideAnnotTooltipTimeout()}))}(r,e):"histogram"===t&&function(t,n){var e,r,o={},i=n.config.chrWidth;for(r in e=n.chromosomes[n.config.taxid])o[r]=e[r];t.append("polygon").attr("class","annot").attr("points",(function(t){return function(t,n,e,r){var o,i,a,s;o=t.px+r.bump,i=t.px+r.config.barWidth+r.bump,a=n,s=n+t.height;var c=e[t.chr];return i>c&&(i=c),o+","+a+" "+i+","+a+" "+i+","+s+" "+o+","+s}(t,i,o,n)})).attr("fill",(function(t){return t.color}))}(r,e)}(n,t,this),this.onDrawAnnotsCallback&&this.onDrawAnnotsCallback())}function et(t,n,e){return t.append("g").attr("class","syntenicRegion").attr("id",n).on("click",(function(){var t=this,n=o.b.selectAll(e.selector+" .syntenicRegion").filter((function(){return this!==t}));n.classed("hidden",!n.classed("hidden"))})).on("mouseover",(function(){var t=this;o.b.selectAll(e.selector+" .syntenicRegion").filter((function(){return this!==t})).classed("ghost",!0)})).on("mouseout",(function(){o.b.selectAll(e.selector+" .syntenicRegion").classed("ghost",!1)}))}function rt(t,n,e){var r,o;return r=t.r1,o=t.r2,r.startPx=e.convertBpToPx(r.chr,r.start)+n,r.stopPx=e.convertBpToPx(r.chr,r.stop)+n,o.startPx=e.convertBpToPx(o.chr,o.start)+n,o.stopPx=e.convertBpToPx(o.chr,o.stop)+n,[r,o]}function ot(t,n,e,r,o,i){var a,s;a="color"in i?i.color:"#CFC",s="opacity"in i?i.opacity:1,t.append("polygon").attr("points",n+", "+r.startPx+" "+n+", "+r.stopPx+" "+e+", "+o.stopPx+" "+e+", "+o.startPx).style("fill",a).style("fill-opacity",s)}function it(t,n,e,r,o){t.append("line").attr("class","syntenyBorder").attr("x1",n).attr("x2",e).attr("y1",r.startPx).attr("y2",o.startPx),t.append("line").attr("class","syntenyBorder").attr("x1",n).attr("x2",e).attr("y1",r.stopPx).attr("y2",o.stopPx)}function at(t){var n=(new Date).getTime();(function(t,n,e,r){var o,i,a,s,c,u,l,f;for(o=0;oc&&(c=s+1),i.splice(4,0,s),a.push(i);u.push({chr:o.chr,annots:a})}return n.numAvailTracks=c,u}(t.annots,this),n.splice(4,0,"trackIndexOriginal"),t={keys:n,annots:e},this.rawAnnots.metadata&&(t.metadata=this.rawAnnots.metadata),t)}var lt=[["F00"],["F00","88F"],["F00","CCC","88F"],["F00","FA0","0AF","88F"],["F00","FA0","CCC","0AF","88F"],["F00","FA0","875","578","0AF","88F"],["F00","FA0","875","CCC","578","0AF","88F"],["F00","FA0","7A0","875","0A7","578","0AF","88F"],["F00","FA0","7A0","875","CCC","0A7","578","0AF","88F"],["F00","FA0","7A0","875","552","255","0A7","578","0AF","88F"]];function ft(t,n,e,r,o,i,a){var s;return a.config.annotationTracks?o=function(t,n,e,r,o){var i;return n.trackIndex=e[3],(i=o.config.annotationTracks[n.trackIndex]).color&&(n.color=i.color),i.shape&&(n.shape=i.shape),t[r].annots.push(n),t}(o,t,e,i,a):"trackIndex"===n[3]&&1!==a.numAvailTracks?(o=(s=_slicedToArray(function(t,n,e,r,o,i){var a=lt[i.numAvailTracks-1];return t.trackIndex=n[3],t.trackIndexOriginal=n[4],t.color="#"+a[t.trackIndexOriginal],t.trackIndex>i.config.numTracks-1?(t.trackIndex in e?e[t.trackIndex].push(t):e[t.trackIndex]=[t],[r,e]):(r[o].annots.push(t),[r,e])}(t,e,r,o,i,a),2))[0],r=s[1]):o=function(t,n,e,r){return n.trackIndex=0,n.color||(n.color=r.config.annotationsColor),n.shape||(n.shape="triangle"),t[e].annots.push(n),t}(o,t,i,a),[o,r]}function ht(t,n,e,r,o,i,a){var s,c,u,l;for(s=0;s10&&console.error("Ideogram only displays up to 10 tracks at a time. You specified "+o+" tracks. Perhaps consider a different way to visualize your data."),(e=Object.keys(t).length)&&console.warn("Ideogram configuration specified "+o+" tracks, but loaded annotations contain "+e+" extra tracks.")}(i,this),o}var pt=function(){function t(n,e){_classCallCheck(this,t),this.matrix=n,this.ideo=e}return _createClass(t,[{key:"setRawAnnots",value:function(){var t,n,e;return t=this,n=this.ideo,e=this.matrix,new Promise((function(r){t.rawAnnots=t.fetchCoordinates(n).then((function(o){t.coordinates=o,r(t.parseExpressionMatrix(e,n))}))}))}},{key:"fetchCoordinates",value:function(t){var n={};if("human"===t.config.organism){var e=t.config.dataDir+"../../annotations/Homo_sapiens,_Ensembl_80.tsv";return new Promise((function(t){o.b.text(e).then((function(e){var r,o,i,a,s,c,u;for(r=e.split(/\r\n|\n/).slice(1),o=0;o100){if(void 0===e.recovering)return o.getAssemblyAndChromosomesFromEutils(e.callback,!0),Promise.reject("Unexpectedly found genomic scaffolds instead of chromosomes while querying RefSeq. Recovering.");throw Error("Failed to find chromosomes for genome "+r)}}(t,n,e),r=t.linksets[0].linksetdbs[0].links.join(","),i=e.ideo.esummary+"&db=nucleotide&id="+r,o.b.json(i)}(t,i,s)})).then((function(n){return i=function(t,n,e){var r,o,i=[];for(r in t)"uids"!==r&&(o=kt(t[r],e),i.push(o));return i=i.sort(Ideogram.sortChromosomes),e.coordinateSystem="bp",n.push(i),n}(n.result,i,a),t(i)}),(function(t){console.warn(t)}))}function Tt(){var t=this.bandsToShow.join(",");o.b.selectAll(this.selector+" .bandLabel, .bandLabelStalk").style("display","none"),o.b.selectAll(t).style("display","")}function Mt(t,n,e,r,o){return n!==e&&(t=r[o.id][e]+36),t}function St(t,n,e,r,o,i,a){var s,c;return e',a+="gneg"===e?'':'',a+=""}return a}(_t),wt+""+(t+=xt)+""}_t=[["gneg","#FFF","#FFF","#DDD"],["gpos25","#C8C8C8","#DDD","#BBB"],["gpos33","#BBB","#BBB","#AAA"],["gpos50","#999","#AAA","#888"],["gpos66","#888","#888","#666"],["gpos75","#777","#777","#444"],["gpos100","#444","#666","#000"],["acen","#FEE","#FEE","#FDD"],["noBands","#BBB","#BBB","#AAA"]],wt='',xt=' ';var Nt=e(3);function Ht(t,n,e,r){var o,i;return o=n[t],e.push(o),(i={iscn:o[o.length-1].iscn.stop,bp:o[o.length-1].bp.stop}).iscn>r.maxLength.iscn&&(r.maxLength.iscn=i.iscn),i.bp>r.maxLength.bp&&(r.maxLength.bp=i.bp),e}function It(t,n,e,o){var i,a;if("iscn"===o.coordinateSystem||o.config.multiorganism)e=function(t,n,e,o){var i,a,s;for(i=o.bandData[t],a=o.parseBands(i,t,n),n=Object.keys(a).sort((function(t,n){return r(t,n)})),o.config.chromosomes[t]=n.slice(),o.numChromosomes+=o.config.chromosomes[t].length,s=0;so.maxLength.bp&&(o.maxLength.bp=i.length);return e}function jt(){var t,n,e,r,o,i,a,s,c=(new Date).getTime();e=[],t=function(t){var n,e,r;if(!0===t.config.multiorganism)for(t.coordinateSystem="bp",r=t.config.taxids,n=0;n1&&o.length>1&&(t=r[0].replace("chr",""),o=r[1].split("-"),n=parseInt(o[0]),e=parseInt(o[1]-1)),[t,n,e]}(t,n,e),t=(i=_slicedToArray(r,3))[0],n=i[1],e=i[2],u=(a=_slicedToArray(function(t,n){var e,r,o=[1],i=[1],a=t.bands.slice(-1)[0];for(r=0;r1){if(o=function(t,n){var e,r,o,i,a,s,c,u,l;for(e=0;e=a&&n<=s)return[u+l*(o+i/c*(n-a)-o)/i,r];return[null,r]}(t,n),r=(i=_slicedToArray(o,2))[0],e=i[1],null!==r)return r}else if(n>=1&&n<=t.length)return t.scale.bp*n;!function(t,n,e){throw new Error("Base pair out of range. bp: "+t+"; length of chr"+n.name+": "+e.bp.stop)}(n,t,e)}function Xt(t,n,e,r,o,i,a){var s,c,u,l;return a=t-n,s=r-o,c=i.bp.stop-i.bp.start,u=n+a/s*(e-o),l=i.bp.start+c*(u-n)/a,Math.round(l)}function $t(t,n){var e,r,o,i,a,s;for(0===n&&(n=t.bands[0].px.start),e=0;e=o&&n<=i)return Xt(s,a,n,i,o,r,void 0);!function(t,n,e){throw new Error("Pixel out of range. px: "+t+"; length of chr"+n.name+": "+e)}(n,t,i)}var Vt=e(6);function Gt(){var t,n,e=[],r=this.annots;for(n=0;n1&&this._model.bands.push({name:"q",px:{start:0,stop:this._model.width,width:this._model.width},bp:{start:1,stop:this._model.length}}),this._model}},{key:"getCssClass",value:function(){return"noBands"}}]),n}(nn),rn=function(){function t(n){_classCallCheck(this,t),this._config=n,this._ploidy=new f(this._config)}return _createClass(t,[{key:"getArmColor",value:function(t,n,e){return this._config.armColors?this._config.armColors[e]:this._config.ancestors?this._getPolyploidArmColor(t,n,e):null}},{key:"getBorderColor",value:function(t,n,e){return n1&&(r=this._ploidy.getChromosomesNumber(n)),a=0;a1||""===n.orientation)&&(t-=1),t}(n,s),o=-4,!0===s.showBandLabels&&(o=s.chrMargin+s.chrWidth+26),i=s.chrMargin*n,s.numAnnotTracks>1==0&&(i+=1),a=i+o,t.selectAll("text.chrLabel").attr("transform",e.scaleSvg).selectAll("tspan").attr("x",e.x).attr("y",a)}(t,n,o,this):function(t,n,e,r){var o,i,a,s=r.config;o=-s.chrWidth-2,!0===s.showBandLabels&&(o=s.chrMargin+8),i=s.annotTracksHeight,"overlay"!==s.annotationsLayout&&(i*=2),a=3-(s.chrMargin*n+o)+i,a/=e.scale.x,t.selectAll("text.chrLabel").attr("transform","rotate(-90)"+e.scaleSvg).selectAll("tspan").attr("x",a).attr("y",e.y)}(t,n,o,this)}var pn=function(){function t(n){_classCallCheck(this,t),this.configure=i,this.initDrawChromosomes=A,this.onLoad=C,this.handleRotateOnClick=k,this.init=S,this.finishInit=l,this.writeContainer=y,this.onLoadAnnots=X,this.onDrawAnnots=$,this.processAnnotData=gt,this.restoreDefaultTracks=st,this.updateDisplayedTracks=ct,this.initAnnotSettings=mt,this.fetchAnnots=yt,this.drawAnnots=tt,this.getHistogramBars=K,this.drawHeatmaps=Y,this.deserializeAnnotsForHeatmap=q,this.fillAnnots=vt,this.drawProcessedAnnots=nt,this.drawSynteny=at,this.startHideAnnotTooltipTimeout=V,this.showAnnotTooltip=Q,this.onWillShowAnnotTooltip=G,this.setOriginalTrackIndexes=ut,this.afterRawAnnots=bt,this.esearch="https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?retmode=json&api_key=7e33ac6a08a6955ec3b83d214d22b21a2808",this.esummary="https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?retmode=json&api_key=7e33ac6a08a6955ec3b83d214d22b21a2808",this.elink="https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?retmode=json&api_key=7e33ac6a08a6955ec3b83d214d22b21a2808",this.getTaxidFromEutils=At.b,this.setTaxidData=At.e,this.setTaxidAndAssemblyAndChromosomes=At.d,this.getOrganismFromEutils=At.a,this.getTaxids=At.c,this.getAssemblyAndChromosomesFromEutils=Ct,this.parseBands=Nt.a,this.drawBandLabels=Pt,this.getBandColorGradients=Et,this.processBandData=jt,this.setBandsToShow=Dt,this.hideUnshownBandLabels=Tt,this.drawBandLabelText=Bt,this.drawBandLabelStalk=Ot,this.onBrushMove=Wt,this.createBrush=Ut,this.drawSexChromosomes=Yt,this.setSexChromosomes=zt,this.convertBpToPx=qt,this.convertPxToBp=$t,this.unpackAnnots=Gt,this.packAnnots=Qt,this.initCrossFilter=Kt,this.filterAnnots=Zt,this.assemblyIsAccession=o.a,this.getDataDir=o.c,this.round=o.h,this.onDidRotate=o.g,this.getSvg=o.d,this.getChromosomeModel=tn,this.getChromosomePixels=Jt,this.drawChromosomeLabels=dn,this.rotateChromosomeLabels=gn,this.appendHomolog=un,this.drawChromosome=ln,this.rotateAndToggleDisplay=fn,this.setOverflowScroll=hn,this.configure(n)}return _createClass(t,null,[{key:"slugify",value:function(t){return t.toLowerCase().replace(" ","-")}},{key:"sortChromosomes",value:function(t,n){var e="nuclear"===t.type,o="nuclear"===n.type,i="chloroplast"===t.type,a="chloroplast"===n.type,s="mitochondrion"===t.type,c="mitochondrion"===n.type,u="apicoplast"===t.type,l="apicoplast"===n.type;return e&&o?r(t.name,n.name):!e&&o?1:s&&a?1:i&&c?-1:u||s||i||!(c||a||l)?void 0:-1}},{key:"version",get:function(){return"1.6.0"}},{key:"d3",get:function(){return o.b}}]),t}();window.Ideogram=pn,n.default=pn}])},"object"==_typeof(exports)&&"object"==_typeof(module)?module.exports=n():(__WEBPACK_AMD_DEFINE_ARRAY__=[],void 0===(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof(__WEBPACK_AMD_DEFINE_FACTORY__=n)?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__)||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}).call(this,__webpack_require__(75)(module))},41:function(t,n,e){"use strict";e.r(n),e.d(n,"default",(function(){return p}));var r=e(1),o=e.n(r),i=e(249),a=e.n(i),s=e(466),c=e(14);function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(){return(l=Object.assign||function(t){for(var n=1;n= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","var matcher = function(selector) {\n return function() {\n return this.matches(selector);\n };\n};\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!element.matches) {\n var vendorMatches = element.webkitMatchesSelector\n || element.msMatchesSelector\n || element.mozMatchesSelector\n || element.oMatchesSelector;\n matcher = function(selector) {\n return function() {\n return vendorMatches.call(this, selector);\n };\n };\n }\n}\n\nexport default matcher;\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n return this.parentNode.insertBefore(this.cloneNode(false), this.nextSibling);\n}\n\nfunction selection_cloneDeep() {\n return this.parentNode.insertBefore(this.cloneNode(true), this.nextSibling);\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","/**\n * @fileoverview A collection of Ideogram methods that don't fit elsewhere.\n */\n\nimport * as d3selection from 'd3-selection';\n\nvar d3 = Object.assign({}, d3selection);\n\n/**\n * Is the assembly in this.config an NCBI Assembly accession?\n *\n * @returns {boolean}\n */\nfunction assemblyIsAccession() {\n return (\n 'assembly' in this.config &&\n /(GCF_|GCA_)/.test(this.config.assembly)\n );\n}\n\n/**\n * Is the assembly in this.config not from GenBank?\n *\n * @returns {boolean}\n */\nfunction hasNonGenBankAssembly(ideo) {\n return (\n 'assembly' in ideo.config &&\n /(GCA_)/.test(ideo.config.assembly) === false\n );\n}\n\n/**\n * Is the assembly in this.config from GenBank?\n *\n * @returns {boolean}\n */\nfunction hasGenBankAssembly(ideo) {\n return (\n 'assembly' in ideo.config &&\n /(GCA_)/.test(ideo.config.assembly)\n );\n}\n\n/**\n * Returns directory used to fetch data for bands and annotations\n *\n * This simplifies ideogram configuration. By default, the dataDir is\n * set to an external CDN unless we're serving from the local host, in\n * which case dataDir is deduced from the \"src\" attribute of the ideogram\n * script loaded in the document.\n *\n * @returns {String}\n */\nfunction getDataDir() {\n var script, tmp, protocol, dataDir, ideogramInLeaf,\n scripts = document.scripts,\n host = location.host.split(':')[0],\n version = Ideogram.version;\n\n if (host !== 'localhost' && host !== '127.0.0.1') {\n return (\n 'https://unpkg.com/ideogram@' + version + '/dist/data/bands/native/'\n );\n }\n\n for (var i = 0; i < scripts.length; i++) {\n script = scripts[i];\n ideogramInLeaf = /ideogram/.test(script.src.split('/').slice(-1));\n if ('src' in script && ideogramInLeaf) {\n tmp = script.src.split('//');\n protocol = tmp[0];\n tmp = '/' + tmp[1].split('/').slice(0,-2).join('/');\n dataDir = protocol + '//' + tmp + '/data/bands/native/';\n return dataDir;\n }\n }\n return '../data/bands/native/';\n}\n\n/**\n * Rounds an SVG coordinates to two decimal places\n *\n * @param coord SVG coordinate, e.g. 42.1234567890\n * @returns {number} Rounded value, e.g. 42.12\n */\nfunction round(coord) {\n // Per http://stackoverflow.com/a/9453447, below method is fastest\n return Math.round(coord * 100) / 100;\n}\n\nfunction onDidRotate(chrModel) {\n call(this.onDidRotateCallback, chrModel);\n}\n\n/**\n * Get ideogram SVG container\n */\nfunction getSvg() {\n return d3.select(this.selector).node();\n}\n\nexport {\n assemblyIsAccession, hasNonGenBankAssembly, hasGenBankAssembly, getDataDir,\n drawChromosomeLabels, rotateChromosomeLabels, round, appendHomolog,\n drawChromosome, rotateAndToggleDisplay, onDidRotate, getSvg,\n setOverflowScroll, Object\n};\n","function responseBlob(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.blob();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseBlob);\n}\n","function responseArrayBuffer(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.arrayBuffer();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseArrayBuffer);\n}\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"]\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n })).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(text) {\n return text == null ? \"\"\n : reFormat.test(text += \"\") ? \"\\\"\" + text.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : text;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatRows: formatRows\n };\n}\n","import dsv from \"./dsv\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatRows = csv.formatRows;\n","import dsv from \"./dsv\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatRows = tsv.formatRows;\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","export default function(input, init) {\n return new Promise(function(resolve, reject) {\n var image = new Image;\n for (var key in init) image[key] = init[key];\n image.onerror = reject;\n image.onload = function() { resolve(image); };\n image.src = input;\n });\n}\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","import text from \"./text\";\n\nfunction parser(type) {\n return function(input, init) {\n return text(input, init).then(function(text) {\n return (new DOMParser).parseFromString(text, type);\n });\n };\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","import * as d3fetch from 'd3-fetch';\n\nvar d3 = Object.assign({}, d3fetch);\n\n/**\n * Returns an NCBI taxonomy identifier (taxid) for the configured organism\n */\nfunction getTaxidFromEutils(callback) {\n var organism, taxonomySearch, taxid,\n ideo = this;\n\n organism = ideo.config.organism;\n\n taxonomySearch = ideo.esearch + '&db=taxonomy&term=' + organism;\n\n d3.json(taxonomySearch).then(function(data) {\n taxid = data.esearchresult.idlist[0];\n if (typeof ideo.config.taxids === 'undefined') {\n ideo.config.taxids = [taxid];\n } else {\n ideo.config.taxids.push(taxid);\n }\n return callback(taxid);\n });\n}\n\nfunction setTaxidData(taxid) {\n var organism, dataDir, urlOrg, taxids,\n ideo = this;\n\n organism = ideo.config.organism;\n dataDir = ideo.config.dataDir;\n urlOrg = organism.replace(' ', '-');\n\n taxids = [taxid];\n\n ideo.organisms[taxid] = {\n commonName: '',\n scientificName: organism,\n scientificNameAbbr: ''\n };\n\n var fullyBandedTaxids = ['9606', '10090', '10116'];\n if (fullyBandedTaxids.includes(taxid) && !ideo.config.showFullyBanded) {\n urlOrg += '-no-bands';\n }\n var chromosomesUrl = dataDir + urlOrg + '.js';\n\n var promise2 = new Promise(function(resolve, reject) {\n fetch(chromosomesUrl).then(function(response) {\n if (response.ok === false) {\n reject(Error('Fetch failed for ' + chromosomesUrl));\n } else {\n return response.text().then(function(text) {\n resolve(text);\n });\n }\n });\n });\n\n return promise2\n .then(function(data) {\n // Check if chromosome data exists locally.\n // This is used for pre-processed centromere data,\n // which is not accessible via EUtils. See get_chromosomes.py.\n\n var asmAndChrTaxidsArray = [''],\n chromosomes = [],\n seenChrs = {},\n chr;\n\n eval(data);\n\n for (var i = 0; i < chrBands.length; i++) {\n chr = chrBands[i].split(' ')[0];\n if (chr in seenChrs) {\n continue;\n } else {\n chromosomes.push({name: chr, type: 'nuclear'});\n seenChrs[chr] = 1;\n }\n }\n chromosomes = chromosomes.sort(Ideogram.sortChromosomes);\n asmAndChrTaxidsArray.push(chromosomes);\n asmAndChrTaxidsArray.push(taxids);\n ideo.coordinateSystem = 'iscn';\n return asmAndChrTaxidsArray;\n },\n function() {\n return new Promise(function(resolve) {\n ideo.coordinateSystem = 'bp';\n ideo.getAssemblyAndChromosomesFromEutils(resolve);\n });\n });\n}\n\nfunction setTaxidAndAssemblyAndChromosomes(callback) {\n var assembly, chromosomes, getTaxidsFromEutils, taxid, taxids,\n ideo = this;\n\n getTaxidsFromEutils = new Promise(function(resolve) {\n ideo.getTaxidFromEutils(resolve);\n });\n\n getTaxidsFromEutils\n .then(function(data) {\n taxid = data;\n return ideo.setTaxidData(taxid);\n })\n .then(function(asmChrTaxidsArray) {\n assembly = asmChrTaxidsArray[0];\n chromosomes = asmChrTaxidsArray[1];\n taxids = ideo.config.taxids;\n ideo.config.chromosomes = chromosomes;\n ideo.organisms[taxid].assemblies = {\n default: assembly\n };\n\n callback(taxids);\n });\n}\n\nfunction prepareTmpChrsAndTaxids(ideo) {\n var orgs, taxids, tmpChrs, i, org, taxid,\n config = ideo.config;\n\n taxids = [];\n tmpChrs = {};\n orgs = (config.multiorganism) ? config.organism : [config.organism];\n\n for (i = 0; i < orgs.length; i++) {\n // Gets a list of taxids from common organism names\n org = orgs[i];\n for (taxid in ideo.organisms) {\n if (ideo.organisms[taxid].commonName.toLowerCase() === org) {\n taxids.push(taxid);\n if (config.multiorganism) {\n // Adjusts 'chromosomes' configuration parameter to make object\n // keys use taxid instead of common organism name\n tmpChrs[taxid] = config.chromosomes[org];\n }\n }\n }\n }\n\n return [tmpChrs, taxids];\n}\n\nfunction getTaxidsForOrganismInConfig(taxids, callback, ideo) {\n\n var tmpChrs;\n\n [tmpChrs, taxids] = prepareTmpChrsAndTaxids(ideo);\n\n if (\n taxids.length === 0 ||\n ideo.assemblyIsAccession() && /GCA_/.test(ideo.config.assembly)\n ) {\n ideo.setTaxidAndAssemblyAndChromosomes(callback);\n } else {\n ideo.config.taxids = taxids;\n if (ideo.config.multiorganism) {\n ideo.config.chromosomes = tmpChrs;\n }\n callback(taxids);\n }\n}\n\nfunction getIsMultiorganism(taxidInit, ideo) {\n return (\n ('organism' in ideo.config && ideo.config.organism instanceof Array) ||\n (taxidInit && ideo.config.taxid instanceof Array)\n );\n}\n\nfunction getTaxidsForOrganismNotInConfig(taxids, taxidInit, callback, ideo) {\n if (ideo.config.multiorganism) {\n ideo.coordinateSystem = 'bp';\n if (taxidInit) {\n taxids = ideo.config.taxid;\n }\n } else {\n if (taxidInit) {\n taxids = [ideo.config.taxid];\n }\n ideo.config.taxids = taxids;\n }\n callback(taxids);\n}\n\n/**\n * Returns an array of taxids for the current ideogram\n * Also sets configuration parameters related to taxid(s), whether ideogram is\n * multiorganism, and adjusts chromosomes parameters as needed\n **/\nfunction getTaxids(callback) {\n var taxids, taxidInit,\n ideo = this;\n\n taxidInit = 'taxid' in ideo.config;\n\n ideo.config.multiorganism = getIsMultiorganism(taxidInit, ideo);\n\n if ('organism' in ideo.config) {\n getTaxidsForOrganismInConfig(taxids, callback, ideo)\n } else {\n getTaxidsForOrganismNotInConfig(taxids, taxidInit, callback, ideo);\n }\n}\n\n/**\n * Searches NCBI EUtils for the common organism name for this ideogram\n * instance's taxid (i.e. NCBI Taxonomy ID)\n *\n * @param callback Function to call upon completing ESearch request\n */\nfunction getOrganismFromEutils(callback) {\n var organism, taxonomySearch, taxid,\n ideo = this;\n\n taxid = ideo.config.organism;\n\n taxonomySearch = ideo.esummary + '&db=taxonomy&id=' + taxid;\n\n d3.json(taxonomySearch).then(function(data) {\n organism = data.result[String(taxid)].commonname;\n ideo.config.organism = organism;\n return callback(organism);\n });\n}\n\nexport {\n getTaxidFromEutils, setTaxidAndAssemblyAndChromosomes, getTaxids,\n setTaxidData, getOrganismFromEutils\n}","import {Object} from '../lib';\n\nfunction getDelimiterTsvLinesAndInit(source, content) {\n var delimiter, tsvLines, init;\n\n if (typeof chrBands === 'undefined' && source !== 'native') {\n delimiter = /\\t/;\n tsvLines = content.split(/\\r\\n|\\n/);\n init = 1;\n } else {\n delimiter = / /;\n if (source === 'native') {\n tsvLines = eval(content);\n } else {\n tsvLines = content;\n }\n init = 0;\n }\n\n return [delimiter, tsvLines, init];\n}\n\nfunction updateChromosomes(chromosomes) {\n var tmp, i;\n\n if (chromosomes instanceof Array && typeof chromosomes[0] === 'object') {\n tmp = [];\n for (i = 0; i < chromosomes.length; i++) {\n tmp.push(chromosomes[i].name);\n }\n chromosomes = tmp;\n }\n\n return chromosomes;\n}\n\nfunction getLineObject(chr, columns, stain, taxid) {\n return {\n chr: chr,\n bp: {\n start: parseInt(columns[5], 10),\n stop: parseInt(columns[6], 10)\n },\n iscn: {\n start: parseInt(columns[3], 10),\n stop: parseInt(columns[4], 10)\n },\n px: {\n start: -1,\n stop: -1,\n width: -1\n },\n name: columns[1] + columns[2],\n stain: stain,\n taxid: taxid\n };\n}\n\nfunction getStain(columns) {\n var stain = columns[7];\n // For e.g. acen and gvar, columns[8] (density) is undefined\n if (columns[8]) stain += columns[8];\n return stain;\n}\n\nfunction updateLines(lines, columns, taxid) {\n var chr, stain, line;\n\n chr = columns[0];\n if (chr in lines === false) lines[chr] = [];\n \n stain = getStain(columns)\n\n line = getLineObject(chr, columns, stain, taxid);\n lines[chr].push(line);\n\n return lines;\n}\n\n/**\n * Parses cytogenetic band data from a TSV file, or, if band data is\n * prefetched, from an array\n *\n * NCBI:\n * #chromosome arm band iscn_start iscn_stop bp_start bp_stop stain density\n * ftp://ftp.ncbi.nlm.nih.gov/pub/gdp/ideogram_9606_GCF_000001305.14_550_V1\n */\nfunction parseBands(content, taxid, chromosomes) {\n var delimiter, tsvLines, columns, chr, i, init, source,\n lines = {};\n\n if (content.slice(0, 15) === 'window.chrBands') source = 'native';\n \n chromosomes = updateChromosomes(chromosomes);\n\n [delimiter, tsvLines, init] = getDelimiterTsvLinesAndInit(source, content);\n\n for (i = init; i < tsvLines.length; i++) {\n columns = tsvLines[i].split(delimiter);\n\n chr = columns[0];\n\n if (\n typeof (chromosomes) !== 'undefined' &&\n chromosomes.indexOf(chr) === -1\n ) {\n // If a specific set of chromosomes has been requested, and\n // the current chromosome\n continue;\n }\n\n lines = updateLines(lines, columns, taxid);\n }\n\n return lines;\n}\n\nexport {parseBands}","function setBandData(url, fileNames, chrBands, ideo) {\n var taxid, fetchedTaxid, fileName;\n\n // Ensures correct taxid is processed in response callback;\n // using simply upstream 'taxid' variable gives the last\n // *requested* taxid, which fails when dealing with multiple taxa.\n for (taxid in fileNames) {\n fileName = fileNames[taxid];\n if (url.includes(fileName) && fileName !== '') {\n fetchedTaxid = taxid;\n }\n }\n\n ideo.bandData[fetchedTaxid] = chrBands;\n}\n\nfunction fetchBands(bandDataFileNames, taxid, t0, ideo) {\n var bandDataUrl = ideo.config.dataDir + bandDataFileNames[taxid];\n\n if (!ideo.numBandDataResponses) ideo.numBandDataResponses = 0;\n\n fetch(bandDataUrl)\n .then(function(response) {\n return response.text().then(function(rawBands) {\n\n delete window.chrBands; // Remove any previous chrBands variable\n eval(rawBands); // Fetched data is a JS variable 'chrBands'; assign it\n\n setBandData(response.url, bandDataFileNames, chrBands, ideo);\n\n ideo.numBandDataResponses += 1;\n\n if (ideo.numBandDataResponses === ideo.config.taxids.length) {\n var bandsArray = ideo.processBandData();\n ideo.writeContainer(bandsArray, taxid, t0);\n delete ideo.numBandDataResponses;\n }\n });\n });\n}\n\nexport {fetchBands}","module.exports = require(\"./crossfilter\").crossfilter;\n","(function(exports){\ncrossfilter.version = \"1.3.12\";\nfunction crossfilter_identity(d) {\n return d;\n}\ncrossfilter.permute = permute;\n\nfunction permute(array, index) {\n for (var i = 0, n = index.length, copy = new Array(n); i < n; ++i) {\n copy[i] = array[index[i]];\n }\n return copy;\n}\nvar bisect = crossfilter.bisect = bisect_by(crossfilter_identity);\n\nbisect.by = bisect_by;\n\nfunction bisect_by(f) {\n\n // Locate the insertion point for x in a to maintain sorted order. The\n // arguments lo and hi may be used to specify a subset of the array which\n // should be considered; by default the entire array is used. If x is already\n // present in a, the insertion point will be before (to the left of) any\n // existing entries. The return value is suitable for use as the first\n // argument to `array.splice` assuming that a is already sorted.\n //\n // The returned insertion point i partitions the array a into two halves so\n // that all v < x for v in a[lo:i] for the left side and all v >= x for v in\n // a[i:hi] for the right side.\n function bisectLeft(a, x, lo, hi) {\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (f(a[mid]) < x) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n // Similar to bisectLeft, but returns an insertion point which comes after (to\n // the right of) any existing entries of x in a.\n //\n // The returned insertion point i partitions the array into two halves so that\n // all v <= x for v in a[lo:i] for the left side and all v > x for v in\n // a[i:hi] for the right side.\n function bisectRight(a, x, lo, hi) {\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (x < f(a[mid])) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n bisectRight.right = bisectRight;\n bisectRight.left = bisectLeft;\n return bisectRight;\n}\nvar heap = crossfilter.heap = heap_by(crossfilter_identity);\n\nheap.by = heap_by;\n\nfunction heap_by(f) {\n\n // Builds a binary heap within the specified array a[lo:hi]. The heap has the\n // property such that the parent a[lo+i] is always less than or equal to its\n // two children: a[lo+2*i+1] and a[lo+2*i+2].\n function heap(a, lo, hi) {\n var n = hi - lo,\n i = (n >>> 1) + 1;\n while (--i > 0) sift(a, i, n, lo);\n return a;\n }\n\n // Sorts the specified array a[lo:hi] in descending order, assuming it is\n // already a heap.\n function sort(a, lo, hi) {\n var n = hi - lo,\n t;\n while (--n > 0) t = a[lo], a[lo] = a[lo + n], a[lo + n] = t, sift(a, 1, n, lo);\n return a;\n }\n\n // Sifts the element a[lo+i-1] down the heap, where the heap is the contiguous\n // slice of array a[lo:lo+n]. This method can also be used to update the heap\n // incrementally, without incurring the full cost of reconstructing the heap.\n function sift(a, i, n, lo) {\n var d = a[--lo + i],\n x = f(d),\n child;\n while ((child = i << 1) <= n) {\n if (child < n && f(a[lo + child]) > f(a[lo + child + 1])) child++;\n if (x <= f(a[lo + child])) break;\n a[lo + i] = a[lo + child];\n i = child;\n }\n a[lo + i] = d;\n }\n\n heap.sort = sort;\n return heap;\n}\nvar heapselect = crossfilter.heapselect = heapselect_by(crossfilter_identity);\n\nheapselect.by = heapselect_by;\n\nfunction heapselect_by(f) {\n var heap = heap_by(f);\n\n // Returns a new array containing the top k elements in the array a[lo:hi].\n // The returned array is not sorted, but maintains the heap property. If k is\n // greater than hi - lo, then fewer than k elements will be returned. The\n // order of elements in a is unchanged by this operation.\n function heapselect(a, lo, hi, k) {\n var queue = new Array(k = Math.min(hi - lo, k)),\n min,\n i,\n x,\n d;\n\n for (i = 0; i < k; ++i) queue[i] = a[lo++];\n heap(queue, 0, k);\n\n if (lo < hi) {\n min = f(queue[0]);\n do {\n if (x = f(d = a[lo]) > min) {\n queue[0] = d;\n min = f(heap(queue, 0, k)[0]);\n }\n } while (++lo < hi);\n }\n\n return queue;\n }\n\n return heapselect;\n}\nvar insertionsort = crossfilter.insertionsort = insertionsort_by(crossfilter_identity);\n\ninsertionsort.by = insertionsort_by;\n\nfunction insertionsort_by(f) {\n\n function insertionsort(a, lo, hi) {\n for (var i = lo + 1; i < hi; ++i) {\n for (var j = i, t = a[i], x = f(t); j > lo && f(a[j - 1]) > x; --j) {\n a[j] = a[j - 1];\n }\n a[j] = t;\n }\n return a;\n }\n\n return insertionsort;\n}\n// Algorithm designed by Vladimir Yaroslavskiy.\n// Implementation based on the Dart project; see lib/dart/LICENSE for details.\n\nvar quicksort = crossfilter.quicksort = quicksort_by(crossfilter_identity);\n\nquicksort.by = quicksort_by;\n\nfunction quicksort_by(f) {\n var insertionsort = insertionsort_by(f);\n\n function sort(a, lo, hi) {\n return (hi - lo < quicksort_sizeThreshold\n ? insertionsort\n : quicksort)(a, lo, hi);\n }\n\n function quicksort(a, lo, hi) {\n // Compute the two pivots by looking at 5 elements.\n var sixth = (hi - lo) / 6 | 0,\n i1 = lo + sixth,\n i5 = hi - 1 - sixth,\n i3 = lo + hi - 1 >> 1, // The midpoint.\n i2 = i3 - sixth,\n i4 = i3 + sixth;\n\n var e1 = a[i1], x1 = f(e1),\n e2 = a[i2], x2 = f(e2),\n e3 = a[i3], x3 = f(e3),\n e4 = a[i4], x4 = f(e4),\n e5 = a[i5], x5 = f(e5);\n\n var t;\n\n // Sort the selected 5 elements using a sorting network.\n if (x1 > x2) t = e1, e1 = e2, e2 = t, t = x1, x1 = x2, x2 = t;\n if (x4 > x5) t = e4, e4 = e5, e5 = t, t = x4, x4 = x5, x5 = t;\n if (x1 > x3) t = e1, e1 = e3, e3 = t, t = x1, x1 = x3, x3 = t;\n if (x2 > x3) t = e2, e2 = e3, e3 = t, t = x2, x2 = x3, x3 = t;\n if (x1 > x4) t = e1, e1 = e4, e4 = t, t = x1, x1 = x4, x4 = t;\n if (x3 > x4) t = e3, e3 = e4, e4 = t, t = x3, x3 = x4, x4 = t;\n if (x2 > x5) t = e2, e2 = e5, e5 = t, t = x2, x2 = x5, x5 = t;\n if (x2 > x3) t = e2, e2 = e3, e3 = t, t = x2, x2 = x3, x3 = t;\n if (x4 > x5) t = e4, e4 = e5, e5 = t, t = x4, x4 = x5, x5 = t;\n\n var pivot1 = e2, pivotValue1 = x2,\n pivot2 = e4, pivotValue2 = x4;\n\n // e2 and e4 have been saved in the pivot variables. They will be written\n // back, once the partitioning is finished.\n a[i1] = e1;\n a[i2] = a[lo];\n a[i3] = e3;\n a[i4] = a[hi - 1];\n a[i5] = e5;\n\n var less = lo + 1, // First element in the middle partition.\n great = hi - 2; // Last element in the middle partition.\n\n // Note that for value comparison, <, <=, >= and > coerce to a primitive via\n // Object.prototype.valueOf; == and === do not, so in order to be consistent\n // with natural order (such as for Date objects), we must do two compares.\n var pivotsEqual = pivotValue1 <= pivotValue2 && pivotValue1 >= pivotValue2;\n if (pivotsEqual) {\n\n // Degenerated case where the partitioning becomes a dutch national flag\n // problem.\n //\n // [ | < pivot | == pivot | unpartitioned | > pivot | ]\n // ^ ^ ^ ^ ^\n // left less k great right\n //\n // a[left] and a[right] are undefined and are filled after the\n // partitioning.\n //\n // Invariants:\n // 1) for x in ]left, less[ : x < pivot.\n // 2) for x in [less, k[ : x == pivot.\n // 3) for x in ]great, right[ : x > pivot.\n for (var k = less; k <= great; ++k) {\n var ek = a[k], xk = f(ek);\n if (xk < pivotValue1) {\n if (k !== less) {\n a[k] = a[less];\n a[less] = ek;\n }\n ++less;\n } else if (xk > pivotValue1) {\n\n // Find the first element <= pivot in the range [k - 1, great] and\n // put [:ek:] there. We know that such an element must exist:\n // When k == less, then el3 (which is equal to pivot) lies in the\n // interval. Otherwise a[k - 1] == pivot and the search stops at k-1.\n // Note that in the latter case invariant 2 will be violated for a\n // short amount of time. The invariant will be restored when the\n // pivots are put into their final positions.\n while (true) {\n var greatValue = f(a[great]);\n if (greatValue > pivotValue1) {\n great--;\n // This is the only location in the while-loop where a new\n // iteration is started.\n continue;\n } else if (greatValue < pivotValue1) {\n // Triple exchange.\n a[k] = a[less];\n a[less++] = a[great];\n a[great--] = ek;\n break;\n } else {\n a[k] = a[great];\n a[great--] = ek;\n // Note: if great < k then we will exit the outer loop and fix\n // invariant 2 (which we just violated).\n break;\n }\n }\n }\n }\n } else {\n\n // We partition the list into three parts:\n // 1. < pivot1\n // 2. >= pivot1 && <= pivot2\n // 3. > pivot2\n //\n // During the loop we have:\n // [ | < pivot1 | >= pivot1 && <= pivot2 | unpartitioned | > pivot2 | ]\n // ^ ^ ^ ^ ^\n // left less k great right\n //\n // a[left] and a[right] are undefined and are filled after the\n // partitioning.\n //\n // Invariants:\n // 1. for x in ]left, less[ : x < pivot1\n // 2. for x in [less, k[ : pivot1 <= x && x <= pivot2\n // 3. for x in ]great, right[ : x > pivot2\n for (var k = less; k <= great; k++) {\n var ek = a[k], xk = f(ek);\n if (xk < pivotValue1) {\n if (k !== less) {\n a[k] = a[less];\n a[less] = ek;\n }\n ++less;\n } else {\n if (xk > pivotValue2) {\n while (true) {\n var greatValue = f(a[great]);\n if (greatValue > pivotValue2) {\n great--;\n if (great < k) break;\n // This is the only location inside the loop where a new\n // iteration is started.\n continue;\n } else {\n // a[great] <= pivot2.\n if (greatValue < pivotValue1) {\n // Triple exchange.\n a[k] = a[less];\n a[less++] = a[great];\n a[great--] = ek;\n } else {\n // a[great] >= pivot1.\n a[k] = a[great];\n a[great--] = ek;\n }\n break;\n }\n }\n }\n }\n }\n }\n\n // Move pivots into their final positions.\n // We shrunk the list from both sides (a[left] and a[right] have\n // meaningless values in them) and now we move elements from the first\n // and third partition into these locations so that we can store the\n // pivots.\n a[lo] = a[less - 1];\n a[less - 1] = pivot1;\n a[hi - 1] = a[great + 1];\n a[great + 1] = pivot2;\n\n // The list is now partitioned into three partitions:\n // [ < pivot1 | >= pivot1 && <= pivot2 | > pivot2 ]\n // ^ ^ ^ ^\n // left less great right\n\n // Recursive descent. (Don't include the pivot values.)\n sort(a, lo, less - 1);\n sort(a, great + 2, hi);\n\n if (pivotsEqual) {\n // All elements in the second partition are equal to the pivot. No\n // need to sort them.\n return a;\n }\n\n // In theory it should be enough to call _doSort recursively on the second\n // partition.\n // The Android source however removes the pivot elements from the recursive\n // call if the second partition is too large (more than 2/3 of the list).\n if (less < i1 && great > i5) {\n var lessValue, greatValue;\n while ((lessValue = f(a[less])) <= pivotValue1 && lessValue >= pivotValue1) ++less;\n while ((greatValue = f(a[great])) <= pivotValue2 && greatValue >= pivotValue2) --great;\n\n // Copy paste of the previous 3-way partitioning with adaptions.\n //\n // We partition the list into three parts:\n // 1. == pivot1\n // 2. > pivot1 && < pivot2\n // 3. == pivot2\n //\n // During the loop we have:\n // [ == pivot1 | > pivot1 && < pivot2 | unpartitioned | == pivot2 ]\n // ^ ^ ^\n // less k great\n //\n // Invariants:\n // 1. for x in [ *, less[ : x == pivot1\n // 2. for x in [less, k[ : pivot1 < x && x < pivot2\n // 3. for x in ]great, * ] : x == pivot2\n for (var k = less; k <= great; k++) {\n var ek = a[k], xk = f(ek);\n if (xk <= pivotValue1 && xk >= pivotValue1) {\n if (k !== less) {\n a[k] = a[less];\n a[less] = ek;\n }\n less++;\n } else {\n if (xk <= pivotValue2 && xk >= pivotValue2) {\n while (true) {\n var greatValue = f(a[great]);\n if (greatValue <= pivotValue2 && greatValue >= pivotValue2) {\n great--;\n if (great < k) break;\n // This is the only location inside the loop where a new\n // iteration is started.\n continue;\n } else {\n // a[great] < pivot2.\n if (greatValue < pivotValue1) {\n // Triple exchange.\n a[k] = a[less];\n a[less++] = a[great];\n a[great--] = ek;\n } else {\n // a[great] == pivot1.\n a[k] = a[great];\n a[great--] = ek;\n }\n break;\n }\n }\n }\n }\n }\n }\n\n // The second partition has now been cleared of pivot elements and looks\n // as follows:\n // [ * | > pivot1 && < pivot2 | * ]\n // ^ ^\n // less great\n // Sort the second partition using recursive descent.\n\n // The second partition looks as follows:\n // [ * | >= pivot1 && <= pivot2 | * ]\n // ^ ^\n // less great\n // Simply sort it by recursive descent.\n\n return sort(a, less, great + 1);\n }\n\n return sort;\n}\n\nvar quicksort_sizeThreshold = 32;\nvar crossfilter_array8 = crossfilter_arrayUntyped,\n crossfilter_array16 = crossfilter_arrayUntyped,\n crossfilter_array32 = crossfilter_arrayUntyped,\n crossfilter_arrayLengthen = crossfilter_arrayLengthenUntyped,\n crossfilter_arrayWiden = crossfilter_arrayWidenUntyped;\n\nif (typeof Uint8Array !== \"undefined\") {\n crossfilter_array8 = function(n) { return new Uint8Array(n); };\n crossfilter_array16 = function(n) { return new Uint16Array(n); };\n crossfilter_array32 = function(n) { return new Uint32Array(n); };\n\n crossfilter_arrayLengthen = function(array, length) {\n if (array.length >= length) return array;\n var copy = new array.constructor(length);\n copy.set(array);\n return copy;\n };\n\n crossfilter_arrayWiden = function(array, width) {\n var copy;\n switch (width) {\n case 16: copy = crossfilter_array16(array.length); break;\n case 32: copy = crossfilter_array32(array.length); break;\n default: throw new Error(\"invalid array width!\");\n }\n copy.set(array);\n return copy;\n };\n}\n\nfunction crossfilter_arrayUntyped(n) {\n var array = new Array(n), i = -1;\n while (++i < n) array[i] = 0;\n return array;\n}\n\nfunction crossfilter_arrayLengthenUntyped(array, length) {\n var n = array.length;\n while (n < length) array[n++] = 0;\n return array;\n}\n\nfunction crossfilter_arrayWidenUntyped(array, width) {\n if (width > 32) throw new Error(\"invalid array width!\");\n return array;\n}\nfunction crossfilter_filterExact(bisect, value) {\n return function(values) {\n var n = values.length;\n return [bisect.left(values, value, 0, n), bisect.right(values, value, 0, n)];\n };\n}\n\nfunction crossfilter_filterRange(bisect, range) {\n var min = range[0],\n max = range[1];\n return function(values) {\n var n = values.length;\n return [bisect.left(values, min, 0, n), bisect.left(values, max, 0, n)];\n };\n}\n\nfunction crossfilter_filterAll(values) {\n return [0, values.length];\n}\nfunction crossfilter_null() {\n return null;\n}\nfunction crossfilter_zero() {\n return 0;\n}\nfunction crossfilter_reduceIncrement(p) {\n return p + 1;\n}\n\nfunction crossfilter_reduceDecrement(p) {\n return p - 1;\n}\n\nfunction crossfilter_reduceAdd(f) {\n return function(p, v) {\n return p + +f(v);\n };\n}\n\nfunction crossfilter_reduceSubtract(f) {\n return function(p, v) {\n return p - f(v);\n };\n}\nexports.crossfilter = crossfilter;\n\nfunction crossfilter() {\n var crossfilter = {\n add: add,\n remove: removeData,\n dimension: dimension,\n groupAll: groupAll,\n size: size\n };\n\n var data = [], // the records\n n = 0, // the number of records; data.length\n m = 0, // a bit mask representing which dimensions are in use\n M = 8, // number of dimensions that can fit in `filters`\n filters = crossfilter_array8(0), // M bits per record; 1 is filtered out\n filterListeners = [], // when the filters change\n dataListeners = [], // when data is added\n removeDataListeners = []; // when data is removed\n\n // Adds the specified new records to this crossfilter.\n function add(newData) {\n var n0 = n,\n n1 = newData.length;\n\n // If there's actually new data to add…\n // Merge the new data into the existing data.\n // Lengthen the filter bitset to handle the new records.\n // Notify listeners (dimensions and groups) that new data is available.\n if (n1) {\n data = data.concat(newData);\n filters = crossfilter_arrayLengthen(filters, n += n1);\n dataListeners.forEach(function(l) { l(newData, n0, n1); });\n }\n\n return crossfilter;\n }\n\n // Removes all records that match the current filters.\n function removeData() {\n var newIndex = crossfilter_index(n, n),\n removed = [];\n for (var i = 0, j = 0; i < n; ++i) {\n if (filters[i]) newIndex[i] = j++;\n else removed.push(i);\n }\n\n // Remove all matching records from groups.\n filterListeners.forEach(function(l) { l(0, [], removed); });\n\n // Update indexes.\n removeDataListeners.forEach(function(l) { l(newIndex); });\n\n // Remove old filters and data by overwriting.\n for (var i = 0, j = 0, k; i < n; ++i) {\n if (k = filters[i]) {\n if (i !== j) filters[j] = k, data[j] = data[i];\n ++j;\n }\n }\n data.length = j;\n while (n > j) filters[--n] = 0;\n }\n\n // Adds a new dimension with the specified value accessor function.\n function dimension(value) {\n var dimension = {\n filter: filter,\n filterExact: filterExact,\n filterRange: filterRange,\n filterFunction: filterFunction,\n filterAll: filterAll,\n top: top,\n bottom: bottom,\n group: group,\n groupAll: groupAll,\n dispose: dispose,\n remove: dispose // for backwards-compatibility\n };\n\n var one = ~m & -~m, // lowest unset bit as mask, e.g., 00001000\n zero = ~one, // inverted one, e.g., 11110111\n values, // sorted, cached array\n index, // value rank ↦ object id\n newValues, // temporary array storing newly-added values\n newIndex, // temporary array storing newly-added index\n sort = quicksort_by(function(i) { return newValues[i]; }),\n refilter = crossfilter_filterAll, // for recomputing filter\n refilterFunction, // the custom filter function in use\n indexListeners = [], // when data is added\n dimensionGroups = [],\n lo0 = 0,\n hi0 = 0;\n\n // Updating a dimension is a two-stage process. First, we must update the\n // associated filters for the newly-added records. Once all dimensions have\n // updated their filters, the groups are notified to update.\n dataListeners.unshift(preAdd);\n dataListeners.push(postAdd);\n\n removeDataListeners.push(removeData);\n\n // Incorporate any existing data into this dimension, and make sure that the\n // filter bitset is wide enough to handle the new dimension.\n m |= one;\n if (M >= 32 ? !one : m & -(1 << M)) {\n filters = crossfilter_arrayWiden(filters, M <<= 1);\n }\n preAdd(data, 0, n);\n postAdd(data, 0, n);\n\n // Incorporates the specified new records into this dimension.\n // This function is responsible for updating filters, values, and index.\n function preAdd(newData, n0, n1) {\n\n // Permute new values into natural order using a sorted index.\n newValues = newData.map(value);\n newIndex = sort(crossfilter_range(n1), 0, n1);\n newValues = permute(newValues, newIndex);\n\n // Bisect newValues to determine which new records are selected.\n var bounds = refilter(newValues), lo1 = bounds[0], hi1 = bounds[1], i;\n if (refilterFunction) {\n for (i = 0; i < n1; ++i) {\n if (!refilterFunction(newValues[i], i)) filters[newIndex[i] + n0] |= one;\n }\n } else {\n for (i = 0; i < lo1; ++i) filters[newIndex[i] + n0] |= one;\n for (i = hi1; i < n1; ++i) filters[newIndex[i] + n0] |= one;\n }\n\n // If this dimension previously had no data, then we don't need to do the\n // more expensive merge operation; use the new values and index as-is.\n if (!n0) {\n values = newValues;\n index = newIndex;\n lo0 = lo1;\n hi0 = hi1;\n return;\n }\n\n var oldValues = values,\n oldIndex = index,\n i0 = 0,\n i1 = 0;\n\n // Otherwise, create new arrays into which to merge new and old.\n values = new Array(n);\n index = crossfilter_index(n, n);\n\n // Merge the old and new sorted values, and old and new index.\n for (i = 0; i0 < n0 && i1 < n1; ++i) {\n if (oldValues[i0] < newValues[i1]) {\n values[i] = oldValues[i0];\n index[i] = oldIndex[i0++];\n } else {\n values[i] = newValues[i1];\n index[i] = newIndex[i1++] + n0;\n }\n }\n\n // Add any remaining old values.\n for (; i0 < n0; ++i0, ++i) {\n values[i] = oldValues[i0];\n index[i] = oldIndex[i0];\n }\n\n // Add any remaining new values.\n for (; i1 < n1; ++i1, ++i) {\n values[i] = newValues[i1];\n index[i] = newIndex[i1] + n0;\n }\n\n // Bisect again to recompute lo0 and hi0.\n bounds = refilter(values), lo0 = bounds[0], hi0 = bounds[1];\n }\n\n // When all filters have updated, notify index listeners of the new values.\n function postAdd(newData, n0, n1) {\n indexListeners.forEach(function(l) { l(newValues, newIndex, n0, n1); });\n newValues = newIndex = null;\n }\n\n function removeData(reIndex) {\n for (var i = 0, j = 0, k; i < n; ++i) {\n if (filters[k = index[i]]) {\n if (i !== j) values[j] = values[i];\n index[j] = reIndex[k];\n ++j;\n }\n }\n values.length = j;\n while (j < n) index[j++] = 0;\n\n // Bisect again to recompute lo0 and hi0.\n var bounds = refilter(values);\n lo0 = bounds[0], hi0 = bounds[1];\n }\n\n // Updates the selected values based on the specified bounds [lo, hi].\n // This implementation is used by all the public filter methods.\n function filterIndexBounds(bounds) {\n var lo1 = bounds[0],\n hi1 = bounds[1];\n\n if (refilterFunction) {\n refilterFunction = null;\n filterIndexFunction(function(d, i) { return lo1 <= i && i < hi1; });\n lo0 = lo1;\n hi0 = hi1;\n return dimension;\n }\n\n var i,\n j,\n k,\n added = [],\n removed = [];\n\n // Fast incremental update based on previous lo index.\n if (lo1 < lo0) {\n for (i = lo1, j = Math.min(lo0, hi1); i < j; ++i) {\n filters[k = index[i]] ^= one;\n added.push(k);\n }\n } else if (lo1 > lo0) {\n for (i = lo0, j = Math.min(lo1, hi0); i < j; ++i) {\n filters[k = index[i]] ^= one;\n removed.push(k);\n }\n }\n\n // Fast incremental update based on previous hi index.\n if (hi1 > hi0) {\n for (i = Math.max(lo1, hi0), j = hi1; i < j; ++i) {\n filters[k = index[i]] ^= one;\n added.push(k);\n }\n } else if (hi1 < hi0) {\n for (i = Math.max(lo0, hi1), j = hi0; i < j; ++i) {\n filters[k = index[i]] ^= one;\n removed.push(k);\n }\n }\n\n lo0 = lo1;\n hi0 = hi1;\n filterListeners.forEach(function(l) { l(one, added, removed); });\n return dimension;\n }\n\n // Filters this dimension using the specified range, value, or null.\n // If the range is null, this is equivalent to filterAll.\n // If the range is an array, this is equivalent to filterRange.\n // Otherwise, this is equivalent to filterExact.\n function filter(range) {\n return range == null\n ? filterAll() : Array.isArray(range)\n ? filterRange(range) : typeof range === \"function\"\n ? filterFunction(range)\n : filterExact(range);\n }\n\n // Filters this dimension to select the exact value.\n function filterExact(value) {\n return filterIndexBounds((refilter = crossfilter_filterExact(bisect, value))(values));\n }\n\n // Filters this dimension to select the specified range [lo, hi].\n // The lower bound is inclusive, and the upper bound is exclusive.\n function filterRange(range) {\n return filterIndexBounds((refilter = crossfilter_filterRange(bisect, range))(values));\n }\n\n // Clears any filters on this dimension.\n function filterAll() {\n return filterIndexBounds((refilter = crossfilter_filterAll)(values));\n }\n\n // Filters this dimension using an arbitrary function.\n function filterFunction(f) {\n refilter = crossfilter_filterAll;\n\n filterIndexFunction(refilterFunction = f);\n\n lo0 = 0;\n hi0 = n;\n\n return dimension;\n }\n\n function filterIndexFunction(f) {\n var i,\n k,\n x,\n added = [],\n removed = [];\n\n for (i = 0; i < n; ++i) {\n if (!(filters[k = index[i]] & one) ^ !!(x = f(values[i], i))) {\n if (x) filters[k] &= zero, added.push(k);\n else filters[k] |= one, removed.push(k);\n }\n }\n filterListeners.forEach(function(l) { l(one, added, removed); });\n }\n\n // Returns the top K selected records based on this dimension's order.\n // Note: observes this dimension's filter, unlike group and groupAll.\n function top(k) {\n var array = [],\n i = hi0,\n j;\n\n while (--i >= lo0 && k > 0) {\n if (!filters[j = index[i]]) {\n array.push(data[j]);\n --k;\n }\n }\n\n return array;\n }\n\n // Returns the bottom K selected records based on this dimension's order.\n // Note: observes this dimension's filter, unlike group and groupAll.\n function bottom(k) {\n var array = [],\n i = lo0,\n j;\n\n while (i < hi0 && k > 0) {\n if (!filters[j = index[i]]) {\n array.push(data[j]);\n --k;\n }\n i++;\n }\n\n return array;\n }\n\n // Adds a new group to this dimension, using the specified key function.\n function group(key) {\n var group = {\n top: top,\n all: all,\n reduce: reduce,\n reduceCount: reduceCount,\n reduceSum: reduceSum,\n order: order,\n orderNatural: orderNatural,\n size: size,\n dispose: dispose,\n remove: dispose // for backwards-compatibility\n };\n\n // Ensure that this group will be removed when the dimension is removed.\n dimensionGroups.push(group);\n\n var groups, // array of {key, value}\n groupIndex, // object id ↦ group id\n groupWidth = 8,\n groupCapacity = crossfilter_capacity(groupWidth),\n k = 0, // cardinality\n select,\n heap,\n reduceAdd,\n reduceRemove,\n reduceInitial,\n update = crossfilter_null,\n reset = crossfilter_null,\n resetNeeded = true,\n groupAll = key === crossfilter_null;\n\n if (arguments.length < 1) key = crossfilter_identity;\n\n // The group listens to the crossfilter for when any dimension changes, so\n // that it can update the associated reduce values. It must also listen to\n // the parent dimension for when data is added, and compute new keys.\n filterListeners.push(update);\n indexListeners.push(add);\n removeDataListeners.push(removeData);\n\n // Incorporate any existing data into the grouping.\n add(values, index, 0, n);\n\n // Incorporates the specified new values into this group.\n // This function is responsible for updating groups and groupIndex.\n function add(newValues, newIndex, n0, n1) {\n var oldGroups = groups,\n reIndex = crossfilter_index(k, groupCapacity),\n add = reduceAdd,\n initial = reduceInitial,\n k0 = k, // old cardinality\n i0 = 0, // index of old group\n i1 = 0, // index of new record\n j, // object id\n g0, // old group\n x0, // old key\n x1, // new key\n g, // group to add\n x; // key of group to add\n\n // If a reset is needed, we don't need to update the reduce values.\n if (resetNeeded) add = initial = crossfilter_null;\n\n // Reset the new groups (k is a lower bound).\n // Also, make sure that groupIndex exists and is long enough.\n groups = new Array(k), k = 0;\n groupIndex = k0 > 1 ? crossfilter_arrayLengthen(groupIndex, n) : crossfilter_index(n, groupCapacity);\n\n // Get the first old key (x0 of g0), if it exists.\n if (k0) x0 = (g0 = oldGroups[0]).key;\n\n // Find the first new key (x1), skipping NaN keys.\n while (i1 < n1 && !((x1 = key(newValues[i1])) >= x1)) ++i1;\n\n // While new keys remain…\n while (i1 < n1) {\n\n // Determine the lesser of the two current keys; new and old.\n // If there are no old keys remaining, then always add the new key.\n if (g0 && x0 <= x1) {\n g = g0, x = x0;\n\n // Record the new index of the old group.\n reIndex[i0] = k;\n\n // Retrieve the next old key.\n if (g0 = oldGroups[++i0]) x0 = g0.key;\n } else {\n g = {key: x1, value: initial()}, x = x1;\n }\n\n // Add the lesser group.\n groups[k] = g;\n\n // Add any selected records belonging to the added group, while\n // advancing the new key and populating the associated group index.\n while (!(x1 > x)) {\n groupIndex[j = newIndex[i1] + n0] = k;\n if (!(filters[j] & zero)) g.value = add(g.value, data[j]);\n if (++i1 >= n1) break;\n x1 = key(newValues[i1]);\n }\n\n groupIncrement();\n }\n\n // Add any remaining old groups that were greater than all new keys.\n // No incremental reduce is needed; these groups have no new records.\n // Also record the new index of the old group.\n while (i0 < k0) {\n groups[reIndex[i0] = k] = oldGroups[i0++];\n groupIncrement();\n }\n\n // If we added any new groups before any old groups,\n // update the group index of all the old records.\n if (k > i0) for (i0 = 0; i0 < n0; ++i0) {\n groupIndex[i0] = reIndex[groupIndex[i0]];\n }\n\n // Modify the update and reset behavior based on the cardinality.\n // If the cardinality is less than or equal to one, then the groupIndex\n // is not needed. If the cardinality is zero, then there are no records\n // and therefore no groups to update or reset. Note that we also must\n // change the registered listener to point to the new method.\n j = filterListeners.indexOf(update);\n if (k > 1) {\n update = updateMany;\n reset = resetMany;\n } else {\n if (!k && groupAll) {\n k = 1;\n groups = [{key: null, value: initial()}];\n }\n if (k === 1) {\n update = updateOne;\n reset = resetOne;\n } else {\n update = crossfilter_null;\n reset = crossfilter_null;\n }\n groupIndex = null;\n }\n filterListeners[j] = update;\n\n // Count the number of added groups,\n // and widen the group index as needed.\n function groupIncrement() {\n if (++k === groupCapacity) {\n reIndex = crossfilter_arrayWiden(reIndex, groupWidth <<= 1);\n groupIndex = crossfilter_arrayWiden(groupIndex, groupWidth);\n groupCapacity = crossfilter_capacity(groupWidth);\n }\n }\n }\n\n function removeData() {\n if (k > 1) {\n var oldK = k,\n oldGroups = groups,\n seenGroups = crossfilter_index(oldK, oldK);\n\n // Filter out non-matches by copying matching group index entries to\n // the beginning of the array.\n for (var i = 0, j = 0; i < n; ++i) {\n if (filters[i]) {\n seenGroups[groupIndex[j] = groupIndex[i]] = 1;\n ++j;\n }\n }\n\n // Reassemble groups including only those groups that were referred\n // to by matching group index entries. Note the new group index in\n // seenGroups.\n groups = [], k = 0;\n for (i = 0; i < oldK; ++i) {\n if (seenGroups[i]) {\n seenGroups[i] = k++;\n groups.push(oldGroups[i]);\n }\n }\n\n if (k > 1) {\n // Reindex the group index using seenGroups to find the new index.\n for (var i = 0; i < j; ++i) groupIndex[i] = seenGroups[groupIndex[i]];\n } else {\n groupIndex = null;\n }\n filterListeners[filterListeners.indexOf(update)] = k > 1\n ? (reset = resetMany, update = updateMany)\n : k === 1 ? (reset = resetOne, update = updateOne)\n : reset = update = crossfilter_null;\n } else if (k === 1) {\n if (groupAll) return;\n for (var i = 0; i < n; ++i) if (filters[i]) return;\n groups = [], k = 0;\n filterListeners[filterListeners.indexOf(update)] =\n update = reset = crossfilter_null;\n }\n }\n\n // Reduces the specified selected or deselected records.\n // This function is only used when the cardinality is greater than 1.\n function updateMany(filterOne, added, removed) {\n if (filterOne === one || resetNeeded) return;\n\n var i,\n k,\n n,\n g;\n\n // Add the added values.\n for (i = 0, n = added.length; i < n; ++i) {\n if (!(filters[k = added[i]] & zero)) {\n g = groups[groupIndex[k]];\n g.value = reduceAdd(g.value, data[k]);\n }\n }\n\n // Remove the removed values.\n for (i = 0, n = removed.length; i < n; ++i) {\n if ((filters[k = removed[i]] & zero) === filterOne) {\n g = groups[groupIndex[k]];\n g.value = reduceRemove(g.value, data[k]);\n }\n }\n }\n\n // Reduces the specified selected or deselected records.\n // This function is only used when the cardinality is 1.\n function updateOne(filterOne, added, removed) {\n if (filterOne === one || resetNeeded) return;\n\n var i,\n k,\n n,\n g = groups[0];\n\n // Add the added values.\n for (i = 0, n = added.length; i < n; ++i) {\n if (!(filters[k = added[i]] & zero)) {\n g.value = reduceAdd(g.value, data[k]);\n }\n }\n\n // Remove the removed values.\n for (i = 0, n = removed.length; i < n; ++i) {\n if ((filters[k = removed[i]] & zero) === filterOne) {\n g.value = reduceRemove(g.value, data[k]);\n }\n }\n }\n\n // Recomputes the group reduce values from scratch.\n // This function is only used when the cardinality is greater than 1.\n function resetMany() {\n var i,\n g;\n\n // Reset all group values.\n for (i = 0; i < k; ++i) {\n groups[i].value = reduceInitial();\n }\n\n // Add any selected records.\n for (i = 0; i < n; ++i) {\n if (!(filters[i] & zero)) {\n g = groups[groupIndex[i]];\n g.value = reduceAdd(g.value, data[i]);\n }\n }\n }\n\n // Recomputes the group reduce values from scratch.\n // This function is only used when the cardinality is 1.\n function resetOne() {\n var i,\n g = groups[0];\n\n // Reset the singleton group values.\n g.value = reduceInitial();\n\n // Add any selected records.\n for (i = 0; i < n; ++i) {\n if (!(filters[i] & zero)) {\n g.value = reduceAdd(g.value, data[i]);\n }\n }\n }\n\n // Returns the array of group values, in the dimension's natural order.\n function all() {\n if (resetNeeded) reset(), resetNeeded = false;\n return groups;\n }\n\n // Returns a new array containing the top K group values, in reduce order.\n function top(k) {\n var top = select(all(), 0, groups.length, k);\n return heap.sort(top, 0, top.length);\n }\n\n // Sets the reduce behavior for this group to use the specified functions.\n // This method lazily recomputes the reduce values, waiting until needed.\n function reduce(add, remove, initial) {\n reduceAdd = add;\n reduceRemove = remove;\n reduceInitial = initial;\n resetNeeded = true;\n return group;\n }\n\n // A convenience method for reducing by count.\n function reduceCount() {\n return reduce(crossfilter_reduceIncrement, crossfilter_reduceDecrement, crossfilter_zero);\n }\n\n // A convenience method for reducing by sum(value).\n function reduceSum(value) {\n return reduce(crossfilter_reduceAdd(value), crossfilter_reduceSubtract(value), crossfilter_zero);\n }\n\n // Sets the reduce order, using the specified accessor.\n function order(value) {\n select = heapselect_by(valueOf);\n heap = heap_by(valueOf);\n function valueOf(d) { return value(d.value); }\n return group;\n }\n\n // A convenience method for natural ordering by reduce value.\n function orderNatural() {\n return order(crossfilter_identity);\n }\n\n // Returns the cardinality of this group, irrespective of any filters.\n function size() {\n return k;\n }\n\n // Removes this group and associated event listeners.\n function dispose() {\n var i = filterListeners.indexOf(update);\n if (i >= 0) filterListeners.splice(i, 1);\n i = indexListeners.indexOf(add);\n if (i >= 0) indexListeners.splice(i, 1);\n i = removeDataListeners.indexOf(removeData);\n if (i >= 0) removeDataListeners.splice(i, 1);\n return group;\n }\n\n return reduceCount().orderNatural();\n }\n\n // A convenience function for generating a singleton group.\n function groupAll() {\n var g = group(crossfilter_null), all = g.all;\n delete g.all;\n delete g.top;\n delete g.order;\n delete g.orderNatural;\n delete g.size;\n g.value = function() { return all()[0].value; };\n return g;\n }\n\n // Removes this dimension and associated groups and event listeners.\n function dispose() {\n dimensionGroups.forEach(function(group) { group.dispose(); });\n var i = dataListeners.indexOf(preAdd);\n if (i >= 0) dataListeners.splice(i, 1);\n i = dataListeners.indexOf(postAdd);\n if (i >= 0) dataListeners.splice(i, 1);\n i = removeDataListeners.indexOf(removeData);\n if (i >= 0) removeDataListeners.splice(i, 1);\n m &= zero;\n return filterAll();\n }\n\n return dimension;\n }\n\n // A convenience method for groupAll on a dummy dimension.\n // This implementation can be optimized since it always has cardinality 1.\n function groupAll() {\n var group = {\n reduce: reduce,\n reduceCount: reduceCount,\n reduceSum: reduceSum,\n value: value,\n dispose: dispose,\n remove: dispose // for backwards-compatibility\n };\n\n var reduceValue,\n reduceAdd,\n reduceRemove,\n reduceInitial,\n resetNeeded = true;\n\n // The group listens to the crossfilter for when any dimension changes, so\n // that it can update the reduce value. It must also listen to the parent\n // dimension for when data is added.\n filterListeners.push(update);\n dataListeners.push(add);\n\n // For consistency; actually a no-op since resetNeeded is true.\n add(data, 0, n);\n\n // Incorporates the specified new values into this group.\n function add(newData, n0) {\n var i;\n\n if (resetNeeded) return;\n\n // Add the added values.\n for (i = n0; i < n; ++i) {\n if (!filters[i]) {\n reduceValue = reduceAdd(reduceValue, data[i]);\n }\n }\n }\n\n // Reduces the specified selected or deselected records.\n function update(filterOne, added, removed) {\n var i,\n k,\n n;\n\n if (resetNeeded) return;\n\n // Add the added values.\n for (i = 0, n = added.length; i < n; ++i) {\n if (!filters[k = added[i]]) {\n reduceValue = reduceAdd(reduceValue, data[k]);\n }\n }\n\n // Remove the removed values.\n for (i = 0, n = removed.length; i < n; ++i) {\n if (filters[k = removed[i]] === filterOne) {\n reduceValue = reduceRemove(reduceValue, data[k]);\n }\n }\n }\n\n // Recomputes the group reduce value from scratch.\n function reset() {\n var i;\n\n reduceValue = reduceInitial();\n\n for (i = 0; i < n; ++i) {\n if (!filters[i]) {\n reduceValue = reduceAdd(reduceValue, data[i]);\n }\n }\n }\n\n // Sets the reduce behavior for this group to use the specified functions.\n // This method lazily recomputes the reduce value, waiting until needed.\n function reduce(add, remove, initial) {\n reduceAdd = add;\n reduceRemove = remove;\n reduceInitial = initial;\n resetNeeded = true;\n return group;\n }\n\n // A convenience method for reducing by count.\n function reduceCount() {\n return reduce(crossfilter_reduceIncrement, crossfilter_reduceDecrement, crossfilter_zero);\n }\n\n // A convenience method for reducing by sum(value).\n function reduceSum(value) {\n return reduce(crossfilter_reduceAdd(value), crossfilter_reduceSubtract(value), crossfilter_zero);\n }\n\n // Returns the computed reduce value.\n function value() {\n if (resetNeeded) reset(), resetNeeded = false;\n return reduceValue;\n }\n\n // Removes this group and associated event listeners.\n function dispose() {\n var i = filterListeners.indexOf(update);\n if (i >= 0) filterListeners.splice(i);\n i = dataListeners.indexOf(add);\n if (i >= 0) dataListeners.splice(i);\n return group;\n }\n\n return reduceCount();\n }\n\n // Returns the number of records in this crossfilter, irrespective of any filters.\n function size() {\n return n;\n }\n\n return arguments.length\n ? add(arguments[0])\n : crossfilter;\n}\n\n// Returns an array of size n, big enough to store ids up to m.\nfunction crossfilter_index(n, m) {\n return (m < 0x101\n ? crossfilter_array8 : m < 0x10001\n ? crossfilter_array16\n : crossfilter_array32)(n);\n}\n\n// Constructs a new array of size n, with sequential values from 0 to n - 1.\nfunction crossfilter_range(n) {\n var range = crossfilter_index(n, n);\n for (var i = -1; ++i < n;) range[i] = i;\n return range;\n}\n\nfunction crossfilter_capacity(w) {\n return w === 8\n ? 0x100 : w === 16\n ? 0x10000\n : 0x100000000;\n}\n})(typeof exports !== 'undefined' && exports || this);\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag\";\nimport noevent, {nopropagation} from \"./noevent\";\nimport constant from \"./constant\";\nimport DragEvent from \"./event\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return \"ontouchstart\" in this;\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex3 = /^#([0-9a-f]{3})$/,\n reHex6 = /^#([0-9a-f]{6})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: function() {\n return this.rgb().hex();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nexport default function color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (0 <= this.r && this.r <= 255)\n && (0 <= this.g && this.g <= 255)\n && (0 <= this.b && this.b <= 255)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: function() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\n// https://beta.observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return labConvert(this).rgb();\n }\n}));\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis\";\nimport basisClosed from \"./basisClosed\";\nimport nogamma, {gamma} from \"./color\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import decompose, {identity} from \"./decompose\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","export default function(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n}\n","import number from \"./number\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb\";\nimport array from \"./array\";\nimport date from \"./date\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport string from \"./string\";\nimport constant from \"./constant\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : Array.isArray(b) ? array\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n}\n","import value from \"./value\";\n\nexport default function(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","import value from \"./value\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number\";\nimport {parseCss, parseSvg} from \"./parse\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","import {Timer} from \"./timer\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTING) throw new Error(\"too late; already started\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n // Dispatch the interrupt event.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions. No interrupt event is dispatched\n // because the cancelled transitions never started. Note that this also\n // removes this transition from the pending list!\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(null, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {get, set} from \"./schedule\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr\";\nimport transition_attrTween from \"./attrTween\";\nimport transition_delay from \"./delay\";\nimport transition_duration from \"./duration\";\nimport transition_ease from \"./ease\";\nimport transition_filter from \"./filter\";\nimport transition_merge from \"./merge\";\nimport transition_on from \"./on\";\nimport transition_remove from \"./remove\";\nimport transition_select from \"./select\";\nimport transition_selectAll from \"./selectAll\";\nimport transition_selection from \"./selection\";\nimport transition_style from \"./style\";\nimport transition_styleTween from \"./styleTween\";\nimport transition_text from \"./text\";\nimport transition_transition from \"./transition\";\nimport transition_tween from \"./tween\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index\";\nimport schedule, {get} from \"./schedule\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index\";\nimport schedule, {get} from \"./schedule\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index\";\nimport schedule, {get} from \"./schedule\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set, init} from \"./schedule\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween\";\nimport interpolate from \"./interpolate\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttribute(name);\n value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + \"\"));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrTweenNS(fullname, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttributeNS(fullname.space, fullname.local, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttribute(name, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {tweenValue} from \"./tween\";\nimport interpolate from \"./interpolate\";\n\nfunction styleRemove(name, interpolate) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = style(this, name),\n value1 = (this.style.removeProperty(name), style(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction styleRemoveEnd(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = style(this, name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = style(this, name),\n value1 = value(this);\n if (value1 == null) value1 = (this.style.removeProperty(name), style(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleRemove(name, i))\n .on(\"end.style.\" + name, styleRemoveEnd(name))\n : this.styleTween(name, typeof value === \"function\"\n ? styleFunction(name, i, tweenValue(this, \"style.\" + name, value))\n : styleConstant(name, i, value + \"\"), priority);\n}\n","function styleTween(name, value, priority) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.style.setProperty(name, i(t), priority);\n };\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {get, init} from \"./schedule\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","var tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","import {Transition, newId} from \"../transition/index\";\nimport schedule from \"../transition/schedule\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt\";\nimport selection_transition from \"./transition\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition} from \"./transition/index\";\nimport {SCHEDULED} from \"./transition/schedule\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant\";\nimport BrushEvent from \"./event\";\nimport noevent, {nopropagation} from \"./noevent\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nvar X = {\n name: \"x\",\n handles: [\"e\", \"w\"].map(type),\n input: function(x, e) { return x && [[x[0], e[0][1]], [x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y && [[e[0][0], y[0]], [e[1][0], y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\"].map(type),\n input: function(xy) { return xy; },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n listeners = dispatch(brush, \"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\")\n .on(\"mousedown.brush touchstart.brush\", started);\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && empty(selection1) ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 && selection1 ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 == null || empty(selection1) ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args) {\n return that.__brush.emitter || new Emitter(that, args);\n }\n\n function Emitter(that, args) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (event.touches) { if (event.changedTouches.length < event.touches.length) return noevent(); }\n else if (touchending) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx,\n dy,\n moving,\n shifting = signX && signY && event.shiftKey,\n lockX,\n lockY,\n point0 = mouse(that),\n point = point0,\n emit = emitter(that, arguments).beforestart();\n\n if (type === \"overlay\") {\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n group\n .on(\"touchmove.brush\", moved, true)\n .on(\"touchend.brush touchcancel.brush\", ended, true);\n } else {\n var view = select(event.view)\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = mouse(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n group.on(\"touchmove.brush touchend.brush touchcancel.brush\", null);\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = extent.apply(this, arguments);\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","export default function(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function deinterpolateLinear(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n return function(a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function(a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp());\n}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nexport default function continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);\n }\n\n scale.invert = function(y) {\n return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n return rescale();\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import formatDecimal from \"./formatDecimal\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n return new FormatSpecifier(specifier);\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n this.fill = match[1] || \" \";\n this.align = match[2] || \">\";\n this.sign = match[3] || \"-\";\n this.symbol = match[4] || \"\";\n this.zero = !!match[5];\n this.width = match[6] && +match[6];\n this.comma = !!match[7];\n this.precision = match[8] && +match[8].slice(1);\n this.trim = !!match[9];\n this.type = match[10] || \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (i0 > 0) { if (!+s[i]) break out; i0 = 0; } break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatDecimal from \"./formatDecimal\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatLocale from \"./locale\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import formatDecimal from \"./formatDecimal\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatPrefixAuto from \"./formatPrefixAuto\";\nimport formatRounded from \"./formatRounded\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent\";\nimport formatGroup from \"./formatGroup\";\nimport formatNumerals from \"./formatNumerals\";\nimport formatSpecifier from \"./formatSpecifier\";\nimport formatTrim from \"./formatTrim\";\nimport formatTypes from \"./formatTypes\";\nimport {prefixExponent} from \"./formatPrefixAuto\";\nimport identity from \"./identity\";\n\nvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,\n currency = locale.currency,\n decimal = locale.decimal,\n numerals = locale.numerals ? formatNumerals(locale.numerals) : identity,\n percent = locale.percent || \"%\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision == null && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision == null ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import exponent from \"./exponent\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(deinterpolate, reinterpolate);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n return linearish(scale);\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor = interval;\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval\";\nimport {durationDay, durationMinute} from \"./duration\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval\";\nimport {durationSecond} from \"./duration\";\n\nvar second = interval(function(date) {\n date.setTime(Math.floor(date / durationSecond) * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval\";\nimport {durationMinute} from \"./duration\";\n\nvar minute = interval(function(date) {\n date.setTime(Math.floor(date / durationMinute) * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval\";\nimport {durationHour, durationMinute} from \"./duration\";\n\nvar hour = interval(function(date) {\n var offset = date.getTimezoneOffset() * durationMinute % durationHour;\n if (offset < 0) offset += durationHour;\n date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval\";\nimport {durationMinute, durationWeek} from \"./duration\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval\";\nimport {durationDay} from \"./duration\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval\";\nimport {durationMinute} from \"./duration\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval\";\nimport {durationHour} from \"./duration\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval\";\nimport {durationWeek} from \"./duration\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, newDate) {\n return function(string) {\n var d = newYear(1900),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newYear(d.y)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = newDate(newYear(d.y)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", localDate);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d), d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {utcFormat} from \"./defaultLocale\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat\";\nimport {utcParse} from \"./defaultLocale\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {bisector, tickStep} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, reinterpolate),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}\n","export default function(s) {\n return s.match(/.{6}/g).map(function(x) {\n return \"#\" + x;\n });\n}\n","import colors from \"./colors\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","export default function naturalSort(e,a){var r,t,n=/(^([+\\-]?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?(?=\\D|\\s|$))|^0x[\\da-fA-F]+$|\\d+)/g,l=/^\\s+|\\s+$/g,i=/\\s+/g,s=/^0x[0-9a-f]+$/i,c=/^0/,p=function(e){return(naturalSort.insensitive&&(\"\"+e).toLowerCase()||\"\"+e).replace(l,\"\")},u=p(e),d=p(a),f=u.replace(n,\"\\0$1\\0\").replace(/\\0$/,\"\").replace(/^\\0/,\"\").split(\"\\0\"),o=d.replace(n,\"\\0$1\\0\").replace(/\\0$/,\"\").replace(/^\\0/,\"\").split(\"\\0\"),h=parseInt(u.match(s),16)||1!==f.length&&Date.parse(u),w=parseInt(d.match(s),16)||h&&d.match(/(^([\\w ]+,?[\\w ]+)?[\\w ]+,?[\\w ]+\\d+:\\d+(:\\d+)?[\\w ]?|^\\d{1,4}[\\/\\-]\\d{1,4}[\\/\\-]\\d{1,4}|^\\w+, \\w+ \\d+, \\d{4})/)&&Date.parse(d)||null,$=function(e,a){return(!e.match(c)||1==a)&&parseFloat(e)||e.replace(i,\" \").replace(l,\"\")||0};if(w){if(hw)return 1}for(var m=0,g=f.length,N=o.length,x=Math.max(g,N);mt)return 1}}","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar rainbow = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n rainbow.h = 360 * t - 100;\n rainbow.s = 1.5 - 1.5 * ts;\n rainbow.l = 0.8 - 0.9 * ts;\n return rainbow + \"\";\n}\n","var version = '1.4.1';\nexport default version;","function configurePloidy(ideo) {\n if (!ideo.config.ploidy) ideo.config.ploidy = 1;\n\n if (ideo.config.ploidy > 1) {\n ideo.sexChromosomes = {};\n if (!ideo.config.sex) {\n // Default to 'male' per human, mouse reference genomes.\n // TODO: The default sex value should probably be the heterogametic sex,\n // i.e. whichever sex has allosomes that differ in morphology.\n // In mammals and most insects that is the male.\n // However, in birds and reptiles, that is female.\n ideo.config.sex = 'male';\n }\n if (ideo.config.ploidy === 2 && !ideo.config.ancestors) {\n ideo.config.ancestors = {M: '#ffb6c1', P: '#add8e6'};\n ideo.config.ploidyDesc = 'MP';\n }\n }\n}\n\nfunction configureHeight(ideo) {\n var container, rect, chrHeight;\n\n if (!ideo.config.chrHeight) {\n container = ideo.config.container;\n rect = document.querySelector(container).getBoundingClientRect();\n\n if (ideo.config.orientation === 'vertical') {\n chrHeight = rect.height;\n } else {\n chrHeight = rect.width;\n }\n\n if (container === 'body' || chrHeight === 0) chrHeight = 400;\n ideo.config.chrHeight = chrHeight;\n }\n}\n\nfunction configureWidth(ideo) {\n var chrWidth, chrHeight;\n\n if (!ideo.config.chrWidth) {\n chrWidth = 10;\n chrHeight = ideo.config.chrHeight;\n\n if (chrHeight < 900 && chrHeight > 500) {\n chrWidth = Math.round(chrHeight / 40);\n } else if (chrHeight >= 900) {\n chrWidth = Math.round(chrHeight / 45);\n }\n ideo.config.chrWidth = chrWidth;\n }\n}\n\nfunction configureMargin(ideo) {\n if (!ideo.config.chrMargin) {\n if (ideo.config.ploidy === 1) {\n ideo.config.chrMargin = 10;\n } else {\n // Defaults polyploid chromosomes to relatively small interchromatid gap\n ideo.config.chrMargin = Math.round(ideo.config.chrWidth / 4);\n }\n }\n if (ideo.config.showBandLabels) ideo.config.chrMargin += 20;\n}\n\nfunction configureBump(ideo) {\n ideo.bump = Math.round(ideo.config.chrHeight / 125);\n ideo.adjustedBump = false;\n if (ideo.config.chrHeight < 200) {\n ideo.adjustedBump = true;\n ideo.bump = 4;\n }\n}\n\nfunction configureSingleChromosome(config, ideo) {\n if (config.chromosome) {\n ideo.config.chromosomes = [config.chromosome];\n if ('showBandLabels' in config === false) {\n ideo.config.showBandLabels = true;\n }\n if ('rotatable' in config === false) ideo.config.rotatable = false;\n }\n}\n\nfunction configureOrganisms(ideo) {\n ideo.organisms = {\n 9606: {\n commonName: 'Human',\n scientificName: 'Homo sapiens',\n scientificNameAbbr: 'H. sapiens',\n assemblies: {\n default: 'GCF_000001405.26', // GRCh38\n GRCh38: 'GCF_000001405.26',\n GRCh37: 'GCF_000001405.13'\n }\n },\n 10090: {\n commonName: 'Mouse',\n scientificName: 'Mus musculus',\n scientificNameAbbr: 'M. musculus',\n assemblies: {\n default: 'GCF_000001635.20'\n }\n },\n 4641: {\n commonName: 'banana',\n scientificName: 'Musa acuminata',\n scientificNameAbbr: 'M. acuminata',\n assemblies: {\n default: 'mock'\n }\n }\n }\n}\n\nfunction configureCallbacks(config, ideo) {\n if (config.onLoad) ideo.onLoadCallback = config.onLoad;\n if (config.onLoadAnnots) ideo.onLoadAnnotsCallback = config.onLoadAnnots;\n if (config.onDrawAnnots) ideo.onDrawAnnotsCallback = config.onDrawAnnots;\n if (config.onBrushMove) ideo.onBrushMoveCallback = config.onBrushMove;\n if (config.onDidRotate) ideo.onDidRotateCallback = config.onDidRotate;\n if (config.onWillShowAnnotTooltip) {\n ideo.onWillShowAnnotTooltipCallback = config.onWillShowAnnotTooltip;\n }\n}\n\nfunction configureMiscellaneous(ideo) {\n ideo.chromosomesArray = [];\n ideo.coordinateSystem = 'iscn';\n ideo.maxLength = {bp: 0, iscn: 0};\n ideo.chromosomes = {};\n ideo.numChromosomes = 0;\n if (!ideo.config.debug) ideo.config.debug = false;\n if (!ideo.config.dataDir) ideo.config.dataDir = ideo.getDataDir();\n if (!ideo.config.container) ideo.config.container = 'body';\n ideo.selector = ideo.config.container + ' #_ideogram';\n if (!ideo.config.resolution) ideo.config.resolution = '';\n if (!ideo.config.orientation) ideo.config.orientation = 'vertical';\n if (!ideo.config.brush) ideo.config.brush = null;\n if (!ideo.config.rows) ideo.config.rows = 1;\n if ('showChromosomeLabels' in ideo.config === false) {\n ideo.config.showChromosomeLabels = true;\n }\n if (!ideo.config.showNonNuclearChromosomes) {\n ideo.config.showNonNuclearChromosomes = false;\n }\n}\n\nfunction configureBands(ideo) {\n if (!ideo.config.showBandLabels) ideo.config.showBandLabels = false;\n\n if ('showFullyBanded' in ideo.config) {\n ideo.config.showFullyBanded = ideo.config.showFullyBanded;\n } else {\n ideo.config.showFullyBanded = true;\n }\n\n ideo.bandsToShow = [];\n ideo.bandData = {};\n}\n\n/**\n * High-level helper method for Ideogram constructor.\n *\n * @param config Configuration object. Enables setting Ideogram properties.\n */\nfunction configure(config) {\n \n // Clone the config object, to allow multiple instantiations\n // without picking up prior ideogram's settings\n this.config = JSON.parse(JSON.stringify(config));\n\n configureMiscellaneous(this);\n configurePloidy(this);\n configureBands(this);\n configureHeight(this);\n configureWidth(this);\n configureMargin(this);\n configureCallbacks(config, this);\n configureOrganisms(this);\n configureBump(this);\n configureSingleChromosome(config, this);\n this.initAnnotSettings();\n this.config.chrMargin += this.config.chrWidth;\n if (this.config.annotationsLayout === 'heatmap') {\n this.config.chrMargin += this.config.annotTracksHeight;\n } else {\n this.config.chrMargin += this.config.annotTracksHeight * 2;\n }\n this.init();\n}\n\nexport {configure}","import * as d3selection from 'd3-selection';\nimport {Object} from '../lib';\n\nvar d3 = Object.assign({}, d3selection);\n\nfunction processLabels(config, ideo) {\n var i, chrID, t0C, t1C;\n\n if (config.showBandLabels === true) {\n t0C = new Date().getTime();\n ideo.hideUnshownBandLabels();\n t1C = new Date().getTime();\n if (config.debug) {\n console.log('Time in showing bands: ' + (t1C - t0C) + ' ms');\n }\n\n if (config.orientation === 'vertical') {\n for (i = 0; i < ideo.chromosomesArray.length; i++) {\n chrID = '#' + ideo.chromosomesArray[i].id;\n ideo.rotateChromosomeLabels(d3.select(chrID), i);\n }\n }\n }\n\n if (config.showChromosomeLabels === true) {\n ideo.drawChromosomeLabels(ideo.chromosomes);\n }\n}\n\nfunction processAnnots(ideo) {\n if (typeof ideo.timeout !== 'undefined') window.clearTimeout(ideo.timeout);\n\n ideo.rawAnnots = ideo.setOriginalTrackIndexes(ideo.rawAnnots);\n\n if (ideo.config.annotationsDisplayedTracks) {\n ideo.annots =\n ideo.updateDisplayedTracks(ideo.config.annotationsDisplayedTracks);\n } else {\n ideo.annots = ideo.processAnnotData(ideo.rawAnnots);\n if (ideo.config.filterable) ideo.initCrossFilter();\n ideo.drawProcessedAnnots(ideo.annots);\n }\n}\n\n/**\n * Waits for potentially large annotation dataset\n * to be received by the client, then triggers annotation processing.\n */\nfunction waitForAndProcessAnnots(ideo) {\n if (ideo.rawAnnots) {\n processAnnots(ideo);\n } else {\n (function checkAnnotData() {\n ideo.timeout = setTimeout(function() {\n if (!ideo.rawAnnots) {\n checkAnnotData();\n } else {\n processAnnots(ideo);\n }\n }, 50);\n })();\n }\n}\n\nfunction reportDebugTimings(config, t0, t0A) {\n\n var t1A = new Date().getTime();\n if (config.debug) {\n console.log('Time in drawChromosome: ' + (t1A - t0A) + ' ms');\n }\n\n var t1 = new Date().getTime();\n if (config.debug) {\n console.log('Time constructing ideogram: ' + (t1 - t0) + ' ms');\n }\n}\n\n/**\n * Completes high-level initialization.\n * Draws chromosomes and band labels, rotating as needed;\n * processes and draws annotations;\n * creates brush, emits notification of load completion, etc.\n */\nfunction finishInit(bandsArray, t0) {\n var t0A = new Date().getTime(),\n ideo = this,\n config = ideo.config;\n\n ideo.initDrawChromosomes(bandsArray);\n\n if (config.annotationsPath) waitForAndProcessAnnots(ideo);\n\n processLabels(config, ideo);\n\n if (config.brush) ideo.createBrush(config.brush);\n if (config.annotations) ideo.drawAnnots(config.annotations);\n\n reportDebugTimings(config, t0, t0A);\n\n ideo.setOverflowScroll();\n\n if (ideo.onLoadCallback) ideo.onLoadCallback();\n}\n\nexport {finishInit}","export class Ploidy {\n\n constructor(config) {\n this._config = config;\n this._description = this._normalize(this._config.ploidyDesc);\n }\n\n // Get number of chromosomes in a chromosome set\n getChromosomesNumber(setIndex) {\n if (this._config.ploidyDesc) {\n var chrSetCode = this._config.ploidyDesc[setIndex];\n if (chrSetCode instanceof Object) {\n return Object.keys(chrSetCode)[0].length;\n } else {\n return chrSetCode.length;\n }\n } else {\n return this._config.ploidy || 1;\n }\n }\n\n // Normalize use defined description\n _normalize(description) {\n var key, descValue,\n normalized = [];\n\n if (!description) return description;\n\n // Loop through description and normalize\n for (key in description) {\n descValue = description[key];\n if (typeof descValue === 'string') {\n if (this._config.orientation === 'vertical') {\n descValue = descValue.split('').reverse();\n }\n normalized.push({\n ancestors: descValue,\n existence: this._getexistenceArray(descValue.length)\n });\n } else {\n normalized.push({\n ancestors: Object.keys(descValue)[0],\n existence: descValue[Object.keys(descValue)[0]]\n });\n }\n }\n\n return normalized;\n }\n\n // Get array filled by '11' elements\n _getexistenceArray(length) {\n var array = [];\n\n for (var i = 0; i < length; i++) {\n array.push('11');\n }\n\n return array;\n }\n\n getSetSize(chrSetIndex) {\n if (this._description) {\n return this._description[chrSetIndex].ancestors.length;\n } else {\n return 1;\n }\n }\n\n // Get ancestor letter\n getAncestor(chrSetIndex, chrIndex) {\n if (this._description) {\n return this._description[chrSetIndex].ancestors[chrIndex];\n } else {\n return '';\n }\n }\n\n // Check if chromosome's arm should be rendered.\n // If no description was provided, method returns true and\n // something another depending on user provided description.\n exists(chrSetIndex, chrIndex, armIndex) {\n if (this._description) {\n var desc =\n this._description[chrSetIndex].existence[chrIndex][armIndex];\n return Number(desc) > 0;\n } else {\n return true;\n }\n }\n\n}\n","import * as d3selection from 'd3-selection';\n\nimport {Object} from './../lib';\n\nvar d3 = Object.assign({}, d3selection);\n\n/**\n * Chromosome's view utility class\n */\nexport class ChromosomeUtil {\n\n constructor(node) {\n this._node = node;\n }\n\n getLabel() {\n var label =\n d3\n .select(this._node.parentNode)\n .select('text.chrLabel')\n .text();\n return label;\n }\n\n /**\n * Get chromosome set label\n */\n getSetLabel() {\n var setLabel =\n d3\n .select(this._node.parentNode)\n .select('text.chrSetLabel')\n .text();\n return setLabel;\n }\n}\n","import * as d3selection from 'd3-selection';\n\nimport {ChromosomeUtil} from './../views/chromosome-util';\nimport {Object} from './../lib';\n\nvar d3 = Object.assign({}, d3selection);\n\nclass Layout {\n\n constructor(config, ideo) {\n this._config = config;\n this._ideo = ideo;\n this._ploidy = this._ideo._ploidy;\n this._translate = undefined;\n\n if ('chrSetMargin' in config) {\n this.chrSetMargin = config.chrSetMargin;\n } else {\n var chrMargin = this._config.chrMargin;\n this.chrSetMargin = (this._config.ploidy > 1 ? chrMargin : 0);\n }\n\n // Chromosome band's size.\n this._tickSize = 8;\n\n // Chromosome rotation state.\n this._isRotated = false;\n }\n\n // Get chart left margin\n _getLeftMargin() {\n return this.margin.left;\n }\n\n // Get rotated chromosome y scale\n _getYScale() {\n // 20 is width of rotated chromosome.\n return 20 / this._config.chrWidth;\n }\n\n // Get chromosome labels\n getChromosomeLabels(chrElement) {\n var util = new ChromosomeUtil(chrElement),\n labels = [];\n\n if (this._ideo.config.ploidy > 1) {\n labels.push(util.getSetLabel());\n }\n labels.push(util.getLabel());\n\n return labels.filter(function(d) {\n return d.length > 0;\n });\n }\n\n getChromosomeBandLabelTranslate(band) {\n var x, y, translate,\n ideo = this._ideo,\n tickSize = this._tickSize,\n orientation = ideo.config.orientation;\n\n if (orientation === 'vertical') {\n x = tickSize;\n y = ideo.round(2 + band.px.start + band.px.width/2);\n translate = \"rotate(-90)translate(\" + x + \",\" + y + \")\";\n } else if (orientation === 'horizontal') {\n x = ideo.round(-tickSize + band.px.start + band.px.width / 2);\n y = -10;\n translate = 'translate(' + x + ',' + y + ')';\n }\n\n return {\n x: x,\n y: y,\n translate: translate\n };\n }\n\n didRotate(chrIndex, chrElement) {\n var ideo, taxid, chrName, bands, chrModel, oldWidth,\n chrSetElement, transform, scale, scaleRE;\n\n ideo = this._ideo;\n taxid = ideo.config.taxid;\n chrName = chrElement.id.split('-')[0].replace('chr', '');\n chrModel = ideo.chromosomes[taxid][chrName];\n bands = chrModel.bands;\n\n chrSetElement = d3.select(chrElement.parentNode);\n transform = chrSetElement.attr('transform');\n scaleRE = /scale\\(.*\\)/;\n scale = scaleRE.exec(transform);\n transform = transform.replace(scale, '');\n chrSetElement.attr('transform', transform);\n\n oldWidth = chrModel.width;\n\n chrModel = ideo.getChromosomeModel(bands, chrName, taxid, chrIndex);\n\n chrModel.oldWidth = oldWidth;\n\n ideo.chromosomes[taxid][chrName] = chrModel;\n ideo.drawChromosome(chrModel);\n\n ideo.handleRotateOnClick();\n\n if (ideo.rawAnnots) {\n if (ideo.displayedTrackIndexes) {\n ideo.updateDisplayedTracks(ideo.displayedTrackIndexes);\n } else {\n ideo.annots = ideo.processAnnotData(ideo.rawAnnots);\n ideo.drawProcessedAnnots(ideo.annots);\n\n if (ideo.config.filterable) {\n ideo.initCrossFilter();\n }\n }\n }\n\n if (ideo.config.showBandLabels === true) {\n ideo.drawBandLabels(ideo.chromosomes);\n ideo.hideUnshownBandLabels();\n }\n\n if (ideo.onDidRotateCallback) {\n ideo.onDidRotateCallback(chrModel);\n }\n }\n\n rotate(chrSetIndex, chrIndex, chrElement) {\n var ideo, otherChrs, ideoBounds, labelSelectors;\n ideo = this._ideo;\n\n labelSelectors = (\n ideo.selector + ' .chrSetLabel, ' + ideo.selector + ' .chrLabel'\n );\n\n ideoBounds = document.querySelector(ideo.selector).getBoundingClientRect();\n\n // Find chromosomes which should be hidden\n otherChrs = d3.selectAll(ideo.selector + ' g.chromosome')\n .filter(function() {return this !== chrElement;});\n\n if (this._isRotated) {\n\n this._isRotated = false;\n\n ideo.config.chrHeight = ideo.config.chrHeightOriginal;\n ideo.config.chrWidth = ideo.config.chrWidthOriginal;\n ideo.config.annotationHeight = ideo.config.annotationHeightOriginal;\n\n // Rotate chromosome back\n this.rotateBack(chrSetIndex, chrIndex, chrElement, function() {\n // Show all other chromosomes and chromosome labels\n otherChrs.style('display', null);\n d3.selectAll(labelSelectors).style('display', null);\n ideo._layout.didRotate(chrIndex, chrElement);\n });\n\n } else {\n\n this._isRotated = true;\n\n // Hide all other chromosomes and chromosome labels\n otherChrs.style('display', 'none');\n d3.selectAll(labelSelectors).style('display', 'none');\n\n // Rotate chromosome\n this.rotateForward(chrSetIndex, chrIndex, chrElement, function() {\n\n var chrHeight, elementLength, windowLength;\n\n ideo.config.chrHeightOriginal = ideo.config.chrHeight;\n ideo.config.chrWidthOriginal = ideo.config.chrWidth;\n ideo.config.annotationHeightOriginal = ideo.config.annotationHeight;\n\n if (ideo._layout._class === 'VerticalLayout') {\n elementLength = ideoBounds.width;\n windowLength = window.innerWidth;\n } else {\n elementLength = ideoBounds.height - 10;\n windowLength = window.innerHeight - 10;\n }\n\n // Set chromosome height to window length or ideogram element length,\n // whichever is smaller. This keeps whole chromosome viewable, while\n // also ensuring the height doesn't exceed what the user specified.\n chrHeight = (windowLength < elementLength ? windowLength : elementLength);\n chrHeight -= ideo.config.chrMargin * 2;\n ideo.config.chrHeight = chrHeight;\n\n // Account for chromosome label\n // TODO: Make this dynamic, not hard-coded\n ideo.config.chrWidth *= 2.3;\n\n ideo.config.annotationHeight *= 1.7;\n\n ideo._layout.didRotate(chrIndex, chrElement);\n });\n }\n }\n\n getChromosomeLabelClass() {\n if (this._config.ploidy === 1) {\n return 'chrLabel';\n } else {\n return 'chrSetLabel';\n }\n }\n\n _getAdditionalOffset() {\n return (\n (this._config.annotationHeight || 0) * (this._config.annotationsNumTracks || 1)\n );\n }\n\n _getChromosomeSetSize(chrSetIndex) {\n // Get last chromosome set size.\n var setSize = this._ploidy.getSetSize(chrSetIndex);\n\n // Increase offset by last chromosome set size\n return (\n setSize * this._config.chrWidth * 2 + (this.chrSetMargin)\n );\n }\n\n // Get chromosome set label anchor property\n getChromosomeSetLabelAnchor() {\n return 'middle';\n }\n\n // Get chromosome label y position.\n getChromosomeLabelYPosition() {\n return -5.5;\n }\n\n getChromosomeSetLabelYPosition(chrIndex) {\n if (this._config.ploidy === 1) {\n return this.getChromosomeLabelYPosition(chrIndex);\n } else {\n return -2 * this._config.chrWidth;\n }\n }\n\n}\n\nexport default Layout","/**\n* @fileoverview Vertical layout class\n* Ideogram instances with vertical layout are oriented with each chromosome\n* starting at top and ending at bottom, and aligned as columns.\n*/\n\n\nimport * as d3selection from 'd3-selection';\n\nimport Layout from './layout';\nimport {Object} from './../lib';\n\nvar d3 = Object.assign({}, d3selection);\n\nclass VerticalLayout extends Layout {\n\n constructor(config, ideo) {\n super(config, ideo);\n this._class = 'VerticalLayout';\n // Layout margins\n this.margin = {\n top: 30,\n left: 15\n };\n }\n\n rotateForward(setIndex, chrIndex, chrElement, callback) {\n\n var self = this;\n\n var xOffset = 20;\n\n var scale = this.getChromosomeScale(chrElement);\n\n var transform =\n 'translate(' + xOffset + ', 25) ' + scale;\n\n d3.select(chrElement.parentNode)\n .transition()\n .attr('transform', transform)\n .on('end', callback);\n\n // Append new chromosome labels\n var labels = this.getChromosomeLabels(chrElement);\n var y = (xOffset + self._config.chrWidth) * 1.3;\n d3.select(this._ideo.getSvg())\n .append('g')\n .attr('class', 'tmp')\n .selectAll('text')\n .data(labels)\n .enter()\n .append('text')\n .attr('class', function(d, i) {\n return i === 0 && labels.length === 2 ? 'chrSetLabel' : null;\n })\n .attr('x', 0)\n .attr('y', y).style('opacity', 0)\n .text(String)\n .transition()\n .style('opacity', 1);\n\n this._ideo.config.orientation = 'horizontal';\n }\n\n rotateBack(setIndex, chrIndex, chrElement, callback) {\n\n var scale = this.getChromosomeScaleBack(chrElement);\n var translate = this.getChromosomeSetTranslate(setIndex);\n\n d3.select(chrElement.parentNode)\n .transition()\n .attr('transform', translate + ' ' + scale)\n .on('end', callback);\n\n d3.selectAll(this._ideo.selector + ' g.tmp')\n .style('opacity', 0)\n .remove();\n\n this._ideo.config.orientation = 'vertical';\n }\n\n getHeight() {\n return this._config.chrHeight + this.margin.top * 1.5;\n }\n\n getWidth() {\n return '97%';\n }\n\n getChromosomeBandTickY1() {\n return 2;\n }\n\n getChromosomeBandTickY2() {\n return 10;\n }\n\n getChromosomeSetLabelTranslate() {\n return 'rotate(-90)';\n }\n\n getChromosomeBandLabelAnchor() {\n return null;\n }\n\n getChromosomeScale(chrElement) {\n var ideoBox, chrBox, scaleX, scaleY;\n\n ideoBox = d3.select(this._ideo.selector).node().getBoundingClientRect();\n chrBox = chrElement.getBoundingClientRect();\n\n scaleX = (ideoBox.width / chrBox.height) * 0.97;\n scaleY = this._getYScale();\n\n return 'scale(' + scaleX + ', ' + scaleY + ')';\n }\n\n getChromosomeScaleBack(chrElement) {\n var scale, scaleX, scaleY, chrName, chrModel, taxid, ideo, config;\n\n ideo = this._ideo;\n config = ideo.config;\n taxid = config.taxid;\n\n chrName = chrElement.id.split('-')[0].replace('chr', '');\n chrModel = this._ideo.chromosomes[taxid][chrName];\n scaleX = (chrModel.oldWidth/(config.chrHeight*3)) * 0.97;\n scaleY = 1/this._getYScale();\n scale = 'scale(' + scaleX + ', ' + scaleY + ')';\n return scale;\n }\n\n getChromosomeSetTranslate(setIndex) {\n var marginTop = this.margin.top;\n var chromosomeSetYTranslate = this.getChromosomeSetYTranslate(setIndex);\n return (\n 'rotate(90) ' +\n 'translate(' + marginTop + ', -' + chromosomeSetYTranslate + ')'\n );\n }\n\n getChromosomeSetYTranslate(setIndex) {\n // Get additional padding caused by annotation/histogram tracks\n var pad = this._getAdditionalOffset(),\n margin = this._config.chrMargin,\n width = this._config.chrWidth,\n translate;\n\n // If no detailed description provided just use one formula for all cases\n if (!this._config.ploidyDesc) {\n // TODO:\n // This part of code contains a lot magic numbers and if\n // statements for exactly corresponing to original ideogram examples.\n // But all this stuff should be removed. Calculation of translate\n // should be a simple formula applied for all cases listed below.\n // Now they are diffirent because of Layout:_getAdditionalOffset do\n // not meet for cases when no annotation, when annotation exists and\n // when histogram used\n\n if (this._config.annotationsLayout === 'histogram') {\n return margin / 2 + setIndex * (margin + width + 2) + pad * 2 + 1;\n } else {\n translate = width + setIndex * (margin + width) + pad * 2;\n if (pad > 0) {\n return translate;\n } else {\n return translate + 4 + (2 * setIndex);\n }\n }\n }\n\n // If detailed description provided start to calculate offsets\n // for each chromosome set separately. This should be done only once\n if (!this._translate) {\n // First offset equals to zero\n this._translate = [this._ploidy.getSetSize(0) * width * 2];\n var prevTranslate;\n // Loop through description set\n for (var i = 1; i < this._config.ploidyDesc.length; i++) {\n prevTranslate = this._translate[i - 1];\n this._translate[i] = prevTranslate + this._getChromosomeSetSize(i - 1);\n }\n }\n\n return this._translate[setIndex];\n }\n\n getChromosomeSetLabelXPosition() {\n return (this._config.chrWidth * this._config.ploidy) / -2;\n }\n\n getChromosomeLabelXPosition() {\n return this._config.chrWidth / -2;\n }\n}\n\nexport default VerticalLayout","/**\n* @fileoverview Horizontal layout class\n* Ideogram instances with horizontal layout are oriented with each chromosome\n* starting at left and ending at right, and aligned as rows.\n*/\n\nimport * as d3selection from 'd3-selection';\n\nimport Layout from './layout';\nimport {Object} from './../lib';\n\nvar d3 = Object.assign({}, d3selection);\n\nclass HorizontalLayout extends Layout {\n\n constructor(config, ideo) {\n super(config, ideo);\n this._class = 'HorizontalLayout';\n this.margin = {\n left: 20,\n top: 30\n };\n }\n\n _getLeftMargin() {\n var margin = Layout.prototype._getLeftMargin.call(this);\n if (this._config.ploidy > 1) {\n margin *= 1.8;\n }\n\n return margin;\n }\n\n rotateForward(setIndex, chrIndex, chrElement, callback) {\n\n var xOffset, yOffset, transform, labels;\n\n xOffset = 30;\n\n yOffset = xOffset + 7.5;\n\n transform = (\n 'rotate(90) ' +\n 'translate(' + xOffset + ', -' + yOffset + ') '\n );\n\n d3.select(chrElement.parentNode)\n .transition()\n .attr(\"transform\", transform)\n .on('end', callback);\n\n // Append new chromosome labels\n labels = this.getChromosomeLabels(chrElement);\n d3.select(this._ideo.getSvg())\n .append('g')\n .attr('class', 'tmp')\n .selectAll('text')\n .data(labels)\n .enter()\n .append('text')\n .attr('class', function(d, i) {\n return i === 0 && labels.length === 2 ? 'chrSetLabel' : null;\n })\n .attr('x', xOffset - 4)\n .attr('y', function(d, i) {\n return (i + 1 + labels.length % 2) * 12;\n })\n .style('text-anchor', 'middle')\n .style('opacity', 0)\n .text(String)\n .transition()\n .style('opacity', 1);\n\n this._ideo.config.orientation = 'vertical';\n }\n\n rotateBack(setIndex, chrIndex, chrElement, callback) {\n var translate = this.getChromosomeSetTranslate(setIndex);\n\n d3.select(chrElement.parentNode)\n .transition()\n .attr(\"transform\", translate)\n .on('end', callback);\n\n d3.selectAll(this._ideo.selector + ' g.tmp')\n .style('opacity', 0)\n .remove();\n\n this._ideo.config.orientation = 'horizontal';\n }\n\n getHeight(taxid) {\n // Get last chromosome set offset.\n var numChromosomes = this._config.chromosomes[taxid].length;\n var lastSetOffset = this.getChromosomeSetYTranslate(numChromosomes - 1);\n\n // Get last chromosome set size.\n var lastSetSize = this._getChromosomeSetSize(numChromosomes - 1);\n\n // Increase offset by last chromosome set size\n lastSetOffset += lastSetSize;\n\n return lastSetOffset + this._getAdditionalOffset() * 2;\n }\n\n getWidth() {\n return this._config.chrHeight + this.margin.top * 1.5;\n }\n\n getChromosomeSetLabelAnchor() {\n return 'end';\n }\n\n getChromosomeBandLabelAnchor() {\n return null;\n }\n\n getChromosomeBandTickY1() {\n return 2;\n }\n\n getChromosomeBandTickY2() {\n return 10;\n }\n\n getChromosomeSetLabelTranslate() {\n return null;\n }\n\n getChromosomeSetTranslate(setIndex) {\n var leftMargin = this._getLeftMargin();\n var yTranslate = this.getChromosomeSetYTranslate(setIndex);\n return 'translate(' + leftMargin + ', ' + yTranslate + ')';\n }\n\n getChromosomeSetYTranslate(setIndex) {\n // If no detailed description provided just use one formula for all cases.\n if (!this._config.ploidyDesc) {\n return this._config.chrMargin * (setIndex + 1);\n }\n\n // Id detailed description provided start to calculate offsets\n // for each chromosome set separately. This should be done only once.\n if (!this._translate) {\n // First offset equals to zero.\n this._translate = [1];\n\n // Loop through description set\n for (var i = 1; i < this._config.ploidyDesc.length; i++) {\n this._translate[i] =\n this._translate[i - 1] + this._getChromosomeSetSize(i - 1);\n }\n }\n\n return this._translate[setIndex];\n }\n\n getChromosomeSetLabelXPosition(i) {\n if (this._config.ploidy === 1) {\n return this.getChromosomeLabelXPosition(i);\n } else {\n return -20;\n }\n }\n\n getChromosomeSetLabelYPosition(i) {\n var setSize = this._ploidy.getSetSize(i),\n config = this._config,\n chrMargin = config.chrMargin,\n chrWidth = config.chrWidth,\n y;\n\n if (config.ploidy === 1) {\n y = chrWidth / 2 + 3;\n } else {\n y = (setSize * chrMargin) / 2;\n }\n\n return y;\n }\n\n getChromosomeLabelXPosition() {\n return -8;\n }\n\n getChromosomeLabelYPosition() {\n return this._config.chrWidth;\n }\n\n}\n\nexport default HorizontalLayout","/**\n* @fileoverview Paired layout class\n* Ideograms with paired layout group each chromosome in a chromosome set.\n* This enables ploidy support beyond the default haploid; e.g. diploid genomes.\n*/\n\nimport * as d3selection from 'd3-selection';\n\nimport Layout from './layout';\nimport {Object} from './../lib';\n\nvar d3 = Object.assign({}, d3selection);\n\nclass PairedLayout extends Layout {\n\n constructor(config, ideo) {\n super(config, ideo);\n\n this._class = 'PairedLayout';\n\n this.margin = {\n left: 30\n };\n }\n\n rotateForward(setIndex, chrIndex, chrElement, callback) {\n console.warn('rotateForward not implemented for PairedLayout');\n // var self = this;\n // var ideo = this._ideo;\n //\n // // Get ideo container and chromosome set dimensions\n // var ideoBox = d3.select(ideo.selector).node().getBoundingClientRect();\n // var chrBox = chrElement.getBoundingClientRect();\n //\n // // Evaluate dimensions scale coefficients\n // var scaleX = (ideoBox.width / chrBox.height) * 0.97;\n // var scaleY = this._getYScale();\n //\n // // Evaluate y offset of chromosome.\n // // It is different for first and the second one\n // var yOffset = setIndex ? 150 : 25;\n //\n // var transform =\n // 'translate(15, ' + yOffset + ') scale(' + scaleX + ', ' + scaleY + ')';\n //\n // // Run rotation procedure\n // d3.select(chrElement.parentNode)\n // .transition()\n // .attr(\"transform\", transform)\n // .on('end', function() {\n // // Run callback function if provided\n // if (callback) {\n // callback();\n // }\n //\n // var translateY = (6 * Number(!setIndex));\n //\n // // Rotate band labels\n // d3.select(chrElement.parentNode).selectAll('g.bandLabel text')\n // .attr('transform', 'rotate(90) translate(0, ' + translateY + ')')\n // .attr('text-anchor', 'middle');\n //\n // // Hide syntenic regions\n // d3.selectAll(ideo.selector + ' .syntenicRegion')\n // .style('display', 'none');\n // });\n //\n // // Append new chromosome labels\n // var labels = this.getChromosomeLabels(chrElement);\n //\n // d3.select(this._ideo.getSvg())\n // .append('g')\n // .attr('class', 'tmp')\n // .selectAll('text')\n // .data(this.getChromosomeLabels(chrElement))\n // .enter()\n // .append('text')\n // .attr('class', function(d, i) {\n // return i === 0 && labels.length === 2 ? 'chrSetLabel' : null;\n // })\n // .attr('x', 0)\n // .attr('y', yOffset + (self._config.chrWidth * scaleX / 2) * 1.15)\n // .style('opacity', 0)\n // .text(String)\n // .transition()\n // .style('opacity', 1);\n }\n\n rotateBack(setIndex, chrIndex, chrElement, callback) {\n console.warn('rotateBack not implemented for PairedLayout');\n //\n // var ideo = this._ideo;\n //\n // // Get intial transformation string for chromosome set\n // var translate = this.getChromosomeSetTranslate(setIndex);\n //\n // // Run rotation procedure\n // d3.select(chrElement.parentNode)\n // .transition()\n // .attr('transform', translate)\n // .on('end', function() {\n // // Run callback fnuction if provided\n // callback();\n //\n // // Show syntenic regions\n // d3.selectAll(ideo.select + ' .syntenicRegion')\n // .style('display', null);\n //\n // // Reset changed attributes to original state\n // d3.select(chrElement.parentNode).selectAll('g.bandLabel text')\n // .attr('transform', null)\n // .attr('text-anchor', setIndex ? null : 'end');\n // });\n //\n // d3.selectAll(ideo.selector + ' g.tmp')\n // .style('opacity', 0)\n // .remove();\n }\n\n getHeight() {\n return this._config.chrHeight + this.margin.left * 1.5;\n }\n\n getWidth() {\n return '97%';\n }\n\n getChromosomeBandTickY1(chrIndex) {\n return chrIndex % 2 ? this._config.chrWidth : this._config.chrWidth * 2;\n }\n\n getChromosomeBandTickY2(chrIndex) {\n var width = this._config.chrWidth;\n return chrIndex % 2 ? width - this._tickSize : width * 2 + this._tickSize;\n }\n\n getChromosomeBandLabelAnchor(chrIndex) {\n return chrIndex % 2 ? null : 'end';\n }\n\n getChromosomeBandLabelTranslate(band, chrIndex) {\n var x = chrIndex % 2 ? 10 : -this._config.chrWidth - 10;\n var y = this._ideo.round(band.px.start + band.px.width / 2) + 3;\n\n return {\n x: y,\n y: y,\n translate: 'rotate(-90) translate(' + x + ', ' + y + ')'\n };\n }\n\n getChromosomeLabelXPosition() {\n return -this._tickSize;\n }\n\n getChromosomeSetLabelXPosition() {\n return this._config.chrWidth / -2;\n }\n\n getChromosomeSetLabelTranslate() {\n return 'rotate(-90)';\n }\n\n getChromosomeSetTranslate(setIndex) {\n var chromosomeSetYTranslate = this.getChromosomeSetYTranslate(setIndex);\n return (\n 'rotate(90) ' +\n 'translate(' + this.margin.left + ', -' + chromosomeSetYTranslate + ')'\n );\n }\n\n getChromosomeSetYTranslate(setIndex) {\n return 200 * (setIndex + 1);\n }\n\n}\n\nexport default PairedLayout","import * as d3selection from 'd3-selection';\n\nimport Layout from './layout';\nimport {Object} from './../lib';\n\nvar d3 = Object.assign({}, d3selection);\n\nclass SmallLayout extends Layout {\n\n constructor(config, ideo) {\n super(config, ideo);\n\n this._class = 'SmallLayout';\n\n this.margin = {\n left: 36.5,\n top: 10\n };\n }\n\n // rotateForward(setIndex, chrIndex, chrElement, callback) {\n // var ideoBox = d3.select(this._ideo.selector).node().getBoundingClientRect();\n // var chrBox = chrElement.getBoundingClientRect();\n //\n // var scaleX = (ideoBox.width / chrBox.height) * 0.97;\n // var scaleY = this._getYScale();\n //\n // transform = 'translate(5, 25) scale(' + scaleX + ', ' + scaleY + ')';\n //\n // d3.select(chrElement.parentNode)\n // .transition()\n // .attr('transform', transform)\n // .on('end', callback);\n // }\n //\n // rotateBack(setIndex, chrIndex, chrElement, callback) {\n // var translate = this.getChromosomeSetTranslate(setIndex);\n //\n // d3.select(chrElement.parentNode)\n // .transition()\n // .attr('transform', translate)\n // .on('end', callback);\n // }\n\n getHeight() {\n var chrHeight = this._config.chrHeight;\n return this._config.rows * (chrHeight + this.margin.top * 1.5);\n }\n\n getWidth() {\n return '97%';\n }\n\n getChromosomeBandLabelTranslate() {\n\n }\n\n getChromosomeSetLabelTranslate() {\n return 'rotate(-90)';\n }\n\n getChromosomeSetTranslate(setIndex) {\n // Get organisms id list\n var organisms = [];\n this._ideo.getTaxids(function(taxidList) {\n organisms = taxidList;\n });\n // Get first organism chromosomes amount\n var size = this._ideo.config.chromosomes[organisms[0]].length;\n // Amount of chromosomes per number\n var rowSize = size / this._config.rows;\n\n var xOffset;\n var yOffset;\n\n if (setIndex > rowSize - 1) {\n xOffset = this.margin.left + this._config.chrHeight * 1.4;\n yOffset = this.getChromosomeSetYTranslate(setIndex - rowSize);\n } else {\n xOffset = this.margin.left;\n yOffset = this.getChromosomeSetYTranslate(setIndex);\n }\n\n return 'rotate(90) translate(' + xOffset + ', -' + yOffset + ')';\n }\n\n getChromosomeSetYTranslate(setIndex) {\n // Get additional padding caused by annotation tracks\n var additionalPadding = this._getAdditionalOffset();\n // If no detailed description provided just use one formula for all cases\n return (\n this.margin.left * (setIndex) + this._config.chrWidth +\n additionalPadding * 2 + additionalPadding * setIndex\n );\n }\n\n getChromosomeSetLabelXPosition(setIndex) {\n return (\n ((this._ploidy.getSetSize(setIndex) * this._config.chrWidth + 20) / -2) +\n (this._config.ploidy > 1 ? 0 : this._config.chrWidth)\n );\n }\n\n getChromosomeLabelXPosition() {\n return this._config.chrWidth / -2;\n }\n\n}\n\nexport default SmallLayout","import * as d3selection from 'd3-selection';\n\nimport {Object} from '../lib';\nimport {Ploidy} from '../ploidy';\nimport {getLayout} from '../layouts/layout-adapter';\n\nvar d3 = Object.assign({}, d3selection);\n\n/**\n * If ploidy description is a string, then convert it to the canonical\n * array format. String ploidyDesc is used when depicting e.g. parental\n * origin each member of chromosome pair in a human genome.\n * See ploidy-basic.html for usage example.\n */\nfunction setPloidy(ideo) {\n if (\n 'ploidyDesc' in ideo.config &&\n typeof ideo.config.ploidyDesc === 'string'\n ) {\n var tmp = [];\n for (var i = 0; i < ideo.numChromosomes; i++) {\n tmp.push(ideo.config.ploidyDesc);\n }\n ideo.config.ploidyDesc = tmp;\n }\n // Organism ploidy description\n ideo._ploidy = new Ploidy(ideo.config);\n}\n\nfunction getContainerSvgClass(ideo) {\n var svgClass = '';\n if (ideo.config.showChromosomeLabels) {\n if (ideo.config.orientation === 'horizontal') {\n svgClass += 'labeledLeft ';\n } else {\n svgClass += 'labeled ';\n }\n }\n\n if (\n ideo.config.annotationsLayout &&\n ideo.config.annotationsLayout === 'overlay'\n ) {\n svgClass += 'faint';\n }\n\n return svgClass\n}\n\n/**\n * Write tooltip div setup with default styling.\n */\nfunction writeTooltipContainer(ideo) {\n d3.select(ideo.config.container + ' #_ideogramOuterWrap').append('div')\n .attr('class', '_ideogramTooltip')\n .attr('id', '_ideogramTooltip')\n .style('opacity', 0)\n .style('position', 'fixed')\n .style('text-align', 'center')\n .style('padding', '4px')\n .style('font', '12px sans-serif')\n .style('background', 'white')\n .style('border', '1px solid black')\n .style('border-radius', '5px')\n .style('z-index', '100');\n}\n\nfunction writeContainerDom(taxid, ideo) {\n\n // Remove any previous container content\n d3.selectAll(ideo.config.container + ' #_ideogramOuterWrap').remove();\n\n d3.select(ideo.config.container)\n .append('div')\n .attr('id', '_ideogramOuterWrap')\n .append('div')\n .attr('id', '_ideogramTrackLabelContainer')\n .style('position', 'absolute');\n\n d3.select(ideo.config.container + ' #_ideogramOuterWrap').append('div')\n .attr('id', '_ideogramMiddleWrap') // needed for overflow and scrolling\n .style('position', 'relative')\n .style('overflow-x', 'auto')\n .append('div')\n .attr('id', '_ideogramInnerWrap') // needed for overflow and scrolling\n .append('svg')\n .attr('id', '_ideogram')\n .attr('class', getContainerSvgClass(ideo))\n .attr('width', ideo._layout.getWidth(taxid))\n .attr('height', ideo._layout.getHeight(taxid))\n .html(ideo.getBandColorGradients());\n}\n\n/**\n * Writes the HTML elements that contain this ideogram instance.\n */\nfunction writeContainer(bandsArray, taxid, t0) {\n var ideo = this;\n\n if (ideo.config.annotationsPath) {\n ideo.fetchAnnots(ideo.config.annotationsPath);\n }\n\n setPloidy(ideo);\n\n ideo._layout = getLayout(ideo);\n\n writeContainerDom(taxid, ideo);\n\n ideo.isOnlyIdeogram = document.querySelectorAll('#_ideogram').length === 1;\n writeTooltipContainer(ideo);\n ideo.finishInit(bandsArray, t0);\n}\n\nexport {writeContainer}","import VerticalLayout from './vertical-layout';\nimport HorizontalLayout from './horizontal-layout';\nimport PairedLayout from './paired-layout';\nimport SmallLayout from './small-layout';\n\nfunction getLayout(ideo) {\n var config = ideo.config;\n\n if ('perspective' in config && config.perspective === 'comparative') {\n return new PairedLayout(config, ideo);\n } else if ('rows' in config && config.rows > 1) {\n return new SmallLayout(config, ideo);\n } else if (config.orientation === 'vertical') {\n return new VerticalLayout(config, ideo);\n } else if (config.orientation === 'horizontal') {\n return new HorizontalLayout(config, ideo);\n } else {\n return new VerticalLayout(config, ideo);\n }\n}\n\nexport {getLayout}","/**\n * @fileoveriew Methods for initialization\n */\n\nimport * as d3fetch from 'd3-fetch';\nimport * as d3selection from 'd3-selection';\n\nimport {Object, hasNonGenBankAssembly} from '../lib';\nimport {configure} from './configure';\nimport {finishInit} from './finish-init';\nimport {writeContainer} from './write-container';\nimport {fetchBands} from '../bands/fetch';\n\nvar d3 = Object.assign({}, d3fetch, d3selection);\n\nfunction isHeterogameticChromosome(chrModel, chrIndex, ideo) {\n var ploidy = ideo.config.ploidy;\n return (\n 'sex' in ideo.config &&\n (\n ploidy === 2 && ideo.sexChromosomes.index + 2 === chrIndex ||\n ideo.config.sex === 'female' && chrModel.name === 'Y'\n )\n );\n}\n\nfunction prepareChromosomes(bandsArray, chrs, taxid, chrIndex, ideo) {\n var j, bands, chromosome, chrModel\n\n for (j = 0; j < chrs.length; j++) {\n chromosome = chrs[j];\n if ('bandsArray' in ideo) bands = bandsArray[chrIndex];\n\n chrModel = ideo.getChromosomeModel(bands, chromosome, taxid, chrIndex);\n\n chrIndex += 1;\n\n if (typeof chromosome !== 'string') chromosome = chromosome.name;\n\n ideo.chromosomes[taxid][chromosome] = chrModel;\n ideo.chromosomesArray.push(chrModel);\n\n if (isHeterogameticChromosome(chrModel, chrIndex, ideo)) continue;\n\n ideo.drawChromosome(chrModel);\n }\n\n return chrIndex;\n}\n\nfunction setCoordinateSystem(chrs, ideo) {\n if (\n typeof chrBands !== 'undefined' &&\n chrs.length >= chrBands.length / 2\n ) {\n ideo.coordinateSystem = 'bp';\n }\n}\n\n/**\n * Configures chromosome data and calls downstream chromosome drawing functions\n */\nfunction initDrawChromosomes(bandsArray) {\n var ideo = this,\n taxids = ideo.config.taxids,\n chrIndex = 0,\n taxid, i, chrs;\n\n if (bandsArray.length > 0) ideo.bandsArray = {};\n\n for (i = 0; i < taxids.length; i++) {\n taxid = taxids[i];\n chrs = ideo.config.chromosomes[taxid];\n\n setCoordinateSystem(chrs, ideo);\n\n ideo.chromosomes[taxid] = {};\n ideo.setSexChromosomes(chrs);\n\n if ('bandsArray' in ideo) ideo.bandsArray[taxid] = bandsArray;\n\n chrIndex = prepareChromosomes(bandsArray, chrs, taxid, chrIndex, ideo);\n\n if (ideo.config.showBandLabels) ideo.drawBandLabels(ideo.chromosomes);\n ideo.handleRotateOnClick();\n ideo._gotChrModels = true; // Prevent issue with errant rat centromeres\n }\n}\n\n/**\n * Attach any click handlers to rotate and toggle chromosomes\n */\nfunction handleRotateOnClick() {\n var ideo = this;\n\n if (!('rotatable' in ideo.config && ideo.config.rotatable === false)) {\n d3.selectAll(ideo.selector + ' .chromosome').on('click', function () {\n ideo.rotateAndToggleDisplay(this);\n });\n } else {\n d3.selectAll(ideo.selector + ' .chromosome')\n .style('cursor', 'default');\n }\n}\n\n/**\n * Called when Ideogram has finished initializing.\n * Accounts for certain ideogram properties not being set until\n * asynchronous requests succeed, etc.\n */\nfunction onLoad() {\n call(this.onLoadCallback);\n}\n\nfunction getBandFileName(taxid, accession, ideo) {\n var organism = ideo.organisms[taxid];\n var bandFileName = [Ideogram.slugify(organism.scientificName)];\n var assemblies = organism.assemblies;\n var resolution = ideo.config.resolution;\n\n if (accession !== assemblies.default) {\n bandFileName.push(accession);\n }\n if (\n taxid === '9606' &&\n (accession in assemblies === 'false' &&\n Object.values(assemblies).includes(config.assembly) ||\n (resolution !== '' && resolution !== 850))\n ) {\n bandFileName.push(resolution);\n }\n bandFileName = bandFileName.join('-') + '.js';\n\n return bandFileName;\n}\n\nfunction getBandFileNames(taxid, bandFileNames, ideo) {\n var organism, assemblies, accession, bandFileName,\n config = ideo.config;\n\n organism = ideo.organisms[taxid];\n\n if (!config.assembly) ideo.config.assembly = 'default';\n\n assemblies = organism.assemblies;\n\n if (ideo.assemblyIsAccession()) {\n accession = config.assembly;\n } else {\n accession = assemblies[config.assembly];\n }\n\n bandFileName = getBandFileName(taxid, accession, ideo);\n\n if (taxid === '9606' || taxid === '10090') {\n bandFileNames[taxid] = bandFileName;\n }\n return bandFileNames;\n}\n\nfunction prepareContainer(taxid, bandFileNames, t0, ideo) {\n var bandsArray;\n\n if (\n hasNonGenBankAssembly(ideo) &&\n typeof chrBands === 'undefined' && taxid in bandFileNames\n ) {\n fetchBands(bandFileNames, taxid, t0, ideo);\n } else {\n if (typeof chrBands !== 'undefined') {\n // If bands already available,\n // e.g. via