Best Python code snippet using Testify_python
d3.min.js
Source:d3.min.js  
1const define = "define";2let XDomainRequest, Sizzle;3!(function () {4  function n(n) {5    return n && (n.ownerDocument || n.document || n).documentElement;6  }7  function t(n) {8    return (9      n &&10      ((n.ownerDocument && n.ownerDocument.defaultView) ||11        (n.document && n) ||12        n.defaultView)13    );14  }15  function e(n, t) {16    return t > n ? -1 : n > t ? 1 : n >= t ? 0 : NaN;17  }18  function r(n) {19    return null === n ? NaN : +n;20  }21  function i(n) {22    return !isNaN(n);23  }24  function u(n) {25    return {26      left: function (t, e, r, i) {27        for (28          arguments.length < 3 && (r = 0),29            arguments.length < 4 && (i = t.length);30          i > r;31        ) {32          var u = (r + i) >>> 1;33          n(t[u], e) < 0 ? (r = u + 1) : (i = u);34        }35        return r;36      },37      right: function (t, e, r, i) {38        for (39          arguments.length < 3 && (r = 0),40            arguments.length < 4 && (i = t.length);41          i > r;42        ) {43          var u = (r + i) >>> 1;44          n(t[u], e) > 0 ? (i = u) : (r = u + 1);45        }46        return r;47      },48    };49  }50  function o(n) {51    return n.length;52  }53  function a(n) {54    for (var t = 1; (n * t) % 1; ) t *= 10;55    return t;56  }57  function l(n, t) {58    for (var e in t)59      Object.defineProperty(n.prototype, e, { value: t[e], enumerable: !1 });60  }61  function c() {62    this._ = Object.create(null);63  }64  function f(n) {65    return (n += "") === bo || n[0] === _o ? _o + n : n;66  }67  function s(n) {68    return (n += "")[0] === _o ? n.slice(1) : n;69  }70  function h(n) {71    return f(n) in this._;72  }73  function p(n) {74    return (n = f(n)) in this._ && delete this._[n];75  }76  function g() {77    var n = [];78    for (var t in this._) n.push(s(t));79    return n;80  }81  function v() {82    var n = 0;83    for (var t in this._) ++n;84    return n;85  }86  function d() {87    for (var n in this._) return !1;88    return !0;89  }90  function y() {91    this._ = Object.create(null);92  }93  function m(n) {94    return n;95  }96  function M(n, t, e) {97    return function () {98      var r = e.apply(t, arguments);99      return r === t ? n : r;100    };101  }102  function x(n, t) {103    if (t in n) return t;104    t = t.charAt(0).toUpperCase() + t.slice(1);105    for (var e = 0, r = wo.length; r > e; ++e) {106      var i = wo[e] + t;107      if (i in n) return i;108    }109  }110  function b() {}111  function _() {}112  function w(n) {113    function t() {114      for (var t, r = e, i = -1, u = r.length; ++i < u; )115        (t = r[i].on) && t.apply(this, arguments);116      return n;117    }118    var e = [],119      r = new c();120    return (121      (t.on = function (t, i) {122        var u,123          o = r.get(t);124        return arguments.length < 2125          ? o && o.on126          : (o &&127              ((o.on = null),128              (e = e.slice(0, (u = e.indexOf(o))).concat(e.slice(u + 1))),129              r.remove(t)),130            i && e.push(r.set(t, { on: i })),131            n);132      }),133      t134    );135  }136  function S() {137    ao.event.preventDefault();138  }139  function k() {140    for (var n, t = ao.event; (n = t.sourceEvent); ) t = n;141    return t;142  }143  function N(n) {144    for (var t = new _(), e = 0, r = arguments.length; ++e < r; )145      t[arguments[e]] = w(t);146    return (147      (t.of = function (e, r) {148        return function (i) {149          try {150            var u = (i.sourceEvent = ao.event);151            (i.target = n), (ao.event = i), t[i.type].apply(e, r);152          } finally {153            ao.event = u;154          }155        };156      }),157      t158    );159  }160  function E(n) {161    return ko(n, Co), n;162  }163  function A(n) {164    return "function" == typeof n165      ? n166      : function () {167          return No(n, this);168        };169  }170  function C(n) {171    return "function" == typeof n172      ? n173      : function () {174          return Eo(n, this);175        };176  }177  function z(n, t) {178    function e() {179      this.removeAttribute(n);180    }181    function r() {182      this.removeAttributeNS(n.space, n.local);183    }184    function i() {185      this.setAttribute(n, t);186    }187    function u() {188      this.setAttributeNS(n.space, n.local, t);189    }190    function o() {191      var e = t.apply(this, arguments);192      null == e ? this.removeAttribute(n) : this.setAttribute(n, e);193    }194    function a() {195      var e = t.apply(this, arguments);196      null == e197        ? this.removeAttributeNS(n.space, n.local)198        : this.setAttributeNS(n.space, n.local, e);199    }200    return (201      (n = ao.ns.qualify(n)),202      null == t203        ? n.local204          ? r205          : e206        : "function" == typeof t207        ? n.local208          ? a209          : o210        : n.local211        ? u212        : i213    );214  }215  function L(n) {216    return n.trim().replace(/\s+/g, " ");217  }218  function q(n) {219    return new RegExp("(?:^|\\s+)" + ao.requote(n) + "(?:\\s+|$)", "g");220  }221  function T(n) {222    return (n + "").trim().split(/^|\s+/);223  }224  function R(n, t) {225    function e() {226      for (var e = -1; ++e < i; ) n[e](this, t);227    }228    function r() {229      for (var e = -1, r = t.apply(this, arguments); ++e < i; ) n[e](this, r);230    }231    n = T(n).map(D);232    var i = n.length;233    return "function" == typeof t ? r : e;234  }235  function D(n) {236    var t = q(n);237    return function (e, r) {238      if ((i = e.classList)) return r ? i.add(n) : i.remove(n);239      var i = e.getAttribute("class") || "";240      r241        ? ((t.lastIndex = 0),242          t.test(i) || e.setAttribute("class", L(i + " " + n)))243        : e.setAttribute("class", L(i.replace(t, " ")));244    };245  }246  function P(n, t, e) {247    function r() {248      this.style.removeProperty(n);249    }250    function i() {251      this.style.setProperty(n, t, e);252    }253    function u() {254      var r = t.apply(this, arguments);255      null == r256        ? this.style.removeProperty(n)257        : this.style.setProperty(n, r, e);258    }259    return null == t ? r : "function" == typeof t ? u : i;260  }261  function U(n, t) {262    function e() {263      delete this[n];264    }265    function r() {266      this[n] = t;267    }268    function i() {269      var e = t.apply(this, arguments);270      null == e ? delete this[n] : (this[n] = e);271    }272    return null == t ? e : "function" == typeof t ? i : r;273  }274  function j(n) {275    function t() {276      var t = this.ownerDocument,277        e = this.namespaceURI;278      return e === zo && t.documentElement.namespaceURI === zo279        ? t.createElement(n)280        : t.createElementNS(e, n);281    }282    function e() {283      return this.ownerDocument.createElementNS(n.space, n.local);284    }285    return "function" == typeof n ? n : (n = ao.ns.qualify(n)).local ? e : t;286  }287  function F() {288    var n = this.parentNode;289    n && n.removeChild(this);290  }291  function H(n) {292    return { __data__: n };293  }294  function O(n) {295    return function () {296      return Ao(this, n);297    };298  }299  function I(n) {300    return (301      arguments.length || (n = e),302      function (t, e) {303        return t && e ? n(t.__data__, e.__data__) : !t - !e;304      }305    );306  }307  function Y(n, t) {308    for (var e = 0, r = n.length; r > e; e++)309      for (var i, u = n[e], o = 0, a = u.length; a > o; o++)310        (i = u[o]) && t(i, o, e);311    return n;312  }313  function Z(n) {314    return ko(n, qo), n;315  }316  function V(n) {317    var t, e;318    return function (r, i, u) {319      var o,320        a = n[u].update,321        l = a.length;322      for (323        u != e && ((e = u), (t = 0)), i >= t && (t = i + 1);324        !(o = a[t]) && ++t < l;325      );326      return o;327    };328  }329  function X(n, t, e) {330    function r() {331      var t = this[o];332      t && (this.removeEventListener(n, t, t.$), delete this[o]);333    }334    function i() {335      var i = l(t, co(arguments));336      r.call(this),337        this.addEventListener(n, (this[o] = i), (i.$ = e)),338        (i._ = t);339    }340    function u() {341      var t,342        e = new RegExp("^__on([^.]+)" + ao.requote(n) + "$");343      for (var r in this)344        if ((t = r.match(e))) {345          var i = this[r];346          this.removeEventListener(t[1], i, i.$), delete this[r];347        }348    }349    var o = "__on" + n,350      a = n.indexOf("."),351      l = $;352    a > 0 && (n = n.slice(0, a));353    var c = To.get(n);354    return c && ((n = c), (l = B)), a ? (t ? i : r) : t ? b : u;355  }356  function $(n, t) {357    return function (e) {358      var r = ao.event;359      (ao.event = e), (t[0] = this.__data__);360      try {361        n.apply(this, t);362      } finally {363        ao.event = r;364      }365    };366  }367  function B(n, t) {368    var e = $(n, t);369    return function (n) {370      var t = this,371        r = n.relatedTarget;372      (r && (r === t || 8 & r.compareDocumentPosition(t))) || e.call(t, n);373    };374  }375  function W(e) {376    var r = ".dragsuppress-" + ++Do,377      i = "click" + r,378      u = ao379        .select(t(e))380        .on("touchmove" + r, S)381        .on("dragstart" + r, S)382        .on("selectstart" + r, S);383    if (384      (null == Ro &&385        (Ro = "onselectstart" in e ? !1 : x(e.style, "userSelect")),386      Ro)387    ) {388      var o = n(e).style,389        a = o[Ro];390      o[Ro] = "none";391    }392    return function (n) {393      if ((u.on(r, null), Ro && (o[Ro] = a), n)) {394        var t = function () {395          u.on(i, null);396        };397        u.on(398          i,399          function () {400            S(), t();401          },402          !0403        ),404          setTimeout(t, 0);405      }406    };407  }408  function J(n, e) {409    e.changedTouches && (e = e.changedTouches[0]);410    var r = n.ownerSVGElement || n;411    if (r.createSVGPoint) {412      var i = r.createSVGPoint();413      if (0 > Po) {414        var u = t(n);415        if (u.scrollX || u.scrollY) {416          r = ao.select("body").append("svg").style(417            {418              position: "absolute",419              top: 0,420              left: 0,421              margin: 0,422              padding: 0,423              border: "none",424            },425            "important"426          );427          var o = r[0][0].getScreenCTM();428          (Po = !(o.f || o.e)), r.remove();429        }430      }431      return (432        Po433          ? ((i.x = e.pageX), (i.y = e.pageY))434          : ((i.x = e.clientX), (i.y = e.clientY)),435        (i = i.matrixTransform(n.getScreenCTM().inverse())),436        [i.x, i.y]437      );438    }439    var a = n.getBoundingClientRect();440    return [e.clientX - a.left - n.clientLeft, e.clientY - a.top - n.clientTop];441  }442  function G() {443    return ao.event.changedTouches[0].identifier;444  }445  function K(n) {446    return n > 0 ? 1 : 0 > n ? -1 : 0;447  }448  function Q(n, t, e) {449    return (t[0] - n[0]) * (e[1] - n[1]) - (t[1] - n[1]) * (e[0] - n[0]);450  }451  function nn(n) {452    return n > 1 ? 0 : -1 > n ? Fo : Math.acos(n);453  }454  function tn(n) {455    return n > 1 ? Io : -1 > n ? -Io : Math.asin(n);456  }457  function en(n) {458    return ((n = Math.exp(n)) - 1 / n) / 2;459  }460  function rn(n) {461    return ((n = Math.exp(n)) + 1 / n) / 2;462  }463  function un(n) {464    return ((n = Math.exp(2 * n)) - 1) / (n + 1);465  }466  function on(n) {467    return (n = Math.sin(n / 2)) * n;468  }469  function an() {}470  function ln(n, t, e) {471    return this instanceof ln472      ? ((this.h = +n), (this.s = +t), void (this.l = +e))473      : arguments.length < 2474      ? n instanceof ln475        ? new ln(n.h, n.s, n.l)476        : _n("" + n, wn, ln)477      : new ln(n, t, e);478  }479  function cn(n, t, e) {480    function r(n) {481      return (482        n > 360 ? (n -= 360) : 0 > n && (n += 360),483        60 > n484          ? u + ((o - u) * n) / 60485          : 180 > n486          ? o487          : 240 > n488          ? u + ((o - u) * (240 - n)) / 60489          : u490      );491    }492    function i(n) {493      return Math.round(255 * r(n));494    }495    var u, o;496    return (497      (n = isNaN(n) ? 0 : (n %= 360) < 0 ? n + 360 : n),498      (t = isNaN(t) ? 0 : 0 > t ? 0 : t > 1 ? 1 : t),499      (e = 0 > e ? 0 : e > 1 ? 1 : e),500      (o = 0.5 >= e ? e * (1 + t) : e + t - e * t),501      (u = 2 * e - o),502      new mn(i(n + 120), i(n), i(n - 120))503    );504  }505  function fn(n, t, e) {506    return this instanceof fn507      ? ((this.h = +n), (this.c = +t), void (this.l = +e))508      : arguments.length < 2509      ? n instanceof fn510        ? new fn(n.h, n.c, n.l)511        : n instanceof hn512        ? gn(n.l, n.a, n.b)513        : gn((n = Sn((n = ao.rgb(n)).r, n.g, n.b)).l, n.a, n.b)514      : new fn(n, t, e);515  }516  function sn(n, t, e) {517    return (518      isNaN(n) && (n = 0),519      isNaN(t) && (t = 0),520      new hn(e, Math.cos((n *= Yo)) * t, Math.sin(n) * t)521    );522  }523  function hn(n, t, e) {524    return this instanceof hn525      ? ((this.l = +n), (this.a = +t), void (this.b = +e))526      : arguments.length < 2527      ? n instanceof hn528        ? new hn(n.l, n.a, n.b)529        : n instanceof fn530        ? sn(n.h, n.c, n.l)531        : Sn((n = mn(n)).r, n.g, n.b)532      : new hn(n, t, e);533  }534  function pn(n, t, e) {535    var r = (n + 16) / 116,536      i = r + t / 500,537      u = r - e / 200;538    return (539      (i = vn(i) * na),540      (r = vn(r) * ta),541      (u = vn(u) * ea),542      new mn(543        yn(3.2404542 * i - 1.5371385 * r - 0.4985314 * u),544        yn(-0.969266 * i + 1.8760108 * r + 0.041556 * u),545        yn(0.0556434 * i - 0.2040259 * r + 1.0572252 * u)546      )547    );548  }549  function gn(n, t, e) {550    return n > 0551      ? new fn(Math.atan2(e, t) * Zo, Math.sqrt(t * t + e * e), n)552      : new fn(NaN, NaN, n);553  }554  function vn(n) {555    return n > 0.206893034 ? n * n * n : (n - 4 / 29) / 7.787037;556  }557  function dn(n) {558    return n > 0.008856 ? Math.pow(n, 1 / 3) : 7.787037 * n + 4 / 29;559  }560  function yn(n) {561    return Math.round(562      255 * (0.00304 >= n ? 12.92 * n : 1.055 * Math.pow(n, 1 / 2.4) - 0.055)563    );564  }565  function mn(n, t, e) {566    return this instanceof mn567      ? ((this.r = ~~n), (this.g = ~~t), void (this.b = ~~e))568      : arguments.length < 2569      ? n instanceof mn570        ? new mn(n.r, n.g, n.b)571        : _n("" + n, mn, cn)572      : new mn(n, t, e);573  }574  function Mn(n) {575    return new mn(n >> 16, (n >> 8) & 255, 255 & n);576  }577  function xn(n) {578    return Mn(n) + "";579  }580  function bn(n) {581    return 16 > n582      ? "0" + Math.max(0, n).toString(16)583      : Math.min(255, n).toString(16);584  }585  function _n(n, t, e) {586    var r,587      i,588      u,589      o = 0,590      a = 0,591      l = 0;592    if ((r = /([a-z]+)\((.*)\)/.exec((n = n.toLowerCase()))))593      switch (((i = r[2].split(",")), r[1])) {594        case "hsl":595          return e(596            parseFloat(i[0]),597            parseFloat(i[1]) / 100,598            parseFloat(i[2]) / 100599          );600        case "rgb":601          return t(Nn(i[0]), Nn(i[1]), Nn(i[2]));602      }603    return (u = ua.get(n))604      ? t(u.r, u.g, u.b)605      : (null == n ||606          "#" !== n.charAt(0) ||607          isNaN((u = parseInt(n.slice(1), 16))) ||608          (4 === n.length609            ? ((o = (3840 & u) >> 4),610              (o = (o >> 4) | o),611              (a = 240 & u),612              (a = (a >> 4) | a),613              (l = 15 & u),614              (l = (l << 4) | l))615            : 7 === n.length &&616              ((o = (16711680 & u) >> 16),617              (a = (65280 & u) >> 8),618              (l = 255 & u))),619        t(o, a, l));620  }621  function wn(n, t, e) {622    var r,623      i,624      u = Math.min((n /= 255), (t /= 255), (e /= 255)),625      o = Math.max(n, t, e),626      a = o - u,627      l = (o + u) / 2;628    return (629      a630        ? ((i = 0.5 > l ? a / (o + u) : a / (2 - o - u)),631          (r =632            n == o633              ? (t - e) / a + (e > t ? 6 : 0)634              : t == o635              ? (e - n) / a + 2636              : (n - t) / a + 4),637          (r *= 60))638        : ((r = NaN), (i = l > 0 && 1 > l ? 0 : r)),639      new ln(r, i, l)640    );641  }642  function Sn(n, t, e) {643    (n = kn(n)), (t = kn(t)), (e = kn(e));644    var r = dn((0.4124564 * n + 0.3575761 * t + 0.1804375 * e) / na),645      i = dn((0.2126729 * n + 0.7151522 * t + 0.072175 * e) / ta),646      u = dn((0.0193339 * n + 0.119192 * t + 0.9503041 * e) / ea);647    return hn(116 * i - 16, 500 * (r - i), 200 * (i - u));648  }649  function kn(n) {650    return (n /= 255) <= 0.04045651      ? n / 12.92652      : Math.pow((n + 0.055) / 1.055, 2.4);653  }654  function Nn(n) {655    var t = parseFloat(n);656    return "%" === n.charAt(n.length - 1) ? Math.round(2.55 * t) : t;657  }658  function En(n) {659    return "function" == typeof n660      ? n661      : function () {662          return n;663        };664  }665  function An(n) {666    return function (t, e, r) {667      return (668        2 === arguments.length &&669          "function" == typeof e &&670          ((r = e), (e = null)),671        Cn(t, e, n, r)672      );673    };674  }675  function Cn(n, t, e, r) {676    function i() {677      var n,678        t = l.status;679      if ((!t && Ln(l)) || (t >= 200 && 300 > t) || 304 === t) {680        try {681          n = e.call(u, l);682        } catch (r) {683          return void o.error.call(u, r);684        }685        o.load.call(u, n);686      } else o.error.call(u, l);687    }688    var u = {},689      o = ao.dispatch("beforesend", "progress", "load", "error"),690      a = {},691      l = new XMLHttpRequest(),692      c = null;693    return (694      !this.XDomainRequest ||695        "withCredentials" in l ||696        !/^(http(s)?:)?\/\//.test(n) ||697        (l = new XDomainRequest()),698      "onload" in l699        ? (l.onload = l.onerror = i)700        : (l.onreadystatechange = function () {701            l.readyState > 3 && i();702          }),703      (l.onprogress = function (n) {704        var t = ao.event;705        ao.event = n;706        try {707          o.progress.call(u, l);708        } finally {709          ao.event = t;710        }711      }),712      (u.header = function (n, t) {713        return (714          (n = (n + "").toLowerCase()),715          arguments.length < 2716            ? a[n]717            : (null == t ? delete a[n] : (a[n] = t + ""), u)718        );719      }),720      (u.mimeType = function (n) {721        return arguments.length ? ((t = null == n ? null : n + ""), u) : t;722      }),723      (u.responseType = function (n) {724        return arguments.length ? ((c = n), u) : c;725      }),726      (u.response = function (n) {727        return (e = n), u;728      }),729      ["get", "post"].forEach(function (n) {730        u[n] = function () {731          return u.send.apply(u, [n].concat(co(arguments)));732        };733      }),734      (u.send = function (e, r, i) {735        if (736          (2 === arguments.length &&737            "function" == typeof r &&738            ((i = r), (r = null)),739          l.open(e, n, !0),740          null == t || "accept" in a || (a.accept = t + ",*/*"),741          l.setRequestHeader)742        )743          for (var f in a) l.setRequestHeader(f, a[f]);744        return (745          null != t && l.overrideMimeType && l.overrideMimeType(t),746          null != c && (l.responseType = c),747          null != i &&748            u.on("error", i).on("load", function (n) {749              i(null, n);750            }),751          o.beforesend.call(u, l),752          l.send(null == r ? null : r),753          u754        );755      }),756      (u.abort = function () {757        return l.abort(), u;758      }),759      ao.rebind(u, o, "on"),760      null == r ? u : u.get(zn(r))761    );762  }763  function zn(n) {764    return 1 === n.length765      ? function (t, e) {766          n(null == t ? e : null);767        }768      : n;769  }770  function Ln(n) {771    var t = n.responseType;772    return t && "text" !== t ? n.response : n.responseText;773  }774  function qn(n, t, e) {775    var r = arguments.length;776    2 > r && (t = 0), 3 > r && (e = Date.now());777    var i = e + t,778      u = { c: n, t: i, n: null };779    return (780      aa ? (aa.n = u) : (oa = u),781      (aa = u),782      la || ((ca = clearTimeout(ca)), (la = 1), fa(Tn)),783      u784    );785  }786  function Tn() {787    var n = Rn(),788      t = Dn() - n;789    t > 24790      ? (isFinite(t) && (clearTimeout(ca), (ca = setTimeout(Tn, t))), (la = 0))791      : ((la = 1), fa(Tn));792  }793  function Rn() {794    for (var n = Date.now(), t = oa; t; )795      n >= t.t && t.c(n - t.t) && (t.c = null), (t = t.n);796    return n;797  }798  function Dn() {799    for (var n, t = oa, e = 1 / 0; t; )800      t.c801        ? (t.t < e && (e = t.t), (t = (n = t).n))802        : (t = n ? (n.n = t.n) : (oa = t.n));803    return (aa = n), e;804  }805  function Pn(n, t) {806    return t - (n ? Math.ceil(Math.log(n) / Math.LN10) : 1);807  }808  function Un(n, t) {809    var e = Math.pow(10, 3 * xo(8 - t));810    return {811      scale:812        t > 8813          ? function (n) {814              return n / e;815            }816          : function (n) {817              return n * e;818            },819      symbol: n,820    };821  }822  function jn(n) {823    var t = n.decimal,824      e = n.thousands,825      r = n.grouping,826      i = n.currency,827      u =828        r && e829          ? function (n, t) {830              for (831                var i = n.length, u = [], o = 0, a = r[0], l = 0;832                i > 0 &&833                a > 0 &&834                (l + a + 1 > t && (a = Math.max(1, t - l)),835                u.push(n.substring((i -= a), i + a)),836                !((l += a + 1) > t));837              )838                a = r[(o = (o + 1) % r.length)];839              return u.reverse().join(e);840            }841          : m;842    return function (n) {843      var e = ha.exec(n),844        r = e[1] || " ",845        o = e[2] || ">",846        a = e[3] || "-",847        l = e[4] || "",848        c = e[5],849        f = +e[6],850        s = e[7],851        h = e[8],852        p = e[9],853        g = 1,854        v = "",855        d = "",856        y = !1,857        m = !0;858      switch (859        (h && (h = +h.substring(1)),860        (c || ("0" === r && "=" === o)) && ((c = r = "0"), (o = "=")),861        p)862      ) {863        case "n":864          (s = !0), (p = "g");865          break;866        case "%":867          (g = 100), (d = "%"), (p = "f");868          break;869        case "p":870          (g = 100), (d = "%"), (p = "r");871          break;872        case "b":873        case "o":874        case "x":875        case "X":876          "#" === l && (v = "0" + p.toLowerCase());877        case "c":878          m = !1;879        case "d":880          (y = !0), (h = 0);881          break;882        case "s":883          (g = -1), (p = "r");884      }885      "$" === l && ((v = i[0]), (d = i[1])),886        "r" != p || h || (p = "g"),887        null != h &&888          ("g" == p889            ? (h = Math.max(1, Math.min(21, h)))890            : ("e" != p && "f" != p) || (h = Math.max(0, Math.min(20, h)))),891        (p = pa.get(p) || Fn);892      var M = c && s;893      return function (n) {894        var e = d;895        if (y && n % 1) return "";896        var i =897          0 > n || (0 === n && 0 > 1 / n)898            ? ((n = -n), "-")899            : "-" === a900            ? ""901            : a;902        if (0 > g) {903          var l = ao.formatPrefix(n, h);904          (n = l.scale(n)), (e = l.symbol + d);905        } else n *= g;906        n = p(n, h);907        var x,908          b,909          _ = n.lastIndexOf(".");910        if (0 > _) {911          var w = m ? n.lastIndexOf("e") : -1;912          0 > w913            ? ((x = n), (b = ""))914            : ((x = n.substring(0, w)), (b = n.substring(w)));915        } else (x = n.substring(0, _)), (b = t + n.substring(_ + 1));916        !c && s && (x = u(x, 1 / 0));917        var S = v.length + x.length + b.length + (M ? 0 : i.length),918          k = f > S ? new Array((S = f - S + 1)).join(r) : "";919        return (920          M && (x = u(k + x, k.length ? f - b.length : 1 / 0)),921          (i += v),922          (n = x + b),923          ("<" === o924            ? i + n + k925            : ">" === o926            ? k + i + n927            : "^" === o928            ? k.substring(0, (S >>= 1)) + i + n + k.substring(S)929            : i + (M ? n : k + n)) + e930        );931      };932    };933  }934  function Fn(n) {935    return n + "";936  }937  function Hn() {938    this._ = new Date(939      arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]940    );941  }942  function On(n, t, e) {943    function r(t) {944      var e = n(t),945        r = u(e, 1);946      return r - t > t - e ? e : r;947    }948    function i(e) {949      return t((e = n(new va(e - 1))), 1), e;950    }951    function u(n, e) {952      return t((n = new va(+n)), e), n;953    }954    function o(n, r, u) {955      var o = i(n),956        a = [];957      if (u > 1) for (; r > o; ) e(o) % u || a.push(new Date(+o)), t(o, 1);958      else for (; r > o; ) a.push(new Date(+o)), t(o, 1);959      return a;960    }961    function a(n, t, e) {962      try {963        va = Hn;964        var r = new Hn();965        return (r._ = n), o(r, t, e);966      } finally {967        va = Date;968      }969    }970    (n.floor = n), (n.round = r), (n.ceil = i), (n.offset = u), (n.range = o);971    var l = (n.utc = In(n));972    return (973      (l.floor = l),974      (l.round = In(r)),975      (l.ceil = In(i)),976      (l.offset = In(u)),977      (l.range = a),978      n979    );980  }981  function In(n) {982    return function (t, e) {983      try {984        va = Hn;985        var r = new Hn();986        return (r._ = t), n(r, e)._;987      } finally {988        va = Date;989      }990    };991  }992  function Yn(n) {993    function t(n) {994      function t(t) {995        for (var e, i, u, o = [], a = -1, l = 0; ++a < r; )996          37 === n.charCodeAt(a) &&997            (o.push(n.slice(l, a)),998            null != (i = ya[(e = n.charAt(++a))]) && (e = n.charAt(++a)),999            (u = A[e]) && (e = u(t, null == i ? ("e" === e ? " " : "0") : i)),1000            o.push(e),1001            (l = a + 1));1002        return o.push(n.slice(l, a)), o.join("");1003      }1004      var r = n.length;1005      return (1006        (t.parse = function (t) {1007          var r = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null },1008            i = e(r, n, t, 0);1009          if (i != t.length) return null;1010          "p" in r && (r.H = (r.H % 12) + 12 * r.p);1011          var u = null != r.Z && va !== Hn,1012            o = new (u ? Hn : va)();1013          return (1014            "j" in r1015              ? o.setFullYear(r.y, 0, r.j)1016              : "W" in r || "U" in r1017              ? ("w" in r || (r.w = "W" in r ? 1 : 0),1018                o.setFullYear(r.y, 0, 1),1019                o.setFullYear(1020                  r.y,1021                  0,1022                  "W" in r1023                    ? ((r.w + 6) % 7) + 7 * r.W - ((o.getDay() + 5) % 7)1024                    : r.w + 7 * r.U - ((o.getDay() + 6) % 7)1025                ))1026              : o.setFullYear(r.y, r.m, r.d),1027            o.setHours(r.H + ((r.Z / 100) | 0), r.M + (r.Z % 100), r.S, r.L),1028            u ? o._ : o1029          );1030        }),1031        (t.toString = function () {1032          return n;1033        }),1034        t1035      );1036    }1037    function e(n, t, e, r) {1038      for (var i, u, o, a = 0, l = t.length, c = e.length; l > a; ) {1039        if (r >= c) return -1;1040        if (((i = t.charCodeAt(a++)), 37 === i)) {1041          if (1042            ((o = t.charAt(a++)),1043            (u = C[o in ya ? t.charAt(a++) : o]),1044            !u || (r = u(n, e, r)) < 0)1045          )1046            return -1;1047        } else if (i != e.charCodeAt(r++)) return -1;1048      }1049      return r;1050    }1051    function r(n, t, e) {1052      _.lastIndex = 0;1053      var r = _.exec(t.slice(e));1054      return r ? ((n.w = w.get(r[0].toLowerCase())), e + r[0].length) : -1;1055    }1056    function i(n, t, e) {1057      x.lastIndex = 0;1058      var r = x.exec(t.slice(e));1059      return r ? ((n.w = b.get(r[0].toLowerCase())), e + r[0].length) : -1;1060    }1061    function u(n, t, e) {1062      N.lastIndex = 0;1063      var r = N.exec(t.slice(e));1064      return r ? ((n.m = E.get(r[0].toLowerCase())), e + r[0].length) : -1;1065    }1066    function o(n, t, e) {1067      S.lastIndex = 0;1068      var r = S.exec(t.slice(e));1069      return r ? ((n.m = k.get(r[0].toLowerCase())), e + r[0].length) : -1;1070    }1071    function a(n, t, r) {1072      return e(n, A.c.toString(), t, r);1073    }1074    function l(n, t, r) {1075      return e(n, A.x.toString(), t, r);1076    }1077    function c(n, t, r) {1078      return e(n, A.X.toString(), t, r);1079    }1080    function f(n, t, e) {1081      var r = M.get(t.slice(e, (e += 2)).toLowerCase());1082      return null == r ? -1 : ((n.p = r), e);1083    }1084    var s = n.dateTime,1085      h = n.date,1086      p = n.time,1087      g = n.periods,1088      v = n.days,1089      d = n.shortDays,1090      y = n.months,1091      m = n.shortMonths;1092    (t.utc = function (n) {1093      function e(n) {1094        try {1095          va = Hn;1096          var t = new va();1097          return (t._ = n), r(t);1098        } finally {1099          va = Date;1100        }1101      }1102      var r = t(n);1103      return (1104        (e.parse = function (n) {1105          try {1106            va = Hn;1107            var t = r.parse(n);1108            return t && t._;1109          } finally {1110            va = Date;1111          }1112        }),1113        (e.toString = r.toString),1114        e1115      );1116    }),1117      (t.multi = t.utc.multi = ct);1118    var M = ao.map(),1119      x = Vn(v),1120      b = Xn(v),1121      _ = Vn(d),1122      w = Xn(d),1123      S = Vn(y),1124      k = Xn(y),1125      N = Vn(m),1126      E = Xn(m);1127    g.forEach(function (n, t) {1128      M.set(n.toLowerCase(), t);1129    });1130    var A = {1131        a: function (n) {1132          return d[n.getDay()];1133        },1134        A: function (n) {1135          return v[n.getDay()];1136        },1137        b: function (n) {1138          return m[n.getMonth()];1139        },1140        B: function (n) {1141          return y[n.getMonth()];1142        },1143        c: t(s),1144        d: function (n, t) {1145          return Zn(n.getDate(), t, 2);1146        },1147        e: function (n, t) {1148          return Zn(n.getDate(), t, 2);1149        },1150        H: function (n, t) {1151          return Zn(n.getHours(), t, 2);1152        },1153        I: function (n, t) {1154          return Zn(n.getHours() % 12 || 12, t, 2);1155        },1156        j: function (n, t) {1157          return Zn(1 + ga.dayOfYear(n), t, 3);1158        },1159        L: function (n, t) {1160          return Zn(n.getMilliseconds(), t, 3);1161        },1162        m: function (n, t) {1163          return Zn(n.getMonth() + 1, t, 2);1164        },1165        M: function (n, t) {1166          return Zn(n.getMinutes(), t, 2);1167        },1168        p: function (n) {1169          return g[+(n.getHours() >= 12)];1170        },1171        S: function (n, t) {1172          return Zn(n.getSeconds(), t, 2);1173        },1174        U: function (n, t) {1175          return Zn(ga.sundayOfYear(n), t, 2);1176        },1177        w: function (n) {1178          return n.getDay();1179        },1180        W: function (n, t) {1181          return Zn(ga.mondayOfYear(n), t, 2);1182        },1183        x: t(h),1184        X: t(p),1185        y: function (n, t) {1186          return Zn(n.getFullYear() % 100, t, 2);1187        },1188        Y: function (n, t) {1189          return Zn(n.getFullYear() % 1e4, t, 4);1190        },1191        Z: at,1192        "%": function () {1193          return "%";1194        },1195      },1196      C = {1197        a: r,1198        A: i,1199        b: u,1200        B: o,1201        c: a,1202        d: tt,1203        e: tt,1204        H: rt,1205        I: rt,1206        j: et,1207        L: ot,1208        m: nt,1209        M: it,1210        p: f,1211        S: ut,1212        U: Bn,1213        w: $n,1214        W: Wn,1215        x: l,1216        X: c,1217        y: Gn,1218        Y: Jn,1219        Z: Kn,1220        "%": lt,1221      };1222    return t;1223  }1224  function Zn(n, t, e) {1225    var r = 0 > n ? "-" : "",1226      i = (r ? -n : n) + "",1227      u = i.length;1228    return r + (e > u ? new Array(e - u + 1).join(t) + i : i);1229  }1230  function Vn(n) {1231    return new RegExp("^(?:" + n.map(ao.requote).join("|") + ")", "i");1232  }1233  function Xn(n) {1234    for (var t = new c(), e = -1, r = n.length; ++e < r; )1235      t.set(n[e].toLowerCase(), e);1236    return t;1237  }1238  function $n(n, t, e) {1239    ma.lastIndex = 0;1240    var r = ma.exec(t.slice(e, e + 1));1241    return r ? ((n.w = +r[0]), e + r[0].length) : -1;1242  }1243  function Bn(n, t, e) {1244    ma.lastIndex = 0;1245    var r = ma.exec(t.slice(e));1246    return r ? ((n.U = +r[0]), e + r[0].length) : -1;1247  }1248  function Wn(n, t, e) {1249    ma.lastIndex = 0;1250    var r = ma.exec(t.slice(e));1251    return r ? ((n.W = +r[0]), e + r[0].length) : -1;1252  }1253  function Jn(n, t, e) {1254    ma.lastIndex = 0;1255    var r = ma.exec(t.slice(e, e + 4));1256    return r ? ((n.y = +r[0]), e + r[0].length) : -1;1257  }1258  function Gn(n, t, e) {1259    ma.lastIndex = 0;1260    var r = ma.exec(t.slice(e, e + 2));1261    return r ? ((n.y = Qn(+r[0])), e + r[0].length) : -1;1262  }1263  function Kn(n, t, e) {1264    return /^[+-]\d{4}$/.test((t = t.slice(e, e + 5)))1265      ? ((n.Z = -t), e + 5)1266      : -1;1267  }1268  function Qn(n) {1269    return n + (n > 68 ? 1900 : 2e3);1270  }1271  function nt(n, t, e) {1272    ma.lastIndex = 0;1273    var r = ma.exec(t.slice(e, e + 2));1274    return r ? ((n.m = r[0] - 1), e + r[0].length) : -1;1275  }1276  function tt(n, t, e) {1277    ma.lastIndex = 0;1278    var r = ma.exec(t.slice(e, e + 2));1279    return r ? ((n.d = +r[0]), e + r[0].length) : -1;1280  }1281  function et(n, t, e) {1282    ma.lastIndex = 0;1283    var r = ma.exec(t.slice(e, e + 3));1284    return r ? ((n.j = +r[0]), e + r[0].length) : -1;1285  }1286  function rt(n, t, e) {1287    ma.lastIndex = 0;1288    var r = ma.exec(t.slice(e, e + 2));1289    return r ? ((n.H = +r[0]), e + r[0].length) : -1;1290  }1291  function it(n, t, e) {1292    ma.lastIndex = 0;1293    var r = ma.exec(t.slice(e, e + 2));1294    return r ? ((n.M = +r[0]), e + r[0].length) : -1;1295  }1296  function ut(n, t, e) {1297    ma.lastIndex = 0;1298    var r = ma.exec(t.slice(e, e + 2));1299    return r ? ((n.S = +r[0]), e + r[0].length) : -1;1300  }1301  function ot(n, t, e) {1302    ma.lastIndex = 0;1303    var r = ma.exec(t.slice(e, e + 3));1304    return r ? ((n.L = +r[0]), e + r[0].length) : -1;1305  }1306  function at(n) {1307    var t = n.getTimezoneOffset(),1308      e = t > 0 ? "-" : "+",1309      r = (xo(t) / 60) | 0,1310      i = xo(t) % 60;1311    return e + Zn(r, "0", 2) + Zn(i, "0", 2);1312  }1313  function lt(n, t, e) {1314    Ma.lastIndex = 0;1315    var r = Ma.exec(t.slice(e, e + 1));1316    return r ? e + r[0].length : -1;1317  }1318  function ct(n) {1319    for (var t = n.length, e = -1; ++e < t; ) n[e][0] = this(n[e][0]);1320    return function (t) {1321      for (var e = 0, r = n[e]; !r[1](t); ) r = n[++e];1322      return r[0](t);1323    };1324  }1325  function ft() {}1326  function st(n, t, e) {1327    var r = (e.s = n + t),1328      i = r - n,1329      u = r - i;1330    e.t = n - u + (t - i);1331  }1332  function ht(n, t) {1333    n && wa.hasOwnProperty(n.type) && wa[n.type](n, t);1334  }1335  function pt(n, t, e) {1336    var r,1337      i = -1,1338      u = n.length - e;1339    for (t.lineStart(); ++i < u; ) (r = n[i]), t.point(r[0], r[1], r[2]);1340    t.lineEnd();1341  }1342  function gt(n, t) {1343    var e = -1,1344      r = n.length;1345    for (t.polygonStart(); ++e < r; ) pt(n[e], t, 1);1346    t.polygonEnd();1347  }1348  function vt() {1349    function n(n, t) {1350      (n *= Yo), (t = (t * Yo) / 2 + Fo / 4);1351      var e = n - r,1352        o = e >= 0 ? 1 : -1,1353        a = o * e,1354        l = Math.cos(t),1355        c = Math.sin(t),1356        f = u * c,1357        s = i * l + f * Math.cos(a),1358        h = f * o * Math.sin(a);1359      ka.add(Math.atan2(h, s)), (r = n), (i = l), (u = c);1360    }1361    var t, e, r, i, u;1362    (Na.point = function (o, a) {1363      (Na.point = n),1364        (r = (t = o) * Yo),1365        (i = Math.cos((a = ((e = a) * Yo) / 2 + Fo / 4))),1366        (u = Math.sin(a));1367    }),1368      (Na.lineEnd = function () {1369        n(t, e);1370      });1371  }1372  function dt(n) {1373    var t = n[0],1374      e = n[1],1375      r = Math.cos(e);1376    return [r * Math.cos(t), r * Math.sin(t), Math.sin(e)];1377  }1378  function yt(n, t) {1379    return n[0] * t[0] + n[1] * t[1] + n[2] * t[2];1380  }1381  function mt(n, t) {1382    return [1383      n[1] * t[2] - n[2] * t[1],1384      n[2] * t[0] - n[0] * t[2],1385      n[0] * t[1] - n[1] * t[0],1386    ];1387  }1388  function Mt(n, t) {1389    (n[0] += t[0]), (n[1] += t[1]), (n[2] += t[2]);1390  }1391  function xt(n, t) {1392    return [n[0] * t, n[1] * t, n[2] * t];1393  }1394  function bt(n) {1395    var t = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]);1396    (n[0] /= t), (n[1] /= t), (n[2] /= t);1397  }1398  function _t(n) {1399    return [Math.atan2(n[1], n[0]), tn(n[2])];1400  }1401  function wt(n, t) {1402    return xo(n[0] - t[0]) < Uo && xo(n[1] - t[1]) < Uo;1403  }1404  function St(n, t) {1405    n *= Yo;1406    var e = Math.cos((t *= Yo));1407    kt(e * Math.cos(n), e * Math.sin(n), Math.sin(t));1408  }1409  function kt(n, t, e) {1410    ++Ea, (Ca += (n - Ca) / Ea), (za += (t - za) / Ea), (La += (e - La) / Ea);1411  }1412  function Nt() {1413    function n(n, i) {1414      n *= Yo;1415      var u = Math.cos((i *= Yo)),1416        o = u * Math.cos(n),1417        a = u * Math.sin(n),1418        l = Math.sin(i),1419        c = Math.atan2(1420          Math.sqrt(1421            (c = e * l - r * a) * c +1422              (c = r * o - t * l) * c +1423              (c = t * a - e * o) * c1424          ),1425          t * o + e * a + r * l1426        );1427      (Aa += c),1428        (qa += c * (t + (t = o))),1429        (Ta += c * (e + (e = a))),1430        (Ra += c * (r + (r = l))),1431        kt(t, e, r);1432    }1433    var t, e, r;1434    ja.point = function (i, u) {1435      i *= Yo;1436      var o = Math.cos((u *= Yo));1437      (t = o * Math.cos(i)),1438        (e = o * Math.sin(i)),1439        (r = Math.sin(u)),1440        (ja.point = n),1441        kt(t, e, r);1442    };1443  }1444  function Et() {1445    ja.point = St;1446  }1447  function At() {1448    function n(n, t) {1449      n *= Yo;1450      var e = Math.cos((t *= Yo)),1451        o = e * Math.cos(n),1452        a = e * Math.sin(n),1453        l = Math.sin(t),1454        c = i * l - u * a,1455        f = u * o - r * l,1456        s = r * a - i * o,1457        h = Math.sqrt(c * c + f * f + s * s),1458        p = r * o + i * a + u * l,1459        g = h && -nn(p) / h,1460        v = Math.atan2(h, p);1461      (Da += g * c),1462        (Pa += g * f),1463        (Ua += g * s),1464        (Aa += v),1465        (qa += v * (r + (r = o))),1466        (Ta += v * (i + (i = a))),1467        (Ra += v * (u + (u = l))),1468        kt(r, i, u);1469    }1470    var t, e, r, i, u;1471    (ja.point = function (o, a) {1472      (t = o), (e = a), (ja.point = n), (o *= Yo);1473      var l = Math.cos((a *= Yo));1474      (r = l * Math.cos(o)),1475        (i = l * Math.sin(o)),1476        (u = Math.sin(a)),1477        kt(r, i, u);1478    }),1479      (ja.lineEnd = function () {1480        n(t, e), (ja.lineEnd = Et), (ja.point = St);1481      });1482  }1483  function Ct(n, t) {1484    function e(e, r) {1485      return (e = n(e, r)), t(e[0], e[1]);1486    }1487    return (1488      n.invert &&1489        t.invert &&1490        (e.invert = function (e, r) {1491          return (e = t.invert(e, r)), e && n.invert(e[0], e[1]);1492        }),1493      e1494    );1495  }1496  function zt() {1497    return !0;1498  }1499  function Lt(n, t, e, r, i) {1500    var u = [],1501      o = [];1502    if (1503      (n.forEach(function (n) {1504        if (!((t = n.length - 1) <= 0)) {1505          var t,1506            e = n[0],1507            r = n[t];1508          if (wt(e, r)) {1509            i.lineStart();1510            for (var a = 0; t > a; ++a) i.point((e = n[a])[0], e[1]);1511            return void i.lineEnd();1512          }1513          var l = new Tt(e, n, null, !0),1514            c = new Tt(e, null, l, !1);1515          (l.o = c),1516            u.push(l),1517            o.push(c),1518            (l = new Tt(r, n, null, !1)),1519            (c = new Tt(r, null, l, !0)),1520            (l.o = c),1521            u.push(l),1522            o.push(c);1523        }1524      }),1525      o.sort(t),1526      qt(u),1527      qt(o),1528      u.length)1529    ) {1530      for (var a = 0, l = e, c = o.length; c > a; ++a) o[a].e = l = !l;1531      for (var f, s, h = u[0]; ; ) {1532        for (var p = h, g = !0; p.v; ) if ((p = p.n) === h) return;1533        (f = p.z), i.lineStart();1534        do {1535          if (((p.v = p.o.v = !0), p.e)) {1536            if (g)1537              for (var a = 0, c = f.length; c > a; ++a)1538                i.point((s = f[a])[0], s[1]);1539            else r(p.x, p.n.x, 1, i);1540            p = p.n;1541          } else {1542            if (g) {1543              f = p.p.z;1544              for (var a = f.length - 1; a >= 0; --a)1545                i.point((s = f[a])[0], s[1]);1546            } else r(p.x, p.p.x, -1, i);1547            p = p.p;1548          }1549          (p = p.o), (f = p.z), (g = !g);1550        } while (!p.v);1551        i.lineEnd();1552      }1553    }1554  }1555  function qt(n) {1556    if ((t = n.length)) {1557      for (var t, e, r = 0, i = n[0]; ++r < t; )1558        (i.n = e = n[r]), (e.p = i), (i = e);1559      (i.n = e = n[0]), (e.p = i);1560    }1561  }1562  function Tt(n, t, e, r) {1563    (this.x = n),1564      (this.z = t),1565      (this.o = e),1566      (this.e = r),1567      (this.v = !1),1568      (this.n = this.p = null);1569  }1570  function Rt(n, t, e, r) {1571    return function (i, u) {1572      function o(t, e) {1573        var r = i(t, e);1574        n((t = r[0]), (e = r[1])) && u.point(t, e);1575      }1576      function a(n, t) {1577        var e = i(n, t);1578        d.point(e[0], e[1]);1579      }1580      function l() {1581        (m.point = a), d.lineStart();1582      }1583      function c() {1584        (m.point = o), d.lineEnd();1585      }1586      function f(n, t) {1587        v.push([n, t]);1588        var e = i(n, t);1589        x.point(e[0], e[1]);1590      }1591      function s() {1592        x.lineStart(), (v = []);1593      }1594      function h() {1595        f(v[0][0], v[0][1]), x.lineEnd();1596        var n,1597          t = x.clean(),1598          e = M.buffer(),1599          r = e.length;1600        if ((v.pop(), g.push(v), (v = null), r))1601          if (1 & t) {1602            n = e[0];1603            var i,1604              r = n.length - 1,1605              o = -1;1606            if (r > 0) {1607              for (b || (u.polygonStart(), (b = !0)), u.lineStart(); ++o < r; )1608                u.point((i = n[o])[0], i[1]);1609              u.lineEnd();1610            }1611          } else1612            r > 1 && 2 & t && e.push(e.pop().concat(e.shift())),1613              p.push(e.filter(Dt));1614      }1615      var p,1616        g,1617        v,1618        d = t(u),1619        y = i.invert(r[0], r[1]),1620        m = {1621          point: o,1622          lineStart: l,1623          lineEnd: c,1624          polygonStart: function () {1625            (m.point = f),1626              (m.lineStart = s),1627              (m.lineEnd = h),1628              (p = []),1629              (g = []);1630          },1631          polygonEnd: function () {1632            (m.point = o),1633              (m.lineStart = l),1634              (m.lineEnd = c),1635              (p = ao.merge(p));1636            var n = Ot(y, g);1637            p.length1638              ? (b || (u.polygonStart(), (b = !0)), Lt(p, Ut, n, e, u))1639              : n &&1640                (b || (u.polygonStart(), (b = !0)),1641                u.lineStart(),1642                e(null, null, 1, u),1643                u.lineEnd()),1644              b && (u.polygonEnd(), (b = !1)),1645              (p = g = null);1646          },1647          sphere: function () {1648            u.polygonStart(),1649              u.lineStart(),1650              e(null, null, 1, u),1651              u.lineEnd(),1652              u.polygonEnd();1653          },1654        },1655        M = Pt(),1656        x = t(M),1657        b = !1;1658      return m;1659    };1660  }1661  function Dt(n) {1662    return n.length > 1;1663  }1664  function Pt() {1665    var n,1666      t = [];1667    return {1668      lineStart: function () {1669        t.push((n = []));1670      },1671      point: function (t, e) {1672        n.push([t, e]);1673      },1674      lineEnd: b,1675      buffer: function () {1676        var e = t;1677        return (t = []), (n = null), e;1678      },1679      rejoin: function () {1680        t.length > 1 && t.push(t.pop().concat(t.shift()));1681      },1682    };1683  }1684  function Ut(n, t) {1685    return (1686      ((n = n.x)[0] < 0 ? n[1] - Io - Uo : Io - n[1]) -1687      ((t = t.x)[0] < 0 ? t[1] - Io - Uo : Io - t[1])1688    );1689  }1690  function jt(n) {1691    var t,1692      e = NaN,1693      r = NaN,1694      i = NaN;1695    return {1696      lineStart: function () {1697        n.lineStart(), (t = 1);1698      },1699      point: function (u, o) {1700        var a = u > 0 ? Fo : -Fo,1701          l = xo(u - e);1702        xo(l - Fo) < Uo1703          ? (n.point(e, (r = (r + o) / 2 > 0 ? Io : -Io)),1704            n.point(i, r),1705            n.lineEnd(),1706            n.lineStart(),1707            n.point(a, r),1708            n.point(u, r),1709            (t = 0))1710          : i !== a &&1711            l >= Fo &&1712            (xo(e - i) < Uo && (e -= i * Uo),1713            xo(u - a) < Uo && (u -= a * Uo),1714            (r = Ft(e, r, u, o)),1715            n.point(i, r),1716            n.lineEnd(),1717            n.lineStart(),1718            n.point(a, r),1719            (t = 0)),1720          n.point((e = u), (r = o)),1721          (i = a);1722      },1723      lineEnd: function () {1724        n.lineEnd(), (e = r = NaN);1725      },1726      clean: function () {1727        return 2 - t;1728      },1729    };1730  }1731  function Ft(n, t, e, r) {1732    var i,1733      u,1734      o = Math.sin(n - e);1735    return xo(o) > Uo1736      ? Math.atan(1737          (Math.sin(t) * (u = Math.cos(r)) * Math.sin(e) -1738            Math.sin(r) * (i = Math.cos(t)) * Math.sin(n)) /1739            (i * u * o)1740        )1741      : (t + r) / 2;1742  }1743  function Ht(n, t, e, r) {1744    var i;1745    if (null == n)1746      (i = e * Io),1747        r.point(-Fo, i),1748        r.point(0, i),1749        r.point(Fo, i),1750        r.point(Fo, 0),1751        r.point(Fo, -i),1752        r.point(0, -i),1753        r.point(-Fo, -i),1754        r.point(-Fo, 0),1755        r.point(-Fo, i);1756    else if (xo(n[0] - t[0]) > Uo) {1757      var u = n[0] < t[0] ? Fo : -Fo;1758      (i = (e * u) / 2), r.point(-u, i), r.point(0, i), r.point(u, i);1759    } else r.point(t[0], t[1]);1760  }1761  function Ot(n, t) {1762    var e = n[0],1763      r = n[1],1764      i = [Math.sin(e), -Math.cos(e), 0],1765      u = 0,1766      o = 0;1767    ka.reset();1768    for (var a = 0, l = t.length; l > a; ++a) {1769      var c = t[a],1770        f = c.length;1771      if (f)1772        for (1773          var s = c[0],1774            h = s[0],1775            p = s[1] / 2 + Fo / 4,1776            g = Math.sin(p),1777            v = Math.cos(p),1778            d = 1;1779          ;1780        ) {1781          d === f && (d = 0), (n = c[d]);1782          var y = n[0],1783            m = n[1] / 2 + Fo / 4,1784            M = Math.sin(m),1785            x = Math.cos(m),1786            b = y - h,1787            _ = b >= 0 ? 1 : -1,1788            w = _ * b,1789            S = w > Fo,1790            k = g * M;1791          if (1792            (ka.add(Math.atan2(k * _ * Math.sin(w), v * x + k * Math.cos(w))),1793            (u += S ? b + _ * Ho : b),1794            S ^ (h >= e) ^ (y >= e))1795          ) {1796            var N = mt(dt(s), dt(n));1797            bt(N);1798            var E = mt(i, N);1799            bt(E);1800            var A = (S ^ (b >= 0) ? -1 : 1) * tn(E[2]);1801            (r > A || (r === A && (N[0] || N[1]))) &&1802              (o += S ^ (b >= 0) ? 1 : -1);1803          }1804          if (!d++) break;1805          (h = y), (g = M), (v = x), (s = n);1806        }1807    }1808    return (-Uo > u || (Uo > u && -Uo > ka)) ^ (1 & o);1809  }1810  function It(n) {1811    function t(n, t) {1812      return Math.cos(n) * Math.cos(t) > u;1813    }1814    function e(n) {1815      var e, u, l, c, f;1816      return {1817        lineStart: function () {1818          (c = l = !1), (f = 1);1819        },1820        point: function (s, h) {1821          var p,1822            g = [s, h],1823            v = t(s, h),1824            d = o ? (v ? 0 : i(s, h)) : v ? i(s + (0 > s ? Fo : -Fo), h) : 0;1825          if (1826            (!e && (c = l = v) && n.lineStart(),1827            v !== l &&1828              ((p = r(e, g)),1829              (wt(e, p) || wt(g, p)) &&1830                ((g[0] += Uo), (g[1] += Uo), (v = t(g[0], g[1])))),1831            v !== l)1832          )1833            (f = 0),1834              v1835                ? (n.lineStart(), (p = r(g, e)), n.point(p[0], p[1]))1836                : ((p = r(e, g)), n.point(p[0], p[1]), n.lineEnd()),1837              (e = p);1838          else if (a && e && o ^ v) {1839            var y;1840            d & u ||1841              !(y = r(g, e, !0)) ||1842              ((f = 0),1843              o1844                ? (n.lineStart(),1845                  n.point(y[0][0], y[0][1]),1846                  n.point(y[1][0], y[1][1]),1847                  n.lineEnd())1848                : (n.point(y[1][0], y[1][1]),1849                  n.lineEnd(),1850                  n.lineStart(),1851                  n.point(y[0][0], y[0][1])));1852          }1853          !v || (e && wt(e, g)) || n.point(g[0], g[1]),1854            (e = g),1855            (l = v),1856            (u = d);1857        },1858        lineEnd: function () {1859          l && n.lineEnd(), (e = null);1860        },1861        clean: function () {1862          return f | ((c && l) << 1);1863        },1864      };1865    }1866    function r(n, t, e) {1867      var r = dt(n),1868        i = dt(t),1869        o = [1, 0, 0],1870        a = mt(r, i),1871        l = yt(a, a),1872        c = a[0],1873        f = l - c * c;1874      if (!f) return !e && n;1875      var s = (u * l) / f,1876        h = (-u * c) / f,1877        p = mt(o, a),1878        g = xt(o, s),1879        v = xt(a, h);1880      Mt(g, v);1881      var d = p,1882        y = yt(g, d),1883        m = yt(d, d),1884        M = y * y - m * (yt(g, g) - 1);1885      if (!(0 > M)) {1886        var x = Math.sqrt(M),1887          b = xt(d, (-y - x) / m);1888        if ((Mt(b, g), (b = _t(b)), !e)) return b;1889        var _,1890          w = n[0],1891          S = t[0],1892          k = n[1],1893          N = t[1];1894        w > S && ((_ = w), (w = S), (S = _));1895        var E = S - w,1896          A = xo(E - Fo) < Uo,1897          C = A || Uo > E;1898        if (1899          (!A && k > N && ((_ = k), (k = N), (N = _)),1900          C1901            ? A1902              ? (k + N > 0) ^ (b[1] < (xo(b[0] - w) < Uo ? k : N))1903              : k <= b[1] && b[1] <= N1904            : (E > Fo) ^ (w <= b[0] && b[0] <= S))1905        ) {1906          var z = xt(d, (-y + x) / m);1907          return Mt(z, g), [b, _t(z)];1908        }1909      }1910    }1911    function i(t, e) {1912      var r = o ? n : Fo - n,1913        i = 0;1914      return (1915        -r > t ? (i |= 1) : t > r && (i |= 2),1916        -r > e ? (i |= 4) : e > r && (i |= 8),1917        i1918      );1919    }1920    var u = Math.cos(n),1921      o = u > 0,1922      a = xo(u) > Uo,1923      l = ve(n, 6 * Yo);1924    return Rt(t, e, l, o ? [0, -n] : [-Fo, n - Fo]);1925  }1926  function Yt(n, t, e, r) {1927    return function (i) {1928      var u,1929        o = i.a,1930        a = i.b,1931        l = o.x,1932        c = o.y,1933        f = a.x,1934        s = a.y,1935        h = 0,1936        p = 1,1937        g = f - l,1938        v = s - c;1939      if (((u = n - l), g || !(u > 0))) {1940        if (((u /= g), 0 > g)) {1941          if (h > u) return;1942          p > u && (p = u);1943        } else if (g > 0) {1944          if (u > p) return;1945          u > h && (h = u);1946        }1947        if (((u = e - l), g || !(0 > u))) {1948          if (((u /= g), 0 > g)) {1949            if (u > p) return;1950            u > h && (h = u);1951          } else if (g > 0) {1952            if (h > u) return;1953            p > u && (p = u);1954          }1955          if (((u = t - c), v || !(u > 0))) {1956            if (((u /= v), 0 > v)) {1957              if (h > u) return;1958              p > u && (p = u);1959            } else if (v > 0) {1960              if (u > p) return;1961              u > h && (h = u);1962            }1963            if (((u = r - c), v || !(0 > u))) {1964              if (((u /= v), 0 > v)) {1965                if (u > p) return;1966                u > h && (h = u);1967              } else if (v > 0) {1968                if (h > u) return;1969                p > u && (p = u);1970              }1971              return (1972                h > 0 && (i.a = { x: l + h * g, y: c + h * v }),1973                1 > p && (i.b = { x: l + p * g, y: c + p * v }),1974                i1975              );1976            }1977          }1978        }1979      }1980    };1981  }1982  function Zt(n, t, e, r) {1983    function i(r, i) {1984      return xo(r[0] - n) < Uo1985        ? i > 01986          ? 01987          : 31988        : xo(r[0] - e) < Uo1989        ? i > 01990          ? 21991          : 11992        : xo(r[1] - t) < Uo1993        ? i > 01994          ? 11995          : 01996        : i > 01997        ? 31998        : 2;1999    }2000    function u(n, t) {2001      return o(n.x, t.x);2002    }2003    function o(n, t) {2004      var e = i(n, 1),2005        r = i(t, 1);2006      return e !== r2007        ? e - r2008        : 0 === e2009        ? t[1] - n[1]2010        : 1 === e2011        ? n[0] - t[0]2012        : 2 === e2013        ? n[1] - t[1]2014        : t[0] - n[0];2015    }2016    return function (a) {2017      function l(n) {2018        for (var t = 0, e = d.length, r = n[1], i = 0; e > i; ++i)2019          for (var u, o = 1, a = d[i], l = a.length, c = a[0]; l > o; ++o)2020            (u = a[o]),2021              c[1] <= r2022                ? u[1] > r && Q(c, u, n) > 0 && ++t2023                : u[1] <= r && Q(c, u, n) < 0 && --t,2024              (c = u);2025        return 0 !== t;2026      }2027      function c(u, a, l, c) {2028        var f = 0,2029          s = 0;2030        if (2031          null == u ||2032          (f = i(u, l)) !== (s = i(a, l)) ||2033          (o(u, a) < 0) ^ (l > 0)2034        ) {2035          do c.point(0 === f || 3 === f ? n : e, f > 1 ? r : t);2036          while ((f = (f + l + 4) % 4) !== s);2037        } else c.point(a[0], a[1]);2038      }2039      function f(i, u) {2040        return i >= n && e >= i && u >= t && r >= u;2041      }2042      function s(n, t) {2043        f(n, t) && a.point(n, t);2044      }2045      function h() {2046        (C.point = g), d && d.push((y = [])), (S = !0), (w = !1), (b = _ = NaN);2047      }2048      function p() {2049        v && (g(m, M), x && w && E.rejoin(), v.push(E.buffer())),2050          (C.point = s),2051          w && a.lineEnd();2052      }2053      function g(n, t) {2054        (n = Math.max(-Ha, Math.min(Ha, n))),2055          (t = Math.max(-Ha, Math.min(Ha, t)));2056        var e = f(n, t);2057        if ((d && y.push([n, t]), S))2058          (m = n),2059            (M = t),2060            (x = e),2061            (S = !1),2062            e && (a.lineStart(), a.point(n, t));2063        else if (e && w) a.point(n, t);2064        else {2065          var r = { a: { x: b, y: _ }, b: { x: n, y: t } };2066          A(r)2067            ? (w || (a.lineStart(), a.point(r.a.x, r.a.y)),2068              a.point(r.b.x, r.b.y),2069              e || a.lineEnd(),2070              (k = !1))2071            : e && (a.lineStart(), a.point(n, t), (k = !1));2072        }2073        (b = n), (_ = t), (w = e);2074      }2075      var v,2076        d,2077        y,2078        m,2079        M,2080        x,2081        b,2082        _,2083        w,2084        S,2085        k,2086        N = a,2087        E = Pt(),2088        A = Yt(n, t, e, r),2089        C = {2090          point: s,2091          lineStart: h,2092          lineEnd: p,2093          polygonStart: function () {2094            (a = E), (v = []), (d = []), (k = !0);2095          },2096          polygonEnd: function () {2097            (a = N), (v = ao.merge(v));2098            var t = l([n, r]),2099              e = k && t,2100              i = v.length;2101            (e || i) &&2102              (a.polygonStart(),2103              e && (a.lineStart(), c(null, null, 1, a), a.lineEnd()),2104              i && Lt(v, u, t, c, a),2105              a.polygonEnd()),2106              (v = d = y = null);2107          },2108        };2109      return C;2110    };2111  }2112  function Vt(n) {2113    var t = 0,2114      e = Fo / 3,2115      r = ae(n),2116      i = r(t, e);2117    return (2118      (i.parallels = function (n) {2119        return arguments.length2120          ? r((t = (n[0] * Fo) / 180), (e = (n[1] * Fo) / 180))2121          : [(t / Fo) * 180, (e / Fo) * 180];2122      }),2123      i2124    );2125  }2126  function Xt(n, t) {2127    function e(n, t) {2128      var e = Math.sqrt(u - 2 * i * Math.sin(t)) / i;2129      return [e * Math.sin((n *= i)), o - e * Math.cos(n)];2130    }2131    var r = Math.sin(n),2132      i = (r + Math.sin(t)) / 2,2133      u = 1 + r * (2 * i - r),2134      o = Math.sqrt(u) / i;2135    return (2136      (e.invert = function (n, t) {2137        var e = o - t;2138        return [2139          Math.atan2(n, e) / i,2140          tn((u - (n * n + e * e) * i * i) / (2 * i)),2141        ];2142      }),2143      e2144    );2145  }2146  function $t() {2147    function n(n, t) {2148      (Ia += i * n - r * t), (r = n), (i = t);2149    }2150    var t, e, r, i;2151    ($a.point = function (u, o) {2152      ($a.point = n), (t = r = u), (e = i = o);2153    }),2154      ($a.lineEnd = function () {2155        n(t, e);2156      });2157  }2158  function Bt(n, t) {2159    Ya > n && (Ya = n),2160      n > Va && (Va = n),2161      Za > t && (Za = t),2162      t > Xa && (Xa = t);2163  }2164  function Wt() {2165    function n(n, t) {2166      o.push("M", n, ",", t, u);2167    }2168    function t(n, t) {2169      o.push("M", n, ",", t), (a.point = e);2170    }2171    function e(n, t) {2172      o.push("L", n, ",", t);2173    }2174    function r() {2175      a.point = n;2176    }2177    function i() {2178      o.push("Z");2179    }2180    var u = Jt(4.5),2181      o = [],2182      a = {2183        point: n,2184        lineStart: function () {2185          a.point = t;2186        },2187        lineEnd: r,2188        polygonStart: function () {2189          a.lineEnd = i;2190        },2191        polygonEnd: function () {2192          (a.lineEnd = r), (a.point = n);2193        },2194        pointRadius: function (n) {2195          return (u = Jt(n)), a;2196        },2197        result: function () {2198          if (o.length) {2199            var n = o.join("");2200            return (o = []), n;2201          }2202        },2203      };2204    return a;2205  }2206  function Jt(n) {2207    return (2208      "m0," +2209      n +2210      "a" +2211      n +2212      "," +2213      n +2214      " 0 1,1 0," +2215      -2 * n +2216      "a" +2217      n +2218      "," +2219      n +2220      " 0 1,1 0," +2221      2 * n +2222      "z"2223    );2224  }2225  function Gt(n, t) {2226    (Ca += n), (za += t), ++La;2227  }2228  function Kt() {2229    function n(n, r) {2230      var i = n - t,2231        u = r - e,2232        o = Math.sqrt(i * i + u * u);2233      (qa += (o * (t + n)) / 2),2234        (Ta += (o * (e + r)) / 2),2235        (Ra += o),2236        Gt((t = n), (e = r));2237    }2238    var t, e;2239    Wa.point = function (r, i) {2240      (Wa.point = n), Gt((t = r), (e = i));2241    };2242  }2243  function Qt() {2244    Wa.point = Gt;2245  }2246  function ne() {2247    function n(n, t) {2248      var e = n - r,2249        u = t - i,2250        o = Math.sqrt(e * e + u * u);2251      (qa += (o * (r + n)) / 2),2252        (Ta += (o * (i + t)) / 2),2253        (Ra += o),2254        (o = i * n - r * t),2255        (Da += o * (r + n)),2256        (Pa += o * (i + t)),2257        (Ua += 3 * o),2258        Gt((r = n), (i = t));2259    }2260    var t, e, r, i;2261    (Wa.point = function (u, o) {2262      (Wa.point = n), Gt((t = r = u), (e = i = o));2263    }),2264      (Wa.lineEnd = function () {2265        n(t, e);2266      });2267  }2268  function te(n) {2269    function t(t, e) {2270      n.moveTo(t + o, e), n.arc(t, e, o, 0, Ho);2271    }2272    function e(t, e) {2273      n.moveTo(t, e), (a.point = r);2274    }2275    function r(t, e) {2276      n.lineTo(t, e);2277    }2278    function i() {2279      a.point = t;2280    }2281    function u() {2282      n.closePath();2283    }2284    var o = 4.5,2285      a = {2286        point: t,2287        lineStart: function () {2288          a.point = e;2289        },2290        lineEnd: i,2291        polygonStart: function () {2292          a.lineEnd = u;2293        },2294        polygonEnd: function () {2295          (a.lineEnd = i), (a.point = t);2296        },2297        pointRadius: function (n) {2298          return (o = n), a;2299        },2300        result: b,2301      };2302    return a;2303  }2304  function ee(n) {2305    function t(n) {2306      return (a ? r : e)(n);2307    }2308    function e(t) {2309      return ue(t, function (e, r) {2310        (e = n(e, r)), t.point(e[0], e[1]);2311      });2312    }2313    function r(t) {2314      function e(e, r) {2315        (e = n(e, r)), t.point(e[0], e[1]);2316      }2317      function r() {2318        (M = NaN), (S.point = u), t.lineStart();2319      }2320      function u(e, r) {2321        var u = dt([e, r]),2322          o = n(e, r);2323        i(2324          M,2325          x,2326          m,2327          b,2328          _,2329          w,2330          (M = o[0]),2331          (x = o[1]),2332          (m = e),2333          (b = u[0]),2334          (_ = u[1]),2335          (w = u[2]),2336          a,2337          t2338        ),2339          t.point(M, x);2340      }2341      function o() {2342        (S.point = e), t.lineEnd();2343      }2344      function l() {2345        r(), (S.point = c), (S.lineEnd = f);2346      }2347      function c(n, t) {2348        u((s = n), (h = t)),2349          (p = M),2350          (g = x),2351          (v = b),2352          (d = _),2353          (y = w),2354          (S.point = u);2355      }2356      function f() {2357        i(M, x, m, b, _, w, p, g, s, v, d, y, a, t), (S.lineEnd = o), o();2358      }2359      var s,2360        h,2361        p,2362        g,2363        v,2364        d,2365        y,2366        m,2367        M,2368        x,2369        b,2370        _,2371        w,2372        S = {2373          point: e,2374          lineStart: r,2375          lineEnd: o,2376          polygonStart: function () {2377            t.polygonStart(), (S.lineStart = l);2378          },2379          polygonEnd: function () {2380            t.polygonEnd(), (S.lineStart = r);2381          },2382        };2383      return S;2384    }2385    function i(t, e, r, a, l, c, f, s, h, p, g, v, d, y) {2386      var m = f - t,2387        M = s - e,2388        x = m * m + M * M;2389      if (x > 4 * u && d--) {2390        var b = a + p,2391          _ = l + g,2392          w = c + v,2393          S = Math.sqrt(b * b + _ * _ + w * w),2394          k = Math.asin((w /= S)),2395          N =2396            xo(xo(w) - 1) < Uo || xo(r - h) < Uo2397              ? (r + h) / 22398              : Math.atan2(_, b),2399          E = n(N, k),2400          A = E[0],2401          C = E[1],2402          z = A - t,2403          L = C - e,2404          q = M * z - m * L;2405        ((q * q) / x > u ||2406          xo((m * z + M * L) / x - 0.5) > 0.3 ||2407          o > a * p + l * g + c * v) &&2408          (i(t, e, r, a, l, c, A, C, N, (b /= S), (_ /= S), w, d, y),2409          y.point(A, C),2410          i(A, C, N, b, _, w, f, s, h, p, g, v, d, y));2411      }2412    }2413    var u = 0.5,2414      o = Math.cos(30 * Yo),2415      a = 16;2416    return (2417      (t.precision = function (n) {2418        return arguments.length2419          ? ((a = (u = n * n) > 0 && 16), t)2420          : Math.sqrt(u);2421      }),2422      t2423    );2424  }2425  function re(n) {2426    var t = ee(function (t, e) {2427      return n([t * Zo, e * Zo]);2428    });2429    return function (n) {2430      return le(t(n));2431    };2432  }2433  function ie(n) {2434    this.stream = n;2435  }2436  function ue(n, t) {2437    return {2438      point: t,2439      sphere: function () {2440        n.sphere();2441      },2442      lineStart: function () {2443        n.lineStart();2444      },2445      lineEnd: function () {2446        n.lineEnd();2447      },2448      polygonStart: function () {2449        n.polygonStart();2450      },2451      polygonEnd: function () {2452        n.polygonEnd();2453      },2454    };2455  }2456  function oe(n) {2457    return ae(function () {2458      return n;2459    })();2460  }2461  function ae(n) {2462    function t(n) {2463      return (n = a(n[0] * Yo, n[1] * Yo)), [n[0] * h + l, c - n[1] * h];2464    }2465    function e(n) {2466      return (2467        (n = a.invert((n[0] - l) / h, (c - n[1]) / h)),2468        n && [n[0] * Zo, n[1] * Zo]2469      );2470    }2471    function r() {2472      a = Ct((o = se(y, M, x)), u);2473      var n = u(v, d);2474      return (l = p - n[0] * h), (c = g + n[1] * h), i();2475    }2476    function i() {2477      return f && ((f.valid = !1), (f = null)), t;2478    }2479    var u,2480      o,2481      a,2482      l,2483      c,2484      f,2485      s = ee(function (n, t) {2486        return (n = u(n, t)), [n[0] * h + l, c - n[1] * h];2487      }),2488      h = 150,2489      p = 480,2490      g = 250,2491      v = 0,2492      d = 0,2493      y = 0,2494      M = 0,2495      x = 0,2496      b = Fa,2497      _ = m,2498      w = null,2499      S = null;2500    return (2501      (t.stream = function (n) {2502        return f && (f.valid = !1), (f = le(b(o, s(_(n))))), (f.valid = !0), f;2503      }),2504      (t.clipAngle = function (n) {2505        return arguments.length2506          ? ((b = null == n ? ((w = n), Fa) : It((w = +n) * Yo)), i())2507          : w;2508      }),2509      (t.clipExtent = function (n) {2510        return arguments.length2511          ? ((S = n), (_ = n ? Zt(n[0][0], n[0][1], n[1][0], n[1][1]) : m), i())2512          : S;2513      }),2514      (t.scale = function (n) {2515        return arguments.length ? ((h = +n), r()) : h;2516      }),2517      (t.translate = function (n) {2518        return arguments.length ? ((p = +n[0]), (g = +n[1]), r()) : [p, g];2519      }),2520      (t.center = function (n) {2521        return arguments.length2522          ? ((v = (n[0] % 360) * Yo), (d = (n[1] % 360) * Yo), r())2523          : [v * Zo, d * Zo];2524      }),2525      (t.rotate = function (n) {2526        return arguments.length2527          ? ((y = (n[0] % 360) * Yo),2528            (M = (n[1] % 360) * Yo),2529            (x = n.length > 2 ? (n[2] % 360) * Yo : 0),2530            r())2531          : [y * Zo, M * Zo, x * Zo];2532      }),2533      ao.rebind(t, s, "precision"),2534      function () {2535        return (u = n.apply(this, arguments)), (t.invert = u.invert && e), r();2536      }2537    );2538  }2539  function le(n) {2540    return ue(n, function (t, e) {2541      n.point(t * Yo, e * Yo);2542    });2543  }2544  function ce(n, t) {2545    return [n, t];2546  }2547  function fe(n, t) {2548    return [n > Fo ? n - Ho : -Fo > n ? n + Ho : n, t];2549  }2550  function se(n, t, e) {2551    return n ? (t || e ? Ct(pe(n), ge(t, e)) : pe(n)) : t || e ? ge(t, e) : fe;2552  }2553  function he(n) {2554    return function (t, e) {2555      return (t += n), [t > Fo ? t - Ho : -Fo > t ? t + Ho : t, e];2556    };2557  }2558  function pe(n) {2559    var t = he(n);2560    return (t.invert = he(-n)), t;2561  }2562  function ge(n, t) {2563    function e(n, t) {2564      var e = Math.cos(t),2565        a = Math.cos(n) * e,2566        l = Math.sin(n) * e,2567        c = Math.sin(t),2568        f = c * r + a * i;2569      return [Math.atan2(l * u - f * o, a * r - c * i), tn(f * u + l * o)];2570    }2571    var r = Math.cos(n),2572      i = Math.sin(n),2573      u = Math.cos(t),2574      o = Math.sin(t);2575    return (2576      (e.invert = function (n, t) {2577        var e = Math.cos(t),2578          a = Math.cos(n) * e,2579          l = Math.sin(n) * e,2580          c = Math.sin(t),2581          f = c * u - l * o;2582        return [Math.atan2(l * u + c * o, a * r + f * i), tn(f * r - a * i)];2583      }),2584      e2585    );2586  }2587  function ve(n, t) {2588    var e = Math.cos(n),2589      r = Math.sin(n);2590    return function (i, u, o, a) {2591      var l = o * t;2592      null != i2593        ? ((i = de(e, i)),2594          (u = de(e, u)),2595          (o > 0 ? u > i : i > u) && (i += o * Ho))2596        : ((i = n + o * Ho), (u = n - 0.5 * l));2597      for (var c, f = i; o > 0 ? f > u : u > f; f -= l)2598        a.point((c = _t([e, -r * Math.cos(f), -r * Math.sin(f)]))[0], c[1]);2599    };2600  }2601  function de(n, t) {2602    var e = dt(t);2603    (e[0] -= n), bt(e);2604    var r = nn(-e[1]);2605    return ((-e[2] < 0 ? -r : r) + 2 * Math.PI - Uo) % (2 * Math.PI);2606  }2607  function ye(n, t, e) {2608    var r = ao.range(n, t - Uo, e).concat(t);2609    return function (n) {2610      return r.map(function (t) {2611        return [n, t];2612      });2613    };2614  }2615  function me(n, t, e) {2616    var r = ao.range(n, t - Uo, e).concat(t);2617    return function (n) {2618      return r.map(function (t) {2619        return [t, n];2620      });2621    };2622  }2623  function Me(n) {2624    return n.source;2625  }2626  function xe(n) {2627    return n.target;2628  }2629  function be(n, t, e, r) {2630    var i = Math.cos(t),2631      u = Math.sin(t),2632      o = Math.cos(r),2633      a = Math.sin(r),2634      l = i * Math.cos(n),2635      c = i * Math.sin(n),2636      f = o * Math.cos(e),2637      s = o * Math.sin(e),2638      h = 2 * Math.asin(Math.sqrt(on(r - t) + i * o * on(e - n))),2639      p = 1 / Math.sin(h),2640      g = h2641        ? function (n) {2642            var t = Math.sin((n *= h)) * p,2643              e = Math.sin(h - n) * p,2644              r = e * l + t * f,2645              i = e * c + t * s,2646              o = e * u + t * a;2647            return [2648              Math.atan2(i, r) * Zo,2649              Math.atan2(o, Math.sqrt(r * r + i * i)) * Zo,2650            ];2651          }2652        : function () {2653            return [n * Zo, t * Zo];2654          };2655    return (g.distance = h), g;2656  }2657  function _e() {2658    function n(n, i) {2659      var u = Math.sin((i *= Yo)),2660        o = Math.cos(i),2661        a = xo((n *= Yo) - t),2662        l = Math.cos(a);2663      (Ja += Math.atan2(2664        Math.sqrt((a = o * Math.sin(a)) * a + (a = r * u - e * o * l) * a),2665        e * u + r * o * l2666      )),2667        (t = n),2668        (e = u),2669        (r = o);2670    }2671    var t, e, r;2672    (Ga.point = function (i, u) {2673      (t = i * Yo),2674        (e = Math.sin((u *= Yo))),2675        (r = Math.cos(u)),2676        (Ga.point = n);2677    }),2678      (Ga.lineEnd = function () {2679        Ga.point = Ga.lineEnd = b;2680      });2681  }2682  function we(n, t) {2683    function e(t, e) {2684      var r = Math.cos(t),2685        i = Math.cos(e),2686        u = n(r * i);2687      return [u * i * Math.sin(t), u * Math.sin(e)];2688    }2689    return (2690      (e.invert = function (n, e) {2691        var r = Math.sqrt(n * n + e * e),2692          i = t(r),2693          u = Math.sin(i),2694          o = Math.cos(i);2695        return [Math.atan2(n * u, r * o), Math.asin(r && (e * u) / r)];2696      }),2697      e2698    );2699  }2700  function Se(n, t) {2701    function e(n, t) {2702      o > 0 ? -Io + Uo > t && (t = -Io + Uo) : t > Io - Uo && (t = Io - Uo);2703      var e = o / Math.pow(i(t), u);2704      return [e * Math.sin(u * n), o - e * Math.cos(u * n)];2705    }2706    var r = Math.cos(n),2707      i = function (n) {2708        return Math.tan(Fo / 4 + n / 2);2709      },2710      u =2711        n === t2712          ? Math.sin(n)2713          : Math.log(r / Math.cos(t)) / Math.log(i(t) / i(n)),2714      o = (r * Math.pow(i(n), u)) / u;2715    return u2716      ? ((e.invert = function (n, t) {2717          var e = o - t,2718            r = K(u) * Math.sqrt(n * n + e * e);2719          return [2720            Math.atan2(n, e) / u,2721            2 * Math.atan(Math.pow(o / r, 1 / u)) - Io,2722          ];2723        }),2724        e)2725      : Ne;2726  }2727  function ke(n, t) {2728    function e(n, t) {2729      var e = u - t;2730      return [e * Math.sin(i * n), u - e * Math.cos(i * n)];2731    }2732    var r = Math.cos(n),2733      i = n === t ? Math.sin(n) : (r - Math.cos(t)) / (t - n),2734      u = r / i + n;2735    return xo(i) < Uo2736      ? ce2737      : ((e.invert = function (n, t) {2738          var e = u - t;2739          return [Math.atan2(n, e) / i, u - K(i) * Math.sqrt(n * n + e * e)];2740        }),2741        e);2742  }2743  function Ne(n, t) {2744    return [n, Math.log(Math.tan(Fo / 4 + t / 2))];2745  }2746  function Ee(n) {2747    var t,2748      e = oe(n),2749      r = e.scale,2750      i = e.translate,2751      u = e.clipExtent;2752    return (2753      (e.scale = function () {2754        var n = r.apply(e, arguments);2755        return n === e ? (t ? e.clipExtent(null) : e) : n;2756      }),2757      (e.translate = function () {2758        var n = i.apply(e, arguments);2759        return n === e ? (t ? e.clipExtent(null) : e) : n;2760      }),2761      (e.clipExtent = function (n) {2762        var o = u.apply(e, arguments);2763        if (o === e) {2764          if ((t = null == n)) {2765            var a = Fo * r(),2766              l = i();2767            u([2768              [l[0] - a, l[1] - a],2769              [l[0] + a, l[1] + a],2770            ]);2771          }2772        } else t && (o = null);2773        return o;2774      }),2775      e.clipExtent(null)2776    );2777  }2778  function Ae(n, t) {2779    return [Math.log(Math.tan(Fo / 4 + t / 2)), -n];2780  }2781  function Ce(n) {2782    return n[0];2783  }2784  function ze(n) {2785    return n[1];2786  }2787  function Le(n) {2788    for (var t = n.length, e = [0, 1], r = 2, i = 2; t > i; i++) {2789      for (; r > 1 && Q(n[e[r - 2]], n[e[r - 1]], n[i]) <= 0; ) --r;2790      e[r++] = i;2791    }2792    return e.slice(0, r);2793  }2794  function qe(n, t) {2795    return n[0] - t[0] || n[1] - t[1];2796  }2797  function Te(n, t, e) {2798    return (e[0] - t[0]) * (n[1] - t[1]) < (e[1] - t[1]) * (n[0] - t[0]);2799  }2800  function Re(n, t, e, r) {2801    var i = n[0],2802      u = e[0],2803      o = t[0] - i,2804      a = r[0] - u,2805      l = n[1],2806      c = e[1],2807      f = t[1] - l,2808      s = r[1] - c,2809      h = (a * (l - c) - s * (i - u)) / (s * o - a * f);2810    return [i + h * o, l + h * f];2811  }2812  function De(n) {2813    var t = n[0],2814      e = n[n.length - 1];2815    return !(t[0] - e[0] || t[1] - e[1]);2816  }2817  function Pe() {2818    rr(this), (this.edge = this.site = this.circle = null);2819  }2820  function Ue(n) {2821    var t = cl.pop() || new Pe();2822    return (t.site = n), t;2823  }2824  function je(n) {2825    Be(n), ol.remove(n), cl.push(n), rr(n);2826  }2827  function Fe(n) {2828    var t = n.circle,2829      e = t.x,2830      r = t.cy,2831      i = { x: e, y: r },2832      u = n.P,2833      o = n.N,2834      a = [n];2835    je(n);2836    for (2837      var l = u;2838      l.circle && xo(e - l.circle.x) < Uo && xo(r - l.circle.cy) < Uo;2839    )2840      (u = l.P), a.unshift(l), je(l), (l = u);2841    a.unshift(l), Be(l);2842    for (2843      var c = o;2844      c.circle && xo(e - c.circle.x) < Uo && xo(r - c.circle.cy) < Uo;2845    )2846      (o = c.N), a.push(c), je(c), (c = o);2847    a.push(c), Be(c);2848    var f,2849      s = a.length;2850    for (f = 1; s > f; ++f)2851      (c = a[f]), (l = a[f - 1]), nr(c.edge, l.site, c.site, i);2852    (l = a[0]),2853      (c = a[s - 1]),2854      (c.edge = Ke(l.site, c.site, null, i)),2855      $e(l),2856      $e(c);2857  }2858  function He(n) {2859    for (var t, e, r, i, u = n.x, o = n.y, a = ol._; a; )2860      if (((r = Oe(a, o) - u), r > Uo)) a = a.L;2861      else {2862        if (((i = u - Ie(a, o)), !(i > Uo))) {2863          r > -Uo2864            ? ((t = a.P), (e = a))2865            : i > -Uo2866            ? ((t = a), (e = a.N))2867            : (t = e = a);2868          break;2869        }2870        if (!a.R) {2871          t = a;2872          break;2873        }2874        a = a.R;2875      }2876    var l = Ue(n);2877    if ((ol.insert(t, l), t || e)) {2878      if (t === e)2879        return (2880          Be(t),2881          (e = Ue(t.site)),2882          ol.insert(l, e),2883          (l.edge = e.edge = Ke(t.site, l.site)),2884          $e(t),2885          void $e(e)2886        );2887      if (!e) return void (l.edge = Ke(t.site, l.site));2888      Be(t), Be(e);2889      var c = t.site,2890        f = c.x,2891        s = c.y,2892        h = n.x - f,2893        p = n.y - s,2894        g = e.site,2895        v = g.x - f,2896        d = g.y - s,2897        y = 2 * (h * d - p * v),2898        m = h * h + p * p,2899        M = v * v + d * d,2900        x = { x: (d * m - p * M) / y + f, y: (h * M - v * m) / y + s };2901      nr(e.edge, c, g, x),2902        (l.edge = Ke(c, n, null, x)),2903        (e.edge = Ke(n, g, null, x)),2904        $e(t),2905        $e(e);2906    }2907  }2908  function Oe(n, t) {2909    var e = n.site,2910      r = e.x,2911      i = e.y,2912      u = i - t;2913    if (!u) return r;2914    var o = n.P;2915    if (!o) return -(1 / 0);2916    e = o.site;2917    var a = e.x,2918      l = e.y,2919      c = l - t;2920    if (!c) return a;2921    var f = a - r,2922      s = 1 / u - 1 / c,2923      h = f / c;2924    return s2925      ? (-h +2926          Math.sqrt(2927            h * h - 2 * s * ((f * f) / (-2 * c) - l + c / 2 + i - u / 2)2928          )) /2929          s +2930          r2931      : (r + a) / 2;2932  }2933  function Ie(n, t) {2934    var e = n.N;2935    if (e) return Oe(e, t);2936    var r = n.site;2937    return r.y === t ? r.x : 1 / 0;2938  }2939  function Ye(n) {2940    (this.site = n), (this.edges = []);2941  }2942  function Ze(n) {2943    for (2944      var t,2945        e,2946        r,2947        i,2948        u,2949        o,2950        a,2951        l,2952        c,2953        f,2954        s = n[0][0],2955        h = n[1][0],2956        p = n[0][1],2957        g = n[1][1],2958        v = ul,2959        d = v.length;2960      d--;2961    )2962      if (((u = v[d]), u && u.prepare()))2963        for (a = u.edges, l = a.length, o = 0; l > o; )2964          (f = a[o].end()),2965            (r = f.x),2966            (i = f.y),2967            (c = a[++o % l].start()),2968            (t = c.x),2969            (e = c.y),2970            (xo(r - t) > Uo || xo(i - e) > Uo) &&2971              (a.splice(2972                o,2973                0,2974                new tr(2975                  Qe(2976                    u.site,2977                    f,2978                    xo(r - s) < Uo && g - i > Uo2979                      ? { x: s, y: xo(t - s) < Uo ? e : g }2980                      : xo(i - g) < Uo && h - r > Uo2981                      ? { x: xo(e - g) < Uo ? t : h, y: g }2982                      : xo(r - h) < Uo && i - p > Uo2983                      ? { x: h, y: xo(t - h) < Uo ? e : p }2984                      : xo(i - p) < Uo && r - s > Uo2985                      ? { x: xo(e - p) < Uo ? t : s, y: p }2986                      : null2987                  ),2988                  u.site,2989                  null2990                )2991              ),2992              ++l);2993  }2994  function Ve(n, t) {2995    return t.angle - n.angle;2996  }2997  function Xe() {2998    rr(this), (this.x = this.y = this.arc = this.site = this.cy = null);2999  }3000  function $e(n) {3001    var t = n.P,3002      e = n.N;3003    if (t && e) {3004      var r = t.site,3005        i = n.site,3006        u = e.site;3007      if (r !== u) {3008        var o = i.x,3009          a = i.y,3010          l = r.x - o,3011          c = r.y - a,3012          f = u.x - o,3013          s = u.y - a,3014          h = 2 * (l * s - c * f);3015        if (!(h >= -jo)) {3016          var p = l * l + c * c,3017            g = f * f + s * s,3018            v = (s * p - c * g) / h,3019            d = (l * g - f * p) / h,3020            s = d + a,3021            y = fl.pop() || new Xe();3022          (y.arc = n),3023            (y.site = i),3024            (y.x = v + o),3025            (y.y = s + Math.sqrt(v * v + d * d)),3026            (y.cy = s),3027            (n.circle = y);3028          for (var m = null, M = ll._; M; )3029            if (y.y < M.y || (y.y === M.y && y.x <= M.x)) {3030              if (!M.L) {3031                m = M.P;3032                break;3033              }3034              M = M.L;3035            } else {3036              if (!M.R) {3037                m = M;3038                break;3039              }3040              M = M.R;3041            }3042          ll.insert(m, y), m || (al = y);3043        }3044      }3045    }3046  }3047  function Be(n) {3048    var t = n.circle;3049    t &&3050      (t.P || (al = t.N), ll.remove(t), fl.push(t), rr(t), (n.circle = null));3051  }3052  function We(n) {3053    for (3054      var t, e = il, r = Yt(n[0][0], n[0][1], n[1][0], n[1][1]), i = e.length;3055      i--;3056    )3057      (t = e[i]),3058        (!Je(t, n) ||3059          !r(t) ||3060          (xo(t.a.x - t.b.x) < Uo && xo(t.a.y - t.b.y) < Uo)) &&3061          ((t.a = t.b = null), e.splice(i, 1));3062  }3063  function Je(n, t) {3064    var e = n.b;3065    if (e) return !0;3066    var r,3067      i,3068      u = n.a,3069      o = t[0][0],3070      a = t[1][0],3071      l = t[0][1],3072      c = t[1][1],3073      f = n.l,3074      s = n.r,3075      h = f.x,3076      p = f.y,3077      g = s.x,3078      v = s.y,3079      d = (h + g) / 2,3080      y = (p + v) / 2;3081    if (v === p) {3082      if (o > d || d >= a) return;3083      if (h > g) {3084        if (u) {3085          if (u.y >= c) return;3086        } else u = { x: d, y: l };3087        e = { x: d, y: c };3088      } else {3089        if (u) {3090          if (u.y < l) return;3091        } else u = { x: d, y: c };3092        e = { x: d, y: l };3093      }3094    } else if (((r = (h - g) / (v - p)), (i = y - r * d), -1 > r || r > 1))3095      if (h > g) {3096        if (u) {3097          if (u.y >= c) return;3098        } else u = { x: (l - i) / r, y: l };3099        e = { x: (c - i) / r, y: c };3100      } else {3101        if (u) {3102          if (u.y < l) return;3103        } else u = { x: (c - i) / r, y: c };3104        e = { x: (l - i) / r, y: l };3105      }3106    else if (v > p) {3107      if (u) {3108        if (u.x >= a) return;3109      } else u = { x: o, y: r * o + i };3110      e = { x: a, y: r * a + i };3111    } else {3112      if (u) {3113        if (u.x < o) return;3114      } else u = { x: a, y: r * a + i };3115      e = { x: o, y: r * o + i };3116    }3117    return (n.a = u), (n.b = e), !0;3118  }3119  function Ge(n, t) {3120    (this.l = n), (this.r = t), (this.a = this.b = null);3121  }3122  function Ke(n, t, e, r) {3123    var i = new Ge(n, t);3124    return (3125      il.push(i),3126      e && nr(i, n, t, e),3127      r && nr(i, t, n, r),3128      ul[n.i].edges.push(new tr(i, n, t)),3129      ul[t.i].edges.push(new tr(i, t, n)),3130      i3131    );3132  }3133  function Qe(n, t, e) {3134    var r = new Ge(n, null);3135    return (r.a = t), (r.b = e), il.push(r), r;3136  }3137  function nr(n, t, e, r) {3138    n.a || n.b3139      ? n.l === e3140        ? (n.b = r)3141        : (n.a = r)3142      : ((n.a = r), (n.l = t), (n.r = e));3143  }3144  function tr(n, t, e) {3145    var r = n.a,3146      i = n.b;3147    (this.edge = n),3148      (this.site = t),3149      (this.angle = e3150        ? Math.atan2(e.y - t.y, e.x - t.x)3151        : n.l === t3152        ? Math.atan2(i.x - r.x, r.y - i.y)3153        : Math.atan2(r.x - i.x, i.y - r.y));3154  }3155  function er() {3156    this._ = null;3157  }3158  function rr(n) {3159    n.U = n.C = n.L = n.R = n.P = n.N = null;3160  }3161  function ir(n, t) {3162    var e = t,3163      r = t.R,3164      i = e.U;3165    i ? (i.L === e ? (i.L = r) : (i.R = r)) : (n._ = r),3166      (r.U = i),3167      (e.U = r),3168      (e.R = r.L),3169      e.R && (e.R.U = e),3170      (r.L = e);3171  }3172  function ur(n, t) {3173    var e = t,3174      r = t.L,3175      i = e.U;3176    i ? (i.L === e ? (i.L = r) : (i.R = r)) : (n._ = r),3177      (r.U = i),3178      (e.U = r),3179      (e.L = r.R),3180      e.L && (e.L.U = e),3181      (r.R = e);3182  }3183  function or(n) {3184    for (; n.L; ) n = n.L;3185    return n;3186  }3187  function ar(n, t) {3188    var e,3189      r,3190      i,3191      u = n.sort(lr).pop();3192    for (il = [], ul = new Array(n.length), ol = new er(), ll = new er(); ; )3193      if (((i = al), u && (!i || u.y < i.y || (u.y === i.y && u.x < i.x))))3194        (u.x === e && u.y === r) ||3195          ((ul[u.i] = new Ye(u)), He(u), (e = u.x), (r = u.y)),3196          (u = n.pop());3197      else {3198        if (!i) break;3199        Fe(i.arc);3200      }3201    t && (We(t), Ze(t));3202    var o = { cells: ul, edges: il };3203    return (ol = ll = il = ul = null), o;3204  }3205  function lr(n, t) {3206    return t.y - n.y || t.x - n.x;3207  }3208  function cr(n, t, e) {3209    return (n.x - e.x) * (t.y - n.y) - (n.x - t.x) * (e.y - n.y);3210  }3211  function fr(n) {3212    return n.x;3213  }3214  function sr(n) {3215    return n.y;3216  }3217  function hr() {3218    return { leaf: !0, nodes: [], point: null, x: null, y: null };3219  }3220  function pr(n, t, e, r, i, u) {3221    if (!n(t, e, r, i, u)) {3222      var o = 0.5 * (e + i),3223        a = 0.5 * (r + u),3224        l = t.nodes;3225      l[0] && pr(n, l[0], e, r, o, a),3226        l[1] && pr(n, l[1], o, r, i, a),3227        l[2] && pr(n, l[2], e, a, o, u),3228        l[3] && pr(n, l[3], o, a, i, u);3229    }3230  }3231  function gr(n, t, e, r, i, u, o) {3232    var a,3233      l = 1 / 0;3234    return (3235      (function c(n, f, s, h, p) {3236        if (!(f > u || s > o || r > h || i > p)) {3237          if ((g = n.point)) {3238            var g,3239              v = t - n.x,3240              d = e - n.y,3241              y = v * v + d * d;3242            if (l > y) {3243              var m = Math.sqrt((l = y));3244              (r = t - m), (i = e - m), (u = t + m), (o = e + m), (a = g);3245            }3246          }3247          for (3248            var M = n.nodes,3249              x = 0.5 * (f + h),3250              b = 0.5 * (s + p),3251              _ = t >= x,3252              w = e >= b,3253              S = (w << 1) | _,3254              k = S + 4;3255            k > S;3256            ++S3257          )3258            if ((n = M[3 & S]))3259              switch (3 & S) {3260                case 0:3261                  c(n, f, s, x, b);3262                  break;3263                case 1:3264                  c(n, x, s, h, b);3265                  break;3266                case 2:3267                  c(n, f, b, x, p);3268                  break;3269                case 3:3270                  c(n, x, b, h, p);3271              }3272        }3273      })(n, r, i, u, o),3274      a3275    );3276  }3277  function vr(n, t) {3278    (n = ao.rgb(n)), (t = ao.rgb(t));3279    var e = n.r,3280      r = n.g,3281      i = n.b,3282      u = t.r - e,3283      o = t.g - r,3284      a = t.b - i;3285    return function (n) {3286      return (3287        "#" +3288        bn(Math.round(e + u * n)) +3289        bn(Math.round(r + o * n)) +3290        bn(Math.round(i + a * n))3291      );3292    };3293  }3294  function dr(n, t) {3295    var e,3296      r = {},3297      i = {};3298    for (e in n) e in t ? (r[e] = Mr(n[e], t[e])) : (i[e] = n[e]);3299    for (e in t) e in n || (i[e] = t[e]);3300    return function (n) {3301      for (e in r) i[e] = r[e](n);3302      return i;3303    };3304  }3305  function yr(n, t) {3306    return (3307      (n = +n),3308      (t = +t),3309      function (e) {3310        return n * (1 - e) + t * e;3311      }3312    );3313  }3314  function mr(n, t) {3315    var e,3316      r,3317      i,3318      u = (hl.lastIndex = pl.lastIndex = 0),3319      o = -1,3320      a = [],3321      l = [];3322    for (n += "", t += ""; (e = hl.exec(n)) && (r = pl.exec(t)); )3323      (i = r.index) > u &&3324        ((i = t.slice(u, i)), a[o] ? (a[o] += i) : (a[++o] = i)),3325        (e = e[0]) === (r = r[0])3326          ? a[o]3327            ? (a[o] += r)3328            : (a[++o] = r)3329          : ((a[++o] = null), l.push({ i: o, x: yr(e, r) })),3330        (u = pl.lastIndex);3331    return (3332      u < t.length && ((i = t.slice(u)), a[o] ? (a[o] += i) : (a[++o] = i)),3333      a.length < 23334        ? l[0]3335          ? ((t = l[0].x),3336            function (n) {3337              return t(n) + "";3338            })3339          : function () {3340              return t;3341            }3342        : ((t = l.length),3343          function (n) {3344            for (var e, r = 0; t > r; ++r) a[(e = l[r]).i] = e.x(n);3345            return a.join("");3346          })3347    );3348  }3349  function Mr(n, t) {3350    for (3351      var e, r = ao.interpolators.length;3352      --r >= 0 && !(e = ao.interpolators[r](n, t));3353    );3354    return e;3355  }3356  function xr(n, t) {3357    var e,3358      r = [],3359      i = [],3360      u = n.length,3361      o = t.length,3362      a = Math.min(n.length, t.length);3363    for (e = 0; a > e; ++e) r.push(Mr(n[e], t[e]));3364    for (; u > e; ++e) i[e] = n[e];3365    for (; o > e; ++e) i[e] = t[e];3366    return function (n) {3367      for (e = 0; a > e; ++e) i[e] = r[e](n);3368      return i;3369    };3370  }3371  function br(n) {3372    return function (t) {3373      return 0 >= t ? 0 : t >= 1 ? 1 : n(t);3374    };3375  }3376  function _r(n) {3377    return function (t) {3378      return 1 - n(1 - t);3379    };3380  }3381  function wr(n) {3382    return function (t) {3383      return 0.5 * (0.5 > t ? n(2 * t) : 2 - n(2 - 2 * t));3384    };3385  }3386  function Sr(n) {3387    return n * n;3388  }3389  function kr(n) {3390    return n * n * n;3391  }3392  function Nr(n) {3393    if (0 >= n) return 0;3394    if (n >= 1) return 1;3395    var t = n * n,3396      e = t * n;3397    return 4 * (0.5 > n ? e : 3 * (n - t) + e - 0.75);3398  }3399  function Er(n) {3400    return function (t) {3401      return Math.pow(t, n);3402    };3403  }3404  function Ar(n) {3405    return 1 - Math.cos(n * Io);3406  }3407  function Cr(n) {3408    return Math.pow(2, 10 * (n - 1));3409  }3410  function zr(n) {3411    return 1 - Math.sqrt(1 - n * n);3412  }3413  function Lr(n, t) {3414    var e;3415    return (3416      arguments.length < 2 && (t = 0.45),3417      arguments.length3418        ? (e = (t / Ho) * Math.asin(1 / n))3419        : ((n = 1), (e = t / 4)),3420      function (r) {3421        return 1 + n * Math.pow(2, -10 * r) * Math.sin(((r - e) * Ho) / t);3422      }3423    );3424  }3425  function qr(n) {3426    return (3427      n || (n = 1.70158),3428      function (t) {3429        return t * t * ((n + 1) * t - n);3430      }3431    );3432  }3433  function Tr(n) {3434    return 1 / 2.75 > n3435      ? 7.5625 * n * n3436      : 2 / 2.75 > n3437      ? 7.5625 * (n -= 1.5 / 2.75) * n + 0.753438      : 2.5 / 2.75 > n3439      ? 7.5625 * (n -= 2.25 / 2.75) * n + 0.93753440      : 7.5625 * (n -= 2.625 / 2.75) * n + 0.984375;3441  }3442  function Rr(n, t) {3443    (n = ao.hcl(n)), (t = ao.hcl(t));3444    var e = n.h,3445      r = n.c,3446      i = n.l,3447      u = t.h - e,3448      o = t.c - r,3449      a = t.l - i;3450    return (3451      isNaN(o) && ((o = 0), (r = isNaN(r) ? t.c : r)),3452      isNaN(u)3453        ? ((u = 0), (e = isNaN(e) ? t.h : e))3454        : u > 1803455        ? (u -= 360)3456        : -180 > u && (u += 360),3457      function (n) {3458        return sn(e + u * n, r + o * n, i + a * n) + "";3459      }3460    );3461  }3462  function Dr(n, t) {3463    (n = ao.hsl(n)), (t = ao.hsl(t));3464    var e = n.h,3465      r = n.s,3466      i = n.l,3467      u = t.h - e,3468      o = t.s - r,3469      a = t.l - i;3470    return (3471      isNaN(o) && ((o = 0), (r = isNaN(r) ? t.s : r)),3472      isNaN(u)3473        ? ((u = 0), (e = isNaN(e) ? t.h : e))3474        : u > 1803475        ? (u -= 360)3476        : -180 > u && (u += 360),3477      function (n) {3478        return cn(e + u * n, r + o * n, i + a * n) + "";3479      }3480    );3481  }3482  function Pr(n, t) {3483    (n = ao.lab(n)), (t = ao.lab(t));3484    var e = n.l,3485      r = n.a,3486      i = n.b,3487      u = t.l - e,3488      o = t.a - r,3489      a = t.b - i;3490    return function (n) {3491      return pn(e + u * n, r + o * n, i + a * n) + "";3492    };3493  }3494  function Ur(n, t) {3495    return (3496      (t -= n),3497      function (e) {3498        return Math.round(n + t * e);3499      }3500    );3501  }3502  function jr(n) {3503    var t = [n.a, n.b],3504      e = [n.c, n.d],3505      r = Hr(t),3506      i = Fr(t, e),3507      u = Hr(Or(e, t, -i)) || 0;3508    t[0] * e[1] < e[0] * t[1] &&3509      ((t[0] *= -1), (t[1] *= -1), (r *= -1), (i *= -1)),3510      (this.rotate =3511        (r ? Math.atan2(t[1], t[0]) : Math.atan2(-e[0], e[1])) * Zo),3512      (this.translate = [n.e, n.f]),3513      (this.scale = [r, u]),3514      (this.skew = u ? Math.atan2(i, u) * Zo : 0);3515  }3516  function Fr(n, t) {3517    return n[0] * t[0] + n[1] * t[1];3518  }3519  function Hr(n) {3520    var t = Math.sqrt(Fr(n, n));3521    return t && ((n[0] /= t), (n[1] /= t)), t;3522  }3523  function Or(n, t, e) {3524    return (n[0] += e * t[0]), (n[1] += e * t[1]), n;3525  }3526  function Ir(n) {3527    return n.length ? n.pop() + "," : "";3528  }3529  function Yr(n, t, e, r) {3530    if (n[0] !== t[0] || n[1] !== t[1]) {3531      var i = e.push("translate(", null, ",", null, ")");3532      r.push({ i: i - 4, x: yr(n[0], t[0]) }, { i: i - 2, x: yr(n[1], t[1]) });3533    } else (t[0] || t[1]) && e.push("translate(" + t + ")");3534  }3535  function Zr(n, t, e, r) {3536    n !== t3537      ? (n - t > 180 ? (t += 360) : t - n > 180 && (n += 360),3538        r.push({ i: e.push(Ir(e) + "rotate(", null, ")") - 2, x: yr(n, t) }))3539      : t && e.push(Ir(e) + "rotate(" + t + ")");3540  }3541  function Vr(n, t, e, r) {3542    n !== t3543      ? r.push({ i: e.push(Ir(e) + "skewX(", null, ")") - 2, x: yr(n, t) })3544      : t && e.push(Ir(e) + "skewX(" + t + ")");3545  }3546  function Xr(n, t, e, r) {3547    if (n[0] !== t[0] || n[1] !== t[1]) {3548      var i = e.push(Ir(e) + "scale(", null, ",", null, ")");3549      r.push({ i: i - 4, x: yr(n[0], t[0]) }, { i: i - 2, x: yr(n[1], t[1]) });3550    } else (1 === t[0] && 1 === t[1]) || e.push(Ir(e) + "scale(" + t + ")");3551  }3552  function $r(n, t) {3553    var e = [],3554      r = [];3555    return (3556      (n = ao.transform(n)),3557      (t = ao.transform(t)),3558      Yr(n.translate, t.translate, e, r),3559      Zr(n.rotate, t.rotate, e, r),3560      Vr(n.skew, t.skew, e, r),3561      Xr(n.scale, t.scale, e, r),3562      (n = t = null),3563      function (n) {3564        for (var t, i = -1, u = r.length; ++i < u; ) e[(t = r[i]).i] = t.x(n);3565        return e.join("");3566      }3567    );3568  }3569  function Br(n, t) {3570    return (3571      (t = (t -= n = +n) || 1 / t),3572      function (e) {3573        return (e - n) / t;3574      }3575    );3576  }3577  function Wr(n, t) {3578    return (3579      (t = (t -= n = +n) || 1 / t),3580      function (e) {3581        return Math.max(0, Math.min(1, (e - n) / t));3582      }3583    );3584  }3585  function Jr(n) {3586    for (var t = n.source, e = n.target, r = Kr(t, e), i = [t]; t !== r; )3587      (t = t.parent), i.push(t);3588    for (var u = i.length; e !== r; ) i.splice(u, 0, e), (e = e.parent);3589    return i;3590  }3591  function Gr(n) {3592    for (var t = [], e = n.parent; null != e; )3593      t.push(n), (n = e), (e = e.parent);3594    return t.push(n), t;3595  }3596  function Kr(n, t) {3597    if (n === t) return n;3598    for (3599      var e = Gr(n), r = Gr(t), i = e.pop(), u = r.pop(), o = null;3600      i === u;3601    )3602      (o = i), (i = e.pop()), (u = r.pop());3603    return o;3604  }3605  function Qr(n) {3606    n.fixed |= 2;3607  }3608  function ni(n) {3609    n.fixed &= -7;3610  }3611  function ti(n) {3612    (n.fixed |= 4), (n.px = n.x), (n.py = n.y);3613  }3614  function ei(n) {3615    n.fixed &= -5;3616  }3617  function ri(n, t, e) {3618    var r = 0,3619      i = 0;3620    if (((n.charge = 0), !n.leaf))3621      for (var u, o = n.nodes, a = o.length, l = -1; ++l < a; )3622        (u = o[l]),3623          null != u &&3624            (ri(u, t, e),3625            (n.charge += u.charge),3626            (r += u.charge * u.cx),3627            (i += u.charge * u.cy));3628    if (n.point) {3629      n.leaf ||3630        ((n.point.x += Math.random() - 0.5),3631        (n.point.y += Math.random() - 0.5));3632      var c = t * e[n.point.index];3633      (n.charge += n.pointCharge = c),3634        (r += c * n.point.x),3635        (i += c * n.point.y);3636    }3637    (n.cx = r / n.charge), (n.cy = i / n.charge);3638  }3639  function ii(n, t) {3640    return (3641      ao.rebind(n, t, "sort", "children", "value"),3642      (n.nodes = n),3643      (n.links = fi),3644      n3645    );3646  }3647  function ui(n, t) {3648    for (var e = [n]; null != (n = e.pop()); )3649      if ((t(n), (i = n.children) && (r = i.length)))3650        for (var r, i; --r >= 0; ) e.push(i[r]);3651  }3652  function oi(n, t) {3653    for (var e = [n], r = []; null != (n = e.pop()); )3654      if ((r.push(n), (u = n.children) && (i = u.length)))3655        for (var i, u, o = -1; ++o < i; ) e.push(u[o]);3656    for (; null != (n = r.pop()); ) t(n);3657  }3658  function ai(n) {3659    return n.children;3660  }3661  function li(n) {3662    return n.value;3663  }3664  function ci(n, t) {3665    return t.value - n.value;3666  }3667  function fi(n) {3668    return ao.merge(3669      n.map(function (n) {3670        return (n.children || []).map(function (t) {3671          return { source: n, target: t };3672        });3673      })3674    );3675  }3676  function si(n) {3677    return n.x;3678  }3679  function hi(n) {3680    return n.y;3681  }3682  function pi(n, t, e) {3683    (n.y0 = t), (n.y = e);3684  }3685  function gi(n) {3686    return ao.range(n.length);3687  }3688  function vi(n) {3689    for (var t = -1, e = n[0].length, r = []; ++t < e; ) r[t] = 0;3690    return r;3691  }3692  function di(n) {3693    for (var t, e = 1, r = 0, i = n[0][1], u = n.length; u > e; ++e)3694      (t = n[e][1]) > i && ((r = e), (i = t));3695    return r;3696  }3697  function yi(n) {3698    return n.reduce(mi, 0);3699  }3700  function mi(n, t) {3701    return n + t[1];3702  }3703  function Mi(n, t) {3704    return xi(n, Math.ceil(Math.log(t.length) / Math.LN2 + 1));3705  }3706  function xi(n, t) {3707    for (var e = -1, r = +n[0], i = (n[1] - r) / t, u = []; ++e <= t; )3708      u[e] = i * e + r;3709    return u;3710  }3711  function bi(n) {3712    return [ao.min(n), ao.max(n)];3713  }3714  function _i(n, t) {3715    return n.value - t.value;3716  }3717  function wi(n, t) {3718    var e = n._pack_next;3719    (n._pack_next = t),3720      (t._pack_prev = n),3721      (t._pack_next = e),3722      (e._pack_prev = t);3723  }3724  function Si(n, t) {3725    (n._pack_next = t), (t._pack_prev = n);3726  }3727  function ki(n, t) {3728    var e = t.x - n.x,3729      r = t.y - n.y,3730      i = n.r + t.r;3731    return 0.999 * i * i > e * e + r * r;3732  }3733  function Ni(n) {3734    function t(n) {3735      (f = Math.min(n.x - n.r, f)),3736        (s = Math.max(n.x + n.r, s)),3737        (h = Math.min(n.y - n.r, h)),3738        (p = Math.max(n.y + n.r, p));3739    }3740    if ((e = n.children) && (c = e.length)) {3741      var e,3742        r,3743        i,3744        u,3745        o,3746        a,3747        l,3748        c,3749        f = 1 / 0,3750        s = -(1 / 0),3751        h = 1 / 0,3752        p = -(1 / 0);3753      if (3754        (e.forEach(Ei),3755        (r = e[0]),3756        (r.x = -r.r),3757        (r.y = 0),3758        t(r),3759        c > 1 && ((i = e[1]), (i.x = i.r), (i.y = 0), t(i), c > 2))3760      )3761        for (3762          u = e[2],3763            zi(r, i, u),3764            t(u),3765            wi(r, u),3766            r._pack_prev = u,3767            wi(u, i),3768            i = r._pack_next,3769            o = 3;3770          c > o;3771          o++3772        ) {3773          zi(r, i, (u = e[o]));3774          var g = 0,3775            v = 1,3776            d = 1;3777          for (a = i._pack_next; a !== i; a = a._pack_next, v++)3778            if (ki(a, u)) {3779              g = 1;3780              break;3781            }3782          if (1 == g)3783            for (3784              l = r._pack_prev;3785              l !== a._pack_prev && !ki(l, u);3786              l = l._pack_prev, d++3787            );3788          g3789            ? (d > v || (v == d && i.r < r.r) ? Si(r, (i = a)) : Si((r = l), i),3790              o--)3791            : (wi(r, u), (i = u), t(u));3792        }3793      var y = (f + s) / 2,3794        m = (h + p) / 2,3795        M = 0;3796      for (o = 0; c > o; o++)3797        (u = e[o]),3798          (u.x -= y),3799          (u.y -= m),3800          (M = Math.max(M, u.r + Math.sqrt(u.x * u.x + u.y * u.y)));3801      (n.r = M), e.forEach(Ai);3802    }3803  }3804  function Ei(n) {3805    n._pack_next = n._pack_prev = n;3806  }3807  function Ai(n) {3808    delete n._pack_next, delete n._pack_prev;3809  }3810  function Ci(n, t, e, r) {3811    var i = n.children;3812    if (((n.x = t += r * n.x), (n.y = e += r * n.y), (n.r *= r), i))3813      for (var u = -1, o = i.length; ++u < o; ) Ci(i[u], t, e, r);3814  }3815  function zi(n, t, e) {3816    var r = n.r + e.r,3817      i = t.x - n.x,3818      u = t.y - n.y;3819    if (r && (i || u)) {3820      var o = t.r + e.r,3821        a = i * i + u * u;3822      (o *= o), (r *= r);3823      var l = 0.5 + (r - o) / (2 * a),3824        c =3825          Math.sqrt(Math.max(0, 2 * o * (r + a) - (r -= a) * r - o * o)) /3826          (2 * a);3827      (e.x = n.x + l * i + c * u), (e.y = n.y + l * u - c * i);3828    } else (e.x = n.x + r), (e.y = n.y);3829  }3830  function Li(n, t) {3831    return n.parent == t.parent ? 1 : 2;3832  }3833  function qi(n) {3834    var t = n.children;3835    return t.length ? t[0] : n.t;3836  }3837  function Ti(n) {3838    var t,3839      e = n.children;3840    return (t = e.length) ? e[t - 1] : n.t;3841  }3842  function Ri(n, t, e) {3843    var r = e / (t.i - n.i);3844    (t.c -= r), (t.s += e), (n.c += r), (t.z += e), (t.m += e);3845  }3846  function Di(n) {3847    for (var t, e = 0, r = 0, i = n.children, u = i.length; --u >= 0; )3848      (t = i[u]), (t.z += e), (t.m += e), (e += t.s + (r += t.c));3849  }3850  function Pi(n, t, e) {3851    return n.a.parent === t.parent ? n.a : e;3852  }3853  function Ui(n) {3854    return (3855      1 +3856      ao.max(n, function (n) {3857        return n.y;3858      })3859    );3860  }3861  function ji(n) {3862    return (3863      n.reduce(function (n, t) {3864        return n + t.x;3865      }, 0) / n.length3866    );3867  }3868  function Fi(n) {3869    var t = n.children;3870    return t && t.length ? Fi(t[0]) : n;3871  }3872  function Hi(n) {3873    var t,3874      e = n.children;3875    return e && (t = e.length) ? Hi(e[t - 1]) : n;3876  }3877  function Oi(n) {3878    return { x: n.x, y: n.y, dx: n.dx, dy: n.dy };3879  }3880  function Ii(n, t) {3881    var e = n.x + t[3],3882      r = n.y + t[0],3883      i = n.dx - t[1] - t[3],3884      u = n.dy - t[0] - t[2];3885    return (3886      0 > i && ((e += i / 2), (i = 0)),3887      0 > u && ((r += u / 2), (u = 0)),3888      { x: e, y: r, dx: i, dy: u }3889    );3890  }3891  function Yi(n) {3892    var t = n[0],3893      e = n[n.length - 1];3894    return e > t ? [t, e] : [e, t];3895  }3896  function Zi(n) {3897    return n.rangeExtent ? n.rangeExtent() : Yi(n.range());3898  }3899  function Vi(n, t, e, r) {3900    var i = e(n[0], n[1]),3901      u = r(t[0], t[1]);3902    return function (n) {3903      return u(i(n));3904    };3905  }3906  function Xi(n, t) {3907    var e,3908      r = 0,3909      i = n.length - 1,3910      u = n[r],3911      o = n[i];3912    return (3913      u > o && ((e = r), (r = i), (i = e), (e = u), (u = o), (o = e)),3914      (n[r] = t.floor(u)),3915      (n[i] = t.ceil(o)),3916      n3917    );3918  }3919  function $i(n) {3920    return n3921      ? {3922          floor: function (t) {3923            return Math.floor(t / n) * n;3924          },3925          ceil: function (t) {3926            return Math.ceil(t / n) * n;3927          },3928        }3929      : Sl;3930  }3931  function Bi(n, t, e, r) {3932    var i = [],3933      u = [],3934      o = 0,3935      a = Math.min(n.length, t.length) - 1;3936    for (3937      n[a] < n[0] && ((n = n.slice().reverse()), (t = t.slice().reverse()));3938      ++o <= a;3939    )3940      i.push(e(n[o - 1], n[o])), u.push(r(t[o - 1], t[o]));3941    return function (t) {3942      var e = ao.bisect(n, t, 1, a) - 1;3943      return u[e](i[e](t));3944    };3945  }3946  function Wi(n, t, e, r) {3947    function i() {3948      var i = Math.min(n.length, t.length) > 2 ? Bi : Vi,3949        l = r ? Wr : Br;3950      return (o = i(n, t, l, e)), (a = i(t, n, l, Mr)), u;3951    }3952    function u(n) {3953      return o(n);3954    }3955    var o, a;3956    return (3957      (u.invert = function (n) {3958        return a(n);3959      }),3960      (u.domain = function (t) {3961        return arguments.length ? ((n = t.map(Number)), i()) : n;3962      }),3963      (u.range = function (n) {3964        return arguments.length ? ((t = n), i()) : t;3965      }),3966      (u.rangeRound = function (n) {3967        return u.range(n).interpolate(Ur);3968      }),3969      (u.clamp = function (n) {3970        return arguments.length ? ((r = n), i()) : r;3971      }),3972      (u.interpolate = function (n) {3973        return arguments.length ? ((e = n), i()) : e;3974      }),3975      (u.ticks = function (t) {3976        return Qi(n, t);3977      }),3978      (u.tickFormat = function (t, e) {3979        return nu(n, t, e);3980      }),3981      (u.nice = function (t) {3982        return Gi(n, t), i();3983      }),3984      (u.copy = function () {3985        return Wi(n, t, e, r);3986      }),3987      i()3988    );3989  }3990  function Ji(n, t) {3991    return ao.rebind(n, t, "range", "rangeRound", "interpolate", "clamp");3992  }3993  function Gi(n, t) {3994    return Xi(n, $i(Ki(n, t)[2])), Xi(n, $i(Ki(n, t)[2])), n;3995  }3996  function Ki(n, t) {3997    null == t && (t = 10);3998    var e = Yi(n),3999      r = e[1] - e[0],4000      i = Math.pow(10, Math.floor(Math.log(r / t) / Math.LN10)),4001      u = (t / r) * i;4002    return (4003      0.15 >= u ? (i *= 10) : 0.35 >= u ? (i *= 5) : 0.75 >= u && (i *= 2),4004      (e[0] = Math.ceil(e[0] / i) * i),4005      (e[1] = Math.floor(e[1] / i) * i + 0.5 * i),4006      (e[2] = i),4007      e4008    );4009  }4010  function Qi(n, t) {4011    return ao.range.apply(ao, Ki(n, t));4012  }4013  function nu(n, t, e) {4014    var r = Ki(n, t);4015    if (e) {4016      var i = ha.exec(e);4017      if ((i.shift(), "s" === i[8])) {4018        var u = ao.formatPrefix(Math.max(xo(r[0]), xo(r[1])));4019        return (4020          i[7] || (i[7] = "." + tu(u.scale(r[2]))),4021          (i[8] = "f"),4022          (e = ao.format(i.join(""))),4023          function (n) {4024            return e(u.scale(n)) + u.symbol;4025          }4026        );4027      }4028      i[7] || (i[7] = "." + eu(i[8], r)), (e = i.join(""));4029    } else e = ",." + tu(r[2]) + "f";4030    return ao.format(e);4031  }4032  function tu(n) {4033    return -Math.floor(Math.log(n) / Math.LN10 + 0.01);4034  }4035  function eu(n, t) {4036    var e = tu(t[2]);4037    return n in kl4038      ? Math.abs(e - tu(Math.max(xo(t[0]), xo(t[1])))) + +("e" !== n)4039      : e - 2 * ("%" === n);4040  }4041  function ru(n, t, e, r) {4042    function i(n) {4043      return (4044        (e ? Math.log(0 > n ? 0 : n) : -Math.log(n > 0 ? 0 : -n)) / Math.log(t)4045      );4046    }4047    function u(n) {4048      return e ? Math.pow(t, n) : -Math.pow(t, -n);4049    }4050    function o(t) {4051      return n(i(t));4052    }4053    return (4054      (o.invert = function (t) {4055        return u(n.invert(t));4056      }),4057      (o.domain = function (t) {4058        return arguments.length4059          ? ((e = t[0] >= 0), n.domain((r = t.map(Number)).map(i)), o)4060          : r;4061      }),4062      (o.base = function (e) {4063        return arguments.length ? ((t = +e), n.domain(r.map(i)), o) : t;4064      }),4065      (o.nice = function () {4066        var t = Xi(r.map(i), e ? Math : El);4067        return n.domain(t), (r = t.map(u)), o;4068      }),4069      (o.ticks = function () {4070        var n = Yi(r),4071          o = [],4072          a = n[0],4073          l = n[1],4074          c = Math.floor(i(a)),4075          f = Math.ceil(i(l)),4076          s = t % 1 ? 2 : t;4077        if (isFinite(f - c)) {4078          if (e) {4079            for (; f > c; c++) for (var h = 1; s > h; h++) o.push(u(c) * h);4080            o.push(u(c));4081          } else4082            for (o.push(u(c)); c++ < f; )4083              for (var h = s - 1; h > 0; h--) o.push(u(c) * h);4084          for (c = 0; o[c] < a; c++);4085          for (f = o.length; o[f - 1] > l; f--);4086          o = o.slice(c, f);4087        }4088        return o;4089      }),4090      (o.tickFormat = function (n, e) {4091        if (!arguments.length) return Nl;4092        arguments.length < 24093          ? (e = Nl)4094          : "function" != typeof e && (e = ao.format(e));4095        var r = Math.max(1, (t * n) / o.ticks().length);4096        return function (n) {4097          var o = n / u(Math.round(i(n)));4098          return t - 0.5 > o * t && (o *= t), r >= o ? e(n) : "";4099        };4100      }),4101      (o.copy = function () {4102        return ru(n.copy(), t, e, r);4103      }),4104      Ji(o, n)4105    );4106  }4107  function iu(n, t, e) {4108    function r(t) {4109      return n(i(t));4110    }4111    var i = uu(t),4112      u = uu(1 / t);4113    return (4114      (r.invert = function (t) {4115        return u(n.invert(t));4116      }),4117      (r.domain = function (t) {4118        return arguments.length ? (n.domain((e = t.map(Number)).map(i)), r) : e;4119      }),4120      (r.ticks = function (n) {4121        return Qi(e, n);4122      }),4123      (r.tickFormat = function (n, t) {4124        return nu(e, n, t);4125      }),4126      (r.nice = function (n) {4127        return r.domain(Gi(e, n));4128      }),4129      (r.exponent = function (o) {4130        return arguments.length4131          ? ((i = uu((t = o))), (u = uu(1 / t)), n.domain(e.map(i)), r)4132          : t;4133      }),4134      (r.copy = function () {4135        return iu(n.copy(), t, e);4136      }),4137      Ji(r, n)4138    );4139  }4140  function uu(n) {4141    return function (t) {4142      return 0 > t ? -Math.pow(-t, n) : Math.pow(t, n);4143    };4144  }4145  function ou(n, t) {4146    function e(e) {4147      return u[4148        ((i.get(e) || ("range" === t.t ? i.set(e, n.push(e)) : NaN)) - 1) %4149          u.length4150      ];4151    }4152    function r(t, e) {4153      return ao.range(n.length).map(function (n) {4154        return t + e * n;4155      });4156    }4157    var i, u, o;4158    return (4159      (e.domain = function (r) {4160        if (!arguments.length) return n;4161        (n = []), (i = new c());4162        for (var u, o = -1, a = r.length; ++o < a; )4163          i.has((u = r[o])) || i.set(u, n.push(u));4164        return e[t.t].apply(e, t.a);4165      }),4166      (e.range = function (n) {4167        return arguments.length4168          ? ((u = n), (o = 0), (t = { t: "range", a: arguments }), e)4169          : u;4170      }),4171      (e.rangePoints = function (i, a) {4172        arguments.length < 2 && (a = 0);4173        var l = i[0],4174          c = i[1],4175          f =4176            n.length < 24177              ? ((l = (l + c) / 2), 0)4178              : (c - l) / (n.length - 1 + a);4179        return (4180          (u = r(l + (f * a) / 2, f)),4181          (o = 0),4182          (t = { t: "rangePoints", a: arguments }),4183          e4184        );4185      }),4186      (e.rangeRoundPoints = function (i, a) {4187        arguments.length < 2 && (a = 0);4188        var l = i[0],4189          c = i[1],4190          f =4191            n.length < 24192              ? ((l = c = Math.round((l + c) / 2)), 0)4193              : ((c - l) / (n.length - 1 + a)) | 0;4194        return (4195          (u = r(4196            l + Math.round((f * a) / 2 + (c - l - (n.length - 1 + a) * f) / 2),4197            f4198          )),4199          (o = 0),4200          (t = { t: "rangeRoundPoints", a: arguments }),4201          e4202        );4203      }),4204      (e.rangeBands = function (i, a, l) {4205        arguments.length < 2 && (a = 0), arguments.length < 3 && (l = a);4206        var c = i[1] < i[0],4207          f = i[c - 0],4208          s = i[1 - c],4209          h = (s - f) / (n.length - a + 2 * l);4210        return (4211          (u = r(f + h * l, h)),4212          c && u.reverse(),4213          (o = h * (1 - a)),4214          (t = { t: "rangeBands", a: arguments }),4215          e4216        );4217      }),4218      (e.rangeRoundBands = function (i, a, l) {4219        arguments.length < 2 && (a = 0), arguments.length < 3 && (l = a);4220        var c = i[1] < i[0],4221          f = i[c - 0],4222          s = i[1 - c],4223          h = Math.floor((s - f) / (n.length - a + 2 * l));4224        return (4225          (u = r(f + Math.round((s - f - (n.length - a) * h) / 2), h)),4226          c && u.reverse(),4227          (o = Math.round(h * (1 - a))),4228          (t = { t: "rangeRoundBands", a: arguments }),4229          e4230        );4231      }),4232      (e.rangeBand = function () {4233        return o;4234      }),4235      (e.rangeExtent = function () {4236        return Yi(t.a[0]);4237      }),4238      (e.copy = function () {4239        return ou(n, t);4240      }),4241      e.domain(n)4242    );4243  }4244  function au(n, t) {4245    function u() {4246      var e = 0,4247        r = t.length;4248      for (a = []; ++e < r; ) a[e - 1] = ao.quantile(n, e / r);4249      return o;4250    }4251    function o(n) {4252      return isNaN((n = +n)) ? void 0 : t[ao.bisect(a, n)];4253    }4254    var a;4255    return (4256      (o.domain = function (t) {4257        return arguments.length ? ((n = t.map(r).filter(i).sort(e)), u()) : n;4258      }),4259      (o.range = function (n) {4260        return arguments.length ? ((t = n), u()) : t;4261      }),4262      (o.quantiles = function () {4263        return a;4264      }),4265      (o.invertExtent = function (e) {4266        return (4267          (e = t.indexOf(e)),4268          0 > e4269            ? [NaN, NaN]4270            : [e > 0 ? a[e - 1] : n[0], e < a.length ? a[e] : n[n.length - 1]]4271        );4272      }),4273      (o.copy = function () {4274        return au(n, t);4275      }),4276      u()4277    );4278  }4279  function lu(n, t, e) {4280    function r(t) {4281      return e[Math.max(0, Math.min(o, Math.floor(u * (t - n))))];4282    }4283    function i() {4284      return (u = e.length / (t - n)), (o = e.length - 1), r;4285    }4286    var u, o;4287    return (4288      (r.domain = function (e) {4289        return arguments.length4290          ? ((n = +e[0]), (t = +e[e.length - 1]), i())4291          : [n, t];4292      }),4293      (r.range = function (n) {4294        return arguments.length ? ((e = n), i()) : e;4295      }),4296      (r.invertExtent = function (t) {4297        return (4298          (t = e.indexOf(t)), (t = 0 > t ? NaN : t / u + n), [t, t + 1 / u]4299        );4300      }),4301      (r.copy = function () {4302        return lu(n, t, e);4303      }),4304      i()4305    );4306  }4307  function cu(n, t) {4308    function e(e) {4309      return e >= e ? t[ao.bisect(n, e)] : void 0;4310    }4311    return (4312      (e.domain = function (t) {4313        return arguments.length ? ((n = t), e) : n;4314      }),4315      (e.range = function (n) {4316        return arguments.length ? ((t = n), e) : t;4317      }),4318      (e.invertExtent = function (e) {4319        return (e = t.indexOf(e)), [n[e - 1], n[e]];4320      }),4321      (e.copy = function () {4322        return cu(n, t);4323      }),4324      e4325    );4326  }4327  function fu(n) {4328    function t(n) {4329      return +n;4330    }4331    return (4332      (t.invert = t),4333      (t.domain = t.range = function (e) {4334        return arguments.length ? ((n = e.map(t)), t) : n;4335      }),4336      (t.ticks = function (t) {4337        return Qi(n, t);4338      }),4339      (t.tickFormat = function (t, e) {4340        return nu(n, t, e);4341      }),4342      (t.copy = function () {4343        return fu(n);4344      }),4345      t4346    );4347  }4348  function su() {4349    return 0;4350  }4351  function hu(n) {4352    return n.innerRadius;4353  }4354  function pu(n) {4355    return n.outerRadius;4356  }4357  function gu(n) {4358    return n.startAngle;4359  }4360  function vu(n) {4361    return n.endAngle;4362  }4363  function du(n) {4364    return n && n.padAngle;4365  }4366  function yu(n, t, e, r) {4367    return (n - e) * t - (t - r) * n > 0 ? 0 : 1;4368  }4369  function mu(n, t, e, r, i) {4370    var u = n[0] - t[0],4371      o = n[1] - t[1],4372      a = (i ? r : -r) / Math.sqrt(u * u + o * o),4373      l = a * o,4374      c = -a * u,4375      f = n[0] + l,4376      s = n[1] + c,4377      h = t[0] + l,4378      p = t[1] + c,4379      g = (f + h) / 2,4380      v = (s + p) / 2,4381      d = h - f,4382      y = p - s,4383      m = d * d + y * y,4384      M = e - r,4385      x = f * p - h * s,4386      b = (0 > y ? -1 : 1) * Math.sqrt(Math.max(0, M * M * m - x * x)),4387      _ = (x * y - d * b) / m,4388      w = (-x * d - y * b) / m,4389      S = (x * y + d * b) / m,4390      k = (-x * d + y * b) / m,4391      N = _ - g,4392      E = w - v,4393      A = S - g,4394      C = k - v;4395    return (4396      N * N + E * E > A * A + C * C && ((_ = S), (w = k)),4397      [4398        [_ - l, w - c],4399        [(_ * e) / M, (w * e) / M],4400      ]4401    );4402  }4403  function Mu(n) {4404    function t(t) {4405      function o() {4406        c.push("M", u(n(f), a));4407      }4408      for (4409        var l, c = [], f = [], s = -1, h = t.length, p = En(e), g = En(r);4410        ++s < h;4411      )4412        i.call(this, (l = t[s]), s)4413          ? f.push([+p.call(this, l, s), +g.call(this, l, s)])4414          : f.length && (o(), (f = []));4415      return f.length && o(), c.length ? c.join("") : null;4416    }4417    var e = Ce,4418      r = ze,4419      i = zt,4420      u = xu,4421      o = u.key,4422      a = 0.7;4423    return (4424      (t.x = function (n) {4425        return arguments.length ? ((e = n), t) : e;4426      }),4427      (t.y = function (n) {4428        return arguments.length ? ((r = n), t) : r;4429      }),4430      (t.defined = function (n) {4431        return arguments.length ? ((i = n), t) : i;4432      }),4433      (t.interpolate = function (n) {4434        return arguments.length4435          ? ((o = "function" == typeof n ? (u = n) : (u = Tl.get(n) || xu).key),4436            t)4437          : o;4438      }),4439      (t.tension = function (n) {4440        return arguments.length ? ((a = n), t) : a;4441      }),4442      t4443    );4444  }4445  function xu(n) {4446    return n.length > 1 ? n.join("L") : n + "Z";4447  }4448  function bu(n) {4449    return n.join("L") + "Z";4450  }4451  function _u(n) {4452    for (var t = 0, e = n.length, r = n[0], i = [r[0], ",", r[1]]; ++t < e; )4453      i.push("H", (r[0] + (r = n[t])[0]) / 2, "V", r[1]);4454    return e > 1 && i.push("H", r[0]), i.join("");4455  }4456  function wu(n) {4457    for (var t = 0, e = n.length, r = n[0], i = [r[0], ",", r[1]]; ++t < e; )4458      i.push("V", (r = n[t])[1], "H", r[0]);4459    return i.join("");4460  }4461  function Su(n) {4462    for (var t = 0, e = n.length, r = n[0], i = [r[0], ",", r[1]]; ++t < e; )4463      i.push("H", (r = n[t])[0], "V", r[1]);4464    return i.join("");4465  }4466  function ku(n, t) {4467    return n.length < 4 ? xu(n) : n[1] + Au(n.slice(1, -1), Cu(n, t));4468  }4469  function Nu(n, t) {4470    return n.length < 34471      ? bu(n)4472      : n[0] +4473          Au((n.push(n[0]), n), Cu([n[n.length - 2]].concat(n, [n[1]]), t));4474  }4475  function Eu(n, t) {4476    return n.length < 3 ? xu(n) : n[0] + Au(n, Cu(n, t));4477  }4478  function Au(n, t) {4479    if (t.length < 1 || (n.length != t.length && n.length != t.length + 2))4480      return xu(n);4481    var e = n.length != t.length,4482      r = "",4483      i = n[0],4484      u = n[1],4485      o = t[0],4486      a = o,4487      l = 1;4488    if (4489      (e &&4490        ((r +=4491          "Q" +4492          (u[0] - (2 * o[0]) / 3) +4493          "," +4494          (u[1] - (2 * o[1]) / 3) +4495          "," +4496          u[0] +4497          "," +4498          u[1]),4499        (i = n[1]),4500        (l = 2)),4501      t.length > 1)4502    ) {4503      (a = t[1]),4504        (u = n[l]),4505        l++,4506        (r +=4507          "C" +4508          (i[0] + o[0]) +4509          "," +4510          (i[1] + o[1]) +4511          "," +4512          (u[0] - a[0]) +4513          "," +4514          (u[1] - a[1]) +4515          "," +4516          u[0] +4517          "," +4518          u[1]);4519      for (var c = 2; c < t.length; c++, l++)4520        (u = n[l]),4521          (a = t[c]),4522          (r +=4523            "S" +4524            (u[0] - a[0]) +4525            "," +4526            (u[1] - a[1]) +4527            "," +4528            u[0] +4529            "," +4530            u[1]);4531    }4532    if (e) {4533      var f = n[l];4534      r +=4535        "Q" +4536        (u[0] + (2 * a[0]) / 3) +4537        "," +4538        (u[1] + (2 * a[1]) / 3) +4539        "," +4540        f[0] +4541        "," +4542        f[1];4543    }4544    return r;4545  }4546  function Cu(n, t) {4547    for (4548      var e, r = [], i = (1 - t) / 2, u = n[0], o = n[1], a = 1, l = n.length;4549      ++a < l;4550    )4551      (e = u),4552        (u = o),4553        (o = n[a]),4554        r.push([i * (o[0] - e[0]), i * (o[1] - e[1])]);4555    return r;4556  }4557  function zu(n) {4558    if (n.length < 3) return xu(n);4559    var t = 1,4560      e = n.length,4561      r = n[0],4562      i = r[0],4563      u = r[1],4564      o = [i, i, i, (r = n[1])[0]],4565      a = [u, u, u, r[1]],4566      l = [i, ",", u, "L", Ru(Pl, o), ",", Ru(Pl, a)];4567    for (n.push(n[e - 1]); ++t <= e; )4568      (r = n[t]), o.shift(), o.push(r[0]), a.shift(), a.push(r[1]), Du(l, o, a);4569    return n.pop(), l.push("L", r), l.join("");4570  }4571  function Lu(n) {4572    if (n.length < 4) return xu(n);4573    for (var t, e = [], r = -1, i = n.length, u = [0], o = [0]; ++r < 3; )4574      (t = n[r]), u.push(t[0]), o.push(t[1]);4575    for (e.push(Ru(Pl, u) + "," + Ru(Pl, o)), --r; ++r < i; )4576      (t = n[r]), u.shift(), u.push(t[0]), o.shift(), o.push(t[1]), Du(e, u, o);4577    return e.join("");4578  }4579  function qu(n) {4580    for (var t, e, r = -1, i = n.length, u = i + 4, o = [], a = []; ++r < 4; )4581      (e = n[r % i]), o.push(e[0]), a.push(e[1]);4582    for (t = [Ru(Pl, o), ",", Ru(Pl, a)], --r; ++r < u; )4583      (e = n[r % i]),4584        o.shift(),4585        o.push(e[0]),4586        a.shift(),4587        a.push(e[1]),4588        Du(t, o, a);4589    return t.join("");4590  }4591  function Tu(n, t) {4592    var e = n.length - 1;4593    if (e)4594      for (4595        var r,4596          i,4597          u = n[0][0],4598          o = n[0][1],4599          a = n[e][0] - u,4600          l = n[e][1] - o,4601          c = -1;4602        ++c <= e;4603      )4604        (r = n[c]),4605          (i = c / e),4606          (r[0] = t * r[0] + (1 - t) * (u + i * a)),4607          (r[1] = t * r[1] + (1 - t) * (o + i * l));4608    return zu(n);4609  }4610  function Ru(n, t) {4611    return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] + n[3] * t[3];4612  }4613  function Du(n, t, e) {4614    n.push(4615      "C",4616      Ru(Rl, t),4617      ",",4618      Ru(Rl, e),4619      ",",4620      Ru(Dl, t),4621      ",",4622      Ru(Dl, e),4623      ",",4624      Ru(Pl, t),4625      ",",4626      Ru(Pl, e)4627    );4628  }4629  function Pu(n, t) {4630    return (t[1] - n[1]) / (t[0] - n[0]);4631  }4632  function Uu(n) {4633    for (4634      var t = 0,4635        e = n.length - 1,4636        r = [],4637        i = n[0],4638        u = n[1],4639        o = (r[0] = Pu(i, u));4640      ++t < e;4641    )4642      r[t] = (o + (o = Pu((i = u), (u = n[t + 1])))) / 2;4643    return (r[t] = o), r;4644  }4645  function ju(n) {4646    for (var t, e, r, i, u = [], o = Uu(n), a = -1, l = n.length - 1; ++a < l; )4647      (t = Pu(n[a], n[a + 1])),4648        xo(t) < Uo4649          ? (o[a] = o[a + 1] = 0)4650          : ((e = o[a] / t),4651            (r = o[a + 1] / t),4652            (i = e * e + r * r),4653            i > 9 &&4654              ((i = (3 * t) / Math.sqrt(i)),4655              (o[a] = i * e),4656              (o[a + 1] = i * r)));4657    for (a = -1; ++a <= l; )4658      (i =4659        (n[Math.min(l, a + 1)][0] - n[Math.max(0, a - 1)][0]) /4660        (6 * (1 + o[a] * o[a]))),4661        u.push([i || 0, o[a] * i || 0]);4662    return u;4663  }4664  function Fu(n) {4665    return n.length < 3 ? xu(n) : n[0] + Au(n, ju(n));4666  }4667  function Hu(n) {4668    for (var t, e, r, i = -1, u = n.length; ++i < u; )4669      (t = n[i]),4670        (e = t[0]),4671        (r = t[1] - Io),4672        (t[0] = e * Math.cos(r)),4673        (t[1] = e * Math.sin(r));4674    return n;4675  }4676  function Ou(n) {4677    function t(t) {4678      function l() {4679        v.push("M", a(n(y), s), f, c(n(d.reverse()), s), "Z");4680      }4681      for (4682        var h,4683          p,4684          g,4685          v = [],4686          d = [],4687          y = [],4688          m = -1,4689          M = t.length,4690          x = En(e),4691          b = En(i),4692          _ =4693            e === r4694              ? function () {4695                  return p;4696                }4697              : En(r),4698          w =4699            i === u4700              ? function () {4701                  return g;4702                }4703              : En(u);4704        ++m < M;4705      )4706        o.call(this, (h = t[m]), m)4707          ? (d.push([(p = +x.call(this, h, m)), (g = +b.call(this, h, m))]),4708            y.push([+_.call(this, h, m), +w.call(this, h, m)]))4709          : d.length && (l(), (d = []), (y = []));4710      return d.length && l(), v.length ? v.join("") : null;4711    }4712    var e = Ce,4713      r = Ce,4714      i = 0,4715      u = ze,4716      o = zt,4717      a = xu,4718      l = a.key,4719      c = a,4720      f = "L",4721      s = 0.7;4722    return (4723      (t.x = function (n) {4724        return arguments.length ? ((e = r = n), t) : r;4725      }),4726      (t.x0 = function (n) {4727        return arguments.length ? ((e = n), t) : e;4728      }),4729      (t.x1 = function (n) {4730        return arguments.length ? ((r = n), t) : r;4731      }),4732      (t.y = function (n) {4733        return arguments.length ? ((i = u = n), t) : u;4734      }),4735      (t.y0 = function (n) {4736        return arguments.length ? ((i = n), t) : i;4737      }),4738      (t.y1 = function (n) {4739        return arguments.length ? ((u = n), t) : u;4740      }),4741      (t.defined = function (n) {4742        return arguments.length ? ((o = n), t) : o;4743      }),4744      (t.interpolate = function (n) {4745        return arguments.length4746          ? ((l = "function" == typeof n ? (a = n) : (a = Tl.get(n) || xu).key),4747            (c = a.reverse || a),4748            (f = a.closed ? "M" : "L"),4749            t)4750          : l;4751      }),4752      (t.tension = function (n) {4753        return arguments.length ? ((s = n), t) : s;4754      }),4755      t4756    );4757  }4758  function Iu(n) {4759    return n.radius;4760  }4761  function Yu(n) {4762    return [n.x, n.y];4763  }4764  function Zu(n) {4765    return function () {4766      var t = n.apply(this, arguments),4767        e = t[0],4768        r = t[1] - Io;4769      return [e * Math.cos(r), e * Math.sin(r)];4770    };4771  }4772  function Vu() {4773    return 64;4774  }4775  function Xu() {4776    return "circle";4777  }4778  function $u(n) {4779    var t = Math.sqrt(n / Fo);4780    return (4781      "M0," +4782      t +4783      "A" +4784      t +4785      "," +4786      t +4787      " 0 1,1 0," +4788      -t +4789      "A" +4790      t +4791      "," +4792      t +4793      " 0 1,1 0," +4794      t +4795      "Z"4796    );4797  }4798  function Bu(n) {4799    return function () {4800      var t, e, r;4801      (t = this[n]) &&4802        (r = t[(e = t.active)]) &&4803        ((r.timer.c = null),4804        (r.timer.t = NaN),4805        --t.count ? delete t[e] : delete this[n],4806        (t.active += 0.5),4807        r.event && r.event.interrupt.call(this, this.__data__, r.index));4808    };4809  }4810  function Wu(n, t, e) {4811    return ko(n, Yl), (n.namespace = t), (n.id = e), n;4812  }4813  function Ju(n, t, e, r) {4814    var i = n.id,4815      u = n.namespace;4816    return Y(4817      n,4818      "function" == typeof e4819        ? function (n, o, a) {4820            n[u][i].tween.set(t, r(e.call(n, n.__data__, o, a)));4821          }4822        : ((e = r(e)),4823          function (n) {4824            n[u][i].tween.set(t, e);4825          })4826    );4827  }4828  function Gu(n) {4829    return (4830      null == n && (n = ""),4831      function () {4832        this.textContent = n;4833      }4834    );4835  }4836  function Ku(n) {4837    return null == n ? "__transition__" : "__transition_" + n + "__";4838  }4839  function Qu(n, t, e, r, i) {4840    function u(n) {4841      var t = v.delay;4842      return (f.t = t + l), n >= t ? o(n - t) : void (f.c = o);4843    }4844    function o(e) {4845      var i = g.active,4846        u = g[i];4847      u &&4848        ((u.timer.c = null),4849        (u.timer.t = NaN),4850        --g.count,4851        delete g[i],4852        u.event && u.event.interrupt.call(n, n.__data__, u.index));4853      for (var o in g)4854        if (r > +o) {4855          var c = g[o];4856          (c.timer.c = null), (c.timer.t = NaN), --g.count, delete g[o];4857        }4858      (f.c = a),4859        qn(4860          function () {4861            return f.c && a(e || 1) && ((f.c = null), (f.t = NaN)), 1;4862          },4863          0,4864          l4865        ),4866        (g.active = r),4867        v.event && v.event.start.call(n, n.__data__, t),4868        (p = []),4869        v.tween.forEach(function (e, r) {4870          (r = r.call(n, n.__data__, t)) && p.push(r);4871        }),4872        (h = v.ease),4873        (s = v.duration);4874    }4875    function a(i) {4876      for (var u = i / s, o = h(u), a = p.length; a > 0; ) p[--a].call(n, o);4877      return u >= 14878        ? (v.event && v.event.end.call(n, n.__data__, t),4879          --g.count ? delete g[r] : delete n[e],4880          1)4881        : void 0;4882    }4883    var l,4884      f,4885      s,4886      h,4887      p,4888      g = n[e] || (n[e] = { active: 0, count: 0 }),4889      v = g[r];4890    v ||4891      ((l = i.time),4892      (f = qn(u, 0, l)),4893      (v = g[r] = {4894        tween: new c(),4895        time: l,4896        timer: f,4897        delay: i.delay,4898        duration: i.duration,4899        ease: i.ease,4900        index: t,4901      }),4902      (i = null),4903      ++g.count);4904  }4905  function no(n, t, e) {4906    n.attr("transform", function (n) {4907      var r = t(n);4908      return "translate(" + (isFinite(r) ? r : e(n)) + ",0)";4909    });4910  }4911  function to(n, t, e) {4912    n.attr("transform", function (n) {4913      var r = t(n);4914      return "translate(0," + (isFinite(r) ? r : e(n)) + ")";4915    });4916  }4917  function eo(n) {4918    return n.toISOString();4919  }4920  function ro(n, t, e) {4921    function r(t) {4922      return n(t);4923    }4924    function i(n, e) {4925      var r = n[1] - n[0],4926        i = r / e,4927        u = ao.bisect(Kl, i);4928      return u == Kl.length4929        ? [4930            t.year,4931            Ki(4932              n.map(function (n) {4933                return n / 31536e6;4934              }),4935              e4936            )[2],4937          ]4938        : u4939        ? t[i / Kl[u - 1] < Kl[u] / i ? u - 1 : u]4940        : [tc, Ki(n, e)[2]];4941    }4942    return (4943      (r.invert = function (t) {4944        return io(n.invert(t));4945      }),4946      (r.domain = function (t) {4947        return arguments.length ? (n.domain(t), r) : n.domain().map(io);4948      }),4949      (r.nice = function (n, t) {4950        function e(e) {4951          return !isNaN(e) && !n.range(e, io(+e + 1), t).length;4952        }4953        var u = r.domain(),4954          o = Yi(u),4955          a = null == n ? i(o, 10) : "number" == typeof n && i(o, n);4956        return (4957          a && ((n = a[0]), (t = a[1])),4958          r.domain(4959            Xi(4960              u,4961              t > 14962                ? {4963                    floor: function (t) {4964                      for (; e((t = n.floor(t))); ) t = io(t - 1);4965                      return t;4966                    },4967                    ceil: function (t) {4968                      for (; e((t = n.ceil(t))); ) t = io(+t + 1);4969                      return t;4970                    },4971                  }4972                : n4973            )4974          )4975        );4976      }),4977      (r.ticks = function (n, t) {4978        var e = Yi(r.domain()),4979          u =4980            null == n4981              ? i(e, 10)4982              : "number" == typeof n4983              ? i(e, n)4984              : !n.range && [{ range: n }, t];4985        return (4986          u && ((n = u[0]), (t = u[1])),4987          n.range(e[0], io(+e[1] + 1), 1 > t ? 1 : t)4988        );4989      }),4990      (r.tickFormat = function () {4991        return e;4992      }),4993      (r.copy = function () {4994        return ro(n.copy(), t, e);4995      }),4996      Ji(r, n)4997    );4998  }4999  function io(n) {5000    return new Date(n);5001  }5002  function uo(n) {5003    return JSON.parse(n.responseText);5004  }5005  function oo(n) {5006    var t = fo.createRange();5007    return t.selectNode(fo.body), t.createContextualFragment(n.responseText);5008  }5009  var ao = { version: "3.5.17" },5010    lo = [].slice,5011    co = function (n) {5012      return lo.call(n);5013    },5014    fo = this.document;5015  if (fo)5016    try {5017      co(fo.documentElement.childNodes)[0].nodeType;5018    } catch (so) {5019      co = function (n) {5020        for (var t = n.length, e = new Array(t); t--; ) e[t] = n[t];5021        return e;5022      };5023    }5024  if (5025    (Date.now ||5026      (Date.now = function () {5027        return +new Date();5028      }),5029    fo)5030  )5031    try {5032      fo.createElement("DIV").style.setProperty("opacity", 0, "");5033    } catch (ho) {5034      var po = this.Element.prototype,5035        go = po.setAttribute,5036        vo = po.setAttributeNS,5037        yo = this.CSSStyleDeclaration.prototype,5038        mo = yo.setProperty;5039      (po.setAttribute = function (n, t) {5040        go.call(this, n, t + "");5041      }),5042        (po.setAttributeNS = function (n, t, e) {5043          vo.call(this, n, t, e + "");5044        }),5045        (yo.setProperty = function (n, t, e) {5046          mo.call(this, n, t + "", e);5047        });5048    }5049  (ao.ascending = e),5050    (ao.descending = function (n, t) {5051      return n > t ? -1 : t > n ? 1 : t >= n ? 0 : NaN;5052    }),5053    (ao.min = function (n, t) {5054      var e,5055        r,5056        i = -1,5057        u = n.length;5058      if (1 === arguments.length) {5059        for (; ++i < u; )5060          if (null != (r = n[i]) && r >= r) {5061            e = r;5062            break;5063          }5064        for (; ++i < u; ) null != (r = n[i]) && e > r && (e = r);5065      } else {5066        for (; ++i < u; )5067          if (null != (r = t.call(n, n[i], i)) && r >= r) {5068            e = r;5069            break;5070          }5071        for (; ++i < u; ) null != (r = t.call(n, n[i], i)) && e > r && (e = r);5072      }5073      return e;5074    }),5075    (ao.max = function (n, t) {5076      var e,5077        r,5078        i = -1,5079        u = n.length;5080      if (1 === arguments.length) {5081        for (; ++i < u; )5082          if (null != (r = n[i]) && r >= r) {5083            e = r;5084            break;5085          }5086        for (; ++i < u; ) null != (r = n[i]) && r > e && (e = r);5087      } else {5088        for (; ++i < u; )5089          if (null != (r = t.call(n, n[i], i)) && r >= r) {5090            e = r;5091            break;5092          }5093        for (; ++i < u; ) null != (r = t.call(n, n[i], i)) && r > e && (e = r);5094      }5095      return e;5096    }),5097    (ao.extent = function (n, t) {5098      var e,5099        r,5100        i,5101        u = -1,5102        o = n.length;5103      if (1 === arguments.length) {5104        for (; ++u < o; )5105          if (null != (r = n[u]) && r >= r) {5106            e = i = r;5107            break;5108          }5109        for (; ++u < o; )5110          null != (r = n[u]) && (e > r && (e = r), r > i && (i = r));5111      } else {5112        for (; ++u < o; )5113          if (null != (r = t.call(n, n[u], u)) && r >= r) {5114            e = i = r;5115            break;5116          }5117        for (; ++u < o; )5118          null != (r = t.call(n, n[u], u)) &&5119            (e > r && (e = r), r > i && (i = r));5120      }5121      return [e, i];5122    }),5123    (ao.sum = function (n, t) {5124      var e,5125        r = 0,5126        u = n.length,5127        o = -1;5128      if (1 === arguments.length) for (; ++o < u; ) i((e = +n[o])) && (r += e);5129      else for (; ++o < u; ) i((e = +t.call(n, n[o], o))) && (r += e);5130      return r;5131    }),5132    (ao.mean = function (n, t) {5133      var e,5134        u = 0,5135        o = n.length,5136        a = -1,5137        l = o;5138      if (1 === arguments.length)5139        for (; ++a < o; ) i((e = r(n[a]))) ? (u += e) : --l;5140      else for (; ++a < o; ) i((e = r(t.call(n, n[a], a)))) ? (u += e) : --l;5141      return l ? u / l : void 0;5142    }),5143    (ao.quantile = function (n, t) {5144      var e = (n.length - 1) * t + 1,5145        r = Math.floor(e),5146        i = +n[r - 1],5147        u = e - r;5148      return u ? i + u * (n[r] - i) : i;5149    }),5150    (ao.median = function (n, t) {5151      var u,5152        o = [],5153        a = n.length,5154        l = -1;5155      if (1 === arguments.length)5156        for (; ++l < a; ) i((u = r(n[l]))) && o.push(u);5157      else for (; ++l < a; ) i((u = r(t.call(n, n[l], l)))) && o.push(u);5158      return o.length ? ao.quantile(o.sort(e), 0.5) : void 0;5159    }),5160    (ao.variance = function (n, t) {5161      var e,5162        u,5163        o = n.length,5164        a = 0,5165        l = 0,5166        c = -1,5167        f = 0;5168      if (1 === arguments.length)5169        for (; ++c < o; )5170          i((e = r(n[c]))) && ((u = e - a), (a += u / ++f), (l += u * (e - a)));5171      else5172        for (; ++c < o; )5173          i((e = r(t.call(n, n[c], c)))) &&5174            ((u = e - a), (a += u / ++f), (l += u * (e - a)));5175      return f > 1 ? l / (f - 1) : void 0;5176    }),5177    (ao.deviation = function () {5178      var n = ao.variance.apply(this, arguments);5179      return n ? Math.sqrt(n) : n;5180    });5181  var Mo = u(e);5182  (ao.bisectLeft = Mo.left),5183    (ao.bisect = ao.bisectRight = Mo.right),5184    (ao.bisector = function (n) {5185      return u(5186        1 === n.length5187          ? function (t, r) {5188              return e(n(t), r);5189            }5190          : n5191      );5192    }),5193    (ao.shuffle = function (n, t, e) {5194      (u = arguments.length) < 3 && ((e = n.length), 2 > u && (t = 0));5195      for (var r, i, u = e - t; u; )5196        (i = (Math.random() * u--) | 0),5197          (r = n[u + t]),5198          (n[u + t] = n[i + t]),5199          (n[i + t] = r);5200      return n;5201    }),5202    (ao.permute = function (n, t) {5203      for (var e = t.length, r = new Array(e); e--; ) r[e] = n[t[e]];5204      return r;5205    }),5206    (ao.pairs = function (n) {5207      for (5208        var t, e = 0, r = n.length - 1, i = n[0], u = new Array(0 > r ? 0 : r);5209        r > e;5210      )5211        u[e] = [(t = i), (i = n[++e])];5212      return u;5213    }),5214    (ao.transpose = function (n) {5215      if (!(i = n.length)) return [];5216      for (var t = -1, e = ao.min(n, o), r = new Array(e); ++t < e; )5217        for (var i, u = -1, a = (r[t] = new Array(i)); ++u < i; )5218          a[u] = n[u][t];5219      return r;5220    }),5221    (ao.zip = function () {5222      return ao.transpose(arguments);5223    }),5224    (ao.keys = function (n) {5225      var t = [];5226      for (var e in n) t.push(e);5227      return t;5228    }),5229    (ao.values = function (n) {5230      var t = [];5231      for (var e in n) t.push(n[e]);5232      return t;5233    }),5234    (ao.entries = function (n) {5235      var t = [];5236      for (var e in n) t.push({ key: e, value: n[e] });5237      return t;5238    }),5239    (ao.merge = function (n) {5240      for (var t, e, r, i = n.length, u = -1, o = 0; ++u < i; )5241        o += n[u].length;5242      for (e = new Array(o); --i >= 0; )5243        for (r = n[i], t = r.length; --t >= 0; ) e[--o] = r[t];5244      return e;5245    });5246  var xo = Math.abs;5247  (ao.range = function (n, t, e) {5248    if (5249      (arguments.length < 3 &&5250        ((e = 1), arguments.length < 2 && ((t = n), (n = 0))),5251      (t - n) / e === 1 / 0)5252    )5253      throw new Error("infinite range");5254    var r,5255      i = [],5256      u = a(xo(e)),5257      o = -1;5258    if (((n *= u), (t *= u), (e *= u), 0 > e))5259      for (; (r = n + e * ++o) > t; ) i.push(r / u);5260    else for (; (r = n + e * ++o) < t; ) i.push(r / u);5261    return i;5262  }),5263    (ao.map = function (n, t) {5264      var e = new c();5265      if (n instanceof c)5266        n.forEach(function (n, t) {5267          e.set(n, t);5268        });5269      else if (Array.isArray(n)) {5270        var r,5271          i = -1,5272          u = n.length;5273        if (1 === arguments.length) for (; ++i < u; ) e.set(i, n[i]);5274        else for (; ++i < u; ) e.set(t.call(n, (r = n[i]), i), r);5275      } else for (var o in n) e.set(o, n[o]);5276      return e;5277    });5278  var bo = "__proto__",5279    _o = "\x00";5280  l(c, {5281    has: h,5282    get: function (n) {5283      return this._[f(n)];5284    },5285    set: function (n, t) {5286      return (this._[f(n)] = t);5287    },5288    remove: p,5289    keys: g,5290    values: function () {5291      var n = [];5292      for (var t in this._) n.push(this._[t]);5293      return n;5294    },5295    entries: function () {5296      var n = [];5297      for (var t in this._) n.push({ key: s(t), value: this._[t] });5298      return n;5299    },5300    size: v,5301    empty: d,5302    forEach: function (n) {5303      for (var t in this._) n.call(this, s(t), this._[t]);5304    },5305  }),5306    (ao.nest = function () {5307      function n(t, o, a) {5308        if (a >= u.length) return r ? r.call(i, o) : e ? o.sort(e) : o;5309        for (5310          var l, f, s, h, p = -1, g = o.length, v = u[a++], d = new c();5311          ++p < g;5312        )5313          (h = d.get((l = v((f = o[p]))))) ? h.push(f) : d.set(l, [f]);5314        return (5315          t5316            ? ((f = t()),5317              (s = function (e, r) {5318                f.set(e, n(t, r, a));5319              }))5320            : ((f = {}),5321              (s = function (e, r) {5322                f[e] = n(t, r, a);5323              })),5324          d.forEach(s),5325          f5326        );5327      }5328      function t(n, e) {5329        if (e >= u.length) return n;5330        var r = [],5331          i = o[e++];5332        return (5333          n.forEach(function (n, i) {5334            r.push({ key: n, values: t(i, e) });5335          }),5336          i5337            ? r.sort(function (n, t) {5338                return i(n.key, t.key);5339              })5340            : r5341        );5342      }5343      var e,5344        r,5345        i = {},5346        u = [],5347        o = [];5348      return (5349        (i.map = function (t, e) {5350          return n(e, t, 0);5351        }),5352        (i.entries = function (e) {5353          return t(n(ao.map, e, 0), 0);5354        }),5355        (i.key = function (n) {5356          return u.push(n), i;5357        }),5358        (i.sortKeys = function (n) {5359          return (o[u.length - 1] = n), i;5360        }),5361        (i.sortValues = function (n) {5362          return (e = n), i;5363        }),5364        (i.rollup = function (n) {5365          return (r = n), i;5366        }),5367        i5368      );5369    }),5370    (ao.set = function (n) {5371      var t = new y();5372      if (n) for (var e = 0, r = n.length; r > e; ++e) t.add(n[e]);5373      return t;5374    }),5375    l(y, {5376      has: h,5377      add: function (n) {5378        return (this._[f((n += ""))] = !0), n;5379      },5380      remove: p,5381      values: g,5382      size: v,5383      empty: d,5384      forEach: function (n) {5385        for (var t in this._) n.call(this, s(t));5386      },5387    }),5388    (ao.behavior = {}),5389    (ao.rebind = function (n, t) {5390      for (var e, r = 1, i = arguments.length; ++r < i; )5391        n[(e = arguments[r])] = M(n, t, t[e]);5392      return n;5393    });5394  var wo = ["webkit", "ms", "moz", "Moz", "o", "O"];5395  (ao.dispatch = function () {5396    for (var n = new _(), t = -1, e = arguments.length; ++t < e; )5397      n[arguments[t]] = w(n);5398    return n;5399  }),5400    (_.prototype.on = function (n, t) {5401      var e = n.indexOf("."),5402        r = "";5403      if ((e >= 0 && ((r = n.slice(e + 1)), (n = n.slice(0, e))), n))5404        return arguments.length < 2 ? this[n].on(r) : this[n].on(r, t);5405      if (2 === arguments.length) {5406        if (null == t)5407          for (n in this) this.hasOwnProperty(n) && this[n].on(r, null);5408        return this;5409      }5410    }),5411    (ao.event = null),5412    (ao.requote = function (n) {5413      return n.replace(So, "\\$&");5414    });5415  var So = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,5416    ko = {}.__proto__5417      ? function (n, t) {5418          n.__proto__ = t;5419        }5420      : function (n, t) {5421          for (var e in t) n[e] = t[e];5422        },5423    No = function (n, t) {5424      return t.querySelector(n);5425    },5426    Eo = function (n, t) {5427      return t.querySelectorAll(n);5428    },5429    Ao = function (n, t) {5430      var e = n.matches || n[x(n, "matchesSelector")];5431      return (Ao = function (n, t) {5432        return e.call(n, t);5433      })(n, t);5434    };5435  "function" == typeof Sizzle &&5436    ((No = function (n, t) {5437      return Sizzle(n, t)[0] || null;5438    }),5439    (Eo = Sizzle),5440    (Ao = Sizzle.matchesSelector)),5441    (ao.selection = function () {5442      return ao.select(fo.documentElement);5443    });5444  var Co = (ao.selection.prototype = []);5445  (Co.select = function (n) {5446    var t,5447      e,5448      r,5449      i,5450      u = [];5451    n = A(n);5452    for (var o = -1, a = this.length; ++o < a; ) {5453      u.push((t = [])), (t.parentNode = (r = this[o]).parentNode);5454      for (var l = -1, c = r.length; ++l < c; )5455        (i = r[l])5456          ? (t.push((e = n.call(i, i.__data__, l, o))),5457            e && "__data__" in i && (e.__data__ = i.__data__))5458          : t.push(null);5459    }5460    return E(u);5461  }),5462    (Co.selectAll = function (n) {5463      var t,5464        e,5465        r = [];5466      n = C(n);5467      for (var i = -1, u = this.length; ++i < u; )5468        for (var o = this[i], a = -1, l = o.length; ++a < l; )5469          (e = o[a]) &&5470            (r.push((t = co(n.call(e, e.__data__, a, i)))), (t.parentNode = e));5471      return E(r);5472    });5473  var zo = "http://www.w3.org/1999/xhtml",5474    Lo = {5475      svg: "http://www.w3.org/2000/svg",5476      xhtml: zo,5477      xlink: "http://www.w3.org/1999/xlink",5478      xml: "http://www.w3.org/XML/1998/namespace",5479      xmlns: "http://www.w3.org/2000/xmlns/",5480    };5481  (ao.ns = {5482    prefix: Lo,5483    qualify: function (n) {5484      var t = n.indexOf(":"),5485        e = n;5486      return (5487        t >= 0 && "xmlns" !== (e = n.slice(0, t)) && (n = n.slice(t + 1)),5488        Lo.hasOwnProperty(e) ? { space: Lo[e], local: n } : n5489      );5490    },5491  }),5492    (Co.attr = function (n, t) {5493      if (arguments.length < 2) {5494        if ("string" == typeof n) {5495          var e = this.node();5496          return (5497            (n = ao.ns.qualify(n)),5498            n.local ? e.getAttributeNS(n.space, n.local) : e.getAttribute(n)5499          );5500        }5501        for (t in n) this.each(z(t, n[t]));5502        return this;5503      }5504      return this.each(z(n, t));5505    }),5506    (Co.classed = function (n, t) {5507      if (arguments.length < 2) {5508        if ("string" == typeof n) {5509          var e = this.node(),5510            r = (n = T(n)).length,5511            i = -1;5512          if ((t = e.classList)) {5513            for (; ++i < r; ) if (!t.contains(n[i])) return !1;5514          } else5515            for (t = e.getAttribute("class"); ++i < r; )5516              if (!q(n[i]).test(t)) return !1;5517          return !0;5518        }5519        for (t in n) this.each(R(t, n[t]));5520        return this;5521      }5522      return this.each(R(n, t));5523    }),5524    (Co.style = function (n, e, r) {5525      var i = arguments.length;5526      if (3 > i) {5527        if ("string" != typeof n) {5528          2 > i && (e = "");5529          for (r in n) this.each(P(r, n[r], e));5530          return this;5531        }5532        if (2 > i) {5533          var u = this.node();5534          return t(u).getComputedStyle(u, null).getPropertyValue(n);5535        }5536        r = "";5537      }5538      return this.each(P(n, e, r));5539    }),5540    (Co.property = function (n, t) {5541      if (arguments.length < 2) {5542        if ("string" == typeof n) return this.node()[n];5543        for (t in n) this.each(U(t, n[t]));5544        return this;5545      }5546      return this.each(U(n, t));5547    }),5548    (Co.text = function (n) {5549      return arguments.length5550        ? this.each(5551            "function" == typeof n5552              ? function () {5553                  var t = n.apply(this, arguments);5554                  this.textContent = null == t ? "" : t;5555                }5556              : null == n5557              ? function () {5558                  this.textContent = "";5559                }5560              : function () {5561                  this.textContent = n;5562                }5563          )5564        : this.node().textContent;5565    }),5566    (Co.html = function (n) {5567      return arguments.length5568        ? this.each(5569            "function" == typeof n5570              ? function () {5571                  var t = n.apply(this, arguments);5572                  this.innerHTML = null == t ? "" : t;5573                }5574              : null == n5575              ? function () {5576                  this.innerHTML = "";5577                }5578              : function () {5579                  this.innerHTML = n;5580                }5581          )5582        : this.node().innerHTML;5583    }),5584    (Co.append = function (n) {5585      return (5586        (n = j(n)),5587        this.select(function () {5588          return this.appendChild(n.apply(this, arguments));5589        })5590      );5591    }),5592    (Co.insert = function (n, t) {5593      return (5594        (n = j(n)),5595        (t = A(t)),5596        this.select(function () {5597          return this.insertBefore(5598            n.apply(this, arguments),5599            t.apply(this, arguments) || null5600          );5601        })5602      );5603    }),5604    (Co.remove = function () {5605      return this.each(F);5606    }),5607    (Co.data = function (n, t) {5608      function e(n, e) {5609        var r,5610          i,5611          u,5612          o = n.length,5613          s = e.length,5614          h = Math.min(o, s),5615          p = new Array(s),5616          g = new Array(s),5617          v = new Array(o);5618        if (t) {5619          var d,5620            y = new c(),5621            m = new Array(o);5622          for (r = -1; ++r < o; )5623            (i = n[r]) &&5624              (y.has((d = t.call(i, i.__data__, r))) ? (v[r] = i) : y.set(d, i),5625              (m[r] = d));5626          for (r = -1; ++r < s; )5627            (i = y.get((d = t.call(e, (u = e[r]), r))))5628              ? i !== !0 && ((p[r] = i), (i.__data__ = u))5629              : (g[r] = H(u)),5630              y.set(d, !0);5631          for (r = -1; ++r < o; ) r in m && y.get(m[r]) !== !0 && (v[r] = n[r]);5632        } else {5633          for (r = -1; ++r < h; )5634            (i = n[r]),5635              (u = e[r]),5636              i ? ((i.__data__ = u), (p[r] = i)) : (g[r] = H(u));5637          for (; s > r; ++r) g[r] = H(e[r]);5638          for (; o > r; ++r) v[r] = n[r];5639        }5640        (g.update = p),5641          (g.parentNode = p.parentNode = v.parentNode = n.parentNode),5642          a.push(g),5643          l.push(p),5644          f.push(v);5645      }5646      var r,5647        i,5648        u = -1,5649        o = this.length;5650      if (!arguments.length) {5651        for (n = new Array((o = (r = this[0]).length)); ++u < o; )5652          (i = r[u]) && (n[u] = i.__data__);5653        return n;5654      }5655      var a = Z([]),5656        l = E([]),5657        f = E([]);5658      if ("function" == typeof n)5659        for (; ++u < o; ) e((r = this[u]), n.call(r, r.parentNode.__data__, u));5660      else for (; ++u < o; ) e((r = this[u]), n);5661      return (5662        (l.enter = function () {5663          return a;5664        }),5665        (l.exit = function () {5666          return f;5667        }),5668        l5669      );5670    }),5671    (Co.datum = function (n) {5672      return arguments.length5673        ? this.property("__data__", n)5674        : this.property("__data__");5675    }),5676    (Co.filter = function (n) {5677      var t,5678        e,5679        r,5680        i = [];5681      "function" != typeof n && (n = O(n));5682      for (var u = 0, o = this.length; o > u; u++) {5683        i.push((t = [])), (t.parentNode = (e = this[u]).parentNode);5684        for (var a = 0, l = e.length; l > a; a++)5685          (r = e[a]) && n.call(r, r.__data__, a, u) && t.push(r);5686      }5687      return E(i);5688    }),5689    (Co.order = function () {5690      for (var n = -1, t = this.length; ++n < t; )5691        for (var e, r = this[n], i = r.length - 1, u = r[i]; --i >= 0; )5692          (e = r[i]) &&5693            (u && u !== e.nextSibling && u.parentNode.insertBefore(e, u),5694            (u = e));5695      return this;5696    }),5697    (Co.sort = function (n) {5698      n = I.apply(this, arguments);5699      for (var t = -1, e = this.length; ++t < e; ) this[t].sort(n);5700      return this.order();5701    }),5702    (Co.each = function (n) {5703      return Y(this, function (t, e, r) {5704        n.call(t, t.__data__, e, r);5705      });5706    }),5707    (Co.call = function (n) {5708      var t = co(arguments);5709      return n.apply((t[0] = this), t), this;5710    }),5711    (Co.empty = function () {5712      return !this.node();5713    }),5714    (Co.node = function () {5715      for (var n = 0, t = this.length; t > n; n++)5716        for (var e = this[n], r = 0, i = e.length; i > r; r++) {5717          var u = e[r];5718          if (u) return u;5719        }5720      return null;5721    }),5722    (Co.size = function () {5723      var n = 0;5724      return (5725        Y(this, function () {5726          ++n;5727        }),5728        n5729      );5730    });5731  var qo = [];5732  (ao.selection.enter = Z),5733    (ao.selection.enter.prototype = qo),5734    (qo.append = Co.append),5735    (qo.empty = Co.empty),5736    (qo.node = Co.node),5737    (qo.call = Co.call),5738    (qo.size = Co.size),5739    (qo.select = function (n) {5740      for (var t, e, r, i, u, o = [], a = -1, l = this.length; ++a < l; ) {5741        (r = (i = this[a]).update),5742          o.push((t = [])),5743          (t.parentNode = i.parentNode);5744        for (var c = -1, f = i.length; ++c < f; )5745          (u = i[c])5746            ? (t.push((r[c] = e = n.call(i.parentNode, u.__data__, c, a))),5747              (e.__data__ = u.__data__))5748            : t.push(null);5749      }5750      return E(o);5751    }),5752    (qo.insert = function (n, t) {5753      return arguments.length < 2 && (t = V(this)), Co.insert.call(this, n, t);5754    }),5755    (ao.select = function (t) {5756      var e;5757      return (5758        "string" == typeof t5759          ? ((e = [No(t, fo)]), (e.parentNode = fo.documentElement))5760          : ((e = [t]), (e.parentNode = n(t))),5761        E([e])5762      );5763    }),5764    (ao.selectAll = function (n) {5765      var t;5766      return (5767        "string" == typeof n5768          ? ((t = co(Eo(n, fo))), (t.parentNode = fo.documentElement))5769          : ((t = co(n)), (t.parentNode = null)),5770        E([t])5771      );5772    }),5773    (Co.on = function (n, t, e) {5774      var r = arguments.length;5775      if (3 > r) {5776        if ("string" != typeof n) {5777          2 > r && (t = !1);5778          for (e in n) this.each(X(e, n[e], t));5779          return this;5780        }5781        if (2 > r) return (r = this.node()["__on" + n]) && r._;5782        e = !1;5783      }5784      return this.each(X(n, t, e));5785    });5786  var To = ao.map({ mouseenter: "mouseover", mouseleave: "mouseout" });5787  fo &&5788    To.forEach(function (n) {5789      "on" + n in fo && To.remove(n);5790    });5791  var Ro,5792    Do = 0;5793  ao.mouse = function (n) {5794    return J(n, k());5795  };5796  var Po = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;5797  (ao.touch = function (n, t, e) {5798    if ((arguments.length < 3 && ((e = t), (t = k().changedTouches)), t))5799      for (var r, i = 0, u = t.length; u > i; ++i)5800        if ((r = t[i]).identifier === e) return J(n, r);5801  }),5802    (ao.behavior.drag = function () {5803      function n() {5804        this.on("mousedown.drag", u).on("touchstart.drag", o);5805      }5806      function e(n, t, e, u, o) {5807        return function () {5808          function a() {5809            var n,5810              e,5811              r = t(h, v);5812            r &&5813              ((n = r[0] - M[0]),5814              (e = r[1] - M[1]),5815              (g |= n | e),5816              (M = r),5817              p({5818                type: "drag",5819                x: r[0] + c[0],5820                y: r[1] + c[1],5821                dx: n,5822                dy: e,5823              }));5824          }5825          function l() {5826            t(h, v) &&5827              (y.on(u + d, null).on(o + d, null), m(g), p({ type: "dragend" }));5828          }5829          var c,5830            f = this,5831            s = ao.event.target.correspondingElement || ao.event.target,5832            h = f.parentNode,5833            p = r.of(f, arguments),5834            g = 0,5835            v = n(),5836            d = ".drag" + (null == v ? "" : "-" + v),5837            y = ao5838              .select(e(s))5839              .on(u + d, a)5840              .on(o + d, l),5841            m = W(s),5842            M = t(h, v);5843          i5844            ? ((c = i.apply(f, arguments)), (c = [c.x - M[0], c.y - M[1]]))5845            : (c = [0, 0]),5846            p({ type: "dragstart" });5847        };5848      }5849      var r = N(n, "drag", "dragstart", "dragend"),5850        i = null,5851        u = e(b, ao.mouse, t, "mousemove", "mouseup"),5852        o = e(G, ao.touch, m, "touchmove", "touchend");5853      return (5854        (n.origin = function (t) {5855          return arguments.length ? ((i = t), n) : i;5856        }),5857        ao.rebind(n, r, "on")5858      );5859    }),5860    (ao.touches = function (n, t) {5861      return (5862        arguments.length < 2 && (t = k().touches),5863        t5864          ? co(t).map(function (t) {5865              var e = J(n, t);5866              return (e.identifier = t.identifier), e;5867            })5868          : []5869      );5870    });5871  var Uo = 1e-6,5872    jo = Uo * Uo,5873    Fo = Math.PI,5874    Ho = 2 * Fo,5875    Oo = Ho - Uo,5876    Io = Fo / 2,5877    Yo = Fo / 180,5878    Zo = 180 / Fo,5879    Vo = Math.SQRT2,5880    Xo = 2,5881    $o = 4;5882  (ao.interpolateZoom = function (n, t) {5883    var e,5884      r,5885      i = n[0],5886      u = n[1],5887      o = n[2],5888      a = t[0],5889      l = t[1],5890      c = t[2],5891      f = a - i,5892      s = l - u,5893      h = f * f + s * s;5894    if (jo > h)5895      (r = Math.log(c / o) / Vo),5896        (e = function (n) {5897          return [i + n * f, u + n * s, o * Math.exp(Vo * n * r)];5898        });5899    else {5900      var p = Math.sqrt(h),5901        g = (c * c - o * o + $o * h) / (2 * o * Xo * p),5902        v = (c * c - o * o - $o * h) / (2 * c * Xo * p),5903        d = Math.log(Math.sqrt(g * g + 1) - g),5904        y = Math.log(Math.sqrt(v * v + 1) - v);5905      (r = (y - d) / Vo),5906        (e = function (n) {5907          var t = n * r,5908            e = rn(d),5909            a = (o / (Xo * p)) * (e * un(Vo * t + d) - en(d));5910          return [i + a * f, u + a * s, (o * e) / rn(Vo * t + d)];5911        });5912    }5913    return (e.duration = 1e3 * r), e;5914  }),5915    (ao.behavior.zoom = function () {5916      function n(n) {5917        n.on(L, s)5918          .on(Wo + ".zoom", p)5919          .on("dblclick.zoom", g)5920          .on(R, h);5921      }5922      function e(n) {5923        return [(n[0] - k.x) / k.k, (n[1] - k.y) / k.k];5924      }5925      function r(n) {5926        return [n[0] * k.k + k.x, n[1] * k.k + k.y];5927      }5928      function i(n) {5929        k.k = Math.max(A[0], Math.min(A[1], n));5930      }5931      function u(n, t) {5932        (t = r(t)), (k.x += n[0] - t[0]), (k.y += n[1] - t[1]);5933      }5934      function o(t, e, r, o) {5935        (t.__chart__ = { x: k.x, y: k.y, k: k.k }),5936          i(Math.pow(2, o)),5937          u((d = e), r),5938          (t = ao.select(t)),5939          C > 0 && (t = t.transition().duration(C)),5940          t.call(n.event);5941      }5942      function a() {5943        b &&5944          b.domain(5945            x5946              .range()5947              .map(function (n) {5948                return (n - k.x) / k.k;5949              })5950              .map(x.invert)5951          ),5952          w &&5953            w.domain(5954              _.range()5955                .map(function (n) {5956                  return (n - k.y) / k.k;5957                })5958                .map(_.invert)5959            );5960      }5961      function l(n) {5962        z++ || n({ type: "zoomstart" });5963      }5964      function c(n) {5965        a(), n({ type: "zoom", scale: k.k, translate: [k.x, k.y] });5966      }5967      function f(n) {5968        --z || (n({ type: "zoomend" }), (d = null));5969      }5970      function s() {5971        function n() {5972          (a = 1), u(ao.mouse(i), h), c(o);5973        }5974        function r() {5975          s.on(q, null).on(T, null), p(a), f(o);5976        }5977        var i = this,5978          o = D.of(i, arguments),5979          a = 0,5980          s = ao.select(t(i)).on(q, n).on(T, r),5981          h = e(ao.mouse(i)),5982          p = W(i);5983        Il.call(i), l(o);5984      }5985      function h() {5986        function n() {5987          var n = ao.touches(g);5988          return (5989            (p = k.k),5990            n.forEach(function (n) {5991              n.identifier in d && (d[n.identifier] = e(n));5992            }),5993            n5994          );5995        }5996        function t() {5997          var t = ao.event.target;5998          ao.select(t).on(x, r).on(b, a), _.push(t);5999          for (var e = ao.event.changedTouches, i = 0, u = e.length; u > i; ++i)6000            d[e[i].identifier] = null;6001          var l = n(),6002            c = Date.now();6003          if (1 === l.length) {6004            if (500 > c - M) {6005              var f = l[0];6006              o(6007                g,6008                f,6009                d[f.identifier],6010                Math.floor(Math.log(k.k) / Math.LN2) + 16011              ),6012                S();6013            }6014            M = c;6015          } else if (l.length > 1) {6016            var f = l[0],6017              s = l[1],6018              h = f[0] - s[0],6019              p = f[1] - s[1];6020            y = h * h + p * p;6021          }6022        }6023        function r() {6024          var n,6025            t,6026            e,6027            r,6028            o = ao.touches(g);6029          Il.call(g);6030          for (var a = 0, l = o.length; l > a; ++a, r = null)6031            if (((e = o[a]), (r = d[e.identifier]))) {6032              if (t) break;6033              (n = e), (t = r);6034            }6035          if (r) {6036            var f = (f = e[0] - n[0]) * f + (f = e[1] - n[1]) * f,6037              s = y && Math.sqrt(f / y);6038            (n = [(n[0] + e[0]) / 2, (n[1] + e[1]) / 2]),6039              (t = [(t[0] + r[0]) / 2, (t[1] + r[1]) / 2]),6040              i(s * p);6041          }6042          (M = null), u(n, t), c(v);6043        }6044        function a() {6045          if (ao.event.touches.length) {6046            for (6047              var t = ao.event.changedTouches, e = 0, r = t.length;6048              r > e;6049              ++e6050            )6051              delete d[t[e].identifier];6052            for (var i in d) return void n();6053          }6054          ao.selectAll(_).on(m, null), w.on(L, s).on(R, h), N(), f(v);6055        }6056        var p,6057          g = this,6058          v = D.of(g, arguments),6059          d = {},6060          y = 0,6061          m = ".zoom-" + ao.event.changedTouches[0].identifier,6062          x = "touchmove" + m,6063          b = "touchend" + m,6064          _ = [],6065          w = ao.select(g),6066          N = W(g);6067        t(), l(v), w.on(L, null).on(R, t);6068      }6069      function p() {6070        var n = D.of(this, arguments);6071        m6072          ? clearTimeout(m)6073          : (Il.call(this), (v = e((d = y || ao.mouse(this)))), l(n)),6074          (m = setTimeout(function () {6075            (m = null), f(n);6076          }, 50)),6077          S(),6078          i(Math.pow(2, 0.002 * Bo()) * k.k),6079          u(d, v),6080          c(n);6081      }6082      function g() {6083        var n = ao.mouse(this),6084          t = Math.log(k.k) / Math.LN2;6085        o(6086          this,6087          n,6088          e(n),6089          ao.event.shiftKey ? Math.ceil(t) - 1 : Math.floor(t) + 16090        );6091      }6092      var v,6093        d,6094        y,6095        m,6096        M,6097        x,6098        b,6099        _,6100        w,6101        k = { x: 0, y: 0, k: 1 },6102        E = [960, 500],6103        A = Jo,6104        C = 250,6105        z = 0,6106        L = "mousedown.zoom",6107        q = "mousemove.zoom",6108        T = "mouseup.zoom",6109        R = "touchstart.zoom",6110        D = N(n, "zoomstart", "zoom", "zoomend");6111      return (6112        Wo ||6113          (Wo =6114            "onwheel" in fo6115              ? ((Bo = function () {6116                  return -ao.event.deltaY * (ao.event.deltaMode ? 120 : 1);6117                }),6118                "wheel")6119              : "onmousewheel" in fo6120              ? ((Bo = function () {6121                  return ao.event.wheelDelta;6122                }),6123                "mousewheel")6124              : ((Bo = function () {6125                  return -ao.event.detail;6126                }),6127                "MozMousePixelScroll")),6128        (n.event = function (n) {6129          n.each(function () {6130            var n = D.of(this, arguments),6131              t = k;6132            Hl6133              ? ao6134                  .select(this)6135                  .transition()6136                  .each("start.zoom", function () {6137                    (k = this.__chart__ || { x: 0, y: 0, k: 1 }), l(n);6138                  })6139                  .tween("zoom:zoom", function () {6140                    var e = E[0],6141                      r = E[1],6142                      i = d ? d[0] : e / 2,6143                      u = d ? d[1] : r / 2,6144                      o = ao.interpolateZoom(6145                        [(i - k.x) / k.k, (u - k.y) / k.k, e / k.k],6146                        [(i - t.x) / t.k, (u - t.y) / t.k, e / t.k]6147                      );6148                    return function (t) {6149                      var r = o(t),6150                        a = e / r[2];6151                      (this.__chart__ = k = {6152                        x: i - r[0] * a,6153                        y: u - r[1] * a,6154                        k: a,6155                      }),6156                        c(n);6157                    };6158                  })6159                  .each("interrupt.zoom", function () {6160                    f(n);6161                  })6162                  .each("end.zoom", function () {6163                    f(n);6164                  })6165              : ((this.__chart__ = k), l(n), c(n), f(n));6166          });6167        }),6168        (n.translate = function (t) {6169          return arguments.length6170            ? ((k = { x: +t[0], y: +t[1], k: k.k }), a(), n)6171            : [k.x, k.y];6172        }),6173        (n.scale = function (t) {6174          return arguments.length6175            ? ((k = { x: k.x, y: k.y, k: null }), i(+t), a(), n)6176            : k.k;6177        }),6178        (n.scaleExtent = function (t) {6179          return arguments.length6180            ? ((A = null == t ? Jo : [+t[0], +t[1]]), n)6181            : A;6182        }),6183        (n.center = function (t) {6184          return arguments.length ? ((y = t && [+t[0], +t[1]]), n) : y;6185        }),6186        (n.size = function (t) {6187          return arguments.length ? ((E = t && [+t[0], +t[1]]), n) : E;6188        }),6189        (n.duration = function (t) {6190          return arguments.length ? ((C = +t), n) : C;6191        }),6192        (n.x = function (t) {6193          return arguments.length6194            ? ((b = t), (x = t.copy()), (k = { x: 0, y: 0, k: 1 }), n)6195            : b;6196        }),6197        (n.y = function (t) {6198          return arguments.length6199            ? ((w = t), (_ = t.copy()), (k = { x: 0, y: 0, k: 1 }), n)6200            : w;6201        }),6202        ao.rebind(n, D, "on")6203      );6204    });6205  var Bo,6206    Wo,6207    Jo = [0, 1 / 0];6208  (ao.color = an),6209    (an.prototype.toString = function () {6210      return this.rgb() + "";6211    }),6212    (ao.hsl = ln);6213  var Go = (ln.prototype = new an());6214  (Go.brighter = function (n) {6215    return (6216      (n = Math.pow(0.7, arguments.length ? n : 1)),6217      new ln(this.h, this.s, this.l / n)6218    );6219  }),6220    (Go.darker = function (n) {6221      return (6222        (n = Math.pow(0.7, arguments.length ? n : 1)),6223        new ln(this.h, this.s, n * this.l)6224      );6225    }),6226    (Go.rgb = function () {6227      return cn(this.h, this.s, this.l);6228    }),6229    (ao.hcl = fn);6230  var Ko = (fn.prototype = new an());6231  (Ko.brighter = function (n) {6232    return new fn(6233      this.h,6234      this.c,6235      Math.min(100, this.l + Qo * (arguments.length ? n : 1))6236    );6237  }),6238    (Ko.darker = function (n) {6239      return new fn(6240        this.h,6241        this.c,6242        Math.max(0, this.l - Qo * (arguments.length ? n : 1))6243      );6244    }),6245    (Ko.rgb = function () {6246      return sn(this.h, this.c, this.l).rgb();6247    }),6248    (ao.lab = hn);6249  var Qo = 18,6250    na = 0.95047,6251    ta = 1,6252    ea = 1.08883,6253    ra = (hn.prototype = new an());6254  (ra.brighter = function (n) {6255    return new hn(6256      Math.min(100, this.l + Qo * (arguments.length ? n : 1)),6257      this.a,6258      this.b6259    );6260  }),6261    (ra.darker = function (n) {6262      return new hn(6263        Math.max(0, this.l - Qo * (arguments.length ? n : 1)),6264        this.a,6265        this.b6266      );6267    }),6268    (ra.rgb = function () {6269      return pn(this.l, this.a, this.b);6270    }),6271    (ao.rgb = mn);6272  var ia = (mn.prototype = new an());6273  (ia.brighter = function (n) {6274    n = Math.pow(0.7, arguments.length ? n : 1);6275    var t = this.r,6276      e = this.g,6277      r = this.b,6278      i = 30;6279    return t || e || r6280      ? (t && i > t && (t = i),6281        e && i > e && (e = i),6282        r && i > r && (r = i),6283        new mn(6284          Math.min(255, t / n),6285          Math.min(255, e / n),6286          Math.min(255, r / n)6287        ))6288      : new mn(i, i, i);6289  }),6290    (ia.darker = function (n) {6291      return (6292        (n = Math.pow(0.7, arguments.length ? n : 1)),6293        new mn(n * this.r, n * this.g, n * this.b)6294      );6295    }),6296    (ia.hsl = function () {6297      return wn(this.r, this.g, this.b);6298    }),6299    (ia.toString = function () {6300      return "#" + bn(this.r) + bn(this.g) + bn(this.b);6301    });6302  var ua = ao.map({6303    aliceblue: 15792383,6304    antiquewhite: 16444375,6305    aqua: 65535,6306    aquamarine: 8388564,6307    azure: 15794175,6308    beige: 16119260,6309    bisque: 16770244,6310    black: 0,6311    blanchedalmond: 16772045,6312    blue: 255,6313    blueviolet: 9055202,6314    brown: 10824234,6315    burlywood: 14596231,6316    cadetblue: 6266528,6317    chartreuse: 8388352,6318    chocolate: 13789470,6319    coral: 16744272,6320    cornflowerblue: 6591981,6321    cornsilk: 16775388,6322    crimson: 14423100,6323    cyan: 65535,6324    darkblue: 139,6325    darkcyan: 35723,6326    darkgoldenrod: 12092939,6327    darkgray: 11119017,6328    darkgreen: 25600,6329    darkgrey: 11119017,6330    darkkhaki: 12433259,6331    darkmagenta: 9109643,6332    darkolivegreen: 5597999,6333    darkorange: 16747520,6334    darkorchid: 10040012,6335    darkred: 9109504,6336    darksalmon: 15308410,6337    darkseagreen: 9419919,6338    darkslateblue: 4734347,6339    darkslategray: 3100495,6340    darkslategrey: 3100495,6341    darkturquoise: 52945,6342    darkviolet: 9699539,6343    deeppink: 16716947,6344    deepskyblue: 49151,6345    dimgray: 6908265,6346    dimgrey: 6908265,6347    dodgerblue: 2003199,6348    firebrick: 11674146,6349    floralwhite: 16775920,6350    forestgreen: 2263842,6351    fuchsia: 16711935,6352    gainsboro: 14474460,6353    ghostwhite: 16316671,6354    gold: 16766720,6355    goldenrod: 14329120,6356    gray: 8421504,6357    green: 32768,6358    greenyellow: 11403055,6359    grey: 8421504,6360    honeydew: 15794160,6361    hotpink: 16738740,6362    indianred: 13458524,6363    indigo: 4915330,6364    ivory: 16777200,6365    khaki: 15787660,6366    lavender: 15132410,6367    lavenderblush: 16773365,6368    lawngreen: 8190976,6369    lemonchiffon: 16775885,6370    lightblue: 11393254,6371    lightcoral: 15761536,6372    lightcyan: 14745599,6373    lightgoldenrodyellow: 16448210,6374    lightgray: 13882323,6375    lightgreen: 9498256,6376    lightgrey: 13882323,6377    lightpink: 16758465,6378    lightsalmon: 16752762,6379    lightseagreen: 2142890,6380    lightskyblue: 8900346,6381    lightslategray: 7833753,6382    lightslategrey: 7833753,6383    lightsteelblue: 11584734,6384    lightyellow: 16777184,6385    lime: 65280,6386    limegreen: 3329330,6387    linen: 16445670,6388    magenta: 16711935,6389    maroon: 8388608,6390    mediumaquamarine: 6737322,6391    mediumblue: 205,6392    mediumorchid: 12211667,6393    mediumpurple: 9662683,6394    mediumseagreen: 3978097,6395    mediumslateblue: 8087790,6396    mediumspringgreen: 64154,6397    mediumturquoise: 4772300,6398    mediumvioletred: 13047173,6399    midnightblue: 1644912,6400    mintcream: 16121850,6401    mistyrose: 16770273,6402    moccasin: 16770229,6403    navajowhite: 16768685,6404    navy: 128,6405    oldlace: 16643558,6406    olive: 8421376,6407    olivedrab: 7048739,6408    orange: 16753920,6409    orangered: 16729344,6410    orchid: 14315734,6411    palegoldenrod: 15657130,6412    palegreen: 10025880,6413    paleturquoise: 11529966,6414    palevioletred: 14381203,6415    papayawhip: 16773077,6416    peachpuff: 16767673,6417    peru: 13468991,6418    pink: 16761035,6419    plum: 14524637,6420    powderblue: 11591910,6421    purple: 8388736,6422    rebeccapurple: 6697881,6423    red: 16711680,6424    rosybrown: 12357519,6425    royalblue: 4286945,6426    saddlebrown: 9127187,6427    salmon: 16416882,6428    sandybrown: 16032864,6429    seagreen: 3050327,6430    seashell: 16774638,6431    sienna: 10506797,6432    silver: 12632256,6433    skyblue: 8900331,6434    slateblue: 6970061,6435    slategray: 7372944,6436    slategrey: 7372944,6437    snow: 16775930,6438    springgreen: 65407,6439    steelblue: 4620980,6440    tan: 13808780,6441    teal: 32896,6442    thistle: 14204888,6443    tomato: 16737095,6444    turquoise: 4251856,6445    violet: 15631086,6446    wheat: 16113331,6447    white: 16777215,6448    whitesmoke: 16119285,6449    yellow: 16776960,6450    yellowgreen: 10145074,6451  });6452  ua.forEach(function (n, t) {6453    ua.set(n, Mn(t));6454  }),6455    (ao.functor = En),6456    (ao.xhr = An(m)),6457    (ao.dsv = function (n, t) {6458      function e(n, e, u) {6459        arguments.length < 3 && ((u = e), (e = null));6460        var o = Cn(n, t, null == e ? r : i(e), u);6461        return (6462          (o.row = function (n) {6463            return arguments.length6464              ? o.response(null == (e = n) ? r : i(n))6465              : e;6466          }),6467          o6468        );6469      }6470      function r(n) {6471        return e.parse(n.responseText);6472      }6473      function i(n) {6474        return function (t) {6475          return e.parse(t.responseText, n);6476        };6477      }6478      function u(t) {6479        return t.map(o).join(n);6480      }6481      function o(n) {6482        return a.test(n) ? '"' + n.replace(/\"/g, '""') + '"' : n;6483      }6484      var a = new RegExp('["' + n + "\n]"),6485        l = n.charCodeAt(0);6486      return (6487        (e.parse = function (n, t) {6488          var r;6489          return e.parseRows(n, function (n, e) {6490            if (r) return r(n, e - 1);6491            var i = new Function(6492              "d",6493              "return {" +6494                n6495                  .map(function (n, t) {6496                    return JSON.stringify(n) + ": d[" + t + "]";6497                  })6498                  .join(",") +6499                "}"6500            );6501            r = t6502              ? function (n, e) {6503                  return t(i(n), e);6504                }6505              : i;6506          });6507        }),6508        (e.parseRows = function (n, t) {6509          function e() {6510            if (f >= c) return o;6511            if (i) return (i = !1), u;6512            var t = f;6513            if (34 === n.charCodeAt(t)) {6514              for (var e = t; e++ < c; )6515                if (34 === n.charCodeAt(e)) {6516                  if (34 !== n.charCodeAt(e + 1)) break;6517                  ++e;6518                }6519              f = e + 2;6520              var r = n.charCodeAt(e + 1);6521              return (6522                13 === r6523                  ? ((i = !0), 10 === n.charCodeAt(e + 2) && ++f)6524                  : 10 === r && (i = !0),6525                n.slice(t + 1, e).replace(/""/g, '"')6526              );6527            }6528            for (; c > f; ) {6529              var r = n.charCodeAt(f++),6530                a = 1;6531              if (10 === r) i = !0;6532              else if (13 === r) (i = !0), 10 === n.charCodeAt(f) && (++f, ++a);6533              else if (r !== l) continue;6534              return n.slice(t, f - a);6535            }6536            return n.slice(t);6537          }6538          for (6539            var r, i, u = {}, o = {}, a = [], c = n.length, f = 0, s = 0;6540            (r = e()) !== o;6541          ) {6542            for (var h = []; r !== u && r !== o; ) h.push(r), (r = e());6543            (t && null == (h = t(h, s++))) || a.push(h);6544          }6545          return a;6546        }),6547        (e.format = function (t) {6548          if (Array.isArray(t[0])) return e.formatRows(t);6549          var r = new y(),6550            i = [];6551          return (6552            t.forEach(function (n) {6553              for (var t in n) r.has(t) || i.push(r.add(t));6554            }),6555            [i.map(o).join(n)]6556              .concat(6557                t.map(function (t) {6558                  return i6559                    .map(function (n) {6560                      return o(t[n]);6561                    })6562                    .join(n);6563                })6564              )6565              .join("\n")6566          );6567        }),6568        (e.formatRows = function (n) {6569          return n.map(u).join("\n");6570        }),6571        e6572      );6573    }),6574    (ao.csv = ao.dsv(",", "text/csv")),6575    (ao.tsv = ao.dsv("	", "text/tab-separated-values"));6576  var oa,6577    aa,6578    la,6579    ca,6580    fa =6581      this[x(this, "requestAnimationFrame")] ||6582      function (n) {6583        setTimeout(n, 17);6584      };6585  (ao.timer = function () {6586    qn.apply(this, arguments);6587  }),6588    (ao.timer.flush = function () {6589      Rn(), Dn();6590    }),6591    (ao.round = function (n, t) {6592      return t ? Math.round(n * (t = Math.pow(10, t))) / t : Math.round(n);6593    });6594  var sa = [6595    "y",6596    "z",6597    "a",6598    "f",6599    "p",6600    "n",6601    "\xb5",6602    "m",6603    "",6604    "k",6605    "M",6606    "G",6607    "T",6608    "P",6609    "E",6610    "Z",6611    "Y",6612  ].map(Un);6613  ao.formatPrefix = function (n, t) {6614    var e = 0;6615    return (6616      (n = +n) &&6617        (0 > n && (n *= -1),6618        t && (n = ao.round(n, Pn(n, t))),6619        (e = 1 + Math.floor(1e-12 + Math.log(n) / Math.LN10)),6620        (e = Math.max(-24, Math.min(24, 3 * Math.floor((e - 1) / 3))))),6621      sa[8 + e / 3]6622    );6623  };6624  var ha = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,6625    pa = ao.map({6626      b: function (n) {6627        return n.toString(2);6628      },6629      c: function (n) {6630        return String.fromCharCode(n);6631      },6632      o: function (n) {6633        return n.toString(8);6634      },6635      x: function (n) {6636        return n.toString(16);6637      },6638      X: function (n) {6639        return n.toString(16).toUpperCase();6640      },6641      g: function (n, t) {6642        return n.toPrecision(t);6643      },6644      e: function (n, t) {6645        return n.toExponential(t);6646      },6647      f: function (n, t) {6648        return n.toFixed(t);6649      },6650      r: function (n, t) {6651        return (n = ao.round(n, Pn(n, t))).toFixed(6652          Math.max(0, Math.min(20, Pn(n * (1 + 1e-15), t)))6653        );6654      },6655    }),6656    ga = (ao.time = {}),6657    va = Date;6658  Hn.prototype = {6659    getDate: function () {6660      return this._.getUTCDate();6661    },6662    getDay: function () {6663      return this._.getUTCDay();6664    },6665    getFullYear: function () {6666      return this._.getUTCFullYear();6667    },6668    getHours: function () {6669      return this._.getUTCHours();6670    },6671    getMilliseconds: function () {6672      return this._.getUTCMilliseconds();6673    },6674    getMinutes: function () {6675      return this._.getUTCMinutes();6676    },6677    getMonth: function () {6678      return this._.getUTCMonth();6679    },6680    getSeconds: function () {6681      return this._.getUTCSeconds();6682    },6683    getTime: function () {6684      return this._.getTime();6685    },6686    getTimezoneOffset: function () {6687      return 0;6688    },6689    valueOf: function () {6690      return this._.valueOf();6691    },6692    setDate: function () {6693      da.setUTCDate.apply(this._, arguments);6694    },6695    setDay: function () {6696      da.setUTCDay.apply(this._, arguments);6697    },6698    setFullYear: function () {6699      da.setUTCFullYear.apply(this._, arguments);6700    },6701    setHours: function () {6702      da.setUTCHours.apply(this._, arguments);6703    },6704    setMilliseconds: function () {6705      da.setUTCMilliseconds.apply(this._, arguments);6706    },6707    setMinutes: function () {6708      da.setUTCMinutes.apply(this._, arguments);6709    },6710    setMonth: function () {6711      da.setUTCMonth.apply(this._, arguments);6712    },6713    setSeconds: function () {6714      da.setUTCSeconds.apply(this._, arguments);6715    },6716    setTime: function () {6717      da.setTime.apply(this._, arguments);6718    },6719  };6720  var da = Date.prototype;6721  (ga.year = On(6722    function (n) {6723      return (n = ga.day(n)), n.setMonth(0, 1), n;6724    },6725    function (n, t) {6726      n.setFullYear(n.getFullYear() + t);6727    },6728    function (n) {6729      return n.getFullYear();6730    }6731  )),6732    (ga.years = ga.year.range),6733    (ga.years.utc = ga.year.utc.range),6734    (ga.day = On(6735      function (n) {6736        var t = new va(2e3, 0);6737        return t.setFullYear(n.getFullYear(), n.getMonth(), n.getDate()), t;6738      },6739      function (n, t) {6740        n.setDate(n.getDate() + t);6741      },6742      function (n) {6743        return n.getDate() - 1;6744      }6745    )),6746    (ga.days = ga.day.range),6747    (ga.days.utc = ga.day.utc.range),6748    (ga.dayOfYear = function (n) {6749      var t = ga.year(n);6750      return Math.floor(6751        (n - t - 6e4 * (n.getTimezoneOffset() - t.getTimezoneOffset())) / 864e56752      );6753    }),6754    [6755      "sunday",6756      "monday",6757      "tuesday",6758      "wednesday",6759      "thursday",6760      "friday",6761      "saturday",6762    ].forEach(function (n, t) {6763      t = 7 - t;6764      var e = (ga[n] = On(6765        function (n) {6766          return (6767            (n = ga.day(n)).setDate(n.getDate() - ((n.getDay() + t) % 7)), n6768          );6769        },6770        function (n, t) {6771          n.setDate(n.getDate() + 7 * Math.floor(t));6772        },6773        function (n) {6774          var e = ga.year(n).getDay();6775          return Math.floor((ga.dayOfYear(n) + ((e + t) % 7)) / 7) - (e !== t);6776        }6777      ));6778      (ga[n + "s"] = e.range),6779        (ga[n + "s"].utc = e.utc.range),6780        (ga[n + "OfYear"] = function (n) {6781          var e = ga.year(n).getDay();6782          return Math.floor((ga.dayOfYear(n) + ((e + t) % 7)) / 7);6783        });6784    }),6785    (ga.week = ga.sunday),6786    (ga.weeks = ga.sunday.range),6787    (ga.weeks.utc = ga.sunday.utc.range),6788    (ga.weekOfYear = ga.sundayOfYear);6789  var ya = { "-": "", _: " ", 0: "0" },6790    ma = /^\s*\d+/,6791    Ma = /^%/;6792  ao.locale = function (n) {6793    return { numberFormat: jn(n), timeFormat: Yn(n) };6794  };6795  var xa = ao.locale({6796    decimal: ".",6797    thousands: ",",6798    grouping: [3],6799    currency: ["$", ""],6800    dateTime: "%a %b %e %X %Y",6801    date: "%m/%d/%Y",6802    time: "%H:%M:%S",6803    periods: ["AM", "PM"],6804    days: [6805      "Sunday",6806      "Monday",6807      "Tuesday",6808      "Wednesday",6809      "Thursday",6810      "Friday",6811      "Saturday",6812    ],6813    shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],6814    months: [6815      "January",6816      "February",6817      "March",6818      "April",6819      "May",6820      "June",6821      "July",6822      "August",6823      "September",6824      "October",6825      "November",6826      "December",6827    ],6828    shortMonths: [6829      "Jan",6830      "Feb",6831      "Mar",6832      "Apr",6833      "May",6834      "Jun",6835      "Jul",6836      "Aug",6837      "Sep",6838      "Oct",6839      "Nov",6840      "Dec",6841    ],6842  });6843  (ao.format = xa.numberFormat),6844    (ao.geo = {}),6845    (ft.prototype = {6846      s: 0,6847      t: 0,6848      add: function (n) {6849        st(n, this.t, ba),6850          st(ba.s, this.s, this),6851          this.s ? (this.t += ba.t) : (this.s = ba.t);6852      },6853      reset: function () {6854        this.s = this.t = 0;6855      },6856      valueOf: function () {6857        return this.s;6858      },6859    });6860  var ba = new ft();6861  ao.geo.stream = function (n, t) {6862    n && _a.hasOwnProperty(n.type) ? _a[n.type](n, t) : ht(n, t);6863  };6864  var _a = {6865      Feature: function (n, t) {6866        ht(n.geometry, t);6867      },6868      FeatureCollection: function (n, t) {6869        for (var e = n.features, r = -1, i = e.length; ++r < i; )6870          ht(e[r].geometry, t);6871      },6872    },6873    wa = {6874      Sphere: function (n, t) {6875        t.sphere();6876      },6877      Point: function (n, t) {6878        (n = n.coordinates), t.point(n[0], n[1], n[2]);6879      },6880      MultiPoint: function (n, t) {6881        for (var e = n.coordinates, r = -1, i = e.length; ++r < i; )6882          (n = e[r]), t.point(n[0], n[1], n[2]);6883      },6884      LineString: function (n, t) {6885        pt(n.coordinates, t, 0);6886      },6887      MultiLineString: function (n, t) {6888        for (var e = n.coordinates, r = -1, i = e.length; ++r < i; )6889          pt(e[r], t, 0);6890      },6891      Polygon: function (n, t) {6892        gt(n.coordinates, t);6893      },6894      MultiPolygon: function (n, t) {6895        for (var e = n.coordinates, r = -1, i = e.length; ++r < i; )6896          gt(e[r], t);6897      },6898      GeometryCollection: function (n, t) {6899        for (var e = n.geometries, r = -1, i = e.length; ++r < i; ) ht(e[r], t);6900      },6901    };6902  ao.geo.area = function (n) {6903    return (Sa = 0), ao.geo.stream(n, Na), Sa;6904  };6905  var Sa,6906    ka = new ft(),6907    Na = {6908      sphere: function () {6909        Sa += 4 * Fo;6910      },6911      point: b,6912      lineStart: b,6913      lineEnd: b,6914      polygonStart: function () {6915        ka.reset(), (Na.lineStart = vt);6916      },6917      polygonEnd: function () {6918        var n = 2 * ka;6919        (Sa += 0 > n ? 4 * Fo + n : n),6920          (Na.lineStart = Na.lineEnd = Na.point = b);6921      },6922    };6923  (ao.geo.bounds = (function () {6924    function n(n, t) {6925      M.push((x = [(f = n), (h = n)])), s > t && (s = t), t > p && (p = t);6926    }6927    function t(t, e) {6928      var r = dt([t * Yo, e * Yo]);6929      if (y) {6930        var i = mt(y, r),6931          u = [i[1], -i[0], 0],6932          o = mt(u, i);6933        bt(o), (o = _t(o));6934        var l = t - g,6935          c = l > 0 ? 1 : -1,6936          v = o[0] * Zo * c,6937          d = xo(l) > 180;6938        if (d ^ (v > c * g && c * t > v)) {6939          var m = o[1] * Zo;6940          m > p && (p = m);6941        } else if (6942          ((v = ((v + 360) % 360) - 180), d ^ (v > c * g && c * t > v))6943        ) {6944          var m = -o[1] * Zo;6945          s > m && (s = m);6946        } else s > e && (s = e), e > p && (p = e);6947        d6948          ? g > t6949            ? a(f, t) > a(f, h) && (h = t)6950            : a(t, h) > a(f, h) && (f = t)6951          : h >= f6952          ? (f > t && (f = t), t > h && (h = t))6953          : t > g6954          ? a(f, t) > a(f, h) && (h = t)6955          : a(t, h) > a(f, h) && (f = t);6956      } else n(t, e);6957      (y = r), (g = t);6958    }6959    function e() {6960      b.point = t;6961    }6962    function r() {6963      (x[0] = f), (x[1] = h), (b.point = n), (y = null);6964    }6965    function i(n, e) {6966      if (y) {6967        var r = n - g;6968        m += xo(r) > 180 ? r + (r > 0 ? 360 : -360) : r;6969      } else (v = n), (d = e);6970      Na.point(n, e), t(n, e);6971    }6972    function u() {6973      Na.lineStart();6974    }6975    function o() {6976      i(v, d),6977        Na.lineEnd(),6978        xo(m) > Uo && (f = -(h = 180)),6979        (x[0] = f),6980        (x[1] = h),6981        (y = null);6982    }6983    function a(n, t) {6984      return (t -= n) < 0 ? t + 360 : t;6985    }6986    function l(n, t) {6987      return n[0] - t[0];6988    }6989    function c(n, t) {6990      return t[0] <= t[1] ? t[0] <= n && n <= t[1] : n < t[0] || t[1] < n;6991    }6992    var f,6993      s,6994      h,6995      p,6996      g,6997      v,6998      d,6999      y,7000      m,7001      M,7002      x,7003      b = {7004        point: n,7005        lineStart: e,7006        lineEnd: r,7007        polygonStart: function () {7008          (b.point = i),7009            (b.lineStart = u),7010            (b.lineEnd = o),7011            (m = 0),7012            Na.polygonStart();7013        },7014        polygonEnd: function () {7015          Na.polygonEnd(),7016            (b.point = n),7017            (b.lineStart = e),7018            (b.lineEnd = r),7019            0 > ka7020              ? ((f = -(h = 180)), (s = -(p = 90)))7021              : m > Uo7022              ? (p = 90)7023              : -Uo > m && (s = -90),7024            (x[0] = f),7025            (x[1] = h);7026        },7027      };7028    return function (n) {7029      (p = h = -(f = s = 1 / 0)), (M = []), ao.geo.stream(n, b);7030      var t = M.length;7031      if (t) {7032        M.sort(l);7033        for (var e, r = 1, i = M[0], u = [i]; t > r; ++r)7034          (e = M[r]),7035            c(e[0], i) || c(e[1], i)7036              ? (a(i[0], e[1]) > a(i[0], i[1]) && (i[1] = e[1]),7037                a(e[0], i[1]) > a(i[0], i[1]) && (i[0] = e[0]))7038              : u.push((i = e));7039        for (7040          var o, e, g = -(1 / 0), t = u.length - 1, r = 0, i = u[t];7041          t >= r;7042          i = e, ++r7043        )7044          (e = u[r]),7045            (o = a(i[1], e[0])) > g && ((g = o), (f = e[0]), (h = i[1]));7046      }7047      return (7048        (M = x = null),7049        f === 1 / 0 || s === 1 / 07050          ? [7051              [NaN, NaN],7052              [NaN, NaN],7053            ]7054          : [7055              [f, s],7056              [h, p],7057            ]7058      );7059    };7060  })()),7061    (ao.geo.centroid = function (n) {7062      (Ea = Aa = Ca = za = La = qa = Ta = Ra = Da = Pa = Ua = 0),7063        ao.geo.stream(n, ja);7064      var t = Da,7065        e = Pa,7066        r = Ua,7067        i = t * t + e * e + r * r;7068      return jo > i &&7069        ((t = qa),7070        (e = Ta),7071        (r = Ra),7072        Uo > Aa && ((t = Ca), (e = za), (r = La)),7073        (i = t * t + e * e + r * r),7074        jo > i)7075        ? [NaN, NaN]7076        : [Math.atan2(e, t) * Zo, tn(r / Math.sqrt(i)) * Zo];7077    });7078  var Ea,7079    Aa,7080    Ca,7081    za,7082    La,7083    qa,7084    Ta,7085    Ra,7086    Da,7087    Pa,7088    Ua,7089    ja = {7090      sphere: b,7091      point: St,7092      lineStart: Nt,7093      lineEnd: Et,7094      polygonStart: function () {7095        ja.lineStart = At;7096      },7097      polygonEnd: function () {7098        ja.lineStart = Nt;7099      },7100    },7101    Fa = Rt(zt, jt, Ht, [-Fo, -Fo / 2]),7102    Ha = 1e9;7103  (ao.geo.clipExtent = function () {7104    var n,7105      t,7106      e,7107      r,7108      i,7109      u,7110      o = {7111        stream: function (n) {7112          return i && (i.valid = !1), (i = u(n)), (i.valid = !0), i;7113        },7114        extent: function (a) {7115          return arguments.length7116            ? ((u = Zt(7117                (n = +a[0][0]),7118                (t = +a[0][1]),7119                (e = +a[1][0]),7120                (r = +a[1][1])7121              )),7122              i && ((i.valid = !1), (i = null)),7123              o)7124            : [7125                [n, t],7126                [e, r],7127              ];7128        },7129      };7130    return o.extent([7131      [0, 0],7132      [960, 500],7133    ]);7134  }),7135    ((ao.geo.conicEqualArea = function () {7136      return Vt(Xt);7137    }).raw = Xt),7138    (ao.geo.albers = function () {7139      return ao.geo7140        .conicEqualArea()7141        .rotate([96, 0])7142        .center([-0.6, 38.7])7143        .parallels([29.5, 45.5])7144        .scale(1070);7145    }),7146    (ao.geo.albersUsa = function () {7147      function n(n) {7148        var u = n[0],7149          o = n[1];7150        return (t = null), e(u, o), t || (r(u, o), t) || i(u, o), t;7151      }7152      var t,7153        e,7154        r,7155        i,7156        u = ao.geo.albers(),7157        o = ao.geo7158          .conicEqualArea()7159          .rotate([154, 0])7160          .center([-2, 58.5])7161          .parallels([55, 65]),7162        a = ao.geo7163          .conicEqualArea()7164          .rotate([157, 0])7165          .center([-3, 19.9])7166          .parallels([8, 18]),7167        l = {7168          point: function (n, e) {7169            t = [n, e];7170          },7171        };7172      return (7173        (n.invert = function (n) {7174          var t = u.scale(),7175            e = u.translate(),7176            r = (n[0] - e[0]) / t,7177            i = (n[1] - e[1]) / t;7178          return (i >= 0.12 && 0.234 > i && r >= -0.425 && -0.214 > r7179            ? o7180            : i >= 0.166 && 0.234 > i && r >= -0.214 && -0.115 > r7181            ? a7182            : u7183          ).invert(n);7184        }),7185        (n.stream = function (n) {7186          var t = u.stream(n),7187            e = o.stream(n),7188            r = a.stream(n);7189          return {7190            point: function (n, i) {7191              t.point(n, i), e.point(n, i), r.point(n, i);7192            },7193            sphere: function () {7194              t.sphere(), e.sphere(), r.sphere();7195            },7196            lineStart: function () {7197              t.lineStart(), e.lineStart(), r.lineStart();7198            },7199            lineEnd: function () {7200              t.lineEnd(), e.lineEnd(), r.lineEnd();7201            },7202            polygonStart: function () {7203              t.polygonStart(), e.polygonStart(), r.polygonStart();7204            },7205            polygonEnd: function () {7206              t.polygonEnd(), e.polygonEnd(), r.polygonEnd();7207            },7208          };7209        }),7210        (n.precision = function (t) {7211          return arguments.length7212            ? (u.precision(t), o.precision(t), a.precision(t), n)7213            : u.precision();7214        }),7215        (n.scale = function (t) {7216          return arguments.length7217            ? (u.scale(t),7218              o.scale(0.35 * t),7219              a.scale(t),7220              n.translate(u.translate()))7221            : u.scale();7222        }),7223        (n.translate = function (t) {7224          if (!arguments.length) return u.translate();7225          var c = u.scale(),7226            f = +t[0],7227            s = +t[1];7228          return (7229            (e = u7230              .translate(t)7231              .clipExtent([7232                [f - 0.455 * c, s - 0.238 * c],7233                [f + 0.455 * c, s + 0.238 * c],7234              ])7235              .stream(l).point),7236            (r = o7237              .translate([f - 0.307 * c, s + 0.201 * c])7238              .clipExtent([7239                [f - 0.425 * c + Uo, s + 0.12 * c + Uo],7240                [f - 0.214 * c - Uo, s + 0.234 * c - Uo],7241              ])7242              .stream(l).point),7243            (i = a7244              .translate([f - 0.205 * c, s + 0.212 * c])7245              .clipExtent([7246                [f - 0.214 * c + Uo, s + 0.166 * c + Uo],7247                [f - 0.115 * c - Uo, s + 0.234 * c - Uo],7248              ])7249              .stream(l).point),7250            n7251          );7252        }),7253        n.scale(1070)7254      );7255    });7256  var Oa,7257    Ia,7258    Ya,7259    Za,7260    Va,7261    Xa,7262    $a = {7263      point: b,7264      lineStart: b,7265      lineEnd: b,7266      polygonStart: function () {7267        (Ia = 0), ($a.lineStart = $t);7268      },7269      polygonEnd: function () {7270        ($a.lineStart = $a.lineEnd = $a.point = b), (Oa += xo(Ia / 2));7271      },7272    },7273    Ba = {7274      point: Bt,7275      lineStart: b,7276      lineEnd: b,7277      polygonStart: b,7278      polygonEnd: b,7279    },7280    Wa = {7281      point: Gt,7282      lineStart: Kt,7283      lineEnd: Qt,7284      polygonStart: function () {7285        Wa.lineStart = ne;7286      },7287      polygonEnd: function () {7288        (Wa.point = Gt), (Wa.lineStart = Kt), (Wa.lineEnd = Qt);7289      },7290    };7291  (ao.geo.path = function () {7292    function n(n) {7293      return (7294        n &&7295          ("function" == typeof a && u.pointRadius(+a.apply(this, arguments)),7296          (o && o.valid) || (o = i(u)),7297          ao.geo.stream(n, o)),7298        u.result()7299      );7300    }7301    function t() {7302      return (o = null), n;7303    }7304    var e,7305      r,7306      i,7307      u,7308      o,7309      a = 4.5;7310    return (7311      (n.area = function (n) {7312        return (Oa = 0), ao.geo.stream(n, i($a)), Oa;7313      }),7314      (n.centroid = function (n) {7315        return (7316          (Ca = za = La = qa = Ta = Ra = Da = Pa = Ua = 0),7317          ao.geo.stream(n, i(Wa)),7318          Ua7319            ? [Da / Ua, Pa / Ua]7320            : Ra7321            ? [qa / Ra, Ta / Ra]7322            : La7323            ? [Ca / La, za / La]7324            : [NaN, NaN]7325        );7326      }),7327      (n.bounds = function (n) {7328        return (7329          (Va = Xa = -(Ya = Za = 1 / 0)),7330          ao.geo.stream(n, i(Ba)),7331          [7332            [Ya, Za],7333            [Va, Xa],7334          ]7335        );7336      }),7337      (n.projection = function (n) {7338        return arguments.length7339          ? ((i = (e = n) ? n.stream || re(n) : m), t())7340          : e;7341      }),7342      (n.context = function (n) {7343        return arguments.length7344          ? ((u = null == (r = n) ? new Wt() : new te(n)),7345            "function" != typeof a && u.pointRadius(a),7346            t())7347          : r;7348      }),7349      (n.pointRadius = function (t) {7350        return arguments.length7351          ? ((a = "function" == typeof t ? t : (u.pointRadius(+t), +t)), n)7352          : a;7353      }),7354      n.projection(ao.geo.albersUsa()).context(null)7355    );7356  }),7357    (ao.geo.transform = function (n) {7358      return {7359        stream: function (t) {7360          var e = new ie(t);7361          for (var r in n) e[r] = n[r];7362          return e;7363        },7364      };7365    }),7366    (ie.prototype = {7367      point: function (n, t) {7368        this.stream.point(n, t);7369      },7370      sphere: function () {7371        this.stream.sphere();7372      },7373      lineStart: function () {7374        this.stream.lineStart();7375      },7376      lineEnd: function () {7377        this.stream.lineEnd();7378      },7379      polygonStart: function () {7380        this.stream.polygonStart();7381      },7382      polygonEnd: function () {7383        this.stream.polygonEnd();7384      },7385    }),7386    (ao.geo.projection = oe),7387    (ao.geo.projectionMutator = ae),7388    ((ao.geo.equirectangular = function () {7389      return oe(ce);7390    }).raw = ce.invert = ce),7391    (ao.geo.rotation = function (n) {7392      function t(t) {7393        return (t = n(t[0] * Yo, t[1] * Yo)), (t[0] *= Zo), (t[1] *= Zo), t;7394      }7395      return (7396        (n = se((n[0] % 360) * Yo, n[1] * Yo, n.length > 2 ? n[2] * Yo : 0)),7397        (t.invert = function (t) {7398          return (7399            (t = n.invert(t[0] * Yo, t[1] * Yo)), (t[0] *= Zo), (t[1] *= Zo), t7400          );7401        }),7402        t7403      );7404    }),7405    (fe.invert = ce),7406    (ao.geo.circle = function () {7407      function n() {7408        var n = "function" == typeof r ? r.apply(this, arguments) : r,7409          t = se(-n[0] * Yo, -n[1] * Yo, 0).invert,7410          i = [];7411        return (7412          e(null, null, 1, {7413            point: function (n, e) {7414              i.push((n = t(n, e))), (n[0] *= Zo), (n[1] *= Zo);7415            },7416          }),7417          { type: "Polygon", coordinates: [i] }7418        );7419      }7420      var t,7421        e,7422        r = [0, 0],7423        i = 6;7424      return (7425        (n.origin = function (t) {7426          return arguments.length ? ((r = t), n) : r;7427        }),7428        (n.angle = function (r) {7429          return arguments.length ? ((e = ve((t = +r) * Yo, i * Yo)), n) : t;7430        }),7431        (n.precision = function (r) {7432          return arguments.length ? ((e = ve(t * Yo, (i = +r) * Yo)), n) : i;7433        }),7434        n.angle(90)7435      );7436    }),7437    (ao.geo.distance = function (n, t) {7438      var e,7439        r = (t[0] - n[0]) * Yo,7440        i = n[1] * Yo,7441        u = t[1] * Yo,7442        o = Math.sin(r),7443        a = Math.cos(r),7444        l = Math.sin(i),7445        c = Math.cos(i),7446        f = Math.sin(u),7447        s = Math.cos(u);7448      return Math.atan2(7449        Math.sqrt((e = s * o) * e + (e = c * f - l * s * a) * e),7450        l * f + c * s * a7451      );7452    }),7453    (ao.geo.graticule = function () {7454      function n() {7455        return { type: "MultiLineString", coordinates: t() };7456      }7457      function t() {7458        return ao7459          .range(Math.ceil(u / d) * d, i, d)7460          .map(h)7461          .concat(ao.range(Math.ceil(c / y) * y, l, y).map(p))7462          .concat(7463            ao7464              .range(Math.ceil(r / g) * g, e, g)7465              .filter(function (n) {7466                return xo(n % d) > Uo;7467              })7468              .map(f)7469          )7470          .concat(7471            ao7472              .range(Math.ceil(a / v) * v, o, v)7473              .filter(function (n) {7474                return xo(n % y) > Uo;7475              })7476              .map(s)7477          );7478      }7479      var e,7480        r,7481        i,7482        u,7483        o,7484        a,7485        l,7486        c,7487        f,7488        s,7489        h,7490        p,7491        g = 10,7492        v = g,7493        d = 90,7494        y = 360,7495        m = 2.5;7496      return (7497        (n.lines = function () {7498          return t().map(function (n) {7499            return { type: "LineString", coordinates: n };7500          });7501        }),7502        (n.outline = function () {7503          return {7504            type: "Polygon",7505            coordinates: [7506              h(u).concat(7507                p(l).slice(1),7508                h(i).reverse().slice(1),7509                p(c).reverse().slice(1)7510              ),7511            ],7512          };7513        }),7514        (n.extent = function (t) {7515          return arguments.length7516            ? n.majorExtent(t).minorExtent(t)7517            : n.minorExtent();7518        }),7519        (n.majorExtent = function (t) {7520          return arguments.length7521            ? ((u = +t[0][0]),7522              (i = +t[1][0]),7523              (c = +t[0][1]),7524              (l = +t[1][1]),7525              u > i && ((t = u), (u = i), (i = t)),7526              c > l && ((t = c), (c = l), (l = t)),7527              n.precision(m))7528            : [7529                [u, c],7530                [i, l],7531              ];7532        }),7533        (n.minorExtent = function (t) {7534          return arguments.length7535            ? ((r = +t[0][0]),7536              (e = +t[1][0]),7537              (a = +t[0][1]),7538              (o = +t[1][1]),7539              r > e && ((t = r), (r = e), (e = t)),7540              a > o && ((t = a), (a = o), (o = t)),7541              n.precision(m))7542            : [7543                [r, a],7544                [e, o],7545              ];7546        }),7547        (n.step = function (t) {7548          return arguments.length ? n.majorStep(t).minorStep(t) : n.minorStep();7549        }),7550        (n.majorStep = function (t) {7551          return arguments.length ? ((d = +t[0]), (y = +t[1]), n) : [d, y];7552        }),7553        (n.minorStep = function (t) {7554          return arguments.length ? ((g = +t[0]), (v = +t[1]), n) : [g, v];7555        }),7556        (n.precision = function (t) {7557          return arguments.length7558            ? ((m = +t),7559              (f = ye(a, o, 90)),7560              (s = me(r, e, m)),7561              (h = ye(c, l, 90)),7562              (p = me(u, i, m)),7563              n)7564            : m;7565        }),7566        n7567          .majorExtent([7568            [-180, -90 + Uo],7569            [180, 90 - Uo],7570          ])7571          .minorExtent([7572            [-180, -80 - Uo],7573            [180, 80 + Uo],7574          ])7575      );7576    }),7577    (ao.geo.greatArc = function () {7578      function n() {7579        return {7580          type: "LineString",7581          coordinates: [7582            t || r.apply(this, arguments),7583            e || i.apply(this, arguments),7584          ],7585        };7586      }7587      var t,7588        e,7589        r = Me,7590        i = xe;7591      return (7592        (n.distance = function () {7593          return ao.geo.distance(7594            t || r.apply(this, arguments),7595            e || i.apply(this, arguments)7596          );7597        }),7598        (n.source = function (e) {7599          return arguments.length7600            ? ((r = e), (t = "function" == typeof e ? null : e), n)7601            : r;7602        }),7603        (n.target = function (t) {7604          return arguments.length7605            ? ((i = t), (e = "function" == typeof t ? null : t), n)7606            : i;7607        }),7608        (n.precision = function () {7609          return arguments.length ? n : 0;7610        }),7611        n7612      );7613    }),7614    (ao.geo.interpolate = function (n, t) {7615      return be(n[0] * Yo, n[1] * Yo, t[0] * Yo, t[1] * Yo);7616    }),7617    (ao.geo.length = function (n) {7618      return (Ja = 0), ao.geo.stream(n, Ga), Ja;7619    });7620  var Ja,7621    Ga = {7622      sphere: b,7623      point: b,7624      lineStart: _e,7625      lineEnd: b,7626      polygonStart: b,7627      polygonEnd: b,7628    },7629    Ka = we(7630      function (n) {7631        return Math.sqrt(2 / (1 + n));7632      },7633      function (n) {7634        return 2 * Math.asin(n / 2);7635      }7636    );7637  (ao.geo.azimuthalEqualArea = function () {7638    return oe(Ka);7639  }).raw = Ka;7640  var Qa = we(function (n) {7641    var t = Math.acos(n);7642    return t && t / Math.sin(t);7643  }, m);7644  ((ao.geo.azimuthalEquidistant = function () {7645    return oe(Qa);7646  }).raw = Qa),7647    ((ao.geo.conicConformal = function () {7648      return Vt(Se);7649    }).raw = Se),7650    ((ao.geo.conicEquidistant = function () {7651      return Vt(ke);7652    }).raw = ke);7653  var nl = we(function (n) {7654    return 1 / n;7655  }, Math.atan);7656  ((ao.geo.gnomonic = function () {7657    return oe(nl);7658  }).raw = nl),7659    (Ne.invert = function (n, t) {7660      return [n, 2 * Math.atan(Math.exp(t)) - Io];7661    }),7662    ((ao.geo.mercator = function () {7663      return Ee(Ne);7664    }).raw = Ne);7665  var tl = we(function () {7666    return 1;7667  }, Math.asin);7668  (ao.geo.orthographic = function () {7669    return oe(tl);7670  }).raw = tl;7671  var el = we(7672    function (n) {7673      return 1 / (1 + n);7674    },7675    function (n) {7676      return 2 * Math.atan(n);7677    }7678  );7679  ((ao.geo.stereographic = function () {7680    return oe(el);7681  }).raw = el),7682    (Ae.invert = function (n, t) {7683      return [-t, 2 * Math.atan(Math.exp(n)) - Io];7684    }),7685    ((ao.geo.transverseMercator = function () {7686      var n = Ee(Ae),7687        t = n.center,7688        e = n.rotate;7689      return (7690        (n.center = function (n) {7691          return n ? t([-n[1], n[0]]) : ((n = t()), [n[1], -n[0]]);7692        }),7693        (n.rotate = function (n) {7694          return n7695            ? e([n[0], n[1], n.length > 2 ? n[2] + 90 : 90])7696            : ((n = e()), [n[0], n[1], n[2] - 90]);7697        }),7698        e([0, 0, 90])7699      );7700    }).raw = Ae),7701    (ao.geom = {}),7702    (ao.geom.hull = function (n) {7703      function t(n) {7704        if (n.length < 3) return [];7705        var t,7706          i = En(e),7707          u = En(r),7708          o = n.length,7709          a = [],7710          l = [];7711        for (t = 0; o > t; t++)7712          a.push([+i.call(this, n[t], t), +u.call(this, n[t], t), t]);7713        for (a.sort(qe), t = 0; o > t; t++) l.push([a[t][0], -a[t][1]]);7714        var c = Le(a),7715          f = Le(l),7716          s = f[0] === c[0],7717          h = f[f.length - 1] === c[c.length - 1],7718          p = [];7719        for (t = c.length - 1; t >= 0; --t) p.push(n[a[c[t]][2]]);7720        for (t = +s; t < f.length - h; ++t) p.push(n[a[f[t]][2]]);7721        return p;7722      }7723      var e = Ce,7724        r = ze;7725      return arguments.length7726        ? t(n)7727        : ((t.x = function (n) {7728            return arguments.length ? ((e = n), t) : e;7729          }),7730          (t.y = function (n) {7731            return arguments.length ? ((r = n), t) : r;7732          }),7733          t);7734    }),7735    (ao.geom.polygon = function (n) {7736      return ko(n, rl), n;7737    });7738  var rl = (ao.geom.polygon.prototype = []);7739  (rl.area = function () {7740    for (var n, t = -1, e = this.length, r = this[e - 1], i = 0; ++t < e; )7741      (n = r), (r = this[t]), (i += n[1] * r[0] - n[0] * r[1]);7742    return 0.5 * i;7743  }),7744    (rl.centroid = function (n) {7745      var t,7746        e,7747        r = -1,7748        i = this.length,7749        u = 0,7750        o = 0,7751        a = this[i - 1];7752      for (arguments.length || (n = -1 / (6 * this.area())); ++r < i; )7753        (t = a),7754          (a = this[r]),7755          (e = t[0] * a[1] - a[0] * t[1]),7756          (u += (t[0] + a[0]) * e),7757          (o += (t[1] + a[1]) * e);7758      return [u * n, o * n];7759    }),7760    (rl.clip = function (n) {7761      for (7762        var t,7763          e,7764          r,7765          i,7766          u,7767          o,7768          a = De(n),7769          l = -1,7770          c = this.length - De(this),7771          f = this[c - 1];7772        ++l < c;7773      ) {7774        for (7775          t = n.slice(),7776            n.length = 0,7777            i = this[l],7778            u = t[(r = t.length - a) - 1],7779            e = -1;7780          ++e < r;7781        )7782          (o = t[e]),7783            Te(o, f, i)7784              ? (Te(u, f, i) || n.push(Re(u, o, f, i)), n.push(o))7785              : Te(u, f, i) && n.push(Re(u, o, f, i)),7786            (u = o);7787        a && n.push(n[0]), (f = i);7788      }7789      return n;7790    });7791  var il,7792    ul,7793    ol,7794    al,7795    ll,7796    cl = [],7797    fl = [];7798  (Ye.prototype.prepare = function () {7799    for (var n, t = this.edges, e = t.length; e--; )7800      (n = t[e].edge), (n.b && n.a) || t.splice(e, 1);7801    return t.sort(Ve), t.length;7802  }),7803    (tr.prototype = {7804      start: function () {7805        return this.edge.l === this.site ? this.edge.a : this.edge.b;7806      },7807      end: function () {7808        return this.edge.l === this.site ? this.edge.b : this.edge.a;7809      },7810    }),7811    (er.prototype = {7812      insert: function (n, t) {7813        var e, r, i;7814        if (n) {7815          if (((t.P = n), (t.N = n.N), n.N && (n.N.P = t), (n.N = t), n.R)) {7816            for (n = n.R; n.L; ) n = n.L;7817            n.L = t;7818          } else n.R = t;7819          e = n;7820        } else7821          this._7822            ? ((n = or(this._)),7823              (t.P = null),7824              (t.N = n),7825              (n.P = n.L = t),7826              (e = n))7827            : ((t.P = t.N = null), (this._ = t), (e = null));7828        for (t.L = t.R = null, t.U = e, t.C = !0, n = t; e && e.C; )7829          (r = e.U),7830            e === r.L7831              ? ((i = r.R),7832                i && i.C7833                  ? ((e.C = i.C = !1), (r.C = !0), (n = r))7834                  : (n === e.R && (ir(this, e), (n = e), (e = n.U)),7835                    (e.C = !1),7836                    (r.C = !0),7837                    ur(this, r)))7838              : ((i = r.L),7839                i && i.C7840                  ? ((e.C = i.C = !1), (r.C = !0), (n = r))7841                  : (n === e.L && (ur(this, e), (n = e), (e = n.U)),7842                    (e.C = !1),7843                    (r.C = !0),7844                    ir(this, r))),7845            (e = n.U);7846        this._.C = !1;7847      },7848      remove: function (n) {7849        n.N && (n.N.P = n.P), n.P && (n.P.N = n.N), (n.N = n.P = null);7850        var t,7851          e,7852          r,7853          i = n.U,7854          u = n.L,7855          o = n.R;7856        if (7857          ((e = u ? (o ? or(o) : u) : o),7858          i ? (i.L === n ? (i.L = e) : (i.R = e)) : (this._ = e),7859          u && o7860            ? ((r = e.C),7861              (e.C = n.C),7862              (e.L = u),7863              (u.U = e),7864              e !== o7865                ? ((i = e.U),7866                  (e.U = n.U),7867                  (n = e.R),7868                  (i.L = n),7869                  (e.R = o),7870                  (o.U = e))7871                : ((e.U = i), (i = e), (n = e.R)))7872            : ((r = n.C), (n = e)),7873          n && (n.U = i),7874          !r)7875        ) {7876          if (n && n.C) return void (n.C = !1);7877          do {7878            if (n === this._) break;7879            if (n === i.L) {7880              if (7881                ((t = i.R),7882                t.C && ((t.C = !1), (i.C = !0), ir(this, i), (t = i.R)),7883                (t.L && t.L.C) || (t.R && t.R.C))7884              ) {7885                (t.R && t.R.C) ||7886                  ((t.L.C = !1), (t.C = !0), ur(this, t), (t = i.R)),7887                  (t.C = i.C),7888                  (i.C = t.R.C = !1),7889                  ir(this, i),7890                  (n = this._);7891                break;7892              }7893            } else if (7894              ((t = i.L),7895              t.C && ((t.C = !1), (i.C = !0), ur(this, i), (t = i.L)),7896              (t.L && t.L.C) || (t.R && t.R.C))7897            ) {7898              (t.L && t.L.C) ||7899                ((t.R.C = !1), (t.C = !0), ir(this, t), (t = i.L)),7900                (t.C = i.C),7901                (i.C = t.L.C = !1),7902                ur(this, i),7903                (n = this._);7904              break;7905            }7906            (t.C = !0), (n = i), (i = i.U);7907          } while (!n.C);7908          n && (n.C = !1);7909        }7910      },7911    }),7912    (ao.geom.voronoi = function (n) {7913      function t(n) {7914        var t = new Array(n.length),7915          r = a[0][0],7916          i = a[0][1],7917          u = a[1][0],7918          o = a[1][1];7919        return (7920          ar(e(n), a).cells.forEach(function (e, a) {7921            var l = e.edges,7922              c = e.site,7923              f = (t[a] = l.length7924                ? l.map(function (n) {7925                    var t = n.start();7926                    return [t.x, t.y];7927                  })7928                : c.x >= r && c.x <= u && c.y >= i && c.y <= o7929                ? [7930                    [r, o],7931                    [u, o],7932                    [u, i],7933                    [r, i],7934                  ]7935                : []);7936            f.point = n[a];7937          }),7938          t7939        );7940      }7941      function e(n) {7942        return n.map(function (n, t) {7943          return {7944            x: Math.round(u(n, t) / Uo) * Uo,7945            y: Math.round(o(n, t) / Uo) * Uo,7946            i: t,7947          };7948        });7949      }7950      var r = Ce,7951        i = ze,7952        u = r,7953        o = i,7954        a = sl;7955      return n7956        ? t(n)7957        : ((t.links = function (n) {7958            return ar(e(n))7959              .edges.filter(function (n) {7960                return n.l && n.r;7961              })7962              .map(function (t) {7963                return { source: n[t.l.i], target: n[t.r.i] };7964              });7965          }),7966          (t.triangles = function (n) {7967            var t = [];7968            return (7969              ar(e(n)).cells.forEach(function (e, r) {7970                for (7971                  var i,7972                    u,7973                    o = e.site,7974                    a = e.edges.sort(Ve),7975                    l = -1,7976                    c = a.length,7977                    f = a[c - 1].edge,7978                    s = f.l === o ? f.r : f.l;7979                  ++l < c;7980                )7981                  (i = f),7982                    (u = s),7983                    (f = a[l].edge),7984                    (s = f.l === o ? f.r : f.l),7985                    r < u.i &&7986                      r < s.i &&7987                      cr(o, u, s) < 0 &&7988                      t.push([n[r], n[u.i], n[s.i]]);7989              }),7990              t7991            );7992          }),7993          (t.x = function (n) {7994            return arguments.length ? ((u = En((r = n))), t) : r;7995          }),7996          (t.y = function (n) {7997            return arguments.length ? ((o = En((i = n))), t) : i;7998          }),7999          (t.clipExtent = function (n) {8000            return arguments.length8001              ? ((a = null == n ? sl : n), t)8002              : a === sl8003              ? null8004              : a;8005          }),8006          (t.size = function (n) {8007            return arguments.length8008              ? t.clipExtent(n && [[0, 0], n])8009              : a === sl8010              ? null8011              : a && a[1];8012          }),8013          t);8014    });8015  var sl = [8016    [-1e6, -1e6],8017    [1e6, 1e6],8018  ];8019  (ao.geom.delaunay = function (n) {8020    return ao.geom.voronoi().triangles(n);8021  }),8022    (ao.geom.quadtree = function (n, t, e, r, i) {8023      function u(n) {8024        function u(n, t, e, r, i, u, o, a) {8025          if (!isNaN(e) && !isNaN(r))8026            if (n.leaf) {8027              var l = n.x,8028                f = n.y;8029              if (null != l)8030                if (xo(l - e) + xo(f - r) < 0.01) c(n, t, e, r, i, u, o, a);8031                else {8032                  var s = n.point;8033                  (n.x = n.y = n.point = null),8034                    c(n, s, l, f, i, u, o, a),8035                    c(n, t, e, r, i, u, o, a);8036                }8037              else (n.x = e), (n.y = r), (n.point = t);8038            } else c(n, t, e, r, i, u, o, a);8039        }8040        function c(n, t, e, r, i, o, a, l) {8041          var c = 0.5 * (i + a),8042            f = 0.5 * (o + l),8043            s = e >= c,8044            h = r >= f,8045            p = (h << 1) | s;8046          (n.leaf = !1),8047            (n = n.nodes[p] || (n.nodes[p] = hr())),8048            s ? (i = c) : (a = c),8049            h ? (o = f) : (l = f),8050            u(n, t, e, r, i, o, a, l);8051        }8052        var f,8053          s,8054          h,8055          p,8056          g,8057          v,8058          d,8059          y,8060          m,8061          M = En(a),8062          x = En(l);8063        if (null != t) (v = t), (d = e), (y = r), (m = i);8064        else if (8065          ((y = m = -(v = d = 1 / 0)), (s = []), (h = []), (g = n.length), o)8066        )8067          for (p = 0; g > p; ++p)8068            (f = n[p]),8069              f.x < v && (v = f.x),8070              f.y < d && (d = f.y),8071              f.x > y && (y = f.x),8072              f.y > m && (m = f.y),8073              s.push(f.x),8074              h.push(f.y);8075        else8076          for (p = 0; g > p; ++p) {8077            var b = +M((f = n[p]), p),8078              _ = +x(f, p);8079            v > b && (v = b),8080              d > _ && (d = _),8081              b > y && (y = b),8082              _ > m && (m = _),8083              s.push(b),8084              h.push(_);8085          }8086        var w = y - v,8087          S = m - d;8088        w > S ? (m = d + w) : (y = v + S);8089        var k = hr();8090        if (8091          ((k.add = function (n) {8092            u(k, n, +M(n, ++p), +x(n, p), v, d, y, m);8093          }),8094          (k.visit = function (n) {8095            pr(n, k, v, d, y, m);8096          }),8097          (k.find = function (n) {8098            return gr(k, n[0], n[1], v, d, y, m);8099          }),8100          (p = -1),8101          null == t)8102        ) {8103          for (; ++p < g; ) u(k, n[p], s[p], h[p], v, d, y, m);8104          --p;8105        } else n.forEach(k.add);8106        return (s = h = n = f = null), k;8107      }8108      var o,8109        a = Ce,8110        l = ze;8111      return (o = arguments.length)8112        ? ((a = fr), (l = sr), 3 === o && ((i = e), (r = t), (e = t = 0)), u(n))8113        : ((u.x = function (n) {8114            return arguments.length ? ((a = n), u) : a;8115          }),8116          (u.y = function (n) {8117            return arguments.length ? ((l = n), u) : l;8118          }),8119          (u.extent = function (n) {8120            return arguments.length8121              ? (null == n8122                  ? (t = e = r = i = null)8123                  : ((t = +n[0][0]),8124                    (e = +n[0][1]),8125                    (r = +n[1][0]),8126                    (i = +n[1][1])),8127                u)8128              : null == t8129              ? null8130              : [8131                  [t, e],8132                  [r, i],8133                ];8134          }),8135          (u.size = function (n) {8136            return arguments.length8137              ? (null == n8138                  ? (t = e = r = i = null)8139                  : ((t = e = 0), (r = +n[0]), (i = +n[1])),8140                u)8141              : null == t8142              ? null8143              : [r - t, i - e];8144          }),8145          u);8146    }),8147    (ao.interpolateRgb = vr),8148    (ao.interpolateObject = dr),8149    (ao.interpolateNumber = yr),8150    (ao.interpolateString = mr);8151  var hl = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,8152    pl = new RegExp(hl.source, "g");8153  (ao.interpolate = Mr),8154    (ao.interpolators = [8155      function (n, t) {8156        var e = typeof t;8157        return ("string" === e8158          ? ua.has(t.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(t)8159            ? vr8160            : mr8161          : t instanceof an8162          ? vr8163          : Array.isArray(t)8164          ? xr8165          : "object" === e && isNaN(t)8166          ? dr8167          : yr)(n, t);8168      },8169    ]),8170    (ao.interpolateArray = xr);8171  var gl = function () {8172      return m;8173    },8174    vl = ao.map({8175      linear: gl,8176      poly: Er,8177      quad: function () {8178        return Sr;8179      },8180      cubic: function () {8181        return kr;8182      },8183      sin: function () {8184        return Ar;8185      },8186      exp: function () {8187        return Cr;8188      },8189      circle: function () {8190        return zr;8191      },8192      elastic: Lr,8193      back: qr,8194      bounce: function () {8195        return Tr;8196      },8197    }),8198    dl = ao.map({8199      in: m,8200      out: _r,8201      "in-out": wr,8202      "out-in": function (n) {8203        return wr(_r(n));8204      },8205    });8206  (ao.ease = function (n) {8207    var t = n.indexOf("-"),8208      e = t >= 0 ? n.slice(0, t) : n,8209      r = t >= 0 ? n.slice(t + 1) : "in";8210    return (8211      (e = vl.get(e) || gl),8212      (r = dl.get(r) || m),8213      br(r(e.apply(null, lo.call(arguments, 1))))8214    );8215  }),8216    (ao.interpolateHcl = Rr),8217    (ao.interpolateHsl = Dr),8218    (ao.interpolateLab = Pr),8219    (ao.interpolateRound = Ur),8220    (ao.transform = function (n) {8221      var t = fo.createElementNS(ao.ns.prefix.svg, "g");8222      return (ao.transform = function (n) {8223        if (null != n) {8224          t.setAttribute("transform", n);8225          var e = t.transform.baseVal.consolidate();8226        }8227        return new jr(e ? e.matrix : yl);8228      })(n);8229    }),8230    (jr.prototype.toString = function () {8231      return (8232        "translate(" +8233        this.translate +8234        ")rotate(" +8235        this.rotate +8236        ")skewX(" +8237        this.skew +8238        ")scale(" +8239        this.scale +8240        ")"8241      );8242    });8243  var yl = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };8244  (ao.interpolateTransform = $r),8245    (ao.layout = {}),8246    (ao.layout.bundle = function () {8247      return function (n) {8248        for (var t = [], e = -1, r = n.length; ++e < r; ) t.push(Jr(n[e]));8249        return t;8250      };8251    }),8252    (ao.layout.chord = function () {8253      function n() {8254        var n,8255          c,8256          s,8257          h,8258          p,8259          g = {},8260          v = [],8261          d = ao.range(u),8262          y = [];8263        for (e = [], r = [], n = 0, h = -1; ++h < u; ) {8264          for (c = 0, p = -1; ++p < u; ) c += i[h][p];8265          v.push(c), y.push(ao.range(u)), (n += c);8266        }8267        for (8268          o &&8269            d.sort(function (n, t) {8270              return o(v[n], v[t]);8271            }),8272            a &&8273              y.forEach(function (n, t) {8274                n.sort(function (n, e) {8275                  return a(i[t][n], i[t][e]);8276                });8277              }),8278            n = (Ho - f * u) / n,8279            c = 0,8280            h = -1;8281          ++h < u;8282        ) {8283          for (s = c, p = -1; ++p < u; ) {8284            var m = d[h],8285              M = y[m][p],8286              x = i[m][M],8287              b = c,8288              _ = (c += x * n);8289            g[m + "-" + M] = {8290              index: m,8291              subindex: M,8292              startAngle: b,8293              endAngle: _,8294              value: x,8295            };8296          }8297          (r[m] = { index: m, startAngle: s, endAngle: c, value: v[m] }),8298            (c += f);8299        }8300        for (h = -1; ++h < u; )8301          for (p = h - 1; ++p < u; ) {8302            var w = g[h + "-" + p],8303              S = g[p + "-" + h];8304            (w.value || S.value) &&8305              e.push(8306                w.value < S.value8307                  ? { source: S, target: w }8308                  : { source: w, target: S }8309              );8310          }8311        l && t();8312      }8313      function t() {8314        e.sort(function (n, t) {8315          return l(8316            (n.source.value + n.target.value) / 2,8317            (t.source.value + t.target.value) / 28318          );8319        });8320      }8321      var e,8322        r,8323        i,8324        u,8325        o,8326        a,8327        l,8328        c = {},8329        f = 0;8330      return (8331        (c.matrix = function (n) {8332          return arguments.length8333            ? ((u = (i = n) && i.length), (e = r = null), c)8334            : i;8335        }),8336        (c.padding = function (n) {8337          return arguments.length ? ((f = n), (e = r = null), c) : f;8338        }),8339        (c.sortGroups = function (n) {8340          return arguments.length ? ((o = n), (e = r = null), c) : o;8341        }),8342        (c.sortSubgroups = function (n) {8343          return arguments.length ? ((a = n), (e = null), c) : a;8344        }),8345        (c.sortChords = function (n) {8346          return arguments.length ? ((l = n), e && t(), c) : l;8347        }),8348        (c.chords = function () {8349          return e || n(), e;8350        }),8351        (c.groups = function () {8352          return r || n(), r;8353        }),8354        c8355      );8356    }),8357    (ao.layout.force = function () {8358      function n(n) {8359        return function (t, e, r, i) {8360          if (t.point !== n) {8361            var u = t.cx - n.x,8362              o = t.cy - n.y,8363              a = i - e,8364              l = u * u + o * o;8365            if (l > (a * a) / y) {8366              if (v > l) {8367                var c = t.charge / l;8368                (n.px -= u * c), (n.py -= o * c);8369              }8370              return !0;8371            }8372            if (t.point && l && v > l) {8373              var c = t.pointCharge / l;8374              (n.px -= u * c), (n.py -= o * c);8375            }8376          }8377          return !t.charge;8378        };8379      }8380      function t(n) {8381        (n.px = ao.event.x), (n.py = ao.event.y), l.resume();8382      }8383      var e,8384        r,8385        i,8386        u,8387        o,8388        a,8389        l = {},8390        c = ao.dispatch("start", "tick", "end"),8391        f = [1, 1],8392        s = 0.9,8393        h = ml,8394        p = Ml,8395        g = -30,8396        v = xl,8397        d = 0.1,8398        y = 0.64,8399        M = [],8400        x = [];8401      return (8402        (l.tick = function () {8403          if ((i *= 0.99) < 0.005)8404            return (e = null), c.end({ type: "end", alpha: (i = 0) }), !0;8405          var t,8406            r,8407            l,8408            h,8409            p,8410            v,8411            y,8412            m,8413            b,8414            _ = M.length,8415            w = x.length;8416          for (r = 0; w > r; ++r)8417            (l = x[r]),8418              (h = l.source),8419              (p = l.target),8420              (m = p.x - h.x),8421              (b = p.y - h.y),8422              (v = m * m + b * b) &&8423                ((v = (i * o[r] * ((v = Math.sqrt(v)) - u[r])) / v),8424                (m *= v),8425                (b *= v),8426                (p.x -=8427                  m *8428                  (y =8429                    h.weight + p.weight8430                      ? h.weight / (h.weight + p.weight)8431                      : 0.5)),8432                (p.y -= b * y),8433                (h.x += m * (y = 1 - y)),8434                (h.y += b * y));8435          if ((y = i * d) && ((m = f[0] / 2), (b = f[1] / 2), (r = -1), y))8436            for (; ++r < _; )8437              (l = M[r]), (l.x += (m - l.x) * y), (l.y += (b - l.y) * y);8438          if (g)8439            for (ri((t = ao.geom.quadtree(M)), i, a), r = -1; ++r < _; )8440              (l = M[r]).fixed || t.visit(n(l));8441          for (r = -1; ++r < _; )8442            (l = M[r]),8443              l.fixed8444                ? ((l.x = l.px), (l.y = l.py))8445                : ((l.x -= (l.px - (l.px = l.x)) * s),8446                  (l.y -= (l.py - (l.py = l.y)) * s));8447          c.tick({ type: "tick", alpha: i });8448        }),8449        (l.nodes = function (n) {8450          return arguments.length ? ((M = n), l) : M;8451        }),8452        (l.links = function (n) {8453          return arguments.length ? ((x = n), l) : x;8454        }),8455        (l.size = function (n) {8456          return arguments.length ? ((f = n), l) : f;8457        }),8458        (l.linkDistance = function (n) {8459          return arguments.length8460            ? ((h = "function" == typeof n ? n : +n), l)8461            : h;8462        }),8463        (l.distance = l.linkDistance),8464        (l.linkStrength = function (n) {8465          return arguments.length8466            ? ((p = "function" == typeof n ? n : +n), l)8467            : p;8468        }),8469        (l.friction = function (n) {8470          return arguments.length ? ((s = +n), l) : s;8471        }),8472        (l.charge = function (n) {8473          return arguments.length8474            ? ((g = "function" == typeof n ? n : +n), l)8475            : g;8476        }),8477        (l.chargeDistance = function (n) {8478          return arguments.length ? ((v = n * n), l) : Math.sqrt(v);8479        }),8480        (l.gravity = function (n) {8481          return arguments.length ? ((d = +n), l) : d;8482        }),8483        (l.theta = function (n) {8484          return arguments.length ? ((y = n * n), l) : Math.sqrt(y);8485        }),8486        (l.alpha = function (n) {8487          return arguments.length8488            ? ((n = +n),8489              i8490                ? n > 08491                  ? (i = n)8492                  : ((e.c = null),8493                    (e.t = NaN),8494                    (e = null),8495                    c.end({ type: "end", alpha: (i = 0) }))8496                : n > 0 &&8497                  (c.start({ type: "start", alpha: (i = n) }),8498                  (e = qn(l.tick))),8499              l)8500            : i;8501        }),8502        (l.start = function () {8503          function n(n, r) {8504            if (!e) {8505              for (e = new Array(i), l = 0; i > l; ++l) e[l] = [];8506              for (l = 0; c > l; ++l) {8507                var u = x[l];8508                e[u.source.index].push(u.target),8509                  e[u.target.index].push(u.source);8510              }8511            }8512            for (var o, a = e[t], l = -1, f = a.length; ++l < f; )8513              if (!isNaN((o = a[l][n]))) return o;8514            return Math.random() * r;8515          }8516          var t,8517            e,8518            r,8519            i = M.length,8520            c = x.length,8521            s = f[0],8522            v = f[1];8523          for (t = 0; i > t; ++t) ((r = M[t]).index = t), (r.weight = 0);8524          for (t = 0; c > t; ++t)8525            (r = x[t]),8526              "number" == typeof r.source && (r.source = M[r.source]),8527              "number" == typeof r.target && (r.target = M[r.target]),8528              ++r.source.weight,8529              ++r.target.weight;8530          for (t = 0; i > t; ++t)8531            (r = M[t]),8532              isNaN(r.x) && (r.x = n("x", s)),8533              isNaN(r.y) && (r.y = n("y", v)),8534              isNaN(r.px) && (r.px = r.x),8535              isNaN(r.py) && (r.py = r.y);8536          if (((u = []), "function" == typeof h))8537            for (t = 0; c > t; ++t) u[t] = +h.call(this, x[t], t);8538          else for (t = 0; c > t; ++t) u[t] = h;8539          if (((o = []), "function" == typeof p))8540            for (t = 0; c > t; ++t) o[t] = +p.call(this, x[t], t);8541          else for (t = 0; c > t; ++t) o[t] = p;8542          if (((a = []), "function" == typeof g))8543            for (t = 0; i > t; ++t) a[t] = +g.call(this, M[t], t);8544          else for (t = 0; i > t; ++t) a[t] = g;8545          return l.resume();8546        }),8547        (l.resume = function () {8548          return l.alpha(0.1);8549        }),8550        (l.stop = function () {8551          return l.alpha(0);8552        }),8553        (l.drag = function () {8554          return (8555            r ||8556              (r = ao.behavior8557                .drag()8558                .origin(m)8559                .on("dragstart.force", Qr)8560                .on("drag.force", t)8561                .on("dragend.force", ni)),8562            arguments.length8563              ? void this.on("mouseover.force", ti)8564                  .on("mouseout.force", ei)8565                  .call(r)8566              : r8567          );8568        }),8569        ao.rebind(l, c, "on")8570      );8571    });8572  var ml = 20,8573    Ml = 1,8574    xl = 1 / 0;8575  (ao.layout.hierarchy = function () {8576    function n(i) {8577      var u,8578        o = [i],8579        a = [];8580      for (i.depth = 0; null != (u = o.pop()); )8581        if ((a.push(u), (c = e.call(n, u, u.depth)) && (l = c.length))) {8582          for (var l, c, f; --l >= 0; )8583            o.push((f = c[l])), (f.parent = u), (f.depth = u.depth + 1);8584          r && (u.value = 0), (u.children = c);8585        } else r && (u.value = +r.call(n, u, u.depth) || 0), delete u.children;8586      return (8587        oi(i, function (n) {8588          var e, i;8589          t && (e = n.children) && e.sort(t),8590            r && (i = n.parent) && (i.value += n.value);8591        }),8592        a8593      );8594    }8595    var t = ci,8596      e = ai,8597      r = li;8598    return (8599      (n.sort = function (e) {8600        return arguments.length ? ((t = e), n) : t;8601      }),8602      (n.children = function (t) {8603        return arguments.length ? ((e = t), n) : e;8604      }),8605      (n.value = function (t) {8606        return arguments.length ? ((r = t), n) : r;8607      }),8608      (n.revalue = function (t) {8609        return (8610          r &&8611            (ui(t, function (n) {8612              n.children && (n.value = 0);8613            }),8614            oi(t, function (t) {8615              var e;8616              t.children || (t.value = +r.call(n, t, t.depth) || 0),8617                (e = t.parent) && (e.value += t.value);8618            })),8619          t8620        );8621      }),8622      n8623    );8624  }),8625    (ao.layout.partition = function () {8626      function n(t, e, r, i) {8627        var u = t.children;8628        if (8629          ((t.x = e),8630          (t.y = t.depth * i),8631          (t.dx = r),8632          (t.dy = i),8633          u && (o = u.length))8634        ) {8635          var o,8636            a,8637            l,8638            c = -1;8639          for (r = t.value ? r / t.value : 0; ++c < o; )8640            n((a = u[c]), e, (l = a.value * r), i), (e += l);8641        }8642      }8643      function t(n) {8644        var e = n.children,8645          r = 0;8646        if (e && (i = e.length))8647          for (var i, u = -1; ++u < i; ) r = Math.max(r, t(e[u]));8648        return 1 + r;8649      }8650      function e(e, u) {8651        var o = r.call(this, e, u);8652        return n(o[0], 0, i[0], i[1] / t(o[0])), o;8653      }8654      var r = ao.layout.hierarchy(),8655        i = [1, 1];8656      return (8657        (e.size = function (n) {8658          return arguments.length ? ((i = n), e) : i;8659        }),8660        ii(e, r)8661      );8662    }),8663    (ao.layout.pie = function () {8664      function n(o) {8665        var a,8666          l = o.length,8667          c = o.map(function (e, r) {8668            return +t.call(n, e, r);8669          }),8670          f = +("function" == typeof r ? r.apply(this, arguments) : r),8671          s = ("function" == typeof i ? i.apply(this, arguments) : i) - f,8672          h = Math.min(8673            Math.abs(s) / l,8674            +("function" == typeof u ? u.apply(this, arguments) : u)8675          ),8676          p = h * (0 > s ? -1 : 1),8677          g = ao.sum(c),8678          v = g ? (s - l * p) / g : 0,8679          d = ao.range(l),8680          y = [];8681        return (8682          null != e &&8683            d.sort(8684              e === bl8685                ? function (n, t) {8686                    return c[t] - c[n];8687                  }8688                : function (n, t) {8689                    return e(o[n], o[t]);8690                  }8691            ),8692          d.forEach(function (n) {8693            y[n] = {8694              data: o[n],8695              value: (a = c[n]),8696              startAngle: f,8697              endAngle: (f += a * v + p),8698              padAngle: h,8699            };8700          }),8701          y8702        );8703      }8704      var t = Number,8705        e = bl,8706        r = 0,8707        i = Ho,8708        u = 0;8709      return (8710        (n.value = function (e) {8711          return arguments.length ? ((t = e), n) : t;8712        }),8713        (n.sort = function (t) {8714          return arguments.length ? ((e = t), n) : e;8715        }),8716        (n.startAngle = function (t) {8717          return arguments.length ? ((r = t), n) : r;8718        }),8719        (n.endAngle = function (t) {8720          return arguments.length ? ((i = t), n) : i;8721        }),8722        (n.padAngle = function (t) {8723          return arguments.length ? ((u = t), n) : u;8724        }),8725        n8726      );8727    });8728  var bl = {};8729  ao.layout.stack = function () {8730    function n(a, l) {8731      if (!(h = a.length)) return a;8732      var c = a.map(function (e, r) {8733          return t.call(n, e, r);8734        }),8735        f = c.map(function (t) {8736          return t.map(function (t, e) {8737            return [u.call(n, t, e), o.call(n, t, e)];8738          });8739        }),8740        s = e.call(n, f, l);8741      (c = ao.permute(c, s)), (f = ao.permute(f, s));8742      var h,8743        p,8744        g,8745        v,8746        d = r.call(n, f, l),8747        y = c[0].length;8748      for (g = 0; y > g; ++g)8749        for (i.call(n, c[0][g], (v = d[g]), f[0][g][1]), p = 1; h > p; ++p)8750          i.call(n, c[p][g], (v += f[p - 1][g][1]), f[p][g][1]);8751      return a;8752    }8753    var t = m,8754      e = gi,8755      r = vi,8756      i = pi,8757      u = si,8758      o = hi;8759    return (8760      (n.values = function (e) {8761        return arguments.length ? ((t = e), n) : t;8762      }),8763      (n.order = function (t) {8764        return arguments.length8765          ? ((e = "function" == typeof t ? t : _l.get(t) || gi), n)8766          : e;8767      }),8768      (n.offset = function (t) {8769        return arguments.length8770          ? ((r = "function" == typeof t ? t : wl.get(t) || vi), n)8771          : r;8772      }),8773      (n.x = function (t) {8774        return arguments.length ? ((u = t), n) : u;8775      }),8776      (n.y = function (t) {8777        return arguments.length ? ((o = t), n) : o;8778      }),8779      (n.out = function (t) {8780        return arguments.length ? ((i = t), n) : i;8781      }),8782      n8783    );8784  };8785  var _l = ao.map({8786      "inside-out": function (n) {8787        var t,8788          e,8789          r = n.length,8790          i = n.map(di),8791          u = n.map(yi),8792          o = ao.range(r).sort(function (n, t) {8793            return i[n] - i[t];8794          }),8795          a = 0,8796          l = 0,8797          c = [],8798          f = [];8799        for (t = 0; r > t; ++t)8800          (e = o[t]),8801            l > a ? ((a += u[e]), c.push(e)) : ((l += u[e]), f.push(e));8802        return f.reverse().concat(c);8803      },8804      reverse: function (n) {8805        return ao.range(n.length).reverse();8806      },8807      default: gi,8808    }),8809    wl = ao.map({8810      silhouette: function (n) {8811        var t,8812          e,8813          r,8814          i = n.length,8815          u = n[0].length,8816          o = [],8817          a = 0,8818          l = [];8819        for (e = 0; u > e; ++e) {8820          for (t = 0, r = 0; i > t; t++) r += n[t][e][1];8821          r > a && (a = r), o.push(r);8822        }8823        for (e = 0; u > e; ++e) l[e] = (a - o[e]) / 2;8824        return l;8825      },8826      wiggle: function (n) {8827        var t,8828          e,8829          r,8830          i,8831          u,8832          o,8833          a,8834          l,8835          c,8836          f = n.length,8837          s = n[0],8838          h = s.length,8839          p = [];8840        for (p[0] = l = c = 0, e = 1; h > e; ++e) {8841          for (t = 0, i = 0; f > t; ++t) i += n[t][e][1];8842          for (t = 0, u = 0, a = s[e][0] - s[e - 1][0]; f > t; ++t) {8843            for (r = 0, o = (n[t][e][1] - n[t][e - 1][1]) / (2 * a); t > r; ++r)8844              o += (n[r][e][1] - n[r][e - 1][1]) / a;8845            u += o * n[t][e][1];8846          }8847          (p[e] = l -= i ? (u / i) * a : 0), c > l && (c = l);8848        }8849        for (e = 0; h > e; ++e) p[e] -= c;8850        return p;8851      },8852      expand: function (n) {8853        var t,8854          e,8855          r,8856          i = n.length,8857          u = n[0].length,8858          o = 1 / i,8859          a = [];8860        for (e = 0; u > e; ++e) {8861          for (t = 0, r = 0; i > t; t++) r += n[t][e][1];8862          if (r) for (t = 0; i > t; t++) n[t][e][1] /= r;8863          else for (t = 0; i > t; t++) n[t][e][1] = o;8864        }8865        for (e = 0; u > e; ++e) a[e] = 0;8866        return a;8867      },8868      zero: vi,8869    });8870  (ao.layout.histogram = function () {8871    function n(n, u) {8872      for (8873        var o,8874          a,8875          l = [],8876          c = n.map(e, this),8877          f = r.call(this, c, u),8878          s = i.call(this, f, c, u),8879          u = -1,8880          h = c.length,8881          p = s.length - 1,8882          g = t ? 1 : 1 / h;8883        ++u < p;8884      )8885        (o = l[u] = []), (o.dx = s[u + 1] - (o.x = s[u])), (o.y = 0);8886      if (p > 0)8887        for (u = -1; ++u < h; )8888          (a = c[u]),8889            a >= f[0] &&8890              a <= f[1] &&8891              ((o = l[ao.bisect(s, a, 1, p) - 1]), (o.y += g), o.push(n[u]));8892      return l;8893    }8894    var t = !0,8895      e = Number,8896      r = bi,8897      i = Mi;8898    return (8899      (n.value = function (t) {8900        return arguments.length ? ((e = t), n) : e;8901      }),8902      (n.range = function (t) {8903        return arguments.length ? ((r = En(t)), n) : r;8904      }),8905      (n.bins = function (t) {8906        return arguments.length8907          ? ((i =8908              "number" == typeof t8909                ? function (n) {8910                    return xi(n, t);8911                  }8912                : En(t)),8913            n)8914          : i;8915      }),8916      (n.frequency = function (e) {8917        return arguments.length ? ((t = !!e), n) : t;8918      }),8919      n8920    );8921  }),8922    (ao.layout.pack = function () {8923      function n(n, u) {8924        var o = e.call(this, n, u),8925          a = o[0],8926          l = i[0],8927          c = i[1],8928          f =8929            null == t8930              ? Math.sqrt8931              : "function" == typeof t8932              ? t8933              : function () {8934                  return t;8935                };8936        if (8937          ((a.x = a.y = 0),8938          oi(a, function (n) {8939            n.r = +f(n.value);8940          }),8941          oi(a, Ni),8942          r)8943        ) {8944          var s = (r * (t ? 1 : Math.max((2 * a.r) / l, (2 * a.r) / c))) / 2;8945          oi(a, function (n) {8946            n.r += s;8947          }),8948            oi(a, Ni),8949            oi(a, function (n) {8950              n.r -= s;8951            });8952        }8953        return (8954          Ci(8955            a,8956            l / 2,8957            c / 2,8958            t ? 1 : 1 / Math.max((2 * a.r) / l, (2 * a.r) / c)8959          ),8960          o8961        );8962      }8963      var t,8964        e = ao.layout.hierarchy().sort(_i),8965        r = 0,8966        i = [1, 1];8967      return (8968        (n.size = function (t) {8969          return arguments.length ? ((i = t), n) : i;8970        }),8971        (n.radius = function (e) {8972          return arguments.length8973            ? ((t = null == e || "function" == typeof e ? e : +e), n)8974            : t;8975        }),8976        (n.padding = function (t) {8977          return arguments.length ? ((r = +t), n) : r;8978        }),8979        ii(n, e)8980      );8981    }),8982    (ao.layout.tree = function () {8983      function n(n, i) {8984        var f = o.call(this, n, i),8985          s = f[0],8986          h = t(s);8987        if ((oi(h, e), (h.parent.m = -h.z), ui(h, r), c)) ui(s, u);8988        else {8989          var p = s,8990            g = s,8991            v = s;8992          ui(s, function (n) {8993            n.x < p.x && (p = n),8994              n.x > g.x && (g = n),8995              n.depth > v.depth && (v = n);8996          });8997          var d = a(p, g) / 2 - p.x,8998            y = l[0] / (g.x + a(g, p) / 2 + d),8999            m = l[1] / (v.depth || 1);9000          ui(s, function (n) {9001            (n.x = (n.x + d) * y), (n.y = n.depth * m);9002          });9003        }9004        return f;9005      }9006      function t(n) {9007        for (9008          var t, e = { A: null, children: [n] }, r = [e];9009          null != (t = r.pop());9010        )9011          for (var i, u = t.children, o = 0, a = u.length; a > o; ++o)9012            r.push(9013              ((u[o] = i = {9014                _: u[o],9015                parent: t,9016                children: ((i = u[o].children) && i.slice()) || [],9017                A: null,9018                a: null,9019                z: 0,9020                m: 0,9021                c: 0,9022                s: 0,9023                t: null,9024                i: o,9025              }).a = i)9026            );9027        return e.children[0];9028      }9029      function e(n) {9030        var t = n.children,9031          e = n.parent.children,9032          r = n.i ? e[n.i - 1] : null;9033        if (t.length) {9034          Di(n);9035          var u = (t[0].z + t[t.length - 1].z) / 2;9036          r ? ((n.z = r.z + a(n._, r._)), (n.m = n.z - u)) : (n.z = u);9037        } else r && (n.z = r.z + a(n._, r._));9038        n.parent.A = i(n, r, n.parent.A || e[0]);9039      }9040      function r(n) {9041        (n._.x = n.z + n.parent.m), (n.m += n.parent.m);9042      }9043      function i(n, t, e) {9044        if (t) {9045          for (9046            var r,9047              i = n,9048              u = n,9049              o = t,9050              l = i.parent.children[0],9051              c = i.m,9052              f = u.m,9053              s = o.m,9054              h = l.m;9055            (o = Ti(o)), (i = qi(i)), o && i;9056          )9057            (l = qi(l)),9058              (u = Ti(u)),9059              (u.a = n),9060              (r = o.z + s - i.z - c + a(o._, i._)),9061              r > 0 && (Ri(Pi(o, n, e), n, r), (c += r), (f += r)),9062              (s += o.m),9063              (c += i.m),9064              (h += l.m),9065              (f += u.m);9066          o && !Ti(u) && ((u.t = o), (u.m += s - f)),9067            i && !qi(l) && ((l.t = i), (l.m += c - h), (e = n));9068        }9069        return e;9070      }9071      function u(n) {9072        (n.x *= l[0]), (n.y = n.depth * l[1]);9073      }9074      var o = ao.layout.hierarchy().sort(null).value(null),9075        a = Li,9076        l = [1, 1],9077        c = null;9078      return (9079        (n.separation = function (t) {9080          return arguments.length ? ((a = t), n) : a;9081        }),9082        (n.size = function (t) {9083          return arguments.length9084            ? ((c = null == (l = t) ? u : null), n)9085            : c9086            ? null9087            : l;9088        }),9089        (n.nodeSize = function (t) {9090          return arguments.length9091            ? ((c = null == (l = t) ? null : u), n)9092            : c9093            ? l9094            : null;9095        }),9096        ii(n, o)9097      );9098    }),9099    (ao.layout.cluster = function () {9100      function n(n, u) {9101        var o,9102          a = t.call(this, n, u),9103          l = a[0],9104          c = 0;9105        oi(l, function (n) {9106          var t = n.children;9107          t && t.length9108            ? ((n.x = ji(t)), (n.y = Ui(t)))9109            : ((n.x = o ? (c += e(n, o)) : 0), (n.y = 0), (o = n));9110        });9111        var f = Fi(l),9112          s = Hi(l),9113          h = f.x - e(f, s) / 2,9114          p = s.x + e(s, f) / 2;9115        return (9116          oi(9117            l,9118            i9119              ? function (n) {9120                  (n.x = (n.x - l.x) * r[0]), (n.y = (l.y - n.y) * r[1]);9121                }9122              : function (n) {9123                  (n.x = ((n.x - h) / (p - h)) * r[0]),9124                    (n.y = (1 - (l.y ? n.y / l.y : 1)) * r[1]);9125                }9126          ),9127          a9128        );9129      }9130      var t = ao.layout.hierarchy().sort(null).value(null),9131        e = Li,9132        r = [1, 1],9133        i = !1;9134      return (9135        (n.separation = function (t) {9136          return arguments.length ? ((e = t), n) : e;9137        }),9138        (n.size = function (t) {9139          return arguments.length ? ((i = null == (r = t)), n) : i ? null : r;9140        }),9141        (n.nodeSize = function (t) {9142          return arguments.length ? ((i = null != (r = t)), n) : i ? r : null;9143        }),9144        ii(n, t)9145      );9146    }),9147    (ao.layout.treemap = function () {9148      function n(n, t) {9149        for (var e, r, i = -1, u = n.length; ++i < u; )9150          (r = (e = n[i]).value * (0 > t ? 0 : t)),9151            (e.area = isNaN(r) || 0 >= r ? 0 : r);9152      }9153      function t(e) {9154        var u = e.children;9155        if (u && u.length) {9156          var o,9157            a,9158            l,9159            c = s(e),9160            f = [],9161            h = u.slice(),9162            g = 1 / 0,9163            v =9164              "slice" === p9165                ? c.dx9166                : "dice" === p9167                ? c.dy9168                : "slice-dice" === p9169                ? 1 & e.depth9170                  ? c.dy9171                  : c.dx9172                : Math.min(c.dx, c.dy);9173          for (n(h, (c.dx * c.dy) / e.value), f.area = 0; (l = h.length) > 0; )9174            f.push((o = h[l - 1])),9175              (f.area += o.area),9176              "squarify" !== p || (a = r(f, v)) <= g9177                ? (h.pop(), (g = a))9178                : ((f.area -= f.pop().area),9179                  i(f, v, c, !1),9180                  (v = Math.min(c.dx, c.dy)),9181                  (f.length = f.area = 0),9182                  (g = 1 / 0));9183          f.length && (i(f, v, c, !0), (f.length = f.area = 0)), u.forEach(t);9184        }9185      }9186      function e(t) {9187        var r = t.children;9188        if (r && r.length) {9189          var u,9190            o = s(t),9191            a = r.slice(),9192            l = [];9193          for (n(a, (o.dx * o.dy) / t.value), l.area = 0; (u = a.pop()); )9194            l.push(u),9195              (l.area += u.area),9196              null != u.z &&9197                (i(l, u.z ? o.dx : o.dy, o, !a.length),9198                (l.length = l.area = 0));9199          r.forEach(e);9200        }9201      }9202      function r(n, t) {9203        for (9204          var e, r = n.area, i = 0, u = 1 / 0, o = -1, a = n.length;9205          ++o < a;9206        )9207          (e = n[o].area) && (u > e && (u = e), e > i && (i = e));9208        return (9209          (r *= r),9210          (t *= t),9211          r ? Math.max((t * i * g) / r, r / (t * u * g)) : 1 / 09212        );9213      }9214      function i(n, t, e, r) {9215        var i,9216          u = -1,9217          o = n.length,9218          a = e.x,9219          c = e.y,9220          f = t ? l(n.area / t) : 0;9221        if (t == e.dx) {9222          for ((r || f > e.dy) && (f = e.dy); ++u < o; )9223            (i = n[u]),9224              (i.x = a),9225              (i.y = c),9226              (i.dy = f),9227              (a += i.dx = Math.min(e.x + e.dx - a, f ? l(i.area / f) : 0));9228          (i.z = !0), (i.dx += e.x + e.dx - a), (e.y += f), (e.dy -= f);9229        } else {9230          for ((r || f > e.dx) && (f = e.dx); ++u < o; )9231            (i = n[u]),9232              (i.x = a),9233              (i.y = c),9234              (i.dx = f),9235              (c += i.dy = Math.min(e.y + e.dy - c, f ? l(i.area / f) : 0));9236          (i.z = !1), (i.dy += e.y + e.dy - c), (e.x += f), (e.dx -= f);9237        }9238      }9239      function u(r) {9240        var i = o || a(r),9241          u = i[0];9242        return (9243          (u.x = u.y = 0),9244          u.value ? ((u.dx = c[0]), (u.dy = c[1])) : (u.dx = u.dy = 0),9245          o && a.revalue(u),9246          n([u], (u.dx * u.dy) / u.value),9247          (o ? e : t)(u),9248          h && (o = i),9249          i9250        );9251      }9252      var o,9253        a = ao.layout.hierarchy(),9254        l = Math.round,9255        c = [1, 1],9256        f = null,9257        s = Oi,9258        h = !1,9259        p = "squarify",9260        g = 0.5 * (1 + Math.sqrt(5));9261      return (9262        (u.size = function (n) {9263          return arguments.length ? ((c = n), u) : c;9264        }),9265        (u.padding = function (n) {9266          function t(t) {9267            var e = n.call(u, t, t.depth);9268            return null == e9269              ? Oi(t)9270              : Ii(t, "number" == typeof e ? [e, e, e, e] : e);9271          }9272          function e(t) {9273            return Ii(t, n);9274          }9275          if (!arguments.length) return f;9276          var r;9277          return (9278            (s =9279              null == (f = n)9280                ? Oi9281                : "function" == (r = typeof n)9282                ? t9283                : "number" === r9284                ? ((n = [n, n, n, n]), e)9285                : e),9286            u9287          );9288        }),9289        (u.round = function (n) {9290          return arguments.length9291            ? ((l = n ? Math.round : Number), u)9292            : l != Number;9293        }),9294        (u.sticky = function (n) {9295          return arguments.length ? ((h = n), (o = null), u) : h;9296        }),9297        (u.ratio = function (n) {9298          return arguments.length ? ((g = n), u) : g;9299        }),9300        (u.mode = function (n) {9301          return arguments.length ? ((p = n + ""), u) : p;9302        }),9303        ii(u, a)9304      );9305    }),9306    (ao.random = {9307      normal: function (n, t) {9308        var e = arguments.length;9309        return (9310          2 > e && (t = 1),9311          1 > e && (n = 0),9312          function () {9313            var e, r, i;9314            do9315              (e = 2 * Math.random() - 1),9316                (r = 2 * Math.random() - 1),9317                (i = e * e + r * r);9318            while (!i || i > 1);9319            return n + t * e * Math.sqrt((-2 * Math.log(i)) / i);9320          }9321        );9322      },9323      logNormal: function () {9324        var n = ao.random.normal.apply(ao, arguments);9325        return function () {9326          return Math.exp(n());9327        };9328      },9329      bates: function (n) {9330        var t = ao.random.irwinHall(n);9331        return function () {9332          return t() / n;9333        };9334      },9335      irwinHall: function (n) {9336        return function () {9337          for (var t = 0, e = 0; n > e; e++) t += Math.random();9338          return t;9339        };9340      },9341    }),9342    (ao.scale = {});9343  var Sl = { floor: m, ceil: m };9344  ao.scale.linear = function () {9345    return Wi([0, 1], [0, 1], Mr, !1);9346  };9347  var kl = { s: 1, g: 1, p: 1, r: 1, e: 1 };9348  ao.scale.log = function () {9349    return ru(ao.scale.linear().domain([0, 1]), 10, !0, [1, 10]);9350  };9351  var Nl = ao.format(".0e"),9352    El = {9353      floor: function (n) {9354        return -Math.ceil(-n);9355      },9356      ceil: function (n) {9357        return -Math.floor(-n);9358      },9359    };9360  (ao.scale.pow = function () {9361    return iu(ao.scale.linear(), 1, [0, 1]);9362  }),9363    (ao.scale.sqrt = function () {9364      return ao.scale.pow().exponent(0.5);9365    }),9366    (ao.scale.ordinal = function () {9367      return ou([], { t: "range", a: [[]] });9368    }),9369    (ao.scale.category10 = function () {9370      return ao.scale.ordinal().range(Al);9371    }),9372    (ao.scale.category20 = function () {9373      return ao.scale.ordinal().range(Cl);9374    }),9375    (ao.scale.category20b = function () {9376      return ao.scale.ordinal().range(zl);9377    }),9378    (ao.scale.category20c = function () {9379      return ao.scale.ordinal().range(Ll);9380    });9381  var Al = [9382      2062260,9383      16744206,9384      2924588,9385      14034728,9386      9725885,9387      9197131,9388      14907330,9389      8355711,9390      12369186,9391      1556175,9392    ].map(xn),9393    Cl = [9394      2062260,9395      11454440,9396      16744206,9397      16759672,9398      2924588,9399      10018698,9400      14034728,9401      16750742,9402      9725885,9403      12955861,9404      9197131,9405      12885140,9406      14907330,9407      16234194,9408      8355711,9409      13092807,9410      12369186,9411      14408589,9412      1556175,9413      10410725,9414    ].map(xn),9415    zl = [9416      3750777,9417      5395619,9418      7040719,9419      10264286,9420      6519097,9421      9216594,9422      11915115,9423      13556636,9424      9202993,9425      12426809,9426      15186514,9427      15190932,9428      8666169,9429      11356490,9430      14049643,9431      15177372,9432      8077683,9433      10834324,9434      13528509,9435      14589654,9436    ].map(xn),9437    Ll = [9438      3244733,9439      7057110,9440      10406625,9441      13032431,9442      15095053,9443      16616764,9444      16625259,9445      16634018,9446      3253076,9447      7652470,9448      10607003,9449      13101504,9450      7695281,9451      10394312,9452      12369372,9453      14342891,9454      6513507,9455      9868950,9456      12434877,9457      14277081,9458    ].map(xn);9459  (ao.scale.quantile = function () {9460    return au([], []);9461  }),9462    (ao.scale.quantize = function () {9463      return lu(0, 1, [0, 1]);9464    }),9465    (ao.scale.threshold = function () {9466      return cu([0.5], [0, 1]);9467    }),9468    (ao.scale.identity = function () {9469      return fu([0, 1]);9470    }),9471    (ao.svg = {}),9472    (ao.svg.arc = function () {9473      function n() {9474        var n = Math.max(0, +e.apply(this, arguments)),9475          c = Math.max(0, +r.apply(this, arguments)),9476          f = o.apply(this, arguments) - Io,9477          s = a.apply(this, arguments) - Io,9478          h = Math.abs(s - f),9479          p = f > s ? 0 : 1;9480        if ((n > c && ((g = c), (c = n), (n = g)), h >= Oo))9481          return t(c, p) + (n ? t(n, 1 - p) : "") + "Z";9482        var g,9483          v,9484          d,9485          y,9486          m,9487          M,9488          x,9489          b,9490          _,9491          w,9492          S,9493          k,9494          N = 0,9495          E = 0,9496          A = [];9497        if (9498          ((y = (+l.apply(this, arguments) || 0) / 2) &&9499            ((d =9500              u === ql ? Math.sqrt(n * n + c * c) : +u.apply(this, arguments)),9501            p || (E *= -1),9502            c && (E = tn((d / c) * Math.sin(y))),9503            n && (N = tn((d / n) * Math.sin(y)))),9504          c)9505        ) {9506          (m = c * Math.cos(f + E)),9507            (M = c * Math.sin(f + E)),9508            (x = c * Math.cos(s - E)),9509            (b = c * Math.sin(s - E));9510          var C = Math.abs(s - f - 2 * E) <= Fo ? 0 : 1;9511          if (E && (yu(m, M, x, b) === p) ^ C) {9512            var z = (f + s) / 2;9513            (m = c * Math.cos(z)), (M = c * Math.sin(z)), (x = b = null);9514          }9515        } else m = M = 0;9516        if (n) {9517          (_ = n * Math.cos(s - N)),9518            (w = n * Math.sin(s - N)),9519            (S = n * Math.cos(f + N)),9520            (k = n * Math.sin(f + N));9521          var L = Math.abs(f - s + 2 * N) <= Fo ? 0 : 1;9522          if (N && (yu(_, w, S, k) === 1 - p) ^ L) {9523            var q = (f + s) / 2;9524            (_ = n * Math.cos(q)), (w = n * Math.sin(q)), (S = k = null);9525          }9526        } else _ = w = 0;9527        if (9528          h > Uo &&9529          (g = Math.min(Math.abs(c - n) / 2, +i.apply(this, arguments))) > 0.0019530        ) {9531          v = (c > n) ^ p ? 0 : 1;9532          var T = g,9533            R = g;9534          if (Fo > h) {9535            var D =9536                null == S9537                  ? [_, w]9538                  : null == x9539                  ? [m, M]9540                  : Re([m, M], [S, k], [x, b], [_, w]),9541              P = m - D[0],9542              U = M - D[1],9543              j = x - D[0],9544              F = b - D[1],9545              H =9546                1 /9547                Math.sin(9548                  Math.acos(9549                    (P * j + U * F) /9550                      (Math.sqrt(P * P + U * U) * Math.sqrt(j * j + F * F))9551                  ) / 29552                ),9553              O = Math.sqrt(D[0] * D[0] + D[1] * D[1]);9554            (R = Math.min(g, (n - O) / (H - 1))),9555              (T = Math.min(g, (c - O) / (H + 1)));9556          }9557          if (null != x) {9558            var I = mu(null == S ? [_, w] : [S, k], [m, M], c, T, p),9559              Y = mu([x, b], [_, w], c, T, p);9560            g === T9561              ? A.push(9562                  "M",9563                  I[0],9564                  "A",9565                  T,9566                  ",",9567                  T,9568                  " 0 0,",9569                  v,9570                  " ",9571                  I[1],9572                  "A",9573                  c,9574                  ",",9575                  c,9576                  " 0 ",9577                  (1 - p) ^ yu(I[1][0], I[1][1], Y[1][0], Y[1][1]),9578                  ",",9579                  p,9580                  " ",9581                  Y[1],9582                  "A",9583                  T,9584                  ",",9585                  T,9586                  " 0 0,",9587                  v,9588                  " ",9589                  Y[0]9590                )9591              : A.push("M", I[0], "A", T, ",", T, " 0 1,", v, " ", Y[0]);9592          } else A.push("M", m, ",", M);9593          if (null != S) {9594            var Z = mu([m, M], [S, k], n, -R, p),9595              V = mu([_, w], null == x ? [m, M] : [x, b], n, -R, p);9596            g === R9597              ? A.push(9598                  "L",9599                  V[0],9600                  "A",9601                  R,9602                  ",",9603                  R,9604                  " 0 0,",9605                  v,9606                  " ",9607                  V[1],9608                  "A",9609                  n,9610                  ",",9611                  n,9612                  " 0 ",9613                  p ^ yu(V[1][0], V[1][1], Z[1][0], Z[1][1]),9614                  ",",9615                  1 - p,9616                  " ",9617                  Z[1],9618                  "A",9619                  R,9620                  ",",9621                  R,9622                  " 0 0,",9623                  v,9624                  " ",9625                  Z[0]9626                )9627              : A.push("L", V[0], "A", R, ",", R, " 0 0,", v, " ", Z[0]);9628          } else A.push("L", _, ",", w);9629        } else9630          A.push("M", m, ",", M),9631            null != x &&9632              A.push("A", c, ",", c, " 0 ", C, ",", p, " ", x, ",", b),9633            A.push("L", _, ",", w),9634            null != S &&9635              A.push("A", n, ",", n, " 0 ", L, ",", 1 - p, " ", S, ",", k);9636        return A.push("Z"), A.join("");9637      }9638      function t(n, t) {9639        return (9640          "M0," +9641          n +9642          "A" +9643          n +9644          "," +9645          n +9646          " 0 1," +9647          t +9648          " 0," +9649          -n +9650          "A" +9651          n +9652          "," +9653          n +9654          " 0 1," +9655          t +9656          " 0," +9657          n9658        );9659      }9660      var e = hu,9661        r = pu,9662        i = su,9663        u = ql,9664        o = gu,9665        a = vu,9666        l = du;9667      return (9668        (n.innerRadius = function (t) {9669          return arguments.length ? ((e = En(t)), n) : e;9670        }),9671        (n.outerRadius = function (t) {9672          return arguments.length ? ((r = En(t)), n) : r;9673        }),9674        (n.cornerRadius = function (t) {9675          return arguments.length ? ((i = En(t)), n) : i;9676        }),9677        (n.padRadius = function (t) {9678          return arguments.length ? ((u = t == ql ? ql : En(t)), n) : u;9679        }),9680        (n.startAngle = function (t) {9681          return arguments.length ? ((o = En(t)), n) : o;9682        }),9683        (n.endAngle = function (t) {9684          return arguments.length ? ((a = En(t)), n) : a;9685        }),9686        (n.padAngle = function (t) {9687          return arguments.length ? ((l = En(t)), n) : l;9688        }),9689        (n.centroid = function () {9690          var n = (+e.apply(this, arguments) + +r.apply(this, arguments)) / 2,9691            t =9692              (+o.apply(this, arguments) + +a.apply(this, arguments)) / 2 - Io;9693          return [Math.cos(t) * n, Math.sin(t) * n];9694        }),9695        n9696      );9697    });9698  var ql = "auto";9699  ao.svg.line = function () {9700    return Mu(m);9701  };9702  var Tl = ao.map({9703    linear: xu,9704    "linear-closed": bu,9705    step: _u,9706    "step-before": wu,9707    "step-after": Su,9708    basis: zu,9709    "basis-open": Lu,9710    "basis-closed": qu,9711    bundle: Tu,9712    cardinal: Eu,9713    "cardinal-open": ku,9714    "cardinal-closed": Nu,9715    monotone: Fu,9716  });9717  Tl.forEach(function (n, t) {9718    (t.key = n), (t.closed = /-closed$/.test(n));9719  });9720  var Rl = [0, 2 / 3, 1 / 3, 0],9721    Dl = [0, 1 / 3, 2 / 3, 0],9722    Pl = [0, 1 / 6, 2 / 3, 1 / 6];9723  (ao.svg.line.radial = function () {9724    var n = Mu(Hu);9725    return (n.radius = n.x), delete n.x, (n.angle = n.y), delete n.y, n;9726  }),9727    (wu.reverse = Su),9728    (Su.reverse = wu),9729    (ao.svg.area = function () {9730      return Ou(m);9731    }),9732    (ao.svg.area.radial = function () {9733      var n = Ou(Hu);9734      return (9735        (n.radius = n.x),9736        delete n.x,9737        (n.innerRadius = n.x0),9738        delete n.x0,9739        (n.outerRadius = n.x1),9740        delete n.x1,9741        (n.angle = n.y),9742        delete n.y,9743        (n.startAngle = n.y0),9744        delete n.y0,9745        (n.endAngle = n.y1),9746        delete n.y1,9747        n9748      );9749    }),9750    (ao.svg.chord = function () {9751      function n(n, a) {9752        var l = t(this, u, n, a),9753          c = t(this, o, n, a);9754        return (9755          "M" +9756          l.p0 +9757          r(l.r, l.p1, l.a1 - l.a0) +9758          (e(l, c)9759            ? i(l.r, l.p1, l.r, l.p0)9760            : i(l.r, l.p1, c.r, c.p0) +9761              r(c.r, c.p1, c.a1 - c.a0) +9762              i(c.r, c.p1, l.r, l.p0)) +9763          "Z"9764        );9765      }9766      function t(n, t, e, r) {9767        var i = t.call(n, e, r),9768          u = a.call(n, i, r),9769          o = l.call(n, i, r) - Io,9770          f = c.call(n, i, r) - Io;9771        return {9772          r: u,9773          a0: o,9774          a1: f,9775          p0: [u * Math.cos(o), u * Math.sin(o)],9776          p1: [u * Math.cos(f), u * Math.sin(f)],9777        };9778      }9779      function e(n, t) {9780        return n.a0 == t.a0 && n.a1 == t.a1;9781      }9782      function r(n, t, e) {9783        return "A" + n + "," + n + " 0 " + +(e > Fo) + ",1 " + t;9784      }9785      function i(n, t, e, r) {9786        return "Q 0,0 " + r;9787      }9788      var u = Me,9789        o = xe,9790        a = Iu,9791        l = gu,9792        c = vu;9793      return (9794        (n.radius = function (t) {9795          return arguments.length ? ((a = En(t)), n) : a;9796        }),9797        (n.source = function (t) {9798          return arguments.length ? ((u = En(t)), n) : u;9799        }),9800        (n.target = function (t) {9801          return arguments.length ? ((o = En(t)), n) : o;9802        }),9803        (n.startAngle = function (t) {9804          return arguments.length ? ((l = En(t)), n) : l;9805        }),9806        (n.endAngle = function (t) {9807          return arguments.length ? ((c = En(t)), n) : c;9808        }),9809        n9810      );9811    }),9812    (ao.svg.diagonal = function () {9813      function n(n, i) {9814        var u = t.call(this, n, i),9815          o = e.call(this, n, i),9816          a = (u.y + o.y) / 2,9817          l = [u, { x: u.x, y: a }, { x: o.x, y: a }, o];9818        return (9819          (l = l.map(r)), "M" + l[0] + "C" + l[1] + " " + l[2] + " " + l[3]9820        );9821      }9822      var t = Me,9823        e = xe,9824        r = Yu;9825      return (9826        (n.source = function (e) {9827          return arguments.length ? ((t = En(e)), n) : t;9828        }),9829        (n.target = function (t) {9830          return arguments.length ? ((e = En(t)), n) : e;9831        }),9832        (n.projection = function (t) {9833          return arguments.length ? ((r = t), n) : r;9834        }),9835        n9836      );9837    }),9838    (ao.svg.diagonal.radial = function () {9839      var n = ao.svg.diagonal(),9840        t = Yu,9841        e = n.projection;9842      return (9843        (n.projection = function (n) {9844          return arguments.length ? e(Zu((t = n))) : t;9845        }),9846        n9847      );9848    }),9849    (ao.svg.symbol = function () {9850      function n(n, r) {9851        return (Ul.get(t.call(this, n, r)) || $u)(e.call(this, n, r));9852      }9853      var t = Xu,9854        e = Vu;9855      return (9856        (n.type = function (e) {9857          return arguments.length ? ((t = En(e)), n) : t;9858        }),9859        (n.size = function (t) {9860          return arguments.length ? ((e = En(t)), n) : e;9861        }),9862        n9863      );9864    });9865  var Ul = ao.map({9866    circle: $u,9867    cross: function (n) {9868      var t = Math.sqrt(n / 5) / 2;9869      return (9870        "M" +9871        -3 * t +9872        "," +9873        -t +9874        "H" +9875        -t +9876        "V" +9877        -3 * t +9878        "H" +9879        t +9880        "V" +9881        -t +9882        "H" +9883        3 * t +9884        "V" +9885        t +9886        "H" +9887        t +9888        "V" +9889        3 * t +9890        "H" +9891        -t +9892        "V" +9893        t +9894        "H" +9895        -3 * t +9896        "Z"9897      );9898    },9899    diamond: function (n) {9900      var t = Math.sqrt(n / (2 * Fl)),9901        e = t * Fl;9902      return "M0," + -t + "L" + e + ",0 0," + t + " " + -e + ",0Z";9903    },9904    square: function (n) {9905      var t = Math.sqrt(n) / 2;9906      return (9907        "M" +9908        -t +9909        "," +9910        -t +9911        "L" +9912        t +9913        "," +9914        -t +9915        " " +9916        t +9917        "," +9918        t +9919        " " +9920        -t +9921        "," +9922        t +9923        "Z"9924      );9925    },9926    "triangle-down": function (n) {9927      var t = Math.sqrt(n / jl),9928        e = (t * jl) / 2;9929      return "M0," + e + "L" + t + "," + -e + " " + -t + "," + -e + "Z";9930    },9931    "triangle-up": function (n) {9932      var t = Math.sqrt(n / jl),9933        e = (t * jl) / 2;9934      return "M0," + -e + "L" + t + "," + e + " " + -t + "," + e + "Z";9935    },9936  });9937  ao.svg.symbolTypes = Ul.keys();9938  var jl = Math.sqrt(3),9939    Fl = Math.tan(30 * Yo);9940  (Co.transition = function (n) {9941    for (9942      var t,9943        e,9944        r = Hl || ++Zl,9945        i = Ku(n),9946        u = [],9947        o = Ol || { time: Date.now(), ease: Nr, delay: 0, duration: 250 },9948        a = -1,9949        l = this.length;9950      ++a < l;9951    ) {9952      u.push((t = []));9953      for (var c = this[a], f = -1, s = c.length; ++f < s; )9954        (e = c[f]) && Qu(e, f, i, r, o), t.push(e);9955    }9956    return Wu(u, i, r);9957  }),9958    (Co.interrupt = function (n) {9959      return this.each(null == n ? Il : Bu(Ku(n)));9960    });9961  var Hl,9962    Ol,9963    Il = Bu(Ku()),9964    Yl = [],9965    Zl = 0;9966  (Yl.call = Co.call),9967    (Yl.empty = Co.empty),9968    (Yl.node = Co.node),9969    (Yl.size = Co.size),9970    (ao.transition = function (n, t) {9971      return n && n.transition9972        ? Hl9973          ? n.transition(t)9974          : n9975        : ao.selection().transition(n);9976    }),9977    (ao.transition.prototype = Yl),9978    (Yl.select = function (n) {9979      var t,9980        e,9981        r,9982        i = this.id,9983        u = this.namespace,9984        o = [];9985      n = A(n);9986      for (var a = -1, l = this.length; ++a < l; ) {9987        o.push((t = []));9988        for (var c = this[a], f = -1, s = c.length; ++f < s; )9989          (r = c[f]) && (e = n.call(r, r.__data__, f, a))9990            ? ("__data__" in r && (e.__data__ = r.__data__),9991              Qu(e, f, u, i, r[u][i]),9992              t.push(e))9993            : t.push(null);9994      }9995      return Wu(o, u, i);9996    }),9997    (Yl.selectAll = function (n) {9998      var t,9999        e,10000        r,10001        i,10002        u,10003        o = this.id,10004        a = this.namespace,10005        l = [];10006      n = C(n);10007      for (var c = -1, f = this.length; ++c < f; )10008        for (var s = this[c], h = -1, p = s.length; ++h < p; )10009          if ((r = s[h])) {10010            (u = r[a][o]), (e = n.call(r, r.__data__, h, c)), l.push((t = []));10011            for (var g = -1, v = e.length; ++g < v; )10012              (i = e[g]) && Qu(i, g, a, o, u), t.push(i);10013          }10014      return Wu(l, a, o);10015    }),10016    (Yl.filter = function (n) {10017      var t,10018        e,10019        r,10020        i = [];10021      "function" != typeof n && (n = O(n));10022      for (var u = 0, o = this.length; o > u; u++) {10023        i.push((t = []));10024        for (var e = this[u], a = 0, l = e.length; l > a; a++)10025          (r = e[a]) && n.call(r, r.__data__, a, u) && t.push(r);10026      }10027      return Wu(i, this.namespace, this.id);10028    }),10029    (Yl.tween = function (n, t) {10030      var e = this.id,10031        r = this.namespace;10032      return arguments.length < 210033        ? this.node()[r][e].tween.get(n)10034        : Y(10035            this,10036            null == t10037              ? function (t) {10038                  t[r][e].tween.remove(n);10039                }10040              : function (i) {10041                  i[r][e].tween.set(n, t);10042                }10043          );10044    }),10045    (Yl.attr = function (n, t) {10046      function e() {10047        this.removeAttribute(a);10048      }10049      function r() {10050        this.removeAttributeNS(a.space, a.local);10051      }10052      function i(n) {10053        return null == n10054          ? e10055          : ((n += ""),10056            function () {10057              var t,10058                e = this.getAttribute(a);10059              return (10060                e !== n &&10061                ((t = o(e, n)),10062                function (n) {10063                  this.setAttribute(a, t(n));10064                })10065              );10066            });10067      }10068      function u(n) {10069        return null == n10070          ? r10071          : ((n += ""),10072            function () {10073              var t,10074                e = this.getAttributeNS(a.space, a.local);10075              return (10076                e !== n &&10077                ((t = o(e, n)),10078                function (n) {10079                  this.setAttributeNS(a.space, a.local, t(n));10080                })10081              );10082            });10083      }10084      if (arguments.length < 2) {10085        for (t in n) this.attr(t, n[t]);10086        return this;10087      }10088      var o = "transform" == n ? $r : Mr,10089        a = ao.ns.qualify(n);10090      return Ju(this, "attr." + n, t, a.local ? u : i);10091    }),10092    (Yl.attrTween = function (n, t) {10093      function e(n, e) {10094        var r = t.call(this, n, e, this.getAttribute(i));10095        return (10096          r &&10097          function (n) {10098            this.setAttribute(i, r(n));10099          }10100        );10101      }10102      function r(n, e) {10103        var r = t.call(this, n, e, this.getAttributeNS(i.space, i.local));10104        return (10105          r &&10106          function (n) {10107            this.setAttributeNS(i.space, i.local, r(n));10108          }10109        );10110      }10111      var i = ao.ns.qualify(n);10112      return this.tween("attr." + n, i.local ? r : e);10113    }),10114    (Yl.style = function (n, e, r) {10115      function i() {10116        this.style.removeProperty(n);10117      }10118      function u(e) {10119        return null == e10120          ? i10121          : ((e += ""),10122            function () {10123              var i,10124                u = t(this).getComputedStyle(this, null).getPropertyValue(n);10125              return (10126                u !== e &&10127                ((i = Mr(u, e)),10128                function (t) {10129                  this.style.setProperty(n, i(t), r);10130                })10131              );10132            });10133      }10134      var o = arguments.length;10135      if (3 > o) {10136        if ("string" != typeof n) {10137          2 > o && (e = "");10138          for (r in n) this.style(r, n[r], e);10139          return this;10140        }10141        r = "";10142      }10143      return Ju(this, "style." + n, e, u);10144    }),10145    (Yl.styleTween = function (n, e, r) {10146      function i(i, u) {10147        var o = e.call(10148          this,10149          i,10150          u,10151          t(this).getComputedStyle(this, null).getPropertyValue(n)10152        );10153        return (10154          o &&10155          function (t) {10156            this.style.setProperty(n, o(t), r);10157          }10158        );10159      }10160      return arguments.length < 3 && (r = ""), this.tween("style." + n, i);10161    }),10162    (Yl.text = function (n) {10163      return Ju(this, "text", n, Gu);10164    }),10165    (Yl.remove = function () {10166      var n = this.namespace;10167      return this.each("end.transition", function () {10168        var t;10169        this[n].count < 2 && (t = this.parentNode) && t.removeChild(this);10170      });10171    }),10172    (Yl.ease = function (n) {10173      var t = this.id,10174        e = this.namespace;10175      return arguments.length < 110176        ? this.node()[e][t].ease10177        : ("function" != typeof n && (n = ao.ease.apply(ao, arguments)),10178          Y(this, function (r) {10179            r[e][t].ease = n;10180          }));10181    }),10182    (Yl.delay = function (n) {10183      var t = this.id,10184        e = this.namespace;10185      return arguments.length < 110186        ? this.node()[e][t].delay10187        : Y(10188            this,10189            "function" == typeof n10190              ? function (r, i, u) {10191                  r[e][t].delay = +n.call(r, r.__data__, i, u);10192                }10193              : ((n = +n),10194                function (r) {10195                  r[e][t].delay = n;10196                })10197          );10198    }),10199    (Yl.duration = function (n) {10200      var t = this.id,10201        e = this.namespace;10202      return arguments.length < 110203        ? this.node()[e][t].duration10204        : Y(10205            this,10206            "function" == typeof n10207              ? function (r, i, u) {10208                  r[e][t].duration = Math.max(1, n.call(r, r.__data__, i, u));10209                }10210              : ((n = Math.max(1, n)),10211                function (r) {10212                  r[e][t].duration = n;10213                })10214          );10215    }),10216    (Yl.each = function (n, t) {10217      var e = this.id,10218        r = this.namespace;10219      if (arguments.length < 2) {10220        var i = Ol,10221          u = Hl;10222        try {10223          (Hl = e),10224            Y(this, function (t, i, u) {10225              (Ol = t[r][e]), n.call(t, t.__data__, i, u);10226            });10227        } finally {10228          (Ol = i), (Hl = u);10229        }10230      } else10231        Y(this, function (i) {10232          var u = i[r][e];10233          (u.event || (u.event = ao.dispatch("start", "end", "interrupt"))).on(10234            n,10235            t10236          );10237        });10238      return this;10239    }),10240    (Yl.transition = function () {10241      for (10242        var n,10243          t,10244          e,10245          r,10246          i = this.id,10247          u = ++Zl,10248          o = this.namespace,10249          a = [],10250          l = 0,10251          c = this.length;10252        c > l;10253        l++10254      ) {10255        a.push((n = []));10256        for (var t = this[l], f = 0, s = t.length; s > f; f++)10257          (e = t[f]) &&10258            ((r = e[o][i]),10259            Qu(e, f, o, u, {10260              time: r.time,10261              ease: r.ease,10262              delay: r.delay + r.duration,10263              duration: r.duration,10264            })),10265            n.push(e);10266      }10267      return Wu(a, o, u);10268    }),10269    (ao.svg.axis = function () {10270      function n(n) {10271        n.each(function () {10272          var n,10273            c = ao.select(this),10274            f = this.__chart__ || e,10275            s = (this.__chart__ = e.copy()),10276            h = null == l ? (s.ticks ? s.ticks.apply(s, a) : s.domain()) : l,10277            p = null == t ? (s.tickFormat ? s.tickFormat.apply(s, a) : m) : t,10278            g = c.selectAll(".tick").data(h, s),10279            v = g10280              .enter()10281              .insert("g", ".domain")10282              .attr("class", "tick")10283              .style("opacity", Uo),10284            d = ao.transition(g.exit()).style("opacity", Uo).remove(),10285            y = ao.transition(g.order()).style("opacity", 1),10286            M = Math.max(i, 0) + o,10287            x = Zi(s),10288            b = c.selectAll(".domain").data([0]),10289            _ =10290              (b.enter().append("path").attr("class", "domain"),10291              ao.transition(b));10292          v.append("line"), v.append("text");10293          var w,10294            S,10295            k,10296            N,10297            E = v.select("line"),10298            A = y.select("line"),10299            C = g.select("text").text(p),10300            z = v.select("text"),10301            L = y.select("text"),10302            q = "top" === r || "left" === r ? -1 : 1;10303          if (10304            ("bottom" === r || "top" === r10305              ? ((n = no),10306                (w = "x"),10307                (k = "y"),10308                (S = "x2"),10309                (N = "y2"),10310                C.attr("dy", 0 > q ? "0em" : ".71em").style(10311                  "text-anchor",10312                  "middle"10313                ),10314                _.attr(10315                  "d",10316                  "M" + x[0] + "," + q * u + "V0H" + x[1] + "V" + q * u10317                ))10318              : ((n = to),10319                (w = "y"),10320                (k = "x"),10321                (S = "y2"),10322                (N = "x2"),10323                C.attr("dy", ".32em").style(10324                  "text-anchor",10325                  0 > q ? "end" : "start"10326                ),10327                _.attr(10328                  "d",10329                  "M" + q * u + "," + x[0] + "H0V" + x[1] + "H" + q * u10330                )),10331            E.attr(N, q * i),10332            z.attr(k, q * M),10333            A.attr(S, 0).attr(N, q * i),10334            L.attr(w, 0).attr(k, q * M),10335            s.rangeBand)10336          ) {10337            var T = s,10338              R = T.rangeBand() / 2;10339            f = s = function (n) {10340              return T(n) + R;10341            };10342          } else f.rangeBand ? (f = s) : d.call(n, s, f);10343          v.call(n, f, s), y.call(n, s, s);10344        });10345      }10346      var t,10347        e = ao.scale.linear(),10348        r = Vl,10349        i = 6,10350        u = 6,10351        o = 3,10352        a = [10],10353        l = null;10354      return (10355        (n.scale = function (t) {10356          return arguments.length ? ((e = t), n) : e;10357        }),10358        (n.orient = function (t) {10359          return arguments.length ? ((r = t in Xl ? t + "" : Vl), n) : r;10360        }),10361        (n.ticks = function () {10362          return arguments.length ? ((a = co(arguments)), n) : a;10363        }),10364        (n.tickValues = function (t) {10365          return arguments.length ? ((l = t), n) : l;10366        }),10367        (n.tickFormat = function (e) {10368          return arguments.length ? ((t = e), n) : t;10369        }),10370        (n.tickSize = function (t) {10371          var e = arguments.length;10372          return e ? ((i = +t), (u = +arguments[e - 1]), n) : i;10373        }),10374        (n.innerTickSize = function (t) {10375          return arguments.length ? ((i = +t), n) : i;10376        }),10377        (n.outerTickSize = function (t) {10378          return arguments.length ? ((u = +t), n) : u;10379        }),10380        (n.tickPadding = function (t) {10381          return arguments.length ? ((o = +t), n) : o;10382        }),10383        (n.tickSubdivide = function () {10384          return arguments.length && n;10385        }),10386        n10387      );10388    });10389  var Vl = "bottom",10390    Xl = { top: 1, right: 1, bottom: 1, left: 1 };10391  ao.svg.brush = function () {10392    function n(t) {10393      t.each(function () {10394        var t = ao10395            .select(this)10396            .style("pointer-events", "all")10397            .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)")10398            .on("mousedown.brush", u)10399            .on("touchstart.brush", u),10400          o = t.selectAll(".background").data([0]);10401        o10402          .enter()10403          .append("rect")10404          .attr("class", "background")10405          .style("visibility", "hidden")10406          .style("cursor", "crosshair"),10407          t10408            .selectAll(".extent")10409            .data([0])10410            .enter()10411            .append("rect")10412            .attr("class", "extent")10413            .style("cursor", "move");10414        var a = t.selectAll(".resize").data(v, m);10415        a.exit().remove(),10416          a10417            .enter()10418            .append("g")10419            .attr("class", function (n) {10420              return "resize " + n;10421            })10422            .style("cursor", function (n) {10423              return $l[n];10424            })10425            .append("rect")10426            .attr("x", function (n) {10427              return /[ew]$/.test(n) ? -3 : null;10428            })10429            .attr("y", function (n) {10430              return /^[ns]/.test(n) ? -3 : null;10431            })10432            .attr("width", 6)10433            .attr("height", 6)10434            .style("visibility", "hidden"),10435          a.style("display", n.empty() ? "none" : null);10436        var l,10437          s = ao.transition(t),10438          h = ao.transition(o);10439        c && ((l = Zi(c)), h.attr("x", l[0]).attr("width", l[1] - l[0]), r(s)),10440          f &&10441            ((l = Zi(f)), h.attr("y", l[0]).attr("height", l[1] - l[0]), i(s)),10442          e(s);10443      });10444    }10445    function e(n) {10446      n.selectAll(".resize").attr("transform", function (n) {10447        return "translate(" + s[+/e$/.test(n)] + "," + h[+/^s/.test(n)] + ")";10448      });10449    }10450    function r(n) {10451      n.select(".extent").attr("x", s[0]),10452        n.selectAll(".extent,.n>rect,.s>rect").attr("width", s[1] - s[0]);10453    }10454    function i(n) {10455      n.select(".extent").attr("y", h[0]),10456        n.selectAll(".extent,.e>rect,.w>rect").attr("height", h[1] - h[0]);10457    }10458    function u() {10459      function u() {10460        32 == ao.event.keyCode &&10461          (C || ((M = null), (L[0] -= s[1]), (L[1] -= h[1]), (C = 2)), S());10462      }10463      function v() {10464        32 == ao.event.keyCode &&10465          2 == C &&10466          ((L[0] += s[1]), (L[1] += h[1]), (C = 0), S());10467      }10468      function d() {10469        var n = ao.mouse(b),10470          t = !1;10471        x && ((n[0] += x[0]), (n[1] += x[1])),10472          C ||10473            (ao.event.altKey10474              ? (M || (M = [(s[0] + s[1]) / 2, (h[0] + h[1]) / 2]),10475                (L[0] = s[+(n[0] < M[0])]),10476                (L[1] = h[+(n[1] < M[1])]))10477              : (M = null)),10478          E && y(n, c, 0) && (r(k), (t = !0)),10479          A && y(n, f, 1) && (i(k), (t = !0)),10480          t && (e(k), w({ type: "brush", mode: C ? "move" : "resize" }));10481      }10482      function y(n, t, e) {10483        var r,10484          i,10485          u = Zi(t),10486          l = u[0],10487          c = u[1],10488          f = L[e],10489          v = e ? h : s,10490          d = v[1] - v[0];10491        return (10492          C && ((l -= f), (c -= d + f)),10493          (r = (e ? g : p) ? Math.max(l, Math.min(c, n[e])) : n[e]),10494          C10495            ? (i = (r += f) + d)10496            : (M && (f = Math.max(l, Math.min(c, 2 * M[e] - r))),10497              r > f ? ((i = r), (r = f)) : (i = f)),10498          v[0] != r || v[1] != i10499            ? (e ? (a = null) : (o = null), (v[0] = r), (v[1] = i), !0)10500            : void 010501        );10502      }10503      function m() {10504        d(),10505          k10506            .style("pointer-events", "all")10507            .selectAll(".resize")10508            .style("display", n.empty() ? "none" : null),10509          ao.select("body").style("cursor", null),10510          q10511            .on("mousemove.brush", null)10512            .on("mouseup.brush", null)10513            .on("touchmove.brush", null)10514            .on("touchend.brush", null)10515            .on("keydown.brush", null)10516            .on("keyup.brush", null),10517          z(),10518          w({ type: "brushend" });10519      }10520      var M,10521        x,10522        b = this,10523        _ = ao.select(ao.event.target),10524        w = l.of(b, arguments),10525        k = ao.select(b),10526        N = _.datum(),10527        E = !/^(n|s)$/.test(N) && c,10528        A = !/^(e|w)$/.test(N) && f,10529        C = _.classed("extent"),10530        z = W(b),10531        L = ao.mouse(b),10532        q = ao.select(t(b)).on("keydown.brush", u).on("keyup.brush", v);10533      if (10534        (ao.event.changedTouches10535          ? q.on("touchmove.brush", d).on("touchend.brush", m)10536          : q.on("mousemove.brush", d).on("mouseup.brush", m),10537        k.interrupt().selectAll("*").interrupt(),10538        C)10539      )10540        (L[0] = s[0] - L[0]), (L[1] = h[0] - L[1]);10541      else if (N) {10542        var T = +/w$/.test(N),10543          R = +/^n/.test(N);10544        (x = [s[1 - T] - L[0], h[1 - R] - L[1]]), (L[0] = s[T]), (L[1] = h[R]);10545      } else ao.event.altKey && (M = L.slice());10546      k10547        .style("pointer-events", "none")10548        .selectAll(".resize")10549        .style("display", null),10550        ao.select("body").style("cursor", _.style("cursor")),10551        w({ type: "brushstart" }),10552        d();10553    }10554    var o,10555      a,10556      l = N(n, "brushstart", "brush", "brushend"),10557      c = null,10558      f = null,10559      s = [0, 0],10560      h = [0, 0],10561      p = !0,10562      g = !0,10563      v = Bl[0];10564    return (10565      (n.event = function (n) {10566        n.each(function () {10567          var n = l.of(this, arguments),10568            t = { x: s, y: h, i: o, j: a },10569            e = this.__chart__ || t;10570          (this.__chart__ = t),10571            Hl10572              ? ao10573                  .select(this)10574                  .transition()10575                  .each("start.brush", function () {10576                    (o = e.i),10577                      (a = e.j),10578                      (s = e.x),10579                      (h = e.y),10580                      n({ type: "brushstart" });10581                  })10582                  .tween("brush:brush", function () {10583                    var e = xr(s, t.x),10584                      r = xr(h, t.y);10585                    return (10586                      (o = a = null),10587                      function (i) {10588                        (s = t.x = e(i)),10589                          (h = t.y = r(i)),10590                          n({ type: "brush", mode: "resize" });10591                      }10592                    );10593                  })10594                  .each("end.brush", function () {10595                    (o = t.i),10596                      (a = t.j),10597                      n({ type: "brush", mode: "resize" }),10598                      n({ type: "brushend" });10599                  })10600              : (n({ type: "brushstart" }),10601                n({ type: "brush", mode: "resize" }),10602                n({ type: "brushend" }));10603        });10604      }),10605      (n.x = function (t) {10606        return arguments.length ? ((c = t), (v = Bl[(!c << 1) | !f]), n) : c;10607      }),10608      (n.y = function (t) {10609        return arguments.length ? ((f = t), (v = Bl[(!c << 1) | !f]), n) : f;10610      }),10611      (n.clamp = function (t) {10612        return arguments.length10613          ? (c && f10614              ? ((p = !!t[0]), (g = !!t[1]))10615              : c10616              ? (p = !!t)10617              : f && (g = !!t),10618            n)10619          : c && f10620          ? [p, g]10621          : c10622          ? p10623          : f10624          ? g10625          : null;10626      }),10627      (n.extent = function (t) {10628        var e, r, i, u, l;10629        return arguments.length10630          ? (c &&10631              ((e = t[0]),10632              (r = t[1]),10633              f && ((e = e[0]), (r = r[0])),10634              (o = [e, r]),10635              c.invert && ((e = c(e)), (r = c(r))),10636              e > r && ((l = e), (e = r), (r = l)),10637              (e == s[0] && r == s[1]) || (s = [e, r])),10638            f &&10639              ((i = t[0]),10640              (u = t[1]),10641              c && ((i = i[1]), (u = u[1])),10642              (a = [i, u]),10643              f.invert && ((i = f(i)), (u = f(u))),10644              i > u && ((l = i), (i = u), (u = l)),10645              (i == h[0] && u == h[1]) || (h = [i, u])),10646            n)10647          : (c &&10648              (o10649                ? ((e = o[0]), (r = o[1]))10650                : ((e = s[0]),10651                  (r = s[1]),10652                  c.invert && ((e = c.invert(e)), (r = c.invert(r))),10653                  e > r && ((l = e), (e = r), (r = l)))),10654            f &&10655              (a10656                ? ((i = a[0]), (u = a[1]))10657                : ((i = h[0]),10658                  (u = h[1]),10659                  f.invert && ((i = f.invert(i)), (u = f.invert(u))),10660                  i > u && ((l = i), (i = u), (u = l)))),10661            c && f10662              ? [10663                  [e, i],10664                  [r, u],10665                ]10666              : c10667              ? [e, r]10668              : f && [i, u]);10669      }),10670      (n.clear = function () {10671        return n.empty() || ((s = [0, 0]), (h = [0, 0]), (o = a = null)), n;10672      }),10673      (n.empty = function () {10674        return (!!c && s[0] == s[1]) || (!!f && h[0] == h[1]);10675      }),10676      ao.rebind(n, l, "on")10677    );10678  };10679  var $l = {10680      n: "ns-resize",10681      e: "ew-resize",10682      s: "ns-resize",10683      w: "ew-resize",10684      nw: "nwse-resize",10685      ne: "nesw-resize",10686      se: "nwse-resize",10687      sw: "nesw-resize",10688    },10689    Bl = [10690      ["n", "e", "s", "w", "nw", "ne", "se", "sw"],10691      ["e", "w"],10692      ["n", "s"],10693      [],10694    ],10695    Wl = (ga.format = xa.timeFormat),10696    Jl = Wl.utc,10697    Gl = Jl("%Y-%m-%dT%H:%M:%S.%LZ");10698  (Wl.iso =10699    Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z")10700      ? eo10701      : Gl),10702    (eo.parse = function (n) {10703      var t = new Date(n);10704      return isNaN(t) ? null : t;10705    }),10706    (eo.toString = Gl.toString),10707    (ga.second = On(10708      function (n) {10709        return new va(1e3 * Math.floor(n / 1e3));10710      },10711      function (n, t) {10712        n.setTime(n.getTime() + 1e3 * Math.floor(t));10713      },10714      function (n) {10715        return n.getSeconds();10716      }10717    )),10718    (ga.seconds = ga.second.range),10719    (ga.seconds.utc = ga.second.utc.range),10720    (ga.minute = On(10721      function (n) {10722        return new va(6e4 * Math.floor(n / 6e4));10723      },10724      function (n, t) {10725        n.setTime(n.getTime() + 6e4 * Math.floor(t));10726      },10727      function (n) {10728        return n.getMinutes();10729      }10730    )),10731    (ga.minutes = ga.minute.range),10732    (ga.minutes.utc = ga.minute.utc.range),10733    (ga.hour = On(10734      function (n) {10735        var t = n.getTimezoneOffset() / 60;10736        return new va(36e5 * (Math.floor(n / 36e5 - t) + t));10737      },10738      function (n, t) {10739        n.setTime(n.getTime() + 36e5 * Math.floor(t));10740      },10741      function (n) {10742        return n.getHours();10743      }10744    )),10745    (ga.hours = ga.hour.range),10746    (ga.hours.utc = ga.hour.utc.range),10747    (ga.month = On(10748      function (n) {10749        return (n = ga.day(n)), n.setDate(1), n;10750      },10751      function (n, t) {10752        n.setMonth(n.getMonth() + t);10753      },10754      function (n) {10755        return n.getMonth();10756      }10757    )),10758    (ga.months = ga.month.range),10759    (ga.months.utc = ga.month.utc.range);10760  var Kl = [10761      1e3,10762      5e3,10763      15e3,10764      3e4,10765      6e4,10766      3e5,10767      9e5,10768      18e5,10769      36e5,10770      108e5,10771      216e5,10772      432e5,10773      864e5,10774      1728e5,10775      6048e5,10776      2592e6,10777      7776e6,10778      31536e6,10779    ],10780    Ql = [10781      [ga.second, 1],10782      [ga.second, 5],10783      [ga.second, 15],10784      [ga.second, 30],10785      [ga.minute, 1],10786      [ga.minute, 5],10787      [ga.minute, 15],10788      [ga.minute, 30],10789      [ga.hour, 1],10790      [ga.hour, 3],10791      [ga.hour, 6],10792      [ga.hour, 12],10793      [ga.day, 1],10794      [ga.day, 2],10795      [ga.week, 1],10796      [ga.month, 1],10797      [ga.month, 3],10798      [ga.year, 1],10799    ],10800    nc = Wl.multi([10801      [10802        ".%L",10803        function (n) {10804          return n.getMilliseconds();10805        },10806      ],10807      [10808        ":%S",10809        function (n) {10810          return n.getSeconds();10811        },10812      ],10813      [10814        "%I:%M",10815        function (n) {10816          return n.getMinutes();10817        },10818      ],10819      [10820        "%I %p",10821        function (n) {10822          return n.getHours();10823        },10824      ],10825      [10826        "%a %d",10827        function (n) {10828          return n.getDay() && 1 != n.getDate();10829        },10830      ],10831      [10832        "%b %d",10833        function (n) {10834          return 1 != n.getDate();10835        },10836      ],10837      [10838        "%B",10839        function (n) {10840          return n.getMonth();10841        },10842      ],10843      ["%Y", zt],10844    ]),10845    tc = {10846      range: function (n, t, e) {10847        return ao.range(Math.ceil(n / e) * e, +t, e).map(io);10848      },10849      floor: m,10850      ceil: m,10851    };10852  (Ql.year = ga.year),10853    (ga.scale = function () {10854      return ro(ao.scale.linear(), Ql, nc);10855    });10856  var ec = Ql.map(function (n) {10857      return [n[0].utc, n[1]];10858    }),10859    rc = Jl.multi([10860      [10861        ".%L",10862        function (n) {10863          return n.getUTCMilliseconds();10864        },10865      ],10866      [10867        ":%S",10868        function (n) {10869          return n.getUTCSeconds();10870        },10871      ],10872      [10873        "%I:%M",10874        function (n) {10875          return n.getUTCMinutes();10876        },10877      ],10878      [10879        "%I %p",10880        function (n) {10881          return n.getUTCHours();10882        },10883      ],10884      [10885        "%a %d",10886        function (n) {10887          return n.getUTCDay() && 1 != n.getUTCDate();10888        },10889      ],10890      [10891        "%b %d",10892        function (n) {10893          return 1 != n.getUTCDate();10894        },10895      ],10896      [10897        "%B",10898        function (n) {10899          return n.getUTCMonth();10900        },10901      ],10902      ["%Y", zt],10903    ]);10904  (ec.year = ga.year.utc),10905    (ga.scale.utc = function () {10906      return ro(ao.scale.linear(), ec, rc);10907    }),10908    (ao.text = An(function (n) {10909      return n.responseText;10910    })),10911    (ao.json = function (n, t) {10912      return Cn(n, "application/json", uo, t);10913    }),10914    (ao.html = function (n, t) {10915      return Cn(n, "text/html", oo, t);10916    }),10917    (ao.xml = An(function (n) {10918      return n.responseXML;10919    })),10920    "function" == typeof define && define.amd10921      ? ((this.d3 = ao), define(ao))10922      : "object" == typeof module && module.exports10923      ? (module.exports = ao)10924      : (this.d3 = ao);...d3.v3.min.js
Source:d3.v3.min.js  
1!function() {2    function n(n, t) {3        return t > n?-1 : n > t ? 1 : n >= t ? 0 : 0 / 04    }5    function t(n) {6        return null === n ? 0 / 0 : + n7    }8    function e(n) {9        return !isNaN(n)10    }11    function r(n) {12        return {13            left: function(t, e, r, u) {14                for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) {15                    var i = r + u>>>1;16                    n(t[i], e) < 0 ? r = i + 1 : u = i17                }18                return r19            },20            right: function(t, e, r, u) {21                for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) {22                    var i = r + u>>>1;23                    n(t[i], e) > 0 ? u = i : r = i + 124                }25                return r26            }27        }28    }29    function u(n) {30        return n.length31    }32    function i(n) {33        for (var t = 1; n * t%1;)34            t*=10;35        return t36    }37    function o(n, t) {38        for (var e in t)39            Object.defineProperty(n.prototype, e, {40                value: t[e],41                enumerable: !142            })43    }44    function a() {45        this._ = Object.create(null)46    }47    function c(n) {48        return (n += "") === da || n[0] === ma ? ma + n : n49    }50    function l(n) {51        return (n += "")[0] === ma ? n.slice(1) : n52    }53    function s(n) {54        return c(n)in this._55    }56    function f(n) {57        return (n = c(n))in this._ && delete this._[n]58    }59    function h() {60        var n = [];61        for (var t in this._)62            n.push(l(t));63        return n64    }65    function g() {66        var n = 0;67        for (var t in this._)68            ++n;69        return n70    }71    function p() {72        for (var n in this._)73            return !1;74        return !075    }76    function v() {77        this._ = Object.create(null)78    }79    function d(n, t, e) {80        return function() {81            var r = e.apply(t, arguments);82            return r === t ? n : r83        }84    }85    function m(n, t) {86        if (t in n)87            return t;88        t = t.charAt(0).toUpperCase() + t.slice(1);89        for (var e = 0, r = ya.length; r > e; ++e) {90            var u = ya[e] + t;91            if (u in n)92                return u93        }94    }95    function y() {}96    function M() {}97    function x(n) {98        function t() {99            for (var t, r = e, u =- 1, i = r.length; ++u < i;)(t = r[u].on) 100                && t.apply(this, arguments);101            return n102        }103        var e = [], r = new a;104        return t.on = function(t, u) {105            var i, o = r.get(t);106            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, {107                on: u108            })), n)109        }, t110    }111    function b() {112        ta.event.preventDefault()113    }114    function _() {115        for (var n, t = ta.event; n = t.sourceEvent;)116            t = n;117        return t118    }119    function w(n) {120        for (var t = new M, e = 0, r = arguments.length; ++e < r;)121            t[arguments[e]] = x(t);122        return t.of = function(e, r) {123            return function(u) {124                try {125                    var i = u.sourceEvent = ta.event;126                    u.target = n, ta.event = u, t[u.type].apply(e, r)127                } finally {128                    ta.event = i129                }130            }131        }, t132    }133    function S(n) {134        return xa(n, ka), n135    }136    function k(n) {137        return "function" == typeof n ? n : function() {138            return ba(n, this)139        }140    }141    function E(n) {142        return "function" == typeof n ? n : function() {143            return _a(n, this)144        }145    }146    function A(n, t) {147        function e() {148            this.removeAttribute(n)149        }150        function r() {151            this.removeAttributeNS(n.space, n.local)152        }153        function u() {154            this.setAttribute(n, t)155        }156        function i() {157            this.setAttributeNS(n.space, n.local, t)158        }159        function o() {160            var e = t.apply(this, arguments);161            null == e ? this.removeAttribute(n) : this.setAttribute(n, e)162        }163        function a() {164            var e = t.apply(this, arguments);165            null == e ? this.removeAttributeNS(n.space, n.local) : this.setAttributeNS(n.space, n.local, e)166        }167        return n = ta.ns.qualify(n), null == t ? n.local ? r : e : "function" == typeof t ? n.local ? a : o : n.local ? i : u168    }169    function N(n) {170        return n.trim().replace(/\s+/g, " ")171    }172    function C(n) {173        return new RegExp("(?:^|\\s+)" + ta.requote(n) + "(?:\\s+|$)", "g")174    }175    function z(n) {176        return (n + "").trim().split(/^|\s+/)177    }178    function q(n, t) {179        function e() {180            for (var e =- 1; ++e < u;)181                n[e](this, t)182        }183        function r() {184            for (var e =- 1, r = t.apply(this, arguments); ++e < u;)185                n[e](this, r)186        }187        n = z(n).map(L);188        var u = n.length;189        return "function" == typeof t ? r : e190    }191    function L(n) {192        var t = C(n);193        return function(e, r) {194            if (u = e.classList)195                return r ? u.add(n) : u.remove(n);196            var u = e.getAttribute("class") || "";197            r ? (t.lastIndex = 0, t.test(u) || e.setAttribute("class", N(u + " " + n))) : e.setAttribute("class", N(u.replace(t, " ")))198        }199    }200    function T(n, t, e) {201        function r() {202            this.style.removeProperty(n)203        }204        function u() {205            this.style.setProperty(n, t, e)206        }207        function i() {208            var r = t.apply(this, arguments);209            null == r ? this.style.removeProperty(n) : this.style.setProperty(n, r, e)210        }211        return null == t ? r : "function" == typeof t ? i : u212    }213    function R(n, t) {214        function e() {215            delete this[n]216        }217        function r() {218            this[n] = t219        }220        function u() {221            var e = t.apply(this, arguments);222            null == e ? delete this[n] : this[n] = e223        }224        return null == t ? e : "function" == typeof t ? u : r225    }226    function D(n) {227        return "function" == typeof n ? n : (n = ta.ns.qualify(n)).local ? function() {228            return this.ownerDocument.createElementNS(n.space, n.local)229        } : function() {230            return this.ownerDocument.createElementNS(this.namespaceURI, n)231        }232    }233    function P() {234        var n = this.parentNode;235        n && n.removeChild(this)236    }237    function U(n) {238        return {239            __data__: n240        }241    }242    function j(n) {243        return function() {244            return Sa(this, n)245        }246    }247    function F(t) {248        return arguments.length || (t = n), function(n, e) {249            return n && e ? t(n.__data__, e.__data__) : !n-!e250        }251    }252    function H(n, t) {253        for (var e = 0, r = n.length; r > e; e++)254            for (var u, i = n[e], o = 0, a = i.length; a > o; o++)(u = i[o]) 255                && t(u, o, e);256        return n257    }258    function O(n) {259        return xa(n, Aa), n260    }261    function Y(n) {262        var t, e;263        return function(r, u, i) {264            var o, a = n[i].update, c = a.length;265            for (i != e && (e = i, t = 0), u >= t && (t = u + 1); !(o = a[t])&&++t < c;);266            return o267        }268    }269    function I(n, t, e) {270        function r() {271            var t = this[o];272            t && (this.removeEventListener(n, t, t.$), delete this[o])273        }274        function u() {275            var u = c(t, ra(arguments));276            r.call(this), this.addEventListener(n, this[o] = u, u.$ = e), u._ = t277        }278        function i() {279            var t, e = new RegExp("^__on([^.]+)" + ta.requote(n) + "$");280            for (var r in this)281                if (t = r.match(e)) {282                    var u = this[r];283                    this.removeEventListener(t[1], u, u.$), delete this[r]284                }285        }286        var o = "__on" + n, a = n.indexOf("."), c = Z;287        a > 0 && (n = n.slice(0, a));288        var l = Ca.get(n);289        return l && (n = l, c = V), a ? t ? u : r : t ? y : i290    }291    function Z(n, t) {292        return function(e) {293            var r = ta.event;294            ta.event = e, t[0] = this.__data__;295            try {296                n.apply(this, t)297            } finally {298                ta.event = r299            }300        }301    }302    function V(n, t) {303        var e = Z(n, t);304        return function(n) {305            var t = this, r = n.relatedTarget;306            r && (r === t || 8 & r.compareDocumentPosition(t)) || e.call(t, n)307        }308    }309    function X() {310        var n = ".dragsuppress-" + ++qa, t = "click" + n, e = ta.select(oa).on("touchmove" + n, b).on("dragstart" + n, b).on("selectstart" + n, b);311        if (za) {312            var r = ia.style, u = r[za];313            r[za] = "none"314        }315        return function(i) {316            if (e.on(n, null), za && (r[za] = u), i) {317                var o = function() {318                    e.on(t, null)319                };320                e.on(t, function() {321                    b(), o()322                }, !0), setTimeout(o, 0)323            }324        }325    }326    function $(n, t) {327        t.changedTouches && (t = t.changedTouches[0]);328        var e = n.ownerSVGElement || n;329        if (e.createSVGPoint) {330            var r = e.createSVGPoint();331            if (0 > La && (oa.scrollX || oa.scrollY)) {332                e = ta.select("body").append("svg").style({333                    position: "absolute",334                    top: 0,335                    left: 0,336                    margin: 0,337                    padding: 0,338                    border: "none"339                }, "important");340                var u = e[0][0].getScreenCTM();341                La=!(u.f || u.e), e.remove()342            }343            return La ? (r.x = t.pageX, r.y = t.pageY) : (r.x = t.clientX, r.y = t.clientY), r = r.matrixTransform(n.getScreenCTM().inverse()), [r.x, r.y]344        }345        var i = n.getBoundingClientRect();346        return [t.clientX - i.left - n.clientLeft, t.clientY - i.top - n.clientTop]347    }348    function B() {349        return ta.event.changedTouches[0].identifier350    }351    function W() {352        return ta.event.target353    }354    function J() {355        return oa356    }357    function G(n) {358        return n > 0 ? 1 : 0 > n?-1 : 0359    }360    function K(n, t, e) {361        return (t[0] - n[0]) * (e[1] - n[1]) - (t[1] - n[1]) * (e[0] - n[0])362    }363    function Q(n) {364        return n > 1 ? 0 : - 1 > n ? Da : Math.acos(n)365    }366    function nt(n) {367        return n > 1 ? ja : - 1 > n?-ja : Math.asin(n)368    }369    function tt(n) {370        return ((n = Math.exp(n)) - 1 / n) / 2371    }372    function et(n) {373        return ((n = Math.exp(n)) + 1 / n) / 2374    }375    function rt(n) {376        return ((n = Math.exp(2 * n)) - 1) / (n + 1)377    }378    function ut(n) {379        return (n = Math.sin(n / 2)) * n380    }381    function it() {}382    function ot(n, t, e) {383        return this instanceof ot ? (this.h =+ n, this.s =+ t, void(this.l =+ e)) : arguments.length < 2 ? n instanceof ot ? new ot(n.h, n.s, n.l) : xt("" + n, bt, ot) : new ot(n, t, e)384    }385    function at(n, t, e) {386        function r(n) {387            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 : i388        }389        function u(n) {390            return Math.round(255 * r(n))391        }392        var i, o;393        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 dt(u(n + 120), u(n), u(n - 120))394    }395    function ct(n, t, e) {396        return this instanceof ct ? (this.h =+ n, this.c =+ t, void(this.l =+ e)) : arguments.length < 2 ? n instanceof ct ? new ct(n.h, n.c, n.l) : n instanceof st ? ht(n.l, n.a, n.b) : ht((n = _t((n = ta.rgb(n)).r, n.g, n.b)).l, n.a, n.b) : new ct(n, t, e)397    }398    function lt(n, t, e) {399        return isNaN(n) && (n = 0), isNaN(t) && (t = 0), new st(e, Math.cos(n*=Fa) * t, Math.sin(n) * t)400    }401    function st(n, t, e) {402        return this instanceof st ? (this.l =+ n, this.a =+ t, void(this.b =+ e)) : arguments.length < 2 ? n instanceof st ? new st(n.l, n.a, n.b) : n instanceof ct ? lt(n.h, n.c, n.l) : _t((n = dt(n)).r, n.g, n.b) : new st(n, t, e)403    }404    function ft(n, t, e) {405        var r = (n + 16) / 116, u = r + t / 500, i = r - e / 200;406        return u = gt(u) * Ja, r = gt(r) * Ga, i = gt(i) * Ka, new dt(vt(3.2404542 * u - 1.5371385 * r - .4985314 * i), vt( - .969266 * u + 1.8760108 * r + .041556 * i), vt(.0556434 * u - .2040259 * r + 1.0572252 * i))407    }408    function ht(n, t, e) {409        return n > 0 ? new ct(Math.atan2(e, t) * Ha, Math.sqrt(t * t + e * e), n) : new ct(0 / 0, 0 / 0, n)410    }411    function gt(n) {412        return n > .206893034 ? n * n * n : (n - 4 / 29) / 7.787037413    }414    function pt(n) {415        return n > .008856 ? Math.pow(n, 1 / 3) : 7.787037 * n + 4 / 29416    }417    function vt(n) {418        return Math.round(255 * (.00304 >= n ? 12.92 * n : 1.055 * Math.pow(n, 1 / 2.4) - .055))419    }420    function dt(n, t, e) {421        return this instanceof dt ? (this.r=~~n, this.g=~~t, void(this.b=~~e)) : arguments.length < 2 ? n instanceof dt ? new dt(n.r, n.g, n.b) : xt("" + n, dt, at) : new dt(n, t, e)422    }423    function mt(n) {424        return new dt(n>>16, 255 & n>>8, 255 & n)425    }426    function yt(n) {427        return mt(n) + ""428    }429    function Mt(n) {430        return 16 > n ? "0" + Math.max(0, n).toString(16) : Math.min(255, n).toString(16)431    }432    function xt(n, t, e) {433        var r, u, i, o = 0, a = 0, c = 0;434        if (r = /([a-z]+)\((.*)\)/i.exec(n))435            switch (u = r[2].split(","), r[1]) {436            case"hsl":437                return e(parseFloat(u[0]), parseFloat(u[1]) / 100, parseFloat(u[2]) / 100);438            case"rgb":439                return t(St(u[0]), St(u[1]), St(u[2]))440            }441        return (i = tc.get(n)) ? 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))442    }443    function bt(n, t, e) {444        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;445        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 ot(r, u, c)446    }447    function _t(n, t, e) {448        n = wt(n), t = wt(t), e = wt(e);449        var r = pt((.4124564 * n + .3575761 * t + .1804375 * e) / Ja), u = pt((.2126729 * n + .7151522 * t + .072175 * e) / Ga), i = pt((.0193339 * n + .119192 * t + .9503041 * e) / Ka);450        return st(116 * u - 16, 500 * (r - u), 200 * (u - i))451    }452    function wt(n) {453        return (n/=255) <= .04045 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4)454    }455    function St(n) {456        var t = parseFloat(n);457        return "%" === n.charAt(n.length - 1) ? Math.round(2.55 * t) : t458    }459    function kt(n) {460        return "function" == typeof n ? n : function() {461            return n462        }463    }464    function Et(n) {465        return n466    }467    function At(n) {468        return function(t, e, r) {469            return 2 === arguments.length && "function" == typeof e && (r = e, e = null), Nt(t, e, n, r)470        }471    }472    function Nt(n, t, e, r) {473        function u() {474            var n, t = c.status;475            if (!t && zt(c) || t >= 200 && 300 > t || 304 === t) {476                try {477                    n = e.call(i, c)478                } catch (r) {479                    return o.error.call(i, r), void 0480                }481                o.load.call(i, n)482            } else 483                o.error.call(i, c)484        }485        var i = {}, o = ta.dispatch("beforesend", "progress", "load", "error"), a = {}, c = new XMLHttpRequest, l = null;486        return !oa.XDomainRequest || "withCredentials"in c ||!/^(http(s)?:)?\/\//.test(n) || (c = new XDomainRequest), "onload"in c ? c.onload = c.onerror = u : c.onreadystatechange = function() {487            c.readyState > 3 && u()488        }, c.onprogress = function(n) {489            var t = ta.event;490            ta.event = n;491            try {492                o.progress.call(i, c)493            } finally {494                ta.event = t495            }496        }, i.header = function(n, t) {497            return n = (n + "").toLowerCase(), arguments.length < 2 ? a[n] : (null == t ? delete a[n] : a[n] = t + "", i)498        }, i.mimeType = function(n) {499            return arguments.length ? (t = null == n ? null : n + "", i) : t500        }, i.responseType = function(n) {501            return arguments.length ? (l = n, i) : l502        }, i.response = function(n) {503            return e = n, i504        }, ["get", "post"].forEach(function(n) {505            i[n] = function() {506                return i.send.apply(i, [n].concat(ra(arguments)))507            }508        }), i.send = function(e, r, u) {509            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)510                for (var s in a)511                    c.setRequestHeader(s, a[s]);512            return null != t && c.overrideMimeType && c.overrideMimeType(t), null != l && (c.responseType = l), null != u && i.on("error", u).on("load", function(n) {513                u(null, n)514            }), o.beforesend.call(i, c), c.send(null == r ? null : r), i515        }, i.abort = function() {516            return c.abort(), i517        }, ta.rebind(i, o, "on"), null == r ? i : i.get(Ct(r))518    }519    function Ct(n) {520        return 1 === n.length ? function(t, e) {521            n(null == t ? e : null)522        } : n523    }524    function zt(n) {525        var t = n.responseType;526        return t && "text" !== t ? n.response : n.responseText527    }528    function qt() {529        var n = Lt(), t = Tt() - n;530        t > 24 ? (isFinite(t) && (clearTimeout(ic), ic = setTimeout(qt, t)), uc = 0) : (uc = 1, ac(qt))531    }532    function Lt() {533        var n = Date.now();534        for (oc = ec; oc;)535            n >= oc.t && (oc.f = oc.c(n - oc.t)), oc = oc.n;536        return n537    }538    function Tt() {539        for (var n, t = ec, e = 1 / 0; t;)540            t.f ? t = n ? n.n = t.n : ec = t.n : (t.t < e && (e = t.t), t = (n = t).n);541        return rc = n, e542    }543    function Rt(n, t) {544        return t - (n ? Math.ceil(Math.log(n) / Math.LN10) : 1)545    }546    function Dt(n, t) {547        var e = Math.pow(10, 3 * va(8 - t));548        return {549            scale: t > 8 ? function(n) {550                return n / e551            }552            : function(n) {553                return n * e554            },555            symbol: n556        }557    }558    function Pt(n) {559        var t = n.decimal, e = n.thousands, r = n.grouping, u = n.currency, i = r && e ? function(n, t) {560            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));)561                a = r[o = (o + 1)%r.length];562            return i.reverse().join(e)563        }564        : Et;565        return function(n) {566            var e = lc.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;567            switch (h && (h =+ h.substring(1)), (l || "0" === r && "=" === o) && (l = r = "0", o = "="), g) {568            case"n":569                f=!0, g = "g";570                break;571            case"%":572                p = 100, d = "%", g = "f";573                break;574            case"p":575                p = 100, d = "%", g = "r";576                break;577            case"b":578            case"o":579            case"x":580            case"X":581                "#" === c && (v = "0" + g.toLowerCase());582            case"c":583                y=!1;584            case"d":585                m=!0, h = 0;586                break;587            case"s":588                p =- 1, g = "r"589            }590            "$" === 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 = sc.get(g) || Ut;591            var M = l && f;592            return function(n) {593                var e = d;594                if (m && n%1)595                    return "";596                var u = 0 > n || 0 === n && 0 > 1 / n ? (n =- n, "-"): "-" === a ? "": a;597                if (0 > p) {598                    var c = ta.formatPrefix(n, h);599                    n = c.scale(n), e = c.symbol + d600                } else 601                    n*=p;602                n = g(n, h);603                var x, b, _ = n.lastIndexOf(".");604                if (0 > _) {605                    var w = y ? n.lastIndexOf("e"): - 1;606                    0 > w ? (x = n, b = "") : (x = n.substring(0, w), b = n.substring(w))607                } else 608                    x = n.substring(0, _), b = t + n.substring(_ + 1);609                !l && f && (x = i(x, 1 / 0));610                var S = v.length + x.length + b.length + (M ? 0 : u.length), k = s > S ? new Array(S = s - S + 1).join(r): "";611                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)) + e612            }613        }614    }615    function Ut(n) {616        return n + ""617    }618    function jt() {619        this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0])620    }621    function Ft(n, t, e) {622        function r(t) {623            var e = n(t), r = i(e, 1);624            return r - t > t - e ? e : r625        }626        function u(e) {627            return t(e = n(new hc(e - 1)), 1), e628        }629        function i(n, e) {630            return t(n = new hc( + n), e), n631        }632        function o(n, r, i) {633            var o = u(n), a = [];634            if (i > 1)635                for (; r > o;)636                    e(o)%i || a.push(new Date( + o)), t(o, 1);637            else 638                for (; r > o;)639                    a.push(new Date( + o)), t(o, 1);640            return a641        }642        function a(n, t, e) {643            try {644                hc = jt;645                var r = new jt;646                return r._ = n, o(r, t, e)647            } finally {648                hc = Date649            }650        }651        n.floor = n, n.round = r, n.ceil = u, n.offset = i, n.range = o;652        var c = n.utc = Ht(n);653        return c.floor = c, c.round = Ht(r), c.ceil = Ht(u), c.offset = Ht(i), c.range = a, n654    }655    function Ht(n) {656        return function(t, e) {657            try {658                hc = jt;659                var r = new jt;660                return r._ = t, n(r, e)._661            } finally {662                hc = Date663            }664        }665    }666    function Ot(n) {667        function t(n) {668            function t(t) {669                for (var e, u, i, o = [], a =- 1, c = 0; ++a < r;)670                    37 === n.charCodeAt(a) && (o.push(n.slice(c, a)), null != (u = pc[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);671                return o.push(n.slice(c, a)), o.join("")672            }673            var r = n.length;674            return t.parse = function(t) {675                var r = {676                    y: 1900,677                    m: 0,678                    d: 1,679                    H: 0,680                    M: 0,681                    S: 0,682                    L: 0,683                    Z: null684                }, u = e(r, n, t, 0);685                if (u != t.length)686                    return null;687                "p"in r && (r.H = r.H%12 + 12 * r.p);688                var i = null != r.Z && hc !== jt, o = new (i ? jt : hc);689                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 + (0 | r.Z / 100), r.M + r.Z%100, r.S, r.L), i ? o._ : o690            }, t.toString = function() {691                return n692            }, t693        }694        function e(n, t, e, r) {695            for (var u, i, o, a = 0, c = t.length, l = e.length; c > a;) {696                if (r >= l)697                    return - 1;698                if (u = t.charCodeAt(a++), 37 === u) {699                    if (o = t.charAt(a++), i = C[o in pc ? t.charAt(a++): o], !i || (r = i(n, e, r)) < 0)700                        return - 1701                } else if (u != e.charCodeAt(r++))702                    return - 1703            }704            return r705        }706        function r(n, t, e) {707            _.lastIndex = 0;708            var r = _.exec(t.slice(e));709            return r ? (n.w = w.get(r[0].toLowerCase()), e + r[0].length) : - 1710        }711        function u(n, t, e) {712            x.lastIndex = 0;713            var r = x.exec(t.slice(e));714            return r ? (n.w = b.get(r[0].toLowerCase()), e + r[0].length) : - 1715        }716        function i(n, t, e) {717            E.lastIndex = 0;718            var r = E.exec(t.slice(e));719            return r ? (n.m = A.get(r[0].toLowerCase()), e + r[0].length) : - 1720        }721        function o(n, t, e) {722            S.lastIndex = 0;723            var r = S.exec(t.slice(e));724            return r ? (n.m = k.get(r[0].toLowerCase()), e + r[0].length) : - 1725        }726        function a(n, t, r) {727            return e(n, N.c.toString(), t, r)728        }729        function c(n, t, r) {730            return e(n, N.x.toString(), t, r)731        }732        function l(n, t, r) {733            return e(n, N.X.toString(), t, r)734        }735        function s(n, t, e) {736            var r = M.get(t.slice(e, e += 2).toLowerCase());737            return null == r?-1 : (n.p = r, e)738        }739        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;740        t.utc = function(n) {741            function e(n) {742                try {743                    hc = jt;744                    var t = new hc;745                    return t._ = n, r(t)746                } finally {747                    hc = Date748                }749            }750            var r = t(n);751            return e.parse = function(n) {752                try {753                    hc = jt;754                    var t = r.parse(n);755                    return t && t._756                } finally {757                    hc = Date758                }759            }, e.toString = r.toString, e760        }, t.multi = t.utc.multi = ae;761        var M = ta.map(), x = It(v), b = Zt(v), _ = It(d), w = Zt(d), S = It(m), k = Zt(m), E = It(y), A = Zt(y);762        p.forEach(function(n, t) {763            M.set(n.toLowerCase(), t)764        });765        var N = {766            a: function(n) {767                return d[n.getDay()]768            },769            A: function(n) {770                return v[n.getDay()]771            },772            b: function(n) {773                return y[n.getMonth()]774            },775            B: function(n) {776                return m[n.getMonth()]777            },778            c: t(f),779            d: function(n, t) {780                return Yt(n.getDate(), t, 2)781            },782            e: function(n, t) {783                return Yt(n.getDate(), t, 2)784            },785            H: function(n, t) {786                return Yt(n.getHours(), t, 2)787            },788            I: function(n, t) {789                return Yt(n.getHours()%12 || 12, t, 2)790            },791            j: function(n, t) {792                return Yt(1 + fc.dayOfYear(n), t, 3)793            },794            L: function(n, t) {795                return Yt(n.getMilliseconds(), t, 3)796            },797            m: function(n, t) {798                return Yt(n.getMonth() + 1, t, 2)799            },800            M: function(n, t) {801                return Yt(n.getMinutes(), t, 2)802            },803            p: function(n) {804                return p[ + (n.getHours() >= 12)]805            },806            S: function(n, t) {807                return Yt(n.getSeconds(), t, 2)808            },809            U: function(n, t) {810                return Yt(fc.sundayOfYear(n), t, 2)811            },812            w: function(n) {813                return n.getDay()814            },815            W: function(n, t) {816                return Yt(fc.mondayOfYear(n), t, 2)817            },818            x: t(h),819            X: t(g),820            y: function(n, t) {821                return Yt(n.getFullYear()%100, t, 2)822            },823            Y: function(n, t) {824                return Yt(n.getFullYear()%1e4, t, 4)825            },826            Z: ie,827            "%": function() {828                return "%"829            }830        }, C = {831            a: r,832            A: u,833            b: i,834            B: o,835            c: a,836            d: Qt,837            e: Qt,838            H: te,839            I: te,840            j: ne,841            L: ue,842            m: Kt,843            M: ee,844            p: s,845            S: re,846            U: Xt,847            w: Vt,848            W: $t,849            x: c,850            X: l,851            y: Wt,852            Y: Bt,853            Z: Jt,854            "%": oe855        };856        return t857    }858    function Yt(n, t, e) {859        var r = 0 > n ? "-": "", u = (r?-n : n) + "", i = u.length;860        return r + (e > i ? new Array(e - i + 1).join(t) + u : u)861    }862    function It(n) {863        return new RegExp("^(?:" + n.map(ta.requote).join("|") + ")", "i")864    }865    function Zt(n) {866        for (var t = new a, e =- 1, r = n.length; ++e < r;)867            t.set(n[e].toLowerCase(), e);868        return t869    }870    function Vt(n, t, e) {871        vc.lastIndex = 0;872        var r = vc.exec(t.slice(e, e + 1));873        return r ? (n.w =+ r[0], e + r[0].length) : - 1874    }875    function Xt(n, t, e) {876        vc.lastIndex = 0;877        var r = vc.exec(t.slice(e));878        return r ? (n.U =+ r[0], e + r[0].length) : - 1879    }880    function $t(n, t, e) {881        vc.lastIndex = 0;882        var r = vc.exec(t.slice(e));883        return r ? (n.W =+ r[0], e + r[0].length) : - 1884    }885    function Bt(n, t, e) {886        vc.lastIndex = 0;887        var r = vc.exec(t.slice(e, e + 4));888        return r ? (n.y =+ r[0], e + r[0].length) : - 1889    }890    function Wt(n, t, e) {891        vc.lastIndex = 0;892        var r = vc.exec(t.slice(e, e + 2));893        return r ? (n.y = Gt( + r[0]), e + r[0].length) : - 1894    }895    function Jt(n, t, e) {896        return /^[+-]\d{4}$/.test(t = t.slice(e, e + 5)) ? (n.Z =- t, e + 5) : - 1897    }898    function Gt(n) {899        return n + (n > 68 ? 1900 : 2e3)900    }901    function Kt(n, t, e) {902        vc.lastIndex = 0;903        var r = vc.exec(t.slice(e, e + 2));904        return r ? (n.m = r[0] - 1, e + r[0].length) : - 1905    }906    function Qt(n, t, e) {907        vc.lastIndex = 0;908        var r = vc.exec(t.slice(e, e + 2));909        return r ? (n.d =+ r[0], e + r[0].length) : - 1910    }911    function ne(n, t, e) {912        vc.lastIndex = 0;913        var r = vc.exec(t.slice(e, e + 3));914        return r ? (n.j =+ r[0], e + r[0].length) : - 1915    }916    function te(n, t, e) {917        vc.lastIndex = 0;918        var r = vc.exec(t.slice(e, e + 2));919        return r ? (n.H =+ r[0], e + r[0].length) : - 1920    }921    function ee(n, t, e) {922        vc.lastIndex = 0;923        var r = vc.exec(t.slice(e, e + 2));924        return r ? (n.M =+ r[0], e + r[0].length) : - 1925    }926    function re(n, t, e) {927        vc.lastIndex = 0;928        var r = vc.exec(t.slice(e, e + 2));929        return r ? (n.S =+ r[0], e + r[0].length) : - 1930    }931    function ue(n, t, e) {932        vc.lastIndex = 0;933        var r = vc.exec(t.slice(e, e + 3));934        return r ? (n.L =+ r[0], e + r[0].length) : - 1935    }936    function ie(n) {937        var t = n.getTimezoneOffset(), e = t > 0 ? "-": "+", r = 0 | va(t) / 60, u = va(t)%60;938        return e + Yt(r, "0", 2) + Yt(u, "0", 2)939    }940    function oe(n, t, e) {941        dc.lastIndex = 0;942        var r = dc.exec(t.slice(e, e + 1));943        return r ? e + r[0].length : - 1944    }945    function ae(n) {946        for (var t = n.length, e =- 1; ++e < t;)947            n[e][0] = this (n[e][0]);948        return function(t) {949            for (var e = 0, r = n[e]; !r[1](t);)950                r = n[++e];951            return r[0](t)952        }953    }954    function ce() {}955    function le(n, t, e) {956        var r = e.s = n + t, u = r - n, i = r - u;957        e.t = n - i + (t - u)958    }959    function se(n, t) {960        n && xc.hasOwnProperty(n.type) && xc[n.type](n, t)961    }962    function fe(n, t, e) {963        var r, u =- 1, i = n.length - e;964        for (t.lineStart(); ++u < i;)965            r = n[u], t.point(r[0], r[1], r[2]);966        t.lineEnd()967    }968    function he(n, t) {969        var e =- 1, r = n.length;970        for (t.polygonStart(); ++e < r;)971            fe(n[e], t, 1);972        t.polygonEnd()973    }974    function ge() {975        function n(n, t) {976            n*=Fa, t = t * Fa / 2 + Da / 4;977            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);978            _c.add(Math.atan2(h, f)), r = n, u = c, i = l979        }980        var t, e, r, u, i;981        wc.point = function(o, a) {982            wc.point = n, r = (t = o) * Fa, u = Math.cos(a = (e = a) * Fa / 2 + Da / 4), i = Math.sin(a)983        }, wc.lineEnd = function() {984            n(t, e)985        }986    }987    function pe(n) {988        var t = n[0], e = n[1], r = Math.cos(e);989        return [r * Math.cos(t), r * Math.sin(t), Math.sin(e)]990    }991    function ve(n, t) {992        return n[0] * t[0] + n[1] * t[1] + n[2] * t[2]993    }994    function de(n, t) {995        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]]996    }997    function me(n, t) {998        n[0] += t[0], n[1] += t[1], n[2] += t[2]999    }1000    function ye(n, t) {1001        return [n[0] * t, n[1] * t, n[2] * t]1002    }1003    function Me(n) {1004        var t = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]);1005        n[0]/=t, n[1]/=t, n[2]/=t1006    }1007    function xe(n) {1008        return [Math.atan2(n[1], n[0]), nt(n[2])]1009    }1010    function be(n, t) {1011        return va(n[0] - t[0]) < Ta && va(n[1] - t[1]) < Ta1012    }1013    function _e(n, t) {1014        n*=Fa;1015        var e = Math.cos(t*=Fa);1016        we(e * Math.cos(n), e * Math.sin(n), Math.sin(t))1017    }1018    function we(n, t, e) {1019        ++Sc, Ec += (n - Ec) / Sc, Ac += (t - Ac) / Sc, Nc += (e - Nc) / Sc1020    }1021    function Se() {1022        function n(n, u) {1023            n*=Fa;1024            var i = Math.cos(u*=Fa), 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);1025            kc += l, Cc += l * (t + (t = o)), zc += l * (e + (e = a)), qc += l * (r + (r = c)), we(t, e, r)1026        }1027        var t, e, r;1028        Dc.point = function(u, i) {1029            u*=Fa;1030            var o = Math.cos(i*=Fa);1031            t = o * Math.cos(u), e = o * Math.sin(u), r = Math.sin(i), Dc.point = n, we(t, e, r)1032        }1033    }1034    function ke() {1035        Dc.point = _e1036    }1037    function Ee() {1038        function n(n, t) {1039            n*=Fa;1040            var e = Math.cos(t*=Fa), 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&&-Q(g) / h, v = Math.atan2(h, g);1041            Lc += p * l, Tc += p * s, Rc += p * f, kc += v, Cc += v * (r + (r = o)), zc += v * (u + (u = a)), qc += v * (i + (i = c)), we(r, u, i)1042        }1043        var t, e, r, u, i;1044        Dc.point = function(o, a) {1045            t = o, e = a, Dc.point = n, o*=Fa;1046            var c = Math.cos(a*=Fa);1047            r = c * Math.cos(o), u = c * Math.sin(o), i = Math.sin(a), we(r, u, i)1048        }, Dc.lineEnd = function() {1049            n(t, e), Dc.lineEnd = ke, Dc.point = _e1050        }1051    }1052    function Ae(n, t) {1053        function e(e, r) {1054            return e = n(e, r), t(e[0], e[1])1055        }1056        return n.invert && t.invert && (e.invert = function(e, r) {1057            return e = t.invert(e, r), e && n.invert(e[0], e[1])1058        }), e1059    }1060    function Ne() {1061        return !01062    }1063    function Ce(n, t, e, r, u) {1064        var i = [], o = [];1065        if (n.forEach(function(n) {1066            if (!((t = n.length - 1) <= 0)) {1067                var t, e = n[0], r = n[t];1068                if (be(e, r)) {1069                    u.lineStart();1070                    for (var a = 0; t > a; ++a)1071                        u.point((e = n[a])[0], e[1]);1072                    return u.lineEnd(), void 01073                }1074                var c = new qe(e, n, null, !0), l = new qe(e, null, c, !1);1075                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)1076            }1077        }), o.sort(t), ze(i), ze(o), i.length) {1078            for (var a = 0, c = e, l = o.length; l > a; ++a)1079                o[a].e = c=!c;1080            for (var s, f, h = i[0]; ;) {1081                for (var g = h, p=!0; g.v;)1082                    if ((g = g.n) === h)1083                        return;1084                s = g.z, u.lineStart();1085                do {1086                    if (g.v = g.o.v=!0, g.e) {1087                        if (p)1088                            for (var a = 0, l = s.length; l > a; ++a)1089                                u.point((f = s[a])[0], f[1]);1090                        else 1091                            r(g.x, g.n.x, 1, u);1092                        g = g.n1093                    } else {1094                        if (p) {1095                            s = g.p.z;1096                            for (var a = s.length - 1; a >= 0; --a)1097                                u.point((f = s[a])[0], f[1])1098                            } else 1099                                r(g.x, g.p.x, - 1, u);1100                        g = g.p1101                    }1102                    g = g.o, s = g.z, p=!p1103                }1104                while (!g.v);1105                u.lineEnd()1106            }1107        }1108    }1109    function ze(n) {1110        if (t = n.length) {1111            for (var t, e, r = 0, u = n[0]; ++r < t;)1112                u.n = e = n[r], e.p = u, u = e;1113            u.n = e = n[0], e.p = u1114        }1115    }1116    function qe(n, t, e, r) {1117        this.x = n, this.z = t, this.o = e, this.e = r, this.v=!1, this.n = this.p = null1118    }1119    function Le(n, t, e, r) {1120        return function(u, i) {1121            function o(t, e) {1122                var r = u(t, e);1123                n(t = r[0], e = r[1]) && i.point(t, e)1124            }1125            function a(n, t) {1126                var e = u(n, t);1127                d.point(e[0], e[1])1128            }1129            function c() {1130                y.point = a, d.lineStart()1131            }1132            function l() {1133                y.point = o, d.lineEnd()1134            }1135            function s(n, t) {1136                v.push([n, t]);1137                var e = u(n, t);1138                x.point(e[0], e[1])1139            }1140            function f() {1141                x.lineStart(), v = []1142            }1143            function h() {1144                s(v[0][0], v[0][1]), x.lineEnd();1145                var n, t = x.clean(), e = M.buffer(), r = e.length;1146                if (v.pop(), p.push(v), v = null, r)1147                    if (1 & t) {1148                        n = e[0];1149                        var u, r = n.length - 1, o =- 1;1150                        if (r > 0) {1151                            for (b || (i.polygonStart(), b=!0), i.lineStart(); ++o < r;)1152                                i.point((u = n[o])[0], u[1]);1153                                i.lineEnd()1154                            }1155                    } else 1156                        r > 1 && 2 & t && e.push(e.pop().concat(e.shift())), g.push(e.filter(Te))1157                }1158            var g, p, v, d = t(i), m = u.invert(r[0], r[1]), y = {1159                point: o,1160                lineStart: c,1161                lineEnd: l,1162                polygonStart: function() {1163                    y.point = s, y.lineStart = f, y.lineEnd = h, g = [], p = []1164                },1165                polygonEnd: function() {1166                    y.point = o, y.lineStart = c, y.lineEnd = l, g = ta.merge(g);1167                    var n = Fe(m, p);1168                    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 = null1169                },1170                sphere: function() {1171                    i.polygonStart(), i.lineStart(), e(null, null, 1, i), i.lineEnd(), i.polygonEnd()1172                }1173            }, M = Re(), x = t(M), b=!1;1174            return y1175        }1176    }1177    function Te(n) {1178        return n.length > 11179    }1180    function Re() {1181        var n, t = [];1182        return {1183            lineStart: function() {1184                t.push(n = [])1185            },1186            point: function(t, e) {1187                n.push([t, e])1188            },1189            lineEnd: y,1190            buffer: function() {1191                var e = t;1192                return t = [], n = null, e1193            },1194            rejoin: function() {1195                t.length > 1 && t.push(t.pop().concat(t.shift()))1196            }1197        }1198    }1199    function De(n, t) {1200        return ((n = n.x)[0] < 0 ? n[1] - ja - Ta : ja - n[1]) - ((t = t.x)[0] < 0 ? t[1] - ja - Ta : ja - t[1])1201    }1202    function Pe(n) {1203        var t, e = 0 / 0, r = 0 / 0, u = 0 / 0;1204        return {1205            lineStart: function() {1206                n.lineStart(), t = 11207            },1208            point: function(i, o) {1209                var a = i > 0 ? Da: - Da, c = va(i - e);1210                va(c - Da) < Ta ? (n.point(e, r = (r + o) / 2 > 0 ? ja : - ja), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(a, r), n.point(i, r), t = 0) : u !== a && c >= Da && (va(e - u) < Ta && (e -= u * Ta), va(i - a) < Ta && (i -= a * Ta), 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 = a1211            },1212            lineEnd: function() {1213                n.lineEnd(), e = r = 0 / 01214            },1215            clean: function() {1216                return 2 - t1217            }1218        }1219    }1220    function Ue(n, t, e, r) {1221        var u, i, o = Math.sin(n - e);1222        return va(o) > Ta ? 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) / 21223    }1224    function je(n, t, e, r) {1225        var u;1226        if (null == n)1227            u = e * ja, r.point( - Da, u), r.point(0, u), r.point(Da, u), r.point(Da, 0), r.point(Da, - u), r.point(0, - u), r.point( - Da, - u), r.point( - Da, 0), r.point( - Da, u);1228        else if (va(n[0] - t[0]) > Ta) {1229            var i = n[0] < t[0] ? Da: - Da;1230            u = e * i / 2, r.point( - i, u), r.point(0, u), r.point(i, u)1231        } else 1232            r.point(t[0], t[1])1233    }1234    function Fe(n, t) {1235        var e = n[0], r = n[1], u = [Math.sin(e), - Math.cos(e), 0], i = 0, o = 0;1236        _c.reset();1237        for (var a = 0, c = t.length; c > a; ++a) {1238            var l = t[a], s = l.length;1239            if (s)1240                for (var f = l[0], h = f[0], g = f[1] / 2 + Da / 4, p = Math.sin(g), v = Math.cos(g), d = 1; ;) {1241                    d === s && (d = 0), n = l[d];1242                    var m = n[0], y = n[1] / 2 + Da / 4, M = Math.sin(y), x = Math.cos(y), b = m - h, _ = b >= 0 ? 1: - 1, w = _ * b, S = w > Da, k = p * M;1243                    if (_c.add(Math.atan2(k * _ * Math.sin(w), v * x + k * Math.cos(w))), i += S ? b + _ * Pa : b, S^h >= e^m >= e) {1244                        var E = de(pe(f), pe(n));1245                        Me(E);1246                        var A = de(u, E);1247                        Me(A);1248                        var N = (S^b >= 0?-1 : 1) * nt(A[2]);1249                        (r > N || r === N && (E[0] || E[1])) && (o += S^b >= 0 ? 1 : - 1)1250                    }1251                    if (!d++)1252                        break;1253                        h = m, p = M, v = x, f = n1254                }1255            }1256        return ( - Ta > i || Ta > i && 0 > _c)^1 & o1257    }1258    function He(n) {1259        function t(n, t) {1260            return Math.cos(n) * Math.cos(t) > i1261        }1262        function e(n) {1263            var e, i, c, l, s;1264            return {1265                lineStart: function() {1266                    l = c=!1, s = 11267                },1268                point: function(f, h) {1269                    var g, p = [f, h], v = t(f, h), d = o ? v ? 0: u(f, h): v ? u(f + (0 > f ? Da : - Da), h): 0;1270                    if (!e && (l = c = v) && n.lineStart(), v !== c && (g = r(e, p), (be(e, g) || be(p, g)) && (p[0] += Ta, p[1] += Ta, v = t(p[0], p[1]))), v !== c)1271                        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;1272                    else if (a && e && o^v) {1273                        var m;1274                        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])))1275                    }1276                    !v || e && be(e, p) || n.point(p[0], p[1]), e = p, c = v, i = d1277                },1278                lineEnd: function() {1279                    c && n.lineEnd(), e = null1280                },1281                clean: function() {1282                    return s | (l && c)<<11283                }1284            }1285        }1286        function r(n, t, e) {1287            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;1288            if (!s)1289                return !e && n;1290            var f = i * c / s, h =- i * l / s, g = de(o, a), p = ye(o, f), v = ye(a, h);1291            me(p, v);1292            var d = g, m = ve(p, d), y = ve(d, d), M = m * m - y * (ve(p, p) - 1);1293            if (!(0 > M)) {1294                var x = Math.sqrt(M), b = ye(d, ( - m - x) / y);1295                if (me(b, p), b = xe(b), !e)1296                    return b;1297                var _, w = n[0], S = t[0], k = n[1], E = t[1];1298                w > S && (_ = w, w = S, S = _);1299                var A = S - w, N = va(A - Da) < Ta, C = N || Ta > A;1300                if (!N && k > E && (_ = k, k = E, E = _), C ? N ? k + E > 0^b[1] < (va(b[0] - w) < Ta ? k : E) : k <= b[1] && b[1] <= E : A > Da^(w <= b[0] && b[0] <= S)) {1301                    var z = ye(d, ( - m + x) / y);1302                    return me(z, p), [b, xe(z)]1303                }1304            }1305        }1306        function u(t, e) {1307            var r = o ? n: Da - n, u = 0;1308            return - r > t ? u|=1 : t > r && (u|=2), - r > e ? u|=4 : e > r && (u|=8), u1309        }1310        var i = Math.cos(n), o = i > 0, a = va(i) > Ta, c = gr(n, 6 * Fa);1311        return Le(t, e, c, o ? [0, - n] : [ - Da, n - Da])1312    }1313    function Oe(n, t, e, r) {1314        return function(u) {1315            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;1316            if (i = n - c, p ||!(i > 0)) {1317                if (i/=p, 0 > p) {1318                    if (h > i)1319                        return;1320                    g > i && (g = i)1321                } else if (p > 0) {1322                    if (i > g)1323                        return;1324                    i > h && (h = i)1325                }1326                if (i = e - c, p ||!(0 > i)) {1327                    if (i/=p, 0 > p) {1328                        if (i > g)1329                            return;1330                        i > h && (h = i)1331                    } else if (p > 0) {1332                        if (h > i)1333                            return;1334                        g > i && (g = i)1335                    }1336                    if (i = t - l, v ||!(i > 0)) {1337                        if (i/=v, 0 > v) {1338                            if (h > i)1339                                return;1340                            g > i && (g = i)1341                        } else if (v > 0) {1342                            if (i > g)1343                                return;1344                            i > h && (h = i)1345                        }1346                        if (i = r - l, v ||!(0 > i)) {1347                            if (i/=v, 0 > v) {1348                                if (i > g)1349                                    return;1350                                i > h && (h = i)1351                            } else if (v > 0) {1352                                if (h > i)1353                                    return;1354                                g > i && (g = i)1355                            }1356                            return h > 0 && (u.a = {1357                                x: c + h * p,1358                                y: l + h * v1359                            }), 1 > g && (u.b = {1360                                x: c + g * p,1361                                y: l + g * v1362                            }), u1363                        }1364                    }1365                }1366            }1367        }1368    }1369    function Ye(n, t, e, r) {1370        function u(r, u) {1371            return va(r[0] - n) < Ta ? u > 0 ? 0 : 3 : va(r[0] - e) < Ta ? u > 0 ? 2 : 1 : va(r[1] - t) < Ta ? u > 0 ? 1 : 0 : u > 0 ? 3 : 21372        }1373        function i(n, t) {1374            return o(n.x, t.x)1375        }1376        function o(n, t) {1377            var e = u(n, 1), r = u(t, 1);1378            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]1379        }1380        return function(a) {1381            function c(n) {1382                for (var t = 0, e = d.length, r = n[1], u = 0; e > u; ++u)1383                    for (var i, o = 1, a = d[u], c = a.length, l = a[0]; c > o; ++o)1384                        i = a[o], l[1] <= r ? i[1] > r && K(l, i, n) > 0&&++t : i[1] <= r && K(l, i, n) < 0&&--t, l = i;1385                return 0 !== t1386            }1387            function l(i, a, c, l) {1388                var s = 0, f = 0;1389                if (null == i || (s = u(i, c)) !== (f = u(a, c)) || o(i, a) < 0^c > 0) {1390                    do 1391                        l.point(0 === s || 3 === s ? n : e, s > 1 ? r : t);1392                    while ((s = (s + c + 4)%4) !== f)1393                    } else 1394                        l.point(a[0], a[1])1395            }1396            function s(u, i) {1397                return u >= n && e >= u && i >= t && r >= i1398            }1399            function f(n, t) {1400                s(n, t) && a.point(n, t)1401            }1402            function h() {1403                C.point = p, d && d.push(m = []), S=!0, w=!1, b = _ = 0 / 01404            }1405            function g() {1406                v && (p(y, M), x && w && A.rejoin(), v.push(A.buffer())), C.point = f, w && a.lineEnd()1407            }1408            function p(n, t) {1409                n = Math.max( - Uc, Math.min(Uc, n)), t = Math.max( - Uc, Math.min(Uc, t));1410                var e = s(n, t);1411                if (d && m.push([n, t]), S)1412                    y = n, M = t, x = e, S=!1, e && (a.lineStart(), a.point(n, t));1413                else if (e && w)1414                    a.point(n, t);1415                else {1416                    var r = {1417                        a: {1418                            x: b,1419                            y: _1420                        },1421                        b: {1422                            x: n,1423                            y: t1424                        }1425                    };1426                    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)1427                }1428                b = n, _ = t, w = e1429            }1430            var v, d, m, y, M, x, b, _, w, S, k, E = a, A = Re(), N = Oe(n, t, e, r), C = {1431                point: f,1432                lineStart: h,1433                lineEnd: g,1434                polygonStart: function() {1435                    a = A, v = [], d = [], k=!01436                },1437                polygonEnd: function() {1438                    a = E, v = ta.merge(v);1439                    var t = c([n, r]), e = k && t, u = v.length;1440                    (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 = null1441                }1442            };1443            return C1444        }1445    }1446    function Ie(n) {1447        var t = 0, e = Da / 3, r = ir(n), u = r(t, e);1448        return u.parallels = function(n) {1449            return arguments.length ? r(t = n[0] * Da / 180, e = n[1] * Da / 180) : [180 * (t / Da), 180 * (e / Da)]1450        }, u1451    }1452    function Ze(n, t) {1453        function e(n, t) {1454            var e = Math.sqrt(i - 2 * u * Math.sin(t)) / u;1455            return [e * Math.sin(n*=u), o - e * Math.cos(n)]1456        }1457        var r = Math.sin(n), u = (r + Math.sin(t)) / 2, i = 1 + r * (2 * u - r), o = Math.sqrt(i) / u;1458        return e.invert = function(n, t) {1459            var e = o - t;1460            return [Math.atan2(n, e) / u, nt((i - (n * n + e * e) * u * u) / (2 * u))]1461        }, e1462    }1463    function Ve() {1464        function n(n, t) {1465            Fc += u * n - r * t, r = n, u = t1466        }1467        var t, e, r, u;1468        Zc.point = function(i, o) {1469            Zc.point = n, t = r = i, e = u = o1470        }, Zc.lineEnd = function() {1471            n(t, e)1472        }1473    }1474    function Xe(n, t) {1475        Hc > n && (Hc = n), n > Yc && (Yc = n), Oc > t && (Oc = t), t > Ic && (Ic = t)1476    }1477    function $e() {1478        function n(n, t) {1479            o.push("M", n, ",", t, i)1480        }1481        function t(n, t) {1482            o.push("M", n, ",", t), a.point = e1483        }1484        function e(n, t) {1485            o.push("L", n, ",", t)1486        }1487        function r() {1488            a.point = n1489        }1490        function u() {1491            o.push("Z")1492        }1493        var i = Be(4.5), o = [], a = {1494            point: n,1495            lineStart: function() {1496                a.point = t1497            },1498            lineEnd: r,1499            polygonStart: function() {1500                a.lineEnd = u1501            },1502            polygonEnd: function() {1503                a.lineEnd = r, a.point = n1504            },1505            pointRadius: function(n) {1506                return i = Be(n), a1507            },1508            result: function() {1509                if (o.length) {1510                    var n = o.join("");1511                    return o = [], n1512                }1513            }1514        };1515        return a1516    }1517    function Be(n) {1518        return "m0," + n + "a" + n + "," + n + " 0 1,1 0," +- 2 * n + "a" + n + "," + n + " 0 1,1 0," + 2 * n + "z"1519    }1520    function We(n, t) {1521        Ec += n, Ac += t, ++Nc1522    }1523    function Je() {1524        function n(n, r) {1525            var u = n - t, i = r - e, o = Math.sqrt(u * u + i * i);1526            Cc += o * (t + n) / 2, zc += o * (e + r) / 2, qc += o, We(t = n, e = r)1527        }1528        var t, e;1529        Xc.point = function(r, u) {1530            Xc.point = n, We(t = r, e = u)1531        }1532    }1533    function Ge() {1534        Xc.point = We1535    }1536    function Ke() {1537        function n(n, t) {1538            var e = n - r, i = t - u, o = Math.sqrt(e * e + i * i);1539            Cc += o * (r + n) / 2, zc += o * (u + t) / 2, qc += o, o = u * n - r * t, Lc += o * (r + n), Tc += o * (u + t), Rc += 3 * o, We(r = n, u = t)1540        }1541        var t, e, r, u;1542        Xc.point = function(i, o) {1543            Xc.point = n, We(t = r = i, e = u = o)1544        }, Xc.lineEnd = function() {1545            n(t, e)1546        }1547    }1548    function Qe(n) {1549        function t(t, e) {1550            n.moveTo(t + o, e), n.arc(t, e, o, 0, Pa)1551        }1552        function e(t, e) {1553            n.moveTo(t, e), a.point = r1554        }1555        function r(t, e) {1556            n.lineTo(t, e)1557        }1558        function u() {1559            a.point = t1560        }1561        function i() {1562            n.closePath()1563        }1564        var o = 4.5, a = {1565            point: t,1566            lineStart: function() {1567                a.point = e1568            },1569            lineEnd: u,1570            polygonStart: function() {1571                a.lineEnd = i1572            },1573            polygonEnd: function() {1574                a.lineEnd = u, a.point = t1575            },1576            pointRadius: function(n) {1577                return o = n, a1578            },1579            result: y1580        };1581        return a1582    }1583    function nr(n) {1584        function t(n) {1585            return (a ? r : e)(n)1586        }1587        function e(t) {1588            return rr(t, function(e, r) {1589                e = n(e, r), t.point(e[0], e[1])1590            })1591        }1592        function r(t) {1593            function e(e, r) {1594                e = n(e, r), t.point(e[0], e[1])1595            }1596            function r() {1597                M = 0 / 0, S.point = i, t.lineStart()1598            }1599            function i(e, r) {1600                var i = pe([e, r]), o = n(e, r);1601                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)1602            }1603            function o() {1604                S.point = e, t.lineEnd()1605            }1606            function c() {1607                r(), S.point = l, S.lineEnd = s1608            }1609            function l(n, t) {1610                i(f = n, h = t), g = M, p = x, v = b, d = _, m = w, S.point = i1611            }1612            function s() {1613                u(M, x, y, b, _, w, g, p, f, v, d, m, a, t), S.lineEnd = o, o()1614            }1615            var f, h, g, p, v, d, m, y, M, x, b, _, w, S = {1616                point: e,1617                lineStart: r,1618                lineEnd: o,1619                polygonStart: function() {1620                    t.polygonStart(), S.lineStart = c1621                },1622                polygonEnd: function() {1623                    t.polygonEnd(), S.lineStart = r1624                }1625            };1626            return S1627        }1628        function u(t, e, r, a, c, l, s, f, h, g, p, v, d, m) {1629            var y = s - t, M = f - e, x = y * y + M * M;1630            if (x > 4 * i && d--) {1631                var b = a + g, _ = c + p, w = l + v, S = Math.sqrt(b * b + _ * _ + w * w), k = Math.asin(w/=S), E = va(va(w) - 1) < Ta || va(r - h) < Ta ? (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;1632                (L * L / x > i || va((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))1633            }1634        }1635        var i = .5, o = Math.cos(30 * Fa), a = 16;1636        return t.precision = function(n) {1637            return arguments.length ? (a = (i = n * n) > 0 && 16, t) : Math.sqrt(i)1638        }, t1639    }1640    function tr(n) {1641        var t = nr(function(t, e) {1642            return n([t * Ha, e * Ha])1643        });1644        return function(n) {1645            return or(t(n))1646        }1647    }1648    function er(n) {1649        this.stream = n1650    }1651    function rr(n, t) {1652        return {1653            point: t,1654            sphere: function() {1655                n.sphere()1656            },1657            lineStart: function() {1658                n.lineStart()1659            },1660            lineEnd: function() {1661                n.lineEnd()1662            },1663            polygonStart: function() {1664                n.polygonStart()1665            },1666            polygonEnd: function() {1667                n.polygonEnd()1668            }1669        }1670    }1671    function ur(n) {1672        return ir(function() {1673            return n1674        })()1675    }1676    function ir(n) {1677        function t(n) {1678            return n = a(n[0] * Fa, n[1] * Fa), [n[0] * h + c, l - n[1] * h]1679        }1680        function e(n) {1681            return n = a.invert((n[0] - c) / h, (l - n[1]) / h), n && [n[0] * Ha, n[1] * Ha]1682        }1683        function r() {1684            a = Ae(o = lr(m, y, M), i);1685            var n = i(v, d);1686            return c = g - n[0] * h, l = p + n[1] * h, u()1687        }1688        function u() {1689            return s && (s.valid=!1, s = null), t1690        }1691        var i, o, a, c, l, s, f = nr(function(n, t) {1692            return n = i(n, t), [n[0] * h + c, l - n[1] * h]1693        }), h = 150, g = 480, p = 250, v = 0, d = 0, m = 0, y = 0, M = 0, x = Pc, b = Et, _ = null, w = null;1694        return t.stream = function(n) {1695            return s && (s.valid=!1), s = or(x(o, f(b(n)))), s.valid=!0, s1696        }, t.clipAngle = function(n) {1697            return arguments.length ? (x = null == n ? (_ = n, Pc) : He((_ =+ n) * Fa), u()) : _1698        }, t.clipExtent = function(n) {1699            return arguments.length ? (w = n, b = n ? Ye(n[0][0], n[0][1], n[1][0], n[1][1]) : Et, u()) : w1700        }, t.scale = function(n) {1701            return arguments.length ? (h =+ n, r()) : h1702        }, t.translate = function(n) {1703            return arguments.length ? (g =+ n[0], p =+ n[1], r()) : [g, p]1704        }, t.center = function(n) {1705            return arguments.length ? (v = n[0]%360 * Fa, d = n[1]%360 * Fa, r()) : [v * Ha, d * Ha]1706        }, t.rotate = function(n) {1707            return arguments.length ? (m = n[0]%360 * Fa, y = n[1]%360 * Fa, M = n.length > 2 ? n[2]%360 * Fa : 0, r()) : [m * Ha, y * Ha, M * Ha]1708        }, ta.rebind(t, f, "precision"), function() {1709            return i = n.apply(this, arguments), t.invert = i.invert && e, r()1710        }1711    }1712    function or(n) {1713        return rr(n, function(t, e) {1714            n.point(t * Fa, e * Fa)1715        })1716    }1717    function ar(n, t) {1718        return [n, t]1719    }1720    function cr(n, t) {1721        return [n > Da ? n - Pa: - Da > n ? n + Pa: n, t]1722    }1723    function lr(n, t, e) {1724        return n ? t || e ? Ae(fr(n), hr(t, e)) : fr(n) : t || e ? hr(t, e) : cr1725    }1726    function sr(n) {1727        return function(t, e) {1728            return t += n, [t > Da ? t - Pa: - Da > t ? t + Pa: t, e]1729        }1730    }1731    function fr(n) {1732        var t = sr(n);1733        return t.invert = sr( - n), t1734    }1735    function hr(n, t) {1736        function e(n, t) {1737            var e = Math.cos(t), a = Math.cos(n) * e, c = Math.sin(n) * e, l = Math.sin(t), s = l * r + a * u;1738            return [Math.atan2(c * i - s * o, a * r - l * u), nt(s * i + c * o)]1739        }1740        var r = Math.cos(n), u = Math.sin(n), i = Math.cos(t), o = Math.sin(t);1741        return e.invert = function(n, t) {1742            var e = Math.cos(t), a = Math.cos(n) * e, c = Math.sin(n) * e, l = Math.sin(t), s = l * i - c * o;1743            return [Math.atan2(c * i + l * o, a * r + s * u), nt(s * r - a * u)]1744        }, e1745    }1746    function gr(n, t) {1747        var e = Math.cos(n), r = Math.sin(n);1748        return function(u, i, o, a) {1749            var c = o * t;1750            null != u ? (u = pr(e, u), i = pr(e, i), (o > 0 ? i > u : u > i) && (u += o * Pa)) : (u = n + o * Pa, i = n - .5 * c);1751            for (var l, s = u; o > 0 ? s > i : i > s; s -= c)1752                a.point((l = xe([e, - r * Math.cos(s), - r * Math.sin(s)]))[0], l[1])1753        }1754    }1755    function pr(n, t) {1756        var e = pe(t);1757        e[0] -= n, Me(e);1758        var r = Q( - e[1]);1759        return (( - e[2] < 0?-r : r) + 2 * Math.PI - Ta)%(2 * Math.PI)1760    }1761    function vr(n, t, e) {1762        var r = ta.range(n, t - Ta, e).concat(t);1763        return function(n) {1764            return r.map(function(t) {1765                return [n, t]1766            })1767        }1768    }1769    function dr(n, t, e) {1770        var r = ta.range(n, t - Ta, e).concat(t);1771        return function(n) {1772            return r.map(function(t) {1773                return [t, n]1774            })1775        }1776    }1777    function mr(n) {1778        return n.source1779    }1780    function yr(n) {1781        return n.target1782    }1783    function Mr(n, t, e, r) {1784        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(ut(r - t) + u * o * ut(e - n))), g = 1 / Math.sin(h), p = h ? function(n) {1785            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;1786            return [Math.atan2(u, r) * Ha, Math.atan2(o, Math.sqrt(r * r + u * u)) * Ha]1787        }1788        : function() {1789            return [n * Ha, t * Ha]1790        };1791        return p.distance = h, p1792    }1793    function xr() {1794        function n(n, u) {1795            var i = Math.sin(u*=Fa), o = Math.cos(u), a = va((n*=Fa) - t), c = Math.cos(a);1796            $c += 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 = o1797        }1798        var t, e, r;1799        Bc.point = function(u, i) {1800            t = u * Fa, e = Math.sin(i*=Fa), r = Math.cos(i), Bc.point = n1801        }, Bc.lineEnd = function() {1802            Bc.point = Bc.lineEnd = y1803        }1804    }1805    function br(n, t) {1806        function e(t, e) {1807            var r = Math.cos(t), u = Math.cos(e), i = n(r * u);1808            return [i * u * Math.sin(t), i * Math.sin(e)]1809        }1810        return e.invert = function(n, e) {1811            var r = Math.sqrt(n * n + e * e), u = t(r), i = Math.sin(u), o = Math.cos(u);1812            return [Math.atan2(n * i, r * o), Math.asin(r && e * i / r)]1813        }, e1814    }1815    function _r(n, t) {1816        function e(n, t) {1817            o > 0?-ja + Ta > t && (t =- ja + Ta) : t > ja - Ta && (t = ja - Ta);1818            var e = o / Math.pow(u(t), i);1819            return [e * Math.sin(i * n), o - e * Math.cos(i * n)]1820        }1821        var r = Math.cos(n), u = function(n) {1822            return Math.tan(Da / 4 + n / 2)1823        }, 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;1824        return i ? (e.invert = function(n, t) {1825            var e = o - t, r = G(i) * Math.sqrt(n * n + e * e);1826            return [Math.atan2(n, e) / i, 2 * Math.atan(Math.pow(o / r, 1 / i)) - ja]1827        }, e) : Sr1828    }1829    function wr(n, t) {1830        function e(n, t) {1831            var e = i - t;1832            return [e * Math.sin(u * n), i - e * Math.cos(u * n)]1833        }1834        var r = Math.cos(n), u = n === t ? Math.sin(n): (r - Math.cos(t)) / (t - n), i = r / u + n;1835        return va(u) < Ta ? ar : (e.invert = function(n, t) {1836            var e = i - t;1837            return [Math.atan2(n, e) / u, i - G(u) * Math.sqrt(n * n + e * e)]1838        }, e)1839    }1840    function Sr(n, t) {1841        return [n, Math.log(Math.tan(Da / 4 + t / 2))]1842    }1843    function kr(n) {1844        var t, e = ur(n), r = e.scale, u = e.translate, i = e.clipExtent;1845        return e.scale = function() {1846            var n = r.apply(e, arguments);1847            return n === e ? t ? e.clipExtent(null) : e : n1848        }, e.translate = function() {1849            var n = u.apply(e, arguments);1850            return n === e ? t ? e.clipExtent(null) : e : n1851        }, e.clipExtent = function(n) {1852            var o = i.apply(e, arguments);1853            if (o === e) {1854                if (t = null == n) {1855                    var a = Da * r(), c = u();1856                    i([[c[0] - a, c[1] - a], [c[0] + a, c[1] + a]])1857                }1858            } else 1859                t && (o = null);1860            return o1861        }, e.clipExtent(null)1862    }1863    function Er(n, t) {1864        return [Math.log(Math.tan(Da / 4 + t / 2)), - n]1865    }1866    function Ar(n) {1867        return n[0]1868    }1869    function Nr(n) {1870        return n[1]1871    }1872    function Cr(n) {1873        for (var t = n.length, e = [0, 1], r = 2, u = 2; t > u; u++) {1874            for (; r > 1 && K(n[e[r - 2]], n[e[r - 1]], n[u]) <= 0;)1875                --r;1876            e[r++] = u1877        }1878        return e.slice(0, r)1879    }1880    function zr(n, t) {1881        return n[0] - t[0] || n[1] - t[1]1882    }1883    function qr(n, t, e) {1884        return (e[0] - t[0]) * (n[1] - t[1]) < (e[1] - t[1]) * (n[0] - t[0])1885    }1886    function Lr(n, t, e, r) {1887        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);1888        return [u + h * o, c + h * s]1889    }1890    function Tr(n) {1891        var t = n[0], e = n[n.length - 1];1892        return !(t[0] - e[0] || t[1] - e[1])1893    }1894    function Rr() {1895        tu(this), this.edge = this.site = this.circle = null1896    }1897    function Dr(n) {1898        var t = ol.pop() || new Rr;1899        return t.site = n, t1900    }1901    function Pr(n) {1902        Xr(n), rl.remove(n), ol.push(n), tu(n)1903    }1904    function Ur(n) {1905        var t = n.circle, e = t.x, r = t.cy, u = {1906            x: e,1907            y: r1908        }, i = n.P, o = n.N, a = [n];1909        Pr(n);1910        for (var c = i; c.circle && va(e - c.circle.x) < Ta && va(r - c.circle.cy) < Ta;)1911            i = c.P, a.unshift(c), Pr(c), c = i;1912        a.unshift(c), Xr(c);1913        for (var l = o; l.circle && va(e - l.circle.x) < Ta && va(r - l.circle.cy) < Ta;)1914            o = l.N, a.push(l), Pr(l), l = o;1915        a.push(l), Xr(l);1916        var s, f = a.length;1917        for (s = 1; f > s; ++s)1918            l = a[s], c = a[s - 1], Kr(l.edge, c.site, l.site, u);1919        c = a[0], l = a[f - 1], l.edge = Jr(c.site, l.site, null, u), Vr(c), Vr(l)1920    }1921    function jr(n) {1922        for (var t, e, r, u, i = n.x, o = n.y, a = rl._; a;)1923            if (r = Fr(a, o) - i, r > Ta)1924                a = a.L;1925            else {1926                if (u = i - Hr(a, o), !(u > Ta)) {1927                    r>-Ta ? (t = a.P, e = a) : u>-Ta ? (t = a, e = a.N) : t = e = a;1928                    break1929                }1930                if (!a.R) {1931                    t = a;1932                    break1933                }1934                a = a.R1935            }1936        var c = Dr(n);1937        if (rl.insert(t, c), t || e) {1938            if (t === e)1939                return Xr(t), e = Dr(t.site), rl.insert(c, e), c.edge = e.edge = Jr(t.site, c.site), Vr(t), Vr(e), void 0;1940            if (!e)1941                return c.edge = Jr(t.site, c.site), void 0;1942            Xr(t), Xr(e);1943            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 = {1944                x: (d * y - g * M) / m + s,1945                y: (h * M - v * y) / m + f1946            };1947            Kr(e.edge, l, p, x), c.edge = Jr(l, n, null, x), e.edge = Jr(n, p, null, x), Vr(t), Vr(e)1948        }1949    }1950    function Fr(n, t) {1951        var e = n.site, r = e.x, u = e.y, i = u - t;1952        if (!i)1953            return r;1954        var o = n.P;1955        if (!o)1956            return - 1 / 0;1957        e = o.site;1958        var a = e.x, c = e.y, l = c - t;1959        if (!l)1960            return a;1961        var s = a - r, f = 1 / i - 1 / l, h = s / l;1962        return f ? ( - h + Math.sqrt(h * h - 2 * f * (s * s / ( - 2 * l) - c + l / 2 + u - i / 2))) / f + r : (r + a) / 21963    }1964    function Hr(n, t) {1965        var e = n.N;1966        if (e)1967            return Fr(e, t);1968        var r = n.site;1969        return r.y === t ? r.x : 1 / 01970    }1971    function Or(n) {1972        this.site = n, this.edges = []1973    }1974    function Yr(n) {1975        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 = el, d = v.length; d--;)1976            if (i = v[d], i && i.prepare())1977                for (a = i.edges, c = a.length, o = 0; c > o;)1978                    s = a[o].end(), r = s.x, u = s.y, l = a[++o%c].start(), t = l.x, e = l.y, (va(r - t) > Ta || va(u - e) > Ta) && (a.splice(o, 0, new Qr(Gr(i.site, s, va(r - f) < Ta && p - u > Ta ? {1979                        x: f,1980                        y: va(t - f) < Ta ? e: p1981                    } : va(u - p) < Ta && h - r > Ta ? {1982                        x: va(e - p) < Ta ? t: h,1983                        y: p1984                    } : va(r - h) < Ta && u - g > Ta ? {1985                        x: h,1986                        y: va(t - h) < Ta ? e: g1987                    } : va(u - g) < Ta && r - f > Ta ? {1988                        x: va(e - g) < Ta ? t: f,1989                        y: g1990                    } : null), i.site, null)), ++c)1991    }1992    function Ir(n, t) {1993        return t.angle - n.angle1994    }1995    function Zr() {1996        tu(this), this.x = this.y = this.arc = this.site = this.cy = null1997    }1998    function Vr(n) {1999        var t = n.P, e = n.N;2000        if (t && e) {2001            var r = t.site, u = n.site, i = e.site;2002            if (r !== i) {2003                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);2004                if (!(h>=-Ra)) {2005                    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 = al.pop() || new Zr;2006                    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;2007                    for (var y = null, M = il._; M;)2008                        if (m.y < M.y || m.y === M.y && m.x <= M.x) {2009                            if (!M.L) {2010                                y = M.P;2011                                break2012                            }2013                            M = M.L2014                        } else {2015                            if (!M.R) {2016                                y = M;2017                                break2018                            }2019                            M = M.R2020                        }2021                    il.insert(y, m), y || (ul = m)2022                }2023            }2024        }2025    }2026    function Xr(n) {2027        var t = n.circle;2028        t && (t.P || (ul = t.N), il.remove(t), al.push(t), tu(t), n.circle = null)2029    }2030    function $r(n) {2031        for (var t, e = tl, r = Oe(n[0][0], n[0][1], n[1][0], n[1][1]), u = e.length; u--;)2032            t = e[u], (!Br(t, n) ||!r(t) || va(t.a.x - t.b.x) < Ta && va(t.a.y - t.b.y) < Ta) && (t.a = t.b = null, e.splice(u, 1))2033    }2034    function Br(n, t) {2035        var e = n.b;2036        if (e)2037            return !0;2038        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;2039        if (v === g) {2040            if (o > d || d >= a)2041                return;2042            if (h > p) {2043                if (i) {2044                    if (i.y >= l)2045                        return 2046                } else 2047                    i = {2048                        x: d,2049                        y: c2050                    };2051                e = {2052                    x: d,2053                    y: l2054                }2055            } else {2056                if (i) {2057                    if (i.y < c)2058                        return 2059                } else 2060                    i = {2061                        x: d,2062                        y: l2063                    };2064                e = {2065                    x: d,2066                    y: c2067                }2068            }2069        } else if (r = (h - p) / (v - g), u = m - r * d, - 1 > r || r > 1)2070            if (h > p) {2071                if (i) {2072                    if (i.y >= l)2073                        return 2074                } else 2075                    i = {2076                        x: (c - u) / r,2077                        y: c2078                    };2079                    e = {2080                        x: (l - u) / r,2081                        y: l2082                    }2083            } else {2084                if (i) {2085                    if (i.y < c)2086                        return 2087                } else 2088                    i = {2089                        x: (l - u) / r,2090                        y: l2091                    };2092                    e = {2093                        x: (c - u) / r,2094                        y: c2095                    }2096            } else if (v > g) {2097            if (i) {2098                if (i.x >= a)2099                    return 2100            } else 2101                i = {2102                    x: o,2103                    y: r * o + u2104                };2105            e = {2106                x: a,2107                y: r * a + u2108            }2109        } else {2110            if (i) {2111                if (i.x < o)2112                    return 2113            } else 2114                i = {2115                    x: a,2116                    y: r * a + u2117                };2118            e = {2119                x: o,2120                y: r * o + u2121            }2122        }2123        return n.a = i, n.b = e, !02124    }2125    function Wr(n, t) {2126        this.l = n, this.r = t, this.a = this.b = null2127    }2128    function Jr(n, t, e, r) {2129        var u = new Wr(n, t);2130        return tl.push(u), e && Kr(u, n, t, e), r && Kr(u, t, n, r), el[n.i].edges.push(new Qr(u, n, t)), el[t.i].edges.push(new Qr(u, t, n)), u2131    }2132    function Gr(n, t, e) {2133        var r = new Wr(n, null);2134        return r.a = t, r.b = e, tl.push(r), r2135    }2136    function Kr(n, t, e, r) {2137        n.a || n.b ? n.l === e ? n.b = r : n.a = r : (n.a = r, n.l = t, n.r = e)2138    }2139    function Qr(n, t, e) {2140        var r = n.a, u = n.b;2141        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)2142    }2143    function nu() {2144        this._ = null2145    }2146    function tu(n) {2147        n.U = n.C = n.L = n.R = n.P = n.N = null2148    }2149    function eu(n, t) {2150        var e = t, r = t.R, u = e.U;2151        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 = e2152    }2153    function ru(n, t) {2154        var e = t, r = t.L, u = e.U;2155        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 = e2156    }2157    function uu(n) {2158        for (; n.L;)2159            n = n.L;2160        return n2161    }2162    function iu(n, t) {2163        var e, r, u, i = n.sort(ou).pop();2164        for (tl = [], el = new Array(n.length), rl = new nu, il = new nu; ;)2165            if (u = ul, i && (!u || i.y < u.y || i.y === u.y && i.x < u.x))(i.x !== e || i.y !== r) && (el[i.i] = new Or(i), jr(i), e = i.x, r = i.y), i = n.pop();2166        else {2167            if (!u)2168                break;2169                Ur(u.arc)2170        }2171        t && ($r(t), Yr(t));2172        var o = {2173            cells: el,2174            edges: tl2175        };2176        return rl = il = tl = el = null, o2177    }2178    function ou(n, t) {2179        return t.y - n.y || t.x - n.x2180    }2181    function au(n, t, e) {2182        return (n.x - e.x) * (t.y - n.y) - (n.x - t.x) * (e.y - n.y)2183    }2184    function cu(n) {2185        return n.x2186    }2187    function lu(n) {2188        return n.y2189    }2190    function su() {2191        return {2192            leaf: !0,2193            nodes: [],2194            point: null,2195            x: null,2196            y: null2197        }2198    }2199    function fu(n, t, e, r, u, i) {2200        if (!n(t, e, r, u, i)) {2201            var o = .5 * (e + u), a = .5 * (r + i), c = t.nodes;2202            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)2203        }2204    }2205    function hu(n, t, e, r, u, i, o) {2206        var a, c = 1 / 0;2207        return function l(n, s, f, h, g) {2208            if (!(s > i || f > o || r > h || u > g)) {2209                if (p = n.point) {2210                    var p, v = t - p[0], d = e - p[1], m = v * v + d * d;2211                    if (c > m) {2212                        var y = Math.sqrt(c = m);2213                        r = t - y, u = e - y, i = t + y, o = e + y, a = p2214                    }2215                }2216                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)2217                    if (n = M[3 & S])2218                        switch (3 & S) {2219                        case 0:2220                            l(n, s, f, x, b);2221                            break;2222                        case 1:2223                            l(n, x, f, h, b);2224                            break;2225                        case 2:2226                            l(n, s, b, x, g);2227                            break;2228                        case 3:2229                            l(n, x, b, h, g)2230                        }2231            }2232        }(n, r, u, i, o), a2233    }2234    function gu(n, t) {2235        n = ta.rgb(n), t = ta.rgb(t);2236        var e = n.r, r = n.g, u = n.b, i = t.r - e, o = t.g - r, a = t.b - u;2237        return function(n) {2238            return "#" + Mt(Math.round(e + i * n)) + Mt(Math.round(r + o * n)) + Mt(Math.round(u + a * n))2239        }2240    }2241    function pu(n, t) {2242        var e, r = {}, u = {};2243        for (e in n)2244            e in t ? r[e] = mu(n[e], t[e]) : u[e] = n[e];2245        for (e in t)2246            e in n || (u[e] = t[e]);2247        return function(n) {2248            for (e in r)2249                u[e] = r[e](n);2250            return u2251        }2252    }2253    function vu(n, t) {2254        return n =+ n, t =+ t, function(e) {2255            return n * (1 - e) + t * e2256        }2257    }2258    function du(n, t) {2259        var e, r, u, i = ll.lastIndex = sl.lastIndex = 0, o =- 1, a = [], c = [];2260        for (n += "", t += ""; (e = ll.exec(n)) && (r = sl.exec(t));)(u = r.index) 2261            > 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({2262                i: o,2263                x: vu(e, r)2264            })), i = sl.lastIndex;2265        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) {2266            return t(n) + ""2267        }) : function() {2268            return t2269        } : (t = c.length, function(n) {2270            for (var e, r = 0; t > r; ++r)2271                a[(e = c[r]).i] = e.x(n);2272            return a.join("")2273        })2274    }2275    function mu(n, t) {2276        for (var e, r = ta.interpolators.length; --r >= 0&&!(e = ta.interpolators[r](n, t)););2277        return e2278    }2279    function yu(n, t) {2280        var e, r = [], u = [], i = n.length, o = t.length, a = Math.min(n.length, t.length);2281        for (e = 0; a > e; ++e)2282            r.push(mu(n[e], t[e]));2283        for (; i > e; ++e)2284            u[e] = n[e];2285        for (; o > e; ++e)2286            u[e] = t[e];2287        return function(n) {2288            for (e = 0; a > e; ++e)2289                u[e] = r[e](n);2290            return u2291        }2292    }2293    function Mu(n) {2294        return function(t) {2295            return 0 >= t ? 0 : t >= 1 ? 1 : n(t)2296        }2297    }2298    function xu(n) {2299        return function(t) {2300            return 1 - n(1 - t)2301        }2302    }2303    function bu(n) {2304        return function(t) {2305            return .5 * (.5 > t ? n(2 * t) : 2 - n(2 - 2 * t))2306        }2307    }2308    function _u(n) {2309        return n * n2310    }2311    function wu(n) {2312        return n * n * n2313    }2314    function Su(n) {2315        if (0 >= n)2316            return 0;2317        if (n >= 1)2318            return 1;2319        var t = n * n, e = t * n;2320        return 4 * (.5 > n ? e : 3 * (n - t) + e - .75)2321    }2322    function ku(n) {2323        return function(t) {2324            return Math.pow(t, n)2325        }2326    }2327    function Eu(n) {2328        return 1 - Math.cos(n * ja)2329    }2330    function Au(n) {2331        return Math.pow(2, 10 * (n - 1))2332    }2333    function Nu(n) {2334        return 1 - Math.sqrt(1 - n * n)2335    }2336    function Cu(n, t) {2337        var e;2338        return arguments.length < 2 && (t = .45), arguments.length ? e = t / Pa * Math.asin(1 / n) : (n = 1, e = t / 4), function(r) {2339            return 1 + n * Math.pow(2, - 10 * r) * Math.sin((r - e) * Pa / t)2340        }2341    }2342    function zu(n) {2343        return n || (n = 1.70158), function(t) {2344            return t * t * ((n + 1) * t - n)2345        }2346    }2347    function qu(n) {2348        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 + .9843752349    }2350    function Lu(n, t) {2351        n = ta.hcl(n), t = ta.hcl(t);2352        var e = n.h, r = n.c, u = n.l, i = t.h - e, o = t.c - r, a = t.l - u;2353        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) {2354            return lt(e + i * n, r + o * n, u + a * n) + ""2355        }2356    }2357    function Tu(n, t) {2358        n = ta.hsl(n), t = ta.hsl(t);2359        var e = n.h, r = n.s, u = n.l, i = t.h - e, o = t.s - r, a = t.l - u;2360        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) {2361            return at(e + i * n, r + o * n, u + a * n) + ""2362        }2363    }2364    function Ru(n, t) {2365        n = ta.lab(n), t = ta.lab(t);2366        var e = n.l, r = n.a, u = n.b, i = t.l - e, o = t.a - r, a = t.b - u;2367        return function(n) {2368            return ft(e + i * n, r + o * n, u + a * n) + ""2369        }2370    }2371    function Du(n, t) {2372        return t -= n, function(e) {2373            return Math.round(n + t * e)2374        }2375    }2376    function Pu(n) {2377        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;2378        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])) * Ha, this.translate = [n.e, n.f], this.scale = [r, i], this.skew = i ? Math.atan2(u, i) * Ha : 02379    }2380    function Uu(n, t) {2381        return n[0] * t[0] + n[1] * t[1]2382    }2383    function ju(n) {2384        var t = Math.sqrt(Uu(n, n));2385        return t && (n[0]/=t, n[1]/=t), t2386    }2387    function Fu(n, t, e) {2388        return n[0] += e * t[0], n[1] += e * t[1], n2389    }2390    function Hu(n, t) {2391        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;2392        return a[0] != c[0] || a[1] != c[1] ? (r.push("translate(", null, ",", null, ")"), u.push({2393            i: 1,2394            x: vu(a[0], c[0])2395        }, {2396            i: 3,2397            x: vu(a[1], c[1])2398        })) : c[0] || c[1] ? r.push("translate(" + c + ")") : r.push(""), l != s ? (l - s > 180 ? s += 360 : s - l > 180 && (l += 360), u.push({2399            i: r.push(r.pop() + "rotate(", null, ")") - 2,2400            x: vu(l, s)2401        })) : s && r.push(r.pop() + "rotate(" + s + ")"), f != h ? u.push({2402            i: r.push(r.pop() + "skewX(", null, ")") - 2,2403            x: vu(f, h)2404        }) : 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({2405            i: e - 4,2406            x: vu(g[0], p[0])2407        }, {2408            i: e - 2,2409            x: vu(g[1], p[1])2410        })) : (1 != p[0] || 1 != p[1]) && r.push(r.pop() + "scale(" + p + ")"), e = u.length, function(n) {2411            for (var t, i =- 1; ++i < e;)2412                r[(t = u[i]).i] = t.x(n);2413            return r.join("")2414        }2415    }2416    function Ou(n, t) {2417        return t = (t -= n =+ n) || 1 / t, function(e) {2418            return (e - n) / t2419        }2420    }2421    function Yu(n, t) {2422        return t = (t -= n =+ n) || 1 / t, function(e) {2423            return Math.max(0, Math.min(1, (e - n) / t))2424        }2425    }2426    function Iu(n) {2427        for (var t = n.source, e = n.target, r = Vu(t, e), u = [t]; t !== r;)2428            t = t.parent, u.push(t);2429        for (var i = u.length; e !== r;)2430            u.splice(i, 0, e), e = e.parent;2431        return u2432    }2433    function Zu(n) {2434        for (var t = [], e = n.parent; null != e;)2435            t.push(n), n = e, e = e.parent;2436        return t.push(n), t2437    }2438    function Vu(n, t) {2439        if (n === t)2440            return n;2441        for (var e = Zu(n), r = Zu(t), u = e.pop(), i = r.pop(), o = null; u === i;)2442            o = u, u = e.pop(), i = r.pop();2443        return o2444    }2445    function Xu(n) {2446        n.fixed|=22447    }2448    function $u(n) {2449        n.fixed&=-72450    }2451    function Bu(n) {2452        n.fixed|=4, n.px = n.x, n.py = n.y2453    }2454    function Wu(n) {2455        n.fixed&=-52456    }2457    function Ju(n, t, e) {2458        var r = 0, u = 0;2459        if (n.charge = 0, !n.leaf)2460            for (var i, o = n.nodes, a = o.length, c =- 1; ++c < a;)2461                i = o[c], null != i && (Ju(i, t, e), n.charge += i.charge, r += i.charge * i.cx, u += i.charge * i.cy);2462        if (n.point) {2463            n.leaf || (n.point.x += Math.random() - .5, n.point.y += Math.random() - .5);2464            var l = t * e[n.point.index];2465            n.charge += n.pointCharge = l, r += l * n.point.x, u += l * n.point.y2466        }2467        n.cx = r / n.charge, n.cy = u / n.charge2468    }2469    function Gu(n, t) {2470        return ta.rebind(n, t, "sort", "children", "value"), n.nodes = n, n.links = ri, n2471    }2472    function Ku(n, t) {2473        for (var e = [n]; null != (n = e.pop());)2474            if (t(n), (u = n.children) && (r = u.length))2475                for (var r, u; --r >= 0;)2476                    e.push(u[r])2477    }2478    function Qu(n, t) {2479        for (var e = [n], r = []; null != (n = e.pop());)2480            if (r.push(n), (i = n.children) && (u = i.length))2481                for (var u, i, o =- 1; ++o < u;)2482                    e.push(i[o]);2483        for (; null != (n = r.pop());)2484            t(n)2485    }2486    function ni(n) {2487        return n.children2488    }2489    function ti(n) {2490        return n.value2491    }2492    function ei(n, t) {2493        return t.value - n.value2494    }2495    function ri(n) {2496        return ta.merge(n.map(function(n) {2497            return (n.children || []).map(function(t) {2498                return {2499                    source: n,2500                    target: t2501                }2502            })2503        }))2504    }2505    function ui(n) {2506        return n.x2507    }2508    function ii(n) {2509        return n.y2510    }2511    function oi(n, t, e) {2512        n.y0 = t, n.y = e2513    }2514    function ai(n) {2515        return ta.range(n.length)2516    }2517    function ci(n) {2518        for (var t =- 1, e = n[0].length, r = []; ++t < e;)2519            r[t] = 0;2520        return r2521    }2522    function li(n) {2523        for (var t, e = 1, r = 0, u = n[0][1], i = n.length; i > e; ++e)(t = n[e][1]) 2524            > u && (r = e, u = t);2525        return r2526    }2527    function si(n) {2528        return n.reduce(fi, 0)2529    }2530    function fi(n, t) {2531        return n + t[1]2532    }2533    function hi(n, t) {2534        return gi(n, Math.ceil(Math.log(t.length) / Math.LN2 + 1))2535    }2536    function gi(n, t) {2537        for (var e =- 1, r =+ n[0], u = (n[1] - r) / t, i = []; ++e <= t;)2538            i[e] = u * e + r;2539        return i2540    }2541    function pi(n) {2542        return [ta.min(n), ta.max(n)]2543    }2544    function vi(n, t) {2545        return n.value - t.value2546    }2547    function di(n, t) {2548        var e = n._pack_next;2549        n._pack_next = t, t._pack_prev = n, t._pack_next = e, e._pack_prev = t2550    }2551    function mi(n, t) {2552        n._pack_next = t, t._pack_prev = n2553    }2554    function yi(n, t) {2555        var e = t.x - n.x, r = t.y - n.y, u = n.r + t.r;2556        return .999 * u * u > e * e + r * r2557    }2558    function Mi(n) {2559        function t(n) {2560            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)2561        }2562        if ((e = n.children) && (l = e.length)) {2563            var e, r, u, i, o, a, c, l, s = 1 / 0, f =- 1 / 0, h = 1 / 0, g =- 1 / 0;2564            if (e.forEach(xi), r = e[0], r.x =- r.r, r.y = 0, t(r), l > 1 && (u = e[1], u.x = u.r, u.y = 0, t(u), l > 2))2565                for (i = e[2], wi(r, u, i), t(i), di(r, i), r._pack_prev = i, di(i, u), u = r._pack_next, o = 3; l > o; o++) {2566                    wi(r, u, i = e[o]);2567                    var p = 0, v = 1, d = 1;2568                    for (a = u._pack_next; a !== u; a = a._pack_next, v++)2569                        if (yi(a, i)) {2570                            p = 1;2571                            break2572                        }2573                        if (1 == p)2574                            for (c = r._pack_prev; c !== a._pack_prev&&!yi(c, i); c = c._pack_prev, d++);2575                            p ? (d > v || v == d && u.r < r.r ? mi(r, u = a) : mi(r = c, u), o--) : (di(r, i), u = i, t(i))2576                        }2577            var m = (s + f) / 2, y = (h + g) / 2, M = 0;2578            for (o = 0; l > o; o++)2579                i = e[o], i.x -= m, i.y -= y, M = Math.max(M, i.r + Math.sqrt(i.x * i.x + i.y * i.y));2580            n.r = M, e.forEach(bi)2581        }2582    }2583    function xi(n) {2584        n._pack_next = n._pack_prev = n2585    }2586    function bi(n) {2587        delete n._pack_next, delete n._pack_prev2588    }2589    function _i(n, t, e, r) {2590        var u = n.children;2591        if (n.x = t += r * n.x, n.y = e += r * n.y, n.r*=r, u)2592            for (var i =- 1, o = u.length; ++i < o;)2593                _i(u[i], t, e, r)2594        }2595    function wi(n, t, e) {2596        var r = n.r + e.r, u = t.x - n.x, i = t.y - n.y;2597        if (r && (u || i)) {2598            var o = t.r + e.r, a = u * u + i * i;2599            o*=o, r*=r;2600            var c = .5 + (r - o) / (2 * a), l = Math.sqrt(Math.max(0, 2 * o * (r + a) - (r -= a) * r - o * o)) / (2 * a);2601            e.x = n.x + c * u + l * i, e.y = n.y + c * i - l * u2602        } else 2603            e.x = n.x + r, e.y = n.y2604    }2605    function Si(n, t) {2606        return n.parent == t.parent ? 1 : 22607    }2608    function ki(n) {2609        var t = n.children;2610        return t.length ? t[0] : n.t2611    }2612    function Ei(n) {2613        var t, e = n.children;2614        return (t = e.length) ? e[t - 1] : n.t2615    }2616    function Ai(n, t, e) {2617        var r = e / (t.i - n.i);2618        t.c -= r, t.s += e, n.c += r, t.z += e, t.m += e2619    }2620    function Ni(n) {2621        for (var t, e = 0, r = 0, u = n.children, i = u.length; --i >= 0;)2622            t = u[i], t.z += e, t.m += e, e += t.s + (r += t.c)2623    }2624    function Ci(n, t, e) {2625        return n.a.parent === t.parent ? n.a : e2626    }2627    function zi(n) {2628        return 1 + ta.max(n, function(n) {2629            return n.y2630        })2631    }2632    function qi(n) {2633        return n.reduce(function(n, t) {2634            return n + t.x2635        }, 0) / n.length2636    }2637    function Li(n) {2638        var t = n.children;2639        return t && t.length ? Li(t[0]) : n2640    }2641    function Ti(n) {2642        var t, e = n.children;2643        return e && (t = e.length) ? Ti(e[t - 1]) : n2644    }2645    function Ri(n) {2646        return {2647            x: n.x,2648            y: n.y,2649            dx: n.dx,2650            dy: n.dy2651        }2652    }2653    function Di(n, t) {2654        var e = n.x + t[3], r = n.y + t[0], u = n.dx - t[1] - t[3], i = n.dy - t[0] - t[2];2655        return 0 > u && (e += u / 2, u = 0), 0 > i && (r += i / 2, i = 0), {2656            x: e,2657            y: r,2658            dx: u,2659            dy: i2660        }2661    }2662    function Pi(n) {2663        var t = n[0], e = n[n.length - 1];2664        return e > t ? [t, e] : [e, t]2665    }2666    function Ui(n) {2667        return n.rangeExtent ? n.rangeExtent() : Pi(n.range())2668    }2669    function ji(n, t, e, r) {2670        var u = e(n[0], n[1]), i = r(t[0], t[1]);2671        return function(n) {2672            return i(u(n))2673        }2674    }2675    function Fi(n, t) {2676        var e, r = 0, u = n.length - 1, i = n[r], o = n[u];2677        return i > o && (e = r, r = u, u = e, e = i, i = o, o = e), n[r] = t.floor(i), n[u] = t.ceil(o), n2678    }2679    function Hi(n) {2680        return n ? {2681            floor: function(t) {2682                return Math.floor(t / n) * n2683            },2684            ceil: function(t) {2685                return Math.ceil(t / n) * n2686            }2687        } : bl2688    }2689    function Oi(n, t, e, r) {2690        var u = [], i = [], o = 0, a = Math.min(n.length, t.length) - 1;2691        for (n[a] < n[0] && (n = n.slice()2692            .reverse(), t = t.slice().reverse());2693        ++o <= a;2694        )u.push(e(n[o - 1], n[o])), i.push(r(t[o - 1], t[o]));2695        return function(t) {2696            var e = ta.bisect(n, t, 1, a) - 1;2697            return i[e](u[e](t))2698        }2699    }2700    function Yi(n, t, e, r) {2701        function u() {2702            var u = Math.min(n.length, t.length) > 2 ? Oi: ji, c = r ? Yu: Ou;2703            return o = u(n, t, c, e), a = u(t, n, c, mu), i2704        }2705        function i(n) {2706            return o(n)2707        }2708        var o, a;2709        return i.invert = function(n) {2710            return a(n)2711        }, i.domain = function(t) {2712            return arguments.length ? (n = t.map(Number), u()) : n2713        }, i.range = function(n) {2714            return arguments.length ? (t = n, u()) : t2715        }, i.rangeRound = function(n) {2716            return i.range(n).interpolate(Du)2717        }, i.clamp = function(n) {2718            return arguments.length ? (r = n, u()) : r2719        }, i.interpolate = function(n) {2720            return arguments.length ? (e = n, u()) : e2721        }, i.ticks = function(t) {2722            return Xi(n, t)2723        }, i.tickFormat = function(t, e) {2724            return $i(n, t, e)2725        }, i.nice = function(t) {2726            return Zi(n, t), u()2727        }, i.copy = function() {2728            return Yi(n, t, e, r)2729        }, u()2730    }2731    function Ii(n, t) {2732        return ta.rebind(n, t, "range", "rangeRound", "interpolate", "clamp")2733    }2734    function Zi(n, t) {2735        return Fi(n, Hi(Vi(n, t)[2]))2736    }2737    function Vi(n, t) {2738        null == t && (t = 10);2739        var e = Pi(n), r = e[1] - e[0], u = Math.pow(10, Math.floor(Math.log(r / t) / Math.LN10)), i = t / r * u;2740        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, e2741    }2742    function Xi(n, t) {2743        return ta.range.apply(ta, Vi(n, t))2744    }2745    function $i(n, t, e) {2746        var r = Vi(n, t);2747        if (e) {2748            var u = lc.exec(e);2749            if (u.shift(), "s" === u[8]) {2750                var i = ta.formatPrefix(Math.max(va(r[0]), va(r[1])));2751                return u[7] || (u[7] = "." + Bi(i.scale(r[2]))), u[8] = "f", e = ta.format(u.join("")), function(n) {2752                    return e(i.scale(n)) + i.symbol2753                }2754            }2755            u[7] || (u[7] = "." + Wi(u[8], r)), e = u.join("")2756        } else 2757            e = ",." + Bi(r[2]) + "f";2758        return ta.format(e)2759    }2760    function Bi(n) {2761        return - Math.floor(Math.log(n) / Math.LN10 + .01)2762    }2763    function Wi(n, t) {2764        var e = Bi(t[2]);2765        return n in _l ? Math.abs(e - Bi(Math.max(va(t[0]), va(t[1])))) + + ("e" !== n) : e - 2 * ("%" === n)2766    }2767    function Ji(n, t, e, r) {2768        function u(n) {2769            return (e ? Math.log(0 > n ? 0 : n) : - Math.log(n > 0 ? 0 : - n)) / Math.log(t)2770        }2771        function i(n) {2772            return e ? Math.pow(t, n) : - Math.pow(t, - n)2773        }2774        function o(t) {2775            return n(u(t))2776        }2777        return o.invert = function(t) {2778            return i(n.invert(t))2779        }, o.domain = function(t) {2780            return arguments.length ? (e = t[0] >= 0, n.domain((r = t.map(Number)).map(u)), o) : r2781        }, o.base = function(e) {2782            return arguments.length ? (t =+ e, n.domain(r.map(u)), o) : t2783        }, o.nice = function() {2784            var t = Fi(r.map(u), e ? Math : Sl);2785            return n.domain(t), r = t.map(i), o2786        }, o.ticks = function() {2787            var n = Pi(r), o = [], a = n[0], c = n[1], l = Math.floor(u(a)), s = Math.ceil(u(c)), f = t%1 ? 2: t;2788            if (isFinite(s - l)) {2789                if (e) {2790                    for (; s > l; l++)2791                        for (var h = 1; f > h; h++)2792                            o.push(i(l) * h);2793                    o.push(i(l))2794                } else 2795                    for (o.push(i(l)); l++<s;)2796                        for (var h = f - 1; h > 0; h--)2797                            o.push(i(l) * h);2798                for (l = 0; o[l] < a; l++);2799                for (s = o.length; o[s - 1] > c; s--);2800                o = o.slice(l, s)2801            }2802            return o2803        }, o.tickFormat = function(n, t) {2804            if (!arguments.length)2805                return wl;2806            arguments.length < 2 ? t = wl : "function" != typeof t && (t = ta.format(t));2807            var r, a = Math.max(.1, n / o.ticks().length), c = e ? (r = 1e-12, Math.ceil): (r =- 1e-12, Math.floor);2808            return function(n) {2809                return n / i(c(u(n) + r)) <= a ? t(n) : ""2810            }2811        }, o.copy = function() {2812            return Ji(n.copy(), t, e, r)2813        }, Ii(o, n)2814    }2815    function Gi(n, t, e) {2816        function r(t) {2817            return n(u(t))2818        }2819        var u = Ki(t), i = Ki(1 / t);2820        return r.invert = function(t) {2821            return i(n.invert(t))2822        }, r.domain = function(t) {2823            return arguments.length ? (n.domain((e = t.map(Number)).map(u)), r) : e2824        }, r.ticks = function(n) {2825            return Xi(e, n)2826        }, r.tickFormat = function(n, t) {2827            return $i(e, n, t)2828        }, r.nice = function(n) {2829            return r.domain(Zi(e, n))2830        }, r.exponent = function(o) {2831            return arguments.length ? (u = Ki(t = o), i = Ki(1 / t), n.domain(e.map(u)), r) : t2832        }, r.copy = function() {2833            return Gi(n.copy(), t, e)2834        }, Ii(r, n)2835    }2836    function Ki(n) {2837        return function(t) {2838            return 0 > t?-Math.pow( - t, n) : Math.pow(t, n)2839        }2840    }2841    function Qi(n, t) {2842        function e(e) {2843            return i[((u.get(e) || ("range" === t.t ? u.set(e, n.push(e)) : 0 / 0)) - 1)%i.length]2844        }2845        function r(t, e) {2846            return ta.range(n.length).map(function(n) {2847                return t + e * n2848            })2849        }2850        var u, i, o;2851        return e.domain = function(r) {2852            if (!arguments.length)2853                return n;2854            n = [], u = new a;2855            for (var i, o =- 1, c = r.length; ++o < c;)2856                u.has(i = r[o]) || u.set(i, n.push(i));2857            return e[t.t].apply(e, t.a)2858        }, e.range = function(n) {2859            return arguments.length ? (i = n, o = 0, t = {2860                t: "range",2861                a: arguments2862            }, e) : i2863        }, e.rangePoints = function(u, a) {2864            arguments.length < 2 && (a = 0);2865            var c = u[0], l = u[1], s = n.length < 2 ? (c = (c + l) / 2, 0): (l - c) / (n.length - 1 + a);2866            return i = r(c + s * a / 2, s), o = 0, t = {2867                t: "rangePoints",2868                a: arguments2869            }, e2870        }, e.rangeRoundPoints = function(u, a) {2871            arguments.length < 2 && (a = 0);2872            var c = u[0], l = u[1], s = n.length < 2 ? (c = l = Math.round((c + l) / 2), 0): 0 | (l - c) / (n.length - 1 + a);2873            return i = r(c + Math.round(s * a / 2 + (l - c - (n.length - 1 + a) * s) / 2), s), o = 0, t = {2874                t: "rangeRoundPoints",2875                a: arguments2876            }, e2877        }, e.rangeBands = function(u, a, c) {2878            arguments.length < 2 && (a = 0), arguments.length < 3 && (c = a);2879            var l = u[1] < u[0], s = u[l - 0], f = u[1 - l], h = (f - s) / (n.length - a + 2 * c);2880            return i = r(s + h * c, h), l && i.reverse(), o = h * (1 - a), t = {2881                t: "rangeBands",2882                a: arguments2883            }, e2884        }, e.rangeRoundBands = function(u, a, c) {2885            arguments.length < 2 && (a = 0), arguments.length < 3 && (c = a);2886            var l = u[1] < u[0], s = u[l - 0], f = u[1 - l], h = Math.floor((f - s) / (n.length - a + 2 * c));2887            return i = r(s + Math.round((f - s - (n.length - a) * h) / 2), h), l && i.reverse(), o = Math.round(h * (1 - a)), t = {2888                t: "rangeRoundBands",2889                a: arguments2890            }, e2891        }, e.rangeBand = function() {2892            return o2893        }, e.rangeExtent = function() {2894            return Pi(t.a[0])2895        }, e.copy = function() {2896            return Qi(n, t)2897        }, e.domain(n)2898    }2899    function no(r, u) {2900        function i() {2901            var n = 0, t = u.length;2902            for (a = []; ++n < t;)2903                a[n - 1] = ta.quantile(r, n / t);2904            return o2905        }2906        function o(n) {2907            return isNaN(n =+ n) ? void 0 : u[ta.bisect(a, n)]2908        }2909        var a;2910        return o.domain = function(u) {2911            return arguments.length ? (r = u.map(t).filter(e).sort(n), i()) : r2912        }, o.range = function(n) {2913            return arguments.length ? (u = n, i()) : u2914        }, o.quantiles = function() {2915            return a2916        }, o.invertExtent = function(n) {2917            return n = u.indexOf(n), 0 > n ? [0 / 0, 0 / 0] : [n > 0 ? a[n - 1]: r[0], n < a.length ? a[n]: r[r.length - 1]]2918        }, o.copy = function() {2919            return no(r, u)2920        }, i()2921    }2922    function to(n, t, e) {2923        function r(t) {2924            return e[Math.max(0, Math.min(o, Math.floor(i * (t - n))))]2925        }2926        function u() {2927            return i = e.length / (t - n), o = e.length - 1, r2928        }2929        var i, o;2930        return r.domain = function(e) {2931            return arguments.length ? (n =+ e[0], t =+ e[e.length - 1], u()) : [n, t]2932        }, r.range = function(n) {2933            return arguments.length ? (e = n, u()) : e2934        }, r.invertExtent = function(t) {2935            return t = e.indexOf(t), t = 0 > t ? 0 / 0 : t / i + n, [t, t + 1 / i]2936        }, r.copy = function() {2937            return to(n, t, e)2938        }, u()2939    }2940    function eo(n, t) {2941        function e(e) {2942            return e >= e ? t[ta.bisect(n, e)] : void 02943        }2944        return e.domain = function(t) {2945            return arguments.length ? (n = t, e) : n2946        }, e.range = function(n) {2947            return arguments.length ? (t = n, e) : t2948        }, e.invertExtent = function(e) {2949            return e = t.indexOf(e), [n[e - 1], n[e]]2950        }, e.copy = function() {2951            return eo(n, t)2952        }, e2953    }2954    function ro(n) {2955        function t(n) {2956            return + n2957        }2958        return t.invert = t, t.domain = t.range = function(e) {2959            return arguments.length ? (n = e.map(t), t) : n2960        }, t.ticks = function(t) {2961            return Xi(n, t)2962        }, t.tickFormat = function(t, e) {2963            return $i(n, t, e)2964        }, t.copy = function() {2965            return ro(n)2966        }, t2967    }2968    function uo() {2969        return 02970    }2971    function io(n) {2972        return n.innerRadius2973    }2974    function oo(n) {2975        return n.outerRadius2976    }2977    function ao(n) {2978        return n.startAngle2979    }2980    function co(n) {2981        return n.endAngle2982    }2983    function lo(n) {2984        return n && n.padAngle2985    }2986    function so(n, t, e, r) {2987        return (n - e) * t - (t - r) * n > 0 ? 0 : 12988    }2989    function fo(n, t, e, r, u) {2990        var i = n[0] - t[0], o = n[1] - t[1], a = (u ? r : - r) / Math.sqrt(i * i + o * o), c = a * o, l =- a * i, s = n[0] + c, f = n[1] + l, h = t[0] + c, g = t[1] + l, p = (s + h) / 2, v = (f + g) / 2, d = h - s, m = g - f, y = d * d + m * m, M = e - r, x = s * g - h * f, b = (0 > m?-1 : 1) * Math.sqrt(M * M * y - x * x), _ = (x * m - d * b) / y, w = ( - x * d - m * b) / y, S = (x * m + d * b) / y, k = ( - x * d + m * b) / y, E = _ - p, A = w - v, N = S - p, C = k - v;2991        return E * E + A * A > N * N + C * C && (_ = S, w = k), [[_ - c, w - l], [_ * e / M, w * e / M]]2992    }2993    function ho(n) {2994        function t(t) {2995            function o() {2996                l.push("M", i(n(s), a))2997            }2998            for (var c, l = [], s = [], f =- 1, h = t.length, g = kt(e), p = kt(r); ++f < h;)2999                u.call(this, c = t[f], f) ? s.push([ + g.call(this, c, f), + p.call(this, c, f)]) : s.length && (o(), s = []);3000            return s.length && o(), l.length ? l.join("") : null3001        }3002        var e = Ar, r = Nr, u = Ne, i = go, o = i.key, a = .7;3003        return t.x = function(n) {3004            return arguments.length ? (e = n, t) : e3005        }, t.y = function(n) {3006            return arguments.length ? (r = n, t) : r3007        }, t.defined = function(n) {3008            return arguments.length ? (u = n, t) : u3009        }, t.interpolate = function(n) {3010            return arguments.length ? (o = "function" == typeof n ? i = n : (i = zl.get(n) || go).key, t) : o3011        }, t.tension = function(n) {3012            return arguments.length ? (a = n, t) : a3013        }, t3014    }3015    function go(n) {3016        return n.join("L")3017    }3018    function po(n) {3019        return go(n) + "Z"3020    }3021    function vo(n) {3022        for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;)3023            u.push("H", (r[0] + (r = n[t])[0]) / 2, "V", r[1]);3024        return e > 1 && u.push("H", r[0]), u.join("")3025    }3026    function mo(n) {3027        for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;)3028            u.push("V", (r = n[t])[1], "H", r[0]);3029        return u.join("")3030    }3031    function yo(n) {3032        for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;)3033            u.push("H", (r = n[t])[0], "V", r[1]);3034        return u.join("")3035    }3036    function Mo(n, t) {3037        return n.length < 4 ? go(n) : n[1] + _o(n.slice(1, - 1), wo(n, t))3038    }3039    function xo(n, t) {3040        return n.length < 3 ? go(n) : n[0] + _o((n.push(n[0]), n), wo([n[n.length - 2]].concat(n, [n[1]]), t))3041    }3042    function bo(n, t) {3043        return n.length < 3 ? go(n) : n[0] + _o(n, wo(n, t))3044    }3045    function _o(n, t) {3046        if (t.length < 1 || n.length != t.length && n.length != t.length + 2)3047            return go(n);3048        var e = n.length != t.length, r = "", u = n[0], i = n[1], o = t[0], a = o, c = 1;3049        if (e && (r += "Q" + (i[0] - 2 * o[0] / 3) + "," + (i[1] - 2 * o[1] / 3) + "," + i[0] + "," + i[1], u = n[1], c = 2), t.length > 1) {3050            a = t[1], i = n[c], c++, r += "C" + (u[0] + o[0]) + "," + (u[1] + o[1]) + "," + (i[0] - a[0]) + "," + (i[1] - a[1]) + "," + i[0] + "," + i[1];3051            for (var l = 2; l < t.length; l++, c++)3052                i = n[c], a = t[l], r += "S" + (i[0] - a[0]) + "," + (i[1] - a[1]) + "," + i[0] + "," + i[1]3053        }3054        if (e) {3055            var s = n[c];3056            r += "Q" + (i[0] + 2 * a[0] / 3) + "," + (i[1] + 2 * a[1] / 3) + "," + s[0] + "," + s[1]3057        }3058        return r3059    }3060    function wo(n, t) {3061        for (var e, r = [], u = (1 - t) / 2, i = n[0], o = n[1], a = 1, c = n.length; ++a < c;)3062            e = i, i = o, o = n[a], r.push([u * (o[0] - e[0]), u * (o[1] - e[1])]);3063        return r3064    }3065    function So(n) {3066        if (n.length < 3)3067            return go(n);3068        var t = 1, e = n.length, r = n[0], u = r[0], i = r[1], o = [u, u, u, (r = n[1])[0]], a = [i, i, i, r[1]], c = [u, ",", i, "L", No(Tl, o), ",", No(Tl, a)];3069        for (n.push(n[e - 1]); ++t <= e;)3070            r = n[t], o.shift(), o.push(r[0]), a.shift(), a.push(r[1]), Co(c, o, a);3071        return n.pop(), c.push("L", r), c.join("")3072    }3073    function ko(n) {3074        if (n.length < 4)3075            return go(n);3076        for (var t, e = [], r =- 1, u = n.length, i = [0], o = [0]; ++r < 3;)3077            t = n[r], i.push(t[0]), o.push(t[1]);3078        for (e.push(No(Tl, i) + "," + No(Tl, o)), --r; ++r < u;)3079            t = n[r], i.shift(), i.push(t[0]), o.shift(), o.push(t[1]), Co(e, i, o);3080        return e.join("")3081    }3082    function Eo(n) {3083        for (var t, e, r =- 1, u = n.length, i = u + 4, o = [], a = []; ++r < 4;)3084            e = n[r%u], o.push(e[0]), a.push(e[1]);3085        for (t = [No(Tl, o), ",", No(Tl, a)], --r; ++r < i;)3086            e = n[r%u], o.shift(), o.push(e[0]), a.shift(), a.push(e[1]), Co(t, o, a);3087        return t.join("")3088    }3089    function Ao(n, t) {3090        var e = n.length - 1;3091        if (e)3092            for (var r, u, i = n[0][0], o = n[0][1], a = n[e][0] - i, c = n[e][1] - o, l =- 1; ++l <= e;)3093                r = n[l], u = l / e, r[0] = t * r[0] + (1 - t) * (i + u * a), r[1] = t * r[1] + (1 - t) * (o + u * c);3094        return So(n)3095    }3096    function No(n, t) {3097        return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] + n[3] * t[3]3098    }3099    function Co(n, t, e) {3100        n.push("C", No(ql, t), ",", No(ql, e), ",", No(Ll, t), ",", No(Ll, e), ",", No(Tl, t), ",", No(Tl, e))3101    }3102    function zo(n, t) {3103        return (t[1] - n[1]) / (t[0] - n[0])3104    }3105    function qo(n) {3106        for (var t = 0, e = n.length - 1, r = [], u = n[0], i = n[1], o = r[0] = zo(u, i); ++t < e;)3107            r[t] = (o + (o = zo(u = i, i = n[t + 1]))) / 2;3108        return r[t] = o, r3109    }3110    function Lo(n) {3111        for (var t, e, r, u, i = [], o = qo(n), a =- 1, c = n.length - 1; ++a < c;)3112            t = zo(n[a], n[a + 1]), va(t) < Ta ? o[a] = o[a + 1] = 0 : (e = o[a] / t, r = o[a + 1] / t, u = e * e + r * r, u > 9 && (u = 3 * t / Math.sqrt(u), o[a] = u * e, o[a + 1] = u * r));3113        for (a =- 1; ++a <= c;)3114            u = (n[Math.min(c, a + 1)][0] - n[Math.max(0, a - 1)][0]) / (6 * (1 + o[a] * o[a])), i.push([u || 0, o[a] * u || 0]);3115        return i3116    }3117    function To(n) {3118        return n.length < 3 ? go(n) : n[0] + _o(n, Lo(n))3119    }3120    function Ro(n) {3121        for (var t, e, r, u =- 1, i = n.length; ++u < i;)3122            t = n[u], e = t[0], r = t[1] - ja, t[0] = e * Math.cos(r), t[1] = e * Math.sin(r);3123        return n3124    }3125    function Do(n) {3126        function t(t) {3127            function c() {3128                v.push("M", a(n(m), f), s, l(n(d.reverse()), f), "Z")3129            }3130            for (var h, g, p, v = [], d = [], m = [], y =- 1, M = t.length, x = kt(e), b = kt(u), _ = e === r ? function() {3131                return g3132            } : kt(r), w = u === i ? function() {3133                return p3134            } : kt(i); ++y < M;)3135                o.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 && (c(), d = [], m = []);3136            return d.length && c(), v.length ? v.join("") : null3137        }3138        var e = Ar, r = Ar, u = 0, i = Nr, o = Ne, a = go, c = a.key, l = a, s = "L", f = .7;3139        return t.x = function(n) {3140            return arguments.length ? (e = r = n, t) : r3141        }, t.x0 = function(n) {3142            return arguments.length ? (e = n, t) : e3143        }, t.x1 = function(n) {3144            return arguments.length ? (r = n, t) : r3145        }, t.y = function(n) {3146            return arguments.length ? (u = i = n, t) : i3147        }, t.y0 = function(n) {3148            return arguments.length ? (u = n, t) : u3149        }, t.y1 = function(n) {3150            return arguments.length ? (i = n, t) : i3151        }, t.defined = function(n) {3152            return arguments.length ? (o = n, t) : o3153        }, t.interpolate = function(n) {3154            return arguments.length ? (c = "function" == typeof n ? a = n : (a = zl.get(n) || go).key, l = a.reverse || a, s = a.closed ? "M" : "L", t) : c3155        }, t.tension = function(n) {3156            return arguments.length ? (f = n, t) : f3157        }, t3158    }3159    function Po(n) {3160        return n.radius3161    }3162    function Uo(n) {3163        return [n.x, n.y]3164    }3165    function jo(n) {3166        return function() {3167            var t = n.apply(this, arguments), e = t[0], r = t[1] - ja;3168            return [e * Math.cos(r), e * Math.sin(r)]3169        }3170    }3171    function Fo() {3172        return 643173    }3174    function Ho() {3175        return "circle"3176    }3177    function Oo(n) {3178        var t = Math.sqrt(n / Da);3179        return "M0," + t + "A" + t + "," + t + " 0 1,1 0," +- t + "A" + t + "," + t + " 0 1,1 0," + t + "Z"3180    }3181    function Yo(n) {3182        return function() {3183            var t, e;3184            (t = this[n]) && (e = t[t.active]) && (--t.count ? delete t[t.active] : delete this[n], t.active += .5, e.event && e.event.interrupt.call(this, this.__data__, e.index))3185        }3186    }3187    function Io(n, t, e) {3188        return xa(n, Hl), n.namespace = t, n.id = e, n3189    }3190    function Zo(n, t, e, r) {3191        var u = n.id, i = n.namespace;3192        return H(n, "function" == typeof e ? function(n, o, a) {3193            n[i][u].tween.set(t, r(e.call(n, n.__data__, o, a)))3194        } : (e = r(e), function(n) {3195            n[i][u].tween.set(t, e)3196        }))3197    }3198    function Vo(n) {3199        return null == n && (n = ""), function() {3200            this.textContent = n3201        }3202    }3203    function Xo(n) {3204        return null == n ? "__transition__" : "__transition_" + n + "__"3205    }3206    function $o(n, t, e, r, u) {3207        var i = n[e] || (n[e] = {3208            active: 0,3209            count: 03210        }), o = i[r];3211        if (!o) {3212            var c = u.time;3213            o = i[r] = {3214                tween: new a,3215                time: c,3216                delay: u.delay,3217                duration: u.duration,3218                ease: u.ease,3219                index: t3220            }, u = null, ++i.count, ta.timer(function(u) {3221                function a(e) {3222                    if (i.active > r)3223                        return s();3224                    var u = i[i.active];3225                    u && (--i.count, delete i[i.active], u.event && u.event.interrupt.call(n, n.__data__, u.index)), i.active = r, o.event && o.event.start.call(n, n.__data__, t), o.tween.forEach(function(e, r) {3226                        (r = r.call(n, n.__data__, t)) && v.push(r)3227                    }), h = o.ease, f = o.duration, ta.timer(function() {3228                        return p.c = l(e || 1) ? Ne : l, 13229                    }, 0, c)3230                }3231                function l(e) {3232                    if (i.active !== r)3233                        return 1;3234                    for (var u = e / f, a = h(u), c = v.length; c > 0;)3235                        v[--c].call(n, a);3236                    return u >= 1 ? (o.event && o.event.end.call(n, n.__data__, t), s()) : void 03237                }3238                function s() {3239                    return --i.count ? delete i[r] : delete n[e], 13240                }3241                var f, h, g = o.delay, p = oc, v = [];3242                return p.t = g + c, u >= g ? a(u - g) : (p.c = a, void 0)3243            }, 0, c)3244        }3245    }3246    function Bo(n, t, e) {3247        n.attr("transform", function(n) {3248            var r = t(n);3249            return "translate(" + (isFinite(r) ? r : e(n)) + ",0)"3250        })3251    }3252    function Wo(n, t, e) {3253        n.attr("transform", function(n) {3254            var r = t(n);3255            return "translate(0," + (isFinite(r) ? r : e(n)) + ")"3256        })3257    }3258    function Jo(n) {3259        return n.toISOString()3260    }3261    function Go(n, t, e) {3262        function r(t) {3263            return n(t)3264        }3265        function u(n, e) {3266            var r = n[1] - n[0], u = r / e, i = ta.bisect(Wl, u);3267            return i == Wl.length ? [t.year, Vi(n.map(function(n) {3268                return n / 31536e63269            }), e)[2]] : i ? t[u / Wl[i - 1] < Wl[i] / u ? i - 1: i] : [Kl, Vi(n, e)[2]]3270        }3271        return r.invert = function(t) {3272            return Ko(n.invert(t))3273        }, r.domain = function(t) {3274            return arguments.length ? (n.domain(t), r) : n.domain().map(Ko)3275        }, r.nice = function(n, t) {3276            function e(e) {3277                return !isNaN(e)&&!n.range(e, Ko( + e + 1), t).length3278            }3279            var i = r.domain(), o = Pi(i), a = null == n ? u(o, 10): "number" == typeof n && u(o, n);3280            return a && (n = a[0], t = a[1]), r.domain(Fi(i, t > 1 ? {3281                floor: function(t) {3282                    for (; e(t = n.floor(t));)3283                        t = Ko(t - 1);3284                    return t3285                },3286                ceil: function(t) {3287                    for (; e(t = n.ceil(t));)3288                        t = Ko( + t + 1);3289                    return t3290                }3291            } : n))3292        }, r.ticks = function(n, t) {3293            var e = Pi(r.domain()), i = null == n ? u(e, 10): "number" == typeof n ? u(e, n): !n.range && [{3294                range: n3295            }, t];3296            return i && (n = i[0], t = i[1]), n.range(e[0], Ko( + e[1] + 1), 1 > t ? 1 : t)3297        }, r.tickFormat = function() {3298            return e3299        }, r.copy = function() {3300            return Go(n.copy(), t, e)3301        }, Ii(r, n)3302    }3303    function Ko(n) {3304        return new Date(n)3305    }3306    function Qo(n) {3307        return JSON.parse(n.responseText)3308    }3309    function na(n) {3310        var t = ua.createRange();3311        return t.selectNode(ua.body), t.createContextualFragment(n.responseText)3312    }3313    var ta = {3314        version: "3.5.3"3315    };3316    Date.now || (Date.now = function() {3317        return + new Date3318    });3319    var ea = [].slice, ra = function(n) {3320        return ea.call(n)3321    }, ua = document, ia = ua.documentElement, oa = window;3322    try {3323        ra(ia.childNodes)[0].nodeType3324    } catch (aa) {3325        ra = function(n) {3326            for (var t = n.length, e = new Array(t); t--;)3327                e[t] = n[t];3328            return e3329        }3330    }3331    try {3332        ua.createElement("div").style.setProperty("opacity", 0, "")3333    } catch (ca) {3334        var la = oa.Element.prototype, sa = la.setAttribute, fa = la.setAttributeNS, ha = oa.CSSStyleDeclaration.prototype, ga = ha.setProperty;3335        la.setAttribute = function(n, t) {3336            sa.call(this, n, t + "")3337        }, la.setAttributeNS = function(n, t, e) {3338            fa.call(this, n, t, e + "")3339        }, ha.setProperty = function(n, t, e) {3340            ga.call(this, n, t + "", e)3341        }3342    }3343    ta.ascending = n, ta.descending = function(n, t) {3344        return n > t?-1 : t > n ? 1 : t >= n ? 0 : 0 / 03345    }, ta.min = function(n, t) {3346        var e, r, u =- 1, i = n.length;3347        if (1 === arguments.length) {3348            for (; ++u < i;)3349                if (null != (r = n[u]) && r >= r) {3350                    e = r;3351                    break3352                }3353            for (; ++u < i;)3354                null != (r = n[u]) && e > r && (e = r)3355        } else {3356            for (; ++u < i;)3357                if (null != (r = t.call(n, n[u], u)) && r >= r) {3358                    e = r;3359                    break3360                }3361            for (; ++u < i;)3362                null != (r = t.call(n, n[u], u)) && e > r && (e = r)3363        }3364        return e3365    }, ta.max = function(n, t) {3366        var e, r, u =- 1, i = n.length;3367        if (1 === arguments.length) {3368            for (; ++u < i;)3369                if (null != (r = n[u]) && r >= r) {3370                    e = r;3371                    break3372                }3373            for (; ++u < i;)3374                null != (r = n[u]) && r > e && (e = r)3375        } else {3376            for (; ++u < i;)3377                if (null != (r = t.call(n, n[u], u)) && r >= r) {3378                    e = r;3379                    break3380                }3381            for (; ++u < i;)3382                null != (r = t.call(n, n[u], u)) && r > e && (e = r)3383        }3384        return e3385    }, ta.extent = function(n, t) {3386        var e, r, u, i =- 1, o = n.length;3387        if (1 === arguments.length) {3388            for (; ++i < o;)3389                if (null != (r = n[i]) && r >= r) {3390                    e = u = r;3391                    break3392                }3393            for (; ++i < o;)3394                null != (r = n[i]) && (e > r && (e = r), r > u && (u = r))3395        } else {3396            for (; ++i < o;)3397                if (null != (r = t.call(n, n[i], i)) && r >= r) {3398                    e = u = r;3399                    break3400                }3401            for (; ++i < o;)3402                null != (r = t.call(n, n[i], i)) && (e > r && (e = r), r > u && (u = r))3403        }3404        return [e, u]3405    }, ta.sum = function(n, t) {3406        var r, u = 0, i = n.length, o =- 1;3407        if (1 === arguments.length)3408            for (; ++o < i;)3409                e(r =+ n[o]) && (u += r);3410        else 3411            for (; ++o < i;)3412                e(r =+ t.call(n, n[o], o)) && (u += r);3413        return u3414    }, ta.mean = function(n, r) {3415        var u, i = 0, o = n.length, a =- 1, c = o;3416        if (1 === arguments.length)3417            for (; ++a < o;)3418                e(u = t(n[a])) ? i += u : --c;3419        else 3420            for (; ++a < o;)3421                e(u = t(r.call(n, n[a], a))) ? i += u : --c;3422        return c ? i / c : void 03423    }, ta.quantile = function(n, t) {3424        var e = (n.length - 1) * t + 1, r = Math.floor(e), u =+ n[r - 1], i = e - r;3425        return i ? u + i * (n[r] - u) : u3426    }, ta.median = function(r, u) {3427        var i, o = [], a = r.length, c =- 1;3428        if (1 === arguments.length)3429            for (; ++c < a;)3430                e(i = t(r[c])) && o.push(i);3431        else 3432            for (; ++c < a;)3433                e(i = t(u.call(r, r[c], c))) && o.push(i);3434        return o.length ? ta.quantile(o.sort(n), .5) : void 03435    }, ta.variance = function(n, r) {3436        var u, i, o = n.length, a = 0, c = 0, l =- 1, s = 0;3437        if (1 === arguments.length)3438            for (; ++l < o;)3439                e(u = t(n[l])) && (i = u - a, a += i/++s, c += i * (u - a));3440        else 3441            for (; ++l < o;)3442                e(u = t(r.call(n, n[l], l))) && (i = u - a, a += i/++s, c += i * (u - a));3443        return s > 1 ? c / (s - 1) : void 03444    }, ta.deviation = function() {3445        var n = ta.variance.apply(this, arguments);3446        return n ? Math.sqrt(n) : n3447    };3448    var pa = r(n);3449    ta.bisectLeft = pa.left, ta.bisect = ta.bisectRight = pa.right, ta.bisector = function(t) {3450        return r(1 === t.length ? function(e, r) {3451            return n(t(e), r)3452        } : t)3453    }, ta.shuffle = function(n, t, e) {3454        (i = arguments.length) < 3 && (e = n.length, 2 > i && (t = 0));3455        for (var r, u, i = e - t; i;)3456            u = 0 | Math.random() * i--, r = n[i + t], n[i + t] = n[u + t], n[u + t] = r;3457        return n3458    }, ta.permute = function(n, t) {3459        for (var e = t.length, r = new Array(e); e--;)3460            r[e] = n[t[e]];3461        return r3462    }, ta.pairs = function(n) {3463        for (var t, e = 0, r = n.length - 1, u = n[0], i = new Array(0 > r ? 0 : r); r > e;)3464            i[e] = [t = u, u = n[++e]];3465        return i3466    }, ta.zip = function() {3467        if (!(r = arguments.length))3468            return [];3469        for (var n =- 1, t = ta.min(arguments, u), e = new Array(t); ++n < t;)3470            for (var r, i =- 1, o = e[n] = new Array(r); ++i < r;)3471                o[i] = arguments[i][n];3472        return e3473    }, ta.transpose = function(n) {3474        return ta.zip.apply(ta, n)3475    }, ta.keys = function(n) {3476        var t = [];3477        for (var e in n)3478            t.push(e);3479        return t3480    }, ta.values = function(n) {3481        var t = [];3482        for (var e in n)3483            t.push(n[e]);3484        return t3485    }, ta.entries = function(n) {3486        var t = [];3487        for (var e in n)3488            t.push({3489                key: e,3490                value: n[e]3491            });3492        return t3493    }, ta.merge = function(n) {3494        for (var t, e, r, u = n.length, i =- 1, o = 0; ++i < u;)3495            o += n[i].length;3496        for (e = new Array(o); --u >= 0;)3497            for (r = n[u], t = r.length; --t >= 0;)3498                e[--o] = r[t];3499        return e3500    };3501    var va = Math.abs;3502    ta.range = function(n, t, e) {3503        if (arguments.length < 3 && (e = 1, arguments.length < 2 && (t = n, n = 0)), 1 / 0 === (t - n) / e)3504            throw new Error("infinite range");3505        var r, u = [], o = i(va(e)), a =- 1;3506        if (n*=o, t*=o, e*=o, 0 > e)3507            for (; (r = n + e*++a) > t;)3508                u.push(r / o);3509        else 3510            for (; (r = n + e*++a) < t;)3511                u.push(r / o);3512        return u3513    }, ta.map = function(n, t) {3514        var e = new a;3515        if (n instanceof a)3516            n.forEach(function(n, t) {3517                e.set(n, t)3518            });3519        else if (Array.isArray(n)) {3520            var r, u =- 1, i = n.length;3521            if (1 === arguments.length)3522                for (; ++u < i;)3523                    e.set(u, n[u]);3524            else 3525                for (; ++u < i;)3526                    e.set(t.call(n, r = n[u], u), r)3527        } else 3528            for (var o in n)3529                e.set(o, n[o]);3530        return e3531    };3532    var da = "__proto__", ma = "\x00";3533    o(a, {3534        has: s,3535        get: function(n) {3536            return this._[c(n)]3537        },3538        set: function(n, t) {3539            return this._[c(n)] = t3540        },3541        remove: f,3542        keys: h,3543        values: function() {3544            var n = [];3545            for (var t in this._)3546                n.push(this._[t]);3547            return n3548        },3549        entries: function() {3550            var n = [];3551            for (var t in this._)3552                n.push({3553                    key: l(t),3554                    value: this._[t]3555                });3556            return n3557        },3558        size: g,3559        empty: p,3560        forEach: function(n) {3561            for (var t in this._)3562                n.call(this, l(t), this._[t])3563        }3564    }), ta.nest = function() {3565        function n(t, o, c) {3566            if (c >= i.length)3567                return r ? r.call(u, o) : e ? o.sort(e) : o;3568            for (var l, s, f, h, g =- 1, p = o.length, v = i[c++], d = new a; ++g < p;)(h = d.get(l = v(s = o[g]))3569                ) ? h.push(s) : d.set(l, [s]);3570            return t ? (s = t(), f = function(e, r) {3571                s.set(e, n(t, r, c))3572            }) : (s = {}, f = function(e, r) {3573                s[e] = n(t, r, c)3574            }), d.forEach(f), s3575        }3576        function t(n, e) {3577            if (e >= i.length)3578                return n;3579            var r = [], u = o[e++];3580            return n.forEach(function(n, u) {3581                r.push({3582                    key: n,3583                    values: t(u, e)3584                })3585            }), u ? r.sort(function(n, t) {3586                return u(n.key, t.key)3587            }) : r3588        }3589        var e, r, u = {}, i = [], o = [];3590        return u.map = function(t, e) {3591            return n(e, t, 0)3592        }, u.entries = function(e) {3593            return t(n(ta.map, e, 0), 0)3594        }, u.key = function(n) {3595            return i.push(n), u3596        }, u.sortKeys = function(n) {3597            return o[i.length - 1] = n, u3598        }, u.sortValues = function(n) {3599            return e = n, u3600        }, u.rollup = function(n) {3601            return r = n, u3602        }, u3603    }, ta.set = function(n) {3604        var t = new v;3605        if (n)3606            for (var e = 0, r = n.length; r > e; ++e)3607                t.add(n[e]);3608        return t3609    }, o(v, {3610        has: s,3611        add: function(n) {3612            return this._[c(n += "")]=!0, n3613        },3614        remove: f,3615        values: h,3616        size: g,3617        empty: p,3618        forEach: function(n) {3619            for (var t in this._)3620                n.call(this, l(t))3621        }3622    }), ta.behavior = {}, ta.rebind = function(n, t) {3623        for (var e, r = 1, u = arguments.length; ++r < u;)3624            n[e = arguments[r]] = d(n, t, t[e]);3625        return n3626    };3627    var ya = ["webkit", "ms", "moz", "Moz", "o", "O"];3628    ta.dispatch = function() {3629        for (var n = new M, t =- 1, e = arguments.length; ++t < e;)3630            n[arguments[t]] = x(n);3631        return n3632    }, M.prototype.on = function(n, t) {3633        var e = n.indexOf("."), r = "";3634        if (e >= 0 && (r = n.slice(e + 1), n = n.slice(0, e)), n)3635            return arguments.length < 2 ? this[n].on(r) : this[n].on(r, t);3636        if (2 === arguments.length) {3637            if (null == t)3638                for (n in this)3639                    this.hasOwnProperty(n) && this[n].on(r, null);3640            return this3641        }3642    }, ta.event = null, ta.requote = function(n) {3643        return n.replace(Ma, "\\$&")3644    };3645    var Ma = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g, xa = {}.__proto__ ? function(n, t) {3646        n.__proto__ = t3647    }3648    : function(n, t) {3649        for (var e in t)3650            n[e] = t[e]3651    }, ba = function(n, t) {3652        return t.querySelector(n)3653    }, _a = function(n, t) {3654        return t.querySelectorAll(n)3655    }, wa = ia.matches || ia[m(ia, "matchesSelector")], Sa = function(n, t) {3656        return wa.call(n, t)3657    };3658    "function" == typeof Sizzle && (ba = function(n, t) {3659        return Sizzle(n, t)[0] || null3660    }, _a = Sizzle, Sa = Sizzle.matchesSelector), ta.selection = function() {3661        return Na3662    };3663    var ka = ta.selection.prototype = [];3664    ka.select = function(n) {3665        var t, e, r, u, i = [];3666        n = k(n);3667        for (var o =- 1, a = this.length; ++o < a;) {3668            i.push(t = []), t.parentNode = (r = this[o]).parentNode;3669            for (var c =- 1, l = r.length; ++c < l;)(u = r[c]) 3670                ? (t.push(e = n.call(u, u.__data__, c, o)), e && "__data__"in u && (e.__data__ = u.__data__)) : t.push(null)3671        }3672        return S(i)3673    }, ka.selectAll = function(n) {3674        var t, e, r = [];3675        n = E(n);3676        for (var u =- 1, i = this.length; ++u < i;)3677            for (var o = this[u], a =- 1, c = o.length; ++a < c;)(e = o[a]) 3678                && (r.push(t = ra(n.call(e, e.__data__, a, u))), t.parentNode = e);3679        return S(r)3680    };3681    var Ea = {3682        svg: "http://www.w3.org/2000/svg",3683        xhtml: "http://www.w3.org/1999/xhtml",3684        xlink: "http://www.w3.org/1999/xlink",3685        xml: "http://www.w3.org/XML/1998/namespace",3686        xmlns: "http://www.w3.org/2000/xmlns/"3687    };3688    ta.ns = {3689        prefix: Ea,3690        qualify: function(n) {3691            var t = n.indexOf(":"), e = n;3692            return t >= 0 && (e = n.slice(0, t), n = n.slice(t + 1)), Ea.hasOwnProperty(e) ? {3693                space: Ea[e],3694                local: n3695            } : n3696        }3697    }, ka.attr = function(n, t) {3698        if (arguments.length < 2) {3699            if ("string" == typeof n) {3700                var e = this.node();3701                return n = ta.ns.qualify(n), n.local ? e.getAttributeNS(n.space, n.local) : e.getAttribute(n)3702            }3703            for (t in n)3704                this.each(A(t, n[t]));3705            return this3706        }3707        return this.each(A(n, t))3708    }, ka.classed = function(n, t) {3709        if (arguments.length < 2) {3710            if ("string" == typeof n) {3711                var e = this.node(), r = (n = z(n)).length, u =- 1;3712                if (t = e.classList) {3713                    for (; ++u < r;)3714                        if (!t.contains(n[u]))3715                            return !13716                } else 3717                    for (t = e.getAttribute("class"); ++u < r;)3718                        if (!C(n[u]).test(t))3719                            return !1;3720                return !03721            }3722            for (t in n)3723                this.each(q(t, n[t]));3724            return this3725        }3726        return this.each(q(n, t))3727    }, ka.style = function(n, t, e) {3728        var r = arguments.length;3729        if (3 > r) {3730            if ("string" != typeof n) {3731                2 > r && (t = "");3732                for (e in n)3733                    this.each(T(e, n[e], t));3734                return this3735            }3736            if (2 > r)3737                return oa.getComputedStyle(this.node(), null).getPropertyValue(n);3738            e = ""3739        }3740        return this.each(T(n, t, e))3741    }, ka.property = function(n, t) {3742        if (arguments.length < 2) {3743            if ("string" == typeof n)3744                return this.node()[n];3745            for (t in n)3746                this.each(R(t, n[t]));3747            return this3748        }3749        return this.each(R(n, t))3750    }, ka.text = function(n) {3751        return arguments.length ? this.each("function" == typeof n ? function() {3752            var t = n.apply(this, arguments);3753            this.textContent = null == t ? "" : t3754        } : null == n ? function() {3755            this.textContent = ""3756        } : function() {3757            this.textContent = n3758        }) : this.node().textContent3759    }, ka.html = function(n) {3760        return arguments.length ? this.each("function" == typeof n ? function() {3761            var t = n.apply(this, arguments);3762            this.innerHTML = null == t ? "" : t3763        } : null == n ? function() {3764            this.innerHTML = ""3765        } : function() {3766            this.innerHTML = n3767        }) : this.node().innerHTML3768    }, ka.append = function(n) {3769        return n = D(n), this.select(function() {3770            return this.appendChild(n.apply(this, arguments))3771        })3772    }, ka.insert = function(n, t) {3773        return n = D(n), t = k(t), this.select(function() {3774            return this.insertBefore(n.apply(this, arguments), t.apply(this, arguments) || null)3775        })3776    }, ka.remove = function() {3777        return this.each(P)3778    }, ka.data = function(n, t) {3779        function e(n, e) {3780            var r, u, i, o = n.length, f = e.length, h = Math.min(o, f), g = new Array(f), p = new Array(f), v = new Array(o);3781            if (t) {3782                var d, m = new a, y = new Array(o);3783                for (r =- 1; ++r < o;)3784                    m.has(d = t.call(u = n[r], u.__data__, r)) ? v[r] = u : m.set(d, u), y[r] = d;3785                for (r =- 1; ++r < f;)(u = m.get(d = t.call(e, i = e[r], r))3786                    ) ? u!==!0 && (g[r] = u, u.__data__ = i) : p[r] = U(i), m.set(d, !0);3787                for (r =- 1; ++r < o;)3788                    m.get(y[r])!==!0 && (v[r] = n[r])3789            } else {3790                for (r =- 1; ++r < h;)3791                    u = n[r], i = e[r], u ? (u.__data__ = i, g[r] = u) : p[r] = U(i);3792                for (; f > r; ++r)3793                    p[r] = U(e[r]);3794                for (; o > r; ++r)3795                    v[r] = n[r]3796            }3797            p.update = g, p.parentNode = g.parentNode = v.parentNode = n.parentNode, c.push(p), l.push(g), s.push(v)3798        }3799        var r, u, i =- 1, o = this.length;3800        if (!arguments.length) {3801            for (n = new Array(o = (r = this[0]).length); ++i < o;)(u = r[i]) 3802                && (n[i] = u.__data__);3803            return n3804        }3805        var c = O([]), l = S([]), s = S([]);3806        if ("function" == typeof n)3807            for (; ++i < o;)3808                e(r = this[i], n.call(r, r.parentNode.__data__, i));3809        else 3810            for (; ++i < o;)3811                e(r = this[i], n);3812        return l.enter = function() {3813            return c3814        }, l.exit = function() {3815            return s3816        }, l3817    }, ka.datum = function(n) {3818        return arguments.length ? this.property("__data__", n) : this.property("__data__")3819    }, ka.filter = function(n) {3820        var t, e, r, u = [];3821        "function" != typeof n && (n = j(n));3822        for (var i = 0, o = this.length; o > i; i++) {3823            u.push(t = []), t.parentNode = (e = this[i]).parentNode;3824            for (var a = 0, c = e.length; c > a; a++)(r = e[a]) 3825                && n.call(r, r.__data__, a, i) && t.push(r)3826        }3827        return S(u)3828    }, ka.order = function() {3829        for (var n =- 1, t = this.length; ++n < t;)3830            for (var e, r = this[n], u = r.length - 1, i = r[u]; --u >= 0;)(e = r[u]) 3831                && (i && i !== e.nextSibling && i.parentNode.insertBefore(e, i), i = e);3832        return this3833    }, ka.sort = function(n) {3834        n = F.apply(this, arguments);3835        for (var t =- 1, e = this.length; ++t < e;)3836            this[t].sort(n);3837        return this.order()3838    }, ka.each = function(n) {3839        return H(this, function(t, e, r) {3840            n.call(t, t.__data__, e, r)3841        })3842    }, ka.call = function(n) {3843        var t = ra(arguments);3844        return n.apply(t[0] = this, t), this3845    }, ka.empty = function() {3846        return !this.node()3847    }, ka.node = function() {3848        for (var n = 0, t = this.length; t > n; n++)3849            for (var e = this[n], r = 0, u = e.length; u > r; r++) {3850                var i = e[r];3851                if (i)3852                    return i3853            }3854        return null3855    }, ka.size = function() {3856        var n = 0;3857        return H(this, function() {3858            ++n3859        }), n3860    };3861    var Aa = [];3862    ta.selection.enter = O, ta.selection.enter.prototype = Aa, Aa.append = ka.append, Aa.empty = ka.empty, Aa.node = ka.node, Aa.call = ka.call, Aa.size = ka.size, Aa.select = function(n) {3863        for (var t, e, r, u, i, o = [], a =- 1, c = this.length; ++a < c;) {3864            r = (u = this[a]).update, o.push(t = []), t.parentNode = u.parentNode;3865            for (var l =- 1, s = u.length; ++l < s;)(i = u[l]) 3866                ? (t.push(r[l] = e = n.call(u.parentNode, i.__data__, l, a)), e.__data__ = i.__data__) : t.push(null)3867        }3868        return S(o)3869    }, Aa.insert = function(n, t) {3870        return arguments.length < 2 && (t = Y(this)), ka.insert.call(this, n, t)3871    }, ta.select = function(n) {3872        var t = ["string" == typeof n ? ba(n, ua): n];3873        return t.parentNode = ia, S([t])3874    }, ta.selectAll = function(n) {3875        var t = ra("string" == typeof n ? _a(n, ua) : n);3876        return t.parentNode = ia, S([t])3877    };3878    var Na = ta.select(ia);3879    ka.on = function(n, t, e) {3880        var r = arguments.length;3881        if (3 > r) {3882            if ("string" != typeof n) {3883                2 > r && (t=!1);3884                for (e in n)3885                    this.each(I(e, n[e], t));3886                return this3887            }3888            if (2 > r)3889                return (r = this.node()["__on" + n]) && r._;3890            e=!13891        }3892        return this.each(I(n, t, e))3893    };3894    var Ca = ta.map({3895        mouseenter: "mouseover",3896        mouseleave: "mouseout"3897    });3898    Ca.forEach(function(n) {3899        "on" + n in ua && Ca.remove(n)3900    });3901    var za = "onselectstart"in ua ? null: m(ia.style, "userSelect"), qa = 0;3902    ta.mouse = function(n) {3903        return $(n, _())3904    };3905    var La = /WebKit/.test(oa.navigator.userAgent)?-1 : 0;3906    ta.touch = function(n, t, e) {3907        if (arguments.length < 3 && (e = t, t = _().changedTouches), t)3908            for (var r, u = 0, i = t.length; i > u; ++u)3909                if ((r = t[u]).identifier === e)3910                    return $(n, r)3911    }, ta.behavior.drag = function() {3912        function n() {3913            this.on("mousedown.drag", u).on("touchstart.drag", i)3914        }3915        function t(n, t, u, i, o) {3916            return function() {3917                function a() {3918                    var n, e, r = t(h, v);3919                    r && (n = r[0] - M[0], e = r[1] - M[1], p|=n | e, M = r, g({3920                        type: "drag",3921                        x: r[0] + l[0],3922                        y: r[1] + l[1],3923                        dx: n,3924                        dy: e3925                    }))3926                }3927                function c() {3928                    t(h, v) && (m.on(i + d, null).on(o + d, null), y(p && ta.event.target === f), g({3929                        type: "dragend"3930                    }))3931                }3932                var l, s = this, f = ta.event.target, h = s.parentNode, g = e.of(s, arguments), p = 0, v = n(), d = ".drag" + (null == v ? "" : "-" + v), m = ta.select(u()).on(i + d, a).on(o + d, c), y = X(), M = t(h, v);3933                r ? (l = r.apply(s, arguments), l = [l.x - M[0], l.y - M[1]]) : l = [0, 0], g({3934                    type: "dragstart"3935                })3936            }3937        }3938        var e = w(n, "drag", "dragstart", "dragend"), r = null, u = t(y, ta.mouse, J, "mousemove", "mouseup"), i = t(B, ta.touch, W, "touchmove", "touchend");3939        return n.origin = function(t) {3940            return arguments.length ? (r = t, n) : r3941        }, ta.rebind(n, e, "on")3942    }, ta.touches = function(n, t) {3943        return arguments.length < 2 && (t = _().touches), t ? ra(t).map(function(t) {3944            var e = $(n, t);3945            return e.identifier = t.identifier, e3946        }) : []3947    };3948    var Ta = 1e-6, Ra = Ta * Ta, Da = Math.PI, Pa = 2 * Da, Ua = Pa - Ta, ja = Da / 2, Fa = Da / 180, Ha = 180 / Da, Oa = Math.SQRT2, Ya = 2, Ia = 4;3949    ta.interpolateZoom = function(n, t) {3950        function e(n) {3951            var t = n * y;3952            if (m) {3953                var e = et(v), o = i / (Ya * h) * (e * rt(Oa * t + v) - tt(v));3954                return [r + o * l, u + o * s, i * e / et(Oa * t + v)]3955            }3956            return [r + n * l, u + n * s, i * Math.exp(Oa * t)]3957        }3958        var r = n[0], u = n[1], i = n[2], o = t[0], a = t[1], c = t[2], l = o - r, s = a - u, f = l * l + s * s, h = Math.sqrt(f), g = (c * c - i * i + Ia * f) / (2 * i * Ya * h), p = (c * c - i * i - Ia * f) / (2 * c * Ya * h), v = Math.log(Math.sqrt(g * g + 1) - g), d = Math.log(Math.sqrt(p * p + 1) - p), m = d - v, y = (m || Math.log(c / i)) / Oa;3959        return e.duration = 1e3 * y, e3960    }, ta.behavior.zoom = function() {3961        function n(n) {3962            n.on(z, s).on(Xa + ".zoom", h).on("dblclick.zoom", g).on(T, f)3963        }3964        function t(n) {3965            return [(n[0] - k.x) / k.k, (n[1] - k.y) / k.k]3966        }3967        function e(n) {3968            return [n[0] * k.k + k.x, n[1] * k.k + k.y]3969        }3970        function r(n) {3971            k.k = Math.max(A[0], Math.min(A[1], n))3972        }3973        function u(n, t) {3974            t = e(t), k.x += n[0] - t[0], k.y += n[1] - t[1]3975        }3976        function i(t, e, i, o) {3977            t.__chart__ = {3978                x: k.x,3979                y: k.y,3980                k: k.k3981            }, r(Math.pow(2, o)), u(v = e, i), t = ta.select(t), N > 0 && (t = t.transition().duration(N)), t.call(n.event)3982        }3983        function o() {3984            x && x.domain(M.range().map(function(n) {3985                return (n - k.x) / k.k3986            }).map(M.invert)), S && S.domain(_.range().map(function(n) {3987                return (n - k.y) / k.k3988            }).map(_.invert))3989        }3990        function a(n) {3991            C++||n({3992                type: "zoomstart"3993            })3994        }3995        function c(n) {3996            o(), n({3997                type: "zoom",3998                scale: k.k,3999                translate: [k.x, k.y]4000            })4001        }4002        function l(n) {4003            --C || n({4004                type: "zoomend"4005            }), v = null4006        }4007        function s() {4008            function n() {4009                s = 1, u(ta.mouse(r), h), c(o)4010            }4011            function e() {4012                f.on(q, null).on(L, null), g(s && ta.event.target === i), l(o)4013            }4014            var r = this, i = ta.event.target, o = R.of(r, arguments), s = 0, f = ta.select(oa).on(q, n).on(L, e), h = t(ta.mouse(r)), g = X();4015            Fl.call(r), a(o)4016        }4017        function f() {4018            function n() {4019                var n = ta.touches(p);4020                return g = k.k, n.forEach(function(n) {4021                    n.identifier in d && (d[n.identifier] = t(n))4022                }), n4023            }4024            function e() {4025                var t = ta.event.target;4026                ta.select(t).on(x, o).on(_, h), w.push(t);4027                for (var e = ta.event.changedTouches, r = 0, u = e.length; u > r; ++r)4028                    d[e[r].identifier] = null;4029                var a = n(), c = Date.now();4030                if (1 === a.length) {4031                    if (500 > c - y) {4032                        var l = a[0];4033                        i(p, l, d[l.identifier], Math.floor(Math.log(k.k) / Math.LN2) + 1), b()4034                    }4035                    y = c4036                } else if (a.length > 1) {4037                    var l = a[0], s = a[1], f = l[0] - s[0], g = l[1] - s[1];4038                    m = f * f + g * g4039                }4040            }4041            function o() {4042                var n, t, e, i, o = ta.touches(p);4043                Fl.call(p);4044                for (var a = 0, l = o.length; l > a; ++a, i = null)4045                    if (e = o[a], i = d[e.identifier]) {4046                        if (t)4047                            break;4048                            n = e, t = i4049                    }4050                if (i) {4051                    var s = (s = e[0] - n[0]) * s + (s = e[1] - n[1]) * s, f = m && Math.sqrt(s / m);4052                    n = [(n[0] + e[0]) / 2, (n[1] + e[1]) / 2], t = [(t[0] + i[0]) / 2, (t[1] + i[1]) / 2], r(f * g)4053                }4054                y = null, u(n, t), c(v)4055            }4056            function h() {4057                if (ta.event.touches.length) {4058                    for (var t = ta.event.changedTouches, e = 0, r = t.length; r > e; ++e)4059                        delete d[t[e].identifier];4060                    for (var u in d)4061                        return void n()4062                }4063                ta.selectAll(w).on(M, null), S.on(z, s).on(T, f), E(), l(v)4064            }4065            var g, p = this, v = R.of(p, arguments), d = {}, m = 0, M = ".zoom-" + ta.event.changedTouches[0].identifier, x = "touchmove" + M, _ = "touchend" + M, w = [], S = ta.select(p), E = X();4066            e(), a(v), S.on(z, null).on(T, e)4067        }4068        function h() {4069            var n = R.of(this, arguments);4070            m ? clearTimeout(m) : (p = t(v = d || ta.mouse(this)), Fl.call(this), a(n)), m = setTimeout(function() {4071                m = null, l(n)4072            }, 50), b(), r(Math.pow(2, .002 * Za()) * k.k), u(v, p), c(n)4073        }4074        function g() {4075            var n = ta.mouse(this), e = Math.log(k.k) / Math.LN2;4076            i(this, n, t(n), ta.event.shiftKey ? Math.ceil(e) - 1 : Math.floor(e) + 1)4077        }4078        var p, v, d, m, y, M, x, _, S, k = {4079            x: 0,4080            y: 0,4081            k: 14082        }, E = [960, 500], A = Va, N = 250, C = 0, z = "mousedown.zoom", q = "mousemove.zoom", L = "mouseup.zoom", T = "touchstart.zoom", R = w(n, "zoomstart", "zoom", "zoomend");4083        return n.event = function(n) {4084            n.each(function() {4085                var n = R.of(this, arguments), t = k;4086                Ul ? ta.select(this).transition().each("start.zoom", function() {4087                    k = this.__chart__ || {4088                        x: 0,4089                        y: 0,4090                        k: 14091                    }, a(n)4092                }).tween("zoom:zoom", function() {4093                    var e = E[0], r = E[1], u = v ? v[0]: e / 2, i = v ? v[1]: r / 2, o = ta.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]);4094                    return function(t) {4095                        var r = o(t), a = e / r[2];4096                        this.__chart__ = k = {4097                            x: u - r[0] * a,4098                            y: i - r[1] * a,4099                            k: a4100                        }, c(n)4101                    }4102                }).each("interrupt.zoom", function() {4103                    l(n)4104                }).each("end.zoom", function() {4105                    l(n)4106                }) : (this.__chart__ = k, a(n), c(n), l(n))4107            })4108        }, n.translate = function(t) {4109            return arguments.length ? (k = {4110                x: + t[0],4111                y: + t[1],4112                k: k.k4113            }, o(), n) : [k.x, k.y]4114        }, n.scale = function(t) {4115            return arguments.length ? (k = {4116                x: k.x,4117                y: k.y,4118                k: + t4119            }, o(), n) : k.k4120        }, n.scaleExtent = function(t) {4121            return arguments.length ? (A = null == t ? Va : [ + t[0], + t[1]], n) : A4122        }, n.center = function(t) {4123            return arguments.length ? (d = t && [ + t[0], + t[1]], n) : d4124        }, n.size = function(t) {4125            return arguments.length ? (E = t && [ + t[0], + t[1]], n) : E4126        }, n.duration = function(t) {4127            return arguments.length ? (N =+ t, n) : N4128        }, n.x = function(t) {4129            return arguments.length ? (x = t, M = t.copy(), k = {4130                x: 0,4131                y: 0,4132                k: 14133            }, n) : x4134        }, n.y = function(t) {4135            return arguments.length ? (S = t, _ = t.copy(), k = {4136                x: 0,4137                y: 0,4138                k: 14139            }, n) : S4140        }, ta.rebind(n, R, "on")4141    };4142    var Za, Va = [0, 1 / 0], Xa = "onwheel"in ua ? (Za = function() {4143        return - ta.event.deltaY * (ta.event.deltaMode ? 120 : 1)4144    }, "wheel"): "onmousewheel"in ua ? (Za = function() {4145        return ta.event.wheelDelta4146    }, "mousewheel"): (Za = function() {4147        return - ta.event.detail4148    }, "MozMousePixelScroll");4149    ta.color = it, it.prototype.toString = function() {4150        return this.rgb() + ""4151    }, ta.hsl = ot;4152    var $a = ot.prototype = new it;4153    $a.brighter = function(n) {4154        return n = Math.pow(.7, arguments.length ? n : 1), new ot(this.h, this.s, this.l / n)4155    }, $a.darker = function(n) {4156        return n = Math.pow(.7, arguments.length ? n : 1), new ot(this.h, this.s, n * this.l)4157    }, $a.rgb = function() {4158        return at(this.h, this.s, this.l)4159    }, ta.hcl = ct;4160    var Ba = ct.prototype = new it;4161    Ba.brighter = function(n) {4162        return new ct(this.h, this.c, Math.min(100, this.l + Wa * (arguments.length ? n : 1)))4163    }, Ba.darker = function(n) {4164        return new ct(this.h, this.c, Math.max(0, this.l - Wa * (arguments.length ? n : 1)))4165    }, Ba.rgb = function() {4166        return lt(this.h, this.c, this.l).rgb()4167    }, ta.lab = st;4168    var Wa = 18, Ja = .95047, Ga = 1, Ka = 1.08883, Qa = st.prototype = new it;4169    Qa.brighter = function(n) {4170        return new st(Math.min(100, this.l + Wa * (arguments.length ? n : 1)), this.a, this.b)4171    }, Qa.darker = function(n) {4172        return new st(Math.max(0, this.l - Wa * (arguments.length ? n : 1)), this.a, this.b)4173    }, Qa.rgb = function() {4174        return ft(this.l, this.a, this.b)4175    }, ta.rgb = dt;4176    var nc = dt.prototype = new it;4177    nc.brighter = function(n) {4178        n = Math.pow(.7, arguments.length ? n : 1);4179        var t = this.r, e = this.g, r = this.b, u = 30;4180        return t || e || r ? (t && u > t && (t = u), e && u > e && (e = u), r && u > r && (r = u), new dt(Math.min(255, t / n), Math.min(255, e / n), Math.min(255, r / n))) : new dt(u, u, u)4181    }, nc.darker = function(n) {4182        return n = Math.pow(.7, arguments.length ? n : 1), new dt(n * this.r, n * this.g, n * this.b)4183    }, nc.hsl = function() {4184        return bt(this.r, this.g, this.b)4185    }, nc.toString = function() {4186        return "#" + Mt(this.r) + Mt(this.g) + Mt(this.b)4187    };4188    var tc = ta.map({4189        aliceblue: 15792383,4190        antiquewhite: 16444375,4191        aqua: 65535,4192        aquamarine: 8388564,4193        azure: 15794175,4194        beige: 16119260,4195        bisque: 16770244,4196        black: 0,4197        blanchedalmond: 16772045,4198        blue: 255,4199        blueviolet: 9055202,4200        brown: 10824234,4201        burlywood: 14596231,4202        cadetblue: 6266528,4203        chartreuse: 8388352,4204        chocolate: 13789470,4205        coral: 16744272,4206        cornflowerblue: 6591981,4207        cornsilk: 16775388,4208        crimson: 14423100,4209        cyan: 65535,4210        darkblue: 139,4211        darkcyan: 35723,4212        darkgoldenrod: 12092939,4213        darkgray: 11119017,4214        darkgreen: 25600,4215        darkgrey: 11119017,4216        darkkhaki: 12433259,4217        darkmagenta: 9109643,4218        darkolivegreen: 5597999,4219        darkorange: 16747520,4220        darkorchid: 10040012,4221        darkred: 9109504,4222        darksalmon: 15308410,4223        darkseagreen: 9419919,4224        darkslateblue: 4734347,4225        darkslategray: 3100495,4226        darkslategrey: 3100495,4227        darkturquoise: 52945,4228        darkviolet: 9699539,4229        deeppink: 16716947,4230        deepskyblue: 49151,4231        dimgray: 6908265,4232        dimgrey: 6908265,4233        dodgerblue: 2003199,4234        firebrick: 11674146,4235        floralwhite: 16775920,4236        forestgreen: 2263842,4237        fuchsia: 16711935,4238        gainsboro: 14474460,4239        ghostwhite: 16316671,4240        gold: 16766720,4241        goldenrod: 14329120,4242        gray: 8421504,4243        green: 32768,4244        greenyellow: 11403055,4245        grey: 8421504,4246        honeydew: 15794160,4247        hotpink: 16738740,4248        indianred: 13458524,4249        indigo: 4915330,4250        ivory: 16777200,4251        khaki: 15787660,4252        lavender: 15132410,4253        lavenderblush: 16773365,4254        lawngreen: 8190976,4255        lemonchiffon: 16775885,4256        lightblue: 11393254,4257        lightcoral: 15761536,4258        lightcyan: 14745599,4259        lightgoldenrodyellow: 16448210,4260        lightgray: 13882323,4261        lightgreen: 9498256,4262        lightgrey: 13882323,4263        lightpink: 16758465,4264        lightsalmon: 16752762,4265        lightseagreen: 2142890,4266        lightskyblue: 8900346,4267        lightslategray: 7833753,4268        lightslategrey: 7833753,4269        lightsteelblue: 11584734,4270        lightyellow: 16777184,4271        lime: 65280,4272        limegreen: 3329330,4273        linen: 16445670,4274        magenta: 16711935,4275        maroon: 8388608,4276        mediumaquamarine: 6737322,4277        mediumblue: 205,4278        mediumorchid: 12211667,4279        mediumpurple: 9662683,4280        mediumseagreen: 3978097,4281        mediumslateblue: 8087790,4282        mediumspringgreen: 64154,4283        mediumturquoise: 4772300,4284        mediumvioletred: 13047173,4285        midnightblue: 1644912,4286        mintcream: 16121850,4287        mistyrose: 16770273,4288        moccasin: 16770229,4289        navajowhite: 16768685,4290        navy: 128,4291        oldlace: 16643558,4292        olive: 8421376,4293        olivedrab: 7048739,4294        orange: 16753920,4295        orangered: 16729344,4296        orchid: 14315734,4297        palegoldenrod: 15657130,4298        palegreen: 10025880,4299        paleturquoise: 11529966,4300        palevioletred: 14381203,4301        papayawhip: 16773077,4302        peachpuff: 16767673,4303        peru: 13468991,4304        pink: 16761035,4305        plum: 14524637,4306        powderblue: 11591910,4307        purple: 8388736,4308        red: 16711680,4309        rosybrown: 12357519,4310        royalblue: 4286945,4311        saddlebrown: 9127187,4312        salmon: 16416882,4313        sandybrown: 16032864,4314        seagreen: 3050327,4315        seashell: 16774638,4316        sienna: 10506797,4317        silver: 12632256,4318        skyblue: 8900331,4319        slateblue: 6970061,4320        slategray: 7372944,4321        slategrey: 7372944,4322        snow: 16775930,4323        springgreen: 65407,4324        steelblue: 4620980,4325        tan: 13808780,4326        teal: 32896,4327        thistle: 14204888,4328        tomato: 16737095,4329        turquoise: 4251856,4330        violet: 15631086,4331        wheat: 16113331,4332        white: 16777215,4333        whitesmoke: 16119285,4334        yellow: 16776960,4335        yellowgreen: 101450744336    });4337    tc.forEach(function(n, t) {4338        tc.set(n, mt(t))4339    }), ta.functor = kt, ta.xhr = At(Et), ta.dsv = function(n, t) {4340        function e(n, e, i) {4341            arguments.length < 3 && (i = e, e = null);4342            var o = Nt(n, t, null == e ? r : u(e), i);4343            return o.row = function(n) {4344                return arguments.length ? o.response(null == (e = n) ? r : u(n)) : e4345            }, o4346        }4347        function r(n) {4348            return e.parse(n.responseText)4349        }4350        function u(n) {4351            return function(t) {4352                return e.parse(t.responseText, n)4353            }4354        }4355        function i(t) {4356            return t.map(o).join(n)4357        }4358        function o(n) {4359            return a.test(n) ? '"' + n.replace(/\"/g, '""') + '"' : n4360        }4361        var a = new RegExp('["' + n + "\n]"), c = n.charCodeAt(0);4362        return e.parse = function(n, t) {4363            var r;4364            return e.parseRows(n, function(n, e) {4365                if (r)4366                    return r(n, e - 1);4367                var u = new Function("d", "return {" + n.map(function(n, t) {4368                    return JSON.stringify(n) + ": d[" + t + "]"4369                }).join(",") + "}");4370                r = t ? function(n, e) {4371                    return t(u(n), e)4372                } : u4373            })4374        }, e.parseRows = function(n, t) {4375            function e() {4376                if (s >= l)4377                    return o;4378                if (u)4379                    return u=!1, i;4380                var t = s;4381                if (34 === n.charCodeAt(t)) {4382                    for (var e = t; e++<l;)4383                        if (34 === n.charCodeAt(e)) {4384                            if (34 !== n.charCodeAt(e + 1))4385                                break;4386                                ++e4387                        }4388                    s = e + 2;4389                    var r = n.charCodeAt(e + 1);4390                    return 13 === r ? (u=!0, 10 === n.charCodeAt(e + 2)&&++s) : 10 === r && (u=!0), n.slice(t + 1, e).replace(/""/g, '"')4391                }4392                for (; l > s;) {4393                    var r = n.charCodeAt(s++), a = 1;4394                    if (10 === r)4395                        u=!0;4396                    else if (13 === r)4397                        u=!0, 10 === n.charCodeAt(s) && (++s, ++a);4398                    else if (r !== c)4399                        continue;4400                    return n.slice(t, s - a)4401                }4402                return n.slice(t)4403            }4404            for (var r, u, i = {}, o = {}, a = [], l = n.length, s = 0, f = 0; (r = e()) !== o;) {4405                for (var h = []; r !== i && r !== o;)4406                    h.push(r), r = e();4407                t && null == (h = t(h, f++)) || a.push(h)4408            }4409            return a4410        }, e.format = function(t) {4411            if (Array.isArray(t[0]))4412                return e.formatRows(t);4413            var r = new v, u = [];4414            return t.forEach(function(n) {4415                for (var t in n)4416                    r.has(t) || u.push(r.add(t))4417            }), [u.map(o).join(n)].concat(t.map(function(t) {4418                return u.map(function(n) {4419                    return o(t[n])4420                }).join(n)4421            })).join("\n")4422        }, e.formatRows = function(n) {4423            return n.map(i).join("\n")4424        }, e4425    }, ta.csv = ta.dsv(",", "text/csv"), ta.tsv = ta.dsv("	", "text/tab-separated-values");4426    var ec, rc, uc, ic, oc, ac = oa[m(oa, "requestAnimationFrame")] || function(n) {4427        setTimeout(n, 17)4428    };4429    ta.timer = function(n, t, e) {4430        var r = arguments.length;4431        2 > r && (t = 0), 3 > r && (e = Date.now());4432        var u = e + t, i = {4433            c: n,4434            t: u,4435            f: !1,4436            n: null4437        };4438        rc ? rc.n = i : ec = i, rc = i, uc || (ic = clearTimeout(ic), uc = 1, ac(qt))4439    }, ta.timer.flush = function() {4440        Lt(), Tt()4441    }, ta.round = function(n, t) {4442        return t ? Math.round(n * (t = Math.pow(10, t))) / t : Math.round(n)4443    };4444    var cc = ["y", "z", "a", "f", "p", "n", "\xb5", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"].map(Dt);4445    ta.formatPrefix = function(n, t) {4446        var e = 0;4447        return n && (0 > n && (n*=-1), t && (n = ta.round(n, Rt(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)))), cc[8 + e / 3]4448    };4449    var lc = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i, sc = ta.map({4450        b: function(n) {4451            return n.toString(2)4452        },4453        c: function(n) {4454            return String.fromCharCode(n)4455        },4456        o: function(n) {4457            return n.toString(8)4458        },4459        x: function(n) {4460            return n.toString(16)4461        },4462        X: function(n) {4463            return n.toString(16).toUpperCase()4464        },4465        g: function(n, t) {4466            return n.toPrecision(t)4467        },4468        e: function(n, t) {4469            return n.toExponential(t)4470        },4471        f: function(n, t) {4472            return n.toFixed(t)4473        },4474        r: function(n, t) {4475            return (n = ta.round(n, Rt(n, t))).toFixed(Math.max(0, Math.min(20, Rt(n * (1 + 1e-15), t))))4476        }4477    }), fc = ta.time = {}, hc = Date;4478    jt.prototype = {4479        getDate: function() {4480            return this._.getUTCDate()4481        },4482        getDay: function() {4483            return this._.getUTCDay()4484        },4485        getFullYear: function() {4486            return this._.getUTCFullYear()4487        },4488        getHours: function() {4489            return this._.getUTCHours()4490        },4491        getMilliseconds: function() {4492            return this._.getUTCMilliseconds()4493        },4494        getMinutes: function() {4495            return this._.getUTCMinutes()4496        },4497        getMonth: function() {4498            return this._.getUTCMonth()4499        },4500        getSeconds: function() {4501            return this._.getUTCSeconds()4502        },4503        getTime: function() {4504            return this._.getTime()4505        },4506        getTimezoneOffset: function() {4507            return 04508        },4509        valueOf: function() {4510            return this._.valueOf()4511        },4512        setDate: function() {4513            gc.setUTCDate.apply(this._, arguments)4514        },4515        setDay: function() {4516            gc.setUTCDay.apply(this._, arguments)4517        },4518        setFullYear: function() {4519            gc.setUTCFullYear.apply(this._, arguments)4520        },4521        setHours: function() {4522            gc.setUTCHours.apply(this._, arguments)4523        },4524        setMilliseconds: function() {4525            gc.setUTCMilliseconds.apply(this._, arguments)4526        },4527        setMinutes: function() {4528            gc.setUTCMinutes.apply(this._, arguments)4529        },4530        setMonth: function() {4531            gc.setUTCMonth.apply(this._, arguments)4532        },4533        setSeconds: function() {4534            gc.setUTCSeconds.apply(this._, arguments)4535        },4536        setTime: function() {4537            gc.setTime.apply(this._, arguments)4538        }4539    };4540    var gc = Date.prototype;4541    fc.year = Ft(function(n) {4542        return n = fc.day(n), n.setMonth(0, 1), n4543    }, function(n, t) {4544        n.setFullYear(n.getFullYear() + t)4545    }, function(n) {4546        return n.getFullYear()4547    }), fc.years = fc.year.range, fc.years.utc = fc.year.utc.range, fc.day = Ft(function(n) {4548        var t = new hc(2e3, 0);4549        return t.setFullYear(n.getFullYear(), n.getMonth(), n.getDate()), t4550    }, function(n, t) {4551        n.setDate(n.getDate() + t)4552    }, function(n) {4553        return n.getDate() - 14554    }), fc.days = fc.day.range, fc.days.utc = fc.day.utc.range, fc.dayOfYear = function(n) {4555        var t = fc.year(n);4556        return Math.floor((n - t - 6e4 * (n.getTimezoneOffset() - t.getTimezoneOffset())) / 864e5)4557    }, ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"].forEach(function(n, t) {4558        t = 7 - t;4559        var e = fc[n] = Ft(function(n) {4560            return (n = fc.day(n)).setDate(n.getDate() - (n.getDay() + t)%7), n4561        }, function(n, t) {4562            n.setDate(n.getDate() + 7 * Math.floor(t))4563        }, function(n) {4564            var e = fc.year(n).getDay();4565            return Math.floor((fc.dayOfYear(n) + (e + t)%7) / 7) - (e !== t)4566        });4567        fc[n + "s"] = e.range, fc[n + "s"].utc = e.utc.range, fc[n + "OfYear"] = function(n) {4568            var e = fc.year(n).getDay();4569            return Math.floor((fc.dayOfYear(n) + (e + t)%7) / 7)4570        }4571    }), fc.week = fc.sunday, fc.weeks = fc.sunday.range, fc.weeks.utc = fc.sunday.utc.range, fc.weekOfYear = fc.sundayOfYear;4572    var pc = {4573        "-": "",4574        _: " ",4575        0: "0"4576    }, vc = /^\s*\d+/, dc = /^%/;4577    ta.locale = function(n) {4578        return {4579            numberFormat: Pt(n),4580            timeFormat: Ot(n)4581        }4582    };4583    var mc = ta.locale({4584        decimal: ".",4585        thousands: ",",4586        grouping: [3],4587        currency: ["$", ""],4588        dateTime: "%a %b %e %X %Y",4589        date: "%m/%d/%Y",4590        time: "%H:%M:%S",4591        periods: ["AM", "PM"],4592        days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],4593        shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],4594        months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],4595        shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]4596    });4597    ta.format = mc.numberFormat, ta.geo = {}, ce.prototype = {4598        s: 0,4599        t: 0,4600        add: function(n) {4601            le(n, this.t, yc), le(yc.s, this.s, this), this.s ? this.t += yc.t : this.s = yc.t4602        },4603        reset: function() {4604            this.s = this.t = 04605        },4606        valueOf: function() {4607            return this.s4608        }4609    };4610    var yc = new ce;4611    ta.geo.stream = function(n, t) {4612        n && Mc.hasOwnProperty(n.type) ? Mc[n.type](n, t) : se(n, t)4613    };4614    var Mc = {4615        Feature: function(n, t) {4616            se(n.geometry, t)4617        },4618        FeatureCollection: function(n, t) {4619            for (var e = n.features, r =- 1, u = e.length; ++r < u;)4620                se(e[r].geometry, t)4621        }4622    }, xc = {4623        Sphere: function(n, t) {4624            t.sphere()4625        },4626        Point: function(n, t) {4627            n = n.coordinates, t.point(n[0], n[1], n[2])4628        },4629        MultiPoint: function(n, t) {4630            for (var e = n.coordinates, r =- 1, u = e.length; ++r < u;)4631                n = e[r], t.point(n[0], n[1], n[2])4632        },4633        LineString: function(n, t) {4634            fe(n.coordinates, t, 0)4635        },4636        MultiLineString: function(n, t) {4637            for (var e = n.coordinates, r =- 1, u = e.length; ++r < u;)4638                fe(e[r], t, 0)4639        },4640        Polygon: function(n, t) {4641            he(n.coordinates, t)4642        },4643        MultiPolygon: function(n, t) {4644            for (var e = n.coordinates, r =- 1, u = e.length; ++r < u;)4645                he(e[r], t)4646        },4647        GeometryCollection: function(n, t) {4648            for (var e = n.geometries, r =- 1, u = e.length; ++r < u;)4649                se(e[r], t)4650        }4651    };4652    ta.geo.area = function(n) {4653        return bc = 0, ta.geo.stream(n, wc), bc4654    };4655    var bc, _c = new ce, wc = {4656        sphere: function() {4657            bc += 4 * Da4658        },4659        point: y,4660        lineStart: y,4661        lineEnd: y,4662        polygonStart: function() {4663            _c.reset(), wc.lineStart = ge4664        },4665        polygonEnd: function() {4666            var n = 2 * _c;4667            bc += 0 > n ? 4 * Da + n : n, wc.lineStart = wc.lineEnd = wc.point = y4668        }4669    };4670    ta.geo.bounds = function() {4671        function n(n, t) {4672            M.push(x = [s = n, h = n]), f > t && (f = t), t > g && (g = t)4673        }4674        function t(t, e) {4675            var r = pe([t * Fa, e * Fa]);4676            if (m) {4677                var u = de(m, r), i = [u[1], - u[0], 0], o = de(i, u);4678                Me(o), o = xe(o);4679                var c = t - p, l = c > 0 ? 1: - 1, v = o[0] * Ha * l, d = va(c) > 180;4680                if (d^(v > l * p && l * t > v)) {4681                    var y = o[1] * Ha;4682                    y > g && (g = y)4683                } else if (v = (v + 360)%360 - 180, d^(v > l * p && l * t > v)) {4684                    var y =- o[1] * Ha;4685                    f > y && (f = y)4686                } else 4687                    f > e && (f = e), e > g && (g = e);4688                d ? p > t ? a(s, t) > a(s, h) && (h = t) : a(t, h) > a(s, h) && (s = t) : h >= s ? (s > t && (s = t), t > h && (h = t)) : t > p ? a(s, t) > a(s, h) && (h = t) : a(t, h) > a(s, h) && (s = t)4689            } else 4690                n(t, e);4691            m = r, p = t4692        }4693        function e() {4694            b.point = t4695        }4696        function r() {4697            x[0] = s, x[1] = h, b.point = n, m = null4698        }4699        function u(n, e) {4700            if (m) {4701                var r = n - p;4702                y += va(r) > 180 ? r + (r > 0 ? 360 : - 360) : r4703            } else 4704                v = n, d = e;4705            wc.point(n, e), t(n, e)4706        }4707        function i() {4708            wc.lineStart()4709        }4710        function o() {4711            u(v, d), wc.lineEnd(), va(y) > Ta && (s =- (h = 180)), x[0] = s, x[1] = h, m = null4712        }4713        function a(n, t) {4714            return (t -= n) < 0 ? t + 360 : t4715        }4716        function c(n, t) {4717            return n[0] - t[0]4718        }4719        function l(n, t) {4720            return t[0] <= t[1] ? t[0] <= n && n <= t[1] : n < t[0] || t[1] < n4721        }4722        var s, f, h, g, p, v, d, m, y, M, x, b = {4723            point: n,4724            lineStart: e,4725            lineEnd: r,4726            polygonStart: function() {4727                b.point = u, b.lineStart = i, b.lineEnd = o, y = 0, wc.polygonStart()4728            },4729            polygonEnd: function() {4730                wc.polygonEnd(), b.point = n, b.lineStart = e, b.lineEnd = r, 0 > _c ? (s =- (h = 180), f =- (g = 90)) : y > Ta ? g = 90 : - Ta > y && (f =- 90), x[0] = s, x[1] = h4731            }4732        };4733        return function(n) {4734            g = h =- (s = f = 1 / 0), M = [], ta.geo.stream(n, b);4735            var t = M.length;4736            if (t) {4737                M.sort(c);4738                for (var e, r = 1, u = M[0], i = [u]; t > r; ++r)4739                    e = M[r], l(e[0], u) || l(e[1], u) ? (a(u[0], e[1]) > a(u[0], u[1]) && (u[1] = e[1]), a(e[0], u[1]) > a(u[0], u[1]) && (u[0] = e[0])) : i.push(u = e);4740                for (var o, e, p =- 1 / 0, t = i.length - 1, r = 0, u = i[t]; t >= r; u = e, ++r)4741                    e = i[r], (o = a(u[1], e[0])) > p && (p = o, s = e[0], h = u[1])4742            }4743            return M = x = null, 1 / 0 === s || 1 / 0 === f ? [[0 / 0, 0 / 0], [0 / 0, 0 / 0]] : [[s, f], [h, g]]4744        }4745    }(), ta.geo.centroid = function(n) {4746        Sc = kc = Ec = Ac = Nc = Cc = zc = qc = Lc = Tc = Rc = 0, ta.geo.stream(n, Dc);4747        var t = Lc, e = Tc, r = Rc, u = t * t + e * e + r * r;4748        return Ra > u && (t = Cc, e = zc, r = qc, Ta > kc && (t = Ec, e = Ac, r = Nc), u = t * t + e * e + r * r, Ra > u) ? [0 / 0, 0 / 0] : [Math.atan2(e, t) * Ha, nt(r / Math.sqrt(u)) * Ha]4749    };4750    var Sc, kc, Ec, Ac, Nc, Cc, zc, qc, Lc, Tc, Rc, Dc = {4751        sphere: y,4752        point: _e,4753        lineStart: Se,4754        lineEnd: ke,4755        polygonStart: function() {4756            Dc.lineStart = Ee4757        },4758        polygonEnd: function() {4759            Dc.lineStart = Se4760        }4761    }, Pc = Le(Ne, Pe, je, [ - Da, - Da / 2]), Uc = 1e9;4762    ta.geo.clipExtent = function() {4763        var n, t, e, r, u, i, o = {4764            stream: function(n) {4765                return u && (u.valid=!1), u = i(n), u.valid=!0, u4766            },4767            extent: function(a) {4768                return arguments.length ? (i = Ye(n =+ a[0][0], t =+ a[0][1], e =+ a[1][0], r =+ a[1][1]), u && (u.valid=!1, u = null), o) : [[n, t], [e, r]]4769            }4770        };4771        return o.extent([[0, 0], [960, 500]])4772    }, (ta.geo.conicEqualArea = function() {4773        return Ie(Ze)4774    }).raw = Ze, ta.geo.albers = function() {4775        return ta.geo.conicEqualArea().rotate([96, 0]).center([ - .6, 38.7]).parallels([29.5, 45.5]).scale(1070)4776    }, ta.geo.albersUsa = function() {4777        function n(n) {4778            var i = n[0], o = n[1];4779            return t = null, e(i, o), t || (r(i, o), t) || u(i, o), t4780        }4781        var t, e, r, u, i = ta.geo.albers(), o = ta.geo.conicEqualArea().rotate([154, 0]).center([ - 2, 58.5]).parallels([55, 65]), a = ta.geo.conicEqualArea().rotate([157, 0]).center([ - 3, 19.9]).parallels([8, 18]), c = {4782            point: function(n, e) {4783                t = [n, e]4784            }4785        };4786        return n.invert = function(n) {4787            var t = i.scale(), e = i.translate(), r = (n[0] - e[0]) / t, u = (n[1] - e[1]) / t;4788            return (u >= .12 && .234 > u && r>=-.425&&-.214 > r ? o : u >= .166 && .234 > u && r>=-.214&&-.115 > r ? a : i).invert(n)4789        }, n.stream = function(n) {4790            var t = i.stream(n), e = o.stream(n), r = a.stream(n);4791            return {4792                point: function(n, u) {4793                    t.point(n, u), e.point(n, u), r.point(n, u)4794                },4795                sphere: function() {4796                    t.sphere(), e.sphere(), r.sphere()4797                },4798                lineStart: function() {4799                    t.lineStart(), e.lineStart(), r.lineStart()4800                },4801                lineEnd: function() {4802                    t.lineEnd(), e.lineEnd(), r.lineEnd()4803                },4804                polygonStart: function() {4805                    t.polygonStart(), e.polygonStart(), r.polygonStart()4806                },4807                polygonEnd: function() {4808                    t.polygonEnd(), e.polygonEnd(), r.polygonEnd()4809                }4810            }4811        }, n.precision = function(t) {4812            return arguments.length ? (i.precision(t), o.precision(t), a.precision(t), n) : i.precision()4813        }, n.scale = function(t) {4814            return arguments.length ? (i.scale(t), o.scale(.35 * t), a.scale(t), n.translate(i.translate())) : i.scale()4815        }, n.translate = function(t) {4816            if (!arguments.length)4817                return i.translate();4818            var l = i.scale(), s =+ t[0], f =+ t[1];4819            return e = i.translate(t).clipExtent([[s - .455 * l, f - .238 * l], [s + .455 * l, f + .238 * l]]).stream(c).point, r = o.translate([s - .307 * l, f + .201 * l]).clipExtent([[s - .425 * l + Ta, f + .12 * l + Ta], [s - .214 * l - Ta, f + .234 * l - Ta]]).stream(c).point, u = a.translate([s - .205 * l, f + .212 * l]).clipExtent([[s - .214 * l + Ta, f + .166 * l + Ta], [s - .115 * l - Ta, f + .234 * l - Ta]]).stream(c).point, n4820        }, n.scale(1070)4821    };4822    var jc, Fc, Hc, Oc, Yc, Ic, Zc = {4823        point: y,4824        lineStart: y,4825        lineEnd: y,4826        polygonStart: function() {4827            Fc = 0, Zc.lineStart = Ve4828        },4829        polygonEnd: function() {4830            Zc.lineStart = Zc.lineEnd = Zc.point = y, jc += va(Fc / 2)4831        }4832    }, Vc = {4833        point: Xe,4834        lineStart: y,4835        lineEnd: y,4836        polygonStart: y,4837        polygonEnd: y4838    }, Xc = {4839        point: We,4840        lineStart: Je,4841        lineEnd: Ge,4842        polygonStart: function() {4843            Xc.lineStart = Ke4844        },4845        polygonEnd: function() {4846            Xc.point = We, Xc.lineStart = Je, Xc.lineEnd = Ge4847        }4848    };4849    ta.geo.path = function() {4850        function n(n) {4851            return n && ("function" == typeof a && i.pointRadius( + a.apply(this, arguments)), o && o.valid || (o = u(i)), ta.geo.stream(n, o)), i.result()4852        }4853        function t() {4854            return o = null, n4855        }4856        var e, r, u, i, o, a = 4.5;4857        return n.area = function(n) {4858            return jc = 0, ta.geo.stream(n, u(Zc)), jc4859        }, n.centroid = function(n) {4860            return Ec = Ac = Nc = Cc = zc = qc = Lc = Tc = Rc = 0, ta.geo.stream(n, u(Xc)), Rc ? [Lc / Rc, Tc / Rc] : qc ? [Cc / qc, zc / qc] : Nc ? [Ec / Nc, Ac / Nc] : [0 / 0, 0 / 0]4861        }, n.bounds = function(n) {4862            return Yc = Ic =- (Hc = Oc = 1 / 0), ta.geo.stream(n, u(Vc)), [[Hc, Oc], [Yc, Ic]]4863        }, n.projection = function(n) {4864            return arguments.length ? (u = (e = n) ? n.stream || tr(n) : Et, t()) : e4865        }, n.context = function(n) {4866            return arguments.length ? (i = null == (r = n) ? new $e : new Qe(n), "function" != typeof a && i.pointRadius(a), t()) : r4867        }, n.pointRadius = function(t) {4868            return arguments.length ? (a = "function" == typeof t ? t : (i.pointRadius( + t), + t), n) : a4869        }, n.projection(ta.geo.albersUsa()).context(null)4870    }, ta.geo.transform = function(n) {4871        return {4872            stream: function(t) {4873                var e = new er(t);4874                for (var r in n)4875                    e[r] = n[r];4876                return e4877            }4878        }4879    }, er.prototype = {4880        point: function(n, t) {4881            this.stream.point(n, t)4882        },4883        sphere: function() {4884            this.stream.sphere()4885        },4886        lineStart: function() {4887            this.stream.lineStart()4888        },4889        lineEnd: function() {4890            this.stream.lineEnd()4891        },4892        polygonStart: function() {4893            this.stream.polygonStart()4894        },4895        polygonEnd: function() {4896            this.stream.polygonEnd()4897        }4898    }, ta.geo.projection = ur, ta.geo.projectionMutator = ir, (ta.geo.equirectangular = function() {4899        return ur(ar)4900    }).raw = ar.invert = ar, ta.geo.rotation = function(n) {4901        function t(t) {4902            return t = n(t[0] * Fa, t[1] * Fa), t[0]*=Ha, t[1]*=Ha, t4903        }4904        return n = lr(n[0]%360 * Fa, n[1] * Fa, n.length > 2 ? n[2] * Fa : 0), t.invert = function(t) {4905            return t = n.invert(t[0] * Fa, t[1] * Fa), t[0]*=Ha, t[1]*=Ha, t4906        }, t4907    }, cr.invert = ar, ta.geo.circle = function() {4908        function n() {4909            var n = "function" == typeof r ? r.apply(this, arguments): r, t = lr( - n[0] * Fa, - n[1] * Fa, 0).invert, u = [];4910            return e(null, null, 1, {4911                point: function(n, e) {4912                    u.push(n = t(n, e)), n[0]*=Ha, n[1]*=Ha4913                }4914            }), {4915                type: "Polygon",4916                coordinates: [u]4917            }4918        }4919        var t, e, r = [0, 0], u = 6;4920        return n.origin = function(t) {4921            return arguments.length ? (r = t, n) : r4922        }, n.angle = function(r) {4923            return arguments.length ? (e = gr((t =+ r) * Fa, u * Fa), n) : t4924        }, n.precision = function(r) {4925            return arguments.length ? (e = gr(t * Fa, (u =+ r) * Fa), n) : u4926        }, n.angle(90)4927    }, ta.geo.distance = function(n, t) {4928        var e, r = (t[0] - n[0]) * Fa, u = n[1] * Fa, i = t[1] * Fa, o = Math.sin(r), a = Math.cos(r), c = Math.sin(u), l = Math.cos(u), s = Math.sin(i), f = Math.cos(i);4929        return Math.atan2(Math.sqrt((e = f * o) * e + (e = l * s - c * f * a) * e), c * s + l * f * a)4930    }, ta.geo.graticule = function() {4931        function n() {4932            return {4933                type: "MultiLineString",4934                coordinates: t()4935            }4936        }4937        function t() {4938            return ta.range(Math.ceil(i / d) * d, u, d).map(h).concat(ta.range(Math.ceil(l / m) * m, c, m).map(g)).concat(ta.range(Math.ceil(r / p) * p, e, p).filter(function(n) {4939                return va(n%d) > Ta4940            }).map(s)).concat(ta.range(Math.ceil(a / v) * v, o, v).filter(function(n) {4941                return va(n%m) > Ta4942            }).map(f))4943        }4944        var e, r, u, i, o, a, c, l, s, f, h, g, p = 10, v = p, d = 90, m = 360, y = 2.5;4945        return n.lines = function() {4946            return t().map(function(n) {4947                return {4948                    type: "LineString",4949                    coordinates: n4950                }4951            })4952        }, n.outline = function() {4953            return {4954                type: "Polygon",4955                coordinates: [h(i).concat(g(c).slice(1), h(u).reverse().slice(1), g(l).reverse().slice(1))]4956            }4957        }, n.extent = function(t) {4958            return arguments.length ? n.majorExtent(t).minorExtent(t) : n.minorExtent()4959        }, n.majorExtent = function(t) {4960            return arguments.length ? (i =+ t[0][0], u =+ t[1][0], l =+ t[0][1], c =+ t[1][1], i > u && (t = i, i = u, u = t), l > c && (t = l, l = c, c = t), n.precision(y)) : [[i, l], [u, c]]4961        }, n.minorExtent = function(t) {4962            return arguments.length ? (r =+ t[0][0], e =+ t[1][0], a =+ t[0][1], o =+ t[1][1], r > e && (t = r, r = e, e = t), a > o && (t = a, a = o, o = t), n.precision(y)) : [[r, a], [e, o]]4963        }, n.step = function(t) {4964            return arguments.length ? n.majorStep(t).minorStep(t) : n.minorStep()4965        }, n.majorStep = function(t) {4966            return arguments.length ? (d =+ t[0], m =+ t[1], n) : [d, m]4967        }, n.minorStep = function(t) {4968            return arguments.length ? (p =+ t[0], v =+ t[1], n) : [p, v]4969        }, n.precision = function(t) {4970            return arguments.length ? (y =+ t, s = vr(a, o, 90), f = dr(r, e, y), h = vr(l, c, 90), g = dr(i, u, y), n) : y4971        }, n.majorExtent([[ - 180, - 90 + Ta], [180, 90 - Ta]]).minorExtent([[ - 180, - 80 - Ta], [180, 80 + Ta]])4972    }, ta.geo.greatArc = function() {4973        function n() {4974            return {4975                type: "LineString",4976                coordinates: [t || r.apply(this, arguments), e || u.apply(this, arguments)]4977            }4978        }4979        var t, e, r = mr, u = yr;4980        return n.distance = function() {4981            return ta.geo.distance(t || r.apply(this, arguments), e || u.apply(this, arguments))4982        }, n.source = function(e) {4983            return arguments.length ? (r = e, t = "function" == typeof e ? null : e, n) : r4984        }, n.target = function(t) {4985            return arguments.length ? (u = t, e = "function" == typeof t ? null : t, n) : u4986        }, n.precision = function() {4987            return arguments.length ? n : 04988        }, n4989    }, ta.geo.interpolate = function(n, t) {4990        return Mr(n[0] * Fa, n[1] * Fa, t[0] * Fa, t[1] * Fa)4991    }, ta.geo.length = function(n) {4992        return $c = 0, ta.geo.stream(n, Bc), $c4993    };4994    var $c, Bc = {4995        sphere: y,4996        point: y,4997        lineStart: xr,4998        lineEnd: y,4999        polygonStart: y,5000        polygonEnd: y5001    }, Wc = br(function(n) {5002        return Math.sqrt(2 / (1 + n))5003    }, function(n) {5004        return 2 * Math.asin(n / 2)5005    });5006    (ta.geo.azimuthalEqualArea = function() {5007        return ur(Wc)5008    }).raw = Wc;5009    var Jc = br(function(n) {5010        var t = Math.acos(n);5011        return t && t / Math.sin(t)5012    }, Et);5013    (ta.geo.azimuthalEquidistant = function() {5014        return ur(Jc)5015    }).raw = Jc, (ta.geo.conicConformal = function() {5016        return Ie(_r)5017    }).raw = _r, (ta.geo.conicEquidistant = function() {5018        return Ie(wr)5019    }).raw = wr;5020    var Gc = br(function(n) {5021        return 1 / n5022    }, Math.atan);5023    (ta.geo.gnomonic = function() {5024        return ur(Gc)5025    }).raw = Gc, Sr.invert = function(n, t) {5026        return [n, 2 * Math.atan(Math.exp(t)) - ja]5027    }, (ta.geo.mercator = function() {5028        return kr(Sr)5029    }).raw = Sr;5030    var Kc = br(function() {5031        return 15032    }, Math.asin);5033    (ta.geo.orthographic = function() {5034        return ur(Kc)5035    }).raw = Kc;5036    var Qc = br(function(n) {5037        return 1 / (1 + n)5038    }, function(n) {5039        return 2 * Math.atan(n)5040    });5041    (ta.geo.stereographic = function() {5042        return ur(Qc)5043    }).raw = Qc, Er.invert = function(n, t) {5044        return [ - t, 2 * Math.atan(Math.exp(n)) - ja]5045    }, (ta.geo.transverseMercator = function() {5046        var n = kr(Er), t = n.center, e = n.rotate;5047        return n.center = function(n) {5048            return n ? t([ - n[1], n[0]]) : (n = t(), [n[1], - n[0]])5049        }, n.rotate = function(n) {5050            return n ? e([n[0], n[1], n.length > 2 ? n[2] + 90: 90]) : (n = e(), [n[0], n[1], n[2] - 90])5051        }, e([0, 0, 90])5052    }).raw = Er, ta.geom = {}, ta.geom.hull = function(n) {5053        function t(n) {5054            if (n.length < 3)5055                return [];5056            var t, u = kt(e), i = kt(r), o = n.length, a = [], c = [];5057            for (t = 0; o > t; t++)5058                a.push([ + u.call(this, n[t], t), + i.call(this, n[t], t), t]);5059            for (a.sort(zr), t = 0; o > t; t++)5060                c.push([a[t][0], - a[t][1]]);5061            var l = Cr(a), s = Cr(c), f = s[0] === l[0], h = s[s.length - 1] === l[l.length - 1], g = [];5062            for (t = l.length - 1; t >= 0; --t)5063                g.push(n[a[l[t]][2]]);5064            for (t =+ f; t < s.length - h; ++t)5065                g.push(n[a[s[t]][2]]);5066            return g5067        }5068        var e = Ar, r = Nr;5069        return arguments.length ? t(n) : (t.x = function(n) {5070            return arguments.length ? (e = n, t) : e5071        }, t.y = function(n) {5072            return arguments.length ? (r = n, t) : r5073        }, t)5074    }, ta.geom.polygon = function(n) {5075        return xa(n, nl), n5076    };5077    var nl = ta.geom.polygon.prototype = [];5078    nl.area = function() {5079        for (var n, t =- 1, e = this.length, r = this[e - 1], u = 0; ++t < e;)5080            n = r, r = this[t], u += n[1] * r[0] - n[0] * r[1];5081        return .5 * u5082    }, nl.centroid = function(n) {5083        var t, e, r =- 1, u = this.length, i = 0, o = 0, a = this[u - 1];5084        for (arguments.length || (n =- 1 / (6 * this.area())); ++r < u;)5085            t = a, a = this[r], e = t[0] * a[1] - a[0] * t[1], i += (t[0] + a[0]) * e, o += (t[1] + a[1]) * e;5086        return [i * n, o * n]5087    }, nl.clip = function(n) {5088        for (var t, e, r, u, i, o, a = Tr(n), c =- 1, l = this.length - Tr(this), s = this[l - 1]; ++c < l;) {5089            for (t = n.slice(), n.length = 0, u = this[c], i = t[(r = t.length - a) - 1], e =- 1; ++e < r;)5090                o = t[e], qr(o, s, u) ? (qr(i, s, u) || n.push(Lr(i, o, s, u)), n.push(o)) : qr(i, s, u) && n.push(Lr(i, o, s, u)), i = o;5091            a && n.push(n[0]), s = u5092        }5093        return n5094    };5095    var tl, el, rl, ul, il, ol = [], al = [];5096    Or.prototype.prepare = function() {5097        for (var n, t = this.edges, e = t.length; e--;)5098            n = t[e].edge, n.b && n.a || t.splice(e, 1);5099        return t.sort(Ir), t.length5100    }, Qr.prototype = {5101        start: function() {5102            return this.edge.l === this.site ? this.edge.a : this.edge.b5103        },5104        end: function() {5105            return this.edge.l === this.site ? this.edge.b : this.edge.a5106        }5107    }, nu.prototype = {5108        insert: function(n, t) {5109            var e, r, u;5110            if (n) {5111                if (t.P = n, t.N = n.N, n.N && (n.N.P = t), n.N = t, n.R) {5112                    for (n = n.R; n.L;)5113                        n = n.L;5114                    n.L = t5115                } else 5116                    n.R = t;5117                e = n5118            } else 5119                this._ ? (n = uu(this._), t.P = null, t.N = n, n.P = n.L = t, e = n) : (t.P = t.N = null, this._ = t, e = null);5120            for (t.L = t.R = null, t.U = e, t.C=!0, n = t; e && e.C;)5121                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 && (eu(this, e), n = e, e = n.U), e.C=!1, r.C=!0, ru(this, r))) : (u = r.L, u && u.C ? (e.C = u.C=!1, r.C=!0, n = r) : (n === e.L && (ru(this, e), n = e, e = n.U), e.C=!1, r.C=!0, eu(this, r))), e = n.U;5122            this._.C=!15123        },5124        remove: function(n) {5125            n.N && (n.N.P = n.P), n.P && (n.P.N = n.N), n.N = n.P = null;5126            var t, e, r, u = n.U, i = n.L, o = n.R;5127            if (e = i ? o ? uu(o) : i : o, u ? u.L === n ? u.L = e : u.R = e : this._ = e, i && o ? (r = e.C, e.C = n.C, e.L = i, i.U = e, e !== o ? (u = e.U, e.U = n.U, n = e.R, u.L = n, e.R = o, o.U = e) : (e.U = u, u = e, n = e.R)) : (r = n.C, n = e), n && (n.U = u), !r) {5128                if (n && n.C)5129                    return n.C=!1, void 0;5130                do {5131                    if (n === this._)5132                        break;5133                    if (n === u.L) {5134                        if (t = u.R, t.C && (t.C=!1, u.C=!0, eu(this, u), t = u.R), t.L && t.L.C || t.R && t.R.C) {5135                            t.R && t.R.C || (t.L.C=!1, t.C=!0, ru(this, t), t = u.R), t.C = u.C, u.C = t.R.C=!1, eu(this, u), n = this._;5136                            break5137                        }5138                    } else if (t = u.L, t.C && (t.C=!1, u.C=!0, ru(this, u), t = u.L), t.L && t.L.C || t.R && t.R.C) {5139                        t.L && t.L.C || (t.R.C=!1, t.C=!0, eu(this, t), t = u.L), t.C = u.C, u.C = t.L.C=!1, ru(this, u), n = this._;5140                        break5141                    }5142                    t.C=!0, n = u, u = u.U5143                }5144                while (!n.C);5145                n && (n.C=!1)5146            }5147        }5148    }, ta.geom.voronoi = function(n) {5149        function t(n) {5150            var t = new Array(n.length), r = a[0][0], u = a[0][1], i = a[1][0], o = a[1][1];5151            return iu(e(n), a).cells.forEach(function(e, a) {5152                var c = e.edges, l = e.site, s = t[a] = c.length ? c.map(function(n) {5153                    var t = n.start();5154                    return [t.x, t.y]5155                }): l.x >= r && l.x <= i && l.y >= u && l.y <= o ? [[r, o], [i, o], [i, u], [r, u]]: [];5156                s.point = n[a]5157            }), t5158        }5159        function e(n) {5160            return n.map(function(n, t) {5161                return {5162                    x: Math.round(i(n, t) / Ta) * Ta,5163                    y: Math.round(o(n, t) / Ta) * Ta,5164                    i: t5165                }5166            })5167        }5168        var r = Ar, u = Nr, i = r, o = u, a = cl;5169        return n ? t(n) : (t.links = function(n) {5170            return iu(e(n)).edges.filter(function(n) {5171                return n.l && n.r5172            }).map(function(t) {5173                return {5174                    source: n[t.l.i],5175                    target: n[t.r.i]5176                }5177            })5178        }, t.triangles = function(n) {5179            var t = [];5180            return iu(e(n)).cells.forEach(function(e, r) {5181                for (var u, i, o = e.site, a = e.edges.sort(Ir), c =- 1, l = a.length, s = a[l - 1].edge, f = s.l === o ? s.r : s.l; ++c < l;)5182                    u = s, i = f, s = a[c].edge, f = s.l === o ? s.r : s.l, r < i.i && r < f.i && au(o, i, f) < 0 && t.push([n[r], n[i.i], n[f.i]])5183            }), t5184        }, t.x = function(n) {5185            return arguments.length ? (i = kt(r = n), t) : r5186        }, t.y = function(n) {5187            return arguments.length ? (o = kt(u = n), t) : u5188        }, t.clipExtent = function(n) {5189            return arguments.length ? (a = null == n ? cl : n, t) : a === cl ? null : a5190        }, t.size = function(n) {5191            return arguments.length ? t.clipExtent(n && [[0, 0], n]) : a === cl ? null : a && a[1]5192        }, t)5193    };5194    var cl = [[ - 1e6, - 1e6], [1e6, 1e6]];5195    ta.geom.delaunay = function(n) {5196        return ta.geom.voronoi().triangles(n)5197    }, ta.geom.quadtree = function(n, t, e, r, u) {5198        function i(n) {5199            function i(n, t, e, r, u, i, o, a) {5200                if (!isNaN(e)&&!isNaN(r))5201                    if (n.leaf) {5202                        var c = n.x, s = n.y;5203                        if (null != c)5204                            if (va(c - e) + va(s - r) < .01)5205                                l(n, t, e, r, u, i, o, a);5206                            else {5207                                var f = n.point;5208                                n.x = n.y = n.point = null, l(n, f, c, s, u, i, o, a), l(n, t, e, r, u, i, o, a)5209                            } else 5210                                n.x = e, n.y = r, n.point = t5211                        } else 5212                            l(n, t, e, r, u, i, o, a)5213                }5214            function l(n, t, e, r, u, o, a, c) {5215                var l = .5 * (u + a), s = .5 * (o + c), f = e >= l, h = r >= s, g = h<<1 | f;5216                n.leaf=!1, n = n.nodes[g] || (n.nodes[g] = su()), f ? u = l : a = l, h ? o = s : c = s, i(n, t, e, r, u, o, a, c)5217            }5218            var s, f, h, g, p, v, d, m, y, M = kt(a), x = kt(c);5219            if (null != t)5220                v = t, d = e, m = r, y = u;5221            else if (m = y =- (v = d = 1 / 0), f = [], h = [], p = n.length, o)5222                for (g = 0; p > g; ++g)5223                    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);5224            else 5225                for (g = 0; p > g; ++g) {5226                    var b =+ M(s = n[g], g), _ =+ x(s, g);5227                    v > b && (v = b), d > _ && (d = _), b > m && (m = b), _ > y && (y = _), f.push(b), h.push(_)5228                }5229            var w = m - v, S = y - d;5230            w > S ? y = d + w : m = v + S;5231            var k = su();5232            if (k.add = function(n) {5233                i(k, n, + M(n, ++g), + x(n, g), v, d, m, y)5234            }, k.visit = function(n) {5235                fu(n, k, v, d, m, y)5236            }, k.find = function(n) {5237                return hu(k, n[0], n[1], v, d, m, y)5238            }, g =- 1, null == t) {5239                for (; ++g < p;)5240                    i(k, n[g], f[g], h[g], v, d, m, y);5241                --g5242            } else 5243                n.forEach(k.add);5244            return f = h = n = s = null, k5245        }5246        var o, a = Ar, c = Nr;5247        return (o = arguments.length) ? (a = cu, c = lu, 3 === o && (u = e, r = t, e = t = 0), i(n)) : (i.x = function(n) {5248            return arguments.length ? (a = n, i) : a5249        }, i.y = function(n) {5250            return arguments.length ? (c = n, i) : c5251        }, i.extent = function(n) {5252            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 : [[t, e], [r, u]]5253        }, i.size = function(n) {5254            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]5255        }, i)5256    }, ta.interpolateRgb = gu, ta.interpolateObject = pu, ta.interpolateNumber = vu, ta.interpolateString = du;5257    var ll = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, sl = new RegExp(ll.source, "g");5258    ta.interpolate = mu, ta.interpolators = [function(n, t) {5259        var e = typeof t;5260        return ("string" === e ? tc.has(t) || /^(#|rgb\(|hsl\()/.test(t) ? gu : du : t instanceof it ? gu : Array.isArray(t) ? yu : "object" === e && isNaN(t) ? pu : vu)(n, t)5261    }5262    ], ta.interpolateArray = yu;5263    var fl = function() {5264        return Et5265    }, hl = ta.map({5266        linear: fl,5267        poly: ku,5268        quad: function() {5269            return _u5270        },5271        cubic: function() {5272            return wu5273        },5274        sin: function() {5275            return Eu5276        },5277        exp: function() {5278            return Au5279        },5280        circle: function() {5281            return Nu5282        },5283        elastic: Cu,5284        back: zu,5285        bounce: function() {5286            return qu5287        }5288    }), gl = ta.map({5289        "in": Et,5290        out: xu,5291        "in-out": bu,5292        "out-in": function(n) {5293            return bu(xu(n))5294        }5295    });5296    ta.ease = function(n) {5297        var t = n.indexOf("-"), e = t >= 0 ? n.slice(0, t): n, r = t >= 0 ? n.slice(t + 1): "in";5298        return e = hl.get(e) || fl, r = gl.get(r) || Et, Mu(r(e.apply(null, ea.call(arguments, 1))))5299    }, ta.interpolateHcl = Lu, ta.interpolateHsl = Tu, ta.interpolateLab = Ru, ta.interpolateRound = Du, ta.transform = function(n) {5300        var t = ua.createElementNS(ta.ns.prefix.svg, "g");5301        return (ta.transform = function(n) {5302            if (null != n) {5303                t.setAttribute("transform", n);5304                var e = t.transform.baseVal.consolidate()5305            }5306            return new Pu(e ? e.matrix : pl)5307        })(n)5308    }, Pu.prototype.toString = function() {5309        return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"5310    };5311    var pl = {5312        a: 1,5313        b: 0,5314        c: 0,5315        d: 1,5316        e: 0,5317        f: 05318    };5319    ta.interpolateTransform = Hu, ta.layout = {}, ta.layout.bundle = function() {5320        return function(n) {5321            for (var t = [], e =- 1, r = n.length; ++e < r;)5322                t.push(Iu(n[e]));5323            return t5324        }5325    }, ta.layout.chord = function() {5326        function n() {5327            var n, l, f, h, g, p = {}, v = [], d = ta.range(i), m = [];5328            for (e = [], r = [], n = 0, h =- 1; ++h < i;) {5329                for (l = 0, g =- 1; ++g < i;)5330                    l += u[h][g];5331                v.push(l), m.push(ta.range(i)), n += l5332            }5333            for (o && d.sort(function(n, t) {5334                return o(v[n], v[t])5335            }), a && m.forEach(function(n, t) {5336                n.sort(function(n, e) {5337                    return a(u[t][n], u[t][e])5338                })5339            }), n = (Pa - s * i) / n, l = 0, h =- 1; ++h < i;) {5340                for (f = l, g =- 1; ++g < i;) {5341                    var y = d[h], M = m[y][g], x = u[y][M], b = l, _ = l += x * n;5342                    p[y + "-" + M] = {5343                        index: y,5344                        subindex: M,5345                        startAngle: b,5346                        endAngle: _,5347                        value: x5348                    }5349                }5350                r[y] = {5351                    index: y,5352                    startAngle: f,5353                    endAngle: l,5354                    value: (l - f) / n5355                }, l += s5356            }5357            for (h =- 1; ++h < i;)5358                for (g = h - 1; ++g < i;) {5359                    var w = p[h + "-" + g], S = p[g + "-" + h];5360                    (w.value || S.value) && e.push(w.value < S.value ? {5361                        source: S,5362                        target: w5363                    } : {5364                        source: w,5365                        target: S5366                    })5367                }5368            c && t()5369        }5370        function t() {5371            e.sort(function(n, t) {5372                return c((n.source.value + n.target.value) / 2, (t.source.value + t.target.value) / 2)5373            })5374        }5375        var e, r, u, i, o, a, c, l = {}, s = 0;5376        return l.matrix = function(n) {5377            return arguments.length ? (i = (u = n) && u.length, e = r = null, l) : u5378        }, l.padding = function(n) {5379            return arguments.length ? (s = n, e = r = null, l) : s5380        }, l.sortGroups = function(n) {5381            return arguments.length ? (o = n, e = r = null, l) : o5382        }, l.sortSubgroups = function(n) {5383            return arguments.length ? (a = n, e = null, l) : a5384        }, l.sortChords = function(n) {5385            return arguments.length ? (c = n, e && t(), l) : c5386        }, l.chords = function() {5387            return e || n(), e5388        }, l.groups = function() {5389            return r || n(), r5390        }, l5391    }, ta.layout.force = function() {5392        function n(n) {5393            return function(t, e, r, u) {5394                if (t.point !== n) {5395                    var i = t.cx - n.x, o = t.cy - n.y, a = u - e, c = i * i + o * o;5396                    if (c > a * a / d) {5397                        if (p > c) {5398                            var l = t.charge / c;5399                            n.px -= i * l, n.py -= o * l5400                        }5401                        return !05402                    }5403                    if (t.point && c && p > c) {5404                        var l = t.pointCharge / c;5405                        n.px -= i * l, n.py -= o * l5406                    }5407                }5408                return !t.charge5409            }5410        }5411        function t(n) {5412            n.px = ta.event.x, n.py = ta.event.y, a.resume()5413        }5414        var e, r, u, i, o, a = {}, c = ta.dispatch("start", "tick", "end"), l = [1, 1], s = .9, f = vl, h = dl, g =- 30, p = ml, v = .1, d = .64, m = [], y = [];5415        return a.tick = function() {5416            if ((r*=.99) < .005)5417                return c.end({5418                    type: "end",5419                    alpha: r = 05420                }), !0;5421            var t, e, a, f, h, p, d, M, x, b = m.length, _ = y.length;5422            for (e = 0; _ > e; ++e)5423                a = y[e], f = a.source, h = a.target, M = h.x - f.x, x = h.y - f.y, (p = M * M + x * x) && (p = r * i[e] * ((p = Math.sqrt(p)) - u[e]) / p, M*=p, x*=p, h.x -= M * (d = f.weight / (h.weight + f.weight)), h.y -= x * d, f.x += M * (d = 1 - d), f.y += x * d);5424            if ((d = r * v) && (M = l[0] / 2, x = l[1] / 2, e =- 1, d))5425                for (; ++e < b;)5426                    a = m[e], a.x += (M - a.x) * d, a.y += (x - a.y) * d;5427            if (g)5428                for (Ju(t = ta.geom.quadtree(m), r, o)5429                    , e =- 1;5430            ++e < b;5431            )(a = m[e]).fixed || t.visit(n(a));5432            for (e =- 1; ++e < b;)5433                a = m[e], a.fixed ? (a.x = a.px, a.y = a.py) : (a.x -= (a.px - (a.px = a.x)) * s, a.y -= (a.py - (a.py = a.y)) * s);5434            c.tick({5435                type: "tick",5436                alpha: r5437            })5438        }, a.nodes = function(n) {5439            return arguments.length ? (m = n, a) : m5440        }, a.links = function(n) {5441            return arguments.length ? (y = n, a) : y5442        }, a.size = function(n) {5443            return arguments.length ? (l = n, a) : l5444        }, a.linkDistance = function(n) {5445            return arguments.length ? (f = "function" == typeof n ? n : + n, a) : f5446        }, a.distance = a.linkDistance, a.linkStrength = function(n) {5447            return arguments.length ? (h = "function" == typeof n ? n : + n, a) : h5448        }, a.friction = function(n) {5449            return arguments.length ? (s =+ n, a) : s5450        }, a.charge = function(n) {5451            return arguments.length ? (g = "function" == typeof n ? n : + n, a) : g5452        }, a.chargeDistance = function(n) {5453            return arguments.length ? (p = n * n, a) : Math.sqrt(p)5454        }, a.gravity = function(n) {5455            return arguments.length ? (v =+ n, a) : v5456        }, a.theta = function(n) {5457            return arguments.length ? (d = n * n, a) : Math.sqrt(d)5458        }, a.alpha = function(n) {5459            return arguments.length ? (n =+ n, r ? r = n > 0 ? n : 0 : n > 0 && (c.start({5460                type: "start",5461                alpha: r = n5462            }), ta.timer(a.tick)), a) : r5463        }, a.start = function() {5464            function n(n, r) {5465                if (!e) {5466                    for (e = new Array(c), a = 0; c > a; ++a)5467                        e[a] = [];5468                    for (a = 0; l > a; ++a) {5469                        var u = y[a];5470                        e[u.source.index].push(u.target), e[u.target.index].push(u.source)5471                    }5472                }5473                for (var i, o = e[t], a =- 1, l = o.length; ++a < l;)5474                    if (!isNaN(i = o[a][n]))5475                        return i;5476                return Math.random() * r5477            }5478            var t, e, r, c = m.length, s = y.length, p = l[0], v = l[1];5479            for (t = 0; c > t; ++t)(r = m[t])5480                .index = t, r.weight = 0;5481            for (t = 0; s > t; ++t)5482                r = y[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;5483            for (t = 0; c > t; ++t)5484                r = m[t], isNaN(r.x) && (r.x = n("x", p)), isNaN(r.y) && (r.y = n("y", v)), isNaN(r.px) && (r.px = r.x), isNaN(r.py) && (r.py = r.y);5485            if (u = [], "function" == typeof f)5486                for (t = 0; s > t; ++t)5487                    u[t] =+ f.call(this, y[t], t);5488            else 5489                for (t = 0; s > t; ++t)5490                    u[t] = f;5491            if (i = [], "function" == typeof h)5492                for (t = 0; s > t; ++t)5493                    i[t] =+ h.call(this, y[t], t);5494            else 5495                for (t = 0; s > t; ++t)5496                    i[t] = h;5497            if (o = [], "function" == typeof g)5498                for (t = 0; c > t; ++t)5499                    o[t] =+ g.call(this, m[t], t);5500            else 5501                for (t = 0; c > t; ++t)5502                    o[t] = g;5503            return a.resume()5504        }, a.resume = function() {5505            return a.alpha(.1)5506        }, a.stop = function() {5507            return a.alpha(0)5508        }, a.drag = function() {5509            return e || (e = ta.behavior.drag().origin(Et).on("dragstart.force", Xu).on("drag.force", t).on("dragend.force", $u)), arguments.length ? (this.on("mouseover.force", Bu).on("mouseout.force", Wu).call(e), void 0) : e5510        }, ta.rebind(a, c, "on")5511    };5512    var vl = 20, dl = 1, ml = 1 / 0;5513    ta.layout.hierarchy = function() {5514        function n(u) {5515            var i, o = [u], a = [];5516            for (u.depth = 0; null != (i = o.pop());)5517                if (a.push(i), (l = e.call(n, i, i.depth)) && (c = l.length)) {5518                    for (var c, l, s; --c >= 0;)5519                        o.push(s = l[c]), s.parent = i, s.depth = i.depth + 1;5520                        r && (i.value = 0), i.children = l5521                } else 5522                    r && (i.value =+ r.call(n, i, i.depth) || 0), delete i.children;5523            return Qu(u, function(n) {5524                var e, u;5525                t && (e = n.children) && e.sort(t), r && (u = n.parent) && (u.value += n.value)5526            }), a5527        }5528        var t = ei, e = ni, r = ti;5529        return n.sort = function(e) {5530            return arguments.length ? (t = e, n) : t5531        }, n.children = function(t) {5532            return arguments.length ? (e = t, n) : e5533        }, n.value = function(t) {5534            return arguments.length ? (r = t, n) : r5535        }, n.revalue = function(t) {5536            return r && (Ku(t, function(n) {5537                n.children && (n.value = 0)5538            }), Qu(t, function(t) {5539                var e;5540                t.children || (t.value =+ r.call(n, t, t.depth) || 0), (e = t.parent) && (e.value += t.value)5541            })), t5542        }, n5543    }, ta.layout.partition = function() {5544        function n(t, e, r, u) {5545            var i = t.children;5546            if (t.x = e, t.y = t.depth * u, t.dx = r, t.dy = u, i && (o = i.length)) {5547                var o, a, c, l =- 1;5548                for (r = t.value ? r / t.value : 0; ++l < o;)5549                    n(a = i[l], e, c = a.value * r, u), e += c5550            }5551        }5552        function t(n) {5553            var e = n.children, r = 0;5554            if (e && (u = e.length))5555                for (var u, i =- 1; ++i < u;)5556                    r = Math.max(r, t(e[i]));5557            return 1 + r5558        }5559        function e(e, i) {5560            var o = r.call(this, e, i);5561            return n(o[0], 0, u[0], u[1] / t(o[0])), o5562        }5563        var r = ta.layout.hierarchy(), u = [1, 1];5564        return e.size = function(n) {5565            return arguments.length ? (u = n, e) : u5566        }, Gu(e, r)5567    }, ta.layout.pie = function() {5568        function n(o) {5569            var a, c = o.length, l = o.map(function(e, r) {5570                return + t.call(n, e, r)5571            }), s =+ ("function" == typeof r ? r.apply(this, arguments) : r), f = ("function" == typeof u ? u.apply(this, arguments) : u) - s, h = Math.min(Math.abs(f) / c, + ("function" == typeof i ? i.apply(this, arguments) : i)), g = h * (0 > f?-1 : 1), p = (f - c * g) / ta.sum(l), v = ta.range(c), d = [];5572            return null != e && v.sort(e === yl ? function(n, t) {5573                return l[t] - l[n]5574            } : function(n, t) {5575                return e(o[n], o[t])5576            }), v.forEach(function(n) {5577                d[n] = {5578                    data: o[n],5579                    value: a = l[n],5580                    startAngle: s,5581                    endAngle: s += a * p + g,5582                    padAngle: h5583                }5584            }), d5585        }5586        var t = Number, e = yl, r = 0, u = Pa, i = 0;5587        return n.value = function(e) {5588            return arguments.length ? (t = e, n) : t5589        }, n.sort = function(t) {5590            return arguments.length ? (e = t, n) : e5591        }, n.startAngle = function(t) {5592            return arguments.length ? (r = t, n) : r5593        }, n.endAngle = function(t) {5594            return arguments.length ? (u = t, n) : u5595        }, n.padAngle = function(t) {5596            return arguments.length ? (i = t, n) : i5597        }, n5598    };5599    var yl = {};5600    ta.layout.stack = function() {5601        function n(a, c) {5602            if (!(h = a.length))5603                return a;5604            var l = a.map(function(e, r) {5605                return t.call(n, e, r)5606            }), s = l.map(function(t) {5607                return t.map(function(t, e) {5608                    return [i.call(n, t, e), o.call(n, t, e)]5609                })5610            }), f = e.call(n, s, c);5611            l = ta.permute(l, f), s = ta.permute(s, f);5612            var h, g, p, v, d = r.call(n, s, c), m = l[0].length;5613            for (p = 0; m > p; ++p)5614                for (u.call(n, l[0][p], v = d[p], s[0][p][1]), g = 1; h > g; ++g)5615                    u.call(n, l[g][p], v += s[g - 1][p][1], s[g][p][1]);5616            return a5617        }5618        var t = Et, e = ai, r = ci, u = oi, i = ui, o = ii;5619        return n.values = function(e) {5620            return arguments.length ? (t = e, n) : t5621        }, n.order = function(t) {5622            return arguments.length ? (e = "function" == typeof t ? t : Ml.get(t) || ai, n) : e5623        }, n.offset = function(t) {5624            return arguments.length ? (r = "function" == typeof t ? t : xl.get(t) || ci, n) : r5625        }, n.x = function(t) {5626            return arguments.length ? (i = t, n) : i5627        }, n.y = function(t) {5628            return arguments.length ? (o = t, n) : o5629        }, n.out = function(t) {5630            return arguments.length ? (u = t, n) : u5631        }, n5632    };5633    var Ml = ta.map({5634        "inside-out": function(n) {5635            var t, e, r = n.length, u = n.map(li), i = n.map(si), o = ta.range(r).sort(function(n, t) {5636                return u[n] - u[t]5637            }), a = 0, c = 0, l = [], s = [];5638            for (t = 0; r > t; ++t)5639                e = o[t], c > a ? (a += i[e], l.push(e)) : (c += i[e], s.push(e));5640            return s.reverse().concat(l)5641        },5642        reverse: function(n) {5643            return ta.range(n.length).reverse()5644        },5645        "default": ai5646    }), xl = ta.map({5647        silhouette: function(n) {5648            var t, e, r, u = n.length, i = n[0].length, o = [], a = 0, c = [];5649            for (e = 0; i > e; ++e) {5650                for (t = 0, r = 0; u > t; t++)5651                    r += n[t][e][1];5652                r > a && (a = r), o.push(r)5653            }5654            for (e = 0; i > e; ++e)5655                c[e] = (a - o[e]) / 2;5656            return c5657        },5658        wiggle: function(n) {5659            var t, e, r, u, i, o, a, c, l, s = n.length, f = n[0], h = f.length, g = [];5660            for (g[0] = c = l = 0, e = 1; h > e; ++e) {5661                for (t = 0, u = 0; s > t; ++t)5662                    u += n[t][e][1];5663                for (t = 0, i = 0, a = f[e][0] - f[e - 1][0]; s > t; ++t) {5664                    for (r = 0, o = (n[t][e][1] - n[t][e - 1][1]) / (2 * a); t > r; ++r)5665                        o += (n[r][e][1] - n[r][e - 1][1]) / a;5666                    i += o * n[t][e][1]5667                }5668                g[e] = c -= u ? i / u * a : 0, l > c && (l = c)5669            }5670            for (e = 0; h > e; ++e)5671                g[e] -= l;5672            return g5673        },5674        expand: function(n) {5675            var t, e, r, u = n.length, i = n[0].length, o = 1 / u, a = [];5676            for (e = 0; i > e; ++e) {5677                for (t = 0, r = 0; u > t; t++)5678                    r += n[t][e][1];5679                if (r)5680                    for (t = 0; u > t; t++)5681                        n[t][e][1]/=r;5682                else 5683                    for (t = 0; u > t; t++)5684                        n[t][e][1] = o5685            }5686            for (e = 0; i > e; ++e)5687                a[e] = 0;5688            return a5689        },5690        zero: ci5691    });5692    ta.layout.histogram = function() {5693        function n(n, i) {5694            for (var o, a, c = [], l = n.map(e, this), s = r.call(this, l, i), f = u.call(this, s, l, i), i =- 1, h = l.length, g = f.length - 1, p = t ? 1 : 1 / h; ++i < g;)5695                o = c[i] = [], o.dx = f[i + 1] - (o.x = f[i]), o.y = 0;5696            if (g > 0)5697                for (i =- 1; ++i < h;)5698                    a = l[i], a >= s[0] && a <= s[1] && (o = c[ta.bisect(f, a, 1, g) - 1], o.y += p, o.push(n[i]));5699            return c5700        }5701        var t=!0, e = Number, r = pi, u = hi;5702        return n.value = function(t) {5703            return arguments.length ? (e = t, n) : e5704        }, n.range = function(t) {5705            return arguments.length ? (r = kt(t), n) : r5706        }, n.bins = function(t) {5707            return arguments.length ? (u = "number" == typeof t ? function(n) {5708                return gi(n, t)5709            } : kt(t), n) : u5710        }, n.frequency = function(e) {5711            return arguments.length ? (t=!!e, n) : t5712        }, n5713    }, ta.layout.pack = function() {5714        function n(n, i) {5715            var o = e.call(this, n, i), a = o[0], c = u[0], l = u[1], s = null == t ? Math.sqrt: "function" == typeof t ? t: function() {5716                return t5717            };5718            if (a.x = a.y = 0, Qu(a, function(n) {5719                n.r =+ s(n.value)5720            }), Qu(a, Mi), r) {5721                var f = r * (t ? 1 : Math.max(2 * a.r / c, 2 * a.r / l)) / 2;5722                Qu(a, function(n) {5723                    n.r += f5724                }), Qu(a, Mi), Qu(a, function(n) {5725                    n.r -= f5726                })5727            }5728            return _i(a, c / 2, l / 2, t ? 1 : 1 / Math.max(2 * a.r / c, 2 * a.r / l)), o5729        }5730        var t, e = ta.layout.hierarchy().sort(vi), r = 0, u = [1, 1];5731        return n.size = function(t) {5732            return arguments.length ? (u = t, n) : u5733        }, n.radius = function(e) {5734            return arguments.length ? (t = null == e || "function" == typeof e ? e : + e, n) : t5735        }, n.padding = function(t) {5736            return arguments.length ? (r =+ t, n) : r5737        }, Gu(n, e)5738    }, ta.layout.tree = function() {5739        function n(n, u) {5740            var s = o.call(this, n, u), f = s[0], h = t(f);5741            if (Qu(h, e), h.parent.m =- h.z, Ku(h, r), l)5742                Ku(f, i);5743            else {5744                var g = f, p = f, v = f;5745                Ku(f, function(n) {5746                    n.x < g.x && (g = n), n.x > p.x && (p = n), n.depth > v.depth && (v = n)5747                });5748                var d = a(g, p) / 2 - g.x, m = c[0] / (p.x + a(p, g) / 2 + d), y = c[1] / (v.depth || 1);5749                Ku(f, function(n) {5750                    n.x = (n.x + d) * m, n.y = n.depth * y5751                })5752            }5753            return s5754        }5755        function t(n) {5756            for (var t, e = {5757                A: null,5758                children: [n]5759            }, r = [e]; null != (t = r.pop());)5760                for (var u, i = t.children, o = 0, a = i.length; a > o; ++o)5761                    r.push((i[o] = u = {5762                        _: i[o],5763                        parent: t,5764                        children: (u = i[o].children) && u.slice() || [],5765                        A: null,5766                        a: null,5767                        z: 0,5768                        m: 0,5769                        c: 0,5770                        s: 0,5771                        t: null,5772                        i: o5773                    }).a = u);5774            return e.children[0]5775        }5776        function e(n) {5777            var t = n.children, e = n.parent.children, r = n.i ? e[n.i - 1]: null;5778            if (t.length) {5779                Ni(n);5780                var i = (t[0].z + t[t.length - 1].z) / 2;5781                r ? (n.z = r.z + a(n._, r._), n.m = n.z - i) : n.z = i5782            } else 5783                r && (n.z = r.z + a(n._, r._));5784            n.parent.A = u(n, r, n.parent.A || e[0])5785        }5786        function r(n) {5787            n._.x = n.z + n.parent.m, n.m += n.parent.m5788        }5789        function u(n, t, e) {5790            if (t) {5791                for (var r, u = n, i = n, o = t, c = u.parent.children[0], l = u.m, s = i.m, f = o.m, h = c.m; o = Ei(o), u = ki(u), o && u;)5792                    c = ki(c), i = Ei(i), i.a = n, r = o.z + f - u.z - l + a(o._, u._), r > 0 && (Ai(Ci(o, n, e), n, r), l += r, s += r), f += o.m, l += u.m, h += c.m, s += i.m;5793                o&&!Ei(i) && (i.t = o, i.m += f - s), u&&!ki(c) && (c.t = u, c.m += l - h, e = n)5794            }5795            return e5796        }5797        function i(n) {5798            n.x*=c[0], n.y = n.depth * c[1]5799        }5800        var o = ta.layout.hierarchy().sort(null).value(null), a = Si, c = [1, 1], l = null;5801        return n.separation = function(t) {5802            return arguments.length ? (a = t, n) : a5803        }, n.size = function(t) {5804            return arguments.length ? (l = null == (c = t) ? i : null, n) : l ? null : c5805        }, n.nodeSize = function(t) {5806            return arguments.length ? (l = null == (c = t) ? null : i, n) : l ? c : null5807        }, Gu(n, o)5808    }, ta.layout.cluster = function() {5809        function n(n, i) {5810            var o, a = t.call(this, n, i), c = a[0], l = 0;5811            Qu(c, function(n) {5812                var t = n.children;5813                t && t.length ? (n.x = qi(t), n.y = zi(t)) : (n.x = o ? l += e(n, o) : 0, n.y = 0, o = n)5814            });5815            var s = Li(c), f = Ti(c), h = s.x - e(s, f) / 2, g = f.x + e(f, s) / 2;5816            return Qu(c, u ? function(n) {5817                n.x = (n.x - c.x) * r[0], n.y = (c.y - n.y) * r[1]5818            } : function(n) {5819                n.x = (n.x - h) / (g - h) * r[0], n.y = (1 - (c.y ? n.y / c.y : 1)) * r[1]5820            }), a5821        }5822        var t = ta.layout.hierarchy().sort(null).value(null), e = Si, r = [1, 1], u=!1;5823        return n.separation = function(t) {5824            return arguments.length ? (e = t, n) : e5825        }, n.size = function(t) {5826            return arguments.length ? (u = null == (r = t), n) : u ? null : r5827        }, n.nodeSize = function(t) {5828            return arguments.length ? (u = null != (r = t), n) : u ? r : null5829        }, Gu(n, t)5830    }, ta.layout.treemap = function() {5831        function n(n, t) {5832            for (var e, r, u =- 1, i = n.length; ++u < i;)5833                r = (e = n[u]).value * (0 > t ? 0 : t), e.area = isNaN(r) || 0 >= r ? 0 : r5834        }5835        function t(e) {5836            var i = e.children;5837            if (i && i.length) {5838                var o, a, c, l = f(e), s = [], h = i.slice(), p = 1 / 0, v = "slice" === g ? l.dx: "dice" === g ? l.dy: "slice-dice" === g ? 1 & e.depth ? l.dy: l.dx: Math.min(l.dx, l.dy);5839                for (n(h, l.dx * l.dy / e.value)5840                    , s.area = 0;5841                (c = h.length) > 0;5842                )s.push(o = h[c - 1]), s.area += o.area, "squarify" !== g || (a = r(s, v)) <= p ? (h.pop(), p = a) : (s.area -= s.pop().area, u(s, v, l, !1), v = Math.min(l.dx, l.dy), s.length = s.area = 0, p = 1 / 0);5843                s.length && (u(s, v, l, !0), s.length = s.area = 0), i.forEach(t)5844            }5845        }5846        function e(t) {5847            var r = t.children;5848            if (r && r.length) {5849                var i, o = f(t), a = r.slice(), c = [];5850                for (n(a, o.dx * o.dy / t.value)5851                    , c.area = 0;5852                i = a.pop();5853                )c.push(i), c.area += i.area, null != i.z && (u(c, i.z ? o.dx : o.dy, o, !a.length), c.length = c.area = 0);5854                r.forEach(e)5855            }5856        }5857        function r(n, t) {5858            for (var e, r = n.area, u = 0, i = 1 / 0, o =- 1, a = n.length; ++o < a;)(e = n[o].area) 5859                && (i > e && (i = e), e > u && (u = e));5860            return r*=r, t*=t, r ? Math.max(t * u * p / r, r / (t * i * p)) : 1 / 05861        }5862        function u(n, t, e, r) {5863            var u, i =- 1, o = n.length, a = e.x, l = e.y, s = t ? c(n.area / t) : 0;5864            if (t == e.dx) {5865                for ((r || s > e.dy) && (s = e.dy); ++i < o;)5866                    u = n[i], u.x = a, u.y = l, u.dy = s, a += u.dx = Math.min(e.x + e.dx - a, s ? c(u.area / s) : 0);5867                u.z=!0, u.dx += e.x + e.dx - a, e.y += s, e.dy -= s5868            } else {5869                for ((r || s > e.dx) && (s = e.dx); ++i < o;)5870                    u = n[i], u.x = a, u.y = l, u.dx = s, l += u.dy = Math.min(e.y + e.dy - l, s ? c(u.area / s) : 0);5871                u.z=!1, u.dy += e.y + e.dy - l, e.x += s, e.dx -= s5872            }5873        }5874        function i(r) {5875            var u = o || a(r), i = u[0];5876            return i.x = 0, i.y = 0, i.dx = l[0], i.dy = l[1], o && a.revalue(i), n([i], i.dx * i.dy / i.value), (o ? e : t)(i), h && (o = u), u5877        }5878        var o, a = ta.layout.hierarchy(), c = Math.round, l = [1, 1], s = null, f = Ri, h=!1, g = "squarify", p = .5 * (1 + Math.sqrt(5));5879        return i.size = function(n) {5880            return arguments.length ? (l = n, i) : l5881        }, i.padding = function(n) {5882            function t(t) {5883                var e = n.call(i, t, t.depth);5884                return null == e ? Ri(t) : Di(t, "number" == typeof e ? [e, e, e, e] : e)5885            }5886            function e(t) {5887                return Di(t, n)5888            }5889            if (!arguments.length)5890                return s;5891            var r;5892            return f = null == (s = n) ? Ri : "function" == (r = typeof n) ? t : "number" === r ? (n = [n, n, n, n], e) : e, i5893        }, i.round = function(n) {5894            return arguments.length ? (c = n ? Math.round : Number, i) : c != Number5895        }, i.sticky = function(n) {5896            return arguments.length ? (h = n, o = null, i) : h5897        }, i.ratio = function(n) {5898            return arguments.length ? (p = n, i) : p5899        }, i.mode = function(n) {5900            return arguments.length ? (g = n + "", i) : g5901        }, Gu(i, a)5902    }, ta.random = {5903        normal: function(n, t) {5904            var e = arguments.length;5905            return 2 > e && (t = 1), 1 > e && (n = 0), function() {5906                var e, r, u;5907                do 5908                    e = 2 * Math.random() - 1, r = 2 * Math.random() - 1, u = e * e + r * r;5909                while (!u || u > 1);5910                return n + t * e * Math.sqrt( - 2 * Math.log(u) / u)5911            }5912        },5913        logNormal: function() {5914            var n = ta.random.normal.apply(ta, arguments);5915            return function() {5916                return Math.exp(n())5917            }5918        },5919        bates: function(n) {5920            var t = ta.random.irwinHall(n);5921            return function() {5922                return t() / n5923            }5924        },5925        irwinHall: function(n) {5926            return function() {5927                for (var t = 0, e = 0; n > e; e++)5928                    t += Math.random();5929                return t5930            }5931        }5932    }, ta.scale = {};5933    var bl = {5934        floor: Et,5935        ceil: Et5936    };5937    ta.scale.linear = function() {5938        return Yi([0, 1], [0, 1], mu, !1)5939    };5940    var _l = {5941        s: 1,5942        g: 1,5943        p: 1,5944        r: 1,5945        e: 15946    };5947    ta.scale.log = function() {5948        return Ji(ta.scale.linear().domain([0, 1]), 10, !0, [1, 10])5949    };5950    var wl = ta.format(".0e"), Sl = {5951        floor: function(n) {5952            return - Math.ceil( - n)5953        },5954        ceil: function(n) {5955            return - Math.floor( - n)5956        }5957    };5958    ta.scale.pow = function() {5959        return Gi(ta.scale.linear(), 1, [0, 1])5960    }, ta.scale.sqrt = function() {5961        return ta.scale.pow().exponent(.5)5962    }, ta.scale.ordinal = function() {5963        return Qi([], {5964            t: "range",5965            a: [[]]5966        })5967    }, ta.scale.category10 = function() {5968        return ta.scale.ordinal().range(kl)5969    }, ta.scale.category20 = function() {5970        return ta.scale.ordinal().range(El)5971    }, ta.scale.category20b = function() {5972        return ta.scale.ordinal().range(Al)5973    }, ta.scale.category20c = function() {5974        return ta.scale.ordinal().range(Nl)5975    };5976    var kl = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(yt), El = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(yt), Al = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(yt), Nl = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(yt);5977    ta.scale.quantile = function() {5978        return no([], [])5979    }, ta.scale.quantize = function() {5980        return to(0, 1, [0, 1])5981    }, ta.scale.threshold = function() {5982        return eo([.5], [0, 1])5983    }, ta.scale.identity = function() {5984        return ro([0, 1])5985    }, ta.svg = {}, ta.svg.arc = function() {5986        function n() {5987            var n = Math.max(0, + e.apply(this, arguments)), l = Math.max(0, + r.apply(this, arguments)), s = o.apply(this, arguments) - ja, f = a.apply(this, arguments) - ja, h = Math.abs(f - s), g = s > f ? 0: 1;5988            if (n > l && (p = l, l = n, n = p), h >= Ua)5989                return t(l, g) + (n ? t(n, 1 - g) : "") + "Z";5990            var p, v, d, m, y, M, x, b, _, w, S, k, E = 0, A = 0, N = [];5991            if ((m = ( + c.apply(this, arguments) || 0) / 2) && (d = i === Cl ? Math.sqrt(n * n + l * l) : + i.apply(this, arguments), g || (A*=-1), l && (A = nt(d / l * Math.sin(m))), n && (E = nt(d / n * Math.sin(m)))), l) {5992                y = l * Math.cos(s + A), M = l * Math.sin(s + A), x = l * Math.cos(f - A), b = l * Math.sin(f - A);5993                var C = Math.abs(f - s - 2 * A) <= Da ? 0: 1;5994                if (A && so(y, M, x, b) === g^C) {5995                    var z = (s + f) / 2;5996                    y = l * Math.cos(z), M = l * Math.sin(z), x = b = null5997                }5998            } else 5999                y = M = 0;6000            if (n) {6001                _ = n * Math.cos(f - E), w = n * Math.sin(f - E), S = n * Math.cos(s + E), k = n * Math.sin(s + E);6002                var q = Math.abs(s - f + 2 * E) <= Da ? 0: 1;6003                if (E && so(_, w, S, k) === 1 - g^q) {6004                    var L = (s + f) / 2;6005                    _ = n * Math.cos(L), w = n * Math.sin(L), S = k = null6006                }6007            } else 6008                _ = w = 0;6009            if ((p = Math.min(Math.abs(l - n) / 2, + u.apply(this, arguments))) > .001) {6010                v = l > n^g ? 0 : 1;6011                var T = null == S ? [_, w]: null == x ? [y, M]: Lr([y, M], [S, k], [x, b], [_, w]), R = y - T[0], D = M - T[1], P = x - T[0], U = b - T[1], j = 1 / Math.sin(Math.acos((R * P + D * U) / (Math.sqrt(R * R + D * D) * Math.sqrt(P * P + U * U))) / 2), F = Math.sqrt(T[0] * T[0] + T[1] * T[1]);6012                if (null != x) {6013                    var H = Math.min(p, (l - F) / (j + 1)), O = fo(null == S ? [_, w] : [S, k], [y, M], l, H, g), Y = fo([x, b], [_, w], l, H, g);6014                    p === H ? N.push("M", O[0], "A", H, ",", H, " 0 0,", v, " ", O[1], "A", l, ",", l, " 0 ", 1 - g^so(O[1][0], O[1][1], Y[1][0], Y[1][1]), ",", g, " ", Y[1], "A", H, ",", H, " 0 0,", v, " ", Y[0]) : N.push("M", O[0], "A", H, ",", H, " 0 1,", v, " ", Y[0])6015                } else 6016                    N.push("M", y, ",", M);6017                if (null != S) {6018                    var I = Math.min(p, (n - F) / (j - 1)), Z = fo([y, M], [S, k], n, - I, g), V = fo([_, w], null == x ? [y, M] : [x, b], n, - I, g);6019                    p === I ? N.push("L", V[0], "A", I, ",", I, " 0 0,", v, " ", V[1], "A", n, ",", n, " 0 ", g^so(V[1][0], V[1][1], Z[1][0], Z[1][1]), ",", 1 - g, " ", Z[1], "A", I, ",", I, " 0 0,", v, " ", Z[0]) : N.push("L", V[0], "A", I, ",", I, " 0 0,", v, " ", Z[0])6020                } else 6021                    N.push("L", _, ",", w)6022            } else 6023                N.push("M", y, ",", M), null != x && N.push("A", l, ",", l, " 0 ", C, ",", g, " ", x, ",", b), N.push("L", _, ",", w), null != S && N.push("A", n, ",", n, " 0 ", q, ",", 1 - g, " ", S, ",", k);6024            return N.push("Z"), N.join("")6025        }6026        function t(n, t) {6027            return "M0," + n + "A" + n + "," + n + " 0 1," + t + " 0," +- n + "A" + n + "," + n + " 0 1," + t + " 0," + n6028        }6029        var e = io, r = oo, u = uo, i = Cl, o = ao, a = co, c = lo;6030        return n.innerRadius = function(t) {6031            return arguments.length ? (e = kt(t), n) : e6032        }, n.outerRadius = function(t) {6033            return arguments.length ? (r = kt(t), n) : r6034        }, n.cornerRadius = function(t) {6035            return arguments.length ? (u = kt(t), n) : u6036        }, n.padRadius = function(t) {6037            return arguments.length ? (i = t == Cl ? Cl : kt(t), n) : i6038        }, n.startAngle = function(t) {6039            return arguments.length ? (o = kt(t), n) : o6040        }, n.endAngle = function(t) {6041            return arguments.length ? (a = kt(t), n) : a6042        }, n.padAngle = function(t) {6043            return arguments.length ? (c = kt(t), n) : c6044        }, n.centroid = function() {6045            var n = ( + e.apply(this, arguments) + + r.apply(this, arguments)) / 2, t = ( + o.apply(this, arguments) + + a.apply(this, arguments)) / 2 - ja;6046            return [Math.cos(t) * n, Math.sin(t) * n]6047        }, n6048    };6049    var Cl = "auto";6050    ta.svg.line = function() {6051        return ho(Et)6052    };6053    var zl = ta.map({6054        linear: go,6055        "linear-closed": po,6056        step: vo,6057        "step-before": mo,6058        "step-after": yo,6059        basis: So,6060        "basis-open": ko,6061        "basis-closed": Eo,6062        bundle: Ao,6063        cardinal: bo,6064        "cardinal-open": Mo,6065        "cardinal-closed": xo,6066        monotone: To6067    });6068    zl.forEach(function(n, t) {6069        t.key = n, t.closed = /-closed$/.test(n)6070    });6071    var ql = [0, 2 / 3, 1 / 3, 0], Ll = [0, 1 / 3, 2 / 3, 0], Tl = [0, 1 / 6, 2 / 3, 1 / 6];6072    ta.svg.line.radial = function() {6073        var n = ho(Ro);6074        return n.radius = n.x, delete n.x, n.angle = n.y, delete n.y, n6075    }, mo.reverse = yo, yo.reverse = mo, ta.svg.area = function() {6076        return Do(Et)6077    }, ta.svg.area.radial = function() {6078        var n = Do(Ro);6079        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, n6080    }, ta.svg.chord = function() {6081        function n(n, a) {6082            var c = t(this, i, n, a), l = t(this, o, n, a);6083            return "M" + c.p0 + r(c.r, c.p1, c.a1 - c.a0) + (e(c, l) ? u(c.r, c.p1, c.r, c.p0) : u(c.r, c.p1, l.r, l.p0) + r(l.r, l.p1, l.a1 - l.a0) + u(l.r, l.p1, c.r, c.p0)) + "Z"6084        }6085        function t(n, t, e, r) {6086            var u = t.call(n, e, r), i = a.call(n, u, r), o = c.call(n, u, r) - ja, s = l.call(n, u, r) - ja;6087            return {6088                r: i,6089                a0: o,6090                a1: s,6091                p0: [i * Math.cos(o), i * Math.sin(o)],6092                p1: [i * Math.cos(s), i * Math.sin(s)]6093            }6094        }6095        function e(n, t) {6096            return n.a0 == t.a0 && n.a1 == t.a16097        }6098        function r(n, t, e) {6099            return "A" + n + "," + n + " 0 " + + (e > Da) + ",1 " + t6100        }6101        function u(n, t, e, r) {6102            return "Q 0,0 " + r6103        }6104        var i = mr, o = yr, a = Po, c = ao, l = co;6105        return n.radius = function(t) {6106            return arguments.length ? (a = kt(t), n) : a6107        }, n.source = function(t) {6108            return arguments.length ? (i = kt(t), n) : i6109        }, n.target = function(t) {6110            return arguments.length ? (o = kt(t), n) : o6111        }, n.startAngle = function(t) {6112            return arguments.length ? (c = kt(t), n) : c6113        }, n.endAngle = function(t) {6114            return arguments.length ? (l = kt(t), n) : l6115        }, n6116    }, ta.svg.diagonal = function() {6117        function n(n, u) {6118            var i = t.call(this, n, u), o = e.call(this, n, u), a = (i.y + o.y) / 2, c = [i, {6119                x: i.x,6120                y: a6121            }, {6122                x: o.x,6123                y: a6124            }, o];6125            return c = c.map(r), "M" + c[0] + "C" + c[1] + " " + c[2] + " " + c[3]6126        }6127        var t = mr, e = yr, r = Uo;6128        return n.source = function(e) {6129            return arguments.length ? (t = kt(e), n) : t6130        }, n.target = function(t) {6131            return arguments.length ? (e = kt(t), n) : e6132        }, n.projection = function(t) {6133            return arguments.length ? (r = t, n) : r6134        }, n6135    }, ta.svg.diagonal.radial = function() {6136        var n = ta.svg.diagonal(), t = Uo, e = n.projection;6137        return n.projection = function(n) {6138            return arguments.length ? e(jo(t = n)) : t6139        }, n6140    }, ta.svg.symbol = function() {6141        function n(n, r) {6142            return (Rl.get(t.call(this, n, r)) || Oo)(e.call(this, n, r))6143        }6144        var t = Ho, e = Fo;6145        return n.type = function(e) {6146            return arguments.length ? (t = kt(e), n) : t6147        }, n.size = function(t) {6148            return arguments.length ? (e = kt(t), n) : e6149        }, n6150    };6151    var Rl = ta.map({6152        circle: Oo,6153        cross: function(n) {6154            var t = Math.sqrt(n / 5) / 2;6155            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"6156        },6157        diamond: function(n) {6158            var t = Math.sqrt(n / (2 * Pl)), e = t * Pl;6159            return "M0," +- t + "L" + e + ",0" + " 0," + t + " " +- e + ",0" + "Z"6160        },6161        square: function(n) {6162            var t = Math.sqrt(n) / 2;6163            return "M" +- t + "," +- t + "L" + t + "," +- t + " " + t + "," + t + " " +- t + "," + t + "Z"6164        },6165        "triangle-down": function(n) {6166            var t = Math.sqrt(n / Dl), e = t * Dl / 2;6167            return "M0," + e + "L" + t + "," +- e + " " +- t + "," +- e + "Z"6168        },6169        "triangle-up": function(n) {6170            var t = Math.sqrt(n / Dl), e = t * Dl / 2;6171            return "M0," +- e + "L" + t + "," + e + " " +- t + "," + e + "Z"6172        }6173    });6174    ta.svg.symbolTypes = Rl.keys();6175    var Dl = Math.sqrt(3), Pl = Math.tan(30 * Fa);6176    ka.transition = function(n) {6177        for (var t, e, r = Ul||++Ol, u = Xo(n), i = [], o = jl || {6178            time: Date.now(),6179            ease: Su,6180            delay: 0,6181            duration: 2506182        }, a =- 1, c = this.length; ++a < c;) {6183            i.push(t = []);6184            for (var l = this[a], s =- 1, f = l.length; ++s < f;)(e = l[s]) 6185                && $o(e, s, u, r, o), t.push(e)6186        }6187        return Io(i, u, r)6188    }, ka.interrupt = function(n) {6189        return this.each(null == n ? Fl : Yo(Xo(n)))6190    };6191    var Ul, jl, Fl = Yo(Xo()), Hl = [], Ol = 0;6192    Hl.call = ka.call, Hl.empty = ka.empty, Hl.node = ka.node, Hl.size = ka.size, ta.transition = function(n, t) {6193        return n && n.transition ? Ul ? n.transition(t) : n : Na.transition(n)6194    }, ta.transition.prototype = Hl, Hl.select = function(n) {6195        var t, e, r, u = this.id, i = this.namespace, o = [];6196        n = k(n);6197        for (var a =- 1, c = this.length; ++a < c;) {6198            o.push(t = []);6199            for (var l = this[a], s =- 1, f = l.length; ++s < f;)(r = l[s]) 6200                && (e = n.call(r, r.__data__, s, a)) ? ("__data__"in r && (e.__data__ = r.__data__), $o(e, s, i, u, r[i][u]), t.push(e)) : t.push(null)6201        }6202        return Io(o, i, u)6203    }, Hl.selectAll = function(n) {6204        var t, e, r, u, i, o = this.id, a = this.namespace, c = [];6205        n = E(n);6206        for (var l =- 1, s = this.length; ++l < s;)6207            for (var f = this[l], h =- 1, g = f.length; ++h < g;)6208                if (r = f[h]) {6209                    i = r[a][o], e = n.call(r, r.__data__, h, l), c.push(t = []);6210                    for (var p =- 1, v = e.length; ++p < v;)(u = e[p]) 6211                        && $o(u, p, a, o, i), t.push(u)6212                }6213        return Io(c, a, o)6214    }, Hl.filter = function(n) {6215        var t, e, r, u = [];6216        "function" != typeof n && (n = j(n));6217        for (var i = 0, o = this.length; o > i; i++) {6218            u.push(t = []);6219            for (var e = this[i], a = 0, c = e.length; c > a; a++)(r = e[a]) 6220                && n.call(r, r.__data__, a, i) && t.push(r)6221        }6222        return Io(u, this.namespace, this.id)6223    }, Hl.tween = function(n, t) {6224        var e = this.id, r = this.namespace;6225        return arguments.length < 2 ? this.node()[r][e].tween.get(n) : H(this, null == t ? function(t) {6226            t[r][e].tween.remove(n)6227        } : function(u) {6228            u[r][e].tween.set(n, t)6229        })6230    }, Hl.attr = function(n, t) {6231        function e() {6232            this.removeAttribute(a)6233        }6234        function r() {6235            this.removeAttributeNS(a.space, a.local)6236        }6237        function u(n) {6238            return null == n ? e : (n += "", function() {6239                var t, e = this.getAttribute(a);6240                return e !== n && (t = o(e, n), function(n) {6241                    this.setAttribute(a, t(n))6242                })6243            })6244        }6245        function i(n) {6246            return null == n ? r : (n += "", function() {6247                var t, e = this.getAttributeNS(a.space, a.local);6248                return e !== n && (t = o(e, n), function(n) {6249                    this.setAttributeNS(a.space, a.local, t(n))6250                })6251            })6252        }6253        if (arguments.length < 2) {6254            for (t in n)6255                this.attr(t, n[t]);6256            return this6257        }6258        var o = "transform" == n ? Hu: mu, a = ta.ns.qualify(n);6259        return Zo(this, "attr." + n, t, a.local ? i : u)6260    }, Hl.attrTween = function(n, t) {6261        function e(n, e) {6262            var r = t.call(this, n, e, this.getAttribute(u));6263            return r && function(n) {6264                this.setAttribute(u, r(n))6265            }6266        }6267        function r(n, e) {6268            var r = t.call(this, n, e, this.getAttributeNS(u.space, u.local));6269            return r && function(n) {6270                this.setAttributeNS(u.space, u.local, r(n))6271            }6272        }6273        var u = ta.ns.qualify(n);6274        return this.tween("attr." + n, u.local ? r : e)6275    }, Hl.style = function(n, t, e) {6276        function r() {6277            this.style.removeProperty(n)6278        }6279        function u(t) {6280            return null == t ? r : (t += "", function() {6281                var r, u = oa.getComputedStyle(this, null).getPropertyValue(n);6282                return u !== t && (r = mu(u, t), function(t) {6283                    this.style.setProperty(n, r(t), e)6284                })6285            })6286        }6287        var i = arguments.length;6288        if (3 > i) {6289            if ("string" != typeof n) {6290                2 > i && (t = "");6291                for (e in n)6292                    this.style(e, n[e], t);6293                return this6294            }6295            e = ""6296        }6297        return Zo(this, "style." + n, t, u)6298    }, Hl.styleTween = function(n, t, e) {6299        function r(r, u) {6300            var i = t.call(this, r, u, oa.getComputedStyle(this, null).getPropertyValue(n));6301            return i && function(t) {6302                this.style.setProperty(n, i(t), e)6303            }6304        }6305        return arguments.length < 3 && (e = ""), this.tween("style." + n, r)6306    }, Hl.text = function(n) {6307        return Zo(this, "text", n, Vo)6308    }, Hl.remove = function() {6309        var n = this.namespace;6310        return this.each("end.transition", function() {6311            var t;6312            this[n].count < 2 && (t = this.parentNode) && t.removeChild(this)6313        })6314    }, Hl.ease = function(n) {6315        var t = this.id, e = this.namespace;6316        return arguments.length < 1 ? this.node()[e][t].ease : ("function" != typeof n && (n = ta.ease.apply(ta, arguments)), H(this, function(r) {6317            r[e][t].ease = n6318        }))6319    }, Hl.delay = function(n) {6320        var t = this.id, e = this.namespace;6321        return arguments.length < 1 ? this.node()[e][t].delay : H(this, "function" == typeof n ? function(r, u, i) {6322            r[e][t].delay =+ n.call(r, r.__data__, u, i)6323        } : (n =+ n, function(r) {6324            r[e][t].delay = n6325        }))6326    }, Hl.duration = function(n) {6327        var t = this.id, e = this.namespace;6328        return arguments.length < 1 ? this.node()[e][t].duration : H(this, "function" == typeof n ? function(r, u, i) {6329            r[e][t].duration = Math.max(1, n.call(r, r.__data__, u, i))6330        } : (n = Math.max(1, n), function(r) {6331            r[e][t].duration = n6332        }))6333    }, Hl.each = function(n, t) {6334        var e = this.id, r = this.namespace;6335        if (arguments.length < 2) {6336            var u = jl, i = Ul;6337            try {6338                Ul = e, H(this, function(t, u, i) {6339                    jl = t[r][e], n.call(t, t.__data__, u, i)6340                })6341            } finally {6342                jl = u, Ul = i6343            }6344        } else 6345            H(this, function(u) {6346                var i = u[r][e];6347                (i.event || (i.event = ta.dispatch("start", "end", "interrupt"))).on(n, t)6348            });6349        return this6350    }, Hl.transition = function() {6351        for (var n, t, e, r, u = this.id, i=++Ol, o = this.namespace, a = [], c = 0, l = this.length; l > c; c++) {6352            a.push(n = []);6353            for (var t = this[c], s = 0, f = t.length; f > s; s++)(e = t[s]) 6354                && (r = e[o][u], $o(e, s, o, i, {6355                    time: r.time,6356                    ease: r.ease,6357                    delay: r.delay + r.duration,6358                    duration: r.duration6359                })), n.push(e)6360        }6361        return Io(a, o, i)6362    }, ta.svg.axis = function() {6363        function n(n) {6364            n.each(function() {6365                var n, l = ta.select(this), s = this.__chart__ || e, f = this.__chart__ = e.copy(), h = null == c ? f.ticks ? f.ticks.apply(f, a): f.domain(): c, g = null == t ? f.tickFormat ? f.tickFormat.apply(f, a): Et: t, p = l.selectAll(".tick").data(h, f), v = p.enter().insert("g", ".domain").attr("class", "tick").style("opacity", Ta), d = ta.transition(p.exit()).style("opacity", Ta).remove(), m = ta.transition(p.order()).style("opacity", 1), y = Math.max(u, 0) + o, M = Ui(f), x = l.selectAll(".domain").data([0]), b = (x.enter().append("path").attr("class", "domain"), ta.transition(x));6366                v.append("line"), v.append("text");6367                var _, w, S, k, E = v.select("line"), A = m.select("line"), N = p.select("text").text(g), C = v.select("text"), z = m.select("text"), q = "top" === r || "left" === r?-1 : 1;6368                if ("bottom" === r || "top" === r ? (n = Bo, _ = "x", S = "y", w = "x2", k = "y2", N.attr("dy", 0 > q ? "0em" : ".71em").style("text-anchor", "middle"), b.attr("d", "M" + M[0] + "," + q * i + "V0H" + M[1] + "V" + q * i)) : (n = Wo, _ = "y", S = "x", w = "y2", k = "x2", N.attr("dy", ".32em").style("text-anchor", 0 > q ? "end" : "start"), b.attr("d", "M" + q * i + "," + M[0] + "H0V" + M[1] + "H" + q * i)), E.attr(k, q * u), C.attr(S, q * y), A.attr(w, 0).attr(k, q * u), z.attr(_, 0).attr(S, q * y), f.rangeBand) {6369                    var L = f, T = L.rangeBand() / 2;6370                    s = f = function(n) {6371                        return L(n) + T6372                    }6373                } else 6374                    s.rangeBand ? s = f : d.call(n, f, s);6375                v.call(n, s, f), m.call(n, f, f)6376            })6377        }6378        var t, e = ta.scale.linear(), r = Yl, u = 6, i = 6, o = 3, a = [10], c = null;6379        return n.scale = function(t) {6380            return arguments.length ? (e = t, n) : e6381        }, n.orient = function(t) {6382            return arguments.length ? (r = t in Il ? t + "" : Yl, n) : r6383        }, n.ticks = function() {6384            return arguments.length ? (a = arguments, n) : a6385        }, n.tickValues = function(t) {6386            return arguments.length ? (c = t, n) : c6387        }, n.tickFormat = function(e) {6388            return arguments.length ? (t = e, n) : t6389        }, n.tickSize = function(t) {6390            var e = arguments.length;6391            return e ? (u =+ t, i =+ arguments[e - 1], n) : u6392        }, n.innerTickSize = function(t) {6393            return arguments.length ? (u =+ t, n) : u6394        }, n.outerTickSize = function(t) {6395            return arguments.length ? (i =+ t, n) : i6396        }, n.tickPadding = function(t) {6397            return arguments.length ? (o =+ t, n) : o6398        }, n.tickSubdivide = function() {6399            return arguments.length && n6400        }, n6401    };6402    var Yl = "bottom", Il = {6403        top: 1,6404        right: 1,6405        bottom: 1,6406        left: 16407    };6408    ta.svg.brush = function() {6409        function n(i) {6410            i.each(function() {6411                var i = ta.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", u).on("touchstart.brush", u), o = i.selectAll(".background").data([0]);6412                o.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"), i.selectAll(".extent").data([0]).enter().append("rect").attr("class", "extent").style("cursor", "move");6413                var a = i.selectAll(".resize").data(p, Et);6414                a.exit().remove(), a.enter().append("g").attr("class", function(n) {6415                    return "resize " + n6416                }).style("cursor", function(n) {6417                    return Zl[n]6418                }).append("rect").attr("x", function(n) {6419                    return /[ew]$/.test(n)?-3 : null6420                }).attr("y", function(n) {6421                    return /^[ns]/.test(n)?-3 : null6422                }).attr("width", 6).attr("height", 6).style("visibility", "hidden"), a.style("display", n.empty() ? "none" : null);6423                var s, f = ta.transition(i), h = ta.transition(o);6424                c && (s = Ui(c), h.attr("x", s[0]).attr("width", s[1] - s[0]), e(f)), l && (s = Ui(l), h.attr("y", s[0]).attr("height", s[1] - s[0]), r(f)), t(f)6425            })6426        }6427        function t(n) {6428            n.selectAll(".resize").attr("transform", function(n) {6429                return "translate(" + s[ + /e$/.test(n)] + "," + f[ + /^s/.test(n)] + ")"6430            })6431        }6432        function e(n) {6433            n.select(".extent").attr("x", s[0]), n.selectAll(".extent,.n>rect,.s>rect").attr("width", s[1] - s[0])6434        }6435        function r(n) {6436            n.select(".extent").attr("y", f[0]), n.selectAll(".extent,.e>rect,.w>rect").attr("height", f[1] - f[0])6437        }6438        function u() {6439            function u() {6440                32 == ta.event.keyCode && (N || (y = null, z[0] -= s[1], z[1] -= f[1], N = 2), b())6441            }6442            function p() {6443                32 == ta.event.keyCode && 2 == N && (z[0] += s[1], z[1] += f[1], N = 0, b())6444            }6445            function v() {6446                var n = ta.mouse(x), u=!1;6447                M && (n[0] += M[0], n[1] += M[1]), N || (ta.event.altKey ? (y || (y = [(s[0] + s[1]) / 2, (f[0] + f[1]) / 2]), z[0] = s[ + (n[0] < y[0])], z[1] = f[ + (n[1] < y[1])]) : y = null), E && d(n, c, 0) && (e(S), u=!0), A && d(n, l, 1) && (r(S), u=!0), u && (t(S), w({6448                    type: "brush",6449                    mode: N ? "move": "resize"6450                }))6451            }6452            function d(n, t, e) {6453                var r, u, a = Ui(t), c = a[0], l = a[1], p = z[e], v = e ? f: s, d = v[1] - v[0];6454                return N && (c -= p, l -= d + p), r = (e ? g : h) ? Math.max(c, Math.min(l, n[e])) : n[e], N ? u = (r += p) + d : (y && (p = Math.max(c, Math.min(l, 2 * y[e] - r))), r > p ? (u = r, r = p) : u = p), v[0] != r || v[1] != u ? (e ? o = null : i = null, v[0] = r, v[1] = u, !0) : void 06455            }6456            function m() {6457                v(), S.style("pointer-events", "all").selectAll(".resize").style("display", n.empty() ? "none" : null), ta.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), C(), w({6458                    type: "brushend"6459                })6460            }6461            var y, M, x = this, _ = ta.select(ta.event.target), w = a.of(x, arguments), S = ta.select(x), k = _.datum(), E=!/^(n|s)$/.test(k) && c, A=!/^(e|w)$/.test(k) && l, N = _.classed("extent"), C = X(), z = ta.mouse(x), q = ta.select(oa).on("keydown.brush", u).on("keyup.brush", p);6462            if (ta.event.changedTouches ? q.on("touchmove.brush", v).on("touchend.brush", m) : q.on("mousemove.brush", v).on("mouseup.brush", m), S.interrupt().selectAll("*").interrupt(), N)6463                z[0] = s[0] - z[0], z[1] = f[0] - z[1];6464            else if (k) {6465                var L =+ /w$/.test(k), T =+ /^n/.test(k);6466                M = [s[1 - L] - z[0], f[1 - T] - z[1]], z[0] = s[L], z[1] = f[T]6467            } else 6468                ta.event.altKey && (y = z.slice());6469            S.style("pointer-events", "none").selectAll(".resize").style("display", null), ta.select("body").style("cursor", _.style("cursor")), w({6470                type: "brushstart"6471            }), v()6472        }6473        var i, o, a = w(n, "brushstart", "brush", "brushend"), c = null, l = null, s = [0, 0], f = [0, 0], h=!0, g=!0, p = Vl[0];6474        return n.event = function(n) {6475            n.each(function() {6476                var n = a.of(this, arguments), t = {6477                    x: s,6478                    y: f,6479                    i: i,6480                    j: o6481                }, e = this.__chart__ || t;6482                this.__chart__ = t, Ul ? ta.select(this).transition().each("start.brush", function() {6483                    i = e.i, o = e.j, s = e.x, f = e.y, n({6484                        type: "brushstart"6485                    })6486                }).tween("brush:brush", function() {6487                    var e = yu(s, t.x), r = yu(f, t.y);6488                    return i = o = null, function(u) {6489                        s = t.x = e(u), f = t.y = r(u), n({6490                            type: "brush",6491                            mode: "resize"6492                        })6493                    }6494                }).each("end.brush", function() {6495                    i = t.i, o = t.j, n({6496                        type: "brush",6497                        mode: "resize"6498                    }), n({6499                        type: "brushend"6500                    })6501                }) : (n({6502                    type: "brushstart"6503                }), n({6504                    type: "brush",6505                    mode: "resize"6506                }), n({6507                    type: "brushend"6508                }))6509            })6510        }, n.x = function(t) {6511            return arguments.length ? (c = t, p = Vl[!c<<1 |!l], n) : c6512        }, n.y = function(t) {6513            return arguments.length ? (l = t, p = Vl[!c<<1 |!l], n) : l6514        }, n.clamp = function(t) {6515            return arguments.length ? (c && l ? (h=!!t[0], g=!!t[1]) : c ? h=!!t : l && (g=!!t), n) : c && l ? [h, g] : c ? h : l ? g : null6516        }, n.extent = function(t) {6517            var e, r, u, a, h;6518            return arguments.length ? (c && (e = t[0], r = t[1], l && (e = e[0], r = r[0]), i = [e, r], c.invert && (e = c(e), r = c(r)), e > r && (h = e, e = r, r = h), (e != s[0] || r != s[1]) && (s = [e, r])), l && (u = t[0], a = t[1], c && (u = u[1], a = a[1]), o = [u, a], l.invert && (u = l(u), a = l(a)), u > a && (h = u, u = a, a = h), (u != f[0] || a != f[1]) && (f = [u, a])), n) : (c && (i ? (e = i[0], r = i[1]) : (e = s[0], r = s[1], c.invert && (e = c.invert(e), r = c.invert(r)), e > r && (h = e, e = r, r = h))), l && (o ? (u = o[0], a = o[1]) : (u = f[0], a = f[1], l.invert && (u = l.invert(u), a = l.invert(a)), u > a && (h = u, u = a, a = h))), c && l ? [[e, u], [r, a]] : c ? [e, r] : l && [u, a])6519        }, n.clear = function() {6520            return n.empty() || (s = [0, 0], f = [0, 0], i = o = null), n6521        }, n.empty = function() {6522            return !!c && s[0] == s[1]||!!l && f[0] == f[1]6523        }, ta.rebind(n, a, "on")6524    };6525    var Zl = {6526        n: "ns-resize",6527        e: "ew-resize",6528        s: "ns-resize",6529        w: "ew-resize",6530        nw: "nwse-resize",6531        ne: "nesw-resize",6532        se: "nwse-resize",6533        sw: "nesw-resize"6534    }, Vl = [["n", "e", "s", "w", "nw", "ne", "se", "sw"], ["e", "w"], ["n", "s"], []], Xl = fc.format = mc.timeFormat, $l = Xl.utc, Bl = $l("%Y-%m-%dT%H:%M:%S.%LZ");6535    Xl.iso = Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z") ? Jo : Bl, Jo.parse = function(n) {6536        var t = new Date(n);6537        return isNaN(t) ? null : t6538    }, Jo.toString = Bl.toString, fc.second = Ft(function(n) {6539        return new hc(1e3 * Math.floor(n / 1e3))6540    }, function(n, t) {6541        n.setTime(n.getTime() + 1e3 * Math.floor(t))6542    }, function(n) {6543        return n.getSeconds()6544    }), fc.seconds = fc.second.range, fc.seconds.utc = fc.second.utc.range, fc.minute = Ft(function(n) {6545        return new hc(6e4 * Math.floor(n / 6e4))6546    }, function(n, t) {6547        n.setTime(n.getTime() + 6e4 * Math.floor(t))6548    }, function(n) {6549        return n.getMinutes()6550    }), fc.minutes = fc.minute.range, fc.minutes.utc = fc.minute.utc.range, fc.hour = Ft(function(n) {6551        var t = n.getTimezoneOffset() / 60;6552        return new hc(36e5 * (Math.floor(n / 36e5 - t) + t))6553    }, function(n, t) {6554        n.setTime(n.getTime() + 36e5 * Math.floor(t))6555    }, function(n) {6556        return n.getHours()6557    }), fc.hours = fc.hour.range, fc.hours.utc = fc.hour.utc.range, fc.month = Ft(function(n) {6558        return n = fc.day(n), n.setDate(1), n6559    }, function(n, t) {6560        n.setMonth(n.getMonth() + t)6561    }, function(n) {6562        return n.getMonth()6563    }), fc.months = fc.month.range, fc.months.utc = fc.month.utc.range;6564    var Wl = [1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6], Jl = [[fc.second, 1], [fc.second, 5], [fc.second, 15], [fc.second, 30], [fc.minute, 1], [fc.minute, 5], [fc.minute, 15], [fc.minute, 30], [fc.hour, 1], [fc.hour, 3], [fc.hour, 6], [fc.hour, 12], [fc.day, 1], [fc.day, 2], [fc.week, 1], [fc.month, 1], [fc.month, 3], [fc.year, 1]], Gl = Xl.multi([[".%L", function(n) {6565        return n.getMilliseconds()6566    }6567    ], [":%S", function(n) {6568        return n.getSeconds()6569    }6570    ], ["%I:%M", function(n) {6571        return n.getMinutes()6572    }6573    ], ["%I %p", function(n) {6574        return n.getHours()6575    }6576    ], ["%a %d", function(n) {6577        return n.getDay() && 1 != n.getDate()6578    }6579    ], ["%b %d", function(n) {6580        return 1 != n.getDate()6581    }6582    ], ["%B", function(n) {6583        return n.getMonth()6584    }6585    ], ["%Y", Ne]]), Kl = {6586        range: function(n, t, e) {6587            return ta.range(Math.ceil(n / e) * e, + t, e).map(Ko)6588        },6589        floor: Et,6590        ceil: Et6591    };6592    Jl.year = fc.year, fc.scale = function() {6593        return Go(ta.scale.linear(), Jl, Gl)6594    };6595    var Ql = Jl.map(function(n) {6596        return [n[0].utc, n[1]]6597    }), ns = $l.multi([[".%L", function(n) {6598        return n.getUTCMilliseconds()6599    }6600    ], [":%S", function(n) {6601        return n.getUTCSeconds()6602    }6603    ], ["%I:%M", function(n) {6604        return n.getUTCMinutes()6605    }6606    ], ["%I %p", function(n) {6607        return n.getUTCHours()6608    }6609    ], ["%a %d", function(n) {6610        return n.getUTCDay() && 1 != n.getUTCDate()6611    }6612    ], ["%b %d", function(n) {6613        return 1 != n.getUTCDate()6614    }6615    ], ["%B", function(n) {6616        return n.getUTCMonth()6617    }6618    ], ["%Y", Ne]]);6619    Ql.year = fc.year.utc, fc.scale.utc = function() {6620        return Go(ta.scale.linear(), Ql, ns)6621    }, ta.text = At(function(n) {6622        return n.responseText6623    }), ta.json = function(n, t) {6624        return Nt(n, "application/json", Qo, t)6625    }, ta.html = function(n, t) {6626        return Nt(n, "text/html", na, t)6627    }, ta.xml = At(function(n) {6628        return n.responseXML6629    }), "function" == typeof define && define.amd ? define(ta) : "object" == typeof module && module.exports && (module.exports = ta), this.d3 = ta...L2Dwidget.min.js
Source:L2Dwidget.min.js  
1var L2Dwidget = function(t) {2    var n = window.webpackJsonpL2Dwidget;3    window.webpackJsonpL2Dwidget = function(e, o, i) { for (var c, u, a = 0, f = []; a < e.length; a++) u = e[a], r[u] && f.push(r[u][0]), r[u] = 0; for (c in o) Object.prototype.hasOwnProperty.call(o, c) && (t[c] = o[c]); for (n && n(e, o, i); f.length;) f.shift()() };4    var e = {},5        r = { 1: 0 };67    function o(n) { if (e[n]) return e[n].exports; var r = e[n] = { i: n, l: !1, exports: {} }; return t[n].call(r.exports, r, r.exports, o), r.l = !0, r.exports }8    return o.e = function(t) {9        var n = r[t];10        if (0 === n) return new Promise(function(t) { t() });11        if (n) return n[2];12        var e = new Promise(function(e, o) { n = r[t] = [e, o] });13        n[2] = e;14        var i = document.getElementsByTagName("head")[0],15            c = document.createElement("script");16        c.type = "text/javascript", c.charset = "utf-8", c.async = !0, c.timeout = 12e4, o.nc && c.setAttribute("nonce", o.nc), c.src = o.p + "L2Dwidget." + t + ".min.js";17        var u = setTimeout(a, 12e4);1819        function a() {20            c.onerror = c.onload = null, clearTimeout(u);21            var n = r[t];22            0 !== n && (n && n[1](new Error("Loading chunk " + t + " failed.")), r[t] = void 0)23        }24        return c.onerror = c.onload = a, i.appendChild(c), e25    }, o.m = t, o.c = e, o.d = function(t, n, e) { o.o(t, n) || Object.defineProperty(t, n, { configurable: !1, enumerable: !0, get: e }) }, o.n = function(t) { var n = t && t.__esModule ? function() { return t.default } : function() { return t }; return o.d(n, "a", n), n }, o.o = function(t, n) { return Object.prototype.hasOwnProperty.call(t, n) }, o.p = "", o.oe = function(t) { throw console.error(t), t }, o(o.s = 53)26}([function(t, n, e) {27    var r = e(29)("wks"),28        o = e(19),29        i = e(1).Symbol,30        c = "function" == typeof i;31    (t.exports = function(t) { return r[t] || (r[t] = c && i[t] || (c ? i : o)("Symbol." + t)) }).store = r32}, function(t, n) { var e = t.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(); "number" == typeof __g && (__g = e) }, function(t, n) { var e = t.exports = { version: "2.6.1" }; "number" == typeof __e && (__e = e) }, function(t, n, e) {33    var r = e(6);34    t.exports = function(t) { if (!r(t)) throw TypeError(t + " is not an object!"); return t }35}, function(t, n, e) {36    var r = e(11),37        o = e(31);38    t.exports = e(7) ? function(t, n, e) { return r.f(t, n, o(1, e)) } : function(t, n, e) { return t[n] = e, t }39}, function(t, n, e) {40    var r = e(1),41        o = e(4),42        i = e(12),43        c = e(19)("src"),44        u = Function.toString,45        a = ("" + u).split("toString");46    e(2).inspectSource = function(t) { return u.call(t) }, (t.exports = function(t, n, e, u) {47        var f = "function" == typeof e;48        f && (i(e, "name") || o(e, "name", n)), t[n] !== e && (f && (i(e, c) || o(e, c, t[n] ? "" + t[n] : a.join(String(n)))), t === r ? t[n] = e : u ? t[n] ? t[n] = e : o(t, n, e) : (delete t[n], o(t, n, e)))49    })(Function.prototype, "toString", function() { return "function" == typeof this && this[c] || u.call(this) })50}, function(t, n) { t.exports = function(t) { return "object" == typeof t ? null !== t : "function" == typeof t } }, function(t, n, e) { t.exports = !e(30)(function() { return 7 != Object.defineProperty({}, "a", { get: function() { return 7 } }).a }) }, function(t, n) { t.exports = {} }, function(t, n) { t.exports = function(t) { var n = typeof t; return null != t && ("object" == n || "function" == n) } }, function(t, n) {51    var e = {}.toString;52    t.exports = function(t) { return e.call(t).slice(8, -1) }53}, function(t, n, e) {54    var r = e(3),55        o = e(56),56        i = e(57),57        c = Object.defineProperty;58    n.f = e(7) ? Object.defineProperty : function(t, n, e) {59        if (r(t), n = i(n, !0), r(e), o) try { return c(t, n, e) } catch (t) {}60        if ("get" in e || "set" in e) throw TypeError("Accessors not supported!");61        return "value" in e && (t[n] = e.value), t62    }63}, function(t, n) {64    var e = {}.hasOwnProperty;65    t.exports = function(t, n) { return e.call(t, n) }66}, function(t, n, e) {67    var r = e(1),68        o = e(2),69        i = e(4),70        c = e(5),71        u = e(14),72        a = function(t, n, e) {73            var f, s, l, p, v = t & a.F,74                d = t & a.G,75                h = t & a.S,76                y = t & a.P,77                b = t & a.B,78                m = d ? r : h ? r[n] || (r[n] = {}) : (r[n] || {}).prototype,79                w = d ? o : o[n] || (o[n] = {}),80                x = w.prototype || (w.prototype = {});81            for (f in d && (e = n), e) l = ((s = !v && m && void 0 !== m[f]) ? m : e)[f], p = b && s ? u(l, r) : y && "function" == typeof l ? u(Function.call, l) : l, m && c(m, f, l, t & a.U), w[f] != l && i(w, f, p), y && x[f] != l && (x[f] = l)82        };83    r.core = o, a.F = 1, a.G = 2, a.S = 4, a.P = 8, a.B = 16, a.W = 32, a.U = 64, a.R = 128, t.exports = a84}, function(t, n, e) {85    var r = e(15);86    t.exports = function(t, n, e) {87        if (r(t), void 0 === n) return t;88        switch (e) {89            case 1:90                return function(e) { return t.call(n, e) };91            case 2:92                return function(e, r) { return t.call(n, e, r) };93            case 3:94                return function(e, r, o) { return t.call(n, e, r, o) }95        }96        return function() { return t.apply(n, arguments) }97    }98}, function(t, n) { t.exports = function(t) { if ("function" != typeof t) throw TypeError(t + " is not a function!"); return t } }, function(t, n, e) {99    var r = e(27);100    t.exports = function(t, n) {101        for (var e = t.length; e--;)102            if (r(t[e][0], n)) return e;103        return -1104    }105}, function(t, n, e) {106    var r = e(10),107        o = e(0)("toStringTag"),108        i = "Arguments" == r(function() { return arguments }());109    t.exports = function(t) { var n, e, c; return void 0 === t ? "Undefined" : null === t ? "Null" : "string" == typeof(e = function(t, n) { try { return t[n] } catch (t) {} }(n = Object(t), o)) ? e : i ? r(n) : "Object" == (c = r(n)) && "function" == typeof n.callee ? "Arguments" : c }110}, function(t, n) { t.exports = !1 }, function(t, n) {111    var e = 0,112        r = Math.random();113    t.exports = function(t) { return "Symbol(".concat(void 0 === t ? "" : t, ")_", (++e + r).toString(36)) }114}, function(t, n, e) {115    var r = e(6),116        o = e(1).document,117        i = r(o) && r(o.createElement);118    t.exports = function(t) { return i ? o.createElement(t) : {} }119}, function(t, n) {120    var e = Math.ceil,121        r = Math.floor;122    t.exports = function(t) { return isNaN(t = +t) ? 0 : (t > 0 ? r : e)(t) }123}, function(t, n) { t.exports = function(t) { if (void 0 == t) throw TypeError("Can't call method on  " + t); return t } }, function(t, n, e) {124    var r = e(64),125        o = e(22);126    t.exports = function(t) { return r(o(t)) }127}, function(t, n, e) {128    var r = e(29)("keys"),129        o = e(19);130    t.exports = function(t) { return r[t] || (r[t] = o(t)) }131}, function(t, n, e) {132    var r = e(11).f,133        o = e(12),134        i = e(0)("toStringTag");135    t.exports = function(t, n, e) { t && !o(t = e ? t : t.prototype, i) && r(t, i, { configurable: !0, value: n }) }136}, function(t, n, e) {137    "use strict";138    var r = e(15);139    t.exports.f = function(t) {140        return new function(t) {141            var n, e;142            this.promise = new t(function(t, r) {143                if (void 0 !== n || void 0 !== e) throw TypeError("Bad Promise constructor");144                n = t, e = r145            }), this.resolve = r(n), this.reject = r(e)146        }(t)147    }148}, function(t, n) { t.exports = function(t, n) { return t === n || t != t && n != n } }, function(t, n, e) {149    var r = e(101);150    t.exports = function(t, n, e) { "__proto__" == n && r ? r(t, n, { configurable: !0, enumerable: !0, value: e, writable: !0 }) : t[n] = e }151}, function(t, n, e) {152    var r = e(2),153        o = e(1),154        i = o["__core-js_shared__"] || (o["__core-js_shared__"] = {});155    (t.exports = function(t, n) { return i[t] || (i[t] = void 0 !== n ? n : {}) })("versions", []).push({ version: r.version, mode: e(18) ? "pure" : "global", copyright: "© 2018 Denis Pushkarev (zloirock.ru)" })156}, function(t, n) { t.exports = function(t) { try { return !!t() } catch (t) { return !0 } } }, function(t, n) { t.exports = function(t, n) { return { enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: n } } }, function(t, n, e) {157    "use strict";158    var r = e(18),159        o = e(13),160        i = e(5),161        c = e(4),162        u = e(8),163        a = e(60),164        f = e(25),165        s = e(67),166        l = e(0)("iterator"),167        p = !([].keys && "next" in [].keys()),168        v = function() { return this };169    t.exports = function(t, n, e, d, h, y, b) {170        a(e, n, d);171        var m, w, x, g = function(t) {172                if (!p && t in P) return P[t];173                switch (t) {174                    case "keys":175                    case "values":176                        return function() { return new e(this, t) }177                }178                return function() { return new e(this, t) }179            },180            _ = n + " Iterator",181            j = "values" == h,182            O = !1,183            P = t.prototype,184            k = P[l] || P["@@iterator"] || h && P[h],185            S = k || g(h),186            T = h ? j ? g("entries") : S : void 0,187            L = "Array" == n && P.entries || k;188        if (L && (x = s(L.call(new t))) !== Object.prototype && x.next && (f(x, _, !0), r || "function" == typeof x[l] || c(x, l, v)), j && k && "values" !== k.name && (O = !0, S = function() { return k.call(this) }), r && !b || !p && !O && P[l] || c(P, l, S), u[n] = S, u[_] = v, h)189            if (m = { values: j ? S : g("values"), keys: y ? S : g("keys"), entries: T }, b)190                for (w in m) w in P || i(P, w, m[w]);191            else o(o.P + o.F * (p || O), n, m);192        return m193    }194}, function(t, n, e) {195    var r = e(63),196        o = e(35);197    t.exports = Object.keys || function(t) { return r(t, o) }198}, function(t, n, e) {199    var r = e(21),200        o = Math.min;201    t.exports = function(t) { return t > 0 ? o(r(t), 9007199254740991) : 0 }202}, function(t, n) { t.exports = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",") }, function(t, n, e) {203    var r = e(1).document;204    t.exports = r && r.documentElement205}, function(t, n, e) {206    var r = e(3),207        o = e(15),208        i = e(0)("species");209    t.exports = function(t, n) { var e, c = r(t).constructor; return void 0 === c || void 0 == (e = r(c)[i]) ? n : o(e) }210}, function(t, n, e) {211    var r, o, i, c = e(14),212        u = e(79),213        a = e(36),214        f = e(20),215        s = e(1),216        l = s.process,217        p = s.setImmediate,218        v = s.clearImmediate,219        d = s.MessageChannel,220        h = s.Dispatch,221        y = 0,222        b = {},223        m = function() {224            var t = +this;225            if (b.hasOwnProperty(t)) {226                var n = b[t];227                delete b[t], n()228            }229        },230        w = function(t) { m.call(t.data) };231    p && v || (p = function(t) { for (var n = [], e = 1; arguments.length > e;) n.push(arguments[e++]); return b[++y] = function() { u("function" == typeof t ? t : Function(t), n) }, r(y), y }, v = function(t) { delete b[t] }, "process" == e(10)(l) ? r = function(t) { l.nextTick(c(m, t, 1)) } : h && h.now ? r = function(t) { h.now(c(m, t, 1)) } : d ? (i = (o = new d).port2, o.port1.onmessage = w, r = c(i.postMessage, i, 1)) : s.addEventListener && "function" == typeof postMessage && !s.importScripts ? (r = function(t) { s.postMessage(t + "", "*") }, s.addEventListener("message", w, !1)) : r = "onreadystatechange" in f("script") ? function(t) { a.appendChild(f("script")).onreadystatechange = function() { a.removeChild(this), m.call(t) } } : function(t) { setTimeout(c(m, t, 1), 0) }), t.exports = { set: p, clear: v }232}, function(t, n) { t.exports = function(t) { try { return { e: !1, v: t() } } catch (t) { return { e: !0, v: t } } } }, function(t, n, e) {233    var r = e(3),234        o = e(6),235        i = e(26);236    t.exports = function(t, n) { if (r(t), o(n) && n.constructor === t) return n; var e = i.f(t); return (0, e.resolve)(n), e.promise }237}, function(t, n) {238    t.exports = function(t, n, e) {239        switch (e.length) {240            case 0:241                return t.call(n);242            case 1:243                return t.call(n, e[0]);244            case 2:245                return t.call(n, e[0], e[1]);246            case 3:247                return t.call(n, e[0], e[1], e[2])248        }249        return t.apply(n, e)250    }251}, function(t, n, e) {252    var r = e(91),253        o = e(92),254        i = e(93);255    t.exports = function(t, n) { return i(o(t, n, r), t + "") }256}, function(t, n, e) {257    var r = e(95),258        o = e(44),259        i = e(103),260        c = e(105),261        u = e(9),262        a = e(51),263        f = e(50);264    t.exports = function t(n, e, s, l, p) {265        n !== e && i(e, function(i, a) {266            if (u(i)) p || (p = new r), c(n, e, a, s, t, l, p);267            else {268                var v = l ? l(f(n, a), i, a + "", n, e, p) : void 0;269                void 0 === v && (v = i), o(n, a, v)270            }271        }, a)272    }273}, function(t, n, e) {274    var r = e(28),275        o = e(27);276    t.exports = function(t, n, e) {277        (void 0 === e || o(t[n], e)) && (void 0 !== e || n in t) || r(t, n, e)278    }279}, function(t, n, e) {280    var r = e(108),281        o = "object" == typeof self && self && self.Object === Object && self,282        i = r || o || Function("return this")();283    t.exports = i284}, function(t, n, e) {285    var r = e(116)(Object.getPrototypeOf, Object);286    t.exports = r287}, function(t, n, e) {288    var r = e(48),289        o = e(9),290        i = "[object AsyncFunction]",291        c = "[object Function]",292        u = "[object GeneratorFunction]",293        a = "[object Proxy]";294    t.exports = function(t) { if (!o(t)) return !1; var n = r(t); return n == c || n == u || n == i || n == a }295}, function(t, n) {296    var e = Object.prototype.toString;297    t.exports = function(t) { return e.call(t) }298}, function(t, n) { t.exports = function(t) { return null != t && "object" == typeof t } }, function(t, n) { t.exports = function(t, n) { if ("__proto__" != n) return t[n] } }, function(t, n) {299    t.exports = function(t) {300        var n = [];301        if (null != t)302            for (var e in Object(t)) n.push(e);303        return n304    }305}, function(t, n, e) {306    "use strict";307    Object.defineProperty(n, "__esModule", { value: !0 }), n.config = n.configApplyer = void 0;308    var r = i(e(90)),309        o = i(e(132));310311    function i(t) { return t && t.__esModule ? t : { default: t } }312    var c = {};313    n.configApplyer = function(t) { n.config = c = (0, r.default)(t, o.default) }, n.config = c314}, function(t, n, e) { e(54), e(87), t.exports = e(88) }, function(t, n, e) { e(55), e(58), e(69), e(73), e(85), e(86), t.exports = e(2).Promise }, function(t, n, e) {315    "use strict";316    var r = e(17),317        o = {};318    o[e(0)("toStringTag")] = "z", o + "" != "[object z]" && e(5)(Object.prototype, "toString", function() { return "[object " + r(this) + "]" }, !0)319}, function(t, n, e) { t.exports = !e(7) && !e(30)(function() { return 7 != Object.defineProperty(e(20)("div"), "a", { get: function() { return 7 } }).a }) }, function(t, n, e) {320    var r = e(6);321    t.exports = function(t, n) { if (!r(t)) return t; var e, o; if (n && "function" == typeof(e = t.toString) && !r(o = e.call(t))) return o; if ("function" == typeof(e = t.valueOf) && !r(o = e.call(t))) return o; if (!n && "function" == typeof(e = t.toString) && !r(o = e.call(t))) return o; throw TypeError("Can't convert object to primitive value") }322}, function(t, n, e) {323    "use strict";324    var r = e(59)(!0);325    e(32)(String, "String", function(t) { this._t = String(t), this._i = 0 }, function() {326        var t, n = this._t,327            e = this._i;328        return e >= n.length ? { value: void 0, done: !0 } : (t = r(n, e), this._i += t.length, { value: t, done: !1 })329    })330}, function(t, n, e) {331    var r = e(21),332        o = e(22);333    t.exports = function(t) {334        return function(n, e) {335            var i, c, u = String(o(n)),336                a = r(e),337                f = u.length;338            return a < 0 || a >= f ? t ? "" : void 0 : (i = u.charCodeAt(a)) < 55296 || i > 56319 || a + 1 === f || (c = u.charCodeAt(a + 1)) < 56320 || c > 57343 ? t ? u.charAt(a) : i : t ? u.slice(a, a + 2) : c - 56320 + (i - 55296 << 10) + 65536339        }340    }341}, function(t, n, e) {342    "use strict";343    var r = e(61),344        o = e(31),345        i = e(25),346        c = {};347    e(4)(c, e(0)("iterator"), function() { return this }), t.exports = function(t, n, e) { t.prototype = r(c, { next: o(1, e) }), i(t, n + " Iterator") }348}, function(t, n, e) {349    var r = e(3),350        o = e(62),351        i = e(35),352        c = e(24)("IE_PROTO"),353        u = function() {},354        a = function() {355            var t, n = e(20)("iframe"),356                r = i.length;357            for (n.style.display = "none", e(36).appendChild(n), n.src = "javascript:", (t = n.contentWindow.document).open(), t.write("<script>document.F=Object<\/script>"), t.close(), a = t.F; r--;) delete a.prototype[i[r]];358            return a()359        };360    t.exports = Object.create || function(t, n) { var e; return null !== t ? (u.prototype = r(t), e = new u, u.prototype = null, e[c] = t) : e = a(), void 0 === n ? e : o(e, n) }361}, function(t, n, e) {362    var r = e(11),363        o = e(3),364        i = e(33);365    t.exports = e(7) ? Object.defineProperties : function(t, n) { o(t); for (var e, c = i(n), u = c.length, a = 0; u > a;) r.f(t, e = c[a++], n[e]); return t }366}, function(t, n, e) {367    var r = e(12),368        o = e(23),369        i = e(65)(!1),370        c = e(24)("IE_PROTO");371    t.exports = function(t, n) {372        var e, u = o(t),373            a = 0,374            f = [];375        for (e in u) e != c && r(u, e) && f.push(e);376        for (; n.length > a;) r(u, e = n[a++]) && (~i(f, e) || f.push(e));377        return f378    }379}, function(t, n, e) {380    var r = e(10);381    t.exports = Object("z").propertyIsEnumerable(0) ? Object : function(t) { return "String" == r(t) ? t.split("") : Object(t) }382}, function(t, n, e) {383    var r = e(23),384        o = e(34),385        i = e(66);386    t.exports = function(t) {387        return function(n, e, c) {388            var u, a = r(n),389                f = o(a.length),390                s = i(c, f);391            if (t && e != e) {392                for (; f > s;)393                    if ((u = a[s++]) != u) return !0394            } else395                for (; f > s; s++)396                    if ((t || s in a) && a[s] === e) return t || s || 0; return !t && -1397        }398    }399}, function(t, n, e) {400    var r = e(21),401        o = Math.max,402        i = Math.min;403    t.exports = function(t, n) { return (t = r(t)) < 0 ? o(t + n, 0) : i(t, n) }404}, function(t, n, e) {405    var r = e(12),406        o = e(68),407        i = e(24)("IE_PROTO"),408        c = Object.prototype;409    t.exports = Object.getPrototypeOf || function(t) { return t = o(t), r(t, i) ? t[i] : "function" == typeof t.constructor && t instanceof t.constructor ? t.constructor.prototype : t instanceof Object ? c : null }410}, function(t, n, e) {411    var r = e(22);412    t.exports = function(t) { return Object(r(t)) }413}, function(t, n, e) {414    for (var r = e(70), o = e(33), i = e(5), c = e(1), u = e(4), a = e(8), f = e(0), s = f("iterator"), l = f("toStringTag"), p = a.Array, v = { CSSRuleList: !0, CSSStyleDeclaration: !1, CSSValueList: !1, ClientRectList: !1, DOMRectList: !1, DOMStringList: !1, DOMTokenList: !0, DataTransferItemList: !1, FileList: !1, HTMLAllCollection: !1, HTMLCollection: !1, HTMLFormElement: !1, HTMLSelectElement: !1, MediaList: !0, MimeTypeArray: !1, NamedNodeMap: !1, NodeList: !0, PaintRequestList: !1, Plugin: !1, PluginArray: !1, SVGLengthList: !1, SVGNumberList: !1, SVGPathSegList: !1, SVGPointList: !1, SVGStringList: !1, SVGTransformList: !1, SourceBufferList: !1, StyleSheetList: !0, TextTrackCueList: !1, TextTrackList: !1, TouchList: !1 }, d = o(v), h = 0; h < d.length; h++) {415        var y, b = d[h],416            m = v[b],417            w = c[b],418            x = w && w.prototype;419        if (x && (x[s] || u(x, s, p), x[l] || u(x, l, b), a[b] = p, m))420            for (y in r) x[y] || i(x, y, r[y], !0)421    }422}, function(t, n, e) {423    "use strict";424    var r = e(71),425        o = e(72),426        i = e(8),427        c = e(23);428    t.exports = e(32)(Array, "Array", function(t, n) { this._t = c(t), this._i = 0, this._k = n }, function() {429        var t = this._t,430            n = this._k,431            e = this._i++;432        return !t || e >= t.length ? (this._t = void 0, o(1)) : o(0, "keys" == n ? e : "values" == n ? t[e] : [e, t[e]])433    }, "values"), i.Arguments = i.Array, r("keys"), r("values"), r("entries")434}, function(t, n, e) {435    var r = e(0)("unscopables"),436        o = Array.prototype;437    void 0 == o[r] && e(4)(o, r, {}), t.exports = function(t) { o[r][t] = !0 }438}, function(t, n) { t.exports = function(t, n) { return { value: n, done: !!t } } }, function(t, n, e) {439    "use strict";440    var r, o, i, c, u = e(18),441        a = e(1),442        f = e(14),443        s = e(17),444        l = e(13),445        p = e(6),446        v = e(15),447        d = e(74),448        h = e(75),449        y = e(37),450        b = e(38).set,451        m = e(80)(),452        w = e(26),453        x = e(39),454        g = e(81),455        _ = e(40),456        j = a.TypeError,457        O = a.process,458        P = O && O.versions,459        k = P && P.v8 || "",460        S = a.Promise,461        T = "process" == s(O),462        L = function() {},463        E = o = w.f,464        M = !! function() {465            try {466                var t = S.resolve(1),467                    n = (t.constructor = {})[e(0)("species")] = function(t) { t(L, L) };468                return (T || "function" == typeof PromiseRejectionEvent) && t.then(L) instanceof n && 0 !== k.indexOf("6.6") && -1 === g.indexOf("Chrome/66")469            } catch (t) {}470        }(),471        A = function(t) { var n; return !(!p(t) || "function" != typeof(n = t.then)) && n },472        F = function(t, n) {473            if (!t._n) {474                t._n = !0;475                var e = t._c;476                m(function() {477                    for (var r = t._v, o = 1 == t._s, i = 0, c = function(n) {478                            var e, i, c, u = o ? n.ok : n.fail,479                                a = n.resolve,480                                f = n.reject,481                                s = n.domain;482                            try { u ? (o || (2 == t._h && N(t), t._h = 1), !0 === u ? e = r : (s && s.enter(), e = u(r), s && (s.exit(), c = !0)), e === n.promise ? f(j("Promise-chain cycle")) : (i = A(e)) ? i.call(e, a, f) : a(e)) : f(r) } catch (t) { s && !c && s.exit(), f(t) }483                        }; e.length > i;) c(e[i++]);484                    t._c = [], t._n = !1, n && !t._h && C(t)485                })486            }487        },488        C = function(t) {489            b.call(a, function() {490                var n, e, r, o = t._v,491                    i = D(t);492                if (i && (n = x(function() { T ? O.emit("unhandledRejection", o, t) : (e = a.onunhandledrejection) ? e({ promise: t, reason: o }) : (r = a.console) && r.error && r.error("Unhandled promise rejection", o) }), t._h = T || D(t) ? 2 : 1), t._a = void 0, i && n.e) throw n.v493            })494        },495        D = function(t) { return 1 !== t._h && 0 === (t._a || t._c).length },496        N = function(t) {497            b.call(a, function() {498                var n;499                T ? O.emit("rejectionHandled", t) : (n = a.onrejectionhandled) && n({ promise: t, reason: t._v })500            })501        },502        R = function(t) {503            var n = this;504            n._d || (n._d = !0, (n = n._w || n)._v = t, n._s = 2, n._a || (n._a = n._c.slice()), F(n, !0))505        },506        I = function(t) {507            var n, e = this;508            if (!e._d) {509                e._d = !0, e = e._w || e;510                try {511                    if (e === t) throw j("Promise can't be resolved itself");512                    (n = A(t)) ? m(function() { var r = { _w: e, _d: !1 }; try { n.call(t, f(I, r, 1), f(R, r, 1)) } catch (t) { R.call(r, t) } }): (e._v = t, e._s = 1, F(e, !1))513                } catch (t) { R.call({ _w: e, _d: !1 }, t) }514            }515        };516    M || (S = function(t) { d(this, S, "Promise", "_h"), v(t), r.call(this); try { t(f(I, this, 1), f(R, this, 1)) } catch (t) { R.call(this, t) } }, (r = function(t) { this._c = [], this._a = void 0, this._s = 0, this._d = !1, this._v = void 0, this._h = 0, this._n = !1 }).prototype = e(82)(S.prototype, { then: function(t, n) { var e = E(y(this, S)); return e.ok = "function" != typeof t || t, e.fail = "function" == typeof n && n, e.domain = T ? O.domain : void 0, this._c.push(e), this._a && this._a.push(e), this._s && F(this, !1), e.promise }, catch: function(t) { return this.then(void 0, t) } }), i = function() {517        var t = new r;518        this.promise = t, this.resolve = f(I, t, 1), this.reject = f(R, t, 1)519    }, w.f = E = function(t) { return t === S || t === c ? new i(t) : o(t) }), l(l.G + l.W + l.F * !M, { Promise: S }), e(25)(S, "Promise"), e(83)("Promise"), c = e(2).Promise, l(l.S + l.F * !M, "Promise", { reject: function(t) { var n = E(this); return (0, n.reject)(t), n.promise } }), l(l.S + l.F * (u || !M), "Promise", { resolve: function(t) { return _(u && this === c ? S : this, t) } }), l(l.S + l.F * !(M && e(84)(function(t) { S.all(t).catch(L) })), "Promise", {520        all: function(t) {521            var n = this,522                e = E(n),523                r = e.resolve,524                o = e.reject,525                i = x(function() {526                    var e = [],527                        i = 0,528                        c = 1;529                    h(t, !1, function(t) {530                        var u = i++,531                            a = !1;532                        e.push(void 0), c++, n.resolve(t).then(function(t) { a || (a = !0, e[u] = t, --c || r(e)) }, o)533                    }), --c || r(e)534                });535            return i.e && o(i.v), e.promise536        },537        race: function(t) {538            var n = this,539                e = E(n),540                r = e.reject,541                o = x(function() { h(t, !1, function(t) { n.resolve(t).then(e.resolve, r) }) });542            return o.e && r(o.v), e.promise543        }544    })545}, function(t, n) { t.exports = function(t, n, e, r) { if (!(t instanceof n) || void 0 !== r && r in t) throw TypeError(e + ": incorrect invocation!"); return t } }, function(t, n, e) {546    var r = e(14),547        o = e(76),548        i = e(77),549        c = e(3),550        u = e(34),551        a = e(78),552        f = {},553        s = {};554    (n = t.exports = function(t, n, e, l, p) {555        var v, d, h, y, b = p ? function() { return t } : a(t),556            m = r(e, l, n ? 2 : 1),557            w = 0;558        if ("function" != typeof b) throw TypeError(t + " is not iterable!");559        if (i(b)) {560            for (v = u(t.length); v > w; w++)561                if ((y = n ? m(c(d = t[w])[0], d[1]) : m(t[w])) === f || y === s) return y562        } else563            for (h = b.call(t); !(d = h.next()).done;)564                if ((y = o(h, m, d.value, n)) === f || y === s) return y565    }).BREAK = f, n.RETURN = s566}, function(t, n, e) {567    var r = e(3);568    t.exports = function(t, n, e, o) { try { return o ? n(r(e)[0], e[1]) : n(e) } catch (n) { var i = t.return; throw void 0 !== i && r(i.call(t)), n } }569}, function(t, n, e) {570    var r = e(8),571        o = e(0)("iterator"),572        i = Array.prototype;573    t.exports = function(t) { return void 0 !== t && (r.Array === t || i[o] === t) }574}, function(t, n, e) {575    var r = e(17),576        o = e(0)("iterator"),577        i = e(8);578    t.exports = e(2).getIteratorMethod = function(t) { if (void 0 != t) return t[o] || t["@@iterator"] || i[r(t)] }579}, function(t, n) {580    t.exports = function(t, n, e) {581        var r = void 0 === e;582        switch (n.length) {583            case 0:584                return r ? t() : t.call(e);585            case 1:586                return r ? t(n[0]) : t.call(e, n[0]);587            case 2:588                return r ? t(n[0], n[1]) : t.call(e, n[0], n[1]);589            case 3:590                return r ? t(n[0], n[1], n[2]) : t.call(e, n[0], n[1], n[2]);591            case 4:592                return r ? t(n[0], n[1], n[2], n[3]) : t.call(e, n[0], n[1], n[2], n[3])593        }594        return t.apply(e, n)595    }596}, function(t, n, e) {597    var r = e(1),598        o = e(38).set,599        i = r.MutationObserver || r.WebKitMutationObserver,600        c = r.process,601        u = r.Promise,602        a = "process" == e(10)(c);603    t.exports = function() {604        var t, n, e, f = function() {605            var r, o;606            for (a && (r = c.domain) && r.exit(); t;) { o = t.fn, t = t.next; try { o() } catch (r) { throw t ? e() : n = void 0, r } }607            n = void 0, r && r.enter()608        };609        if (a) e = function() { c.nextTick(f) };610        else if (!i || r.navigator && r.navigator.standalone)611            if (u && u.resolve) {612                var s = u.resolve(void 0);613                e = function() { s.then(f) }614            } else e = function() { o.call(r, f) };615        else {616            var l = !0,617                p = document.createTextNode("");618            new i(f).observe(p, { characterData: !0 }), e = function() { p.data = l = !l }619        }620        return function(r) {621            var o = { fn: r, next: void 0 };622            n && (n.next = o), t || (t = o, e()), n = o623        }624    }625}, function(t, n, e) {626    var r = e(1).navigator;627    t.exports = r && r.userAgent || ""628}, function(t, n, e) {629    var r = e(5);630    t.exports = function(t, n, e) { for (var o in n) r(t, o, n[o], e); return t }631}, function(t, n, e) {632    "use strict";633    var r = e(1),634        o = e(11),635        i = e(7),636        c = e(0)("species");637    t.exports = function(t) {638        var n = r[t];639        i && n && !n[c] && o.f(n, c, { configurable: !0, get: function() { return this } })640    }641}, function(t, n, e) {642    var r = e(0)("iterator"),643        o = !1;644    try {645        var i = [7][r]();646        i.return = function() { o = !0 }, Array.from(i, function() { throw 2 })647    } catch (t) {}648    t.exports = function(t, n) {649        if (!n && !o) return !1;650        var e = !1;651        try {652            var i = [7],653                c = i[r]();654            c.next = function() { return { done: e = !0 } }, i[r] = function() { return c }, t(i)655        } catch (t) {}656        return e657    }658}, function(t, n, e) {659    "use strict";660    var r = e(13),661        o = e(2),662        i = e(1),663        c = e(37),664        u = e(40);665    r(r.P + r.R, "Promise", {666        finally: function(t) {667            var n = c(this, o.Promise || i.Promise),668                e = "function" == typeof t;669            return this.then(e ? function(e) { return u(n, t()).then(function() { return e }) } : t, e ? function(e) { return u(n, t()).then(function() { throw e }) } : t)670        }671    })672}, function(t, n, e) {673    "use strict";674    var r = e(13),675        o = e(26),676        i = e(39);677    r(r.S, "Promise", {678        try: function(t) {679            var n = o.f(this),680                e = i(t);681            return (e.e ? n.reject : n.resolve)(e.v), n.promise682        }683    })684}, function(t, n, e) {685    "use strict";686687    function r() { try { return document.currentScript.src } catch (n) { var t = document.getElementsByTagName("script"); return t[t.length - 1].src } }688    Object.defineProperty(n, "__esModule", { value: !0 }), e.p = r().replace(/[^/\\\\]+$/, ""), n.getCurrentPath = r689}, function(t, n, e) {690    "use strict";691    Object.defineProperty(n, "__esModule", { value: !0 }), n.L2Dwidget = void 0;692    var r, o = function() {693            function t(t, n) {694                for (var e = 0; e < n.length; e++) {695                    var r = n[e];696                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)697                }698            }699            return function(n, e, r) { return e && t(n.prototype, e), r && t(n, r), n }700        }(),701        i = e(89),702        c = (r = i) && r.__esModule ? r : { default: r },703        u = e(52);704    var a = void 0,705        f = new(function() {706            function t() {! function(t, n) { if (!(t instanceof n)) throw new TypeError("Cannot call a class as a function") }(this, t) }707            return o(t, [{708                key: "init",709                value: function() {710                    var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};711                    (0, u.configApplyer)(t), !u.config.mobile.show && c.default.mobile() || e.e(0).then(e.bind(null, 133)).then(function(t) {712                        (a = t).theRealInit()713                    }).catch(function(t) { console.error(t) })714                }715            }, { key: "captureFrame", value: function(t) { return a.captureFrame(t) } }, {716                key: "downloadFrame",717                value: function() {718                    this.captureFrame(function(t) {719                        var n = document.createElement("a");720                        document.body.appendChild(n), n.setAttribute("type", "hidden"), n.href = t, n.download = "live2d.png", n.click()721                    })722                }723            }]), t724        }());725    n.L2Dwidget = f726}, function(t, n, e) {727    "use strict";728    Object.defineProperty(n, "__esModule", { value: !0 });729    var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t },730        o = window.device,731        i = {},732        c = [];733    window.device = i;734    var u = window.document.documentElement,735        a = window.navigator.userAgent.toLowerCase(),736        f = ["googletv", "viera", "smarttv", "internet.tv", "netcast", "nettv", "appletv", "boxee", "kylo", "roku", "dlnadoc", "roku", "pov_tv", "hbbtv", "ce-html"];737738    function s(t) { return -1 !== a.indexOf(t) }739740    function l(t) { return u.className.match(new RegExp(t, "i")) }741742    function p(t) {743        var n = null;744        l(t) || (n = u.className.replace(/^\s+|\s+$/g, ""), u.className = n + " " + t)745    }746747    function v(t) { l(t) && (u.className = u.className.replace(" " + t, "")) }748749    function d() { i.landscape() ? (v("portrait"), p("landscape"), h("landscape")) : (v("landscape"), p("portrait"), h("portrait")), m() }750751    function h(t) { for (var n in c) c[n](t) }752    i.macos = function() { return s("mac") }, i.ios = function() { return i.iphone() || i.ipod() || i.ipad() }, i.iphone = function() { return !i.windows() && s("iphone") }, i.ipod = function() { return s("ipod") }, i.ipad = function() { return s("ipad") }, i.android = function() { return !i.windows() && s("android") }, i.androidPhone = function() { return i.android() && s("mobile") }, i.androidTablet = function() { return i.android() && !s("mobile") }, i.blackberry = function() { return s("blackberry") || s("bb10") || s("rim") }, i.blackberryPhone = function() { return i.blackberry() && !s("tablet") }, i.blackberryTablet = function() { return i.blackberry() && s("tablet") }, i.windows = function() { return s("windows") }, i.windowsPhone = function() { return i.windows() && s("phone") }, i.windowsTablet = function() { return i.windows() && s("touch") && !i.windowsPhone() }, i.fxos = function() { return (s("(mobile") || s("(tablet")) && s(" rv:") }, i.fxosPhone = function() { return i.fxos() && s("mobile") }, i.fxosTablet = function() { return i.fxos() && s("tablet") }, i.meego = function() { return s("meego") }, i.cordova = function() { return window.cordova && "file:" === location.protocol }, i.nodeWebkit = function() { return "object" === r(window.process) }, i.mobile = function() { return i.androidPhone() || i.iphone() || i.ipod() || i.windowsPhone() || i.blackberryPhone() || i.fxosPhone() || i.meego() }, i.tablet = function() { return i.ipad() || i.androidTablet() || i.blackberryTablet() || i.windowsTablet() || i.fxosTablet() }, i.desktop = function() { return !i.tablet() && !i.mobile() }, i.television = function() {753        for (var t = 0; t < f.length;) {754            if (s(f[t])) return !0;755            t++756        }757        return !1758    }, i.portrait = function() { return screen.orientation && Object.prototype.hasOwnProperty.call(window, "onorientationchange") ? screen.orientation.type.includes("portrait") : window.innerHeight / window.innerWidth > 1 }, i.landscape = function() { return screen.orientation && Object.prototype.hasOwnProperty.call(window, "onorientationchange") ? screen.orientation.type.includes("landscape") : window.innerHeight / window.innerWidth < 1 }, i.noConflict = function() { return window.device = o, this }, i.ios() ? i.ipad() ? p("ios ipad tablet") : i.iphone() ? p("ios iphone mobile") : i.ipod() && p("ios ipod mobile") : i.macos() ? p("macos desktop") : i.android() ? i.androidTablet() ? p("android tablet") : p("android mobile") : i.blackberry() ? i.blackberryTablet() ? p("blackberry tablet") : p("blackberry mobile") : i.windows() ? i.windowsTablet() ? p("windows tablet") : i.windowsPhone() ? p("windows mobile") : p("windows desktop") : i.fxos() ? i.fxosTablet() ? p("fxos tablet") : p("fxos mobile") : i.meego() ? p("meego mobile") : i.nodeWebkit() ? p("node-webkit") : i.television() ? p("television") : i.desktop() && p("desktop"), i.cordova() && p("cordova"), i.onChangeOrientation = function(t) { "function" == typeof t && c.push(t) };759    var y = "resize";760761    function b(t) {762        for (var n = 0; n < t.length; n++)763            if (i[t[n]]()) return t[n];764        return "unknown"765    }766767    function m() { i.orientation = b(["portrait", "landscape"]) }768    Object.prototype.hasOwnProperty.call(window, "onorientationchange") && (y = "orientationchange"), window.addEventListener ? window.addEventListener(y, d, !1) : window.attachEvent ? window.attachEvent(y, d) : window[y] = d, d(), i.type = b(["mobile", "tablet", "desktop"]), i.os = b(["ios", "iphone", "ipad", "ipod", "android", "blackberry", "windows", "fxos", "meego", "television"]), m(), n.default = i769}, function(t, n, e) {770    var r = e(41),771        o = e(42),772        i = e(94),773        c = e(129),774        u = o(function(t) { return t.push(void 0, i), r(c, void 0, t) });775    t.exports = u776}, function(t, n) { t.exports = function(t) { return t } }, function(t, n, e) {777    var r = e(41),778        o = Math.max;779    t.exports = function(t, n, e) {780        return n = o(void 0 === n ? t.length - 1 : n, 0),781            function() {782                for (var i = arguments, c = -1, u = o(i.length - n, 0), a = Array(u); ++c < u;) a[c] = i[n + c];783                c = -1;784                for (var f = Array(n + 1); ++c < n;) f[c] = i[c];785                return f[n] = e(a), r(t, this, f)786            }787    }788}, function(t, n) { t.exports = function(t) { return t } }, function(t, n, e) {789    var r = e(43),790        o = e(9);791    t.exports = function t(n, e, i, c, u, a) { return o(n) && o(e) && (a.set(e, n), r(n, e, void 0, t, a), a.delete(e)), n }792}, function(t, n, e) {793    var r = e(96),794        o = e(97),795        i = e(98),796        c = e(99),797        u = e(100);798799    function a(t) {800        var n = -1,801            e = null == t ? 0 : t.length;802        for (this.clear(); ++n < e;) {803            var r = t[n];804            this.set(r[0], r[1])805        }806    }807    a.prototype.clear = r, a.prototype.delete = o, a.prototype.get = i, a.prototype.has = c, a.prototype.set = u, t.exports = a808}, function(t, n) { t.exports = function() { this.__data__ = [], this.size = 0 } }, function(t, n, e) {809    var r = e(16),810        o = Array.prototype.splice;811    t.exports = function(t) {812        var n = this.__data__,813            e = r(n, t);814        return !(e < 0 || (e == n.length - 1 ? n.pop() : o.call(n, e, 1), --this.size, 0))815    }816}, function(t, n, e) {817    var r = e(16);818    t.exports = function(t) {819        var n = this.__data__,820            e = r(n, t);821        return e < 0 ? void 0 : n[e][1]822    }823}, function(t, n, e) {824    var r = e(16);825    t.exports = function(t) { return r(this.__data__, t) > -1 }826}, function(t, n, e) {827    var r = e(16);828    t.exports = function(t, n) {829        var e = this.__data__,830            o = r(e, t);831        return o < 0 ? (++this.size, e.push([t, n])) : e[o][1] = n, this832    }833}, function(t, n, e) {834    var r = e(102),835        o = function() { try { var t = r(Object, "defineProperty"); return t({}, "", {}), t } catch (t) {} }();836    t.exports = o837}, function(t, n) { t.exports = function(t, n) { return null == t ? void 0 : t[n] } }, function(t, n, e) {838    var r = e(104)();839    t.exports = r840}, function(t, n) { t.exports = function(t) { return function(n, e, r) { for (var o = -1, i = Object(n), c = r(n), u = c.length; u--;) { var a = c[t ? u : ++o]; if (!1 === e(i[a], a, i)) break } return n } } }, function(t, n, e) {841    var r = e(44),842        o = e(106),843        i = e(110),844        c = e(113),845        u = e(114),846        a = e(118),847        f = e(119),848        s = e(120),849        l = e(123),850        p = e(47),851        v = e(9),852        d = e(124),853        h = e(125),854        y = e(50),855        b = e(126);856    t.exports = function(t, n, e, m, w, x, g) {857        var _ = y(t, e),858            j = y(n, e),859            O = g.get(j);860        if (O) r(t, e, O);861        else {862            var P = x ? x(_, j, e + "", t, n, g) : void 0,863                k = void 0 === P;864            if (k) {865                var S = f(j),866                    T = !S && l(j),867                    L = !S && !T && h(j);868                P = j, S || T || L ? f(_) ? P = _ : s(_) ? P = c(_) : T ? (k = !1, P = o(j, !0)) : L ? (k = !1, P = i(j, !0)) : P = [] : d(j) || a(j) ? (P = _, a(_) ? P = b(_) : v(_) && !p(_) || (P = u(j))) : k = !1869            }870            k && (g.set(j, P), w(P, j, m, x, g), g.delete(j)), r(t, e, P)871        }872    }873}, function(t, n, e) {874    (function(t) {875        var r = e(45),876            o = "object" == typeof n && n && !n.nodeType && n,877            i = o && "object" == typeof t && t && !t.nodeType && t,878            c = i && i.exports === o ? r.Buffer : void 0,879            u = c ? c.allocUnsafe : void 0;880        t.exports = function(t, n) {881            if (n) return t.slice();882            var e = t.length,883                r = u ? u(e) : new t.constructor(e);884            return t.copy(r), r885        }886    }).call(n, e(107)(t))887}, function(t, n) { t.exports = function(t) { return t.webpackPolyfill || (t.deprecate = function() {}, t.paths = [], t.children || (t.children = []), Object.defineProperty(t, "loaded", { enumerable: !0, get: function() { return t.l } }), Object.defineProperty(t, "id", { enumerable: !0, get: function() { return t.i } }), t.webpackPolyfill = 1), t } }, function(t, n, e) {888    (function(n) {889        var e = "object" == typeof n && n && n.Object === Object && n;890        t.exports = e891    }).call(n, e(109))892}, function(t, n) {893    var e;894    e = function() { return this }();895    try { e = e || Function("return this")() || (0, eval)("this") } catch (t) { "object" == typeof window && (e = window) }896    t.exports = e897}, function(t, n, e) {898    var r = e(111);899    t.exports = function(t, n) { var e = n ? r(t.buffer) : t.buffer; return new t.constructor(e, t.byteOffset, t.length) }900}, function(t, n, e) {901    var r = e(112);902    t.exports = function(t) { var n = new t.constructor(t.byteLength); return new r(n).set(new r(t)), n }903}, function(t, n, e) {904    var r = e(45).Uint8Array;905    t.exports = r906}, function(t, n) {907    t.exports = function(t, n) {908        var e = -1,909            r = t.length;910        for (n || (n = Array(r)); ++e < r;) n[e] = t[e];911        return n912    }913}, function(t, n, e) {914    var r = e(115),915        o = e(46),916        i = e(117);917    t.exports = function(t) { return "function" != typeof t.constructor || i(t) ? {} : r(o(t)) }918}, function(t, n, e) {919    var r = e(9),920        o = Object.create,921        i = function() {922            function t() {}923            return function(n) {924                if (!r(n)) return {};925                if (o) return o(n);926                t.prototype = n;927                var e = new t;928                return t.prototype = void 0, e929            }930        }();931    t.exports = i932}, function(t, n) { t.exports = function(t, n) { return function(e) { return t(n(e)) } } }, function(t, n) { t.exports = function() { return !1 } }, function(t, n) { t.exports = function() { return !1 } }, function(t, n) {933    var e = Array.isArray;934    t.exports = e935}, function(t, n, e) {936    var r = e(121),937        o = e(49);938    t.exports = function(t) { return o(t) && r(t) }939}, function(t, n, e) {940    var r = e(47),941        o = e(122);942    t.exports = function(t) { return null != t && o(t.length) && !r(t) }943}, function(t, n) {944    var e = 9007199254740991;945    t.exports = function(t) { return "number" == typeof t && t > -1 && t % 1 == 0 && t <= e }946}, function(t, n) { t.exports = function() { return !1 } }, function(t, n, e) {947    var r = e(48),948        o = e(46),949        i = e(49),950        c = "[object Object]",951        u = Function.prototype,952        a = Object.prototype,953        f = u.toString,954        s = a.hasOwnProperty,955        l = f.call(Object);956    t.exports = function(t) { if (!i(t) || r(t) != c) return !1; var n = o(t); if (null === n) return !0; var e = s.call(n, "constructor") && n.constructor; return "function" == typeof e && e instanceof e && f.call(e) == l }957}, function(t, n) { t.exports = function() { return !1 } }, function(t, n, e) {958    var r = e(127),959        o = e(51);960    t.exports = function(t) { return r(t, o(t)) }961}, function(t, n, e) {962    var r = e(128),963        o = e(28);964    t.exports = function(t, n, e, i) {965        var c = !e;966        e || (e = {});967        for (var u = -1, a = n.length; ++u < a;) {968            var f = n[u],969                s = i ? i(e[f], t[f], f, e, t) : void 0;970            void 0 === s && (s = t[f]), c ? o(e, f, s) : r(e, f, s)971        }972        return e973    }974}, function(t, n, e) {975    var r = e(28),976        o = e(27),977        i = Object.prototype.hasOwnProperty;978    t.exports = function(t, n, e) {979        var c = t[n];980        i.call(t, n) && o(c, e) && (void 0 !== e || n in t) || r(t, n, e)981    }982}, function(t, n, e) {983    var r = e(43),984        o = e(130)(function(t, n, e, o) { r(t, n, e, o) });985    t.exports = o986}, function(t, n, e) {987    var r = e(42),988        o = e(131);989    t.exports = function(t) {990        return r(function(n, e) {991            var r = -1,992                i = e.length,993                c = i > 1 ? e[i - 1] : void 0,994                u = i > 2 ? e[2] : void 0;995            for (c = t.length > 3 && "function" == typeof c ? (i--, c) : void 0, u && o(e[0], e[1], u) && (c = i < 3 ? void 0 : c, i = 1), n = Object(n); ++r < i;) {996                var a = e[r];997                a && t(n, a, r, c)998            }999            return n1000        })1001    }1002}, function(t, n) { t.exports = function() { return !1 } }, function(t, n, e) {1003    "use strict";1004    var r = { model: { jsonPath: "https://unpkg.com/live2d-widget-model-shizuku@latest/assets/shizuku.model.json", scale: 1, hHeadPos: .5, vHeadPos: .618, myDefine: [] }, display: { superSample: 2, width: 150, height: 300, position: "right", hOffset: 0, vOffset: -20 }, mobile: { show: !0, scale: .5, motion: !0 }, name: { canvas: "live2dcanvas", div: "live2d-widget" }, react: { opacityDefault: .7, opacityOnHover: .2, myFunc: function(t) { console.log("(undefined) â( ̄Р ̄)â") } }, dev: { log: !1, border: !1, mouseLog: !1, mouseFunc: function(t, n, e, r) { console.log("MouseFunc: " + t + "," + n + "; " + e + ", " + r) } } };1005    t.exports = r
...publicApiSpec.js
Source:publicApiSpec.js  
1describe('Plugin initialization and component basic construction', function () {2    'use strict';3    it('loads jquery plugin properly', function () {4        expect($('<div>').datetimepicker).toBeDefined();5        expect(typeof $('<div>').datetimepicker).toEqual('function');6        expect($('<div>').datetimepicker.defaults).toBeDefined();7    });8    it('creates the component with default options on an input element', function () {9        var dtpElement = $('<input>'),10            dtp;11        $(document).find('body').append(dtpElement);12        expect(function () {13            expect(dtpElement.datetimepicker()).toBe(dtpElement);14        }).not.toThrow();15        dtp = dtpElement.data('DateTimePicker');16        expect(dtpElement).not.toBe(null);17    });18    it('creates the component with default options merged with those provided on an input element', function () {19        var options = {locale: 'fr'},20            dtpElement = $('<input>'),21            dtp;22        $(document).find('body').append(dtpElement);23        expect(function () {24            expect(dtpElement.datetimepicker(options)).toBe(dtpElement);25        }).not.toThrow();26        dtp = dtpElement.data('DateTimePicker');27        expect(dtp).not.toBe(null);28        expect(dtp.options()).toEqual($.extend(true, {}, dtpElement.datetimepicker.defaults, options));29    });30    it('does not accept non-object or string types', function () {31        var dtpElement = $('<input>');32        $(document).find('body').append(dtpElement);33        expect(function () {34            dtpElement.datetimepicker(true);35        }).toThrow();36    });37    xit('calls destroy when Element that the component is attached is removed', function () {38        var dtpElement = $('<div>').attr('class', 'row').append($('<div>').attr('class', 'col-md-12').append($('<input>'))),39            dtp;40        $(document).find('body').append(dtpElement);41        dtpElement.datetimepicker();42        dtp = dtpElement.data('DateTimePicker');43        spyOn(dtp, 'destroy').and.callThrough();44        dtpElement.remove();45        expect(dtp.destroy).toHaveBeenCalled();46    });47});48describe('Public API method tests', function () {49    'use strict';50    var dtp,51        dtpElement,52        dpChangeSpy,53        dpShowSpy,54        dpHideSpy,55        dpErrorSpy,56        dpClassifySpy;57    beforeEach(function () {58        dpChangeSpy = jasmine.createSpy('dp.change event Spy');59        dpShowSpy = jasmine.createSpy('dp.show event Spy');60        dpHideSpy = jasmine.createSpy('dp.hide event Spy');61        dpErrorSpy = jasmine.createSpy('dp.error event Spy');62        dpClassifySpy = jasmine.createSpy('dp.classify event Spy');63        dtpElement = $('<input>').attr('id', 'dtp');64        $(document).find('body').append($('<div>').attr('class', 'row').append($('<div>').attr('class', 'col-md-12').append(dtpElement)));65        $(document).find('body').on('dp.change', dpChangeSpy);66        $(document).find('body').on('dp.show', dpShowSpy);67        $(document).find('body').on('dp.hide', dpHideSpy);68        $(document).find('body').on('dp.error', dpErrorSpy);69        $(document).find('body').on('dp.classify', dpClassifySpy);70        dtpElement.datetimepicker();71        dtp = dtpElement.data('DateTimePicker');72    });73    afterEach(function () {74        dtp.destroy();75        dtpElement.remove();76    });77    describe('configuration option name match to public api function', function () {78        Object.getOwnPropertyNames($.fn.datetimepicker.defaults).forEach(function (key) {79            it('has function ' + key + '()', function () {80                expect(dtp[key]).toBeDefined();81            });82        });83    });84    describe('unknown functions', function () {85        it('are not allowed', function () {86            expect(function () {87                dtpElement.datetimepicker('abcdef');88            }).toThrow();89        });90    });91    describe('date() function', function () {92        describe('typechecking', function () {93            it('accepts a null', function () {94                expect(function () {95                    dtp.date(null);96                }).not.toThrow();97            });98            it('accepts a string', function () {99                expect(function () {100                    dtp.date('2013/05/24');101                }).not.toThrow();102            });103            it('accepts a Date object', function () {104                expect(function () {105                    dtp.date(new Date());106                }).not.toThrow();107            });108            it('accepts a Moment object', function () {109                expect(function () {110                    dtp.date(moment());111                }).not.toThrow();112            });113            it('does not accept undefined', function () {114                expect(function () {115                    dtp.date(undefined);116                }).toThrow();117            });118            it('does not accept a number', function () {119                expect(function () {120                    dtp.date(0);121                }).toThrow();122            });123            it('does not accept a generic Object', function () {124                expect(function () {125                    dtp.date({});126                }).toThrow();127            });128            it('does not accept a boolean', function () {129                expect(function () {130                    dtp.date(false);131                }).toThrow();132            });133        });134        describe('functionality', function () {135            it('has no date set upon construction', function () {136                expect(dtp.date()).toBe(null);137            });138            it('sets the date correctly', function () {139                var timestamp = moment();140                dtp.date(timestamp);141                expect(dtp.date().isSame(timestamp)).toBe(true);142            });143        });144        describe('access', function () {145            it('gets date', function () {146                expect(dtpElement.datetimepicker('date')).toBe(null);147            });148            it('sets date', function () {149                var timestamp = moment();150                expect(dtpElement.datetimepicker('date', timestamp)).toBe(dtpElement);151                expect(dtpElement.datetimepicker('date').isSame(timestamp)).toBe(true);152            });153        });154    });155    describe('format() function', function () {156        describe('typechecking', function () {157            it('accepts a false value', function () {158                expect(function () {159                    dtp.format(false);160                }).not.toThrow();161            });162            it('accepts a string', function () {163                expect(function () {164                    dtp.format('YYYY-MM-DD');165                }).not.toThrow();166            });167            it('does not accept undefined', function () {168                expect(function () {169                    dtp.format(undefined);170                }).toThrow();171            });172            it('does not accept true', function () {173                expect(function () {174                    dtp.format(true);175                }).toThrow();176            });177            it('does not accept a generic Object', function () {178                expect(function () {179                    dtp.format({});180                }).toThrow();181            });182        });183        describe('functionality', function () {184            it('returns no format before format is set', function () {185                expect(dtp.format()).toBe(false);186            });187            it('sets the format correctly', function () {188                var format = 'YYYY-MM-DD';189                dtp.format(format);190                expect(dtp.format()).toBe(format);191            });192        });193        describe('access', function () {194            it('gets format', function () {195                expect(dtpElement.datetimepicker('format')).toBe(false);196            });197            it('sets format', function () {198                var format = 'YYYY-MM-DD';199                expect(dtpElement.datetimepicker('format', format)).toBe(dtpElement);200                expect(dtpElement.datetimepicker('format')).toBe(format);201            });202        });203    });204    describe('destroy() function', function () {205        describe('existence', function () {206            it('is defined', function () {207                expect(dtp.destroy).toBeDefined();208            });209        });210        describe('access', function () {211            it('returns jQuery object', function () {212                expect(dtpElement.datetimepicker('destroy')).toBe(dtpElement);213            });214        });215    });216    describe('toggle() function', function () {217        describe('existence', function () {218            it('is defined', function () {219                expect(dtp.toggle).toBeDefined();220            });221        });222        // describe('functionality', function () {223        //     it('')224        // });225        describe('access', function () {226            it('returns jQuery object', function () {227                expect(dtpElement.datetimepicker('toggle')).toBe(dtpElement);228            });229        });230    });231    describe('show() function', function () {232        describe('existence', function () {233            it('is defined', function () {234                expect(dtp.show).toBeDefined();235            });236        });237        describe('functionality', function () {238            it('emits a show event when called while widget is hidden', function () {239                dtp.show();240                expect(dpShowSpy).toHaveBeenCalled();241            });242            it('does not emit a show event when called and widget is already showing', function () {243                dtp.hide();244                dtp.show();245                dpShowSpy.calls.reset();246                dtp.show();247                expect(dpShowSpy).not.toHaveBeenCalled();248            });249            it('calls the classify event for each day that is shown', function () {250                dtp.show();251                expect(dpClassifySpy.calls.count()).toEqual(42);252            });253            it('actually shows the widget', function () {254                dtp.show();255                expect($(document).find('body').find('.bootstrap-datetimepicker-widget').length).toEqual(1);256            });257            it('applies the styles appended in the classify event handler', function () {258                var handler = function (event) {259                    if (event.date.get('weekday') === 4) {260                        event.classNames.push('humpday');261                    }262                    event.classNames.push('injected');263                };264                $(document).find('body').on('dp.classify', handler);265                dtp.show();266                $(document).find('body').off('dp.classify', handler);267                expect($(document).find('body').find('.bootstrap-datetimepicker-widget td.day.injected').length).toEqual(42);268                expect($(document).find('body').find('.bootstrap-datetimepicker-widget td.day.humpday').length).toEqual(6);269            });270        });271        describe('access', function () {272            it('returns jQuery object', function () {273                expect(dtpElement.datetimepicker('show')).toBe(dtpElement);274            });275        });276    });277    describe('hide() function', function () {278        describe('existence', function () {279            it('is defined', function () {280                expect(dtp.hide).toBeDefined();281            });282        });283        describe('functionality', function () {284            it('emits a hide event when called while widget is shown', function () {285                dtp.show();286                dtp.hide();287                expect(dpHideSpy).toHaveBeenCalled();288            });289            it('does not emit a hide event when called while widget is hidden', function () {290                dtp.hide();291                expect(dpHideSpy).not.toHaveBeenCalled();292            });293            it('actually hides the widget', function () {294                dtp.show();295                dtp.hide();296                expect($(document).find('body').find('.bootstrap-datetimepicker-widget').length).toEqual(0);297            });298        });299        describe('access', function () {300            it('returns jQuery object', function () {301                expect(dtpElement.datetimepicker('hide')).toBe(dtpElement);302            });303        });304    });305    describe('disable() function', function () {306        describe('existence', function () {307            it('is defined', function () {308                expect(dtp.disable).toBeDefined();309            });310        });311        describe('access', function () {312            it('returns jQuery object', function () {313                expect(dtpElement.datetimepicker('disable')).toBe(dtpElement);314            });315        });316    });317    describe('enable() function', function () {318        describe('existence', function () {319            it('is defined', function () {320                expect(dtp.enable).toBeDefined();321            });322        });323        describe('access', function () {324            it('returns jQuery object', function () {325                expect(dtpElement.datetimepicker('enable')).toBe(dtpElement);326            });327        });328    });329    describe('options() function', function () {330        describe('existence', function () {331            it('is defined', function () {332                expect(dtp.options).toBeDefined();333            });334        });335        describe('access', function () {336            it('gets options', function () {337                expect(dtpElement.datetimepicker('options')).toEqual(dtpElement.datetimepicker.defaults);338            });339            it('sets options', function () {340                var options = {locale: 'fr'};341                expect(dtpElement.datetimepicker('options', options)).toBe(dtpElement);342                expect(dtpElement.datetimepicker('options')).toEqual($.extend(true, {}, dtpElement.datetimepicker.defaults, options));343            });344        });345    });346    describe('disabledDates() function', function () {347        describe('existence', function () {348            it('is defined', function () {349                expect(dtp.disabledDates).toBeDefined();350            });351        });352        describe('access', function () {353            it('gets disabled dates', function () {354                expect(dtpElement.datetimepicker('disabledDates')).toBe(false);355            });356            it('sets disabled dates', function () {357                var timestamps = [moment()];358                expect(dtpElement.datetimepicker('disabledDates', timestamps)).toBe(dtpElement);359                expect(dtpElement.datetimepicker('disabledDates')).not.toBe(false);360            });361        });362    });363    describe('enabledDates() function', function () {364        describe('existence', function () {365            it('is defined', function () {366                expect(dtp.enabledDates).toBeDefined();367            });368        });369        describe('access', function () {370            it('gets enabled dates', function () {371                expect(dtpElement.datetimepicker('enabledDates')).toBe(false);372            });373            it('sets enabled dates', function () {374                var timestamps = [moment()];375                expect(dtpElement.datetimepicker('enabledDates', timestamps)).toBe(dtpElement);376                expect(dtpElement.datetimepicker('enabledDates')).not.toBe(false);377            });378        });379    });380    describe('daysOfWeekDisabled() function', function () {381        describe('existence', function () {382            it('is defined', function () {383                expect(dtp.daysOfWeekDisabled).toBeDefined();384            });385        });386        describe('access', function () {387            xit('gets days of week disabled', function () {388                expect(dtpElement.datetimepicker('daysOfWeekDisabled')).toEqual([]);389            });390            it('sets days of week disabled', function () {391                var daysOfWeek = [0];392                expect(dtpElement.datetimepicker('daysOfWeekDisabled', daysOfWeek)).toBe(dtpElement);393                expect(dtpElement.datetimepicker('daysOfWeekDisabled')).toEqual(daysOfWeek);394            });395        });396    });397    describe('maxDate() function', function () {398        describe('existence', function () {399            it('is defined', function () {400                expect(dtp.maxDate).toBeDefined();401            });402        });403        describe('access', function () {404            it('gets max date', function () {405                expect(dtpElement.datetimepicker('maxDate')).toBe(false);406            });407            it('sets max date', function () {408                var timestamp = moment();409                expect(dtpElement.datetimepicker('maxDate', timestamp)).toBe(dtpElement);410                expect(dtpElement.datetimepicker('maxDate').isSame(timestamp)).toBe(true);411            });412        });413    });414    describe('minDate() function', function () {415        describe('existence', function () {416            it('is defined', function () {417                expect(dtp.minDate).toBeDefined();418            });419        });420        describe('access', function () {421            it('gets min date', function () {422                expect(dtpElement.datetimepicker('minDate')).toBe(false);423            });424            it('sets min date', function () {425                var timestamp = moment();426                expect(dtpElement.datetimepicker('minDate', timestamp)).toBe(dtpElement);427                expect(dtpElement.datetimepicker('minDate').isSame(timestamp)).toBe(true);428            });429        });430    });431    describe('defaultDate() function', function () {432        describe('existence', function () {433            it('is defined', function () {434                expect(dtp.defaultDate).toBeDefined();435            });436        });437        describe('functionality', function () {438            it('returns no defaultDate before defaultDate is set', function () {439                expect(dtp.defaultDate()).toBe(false);440            });441            it('sets the defaultDate correctly', function () {442                var timestamp = moment();443                dtp.defaultDate(timestamp);444                expect(dtp.defaultDate().isSame(timestamp)).toBe(true);445                expect(dtp.date().isSame(timestamp)).toBe(true);446            });447            it('triggers a change event upon setting a default date and input field is empty', function () {448                dtp.date(null);449                dtp.defaultDate(moment());450                expect(dpChangeSpy).toHaveBeenCalled();451            });452            it('does not override input value if it already has one', function () {453                var timestamp = moment();454                dtp.date(timestamp);455                dtp.defaultDate(moment().year(2000));456                expect(dtp.date().isSame(timestamp)).toBe(true);457            });458        });459        describe('access', function () {460            it('gets default date', function () {461                expect(dtpElement.datetimepicker('defaultDate')).toBe(false);462            });463            it('sets default date', function () {464                var timestamp = moment();465                expect(dtpElement.datetimepicker('defaultDate', timestamp)).toBe(dtpElement);466                expect(dtpElement.datetimepicker('defaultDate').isSame(timestamp)).toBe(true);467            });468        });469    });470    describe('locale() function', function () {471        describe('functionality', function () {472            it('it has the same locale as the global moment locale with default options', function () {473                expect(dtp.locale()).toBe(moment.locale());474            });475            it('it switches to a selected locale without affecting global moment locale', function () {476                dtp.locale('el');477                dtp.date(moment());478                expect(dtp.locale()).toBe('el');479                expect(dtp.date().locale()).toBe('el');480                expect(moment.locale()).toBe('en');481            });482        });483        describe('access', function () {484            it('gets locale', function () {485                expect(dtpElement.datetimepicker('locale')).toBe(moment.locale());486            });487            it('sets locale', function () {488                var locale = 'fr';489                expect(dtpElement.datetimepicker('locale', locale)).toBe(dtpElement);490                expect(dtpElement.datetimepicker('locale')).toBe(locale);491            });492        });493    });494    describe('useCurrent() function', function () {495        describe('existence', function () {496            it('is defined', function () {497                expect(dtp.useCurrent).toBeDefined();498            });499        });500        describe('check type and parameter validity', function () {501            it('accepts either a boolean value or string', function () {502                var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];503                expect(function () {504                    dtp.useCurrent(false);505                }).not.toThrow();506                expect(function () {507                    dtp.useCurrent(true);508                }).not.toThrow();509                useCurrentOptions.forEach(function (value) {510                    expect(function () {511                        dtp.useCurrent(value);512                    }).not.toThrow();513                });514                expect(function () {515                    dtp.useCurrent('test');516                }).toThrow();517                expect(function () {518                    dtp.useCurrent({});519                }).toThrow();520            });521        });522        describe('functionality', function () {523            it('triggers a change event upon show() and input field is empty', function () {524                dtp.useCurrent(true);525                dtp.show();526                expect(dpChangeSpy).toHaveBeenCalled();527            });528        });529        describe('access', function () {530            it('gets use current', function () {531                expect(dtpElement.datetimepicker('useCurrent')).toBe(true);532            });533            it('sets use current', function () {534                var useCurrent = false;535                expect(dtpElement.datetimepicker('useCurrent', useCurrent)).toBe(dtpElement);536                expect(dtpElement.datetimepicker('useCurrent')).toBe(useCurrent);537            });538        });539    });540    describe('ignoreReadonly() function', function () {541        describe('existence', function () {542            it('is defined', function () {543                expect(dtp.ignoreReadonly).toBeDefined();544            });545        });546        describe('access', function () {547            it('gets ignore readonly', function () {548                expect(dtpElement.datetimepicker('ignoreReadonly')).toBe(false);549            });550            it('sets ignore readonly', function () {551                var ignoreReadonly = true;552                expect(dtpElement.datetimepicker('ignoreReadonly', ignoreReadonly)).toBe(dtpElement);553                expect(dtpElement.datetimepicker('ignoreReadonly')).toBe(ignoreReadonly);554            });555        });556    });557    describe('stepping() function', function () {558        describe('existence', function () {559            it('is defined', function () {560                expect(dtp.stepping).toBeDefined();561            });562        });563        describe('access', function () {564            it('gets stepping', function () {565                expect(dtpElement.datetimepicker('stepping')).toBe(1);566            });567            it('sets stepping', function () {568                var stepping = 2;569                expect(dtpElement.datetimepicker('stepping', stepping)).toBe(dtpElement);570                expect(dtpElement.datetimepicker('stepping')).toBe(stepping);571            });572        });573    });574    describe('collapse() function', function () {575        describe('existence', function () {576            it('is defined', function () {577                expect(dtp.collapse).toBeDefined();578            });579        });580        describe('access', function () {581            it('gets collapse', function () {582                expect(dtpElement.datetimepicker('collapse')).toBe(true);583            });584            it('sets collapse', function () {585                var collapse = false;586                expect(dtpElement.datetimepicker('collapse', collapse)).toBe(dtpElement);587                expect(dtpElement.datetimepicker('collapse')).toBe(collapse);588            });589        });590    });591    describe('icons() function', function () {592        describe('existence', function () {593            it('is defined', function () {594                expect(dtp.icons).toBeDefined();595            });596        });597        describe('access', function () {598            it('gets icons', function () {599                expect(dtpElement.datetimepicker('icons')).toEqual(dtpElement.datetimepicker.defaults.icons);600            });601            it('sets icons', function () {602                var icons = {time: 'fa fa-time'};603                expect(dtpElement.datetimepicker('icons', icons)).toBe(dtpElement);604                expect(dtpElement.datetimepicker('icons')).toEqual($.extend(true, {}, dtpElement.datetimepicker.defaults.icons, icons));605            });606        });607    });608    describe('useStrict() function', function () {609        describe('existence', function () {610            it('is defined', function () {611                expect(dtp.useStrict).toBeDefined();612            });613        });614        describe('access', function () {615            it('gets use strict', function () {616                expect(dtpElement.datetimepicker('useStrict')).toBe(false);617            });618            it('sets use strict', function () {619                var useStrict = true;620                expect(dtpElement.datetimepicker('useStrict', useStrict)).toBe(dtpElement);621                expect(dtpElement.datetimepicker('useStrict')).toBe(useStrict);622            });623        });624    });625    describe('sideBySide() function', function () {626        describe('existence', function () {627            it('is defined', function () {628                expect(dtp.sideBySide).toBeDefined();629            });630        });631        describe('access', function () {632            it('gets side-by-side', function () {633                expect(dtpElement.datetimepicker('sideBySide')).toBe(false);634            });635            it('sets side-by-side', function () {636                var sideBySide = true;637                expect(dtpElement.datetimepicker('sideBySide', sideBySide)).toBe(dtpElement);638                expect(dtpElement.datetimepicker('sideBySide')).toBe(sideBySide);639            });640        });641    });642    describe('viewMode() function', function () {643        describe('existence', function () {644            it('is defined', function () {645                expect(dtp.viewMode).toBeDefined();646            });647        });648        describe('access', function () {649            it('gets view mode', function () {650                expect(dtpElement.datetimepicker('viewMode')).toBe('days');651            });652            it('sets view mode', function () {653                var viewMode = 'years';654                expect(dtpElement.datetimepicker('viewMode', viewMode)).toBe(dtpElement);655                expect(dtpElement.datetimepicker('viewMode')).toBe(viewMode);656            });657        });658    });659    describe('widgetPositioning() function', function () {660        describe('existence', function () {661            it('is defined', function () {662                expect(dtp.widgetPositioning).toBeDefined();663            });664        });665        describe('access', function () {666            it('gets widget positioning', function () {667                expect(dtpElement.datetimepicker('widgetPositioning')).toEqual(dtpElement.datetimepicker.defaults.widgetPositioning);668            });669            it('sets widget positioning', function () {670                var widgetPositioning = {horizontal: 'left'};671                expect(dtpElement.datetimepicker('widgetPositioning', widgetPositioning)).toBe(dtpElement);672                expect(dtpElement.datetimepicker('widgetPositioning')).toEqual($.extend(true, {}, dtpElement.datetimepicker.defaults.widgetPositioning, widgetPositioning));673            });674        });675    });676    describe('calendarWeeks() function', function () {677        describe('existence', function () {678            it('is defined', function () {679                expect(dtp.calendarWeeks).toBeDefined();680            });681        });682        describe('access', function () {683            it('gets calendar weeks', function () {684                expect(dtpElement.datetimepicker('calendarWeeks')).toBe(false);685            });686            it('sets calendar weeks', function () {687                var calendarWeeks = true;688                expect(dtpElement.datetimepicker('calendarWeeks', calendarWeeks)).toBe(dtpElement);689                expect(dtpElement.datetimepicker('calendarWeeks')).toBe(calendarWeeks);690            });691        });692    });693    describe('showTodayButton() function', function () {694        describe('existence', function () {695            it('is defined', function () {696                expect(dtp.showTodayButton).toBeDefined();697            });698        });699        describe('access', function () {700            it('gets show today button', function () {701                expect(dtpElement.datetimepicker('showTodayButton')).toBe(false);702            });703            it('sets show today button', function () {704                var showTodayButton = true;705                expect(dtpElement.datetimepicker('showTodayButton', showTodayButton)).toBe(dtpElement);706                expect(dtpElement.datetimepicker('showTodayButton')).toBe(showTodayButton);707            });708        });709    });710    describe('showClear() function', function () {711        describe('existence', function () {712            it('is defined', function () {713                expect(dtp.showClear).toBeDefined();714            });715        });716        describe('access', function () {717            it('gets show clear', function () {718                expect(dtpElement.datetimepicker('showClear')).toBe(false);719            });720            it('sets show clear', function () {721                var showClear = true;722                expect(dtpElement.datetimepicker('showClear', showClear)).toBe(dtpElement);723                expect(dtpElement.datetimepicker('showClear')).toBe(showClear);724            });725        });726    });727    describe('dayViewHeaderFormat() function', function () {728        describe('typechecking', function () {729            it('does not accept a false value', function () {730                expect(function () {731                    dtp.dayViewHeaderFormat(false);732                }).toThrow();733            });734            it('accepts a string', function () {735                expect(function () {736                    dtp.dayViewHeaderFormat('YYYY-MM-DD');737                }).not.toThrow();738            });739            it('does not accept undefined', function () {740                expect(function () {741                    dtp.dayViewHeaderFormat(undefined);742                }).toThrow();743            });744            it('does not accept true', function () {745                expect(function () {746                    dtp.dayViewHeaderFormat(true);747                }).toThrow();748            });749            it('does not accept a generic Object', function () {750                expect(function () {751                    dtp.dayViewHeaderFormat({});752                }).toThrow();753            });754        });755        describe('functionality', function () {756            it('expects dayViewHeaderFormat to be default of MMMM YYYY', function () {757                expect(dtp.dayViewHeaderFormat()).toBe('MMMM YYYY');758            });759            it('sets the dayViewHeaderFormat correctly', function () {760                dtp.dayViewHeaderFormat('MM YY');761                expect(dtp.dayViewHeaderFormat()).toBe('MM YY');762            });763        });764        describe('access', function () {765            it('gets day view header format', function () {766                expect(dtpElement.datetimepicker('dayViewHeaderFormat')).toBe('MMMM YYYY');767            });768            it('sets day view header format', function () {769                var dayViewHeaderFormat = 'MM YY';770                expect(dtpElement.datetimepicker('dayViewHeaderFormat', dayViewHeaderFormat)).toBe(dtpElement);771                expect(dtpElement.datetimepicker('dayViewHeaderFormat')).toBe(dayViewHeaderFormat);772            });773        });774    });775    describe('extraFormats() function', function () {776        describe('typechecking', function () {777            it('accepts a false value', function () {778                expect(function () {779                    dtp.extraFormats(false);780                }).not.toThrow();781            });782            it('does not accept a string', function () {783                expect(function () {784                    dtp.extraFormats('YYYY-MM-DD');785                }).toThrow();786            });787            it('does not accept undefined', function () {788                expect(function () {789                    dtp.extraFormats(undefined);790                }).toThrow();791            });792            it('does not accept true', function () {793                expect(function () {794                    dtp.extraFormats(true);795                }).toThrow();796            });797            it('accepts an Array', function () {798                expect(function () {799                    dtp.extraFormats(['YYYY-MM-DD']);800                }).not.toThrow();801            });802        });803        describe('functionality', function () {804            it('returns no extraFormats before extraFormats is set', function () {805                expect(dtp.extraFormats()).toBe(false);806            });807            it('sets the extraFormats correctly', function () {808                dtp.extraFormats(['YYYY-MM-DD']);809                expect(dtp.extraFormats()[0]).toBe('YYYY-MM-DD');810            });811        });812        describe('access', function () {813            it('gets extra formats', function () {814                expect(dtpElement.datetimepicker('extraFormats')).toBe(false);815            });816            it('sets extra formats', function () {817                var extraFormats = ['YYYY-MM-DD'];818                expect(dtpElement.datetimepicker('extraFormats', extraFormats)).toBe(dtpElement);819                expect(dtpElement.datetimepicker('extraFormats')).toEqual(extraFormats);820            });821        });822    });823    describe('toolbarPlacement() function', function () {824        describe('existence', function () {825            it('is defined', function () {826                expect(dtp.toolbarPlacement).toBeDefined();827            });828        });829        describe('check type and parameter validity', function () {830            it('does not accept a false value', function () {831                expect(function () {832                    dtp.dayViewHeaderFormat(false);833                }).toThrow();834            });835            it('does not accept a false value', function () {836                expect(function () {837                    dtp.dayViewHeaderFormat(false);838                }).toThrow();839            });840            it('accepts a string', function () {841                var toolbarPlacementOptions = ['default', 'top', 'bottom'];842                toolbarPlacementOptions.forEach(function (value) {843                    expect(function () {844                        dtp.toolbarPlacement(value);845                    }).not.toThrow();846                });847                expect(function () {848                    dtp.toolbarPlacement('test');849                }).toThrow();850                expect(function () {851                    dtp.toolbarPlacement({});852                }).toThrow();853            });854        });855        describe('access', function () {856            it('gets toolbar placement', function () {857                expect(dtpElement.datetimepicker('toolbarPlacement')).toBe('default');858            });859            it('sets toolbar placement', function () {860                var toolbarPlacement = 'top';861                expect(dtpElement.datetimepicker('toolbarPlacement', toolbarPlacement)).toBe(dtpElement);862                expect(dtpElement.datetimepicker('toolbarPlacement')).toBe(toolbarPlacement);863            });864        });865    });866    describe('widgetParent() function', function () {867        describe('typechecking', function () {868            it('accepts a null', function () {869                expect(function () {870                    dtp.widgetParent(null);871                }).not.toThrow();872            });873            it('accepts a string', function () {874                expect(function () {875                    dtp.widgetParent('testDiv');876                }).not.toThrow();877            });878            it('accepts a jquery object', function () {879                expect(function () {880                    dtp.widgetParent($('#testDiv'));881                }).not.toThrow();882            });883            it('does not accept undefined', function () {884                expect(function () {885                    dtp.widgetParent(undefined);886                }).toThrow();887            });888            it('does not accept a number', function () {889                expect(function () {890                    dtp.widgetParent(0);891                }).toThrow();892            });893            it('does not accept a generic Object', function () {894                expect(function () {895                    dtp.widgetParent({});896                }).toThrow();897            });898            it('does not accept a boolean', function () {899                expect(function () {900                    dtp.widgetParent(false);901                }).toThrow();902            });903        });904        describe('access', function () {905            it('gets widget parent', function () {906                expect(dtpElement.datetimepicker('widgetParent')).toBe(null);907            });908            it('sets widget parent', function () {909                expect(dtpElement.datetimepicker('widgetParent', 'testDiv')).toBe(dtpElement);910                expect(dtpElement.datetimepicker('widgetParent')).not.toBe(null);911            });912        });913    });914    describe('keepOpen() function', function () {915        describe('existence', function () {916            it('is defined', function () {917                expect(dtp.keepOpen).toBeDefined();918            });919        });920        describe('access', function () {921            it('gets keep open', function () {922                expect(dtpElement.datetimepicker('keepOpen')).toBe(false);923            });924            it('sets keep open', function () {925                var keepOpen = true;926                expect(dtpElement.datetimepicker('keepOpen', keepOpen)).toBe(dtpElement);927                expect(dtpElement.datetimepicker('keepOpen')).toBe(keepOpen);928            });929        });930    });931    describe('inline() function', function () {932        describe('existence', function () {933            it('is defined', function () {934                expect(dtp.inline).toBeDefined();935            });936        });937        describe('access', function () {938            it('gets inline', function () {939                expect(dtpElement.datetimepicker('inline')).toBe(false);940            });941            it('sets inline', function () {942                var inline = true;943                expect(dtpElement.datetimepicker('inline', inline)).toBe(dtpElement);944                expect(dtpElement.datetimepicker('inline')).toBe(inline);945            });946        });947    });948    describe('clear() function', function () {949        describe('existence', function () {950            it('is defined', function () {951                expect(dtp.clear).toBeDefined();952            });953        });954        describe('access', function () {955            it('returns jQuery object', function () {956                expect(dtpElement.datetimepicker('clear')).toBe(dtpElement);957            });958        });959    });960    describe('keyBinds() function', function () {961        describe('existence', function () {962            it('is defined', function () {963                expect(dtp.keyBinds).toBeDefined();964            });965        });966        describe('access', function () {967            it('gets key binds', function () {968                expect(dtpElement.datetimepicker('keyBinds')).toEqual(dtpElement.datetimepicker.defaults.keyBinds);969            });970            it('sets key binds', function () {971                var keyBinds = {up: function () {}};972                expect(dtpElement.datetimepicker('keyBinds', keyBinds)).toBe(dtpElement);973                expect(dtpElement.datetimepicker('keyBinds')).toEqual(keyBinds);974            });975        });976    });977    describe('parseInputDate() function', function () {978        describe('existence', function () {979            it('is defined', function () {980                expect(dtp.parseInputDate).toBeDefined();981            });982        });983        describe('access', function () {984            it('gets parse input date', function () {985                expect(dtpElement.datetimepicker('parseInputDate')).toBe(undefined);986            });987            it('sets parse input date', function () {988                var parseInputDate = function () {};989                expect(dtpElement.datetimepicker('parseInputDate', parseInputDate)).toBe(dtpElement);990                expect(dtpElement.datetimepicker('parseInputDate')).toBe(parseInputDate);991            });992        });993    });994    describe('Time zone tests', function () {995        function makeFormatTest (format, displayTimeZone) {996            it('should not change the value that was set when using format ' + format, function () { // #1326997                var oldFormat = dtp.format(),998                    oldTimeZone = dtp.timeZone(),999                    now = moment().startOf('second');1000                dtp.timeZone(displayTimeZone);1001                dtp.format(format);1002                dtp.date(now);1003                dpChangeSpy.calls.reset();1004                dtp.show();1005                dtp.hide();1006                expect(dpChangeSpy).not.toHaveBeenCalled();1007                expect(dtp.date().format()).toEqual(now.tz(displayTimeZone).format());1008                dtp.format(oldFormat);1009                dtp.timeZone(oldTimeZone);1010            });1011        }1012        makeFormatTest('YYYY-MM-DD HH:mm:ss Z', 'UTC');1013        makeFormatTest('YYYY-MM-DD HH:mm:ss', 'UTC');1014        makeFormatTest('YYYY-MM-DD HH:mm:ss Z', 'America/New_York');1015        makeFormatTest('YYYY-MM-DD HH:mm:ss', 'America/New_York');1016    });...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
