stratos-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From saj...@apache.org
Subject [10/13] stratos git commit: Add tenant based metering info to metering dashboard - STRATOS-1654 This closes #503
Date Tue, 09 Feb 2016 12:32:23 GMT
http://git-wip-us.apache.org/repos/asf/stratos/blob/c795440d/extensions/das/modules/artifacts/metering-dashboard/capps/stratos-metering-service/GadgetApplicationSignUps/Application_Signups/js/d3.geomap.dependencies.min.js
----------------------------------------------------------------------
diff --git a/extensions/das/modules/artifacts/metering-dashboard/capps/stratos-metering-service/GadgetApplicationSignUps/Application_Signups/js/d3.geomap.dependencies.min.js b/extensions/das/modules/artifacts/metering-dashboard/capps/stratos-metering-service/GadgetApplicationSignUps/Application_Signups/js/d3.geomap.dependencies.min.js
new file mode 100644
index 0000000..d151d95
--- /dev/null
+++ b/extensions/das/modules/artifacts/metering-dashboard/capps/stratos-metering-service/GadgetApplicationSignUps/Application_Signups/js/d3.geomap.dependencies.min.js
@@ -0,0 +1,8249 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+!function () {
+    function n(n) {
+        return n && (n.ownerDocument || n.document || n).documentElement
+    }
+
+    function t(n) {
+        return n && (n.ownerDocument && n.ownerDocument.defaultView || n.document && n || n.defaultView)
+    }
+
+    function e(n, t) {
+        return t > n ? -1 : n > t ? 1 : n >= t ? 0 : 0 / 0
+    }
+
+    function r(n) {
+        return null === n ? 0 / 0 : +n
+    }
+
+    function u(n) {
+        return !isNaN(n)
+    }
+
+    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;
+                    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;
+                    n(t[i], e) > 0 ? u = i : r = i + 1
+                }
+                return r
+            }
+        }
+    }
+
+    function o(n) {
+        return n.length
+    }
+
+    function a(n) {
+        for (var t = 1; n * t % 1;)t *= 10;
+        return t
+    }
+
+    function c(n, t) {
+        for (var e in t)Object.defineProperty(n.prototype, e, {value: t[e], enumerable: !1})
+    }
+
+    function l() {
+        this._ = Object.create(null)
+    }
+
+    function s(n) {
+        return (n += "") === pa || n[0] === va ? va + n : n
+    }
+
+    function f(n) {
+        return (n += "")[0] === va ? n.slice(1) : n
+    }
+
+    function h(n) {
+        return s(n) in this._
+    }
+
+    function g(n) {
+        return (n = s(n)) in this._ && delete this._[n]
+    }
+
+    function p() {
+        var n = [];
+        for (var t in this._)n.push(f(t));
+        return n
+    }
+
+    function v() {
+        var n = 0;
+        for (var t in this._)++n;
+        return n
+    }
+
+    function d() {
+        for (var n in this._)return !1;
+        return !0
+    }
+
+    function m() {
+        this._ = Object.create(null)
+    }
+
+    function y(n) {
+        return n
+    }
+
+    function M(n, t, e) {
+        return function () {
+            var r = e.apply(t, arguments);
+            return r === t ? n : r
+        }
+    }
+
+    function x(n, t) {
+        if (t in n)return t;
+        t = t.charAt(0).toUpperCase() + t.slice(1);
+        for (var e = 0, r = da.length; r > e; ++e) {
+            var u = da[e] + t;
+            if (u in n)return u
+        }
+    }
+
+    function b() {
+    }
+
+    function _() {
+    }
+
+    function w(n) {
+        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 = [], r = new l;
+        return t.on = function (t, u) {
+            var i, o = r.get(t);
+            return arguments.length < 2 ? o && o.on : (o && (o.on = null, e = e.slice(0, i = e.indexOf(o)).concat(e.slice(i + 1)), r.remove(t)), u && e.push(r.set(t, {on: u})), n)
+        }, t
+    }
+
+    function S() {
+        ta.event.preventDefault()
+    }
+
+    function k() {
+        for (var n, t = ta.event; n = t.sourceEvent;)t = n;
+        return t
+    }
+
+    function E(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 = ta.event;
+                    u.target = n, ta.event = u, t[u.type].apply(e, r)
+                } finally {
+                    ta.event = i
+                }
+            }
+        }, t
+    }
+
+    function A(n) {
+        return ya(n, _a), n
+    }
+
+    function N(n) {
+        return "function" == typeof n ? n : function () {
+            return Ma(n, this)
+        }
+    }
+
+    function C(n) {
+        return "function" == typeof n ? n : function () {
+            return xa(n, this)
+        }
+    }
+
+    function z(n, t) {
+        function e() {
+            this.removeAttribute(n)
+        }
+
+        function r() {
+            this.removeAttributeNS(n.space, n.local)
+        }
+
+        function u() {
+            this.setAttribute(n, t)
+        }
+
+        function i() {
+            this.setAttributeNS(n.space, n.local, t)
+        }
+
+        function o() {
+            var e = t.apply(this, arguments);
+            null == e ? this.removeAttribute(n) : this.setAttribute(n, e)
+        }
+
+        function a() {
+            var e = t.apply(this, arguments);
+            null == e ? this.removeAttributeNS(n.space, n.local) : this.setAttributeNS(n.space, n.local, e)
+        }
+
+        return n = ta.ns.qualify(n), null == t ? n.local ? r : e : "function" == typeof t ? n.local ? a : o : n.local ? i : u
+    }
+
+    function q(n) {
+        return n.trim().replace(/\s+/g, " ")
+    }
+
+    function L(n) {
+        return new RegExp("(?:^|\\s+)" + ta.requote(n) + "(?:\\s+|$)", "g")
+    }
+
+    function T(n) {
+        return (n + "").trim().split(/^|\s+/)
+    }
+
+    function R(n, t) {
+        function e() {
+            for (var e = -1; ++e < u;)n[e](this, t)
+        }
+
+        function r() {
+            for (var e = -1, r = t.apply(this, arguments); ++e < u;)n[e](this, r)
+        }
+
+        n = T(n).map(D);
+        var u = n.length;
+        return "function" == typeof t ? r : e
+    }
+
+    function D(n) {
+        var t = L(n);
+        return function (e, r) {
+            if (u = e.classList)return r ? u.add(n) : u.remove(n);
+            var u = e.getAttribute("class") || "";
+            r ? (t.lastIndex = 0, t.test(u) || e.setAttribute("class", q(u + " " + n))) : e.setAttribute("class", q(u.replace(t, " ")))
+        }
+    }
+
+    function P(n, t, e) {
+        function r() {
+            this.style.removeProperty(n)
+        }
+
+        function u() {
+            this.style.setProperty(n, t, e)
+        }
+
+        function i() {
+            var r = t.apply(this, arguments);
+            null == r ? this.style.removeProperty(n) : this.style.setProperty(n, r, e)
+        }
+
+        return null == t ? r : "function" == typeof t ? i : u
+    }
+
+    function U(n, t) {
+        function e() {
+            delete this[n]
+        }
+
+        function r() {
+            this[n] = t
+        }
+
+        function u() {
+            var e = t.apply(this, arguments);
+            null == e ? delete this[n] : this[n] = e
+        }
+
+        return null == t ? e : "function" == typeof t ? u : r
+    }
+
+    function j(n) {
+        function t() {
+            var t = this.ownerDocument, e = this.namespaceURI;
+            return e ? t.createElementNS(e, n) : t.createElement(n)
+        }
+
+        function e() {
+            return this.ownerDocument.createElementNS(n.space, n.local)
+        }
+
+        return "function" == typeof n ? n : (n = ta.ns.qualify(n)).local ? e : t
+    }
+
+    function F() {
+        var n = this.parentNode;
+        n && n.removeChild(this)
+    }
+
+    function H(n) {
+        return {__data__: n}
+    }
+
+    function O(n) {
+        return function () {
+            return ba(this, n)
+        }
+    }
+
+    function I(n) {
+        return arguments.length || (n = e), function (t, e) {
+            return t && e ? n(t.__data__, e.__data__) : !t - !e
+        }
+    }
+
+    function Y(n, t) {
+        for (var e = 0, r = n.length; r > e; e++)for (var u, i = n[e], o = 0, a = i.length; a > o; o++)(u = i[o]) && t(u, o, e);
+        return n
+    }
+
+    function Z(n) {
+        return ya(n, Sa), n
+    }
+
+    function V(n) {
+        var t, e;
+        return function (r, u, i) {
+            var o, a = n[i].update, c = a.length;
+            for (i != e && (e = i, t = 0), u >= t && (t = u + 1); !(o = a[t]) && ++t < c;);
+            return o
+        }
+    }
+
+    function X(n, t, e) {
+        function r() {
+            var t = this[o];
+            t && (this.removeEventListener(n, t, t.$), delete this[o])
+        }
+
+        function u() {
+            var u = c(t, ra(arguments));
+            r.call(this), this.addEventListener(n, this[o] = u, u.$ = e), u._ = t
+        }
+
+        function i() {
+            var t, e = new RegExp("^__on([^.]+)" + ta.requote(n) + "$");
+            for (var r in this)if (t = r.match(e)) {
+                var u = this[r];
+                this.removeEventListener(t[1], u, u.$), delete this[r]
+            }
+        }
+
+        var o = "__on" + n, a = n.indexOf("."), c = $;
+        a > 0 && (n = n.slice(0, a));
+        var l = ka.get(n);
+        return l && (n = l, c = B), a ? t ? u : r : t ? b : i
+    }
+
+    function $(n, t) {
+        return function (e) {
+            var r = ta.event;
+            ta.event = e, t[0] = this.__data__;
+            try {
+                n.apply(this, t)
+            } finally {
+                ta.event = r
+            }
+        }
+    }
+
+    function B(n, t) {
+        var e = $(n, t);
+        return function (n) {
+            var t = this, r = n.relatedTarget;
+            r && (r === t || 8 & r.compareDocumentPosition(t)) || e.call(t, n)
+        }
+    }
+
+    function W(e) {
+        var r = ".dragsuppress-" + ++Aa, u = "click" + r, i = ta.select(t(e)).on("touchmove" + r, S).on("dragstart" + r, S).on("selectstart" + r, S);
+        if (null == Ea && (Ea = "onselectstart" in e ? !1 : x(e.style, "userSelect")), Ea) {
+            var o = n(e).style, a = o[Ea];
+            o[Ea] = "none"
+        }
+        return function (n) {
+            if (i.on(r, null), Ea && (o[Ea] = a), n) {
+                var t = function () {
+                    i.on(u, null)
+                };
+                i.on(u, function () {
+                    S(), t()
+                }, !0), setTimeout(t, 0)
+            }
+        }
+    }
+
+    function J(n, e) {
+        e.changedTouches && (e = e.changedTouches[0]);
+        var r = n.ownerSVGElement || n;
+        if (r.createSVGPoint) {
+            var u = r.createSVGPoint();
+            if (0 > Na) {
+                var i = t(n);
+                if (i.scrollX || i.scrollY) {
+                    r = ta.select("body").append("svg").style({
+                        position: "absolute",
+                        top: 0,
+                        left: 0,
+                        margin: 0,
+                        padding: 0,
+                        border: "none"
+                    }, "important");
+                    var o = r[0][0].getScreenCTM();
+                    Na = !(o.f || o.e), r.remove()
+                }
+            }
+            return Na ? (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 a = n.getBoundingClientRect();
+        return [e.clientX - a.left - n.clientLeft, e.clientY - a.top - n.clientTop]
+    }
+
+    function G() {
+        return ta.event.changedTouches[0].identifier
+    }
+
+    function K(n) {
+        return n > 0 ? 1 : 0 > n ? -1 : 0
+    }
+
+    function Q(n, t, e) {
+        return (t[0] - n[0]) * (e[1] - n[1]) - (t[1] - n[1]) * (e[0] - n[0])
+    }
+
+    function nt(n) {
+        return n > 1 ? 0 : -1 > n ? qa : Math.acos(n)
+    }
+
+    function tt(n) {
+        return n > 1 ? Ra : -1 > n ? -Ra : Math.asin(n)
+    }
+
+    function et(n) {
+        return ((n = Math.exp(n)) - 1 / n) / 2
+    }
+
+    function rt(n) {
+        return ((n = Math.exp(n)) + 1 / n) / 2
+    }
+
+    function ut(n) {
+        return ((n = Math.exp(2 * n)) - 1) / (n + 1)
+    }
+
+    function it(n) {
+        return (n = Math.sin(n / 2)) * n
+    }
+
+    function ot() {
+    }
+
+    function at(n, t, e) {
+        return this instanceof at ? (this.h = +n, this.s = +t, void(this.l = +e)) : arguments.length < 2 ? n instanceof at ? new at(n.h, n.s, n.l) : bt("" + n, _t, at) : new at(n, t, e)
+    }
+
+    function ct(n, t, e) {
+        function r(n) {
+            return n > 360 ? n -= 360 : 0 > n && (n += 360), 60 > n ? i + (o - i) * n / 60 : 180 > n ? o : 240 > n ? i + (o - i) * (240 - n) / 60 : i
+        }
+
+        function u(n) {
+            return Math.round(255 * r(n))
+        }
+
+        var i, o;
+        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, o = .5 >= e ? e * (1 + t) : e + t - e * t, i = 2 * e - o, new mt(u(n + 120), u(n), u(n - 120))
+    }
+
+    function lt(n, t, e) {
+        return this instanceof lt ? (this.h = +n, this.c = +t, void(this.l = +e)) : arguments.length < 2 ? n instanceof lt ? new lt(n.h, n.c, n.l) : n instanceof ft ? gt(n.l, n.a, n.b) : gt((n = wt((n = ta.rgb(n)).r, n.g, n.b)).l, n.a, n.b) : new lt(n, t, e)
+    }
+
+    function st(n, t, e) {
+        return isNaN(n) && (n = 0), isNaN(t) && (t = 0), new ft(e, Math.cos(n *= Da) * t, Math.sin(n) * t)
+    }
+
+    function ft(n, t, e) {
+        return this instanceof ft ? (this.l = +n, this.a = +t, void(this.b = +e)) : arguments.length < 2 ? n instanceof ft ? new ft(n.l, n.a, n.b) : n instanceof lt ? st(n.h, n.c, n.l) : wt((n = mt(n)).r, n.g, n.b) : new ft(n, t, e)
+    }
+
+    function ht(n, t, e) {
+        var r = (n + 16) / 116, u = r + t / 500, i = r - e / 200;
+        return u = pt(u) * Xa, r = pt(r) * $a, i = pt(i) * Ba, new mt(dt(3.2404542 * u - 1.5371385 * r - .4985314 * i), dt(-.969266 * u + 1.8760108 * r + .041556 * i), dt(.0556434 * u - .2040259 * r + 1.0572252 * i))
+    }
+
+    function gt(n, t, e) {
+        return n > 0 ? new lt(Math.atan2(e, t) * Pa, Math.sqrt(t * t + e * e), n) : new lt(0 / 0, 0 / 0, n)
+    }
+
+    function pt(n) {
+        return n > .206893034 ? n * n * n : (n - 4 / 29) / 7.787037
+    }
+
+    function vt(n) {
+        return n > .008856 ? Math.pow(n, 1 / 3) : 7.787037 * n + 4 / 29
+    }
+
+    function dt(n) {
+        return Math.round(255 * (.00304 >= n ? 12.92 * n : 1.055 * Math.pow(n, 1 / 2.4) - .055))
+    }
+
+    function mt(n, t, e) {
+        return this instanceof mt ? (this.r = ~~n, this.g = ~~t, void(this.b = ~~e)) : arguments.length < 2 ? n instanceof mt ? new mt(n.r, n.g, n.b) : bt("" + n, mt, ct) : new mt(n, t, e)
+    }
+
+    function yt(n) {
+        return new mt(n >> 16, n >> 8 & 255, 255 & n)
+    }
+
+    function Mt(n) {
+        return yt(n) + ""
+    }
+
+    function xt(n) {
+        return 16 > n ? "0" + Math.max(0, n).toString(16) : Math.min(255, n).toString(16)
+    }
+
+    function bt(n, t, e) {
+        var r, u, i, o = 0, a = 0, c = 0;
+        if (r = /([a-z]+)\((.*)\)/i.exec(n))switch (u = r[2].split(","), r[1]) {
+            case"hsl":
+                return e(parseFloat(u[0]), parseFloat(u[1]) / 100, parseFloat(u[2]) / 100);
+            case"rgb":
+                return t(kt(u[0]), kt(u[1]), kt(u[2]))
+        }
+        return (i = Ga.get(n.toLowerCase())) ? t(i.r, i.g, i.b) : (null == n || "#" !== n.charAt(0) || isNaN(i = parseInt(n.slice(1), 16)) || (4 === n.length ? (o = (3840 & i) >> 4, o = o >> 4 | o, a = 240 & i, a = a >> 4 | a, c = 15 & i, c = c << 4 | c) : 7 === n.length && (o = (16711680 & i) >> 16, a = (65280 & i) >> 8, c = 255 & i)), t(o, a, c))
+    }
+
+    function _t(n, t, e) {
+        var r, u, i = Math.min(n /= 255, t /= 255, e /= 255), o = Math.max(n, t, e), a = o - i, c = (o + i) / 2;
+        return a ? (u = .5 > c ? a / (o + i) : a / (2 - o - i), r = n == o ? (t - e) / a + (e > t ? 6 : 0) : t == o ? (e - n) / a + 2 : (n - t) / a + 4, r *= 60) : (r = 0 / 0, u = c > 0 && 1 > c ? 0 : r), new at(r, u, c)
+    }
+
+    function wt(n, t, e) {
+        n = St(n), t = St(t), e = St(e);
+        var r = vt((.4124564 * n + .3575761 * t + .1804375 * e) / Xa), u = vt((.2126729 * n + .7151522 * t + .072175 * e) / $a), i = vt((.0193339 * n + .119192 * t + .9503041 * e) / Ba);
+        return ft(116 * u - 16, 500 * (r - u), 200 * (u - i))
+    }
+
+    function St(n) {
+        return (n /= 255) <= .04045 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4)
+    }
+
+    function kt(n) {
+        var t = parseFloat(n);
+        return "%" === n.charAt(n.length - 1) ? Math.round(2.55 * t) : t
+    }
+
+    function Et(n) {
+        return "function" == typeof n ? n : function () {
+            return n
+        }
+    }
+
+    function At(n) {
+        return function (t, e, r) {
+            return 2 === arguments.length && "function" == typeof e && (r = e, e = null), Nt(t, e, n, r)
+        }
+    }
+
+    function Nt(n, t, e, r) {
+        function u() {
+            var n, t = c.status;
+            if (!t && zt(c) || t >= 200 && 300 > t || 304 === t) {
+                try {
+                    n = e.call(i, c)
+                } catch (r) {
+                    return void o.error.call(i, r)
+                }
+                o.load.call(i, n)
+            } else o.error.call(i, c)
+        }
+
+        var i = {}, o = ta.dispatch("beforesend", "progress", "load", "error"), a = {}, c = new XMLHttpRequest, l = null;
+        return !this.XDomainRequest || "withCredentials" in c || !/^(http(s)?:)?\/\//.test(n) || (c = new XDomainRequest), "onload" in c ? c.onload = c.onerror = u : c.onreadystatechange = function () {
+            c.readyState > 3 && u()
+        }, c.onprogress = function (n) {
+            var t = ta.event;
+            ta.event = n;
+            try {
+                o.progress.call(i, c)
+            } finally {
+                ta.event = t
+            }
+        }, i.header = function (n, t) {
+            return n = (n + "").toLowerCase(), arguments.length < 2 ? a[n] : (null == t ? delete a[n] : a[n] = t + "", i)
+        }, i.mimeType = function (n) {
+            return arguments.length ? (t = null == n ? null : n + "", i) : t
+        }, i.responseType = function (n) {
+            return arguments.length ? (l = n, i) : l
+        }, i.response = function (n) {
+            return e = n, i
+        }, ["get", "post"].forEach(function (n) {
+            i[n] = function () {
+                return i.send.apply(i, [n].concat(ra(arguments)))
+            }
+        }), i.send = function (e, r, u) {
+            if (2 === arguments.length && "function" == typeof r && (u = r, r = null), c.open(e, n, !0), null == t || "accept" in a || (a.accept = t + ",*/*"), c.setRequestHeader)for (var s in a)c.setRequestHeader(s, a[s]);
+            return null != t && c.overrideMimeType && c.overrideMimeType(t), null != l && (c.responseType = l), null != u && i.on("error", u).on("load", function (n) {
+                u(null, n)
+            }), o.beforesend.call(i, c), c.send(null == r ? null : r), i
+        }, i.abort = function () {
+            return c.abort(), i
+        }, ta.rebind(i, o, "on"), null == r ? i : i.get(Ct(r))
+    }
+
+    function Ct(n) {
+        return 1 === n.length ? function (t, e) {
+            n(null == t ? e : null)
+        } : n
+    }
+
+    function zt(n) {
+        var t = n.responseType;
+        return t && "text" !== t ? n.response : n.responseText
+    }
+
+    function qt() {
+        var n = Lt(), t = Tt() - n;
+        t > 24 ? (isFinite(t) && (clearTimeout(tc), tc = setTimeout(qt, t)), nc = 0) : (nc = 1, rc(qt))
+    }
+
+    function Lt() {
+        var n = Date.now();
+        for (ec = Ka; ec;)n >= ec.t && (ec.f = ec.c(n - ec.t)), ec = ec.n;
+        return n
+    }
+
+    function Tt() {
+        for (var n, t = Ka, e = 1 / 0; t;)t.f ? t = n ? n.n = t.n : Ka = t.n : (t.t < e && (e = t.t), t = (n = t).n);
+        return Qa = n, e
+    }
+
+    function Rt(n, t) {
+        return t - (n ? Math.ceil(Math.log(n) / Math.LN10) : 1)
+    }
+
+    function Dt(n, t) {
+        var e = Math.pow(10, 3 * ga(8 - t));
+        return {
+            scale: t > 8 ? function (n) {
+                return n / e
+            } : function (n) {
+                return n * e
+            }, symbol: n
+        }
+    }
+
+    function Pt(n) {
+        var t = n.decimal, e = n.thousands, r = n.grouping, u = n.currency, i = r && e ? function (n, t) {
+            for (var u = n.length, i = [], o = 0, a = r[0], c = 0; u > 0 && a > 0 && (c + a + 1 > t && (a = Math.max(1, t - c)), i.push(n.substring(u -= a, u + a)), !((c += a + 1) > t));)a = r[o = (o + 1) % r.length];
+            return i.reverse().join(e)
+        } : y;
+        return function (n) {
+            var e = ic.exec(n), r = e[1] || " ", o = e[2] || ">", a = e[3] || "-", c = e[4] || "", l = e[5], s = +e[6], f = e[7], h = e[8], g = e[9], p = 1, v = "", d = "", m = !1, y = !0;
+            switch (h && (h = +h.substring(1)), (l || "0" === r && "=" === o) && (l = r = "0", o = "="), g) {
+                case"n":
+                    f = !0, g = "g";
+                    break;
+                case"%":
+                    p = 100, d = "%", g = "f";
+                    break;
+                case"p":
+                    p = 100, d = "%", g = "r";
+                    break;
+                case"b":
+                case"o":
+                case"x":
+                case"X":
+                    "#" === c && (v = "0" + g.toLowerCase());
+                case"c":
+                    y = !1;
+                case"d":
+                    m = !0, h = 0;
+                    break;
+                case"s":
+                    p = -1, g = "r"
+            }
+            "$" === c && (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 = oc.get(g) || Ut;
+            var M = l && f;
+            return function (n) {
+                var e = d;
+                if (m && n % 1)return "";
+                var u = 0 > n || 0 === n && 0 > 1 / n ? (n = -n, "-") : "-" === a ? "" : a;
+                if (0 > p) {
+                    var c = ta.formatPrefix(n, h);
+                    n = c.scale(n), e = c.symbol + d
+                } else n *= p;
+                n = g(n, h);
+                var x, b, _ = n.lastIndexOf(".");
+                if (0 > _) {
+                    var w = y ? n.lastIndexOf("e") : -1;
+                    0 > w ? (x = n, b = "") : (x = n.substring(0, w), b = n.substring(w))
+                } else x = n.substring(0, _), b = t + n.substring(_ + 1);
+                !l && f && (x = i(x, 1 / 0));
+                var S = v.length + x.length + b.length + (M ? 0 : u.length), 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, ("<" === o ? u + n + k : ">" === o ? k + u + n : "^" === o ? k.substring(0, S >>= 1) + u + n + k.substring(S) : u + (M ? n : k + n)) + e
+            }
+        }
+    }
+
+    function Ut(n) {
+        return n + ""
+    }
+
+    function jt() {
+        this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0])
+    }
+
+    function Ft(n, t, e) {
+        function r(t) {
+            var e = n(t), r = i(e, 1);
+            return r - t > t - e ? e : r
+        }
+
+        function u(e) {
+            return t(e = n(new cc(e - 1)), 1), e
+        }
+
+        function i(n, e) {
+            return t(n = new cc(+n), e), n
+        }
+
+        function o(n, r, i) {
+            var o = u(n), a = [];
+            if (i > 1)for (; r > o;)e(o) % i || a.push(new Date(+o)), t(o, 1); else for (; r > o;)a.push(new Date(+o)), t(o, 1);
+            return a
+        }
+
+        function a(n, t, e) {
+            try {
+                cc = jt;
+                var r = new jt;
+                return r._ = n, o(r, t, e)
+            } finally {
+                cc = Date
+            }
+        }
+
+        n.floor = n, n.round = r, n.ceil = u, n.offset = i, n.range = o;
+        var c = n.utc = Ht(n);
+        return c.floor = c, c.round = Ht(r), c.ceil = Ht(u), c.offset = Ht(i), c.range = a, n
+    }
+
+    function Ht(n) {
+        return function (t, e) {
+            try {
+                cc = jt;
+                var r = new jt;
+                return r._ = t, n(r, e)._
+            } finally {
+                cc = Date
+            }
+        }
+    }
+
+    function Ot(n) {
+        function t(n) {
+            function t(t) {
+                for (var e, u, i, o = [], a = -1, c = 0; ++a < r;)37 === n.charCodeAt(a) && (o.push(n.slice(c, a)), null != (u = sc[e = n.charAt(++a)]) && (e = n.charAt(++a)), (i = N[e]) && (e = i(t, null == u ? "e" === e ? " " : "0" : u)), o.push(e), c = a + 1);
+                return o.push(n.slice(c, a)), o.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}, 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 && cc !== jt, o = new (i ? jt : cc);
+                return "j" in r ? o.setFullYear(r.y, 0, r.j) : "w" in r && ("W" in r || "U" in r) ? (o.setFullYear(r.y, 0, 1), o.setFullYear(r.y, 0, "W" in r ? (r.w + 6) % 7 + 7 * r.W - (o.getDay() + 5) % 7 : r.w + 7 * r.U - (o.getDay() + 6) % 7)) : o.setFullYear(r.y, r.m, r.d), o.setHours(r.H + (r.Z / 100 | 0), r.M + r.Z % 100, r.S, r.L), i ? o._ : o
+            }, t.toString = function () {
+                return n
+            }, t
+        }
+
+        function e(n, t, e, r) {
+            for (var u, i, o, a = 0, c = t.length, l = e.length; c > a;) {
+                if (r >= l)return -1;
+                if (u = t.charCodeAt(a++), 37 === u) {
+                    if (o = t.charAt(a++), i = C[o in sc ? t.charAt(a++) : o], !i || (r = i(n, e, r)) < 0)return -1
+                } else if (u != e.charCodeAt(r++))return -1
+            }
+            return r
+        }
+
+        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
+        }
+
+        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
+        }
+
+        function i(n, t, e) {
+            E.lastIndex = 0;
+            var r = E.exec(t.slice(e));
+            return r ? (n.m = A.get(r[0].toLowerCase()), e + r[0].length) : -1
+        }
+
+        function o(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
+        }
+
+        function a(n, t, r) {
+            return e(n, N.c.toString(), t, r)
+        }
+
+        function c(n, t, r) {
+            return e(n, N.x.toString(), t, r)
+        }
+
+        function l(n, t, r) {
+            return e(n, N.X.toString(), t, r)
+        }
+
+        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, h = n.date, g = n.time, p = n.periods, v = n.days, d = n.shortDays, m = n.months, y = n.shortMonths;
+        t.utc = function (n) {
+            function e(n) {
+                try {
+                    cc = jt;
+                    var t = new cc;
+                    return t._ = n, r(t)
+                } finally {
+                    cc = Date
+                }
+            }
+
+            var r = t(n);
+            return e.parse = function (n) {
+                try {
+                    cc = jt;
+                    var t = r.parse(n);
+                    return t && t._
+                } finally {
+                    cc = Date
+                }
+            }, e.toString = r.toString, e
+        }, t.multi = t.utc.multi = ae;
+        var M = ta.map(), x = Yt(v), b = Zt(v), _ = Yt(d), w = Zt(d), S = Yt(m), k = Zt(m), E = Yt(y), A = Zt(y);
+        p.forEach(function (n, t) {
+            M.set(n.toLowerCase(), t)
+        });
+        var N = {
+            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 It(n.getDate(), t, 2)
+            }, e: function (n, t) {
+                return It(n.getDate(), t, 2)
+            }, H: function (n, t) {
+                return It(n.getHours(), t, 2)
+            }, I: function (n, t) {
+                return It(n.getHours() % 12 || 12, t, 2)
+            }, j: function (n, t) {
+                return It(1 + ac.dayOfYear(n), t, 3)
+            }, L: function (n, t) {
+                return It(n.getMilliseconds(), t, 3)
+            }, m: function (n, t) {
+                return It(n.getMonth() + 1, t, 2)
+            }, M: function (n, t) {
+                return It(n.getMinutes(), t, 2)
+            }, p: function (n) {
+                return p[+(n.getHours() >= 12)]
+            }, S: function (n, t) {
+                return It(n.getSeconds(), t, 2)
+            }, U: function (n, t) {
+                return It(ac.sundayOfYear(n), t, 2)
+            }, w: function (n) {
+                return n.getDay()
+            }, W: function (n, t) {
+                return It(ac.mondayOfYear(n), t, 2)
+            }, x: t(h), X: t(g), y: function (n, t) {
+                return It(n.getFullYear() % 100, t, 2)
+            }, Y: function (n, t) {
+                return It(n.getFullYear() % 1e4, t, 4)
+            }, Z: ie, "%": function () {
+                return "%"
+            }
+        }, C = {
+            a: r,
+            A: u,
+            b: i,
+            B: o,
+            c: a,
+            d: Qt,
+            e: Qt,
+            H: te,
+            I: te,
+            j: ne,
+            L: ue,
+            m: Kt,
+            M: ee,
+            p: s,
+            S: re,
+            U: Xt,
+            w: Vt,
+            W: $t,
+            x: c,
+            X: l,
+            y: Wt,
+            Y: Bt,
+            Z: Jt,
+            "%": oe
+        };
+        return t
+    }
+
+    function It(n, t, e) {
+        var r = 0 > n ? "-" : "", u = (r ? -n : n) + "", i = u.length;
+        return r + (e > i ? new Array(e - i + 1).join(t) + u : u)
+    }
+
+    function Yt(n) {
+        return new RegExp("^(?:" + n.map(ta.requote).join("|") + ")", "i")
+    }
+
+    function Zt(n) {
+        for (var t = new l, e = -1, r = n.length; ++e < r;)t.set(n[e].toLowerCase(), e);
+        return t
+    }
+
+    function Vt(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 1));
+        return r ? (n.w = +r[0], e + r[0].length) : -1
+    }
+
+    function Xt(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e));
+        return r ? (n.U = +r[0], e + r[0].length) : -1
+    }
+
+    function $t(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e));
+        return r ? (n.W = +r[0], e + r[0].length) : -1
+    }
+
+    function Bt(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 4));
+        return r ? (n.y = +r[0], e + r[0].length) : -1
+    }
+
+    function Wt(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 2));
+        return r ? (n.y = Gt(+r[0]), e + r[0].length) : -1
+    }
+
+    function Jt(n, t, e) {
+        return /^[+-]\d{4}$/.test(t = t.slice(e, e + 5)) ? (n.Z = -t, e + 5) : -1
+    }
+
+    function Gt(n) {
+        return n + (n > 68 ? 1900 : 2e3)
+    }
+
+    function Kt(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 2));
+        return r ? (n.m = r[0] - 1, e + r[0].length) : -1
+    }
+
+    function Qt(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 2));
+        return r ? (n.d = +r[0], e + r[0].length) : -1
+    }
+
+    function ne(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 3));
+        return r ? (n.j = +r[0], e + r[0].length) : -1
+    }
+
+    function te(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 2));
+        return r ? (n.H = +r[0], e + r[0].length) : -1
+    }
+
+    function ee(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 2));
+        return r ? (n.M = +r[0], e + r[0].length) : -1
+    }
+
+    function re(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 2));
+        return r ? (n.S = +r[0], e + r[0].length) : -1
+    }
+
+    function ue(n, t, e) {
+        fc.lastIndex = 0;
+        var r = fc.exec(t.slice(e, e + 3));
+        return r ? (n.L = +r[0], e + r[0].length) : -1
+    }
+
+    function ie(n) {
+        var t = n.getTimezoneOffset(), e = t > 0 ? "-" : "+", r = ga(t) / 60 | 0, u = ga(t) % 60;
+        return e + It(r, "0", 2) + It(u, "0", 2)
+    }
+
+    function oe(n, t, e) {
+        hc.lastIndex = 0;
+        var r = hc.exec(t.slice(e, e + 1));
+        return r ? e + r[0].length : -1
+    }
+
+    function ae(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)
+        }
+    }
+
+    function ce() {
+    }
+
+    function le(n, t, e) {
+        var r = e.s = n + t, u = r - n, i = r - u;
+        e.t = n - i + (t - u)
+    }
+
+    function se(n, t) {
+        n && dc.hasOwnProperty(n.type) && dc[n.type](n, t)
+    }
+
+    function fe(n, t, e) {
+        var r, u = -1, i = n.length - e;
+        for (t.lineStart(); ++u < i;)r = n[u], t.point(r[0], r[1], r[2]);
+        t.lineEnd()
+    }
+
+    function he(n, t) {
+        var e = -1, r = n.length;
+        for (t.polygonStart(); ++e < r;)fe(n[e], t, 1);
+        t.polygonEnd()
+    }
+
+    function ge() {
+        function n(n, t) {
+            n *= Da, t = t * Da / 2 + qa / 4;
+            var e = n - r, o = e >= 0 ? 1 : -1, a = o * e, c = Math.cos(t), l = Math.sin(t), s = i * l, f = u * c + s * Math.cos(a), h = s * o * Math.sin(a);
+            yc.add(Math.atan2(h, f)), r = n, u = c, i = l
+        }
+
+        var t, e, r, u, i;
+        Mc.point = function (o, a) {
+            Mc.point = n, r = (t = o) * Da, u = Math.cos(a = (e = a) * Da / 2 + qa / 4), i = Math.sin(a)
+        }, Mc.lineEnd = function () {
+            n(t, e)
+        }
+    }
+
+    function pe(n) {
+        var t = n[0], e = n[1], r = Math.cos(e);
+        return [r * Math.cos(t), r * Math.sin(t), Math.sin(e)]
+    }
+
+    function ve(n, t) {
+        return n[0] * t[0] + n[1] * t[1] + n[2] * t[2]
+    }
+
+    function de(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]]
+    }
+
+    function me(n, t) {
+        n[0] += t[0], n[1] += t[1], n[2] += t[2]
+    }
+
+    function ye(n, t) {
+        return [n[0] * t, n[1] * t, n[2] * t]
+    }
+
+    function Me(n) {
+        var t = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]);
+        n[0] /= t, n[1] /= t, n[2] /= t
+    }
+
+    function xe(n) {
+        return [Math.atan2(n[1], n[0]), tt(n[2])]
+    }
+
+    function be(n, t) {
+        return ga(n[0] - t[0]) < Ca && ga(n[1] - t[1]) < Ca
+    }
+
+    function _e(n, t) {
+        n *= Da;
+        var e = Math.cos(t *= Da);
+        we(e * Math.cos(n), e * Math.sin(n), Math.sin(t))
+    }
+
+    function we(n, t, e) {
+        ++xc, _c += (n - _c) / xc, wc += (t - wc) / xc, Sc += (e - Sc) / xc
+    }
+
+    function Se() {
+        function n(n, u) {
+            n *= Da;
+            var i = Math.cos(u *= Da), o = i * Math.cos(n), a = i * Math.sin(n), c = Math.sin(u), l = Math.atan2(Math.sqrt((l = e * c - r * a) * l + (l = r * o - t * c) * l + (l = t * a - e * o) * l), t * o + e * a + r * c);
+            bc += l, kc += l * (t + (t = o)), Ec += l * (e + (e = a)), Ac += l * (r + (r = c)), we(t, e, r)
+        }
+
+        var t, e, r;
+        qc.point = function (u, i) {
+            u *= Da;
+            var o = Math.cos(i *= Da);
+            t = o * Math.cos(u), e = o * Math.sin(u), r = Math.sin(i), qc.point = n, we(t, e, r)
+        }
+    }
+
+    function ke() {
+        qc.point = _e
+    }
+
+    function Ee() {
+        function n(n, t) {
+            n *= Da;
+            var e = Math.cos(t *= Da), o = e * Math.cos(n), a = e * Math.sin(n), c = Math.sin(t), l = u * c - i * a, s = i * o - r * c, f = r * a - u * o, h = Math.sqrt(l * l + s * s + f * f), g = r * o + u * a + i * c, p = h && -nt(g) / h, v = Math.atan2(h, g);
+            Nc += p * l, Cc += p * s, zc += p * f, bc += v, kc += v * (r + (r = o)), Ec += v * (u + (u = a)), Ac += v * (i + (i = c)), we(r, u, i)
+        }
+
+        var t, e, r, u, i;
+        qc.point = function (o, a) {
+            t = o, e = a, qc.point = n, o *= Da;
+            var c = Math.cos(a *= Da);
+            r = c * Math.cos(o), u = c * Math.sin(o), i = Math.sin(a), we(r, u, i)
+        }, qc.lineEnd = function () {
+            n(t, e), qc.lineEnd = ke, qc.point = _e
+        }
+    }
+
+    function Ae(n, t) {
+        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
+    }
+
+    function Ne() {
+        return !0
+    }
+
+    function Ce(n, t, e, r, u) {
+        var i = [], o = [];
+        if (n.forEach(function (n) {
+                if (!((t = n.length - 1) <= 0)) {
+                    var t, e = n[0], r = n[t];
+                    if (be(e, r)) {
+                        u.lineStart();
+                        for (var a = 0; t > a; ++a)u.point((e = n[a])[0], e[1]);
+                        return void u.lineEnd()
+                    }
+                    var c = new qe(e, n, null, !0), l = new qe(e, null, c, !1);
+                    c.o = l, i.push(c), o.push(l), c = new qe(r, n, null, !1), l = new qe(r, null, c, !0), c.o = l, i.push(c), o.push(l)
+                }
+            }), o.sort(t), ze(i), ze(o), i.length) {
+            for (var a = 0, c = e, l = o.length; l > a; ++a)o[a].e = c = !c;
+            for (var s, f, h = i[0]; ;) {
+                for (var g = h, p = !0; g.v;)if ((g = g.n) === h)return;
+                s = g.z, u.lineStart();
+                do {
+                    if (g.v = g.o.v = !0, g.e) {
+                        if (p)for (var a = 0, l = s.length; l > a; ++a)u.point((f = s[a])[0], f[1]); else r(g.x, g.n.x, 1, u);
+                        g = g.n
+                    } else {
+                        if (p) {
+                            s = g.p.z;
+                            for (var a = s.length - 1; a >= 0; --a)u.point((f = s[a])[0], f[1])
+                        } else r(g.x, g.p.x, -1, u);
+                        g = g.p
+                    }
+                    g = g.o, s = g.z, p = !p
+                } while (!g.v);
+                u.lineEnd()
+            }
+        }
+    }
+
+    function ze(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;
+            u.n = e = n[0], e.p = u
+        }
+    }
+
+    function qe(n, t, e, r) {
+        this.x = n, this.z = t, this.o = e, this.e = r, this.v = !1, this.n = this.p = null
+    }
+
+    function Le(n, t, e, r) {
+        return function (u, i) {
+            function o(t, e) {
+                var r = u(t, e);
+                n(t = r[0], e = r[1]) && i.point(t, e)
+            }
+
+            function a(n, t) {
+                var e = u(n, t);
+                d.point(e[0], e[1])
+            }
+
+            function c() {
+                y.point = a, d.lineStart()
+            }
+
+            function l() {
+                y.point = o, d.lineEnd()
+            }
+
+            function s(n, t) {
+                v.push([n, t]);
+                var e = u(n, t);
+                x.point(e[0], e[1])
+            }
+
+            function f() {
+                x.lineStart(), v = []
+            }
+
+            function h() {
+                s(v[0][0], v[0][1]), x.lineEnd();
+                var n, t = x.clean(), e = M.buffer(), r = e.length;
+                if (v.pop(), p.push(v), v = null, r)if (1 & t) {
+                    n = e[0];
+                    var u, r = n.length - 1, o = -1;
+                    if (r > 0) {
+                        for (b || (i.polygonStart(), b = !0), i.lineStart(); ++o < r;)i.point((u = n[o])[0], u[1]);
+                        i.lineEnd()
+                    }
+                } else r > 1 && 2 & t && e.push(e.pop().concat(e.shift())), g.push(e.filter(Te))
+            }
+
+            var g, p, v, d = t(i), m = u.invert(r[0], r[1]), y = {
+                point: o,
+                lineStart: c,
+                lineEnd: l,
+                polygonStart: function () {
+                    y.point = s, y.lineStart = f, y.lineEnd = h, g = [], p = []
+                },
+                polygonEnd: function () {
+                    y.point = o, y.lineStart = c, y.lineEnd = l, g = ta.merge(g);
+                    var n = Fe(m, p);
+                    g.length ? (b || (i.polygonStart(), b = !0), Ce(g, De, 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()
+                }
+            }, M = Re(), x = t(M), b = !1;
+            return y
+        }
+    }
+
+    function Te(n) {
+        return n.length > 1
+    }
+
+    function Re() {
+        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()))
+            }
+        }
+    }
+
+    function De(n, t) {
+        return ((n = n.x)[0] < 0 ? n[1] - Ra - Ca : Ra - n[1]) - ((t = t.x)[0] < 0 ? t[1] - Ra - Ca : Ra - t[1])
+    }
+
+    function Pe(n) {
+        var t, e = 0 / 0, r = 0 / 0, u = 0 / 0;
+        return {
+            lineStart: function () {
+                n.lineStart(), t = 1
+            }, point: function (i, o) {
+                var a = i > 0 ? qa : -qa, c = ga(i - e);
+                ga(c - qa) < Ca ? (n.point(e, r = (r + o) / 2 > 0 ? Ra : -Ra), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(a, r), n.point(i, r), t = 0) : u !== a && c >= qa && (ga(e - u) < Ca && (e -= u * Ca), ga(i - a) < Ca && (i -= a * Ca), r = Ue(e, r, i, o), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(a, r), t = 0), n.point(e = i, r = o), u = a
+            }, lineEnd: function () {
+                n.lineEnd(), e = r = 0 / 0
+            }, clean: function () {
+                return 2 - t
+            }
+        }
+    }
+
+    function Ue(n, t, e, r) {
+        var u, i, o = Math.sin(n - e);
+        return ga(o) > Ca ? Math.atan((Math.sin(t) * (i = Math.cos(r)) * Math.sin(e) - Math.sin(r) * (u = Math.cos(t)) * Math.sin(n)) / (u * i * o)) : (t + r) / 2
+    }
+
+    function je(n, t, e, r) {
+        var u;
+        if (null == n)u = e * Ra, r.point(-qa, u), r.point(0, u), r.point(qa, u), r.point(qa, 0), r.point(qa, -u), r.point(0, -u), r.point(-qa, -u), r.point(-qa, 0), r.point(-qa, u); else if (ga(n[0] - t[0]) > Ca) {
+            var i = n[0] < t[0] ? qa : -qa;
+            u = e * i / 2, r.point(-i, u), r.point(0, u), r.point(i, u)
+        } else r.point(t[0], t[1])
+    }
+
+    function Fe(n, t) {
+        var e = n[0], r = n[1], u = [Math.sin(e), -Math.cos(e), 0], i = 0, o = 0;
+        yc.reset();
+        for (var a = 0, c = t.length; c > a; ++a) {
+            var l = t[a], s = l.length;
+            if (s)for (var f = l[0], h = f[0], g = f[1] / 2 + qa / 4, p = Math.sin(g), v = Math.cos(g), d = 1; ;) {
+                d === s && (d = 0), n = l[d];
+                var m = n[0], y = n[1] / 2 + qa / 4, M = Math.sin(y), x = Math.cos(y), b = m - h, _ = b >= 0 ? 1 : -1, w = _ * b, S = w > qa, k = p * M;
+                if (yc.add(Math.atan2(k * _ * Math.sin(w), v * x + k * Math.cos(w))), i += S ? b + _ * La : b, S ^ h >= e ^ m >= e) {
+                    var E = de(pe(f), pe(n));
+                    Me(E);
+                    var A = de(u, E);
+                    Me(A);
+                    var N = (S ^ b >= 0 ? -1 : 1) * tt(A[2]);
+                    (r > N || r === N && (E[0] || E[1])) && (o += S ^ b >= 0 ? 1 : -1)
+                }
+                if (!d++)break;
+                h = m, p = M, v = x, f = n
+            }
+        }
+        return (-Ca > i || Ca > i && 0 > yc) ^ 1 & o
+    }
+
+    function He(n) {
+        function t(n, t) {
+            return Math.cos(n) * Math.cos(t) > i
+        }
+
+        function e(n) {
+            var e, i, c, l, s;
+            return {
+                lineStart: function () {
+                    l = c = !1, s = 1
+                }, point: function (f, h) {
+                    var g, p = [f, h], v = t(f, h), d = o ? v ? 0 : u(f, h) : v ? u(f + (0 > f ? qa : -qa), h) : 0;
+                    if (!e && (l = c = v) && n.lineStart(), v !== c && (g = r(e, p), (be(e, g) || be(p, g)) && (p[0] += Ca, p[1] += Ca, v = t(p[0], p[1]))), v !== c)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; else if (a && e && o ^ v) {
+                        var m;
+                        d & i || !(m = r(p, e, !0)) || (s = 0, o ? (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 && be(e, p) || n.point(p[0], p[1]), e = p, c = v, i = d
+                }, lineEnd: function () {
+                    c && n.lineEnd(), e = null
+                }, clean: function () {
+                    return s | (l && c) << 1
+                }
+            }
+        }
+
+        function r(n, t, e) {
+            var r = pe(n), u = pe(t), o = [1, 0, 0], a = de(r, u), c = ve(a, a), l = a[0], s = c - l * l;
+            if (!s)return !e && n;
+            var f = i * c / s, h = -i * l / s, g = de(o, a), p = ye(o, f), v = ye(a, h);
+            me(p, v);
+            var d = g, m = ve(p, d), y = ve(d, d), M = m * m - y * (ve(p, p) - 1);
+            if (!(0 > M)) {
+                var x = Math.sqrt(M), b = ye(d, (-m - x) / y);
+                if (me(b, p), b = xe(b), !e)return b;
+                var _, w = n[0], S = t[0], k = n[1], E = t[1];
+                w > S && (_ = w, w = S, S = _);
+                var A = S - w, N = ga(A - qa) < Ca, C = N || Ca > A;
+                if (!N && k > E && (_ = k, k = E, E = _), C ? N ? k + E > 0 ^ b[1] < (ga(b[0] - w) < Ca ? k : E) : k <= b[1] && b[1] <= E : A > qa ^ (w <= b[0] && b[0] <= S)) {
+                    var z = ye(d, (-m + x) / y);
+                    return me(z, p), [b, xe(z)]
+                }
+            }
+        }
+
+        function u(t, e) {
+            var r = o ? n : qa - n, 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), o = i > 0, a = ga(i) > Ca, c = gr(n, 6 * Da);
+        return Le(t, e, c, o ? [0, -n] : [-qa, n - qa])
+    }
+
+    function Oe(n, t, e, r) {
+        return function (u) {
+            var i, o = u.a, a = u.b, c = o.x, l = o.y, s = a.x, f = a.y, h = 0, g = 1, p = s - c, v = f - l;
+            if (i = n - c, p || !(i > 0)) {
+                if (i /= p, 0 > p) {
+                    if (h > i)return;
+                    g > i && (g = i)
+                } else if (p > 0) {
+                    if (i > g)return;
+                    i > h && (h = i)
+                }
+                if (i = e - c, p || !(0 > i)) {
+                    if (i /= p, 0 > p) {
+                        if (i > g)return;
+                        i > h && (h = i)
+                    } else if (p > 0) {
+                        if (h > i)return;
+                        g > i && (g = i)
+                    }
+                    if (i = t - l, v || !(i > 0)) {
+                        if (i /= v, 0 > v) {
+                            if (h > i)return;
+                            g > i && (g = i)
+                        } else if (v > 0) {
+                            if (i > g)return;
+                            i > h && (h = i)
+                        }
+                        if (i = r - l, v || !(0 > i)) {
+                            if (i /= v, 0 > v) {
+                                if (i > g)return;
+                                i > h && (h = i)
+                            } else if (v > 0) {
+                                if (h > i)return;
+                                g > i && (g = i)
+                            }
+                            return h > 0 && (u.a = {x: c + h * p, y: l + h * v}), 1 > g && (u.b = {
+                                x: c + g * p,
+                                y: l + g * v
+                            }), u
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    function Ie(n, t, e, r) {
+        function u(r, u) {
+            return ga(r[0] - n) < Ca ? u > 0 ? 0 : 3 : ga(r[0] - e) < Ca ? u > 0 ? 2 : 1 : ga(r[1] - t) < Ca ? u > 0 ? 1 : 0 : u > 0 ? 3 : 2
+        }
+
+        function i(n, t) {
+            return o(n.x, t.x)
+        }
+
+        function o(n, t) {
+            var e = u(n, 1), 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 (a) {
+            function c(n) {
+                for (var t = 0, e = d.length, r = n[1], u = 0; e > u; ++u)for (var i, o = 1, a = d[u], c = a.length, l = a[0]; c > o; ++o)i = a[o], l[1] <= r ? i[1] > r && Q(l, i, n) > 0 && ++t : i[1] <= r && Q(l, i, n) < 0 && --t, l = i;
+                return 0 !== t
+            }
+
+            function l(i, a, c, l) {
+                var s = 0, f = 0;
+                if (null == i || (s = u(i, c)) !== (f = u(a, c)) || o(i, a) < 0 ^ c > 0) {
+                    do l.point(0 === s || 3 === s ? n : e, s > 1 ? r : t); while ((s = (s + c + 4) % 4) !== f)
+                } else l.point(a[0], a[1])
+            }
+
+            function s(u, i) {
+                return u >= n && e >= u && i >= t && r >= i
+            }
+
+            function f(n, t) {
+                s(n, t) && a.point(n, t)
+            }
+
+            function h() {
+                C.point = p, d && d.push(m = []), S = !0, w = !1, b = _ = 0 / 0
+            }
+
+            function g() {
+                v && (p(y, M), x && w && A.rejoin(), v.push(A.buffer())), C.point = f, w && a.lineEnd()
+            }
+
+            function p(n, t) {
+                n = Math.max(-Tc, Math.min(Tc, n)), t = Math.max(-Tc, Math.min(Tc, t));
+                var e = s(n, t);
+                if (d && m.push([n, t]), S)y = n, M = t, x = e, S = !1, e && (a.lineStart(), a.point(n, t)); else if (e && w)a.point(n, t); else {
+                    var r = {a: {x: b, y: _}, b: {x: n, y: t}};
+                    N(r) ? (w || (a.lineStart(), a.point(r.a.x, r.a.y)), a.point(r.b.x, r.b.y), e || a.lineEnd(), k = !1) : e && (a.lineStart(), a.point(n, t), k = !1)
+                }
+                b = n, _ = t, w = e
+            }
+
+            var v, d, m, y, M, x, b, _, w, S, k, E = a, A = Re(), N = Oe(n, t, e, r), C = {
+                point: f,
+                lineStart: h,
+                lineEnd: g,
+                polygonStart: function () {
+                    a = A, v = [], d = [], k = !0
+                },
+                polygonEnd: function () {
+                    a = E, v = ta.merge(v);
+                    var t = c([n, r]), e = k && t, u = v.length;
+                    (e || u) && (a.polygonStart(), e && (a.lineStart(), l(null, null, 1, a), a.lineEnd()), u && Ce(v, i, t, l, a), a.polygonEnd()), v = d = m = null
+                }
+            };
+            return C
+        }
+    }
+
+    function Ye(n) {
+        var t = 0, e = qa / 3, r = ir(n), u = r(t, e);
+        return u.parallels = function (n) {
+            return arguments.length ? r(t = n[0] * qa / 180, e = n[1] * qa / 180) : [t / qa * 180, e / qa * 180]
+        }, u
+    }
+
+    function Ze(n, t) {
+        function e(n, t) {
+            var e = Math.sqrt(i - 2 * u * Math.sin(t)) / u;
+            return [e * Math.sin(n *= u), o - e * Math.cos(n)]
+        }
+
+        var r = Math.sin(n), u = (r + Math.sin(t)) / 2, i = 1 + r * (2 * u - r), o = Math.sqrt(i) / u;
+        return e.invert = function (n, t) {
+            var e = o - t;
+            return [Math.atan2(n, e) / u, tt((i - (n * n + e * e) * u * u) / (2 * u))]
+        }, e
+    }
+
+    function Ve() {
+        function n(n, t) {
+            Dc += u * n - r * t, r = n, u = t
+        }
+
+        var t, e, r, u;
+        Hc.point = function (i, o) {
+            Hc.point = n, t = r = i, e = u = o
+        }, Hc.lineEnd = function () {
+            n(t, e)
+        }
+    }
+
+    function Xe(n, t) {
+        Pc > n && (Pc = n), n > jc && (jc = n), Uc > t && (Uc = t), t > Fc && (Fc = t)
+    }
+
+    function $e() {
+        function n(n, t) {
+            o.push("M", n, ",", t, i)
+        }
+
+        function t(n, t) {
+            o.push("M", n, ",", t), a.point = e
+        }
+
+        function e(n, t) {
+            o.push("L", n, ",", t)
+        }
+
+        function r() {
+            a.point = n
+        }
+
+        function u() {
+            o.push("Z")
+        }
+
+        var i = Be(4.5), o = [], a = {
+            point: n, lineStart: function () {
+                a.point = t
+            }, lineEnd: r, polygonStart: function () {
+                a.lineEnd = u
+            }, polygonEnd: function () {
+                a.lineEnd = r, a.point = n
+            }, pointRadius: function (n) {
+                return i = Be(n), a
+            }, result: function () {
+                if (o.length) {
+                    var n = o.join("");
+                    return o = [], n
+                }
+            }
+        };
+        return a
+    }
+
+    function Be(n) {
+        return "m0," + n + "a" + n + "," + n + " 0 1,1 0," + -2 * n + "a" + n + "," + n + " 0 1,1 0," + 2 * n + "z"
+    }
+
+    function We(n, t) {
+        _c += n, wc += t, ++Sc
+    }
+
+    function Je() {
+        function n(n, r) {
+            var u = n - t, i = r - e, o = Math.sqrt(u * u + i * i);
+            kc += o * (t + n) / 2, Ec += o * (e + r) / 2, Ac += o, We(t = n, e = r)
+        }
+
+        var t, e;
+        Ic.point = function (r, u) {
+            Ic.point = n, We(t = r, e = u)
+        }
+    }
+
+    function Ge() {
+        Ic.point = We
+    }
+
+    function Ke() {
+        function n(n, t) {
+            var e = n - r, i = t - u, o = Math.sqrt(e * e + i * i);
+            kc += o * (r + n) / 2, Ec += o * (u + t) / 2, Ac += o, o = u * n - r * t, Nc += o * (r + n), Cc += o * (u + t), zc += 3 * o, We(r = n, u = t)
+        }
+
+        var t, e, r, u;
+        Ic.point = function (i, o) {
+            Ic.point = n, We(t = r = i, e = u = o)
+        }, Ic.lineEnd = function () {
+            n(t, e)
+        }
+    }
+
+    function Qe(n) {
+        function t(t, e) {
+            n.moveTo(t + o, e), n.arc(t, e, o, 0, La)
+        }
+
+        function e(t, e) {
+            n.moveTo(t, e), a.point = r
+        }
+
+        function r(t, e) {
+            n.lineTo(t, e)
+        }
+
+        function u() {
+            a.point = t
+        }
+
+        function i() {
+            n.closePath()
+        }
+
+        var o = 4.5, a = {
+            point: t, lineStart: function () {
+                a.point = e
+            }, lineEnd: u, polygonStart: function () {
+                a.lineEnd = i
+            }, polygonEnd: function () {
+                a.lineEnd = u, a.point = t
+            }, pointRadius: function (n) {
+                return o = n, a
+            }, result: b
+        };
+        return a
+    }
+
+    function nr(n) {
+        function t(n) {
+            return (a ? r : e)(n)
+        }
+
+        function e(t) {
+            return rr(t, function (e, r) {
+                e = n(e, r), t.point(e[0], e[1])
+            })
+        }
+
+        function r(t) {
+            function e(e, r) {
+                e = n(e, r), t.point(e[0], e[1])
+            }
+
+            function r() {
+                M = 0 / 0, S.point = i, t.lineStart()
+            }
+
+            function i(e, r) {
+                var i = pe([e, r]), o = n(e, r);
+                u(M, x, y, b, _, w, M = o[0], x = o[1], y = e, b = i[0], _ = i[1], w = i[2], a, t), t.point(M, x)
+            }
+
+            function o() {
+                S.point = e, t.lineEnd()
+            }
+
+            function c() {
+                r(), S.point = l, S.lineEnd = s
+            }
+
+            function l(n, t) {
+                i(f = n, h = t), g = M, p = x, v = b, d = _, m = w, S.point = i
+            }
+
+            function s() {
+                u(M, x, y, b, _, w, g, p, f, v, d, m, a, t), S.lineEnd = o, o()
+            }
+
+            var f, h, g, p, v, d, m, y, M, x, b, _, w, S = {
+                point: e, lineStart: r, lineEnd: o, polygonStart: function () {
+                    t.polygonStart(), S.lineStart = c
+                }, polygonEnd: function () {
+                    t.polygonEnd(), S.lineStart = r
+                }
+            };
+            return S
+        }
+
+        function u(t, e, r, a, c, l, s, f, h, g, p, v, d, m) {
+            var y = s - t, M = f - e, x = y * y + M * M;
+            if (x > 4 * i && d--) {
+                var b = a + g, _ = c + p, w = l + v, S = Math.sqrt(b * b + _ * _ + w * w), k = Math.asin(w /= S), E = ga(ga(w) - 1) < Ca || ga(r - h) < Ca ? (r + h) / 2 : Math.atan2(_, b), A = n(E, k), N = A[0], C = A[1], z = N - t, q = C - e, L = M * z - y * q;
+                (L * L / x > i || ga((y * z + M * q) / x - .5) > .3 || o > a * g + c * p + l * v) && (u(t, e, r, a, c, l, N, C, E, b /= S, _ /= S, w, d, m), m.point(N, C), u(N, C, E, b, _, w, s, f, h, g, p, v, d, m))
+            }
+        }
+
+        var i = .5, o = Math.cos(30 * Da), a = 16;
+        return t.precision = function (n) {
+            return arguments.length ? (a = (i = n * n) > 0 && 16, t) : Math.sqrt(i)
+        }, t
+    }
+
+    function tr(n) {
+        var t = nr(function (t, e) {
+            return n([t * Pa, e * Pa])
+        });
+        return function (n) {
+            return or(t(n))
+        }
+    }
+
+    function er(n) {
+        this.stream = n
+    }
+
+    function rr(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()
+            }
+        }
+    }
+
+    function ur(n) {
+        return ir(function () {
+            return n
+        })()
+    }
+
+    function ir(n) {
+        function t(n) {
+            return n = a(n[0] * Da, n[1] * Da), [n[0] * h + c, l - n[1] * h]
+        }
+
+        function e(n) {
+            return n = a.invert((n[0] - c) / h, (l - n[1]) / h), n && [n[0] * Pa, n[1] * Pa]
+        }
+
+        function r() {
+            a = Ae(o = lr(m, M, x), i);
+            var n = i(v, d);
+            return c = g - n[0] * h, l = p + n[1] * h, u()
+        }
+
+        function u() {
+            return s && (s.valid = !1, s = null), t
+        }
+
+        var i, o, a, c, l, s, f = nr(function (n, t) {
+            return n = i(n, t), [n[0] * h + c, l - n[1] * h]
+        }), h = 150, g = 480, p = 250, v = 0, d = 0, m = 0, M = 0, x = 0, b = Lc, _ = y, w = null, S = null;
+        return t.stream = function (n) {
+            return s && (s.valid = !1), s = or(b(o, f(_(n)))), s.valid = !0, s
+        }, t.clipAngle = function (n) {
+            return arguments.length ? (b = null == n ? (w = n, Lc) : He((w = +n) * Da), u()) : w
+        }, t.clipExtent = function (n) {
+            return arguments.length ? (S = n, _ = n ? Ie(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 * Da, d = n[1] % 360 * Da, r()) : [v * Pa, d * Pa]
+        }, t.rotate = function (n) {
+            return arguments.length ? (m = n[0] % 360 * Da, M = n[1] % 360 * Da, x = n.length > 2 ? n[2] % 360 * Da : 0, r()) : [m * Pa, M * Pa, x * Pa]
+        }, ta.rebind(t, f, "precision"), function () {
+            return i = n.apply(this, arguments), t.invert = i.invert && e, r()
+        }
+    }
+
+    function or(n) {
+        return rr(n, function (t, e) {
+            n.point(t * Da, e * Da)
+        })
+    }
+
+    function ar(n, t) {
+        return [n, t]
+    }
+
+    function cr(n, t) {
+        return [n > qa ? n - La : -qa > n ? n + La : n, t]
+    }
+
+    function lr(n, t, e) {
+        return n ? t || e ? Ae(fr(n), hr(t, e)) : fr(n) : t || e ? hr(t, e) : cr
+    }
+
+    function sr(n) {
+        return function (t, e) {
+            return t += n, [t > qa ? t - La : -qa > t ? t + La : t, e]
+        }
+    }
+
+    function fr(n) {
+        var t = sr(n);
+        return t.invert = sr(-n), t
+    }
+
+    function hr(n, t) {
+        function e(n, t) {
+            var e = Math.cos(t), a = Math.cos(n) * e, c = Math.sin(n) * e, l = Math.sin(t), s = l * r + a * u;
+            return [Math.atan2(c * i - s * o, a * r - l * u), tt(s * i + c * o)]
+        }
+
+        var r = Math.cos(n), u = Math.sin(n), i = Math.cos(t), o = Math.sin(t);
+        return e.invert = function (n, t) {
+            var e = Math.cos(t), a = Math.cos(n) * e, c = Math.sin(n) * e, l = Math.sin(t), s = l * i - c * o;
+            return [Math.atan2(c * i + l * o, a * r + s * u), tt(s * r - a * u)]
+        }, e
+    }
+
+    function gr(n, t) {
+        var e = Math.cos(n), r = Math.sin(n);
+        return function (u, i, o, a) {
+            var c = o * t;
+            null != u ? (u = pr(e, u), i = pr(e, i), (o > 0 ? i > u : u > i) && (u += o * La)) : (u = n + o * La, i = n - .5 * c);
+            for (var l, s = u; o > 0 ? s > i : i > s; s -= c)a.point((l = xe([e, -r * Math.cos(s), -r * Math.sin(s)]))[0], l[1])
+        }
+    }
+
+    function pr(n, t) {
+        var e = pe(t);
+        e[0] -= n, Me(e);
+        var r = nt(-e[1]);
+        return ((-e[2] < 0 ? -r : r) + 2 * Math.PI - Ca) % (2 * Math.PI)
+    }
+
+    function vr(n, t, e) {
+        var r = ta.range(n, t - Ca, e).concat(t);
+        return function (n) {
+            return r.map(function (t) {
+                return [n, t]
+            })
+        }
+    }
+
+    function dr(n, t, e) {
+        var r = ta.range(n, t - Ca, e).concat(t);
+        return function (n) {
+            return r.map(function (t) {
+                return [t, n]
+            })
+        }
+    }
+
+    function mr(n) {
+        return n.source
+    }
+
+    function yr(n) {
+        return n.target
+    }
+
+    function Mr(n, t, e, r) {
+        var u = Math.cos(t), i = Math.sin(t), o = Math.cos(r), a = Math.sin(r), c = u * Math.cos(n), l = u * Math.sin(n), s = o * Math.cos(e), f = o * Math.sin(e), h = 2 * Math.asin(Math.sqrt(it(r - t) + u * o * it(e - n))), g = 1 / Math.sin(h), p = h ? function (n) {
+            var t = Math.sin(n *= h) * g, e = Math.sin(h - n) * g, r = e * c + t * s, u = e * l + t * f, o = e * i + t * a;
+            return [Math.atan2(u, r) * Pa, Math.atan2(o, Math.sqrt(r * r + u * u)) * Pa]
+        } : function () {
+            return [n * Pa, t * Pa]
+        };
+        return p.distance = h, p
+    }
+
+    function xr() {
+        function n(n, u) {
+            var i = Math.sin(u *= Da), o = Math.cos(u), a = ga((n *= Da) - t), c = Math.cos(a);
+            Yc += Math.atan2(Math.sqrt((a = o * Math.sin(a)) * a + (a = r * i - e * o * c) * a), e * i + r * o * c), t = n, e = i, r = o
+        }
+
+        var t, e, r;
+        Zc.point = function (u, i) {
+            t = u * Da, e = Math.sin(i *= Da), r = Math.cos(i), Zc.point = n
+        }, Zc.lineEnd = function () {
+            Zc.point = Zc.lineEnd = b
+        }
+    }
+
+    function br(n, t) {
+        function e(t, e) {
+            var r = Math.cos(t), u = Math.cos(e), 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), u = t(r), i = Math.sin(u), o = Math.cos(u);
+            return [Math.atan2(n * i, r * o), Math.asin(r && e * i / r)]
+        }, e
+    }
+
+    function _r(n, t) {
+        function e(n, t) {
+            o > 0 ? -Ra + Ca > t && (t = -Ra + Ca) : t > Ra - Ca && (t = Ra - Ca);
+            var e = o / Math.pow(u(t), i);
+            return [e * Math.sin(i * n), o - e * Math.cos(i * n)]
+        }
+
+        var r = Math.cos(n), u = function (n) {
+            return Math.tan(qa / 4 + n / 2)
+        }, i = n === t ? Math.sin(n) : Math.log(r / Math.cos(t)) / Math.log(u(t) / u(n)), o = r * Math.pow(u(n), i) / i;
+        return i ? (e.invert = function (n, t) {
+            var e = o - t, r = K(i) * Math.sqrt(n * n + e * e);
+            return [Math.atan2(n, e) / i, 2 * Math.atan(Math.pow(o / r, 1 / i)) - Ra]
+        }, e) : Sr
+    }
+
+    function wr(n, t) {
+        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), u = n === t ? Math.sin(n) : (r - Math.cos(t)) / (t - n), i = r / u + n;
+        return ga(u) < Ca ? ar : (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)
+    }
+
+    function Sr(n, t) {
+        return [n, Math.log(Math.tan(qa / 4 + t / 2))]
+    }
+
+    function kr(n) {
+        var t, e = ur(n), r = e.scale, u = e.translate, 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 o = i.apply(e, arguments);
+            if (o === e) {
+                if (t = null == n) {
+                    var a = qa * r(), c = u();
+                    i([[c[0] - a, c[1] - a], [c[0] + a, c[1] + a]])
+                }
+            } else t && (o = null);
+            return o
+        }, e.clipExtent(null)
+    }
+
+    function Er(n, t) {
+        return [Math.log(Math.tan(qa / 4 + t / 2)), -n]
+    }
+
+    function Ar(n) {
+        return n[0]
+    }
+
+    function Nr(n) {
+        return n[1]
+    }
+
+    function Cr(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;
+            e[r++] = u
+        }
+        return e.slice(0, r)
+    }
+
+    function zr(n, t) {
+        return n[0] - t[0] || n[1] - t[1]
+    }
+
+    function qr(n, t, e) {
+        return (e[0] - t[0]) * (n[1] - t[1]) < (e[1] - t[1]) * (n[0] - t[0])
+    }
+
+    function Lr(n, t, e, r) {
+        var u = n[0], i = e[0], o = t[0] - u, a = r[0] - i, c = n[1], l = e[1], s = t[1] - c, f = r[1] - l, h = (a * (c - l) - f * (u - i)) / (f * o - a * s);
+        return [u + h * o, c + h * s]
+    }
+
+    function Tr(n) {
+        var t = n[0], e = n[n.length - 1];
+        return !(t[0] - e[0] || t[1] - e[1])
+    }
+
+    function Rr() {
+        tu(this), this.edge = this.site = this.circle = null
+    }
+
+    function Dr(n) {
+        var t = el.pop() || new Rr;
+        return t.site = n, t
+    }
+
+    function Pr(n) {
+        Xr(n), Qc.remove(n), el.push(n), tu(n)
+    }
+
+    function Ur(n) {
+        var t = n.circle, e = t.x, r = t.cy, u = {x: e, y: r}, i = n.P, o = n.N, a = [n];
+        Pr(n);
+        for (var c = i; c.circle && ga(e - c.circle.x) < Ca && ga(r - c.circle.cy) < Ca;)i = c.P, a.unshift(c), Pr(c), c = i;
+        a.unshift(c), Xr(c);
+        for (var l = o; l.circle && ga(e - l.circle.x) < Ca && ga(r - l.circle.cy) < Ca;)o = l.N, a.push(l), Pr(l), l = o;
+        a.push(l), Xr(l);
+        var s, f = a.length;
+        for (s = 1; f > s; ++s)l = a[s], c = a[s - 1], Kr(l.edge, c.site, l.site, u);
+        c = a[0], l = a[f - 1], l.edge = Jr(c.site, l.site, null, u), Vr(c), Vr(l)
+    }
+
+    function jr(n) {
+        for (var t, e, r, u, i = n.x, o = n.y, a = Qc._; a;)if (r = Fr(a, o) - i, r > Ca)a = a.L; else {
+            if (u = i - Hr(a, o), !(u > Ca)) {
+                r > -Ca ? (t = a.P, e = a) : u > -Ca ? (t = a, e = a.N) : t = e = a;
+                break
+            }
+            if (!a.R) {
+                t = a;
+                break
+            }
+            a = a.R
+        }
+        var c = Dr(n);
+        if (Qc.insert(t, c), t || e) {
+            if (t === e)return Xr(t), e = Dr(t.site), Qc.insert(c, e), c.edge = e.edge = Jr(t.site, c.site), Vr(t), void Vr(e);
+            if (!e)return void(c.edge = Jr(t.site, c.site));
+            Xr(t), Xr(e);
+            var l = t.site, s = l.x, f = l.y, h = n.x - s, g = n.y - f, p = e.site, v = p.x - s, d = p.y - f, m = 2 * (h * d - g * v), y = h * h + g * g, M = v * v + d * d, x = {
+                x: (d * y - g * M) / m + s,
+                y: (h * M - v * y) / m + f
+            };
+            Kr(e.edge, l, p, x), c.edge = Jr(l, n, null, x), e.edge = Jr(n, p, null, x), Vr(t), Vr(e)
+        }
+    }
+
+    function Fr(n, t) {
+        var e = n.site, r = e.x, u = e.y, i = u - t;
+        if (!i)return r;
+        var o = n.P;
+        if (!o)return -1 / 0;
+        e = o.site;
+        var a = e.x, c = e.y, l = c - t;
+        if (!l)return a;
+        var s = a - r, f = 1 / i - 1 / l, h = s / l;
+        return f ? (-h + Math.sqrt(h * h - 2 * f * (s * s / (-2 * l) - c + l / 2 + u - i / 2))) / f + r : (r + a) / 2
+    }
+
+    function Hr(n, t) {
+        var e = n.N;
+        if (e)return Fr(e, t);
+        var r = n.site;
+        return r.y === t ? r.x : 1 / 0
+    }
+
+    function Or(n) {
+        this.site = n, this.edges = []
+    }
+
+    function Ir(n) {
+        for (var t, e, r, u, i, o, a, c, l, s, f = n[0][0], h = n[1][0], g = n[0][1], p = n[1][1], v = Kc, d = v.length; d--;)if (i = v[d], i && i.prepare())for (a = i.edges, c = a.length, o = 0; c > o;)s = a[o].end(), r = s.x, u = s.y, l = a[++o % c].start(), t = l.x, e = l.y, (ga(r - t) > Ca || ga(u - e) > Ca) && (a.splice(o, 0, new Qr(Gr(i.site, s, ga(r - f) < Ca && p - u > Ca ? {
+            x: f,
+            y: ga(t - f) < Ca ? e : p
+        } : ga(u - p) < Ca && h - r > Ca ? {x: ga(e - p) < Ca ? t : h, y: p} : ga(r - h) < Ca && u - g > Ca ? {
+            x: h,
+            y: ga(t - h) < Ca ? e : g
+        } : ga(u - g) < Ca && r - f > Ca ? {x: ga(e - g) < Ca ? t : f, y: g} : null), i.site, null)), ++c)
+    }
+
+    function Yr(n, t) {
+        return t.angle - n.angle
+    }
+
+    function Zr() {
+        tu(this), this.x = this.y = this.arc = this.site = this.cy = null
+    }
+
+    function Vr(n) {
+        var t = n.P, e = n.N;
+        if (t && e) {
+            var r = t.site, u = n.site, i = e.site;
+            if (r !== i) {
+                var o = u.x, a = u.y, c = r.x - o, l = r.y - a, s = i.x - o, f = i.y - a, h = 2 * (c * f - l * s);
+                if (!(h >= -za)) {
+                    var g = c * c + l * l, p = s * s + f * f, v = (f * g - l * p) / h, d = (c * p - s * g) / h, f = d + a, m = rl.pop() || new Zr;
+                    m.arc = n, m.site = u, m.x = v + o, m.y = f + Math.sqrt(v * v + d * d), m.cy = f, n.circle = m;
+                    for (var y = null, M = tl._; M;)if (m.y < M.y || m.y === M.y && m.x <= M.x) {
+                        if (!M.L) {
+                            y = M.P;
+                            break
+                        }
+                        M = M.L
+                    } else {
+                        if (!M.R) {
+                            y = M;
+                            break
+                        }
+                        M = M.R
+                    }
+                    tl.insert(y, m), y || (nl = m)
+                }
+            }
+        }
+    }
+
+    function Xr(n) {
+        var t = n.circle;
+        t && (t.P || (nl = t.N), tl.remove(t), rl.push(t), tu(t), n.circle = null)
+    }
+
+    function $r(n) {
+        for (var t, e = Gc, r = Oe(n[0][0], n[0][1], n[1][0], n[1][1]), u = e.length; u--;)t = e[u], (!Br(t, n) || !r(t) || ga(t.a.x - t.b.x) < Ca && ga(t.a.y - t.b.y) < Ca) && (t.a = t.b = null, e.splice(u, 1))
+    }
+
+    function Br(n, t) {
+        var e = n.b;
+        if (e)return !0;
+        var r, u, i = n.a, o = t[0][0], a = t[1][0], c = t[0][1], l = t[1][1], s = n.l, f = n.r, h = s.x, g = s.y, p = f.x, v = f.y, d = (h + p) / 2, m = (g + v) / 2;
+        if (v === g) {
+            if (o > d || d >= a)return;
+            if (h > p) {
+                if (i) {
+                    if (i.y >= l)return
+                } else i = {x: d, y: c};
+                e = {x: d, y: l}
+            } else {
+                if (i) {
+                    if (i.y < c)return
+                } else i = {x: d, y: l};
+                e = {x: d, y: c}
+            }
+        } else if (r = (h - p) / (v - g), u = m - r * d, -1 > r || r > 1)if (h > p) {
+            if (i) {
+                if (i.y >= l)return
+            } else i = {x: (c - u) / r, y: c};
+            e = {x: (l - u) / r, y: l}
+        } else {
+            if (i) {
+                if (i.y < c)return
+            } else i = {x: (l - u) / r, y: l};
+            e = {x: (c - u) / r, y: c}
+        } else if (v > g) {
+            if (i) {
+                if (i.x >= a)return
+            } else i = {x: o, y: r * o + u};
+            e = {x: a, y: r * a + u}
+        } else {
+            if (i) {
+                if (i.x < o)return
+            } else i = {x: a, y: r * a + u};
+            e = {x: o, y: r * o + u}
+        }
+        return n.a = i, n.b = e, !0
+    }
+
+    function Wr(n, t) {
+        this.l = n, this.r = t, this.a = this.b = null
+    }
+
+    function Jr(n, t, e, r) {
+        var u = new Wr(n, t);
+        return Gc.push(u), e && Kr(u, n, t, e), r && Kr(u, t, n, r), Kc[n.i].edges.push(new Qr(u, n, t)), Kc[t.i].edges.push(new Qr(u, t, n)), u
+    }
+
+    function Gr(n, t, e) {
+        var r = new Wr(n, null);
+        return r.a = t, r.b = e, Gc.push(r), r
+    }
+
+    function Kr(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)
+    }
+
+    function Qr(n, t, e) {
+        var r = n.a, u = n.b;
+        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)
+    }
+
+    function nu() {
+        this._ = null
+    }
+
+    function tu(n) {
+        n.U = n.C = n.L = n.R = n.P = n.N = null
+    }
+
+    function eu(n, t) {
+        var e = t, r = t.R, u = e.U;
+        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
+    }
+
+    function ru(n, t) {
+        var e = t, r = t.L, u = e.U;
+        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
+    }
+
+    function uu(n) {
+        for (; n.L;)n = n.L;
+        return n
+    }
+
+    function iu(n, t) {
+        var e, r, u, i = n.sort(ou).pop();
+        for (Gc = [], Kc = new Array(n.length), Qc = new nu, tl = new nu; ;)if (u = nl, i && (!u || i.y < u.y || i.y === u.y && i.x < u.x))(i.x !== e || i.y !== r) && (Kc[i.i] = new Or(i), jr(i), e = i.x, r = i.y), i = n.pop(); else {
+            if (!u)break;
+            Ur(u.arc)
+        }
+        t && ($r(t), Ir(t));
+        var o = {cells: Kc, edges: Gc};
+        return Qc = tl = Gc = Kc = null, o
+    }
+
+    function ou(n, t) {
+        return t.y - n.y || t.x - n.x
+    }
+
+    function au(n, t, e) {
+        return (n.x - e.x) * (t.y - n.y) - (n.x - t.x) * (e.y - n.y)
+    }
+
+    function cu(n) {
+        return n.x
+    }
+
+    function lu(n) {
+        return n.y
+    }
+
+    function su() {
+        return {leaf: !0, nodes: [], point: null, x: null, y: null}
+    }
+
+    function fu(n, t, e, r, u, i) {
+        if (!n(t, e, r, u, i)) {
+            var o = .5 * (e + u), a = .5 * (r + i), c = t.nodes;
+            c[0] && fu(n, c[0], e, r, o, a), c[1] && fu(n, c[1], o, r, u, a), c[2] && fu(n, c[2], e, a, o, i), c[3] && fu(n, c[3], o, a, u, i)
+        }
+    }
+
+    function hu(n, t, e, r, u, i, o) {
+        var a, c = 1 / 0;
+        return function l(n, s, f, h, g) {
+            if (!(s > i || f > o || r > h || u > g)) {
+                if (p = n.point) {
+                    var p, v = t - n.x, d = e - n.y, m = v * v + d * d;
+                    if (c > m) {
+                        var y = Math.sqrt(c = m);
+                        r = t - y, u = e - y, i = t + y, o = e + y, a = 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)if (n = M[3 & S])switch (3 & S) {
+                    case 0:
+                        l(n, s, f, x, b);
+                        break;
+                    case 1:
+                        l(n, x, f, h, b);
+                        break;
+                    case 2:
+                        l(n, s, b, x, g);
+                        break;
+                    case 3:
+                        l(n, x, b, h, g)
+                }
+            }
+        }(n, r, u, i, o), a
+    }
+
+    function gu(n, t) {
+        n = ta.rgb(n), t = ta.rgb(t);
+        var e = n.r, r = n.g, u = n.b, i = t.r - e, o = t.g - r, a = t.b - u;
+        return function (n) {
+            return "#" + xt(Math.round(e + i * n)) + xt(Math.round(r + o * n)) + xt(Math.round(u + a * n))
+        }
+    }
+
+    function pu(n, t) {
+        var e, r = {}, u = {};
+        for (e in n)e in t ? r[e] = mu(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
+        }
+    }
+
+    function vu(n, t) {
+        return n = +n, t = +t, function (e) {
+            return n * (1 - e) + t * e
+        }
+    }
+
+    function du(n, t) {
+        var e, r, u, i = il.lastIndex = ol.lastIndex = 0, o = -1, a = [], c = [];
+        for (n += "", t += ""; (e = il.exec(n)) && (r = ol.exec(t));)(u = r.index) > i && (u = t.slice(i, u), a[o] ? a[o] += u : a[++o] = u), (e = e[0]) === (r = r[0]) ? a[o] ? a[o] += r : a[++o] = r : (a[++o] = null, c.push({
+            i: o,
+            x: vu(e, r)
+        })), i = ol.lastIndex;
+        return i < t.length && (u = t.slice(i), a[o] ? a[o] += u : a[++o] = u), a.length < 2 ? c[0] ? (t = c[0].x, function (n) {
+            return t(n) + ""
+        }) : function () {
+            return t
+        } : (t = c.length, function (n) {
+            for (var e, r = 0; t > r; ++r)a[(e = c[r]).i] = e.x(n);
+            return a.join("")
+        })
+    }
+
+    function mu(n, t) {
+        for (var e, r = ta.interpolators.length; --r >= 0 && !(e = ta.interpolators[r](n, t)););
+        return e
+    }
+
+    function yu(n, t) {
+        var e, r = [], u = [], i = n.length, o = t.length, a = Math.min(n.length, t.length);
+        for (e = 0; a > e; ++e)r.push(mu(n[e], t[e]));
+        for (; i > e; ++e)u[e] = n[e];
+        for (; o > e; ++e)u[e] = t[e];
+        return function (n) {
+            for (e = 0; a > e; ++e)u[e] = r[e](n);
+            return u
+        }
+    }
+
+    function Mu(n) {
+        return function (t) {
+            return 0 >= t ? 0 : t >= 1 ? 1 : n(t)
+        }
+    }
+
+    function xu(n) {
+        return function (t) {
+            return 1 - n(1 - t)
+        }
+    }
+
+    function bu(n) {
+        return function (t) {
+            return .5 * (.5 > t ? n(2 * t) : 2 - n(2 - 2 * t))
+        }
+    }
+
+    function _u(n) {
+        return n * n
+    }
+
+    function wu(n) {
+        return n * n * n
+    }
+
+    function Su(n) {
+        if (0 >= n)return 0;
+        if (n >= 1)return 1;
+        var t = n * n, e = t * n;
+        return 4 * (.5 > n ? e : 3 * (n - t) + e - .75)
+    }
+
+    function ku(n) {
+        return function (t) {
+            return Math.pow(t, n)
+        }
+    }
+
+    function Eu(n) {
+        return 1 - Math.cos(n * Ra)
+    }
+
+    function Au(n) {
+        return Math.pow(2, 10 * (n - 1))
+    }
+
+    function Nu(n) {
+        return 1 - Math.sqrt(1 - n * n)
+    }
+
+    function Cu(n, t) {
+        var e;
+        return arguments.length < 2 && (t = .45), arguments.length ? e = t / La * Math.asin(1 / n) : (n = 1, e = t / 4), function (r) {
+            return 1 + n * Math.pow(2, -10 * r) * Math.sin((r - e) * La / t)
+        }
+    }
+
+    function zu(n) {
+        return n || (n = 1.70158), function (t) {
+            return t * t * ((n + 1) * t - n)
+        }
+    }
+
+    function qu(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
+    }
+
+    function Lu(n, t) {
+        n = ta.hcl(n), t = ta.hcl(t);
+        var e = n.h, r = n.c, u = n.l, i = t.h - e, o = t.c - r, a = t.l - u;
+        return isNaN(o) && (o = 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), function (n) {
+            return st(e + i * n, r + o * n, u + a * n) + ""
+        }
+    }
+
+    function Tu(n, t) {
+        n = ta.hsl(n), t = ta.hsl(t);
+        var e = n.h, r = n.s, u = n.l, i = t.h - e, o = t.s - r, a = t.l - u;
+        return isNaN(o) && (o = 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), function (n) {
+            return ct(e + i * n, r + o * n, u + a * n) + ""
+        }
+    }
+
+    function Ru(n, t) {
+        n = ta.lab(n), t = ta.lab(t);
+        var e = n.l, r = n.a, u = n.b, i = t.l - e, o = t.a - r, a = t.b - u;
+        return function (n) {
+            return ht(e + i * n, r + o * n, u + a * n) + ""
+        }
+    }
+
+    function Du(n, t) {
+        return t -= n, function (e) {
+            return Math.round(n + t * e)
+        }
+    }
+
+    function Pu(n) {
+        var t = [n.a, n.b], e = [n.c, n.d], r = ju(t), u = Uu(t, e), i = ju(Fu(e, t, -u)) || 0;
+        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])) * Pa, this.translate = [n.e, n.f], this.scale = [r, i], this.skew = i ? Math.atan2(u, i) * Pa : 0
+    }
+
+    function Uu(n, t) {
+        return n[0] * t[0] + n[1] * t[1]
+    }
+
+    function ju(n) {
+        var t = Math.sqrt(Uu(n, n));
+        return t && (n[0] /= t, n[1] /= t), t
+    }
+
+    function Fu(n, t, e) {
+        return n[0] += e * t[0], n[1] += e * t[1], n
+    }
+
+    function Hu(n, t) {
+        var e, r = [], u = [], i = ta.transform(n), o = ta.transform(t), a = i.translate, c = o.translate, l = i.rotate, s = o.rotate, f = i.skew, h = o.skew, g = i.scale, p = o.scale;
+        return a[0] != c[0] || a[1] != c[1] ? (r.push("translate(", null, ",", null, ")"), u.push({
+            i: 1,
+            x: vu(a[0], c[0])
+        }, {
+            i: 3,
+            x: vu(a[1], c[1])
+        })) : r.push(c[0] || c[1] ? "translate(" + c + ")" : ""), l != s ? (l - s > 180 ? s += 360 : s - l > 180 && (l += 360), u.push({
+            i: r.push(r.pop() + "rotate(", null, ")") - 2,
+            x: vu(l, s)
+        })) : s && r.push(r.pop() + "rotate(" + s + ")"), f != h ? u.push({
+            i: r.push(r.pop() + "skewX(", null, ")") - 2,
+            x: vu(f, h)
+        }) : h && r.push(r.pop() + "skewX(" + h + ")"), g[0] != p[0] || g[1] != p[1] ? (e = r.push(r.pop() + "scale(", null, ",", null, ")"), u.push({
+            i: e - 4,
+            x: vu(g[0], p[0])
+        }, {
+            i: e - 2,
+            x: vu(g[1], p[1])
+        })) : (1 != p[0] || 1 != p[1]) && r.push(r.pop() + "scale(" + p + ")"), e = u.length, function (n) {
+            for (var t, i = -1; ++i < e;)r[(t = u[i]).i] = t.x(n);
+            return r.join("")
+        }
+    }
+
+    function Ou(n, t) {
+        return t = (t -= n = +n) || 1 / t, function (e) {
+            return (e - n) / t
+        }
+    }
+
+    function Iu(n, t) {
+        return t = (t -= n = +n) || 1 / t, function (e) {
+            return Math.max(0, Math.min(1, (e - n) / t))
+        }
+    }
+
+    function Yu(n) {
+        for (var t = n.source, e = n.target, r = Vu(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
+    }
+
+    function Zu(n) {
+        for (var t = [], e = n.parent; null != e;)t.push(n), n = e, e = e.parent;
+        return t.push(n), t
+    }
+
+    function Vu(n, t) {
+        if (n === t)return n;
+        for (var e = Zu(n), r = Zu(t), u = e.pop(), i = r.pop(), o = null; u === i;)o = u, u = e.pop(), i = r.pop();
+        return o
+    }
+
+    function Xu(n) {
+        n.fixed |= 2
+    }
+
+    function $u(n) {
+        n.fixed &= -7
+    }
+
+    function Bu(n) {
+        n.fixed |= 4, n.px = n.x, n.py = n.y
+    }
+
+    function Wu(n) {
+        n.fixed &= -5
+    }
+
+    function Ju(n, t, e) {
+        var r = 0, u = 0;
+        if (n.charge = 0, !n.leaf)for (var i, o = n.nodes, a = o.length, c = -1; ++c < a;)i = o[c], null != i && (Ju(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 l = t * e[n.point.index];
+            n.charge += n.pointCharge = l, r += l * n.point.x, u += l * n.point.y
+        }
+        n.cx = r / n.charge, n.cy = u / n.charge
+    }
+
+    function Gu(n, t) {
+        return ta.rebind(n, t, "sort", "children", "value"), n.no

<TRUNCATED>

Mime
View raw message