PageSourceSearch

https://lumbinibikasbank.com/assets/frontend/js/emi/d3.v3.min.js

js lumbinibikasbank.com collected 2026-09-24 18:06:15 UTC 220,159 bytes, 2,765 lines download raw bytes

vendor: 220,159 bytes, lines 1-2765
1! function() {
2    function n(n) { return n && (n.ownerDocument || n.document || n).documentElement }
3
4    function t(n) { return n && (n.ownerDocument && n.ownerDocument.defaultView || n.document && n || n.defaultView) }
5
6    function e(n, t) { return t > n ? -1 : n > t ? 1 : n >= t ? 0 : NaN }
7
8    function r(n) { return null === n ? NaN : +n }
9
10    function u(n) { return !isNaN(n) }
11
12    function i(n) { return { left: function(t, e, r, u) { for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) { var i = r + u >>> 1;
13                    n(t[i], e) < 0 ? r = i + 1 : u = i } return r }, right: function(t, e, r, u) { for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) { var i = r + u >>> 1;
14                    n(t[i], e) > 0 ? u = i : r = i + 1 } return r } } }
15
16    function a(n) { return n.length }
17
18    function o(n) { for (var t = 1; n * t % 1;) t *= 10; return t }
19
20    function l(n, t) { for (var e in t) Object.defineProperty(n.prototype, e, { value: t[e], enumerable: !1 }) }
21
22    function c() { this._ = Object.create(null) }
23
24    function s(n) { return (n += "") === xa || n[0] === ba ? ba + n : n }
25
26    function f(n) { return (n += "")[0] === ba ? n.slice(1) : n }
27
28    function h(n) { return s(n) in this._ }
29
30    function g(n) { return (n = s(n)) in this._ && delete this._[n] }
31
32    function p() { var n = []; for (var t in this._) n.push(f(t)); return n }
33
34    function v() { var n = 0; for (var t in this._) ++n; return n }
35
36    function d() { for (var n in this._) return !1; return !0 }
37
38    function m() { this._ = Object.create(null) }
39
40    function y(n) { return n }
41
42    function M(n, t, e) { return function() { var r = e.apply(t, arguments); return r === t ? n : r } }
43
44    function x(n, t) { if (t in n) return t;
45        t = t.charAt(0).toUpperCase() + t.slice(1); for (var e = 0, r = _a.length; r > e; ++e) { var u = _a[e] + t; if (u in n) return u } }
46
47    function b() {}
48
49    function _() {}
50
51    function w(n) {
52        function t() { for (var t, r = e, u = -1, i = r.length; ++u < i;)(t = r[u].on) && t.apply(this, arguments); return n } var e = [],
53            r = new c; return t.on = function(t, u) { var i, a = r.get(t); return arguments.length < 2 ? a && a.on : (a && (a.on = null, e = e.slice(0, i = e.indexOf(a)).concat(e.slice(i + 1)), r.remove(t)), u && e.push(r.set(t, { on: u })), n) }, t }
54
55    function S() { oa.event.preventDefault() }
56
57    function k() { for (var n, t = oa.event; n = t.sourceEvent;) t = n; return t }
58
59    function N(n) { for (var t = new _, e = 0, r = arguments.length; ++e < r;) t[arguments[e]] = w(t); return t.of = function(e, r) { return function(u) { try { var i = u.sourceEvent = oa.event;
60                    u.target = n, oa.event = u, t[u.type].apply(e, r) } finally { oa.event = i } } }, t }
61
62    function E(n) { return Sa(n, Aa), n }
63
64    function A(n) { return "function" == typeof n ? n : function() { return ka(n, this) } }
65
66    function C(n) { return "function" == typeof n ? n : function() { return Na(n, this) } }
67
68    function z(n, t) {
69        function e() { this.removeAttribute(n) }
70
71        function r() { this.removeAttributeNS(n.space, n.local) }
72
73        function u() { this.setAttribute(n, t) }
74
75        function i() { this.setAttributeNS(n.space, n.local, t) }
76
77        function a() { var e = t.apply(this, arguments);
78            null == e ? this.removeAttribute(n) : this.setAttribute(n, e) }
79
80        function o() { var e = t.apply(this, arguments);
81            null == e ? this.removeAttributeNS(n.space, n.local) : this.setAttributeNS(n.space, n.local, e) } return n = oa.ns.qualify(n), null == t ? n.local ? r : e : "function" == typeof t ? n.local ? o : a : n.local ? i : u }
82
83    function L(n) { return n.trim().replace(/\s+/g, " ") }
84
85    function q(n) { return new RegExp("(?:^|\\s+)" + oa.requote(n) + "(?:\\s+|$)", "g") }
86
87    function T(n) { return (n + "").trim().split(/^|\s+/) }
88
89    function R(n, t) {
90        function e() { for (var e = -1; ++e < u;) n[e](this, t) }
91
92        function r() { for (var e = -1, r = t.apply(this, arguments); ++e < u;) n[e](this, r) }
93        n = T(n).map(D); var u = n.length; return "function" == typeof t ? r : e }
94
95    function D(n) { var t = q(n); return function(e, r) { if (u = e.classList) return r ? u.add(n) : u.remove(n); var u = e.getAttribute("class") || "";
96            r ? (t.lastIndex = 0, t.test(u) || e.setAttribute("class", L(u + " " + n))) : e.setAttribute("class", L(u.replace(t, " "))) } }
97
98    function P(n, t, e) {
99        function r() { this.style.removeProperty(n) }
100
101        function u() { this.style.setProperty(n, t, e) }
102
103        function i() { var r = t.apply(this, arguments);
104            null == r ? this.style.removeProperty(n) : this.style.setProperty(n, r, e) } return null == t ? r : "function" == typeof t ? i : u }
105
106    function U(n, t) {
107        function e() { delete this[n] }
108
109        function r() { this[n] = t }
110
111        function u() { var e = t.apply(this, arguments);
112            null == e ? delete this[n] : this[n] = e } return null == t ? e : "function" == typeof t ? u : r }
113
114    function j(n) {
115        function t() { var t = this.ownerDocument,
116                e = this.namespaceURI; return e === Ca && t.documentElement.namespaceURI === Ca ? t.createElement(n) : t.createElementNS(e, n) }
117
118        function e() { return this.ownerDocument.createElementNS(n.space, n.local) } return "function" == typeof n ? n : (n = oa.ns.qualify(n)).local ? e : t }
119
120    function F() { var n = this.parentNode;
121        n && n.removeChild(this) }
122
123    function H(n) { return { __data__: n } }
124
125    function O(n) { return function() { return Ea(this, n) } }
126
127    function I(n) { return arguments.length || (n = e),
128            function(t, e) { return t && e ? n(t.__data__, e.__data__) : !t - !e } }
129
130    function Y(n, t) { for (var e = 0, r = n.length; r > e; e++)
131            for (var u, i = n[e], a = 0, o = i.length; o > a; a++)(u = i[a]) && t(u, a, e); return n }
132
133    function Z(n) { return Sa(n, La), n }
134
135    function V(n) { var t, e; return function(r, u, i) { var a, o = n[i].update,
136                l = o.length; for (i != e && (e = i, t = 0), u >= t && (t = u + 1); !(a = o[t]) && ++t < l;); return a } }
137
138    function X(n, t, e) {
139        function r() { var t = this[a];
140            t && (this.removeEventListener(n, t, t.$), delete this[a]) }
141
142        function u() { var u = l(t, ca(arguments));
143            r.call(this), this.addEventListener(n, this[a] = u, u.$ = e), u._ = t }
144
145        function i() { var t, e = new RegExp("^__on([^.]+)" + oa.requote(n) + "$"); for (var r in this)
146                if (t = r.match(e)) { var u = this[r];
147                    this.removeEventListener(t[1], u, u.$), delete this[r] } } var a = "__on" + n,
148            o = n.indexOf("."),
149            l = $;
150        o > 0 && (n = n.slice(0, o)); var c = qa.get(n); return c && (n = c, l = B), o ? t ? u : r : t ? b : i }
151
152    function $(n, t) { return function(e) { var r = oa.event;
153            oa.event = e, t[0] = this.__data__; try { n.apply(this, t) } finally { oa.event = r } } }
154
155    function B(n, t) { var e = $(n, t); return function(n) { var t = this,
156                r = n.relatedTarget;
157            r && (r === t || 8 & r.compareDocumentPosition(t)) || e.call(t, n) } }
158
159    function W(e) { var r = ".dragsuppress-" + ++Ra,
160            u = "click" + r,
161            i = oa.select(t(e)).on("touchmove" + r, S).on("dragstart" + r, S).on("selectstart" + r, S); if (null == Ta && (Ta = "onselectstart" in e ? !1 : x(e.style, "userSelect")), Ta) { var a = n(e).style,
162                o = a[Ta];
163            a[Ta] = "none" } return function(n) { if (i.on(r, null), Ta && (a[Ta] = o), n) { var t = function() { i.on(u, null) };
164                i.on(u, function() { S(), t() }, !0), setTimeout(t, 0) } } }
165
166    function J(n, e) { e.changedTouches && (e = e.changedTouches[0]); var r = n.ownerSVGElement || n; if (r.createSVGPoint) { var u = r.createSVGPoint(); if (0 > Da) { var i = t(n); if (i.scrollX || i.scrollY) { r = oa.select("body").append("svg").style({ position: "absolute", top: 0, left: 0, margin: 0, padding: 0, border: "none" }, "important"); var a = r[0][0].getScreenCTM();
167                    Da = !(a.f || a.e), r.remove() } } return Da ? (u.x = e.pageX, u.y = e.pageY) : (u.x = e.clientX, u.y = e.clientY), u = u.matrixTransform(n.getScreenCTM().inverse()), [u.x, u.y] } var o = n.getBoundingClientRect(); return [e.clientX - o.left - n.clientLeft, e.clientY - o.top - n.clientTop] }
168
169    function G() { return oa.event.changedTouches[0].identifier }
170
171    function K(n) { return n > 0 ? 1 : 0 > n ? -1 : 0 }
172
173    function Q(n, t, e) { return (t[0] - n[0]) * (e[1] - n[1]) - (t[1] - n[1]) * (e[0] - n[0]) }
174
175    function nn(n) { return n > 1 ? 0 : -1 > n ? ja : Math.acos(n) }
176
177    function tn(n) { return n > 1 ? Oa : -1 > n ? -Oa : Math.asin(n) }
178
179    function en(n) { return ((n = Math.exp(n)) - 1 / n) / 2 }
180
181    function rn(n) { return ((n = Math.exp(n)) + 1 / n) / 2 }
182
183    function un(n) { return ((n = Math.exp(2 * n)) - 1) / (n + 1) }
184
185    function an(n) { return (n = Math.sin(n / 2)) * n }
186
187    function on() {}
188
189    function ln(n, t, e) { return this instanceof ln ? (this.h = +n, this.s = +t, void(this.l = +e)) : arguments.length < 2 ? n instanceof ln ? new ln(n.h, n.s, n.l) : _n("" + n, wn, ln) : new ln(n, t, e) }
190
191    function cn(n, t, e) {
192        function r(n) { return n > 360 ? n -= 360 : 0 > n && (n += 360), 60 > n ? i + (a - i) * n / 60 : 180 > n ? a : 240 > n ? i + (a - i) * (240 - n) / 60 : i }
193
194        function u(n) { return Math.round(255 * r(n)) } var i, a; return n = isNaN(n) ? 0 : (n %= 360) < 0 ? n + 360 : n, t = isNaN(t) ? 0 : 0 > t ? 0 : t > 1 ? 1 : t, e = 0 > e ? 0 : e > 1 ? 1 : e, a = .5 >= e ? e * (1 + t) : e + t - e * t, i = 2 * e - a, new yn(u(n + 120), u(n), u(n - 120)) }
195
196    function sn(n, t, e) { return this instanceof sn ? (this.h = +n, this.c = +t, void(this.l = +e)) : arguments.length < 2 ? n instanceof sn ? new sn(n.h, n.c, n.l) : n instanceof hn ? pn(n.l, n.a, n.b) : pn((n = Sn((n = oa.rgb(n)).r, n.g, n.b)).l, n.a, n.b) : new sn(n, t, e) }
197
198    function fn(n, t, e) { return isNaN(n) && (n = 0), isNaN(t) && (t = 0), new hn(e, Math.cos(n *= Ia) * t, Math.sin(n) * t) }
199
200    function hn(n, t, e) { return this instanceof hn ? (this.l = +n, this.a = +t, void(this.b = +e)) : arguments.length < 2 ? n instanceof hn ? new hn(n.l, n.a, n.b) : n instanceof sn ? fn(n.h, n.c, n.l) : Sn((n = yn(n)).r, n.g, n.b) : new hn(n, t, e) }
201
202    function gn(n, t, e) { var r = (n + 16) / 116,
203            u = r + t / 500,
204            i = r - e / 200; return u = vn(u) * Qa, r = vn(r) * no, i = vn(i) * to, new yn(mn(3.2404542 * u - 1.5371385 * r - .4985314 * i), mn(-.969266 * u + 1.8760108 * r + .041556 * i), mn(.0556434 * u - .2040259 * r + 1.0572252 * i)) }
205
206    function pn(n, t, e) { return n > 0 ? new sn(Math.atan2(e, t) * Ya, Math.sqrt(t * t + e * e), n) : new sn(NaN, NaN, n) }
207
208    function vn(n) { return n > .206893034 ? n * n * n : (n - 4 / 29) / 7.787037 }
209
210    function dn(n) { return n > .008856 ? Math.pow(n, 1 / 3) : 7.787037 * n + 4 / 29 }
211
212    function mn(n) { return Math.round(255 * (.00304 >= n ? 12.92 * n : 1.055 * Math.pow(n, 1 / 2.4) - .055)) }
213
214    function yn(n, t, e) { return this instanceof yn ? (this.r = ~~n, this.g = ~~t, void(this.b = ~~e)) : arguments.length < 2 ? n instanceof yn ? new yn(n.r, n.g, n.b) : _n("" + n, yn, cn) : new yn(n, t, e) }
215
216    function Mn(n) { return new yn(n >> 16, n >> 8 & 255, 255 & n) }
217
218    function xn(n) { return Mn(n) + "" }
219
220    function bn(n) { return 16 > n ? "0" + Math.max(0, n).toString(16) : Math.min(255, n).toString(16) }
221
222    function _n(n, t, e) { var r, u, i, a = 0,
223            o = 0,
224            l = 0; if (r = /([a-z]+)\((.*)\)/.exec(n = n.toLowerCase())) switch (u = r[2].split(","), r[1]) {
225            case "hsl":
226                return e(parseFloat(u[0]), parseFloat(u[1]) / 100, parseFloat(u[2]) / 100);
227            case "rgb":
228                return t(Nn(u[0]), Nn(u[1]), Nn(u[2])) }
229        return (i = uo.get(n)) ? t(i.r, i.g, i.b) : (null == n || "#" !== n.charAt(0) || isNaN(i = parseInt(n.slice(1), 16)) || (4 === n.length ? (a = (3840 & i) >> 4, a = a >> 4 | a, o = 240 & i, o = o >> 4 | o, l = 15 & i, l = l << 4 | l) : 7 === n.length && (a = (16711680 & i) >> 16, o = (65280 & i) >> 8, l = 255 & i)), t(a, o, l)) }
230
231    function wn(n, t, e) { var r, u, i = Math.min(n /= 255, t /= 255, e /= 255),
232            a = Math.max(n, t, e),
233            o = a - i,
234            l = (a + i) / 2; return o ? (u = .5 > l ? o / (a + i) : o / (2 - a - i), r = n == a ? (t - e) / o + (e > t ? 6 : 0) : t == a ? (e - n) / o + 2 : (n - t) / o + 4, r *= 60) : (r = NaN, u = l > 0 && 1 > l ? 0 : r), new ln(r, u, l) }
235
236    function Sn(n, t, e) { n = kn(n), t = kn(t), e = kn(e); var r = dn((.4124564 * n + .3575761 * t + .1804375 * e) / Qa),
237            u = dn((.2126729 * n + .7151522 * t + .072175 * e) / no),
238            i = dn((.0193339 * n + .119192 * t + .9503041 * e) / to); return hn(116 * u - 16, 500 * (r - u), 200 * (u - i)) }
239
240    function kn(n) { return (n /= 255) <= .04045 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4) }
241
242    function Nn(n) { var t = parseFloat(n); return "%" === n.charAt(n.length - 1) ? Math.round(2.55 * t) : t }
243
244    function En(n) { return "function" == typeof n ? n : function() { return n } }
245
246    function An(n) { return function(t, e, r) { return 2 === arguments.length && "function" == typeof e && (r = e, e = null), Cn(t, e, n, r) } }
247
248    function Cn(n, t, e, r) {
249        function u() { var n, t = l.status; if (!t && Ln(l) || t >= 200 && 300 > t || 304 === t) { try { n = e.call(i, l) } catch (r) { return void a.error.call(i, r) }
250                a.load.call(i, n) } else a.error.call(i, l) } var i = {},
251            a = oa.dispatch("beforesend", "progress", "load", "error"),
252            o = {},
253            l = new XMLHttpRequest,
254            c = null; return !this.XDomainRequest || "withCredentials" in l || !/^(http(s)?:)?\/\//.test(n) || (l = new XDomainRequest), "onload" in l ? l.onload = l.onerror = u : l.onreadystatechange = function() { l.readyState > 3 && u() }, l.onprogress = function(n) { var t = oa.event;
255            oa.event = n; try { a.progress.call(i, l) } finally { oa.event = t } }, i.header = function(n, t) { return n = (n + "").toLowerCase(), arguments.length < 2 ? o[n] : (null == t ? delete o[n] : o[n] = t + "", i) }, i.mimeType = function(n) { return arguments.length ? (t = null == n ? null : n + "", i) : t }, i.responseType = function(n) { return arguments.length ? (c = n, i) : c }, i.response = function(n) { return e = n, i }, ["get", "post"].forEach(function(n) { i[n] = function() { return i.send.apply(i, [n].concat(ca(arguments))) } }), i.send = function(e, r, u) { if (2 === arguments.length && "function" == typeof r && (u = r, r = null), l.open(e, n, !0), null == t || "accept" in o || (o.accept = t + ",*/*"), l.setRequestHeader)
256                for (var s in o) l.setRequestHeader(s, o[s]); return null != t && l.overrideMimeType && l.overrideMimeType(t), null != c && (l.responseType = c), null != u && i.on("error", u).on("load", function(n) { u(null, n) }), a.beforesend.call(i, l), l.send(null == r ? null : r), i }, i.abort = function() { return l.abort(), i }, oa.rebind(i, a, "on"), null == r ? i : i.get(zn(r)) }
257
258    function zn(n) { return 1 === n.length ? function(t, e) { n(null == t ? e : null) } : n }
259
260    function Ln(n) { var t = n.responseType; return t && "text" !== t ? n.response : n.responseText }
261
262    function qn(n, t, e) { var r = arguments.length;
263        2 > r && (t = 0), 3 > r && (e = Date.now()); var u = e + t,
264            i = { c: n, t: u, n: null }; return ao ? ao.n = i : io = i, ao = i, oo || (lo = clearTimeout(lo), oo = 1, co(Tn)), i }
265
266    function Tn() { var n = Rn(),
267            t = Dn() - n;
268        t > 24 ? (isFinite(t) && (clearTimeout(lo), lo = setTimeout(Tn, t)), oo = 0) : (oo = 1, co(Tn)) }
269
270    function Rn() { for (var n = Date.now(), t = io; t;) n >= t.t && t.c(n - t.t) && (t.c = null), t = t.n; return n }
271
272    function Dn() { for (var n, t = io, e = 1 / 0; t;) t.c ? (t.t < e && (e = t.t), t = (n = t).n) : t = n ? n.n = t.n : io = t.n; return ao = n, e }
273
274    function Pn(n, t) { return t - (n ? Math.ceil(Math.log(n) / Math.LN10) : 1) }
275
276    function Un(n, t) { var e = Math.pow(10, 3 * Ma(8 - t)); return { scale: t > 8 ? function(n) { return n / e } : function(n) { return n * e }, symbol: n } }
277
278    function jn(n) { var t = n.decimal,
279            e = n.thousands,
280            r = n.grouping,
281            u = n.currency,
282            i = r && e ? function(n, t) { for (var u = n.length, i = [], a = 0, o = r[0], l = 0; u > 0 && o > 0 && (l + o + 1 > t && (o = Math.max(1, t - l)), i.push(n.substring(u -= o, u + o)), !((l += o + 1) > t));) o = r[a = (a + 1) % r.length]; return i.reverse().join(e) } : y; return function(n) { var e = fo.exec(n),
283                r = e[1] || " ",
284                a = e[2] || ">",
285                o = e[3] || "-",
286                l = e[4] || "",
287                c = e[5],
288                s = +e[6],
289                f = e[7],
290                h = e[8],
291                g = e[9],
292                p = 1,
293                v = "",
294                d = "",
295                m = !1,
296                y = !0; switch (h && (h = +h.substring(1)), (c || "0" === r && "=" === a) && (c = r = "0", a = "="), g) {
297                case "n":
298                    f = !0, g = "g"; break;
299                case "%":
300                    p = 100, d = "%", g = "f"; break;
301                case "p":
302                    p = 100, d = "%", g = "r"; break;
303                case "b":
304                case "o":
305                case "x":
306                case "X":
307                    "#" === l && (v = "0" + g.toLowerCase());
308                case "c":
309                    y = !1;
310                case "d":
311                    m = !0, h = 0; break;
312                case "s":
313                    p = -1, g = "r" } "$" === l && (v = u[0], d = u[1]), "r" != g || h || (g = "g"), null != h && ("g" == g ? h = Math.max(1, Math.min(21, h)) : ("e" == g || "f" == g) && (h = Math.max(0, Math.min(20, h)))), g = ho.get(g) || Fn; var M = c && f; return function(n) { var e = d; if (m && n % 1) return ""; var u = 0 > n || 0 === n && 0 > 1 / n ? (n = -n, "-") : "-" === o ? "" : o; if (0 > p) { var l = oa.formatPrefix(n, h);
314                    n = l.scale(n), e = l.symbol + d } else n *= p;
315                n = g(n, h); var x, b, _ = n.lastIndexOf("."); if (0 > _) { var w = y ? n.lastIndexOf("e") : -1;
316                    0 > w ? (x = n, b = "") : (x = n.substring(0, w), b = n.substring(w)) } else x = n.substring(0, _), b = t + n.substring(_ + 1);!c && f && (x = i(x, 1 / 0)); var S = v.length + x.length + b.length + (M ? 0 : u.length),
317                    k = s > S ? new Array(S = s - S + 1).join(r) : ""; return M && (x = i(k + x, k.length ? s - b.length : 1 / 0)), u += v, n = x + b, ("<" === a ? u + n + k : ">" === a ? k + u + n : "^" === a ? k.substring(0, S >>= 1) + u + n + k.substring(S) : u + (M ? n : k + n)) + e } } }
318
319    function Fn(n) { return n + "" }
320
321    function Hn() { this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]) }
322
323    function On(n, t, e) {
324        function r(t) { var e = n(t),
325                r = i(e, 1); return r - t > t - e ? e : r }
326
327        function u(e) { return t(e = n(new po(e - 1)), 1), e }
328
329        function i(n, e) { return t(n = new po(+n), e), n }
330
331        function a(n, r, i) { var a = u(n),
332                o = []; if (i > 1)
333                for (; r > a;) e(a) % i || o.push(new Date(+a)), t(a, 1);
334            else
335                for (; r > a;) o.push(new Date(+a)), t(a, 1); return o }
336
337        function o(n, t, e) { try { po = Hn; var r = new Hn; return r._ = n, a(r, t, e) } finally { po = Date } }
338        n.floor = n, n.round = r, n.ceil = u, n.offset = i, n.range = a; var l = n.utc = In(n); return l.floor = l, l.round = In(r), l.ceil = In(u), l.offset = In(i), l.range = o, n }
339
340    function In(n) { return function(t, e) { try { po = Hn; var r = new Hn; return r._ = t, n(r, e)._ } finally { po = Date } } }
341
342    function Yn(n) {
343        function t(n) {
344            function t(t) { for (var e, u, i, a = [], o = -1, l = 0; ++o < r;) 37 === n.charCodeAt(o) && (a.push(n.slice(l, o)), null != (u = mo[e = n.charAt(++o)]) && (e = n.charAt(++o)), (i = A[e]) && (e = i(t, null == u ? "e" === e ? " " : "0" : u)), a.push(e), l = o + 1); return a.push(n.slice(l, o)), a.join("") } var r = n.length; return t.parse = function(t) { var r = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null },
345                    u = e(r, n, t, 0); if (u != t.length) return null; "p" in r && (r.H = r.H % 12 + 12 * r.p); var i = null != r.Z && po !== Hn,
346                    a = new(i ? Hn : po); return "j" in r ? a.setFullYear(r.y, 0, r.j) : "W" in r || "U" in r ? ("w" in r || (r.w = "W" in r ? 1 : 0), a.setFullYear(r.y, 0, 1), a.setFullYear(r.y, 0, "W" in r ? (r.w + 6) % 7 + 7 * r.W - (a.getDay() + 5) % 7 : r.w + 7 * r.U - (a.getDay() + 6) % 7)) : a.setFullYear(r.y, r.m, r.d), a.setHours(r.H + (r.Z / 100 | 0), r.M + r.Z % 100, r.S, r.L), i ? a._ : a }, t.toString = function() { return n }, t }
347
348        function e(n, t, e, r) { for (var u, i, a, o = 0, l = t.length, c = e.length; l > o;) { if (r >= c) return -1; if (u = t.charCodeAt(o++), 37 === u) { if (a = t.charAt(o++), i = C[a in mo ? t.charAt(o++) : a], !i || (r = i(n, e, r)) < 0) return -1 } else if (u != e.charCodeAt(r++)) return -1 } return r }
349
350        function r(n, t, e) { _.lastIndex = 0; var r = _.exec(t.slice(e)); return r ? (n.w = w.get(r[0].toLowerCase()), e + r[0].length) : -1 }
351
352        function u(n, t, e) { x.lastIndex = 0; var r = x.exec(t.slice(e)); return r ? (n.w = b.get(r[0].toLowerCase()), e + r[0].length) : -1 }
353
354        function i(n, t, e) { N.lastIndex = 0; var r = N.exec(t.slice(e)); return r ? (n.m = E.get(r[0].toLowerCase()), e + r[0].length) : -1 }
355
356        function a(n, t, e) { S.lastIndex = 0; var r = S.exec(t.slice(e)); return r ? (n.m = k.get(r[0].toLowerCase()), e + r[0].length) : -1 }
357
358        function o(n, t, r) { return e(n, A.c.toString(), t, r) }
359
360        function l(n, t, r) { return e(n, A.x.toString(), t, r) }
361
362        function c(n, t, r) { return e(n, A.X.toString(), t, r) }
363
364        function s(n, t, e) { var r = M.get(t.slice(e, e += 2).toLowerCase()); return null == r ? -1 : (n.p = r, e) } var f = n.dateTime,
365            h = n.date,
366            g = n.time,
367            p = n.periods,
368            v = n.days,
369            d = n.shortDays,
370            m = n.months,
371            y = n.shortMonths;
372        t.utc = function(n) {
373            function e(n) { try { po = Hn; var t = new po; return t._ = n, r(t) } finally { po = Date } } var r = t(n); return e.parse = function(n) { try { po = Hn; var t = r.parse(n); return t && t._ } finally { po = Date } }, e.toString = r.toString, e }, t.multi = t.utc.multi = ct; var M = oa.map(),
374            x = Vn(v),
375            b = Xn(v),
376            _ = Vn(d),
377            w = Xn(d),
378            S = Vn(m),
379            k = Xn(m),
380            N = Vn(y),
381            E = Xn(y);
382        p.forEach(function(n, t) { M.set(n.toLowerCase(), t) }); var A = { a: function(n) { return d[n.getDay()] }, A: function(n) { return v[n.getDay()] }, b: function(n) { return y[n.getMonth()] }, B: function(n) { return m[n.getMonth()] }, c: t(f), d: function(n, t) { return Zn(n.getDate(), t, 2) }, e: function(n, t) { return Zn(n.getDate(), t, 2) }, H: function(n, t) { return Zn(n.getHours(), t, 2) }, I: function(n, t) { return Zn(n.getHours() % 12 || 12, t, 2) }, j: function(n, t) { return Zn(1 + go.dayOfYear(n), t, 3) }, L: function(n, t) { return Zn(n.getMilliseconds(), t, 3) }, m: function(n, t) { return Zn(n.getMonth() + 1, t, 2) }, M: function(n, t) { return Zn(n.getMinutes(), t, 2) }, p: function(n) { return p[+(n.getHours() >= 12)] }, S: function(n, t) { return Zn(n.getSeconds(), t, 2) }, U: function(n, t) { return Zn(go.sundayOfYear(n), t, 2) }, w: function(n) { return n.getDay() }, W: function(n, t) { return Zn(go.mondayOfYear(n), t, 2) }, x: t(h), X: t(g), y: function(n, t) { return Zn(n.getFullYear() % 100, t, 2) }, Y: function(n, t) { return Zn(n.getFullYear() % 1e4, t, 4) }, Z: ot, "%": function() { return "%" } },
383            C = { a: r, A: u, b: i, B: a, c: o, d: tt, e: tt, H: rt, I: rt, j: et, L: at, m: nt, M: ut, p: s, S: it, U: Bn, w: $n, W: Wn, x: l, X: c, y: Gn, Y: Jn, Z: Kn, "%": lt }; return t }
384
385    function Zn(n, t, e) { var r = 0 > n ? "-" : "",
386            u = (r ? -n : n) + "",
387            i = u.length; return r + (e > i ? new Array(e - i + 1).join(t) + u : u) }
388
389    function Vn(n) { return new RegExp("^(?:" + n.map(oa.requote).join("|") + ")", "i") }
390
391    function Xn(n) { for (var t = new c, e = -1, r = n.length; ++e < r;) t.set(n[e].toLowerCase(), e); return t }
392
393    function $n(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 1)); return r ? (n.w = +r[0], e + r[0].length) : -1 }
394
395    function Bn(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e)); return r ? (n.U = +r[0], e + r[0].length) : -1 }
396
397    function Wn(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e)); return r ? (n.W = +r[0], e + r[0].length) : -1 }
398
399    function Jn(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 4)); return r ? (n.y = +r[0], e + r[0].length) : -1 }
400
401    function Gn(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.y = Qn(+r[0]), e + r[0].length) : -1 }
402
403    function Kn(n, t, e) { return /^[+-]\d{4}$/.test(t = t.slice(e, e + 5)) ? (n.Z = -t, e + 5) : -1 }
404
405    function Qn(n) { return n + (n > 68 ? 1900 : 2e3) }
406
407    function nt(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.m = r[0] - 1, e + r[0].length) : -1 }
408
409    function tt(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.d = +r[0], e + r[0].length) : -1 }
410
411    function et(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 3)); return r ? (n.j = +r[0], e + r[0].length) : -1 }
412
413    function rt(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.H = +r[0], e + r[0].length) : -1 }
414
415    function ut(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.M = +r[0], e + r[0].length) : -1 }
416
417    function it(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.S = +r[0], e + r[0].length) : -1 }
418
419    function at(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 3)); return r ? (n.L = +r[0], e + r[0].length) : -1 }
420
421    function ot(n) { var t = n.getTimezoneOffset(),
422            e = t > 0 ? "-" : "+",
423            r = Ma(t) / 60 | 0,
424            u = Ma(t) % 60; return e + Zn(r, "0", 2) + Zn(u, "0", 2) }
425
426    function lt(n, t, e) { Mo.lastIndex = 0; var r = Mo.exec(t.slice(e, e + 1)); return r ? e + r[0].length : -1 }
427
428    function ct(n) { for (var t = n.length, e = -1; ++e < t;) n[e][0] = this(n[e][0]); return function(t) { for (var e = 0, r = n[e]; !r[1](t);) r = n[++e]; return r[0](t) } }
429
430    function st() {}
431
432    function ft(n, t, e) { var r = e.s = n + t,
433            u = r - n,
434            i = r - u;
435        e.t = n - i + (t - u) }
436
437    function ht(n, t) { n && wo.hasOwnProperty(n.type) && wo[n.type](n, t) }
438
439    function gt(n, t, e) { var r, u = -1,
440            i = n.length - e; for (t.lineStart(); ++u < i;) r = n[u], t.point(r[0], r[1], r[2]);
441        t.lineEnd() }
442
443    function pt(n, t) { var e = -1,
444            r = n.length; for (t.polygonStart(); ++e < r;) gt(n[e], t, 1);
445        t.polygonEnd() }
446
447    function vt() {
448        function n(n, t) { n *= Ia, t = t * Ia / 2 + ja / 4; var e = n - r,
449                a = e >= 0 ? 1 : -1,
450                o = a * e,
451                l = Math.cos(t),
452                c = Math.sin(t),
453                s = i * c,
454                f = u * l + s * Math.cos(o),
455                h = s * a * Math.sin(o);
456            ko.add(Math.atan2(h, f)), r = n, u = l, i = c } var t, e, r, u, i;
457        No.point = function(a, o) { No.point = n, r = (t = a) * Ia, u = Math.cos(o = (e = o) * Ia / 2 + ja / 4), i = Math.sin(o) }, No.lineEnd = function() { n(t, e) } }
458
459    function dt(n) { var t = n[0],
460            e = n[1],
461            r = Math.cos(e); return [r * Math.cos(t), r * Math.sin(t), Math.sin(e)] }
462
463    function mt(n, t) { return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] }
464
465    function yt(n, t) { return [n[1] * t[2] - n[2] * t[1], n[2] * t[0] - n[0] * t[2], n[0] * t[1] - n[1] * t[0]] }
466
467    function Mt(n, t) { n[0] += t[0], n[1] += t[1], n[2] += t[2] }
468
469    function xt(n, t) { return [n[0] * t, n[1] * t, n[2] * t] }
470
471    function bt(n) { var t = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]);
472        n[0] /= t, n[1] /= t, n[2] /= t }
473
474    function _t(n) { return [Math.atan2(n[1], n[0]), tn(n[2])] }
475
476    function wt(n, t) { return Ma(n[0] - t[0]) < Pa && Ma(n[1] - t[1]) < Pa }
477
478    function St(n, t) { n *= Ia; var e = Math.cos(t *= Ia);
479        kt(e * Math.cos(n), e * Math.sin(n), Math.sin(t)) }
480
481    function kt(n, t, e) {++Eo, Co += (n - Co) / Eo, zo += (t - zo) / Eo, Lo += (e - Lo) / Eo }
482
483    function Nt() {
484        function n(n, u) { n *= Ia; var i = Math.cos(u *= Ia),
485                a = i * Math.cos(n),
486                o = i * Math.sin(n),
487                l = Math.sin(u),
488                c = Math.atan2(Math.sqrt((c = e * l - r * o) * c + (c = r * a - t * l) * c + (c = t * o - e * a) * c), t * a + e * o + r * l);
489            Ao += c, qo += c * (t + (t = a)), To += c * (e + (e = o)), Ro += c * (r + (r = l)), kt(t, e, r) } var t, e, r;
490        jo.point = function(u, i) { u *= Ia; var a = Math.cos(i *= Ia);
491            t = a * Math.cos(u), e = a * Math.sin(u), r = Math.sin(i), jo.point = n, kt(t, e, r) } }
492
493    function Et() { jo.point = St }
494
495    function At() {
496        function n(n, t) { n *= Ia; var e = Math.cos(t *= Ia),
497                a = e * Math.cos(n),
498                o = e * Math.sin(n),
499                l = Math.sin(t),
500                c = u * l - i * o,
501                s = i * a - r * l,
502                f = r * o - u * a,
503                h = Math.sqrt(c * c + s * s + f * f),
504                g = r * a + u * o + i * l,
505                p = h && -nn(g) / h,
506                v = Math.atan2(h, g);
507            Do += p * c, Po += p * s, Uo += p * f, Ao += v, qo += v * (r + (r = a)), To += v * (u + (u = o)), Ro += v * (i + (i = l)), kt(r, u, i) } var t, e, r, u, i;
508        jo.point = function(a, o) { t = a, e = o, jo.point = n, a *= Ia; var l = Math.cos(o *= Ia);
509            r = l * Math.cos(a), u = l * Math.sin(a), i = Math.sin(o), kt(r, u, i) }, jo.lineEnd = function() { n(t, e), jo.lineEnd = Et, jo.point = St } }
510
511    function Ct(n, t) {
512        function e(e, r) { return e = n(e, r), t(e[0], e[1]) } return n.invert && t.invert && (e.invert = function(e, r) { return e = t.invert(e, r), e && n.invert(e[0], e[1]) }), e }
513
514    function zt() { return !0 }
515
516    function Lt(n, t, e, r, u) { var i = [],
517            a = []; if (n.forEach(function(n) { if (!((t = n.length - 1) <= 0)) { var t, e = n[0],
518                        r = n[t]; if (wt(e, r)) { u.lineStart(); for (var o = 0; t > o; ++o) u.point((e = n[o])[0], e[1]); return void u.lineEnd() } var l = new Tt(e, n, null, !0),
519                        c = new Tt(e, null, l, !1);
520                    l.o = c, i.push(l), a.push(c), l = new Tt(r, n, null, !1), c = new Tt(r, null, l, !0), l.o = c, i.push(l), a.push(c) } }), a.sort(t), qt(i), qt(a), i.length) { for (var o = 0, l = e, c = a.length; c > o; ++o) a[o].e = l = !l; for (var s, f, h = i[0];;) { for (var g = h, p = !0; g.v;)
521                    if ((g = g.n) === h) return;
522                s = g.z, u.lineStart();
523                do { if (g.v = g.o.v = !0, g.e) { if (p)
524                            for (var o = 0, c = s.length; c > o; ++o) u.point((f = s[o])[0], f[1]);
525                        else r(g.x, g.n.x, 1, u);
526                        g = g.n } else { if (p) { s = g.p.z; for (var o = s.length - 1; o >= 0; --o) u.point((f = s[o])[0], f[1]) } else r(g.x, g.p.x, -1, u);
527                        g = g.p }
528                    g = g.o, s = g.z, p = !p } while (!g.v);
529                u.lineEnd() } } }
530
531    function qt(n) { if (t = n.length) { for (var t, e, r = 0, u = n[0]; ++r < t;) u.n = e = n[r], e.p = u, u = e;
532            u.n = e = n[0], e.p = u } }
533
534    function Tt(n, t, e, r) { this.x = n, this.z = t, this.o = e, this.e = r, this.v = !1, this.n = this.p = null }
535
536    function Rt(n, t, e, r) { return function(u, i) {
537            function a(t, e) { var r = u(t, e);
538                n(t = r[0], e = r[1]) && i.point(t, e) }
539
540            function o(n, t) { var e = u(n, t);
541                d.point(e[0], e[1]) }
542
543            function l() { y.point = o, d.lineStart() }
544
545            function c() { y.point = a, d.lineEnd() }
546
547            function s(n, t) { v.push([n, t]); var e = u(n, t);
548                x.point(e[0], e[1]) }
549
550            function f() { x.lineStart(), v = [] }
551
552            function h() { s(v[0][0], v[0][1]), x.lineEnd(); var n, t = x.clean(),
553                    e = M.buffer(),
554                    r = e.length; if (v.pop(), p.push(v), v = null, r)
555                    if (1 & t) { n = e[0]; var u, r = n.length - 1,
556                            a = -1; if (r > 0) { for (b || (i.polygonStart(), b = !0), i.lineStart(); ++a < r;) i.point((u = n[a])[0], u[1]);
557                            i.lineEnd() } } else r > 1 && 2 & t && e.push(e.pop().concat(e.shift())), g.push(e.filter(Dt)) } var g, p, v, d = t(i),
558                m = u.invert(r[0], r[1]),
559                y = { point: a, lineStart: l, lineEnd: c, polygonStart: function() { y.point = s, y.lineStart = f, y.lineEnd = h, g = [], p = [] }, polygonEnd: function() { y.point = a, y.lineStart = l, y.lineEnd = c, g = oa.merge(g); var n = Ot(m, p);
560                        g.length ? (b || (i.polygonStart(), b = !0), Lt(g, Ut, n, e, i)) : n && (b || (i.polygonStart(), b = !0), i.lineStart(), e(null, null, 1, i), i.lineEnd()), b && (i.polygonEnd(), b = !1), g = p = null }, sphere: function() { i.polygonStart(), i.lineStart(), e(null, null, 1, i), i.lineEnd(), i.polygonEnd() } },
561                M = Pt(),
562                x = t(M),
563                b = !1; return y } }
564
565    function Dt(n) { return n.length > 1 }
566
567    function Pt() { var n, t = []; return { lineStart: function() { t.push(n = []) }, point: function(t, e) { n.push([t, e]) }, lineEnd: b, buffer: function() { var e = t; return t = [], n = null, e }, rejoin: function() { t.length > 1 && t.push(t.pop().concat(t.shift())) } } }
568
569    function Ut(n, t) { return ((n = n.x)[0] < 0 ? n[1] - Oa - Pa : Oa - n[1]) - ((t = t.x)[0] < 0 ? t[1] - Oa - Pa : Oa - t[1]) }
570
571    function jt(n) { var t, e = NaN,
572            r = NaN,
573            u = NaN; return { lineStart: function() { n.lineStart(), t = 1 }, point: function(i, a) { var o = i > 0 ? ja : -ja,
574                    l = Ma(i - e);
575                Ma(l - ja) < Pa ? (n.point(e, r = (r + a) / 2 > 0 ? Oa : -Oa), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(o, r), n.point(i, r), t = 0) : u !== o && l >= ja && (Ma(e - u) < Pa && (e -= u * Pa), Ma(i - o) < Pa && (i -= o * Pa), r = Ft(e, r, i, a), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(o, r), t = 0), n.point(e = i, r = a), u = o }, lineEnd: function() { n.lineEnd(), e = r = NaN }, clean: function() { return 2 - t } } }
576
577    function Ft(n, t, e, r) { var u, i, a = Math.sin(n - e); return Ma(a) > Pa ? Math.atan((Math.sin(t) * (i = Math.cos(r)) * Math.sin(e) - Math.sin(r) * (u = Math.cos(t)) * Math.sin(n)) / (u * i * a)) : (t + r) / 2 }
578
579    function Ht(n, t, e, r) { var u; if (null == n) u = e * Oa, r.point(-ja, u), r.point(0, u), r.point(ja, u), r.point(ja, 0), r.point(ja, -u), r.point(0, -u), r.point(-ja, -u), r.point(-ja, 0), r.point(-ja, u);
580        else if (Ma(n[0] - t[0]) > Pa) { var i = n[0] < t[0] ? ja : -ja;
581            u = e * i / 2, r.point(-i, u), r.point(0, u), r.point(i, u) } else r.point(t[0], t[1]) }
582
583    function Ot(n, t) { var e = n[0],
584            r = n[1],
585            u = [Math.sin(e), -Math.cos(e), 0],
586            i = 0,
587            a = 0;
588        ko.reset(); for (var o = 0, l = t.length; l > o; ++o) { var c = t[o],
589                s = c.length; if (s)
590                for (var f = c[0], h = f[0], g = f[1] / 2 + ja / 4, p = Math.sin(g), v = Math.cos(g), d = 1;;) { d === s && (d = 0), n = c[d]; var m = n[0],
591                        y = n[1] / 2 + ja / 4,
592                        M = Math.sin(y),
593                        x = Math.cos(y),
594                        b = m - h,
595                        _ = b >= 0 ? 1 : -1,
596                        w = _ * b,
597                        S = w > ja,
598                        k = p * M; if (ko.add(Math.atan2(k * _ * Math.sin(w), v * x + k * Math.cos(w))), i += S ? b + _ * Fa : b, S ^ h >= e ^ m >= e) { var N = yt(dt(f), dt(n));
599                        bt(N); var E = yt(u, N);
600                        bt(E); var A = (S ^ b >= 0 ? -1 : 1) * tn(E[2]);
601                        (r > A || r === A && (N[0] || N[1])) && (a += S ^ b >= 0 ? 1 : -1) } if (!d++) break;
602                    h = m, p = M, v = x, f = n } } return (-Pa > i || Pa > i && 0 > ko) ^ 1 & a }
603
604    function It(n) {
605        function t(n, t) { return Math.cos(n) * Math.cos(t) > i }
606
607        function e(n) { var e, i, l, c, s; return { lineStart: function() { c = l = !1, s = 1 }, point: function(f, h) { var g, p = [f, h],
608                        v = t(f, h),
609                        d = a ? v ? 0 : u(f, h) : v ? u(f + (0 > f ? ja : -ja), h) : 0; if (!e && (c = l = v) && n.lineStart(), v !== l && (g = r(e, p), (wt(e, g) || wt(p, g)) && (p[0] += Pa, p[1] += Pa, v = t(p[0], p[1]))), v !== l) s = 0, v ? (n.lineStart(), g = r(p, e), n.point(g[0], g[1])) : (g = r(e, p), n.point(g[0], g[1]), n.lineEnd()), e = g;
610                    else if (o && e && a ^ v) { var m;
611                        d & i || !(m = r(p, e, !0)) || (s = 0, a ? (n.lineStart(), n.point(m[0][0], m[0][1]), n.point(m[1][0], m[1][1]), n.lineEnd()) : (n.point(m[1][0], m[1][1]), n.lineEnd(), n.lineStart(), n.point(m[0][0], m[0][1]))) }!v || e && wt(e, p) || n.point(p[0], p[1]), e = p, l = v, i = d }, lineEnd: function() { l && n.lineEnd(), e = null }, clean: function() { return s | (c && l) << 1 } } }
612
613        function r(n, t, e) { var r = dt(n),
614                u = dt(t),
615                a = [1, 0, 0],
616                o = yt(r, u),
617                l = mt(o, o),
618                c = o[0],
619                s = l - c * c; if (!s) return !e && n; var f = i * l / s,
620                h = -i * c / s,
621                g = yt(a, o),
622                p = xt(a, f),
623                v = xt(o, h);
624            Mt(p, v); var d = g,
625                m = mt(p, d),
626                y = mt(d, d),
627                M = m * m - y * (mt(p, p) - 1); if (!(0 > M)) { var x = Math.sqrt(M),
628                    b = xt(d, (-m - x) / y); if (Mt(b, p), b = _t(b), !e) return b; var _, w = n[0],
629                    S = t[0],
630                    k = n[1],
631                    N = t[1];
632                w > S && (_ = w, w = S, S = _); var E = S - w,
633                    A = Ma(E - ja) < Pa,
634                    C = A || Pa > E; if (!A && k > N && (_ = k, k = N, N = _), C ? A ? k + N > 0 ^ b[1] < (Ma(b[0] - w) < Pa ? k : N) : k <= b[1] && b[1] <= N : E > ja ^ (w <= b[0] && b[0] <= S)) { var z = xt(d, (-m + x) / y); return Mt(z, p), [b, _t(z)] } } }
635
636        function u(t, e) { var r = a ? n : ja - n,
637                u = 0; return -r > t ? u |= 1 : t > r && (u |= 2), -r > e ? u |= 4 : e > r && (u |= 8), u } var i = Math.cos(n),
638            a = i > 0,
639            o = Ma(i) > Pa,
640            l = ve(n, 6 * Ia); return Rt(t, e, l, a ? [0, -n] : [-ja, n - ja]) }
641
642    function Yt(n, t, e, r) { return function(u) { var i, a = u.a,
643                o = u.b,
644                l = a.x,
645                c = a.y,
646                s = o.x,
647                f = o.y,
648                h = 0,
649                g = 1,
650                p = s - l,
651                v = f - c; if (i = n - l, p || !(i > 0)) { if (i /= p, 0 > p) { if (h > i) return;
652                    g > i && (g = i) } else if (p > 0) { if (i > g) return;
653                    i > h && (h = i) } if (i = e - l, p || !(0 > i)) { if (i /= p, 0 > p) { if (i > g) return;
654                        i > h && (h = i) } else if (p > 0) { if (h > i) return;
655                        g > i && (g = i) } if (i = t - c, v || !(i > 0)) { if (i /= v, 0 > v) { if (h > i) return;
656                            g > i && (g = i) } else if (v > 0) { if (i > g) return;
657                            i > h && (h = i) } if (i = r - c, v || !(0 > i)) { if (i /= v, 0 > v) { if (i > g) return;
658                                i > h && (h = i) } else if (v > 0) { if (h > i) return;
659                                g > i && (g = i) } return h > 0 && (u.a = { x: l + h * p, y: c + h * v }), 1 > g && (u.b = { x: l + g * p, y: c + g * v }), u } } } } } }
660
661    function Zt(n, t, e, r) {
662        function u(r, u) { return Ma(r[0] - n) < Pa ? u > 0 ? 0 : 3 : Ma(r[0] - e) < Pa ? u > 0 ? 2 : 1 : Ma(r[1] - t) < Pa ? u > 0 ? 1 : 0 : u > 0 ? 3 : 2 }
663
664        function i(n, t) { return a(n.x, t.x) }
665
666        function a(n, t) { var e = u(n, 1),
667                r = u(t, 1); return e !== r ? e - r : 0 === e ? t[1] - n[1] : 1 === e ? n[0] - t[0] : 2 === e ? n[1] - t[1] : t[0] - n[0] } return function(o) {
668            function l(n) { for (var t = 0, e = d.length, r = n[1], u = 0; e > u; ++u)
669                    for (var i, a = 1, o = d[u], l = o.length, c = o[0]; l > a; ++a) i = o[a], c[1] <= r ? i[1] > r && Q(c, i, n) > 0 && ++t : i[1] <= r && Q(c, i, n) < 0 && --t, c = i; return 0 !== t }
670
671            function c(i, o, l, c) { var s = 0,
672                    f = 0; if (null == i || (s = u(i, l)) !== (f = u(o, l)) || a(i, o) < 0 ^ l > 0) { do c.point(0 === s || 3 === s ? n : e, s > 1 ? r : t); while ((s = (s + l + 4) % 4) !== f) } else c.point(o[0], o[1]) }
673
674            function s(u, i) { return u >= n && e >= u && i >= t && r >= i }
675
676            function f(n, t) { s(n, t) && o.point(n, t) }
677
678            function h() { C.point = p, d && d.push(m = []), S = !0, w = !1, b = _ = NaN }
679
680            function g() { v && (p(y, M), x && w && E.rejoin(), v.push(E.buffer())), C.point = f, w && o.lineEnd() }
681
682            function p(n, t) { n = Math.max(-Ho, Math.min(Ho, n)), t = Math.max(-Ho, Math.min(Ho, t)); var e = s(n, t); if (d && m.push([n, t]), S) y = n, M = t, x = e, S = !1, e && (o.lineStart(), o.point(n, t));
683                else if (e && w) o.point(n, t);
684                else { var r = { a: { x: b, y: _ }, b: { x: n, y: t } };
685                    A(r) ? (w || (o.lineStart(), o.point(r.a.x, r.a.y)), o.point(r.b.x, r.b.y), e || o.lineEnd(), k = !1) : e && (o.lineStart(), o.point(n, t), k = !1) }
686                b = n, _ = t, w = e } var v, d, m, y, M, x, b, _, w, S, k, N = o,
687                E = Pt(),
688                A = Yt(n, t, e, r),
689                C = { point: f, lineStart: h, lineEnd: g, polygonStart: function() { o = E, v = [], d = [], k = !0 }, polygonEnd: function() { o = N, v = oa.merge(v); var t = l([n, r]),
690                            e = k && t,
691                            u = v.length;
692                        (e || u) && (o.polygonStart(), e && (o.lineStart(), c(null, null, 1, o), o.lineEnd()), u && Lt(v, i, t, c, o), o.polygonEnd()), v = d = m = null } }; return C } }
693
694    function Vt(n) { var t = 0,
695            e = ja / 3,
696            r = oe(n),
697            u = r(t, e); return u.parallels = function(n) { return arguments.length ? r(t = n[0] * ja / 180, e = n[1] * ja / 180) : [t / ja * 180, e / ja * 180] }, u }
698
699    function Xt(n, t) {
700        function e(n, t) { var e = Math.sqrt(i - 2 * u * Math.sin(t)) / u; return [e * Math.sin(n *= u), a - e * Math.cos(n)] } var r = Math.sin(n),
701            u = (r + Math.sin(t)) / 2,
702            i = 1 + r * (2 * u - r),
703            a = Math.sqrt(i) / u; return e.invert = function(n, t) { var e = a - t; return [Math.atan2(n, e) / u, tn((i - (n * n + e * e) * u * u) / (2 * u))] }, e }
704
705    function $t() {
706        function n(n, t) { Io += u * n - r * t, r = n, u = t } var t, e, r, u;
707        $o.point = function(i, a) { $o.point = n, t = r = i, e = u = a }, $o.lineEnd = function() { n(t, e) } }
708
709    function Bt(n, t) { Yo > n && (Yo = n), n > Vo && (Vo = n), Zo > t && (Zo = t), t > Xo && (Xo = t) }
710
711    function Wt() {
712        function n(n, t) { a.push("M", n, ",", t, i) }
713
714        function t(n, t) { a.push("M", n, ",", t), o.point = e }
715
716        function e(n, t) { a.push("L", n, ",", t) }
717
718        function r() { o.point = n }
719
720        function u() { a.push("Z") } var i = Jt(4.5),
721            a = [],
722            o = { point: n, lineStart: function() { o.point = t }, lineEnd: r, polygonStart: function() { o.lineEnd = u }, polygonEnd: function() { o.lineEnd = r, o.point = n }, pointRadius: function(n) { return i = Jt(n), o }, result: function() { if (a.length) { var n = a.join(""); return a = [], n } } }; return o }
723
724    function Jt(n) { return "m0," + n + "a" + n + "," + n + " 0 1,1 0," + -2 * n + "a" + n + "," + n + " 0 1,1 0," + 2 * n + "z" }
725
726    function Gt(n, t) { Co += n, zo += t, ++Lo }
727
728    function Kt() {
729        function n(n, r) { var u = n - t,
730                i = r - e,
731                a = Math.sqrt(u * u + i * i);
732            qo += a * (t + n) / 2, To += a * (e + r) / 2, Ro += a, Gt(t = n, e = r) } var t, e;
733        Wo.point = function(r, u) { Wo.point = n, Gt(t = r, e = u) } }
734
735    function Qt() { Wo.point = Gt }
736
737    function ne() {
738        function n(n, t) { var e = n - r,
739                i = t - u,
740                a = Math.sqrt(e * e + i * i);
741            qo += a * (r + n) / 2, To += a * (u + t) / 2, Ro += a, a = u * n - r * t, Do += a * (r + n), Po += a * (u + t), Uo += 3 * a, Gt(r = n, u = t) } var t, e, r, u;
742        Wo.point = function(i, a) { Wo.point = n, Gt(t = r = i, e = u = a) }, Wo.lineEnd = function() { n(t, e) } }
743
744    function te(n) {
745        function t(t, e) { n.moveTo(t + a, e), n.arc(t, e, a, 0, Fa) }
746
747        function e(t, e) { n.moveTo(t, e), o.point = r }
748
749        function r(t, e) { n.lineTo(t, e) }
750
751        function u() { o.point = t }
752
753        function i() { n.closePath() } var a = 4.5,
754            o = { point: t, lineStart: function() { o.point = e }, lineEnd: u, polygonStart: function() { o.lineEnd = i }, polygonEnd: function() { o.lineEnd = u, o.point = t }, pointRadius: function(n) { return a = n, o }, result: b }; return o }
755
756    function ee(n) {
757        function t(n) { return (o ? r : e)(n) }
758
759        function e(t) { return ie(t, function(e, r) { e = n(e, r), t.point(e[0], e[1]) }) }
760
761        function r(t) {
762            function e(e, r) { e = n(e, r), t.point(e[0], e[1]) }
763
764            function r() { M = NaN, S.point = i, t.lineStart() }
765
766            function i(e, r) { var i = dt([e, r]),
767                    a = n(e, r);
768                u(M, x, y, b, _, w, M = a[0], x = a[1], y = e, b = i[0], _ = i[1], w = i[2], o, t), t.point(M, x) }
769
770            function a() { S.point = e, t.lineEnd() }
771
772            function l() {
773                r(), S.point = c, S.lineEnd = s
774            }
775
776            function c(n, t) { i(f = n, h = t), g = M, p = x, v = b, d = _, m = w, S.point = i }
777
778            function s() { u(M, x, y, b, _, w, g, p, f, v, d, m, o, t), S.lineEnd = a, a() }
779            var f, h, g, p, v, d, m, y, M, x, b, _, w, S = { point: e, lineStart: r, lineEnd: a, polygonStart: function() { t.polygonStart(), S.lineStart = l }, polygonEnd: function() { t.polygonEnd(), S.lineStart = r } };
780            return S
781        }
782
783        function u(t, e, r, o, l, c, s, f, h, g, p, v, d, m) { var y = s - t,
784                M = f - e,
785                x = y * y + M * M; if (x > 4 * i && d--) { var b = o + g,
786                    _ = l + p,
787                    w = c + v,
788                    S = Math.sqrt(b * b + _ * _ + w * w),
789                    k = Math.asin(w /= S),
790                    N = Ma(Ma(w) - 1) < Pa || Ma(r - h) < Pa ? (r + h) / 2 : Math.atan2(_, b),
791                    E = n(N, k),
792                    A = E[0],
793                    C = E[1],
794                    z = A - t,
795                    L = C - e,
796                    q = M * z - y * L;
797                (q * q / x > i || Ma((y * z + M * L) / x - .5) > .3 || a > o * g + l * p + c * v) && (u(t, e, r, o, l, c, A, C, N, b /= S, _ /= S, w, d, m), m.point(A, C), u(A, C, N, b, _, w, s, f, h, g, p, v, d, m)) } }
798        var i = .5,
799            a = Math.cos(30 * Ia),
800            o = 16;
801        return t.precision = function(n) { return arguments.length ? (o = (i = n * n) > 0 && 16, t) : Math.sqrt(i) }, t
802    }
803
804    function re(n) { var t = ee(function(t, e) { return n([t * Ya, e * Ya]) }); return function(n) { return le(t(n)) } }
805
806    function ue(n) { this.stream = n }
807
808    function ie(n, t) { return { point: t, sphere: function() { n.sphere() }, lineStart: function() { n.lineStart() }, lineEnd: function() { n.lineEnd() }, polygonStart: function() { n.polygonStart() }, polygonEnd: function() { n.polygonEnd() } } }
809
810    function ae(n) { return oe(function() { return n })() }
811
812    function oe(n) {
813        function t(n) { return n = o(n[0] * Ia, n[1] * Ia), [n[0] * h + l, c - n[1] * h] }
814
815        function e(n) { return n = o.invert((n[0] - l) / h, (c - n[1]) / h), n && [n[0] * Ya, n[1] * Ya] }
816
817        function r() { o = Ct(a = fe(m, M, x), i); var n = i(v, d); return l = g - n[0] * h, c = p + n[1] * h, u() }
818
819        function u() { return s && (s.valid = !1, s = null), t } var i, a, o, l, c, s, f = ee(function(n, t) { return n = i(n, t), [n[0] * h + l, c - n[1] * h] }),
820            h = 150,
821            g = 480,
822            p = 250,
823            v = 0,
824            d = 0,
825            m = 0,
826            M = 0,
827            x = 0,
828            b = Fo,
829            _ = y,
830            w = null,
831            S = null; return t.stream = function(n) { return s && (s.valid = !1), s = le(b(a, f(_(n)))), s.valid = !0, s }, t.clipAngle = function(n) { return arguments.length ? (b = null == n ? (w = n, Fo) : It((w = +n) * Ia), u()) : w }, t.clipExtent = function(n) { return arguments.length ? (S = n, _ = n ? Zt(n[0][0], n[0][1], n[1][0], n[1][1]) : y, u()) : S }, t.scale = function(n) { return arguments.length ? (h = +n, r()) : h }, t.translate = function(n) { return arguments.length ? (g = +n[0], p = +n[1], r()) : [g, p] }, t.center = function(n) { return arguments.length ? (v = n[0] % 360 * Ia, d = n[1] % 360 * Ia, r()) : [v * Ya, d * Ya] }, t.rotate = function(n) { return arguments.length ? (m = n[0] % 360 * Ia, M = n[1] % 360 * Ia, x = n.length > 2 ? n[2] % 360 * Ia : 0, r()) : [m * Ya, M * Ya, x * Ya] }, oa.rebind(t, f, "precision"),
832            function() { return i = n.apply(this, arguments), t.invert = i.invert && e, r() } }
833
834    function le(n) { return ie(n, function(t, e) { n.point(t * Ia, e * Ia) }) }
835
836    function ce(n, t) { return [n, t] }
837
838    function se(n, t) { return [n > ja ? n - Fa : -ja > n ? n + Fa : n, t] }
839
840    function fe(n, t, e) { return n ? t || e ? Ct(ge(n), pe(t, e)) : ge(n) : t || e ? pe(t, e) : se }
841
842    function he(n) { return function(t, e) { return t += n, [t > ja ? t - Fa : -ja > t ? t + Fa : t, e] } }
843
844    function ge(n) { var t = he(n); return t.invert = he(-n), t }
845
846    function pe(n, t) {
847        function e(n, t) { var e = Math.cos(t),
848                o = Math.cos(n) * e,
849                l = Math.sin(n) * e,
850                c = Math.sin(t),
851                s = c * r + o * u; return [Math.atan2(l * i - s * a, o * r - c * u), tn(s * i + l * a)] } var r = Math.cos(n),
852            u = Math.sin(n),
853            i = Math.cos(t),
854            a = Math.sin(t); return e.invert = function(n, t) { var e = Math.cos(t),
855                o = Math.cos(n) * e,
856                l = Math.sin(n) * e,
857                c = Math.sin(t),
858                s = c * i - l * a; return [Math.atan2(l * i + c * a, o * r + s * u), tn(s * r - o * u)] }, e }
859
860    function ve(n, t) { var e = Math.cos(n),
861            r = Math.sin(n); return function(u, i, a, o) { var l = a * t;
862            null != u ? (u = de(e, u), i = de(e, i), (a > 0 ? i > u : u > i) && (u += a * Fa)) : (u = n + a * Fa, i = n - .5 * l); for (var c, s = u; a > 0 ? s > i : i > s; s -= l) o.point((c = _t([e, -r * Math.cos(s), -r * Math.sin(s)]))[0], c[1]) } }
863
864    function de(n, t) { var e = dt(t);
865        e[0] -= n, bt(e); var r = nn(-e[1]); return ((-e[2] < 0 ? -r : r) + 2 * Math.PI - Pa) % (2 * Math.PI) }
866
867    function me(n, t, e) { var r = oa.range(n, t - Pa, e).concat(t); return function(n) { return r.map(function(t) { return [n, t] }) } }
868
869    function ye(n, t, e) { var r = oa.range(n, t - Pa, e).concat(t); return function(n) { return r.map(function(t) { return [t, n] }) } }
870
871    function Me(n) { return n.source }
872
873    function xe(n) { return n.target }
874
875    function be(n, t, e, r) { var u = Math.cos(t),
876            i = Math.sin(t),
877            a = Math.cos(r),
878            o = Math.sin(r),
879            l = u * Math.cos(n),
880            c = u * Math.sin(n),
881            s = a * Math.cos(e),
882            f = a * Math.sin(e),
883            h = 2 * Math.asin(Math.sqrt(an(r - t) + u * a * an(e - n))),
884            g = 1 / Math.sin(h),
885            p = h ? function(n) { var t = Math.sin(n *= h) * g,
886                    e = Math.sin(h - n) * g,
887                    r = e * l + t * s,
888                    u = e * c + t * f,
889                    a = e * i + t * o; return [Math.atan2(u, r) * Ya, Math.atan2(a, Math.sqrt(r * r + u * u)) * Ya] } : function() { return [n * Ya, t * Ya] }; return p.distance = h, p }
890
891    function _e() {
892        function n(n, u) { var i = Math.sin(u *= Ia),
893                a = Math.cos(u),
894                o = Ma((n *= Ia) - t),
895                l = Math.cos(o);
896            Jo += Math.atan2(Math.sqrt((o = a * Math.sin(o)) * o + (o = r * i - e * a * l) * o), e * i + r * a * l), t = n, e = i, r = a } var t, e, r;
897        Go.point = function(u, i) { t = u * Ia, e = Math.sin(i *= Ia), r = Math.cos(i), Go.point = n }, Go.lineEnd = function() { Go.point = Go.lineEnd = b } }
898
899    function we(n, t) {
900        function e(t, e) { var r = Math.cos(t),
901                u = Math.cos(e),
902                i = n(r * u); return [i * u * Math.sin(t), i * Math.sin(e)] } return e.invert = function(n, e) { var r = Math.sqrt(n * n + e * e),
903                u = t(r),
904                i = Math.sin(u),
905                a = Math.cos(u); return [Math.atan2(n * i, r * a), Math.asin(r && e * i / r)] }, e }
906
907    function Se(n, t) {
908        function e(n, t) { a > 0 ? -Oa + Pa > t && (t = -Oa + Pa) : t > Oa - Pa && (t = Oa - Pa); var e = a / Math.pow(u(t), i); return [e * Math.sin(i * n), a - e * Math.cos(i * n)] } var r = Math.cos(n),
909            u = function(n) { return Math.tan(ja / 4 + n / 2) },
910            i = n === t ? Math.sin(n) : Math.log(r / Math.cos(t)) / Math.log(u(t) / u(n)),
911            a = r * Math.pow(u(n), i) / i; return i ? (e.invert = function(n, t) { var e = a - t,
912                r = K(i) * Math.sqrt(n * n + e * e); return [Math.atan2(n, e) / i, 2 * Math.atan(Math.pow(a / r, 1 / i)) - Oa] }, e) : Ne }
913
914    function ke(n, t) {
915        function e(n, t) { var e = i - t; return [e * Math.sin(u * n), i - e * Math.cos(u * n)] } var r = Math.cos(n),
916            u = n === t ? Math.sin(n) : (r - Math.cos(t)) / (t - n),
917            i = r / u + n; return Ma(u) < Pa ? ce : (e.invert = function(n, t) { var e = i - t; return [Math.atan2(n, e) / u, i - K(u) * Math.sqrt(n * n + e * e)] }, e) }
918
919    function Ne(n, t) { return [n, Math.log(Math.tan(ja / 4 + t / 2))] }
920
921    function Ee(n) { var t, e = ae(n),
922            r = e.scale,
923            u = e.translate,
924            i = e.clipExtent; return e.scale = function() { var n = r.apply(e, arguments); return n === e ? t ? e.clipExtent(null) : e : n }, e.translate = function() { var n = u.apply(e, arguments); return n === e ? t ? e.clipExtent(null) : e : n }, e.clipExtent = function(n) { var a = i.apply(e, arguments); if (a === e) { if (t = null == n) { var o = ja * r(),
925                        l = u();
926                    i([
927                        [l[0] - o, l[1] - o],
928                        [l[0] + o, l[1] + o]
929                    ]) } } else t && (a = null); return a }, e.clipExtent(null) }
930
931    function Ae(n, t) { return [Math.log(Math.tan(ja / 4 + t / 2)), -n] }
932
933    function Ce(n) { return n[0] }
934
935    function ze(n) { return n[1] }
936
937    function Le(n) { for (var t = n.length, e = [0, 1], r = 2, u = 2; t > u; u++) { for (; r > 1 && Q(n[e[r - 2]], n[e[r - 1]], n[u]) <= 0;) --r;
938            e[r++] = u } return e.slice(0, r) }
939
940    function qe(n, t) { return n[0] - t[0] || n[1] - t[1] }
941
942    function Te(n, t, e) { return (e[0] - t[0]) * (n[1] - t[1]) < (e[1] - t[1]) * (n[0] - t[0]) }
943
944    function Re(n, t, e, r) { var u = n[0],
945            i = e[0],
946            a = t[0] - u,
947            o = r[0] - i,
948            l = n[1],
949            c = e[1],
950            s = t[1] - l,
951            f = r[1] - c,
952            h = (o * (l - c) - f * (u - i)) / (f * a - o * s); return [u + h * a, l + h * s] }
953
954    function De(n) { var t = n[0],
955            e = n[n.length - 1]; return !(t[0] - e[0] || t[1] - e[1]) }
956
957    function Pe() { rr(this), this.edge = this.site = this.circle = null }
958
959    function Ue(n) { var t = cl.pop() || new Pe; return t.site = n, t }
960
961    function je(n) { Be(n), al.remove(n), cl.push(n), rr(n) }
962
963    function Fe(n) { var t = n.circle,
964            e = t.x,
965            r = t.cy,
966            u = { x: e, y: r },
967            i = n.P,
968            a = n.N,
969            o = [n];
970        je(n); for (var l = i; l.circle && Ma(e - l.circle.x) < Pa && Ma(r - l.circle.cy) < Pa;) i = l.P, o.unshift(l), je(l), l = i;
971        o.unshift(l), Be(l); for (var c = a; c.circle && Ma(e - c.circle.x) < Pa && Ma(r - c.circle.cy) < Pa;) a = c.N, o.push(c), je(c), c = a;
972        o.push(c), Be(c); var s, f = o.length; for (s = 1; f > s; ++s) c = o[s], l = o[s - 1], nr(c.edge, l.site, c.site, u);
973        l = o[0], c = o[f - 1], c.edge = Ke(l.site, c.site, null, u), $e(l), $e(c) }
974
975    function He(n) { for (var t, e, r, u, i = n.x, a = n.y, o = al._; o;)
976            if (r = Oe(o, a) - i, r > Pa) o = o.L;
977            else { if (u = i - Ie(o, a), !(u > Pa)) { r > -Pa ? (t = o.P, e = o) : u > -Pa ? (t = o, e = o.N) : t = e = o; break } if (!o.R) { t = o; break }
978                o = o.R }
979        var l = Ue(n); if (al.insert(t, l), t || e) { if (t === e) return Be(t), e = Ue(t.site), al.insert(l, e), l.edge = e.edge = Ke(t.site, l.site), $e(t), void $e(e); if (!e) return void(l.edge = Ke(t.site, l.site));
980            Be(t), Be(e); var c = t.site,
981                s = c.x,
982                f = c.y,
983                h = n.x - s,
984                g = n.y - f,
985                p = e.site,
986                v = p.x - s,
987                d = p.y - f,
988                m = 2 * (h * d - g * v),
989                y = h * h + g * g,
990                M = v * v + d * d,
991                x = { x: (d * y - g * M) / m + s, y: (h * M - v * y) / m + f };
992            nr(e.edge, c, p, x), l.edge = Ke(c, n, null, x), e.edge = Ke(n, p, null, x), $e(t), $e(e) } }
993
994    function Oe(n, t) { var e = n.site,
995            r = e.x,
996            u = e.y,
997            i = u - t; if (!i) return r; var a = n.P; if (!a) return -(1 / 0);
998        e = a.site; var o = e.x,
999            l = e.y,
1000            c = l - t; if (!c) return o; var s = o - r,
1001            f = 1 / i - 1 / c,
1002            h = s / c; return f ? (-h + Math.sqrt(h * h - 2 * f * (s * s / (-2 * c) - l + c / 2 + u - i / 2))) / f + r : (r + o) / 2 }
1003
1004    function Ie(n, t) { var e = n.N; if (e) return Oe(e, t); var r = n.site; return r.y === t ? r.x : 1 / 0 }
1005
1006    function Ye(n) { this.site = n, this.edges = [] }
1007
1008    function Ze(n) { for (var t, e, r, u, i, a, o, l, c, s, f = n[0][0], h = n[1][0], g = n[0][1], p = n[1][1], v = il, d = v.length; d--;)
1009            if (i = v[d], i && i.prepare())
1010                for (o = i.edges, l = o.length, a = 0; l > a;) s = o[a].end(), r = s.x, u = s.y, c = o[++a % l].start(), t = c.x, e = c.y, (Ma(r - t) > Pa || Ma(u - e) > Pa) && (o.splice(a, 0, new tr(Qe(i.site, s, Ma(r - f) < Pa && p - u > Pa ? { x: f, y: Ma(t - f) < Pa ? e : p } : Ma(u - p) < Pa && h - r > Pa ? { x: Ma(e - p) < Pa ? t : h, y: p } : Ma(r - h) < Pa && u - g > Pa ? { x: h, y: Ma(t - h) < Pa ? e : g } : Ma(u - g) < Pa && r - f > Pa ? { x: Ma(e - g) < Pa ? t : f, y: g } : null), i.site, null)), ++l) }
1011
1012    function Ve(n, t) { return t.angle - n.angle }
1013
1014    function Xe() { rr(this), this.x = this.y = this.arc = this.site = this.cy = null }
1015
1016    function $e(n) { var t = n.P,
1017            e = n.N; if (t && e) { var r = t.site,
1018                u = n.site,
1019                i = e.site; if (r !== i) { var a = u.x,
1020                    o = u.y,
1021                    l = r.x - a,
1022                    c = r.y - o,
1023                    s = i.x - a,
1024                    f = i.y - o,
1025                    h = 2 * (l * f - c * s); if (!(h >= -Ua)) { var g = l * l + c * c,
1026                        p = s * s + f * f,
1027                        v = (f * g - c * p) / h,
1028                        d = (l * p - s * g) / h,
1029                        f = d + o,
1030                        m = sl.pop() || new Xe;
1031                    m.arc = n, m.site = u, m.x = v + a, m.y = f + Math.sqrt(v * v + d * d), m.cy = f, n.circle = m; for (var y = null, M = ll._; M;)
1032                        if (m.y < M.y || m.y === M.y && m.x <= M.x) { if (!M.L) { y = M.P; break }
1033                            M = M.L } else { if (!M.R) { y = M; break }
1034                            M = M.R }
1035                    ll.insert(y, m), y || (ol = m) } } } }
1036
1037    function Be(n) { var t = n.circle;
1038        t && (t.P || (ol = t.N), ll.remove(t), sl.push(t), rr(t), n.circle = null) }
1039
1040    function We(n) { for (var t, e = ul, r = Yt(n[0][0], n[0][1], n[1][0], n[1][1]), u = e.length; u--;) t = e[u], (!Je(t, n) || !r(t) || Ma(t.a.x - t.b.x) < Pa && Ma(t.a.y - t.b.y) < Pa) && (t.a = t.b = null, e.splice(u, 1)) }
1041
1042    function Je(n, t) { var e = n.b; if (e) return !0; var r, u, i = n.a,
1043            a = t[0][0],
1044            o = t[1][0],
1045            l = t[0][1],
1046            c = t[1][1],
1047            s = n.l,
1048            f = n.r,
1049            h = s.x,
1050            g = s.y,
1051            p = f.x,
1052            v = f.y,
1053            d = (h + p) / 2,
1054            m = (g + v) / 2; if (v === g) { if (a > d || d >= o) return; if (h > p) { if (i) { if (i.y >= c) return } else i = { x: d, y: l };
1055                e = { x: d, y: c } } else { if (i) { if (i.y < l) return } else i = { x: d, y: c };
1056                e = { x: d, y: l } } } else if (r = (h - p) / (v - g), u = m - r * d, -1 > r || r > 1)
1057            if (h > p) { if (i) { if (i.y >= c) return } else i = { x: (l - u) / r, y: l };
1058                e = { x: (c - u) / r, y: c } } else { if (i) { if (i.y < l) return } else i = { x: (c - u) / r, y: c };
1059                e = { x: (l - u) / r, y: l } }
1060        else if (v > g) { if (i) { if (i.x >= o) return } else i = { x: a, y: r * a + u };
1061            e = { x: o, y: r * o + u } } else { if (i) { if (i.x < a) return } else i = { x: o, y: r * o + u };
1062            e = { x: a, y: r * a + u } } return n.a = i, n.b = e, !0 }
1063
1064    function Ge(n, t) { this.l = n, this.r = t, this.a = this.b = null }
1065
1066    function Ke(n, t, e, r) { var u = new Ge(n, t); return ul.push(u), e && nr(u, n, t, e), r && nr(u, t, n, r), il[n.i].edges.push(new tr(u, n, t)), il[t.i].edges.push(new tr(u, t, n)), u }
1067
1068    function Qe(n, t, e) { var r = new Ge(n, null); return r.a = t, r.b = e, ul.push(r), r }
1069
1070    function nr(n, t, e, r) { n.a || n.b ? n.l === e ? n.b = r : n.a = r : (n.a = r, n.l = t, n.r = e) }
1071
1072    function tr(n, t, e) { var r = n.a,
1073            u = n.b;
1074        this.edge = n, this.site = t, this.angle = e ? Math.atan2(e.y - t.y, e.x - t.x) : n.l === t ? Math.atan2(u.x - r.x, r.y - u.y) : Math.atan2(r.x - u.x, u.y - r.y) }
1075
1076    function er() { this._ = null }
1077
1078    function rr(n) { n.U = n.C = n.L = n.R = n.P = n.N = null }
1079
1080    function ur(n, t) { var e = t,
1081            r = t.R,
1082            u = e.U;
1083        u ? u.L === e ? u.L = r : u.R = r : n._ = r, r.U = u, e.U = r, e.R = r.L, e.R && (e.R.U = e), r.L = e }
1084
1085    function ir(n, t) { var e = t,
1086            r = t.L,
1087            u = e.U;
1088        u ? u.L === e ? u.L = r : u.R = r : n._ = r, r.U = u, e.U = r, e.L = r.R, e.L && (e.L.U = e), r.R = e }
1089
1090    function ar(n) { for (; n.L;) n = n.L; return n }
1091
1092    function or(n, t) { var e, r, u, i = n.sort(lr).pop(); for (ul = [], il = new Array(n.length), al = new er, ll = new er;;)
1093            if (u = ol, i && (!u || i.y < u.y || i.y === u.y && i.x < u.x))(i.x !== e || i.y !== r) && (il[i.i] = new Ye(i), He(i), e = i.x, r = i.y), i = n.pop();
1094            else { if (!u) break;
1095                Fe(u.arc) }
1096        t && (We(t), Ze(t)); var a = { cells: il, edges: ul }; return al = ll = ul = il = null, a }
1097
1098    function lr(n, t) { return t.y - n.y || t.x - n.x }
1099
1100    function cr(n, t, e) { return (n.x - e.x) * (t.y - n.y) - (n.x - t.x) * (e.y - n.y) }
1101
1102    function sr(n) { return n.x }
1103
1104    function fr(n) { return n.y }
1105
1106    function hr() { return { leaf: !0, nodes: [], point: null, x: null, y: null } }
1107
1108    function gr(n, t, e, r, u, i) { if (!n(t, e, r, u, i)) { var a = .5 * (e + u),
1109                o = .5 * (r + i),
1110                l = t.nodes;
1111            l[0] && gr(n, l[0], e, r, a, o), l[1] && gr(n, l[1], a, r, u, o), l[2] && gr(n, l[2], e, o, a, i), l[3] && gr(n, l[3], a, o, u, i) } }
1112
1113    function pr(n, t, e, r, u, i, a) { var o, l = 1 / 0; return function c(n, s, f, h, g) { if (!(s > i || f > a || r > h || u > g)) { if (p = n.point) { var p, v = t - n.x,
1114                        d = e - n.y,
1115                        m = v * v + d * d; if (l > m) { var y = Math.sqrt(l = m);
1116                        r = t - y, u = e - y, i = t + y, a = e + y, o = p } } for (var M = n.nodes, x = .5 * (s + h), b = .5 * (f + g), _ = t >= x, w = e >= b, S = w << 1 | _, k = S + 4; k > S; ++S)
1117                    if (n = M[3 & S]) switch (3 & S) {
1118                        case 0:
1119                            c(n, s, f, x, b); break;
1120                        case 1:
1121                            c(n, x, f, h, b); break;
1122                        case 2:
1123                            c(n, s, b, x, g); break;
1124                        case 3:
1125                            c(n, x, b, h, g) } } }(n, r, u, i, a), o }
1126
1127    function vr(n, t) { n = oa.rgb(n), t = oa.rgb(t); var e = n.r,
1128            r = n.g,
1129            u = n.b,
1130            i = t.r - e,
1131            a = t.g - r,
1132            o = t.b - u; return function(n) { return "#" + bn(Math.round(e + i * n)) + bn(Math.round(r + a * n)) + bn(Math.round(u + o * n)) } }
1133
1134    function dr(n, t) { var e, r = {},
1135            u = {}; for (e in n) e in t ? r[e] = Mr(n[e], t[e]) : u[e] = n[e]; for (e in t) e in n || (u[e] = t[e]); return function(n) { for (e in r) u[e] = r[e](n); return u } }
1136
1137    function mr(n, t) { return n = +n, t = +t,
1138            function(e) { return n * (1 - e) + t * e } }
1139
1140    function yr(n, t) { var e, r, u, i = hl.lastIndex = gl.lastIndex = 0,
1141            a = -1,
1142            o = [],
1143            l = []; for (n += "", t += "";
1144            (e = hl.exec(n)) && (r = gl.exec(t));)(u = r.index) > i && (u = t.slice(i, u), o[a] ? o[a] += u : o[++a] = u), (e = e[0]) === (r = r[0]) ? o[a] ? o[a] += r : o[++a] = r : (o[++a] = null, l.push({ i: a, x: mr(e, r) })), i = gl.lastIndex; return i < t.length && (u = t.slice(i), o[a] ? o[a] += u : o[++a] = u), o.length < 2 ? l[0] ? (t = l[0].x, function(n) { return t(n) + "" }) : function() { return t } : (t = l.length, function(n) { for (var e, r = 0; t > r; ++r) o[(e = l[r]).i] = e.x(n); return o.join("") }) }
1145
1146    function Mr(n, t) { for (var e, r = oa.interpolators.length; --r >= 0 && !(e = oa.interpolators[r](n, t));); return e }
1147
1148    function xr(n, t) { var e, r = [],
1149            u = [],
1150            i = n.length,
1151            a = t.length,
1152            o = Math.min(n.length, t.length); for (e = 0; o > e; ++e) r.push(Mr(n[e], t[e])); for (; i > e; ++e) u[e] = n[e]; for (; a > e; ++e) u[e] = t[e]; return function(n) { for (e = 0; o > e; ++e) u[e] = r[e](n); return u } }
1153
1154    function br(n) { return function(t) { return 0 >= t ? 0 : t >= 1 ? 1 : n(t) } }
1155
1156    function _r(n) { return function(t) { return 1 - n(1 - t) } }
1157
1158    function wr(n) { return function(t) { return .5 * (.5 > t ? n(2 * t) : 2 - n(2 - 2 * t)) } }
1159
1160    function Sr(n) { return n * n }
1161
1162    function kr(n) { return n * n * n }
1163
1164    function Nr(n) { if (0 >= n) return 0; if (n >= 1) return 1; var t = n * n,
1165            e = t * n; return 4 * (.5 > n ? e : 3 * (n - t) + e - .75) }
1166
1167    function Er(n) { return function(t) { return Math.pow(t, n) } }
1168
1169    function Ar(n) { return 1 - Math.cos(n * Oa) }
1170
1171    function Cr(n) { return Math.pow(2, 10 * (n - 1)) }
1172
1173    function zr(n) { return 1 - Math.sqrt(1 - n * n) }
1174
1175    function Lr(n, t) { var e; return arguments.length < 2 && (t = .45), arguments.length ? e = t / Fa * Math.asin(1 / n) : (n = 1, e = t / 4),
1176            function(r) { return 1 + n * Math.pow(2, -10 * r) * Math.sin((r - e) * Fa / t) } }
1177
1178    function qr(n) { return n || (n = 1.70158),
1179            function(t) { return t * t * ((n + 1) * t - n) } }
1180
1181    function Tr(n) { return 1 / 2.75 > n ? 7.5625 * n * n : 2 / 2.75 > n ? 7.5625 * (n -= 1.5 / 2.75) * n + .75 : 2.5 / 2.75 > n ? 7.5625 * (n -= 2.25 / 2.75) * n + .9375 : 7.5625 * (n -= 2.625 / 2.75) * n + .984375 }
1182
1183    function Rr(n, t) { n = oa.hcl(n), t = oa.hcl(t); var e = n.h,
1184            r = n.c,
1185            u = n.l,
1186            i = t.h - e,
1187            a = t.c - r,
1188            o = t.l - u; return isNaN(a) && (a = 0, r = isNaN(r) ? t.c : r), isNaN(i) ? (i = 0, e = isNaN(e) ? t.h : e) : i > 180 ? i -= 360 : -180 > i && (i += 360),
1189            function(n) { return fn(e + i * n, r + a * n, u + o * n) + "" } }
1190
1191    function Dr(n, t) { n = oa.hsl(n), t = oa.hsl(t); var e = n.h,
1192            r = n.s,
1193            u = n.l,
1194            i = t.h - e,
1195            a = t.s - r,
1196            o = t.l - u; return isNaN(a) && (a = 0, r = isNaN(r) ? t.s : r), isNaN(i) ? (i = 0, e = isNaN(e) ? t.h : e) : i > 180 ? i -= 360 : -180 > i && (i += 360),
1197            function(n) { return cn(e + i * n, r + a * n, u + o * n) + "" } }
1198
1199    function Pr(n, t) { n = oa.lab(n), t = oa.lab(t); var e = n.l,
1200            r = n.a,
1201            u = n.b,
1202            i = t.l - e,
1203            a = t.a - r,
1204            o = t.b - u; return function(n) { return gn(e + i * n, r + a * n, u + o * n) + "" } }
1205
1206    function Ur(n, t) { return t -= n,
1207            function(e) { return Math.round(n + t * e) } }
1208
1209    function jr(n) { var t = [n.a, n.b],
1210            e = [n.c, n.d],
1211            r = Hr(t),
1212            u = Fr(t, e),
1213            i = Hr(Or(e, t, -u)) || 0;
1214        t[0] * e[1] < e[0] * t[1] && (t[0] *= -1, t[1] *= -1, r *= -1, u *= -1), this.rotate = (r ? Math.atan2(t[1], t[0]) : Math.atan2(-e[0], e[1])) * Ya, this.translate = [n.e, n.f], this.scale = [r, i], this.skew = i ? Math.atan2(u, i) * Ya : 0 }
1215
1216    function Fr(n, t) { return n[0] * t[0] + n[1] * t[1] }
1217
1218    function Hr(n) { var t = Math.sqrt(Fr(n, n)); return t && (n[0] /= t, n[1] /= t), t }
1219
1220    function Or(n, t, e) { return n[0] += e * t[0], n[1] += e * t[1], n }
1221
1222    function Ir(n) { return n.length ? n.pop() + "," : "" }
1223
1224    function Yr(n, t, e, r) { if (n[0] !== t[0] || n[1] !== t[1]) { var u = e.push("translate(", null, ",", null, ")");
1225            r.push({ i: u - 4, x: mr(n[0], t[0]) }, { i: u - 2, x: mr(n[1], t[1]) }) } else(t[0] || t[1]) && e.push("translate(" + t + ")") }
1226
1227    function Zr(n, t, e, r) { n !== t ? (n - t > 180 ? t += 360 : t - n > 180 && (n += 360), r.push({ i: e.push(Ir(e) + "rotate(", null, ")") - 2, x: mr(n, t) })) : t && e.push(Ir(e) + "rotate(" + t + ")") }
1228
1229    function Vr(n, t, e, r) { n !== t ? r.push({ i: e.push(Ir(e) + "skewX(", null, ")") - 2, x: mr(n, t) }) : t && e.push(Ir(e) + "skewX(" + t + ")") }
1230
1231    function Xr(n, t, e, r) { if (n[0] !== t[0] || n[1] !== t[1]) { var u = e.push(Ir(e) + "scale(", null, ",", null, ")");
1232            r.push({ i: u - 4, x: mr(n[0], t[0]) }, { i: u - 2, x: mr(n[1], t[1]) }) } else(1 !== t[0] || 1 !== t[1]) && e.push(Ir(e) + "scale(" + t + ")") }
1233
1234    function $r(n, t) { var e = [],
1235            r = []; return n = oa.transform(n), t = oa.transform(t), Yr(n.translate, t.translate, e, r), Zr(n.rotate, t.rotate, e, r), Vr(n.skew, t.skew, e, r), Xr(n.scale, t.scale, e, r), n = t = null,
1236            function(n) { for (var t, u = -1, i = r.length; ++u < i;) e[(t = r[u]).i] = t.x(n); return e.join("") } }
1237
1238    function Br(n, t) { return t = (t -= n = +n) || 1 / t,
1239            function(e) { return (e - n) / t } }
1240
1241    function Wr(n, t) { return t = (t -= n = +n) || 1 / t,
1242            function(e) { return Math.max(0, Math.min(1, (e - n) / t)) } }
1243
1244    function Jr(n) { for (var t = n.source, e = n.target, r = Kr(t, e), u = [t]; t !== r;) t = t.parent, u.push(t); for (var i = u.length; e !== r;) u.splice(i, 0, e), e = e.parent; return u }
1245
1246    function Gr(n) { for (var t = [], e = n.parent; null != e;) t.push(n), n = e, e = e.parent; return t.push(n), t }
1247
1248    function Kr(n, t) { if (n === t) return n; for (var e = Gr(n), r = Gr(t), u = e.pop(), i = r.pop(), a = null; u === i;) a = u, u = e.pop(), i = r.pop(); return a }
1249
1250    function Qr(n) { n.fixed |= 2 }
1251
1252    function nu(n) { n.fixed &= -7 }
1253
1254    function tu(n) { n.fixed |= 4, n.px = n.x, n.py = n.y }
1255
1256    function eu(n) { n.fixed &= -5 }
1257
1258    function ru(n, t, e) { var r = 0,
1259            u = 0; if (n.charge = 0, !n.leaf)
1260            for (var i, a = n.nodes, o = a.length, l = -1; ++l < o;) i = a[l], null != i && (ru(i, t, e), n.charge += i.charge, r += i.charge * i.cx, u += i.charge * i.cy); if (n.point) { n.leaf || (n.point.x += Math.random() - .5, n.point.y += Math.random() - .5); var c = t * e[n.point.index];
1261            n.charge += n.pointCharge = c, r += c * n.point.x, u += c * n.point.y }
1262        n.cx = r / n.charge, n.cy = u / n.charge }
1263
1264    function uu(n, t) { return oa.rebind(n, t, "sort", "children", "value"), n.nodes = n, n.links = su, n }
1265
1266    function iu(n, t) { for (var e = [n]; null != (n = e.pop());)
1267            if (t(n), (u = n.children) && (r = u.length))
1268                for (var r, u; --r >= 0;) e.push(u[r]) }
1269
1270    function au(n, t) { for (var e = [n], r = []; null != (n = e.pop());)
1271            if (r.push(n), (i = n.children) && (u = i.length))
1272                for (var u, i, a = -1; ++a < u;) e.push(i[a]);
1273        for (; null != (n = r.pop());) t(n) }
1274
1275    function ou(n) { return n.children }
1276
1277    function lu(n) { return n.value }
1278
1279    function cu(n, t) { return t.value - n.value }
1280
1281    function su(n) { return oa.merge(n.map(function(n) { return (n.children || []).map(function(t) { return { source: n, target: t } }) })) }
1282
1283    function fu(n) { return n.x }
1284
1285    function hu(n) { return n.y }
1286
1287    function gu(n, t, e) { n.y0 = t, n.y = e }
1288
1289    function pu(n) { return oa.range(n.length) }
1290
1291    function vu(n) { for (var t = -1, e = n[0].length, r = []; ++t < e;) r[t] = 0; return r }
1292
1293    function du(n) { for (var t, e = 1, r = 0, u = n[0][1], i = n.length; i > e; ++e)(t = n[e][1]) > u && (r = e, u = t); return r }
1294
1295    function mu(n) { return n.reduce(yu, 0) }
1296
1297    function yu(n, t) { return n + t[1] }
1298
1299    function Mu(n, t) { return xu(n, Math.ceil(Math.log(t.length) / Math.LN2 + 1)) }
1300
1301    function xu(n, t) { for (var e = -1, r = +n[0], u = (n[1] - r) / t, i = []; ++e <= t;) i[e] = u * e + r; return i }
1302
1303    function bu(n) { return [oa.min(n), oa.max(n)] }
1304
1305    function _u(n, t) { return n.value - t.value }
1306
1307    function wu(n, t) { var e = n._pack_next;
1308        n._pack_next = t, t._pack_prev = n, t._pack_next = e, e._pack_prev = t }
1309
1310    function Su(n, t) { n._pack_next = t, t._pack_prev = n }
1311
1312    function ku(n, t) { var e = t.x - n.x,
1313            r = t.y - n.y,
1314            u = n.r + t.r; return .999 * u * u > e * e + r * r }
1315
1316    function Nu(n) {
1317        function t(n) { s = Math.min(n.x - n.r, s), f = Math.max(n.x + n.r, f), h = Math.min(n.y - n.r, h), g = Math.max(n.y + n.r, g) } if ((e = n.children) && (c = e.length)) { var e, r, u, i, a, o, l, c, s = 1 / 0,
1318                f = -(1 / 0),
1319                h = 1 / 0,
1320                g = -(1 / 0); if (e.forEach(Eu), r = e[0], r.x = -r.r, r.y = 0, t(r), c > 1 && (u = e[1], u.x = u.r, u.y = 0, t(u), c > 2))
1321                for (i = e[2], zu(r, u, i), t(i), wu(r, i), r._pack_prev = i, wu(i, u), u = r._pack_next, a = 3; c > a; a++) { zu(r, u, i = e[a]); var p = 0,
1322                        v = 1,
1323                        d = 1; for (o = u._pack_next; o !== u; o = o._pack_next, v++)
1324                        if (ku(o, i)) { p = 1; break }
1325                    if (1 == p)
1326                        for (l = r._pack_prev; l !== o._pack_prev && !ku(l, i); l = l._pack_prev, d++);
1327                    p ? (d > v || v == d && u.r < r.r ? Su(r, u = o) : Su(r = l, u), a--) : (wu(r, i), u = i, t(i)) }
1328            var m = (s + f) / 2,
1329                y = (h + g) / 2,
1330                M = 0; for (a = 0; c > a; a++) i = e[a], i.x -= m, i.y -= y, M = Math.max(M, i.r + Math.sqrt(i.x * i.x + i.y * i.y));
1331            n.r = M, e.forEach(Au) } }
1332
1333    function Eu(n) { n._pack_next = n._pack_prev = n }
1334
1335    function Au(n) { delete n._pack_next, delete n._pack_prev }
1336
1337    function Cu(n, t, e, r) { var u = n.children; if (n.x = t += r * n.x, n.y = e += r * n.y, n.r *= r, u)
1338            for (var i = -1, a = u.length; ++i < a;) Cu(u[i], t, e, r) }
1339
1340    function zu(n, t, e) { var r = n.r + e.r,
1341            u = t.x - n.x,
1342            i = t.y - n.y; if (r && (u || i)) { var a = t.r + e.r,
1343                o = u * u + i * i;
1344            a *= a, r *= r; var l = .5 + (r - a) / (2 * o),
1345                c = Math.sqrt(Math.max(0, 2 * a * (r + o) - (r -= o) * r - a * a)) / (2 * o);
1346            e.x = n.x + l * u + c * i, e.y = n.y + l * i - c * u } else e.x = n.x + r, e.y = n.y }
1347
1348    function Lu(n, t) { return n.parent == t.parent ? 1 : 2 }
1349
1350    function qu(n) { var t = n.children; return t.length ? t[0] : n.t }
1351
1352    function Tu(n) { var t, e = n.children; return (t = e.length) ? e[t - 1] : n.t }
1353
1354    function Ru(n, t, e) { var r = e / (t.i - n.i);
1355        t.c -= r, t.s += e, n.c += r, t.z += e, t.m += e }
1356
1357    function Du(n) { for (var t, e = 0, r = 0, u = n.children, i = u.length; --i >= 0;) t = u[i], t.z += e, t.m += e, e += t.s + (r += t.c) }
1358
1359    function Pu(n, t, e) { return n.a.parent === t.parent ? n.a : e }
1360
1361    function Uu(n) { return 1 + oa.max(n, function(n) { return n.y }) }
1362
1363    function ju(n) { return n.reduce(function(n, t) { return n + t.x }, 0) / n.length }
1364
1365    function Fu(n) { var t = n.children; return t && t.length ? Fu(t[0]) : n }
1366
1367    function Hu(n) { var t, e = n.children; return e && (t = e.length) ? Hu(e[t - 1]) : n }
1368
1369    function Ou(n) { return { x: n.x, y: n.y, dx: n.dx, dy: n.dy } }
1370
1371    function Iu(n, t) { var e = n.x + t[3],
1372            r = n.y + t[0],
1373            u = n.dx - t[1] - t[3],
1374            i = n.dy - t[0] - t[2]; return 0 > u && (e += u / 2, u = 0), 0 > i && (r += i / 2, i = 0), { x: e, y: r, dx: u, dy: i } }
1375
1376    function Yu(n) { var t = n[0],
1377            e = n[n.length - 1]; return e > t ? [t, e] : [e, t] }
1378
1379    function Zu(n) { return n.rangeExtent ? n.rangeExtent() : Yu(n.range()) }
1380
1381    function Vu(n, t, e, r) { var u = e(n[0], n[1]),
1382            i = r(t[0], t[1]); return function(n) { return i(u(n)) } }
1383
1384    function Xu(n, t) { var e, r = 0,
1385            u = n.length - 1,
1386            i = n[r],
1387            a = n[u]; return i > a && (e = r, r = u, u = e, e = i, i = a, a = e), n[r] = t.floor(i), n[u] = t.ceil(a), n }
1388
1389    function $u(n) { return n ? { floor: function(t) { return Math.floor(t / n) * n }, ceil: function(t) { return Math.ceil(t / n) * n } } : Sl }
1390
1391    function Bu(n, t, e, r) { var u = [],
1392            i = [],
1393            a = 0,
1394            o = Math.min(n.length, t.length) - 1; for (n[o] < n[0] && (n = n.slice().reverse(), t = t.slice().reverse()); ++a <= o;) u.push(e(n[a - 1], n[a])), i.push(r(t[a - 1], t[a])); return function(t) { var e = oa.bisect(n, t, 1, o) - 1; return i[e](u[e](t)) } }
1395
1396    function Wu(n, t, e, r) {
1397        function u() { var u = Math.min(n.length, t.length) > 2 ? Bu : Vu,
1398                l = r ? Wr : Br; return a = u(n, t, l, e), o = u(t, n, l, Mr), i }
1399
1400        function i(n) { return a(n) } var a, o; return i.invert = function(n) { return o(n) }, i.domain = function(t) { return arguments.length ? (n = t.map(Number), u()) : n }, i.range = function(n) { return arguments.length ? (t = n, u()) : t }, i.rangeRound = function(n) { return i.range(n).interpolate(Ur) }, i.clamp = function(n) { return arguments.length ? (r = n, u()) : r }, i.interpolate = function(n) { return arguments.length ? (e = n, u()) : e }, i.ticks = function(t) { return Qu(n, t) }, i.tickFormat = function(t, e) { return ni(n, t, e) }, i.nice = function(t) { return Gu(n, t), u() }, i.copy = function() { return Wu(n, t, e, r) }, u() }
1401
1402    function Ju(n, t) { return oa.rebind(n, t, "range", "rangeRound", "interpolate", "clamp") }
1403
1404    function Gu(n, t) { return Xu(n, $u(Ku(n, t)[2])), Xu(n, $u(Ku(n, t)[2])), n }
1405
1406    function Ku(n, t) { null == t && (t = 10); var e = Yu(n),
1407            r = e[1] - e[0],
1408            u = Math.pow(10, Math.floor(Math.log(r / t) / Math.LN10)),
1409            i = t / r * u; return .15 >= i ? u *= 10 : .35 >= i ? u *= 5 : .75 >= i && (u *= 2), e[0] = Math.ceil(e[0] / u) * u, e[1] = Math.floor(e[1] / u) * u + .5 * u, e[2] = u, e }
1410
1411    function Qu(n, t) { return oa.range.apply(oa, Ku(n, t)) }
1412
1413    function ni(n, t, e) { var r = Ku(n, t); if (e) { var u = fo.exec(e); if (u.shift(), "s" === u[8]) { var i = oa.formatPrefix(Math.max(Ma(r[0]), Ma(r[1]))); return u[7] || (u[7] = "." + ti(i.scale(r[2]))), u[8] = "f", e = oa.format(u.join("")),
1414                    function(n) { return e(i.scale(n)) + i.symbol } }
1415            u[7] || (u[7] = "." + ei(u[8], r)), e = u.join("") } else e = ",." + ti(r[2]) + "f"; return oa.format(e) }
1416
1417    function ti(n) { return -Math.floor(Math.log(n) / Math.LN10 + .01) }
1418
1419    function ei(n, t) { var e = ti(t[2]); return n in kl ? Math.abs(e - ti(Math.max(Ma(t[0]), Ma(t[1])))) + +("e" !== n) : e - 2 * ("%" === n) }
1420
1421    function ri(n, t, e, r) {
1422        function u(n) { return (e ? Math.log(0 > n ? 0 : n) : -Math.log(n > 0 ? 0 : -n)) / Math.log(t) }
1423
1424        function i(n) { return e ? Math.pow(t, n) : -Math.pow(t, -n) }
1425
1426        function a(t) { return n(u(t)) } return a.invert = function(t) { return i(n.invert(t)) }, a.domain = function(t) { return arguments.length ? (e = t[0] >= 0, n.domain((r = t.map(Number)).map(u)), a) : r }, a.base = function(e) { return arguments.length ? (t = +e, n.domain(r.map(u)), a) : t }, a.nice = function() { var t = Xu(r.map(u), e ? Math : El); return n.domain(t), r = t.map(i), a }, a.ticks = function() { var n = Yu(r),
1427                a = [],
1428                o = n[0],
1429                l = n[1],
1430                c = Math.floor(u(o)),
1431                s = Math.ceil(u(l)),
1432                f = t % 1 ? 2 : t; if (isFinite(s - c)) { if (e) { for (; s > c; c++)
1433                        for (var h = 1; f > h; h++) a.push(i(c) * h);
1434                    a.push(i(c)) } else
1435                    for (a.push(i(c)); c++ < s;)
1436                        for (var h = f - 1; h > 0; h--) a.push(i(c) * h); for (c = 0; a[c] < o; c++); for (s = a.length; a[s - 1] > l; s--);
1437                a = a.slice(c, s) } return a }, a.tickFormat = function(n, e) { if (!arguments.length) return Nl;
1438            arguments.length < 2 ? e = Nl : "function" != typeof e && (e = oa.format(e)); var r = Math.max(1, t * n / a.ticks().length); return function(n) { var a = n / i(Math.round(u(n))); return t - .5 > a * t && (a *= t), r >= a ? e(n) : "" } }, a.copy = function() { return ri(n.copy(), t, e, r) }, Ju(a, n) }
1439
1440    function ui(n, t, e) {
1441        function r(t) { return n(u(t)) } var u = ii(t),
1442            i = ii(1 / t); return r.invert = function(t) { return i(n.invert(t)) }, r.domain = function(t) { return arguments.length ? (n.domain((e = t.map(Number)).map(u)), r) : e }, r.ticks = function(n) { return Qu(e, n) }, r.tickFormat = function(n, t) { return ni(e, n, t) }, r.nice = function(n) { return r.domain(Gu(e, n)) }, r.exponent = function(a) { return arguments.length ? (u = ii(t = a), i = ii(1 / t), n.domain(e.map(u)), r) : t }, r.copy = function() { return ui(n.copy(), t, e) }, Ju(r, n) }
1443
1444    function ii(n) { return function(t) { return 0 > t ? -Math.pow(-t, n) : Math.pow(t, n) } }
1445
1446    function ai(n, t) {
1447        function e(e) { return i[((u.get(e) || ("range" === t.t ? u.set(e, n.push(e)) : NaN)) - 1) % i.length] }
1448
1449        function r(t, e) { return oa.range(n.length).map(function(n) { return t + e * n }) } var u, i, a; return e.domain = function(r) { if (!arguments.length) return n;
1450            n = [], u = new c; for (var i, a = -1, o = r.length; ++a < o;) u.has(i = r[a]) || u.set(i, n.push(i)); return e[t.t].apply(e, t.a) }, e.range = function(n) { return arguments.length ? (i = n, a = 0, t = { t: "range", a: arguments }, e) : i }, e.rangePoints = function(u, o) { arguments.length < 2 && (o = 0); var l = u[0],
1451                c = u[1],
1452                s = n.length < 2 ? (l = (l + c) / 2, 0) : (c - l) / (n.length - 1 + o); return i = r(l + s * o / 2, s), a = 0, t = { t: "rangePoints", a: arguments }, e }, e.rangeRoundPoints = function(u, o) { arguments.length < 2 && (o = 0); var l = u[0],
1453                c = u[1],
1454                s = n.length < 2 ? (l = c = Math.round((l + c) / 2), 0) : (c - l) / (n.length - 1 + o) | 0; return i = r(l + Math.round(s * o / 2 + (c - l - (n.length - 1 + o) * s) / 2), s), a = 0, t = { t: "rangeRoundPoints", a: arguments }, e }, e.rangeBands = function(u, o, l) { arguments.length < 2 && (o = 0), arguments.length < 3 && (l = o); var c = u[1] < u[0],
1455                s = u[c - 0],
1456                f = u[1 - c],
1457                h = (f - s) / (n.length - o + 2 * l); return i = r(s + h * l, h), c && i.reverse(), a = h * (1 - o), t = { t: "rangeBands", a: arguments }, e }, e.rangeRoundBands = function(u, o, l) { arguments.length < 2 && (o = 0), arguments.length < 3 && (l = o); var c = u[1] < u[0],
1458                s = u[c - 0],
1459                f = u[1 - c],
1460                h = Math.floor((f - s) / (n.length - o + 2 * l)); return i = r(s + Math.round((f - s - (n.length - o) * h) / 2), h), c && i.reverse(), a = Math.round(h * (1 - o)), t = { t: "rangeRoundBands", a: arguments }, e }, e.rangeBand = function() { return a }, e.rangeExtent = function() { return Yu(t.a[0]) }, e.copy = function() { return ai(n, t) }, e.domain(n) }
1461
1462    function oi(n, t) {
1463        function i() { var e = 0,
1464                r = t.length; for (o = []; ++e < r;) o[e - 1] = oa.quantile(n, e / r); return a }
1465
1466        function a(n) { return isNaN(n = +n) ? void 0 : t[oa.bisect(o, n)] } var o; return a.domain = function(t) { return arguments.length ? (n = t.map(r).filter(u).sort(e), i()) : n }, a.range = function(n) { return arguments.length ? (t = n, i()) : t }, a.quantiles = function() { return o }, a.invertExtent = function(e) { return e = t.indexOf(e), 0 > e ? [NaN, NaN] : [e > 0 ? o[e - 1] : n[0], e < o.length ? o[e] : n[n.length - 1]] }, a.copy = function() { return oi(n, t) }, i() }
1467
1468    function li(n, t, e) {
1469        function r(t) { return e[Math.max(0, Math.min(a, Math.floor(i * (t - n))))] }
1470
1471        function u() { return i = e.length / (t - n), a = e.length - 1, r } var i, a; return r.domain = function(e) { return arguments.length ? (n = +e[0], t = +e[e.length - 1], u()) : [n, t] }, r.range = function(n) { return arguments.length ? (e = n, u()) : e }, r.invertExtent = function(t) { return t = e.indexOf(t), t = 0 > t ? NaN : t / i + n, [t, t + 1 / i] }, r.copy = function() { return li(n, t, e) }, u() }
1472
1473    function ci(n, t) {
1474        function e(e) { return e >= e ? t[oa.bisect(n, e)] : void 0 } return e.domain = function(t) { return arguments.length ? (n = t, e) : n }, e.range = function(n) { return arguments.length ? (t = n, e) : t }, e.invertExtent = function(e) { return e = t.indexOf(e), [n[e - 1], n[e]] }, e.copy = function() { return ci(n, t) }, e }
1475
1476    function si(n) {
1477        function t(n) { return +n } return t.invert = t, t.domain = t.range = function(e) { return arguments.length ? (n = e.map(t), t) : n }, t.ticks = function(t) { return Qu(n, t) }, t.tickFormat = function(t, e) { return ni(n, t, e) }, t.copy = function() { return si(n) }, t }
1478
1479    function fi() { return 0 }
1480
1481    function hi(n) { return n.innerRadius }
1482
1483    function gi(n) { return n.outerRadius }
1484
1485    function pi(n) { return n.startAngle }
1486
1487    function vi(n) { return n.endAngle }
1488
1489    function di(n) { return n && n.padAngle }
1490
1491    function mi(n, t, e, r) { return (n - e) * t - (t - r) * n > 0 ? 0 : 1 }
1492
1493    function yi(n, t, e, r, u) { var i = n[0] - t[0],
1494            a = n[1] - t[1],
1495            o = (u ? r : -r) / Math.sqrt(i * i + a * a),
1496            l = o * a,
1497            c = -o * i,
1498            s = n[0] + l,
1499            f = n[1] + c,
1500            h = t[0] + l,
1501            g = t[1] + c,
1502            p = (s + h) / 2,
1503            v = (f + g) / 2,
1504            d = h - s,
1505            m = g - f,
1506            y = d * d + m * m,
1507            M = e - r,
1508            x = s * g - h * f,
1509            b = (0 > m ? -1 : 1) * Math.sqrt(Math.max(0, M * M * y - x * x)),
1510            _ = (x * m - d * b) / y,
1511            w = (-x * d - m * b) / y,
1512            S = (x * m + d * b) / y,
1513            k = (-x * d + m * b) / y,
1514            N = _ - p,
1515            E = w - v,
1516            A = S - p,
1517            C = k - v; return N * N + E * E > A * A + C * C && (_ = S, w = k), [
1518            [_ - l, w - c],
1519            [_ * e / M, w * e / M]
1520        ] }
1521
1522    function Mi(n) {
1523        function t(t) {
1524            function a() { c.push("M", i(n(s), o)) } for (var l, c = [], s = [], f = -1, h = t.length, g = En(e), p = En(r); ++f < h;) u.call(this, l = t[f], f) ? s.push([+g.call(this, l, f), +p.call(this, l, f)]) : s.length && (a(), s = []); return s.length && a(), c.length ? c.join("") : null } var e = Ce,
1525            r = ze,
1526            u = zt,
1527            i = xi,
1528            a = i.key,
1529            o = .7; return t.x = function(n) { return arguments.length ? (e = n, t) : e }, t.y = function(n) { return arguments.length ? (r = n, t) : r }, t.defined = function(n) { return arguments.length ? (u = n, t) : u }, t.interpolate = function(n) { return arguments.length ? (a = "function" == typeof n ? i = n : (i = Tl.get(n) || xi).key, t) : a }, t.tension = function(n) { return arguments.length ? (o = n, t) : o }, t }
1530
1531    function xi(n) { return n.length > 1 ? n.join("L") : n + "Z" }
1532
1533    function bi(n) { return n.join("L") + "Z" }
1534
1535    function _i(n) { for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;) u.push("H", (r[0] + (r = n[t])[0]) / 2, "V", r[1]); return e > 1 && u.push("H", r[0]), u.join("") }
1536
1537    function wi(n) { for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;) u.push("V", (r = n[t])[1], "H", r[0]); return u.join("") }
1538
1539    function Si(n) { for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;) u.push("H", (r = n[t])[0], "V", r[1]); return u.join("") }
1540
1541    function ki(n, t) { return n.length < 4 ? xi(n) : n[1] + Ai(n.slice(1, -1), Ci(n, t)) }
1542
1543    function Ni(n, t) { return n.length < 3 ? bi(n) : n[0] + Ai((n.push(n[0]), n), Ci([n[n.length - 2]].concat(n, [n[1]]), t)) }
1544
1545    function Ei(n, t) { return n.length < 3 ? xi(n) : n[0] + Ai(n, Ci(n, t)) }
1546
1547    function Ai(n, t) { if (t.length < 1 || n.length != t.length && n.length != t.length + 2) return xi(n); var e = n.length != t.length,
1548            r = "",
1549            u = n[0],
1550            i = n[1],
1551            a = t[0],
1552            o = a,
1553            l = 1; if (e && (r += "Q" + (i[0] - 2 * a[0] / 3) + "," + (i[1] - 2 * a[1] / 3) + "," + i[0] + "," + i[1], u = n[1], l = 2), t.length > 1) { o = t[1], i = n[l], l++, r += "C" + (u[0] + a[0]) + "," + (u[1] + a[1]) + "," + (i[0] - o[0]) + "," + (i[1] - o[1]) + "," + i[0] + "," + i[1]; for (var c = 2; c < t.length; c++, l++) i = n[l], o = t[c], r += "S" + (i[0] - o[0]) + "," + (i[1] - o[1]) + "," + i[0] + "," + i[1] } if (e) { var s = n[l];
1554            r += "Q" + (i[0] + 2 * o[0] / 3) + "," + (i[1] + 2 * o[1] / 3) + "," + s[0] + "," + s[1] } return r }
1555
1556    function Ci(n, t) { for (var e, r = [], u = (1 - t) / 2, i = n[0], a = n[1], o = 1, l = n.length; ++o < l;) e = i, i = a, a = n[o], r.push([u * (a[0] - e[0]), u * (a[1] - e[1])]); return r }
1557
1558    function zi(n) { if (n.length < 3) return xi(n); var t = 1,
1559            e = n.length,
1560            r = n[0],
1561            u = r[0],
1562            i = r[1],
1563            a = [u, u, u, (r = n[1])[0]],
1564            o = [i, i, i, r[1]],
1565            l = [u, ",", i, "L", Ri(Pl, a), ",", Ri(Pl, o)]; for (n.push(n[e - 1]); ++t <= e;) r = n[t], a.shift(), a.push(r[0]), o.shift(), o.push(r[1]), Di(l, a, o); return n.pop(), l.push("L", r), l.join("") }
1566
1567    function Li(n) { if (n.length < 4) return xi(n); for (var t, e = [], r = -1, u = n.length, i = [0], a = [0]; ++r < 3;) t = n[r], i.push(t[0]), a.push(t[1]); for (e.push(Ri(Pl, i) + "," + Ri(Pl, a)), --r; ++r < u;) t = n[r], i.shift(), i.push(t[0]), a.shift(), a.push(t[1]), Di(e, i, a); return e.join("") }
1568
1569    function qi(n) { for (var t, e, r = -1, u = n.length, i = u + 4, a = [], o = []; ++r < 4;) e = n[r % u], a.push(e[0]), o.push(e[1]); for (t = [Ri(Pl, a), ",", Ri(Pl, o)], --r; ++r < i;) e = n[r % u], a.shift(), a.push(e[0]), o.shift(), o.push(e[1]), Di(t, a, o); return t.join("") }
1570
1571    function Ti(n, t) { var e = n.length - 1; if (e)
1572            for (var r, u, i = n[0][0], a = n[0][1], o = n[e][0] - i, l = n[e][1] - a, c = -1; ++c <= e;) r = n[c], u = c / e, r[0] = t * r[0] + (1 - t) * (i + u * o), r[1] = t * r[1] + (1 - t) * (a + u * l); return zi(n) }
1573
1574    function Ri(n, t) { return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] + n[3] * t[3] }
1575
1576    function Di(n, t, e) { n.push("C", Ri(Rl, t), ",", Ri(Rl, e), ",", Ri(Dl, t), ",", Ri(Dl, e), ",", Ri(Pl, t), ",", Ri(Pl, e)) }
1577
1578    function Pi(n, t) { return (t[1] - n[1]) / (t[0] - n[0]) }
1579
1580    function Ui(n) { for (var t = 0, e = n.length - 1, r = [], u = n[0], i = n[1], a = r[0] = Pi(u, i); ++t < e;) r[t] = (a + (a = Pi(u = i, i = n[t + 1]))) / 2; return r[t] = a, r }
1581
1582    function ji(n) { for (var t, e, r, u, i = [], a = Ui(n), o = -1, l = n.length - 1; ++o < l;) t = Pi(n[o], n[o + 1]), Ma(t) < Pa ? a[o] = a[o + 1] = 0 : (e = a[o] / t, r = a[o + 1] / t, u = e * e + r * r, u > 9 && (u = 3 * t / Math.sqrt(u), a[o] = u * e, a[o + 1] = u * r)); for (o = -1; ++o <= l;) u = (n[Math.min(l, o + 1)][0] - n[Math.max(0, o - 1)][0]) / (6 * (1 + a[o] * a[o])), i.push([u || 0, a[o] * u || 0]); return i }
1583
1584    function Fi(n) { return n.length < 3 ? xi(n) : n[0] + Ai(n, ji(n)) }
1585
1586    function Hi(n) { for (var t, e, r, u = -1, i = n.length; ++u < i;) t = n[u], e = t[0], r = t[1] - Oa, t[0] = e * Math.cos(r), t[1] = e * Math.sin(r); return n }
1587
1588    function Oi(n) {
1589        function t(t) {
1590            function l() { v.push("M", o(n(m), f), s, c(n(d.reverse()), f), "Z") }
1591            for (var h, g, p, v = [], d = [], m = [], y = -1, M = t.length, x = En(e), b = En(u), _ = e === r ? function() {
1592                    return g
1593                } : En(r), w = u === i ? function() { return p } : En(i); ++y < M;) a.call(this, h = t[y], y) ? (d.push([g = +x.call(this, h, y), p = +b.call(this, h, y)]), m.push([+_.call(this, h, y), +w.call(this, h, y)])) : d.length && (l(), d = [], m = []);
1594            return d.length && l(), v.length ? v.join("") : null
1595        }
1596        var e = Ce,
1597            r = Ce,
1598            u = 0,
1599            i = ze,
1600            a = zt,
1601            o = xi,
1602            l = o.key,
1603            c = o,
1604            s = "L",
1605            f = .7;
1606        return t.x = function(n) { return arguments.length ? (e = r = n, t) : r }, t.x0 = function(n) { return arguments.length ? (e = n, t) : e }, t.x1 = function(n) { return arguments.length ? (r = n, t) : r }, t.y = function(n) { return arguments.length ? (u = i = n, t) : i }, t.y0 = function(n) { return arguments.length ? (u = n, t) : u }, t.y1 = function(n) { return arguments.length ? (i = n, t) : i }, t.defined = function(n) { return arguments.length ? (a = n, t) : a }, t.interpolate = function(n) { return arguments.length ? (l = "function" == typeof n ? o = n : (o = Tl.get(n) || xi).key, c = o.reverse || o, s = o.closed ? "M" : "L", t) : l }, t.tension = function(n) { return arguments.length ? (f = n, t) : f }, t
1607    }
1608
1609    function Ii(n) { return n.radius }
1610
1611    function Yi(n) { return [n.x, n.y] }
1612
1613    function Zi(n) { return function() { var t = n.apply(this, arguments),
1614                e = t[0],
1615                r = t[1] - Oa; return [e * Math.cos(r), e * Math.sin(r)] } }
1616
1617    function Vi() { return 64 }
1618
1619    function Xi() { return "circle" }
1620
1621    function $i(n) { var t = Math.sqrt(n / ja); return "M0," + t + "A" + t + "," + t + " 0 1,1 0," + -t + "A" + t + "," + t + " 0 1,1 0," + t + "Z" }
1622
1623    function Bi(n) { return function() { var t, e, r;
1624            (t = this[n]) && (r = t[e = t.active]) && (r.timer.c = null, r.timer.t = NaN, --t.count ? delete t[e] : delete this[n], t.active += .5, r.event && r.event.interrupt.call(this, this.__data__, r.index)) } }
1625
1626    function Wi(n, t, e) { return Sa(n, Yl), n.namespace = t, n.id = e, n }
1627
1628    function Ji(n, t, e, r) { var u = n.id,
1629            i = n.namespace; return Y(n, "function" == typeof e ? function(n, a, o) { n[i][u].tween.set(t, r(e.call(n, n.__data__, a, o))) } : (e = r(e), function(n) { n[i][u].tween.set(t, e) })) }
1630
1631    function Gi(n) { return null == n && (n = ""),
1632            function() { this.textContent = n } }
1633
1634    function Ki(n) { return null == n ? "__transition__" : "__transition_" + n + "__" }
1635
1636    function Qi(n, t, e, r, u) {
1637        function i(n) { var t = v.delay; return s.t = t + l, n >= t ? a(n - t) : void(s.c = a) }
1638
1639        function a(e) { var u = p.active,
1640                i = p[u];
1641            i && (i.timer.c = null, i.timer.t = NaN, --p.count, delete p[u], i.event && i.event.interrupt.call(n, n.__data__, i.index)); for (var a in p)
1642                if (r > +a) { var c = p[a];
1643                    c.timer.c = null, c.timer.t = NaN, --p.count, delete p[a] }
1644            s.c = o, qn(function() { return s.c && o(e || 1) && (s.c = null, s.t = NaN), 1 }, 0, l), p.active = r, v.event && v.event.start.call(n, n.__data__, t), g = [], v.tween.forEach(function(e, r) {
1645                (r = r.call(n, n.__data__, t)) && g.push(r) }), h = v.ease, f = v.duration }
1646
1647        function o(u) { for (var i = u / f, a = h(i), o = g.length; o > 0;) g[--o].call(n, a); return i >= 1 ? (v.event && v.event.end.call(n, n.__data__, t), --p.count ? delete p[r] : delete n[e], 1) : void 0 } var l, s, f, h, g, p = n[e] || (n[e] = { active: 0, count: 0 }),
1648            v = p[r];
1649        v || (l = u.time, s = qn(i, 0, l), v = p[r] = { tween: new c, time: l, timer: s, delay: u.delay, duration: u.duration, ease: u.ease, index: t }, u = null, ++p.count) }
1650
1651    function na(n, t, e) { n.attr("transform", function(n) { var r = t(n); return "translate(" + (isFinite(r) ? r : e(n)) + ",0)" }) }
1652
1653    function ta(n, t, e) { n.attr("transform", function(n) { var r = t(n); return "translate(0," + (isFinite(r) ? r : e(n)) + ")" }) }
1654
1655    function ea(n) { return n.toISOString() }
1656
1657    function ra(n, t, e) {
1658        function r(t) { return n(t) }
1659
1660        function u(n, e) { var r = n[1] - n[0],
1661                u = r / e,
1662                i = oa.bisect(Kl, u); return i == Kl.length ? [t.year, Ku(n.map(function(n) { return n / 31536e6 }), e)[2]] : i ? t[u / Kl[i - 1] < Kl[i] / u ? i - 1 : i] : [tc, Ku(n, e)[2]] } return r.invert = function(t) { return ua(n.invert(t)) }, r.domain = function(t) { return arguments.length ? (n.domain(t), r) : n.domain().map(ua) }, r.nice = function(n, t) {
1663            function e(e) { return !isNaN(e) && !n.range(e, ua(+e + 1), t).length } var i = r.domain(),
1664                a = Yu(i),
1665                o = null == n ? u(a, 10) : "number" == typeof n && u(a, n); return o && (n = o[0], t = o[1]), r.domain(Xu(i, t > 1 ? { floor: function(t) { for (; e(t = n.floor(t));) t = ua(t - 1); return t }, ceil: function(t) { for (; e(t = n.ceil(t));) t = ua(+t + 1); return t } } : n)) }, r.ticks = function(n, t) { var e = Yu(r.domain()),
1666                i = null == n ? u(e, 10) : "number" == typeof n ? u(e, n) : !n.range && [{ range: n }, t]; return i && (n = i[0], t = i[1]), n.range(e[0], ua(+e[1] + 1), 1 > t ? 1 : t) }, r.tickFormat = function() { return e }, r.copy = function() { return ra(n.copy(), t, e) }, Ju(r, n) }
1667
1668    function ua(n) { return new Date(n) }
1669
1670    function ia(n) { return JSON.parse(n.responseText) }
1671
1672    function aa(n) { var t = sa.createRange(); return t.selectNode(sa.body), t.createContextualFragment(n.responseText) }
1673    var oa = { version: "3.5.16" },
1674        la = [].slice,
1675        ca = function(n) { return la.call(n) },
1676        sa = this.document;
1677    if (sa) try { ca(sa.documentElement.childNodes)[0].nodeType } catch (fa) { ca = function(n) { for (var t = n.length, e = new Array(t); t--;) e[t] = n[t]; return e } }
1678    if (Date.now || (Date.now = function() { return +new Date }), sa) try { sa.createElement("DIV").style.setProperty("opacity", 0, "") } catch (ha) { var ga = this.Element.prototype,
1679            pa = ga.setAttribute,
1680            va = ga.setAttributeNS,
1681            da = this.CSSStyleDeclaration.prototype,
1682            ma = da.setProperty;
1683        ga.setAttribute = function(n, t) { pa.call(this, n, t + "") }, ga.setAttributeNS = function(n, t, e) { va.call(this, n, t, e + "") }, da.setProperty = function(n, t, e) { ma.call(this, n, t + "", e) } }
1684    oa.ascending = e, oa.descending = function(n, t) { return n > t ? -1 : t > n ? 1 : t >= n ? 0 : NaN }, oa.min = function(n, t) { var e, r, u = -1,
1685            i = n.length; if (1 === arguments.length) { for (; ++u < i;)
1686                if (null != (r = n[u]) && r >= r) { e = r; break }
1687            for (; ++u < i;) null != (r = n[u]) && e > r && (e = r) } else { for (; ++u < i;)
1688                if (null != (r = t.call(n, n[u], u)) && r >= r) { e = r; break }
1689            for (; ++u < i;) null != (r = t.call(n, n[u], u)) && e > r && (e = r) } return e }, oa.max = function(n, t) { var e, r, u = -1,
1690            i = n.length; if (1 === arguments.length) { for (; ++u < i;)
1691                if (null != (r = n[u]) && r >= r) { e = r; break }
1692            for (; ++u < i;) null != (r = n[u]) && r > e && (e = r) } else { for (; ++u < i;)
1693                if (null != (r = t.call(n, n[u], u)) && r >= r) { e = r; break }
1694            for (; ++u < i;) null != (r = t.call(n, n[u], u)) && r > e && (e = r) } return e }, oa.extent = function(n, t) { var e, r, u, i = -1,
1695            a = n.length; if (1 === arguments.length) { for (; ++i < a;)
1696                if (null != (r = n[i]) && r >= r) { e = u = r; break }
1697            for (; ++i < a;) null != (r = n[i]) && (e > r && (e = r), r > u && (u = r)) } else { for (; ++i < a;)
1698                if (null != (r = t.call(n, n[i], i)) && r >= r) { e = u = r; break }
1699            for (; ++i < a;) null != (r = t.call(n, n[i], i)) && (e > r && (e = r), r > u && (u = r)) } return [e, u] }, oa.sum = function(n, t) { var e, r = 0,
1700            i = n.length,
1701            a = -1; if (1 === arguments.length)
1702            for (; ++a < i;) u(e = +n[a]) && (r += e);
1703        else
1704            for (; ++a < i;) u(e = +t.call(n, n[a], a)) && (r += e); return r }, oa.mean = function(n, t) { var e, i = 0,
1705            a = n.length,
1706            o = -1,
1707            l = a; if (1 === arguments.length)
1708            for (; ++o < a;) u(e = r(n[o])) ? i += e : --l;
1709        else
1710            for (; ++o < a;) u(e = r(t.call(n, n[o], o))) ? i += e : --l; return l ? i / l : void 0 }, oa.quantile = function(n, t) { var e = (n.length - 1) * t + 1,
1711            r = Math.floor(e),
1712            u = +n[r - 1],
1713            i = e - r; return i ? u + i * (n[r] - u) : u }, oa.median = function(n, t) { var i, a = [],
1714            o = n.length,
1715            l = -1; if (1 === arguments.length)
1716            for (; ++l < o;) u(i = r(n[l])) && a.push(i);
1717        else
1718            for (; ++l < o;) u(i = r(t.call(n, n[l], l))) && a.push(i); return a.length ? oa.quantile(a.sort(e), .5) : void 0 }, oa.variance = function(n, t) { var e, i, a = n.length,
1719            o = 0,
1720            l = 0,
1721            c = -1,
1722            s = 0; if (1 === arguments.length)
1723            for (; ++c < a;) u(e = r(n[c])) && (i = e - o, o += i / ++s, l += i * (e - o));
1724        else
1725            for (; ++c < a;) u(e = r(t.call(n, n[c], c))) && (i = e - o, o += i / ++s, l += i * (e - o)); return s > 1 ? l / (s - 1) : void 0 }, oa.deviation = function() { var n = oa.variance.apply(this, arguments); return n ? Math.sqrt(n) : n };
1726    var ya = i(e);
1727    oa.bisectLeft = ya.left, oa.bisect = oa.bisectRight = ya.right, oa.bisector = function(n) { return i(1 === n.length ? function(t, r) { return e(n(t), r) } : n) }, oa.shuffle = function(n, t, e) {
1728        (i = arguments.length) < 3 && (e = n.length, 2 > i && (t = 0)); for (var r, u, i = e - t; i;) u = Math.random() * i-- | 0, r = n[i + t], n[i + t] = n[u + t], n[u + t] = r; return n }, oa.permute = function(n, t) { for (var e = t.length, r = new Array(e); e--;) r[e] = n[t[e]]; return r }, oa.pairs = function(n) { for (var t, e = 0, r = n.length - 1, u = n[0], i = new Array(0 > r ? 0 : r); r > e;) i[e] = [t = u, u = n[++e]]; return i }, oa.transpose = function(n) { if (!(u = n.length)) return []; for (var t = -1, e = oa.min(n, a), r = new Array(e); ++t < e;)
1729            for (var u, i = -1, o = r[t] = new Array(u); ++i < u;) o[i] = n[i][t]; return r }, oa.zip = function() { return oa.transpose(arguments) }, oa.keys = function(n) { var t = []; for (var e in n) t.push(e); return t }, oa.values = function(n) { var t = []; for (var e in n) t.push(n[e]); return t }, oa.entries = function(n) { var t = []; for (var e in n) t.push({ key: e, value: n[e] }); return t }, oa.merge = function(n) { for (var t, e, r, u = n.length, i = -1, a = 0; ++i < u;) a += n[i].length; for (e = new Array(a); --u >= 0;)
1730            for (r = n[u], t = r.length; --t >= 0;) e[--a] = r[t]; return e };
1731    var Ma = Math.abs;
1732    oa.range = function(n, t, e) { if (arguments.length < 3 && (e = 1, arguments.length < 2 && (t = n, n = 0)), (t - n) / e === 1 / 0) throw new Error("infinite range"); var r, u = [],
1733            i = o(Ma(e)),
1734            a = -1; if (n *= i, t *= i, e *= i, 0 > e)
1735            for (;
1736                (r = n + e * ++a) > t;) u.push(r / i);
1737        else
1738            for (;
1739                (r = n + e * ++a) < t;) u.push(r / i); return u }, oa.map = function(n, t) { var e = new c; if (n instanceof c) n.forEach(function(n, t) { e.set(n, t) });
1740        else if (Array.isArray(n)) { var r, u = -1,
1741                i = n.length; if (1 === arguments.length)
1742                for (; ++u < i;) e.set(u, n[u]);
1743            else
1744                for (; ++u < i;) e.set(t.call(n, r = n[u], u), r) } else
1745            for (var a in n) e.set(a, n[a]); return e };
1746    var xa = "__proto__",
1747        ba = "\x00";
1748    l(c, { has: h, get: function(n) { return this._[s(n)] }, set: function(n, t) { return this._[s(n)] = t }, remove: g, keys: p, values: function() { var n = []; for (var t in this._) n.push(this._[t]); return n }, entries: function() { var n = []; for (var t in this._) n.push({ key: f(t), value: this._[t] }); return n }, size: v, empty: d, forEach: function(n) { for (var t in this._) n.call(this, f(t), this._[t]) } }), oa.nest = function() {
1749        function n(t, a, o) { if (o >= i.length) return r ? r.call(u, a) : e ? a.sort(e) : a; for (var l, s, f, h, g = -1, p = a.length, v = i[o++], d = new c; ++g < p;)(h = d.get(l = v(s = a[g]))) ? h.push(s) : d.set(l, [s]); return t ? (s = t(), f = function(e, r) { s.set(e, n(t, r, o)) }) : (s = {}, f = function(e, r) { s[e] = n(t, r, o) }), d.forEach(f), s }
1750
1751        function t(n, e) { if (e >= i.length) return n; var r = [],
1752                u = a[e++]; return n.forEach(function(n, u) { r.push({ key: n, values: t(u, e) }) }), u ? r.sort(function(n, t) { return u(n.key, t.key) }) : r } var e, r, u = {},
1753            i = [],
1754            a = []; return u.map = function(t, e) { return n(e, t, 0) }, u.entries = function(e) { return t(n(oa.map, e, 0), 0) }, u.key = function(n) { return i.push(n), u }, u.sortKeys = function(n) { return a[i.length - 1] = n, u }, u.sortValues = function(n) { return e = n, u }, u.rollup = function(n) { return r = n, u }, u }, oa.set = function(n) { var t = new m; if (n)
1755            for (var e = 0, r = n.length; r > e; ++e) t.add(n[e]); return t }, l(m, { has: h, add: function(n) { return this._[s(n += "")] = !0, n }, remove: g, values: p, size: v, empty: d, forEach: function(n) { for (var t in this._) n.call(this, f(t)) } }), oa.behavior = {}, oa.rebind = function(n, t) { for (var e, r = 1, u = arguments.length; ++r < u;) n[e = arguments[r]] = M(n, t, t[e]); return n };
1756    var _a = ["webkit", "ms", "moz", "Moz", "o", "O"];
1757    oa.dispatch = function() { for (var n = new _, t = -1, e = arguments.length; ++t < e;) n[arguments[t]] = w(n); return n }, _.prototype.on = function(n, t) { var e = n.indexOf("."),
1758            r = ""; if (e >= 0 && (r = n.slice(e + 1), n = n.slice(0, e)), n) return arguments.length < 2 ? this[n].on(r) : this[n].on(r, t); if (2 === arguments.length) { if (null == t)
1759                for (n in this) this.hasOwnProperty(n) && this[n].on(r, null); return this } }, oa.event = null, oa.requote = function(n) { return n.replace(wa, "\\$&") };
1760    var wa = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,
1761        Sa = {}.__proto__ ? function(n, t) { n.__proto__ = t } : function(n, t) { for (var e in t) n[e] = t[e] },
1762        ka = function(n, t) { return t.querySelector(n) },
1763        Na = function(n, t) { return t.querySelectorAll(n) },
1764        Ea = function(n, t) { var e = n.matches || n[x(n, "matchesSelector")]; return (Ea = function(n, t) { return e.call(n, t) })(n, t) };
1765    "function" == typeof Sizzle && (ka = function(n, t) { return Sizzle(n, t)[0] || null }, Na = Sizzle, Ea = Sizzle.matchesSelector), oa.selection = function() { return oa.select(sa.documentElement) };
1766    var Aa = oa.selection.prototype = [];
1767    Aa.select = function(n) { var t, e, r, u, i = [];
1768        n = A(n); for (var a = -1, o = this.length; ++a < o;) { i.push(t = []), t.parentNode = (r = this[a]).parentNode; for (var l = -1, c = r.length; ++l < c;)(u = r[l]) ? (t.push(e = n.call(u, u.__data__, l, a)), e && "__data__" in u && (e.__data__ = u.__data__)) : t.push(null) } return E(i) }, Aa.selectAll = function(n) { var t, e, r = [];
1769        n = C(n); for (var u = -1, i = this.length; ++u < i;)
1770            for (var a = this[u], o = -1, l = a.length; ++o < l;)(e = a[o]) && (r.push(t = ca(n.call(e, e.__data__, o, u))), t.parentNode = e); return E(r) };
1771    var Ca = "http://www.w3.org/1999/xhtml",
1772        za = { svg: "http://www.w3.org/2000/svg", xhtml: Ca, xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" };
1773    oa.ns = { prefix: za, qualify: function(n) { var t = n.indexOf(":"),
1774                e = n; return t >= 0 && "xmlns" !== (e = n.slice(0, t)) && (n = n.slice(t + 1)), za.hasOwnProperty(e) ? { space: za[e], local: n } : n } }, Aa.attr = function(n, t) { if (arguments.length < 2) { if ("string" == typeof n) { var e = this.node(); return n = oa.ns.qualify(n), n.local ? e.getAttributeNS(n.space, n.local) : e.getAttribute(n) } for (t in n) this.each(z(t, n[t])); return this } return this.each(z(n, t)) }, Aa.classed = function(n, t) { if (arguments.length < 2) { if ("string" == typeof n) { var e = this.node(),
1775                    r = (n = T(n)).length,
1776                    u = -1; if (t = e.classList) { for (; ++u < r;)
1777                        if (!t.contains(n[u])) return !1 } else
1778                    for (t = e.getAttribute("class"); ++u < r;)
1779                        if (!q(n[u]).test(t)) return !1; return !0 } for (t in n) this.each(R(t, n[t])); return this } return this.each(R(n, t)) }, Aa.style = function(n, e, r) { var u = arguments.length; if (3 > u) { if ("string" != typeof n) { 2 > u && (e = ""); for (r in n) this.each(P(r, n[r], e)); return this } if (2 > u) { var i = this.node(); return t(i).getComputedStyle(i, null).getPropertyValue(n) }
1780            r = "" } return this.each(P(n, e, r)) }, Aa.property = function(n, t) { if (arguments.length < 2) { if ("string" == typeof n) return this.node()[n]; for (t in n) this.each(U(t, n[t])); return this } return this.each(U(n, t)) }, Aa.text = function(n) { return arguments.length ? this.each("function" == typeof n ? function() { var t = n.apply(this, arguments);
1781            this.textContent = null == t ? "" : t } : null == n ? function() { this.textContent = "" } : function() { this.textContent = n }) : this.node().textContent }, Aa.html = function(n) { return arguments.length ? this.each("function" == typeof n ? function() { var t = n.apply(this, arguments);
1782            this.innerHTML = null == t ? "" : t } : null == n ? function() { this.innerHTML = "" } : function() { this.innerHTML = n }) : this.node().innerHTML }, Aa.append = function(n) { return n = j(n), this.select(function() { return this.appendChild(n.apply(this, arguments)) }) }, Aa.insert = function(n, t) { return n = j(n), t = A(t), this.select(function() { return this.insertBefore(n.apply(this, arguments), t.apply(this, arguments) || null) }) }, Aa.remove = function() { return this.each(F) }, Aa.data = function(n, t) {
1783        function e(n, e) { var r, u, i, a = n.length,
1784                f = e.length,
1785                h = Math.min(a, f),
1786                g = new Array(f),
1787                p = new Array(f),
1788                v = new Array(a); if (t) { var d, m = new c,
1789                    y = new Array(a); for (r = -1; ++r < a;)(u = n[r]) && (m.has(d = t.call(u, u.__data__, r)) ? v[r] = u : m.set(d, u), y[r] = d); for (r = -1; ++r < f;)(u = m.get(d = t.call(e, i = e[r], r))) ? u !== !0 && (g[r] = u, u.__data__ = i) : p[r] = H(i), m.set(d, !0); for (r = -1; ++r < a;) r in y && m.get(y[r]) !== !0 && (v[r] = n[r]) } else { for (r = -1; ++r < h;) u = n[r], i = e[r], u ? (u.__data__ = i, g[r] = u) : p[r] = H(i); for (; f > r; ++r) p[r] = H(e[r]); for (; a > r; ++r) v[r] = n[r] }
1790            p.update = g, p.parentNode = g.parentNode = v.parentNode = n.parentNode, o.push(p), l.push(g), s.push(v) } var r, u, i = -1,
1791            a = this.length; if (!arguments.length) { for (n = new Array(a = (r = this[0]).length); ++i < a;)(u = r[i]) && (n[i] = u.__data__); return n } var o = Z([]),
1792            l = E([]),
1793            s = E([]); if ("function" == typeof n)
1794            for (; ++i < a;) e(r = this[i], n.call(r, r.parentNode.__data__, i));
1795        else
1796            for (; ++i < a;) e(r = this[i], n); return l.enter = function() { return o }, l.exit = function() { return s }, l }, Aa.datum = function(n) { return arguments.length ? this.property("__data__", n) : this.property("__data__") }, Aa.filter = function(n) { var t, e, r, u = []; "function" != typeof n && (n = O(n)); for (var i = 0, a = this.length; a > i; i++) { u.push(t = []), t.parentNode = (e = this[i]).parentNode; for (var o = 0, l = e.length; l > o; o++)(r = e[o]) && n.call(r, r.__data__, o, i) && t.push(r) } return E(u) }, Aa.order = function() { for (var n = -1, t = this.length; ++n < t;)
1797            for (var e, r = this[n], u = r.length - 1, i = r[u]; --u >= 0;)(e = r[u]) && (i && i !== e.nextSibling && i.parentNode.insertBefore(e, i), i = e); return this }, Aa.sort = function(n) { n = I.apply(this, arguments); for (var t = -1, e = this.length; ++t < e;) this[t].sort(n); return this.order() }, Aa.each = function(n) { return Y(this, function(t, e, r) { n.call(t, t.__data__, e, r) }) }, Aa.call = function(n) { var t = ca(arguments); return n.apply(t[0] = this, t), this }, Aa.empty = function() { return !this.node() }, Aa.node = function() { for (var n = 0, t = this.length; t > n; n++)
1798            for (var e = this[n], r = 0, u = e.length; u > r; r++) { var i = e[r]; if (i) return i }
1799        return null }, Aa.size = function() { var n = 0; return Y(this, function() {++n }), n };
1800    var La = [];
1801    oa.selection.enter = Z, oa.selection.enter.prototype = La, La.append = Aa.append, La.empty = Aa.empty, La.node = Aa.node, La.call = Aa.call, La.size = Aa.size, La.select = function(n) { for (var t, e, r, u, i, a = [], o = -1, l = this.length; ++o < l;) { r = (u = this[o]).update, a.push(t = []), t.parentNode = u.parentNode; for (var c = -1, s = u.length; ++c < s;)(i = u[c]) ? (t.push(r[c] = e = n.call(u.parentNode, i.__data__, c, o)), e.__data__ = i.__data__) : t.push(null) } return E(a) }, La.insert = function(n, t) { return arguments.length < 2 && (t = V(this)), Aa.insert.call(this, n, t) }, oa.select = function(t) { var e; return "string" == typeof t ? (e = [ka(t, sa)], e.parentNode = sa.documentElement) : (e = [t], e.parentNode = n(t)), E([e]) }, oa.selectAll = function(n) { var t; return "string" == typeof n ? (t = ca(Na(n, sa)), t.parentNode = sa.documentElement) : (t = ca(n), t.parentNode = null), E([t]) }, Aa.on = function(n, t, e) { var r = arguments.length; if (3 > r) { if ("string" != typeof n) { 2 > r && (t = !1); for (e in n) this.each(X(e, n[e], t)); return this } if (2 > r) return (r = this.node()["__on" + n]) && r._;
1802            e = !1 } return this.each(X(n, t, e)) };
1803    var qa = oa.map({ mouseenter: "mouseover", mouseleave: "mouseout" });
1804    sa && qa.forEach(function(n) { "on" + n in sa && qa.remove(n) });
1805    var Ta, Ra = 0;
1806    oa.mouse = function(n) { return J(n, k()) };
1807    var Da = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
1808    oa.touch = function(n, t, e) { if (arguments.length < 3 && (e = t, t = k().changedTouches), t)
1809            for (var r, u = 0, i = t.length; i > u; ++u)
1810                if ((r = t[u]).identifier === e) return J(n, r) }, oa.behavior.drag = function() {
1811        function n() { this.on("mousedown.drag", i).on("touchstart.drag", a) }
1812
1813        function e(n, t, e, i, a) { return function() {
1814                function o() { var n, e, r = t(h, v);
1815                    r && (n = r[0] - M[0], e = r[1] - M[1], p |= n | e, M = r, g({ type: "drag", x: r[0] + c[0], y: r[1] + c[1], dx: n, dy: e })) }
1816
1817                function l() { t(h, v) && (m.on(i + d, null).on(a + d, null), y(p), g({ type: "dragend" })) } var c, s = this,
1818                    f = oa.event.target.correspondingElement || oa.event.target,
1819                    h = s.parentNode,
1820                    g = r.of(s, arguments),
1821                    p = 0,
1822                    v = n(),
1823                    d = ".drag" + (null == v ? "" : "-" + v),
1824                    m = oa.select(e(f)).on(i + d, o).on(a + d, l),
1825                    y = W(f),
1826                    M = t(h, v);
1827                u ? (c = u.apply(s, arguments), c = [c.x - M[0], c.y - M[1]]) : c = [0, 0], g({ type: "dragstart" }) } } var r = N(n, "drag", "dragstart", "dragend"),
1828            u = null,
1829            i = e(b, oa.mouse, t, "mousemove", "mouseup"),
1830            a = e(G, oa.touch, y, "touchmove", "touchend"); return n.origin = function(t) { return arguments.length ? (u = t, n) : u }, oa.rebind(n, r, "on") }, oa.touches = function(n, t) { return arguments.length < 2 && (t = k().touches), t ? ca(t).map(function(t) { var e = J(n, t); return e.identifier = t.identifier, e }) : [] };
1831    var Pa = 1e-6,
1832        Ua = Pa * Pa,
1833        ja = Math.PI,
1834        Fa = 2 * ja,
1835        Ha = Fa - Pa,
1836        Oa = ja / 2,
1837        Ia = ja / 180,
1838        Ya = 180 / ja,
1839        Za = Math.SQRT2,
1840        Va = 2,
1841        Xa = 4;
1842    oa.interpolateZoom = function(n, t) { var e, r, u = n[0],
1843            i = n[1],
1844            a = n[2],
1845            o = t[0],
1846            l = t[1],
1847            c = t[2],
1848            s = o - u,
1849            f = l - i,
1850            h = s * s + f * f; if (Ua > h) r = Math.log(c / a) / Za, e = function(n) { return [u + n * s, i + n * f, a * Math.exp(Za * n * r)] };
1851        else { var g = Math.sqrt(h),
1852                p = (c * c - a * a + Xa * h) / (2 * a * Va * g),
1853                v = (c * c - a * a - Xa * h) / (2 * c * Va * g),
1854                d = Math.log(Math.sqrt(p * p + 1) - p),
1855                m = Math.log(Math.sqrt(v * v + 1) - v);
1856            r = (m - d) / Za, e = function(n) { var t = n * r,
1857                    e = rn(d),
1858                    o = a / (Va * g) * (e * un(Za * t + d) - en(d)); return [u + o * s, i + o * f, a * e / rn(Za * t + d)] } } return e.duration = 1e3 * r, e }, oa.behavior.zoom = function() {
1859        function n(n) { n.on(L, f).on(Ba + ".zoom", g).on("dblclick.zoom", p).on(R, h) }
1860
1861        function e(n) { return [(n[0] - k.x) / k.k, (n[1] - k.y) / k.k] }
1862
1863        function r(n) { return [n[0] * k.k + k.x, n[1] * k.k + k.y] }
1864
1865        function u(n) { k.k = Math.max(A[0], Math.min(A[1], n)) }
1866
1867        function i(n, t) { t = r(t), k.x += n[0] - t[0], k.y += n[1] - t[1] }
1868
1869        function a(t, e, r, a) { t.__chart__ = { x: k.x, y: k.y, k: k.k }, u(Math.pow(2, a)), i(d = e, r), t = oa.select(t), C > 0 && (t = t.transition().duration(C)), t.call(n.event) }
1870
1871        function o() { b && b.domain(x.range().map(function(n) { return (n - k.x) / k.k }).map(x.invert)), w && w.domain(_.range().map(function(n) { return (n - k.y) / k.k }).map(_.invert)) }
1872
1873        function l(n) { z++ || n({ type: "zoomstart" }) }
1874
1875        function c(n) { o(), n({ type: "zoom", scale: k.k, translate: [k.x, k.y] }) }
1876
1877        function s(n) {--z || (n({ type: "zoomend" }), d = null) }
1878
1879        function f() {
1880            function n() { o = 1, i(oa.mouse(u), h), c(a) }
1881
1882            function r() { f.on(q, null).on(T, null), g(o), s(a) } var u = this,
1883                a = D.of(u, arguments),
1884                o = 0,
1885                f = oa.select(t(u)).on(q, n).on(T, r),
1886                h = e(oa.mouse(u)),
1887                g = W(u);
1888            Il.call(u), l(a) }
1889
1890        function h() {
1891            function n() { var n = oa.touches(p); return g = k.k, n.forEach(function(n) { n.identifier in d && (d[n.identifier] = e(n)) }), n }
1892
1893            function t() { var t = oa.event.target;
1894                oa.select(t).on(x, r).on(b, o), _.push(t); for (var e = oa.event.changedTouches, u = 0, i = e.length; i > u; ++u) d[e[u].identifier] = null; var l = n(),
1895                    c = Date.now(); if (1 === l.length) { if (500 > c - M) { var s = l[0];
1896                        a(p, s, d[s.identifier], Math.floor(Math.log(k.k) / Math.LN2) + 1), S() }
1897                    M = c } else if (l.length > 1) { var s = l[0],
1898                        f = l[1],
1899                        h = s[0] - f[0],
1900                        g = s[1] - f[1];
1901                    m = h * h + g * g } }
1902
1903            function r() { var n, t, e, r, a = oa.touches(p);
1904                Il.call(p); for (var o = 0, l = a.length; l > o; ++o, r = null)
1905                    if (e = a[o], r = d[e.identifier]) { if (t) break;
1906                        n = e, t = r }
1907                if (r) { var s = (s = e[0] - n[0]) * s + (s = e[1] - n[1]) * s,
1908                        f = m && Math.sqrt(s / m);
1909                    n = [(n[0] + e[0]) / 2, (n[1] + e[1]) / 2], t = [(t[0] + r[0]) / 2, (t[1] + r[1]) / 2], u(f * g) }
1910                M = null, i(n, t), c(v) }
1911
1912            function o() { if (oa.event.touches.length) { for (var t = oa.event.changedTouches, e = 0, r = t.length; r > e; ++e) delete d[t[e].identifier]; for (var u in d) return void n() }
1913                oa.selectAll(_).on(y, null), w.on(L, f).on(R, h), N(), s(v) } var g, p = this,
1914                v = D.of(p, arguments),
1915                d = {},
1916                m = 0,
1917                y = ".zoom-" + oa.event.changedTouches[0].identifier,
1918                x = "touchmove" + y,
1919                b = "touchend" + y,
1920                _ = [],
1921                w = oa.select(p),
1922                N = W(p);
1923            t(), l(v), w.on(L, null).on(R, t) }
1924
1925        function g() { var n = D.of(this, arguments);
1926            y ? clearTimeout(y) : (Il.call(this), v = e(d = m || oa.mouse(this)), l(n)), y = setTimeout(function() { y = null, s(n) }, 50), S(), u(Math.pow(2, .002 * $a()) * k.k), i(d, v), c(n) }
1927
1928        function p() { var n = oa.mouse(this),
1929                t = Math.log(k.k) / Math.LN2;
1930            a(this, n, e(n), oa.event.shiftKey ? Math.ceil(t) - 1 : Math.floor(t) + 1) } var v, d, m, y, M, x, b, _, w, k = { x: 0, y: 0, k: 1 },
1931            E = [960, 500],
1932            A = Wa,
1933            C = 250,
1934            z = 0,
1935            L = "mousedown.zoom",
1936            q = "mousemove.zoom",
1937            T = "mouseup.zoom",
1938            R = "touchstart.zoom",
1939            D = N(n, "zoomstart", "zoom", "zoomend"); return Ba || (Ba = "onwheel" in sa ? ($a = function() { return -oa.event.deltaY * (oa.event.deltaMode ? 120 : 1) }, "wheel") : "onmousewheel" in sa ? ($a = function() { return oa.event.wheelDelta }, "mousewheel") : ($a = function() { return -oa.event.detail }, "MozMousePixelScroll")), n.event = function(n) { n.each(function() { var n = D.of(this, arguments),
1940                    t = k;
1941                Hl ? oa.select(this).transition().each("start.zoom", function() { k = this.__chart__ || { x: 0, y: 0, k: 1 }, l(n) }).tween("zoom:zoom", function() { var e = E[0],
1942                        r = E[1],
1943                        u = d ? d[0] : e / 2,
1944                        i = d ? d[1] : r / 2,
1945                        a = oa.interpolateZoom([(u - k.x) / k.k, (i - k.y) / k.k, e / k.k], [(u - t.x) / t.k, (i - t.y) / t.k, e / t.k]); return function(t) { var r = a(t),
1946                            o = e / r[2];
1947                        this.__chart__ = k = { x: u - r[0] * o, y: i - r[1] * o, k: o }, c(n) } }).each("interrupt.zoom", function() { s(n) }).each("end.zoom", function() { s(n) }) : (this.__chart__ = k, l(n), c(n), s(n)) }) }, n.translate = function(t) { return arguments.length ? (k = { x: +t[0], y: +t[1], k: k.k }, o(), n) : [k.x, k.y] }, n.scale = function(t) { return arguments.length ? (k = { x: k.x, y: k.y, k: null }, u(+t), o(), n) : k.k }, n.scaleExtent = function(t) { return arguments.length ? (A = null == t ? Wa : [+t[0], +t[1]], n) : A }, n.center = function(t) { return arguments.length ? (m = t && [+t[0], +t[1]], n) : m }, n.size = function(t) { return arguments.length ? (E = t && [+t[0], +t[1]], n) : E }, n.duration = function(t) { return arguments.length ? (C = +t, n) : C }, n.x = function(t) { return arguments.length ? (b = t, x = t.copy(), k = { x: 0, y: 0, k: 1 }, n) : b }, n.y = function(t) { return arguments.length ? (w = t, _ = t.copy(), k = { x: 0, y: 0, k: 1 }, n) : w }, oa.rebind(n, D, "on") };
1948    var $a, Ba, Wa = [0, 1 / 0];
1949    oa.color = on, on.prototype.toString = function() { return this.rgb() + "" }, oa.hsl = ln;
1950    var Ja = ln.prototype = new on;
1951    Ja.brighter = function(n) { return n = Math.pow(.7, arguments.length ? n : 1), new ln(this.h, this.s, this.l / n) }, Ja.darker = function(n) { return n = Math.pow(.7, arguments.length ? n : 1), new ln(this.h, this.s, n * this.l) }, Ja.rgb = function() { return cn(this.h, this.s, this.l) }, oa.hcl = sn;
1952    var Ga = sn.prototype = new on;
1953    Ga.brighter = function(n) { return new sn(this.h, this.c, Math.min(100, this.l + Ka * (arguments.length ? n : 1))) }, Ga.darker = function(n) { return new sn(this.h, this.c, Math.max(0, this.l - Ka * (arguments.length ? n : 1))) }, Ga.rgb = function() { return fn(this.h, this.c, this.l).rgb() }, oa.lab = hn;
1954    var Ka = 18,
1955        Qa = .95047,
1956        no = 1,
1957        to = 1.08883,
1958        eo = hn.prototype = new on;
1959    eo.brighter = function(n) { return new hn(Math.min(100, this.l + Ka * (arguments.length ? n : 1)), this.a, this.b) }, eo.darker = function(n) { return new hn(Math.max(0, this.l - Ka * (arguments.length ? n : 1)), this.a, this.b) }, eo.rgb = function() { return gn(this.l, this.a, this.b) }, oa.rgb = yn;
1960    var ro = yn.prototype = new on;
1961    ro.brighter = function(n) { n = Math.pow(.7, arguments.length ? n : 1); var t = this.r,
1962            e = this.g,
1963            r = this.b,
1964            u = 30; return t || e || r ? (t && u > t && (t = u), e && u > e && (e = u), r && u > r && (r = u), new yn(Math.min(255, t / n), Math.min(255, e / n), Math.min(255, r / n))) : new yn(u, u, u) }, ro.darker = function(n) { return n = Math.pow(.7, arguments.length ? n : 1), new yn(n * this.r, n * this.g, n * this.b) }, ro.hsl = function() { return wn(this.r, this.g, this.b) }, ro.toString = function() { return "#" + bn(this.r) + bn(this.g) + bn(this.b) };
1965    var uo = oa.map({ aliceblue: 15792383, antiquewhite: 16444375, aqua: 65535, aquamarine: 8388564, azure: 15794175, beige: 16119260, bisque: 16770244, black: 0, blanchedalmond: 16772045, blue: 255, blueviolet: 9055202, brown: 10824234, burlywood: 14596231, cadetblue: 6266528, chartreuse: 8388352, chocolate: 13789470, coral: 16744272, cornflowerblue: 6591981, cornsilk: 16775388, crimson: 14423100, cyan: 65535, darkblue: 139, darkcyan: 35723, darkgoldenrod: 12092939, darkgray: 11119017, darkgreen: 25600, darkgrey: 11119017, darkkhaki: 12433259, darkmagenta: 9109643, darkolivegreen: 5597999, darkorange: 16747520, darkorchid: 10040012, darkred: 9109504, darksalmon: 15308410, darkseagreen: 9419919, darkslateblue: 4734347, darkslategray: 3100495, darkslategrey: 3100495, darkturquoise: 52945, darkviolet: 9699539, deeppink: 16716947, deepskyblue: 49151, dimgray: 6908265, dimgrey: 6908265, dodgerblue: 2003199, firebrick: 11674146, floralwhite: 16775920, forestgreen: 2263842, fuchsia: 16711935, gainsboro: 14474460, ghostwhite: 16316671, gold: 16766720, goldenrod: 14329120, gray: 8421504, green: 32768, greenyellow: 11403055, grey: 8421504, honeydew: 15794160, hotpink: 16738740, indianred: 13458524, indigo: 4915330, ivory: 16777200, khaki: 15787660, lavender: 15132410, lavenderblush: 16773365, lawngreen: 8190976, lemonchiffon: 16775885, lightblue: 11393254, lightcoral: 15761536, lightcyan: 14745599, lightgoldenrodyellow: 16448210, lightgray: 13882323, lightgreen: 9498256, lightgrey: 13882323, lightpink: 16758465, lightsalmon: 16752762, lightseagreen: 2142890, lightskyblue: 8900346, lightslategray: 7833753, lightslategrey: 7833753, lightsteelblue: 11584734, lightyellow: 16777184, lime: 65280, limegreen: 3329330, linen: 16445670, magenta: 16711935, maroon: 8388608, mediumaquamarine: 6737322, mediumblue: 205, mediumorchid: 12211667, mediumpurple: 9662683, mediumseagreen: 3978097, mediumslateblue: 8087790, mediumspringgreen: 64154, mediumturquoise: 4772300, mediumvioletred: 13047173, midnightblue: 1644912, mintcream: 16121850, mistyrose: 16770273, moccasin: 16770229, navajowhite: 16768685, navy: 128, oldlace: 16643558, olive: 8421376, olivedrab: 7048739, orange: 16753920, orangered: 16729344, orchid: 14315734, palegoldenrod: 15657130, palegreen: 10025880, paleturquoise: 11529966, palevioletred: 14381203, papayawhip: 16773077, peachpuff: 16767673, peru: 13468991, pink: 16761035, plum: 14524637, powderblue: 11591910, purple: 8388736, rebeccapurple: 6697881, red: 16711680, rosybrown: 12357519, royalblue: 4286945, saddlebrown: 9127187, salmon: 16416882, sandybrown: 16032864, seagreen: 3050327, seashell: 16774638, sienna: 10506797, silver: 12632256, skyblue: 8900331, slateblue: 6970061, slategray: 7372944, slategrey: 7372944, snow: 16775930, springgreen: 65407, steelblue: 4620980, tan: 13808780, teal: 32896, thistle: 14204888, tomato: 16737095, turquoise: 4251856, violet: 15631086, wheat: 16113331, white: 16777215, whitesmoke: 16119285, yellow: 16776960, yellowgreen: 10145074 });
1966    uo.forEach(function(n, t) { uo.set(n, Mn(t)) }), oa.functor = En, oa.xhr = An(y), oa.dsv = function(n, t) {
1967        function e(n, e, i) { arguments.length < 3 && (i = e, e = null); var a = Cn(n, t, null == e ? r : u(e), i); return a.row = function(n) { return arguments.length ? a.response(null == (e = n) ? r : u(n)) : e }, a }
1968
1969        function r(n) { return e.parse(n.responseText) }
1970
1971        function u(n) { return function(t) { return e.parse(t.responseText, n) } }
1972
1973        function i(t) { return t.map(a).join(n) }
1974
1975        function a(n) { return o.test(n) ? '"' + n.replace(/\"/g, '""') + '"' : n } var o = new RegExp('["' + n + "\n]"),
1976            l = n.charCodeAt(0); return e.parse = function(n, t) { var r; return e.parseRows(n, function(n, e) { if (r) return r(n, e - 1); var u = new Function("d", "return {" + n.map(function(n, t) { return JSON.stringify(n) + ": d[" + t + "]" }).join(",") + "}");
1977                r = t ? function(n, e) { return t(u(n), e) } : u }) }, e.parseRows = function(n, t) {
1978            function e() { if (s >= c) return a; if (u) return u = !1, i; var t = s; if (34 === n.charCodeAt(t)) { for (var e = t; e++ < c;)
1979                        if (34 === n.charCodeAt(e)) { if (34 !== n.charCodeAt(e + 1)) break;++e }
1980                    s = e + 2; var r = n.charCodeAt(e + 1); return 13 === r ? (u = !0, 10 === n.charCodeAt(e + 2) && ++s) : 10 === r && (u = !0), n.slice(t + 1, e).replace(/""/g, '"') } for (; c > s;) { var r = n.charCodeAt(s++),
1981                        o = 1; if (10 === r) u = !0;
1982                    else if (13 === r) u = !0, 10 === n.charCodeAt(s) && (++s, ++o);
1983                    else if (r !== l) continue; return n.slice(t, s - o) } return n.slice(t) } for (var r, u, i = {}, a = {}, o = [], c = n.length, s = 0, f = 0;
1984                (r = e()) !== a;) { for (var h = []; r !== i && r !== a;) h.push(r), r = e();
1985                t && null == (h = t(h, f++)) || o.push(h) } return o }, e.format = function(t) { if (Array.isArray(t[0])) return e.formatRows(t); var r = new m,
1986                u = []; return t.forEach(function(n) { for (var t in n) r.has(t) || u.push(r.add(t)) }), [u.map(a).join(n)].concat(t.map(function(t) { return u.map(function(n) { return a(t[n]) }).join(n) })).join("\n") }, e.formatRows = function(n) { return n.map(i).join("\n") }, e }, oa.csv = oa.dsv(",", "text/csv"), oa.tsv = oa.dsv("	", "text/tab-separated-values");
1987    var io, ao, oo, lo, co = this[x(this, "requestAnimationFrame")] || function(n) { setTimeout(n, 17) };
1988    oa.timer = function() { qn.apply(this, arguments) }, oa.timer.flush = function() { Rn(), Dn() }, oa.round = function(n, t) { return t ? Math.round(n * (t = Math.pow(10, t))) / t : Math.round(n) };
1989    var so = ["y", "z", "a", "f", "p", "n", "\xb5", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"].map(Un);
1990    oa.formatPrefix = function(n, t) { var e = 0; return (n = +n) && (0 > n && (n *= -1), t && (n = oa.round(n, Pn(n, t))), e = 1 + Math.floor(1e-12 + Math.log(n) / Math.LN10), e = Math.max(-24, Math.min(24, 3 * Math.floor((e - 1) / 3)))), so[8 + e / 3] };
1991    var fo = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,
1992        ho = oa.map({ b: function(n) { return n.toString(2) }, c: function(n) { return String.fromCharCode(n) }, o: function(n) { return n.toString(8) }, x: function(n) { return n.toString(16) }, X: function(n) { return n.toString(16).toUpperCase() }, g: function(n, t) { return n.toPrecision(t) }, e: function(n, t) { return n.toExponential(t) }, f: function(n, t) { return n.toFixed(t) }, r: function(n, t) { return (n = oa.round(n, Pn(n, t))).toFixed(Math.max(0, Math.min(20, Pn(n * (1 + 1e-15), t)))) } }),
1993        go = oa.time = {},
1994        po = Date;
1995    Hn.prototype = { getDate: function() { return this._.getUTCDate() }, getDay: function() { return this._.getUTCDay() }, getFullYear: function() { return this._.getUTCFullYear() }, getHours: function() { return this._.getUTCHours() }, getMilliseconds: function() { return this._.getUTCMilliseconds() }, getMinutes: function() { return this._.getUTCMinutes() }, getMonth: function() { return this._.getUTCMonth() }, getSeconds: function() { return this._.getUTCSeconds() }, getTime: function() { return this._.getTime() }, getTimezoneOffset: function() { return 0 }, valueOf: function() { return this._.valueOf() }, setDate: function() { vo.setUTCDate.apply(this._, arguments) }, setDay: function() { vo.setUTCDay.apply(this._, arguments) }, setFullYear: function() { vo.setUTCFullYear.apply(this._, arguments) }, setHours: function() { vo.setUTCHours.apply(this._, arguments) }, setMilliseconds: function() { vo.setUTCMilliseconds.apply(this._, arguments) }, setMinutes: function() { vo.setUTCMinutes.apply(this._, arguments) }, setMonth: function() { vo.setUTCMonth.apply(this._, arguments) }, setSeconds: function() { vo.setUTCSeconds.apply(this._, arguments) }, setTime: function() { vo.setTime.apply(this._, arguments) } };
1996    var vo = Date.prototype;
1997    go.year = On(function(n) { return n = go.day(n), n.setMonth(0, 1), n }, function(n, t) { n.setFullYear(n.getFullYear() + t) }, function(n) { return n.getFullYear() }), go.years = go.year.range, go.years.utc = go.year.utc.range, go.day = On(function(n) { var t = new po(2e3, 0); return t.setFullYear(n.getFullYear(), n.getMonth(), n.getDate()), t }, function(n, t) { n.setDate(n.getDate() + t) }, function(n) { return n.getDate() - 1 }), go.days = go.day.range, go.days.utc = go.day.utc.range, go.dayOfYear = function(n) { var t = go.year(n); return Math.floor((n - t - 6e4 * (n.getTimezoneOffset() - t.getTimezoneOffset())) / 864e5) }, ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"].forEach(function(n, t) { t = 7 - t; var e = go[n] = On(function(n) { return (n = go.day(n)).setDate(n.getDate() - (n.getDay() + t) % 7), n }, function(n, t) { n.setDate(n.getDate() + 7 * Math.floor(t)) }, function(n) { var e = go.year(n).getDay(); return Math.floor((go.dayOfYear(n) + (e + t) % 7) / 7) - (e !== t) });
1998        go[n + "s"] = e.range, go[n + "s"].utc = e.utc.range, go[n + "OfYear"] = function(n) { var e = go.year(n).getDay(); return Math.floor((go.dayOfYear(n) + (e + t) % 7) / 7) } }), go.week = go.sunday, go.weeks = go.sunday.range, go.weeks.utc = go.sunday.utc.range, go.weekOfYear = go.sundayOfYear;
1999    var mo = { "-": "", _: " ", 0: "0" },
2000        yo = /^\s*\d+/,
2001        Mo = /^%/;
2002    oa.locale = function(n) { return { numberFormat: jn(n), timeFormat: Yn(n) } };
2003    var xo = oa.locale({
2004        decimal: ".",
2005        thousands: ",",
2006        grouping: [3],
2007        currency: ["$", ""],
2008        dateTime: "%a %b %e %X %Y",
2009        date: "%m/%d/%Y",
2010        time: "%H:%M:%S",
2011        periods: ["AM", "PM"],
2012        days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
2013        shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
2014        months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
2015        shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
2016    });
2017    oa.format = xo.numberFormat, oa.geo = {}, st.prototype = { s: 0, t: 0, add: function(n) { ft(n, this.t, bo), ft(bo.s, this.s, this), this.s ? this.t += bo.t : this.s = bo.t }, reset: function() { this.s = this.t = 0 }, valueOf: function() { return this.s } };
2018    var bo = new st;
2019    oa.geo.stream = function(n, t) { n && _o.hasOwnProperty(n.type) ? _o[n.type](n, t) : ht(n, t) };
2020    var _o = { Feature: function(n, t) { ht(n.geometry, t) }, FeatureCollection: function(n, t) { for (var e = n.features, r = -1, u = e.length; ++r < u;) ht(e[r].geometry, t) } },
2021        wo = { Sphere: function(n, t) { t.sphere() }, Point: function(n, t) { n = n.coordinates, t.point(n[0], n[1], n[2]) }, MultiPoint: function(n, t) { for (var e = n.coordinates, r = -1, u = e.length; ++r < u;) n = e[r], t.point(n[0], n[1], n[2]) }, LineString: function(n, t) { gt(n.coordinates, t, 0) }, MultiLineString: function(n, t) { for (var e = n.coordinates, r = -1, u = e.length; ++r < u;) gt(e[r], t, 0) }, Polygon: function(n, t) { pt(n.coordinates, t) }, MultiPolygon: function(n, t) { for (var e = n.coordinates, r = -1, u = e.length; ++r < u;) pt(e[r], t) }, GeometryCollection: function(n, t) { for (var e = n.geometries, r = -1, u = e.length; ++r < u;) ht(e[r], t) } };
2022    oa.geo.area = function(n) { return So = 0, oa.geo.stream(n, No), So };
2023    var So, ko = new st,
2024        No = { sphere: function() { So += 4 * ja }, point: b, lineStart: b, lineEnd: b, polygonStart: function() { ko.reset(), No.lineStart = vt }, polygonEnd: function() { var n = 2 * ko;
2025                So += 0 > n ? 4 * ja + n : n, No.lineStart = No.lineEnd = No.point = b } };
2026    oa.geo.bounds = function() {
2027        function n(n, t) { M.push(x = [s = n, h = n]), f > t && (f = t), t > g && (g = t) }
2028
2029        function t(t, e) { var r = dt([t * Ia, e * Ia]); if (m) { var u = yt(m, r),
2030                    i = [u[1], -u[0], 0],
2031                    a = yt(i, u);
2032                bt(a), a = _t(a); var l = t - p,
2033                    c = l > 0 ? 1 : -1,
2034                    v = a[0] * Ya * c,
2035                    d = Ma(l) > 180; if (d ^ (v > c * p && c * t > v)) { var y = a[1] * Ya;
2036                    y > g && (g = y) } else if (v = (v + 360) % 360 - 180, d ^ (v > c * p && c * t > v)) { var y = -a[1] * Ya;
2037                    f > y && (f = y) } else f > e && (f = e), e > g && (g = e);
2038                d ? p > t ? o(s, t) > o(s, h) && (h = t) : o(t, h) > o(s, h) && (s = t) : h >= s ? (s > t && (s = t), t > h && (h = t)) : t > p ? o(s, t) > o(s, h) && (h = t) : o(t, h) > o(s, h) && (s = t) } else n(t, e);
2039            m = r, p = t }
2040
2041        function e() { b.point = t }
2042
2043        function r() { x[0] = s, x[1] = h, b.point = n, m = null }
2044
2045        function u(n, e) { if (m) { var r = n - p;
2046                y += Ma(r) > 180 ? r + (r > 0 ? 360 : -360) : r } else v = n, d = e;
2047            No.point(n, e), t(n, e) }
2048
2049        function i() { No.lineStart() }
2050
2051        function a() { u(v, d), No.lineEnd(), Ma(y) > Pa && (s = -(h = 180)), x[0] = s, x[1] = h, m = null }
2052
2053        function o(n, t) { return (t -= n) < 0 ? t + 360 : t }
2054
2055        function l(n, t) { return n[0] - t[0] }
2056
2057        function c(n, t) { return t[0] <= t[1] ? t[0] <= n && n <= t[1] : n < t[0] || t[1] < n } var s, f, h, g, p, v, d, m, y, M, x, b = { point: n, lineStart: e, lineEnd: r, polygonStart: function() { b.point = u, b.lineStart = i, b.lineEnd = a, y = 0, No.polygonStart() }, polygonEnd: function() { No.polygonEnd(), b.point = n, b.lineStart = e, b.lineEnd = r, 0 > ko ? (s = -(h = 180), f = -(g = 90)) : y > Pa ? g = 90 : -Pa > y && (f = -90), x[0] = s, x[1] = h } }; return function(n) { g = h = -(s = f = 1 / 0), M = [], oa.geo.stream(n, b); var t = M.length; if (t) { M.sort(l); for (var e, r = 1, u = M[0], i = [u]; t > r; ++r) e = M[r], c(e[0], u) || c(e[1], u) ? (o(u[0], e[1]) > o(u[0], u[1]) && (u[1] = e[1]), o(e[0], u[1]) > o(u[0], u[1]) && (u[0] = e[0])) : i.push(u = e); for (var a, e, p = -(1 / 0), t = i.length - 1, r = 0, u = i[t]; t >= r; u = e, ++r) e = i[r], (a = o(u[1], e[0])) > p && (p = a, s = e[0], h = u[1]) } return M = x = null, s === 1 / 0 || f === 1 / 0 ? [
2058                [NaN, NaN],
2059                [NaN, NaN]
2060            ] : [
2061                [s, f],
2062                [h, g]
2063            ] } }(), oa.geo.centroid = function(n) { Eo = Ao = Co = zo = Lo = qo = To = Ro = Do = Po = Uo = 0, oa.geo.stream(n, jo); var t = Do,
2064            e = Po,
2065            r = Uo,
2066            u = t * t + e * e + r * r; return Ua > u && (t = qo, e = To, r = Ro, Pa > Ao && (t = Co, e = zo, r = Lo), u = t * t + e * e + r * r, Ua > u) ? [NaN, NaN] : [Math.atan2(e, t) * Ya, tn(r / Math.sqrt(u)) * Ya] };
2067    var Eo, Ao, Co, zo, Lo, qo, To, Ro, Do, Po, Uo, jo = { sphere: b, point: St, lineStart: Nt, lineEnd: Et, polygonStart: function() { jo.lineStart = At }, polygonEnd: function() { jo.lineStart = Nt } },
2068        Fo = Rt(zt, jt, Ht, [-ja, -ja / 2]),
2069        Ho = 1e9;
2070    oa.geo.clipExtent = function() { var n, t, e, r, u, i, a = { stream: function(n) { return u && (u.valid = !1), u = i(n), u.valid = !0, u }, extent: function(o) { return arguments.length ? (i = Zt(n = +o[0][0], t = +o[0][1], e = +o[1][0], r = +o[1][1]), u && (u.valid = !1, u = null), a) : [
2071                    [n, t],
2072                    [e, r]
2073                ] } }; return a.extent([
2074            [0, 0],
2075            [960, 500]
2076        ]) }, (oa.geo.conicEqualArea = function() { return Vt(Xt) }).raw = Xt, oa.geo.albers = function() { return oa.geo.conicEqualArea().rotate([96, 0]).center([-.6, 38.7]).parallels([29.5, 45.5]).scale(1070) }, oa.geo.albersUsa = function() {
2077        function n(n) { var i = n[0],
2078                a = n[1]; return t = null, e(i, a), t || (r(i, a), t) || u(i, a), t } var t, e, r, u, i = oa.geo.albers(),
2079            a = oa.geo.conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]),
2080            o = oa.geo.conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]),
2081            l = { point: function(n, e) { t = [n, e] } }; return n.invert = function(n) { var t = i.scale(),
2082                e = i.translate(),
2083                r = (n[0] - e[0]) / t,
2084                u = (n[1] - e[1]) / t; return (u >= .12 && .234 > u && r >= -.425 && -.214 > r ? a : u >= .166 && .234 > u && r >= -.214 && -.115 > r ? o : i).invert(n) }, n.stream = function(n) { var t = i.stream(n),
2085                e = a.stream(n),
2086                r = o.stream(n); return { point: function(n, u) { t.point(n, u), e.point(n, u), r.point(n, u) }, sphere: function() { t.sphere(), e.sphere(), r.sphere() }, lineStart: function() { t.lineStart(), e.lineStart(), r.lineStart() }, lineEnd: function() { t.lineEnd(), e.lineEnd(), r.lineEnd() }, polygonStart: function() { t.polygonStart(), e.polygonStart(), r.polygonStart() }, polygonEnd: function() { t.polygonEnd(), e.polygonEnd(), r.polygonEnd() } } }, n.precision = function(t) { return arguments.length ? (i.precision(t), a.precision(t), o.precision(t), n) : i.precision() }, n.scale = function(t) { return arguments.length ? (i.scale(t), a.scale(.35 * t), o.scale(t), n.translate(i.translate())) : i.scale() }, n.translate = function(t) { if (!arguments.length) return i.translate(); var c = i.scale(),
2087                s = +t[0],
2088                f = +t[1]; return e = i.translate(t).clipExtent([
2089                [s - .455 * c, f - .238 * c],
2090                [s + .455 * c, f + .238 * c]
2091            ]).stream(l).point, r = a.translate([s - .307 * c, f + .201 * c]).clipExtent([
2092                [s - .425 * c + Pa, f + .12 * c + Pa],
2093                [s - .214 * c - Pa, f + .234 * c - Pa]
2094            ]).stream(l).point, u = o.translate([s - .205 * c, f + .212 * c]).clipExtent([
2095                [s - .214 * c + Pa, f + .166 * c + Pa],
2096                [s - .115 * c - Pa, f + .234 * c - Pa]
2097            ]).stream(l).point, n }, n.scale(1070) };
2098    var Oo, Io, Yo, Zo, Vo, Xo, $o = { point: b, lineStart: b, lineEnd: b, polygonStart: function() { Io = 0, $o.lineStart = $t }, polygonEnd: function() { $o.lineStart = $o.lineEnd = $o.point = b, Oo += Ma(Io / 2) } },
2099        Bo = { point: Bt, lineStart: b, lineEnd: b, polygonStart: b, polygonEnd: b },
2100        Wo = { point: Gt, lineStart: Kt, lineEnd: Qt, polygonStart: function() { Wo.lineStart = ne }, polygonEnd: function() { Wo.point = Gt, Wo.lineStart = Kt, Wo.lineEnd = Qt } };
2101    oa.geo.path = function() {
2102        function n(n) { return n && ("function" == typeof o && i.pointRadius(+o.apply(this, arguments)), a && a.valid || (a = u(i)), oa.geo.stream(n, a)), i.result() }
2103
2104        function t() { return a = null, n } var e, r, u, i, a, o = 4.5; return n.area = function(n) { return Oo = 0, oa.geo.stream(n, u($o)), Oo }, n.centroid = function(n) { return Co = zo = Lo = qo = To = Ro = Do = Po = Uo = 0, oa.geo.stream(n, u(Wo)), Uo ? [Do / Uo, Po / Uo] : Ro ? [qo / Ro, To / Ro] : Lo ? [Co / Lo, zo / Lo] : [NaN, NaN] }, n.bounds = function(n) { return Vo = Xo = -(Yo = Zo = 1 / 0), oa.geo.stream(n, u(Bo)), [
2105                [Yo, Zo],
2106                [Vo, Xo]
2107            ] }, n.projection = function(n) { return arguments.length ? (u = (e = n) ? n.stream || re(n) : y, t()) : e }, n.context = function(n) { return arguments.length ? (i = null == (r = n) ? new Wt : new te(n), "function" != typeof o && i.pointRadius(o), t()) : r }, n.pointRadius = function(t) { return arguments.length ? (o = "function" == typeof t ? t : (i.pointRadius(+t), +t), n) : o }, n.projection(oa.geo.albersUsa()).context(null) }, oa.geo.transform = function(n) { return { stream: function(t) { var e = new ue(t); for (var r in n) e[r] = n[r]; return e } } }, ue.prototype = { point: function(n, t) { this.stream.point(n, t) }, sphere: function() { this.stream.sphere() }, lineStart: function() { this.stream.lineStart() }, lineEnd: function() { this.stream.lineEnd() }, polygonStart: function() { this.stream.polygonStart() }, polygonEnd: function() { this.stream.polygonEnd() } }, oa.geo.projection = ae, oa.geo.projectionMutator = oe, (oa.geo.equirectangular = function() { return ae(ce) }).raw = ce.invert = ce, oa.geo.rotation = function(n) {
2108        function t(t) { return t = n(t[0] * Ia, t[1] * Ia), t[0] *= Ya, t[1] *= Ya, t } return n = fe(n[0] % 360 * Ia, n[1] * Ia, n.length > 2 ? n[2] * Ia : 0), t.invert = function(t) { return t = n.invert(t[0] * Ia, t[1] * Ia), t[0] *= Ya, t[1] *= Ya, t }, t }, se.invert = ce, oa.geo.circle = function() {
2109        function n() { var n = "function" == typeof r ? r.apply(this, arguments) : r,
2110                t = fe(-n[0] * Ia, -n[1] * Ia, 0).invert,
2111                u = []; return e(null, null, 1, { point: function(n, e) { u.push(n = t(n, e)), n[0] *= Ya, n[1] *= Ya } }), { type: "Polygon", coordinates: [u] } } var t, e, r = [0, 0],
2112            u = 6; return n.origin = function(t) { return arguments.length ? (r = t, n) : r }, n.angle = function(r) { return arguments.length ? (e = ve((t = +r) * Ia, u * Ia), n) : t }, n.precision = function(r) { return arguments.length ? (e = ve(t * Ia, (u = +r) * Ia), n) : u }, n.angle(90) }, oa.geo.distance = function(n, t) { var e, r = (t[0] - n[0]) * Ia,
2113            u = n[1] * Ia,
2114            i = t[1] * Ia,
2115            a = Math.sin(r),
2116            o = Math.cos(r),
2117            l = Math.sin(u),
2118            c = Math.cos(u),
2119            s = Math.sin(i),
2120            f = Math.cos(i); return Math.atan2(Math.sqrt((e = f * a) * e + (e = c * s - l * f * o) * e), l * s + c * f * o) }, oa.geo.graticule = function() {
2121        function n() { return { type: "MultiLineString", coordinates: t() } }
2122
2123        function t() { return oa.range(Math.ceil(i / d) * d, u, d).map(h).concat(oa.range(Math.ceil(c / m) * m, l, m).map(g)).concat(oa.range(Math.ceil(r / p) * p, e, p).filter(function(n) { return Ma(n % d) > Pa }).map(s)).concat(oa.range(Math.ceil(o / v) * v, a, v).filter(function(n) { return Ma(n % m) > Pa }).map(f)) } var e, r, u, i, a, o, l, c, s, f, h, g, p = 10,
2124            v = p,
2125            d = 90,
2126            m = 360,
2127            y = 2.5; return n.lines = function() { return t().map(function(n) { return { type: "LineString", coordinates: n } }) }, n.outline = function() { return { type: "Polygon", coordinates: [h(i).concat(g(l).slice(1), h(u).reverse().slice(1), g(c).reverse().slice(1))] } }, n.extent = function(t) { return arguments.length ? n.majorExtent(t).minorExtent(t) : n.minorExtent() }, n.majorExtent = function(t) { return arguments.length ? (i = +t[0][0], u = +t[1][0], c = +t[0][1], l = +t[1][1], i > u && (t = i, i = u, u = t), c > l && (t = c, c = l, l = t), n.precision(y)) : [
2128                [i, c],
2129                [u, l]
2130            ] }, n.minorExtent = function(t) { return arguments.length ? (r = +t[0][0], e = +t[1][0], o = +t[0][1], a = +t[1][1], r > e && (t = r, r = e, e = t), o > a && (t = o, o = a, a = t), n.precision(y)) : [
2131                [r, o],
2132                [e, a]
2133            ] }, n.step = function(t) { return arguments.length ? n.majorStep(t).minorStep(t) : n.minorStep() }, n.majorStep = function(t) { return arguments.length ? (d = +t[0], m = +t[1], n) : [d, m] }, n.minorStep = function(t) { return arguments.length ? (p = +t[0], v = +t[1], n) : [p, v] }, n.precision = function(t) { return arguments.length ? (y = +t, s = me(o, a, 90), f = ye(r, e, y), h = me(c, l, 90), g = ye(i, u, y), n) : y }, n.majorExtent([
2134            [-180, -90 + Pa],
2135            [180, 90 - Pa]
2136        ]).minorExtent([
2137            [-180, -80 - Pa],
2138            [180, 80 + Pa]
2139        ]) }, oa.geo.greatArc = function() {
2140        function n() { return { type: "LineString", coordinates: [t || r.apply(this, arguments), e || u.apply(this, arguments)] } } var t, e, r = Me,
2141            u = xe; return n.distance = function() { return oa.geo.distance(t || r.apply(this, arguments), e || u.apply(this, arguments)) }, n.source = function(e) { return arguments.length ? (r = e, t = "function" == typeof e ? null : e, n) : r }, n.target = function(t) { return arguments.length ? (u = t, e = "function" == typeof t ? null : t, n) : u }, n.precision = function() { return arguments.length ? n : 0 }, n }, oa.geo.interpolate = function(n, t) { return be(n[0] * Ia, n[1] * Ia, t[0] * Ia, t[1] * Ia) }, oa.geo.length = function(n) { return Jo = 0, oa.geo.stream(n, Go), Jo };
2142    var Jo, Go = { sphere: b, point: b, lineStart: _e, lineEnd: b, polygonStart: b, polygonEnd: b },
2143        Ko = we(function(n) { return Math.sqrt(2 / (1 + n)) }, function(n) { return 2 * Math.asin(n / 2) });
2144    (oa.geo.azimuthalEqualArea = function() { return ae(Ko) }).raw = Ko;
2145    var Qo = we(function(n) { var t = Math.acos(n); return t && t / Math.sin(t) }, y);
2146    (oa.geo.azimuthalEquidistant = function() { return ae(Qo) }).raw = Qo, (oa.geo.conicConformal = function() { return Vt(Se) }).raw = Se, (oa.geo.conicEquidistant = function() { return Vt(ke) }).raw = ke;
2147    var nl = we(function(n) { return 1 / n }, Math.atan);
2148    (oa.geo.gnomonic = function() { return ae(nl) }).raw = nl, Ne.invert = function(n, t) { return [n, 2 * Math.atan(Math.exp(t)) - Oa] }, (oa.geo.mercator = function() { return Ee(Ne) }).raw = Ne;
2149    var tl = we(function() { return 1 }, Math.asin);
2150    (oa.geo.orthographic = function() { return ae(tl) }).raw = tl;
2151    var el = we(function(n) { return 1 / (1 + n) }, function(n) { return 2 * Math.atan(n) });
2152    (oa.geo.stereographic = function() { return ae(el) }).raw = el, Ae.invert = function(n, t) { return [-t, 2 * Math.atan(Math.exp(n)) - Oa] }, (oa.geo.transverseMercator = function() { var n = Ee(Ae),
2153            t = n.center,
2154            e = n.rotate; return n.center = function(n) { return n ? t([-n[1], n[0]]) : (n = t(), [n[1], -n[0]]) }, n.rotate = function(n) { return n ? e([n[0], n[1], n.length > 2 ? n[2] + 90 : 90]) : (n = e(), [n[0], n[1], n[2] - 90]) }, e([0, 0, 90]) }).raw = Ae, oa.geom = {}, oa.geom.hull = function(n) {
2155        function t(n) { if (n.length < 3) return []; var t, u = En(e),
2156                i = En(r),
2157                a = n.length,
2158                o = [],
2159                l = []; for (t = 0; a > t; t++) o.push([+u.call(this, n[t], t), +i.call(this, n[t], t), t]); for (o.sort(qe), t = 0; a > t; t++) l.push([o[t][0], -o[t][1]]); var c = Le(o),
2160                s = Le(l),
2161                f = s[0] === c[0],
2162                h = s[s.length - 1] === c[c.length - 1],
2163                g = []; for (t = c.length - 1; t >= 0; --t) g.push(n[o[c[t]][2]]); for (t = +f; t < s.length - h; ++t) g.push(n[o[s[t]][2]]); return g } var e = Ce,
2164            r = ze; return arguments.length ? t(n) : (t.x = function(n) { return arguments.length ? (e = n, t) : e }, t.y = function(n) { return arguments.length ? (r = n, t) : r }, t) }, oa.geom.polygon = function(n) { return Sa(n, rl), n };
2165    var rl = oa.geom.polygon.prototype = [];
2166    rl.area = function() { for (var n, t = -1, e = this.length, r = this[e - 1], u = 0; ++t < e;) n = r, r = this[t], u += n[1] * r[0] - n[0] * r[1]; return .5 * u }, rl.centroid = function(n) { var t, e, r = -1,
2167            u = this.length,
2168            i = 0,
2169            a = 0,
2170            o = this[u - 1]; for (arguments.length || (n = -1 / (6 * this.area())); ++r < u;) t = o, o = this[r], e = t[0] * o[1] - o[0] * t[1], i += (t[0] + o[0]) * e, a += (t[1] + o[1]) * e; return [i * n, a * n] }, rl.clip = function(n) { for (var t, e, r, u, i, a, o = De(n), l = -1, c = this.length - De(this), s = this[c - 1]; ++l < c;) { for (t = n.slice(), n.length = 0, u = this[l], i = t[(r = t.length - o) - 1], e = -1; ++e < r;) a = t[e], Te(a, s, u) ? (Te(i, s, u) || n.push(Re(i, a, s, u)), n.push(a)) : Te(i, s, u) && n.push(Re(i, a, s, u)), i = a;
2171            o && n.push(n[0]), s = u } return n };
2172    var ul, il, al, ol, ll, cl = [],
2173        sl = [];
2174    Ye.prototype.prepare = function() { for (var n, t = this.edges, e = t.length; e--;) n = t[e].edge, n.b && n.a || t.splice(e, 1); return t.sort(Ve), t.length }, tr.prototype = { start: function() { return this.edge.l === this.site ? this.edge.a : this.edge.b }, end: function() { return this.edge.l === this.site ? this.edge.b : this.edge.a } }, er.prototype = { insert: function(n, t) { var e, r, u; if (n) { if (t.P = n, t.N = n.N, n.N && (n.N.P = t), n.N = t, n.R) { for (n = n.R; n.L;) n = n.L;
2175                    n.L = t } else n.R = t;
2176                e = n } else this._ ? (n = ar(this._), t.P = null, t.N = n, n.P = n.L = t, e = n) : (t.P = t.N = null, this._ = t, e = null); for (t.L = t.R = null, t.U = e, t.C = !0, n = t; e && e.C;) r = e.U, e === r.L ? (u = r.R, u && u.C ? (e.C = u.C = !1, r.C = !0, n = r) : (n === e.R && (ur(this, e), n = e, e = n.U), e.C = !1, r.C = !0, ir(this, r))) : (u = r.L, u && u.C ? (e.C = u.C = !1, r.C = !0, n = r) : (n === e.L && (ir(this, e), n = e, e = n.U), e.C = !1, r.C = !0, ur(this, r))), e = n.U;
2177            this._.C = !1 }, remove: function(n) { n.N && (n.N.P = n.P), n.P && (n.P.N = n.N), n.N = n.P = null; var t, e, r, u = n.U,
2178                i = n.L,
2179                a = n.R; if (e = i ? a ? ar(a) : i : a, u ? u.L === n ? u.L = e : u.R = e : this._ = e, i && a ? (r = e.C, e.C = n.C, e.L = i, i.U = e, e !== a ? (u = e.U, e.U = n.U, n = e.R, u.L = n, e.R = a, a.U = e) : (e.U = u, u = e, n = e.R)) : (r = n.C, n = e), n && (n.U = u), !r) { if (n && n.C) return void(n.C = !1);
2180                do { if (n === this._) break; if (n === u.L) { if (t = u.R, t.C && (t.C = !1, u.C = !0, ur(this, u), t = u.R), t.L && t.L.C || t.R && t.R.C) { t.R && t.R.C || (t.L.C = !1, t.C = !0, ir(this, t), t = u.R), t.C = u.C, u.C = t.R.C = !1, ur(this, u), n = this._; break } } else if (t = u.L, t.C && (t.C = !1, u.C = !0, ir(this, u), t = u.L), t.L && t.L.C || t.R && t.R.C) { t.L && t.L.C || (t.R.C = !1, t.C = !0, ur(this, t), t = u.L), t.C = u.C, u.C = t.L.C = !1, ir(this, u), n = this._; break }
2181                    t.C = !0, n = u, u = u.U } while (!n.C);
2182                n && (n.C = !1) } } }, oa.geom.voronoi = function(n) {
2183        function t(n) { var t = new Array(n.length),
2184                r = o[0][0],
2185                u = o[0][1],
2186                i = o[1][0],
2187                a = o[1][1]; return or(e(n), o).cells.forEach(function(e, o) { var l = e.edges,
2188                    c = e.site,
2189                    s = t[o] = l.length ? l.map(function(n) { var t = n.start(); return [t.x, t.y] }) : c.x >= r && c.x <= i && c.y >= u && c.y <= a ? [
2190                        [r, a],
2191                        [i, a],
2192                        [i, u],
2193                        [r, u]
2194                    ] : [];
2195                s.point = n[o] }), t }
2196
2197        function e(n) { return n.map(function(n, t) { return { x: Math.round(i(n, t) / Pa) * Pa, y: Math.round(a(n, t) / Pa) * Pa, i: t } }) } var r = Ce,
2198            u = ze,
2199            i = r,
2200            a = u,
2201            o = fl; return n ? t(n) : (t.links = function(n) { return or(e(n)).edges.filter(function(n) { return n.l && n.r }).map(function(t) { return { source: n[t.l.i], target: n[t.r.i] } }) }, t.triangles = function(n) { var t = []; return or(e(n)).cells.forEach(function(e, r) { for (var u, i, a = e.site, o = e.edges.sort(Ve), l = -1, c = o.length, s = o[c - 1].edge, f = s.l === a ? s.r : s.l; ++l < c;) u = s, i = f, s = o[l].edge, f = s.l === a ? s.r : s.l, r < i.i && r < f.i && cr(a, i, f) < 0 && t.push([n[r], n[i.i], n[f.i]]) }), t }, t.x = function(n) { return arguments.length ? (i = En(r = n), t) : r }, t.y = function(n) { return arguments.length ? (a = En(u = n), t) : u }, t.clipExtent = function(n) { return arguments.length ? (o = null == n ? fl : n, t) : o === fl ? null : o }, t.size = function(n) { return arguments.length ? t.clipExtent(n && [
2202                [0, 0], n
2203            ]) : o === fl ? null : o && o[1] }, t) };
2204    var fl = [
2205        [-1e6, -1e6],
2206        [1e6, 1e6]
2207    ];
2208    oa.geom.delaunay = function(n) { return oa.geom.voronoi().triangles(n) }, oa.geom.quadtree = function(n, t, e, r, u) {
2209        function i(n) {
2210            function i(n, t, e, r, u, i, a, o) { if (!isNaN(e) && !isNaN(r))
2211                    if (n.leaf) { var l = n.x,
2212                            s = n.y; if (null != l)
2213                            if (Ma(l - e) + Ma(s - r) < .01) c(n, t, e, r, u, i, a, o);
2214                            else { var f = n.point;
2215                                n.x = n.y = n.point = null, c(n, f, l, s, u, i, a, o), c(n, t, e, r, u, i, a, o) }
2216                        else n.x = e, n.y = r, n.point = t } else c(n, t, e, r, u, i, a, o) }
2217
2218            function c(n, t, e, r, u, a, o, l) { var c = .5 * (u + o),
2219                    s = .5 * (a + l),
2220                    f = e >= c,
2221                    h = r >= s,
2222                    g = h << 1 | f;
2223                n.leaf = !1, n = n.nodes[g] || (n.nodes[g] = hr()), f ? u = c : o = c, h ? a = s : l = s, i(n, t, e, r, u, a, o, l) } var s, f, h, g, p, v, d, m, y, M = En(o),
2224                x = En(l); if (null != t) v = t, d = e, m = r, y = u;
2225            else if (m = y = -(v = d = 1 / 0), f = [], h = [], p = n.length, a)
2226                for (g = 0; p > g; ++g) s = n[g], s.x < v && (v = s.x), s.y < d && (d = s.y), s.x > m && (m = s.x), s.y > y && (y = s.y), f.push(s.x), h.push(s.y);
2227            else
2228                for (g = 0; p > g; ++g) { var b = +M(s = n[g], g),
2229                        _ = +x(s, g);
2230                    v > b && (v = b), d > _ && (d = _), b > m && (m = b), _ > y && (y = _), f.push(b), h.push(_) }
2231            var w = m - v,
2232                S = y - d;
2233            w > S ? y = d + w : m = v + S; var k = hr(); if (k.add = function(n) { i(k, n, +M(n, ++g), +x(n, g), v, d, m, y) }, k.visit = function(n) { gr(n, k, v, d, m, y) }, k.find = function(n) { return pr(k, n[0], n[1], v, d, m, y) }, g = -1, null == t) { for (; ++g < p;) i(k, n[g], f[g], h[g], v, d, m, y);--g } else n.forEach(k.add); return f = h = n = s = null, k } var a, o = Ce,
2234            l = ze; return (a = arguments.length) ? (o = sr, l = fr, 3 === a && (u = e, r = t, e = t = 0), i(n)) : (i.x = function(n) { return arguments.length ? (o = n, i) : o }, i.y = function(n) { return arguments.length ? (l = n, i) : l }, i.extent = function(n) { return arguments.length ? (null == n ? t = e = r = u = null : (t = +n[0][0], e = +n[0][1], r = +n[1][0], u = +n[1][1]), i) : null == t ? null : [
2235                [t, e],
2236                [r, u]
2237            ] }, i.size = function(n) { return arguments.length ? (null == n ? t = e = r = u = null : (t = e = 0, r = +n[0], u = +n[1]), i) : null == t ? null : [r - t, u - e] }, i) }, oa.interpolateRgb = vr, oa.interpolateObject = dr, oa.interpolateNumber = mr, oa.interpolateString = yr;
2238    var hl = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
2239        gl = new RegExp(hl.source, "g");
2240    oa.interpolate = Mr, oa.interpolators = [function(n, t) { var e = typeof t; return ("string" === e ? uo.has(t.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(t) ? vr : yr : t instanceof on ? vr : Array.isArray(t) ? xr : "object" === e && isNaN(t) ? dr : mr)(n, t) }], oa.interpolateArray = xr;
2241    var pl = function() { return y },
2242        vl = oa.map({ linear: pl, poly: Er, quad: function() { return Sr }, cubic: function() { return kr }, sin: function() { return Ar }, exp: function() { return Cr }, circle: function() { return zr }, elastic: Lr, back: qr, bounce: function() { return Tr } }),
2243        dl = oa.map({ "in": y, out: _r, "in-out": wr, "out-in": function(n) { return wr(_r(n)) } });
2244    oa.ease = function(n) { var t = n.indexOf("-"),
2245            e = t >= 0 ? n.slice(0, t) : n,
2246            r = t >= 0 ? n.slice(t + 1) : "in"; return e = vl.get(e) || pl, r = dl.get(r) || y, br(r(e.apply(null, la.call(arguments, 1)))) }, oa.interpolateHcl = Rr, oa.interpolateHsl = Dr, oa.interpolateLab = Pr, oa.interpolateRound = Ur, oa.transform = function(n) { var t = sa.createElementNS(oa.ns.prefix.svg, "g"); return (oa.transform = function(n) { if (null != n) { t.setAttribute("transform", n); var e = t.transform.baseVal.consolidate() } return new jr(e ? e.matrix : ml) })(n) }, jr.prototype.toString = function() { return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")" };
2247    var ml = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };
2248    oa.interpolateTransform = $r, oa.layout = {}, oa.layout.bundle = function() { return function(n) { for (var t = [], e = -1, r = n.length; ++e < r;) t.push(Jr(n[e])); return t } }, oa.layout.chord = function() {
2249        function n() { var n, c, f, h, g, p = {},
2250                v = [],
2251                d = oa.range(i),
2252                m = []; for (e = [], r = [], n = 0, h = -1; ++h < i;) { for (c = 0, g = -1; ++g < i;) c += u[h][g];
2253                v.push(c), m.push(oa.range(i)), n += c } for (a && d.sort(function(n, t) { return a(v[n], v[t]) }), o && m.forEach(function(n, t) { n.sort(function(n, e) { return o(u[t][n], u[t][e]) }) }), n = (Fa - s * i) / n, c = 0, h = -1; ++h < i;) { for (f = c, g = -1; ++g < i;) { var y = d[h],
2254                        M = m[y][g],
2255                        x = u[y][M],
2256                        b = c,
2257                        _ = c += x * n;
2258                    p[y + "-" + M] = { index: y, subindex: M, startAngle: b, endAngle: _, value: x } }
2259                r[y] = { index: y, startAngle: f, endAngle: c, value: v[y] }, c += s } for (h = -1; ++h < i;)
2260                for (g = h - 1; ++g < i;) { var w = p[h + "-" + g],
2261                        S = p[g + "-" + h];
2262                    (w.value || S.value) && e.push(w.value < S.value ? { source: S, target: w } : { source: w, target: S }) }
2263            l && t() }
2264
2265        function t() { e.sort(function(n, t) { return l((n.source.value + n.target.value) / 2, (t.source.value + t.target.value) / 2) }) } var e, r, u, i, a, o, l, c = {},
2266            s = 0; return c.matrix = function(n) { return arguments.length ? (i = (u = n) && u.length, e = r = null, c) : u }, c.padding = function(n) { return arguments.length ? (s = n, e = r = null, c) : s }, c.sortGroups = function(n) { return arguments.length ? (a = n, e = r = null, c) : a }, c.sortSubgroups = function(n) { return arguments.length ? (o = n, e = null, c) : o }, c.sortChords = function(n) { return arguments.length ? (l = n, e && t(), c) : l }, c.chords = function() { return e || n(), e }, c.groups = function() { return r || n(), r }, c }, oa.layout.force = function() {
2267        function n(n) { return function(t, e, r, u) { if (t.point !== n) { var i = t.cx - n.x,
2268                        a = t.cy - n.y,
2269                        o = u - e,
2270                        l = i * i + a * a; if (l > o * o / m) { if (v > l) { var c = t.charge / l;
2271                            n.px -= i * c, n.py -= a * c } return !0 } if (t.point && l && v > l) { var c = t.pointCharge / l;
2272                        n.px -= i * c, n.py -= a * c } } return !t.charge } }
2273
2274        function t(n) { n.px = oa.event.x, n.py = oa.event.y, l.resume() } var e, r, u, i, a, o, l = {},
2275            c = oa.dispatch("start", "tick", "end"),
2276            s = [1, 1],
2277            f = .9,
2278            h = yl,
2279            g = Ml,
2280            p = -30,
2281            v = xl,
2282            d = .1,
2283            m = .64,
2284            M = [],
2285            x = []; return l.tick = function() { if ((u *= .99) < .005) return e = null, c.end({ type: "end", alpha: u = 0 }), !0; var t, r, l, h, g, v, m, y, b, _ = M.length,
2286                w = x.length; for (r = 0; w > r; ++r) l = x[r], h = l.source, g = l.target, y = g.x - h.x, b = g.y - h.y, (v = y * y + b * b) && (v = u * a[r] * ((v = Math.sqrt(v)) - i[r]) / v, y *= v, b *= v, g.x -= y * (m = h.weight + g.weight ? h.weight / (h.weight + g.weight) : .5), g.y -= b * m, h.x += y * (m = 1 - m), h.y += b * m); if ((m = u * d) && (y = s[0] / 2, b = s[1] / 2, r = -1, m))
2287                for (; ++r < _;) l = M[r], l.x += (y - l.x) * m, l.y += (b - l.y) * m; if (p)
2288                for (ru(t = oa.geom.quadtree(M), u, o), r = -1; ++r < _;)(l = M[r]).fixed || t.visit(n(l)); for (r = -1; ++r < _;) l = M[r], l.fixed ? (l.x = l.px, l.y = l.py) : (l.x -= (l.px - (l.px = l.x)) * f, l.y -= (l.py - (l.py = l.y)) * f);
2289            c.tick({ type: "tick", alpha: u }) }, l.nodes = function(n) { return arguments.length ? (M = n, l) : M }, l.links = function(n) { return arguments.length ? (x = n, l) : x }, l.size = function(n) { return arguments.length ? (s = n, l) : s }, l.linkDistance = function(n) { return arguments.length ? (h = "function" == typeof n ? n : +n, l) : h }, l.distance = l.linkDistance, l.linkStrength = function(n) { return arguments.length ? (g = "function" == typeof n ? n : +n, l) : g }, l.friction = function(n) { return arguments.length ? (f = +n, l) : f }, l.charge = function(n) { return arguments.length ? (p = "function" == typeof n ? n : +n, l) : p }, l.chargeDistance = function(n) { return arguments.length ? (v = n * n, l) : Math.sqrt(v) }, l.gravity = function(n) { return arguments.length ? (d = +n, l) : d }, l.theta = function(n) { return arguments.length ? (m = n * n, l) : Math.sqrt(m) }, l.alpha = function(n) { return arguments.length ? (n = +n, u ? n > 0 ? u = n : (e.c = null, e.t = NaN, e = null, c.end({ type: "end", alpha: u = 0 })) : n > 0 && (c.start({ type: "start", alpha: u = n }), e = qn(l.tick)), l) : u }, l.start = function() {
2290            function n(n, r) { if (!e) { for (e = new Array(u), l = 0; u > l; ++l) e[l] = []; for (l = 0; c > l; ++l) { var i = x[l];
2291                        e[i.source.index].push(i.target), e[i.target.index].push(i.source) } } for (var a, o = e[t], l = -1, s = o.length; ++l < s;)
2292                    if (!isNaN(a = o[l][n])) return a;
2293                return Math.random() * r } var t, e, r, u = M.length,
2294                c = x.length,
2295                f = s[0],
2296                v = s[1]; for (t = 0; u > t; ++t)(r = M[t]).index = t, r.weight = 0; for (t = 0; c > t; ++t) r = x[t], "number" == typeof r.source && (r.source = M[r.source]), "number" == typeof r.target && (r.target = M[r.target]), ++r.source.weight, ++r.target.weight; for (t = 0; u > t; ++t) r = M[t], isNaN(r.x) && (r.x = n("x", f)), isNaN(r.y) && (r.y = n("y", v)), isNaN(r.px) && (r.px = r.x), isNaN(r.py) && (r.py = r.y); if (i = [], "function" == typeof h)
2297                for (t = 0; c > t; ++t) i[t] = +h.call(this, x[t], t);
2298            else
2299                for (t = 0; c > t; ++t) i[t] = h; if (a = [], "function" == typeof g)
2300                for (t = 0; c > t; ++t) a[t] = +g.call(this, x[t], t);
2301            else
2302                for (t = 0; c > t; ++t) a[t] = g; if (o = [], "function" == typeof p)
2303                for (t = 0; u > t; ++t) o[t] = +p.call(this, M[t], t);
2304            else
2305                for (t = 0; u > t; ++t) o[t] = p; return l.resume() }, l.resume = function() { return l.alpha(.1) }, l.stop = function() { return l.alpha(0) }, l.drag = function() { return r || (r = oa.behavior.drag().origin(y).on("dragstart.force", Qr).on("drag.force", t).on("dragend.force", nu)), arguments.length ? void this.on("mouseover.force", tu).on("mouseout.force", eu).call(r) : r }, oa.rebind(l, c, "on") };
2306    var yl = 20,
2307        Ml = 1,
2308        xl = 1 / 0;
2309    oa.layout.hierarchy = function() {
2310        function n(u) { var i, a = [u],
2311                o = []; for (u.depth = 0; null != (i = a.pop());)
2312                if (o.push(i), (c = e.call(n, i, i.depth)) && (l = c.length)) { for (var l, c, s; --l >= 0;) a.push(s = c[l]), s.parent = i, s.depth = i.depth + 1;
2313                    r && (i.value = 0), i.children = c } else r && (i.value = +r.call(n, i, i.depth) || 0), delete i.children;
2314            return au(u, function(n) { var e, u;
2315                t && (e = n.children) && e.sort(t), r && (u = n.parent) && (u.value += n.value) }), o } var t = cu,
2316            e = ou,
2317            r = lu; return n.sort = function(e) { return arguments.length ? (t = e, n) : t }, n.children = function(t) { return arguments.length ? (e = t, n) : e }, n.value = function(t) { return arguments.length ? (r = t, n) : r }, n.revalue = function(t) { return r && (iu(t, function(n) { n.children && (n.value = 0) }), au(t, function(t) { var e;
2318                t.children || (t.value = +r.call(n, t, t.depth) || 0), (e = t.parent) && (e.value += t.value) })), t }, n }, oa.layout.partition = function() {
2319        function n(t, e, r, u) { var i = t.children; if (t.x = e, t.y = t.depth * u, t.dx = r, t.dy = u, i && (a = i.length)) { var a, o, l, c = -1; for (r = t.value ? r / t.value : 0; ++c < a;) n(o = i[c], e, l = o.value * r, u), e += l } }
2320
2321        function t(n) { var e = n.children,
2322                r = 0; if (e && (u = e.length))
2323                for (var u, i = -1; ++i < u;) r = Math.max(r, t(e[i])); return 1 + r }
2324
2325        function e(e, i) { var a = r.call(this, e, i); return n(a[0], 0, u[0], u[1] / t(a[0])), a } var r = oa.layout.hierarchy(),
2326            u = [1, 1]; return e.size = function(n) { return arguments.length ? (u = n, e) : u }, uu(e, r) }, oa.layout.pie = function() {
2327        function n(a) { var o, l = a.length,
2328                c = a.map(function(e, r) { return +t.call(n, e, r) }),
2329                s = +("function" == typeof r ? r.apply(this, arguments) : r),
2330                f = ("function" == typeof u ? u.apply(this, arguments) : u) - s,
2331                h = Math.min(Math.abs(f) / l, +("function" == typeof i ? i.apply(this, arguments) : i)),
2332                g = h * (0 > f ? -1 : 1),
2333                p = oa.sum(c),
2334                v = p ? (f - l * g) / p : 0,
2335                d = oa.range(l),
2336                m = []; return null != e && d.sort(e === bl ? function(n, t) { return c[t] - c[n] } : function(n, t) { return e(a[n], a[t]) }), d.forEach(function(n) { m[n] = { data: a[n], value: o = c[n], startAngle: s, endAngle: s += o * v + g, padAngle: h } }), m } var t = Number,
2337            e = bl,
2338            r = 0,
2339            u = Fa,
2340            i = 0; return n.value = function(e) { return arguments.length ? (t = e, n) : t }, n.sort = function(t) { return arguments.length ? (e = t, n) : e }, n.startAngle = function(t) { return arguments.length ? (r = t, n) : r }, n.endAngle = function(t) { return arguments.length ? (u = t, n) : u }, n.padAngle = function(t) { return arguments.length ? (i = t, n) : i }, n };
2341    var bl = {};
2342    oa.layout.stack = function() {
2343        function n(o, l) { if (!(h = o.length)) return o; var c = o.map(function(e, r) { return t.call(n, e, r) }),
2344                s = c.map(function(t) { return t.map(function(t, e) { return [i.call(n, t, e), a.call(n, t, e)] }) }),
2345                f = e.call(n, s, l);
2346            c = oa.permute(c, f), s = oa.permute(s, f); var h, g, p, v, d = r.call(n, s, l),
2347                m = c[0].length; for (p = 0; m > p; ++p)
2348                for (u.call(n, c[0][p], v = d[p], s[0][p][1]), g = 1; h > g; ++g) u.call(n, c[g][p], v += s[g - 1][p][1], s[g][p][1]); return o } var t = y,
2349            e = pu,
2350            r = vu,
2351            u = gu,
2352            i = fu,
2353            a = hu; return n.values = function(e) { return arguments.length ? (t = e, n) : t }, n.order = function(t) { return arguments.length ? (e = "function" == typeof t ? t : _l.get(t) || pu, n) : e }, n.offset = function(t) { return arguments.length ? (r = "function" == typeof t ? t : wl.get(t) || vu, n) : r }, n.x = function(t) { return arguments.length ? (i = t, n) : i }, n.y = function(t) { return arguments.length ? (a = t, n) : a }, n.out = function(t) { return arguments.length ? (u = t, n) : u }, n };
2354    var _l = oa.map({ "inside-out": function(n) { var t, e, r = n.length,
2355                    u = n.map(du),
2356                    i = n.map(mu),
2357                    a = oa.range(r).sort(function(n, t) { return u[n] - u[t] }),
2358                    o = 0,
2359                    l = 0,
2360                    c = [],
2361                    s = []; for (t = 0; r > t; ++t) e = a[t], l > o ? (o += i[e], c.push(e)) : (l += i[e], s.push(e)); return s.reverse().concat(c) }, reverse: function(n) { return oa.range(n.length).reverse() }, "default": pu }),
2362        wl = oa.map({ silhouette: function(n) { var t, e, r, u = n.length,
2363                    i = n[0].length,
2364                    a = [],
2365                    o = 0,
2366                    l = []; for (e = 0; i > e; ++e) { for (t = 0, r = 0; u > t; t++) r += n[t][e][1];
2367                    r > o && (o = r), a.push(r) } for (e = 0; i > e; ++e) l[e] = (o - a[e]) / 2; return l }, wiggle: function(n) { var t, e, r, u, i, a, o, l, c, s = n.length,
2368                    f = n[0],
2369                    h = f.length,
2370                    g = []; for (g[0] = l = c = 0, e = 1; h > e; ++e) { for (t = 0, u = 0; s > t; ++t) u += n[t][e][1]; for (t = 0, i = 0, o = f[e][0] - f[e - 1][0]; s > t; ++t) { for (r = 0, a = (n[t][e][1] - n[t][e - 1][1]) / (2 * o); t > r; ++r) a += (n[r][e][1] - n[r][e - 1][1]) / o;
2371                        i += a * n[t][e][1] }
2372                    g[e] = l -= u ? i / u * o : 0, c > l && (c = l) } for (e = 0; h > e; ++e) g[e] -= c; return g }, expand: function(n) { var t, e, r, u = n.length,
2373                    i = n[0].length,
2374                    a = 1 / u,
2375                    o = []; for (e = 0; i > e; ++e) { for (t = 0, r = 0; u > t; t++) r += n[t][e][1]; if (r)
2376                        for (t = 0; u > t; t++) n[t][e][1] /= r;
2377                    else
2378                        for (t = 0; u > t; t++) n[t][e][1] = a } for (e = 0; i > e; ++e) o[e] = 0; return o }, zero: vu });
2379    oa.layout.histogram = function() {
2380        function n(n, i) { for (var a, o, l = [], c = n.map(e, this), s = r.call(this, c, i), f = u.call(this, s, c, i), i = -1, h = c.length, g = f.length - 1, p = t ? 1 : 1 / h; ++i < g;) a = l[i] = [], a.dx = f[i + 1] - (a.x = f[i]), a.y = 0; if (g > 0)
2381                for (i = -1; ++i < h;) o = c[i], o >= s[0] && o <= s[1] && (a = l[oa.bisect(f, o, 1, g) - 1], a.y += p, a.push(n[i])); return l } var t = !0,
2382            e = Number,
2383            r = bu,
2384            u = Mu; return n.value = function(t) { return arguments.length ? (e = t, n) : e }, n.range = function(t) { return arguments.length ? (r = En(t), n) : r }, n.bins = function(t) { return arguments.length ? (u = "number" == typeof t ? function(n) { return xu(n, t) } : En(t), n) : u }, n.frequency = function(e) { return arguments.length ? (t = !!e, n) : t }, n }, oa.layout.pack = function() {
2385        function n(n, i) { var a = e.call(this, n, i),
2386                o = a[0],
2387                l = u[0],
2388                c = u[1],
2389                s = null == t ? Math.sqrt : "function" == typeof t ? t : function() { return t }; if (o.x = o.y = 0, au(o, function(n) { n.r = +s(n.value) }), au(o, Nu), r) { var f = r * (t ? 1 : Math.max(2 * o.r / l, 2 * o.r / c)) / 2;
2390                au(o, function(n) { n.r += f }), au(o, Nu), au(o, function(n) { n.r -= f }) } return Cu(o, l / 2, c / 2, t ? 1 : 1 / Math.max(2 * o.r / l, 2 * o.r / c)), a } var t, e = oa.layout.hierarchy().sort(_u),
2391            r = 0,
2392            u = [1, 1]; return n.size = function(t) { return arguments.length ? (u = t, n) : u }, n.radius = function(e) { return arguments.length ? (t = null == e || "function" == typeof e ? e : +e, n) : t }, n.padding = function(t) { return arguments.length ? (r = +t, n) : r }, uu(n, e) }, oa.layout.tree = function() {
2393        function n(n, u) { var s = a.call(this, n, u),
2394                f = s[0],
2395                h = t(f); if (au(h, e), h.parent.m = -h.z, iu(h, r), c) iu(f, i);
2396            else { var g = f,
2397                    p = f,
2398                    v = f;
2399                iu(f, function(n) { n.x < g.x && (g = n), n.x > p.x && (p = n), n.depth > v.depth && (v = n) }); var d = o(g, p) / 2 - g.x,
2400                    m = l[0] / (p.x + o(p, g) / 2 + d),
2401                    y = l[1] / (v.depth || 1);
2402                iu(f, function(n) { n.x = (n.x + d) * m, n.y = n.depth * y }) } return s }
2403
2404        function t(n) { for (var t, e = { A: null, children: [n] }, r = [e]; null != (t = r.pop());)
2405                for (var u, i = t.children, a = 0, o = i.length; o > a; ++a) r.push((i[a] = u = { _: i[a], parent: t, children: (u = i[a].children) && u.slice() || [], A: null, a: null, z: 0, m: 0, c: 0, s: 0, t: null, i: a }).a = u); return e.children[0] }
2406
2407        function e(n) { var t = n.children,
2408                e = n.parent.children,
2409                r = n.i ? e[n.i - 1] : null; if (t.length) { Du(n); var i = (t[0].z + t[t.length - 1].z) / 2;
2410                r ? (n.z = r.z + o(n._, r._), n.m = n.z - i) : n.z = i } else r && (n.z = r.z + o(n._, r._));
2411            n.parent.A = u(n, r, n.parent.A || e[0]) }
2412
2413        function r(n) { n._.x = n.z + n.parent.m, n.m += n.parent.m }
2414
2415        function u(n, t, e) { if (t) { for (var r, u = n, i = n, a = t, l = u.parent.children[0], c = u.m, s = i.m, f = a.m, h = l.m; a = Tu(a), u = qu(u), a && u;) l = qu(l), i = Tu(i), i.a = n, r = a.z + f - u.z - c + o(a._, u._), r > 0 && (Ru(Pu(a, n, e), n, r), c += r, s += r), f += a.m, c += u.m, h += l.m, s += i.m;
2416                a && !Tu(i) && (i.t = a, i.m += f - s), u && !qu(l) && (l.t = u, l.m += c - h, e = n) } return e }
2417
2418        function i(n) { n.x *= l[0], n.y = n.depth * l[1] } var a = oa.layout.hierarchy().sort(null).value(null),
2419            o = Lu,
2420            l = [1, 1],
2421            c = null; return n.separation = function(t) { return arguments.length ? (o = t, n) : o }, n.size = function(t) { return arguments.length ? (c = null == (l = t) ? i : null, n) : c ? null : l }, n.nodeSize = function(t) { return arguments.length ? (c = null == (l = t) ? null : i, n) : c ? l : null }, uu(n, a) }, oa.layout.cluster = function() {
2422        function n(n, i) { var a, o = t.call(this, n, i),
2423                l = o[0],
2424                c = 0;
2425            au(l, function(n) { var t = n.children;
2426                t && t.length ? (n.x = ju(t), n.y = Uu(t)) : (n.x = a ? c += e(n, a) : 0, n.y = 0, a = n) }); var s = Fu(l),
2427                f = Hu(l),
2428                h = s.x - e(s, f) / 2,
2429                g = f.x + e(f, s) / 2; return au(l, u ? function(n) { n.x = (n.x - l.x) * r[0], n.y = (l.y - n.y) * r[1] } : function(n) { n.x = (n.x - h) / (g - h) * r[0], n.y = (1 - (l.y ? n.y / l.y : 1)) * r[1] }), o } var t = oa.layout.hierarchy().sort(null).value(null),
2430            e = Lu,
2431            r = [1, 1],
2432            u = !1; return n.separation = function(t) { return arguments.length ? (e = t, n) : e }, n.size = function(t) { return arguments.length ? (u = null == (r = t), n) : u ? null : r }, n.nodeSize = function(t) { return arguments.length ? (u = null != (r = t), n) : u ? r : null }, uu(n, t) }, oa.layout.treemap = function() {
2433        function n(n, t) { for (var e, r, u = -1, i = n.length; ++u < i;) r = (e = n[u]).value * (0 > t ? 0 : t), e.area = isNaN(r) || 0 >= r ? 0 : r }
2434
2435        function t(e) { var i = e.children; if (i && i.length) { var a, o, l, c = f(e),
2436                    s = [],
2437                    h = i.slice(),
2438                    p = 1 / 0,
2439                    v = "slice" === g ? c.dx : "dice" === g ? c.dy : "slice-dice" === g ? 1 & e.depth ? c.dy : c.dx : Math.min(c.dx, c.dy); for (n(h, c.dx * c.dy / e.value), s.area = 0;
2440                    (l = h.length) > 0;) s.push(a = h[l - 1]), s.area += a.area, "squarify" !== g || (o = r(s, v)) <= p ? (h.pop(), p = o) : (s.area -= s.pop().area, u(s, v, c, !1), v = Math.min(c.dx, c.dy), s.length = s.area = 0, p = 1 / 0);
2441                s.length && (u(s, v, c, !0), s.length = s.area = 0), i.forEach(t) } }
2442
2443        function e(t) { var r = t.children; if (r && r.length) { var i, a = f(t),
2444                    o = r.slice(),
2445                    l = []; for (n(o, a.dx * a.dy / t.value), l.area = 0; i = o.pop();) l.push(i), l.area += i.area, null != i.z && (u(l, i.z ? a.dx : a.dy, a, !o.length), l.length = l.area = 0);
2446                r.forEach(e) } }
2447
2448        function r(n, t) { for (var e, r = n.area, u = 0, i = 1 / 0, a = -1, o = n.length; ++a < o;)(e = n[a].area) && (i > e && (i = e), e > u && (u = e)); return r *= r, t *= t, r ? Math.max(t * u * p / r, r / (t * i * p)) : 1 / 0 }
2449
2450        function u(n, t, e, r) {
2451            var u, i = -1,
2452                a = n.length,
2453                o = e.x,
2454                c = e.y,
2455                s = t ? l(n.area / t) : 0;
2456            if (t == e.dx) { for ((r || s > e.dy) && (s = e.dy); ++i < a;) u = n[i], u.x = o, u.y = c, u.dy = s, o += u.dx = Math.min(e.x + e.dx - o, s ? l(u.area / s) : 0);
2457                u.z = !0, u.dx += e.x + e.dx - o, e.y += s, e.dy -= s } else { for ((r || s > e.dx) && (s = e.dx); ++i < a;) u = n[i], u.x = o, u.y = c, u.dx = s, c += u.dy = Math.min(e.y + e.dy - c, s ? l(u.area / s) : 0);
2458                u.z = !1, u.dy += e.y + e.dy - c, e.x += s, e.dx -= s }
2459        }
2460
2461        function i(r) { var u = a || o(r),
2462                i = u[0]; return i.x = i.y = 0, i.value ? (i.dx = c[0], i.dy = c[1]) : i.dx = i.dy = 0, a && o.revalue(i), n([i], i.dx * i.dy / i.value), (a ? e : t)(i), h && (a = u), u }
2463        var a, o = oa.layout.hierarchy(),
2464            l = Math.round,
2465            c = [1, 1],
2466            s = null,
2467            f = Ou,
2468            h = !1,
2469            g = "squarify",
2470            p = .5 * (1 + Math.sqrt(5));
2471        return i.size = function(n) { return arguments.length ? (c = n, i) : c }, i.padding = function(n) {
2472            function t(t) { var e = n.call(i, t, t.depth); return null == e ? Ou(t) : Iu(t, "number" == typeof e ? [e, e, e, e] : e) }
2473
2474            function e(t) { return Iu(t, n) } if (!arguments.length) return s; var r; return f = null == (s = n) ? Ou : "function" == (r = typeof n) ? t : "number" === r ? (n = [n, n, n, n], e) : e, i }, i.round = function(n) { return arguments.length ? (l = n ? Math.round : Number, i) : l != Number }, i.sticky = function(n) { return arguments.length ? (h = n, a = null, i) : h }, i.ratio = function(n) { return arguments.length ? (p = n, i) : p }, i.mode = function(n) { return arguments.length ? (g = n + "", i) : g }, uu(i, o)
2475    }, oa.random = { normal: function(n, t) { var e = arguments.length; return 2 > e && (t = 1), 1 > e && (n = 0),
2476                function() { var e, r, u;
2477                    do e = 2 * Math.random() - 1, r = 2 * Math.random() - 1, u = e * e + r * r; while (!u || u > 1); return n + t * e * Math.sqrt(-2 * Math.log(u) / u) } }, logNormal: function() { var n = oa.random.normal.apply(oa, arguments); return function() { return Math.exp(n()) } }, bates: function(n) { var t = oa.random.irwinHall(n); return function() { return t() / n } }, irwinHall: function(n) { return function() { for (var t = 0, e = 0; n > e; e++) t += Math.random(); return t } } }, oa.scale = {};
2478    var Sl = { floor: y, ceil: y };
2479    oa.scale.linear = function() { return Wu([0, 1], [0, 1], Mr, !1) };
2480    var kl = { s: 1, g: 1, p: 1, r: 1, e: 1 };
2481    oa.scale.log = function() { return ri(oa.scale.linear().domain([0, 1]), 10, !0, [1, 10]) };
2482    var Nl = oa.format(".0e"),
2483        El = { floor: function(n) { return -Math.ceil(-n) }, ceil: function(n) { return -Math.floor(-n) } };
2484    oa.scale.pow = function() { return ui(oa.scale.linear(), 1, [0, 1]) }, oa.scale.sqrt = function() { return oa.scale.pow().exponent(.5) }, oa.scale.ordinal = function() { return ai([], { t: "range", a: [
2485                []
2486            ] }) }, oa.scale.category10 = function() { return oa.scale.ordinal().range(Al) }, oa.scale.category20 = function() { return oa.scale.ordinal().range(Cl) }, oa.scale.category20b = function() { return oa.scale.ordinal().range(zl) }, oa.scale.category20c = function() { return oa.scale.ordinal().range(Ll) };
2487    var Al = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(xn),
2488        Cl = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(xn),
2489        zl = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(xn),
2490        Ll = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(xn);
2491    oa.scale.quantile = function() { return oi([], []) }, oa.scale.quantize = function() { return li(0, 1, [0, 1]) }, oa.scale.threshold = function() { return ci([.5], [0, 1]) }, oa.scale.identity = function() { return si([0, 1]) }, oa.svg = {}, oa.svg.arc = function() {
2492        function n() { var n = Math.max(0, +e.apply(this, arguments)),
2493                c = Math.max(0, +r.apply(this, arguments)),
2494                s = a.apply(this, arguments) - Oa,
2495                f = o.apply(this, arguments) - Oa,
2496                h = Math.abs(f - s),
2497                g = s > f ? 0 : 1; if (n > c && (p = c, c = n, n = p), h >= Ha) return t(c, g) + (n ? t(n, 1 - g) : "") + "Z"; var p, v, d, m, y, M, x, b, _, w, S, k, N = 0,
2498                E = 0,
2499                A = []; if ((m = (+l.apply(this, arguments) || 0) / 2) && (d = i === ql ? Math.sqrt(n * n + c * c) : +i.apply(this, arguments), g || (E *= -1), c && (E = tn(d / c * Math.sin(m))), n && (N = tn(d / n * Math.sin(m)))), c) { y = c * Math.cos(s + E), M = c * Math.sin(s + E), x = c * Math.cos(f - E), b = c * Math.sin(f - E); var C = Math.abs(f - s - 2 * E) <= ja ? 0 : 1; if (E && mi(y, M, x, b) === g ^ C) { var z = (s + f) / 2;
2500                    y = c * Math.cos(z), M = c * Math.sin(z), x = b = null } } else y = M = 0; if (n) { _ = n * Math.cos(f - N), w = n * Math.sin(f - N), S = n * Math.cos(s + N), k = n * Math.sin(s + N); var L = Math.abs(s - f + 2 * N) <= ja ? 0 : 1; if (N && mi(_, w, S, k) === 1 - g ^ L) { var q = (s + f) / 2;
2501                    _ = n * Math.cos(q), w = n * Math.sin(q), S = k = null } } else _ = w = 0; if (h > Pa && (p = Math.min(Math.abs(c - n) / 2, +u.apply(this, arguments))) > .001) { v = c > n ^ g ? 0 : 1; var T = p,
2502                    R = p; if (ja > h) { var D = null == S ? [_, w] : null == x ? [y, M] : Re([y, M], [S, k], [x, b], [_, w]),
2503                        P = y - D[0],
2504                        U = M - D[1],
2505                        j = x - D[0],
2506                        F = b - D[1],
2507                        H = 1 / Math.sin(Math.acos((P * j + U * F) / (Math.sqrt(P * P + U * U) * Math.sqrt(j * j + F * F))) / 2),
2508                        O = Math.sqrt(D[0] * D[0] + D[1] * D[1]);
2509                    R = Math.min(p, (n - O) / (H - 1)), T = Math.min(p, (c - O) / (H + 1)) } if (null != x) { var I = yi(null == S ? [_, w] : [S, k], [y, M], c, T, g),
2510                        Y = yi([x, b], [_, w], c, T, g);
2511                    p === T ? A.push("M", I[0], "A", T, ",", T, " 0 0,", v, " ", I[1], "A", c, ",", c, " 0 ", 1 - g ^ mi(I[1][0], I[1][1], Y[1][0], Y[1][1]), ",", g, " ", Y[1], "A", T, ",", T, " 0 0,", v, " ", Y[0]) : A.push("M", I[0], "A", T, ",", T, " 0 1,", v, " ", Y[0]) } else A.push("M", y, ",", M); if (null != S) { var Z = yi([y, M], [S, k], n, -R, g),
2512                        V = yi([_, w], null == x ? [y, M] : [x, b], n, -R, g);
2513                    p === R ? A.push("L", V[0], "A", R, ",", R, " 0 0,", v, " ", V[1], "A", n, ",", n, " 0 ", g ^ mi(V[1][0], V[1][1], Z[1][0], Z[1][1]), ",", 1 - g, " ", Z[1], "A", R, ",", R, " 0 0,", v, " ", Z[0]) : A.push("L", V[0], "A", R, ",", R, " 0 0,", v, " ", Z[0]) } else A.push("L", _, ",", w) } else A.push("M", y, ",", M), null != x && A.push("A", c, ",", c, " 0 ", C, ",", g, " ", x, ",", b), A.push("L", _, ",", w), null != S && A.push("A", n, ",", n, " 0 ", L, ",", 1 - g, " ", S, ",", k); return A.push("Z"), A.join("") }
2514
2515        function t(n, t) { return "M0," + n + "A" + n + "," + n + " 0 1," + t + " 0," + -n + "A" + n + "," + n + " 0 1," + t + " 0," + n } var e = hi,
2516            r = gi,
2517            u = fi,
2518            i = ql,
2519            a = pi,
2520            o = vi,
2521            l = di; return n.innerRadius = function(t) { return arguments.length ? (e = En(t), n) : e }, n.outerRadius = function(t) { return arguments.length ? (r = En(t), n) : r }, n.cornerRadius = function(t) { return arguments.length ? (u = En(t), n) : u }, n.padRadius = function(t) { return arguments.length ? (i = t == ql ? ql : En(t), n) : i }, n.startAngle = function(t) { return arguments.length ? (a = En(t), n) : a }, n.endAngle = function(t) { return arguments.length ? (o = En(t), n) : o }, n.padAngle = function(t) { return arguments.length ? (l = En(t), n) : l }, n.centroid = function() { var n = (+e.apply(this, arguments) + +r.apply(this, arguments)) / 2,
2522                t = (+a.apply(this, arguments) + +o.apply(this, arguments)) / 2 - Oa; return [Math.cos(t) * n, Math.sin(t) * n] }, n };
2523    var ql = "auto";
2524    oa.svg.line = function() { return Mi(y) };
2525    var Tl = oa.map({ linear: xi, "linear-closed": bi, step: _i, "step-before": wi, "step-after": Si, basis: zi, "basis-open": Li, "basis-closed": qi, bundle: Ti, cardinal: Ei, "cardinal-open": ki, "cardinal-closed": Ni, monotone: Fi });
2526    Tl.forEach(function(n, t) { t.key = n, t.closed = /-closed$/.test(n) });
2527    var Rl = [0, 2 / 3, 1 / 3, 0],
2528        Dl = [0, 1 / 3, 2 / 3, 0],
2529        Pl = [0, 1 / 6, 2 / 3, 1 / 6];
2530    oa.svg.line.radial = function() { var n = Mi(Hi); return n.radius = n.x, delete n.x, n.angle = n.y, delete n.y, n }, wi.reverse = Si, Si.reverse = wi, oa.svg.area = function() { return Oi(y) }, oa.svg.area.radial = function() { var n = Oi(Hi); return n.radius = n.x, delete n.x, n.innerRadius = n.x0, delete n.x0, n.outerRadius = n.x1, delete n.x1, n.angle = n.y, delete n.y, n.startAngle = n.y0, delete n.y0, n.endAngle = n.y1, delete n.y1, n }, oa.svg.chord = function() {
2531        function n(n, o) { var l = t(this, i, n, o),
2532                c = t(this, a, n, o); return "M" + l.p0 + r(l.r, l.p1, l.a1 - l.a0) + (e(l, c) ? u(l.r, l.p1, l.r, l.p0) : u(l.r, l.p1, c.r, c.p0) + r(c.r, c.p1, c.a1 - c.a0) + u(c.r, c.p1, l.r, l.p0)) + "Z" }
2533
2534        function t(n, t, e, r) { var u = t.call(n, e, r),
2535                i = o.call(n, u, r),
2536                a = l.call(n, u, r) - Oa,
2537                s = c.call(n, u, r) - Oa; return { r: i, a0: a, a1: s, p0: [i * Math.cos(a), i * Math.sin(a)], p1: [i * Math.cos(s), i * Math.sin(s)] } }
2538
2539        function e(n, t) { return n.a0 == t.a0 && n.a1 == t.a1 }
2540
2541        function r(n, t, e) { return "A" + n + "," + n + " 0 " + +(e > ja) + ",1 " + t }
2542
2543        function u(n, t, e, r) { return "Q 0,0 " + r } var i = Me,
2544            a = xe,
2545            o = Ii,
2546            l = pi,
2547            c = vi; return n.radius = function(t) { return arguments.length ? (o = En(t), n) : o }, n.source = function(t) { return arguments.length ? (i = En(t), n) : i }, n.target = function(t) { return arguments.length ? (a = En(t), n) : a }, n.startAngle = function(t) { return arguments.length ? (l = En(t), n) : l }, n.endAngle = function(t) { return arguments.length ? (c = En(t), n) : c }, n }, oa.svg.diagonal = function() {
2548        function n(n, u) { var i = t.call(this, n, u),
2549                a = e.call(this, n, u),
2550                o = (i.y + a.y) / 2,
2551                l = [i, { x: i.x, y: o }, { x: a.x, y: o }, a]; return l = l.map(r), "M" + l[0] + "C" + l[1] + " " + l[2] + " " + l[3] } var t = Me,
2552            e = xe,
2553            r = Yi; return n.source = function(e) { return arguments.length ? (t = En(e), n) : t }, n.target = function(t) { return arguments.length ? (e = En(t), n) : e }, n.projection = function(t) { return arguments.length ? (r = t, n) : r }, n }, oa.svg.diagonal.radial = function() { var n = oa.svg.diagonal(),
2554            t = Yi,
2555            e = n.projection; return n.projection = function(n) { return arguments.length ? e(Zi(t = n)) : t }, n }, oa.svg.symbol = function() {
2556        function n(n, r) { return (Ul.get(t.call(this, n, r)) || $i)(e.call(this, n, r)) } var t = Xi,
2557            e = Vi; return n.type = function(e) { return arguments.length ? (t = En(e), n) : t }, n.size = function(t) { return arguments.length ? (e = En(t), n) : e }, n };
2558    var Ul = oa.map({ circle: $i, cross: function(n) { var t = Math.sqrt(n / 5) / 2; return "M" + -3 * t + "," + -t + "H" + -t + "V" + -3 * t + "H" + t + "V" + -t + "H" + 3 * t + "V" + t + "H" + t + "V" + 3 * t + "H" + -t + "V" + t + "H" + -3 * t + "Z" }, diamond: function(n) { var t = Math.sqrt(n / (2 * Fl)),
2559                e = t * Fl; return "M0," + -t + "L" + e + ",0 0," + t + " " + -e + ",0Z" }, square: function(n) { var t = Math.sqrt(n) / 2; return "M" + -t + "," + -t + "L" + t + "," + -t + " " + t + "," + t + " " + -t + "," + t + "Z" }, "triangle-down": function(n) { var t = Math.sqrt(n / jl),
2560                e = t * jl / 2; return "M0," + e + "L" + t + "," + -e + " " + -t + "," + -e + "Z" }, "triangle-up": function(n) { var t = Math.sqrt(n / jl),
2561                e = t * jl / 2; return "M0," + -e + "L" + t + "," + e + " " + -t + "," + e + "Z" } });
2562    oa.svg.symbolTypes = Ul.keys();
2563    var jl = Math.sqrt(3),
2564        Fl = Math.tan(30 * Ia);
2565    Aa.transition = function(n) { for (var t, e, r = Hl || ++Zl, u = Ki(n), i = [], a = Ol || { time: Date.now(), ease: Nr, delay: 0, duration: 250 }, o = -1, l = this.length; ++o < l;) { i.push(t = []); for (var c = this[o], s = -1, f = c.length; ++s < f;)(e = c[s]) && Qi(e, s, u, r, a), t.push(e) } return Wi(i, u, r) }, Aa.interrupt = function(n) { return this.each(null == n ? Il : Bi(Ki(n))) };
2566    var Hl, Ol, Il = Bi(Ki()),
2567        Yl = [],
2568        Zl = 0;
2569    Yl.call = Aa.call, Yl.empty = Aa.empty, Yl.node = Aa.node, Yl.size = Aa.size, oa.transition = function(n, t) { return n && n.transition ? Hl ? n.transition(t) : n : oa.selection().transition(n) }, oa.transition.prototype = Yl, Yl.select = function(n) { var t, e, r, u = this.id,
2570            i = this.namespace,
2571            a = [];
2572        n = A(n); for (var o = -1, l = this.length; ++o < l;) { a.push(t = []); for (var c = this[o], s = -1, f = c.length; ++s < f;)(r = c[s]) && (e = n.call(r, r.__data__, s, o)) ? ("__data__" in r && (e.__data__ = r.__data__), Qi(e, s, i, u, r[i][u]), t.push(e)) : t.push(null) } return Wi(a, i, u) }, Yl.selectAll = function(n) { var t, e, r, u, i, a = this.id,
2573            o = this.namespace,
2574            l = [];
2575        n = C(n); for (var c = -1, s = this.length; ++c < s;)
2576            for (var f = this[c], h = -1, g = f.length; ++h < g;)
2577                if (r = f[h]) { i = r[o][a], e = n.call(r, r.__data__, h, c), l.push(t = []); for (var p = -1, v = e.length; ++p < v;)(u = e[p]) && Qi(u, p, o, a, i), t.push(u) }
2578        return Wi(l, o, a) }, Yl.filter = function(n) { var t, e, r, u = []; "function" != typeof n && (n = O(n)); for (var i = 0, a = this.length; a > i; i++) { u.push(t = []); for (var e = this[i], o = 0, l = e.length; l > o; o++)(r = e[o]) && n.call(r, r.__data__, o, i) && t.push(r) } return Wi(u, this.namespace, this.id) }, Yl.tween = function(n, t) { var e = this.id,
2579            r = this.namespace; return arguments.length < 2 ? this.node()[r][e].tween.get(n) : Y(this, null == t ? function(t) { t[r][e].tween.remove(n) } : function(u) { u[r][e].tween.set(n, t) }) }, Yl.attr = function(n, t) {
2580        function e() { this.removeAttribute(o) }
2581
2582        function r() { this.removeAttributeNS(o.space, o.local) }
2583
2584        function u(n) { return null == n ? e : (n += "", function() { var t, e = this.getAttribute(o); return e !== n && (t = a(e, n), function(n) { this.setAttribute(o, t(n)) }) }) }
2585
2586        function i(n) { return null == n ? r : (n += "", function() { var t, e = this.getAttributeNS(o.space, o.local); return e !== n && (t = a(e, n), function(n) { this.setAttributeNS(o.space, o.local, t(n)) }) }) } if (arguments.length < 2) { for (t in n) this.attr(t, n[t]); return this } var a = "transform" == n ? $r : Mr,
2587            o = oa.ns.qualify(n); return Ji(this, "attr." + n, t, o.local ? i : u) }, Yl.attrTween = function(n, t) {
2588        function e(n, e) { var r = t.call(this, n, e, this.getAttribute(u)); return r && function(n) { this.setAttribute(u, r(n)) } }
2589
2590        function r(n, e) { var r = t.call(this, n, e, this.getAttributeNS(u.space, u.local)); return r && function(n) { this.setAttributeNS(u.space, u.local, r(n)) } } var u = oa.ns.qualify(n); return this.tween("attr." + n, u.local ? r : e) }, Yl.style = function(n, e, r) {
2591        function u() { this.style.removeProperty(n) }
2592
2593        function i(e) { return null == e ? u : (e += "", function() { var u, i = t(this).getComputedStyle(this, null).getPropertyValue(n); return i !== e && (u = Mr(i, e), function(t) { this.style.setProperty(n, u(t), r) }) }) } var a = arguments.length; if (3 > a) { if ("string" != typeof n) { 2 > a && (e = ""); for (r in n) this.style(r, n[r], e); return this }
2594            r = "" } return Ji(this, "style." + n, e, i) }, Yl.styleTween = function(n, e, r) {
2595        function u(u, i) { var a = e.call(this, u, i, t(this).getComputedStyle(this, null).getPropertyValue(n)); return a && function(t) { this.style.setProperty(n, a(t), r) } } return arguments.length < 3 && (r = ""), this.tween("style." + n, u) }, Yl.text = function(n) { return Ji(this, "text", n, Gi) }, Yl.remove = function() { var n = this.namespace; return this.each("end.transition", function() { var t;
2596            this[n].count < 2 && (t = this.parentNode) && t.removeChild(this) }) }, Yl.ease = function(n) { var t = this.id,
2597            e = this.namespace; return arguments.length < 1 ? this.node()[e][t].ease : ("function" != typeof n && (n = oa.ease.apply(oa, arguments)), Y(this, function(r) { r[e][t].ease = n })) }, Yl.delay = function(n) { var t = this.id,
2598            e = this.namespace; return arguments.length < 1 ? this.node()[e][t].delay : Y(this, "function" == typeof n ? function(r, u, i) { r[e][t].delay = +n.call(r, r.__data__, u, i) } : (n = +n, function(r) { r[e][t].delay = n })) }, Yl.duration = function(n) { var t = this.id,
2599            e = this.namespace; return arguments.length < 1 ? this.node()[e][t].duration : Y(this, "function" == typeof n ? function(r, u, i) { r[e][t].duration = Math.max(1, n.call(r, r.__data__, u, i)) } : (n = Math.max(1, n), function(r) { r[e][t].duration = n })) }, Yl.each = function(n, t) { var e = this.id,
2600            r = this.namespace; if (arguments.length < 2) { var u = Ol,
2601                i = Hl; try { Hl = e, Y(this, function(t, u, i) { Ol = t[r][e], n.call(t, t.__data__, u, i) }) } finally { Ol = u, Hl = i } } else Y(this, function(u) { var i = u[r][e];
2602            (i.event || (i.event = oa.dispatch("start", "end", "interrupt"))).on(n, t) }); return this }, Yl.transition = function() { for (var n, t, e, r, u = this.id, i = ++Zl, a = this.namespace, o = [], l = 0, c = this.length; c > l; l++) { o.push(n = []); for (var t = this[l], s = 0, f = t.length; f > s; s++)(e = t[s]) && (r = e[a][u], Qi(e, s, a, i, { time: r.time, ease: r.ease, delay: r.delay + r.duration, duration: r.duration })), n.push(e) } return Wi(o, a, i) }, oa.svg.axis = function() {
2603        function n(n) {
2604            n.each(function() {
2605                var n, c = oa.select(this),
2606                    s = this.__chart__ || e,
2607                    f = this.__chart__ = e.copy(),
2608                    h = null == l ? f.ticks ? f.ticks.apply(f, o) : f.domain() : l,
2609                    g = null == t ? f.tickFormat ? f.tickFormat.apply(f, o) : y : t,
2610                    p = c.selectAll(".tick").data(h, f),
2611                    v = p.enter().insert("g", ".domain").attr("class", "tick").style("opacity", Pa),
2612                    d = oa.transition(p.exit()).style("opacity", Pa).remove(),
2613                    m = oa.transition(p.order()).style("opacity", 1),
2614                    M = Math.max(u, 0) + a,
2615                    x = Zu(f),
2616                    b = c.selectAll(".domain").data([0]),
2617                    _ = (b.enter().append("path").attr("class", "domain"), oa.transition(b));
2618                v.append("line"), v.append("text");
2619                var w, S, k, N, E = v.select("line"),
2620                    A = m.select("line"),
2621                    C = p.select("text").text(g),
2622                    z = v.select("text"),
2623                    L = m.select("text"),
2624                    q = "top" === r || "left" === r ? -1 : 1;
2625                if ("bottom" === r || "top" === r ? (n = na, w = "x", k = "y", S = "x2", N = "y2", C.attr("dy", 0 > q ? "0em" : ".71em")
2626
2627
2628                        .style("text-anchor", "right"), _.attr("d", "M" + x[0] + "," + q * i + "V0H" + x[1] + "V" + q * i)) : (n = ta, w = "y", k = "x", S = "y2", N = "x2", C.attr("dy", ".32em")
2629
2630
2631
2632                        .style("text-anchor", 0 > q ? "end" : "start"), _.attr("d", "M" + q * i + "," + x[0] + "H0V" + x[1] + "H" + q * i)), E.attr(N, q * u), z.attr(k, q * M), A.attr(S, 0).attr(N, q * u), L.attr(w, 0).attr(k, q * M), f.rangeBand) { var T = f,
2633                        R = T.rangeBand() / 2;
2634                    s = f = function(n) { return T(n) + R } } else s.rangeBand ? s = f : d.call(n, f, s);
2635                v.call(n, s, f), m.call(n, f, f)
2636            })
2637        }
2638        var t, e = oa.scale.linear(),
2639            r = Vl,
2640            u = 6,
2641            i = 6,
2642            a = 3,
2643            o = [10],
2644            l = null;
2645        return n.scale = function(t) { return arguments.length ? (e = t, n) : e }, n.orient = function(t) { return arguments.length ? (r = t in Xl ? t + "" : Vl, n) : r }, n.ticks = function() { return arguments.length ? (o = ca(arguments), n) : o }, n.tickValues = function(t) { return arguments.length ? (l = t, n) : l }, n.tickFormat = function(e) { return arguments.length ? (t = e, n) : t }, n.tickSize = function(t) { var e = arguments.length; return e ? (u = +t, i = +arguments[e - 1], n) : u }, n.innerTickSize = function(t) { return arguments.length ? (u = +t, n) : u }, n.outerTickSize = function(t) { return arguments.length ? (i = +t, n) : i }, n.tickPadding = function(t) { return arguments.length ? (a = +t, n) : a }, n.tickSubdivide = function() { return arguments.length && n }, n
2646    };
2647    var Vl = "bottom",
2648        Xl = { top: 1, right: 1, bottom: 1, left: 1 };
2649    oa.svg.brush = function() {
2650        function n(t) { t.each(function() { var t = oa.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", i).on("touchstart.brush", i),
2651                    a = t.selectAll(".background").data([0]);
2652                a.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"), t.selectAll(".extent").data([0]).enter().append("rect").attr("class", "extent").style("cursor", "move"); var o = t.selectAll(".resize").data(v, y);
2653                o.exit().remove(), o.enter().append("g").attr("class", function(n) { return "resize " + n }).style("cursor", function(n) { return $l[n] }).append("rect").attr("x", function(n) { return /[ew]$/.test(n) ? -3 : null }).attr("y", function(n) { return /^[ns]/.test(n) ? -3 : null }).attr("width", 6).attr("height", 6).style("visibility", "hidden"), o.style("display", n.empty() ? "none" : null); var l, f = oa.transition(t),
2654                    h = oa.transition(a);
2655                c && (l = Zu(c), h.attr("x", l[0]).attr("width", l[1] - l[0]), r(f)), s && (l = Zu(s), h.attr("y", l[0]).attr("height", l[1] - l[0]), u(f)), e(f) }) }
2656
2657        function e(n) { n.selectAll(".resize").attr("transform", function(n) { return "translate(" + f[+/e$/.test(n)] + "," + h[+/^s/.test(n)] + ")" }) }
2658
2659        function r(n) { n.select(".extent").attr("x", f[0]), n.selectAll(".extent,.n>rect,.s>rect").attr("width", f[1] - f[0]) }
2660
2661        function u(n) { n.select(".extent").attr("y", h[0]), n.selectAll(".extent,.e>rect,.w>rect").attr("height", h[1] - h[0]) }
2662
2663        function i() {
2664            function i() { 32 == oa.event.keyCode && (C || (M = null, L[0] -= f[1], L[1] -= h[1], C = 2), S()) }
2665
2666            function v() { 32 == oa.event.keyCode && 2 == C && (L[0] += f[1], L[1] += h[1], C = 0, S()) }
2667
2668            function d() { var n = oa.mouse(b),
2669                    t = !1;
2670                x && (n[0] += x[0], n[1] += x[1]), C || (oa.event.altKey ? (M || (M = [(f[0] + f[1]) / 2, (h[0] + h[1]) / 2]), L[0] = f[+(n[0] < M[0])], L[1] = h[+(n[1] < M[1])]) : M = null), E && m(n, c, 0) && (r(k), t = !0), A && m(n, s, 1) && (u(k), t = !0), t && (e(k), w({ type: "brush", mode: C ? "move" : "resize" })) }
2671
2672            function m(n, t, e) { var r, u, i = Zu(t),
2673                    l = i[0],
2674                    c = i[1],
2675                    s = L[e],
2676                    v = e ? h : f,
2677                    d = v[1] - v[0]; return C && (l -= s, c -= d + s), r = (e ? p : g) ? Math.max(l, Math.min(c, n[e])) : n[e], C ? u = (r += s) + d : (M && (s = Math.max(l, Math.min(c, 2 * M[e] - r))), r > s ? (u = r, r = s) : u = s), v[0] != r || v[1] != u ? (e ? o = null : a = null, v[0] = r, v[1] = u, !0) : void 0 }
2678
2679            function y() { d(), k.style("pointer-events", "all").selectAll(".resize").style("display", n.empty() ? "none" : null), oa.select("body").style("cursor", null), q.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null), z(), w({ type: "brushend" }) } var M, x, b = this,
2680                _ = oa.select(oa.event.target),
2681                w = l.of(b, arguments),
2682                k = oa.select(b),
2683                N = _.datum(),
2684                E = !/^(n|s)$/.test(N) && c,
2685                A = !/^(e|w)$/.test(N) && s,
2686                C = _.classed("extent"),
2687                z = W(b),
2688                L = oa.mouse(b),
2689                q = oa.select(t(b)).on("keydown.brush", i).on("keyup.brush", v); if (oa.event.changedTouches ? q.on("touchmove.brush", d).on("touchend.brush", y) : q.on("mousemove.brush", d).on("mouseup.brush", y), k.interrupt().selectAll("*").interrupt(), C) L[0] = f[0] - L[0], L[1] = h[0] - L[1];
2690            else if (N) { var T = +/w$/.test(N),
2691                    R = +/^n/.test(N);
2692                x = [f[1 - T] - L[0], h[1 - R] - L[1]], L[0] = f[T], L[1] = h[R] } else oa.event.altKey && (M = L.slice());
2693            k.style("pointer-events", "none").selectAll(".resize").style("display", null), oa.select("body").style("cursor", _.style("cursor")), w({ type: "brushstart" }), d() } var a, o, l = N(n, "brushstart", "brush", "brushend"),
2694            c = null,
2695            s = null,
2696            f = [0, 0],
2697            h = [0, 0],
2698            g = !0,
2699            p = !0,
2700            v = Bl[0]; return n.event = function(n) { n.each(function() { var n = l.of(this, arguments),
2701                    t = { x: f, y: h, i: a, j: o },
2702                    e = this.__chart__ || t;
2703                this.__chart__ = t, Hl ? oa.select(this).transition().each("start.brush", function() { a = e.i, o = e.j, f = e.x, h = e.y, n({ type: "brushstart" }) }).tween("brush:brush", function() { var e = xr(f, t.x),
2704                        r = xr(h, t.y); return a = o = null,
2705                        function(u) { f = t.x = e(u), h = t.y = r(u), n({ type: "brush", mode: "resize" }) } }).each("end.brush", function() { a = t.i, o = t.j, n({ type: "brush", mode: "resize" }), n({ type: "brushend" }) }) : (n({ type: "brushstart" }), n({ type: "brush", mode: "resize" }), n({ type: "brushend" })) }) }, n.x = function(t) { return arguments.length ? (c = t, v = Bl[!c << 1 | !s], n) : c }, n.y = function(t) { return arguments.length ? (s = t, v = Bl[!c << 1 | !s], n) : s }, n.clamp = function(t) { return arguments.length ? (c && s ? (g = !!t[0], p = !!t[1]) : c ? g = !!t : s && (p = !!t), n) : c && s ? [g, p] : c ? g : s ? p : null }, n.extent = function(t) { var e, r, u, i, l; return arguments.length ? (c && (e = t[0], r = t[1], s && (e = e[0], r = r[0]), a = [e, r], c.invert && (e = c(e), r = c(r)), e > r && (l = e, e = r, r = l), (e != f[0] || r != f[1]) && (f = [e, r])), s && (u = t[0], i = t[1], c && (u = u[1], i = i[1]), o = [u, i], s.invert && (u = s(u), i = s(i)), u > i && (l = u, u = i, i = l), (u != h[0] || i != h[1]) && (h = [u, i])), n) : (c && (a ? (e = a[0], r = a[1]) : (e = f[0], r = f[1], c.invert && (e = c.invert(e), r = c.invert(r)), e > r && (l = e, e = r, r = l))), s && (o ? (u = o[0], i = o[1]) : (u = h[0], i = h[1], s.invert && (u = s.invert(u), i = s.invert(i)), u > i && (l = u, u = i, i = l))), c && s ? [
2706                [e, u],
2707                [r, i]
2708            ] : c ? [e, r] : s && [u, i]) }, n.clear = function() { return n.empty() || (f = [0, 0], h = [0, 0], a = o = null), n }, n.empty = function() { return !!c && f[0] == f[1] || !!s && h[0] == h[1] }, oa.rebind(n, l, "on") };
2709    var $l = { n: "ns-resize", e: "ew-resize", s: "ns-resize", w: "ew-resize", nw: "nwse-resize", ne: "nesw-resize", se: "nwse-resize", sw: "nesw-resize" },
2710        Bl = [
2711            ["n", "e", "s", "w", "nw", "ne", "se", "sw"],
2712            ["e", "w"],
2713            ["n", "s"],
2714            []
2715        ],
2716        Wl = go.format = xo.timeFormat,
2717        Jl = Wl.utc,
2718        Gl = Jl("%Y-%m-%dT%H:%M:%S.%LZ");
2719    Wl.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? ea : Gl, ea.parse = function(n) { var t = new Date(n); return isNaN(t) ? null : t }, ea.toString = Gl.toString, go.second = On(function(n) { return new po(1e3 * Math.floor(n / 1e3)) }, function(n, t) { n.setTime(n.getTime() + 1e3 * Math.floor(t)) }, function(n) { return n.getSeconds() }), go.seconds = go.second.range, go.seconds.utc = go.second.utc.range, go.minute = On(function(n) { return new po(6e4 * Math.floor(n / 6e4)) }, function(n, t) { n.setTime(n.getTime() + 6e4 * Math.floor(t)) }, function(n) { return n.getMinutes() }), go.minutes = go.minute.range, go.minutes.utc = go.minute.utc.range, go.hour = On(function(n) { var t = n.getTimezoneOffset() / 60; return new po(36e5 * (Math.floor(n / 36e5 - t) + t)) }, function(n, t) { n.setTime(n.getTime() + 36e5 * Math.floor(t)) }, function(n) { return n.getHours() }), go.hours = go.hour.range, go.hours.utc = go.hour.utc.range, go.month = On(function(n) { return n = go.day(n), n.setDate(1), n }, function(n, t) { n.setMonth(n.getMonth() + t) }, function(n) { return n.getMonth() }), go.months = go.month.range, go.months.utc = go.month.utc.range;
2720    var Kl = [1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6],
2721        Ql = [
2722            [go.second, 1],
2723            [go.second, 5],
2724            [go.second, 15],
2725            [go.second, 30],
2726            [go.minute, 1],
2727            [go.minute, 5],
2728            [go.minute, 15],
2729            [go.minute, 30],
2730            [go.hour, 1],
2731            [go.hour, 3],
2732            [go.hour, 6],
2733            [go.hour, 12],
2734            [go.day, 1],
2735            [go.day, 2],
2736            [go.week, 1],
2737            [go.month, 1],
2738            [go.month, 3],
2739            [go.year, 1]
2740        ],
2741        nc = Wl.multi([
2742            [".%L", function(n) { return n.getMilliseconds() }],
2743            [":%S", function(n) { return n.getSeconds() }],
2744            ["%I:%M", function(n) { return n.getMinutes() }],
2745            ["%I %p", function(n) { return n.getHours() }],
2746            ["%a %d", function(n) { return n.getDay() && 1 != n.getDate() }],
2747            ["%b %d", function(n) { return 1 != n.getDate() }],
2748            ["%B", function(n) { return n.getMonth() }],
2749            ["%Y", zt]
2750        ]),
2751        tc = { range: function(n, t, e) { return oa.range(Math.ceil(n / e) * e, +t, e).map(ua) }, floor: y, ceil: y };
2752    Ql.year = go.year, go.scale = function() { return ra(oa.scale.linear(), Ql, nc) };
2753    var ec = Ql.map(function(n) { return [n[0].utc, n[1]] }),
2754        rc = Jl.multi([
2755            [".%L", function(n) { return n.getUTCMilliseconds() }],
2756            [":%S", function(n) { return n.getUTCSeconds() }],
2757            ["%I:%M", function(n) { return n.getUTCMinutes() }],
2758            ["%I %p", function(n) { return n.getUTCHours() }],
2759            ["%a %d", function(n) { return n.getUTCDay() && 1 != n.getUTCDate() }],
2760            ["%b %d", function(n) { return 1 != n.getUTCDate() }],
2761            ["%B", function(n) { return n.getUTCMonth() }],
2762            ["%Y", zt]
2763        ]);
2764    ec.year = go.year.utc, go.scale.utc = function() { return ra(oa.scale.linear(), ec, rc) }, oa.text = An(function(n) { return n.responseText }), oa.json = function(n, t) { return Cn(n, "application/json", ia, t) }, oa.html = function(n, t) { return Cn(n, "text/html", aa, t) }, oa.xml = An(function(n) { return n.responseXML }), "function" == typeof define && define.amd ? (this.d3 = oa, define(oa)) : "object" == typeof module && module.exports ? module.exports = oa : this.d3 = oa
2765}();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.