/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

!(function (t, e) {
  'object' == typeof exports && 'undefined' != typeof module
    ? e(exports)
    : 'function' == typeof define && define.amd
      ? define(['exports'], e)
      : e(((t = 'undefined' != typeof globalThis ? globalThis : t || self).echarts = {}))
})(this, function (t) {
  'use strict'
  /*! *****************************************************************************
    Copyright (c) Microsoft Corporation.

    Permission to use, copy, modify, and/or distribute this software for any
    purpose with or without fee is hereby granted.

    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.
    ***************************************************************************** */ var e = function (t, n) {
    return (
      (e =
        Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array &&
          function (t, e) {
            t.__proto__ = e
          }) ||
        function (t, e) {
          for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n])
        }),
      e(t, n)
    )
  }
  function n(t, n) {
    if ('function' != typeof n && null !== n) throw new TypeError('Class extends value ' + String(n) + ' is not a constructor or null')
    function i() {
      this.constructor = t
    }
    e(t, n), (t.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i()))
  }
  var i = function () {
      ;(this.firefox = !1), (this.ie = !1), (this.edge = !1), (this.newEdge = !1), (this.weChat = !1)
    },
    r = new (function () {
      ;(this.browser = new i()),
        (this.node = !1),
        (this.wxa = !1),
        (this.worker = !1),
        (this.svgSupported = !1),
        (this.touchEventsSupported = !1),
        (this.pointerEventsSupported = !1),
        (this.domSupported = !1),
        (this.transformSupported = !1),
        (this.transform3dSupported = !1),
        (this.hasGlobalWindow = 'undefined' != typeof window)
    })()
  'object' == typeof wx && 'function' == typeof wx.getSystemInfoSync
    ? ((r.wxa = !0), (r.touchEventsSupported = !0))
    : 'undefined' == typeof document && 'undefined' != typeof self
      ? (r.worker = !0)
      : !r.hasGlobalWindow || 'Deno' in window || ('undefined' != typeof navigator && 'string' == typeof navigator.userAgent && navigator.userAgent.indexOf('Node.js') > -1)
        ? ((r.node = !0), (r.svgSupported = !0))
        : (function (t, e) {
            var n = e.browser,
              i = t.match(/Firefox\/([\d.]+)/),
              r = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/.+?rv:(([\d.]+))/),
              o = t.match(/Edge?\/([\d.]+)/),
              a = /micromessenger/i.test(t)
            i && ((n.firefox = !0), (n.version = i[1]))
            r && ((n.ie = !0), (n.version = r[1]))
            o && ((n.edge = !0), (n.version = o[1]), (n.newEdge = +o[1].split('.')[0] > 18))
            a && (n.weChat = !0)
            ;(e.svgSupported = 'undefined' != typeof SVGRect),
              (e.touchEventsSupported = 'ontouchstart' in window && !n.ie && !n.edge),
              (e.pointerEventsSupported = 'onpointerdown' in window && (n.edge || (n.ie && +n.version >= 11)))
            var s = (e.domSupported = 'undefined' != typeof document)
            if (s) {
              var l = document.documentElement.style
              ;(e.transform3dSupported =
                ((n.ie && 'transition' in l) || n.edge || ('WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix()) || 'MozPerspective' in l) && !('OTransition' in l)),
                (e.transformSupported = e.transform3dSupported || (n.ie && +n.version >= 9))
            }
          })(navigator.userAgent, r)
  var o = 'sans-serif',
    a = '12px ' + o
  var s,
    l,
    u = (function (t) {
      var e = {}
      if ('undefined' == typeof JSON) return e
      for (var n = 0; n < t.length; n++) {
        var i = String.fromCharCode(n + 32),
          r = (t.charCodeAt(n) - 20) / 100
        e[i] = r
      }
      return e
    })("007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N"),
    c = {
      createCanvas: function () {
        return 'undefined' != typeof document && document.createElement('canvas')
      },
      measureText: function (t, e) {
        if (!s) {
          var n = c.createCanvas()
          s = n && n.getContext('2d')
        }
        if (s) return l !== e && (l = s.font = e || a), s.measureText(t)
        t = t || ''
        var i = /((?:\d+)?\.?\d*)px/.exec((e = e || a)),
          r = (i && +i[1]) || 12,
          o = 0
        if (e.indexOf('mono') >= 0) o = r * t.length
        else
          for (var h = 0; h < t.length; h++) {
            var d = u[t[h]]
            o += null == d ? r : d * r
          }
        return { width: o }
      },
      loadImage: function (t, e, n) {
        var i = new Image()
        return (i.onload = e), (i.onerror = n), (i.src = t), i
      }
    }
  function h(t) {
    for (var e in c) t[e] && (c[e] = t[e])
  }
  var d = B(
      ['Function', 'RegExp', 'Date', 'Error', 'CanvasGradient', 'CanvasPattern', 'Image', 'Canvas'],
      function (t, e) {
        return (t['[object ' + e + ']'] = !0), t
      },
      {}
    ),
    p = B(
      ['Int8', 'Uint8', 'Uint8Clamped', 'Int16', 'Uint16', 'Int32', 'Uint32', 'Float32', 'Float64'],
      function (t, e) {
        return (t['[object ' + e + 'Array]'] = !0), t
      },
      {}
    ),
    f = Object.prototype.toString,
    g = Array.prototype,
    y = g.forEach,
    v = g.filter,
    m = g.slice,
    x = g.map,
    _ = function () {}.constructor,
    b = _ ? _.prototype : null,
    w = '__proto__',
    S = 2311
  function M() {
    return S++
  }
  function I() {
    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]
    'undefined' != typeof console && console.error.apply(console, t)
  }
  function T(t) {
    if (null == t || 'object' != typeof t) return t
    var e = t,
      n = f.call(t)
    if ('[object Array]' === n) {
      if (!dt(t)) {
        e = []
        for (var i = 0, r = t.length; i < r; i++) e[i] = T(t[i])
      }
    } else if (p[n]) {
      if (!dt(t)) {
        var o = t.constructor
        if (o.from) e = o.from(t)
        else {
          e = new o(t.length)
          for (i = 0, r = t.length; i < r; i++) e[i] = t[i]
        }
      }
    } else if (!d[n] && !dt(t) && !J(t)) for (var a in ((e = {}), t)) t.hasOwnProperty(a) && a !== w && (e[a] = T(t[a]))
    return e
  }
  function C(t, e, n) {
    if (!q(e) || !q(t)) return n ? T(e) : t
    for (var i in e)
      if (e.hasOwnProperty(i) && i !== w) {
        var r = t[i],
          o = e[i]
        !q(o) || !q(r) || U(o) || U(r) || J(o) || J(r) || K(o) || K(r) || dt(o) || dt(r) ? (!n && i in t) || (t[i] = T(e[i])) : C(r, o, n)
      }
    return t
  }
  function D(t, e) {
    for (var n = t[0], i = 1, r = t.length; i < r; i++) n = C(n, t[i], e)
    return n
  }
  function A(t, e) {
    if (Object.assign) Object.assign(t, e)
    else for (var n in e) e.hasOwnProperty(n) && n !== w && (t[n] = e[n])
    return t
  }
  function k(t, e, n) {
    for (var i = F(e), r = 0, o = i.length; r < o; r++) {
      var a = i[r]
      ;(n ? null != e[a] : null == t[a]) && (t[a] = e[a])
    }
    return t
  }
  var L = c.createCanvas
  function P(t, e) {
    if (t) {
      if (t.indexOf) return t.indexOf(e)
      for (var n = 0, i = t.length; n < i; n++) if (t[n] === e) return n
    }
    return -1
  }
  function O(t, e) {
    var n = t.prototype
    function i() {}
    for (var r in ((i.prototype = e.prototype), (t.prototype = new i()), n)) n.hasOwnProperty(r) && (t.prototype[r] = n[r])
    ;(t.prototype.constructor = t), (t.superClass = e)
  }
  function R(t, e, n) {
    if (((t = 'prototype' in t ? t.prototype : t), (e = 'prototype' in e ? e.prototype : e), Object.getOwnPropertyNames))
      for (var i = Object.getOwnPropertyNames(e), r = 0; r < i.length; r++) {
        var o = i[r]
        'constructor' !== o && (n ? null != e[o] : null == t[o]) && (t[o] = e[o])
      }
    else k(t, e, n)
  }
  function N(t) {
    return !!t && 'string' != typeof t && 'number' == typeof t.length
  }
  function z(t, e, n) {
    if (t && e)
      if (t.forEach && t.forEach === y) t.forEach(e, n)
      else if (t.length === +t.length) for (var i = 0, r = t.length; i < r; i++) e.call(n, t[i], i, t)
      else for (var o in t) t.hasOwnProperty(o) && e.call(n, t[o], o, t)
  }
  function E(t, e, n) {
    if (!t) return []
    if (!e) return at(t)
    if (t.map && t.map === x) return t.map(e, n)
    for (var i = [], r = 0, o = t.length; r < o; r++) i.push(e.call(n, t[r], r, t))
    return i
  }
  function B(t, e, n, i) {
    if (t && e) {
      for (var r = 0, o = t.length; r < o; r++) n = e.call(i, n, t[r], r, t)
      return n
    }
  }
  function V(t, e, n) {
    if (!t) return []
    if (!e) return at(t)
    if (t.filter && t.filter === v) return t.filter(e, n)
    for (var i = [], r = 0, o = t.length; r < o; r++) e.call(n, t[r], r, t) && i.push(t[r])
    return i
  }
  function G(t, e, n) {
    if (t && e) for (var i = 0, r = t.length; i < r; i++) if (e.call(n, t[i], i, t)) return t[i]
  }
  function F(t) {
    if (!t) return []
    if (Object.keys) return Object.keys(t)
    var e = []
    for (var n in t) t.hasOwnProperty(n) && e.push(n)
    return e
  }
  var W =
    b && Y(b.bind)
      ? b.call.bind(b.bind)
      : function (t, e) {
          for (var n = [], i = 2; i < arguments.length; i++) n[i - 2] = arguments[i]
          return function () {
            return t.apply(e, n.concat(m.call(arguments)))
          }
        }
  function H(t) {
    for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]
    return function () {
      return t.apply(this, e.concat(m.call(arguments)))
    }
  }
  function U(t) {
    return Array.isArray ? Array.isArray(t) : '[object Array]' === f.call(t)
  }
  function Y(t) {
    return 'function' == typeof t
  }
  function X(t) {
    return 'string' == typeof t
  }
  function Z(t) {
    return '[object String]' === f.call(t)
  }
  function j(t) {
    return 'number' == typeof t
  }
  function q(t) {
    var e = typeof t
    return 'function' === e || (!!t && 'object' === e)
  }
  function K(t) {
    return !!d[f.call(t)]
  }
  function $(t) {
    return !!p[f.call(t)]
  }
  function J(t) {
    return 'object' == typeof t && 'number' == typeof t.nodeType && 'object' == typeof t.ownerDocument
  }
  function Q(t) {
    return null != t.colorStops
  }
  function tt(t) {
    return null != t.image
  }
  function et(t) {
    return '[object RegExp]' === f.call(t)
  }
  function nt(t) {
    return t != t
  }
  function it() {
    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]
    for (var n = 0, i = t.length; n < i; n++) if (null != t[n]) return t[n]
  }
  function rt(t, e) {
    return null != t ? t : e
  }
  function ot(t, e, n) {
    return null != t ? t : null != e ? e : n
  }
  function at(t) {
    for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]
    return m.apply(t, e)
  }
  function st(t) {
    if ('number' == typeof t) return [t, t, t, t]
    var e = t.length
    return 2 === e ? [t[0], t[1], t[0], t[1]] : 3 === e ? [t[0], t[1], t[2], t[1]] : t
  }
  function lt(t, e) {
    if (!t) throw new Error(e)
  }
  function ut(t) {
    return null == t ? null : 'function' == typeof t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')
  }
  var ct = '__ec_primitive__'
  function ht(t) {
    t[ct] = !0
  }
  function dt(t) {
    return t[ct]
  }
  var pt = (function () {
      function t() {
        this.data = {}
      }
      return (
        (t.prototype.delete = function (t) {
          var e = this.has(t)
          return e && delete this.data[t], e
        }),
        (t.prototype.has = function (t) {
          return this.data.hasOwnProperty(t)
        }),
        (t.prototype.get = function (t) {
          return this.data[t]
        }),
        (t.prototype.set = function (t, e) {
          return (this.data[t] = e), this
        }),
        (t.prototype.keys = function () {
          return F(this.data)
        }),
        (t.prototype.forEach = function (t) {
          var e = this.data
          for (var n in e) e.hasOwnProperty(n) && t(e[n], n)
        }),
        t
      )
    })(),
    ft = 'function' == typeof Map
  var gt = (function () {
    function t(e) {
      var n = U(e)
      this.data = ft ? new Map() : new pt()
      var i = this
      function r(t, e) {
        n ? i.set(t, e) : i.set(e, t)
      }
      e instanceof t ? e.each(r) : e && z(e, r)
    }
    return (
      (t.prototype.hasKey = function (t) {
        return this.data.has(t)
      }),
      (t.prototype.get = function (t) {
        return this.data.get(t)
      }),
      (t.prototype.set = function (t, e) {
        return this.data.set(t, e), e
      }),
      (t.prototype.each = function (t, e) {
        this.data.forEach(function (n, i) {
          t.call(e, n, i)
        })
      }),
      (t.prototype.keys = function () {
        var t = this.data.keys()
        return ft ? Array.from(t) : t
      }),
      (t.prototype.removeKey = function (t) {
        this.data.delete(t)
      }),
      t
    )
  })()
  function yt(t) {
    return new gt(t)
  }
  function vt(t, e) {
    for (var n = new t.constructor(t.length + e.length), i = 0; i < t.length; i++) n[i] = t[i]
    var r = t.length
    for (i = 0; i < e.length; i++) n[i + r] = e[i]
    return n
  }
  function mt(t, e) {
    var n
    if (Object.create) n = Object.create(t)
    else {
      var i = function () {}
      ;(i.prototype = t), (n = new i())
    }
    return e && A(n, e), n
  }
  function xt(t) {
    var e = t.style
    ;(e.webkitUserSelect = 'none'), (e.userSelect = 'none'), (e.webkitTapHighlightColor = 'rgba(0,0,0,0)'), (e['-webkit-touch-callout'] = 'none')
  }
  function _t(t, e) {
    return t.hasOwnProperty(e)
  }
  function bt() {}
  var wt = 180 / Math.PI,
    St = Number.EPSILON || Math.pow(2, -52),
    Mt = Object.freeze({
      __proto__: null,
      guid: M,
      logError: I,
      clone: T,
      merge: C,
      mergeAll: D,
      extend: A,
      defaults: k,
      createCanvas: L,
      indexOf: P,
      inherits: O,
      mixin: R,
      isArrayLike: N,
      each: z,
      map: E,
      reduce: B,
      filter: V,
      find: G,
      keys: F,
      bind: W,
      curry: H,
      isArray: U,
      isFunction: Y,
      isString: X,
      isStringSafe: Z,
      isNumber: j,
      isObject: q,
      isBuiltInObject: K,
      isTypedArray: $,
      isDom: J,
      isGradientObject: Q,
      isImagePatternObject: tt,
      isRegExp: et,
      eqNaN: nt,
      retrieve: it,
      retrieve2: rt,
      retrieve3: ot,
      slice: at,
      normalizeCssArray: st,
      assert: lt,
      trim: ut,
      setAsPrimitive: ht,
      isPrimitive: dt,
      HashMap: gt,
      createHashMap: yt,
      concatArray: vt,
      createObject: mt,
      disableUserSelect: xt,
      hasOwn: _t,
      noop: bt,
      RADIAN_TO_DEGREE: wt,
      EPSILON: St
    })
  function It(t, e) {
    return null == t && (t = 0), null == e && (e = 0), [t, e]
  }
  function Tt(t, e) {
    return (t[0] = e[0]), (t[1] = e[1]), t
  }
  function Ct(t) {
    return [t[0], t[1]]
  }
  function Dt(t, e, n) {
    return (t[0] = e), (t[1] = n), t
  }
  function At(t, e, n) {
    return (t[0] = e[0] + n[0]), (t[1] = e[1] + n[1]), t
  }
  function kt(t, e, n, i) {
    return (t[0] = e[0] + n[0] * i), (t[1] = e[1] + n[1] * i), t
  }
  function Lt(t, e, n) {
    return (t[0] = e[0] - n[0]), (t[1] = e[1] - n[1]), t
  }
  function Pt(t) {
    return Math.sqrt(Rt(t))
  }
  var Ot = Pt
  function Rt(t) {
    return t[0] * t[0] + t[1] * t[1]
  }
  var Nt = Rt
  function zt(t, e, n) {
    return (t[0] = e[0] * n), (t[1] = e[1] * n), t
  }
  function Et(t, e) {
    var n = Pt(e)
    return 0 === n ? ((t[0] = 0), (t[1] = 0)) : ((t[0] = e[0] / n), (t[1] = e[1] / n)), t
  }
  function Bt(t, e) {
    return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]))
  }
  var Vt = Bt
  function Gt(t, e) {
    return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])
  }
  var Ft = Gt
  function Wt(t, e, n, i) {
    return (t[0] = e[0] + i * (n[0] - e[0])), (t[1] = e[1] + i * (n[1] - e[1])), t
  }
  function Ht(t, e, n) {
    var i = e[0],
      r = e[1]
    return (t[0] = n[0] * i + n[2] * r + n[4]), (t[1] = n[1] * i + n[3] * r + n[5]), t
  }
  function Ut(t, e, n) {
    return (t[0] = Math.min(e[0], n[0])), (t[1] = Math.min(e[1], n[1])), t
  }
  function Yt(t, e, n) {
    return (t[0] = Math.max(e[0], n[0])), (t[1] = Math.max(e[1], n[1])), t
  }
  var Xt = Object.freeze({
      __proto__: null,
      create: It,
      copy: Tt,
      clone: Ct,
      set: Dt,
      add: At,
      scaleAndAdd: kt,
      sub: Lt,
      len: Pt,
      length: Ot,
      lenSquare: Rt,
      lengthSquare: Nt,
      mul: function (t, e, n) {
        return (t[0] = e[0] * n[0]), (t[1] = e[1] * n[1]), t
      },
      div: function (t, e, n) {
        return (t[0] = e[0] / n[0]), (t[1] = e[1] / n[1]), t
      },
      dot: function (t, e) {
        return t[0] * e[0] + t[1] * e[1]
      },
      scale: zt,
      normalize: Et,
      distance: Bt,
      dist: Vt,
      distanceSquare: Gt,
      distSquare: Ft,
      negate: function (t, e) {
        return (t[0] = -e[0]), (t[1] = -e[1]), t
      },
      lerp: Wt,
      applyTransform: Ht,
      min: Ut,
      max: Yt
    }),
    Zt = function (t, e) {
      ;(this.target = t), (this.topTarget = e && e.topTarget)
    },
    jt = (function () {
      function t(t) {
        ;(this.handler = t), t.on('mousedown', this._dragStart, this), t.on('mousemove', this._drag, this), t.on('mouseup', this._dragEnd, this)
      }
      return (
        (t.prototype._dragStart = function (t) {
          for (var e = t.target; e && !e.draggable; ) e = e.parent || e.__hostTarget
          e && ((this._draggingTarget = e), (e.dragging = !0), (this._x = t.offsetX), (this._y = t.offsetY), this.handler.dispatchToElement(new Zt(e, t), 'dragstart', t.event))
        }),
        (t.prototype._drag = function (t) {
          var e = this._draggingTarget
          if (e) {
            var n = t.offsetX,
              i = t.offsetY,
              r = n - this._x,
              o = i - this._y
            ;(this._x = n), (this._y = i), e.drift(r, o, t), this.handler.dispatchToElement(new Zt(e, t), 'drag', t.event)
            var a = this.handler.findHover(n, i, e).target,
              s = this._dropTarget
            ;(this._dropTarget = a),
              e !== a &&
                (s && a !== s && this.handler.dispatchToElement(new Zt(s, t), 'dragleave', t.event),
                a && a !== s && this.handler.dispatchToElement(new Zt(a, t), 'dragenter', t.event))
          }
        }),
        (t.prototype._dragEnd = function (t) {
          var e = this._draggingTarget
          e && (e.dragging = !1),
            this.handler.dispatchToElement(new Zt(e, t), 'dragend', t.event),
            this._dropTarget && this.handler.dispatchToElement(new Zt(this._dropTarget, t), 'drop', t.event),
            (this._draggingTarget = null),
            (this._dropTarget = null)
        }),
        t
      )
    })(),
    qt = (function () {
      function t(t) {
        t && (this._$eventProcessor = t)
      }
      return (
        (t.prototype.on = function (t, e, n, i) {
          this._$handlers || (this._$handlers = {})
          var r = this._$handlers
          if (('function' == typeof e && ((i = n), (n = e), (e = null)), !n || !t)) return this
          var o = this._$eventProcessor
          null != e && o && o.normalizeQuery && (e = o.normalizeQuery(e)), r[t] || (r[t] = [])
          for (var a = 0; a < r[t].length; a++) if (r[t][a].h === n) return this
          var s = { h: n, query: e, ctx: i || this, callAtLast: n.zrEventfulCallAtLast },
            l = r[t].length - 1,
            u = r[t][l]
          return u && u.callAtLast ? r[t].splice(l, 0, s) : r[t].push(s), this
        }),
        (t.prototype.isSilent = function (t) {
          var e = this._$handlers
          return !e || !e[t] || !e[t].length
        }),
        (t.prototype.off = function (t, e) {
          var n = this._$handlers
          if (!n) return this
          if (!t) return (this._$handlers = {}), this
          if (e) {
            if (n[t]) {
              for (var i = [], r = 0, o = n[t].length; r < o; r++) n[t][r].h !== e && i.push(n[t][r])
              n[t] = i
            }
            n[t] && 0 === n[t].length && delete n[t]
          } else delete n[t]
          return this
        }),
        (t.prototype.trigger = function (t) {
          for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]
          if (!this._$handlers) return this
          var i = this._$handlers[t],
            r = this._$eventProcessor
          if (i)
            for (var o = e.length, a = i.length, s = 0; s < a; s++) {
              var l = i[s]
              if (!r || !r.filter || null == l.query || r.filter(t, l.query))
                switch (o) {
                  case 0:
                    l.h.call(l.ctx)
                    break
                  case 1:
                    l.h.call(l.ctx, e[0])
                    break
                  case 2:
                    l.h.call(l.ctx, e[0], e[1])
                    break
                  default:
                    l.h.apply(l.ctx, e)
                }
            }
          return r && r.afterTrigger && r.afterTrigger(t), this
        }),
        (t.prototype.triggerWithContext = function (t) {
          for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]
          if (!this._$handlers) return this
          var i = this._$handlers[t],
            r = this._$eventProcessor
          if (i)
            for (var o = e.length, a = e[o - 1], s = i.length, l = 0; l < s; l++) {
              var u = i[l]
              if (!r || !r.filter || null == u.query || r.filter(t, u.query))
                switch (o) {
                  case 0:
                    u.h.call(a)
                    break
                  case 1:
                    u.h.call(a, e[0])
                    break
                  case 2:
                    u.h.call(a, e[0], e[1])
                    break
                  default:
                    u.h.apply(a, e.slice(1, o - 1))
                }
            }
          return r && r.afterTrigger && r.afterTrigger(t), this
        }),
        t
      )
    })(),
    Kt = Math.log(2)
  function $t(t, e, n, i, r, o) {
    var a = i + '-' + r,
      s = t.length
    if (o.hasOwnProperty(a)) return o[a]
    if (1 === e) {
      var l = Math.round(Math.log(((1 << s) - 1) & ~r) / Kt)
      return t[n][l]
    }
    for (var u = i | (1 << n), c = n + 1; i & (1 << c); ) c++
    for (var h = 0, d = 0, p = 0; d < s; d++) {
      var f = 1 << d
      f & r || ((h += (p % 2 ? -1 : 1) * t[n][d] * $t(t, e - 1, c, u, r | f, o)), p++)
    }
    return (o[a] = h), h
  }
  function Jt(t, e) {
    var n = [
        [t[0], t[1], 1, 0, 0, 0, -e[0] * t[0], -e[0] * t[1]],
        [0, 0, 0, t[0], t[1], 1, -e[1] * t[0], -e[1] * t[1]],
        [t[2], t[3], 1, 0, 0, 0, -e[2] * t[2], -e[2] * t[3]],
        [0, 0, 0, t[2], t[3], 1, -e[3] * t[2], -e[3] * t[3]],
        [t[4], t[5], 1, 0, 0, 0, -e[4] * t[4], -e[4] * t[5]],
        [0, 0, 0, t[4], t[5], 1, -e[5] * t[4], -e[5] * t[5]],
        [t[6], t[7], 1, 0, 0, 0, -e[6] * t[6], -e[6] * t[7]],
        [0, 0, 0, t[6], t[7], 1, -e[7] * t[6], -e[7] * t[7]]
      ],
      i = {},
      r = $t(n, 8, 0, 0, 0, i)
    if (0 !== r) {
      for (var o = [], a = 0; a < 8; a++)
        for (var s = 0; s < 8; s++) null == o[s] && (o[s] = 0), (o[s] += ((((a + s) % 2 ? -1 : 1) * $t(n, 7, 0 === a ? 1 : 0, 1 << a, 1 << s, i)) / r) * e[a])
      return function (t, e, n) {
        var i = e * o[6] + n * o[7] + 1
        ;(t[0] = (e * o[0] + n * o[1] + o[2]) / i), (t[1] = (e * o[3] + n * o[4] + o[5]) / i)
      }
    }
  }
  var Qt = '___zrEVENTSAVED',
    te = []
  function ee(t, e, n, i, o) {
    if (e.getBoundingClientRect && r.domSupported && !ne(e)) {
      var a = e[Qt] || (e[Qt] = {}),
        s = (function (t, e) {
          var n = e.markers
          if (n) return n
          n = e.markers = []
          for (var i = ['left', 'right'], r = ['top', 'bottom'], o = 0; o < 4; o++) {
            var a = document.createElement('div'),
              s = o % 2,
              l = (o >> 1) % 2
            ;(a.style.cssText = [
              'position: absolute',
              'visibility: hidden',
              'padding: 0',
              'margin: 0',
              'border-width: 0',
              'user-select: none',
              'width:0',
              'height:0',
              i[s] + ':0',
              r[l] + ':0',
              i[1 - s] + ':auto',
              r[1 - l] + ':auto',
              ''
            ].join('!important;')),
              t.appendChild(a),
              n.push(a)
          }
          return (
            (e.clearMarkers = function () {
              z(n, function (t) {
                t.parentNode && t.parentNode.removeChild(t)
              })
            }),
            n
          )
        })(e, a),
        l = (function (t, e, n) {
          for (var i = n ? 'invTrans' : 'trans', r = e[i], o = e.srcCoords, a = [], s = [], l = !0, u = 0; u < 4; u++) {
            var c = t[u].getBoundingClientRect(),
              h = 2 * u,
              d = c.left,
              p = c.top
            a.push(d, p), (l = l && o && d === o[h] && p === o[h + 1]), s.push(t[u].offsetLeft, t[u].offsetTop)
          }
          return l && r ? r : ((e.srcCoords = a), (e[i] = n ? Jt(s, a) : Jt(a, s)))
        })(s, a, o)
      if (l) return l(t, n, i), !0
    }
    return !1
  }
  function ne(t) {
    return 'CANVAS' === t.nodeName.toUpperCase()
  }
  var ie = /([&<>"'])/g,
    re = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }
  function oe(t) {
    return null == t
      ? ''
      : (t + '').replace(ie, function (t, e) {
          return re[e]
        })
  }
  var ae = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
    se = [],
    le = r.browser.firefox && +r.browser.version.split('.')[0] < 39
  function ue(t, e, n, i) {
    return (
      (n = n || {}),
      i
        ? ce(t, e, n)
        : le && null != e.layerX && e.layerX !== e.offsetX
          ? ((n.zrX = e.layerX), (n.zrY = e.layerY))
          : null != e.offsetX
            ? ((n.zrX = e.offsetX), (n.zrY = e.offsetY))
            : ce(t, e, n),
      n
    )
  }
  function ce(t, e, n) {
    if (r.domSupported && t.getBoundingClientRect) {
      var i = e.clientX,
        o = e.clientY
      if (ne(t)) {
        var a = t.getBoundingClientRect()
        return (n.zrX = i - a.left), void (n.zrY = o - a.top)
      }
      if (ee(se, t, i, o)) return (n.zrX = se[0]), void (n.zrY = se[1])
    }
    n.zrX = n.zrY = 0
  }
  function he(t) {
    return t || window.event
  }
  function de(t, e, n) {
    if (null != (e = he(e)).zrX) return e
    var i = e.type
    if (i && i.indexOf('touch') >= 0) {
      var r = 'touchend' !== i ? e.targetTouches[0] : e.changedTouches[0]
      r && ue(t, r, e, n)
    } else {
      ue(t, e, e, n)
      var o = (function (t) {
        var e = t.wheelDelta
        if (e) return e
        var n = t.deltaX,
          i = t.deltaY
        if (null == n || null == i) return e
        return 3 * (0 !== i ? Math.abs(i) : Math.abs(n)) * (i > 0 ? -1 : i < 0 ? 1 : n > 0 ? -1 : 1)
      })(e)
      e.zrDelta = o ? o / 120 : -(e.detail || 0) / 3
    }
    var a = e.button
    return null == e.which && void 0 !== a && ae.test(e.type) && (e.which = 1 & a ? 1 : 2 & a ? 3 : 4 & a ? 2 : 0), e
  }
  function pe(t, e, n, i) {
    t.addEventListener(e, n, i)
  }
  var fe = function (t) {
    t.preventDefault(), t.stopPropagation(), (t.cancelBubble = !0)
  }
  function ge(t) {
    return 2 === t.which || 3 === t.which
  }
  var ye = (function () {
    function t() {
      this._track = []
    }
    return (
      (t.prototype.recognize = function (t, e, n) {
        return this._doTrack(t, e, n), this._recognize(t)
      }),
      (t.prototype.clear = function () {
        return (this._track.length = 0), this
      }),
      (t.prototype._doTrack = function (t, e, n) {
        var i = t.touches
        if (i) {
          for (var r = { points: [], touches: [], target: e, event: t }, o = 0, a = i.length; o < a; o++) {
            var s = i[o],
              l = ue(n, s, {})
            r.points.push([l.zrX, l.zrY]), r.touches.push(s)
          }
          this._track.push(r)
        }
      }),
      (t.prototype._recognize = function (t) {
        for (var e in me)
          if (me.hasOwnProperty(e)) {
            var n = me[e](this._track, t)
            if (n) return n
          }
      }),
      t
    )
  })()
  function ve(t) {
    var e = t[1][0] - t[0][0],
      n = t[1][1] - t[0][1]
    return Math.sqrt(e * e + n * n)
  }
  var me = {
    pinch: function (t, e) {
      var n = t.length
      if (n) {
        var i,
          r = (t[n - 1] || {}).points,
          o = (t[n - 2] || {}).points || r
        if (o && o.length > 1 && r && r.length > 1) {
          var a = ve(r) / ve(o)
          !isFinite(a) && (a = 1), (e.pinchScale = a)
          var s = [((i = r)[0][0] + i[1][0]) / 2, (i[0][1] + i[1][1]) / 2]
          return (e.pinchX = s[0]), (e.pinchY = s[1]), { type: 'pinch', target: t[0].target, event: e }
        }
      }
    }
  }
  function xe() {
    return [1, 0, 0, 1, 0, 0]
  }
  function _e(t) {
    return (t[0] = 1), (t[1] = 0), (t[2] = 0), (t[3] = 1), (t[4] = 0), (t[5] = 0), t
  }
  function be(t, e) {
    return (t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), (t[3] = e[3]), (t[4] = e[4]), (t[5] = e[5]), t
  }
  function we(t, e, n) {
    var i = e[0] * n[0] + e[2] * n[1],
      r = e[1] * n[0] + e[3] * n[1],
      o = e[0] * n[2] + e[2] * n[3],
      a = e[1] * n[2] + e[3] * n[3],
      s = e[0] * n[4] + e[2] * n[5] + e[4],
      l = e[1] * n[4] + e[3] * n[5] + e[5]
    return (t[0] = i), (t[1] = r), (t[2] = o), (t[3] = a), (t[4] = s), (t[5] = l), t
  }
  function Se(t, e, n) {
    return (t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), (t[3] = e[3]), (t[4] = e[4] + n[0]), (t[5] = e[5] + n[1]), t
  }
  function Me(t, e, n, i) {
    void 0 === i && (i = [0, 0])
    var r = e[0],
      o = e[2],
      a = e[4],
      s = e[1],
      l = e[3],
      u = e[5],
      c = Math.sin(n),
      h = Math.cos(n)
    return (
      (t[0] = r * h + s * c),
      (t[1] = -r * c + s * h),
      (t[2] = o * h + l * c),
      (t[3] = -o * c + h * l),
      (t[4] = h * (a - i[0]) + c * (u - i[1]) + i[0]),
      (t[5] = h * (u - i[1]) - c * (a - i[0]) + i[1]),
      t
    )
  }
  function Ie(t, e, n) {
    var i = n[0],
      r = n[1]
    return (t[0] = e[0] * i), (t[1] = e[1] * r), (t[2] = e[2] * i), (t[3] = e[3] * r), (t[4] = e[4] * i), (t[5] = e[5] * r), t
  }
  function Te(t, e) {
    var n = e[0],
      i = e[2],
      r = e[4],
      o = e[1],
      a = e[3],
      s = e[5],
      l = n * a - o * i
    return l ? ((l = 1 / l), (t[0] = a * l), (t[1] = -o * l), (t[2] = -i * l), (t[3] = n * l), (t[4] = (i * s - a * r) * l), (t[5] = (o * r - n * s) * l), t) : null
  }
  function Ce(t) {
    var e = [1, 0, 0, 1, 0, 0]
    return be(e, t), e
  }
  var De = Object.freeze({ __proto__: null, create: xe, identity: _e, copy: be, mul: we, translate: Se, rotate: Me, scale: Ie, invert: Te, clone: Ce }),
    Ae = (function () {
      function t(t, e) {
        ;(this.x = t || 0), (this.y = e || 0)
      }
      return (
        (t.prototype.copy = function (t) {
          return (this.x = t.x), (this.y = t.y), this
        }),
        (t.prototype.clone = function () {
          return new t(this.x, this.y)
        }),
        (t.prototype.set = function (t, e) {
          return (this.x = t), (this.y = e), this
        }),
        (t.prototype.equal = function (t) {
          return t.x === this.x && t.y === this.y
        }),
        (t.prototype.add = function (t) {
          return (this.x += t.x), (this.y += t.y), this
        }),
        (t.prototype.scale = function (t) {
          ;(this.x *= t), (this.y *= t)
        }),
        (t.prototype.scaleAndAdd = function (t, e) {
          ;(this.x += t.x * e), (this.y += t.y * e)
        }),
        (t.prototype.sub = function (t) {
          return (this.x -= t.x), (this.y -= t.y), this
        }),
        (t.prototype.dot = function (t) {
          return this.x * t.x + this.y * t.y
        }),
        (t.prototype.len = function () {
          return Math.sqrt(this.x * this.x + this.y * this.y)
        }),
        (t.prototype.lenSquare = function () {
          return this.x * this.x + this.y * this.y
        }),
        (t.prototype.normalize = function () {
          var t = this.len()
          return (this.x /= t), (this.y /= t), this
        }),
        (t.prototype.distance = function (t) {
          var e = this.x - t.x,
            n = this.y - t.y
          return Math.sqrt(e * e + n * n)
        }),
        (t.prototype.distanceSquare = function (t) {
          var e = this.x - t.x,
            n = this.y - t.y
          return e * e + n * n
        }),
        (t.prototype.negate = function () {
          return (this.x = -this.x), (this.y = -this.y), this
        }),
        (t.prototype.transform = function (t) {
          if (t) {
            var e = this.x,
              n = this.y
            return (this.x = t[0] * e + t[2] * n + t[4]), (this.y = t[1] * e + t[3] * n + t[5]), this
          }
        }),
        (t.prototype.toArray = function (t) {
          return (t[0] = this.x), (t[1] = this.y), t
        }),
        (t.prototype.fromArray = function (t) {
          ;(this.x = t[0]), (this.y = t[1])
        }),
        (t.set = function (t, e, n) {
          ;(t.x = e), (t.y = n)
        }),
        (t.copy = function (t, e) {
          ;(t.x = e.x), (t.y = e.y)
        }),
        (t.len = function (t) {
          return Math.sqrt(t.x * t.x + t.y * t.y)
        }),
        (t.lenSquare = function (t) {
          return t.x * t.x + t.y * t.y
        }),
        (t.dot = function (t, e) {
          return t.x * e.x + t.y * e.y
        }),
        (t.add = function (t, e, n) {
          ;(t.x = e.x + n.x), (t.y = e.y + n.y)
        }),
        (t.sub = function (t, e, n) {
          ;(t.x = e.x - n.x), (t.y = e.y - n.y)
        }),
        (t.scale = function (t, e, n) {
          ;(t.x = e.x * n), (t.y = e.y * n)
        }),
        (t.scaleAndAdd = function (t, e, n, i) {
          ;(t.x = e.x + n.x * i), (t.y = e.y + n.y * i)
        }),
        (t.lerp = function (t, e, n, i) {
          var r = 1 - i
          ;(t.x = r * e.x + i * n.x), (t.y = r * e.y + i * n.y)
        }),
        t
      )
    })(),
    ke = Math.min,
    Le = Math.max,
    Pe = Math.abs,
    Oe = ['x', 'y'],
    Re = ['width', 'height'],
    Ne = new Ae(),
    ze = new Ae(),
    Ee = new Ae(),
    Be = new Ae(),
    Ve = Ze(),
    Ge = Ve.minTv,
    Fe = Ve.maxTv,
    We = [0, 0],
    He = (function () {
      function t(e, n, i, r) {
        t.set(this, e, n, i, r)
      }
      return (
        (t.set = function (t, e, n, i, r) {
          return i < 0 && ((e += i), (i = -i)), r < 0 && ((n += r), (r = -r)), (t.x = e), (t.y = n), (t.width = i), (t.height = r), t
        }),
        (t.prototype.union = function (t) {
          var e = ke(t.x, this.x),
            n = ke(t.y, this.y)
          isFinite(this.x) && isFinite(this.width) ? (this.width = Le(t.x + t.width, this.x + this.width) - e) : (this.width = t.width),
            isFinite(this.y) && isFinite(this.height) ? (this.height = Le(t.y + t.height, this.y + this.height) - n) : (this.height = t.height),
            (this.x = e),
            (this.y = n)
        }),
        (t.prototype.applyTransform = function (e) {
          t.applyTransform(this, this, e)
        }),
        (t.prototype.calculateTransform = function (t) {
          var e = this,
            n = t.width / e.width,
            i = t.height / e.height,
            r = [1, 0, 0, 1, 0, 0]
          return Se(r, r, [-e.x, -e.y]), Ie(r, r, [n, i]), Se(r, r, [t.x, t.y]), r
        }),
        (t.prototype.intersect = function (e, n, i) {
          return t.intersect(this, e, n, i)
        }),
        (t.intersect = function (e, n, i, r) {
          i && Ae.set(i, 0, 0)
          var o = (r && r.outIntersectRect) || null,
            a = r && r.clamp
          if ((o && (o.x = o.y = o.width = o.height = NaN), !e || !n)) return !1
          e instanceof t || (e = t.set(Ue, e.x, e.y, e.width, e.height)), n instanceof t || (n = t.set(Ye, n.x, n.y, n.width, n.height))
          var s = !!i
          Ve.reset(r, s)
          var l = Ve.touchThreshold,
            u = e.x + l,
            c = e.x + e.width - l,
            h = e.y + l,
            d = e.y + e.height - l,
            p = n.x + l,
            f = n.x + n.width - l,
            g = n.y + l,
            y = n.y + n.height - l
          if (u > c || h > d || p > f || g > y) return !1
          var v = !(c < p || f < u || d < g || y < h)
          return (s || o) && ((We[0] = 1 / 0), (We[1] = 0), Xe(u, c, p, f, 0, s, o, a), Xe(h, d, g, y, 1, s, o, a), s && Ae.copy(i, v ? (Ve.useDir ? Ve.dirMinTv : Ge) : Fe)), v
        }),
        (t.contain = function (t, e, n) {
          return e >= t.x && e <= t.x + t.width && n >= t.y && n <= t.y + t.height
        }),
        (t.prototype.contain = function (e, n) {
          return t.contain(this, e, n)
        }),
        (t.prototype.clone = function () {
          return new t(this.x, this.y, this.width, this.height)
        }),
        (t.prototype.copy = function (e) {
          t.copy(this, e)
        }),
        (t.prototype.plain = function () {
          return { x: this.x, y: this.y, width: this.width, height: this.height }
        }),
        (t.prototype.isFinite = function () {
          return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height)
        }),
        (t.prototype.isZero = function () {
          return 0 === this.width || 0 === this.height
        }),
        (t.create = function (e) {
          return new t(e.x, e.y, e.width, e.height)
        }),
        (t.copy = function (t, e) {
          return (t.x = e.x), (t.y = e.y), (t.width = e.width), (t.height = e.height), t
        }),
        (t.applyTransform = function (e, n, i) {
          if (i) {
            if (i[1] < 1e-5 && i[1] > -1e-5 && i[2] < 1e-5 && i[2] > -1e-5) {
              var r = i[0],
                o = i[3],
                a = i[4],
                s = i[5]
              return (
                (e.x = n.x * r + a),
                (e.y = n.y * o + s),
                (e.width = n.width * r),
                (e.height = n.height * o),
                e.width < 0 && ((e.x += e.width), (e.width = -e.width)),
                void (e.height < 0 && ((e.y += e.height), (e.height = -e.height)))
              )
            }
            ;(Ne.x = Ee.x = n.x),
              (Ne.y = Be.y = n.y),
              (ze.x = Be.x = n.x + n.width),
              (ze.y = Ee.y = n.y + n.height),
              Ne.transform(i),
              Be.transform(i),
              ze.transform(i),
              Ee.transform(i),
              (e.x = ke(Ne.x, ze.x, Ee.x, Be.x)),
              (e.y = ke(Ne.y, ze.y, Ee.y, Be.y))
            var l = Le(Ne.x, ze.x, Ee.x, Be.x),
              u = Le(Ne.y, ze.y, Ee.y, Be.y)
            ;(e.width = l - e.x), (e.height = u - e.y)
          } else e !== n && t.copy(e, n)
        }),
        t
      )
    })(),
    Ue = new He(0, 0, 0, 0),
    Ye = new He(0, 0, 0, 0)
  function Xe(t, e, n, i, r, o, a, s) {
    var l = Pe(e - n),
      u = Pe(i - t),
      c = ke(l, u),
      h = Oe[r],
      d = Oe[1 - r],
      p = Re[r]
    e < n || i < t
      ? l < u
        ? (o && (Fe[h] = -l), s && ((a[h] = e), (a[p] = 0)))
        : (o && (Fe[h] = u), s && ((a[h] = t), (a[p] = 0)))
      : (a && ((a[h] = Le(t, n)), (a[p] = ke(e, i) - a[h])),
        o &&
          (c < We[0] || Ve.useDir) &&
          ((We[0] = ke(c, We[0])),
          (l < u || !Ve.bidirectional) && ((Ge[h] = l), (Ge[d] = 0), Ve.useDir && Ve.calcDirMTV()),
          (l >= u || !Ve.bidirectional) && ((Ge[h] = -u), (Ge[d] = 0), Ve.useDir && Ve.calcDirMTV())))
  }
  function Ze() {
    var t = 0,
      e = new Ae(),
      n = new Ae(),
      i = {
        minTv: new Ae(),
        maxTv: new Ae(),
        useDir: !1,
        dirMinTv: new Ae(),
        touchThreshold: 0,
        bidirectional: !0,
        negativeSize: !1,
        reset: function (r, o) {
          ;(i.touchThreshold = 0),
            r && null != r.touchThreshold && (i.touchThreshold = Le(0, r.touchThreshold)),
            (i.negativeSize = !1),
            o &&
              (i.minTv.set(1 / 0, 1 / 0),
              i.maxTv.set(0, 0),
              (i.useDir = !1),
              r &&
                null != r.direction &&
                ((i.useDir = !0),
                i.dirMinTv.copy(i.minTv),
                n.copy(i.minTv),
                (t = r.direction),
                (i.bidirectional = null == r.bidirectional || !!r.bidirectional),
                i.bidirectional || e.set(Math.cos(t), Math.sin(t))))
        },
        calcDirMTV: function () {
          var o = i.minTv,
            a = i.dirMinTv,
            s = o.y * o.y + o.x * o.x,
            l = Math.sin(t),
            u = Math.cos(t),
            c = l * o.y + u * o.x
          r(c)
            ? r(o.x) && r(o.y) && a.set(0, 0)
            : ((n.x = (s * u) / c), (n.y = (s * l) / c), r(n.x) && r(n.y) ? a.set(0, 0) : (i.bidirectional || e.dot(n) > 0) && n.len() < a.len() && a.copy(n))
        }
      }
    function r(t) {
      return Pe(t) < 1e-10
    }
    return i
  }
  var je = 'silent'
  function qe() {
    fe(this.event)
  }
  var Ke = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.handler = null), e
      }
      return n(e, t), (e.prototype.dispose = function () {}), (e.prototype.setCursor = function () {}), e
    })(qt),
    $e = function (t, e) {
      ;(this.x = t), (this.y = e)
    },
    Je = ['click', 'dblclick', 'mousewheel', 'mouseout', 'mouseup', 'mousedown', 'mousemove', 'contextmenu'],
    Qe = new He(0, 0, 0, 0),
    tn = (function (t) {
      function e(e, n, i, r, o) {
        var a = t.call(this) || this
        return (
          (a._hovered = new $e(0, 0)),
          (a.storage = e),
          (a.painter = n),
          (a.painterRoot = r),
          (a._pointerSize = o),
          (i = i || new Ke()),
          (a.proxy = null),
          a.setHandlerProxy(i),
          (a._draggingMgr = new jt(a)),
          a
        )
      }
      return (
        n(e, t),
        (e.prototype.setHandlerProxy = function (t) {
          this.proxy && this.proxy.dispose(),
            t &&
              (z(
                Je,
                function (e) {
                  t.on && t.on(e, this[e], this)
                },
                this
              ),
              (t.handler = this)),
            (this.proxy = t)
        }),
        (e.prototype.mousemove = function (t) {
          var e = t.zrX,
            n = t.zrY,
            i = rn(this, e, n),
            r = this._hovered,
            o = r.target
          o && !o.__zr && (o = (r = this.findHover(r.x, r.y)).target)
          var a = (this._hovered = i ? new $e(e, n) : this.findHover(e, n)),
            s = a.target,
            l = this.proxy
          l.setCursor && l.setCursor(s ? s.cursor : 'default'),
            o && s !== o && this.dispatchToElement(r, 'mouseout', t),
            this.dispatchToElement(a, 'mousemove', t),
            s && s !== o && this.dispatchToElement(a, 'mouseover', t)
        }),
        (e.prototype.mouseout = function (t) {
          var e = t.zrEventControl
          'only_globalout' !== e && this.dispatchToElement(this._hovered, 'mouseout', t), 'no_globalout' !== e && this.trigger('globalout', { type: 'globalout', event: t })
        }),
        (e.prototype.resize = function () {
          this._hovered = new $e(0, 0)
        }),
        (e.prototype.dispatch = function (t, e) {
          var n = this[t]
          n && n.call(this, e)
        }),
        (e.prototype.dispose = function () {
          this.proxy.dispose(), (this.storage = null), (this.proxy = null), (this.painter = null)
        }),
        (e.prototype.setCursorStyle = function (t) {
          var e = this.proxy
          e.setCursor && e.setCursor(t)
        }),
        (e.prototype.dispatchToElement = function (t, e, n) {
          var i = (t = t || {}).target
          if (!i || !i.silent) {
            for (
              var r = 'on' + e,
                o = (function (t, e, n) {
                  return {
                    type: t,
                    event: n,
                    target: e.target,
                    topTarget: e.topTarget,
                    cancelBubble: !1,
                    offsetX: n.zrX,
                    offsetY: n.zrY,
                    gestureEvent: n.gestureEvent,
                    pinchX: n.pinchX,
                    pinchY: n.pinchY,
                    pinchScale: n.pinchScale,
                    wheelDelta: n.zrDelta,
                    zrByTouch: n.zrByTouch,
                    which: n.which,
                    stop: qe
                  }
                })(e, t, n);
              i && (i[r] && (o.cancelBubble = !!i[r].call(i, o)), i.trigger(e, o), (i = i.__hostTarget ? i.__hostTarget : i.parent), !o.cancelBubble);

            );
            o.cancelBubble ||
              (this.trigger(e, o),
              this.painter &&
                this.painter.eachOtherLayer &&
                this.painter.eachOtherLayer(function (t) {
                  'function' == typeof t[r] && t[r].call(t, o), t.trigger && t.trigger(e, o)
                }))
          }
        }),
        (e.prototype.findHover = function (t, e, n) {
          var i = this.storage.getDisplayList(),
            r = new $e(t, e)
          if ((nn(i, r, t, e, n), this._pointerSize && !r.target)) {
            for (var o = [], a = this._pointerSize, s = a / 2, l = new He(t - s, e - s, a, a), u = i.length - 1; u >= 0; u--) {
              var c = i[u]
              c === n ||
                c.ignore ||
                c.ignoreCoarsePointer ||
                (c.parent && c.parent.ignoreCoarsePointer) ||
                (Qe.copy(c.getBoundingRect()), c.transform && Qe.applyTransform(c.transform), Qe.intersect(l) && o.push(c))
            }
            if (o.length)
              for (var h = Math.PI / 12, d = 2 * Math.PI, p = 0; p < s; p += 4)
                for (var f = 0; f < d; f += h) {
                  if ((nn(o, r, t + p * Math.cos(f), e + p * Math.sin(f), n), r.target)) return r
                }
          }
          return r
        }),
        (e.prototype.processGesture = function (t, e) {
          this._gestureMgr || (this._gestureMgr = new ye())
          var n = this._gestureMgr
          'start' === e && n.clear()
          var i = n.recognize(t, this.findHover(t.zrX, t.zrY, null).target, this.proxy.dom)
          if (('end' === e && n.clear(), i)) {
            var r = i.type
            t.gestureEvent = r
            var o = new $e()
            ;(o.target = i.target), this.dispatchToElement(o, r, i.event)
          }
        }),
        e
      )
    })(qt)
  function en(t, e, n) {
    if (t[t.rectHover ? 'rectContain' : 'contain'](e, n)) {
      for (var i = t, r = void 0, o = !1; i; ) {
        if ((i.ignoreClip && (o = !0), !o)) {
          var a = i.getClipPath()
          if (a && !a.contain(e, n)) return !1
        }
        i.silent && (r = !0)
        var s = i.__hostTarget
        i = s ? (i.ignoreHostSilent ? null : s) : i.parent
      }
      return !r || je
    }
    return !1
  }
  function nn(t, e, n, i, r) {
    for (var o = t.length - 1; o >= 0; o--) {
      var a = t[o],
        s = void 0
      if (a !== r && !a.ignore && (s = en(a, n, i)) && (!e.topTarget && (e.topTarget = a), s !== je)) {
        e.target = a
        break
      }
    }
  }
  function rn(t, e, n) {
    var i = t.painter
    return e < 0 || e > i.getWidth() || n < 0 || n > i.getHeight()
  }
  z(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (t) {
    tn.prototype[t] = function (e) {
      var n,
        i,
        r = e.zrX,
        o = e.zrY,
        a = rn(this, r, o)
      if ((('mouseup' === t && a) || (i = (n = this.findHover(r, o)).target), 'mousedown' === t)) (this._downEl = i), (this._downPoint = [e.zrX, e.zrY]), (this._upEl = i)
      else if ('mouseup' === t) this._upEl = i
      else if ('click' === t) {
        if (this._downEl !== this._upEl || !this._downPoint || Vt(this._downPoint, [e.zrX, e.zrY]) > 4) return
        this._downPoint = null
      }
      this.dispatchToElement(n, t, e)
    }
  })
  function on(t, e, n, i) {
    var r = e + 1
    if (r === n) return 1
    if (i(t[r++], t[e]) < 0) {
      for (; r < n && i(t[r], t[r - 1]) < 0; ) r++
      !(function (t, e, n) {
        n--
        for (; e < n; ) {
          var i = t[e]
          ;(t[e++] = t[n]), (t[n--] = i)
        }
      })(t, e, r)
    } else for (; r < n && i(t[r], t[r - 1]) >= 0; ) r++
    return r - e
  }
  function an(t, e, n, i, r) {
    for (i === e && i++; i < n; i++) {
      for (var o, a = t[i], s = e, l = i; s < l; ) r(a, t[(o = (s + l) >>> 1)]) < 0 ? (l = o) : (s = o + 1)
      var u = i - s
      switch (u) {
        case 3:
          t[s + 3] = t[s + 2]
        case 2:
          t[s + 2] = t[s + 1]
        case 1:
          t[s + 1] = t[s]
          break
        default:
          for (; u > 0; ) (t[s + u] = t[s + u - 1]), u--
      }
      t[s] = a
    }
  }
  function sn(t, e, n, i, r, o) {
    var a = 0,
      s = 0,
      l = 1
    if (o(t, e[n + r]) > 0) {
      for (s = i - r; l < s && o(t, e[n + r + l]) > 0; ) (a = l), (l = 1 + (l << 1)) <= 0 && (l = s)
      l > s && (l = s), (a += r), (l += r)
    } else {
      for (s = r + 1; l < s && o(t, e[n + r - l]) <= 0; ) (a = l), (l = 1 + (l << 1)) <= 0 && (l = s)
      l > s && (l = s)
      var u = a
      ;(a = r - l), (l = r - u)
    }
    for (a++; a < l; ) {
      var c = a + ((l - a) >>> 1)
      o(t, e[n + c]) > 0 ? (a = c + 1) : (l = c)
    }
    return l
  }
  function ln(t, e, n, i, r, o) {
    var a = 0,
      s = 0,
      l = 1
    if (o(t, e[n + r]) < 0) {
      for (s = r + 1; l < s && o(t, e[n + r - l]) < 0; ) (a = l), (l = 1 + (l << 1)) <= 0 && (l = s)
      l > s && (l = s)
      var u = a
      ;(a = r - l), (l = r - u)
    } else {
      for (s = i - r; l < s && o(t, e[n + r + l]) >= 0; ) (a = l), (l = 1 + (l << 1)) <= 0 && (l = s)
      l > s && (l = s), (a += r), (l += r)
    }
    for (a++; a < l; ) {
      var c = a + ((l - a) >>> 1)
      o(t, e[n + c]) < 0 ? (l = c) : (a = c + 1)
    }
    return l
  }
  function un(t, e) {
    var n,
      i,
      r = 7,
      o = 0,
      a = []
    function s(s) {
      var l = n[s],
        u = i[s],
        c = n[s + 1],
        h = i[s + 1]
      ;(i[s] = u + h), s === o - 3 && ((n[s + 1] = n[s + 2]), (i[s + 1] = i[s + 2])), o--
      var d = ln(t[c], t, l, u, 0, e)
      ;(l += d),
        0 !== (u -= d) &&
          0 !== (h = sn(t[l + u - 1], t, c, h, h - 1, e)) &&
          (u <= h
            ? (function (n, i, o, s) {
                var l = 0
                for (l = 0; l < i; l++) a[l] = t[n + l]
                var u = 0,
                  c = o,
                  h = n
                if (((t[h++] = t[c++]), 0 == --s)) {
                  for (l = 0; l < i; l++) t[h + l] = a[u + l]
                  return
                }
                if (1 === i) {
                  for (l = 0; l < s; l++) t[h + l] = t[c + l]
                  return void (t[h + s] = a[u])
                }
                var d,
                  p,
                  f,
                  g = r
                for (;;) {
                  ;(d = 0), (p = 0), (f = !1)
                  do {
                    if (e(t[c], a[u]) < 0) {
                      if (((t[h++] = t[c++]), p++, (d = 0), 0 == --s)) {
                        f = !0
                        break
                      }
                    } else if (((t[h++] = a[u++]), d++, (p = 0), 1 == --i)) {
                      f = !0
                      break
                    }
                  } while ((d | p) < g)
                  if (f) break
                  do {
                    if (0 !== (d = ln(t[c], a, u, i, 0, e))) {
                      for (l = 0; l < d; l++) t[h + l] = a[u + l]
                      if (((h += d), (u += d), (i -= d) <= 1)) {
                        f = !0
                        break
                      }
                    }
                    if (((t[h++] = t[c++]), 0 == --s)) {
                      f = !0
                      break
                    }
                    if (0 !== (p = sn(a[u], t, c, s, 0, e))) {
                      for (l = 0; l < p; l++) t[h + l] = t[c + l]
                      if (((h += p), (c += p), 0 === (s -= p))) {
                        f = !0
                        break
                      }
                    }
                    if (((t[h++] = a[u++]), 1 == --i)) {
                      f = !0
                      break
                    }
                    g--
                  } while (d >= 7 || p >= 7)
                  if (f) break
                  g < 0 && (g = 0), (g += 2)
                }
                if (((r = g) < 1 && (r = 1), 1 === i)) {
                  for (l = 0; l < s; l++) t[h + l] = t[c + l]
                  t[h + s] = a[u]
                } else {
                  if (0 === i) throw new Error()
                  for (l = 0; l < i; l++) t[h + l] = a[u + l]
                }
              })(l, u, c, h)
            : (function (n, i, o, s) {
                var l = 0
                for (l = 0; l < s; l++) a[l] = t[o + l]
                var u = n + i - 1,
                  c = s - 1,
                  h = o + s - 1,
                  d = 0,
                  p = 0
                if (((t[h--] = t[u--]), 0 == --i)) {
                  for (d = h - (s - 1), l = 0; l < s; l++) t[d + l] = a[l]
                  return
                }
                if (1 === s) {
                  for (p = (h -= i) + 1, d = (u -= i) + 1, l = i - 1; l >= 0; l--) t[p + l] = t[d + l]
                  return void (t[h] = a[c])
                }
                var f = r
                for (;;) {
                  var g = 0,
                    y = 0,
                    v = !1
                  do {
                    if (e(a[c], t[u]) < 0) {
                      if (((t[h--] = t[u--]), g++, (y = 0), 0 == --i)) {
                        v = !0
                        break
                      }
                    } else if (((t[h--] = a[c--]), y++, (g = 0), 1 == --s)) {
                      v = !0
                      break
                    }
                  } while ((g | y) < f)
                  if (v) break
                  do {
                    if (0 !== (g = i - ln(a[c], t, n, i, i - 1, e))) {
                      for (i -= g, p = (h -= g) + 1, d = (u -= g) + 1, l = g - 1; l >= 0; l--) t[p + l] = t[d + l]
                      if (0 === i) {
                        v = !0
                        break
                      }
                    }
                    if (((t[h--] = a[c--]), 1 == --s)) {
                      v = !0
                      break
                    }
                    if (0 !== (y = s - sn(t[u], a, 0, s, s - 1, e))) {
                      for (s -= y, p = (h -= y) + 1, d = (c -= y) + 1, l = 0; l < y; l++) t[p + l] = a[d + l]
                      if (s <= 1) {
                        v = !0
                        break
                      }
                    }
                    if (((t[h--] = t[u--]), 0 == --i)) {
                      v = !0
                      break
                    }
                    f--
                  } while (g >= 7 || y >= 7)
                  if (v) break
                  f < 0 && (f = 0), (f += 2)
                }
                ;(r = f) < 1 && (r = 1)
                if (1 === s) {
                  for (p = (h -= i) + 1, d = (u -= i) + 1, l = i - 1; l >= 0; l--) t[p + l] = t[d + l]
                  t[h] = a[c]
                } else {
                  if (0 === s) throw new Error()
                  for (d = h - (s - 1), l = 0; l < s; l++) t[d + l] = a[l]
                }
              })(l, u, c, h))
    }
    return (
      (n = []),
      (i = []),
      {
        mergeRuns: function () {
          for (; o > 1; ) {
            var t = o - 2
            if ((t >= 1 && i[t - 1] <= i[t] + i[t + 1]) || (t >= 2 && i[t - 2] <= i[t] + i[t - 1])) i[t - 1] < i[t + 1] && t--
            else if (i[t] > i[t + 1]) break
            s(t)
          }
        },
        forceMergeRuns: function () {
          for (; o > 1; ) {
            var t = o - 2
            t > 0 && i[t - 1] < i[t + 1] && t--, s(t)
          }
        },
        pushRun: function (t, e) {
          ;(n[o] = t), (i[o] = e), (o += 1)
        }
      }
    )
  }
  function cn(t, e, n, i) {
    n || (n = 0), i || (i = t.length)
    var r = i - n
    if (!(r < 2)) {
      var o = 0
      if (r < 32) an(t, n, i, n + (o = on(t, n, i, e)), e)
      else {
        var a = un(t, e),
          s = (function (t) {
            for (var e = 0; t >= 32; ) (e |= 1 & t), (t >>= 1)
            return t + e
          })(r)
        do {
          if ((o = on(t, n, i, e)) < s) {
            var l = r
            l > s && (l = s), an(t, n, n + l, n + o, e), (o = l)
          }
          a.pushRun(n, o), a.mergeRuns(), (r -= o), (n += o)
        } while (0 !== r)
        a.forceMergeRuns()
      }
    }
  }
  var hn = !1
  function dn() {
    hn || ((hn = !0), console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors'))
  }
  function pn(t, e) {
    return t.zlevel === e.zlevel ? (t.z === e.z ? t.z2 - e.z2 : t.z - e.z) : t.zlevel - e.zlevel
  }
  var fn = (function () {
      function t() {
        ;(this._roots = []), (this._displayList = []), (this._displayListLen = 0), (this.displayableSortFunc = pn)
      }
      return (
        (t.prototype.traverse = function (t, e) {
          for (var n = 0; n < this._roots.length; n++) this._roots[n].traverse(t, e)
        }),
        (t.prototype.getDisplayList = function (t, e) {
          e = e || !1
          var n = this._displayList
          return (!t && n.length) || this.updateDisplayList(e), n
        }),
        (t.prototype.updateDisplayList = function (t) {
          this._displayListLen = 0
          for (var e = this._roots, n = this._displayList, i = 0, r = e.length; i < r; i++) this._updateAndAddDisplayable(e[i], null, t)
          ;(n.length = this._displayListLen), cn(n, pn)
        }),
        (t.prototype._updateAndAddDisplayable = function (t, e, n) {
          if (!t.ignore || n) {
            t.beforeUpdate(), t.update(), t.afterUpdate()
            var i = t.getClipPath(),
              r = e && e.length,
              o = 0,
              a = t.__clipPaths
            if (!t.ignoreClip && (r || i)) {
              if ((a || (a = t.__clipPaths = []), r)) for (var s = 0; s < e.length; s++) a[o++] = e[s]
              for (var l = i, u = t; l; ) (l.parent = u), l.updateTransform(), (a[o++] = l), (u = l), (l = l.getClipPath())
            }
            if ((a && (a.length = o), t.childrenRef)) {
              for (var c = t.childrenRef(), h = 0; h < c.length; h++) {
                var d = c[h]
                t.__dirty && (d.__dirty |= 1), this._updateAndAddDisplayable(d, a, n)
              }
              t.__dirty = 0
            } else {
              var p = t
              isNaN(p.z) && (dn(), (p.z = 0)), isNaN(p.z2) && (dn(), (p.z2 = 0)), isNaN(p.zlevel) && (dn(), (p.zlevel = 0)), (this._displayList[this._displayListLen++] = p)
            }
            var f = t.getDecalElement && t.getDecalElement()
            f && this._updateAndAddDisplayable(f, a, n)
            var g = t.getTextGuideLine()
            g && this._updateAndAddDisplayable(g, a, n)
            var y = t.getTextContent()
            y && this._updateAndAddDisplayable(y, a, n)
          }
        }),
        (t.prototype.addRoot = function (t) {
          ;(t.__zr && t.__zr.storage === this) || this._roots.push(t)
        }),
        (t.prototype.delRoot = function (t) {
          if (t instanceof Array) for (var e = 0, n = t.length; e < n; e++) this.delRoot(t[e])
          else {
            var i = P(this._roots, t)
            i >= 0 && this._roots.splice(i, 1)
          }
        }),
        (t.prototype.delAllRoots = function () {
          ;(this._roots = []), (this._displayList = []), (this._displayListLen = 0)
        }),
        (t.prototype.getRoots = function () {
          return this._roots
        }),
        (t.prototype.dispose = function () {
          ;(this._displayList = null), (this._roots = null)
        }),
        t
      )
    })(),
    gn =
      (r.hasGlobalWindow &&
        ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window)) ||
          (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window)) ||
          window.mozRequestAnimationFrame ||
          window.webkitRequestAnimationFrame)) ||
      function (t) {
        return setTimeout(t, 16)
      },
    yn = {
      linear: function (t) {
        return t
      },
      quadraticIn: function (t) {
        return t * t
      },
      quadraticOut: function (t) {
        return t * (2 - t)
      },
      quadraticInOut: function (t) {
        return (t *= 2) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1)
      },
      cubicIn: function (t) {
        return t * t * t
      },
      cubicOut: function (t) {
        return --t * t * t + 1
      },
      cubicInOut: function (t) {
        return (t *= 2) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2)
      },
      quarticIn: function (t) {
        return t * t * t * t
      },
      quarticOut: function (t) {
        return 1 - --t * t * t * t
      },
      quarticInOut: function (t) {
        return (t *= 2) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2)
      },
      quinticIn: function (t) {
        return t * t * t * t * t
      },
      quinticOut: function (t) {
        return --t * t * t * t * t + 1
      },
      quinticInOut: function (t) {
        return (t *= 2) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2)
      },
      sinusoidalIn: function (t) {
        return 1 - Math.cos((t * Math.PI) / 2)
      },
      sinusoidalOut: function (t) {
        return Math.sin((t * Math.PI) / 2)
      },
      sinusoidalInOut: function (t) {
        return 0.5 * (1 - Math.cos(Math.PI * t))
      },
      exponentialIn: function (t) {
        return 0 === t ? 0 : Math.pow(1024, t - 1)
      },
      exponentialOut: function (t) {
        return 1 === t ? 1 : 1 - Math.pow(2, -10 * t)
      },
      exponentialInOut: function (t) {
        return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? 0.5 * Math.pow(1024, t - 1) : 0.5 * (2 - Math.pow(2, -10 * (t - 1)))
      },
      circularIn: function (t) {
        return 1 - Math.sqrt(1 - t * t)
      },
      circularOut: function (t) {
        return Math.sqrt(1 - --t * t)
      },
      circularInOut: function (t) {
        return (t *= 2) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1)
      },
      elasticIn: function (t) {
        var e,
          n = 0.1
        return 0 === t
          ? 0
          : 1 === t
            ? 1
            : (!n || n < 1 ? ((n = 1), (e = 0.1)) : (e = (0.4 * Math.asin(1 / n)) / (2 * Math.PI)), -n * Math.pow(2, 10 * (t -= 1)) * Math.sin(((t - e) * (2 * Math.PI)) / 0.4))
      },
      elasticOut: function (t) {
        var e,
          n = 0.1
        return 0 === t
          ? 0
          : 1 === t
            ? 1
            : (!n || n < 1 ? ((n = 1), (e = 0.1)) : (e = (0.4 * Math.asin(1 / n)) / (2 * Math.PI)), n * Math.pow(2, -10 * t) * Math.sin(((t - e) * (2 * Math.PI)) / 0.4) + 1)
      },
      elasticInOut: function (t) {
        var e,
          n = 0.1,
          i = 0.4
        return 0 === t
          ? 0
          : 1 === t
            ? 1
            : (!n || n < 1 ? ((n = 1), (e = 0.1)) : (e = (i * Math.asin(1 / n)) / (2 * Math.PI)),
              (t *= 2) < 1
                ? n * Math.pow(2, 10 * (t -= 1)) * Math.sin(((t - e) * (2 * Math.PI)) / i) * -0.5
                : n * Math.pow(2, -10 * (t -= 1)) * Math.sin(((t - e) * (2 * Math.PI)) / i) * 0.5 + 1)
      },
      backIn: function (t) {
        var e = 1.70158
        return t * t * ((e + 1) * t - e)
      },
      backOut: function (t) {
        var e = 1.70158
        return --t * t * ((e + 1) * t + e) + 1
      },
      backInOut: function (t) {
        var e = 2.5949095
        return (t *= 2) < 1 ? t * t * ((e + 1) * t - e) * 0.5 : 0.5 * ((t -= 2) * t * ((e + 1) * t + e) + 2)
      },
      bounceIn: function (t) {
        return 1 - yn.bounceOut(1 - t)
      },
      bounceOut: function (t) {
        return t < 1 / 2.75
          ? 7.5625 * t * t
          : t < 2 / 2.75
            ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75
            : t < 2.5 / 2.75
              ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375
              : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375
      },
      bounceInOut: function (t) {
        return t < 0.5 ? 0.5 * yn.bounceIn(2 * t) : 0.5 * yn.bounceOut(2 * t - 1) + 0.5
      }
    },
    vn = Math.pow,
    mn = Math.sqrt,
    xn = 1e-8,
    _n = 1e-4,
    bn = mn(3),
    wn = 1 / 3,
    Sn = It(),
    Mn = It(),
    In = It()
  function Tn(t) {
    return t > -1e-8 && t < xn
  }
  function Cn(t) {
    return t > xn || t < -1e-8
  }
  function Dn(t, e, n, i, r) {
    var o = 1 - r
    return o * o * (o * t + 3 * r * e) + r * r * (r * i + 3 * o * n)
  }
  function An(t, e, n, i, r) {
    var o = 1 - r
    return 3 * (((e - t) * o + 2 * (n - e) * r) * o + (i - n) * r * r)
  }
  function kn(t, e, n, i, r, o) {
    var a = i + 3 * (e - n) - t,
      s = 3 * (n - 2 * e + t),
      l = 3 * (e - t),
      u = t - r,
      c = s * s - 3 * a * l,
      h = s * l - 9 * a * u,
      d = l * l - 3 * s * u,
      p = 0
    if (Tn(c) && Tn(h)) {
      if (Tn(s)) o[0] = 0
      else (M = -l / s) >= 0 && M <= 1 && (o[p++] = M)
    } else {
      var f = h * h - 4 * c * d
      if (Tn(f)) {
        var g = h / c,
          y = -g / 2
        ;(M = -s / a + g) >= 0 && M <= 1 && (o[p++] = M), y >= 0 && y <= 1 && (o[p++] = y)
      } else if (f > 0) {
        var v = mn(f),
          m = c * s + 1.5 * a * (-h + v),
          x = c * s + 1.5 * a * (-h - v)
        ;(M = (-s - ((m = m < 0 ? -vn(-m, wn) : vn(m, wn)) + (x = x < 0 ? -vn(-x, wn) : vn(x, wn)))) / (3 * a)) >= 0 && M <= 1 && (o[p++] = M)
      } else {
        var _ = (2 * c * s - 3 * a * h) / (2 * mn(c * c * c)),
          b = Math.acos(_) / 3,
          w = mn(c),
          S = Math.cos(b),
          M = (-s - 2 * w * S) / (3 * a),
          I = ((y = (-s + w * (S + bn * Math.sin(b))) / (3 * a)), (-s + w * (S - bn * Math.sin(b))) / (3 * a))
        M >= 0 && M <= 1 && (o[p++] = M), y >= 0 && y <= 1 && (o[p++] = y), I >= 0 && I <= 1 && (o[p++] = I)
      }
    }
    return p
  }
  function Ln(t, e, n, i, r) {
    var o = 6 * n - 12 * e + 6 * t,
      a = 9 * e + 3 * i - 3 * t - 9 * n,
      s = 3 * e - 3 * t,
      l = 0
    if (Tn(a)) {
      if (Cn(o)) (c = -s / o) >= 0 && c <= 1 && (r[l++] = c)
    } else {
      var u = o * o - 4 * a * s
      if (Tn(u)) r[0] = -o / (2 * a)
      else if (u > 0) {
        var c,
          h = mn(u),
          d = (-o - h) / (2 * a)
        ;(c = (-o + h) / (2 * a)) >= 0 && c <= 1 && (r[l++] = c), d >= 0 && d <= 1 && (r[l++] = d)
      }
    }
    return l
  }
  function Pn(t, e, n, i, r, o) {
    var a = (e - t) * r + t,
      s = (n - e) * r + e,
      l = (i - n) * r + n,
      u = (s - a) * r + a,
      c = (l - s) * r + s,
      h = (c - u) * r + u
    ;(o[0] = t), (o[1] = a), (o[2] = u), (o[3] = h), (o[4] = h), (o[5] = c), (o[6] = l), (o[7] = i)
  }
  function On(t, e, n, i, r, o, a, s, l, u, c) {
    var h,
      d,
      p,
      f,
      g,
      y = 0.005,
      v = 1 / 0
    ;(Sn[0] = l), (Sn[1] = u)
    for (var m = 0; m < 1; m += 0.05) (Mn[0] = Dn(t, n, r, a, m)), (Mn[1] = Dn(e, i, o, s, m)), (f = Ft(Sn, Mn)) < v && ((h = m), (v = f))
    v = 1 / 0
    for (var x = 0; x < 32 && !(y < _n); x++)
      (d = h - y),
        (p = h + y),
        (Mn[0] = Dn(t, n, r, a, d)),
        (Mn[1] = Dn(e, i, o, s, d)),
        (f = Ft(Mn, Sn)),
        d >= 0 && f < v ? ((h = d), (v = f)) : ((In[0] = Dn(t, n, r, a, p)), (In[1] = Dn(e, i, o, s, p)), (g = Ft(In, Sn)), p <= 1 && g < v ? ((h = p), (v = g)) : (y *= 0.5))
    return c && ((c[0] = Dn(t, n, r, a, h)), (c[1] = Dn(e, i, o, s, h))), mn(v)
  }
  function Rn(t, e, n, i, r, o, a, s, l) {
    for (var u = t, c = e, h = 0, d = 1 / l, p = 1; p <= l; p++) {
      var f = p * d,
        g = Dn(t, n, r, a, f),
        y = Dn(e, i, o, s, f),
        v = g - u,
        m = y - c
      ;(h += Math.sqrt(v * v + m * m)), (u = g), (c = y)
    }
    return h
  }
  function Nn(t, e, n, i) {
    var r = 1 - i
    return r * (r * t + 2 * i * e) + i * i * n
  }
  function zn(t, e, n, i) {
    return 2 * ((1 - i) * (e - t) + i * (n - e))
  }
  function En(t, e, n) {
    var i = t + n - 2 * e
    return 0 === i ? 0.5 : (t - e) / i
  }
  function Bn(t, e, n, i, r) {
    var o = (e - t) * i + t,
      a = (n - e) * i + e,
      s = (a - o) * i + o
    ;(r[0] = t), (r[1] = o), (r[2] = s), (r[3] = s), (r[4] = a), (r[5] = n)
  }
  function Vn(t, e, n, i, r, o, a, s, l) {
    var u,
      c = 0.005,
      h = 1 / 0
    ;(Sn[0] = a), (Sn[1] = s)
    for (var d = 0; d < 1; d += 0.05) {
      ;(Mn[0] = Nn(t, n, r, d)), (Mn[1] = Nn(e, i, o, d)), (y = Ft(Sn, Mn)) < h && ((u = d), (h = y))
    }
    h = 1 / 0
    for (var p = 0; p < 32 && !(c < _n); p++) {
      var f = u - c,
        g = u + c
      ;(Mn[0] = Nn(t, n, r, f)), (Mn[1] = Nn(e, i, o, f))
      var y = Ft(Mn, Sn)
      if (f >= 0 && y < h) (u = f), (h = y)
      else {
        ;(In[0] = Nn(t, n, r, g)), (In[1] = Nn(e, i, o, g))
        var v = Ft(In, Sn)
        g <= 1 && v < h ? ((u = g), (h = v)) : (c *= 0.5)
      }
    }
    return l && ((l[0] = Nn(t, n, r, u)), (l[1] = Nn(e, i, o, u))), mn(h)
  }
  function Gn(t, e, n, i, r, o, a) {
    for (var s = t, l = e, u = 0, c = 1 / a, h = 1; h <= a; h++) {
      var d = h * c,
        p = Nn(t, n, r, d),
        f = Nn(e, i, o, d),
        g = p - s,
        y = f - l
      ;(u += Math.sqrt(g * g + y * y)), (s = p), (l = f)
    }
    return u
  }
  var Fn = /cubic-bezier\(([0-9,\.e ]+)\)/
  function Wn(t) {
    var e = t && Fn.exec(t)
    if (e) {
      var n = e[1].split(','),
        i = +ut(n[0]),
        r = +ut(n[1]),
        o = +ut(n[2]),
        a = +ut(n[3])
      if (isNaN(i + r + o + a)) return
      var s = []
      return function (t) {
        return t <= 0 ? 0 : t >= 1 ? 1 : kn(0, i, o, 1, t, s) && Dn(0, r, a, 1, s[0])
      }
    }
  }
  var Hn = (function () {
      function t(t) {
        ;(this._inited = !1),
          (this._startTime = 0),
          (this._pausedTime = 0),
          (this._paused = !1),
          (this._life = t.life || 1e3),
          (this._delay = t.delay || 0),
          (this.loop = t.loop || !1),
          (this.onframe = t.onframe || bt),
          (this.ondestroy = t.ondestroy || bt),
          (this.onrestart = t.onrestart || bt),
          t.easing && this.setEasing(t.easing)
      }
      return (
        (t.prototype.step = function (t, e) {
          if ((this._inited || ((this._startTime = t + this._delay), (this._inited = !0)), !this._paused)) {
            var n = this._life,
              i = t - this._startTime - this._pausedTime,
              r = i / n
            r < 0 && (r = 0), (r = Math.min(r, 1))
            var o = this.easingFunc,
              a = o ? o(r) : r
            if ((this.onframe(a), 1 === r)) {
              if (!this.loop) return !0
              var s = i % n
              ;(this._startTime = t - s), (this._pausedTime = 0), this.onrestart()
            }
            return !1
          }
          this._pausedTime += e
        }),
        (t.prototype.pause = function () {
          this._paused = !0
        }),
        (t.prototype.resume = function () {
          this._paused = !1
        }),
        (t.prototype.setEasing = function (t) {
          ;(this.easing = t), (this.easingFunc = Y(t) ? t : yn[t] || Wn(t))
        }),
        t
      )
    })(),
    Un = function (t) {
      this.value = t
    },
    Yn = (function () {
      function t() {
        this._len = 0
      }
      return (
        (t.prototype.insert = function (t) {
          var e = new Un(t)
          return this.insertEntry(e), e
        }),
        (t.prototype.insertEntry = function (t) {
          this.head ? ((this.tail.next = t), (t.prev = this.tail), (t.next = null), (this.tail = t)) : (this.head = this.tail = t), this._len++
        }),
        (t.prototype.remove = function (t) {
          var e = t.prev,
            n = t.next
          e ? (e.next = n) : (this.head = n), n ? (n.prev = e) : (this.tail = e), (t.next = t.prev = null), this._len--
        }),
        (t.prototype.len = function () {
          return this._len
        }),
        (t.prototype.clear = function () {
          ;(this.head = this.tail = null), (this._len = 0)
        }),
        t
      )
    })(),
    Xn = (function () {
      function t(t) {
        ;(this._list = new Yn()), (this._maxSize = 10), (this._map = {}), (this._maxSize = t)
      }
      return (
        (t.prototype.put = function (t, e) {
          var n = this._list,
            i = this._map,
            r = null
          if (null == i[t]) {
            var o = n.len(),
              a = this._lastRemovedEntry
            if (o >= this._maxSize && o > 0) {
              var s = n.head
              n.remove(s), delete i[s.key], (r = s.value), (this._lastRemovedEntry = s)
            }
            a ? (a.value = e) : (a = new Un(e)), (a.key = t), n.insertEntry(a), (i[t] = a)
          }
          return r
        }),
        (t.prototype.get = function (t) {
          var e = this._map[t],
            n = this._list
          if (null != e) return e !== n.tail && (n.remove(e), n.insertEntry(e)), e.value
        }),
        (t.prototype.clear = function () {
          this._list.clear(), (this._map = {})
        }),
        (t.prototype.len = function () {
          return this._list.len()
        }),
        t
      )
    })(),
    Zn = {
      transparent: [0, 0, 0, 0],
      aliceblue: [240, 248, 255, 1],
      antiquewhite: [250, 235, 215, 1],
      aqua: [0, 255, 255, 1],
      aquamarine: [127, 255, 212, 1],
      azure: [240, 255, 255, 1],
      beige: [245, 245, 220, 1],
      bisque: [255, 228, 196, 1],
      black: [0, 0, 0, 1],
      blanchedalmond: [255, 235, 205, 1],
      blue: [0, 0, 255, 1],
      blueviolet: [138, 43, 226, 1],
      brown: [165, 42, 42, 1],
      burlywood: [222, 184, 135, 1],
      cadetblue: [95, 158, 160, 1],
      chartreuse: [127, 255, 0, 1],
      chocolate: [210, 105, 30, 1],
      coral: [255, 127, 80, 1],
      cornflowerblue: [100, 149, 237, 1],
      cornsilk: [255, 248, 220, 1],
      crimson: [220, 20, 60, 1],
      cyan: [0, 255, 255, 1],
      darkblue: [0, 0, 139, 1],
      darkcyan: [0, 139, 139, 1],
      darkgoldenrod: [184, 134, 11, 1],
      darkgray: [169, 169, 169, 1],
      darkgreen: [0, 100, 0, 1],
      darkgrey: [169, 169, 169, 1],
      darkkhaki: [189, 183, 107, 1],
      darkmagenta: [139, 0, 139, 1],
      darkolivegreen: [85, 107, 47, 1],
      darkorange: [255, 140, 0, 1],
      darkorchid: [153, 50, 204, 1],
      darkred: [139, 0, 0, 1],
      darksalmon: [233, 150, 122, 1],
      darkseagreen: [143, 188, 143, 1],
      darkslateblue: [72, 61, 139, 1],
      darkslategray: [47, 79, 79, 1],
      darkslategrey: [47, 79, 79, 1],
      darkturquoise: [0, 206, 209, 1],
      darkviolet: [148, 0, 211, 1],
      deeppink: [255, 20, 147, 1],
      deepskyblue: [0, 191, 255, 1],
      dimgray: [105, 105, 105, 1],
      dimgrey: [105, 105, 105, 1],
      dodgerblue: [30, 144, 255, 1],
      firebrick: [178, 34, 34, 1],
      floralwhite: [255, 250, 240, 1],
      forestgreen: [34, 139, 34, 1],
      fuchsia: [255, 0, 255, 1],
      gainsboro: [220, 220, 220, 1],
      ghostwhite: [248, 248, 255, 1],
      gold: [255, 215, 0, 1],
      goldenrod: [218, 165, 32, 1],
      gray: [128, 128, 128, 1],
      green: [0, 128, 0, 1],
      greenyellow: [173, 255, 47, 1],
      grey: [128, 128, 128, 1],
      honeydew: [240, 255, 240, 1],
      hotpink: [255, 105, 180, 1],
      indianred: [205, 92, 92, 1],
      indigo: [75, 0, 130, 1],
      ivory: [255, 255, 240, 1],
      khaki: [240, 230, 140, 1],
      lavender: [230, 230, 250, 1],
      lavenderblush: [255, 240, 245, 1],
      lawngreen: [124, 252, 0, 1],
      lemonchiffon: [255, 250, 205, 1],
      lightblue: [173, 216, 230, 1],
      lightcoral: [240, 128, 128, 1],
      lightcyan: [224, 255, 255, 1],
      lightgoldenrodyellow: [250, 250, 210, 1],
      lightgray: [211, 211, 211, 1],
      lightgreen: [144, 238, 144, 1],
      lightgrey: [211, 211, 211, 1],
      lightpink: [255, 182, 193, 1],
      lightsalmon: [255, 160, 122, 1],
      lightseagreen: [32, 178, 170, 1],
      lightskyblue: [135, 206, 250, 1],
      lightslategray: [119, 136, 153, 1],
      lightslategrey: [119, 136, 153, 1],
      lightsteelblue: [176, 196, 222, 1],
      lightyellow: [255, 255, 224, 1],
      lime: [0, 255, 0, 1],
      limegreen: [50, 205, 50, 1],
      linen: [250, 240, 230, 1],
      magenta: [255, 0, 255, 1],
      maroon: [128, 0, 0, 1],
      mediumaquamarine: [102, 205, 170, 1],
      mediumblue: [0, 0, 205, 1],
      mediumorchid: [186, 85, 211, 1],
      mediumpurple: [147, 112, 219, 1],
      mediumseagreen: [60, 179, 113, 1],
      mediumslateblue: [123, 104, 238, 1],
      mediumspringgreen: [0, 250, 154, 1],
      mediumturquoise: [72, 209, 204, 1],
      mediumvioletred: [199, 21, 133, 1],
      midnightblue: [25, 25, 112, 1],
      mintcream: [245, 255, 250, 1],
      mistyrose: [255, 228, 225, 1],
      moccasin: [255, 228, 181, 1],
      navajowhite: [255, 222, 173, 1],
      navy: [0, 0, 128, 1],
      oldlace: [253, 245, 230, 1],
      olive: [128, 128, 0, 1],
      olivedrab: [107, 142, 35, 1],
      orange: [255, 165, 0, 1],
      orangered: [255, 69, 0, 1],
      orchid: [218, 112, 214, 1],
      palegoldenrod: [238, 232, 170, 1],
      palegreen: [152, 251, 152, 1],
      paleturquoise: [175, 238, 238, 1],
      palevioletred: [219, 112, 147, 1],
      papayawhip: [255, 239, 213, 1],
      peachpuff: [255, 218, 185, 1],
      peru: [205, 133, 63, 1],
      pink: [255, 192, 203, 1],
      plum: [221, 160, 221, 1],
      powderblue: [176, 224, 230, 1],
      purple: [128, 0, 128, 1],
      red: [255, 0, 0, 1],
      rosybrown: [188, 143, 143, 1],
      royalblue: [65, 105, 225, 1],
      saddlebrown: [139, 69, 19, 1],
      salmon: [250, 128, 114, 1],
      sandybrown: [244, 164, 96, 1],
      seagreen: [46, 139, 87, 1],
      seashell: [255, 245, 238, 1],
      sienna: [160, 82, 45, 1],
      silver: [192, 192, 192, 1],
      skyblue: [135, 206, 235, 1],
      slateblue: [106, 90, 205, 1],
      slategray: [112, 128, 144, 1],
      slategrey: [112, 128, 144, 1],
      snow: [255, 250, 250, 1],
      springgreen: [0, 255, 127, 1],
      steelblue: [70, 130, 180, 1],
      tan: [210, 180, 140, 1],
      teal: [0, 128, 128, 1],
      thistle: [216, 191, 216, 1],
      tomato: [255, 99, 71, 1],
      turquoise: [64, 224, 208, 1],
      violet: [238, 130, 238, 1],
      wheat: [245, 222, 179, 1],
      white: [255, 255, 255, 1],
      whitesmoke: [245, 245, 245, 1],
      yellow: [255, 255, 0, 1],
      yellowgreen: [154, 205, 50, 1]
    }
  function jn(t) {
    return (t = Math.round(t)) < 0 ? 0 : t > 255 ? 255 : t
  }
  function qn(t) {
    return t < 0 ? 0 : t > 1 ? 1 : t
  }
  function Kn(t) {
    var e = t
    return e.length && '%' === e.charAt(e.length - 1) ? jn((parseFloat(e) / 100) * 255) : jn(parseInt(e, 10))
  }
  function $n(t) {
    var e = t
    return e.length && '%' === e.charAt(e.length - 1) ? qn(parseFloat(e) / 100) : qn(parseFloat(e))
  }
  function Jn(t, e, n) {
    return n < 0 ? (n += 1) : n > 1 && (n -= 1), 6 * n < 1 ? t + (e - t) * n * 6 : 2 * n < 1 ? e : 3 * n < 2 ? t + (e - t) * (2 / 3 - n) * 6 : t
  }
  function Qn(t, e, n) {
    return t + (e - t) * n
  }
  function ti(t, e, n, i, r) {
    return (t[0] = e), (t[1] = n), (t[2] = i), (t[3] = r), t
  }
  function ei(t, e) {
    return (t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), (t[3] = e[3]), t
  }
  var ni = new Xn(20),
    ii = null
  function ri(t, e) {
    ii && ei(ii, e), (ii = ni.put(t, ii || e.slice()))
  }
  function oi(t, e) {
    if (t) {
      e = e || []
      var n = ni.get(t)
      if (n) return ei(e, n)
      var i = (t += '').replace(/ /g, '').toLowerCase()
      if (i in Zn) return ei(e, Zn[i]), ri(t, e), e
      var r,
        o = i.length
      if ('#' === i.charAt(0))
        return 4 === o || 5 === o
          ? (r = parseInt(i.slice(1, 4), 16)) >= 0 && r <= 4095
            ? (ti(e, ((3840 & r) >> 4) | ((3840 & r) >> 8), (240 & r) | ((240 & r) >> 4), (15 & r) | ((15 & r) << 4), 5 === o ? parseInt(i.slice(4), 16) / 15 : 1), ri(t, e), e)
            : void ti(e, 0, 0, 0, 1)
          : 7 === o || 9 === o
            ? (r = parseInt(i.slice(1, 7), 16)) >= 0 && r <= 16777215
              ? (ti(e, (16711680 & r) >> 16, (65280 & r) >> 8, 255 & r, 9 === o ? parseInt(i.slice(7), 16) / 255 : 1), ri(t, e), e)
              : void ti(e, 0, 0, 0, 1)
            : void 0
      var a = i.indexOf('('),
        s = i.indexOf(')')
      if (-1 !== a && s + 1 === o) {
        var l = i.substr(0, a),
          u = i.substr(a + 1, s - (a + 1)).split(','),
          c = 1
        switch (l) {
          case 'rgba':
            if (4 !== u.length) return 3 === u.length ? ti(e, +u[0], +u[1], +u[2], 1) : ti(e, 0, 0, 0, 1)
            c = $n(u.pop())
          case 'rgb':
            return u.length >= 3 ? (ti(e, Kn(u[0]), Kn(u[1]), Kn(u[2]), 3 === u.length ? c : $n(u[3])), ri(t, e), e) : void ti(e, 0, 0, 0, 1)
          case 'hsla':
            return 4 !== u.length ? void ti(e, 0, 0, 0, 1) : ((u[3] = $n(u[3])), ai(u, e), ri(t, e), e)
          case 'hsl':
            return 3 !== u.length ? void ti(e, 0, 0, 0, 1) : (ai(u, e), ri(t, e), e)
          default:
            return
        }
      }
      ti(e, 0, 0, 0, 1)
    }
  }
  function ai(t, e) {
    var n = (((parseFloat(t[0]) % 360) + 360) % 360) / 360,
      i = $n(t[1]),
      r = $n(t[2]),
      o = r <= 0.5 ? r * (i + 1) : r + i - r * i,
      a = 2 * r - o
    return ti((e = e || []), jn(255 * Jn(a, o, n + 1 / 3)), jn(255 * Jn(a, o, n)), jn(255 * Jn(a, o, n - 1 / 3)), 1), 4 === t.length && (e[3] = t[3]), e
  }
  function si(t, e) {
    var n = oi(t)
    if (n) {
      for (var i = 0; i < 3; i++) (n[i] = e < 0 ? (n[i] * (1 - e)) | 0 : ((255 - n[i]) * e + n[i]) | 0), n[i] > 255 ? (n[i] = 255) : n[i] < 0 && (n[i] = 0)
      return fi(n, 4 === n.length ? 'rgba' : 'rgb')
    }
  }
  function li(t, e, n) {
    if (e && e.length && t >= 0 && t <= 1) {
      n = n || []
      var i = t * (e.length - 1),
        r = Math.floor(i),
        o = Math.ceil(i),
        a = e[r],
        s = e[o],
        l = i - r
      return (n[0] = jn(Qn(a[0], s[0], l))), (n[1] = jn(Qn(a[1], s[1], l))), (n[2] = jn(Qn(a[2], s[2], l))), (n[3] = qn(Qn(a[3], s[3], l))), n
    }
  }
  var ui = li
  function ci(t, e, n) {
    if (e && e.length && t >= 0 && t <= 1) {
      var i = t * (e.length - 1),
        r = Math.floor(i),
        o = Math.ceil(i),
        a = oi(e[r]),
        s = oi(e[o]),
        l = i - r,
        u = fi([jn(Qn(a[0], s[0], l)), jn(Qn(a[1], s[1], l)), jn(Qn(a[2], s[2], l)), qn(Qn(a[3], s[3], l))], 'rgba')
      return n ? { color: u, leftIndex: r, rightIndex: o, value: i } : u
    }
  }
  var hi = ci
  function di(t, e, n, i) {
    var r = oi(t)
    if (t)
      return (
        (r = (function (t) {
          if (t) {
            var e,
              n,
              i = t[0] / 255,
              r = t[1] / 255,
              o = t[2] / 255,
              a = Math.min(i, r, o),
              s = Math.max(i, r, o),
              l = s - a,
              u = (s + a) / 2
            if (0 === l) (e = 0), (n = 0)
            else {
              n = u < 0.5 ? l / (s + a) : l / (2 - s - a)
              var c = ((s - i) / 6 + l / 2) / l,
                h = ((s - r) / 6 + l / 2) / l,
                d = ((s - o) / 6 + l / 2) / l
              i === s ? (e = d - h) : r === s ? (e = 1 / 3 + c - d) : o === s && (e = 2 / 3 + h - c), e < 0 && (e += 1), e > 1 && (e -= 1)
            }
            var p = [360 * e, n, u]
            return null != t[3] && p.push(t[3]), p
          }
        })(r)),
        null != e &&
          (r[0] = (function (t) {
            return (t = Math.round(t)) < 0 ? 0 : t > 360 ? 360 : t
          })(Y(e) ? e(r[0]) : e)),
        null != n && (r[1] = $n(Y(n) ? n(r[1]) : n)),
        null != i && (r[2] = $n(Y(i) ? i(r[2]) : i)),
        fi(ai(r), 'rgba')
      )
  }
  function pi(t, e) {
    var n = oi(t)
    if (n && null != e) return (n[3] = qn(e)), fi(n, 'rgba')
  }
  function fi(t, e) {
    if (t && t.length) {
      var n = t[0] + ',' + t[1] + ',' + t[2]
      return ('rgba' !== e && 'hsva' !== e && 'hsla' !== e) || (n += ',' + t[3]), e + '(' + n + ')'
    }
  }
  function gi(t, e) {
    var n = oi(t)
    return n ? ((0.299 * n[0] + 0.587 * n[1] + 0.114 * n[2]) * n[3]) / 255 + (1 - n[3]) * e : 0
  }
  var yi = new Xn(100)
  function vi(t) {
    if (X(t)) {
      var e = yi.get(t)
      return e || ((e = si(t, -0.1)), yi.put(t, e)), e
    }
    if (Q(t)) {
      var n = A({}, t)
      return (
        (n.colorStops = E(t.colorStops, function (t) {
          return { offset: t.offset, color: si(t.color, -0.1) }
        })),
        n
      )
    }
    return t
  }
  var mi = Object.freeze({
      __proto__: null,
      parseCssInt: Kn,
      parseCssFloat: $n,
      parse: oi,
      lift: si,
      toHex: function (t) {
        var e = oi(t)
        if (e) return ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1)
      },
      fastLerp: li,
      fastMapToColor: ui,
      lerp: ci,
      mapToColor: hi,
      modifyHSL: di,
      modifyAlpha: pi,
      stringify: fi,
      lum: gi,
      random: function () {
        return fi([Math.round(255 * Math.random()), Math.round(255 * Math.random()), Math.round(255 * Math.random())], 'rgb')
      },
      liftColor: vi
    }),
    xi = Math.round
  function _i(t) {
    var e
    if (t && 'transparent' !== t) {
      if ('string' == typeof t && t.indexOf('rgba') > -1) {
        var n = oi(t)
        n && ((t = 'rgb(' + n[0] + ',' + n[1] + ',' + n[2] + ')'), (e = n[3]))
      }
    } else t = 'none'
    return { color: t, opacity: null == e ? 1 : e }
  }
  var bi = 1e-4
  function wi(t) {
    return t < bi && t > -1e-4
  }
  function Si(t) {
    return xi(1e3 * t) / 1e3
  }
  function Mi(t) {
    return xi(1e4 * t) / 1e4
  }
  var Ii = { left: 'start', right: 'end', center: 'middle', middle: 'middle' }
  function Ti(t) {
    return t && !!t.image
  }
  function Ci(t) {
    return (
      Ti(t) ||
      (function (t) {
        return t && !!t.svgElement
      })(t)
    )
  }
  function Di(t) {
    return 'linear' === t.type
  }
  function Ai(t) {
    return 'radial' === t.type
  }
  function ki(t) {
    return t && ('linear' === t.type || 'radial' === t.type)
  }
  function Li(t) {
    return 'url(#' + t + ')'
  }
  function Pi(t) {
    var e = t.getGlobalScale(),
      n = Math.max(e[0], e[1])
    return Math.max(Math.ceil(Math.log(n) / Math.log(10)), 1)
  }
  function Oi(t) {
    var e = t.x || 0,
      n = t.y || 0,
      i = (t.rotation || 0) * wt,
      r = rt(t.scaleX, 1),
      o = rt(t.scaleY, 1),
      a = t.skewX || 0,
      s = t.skewY || 0,
      l = []
    return (
      (e || n) && l.push('translate(' + e + 'px,' + n + 'px)'),
      i && l.push('rotate(' + i + ')'),
      (1 === r && 1 === o) || l.push('scale(' + r + ',' + o + ')'),
      (a || s) && l.push('skew(' + xi(a * wt) + 'deg, ' + xi(s * wt) + 'deg)'),
      l.join(' ')
    )
  }
  var Ri =
      r.hasGlobalWindow && Y(window.btoa)
        ? function (t) {
            return window.btoa(unescape(encodeURIComponent(t)))
          }
        : 'undefined' != typeof Buffer
          ? function (t) {
              return Buffer.from(t).toString('base64')
            }
          : function (t) {
              return null
            },
    Ni = Array.prototype.slice
  function zi(t, e, n) {
    return (e - t) * n + t
  }
  function Ei(t, e, n, i) {
    for (var r = e.length, o = 0; o < r; o++) t[o] = zi(e[o], n[o], i)
    return t
  }
  function Bi(t, e, n, i) {
    for (var r = e.length, o = 0; o < r; o++) t[o] = e[o] + n[o] * i
    return t
  }
  function Vi(t, e, n, i) {
    for (var r = e.length, o = r && e[0].length, a = 0; a < r; a++) {
      t[a] || (t[a] = [])
      for (var s = 0; s < o; s++) t[a][s] = e[a][s] + n[a][s] * i
    }
    return t
  }
  function Gi(t, e) {
    for (var n = t.length, i = e.length, r = n > i ? e : t, o = Math.min(n, i), a = r[o - 1] || { color: [0, 0, 0, 0], offset: 0 }, s = o; s < Math.max(n, i); s++)
      r.push({ offset: a.offset, color: a.color.slice() })
  }
  function Fi(t, e, n) {
    var i = t,
      r = e
    if (i.push && r.push) {
      var o = i.length,
        a = r.length
      if (o !== a)
        if (o > a) i.length = a
        else for (var s = o; s < a; s++) i.push(1 === n ? r[s] : Ni.call(r[s]))
      var l = i[0] && i[0].length
      for (s = 0; s < i.length; s++)
        if (1 === n) isNaN(i[s]) && (i[s] = r[s])
        else for (var u = 0; u < l; u++) isNaN(i[s][u]) && (i[s][u] = r[s][u])
    }
  }
  function Wi(t) {
    if (N(t)) {
      var e = t.length
      if (N(t[0])) {
        for (var n = [], i = 0; i < e; i++) n.push(Ni.call(t[i]))
        return n
      }
      return Ni.call(t)
    }
    return t
  }
  function Hi(t) {
    return (t[0] = Math.floor(t[0]) || 0), (t[1] = Math.floor(t[1]) || 0), (t[2] = Math.floor(t[2]) || 0), (t[3] = null == t[3] ? 1 : t[3]), 'rgba(' + t.join(',') + ')'
  }
  function Ui(t) {
    return 4 === t || 5 === t
  }
  function Yi(t) {
    return 1 === t || 2 === t
  }
  var Xi = [0, 0, 0, 0],
    Zi = (function () {
      function t(t) {
        ;(this.keyframes = []), (this.discrete = !1), (this._invalid = !1), (this._needsSort = !1), (this._lastFr = 0), (this._lastFrP = 0), (this.propName = t)
      }
      return (
        (t.prototype.isFinished = function () {
          return this._finished
        }),
        (t.prototype.setFinished = function () {
          ;(this._finished = !0), this._additiveTrack && this._additiveTrack.setFinished()
        }),
        (t.prototype.needsAnimate = function () {
          return this.keyframes.length >= 1
        }),
        (t.prototype.getAdditiveTrack = function () {
          return this._additiveTrack
        }),
        (t.prototype.addKeyframe = function (t, e, n) {
          this._needsSort = !0
          var i = this.keyframes,
            r = i.length,
            o = !1,
            a = 6,
            s = e
          if (N(e)) {
            var l = (function (t) {
              return N(t && t[0]) ? 2 : 1
            })(e)
            ;(a = l), ((1 === l && !j(e[0])) || (2 === l && !j(e[0][0]))) && (o = !0)
          } else if (j(e) && !nt(e)) a = 0
          else if (X(e))
            if (isNaN(+e)) {
              var u = oi(e)
              u && ((s = u), (a = 3))
            } else a = 0
          else if (Q(e)) {
            var c = A({}, s)
            ;(c.colorStops = E(e.colorStops, function (t) {
              return { offset: t.offset, color: oi(t.color) }
            })),
              Di(e) ? (a = 4) : Ai(e) && (a = 5),
              (s = c)
          }
          0 === r ? (this.valType = a) : (a === this.valType && 6 !== a) || (o = !0), (this.discrete = this.discrete || o)
          var h = { time: t, value: s, rawValue: e, percent: 0 }
          return n && ((h.easing = n), (h.easingFunc = Y(n) ? n : yn[n] || Wn(n))), i.push(h), h
        }),
        (t.prototype.prepare = function (t, e) {
          var n = this.keyframes
          this._needsSort &&
            n.sort(function (t, e) {
              return t.time - e.time
            })
          for (var i = this.valType, r = n.length, o = n[r - 1], a = this.discrete, s = Yi(i), l = Ui(i), u = 0; u < r; u++) {
            var c = n[u],
              h = c.value,
              d = o.value
            ;(c.percent = c.time / t), a || (s && u !== r - 1 ? Fi(h, d, i) : l && Gi(h.colorStops, d.colorStops))
          }
          if (!a && 5 !== i && e && this.needsAnimate() && e.needsAnimate() && i === e.valType && !e._finished) {
            this._additiveTrack = e
            var p = n[0].value
            for (u = 0; u < r; u++)
              0 === i
                ? (n[u].additiveValue = n[u].value - p)
                : 3 === i
                  ? (n[u].additiveValue = Bi([], n[u].value, p, -1))
                  : Yi(i) && (n[u].additiveValue = 1 === i ? Bi([], n[u].value, p, -1) : Vi([], n[u].value, p, -1))
          }
        }),
        (t.prototype.step = function (t, e) {
          if (!this._finished) {
            this._additiveTrack && this._additiveTrack._finished && (this._additiveTrack = null)
            var n,
              i,
              r,
              o = null != this._additiveTrack,
              a = o ? 'additiveValue' : 'value',
              s = this.valType,
              l = this.keyframes,
              u = l.length,
              c = this.propName,
              h = 3 === s,
              d = this._lastFr,
              p = Math.min
            if (1 === u) i = r = l[0]
            else {
              if (e < 0) n = 0
              else if (e < this._lastFrP) {
                for (n = p(d + 1, u - 1); n >= 0 && !(l[n].percent <= e); n--);
                n = p(n, u - 2)
              } else {
                for (n = d; n < u && !(l[n].percent > e); n++);
                n = p(n - 1, u - 2)
              }
              ;(r = l[n + 1]), (i = l[n])
            }
            if (i && r) {
              ;(this._lastFr = n), (this._lastFrP = e)
              var f = r.percent - i.percent,
                g = 0 === f ? 1 : p((e - i.percent) / f, 1)
              r.easingFunc && (g = r.easingFunc(g))
              var y = o ? this._additiveValue : h ? Xi : t[c]
              if (((!Yi(s) && !h) || y || (y = this._additiveValue = []), this.discrete)) t[c] = g < 1 ? i.rawValue : r.rawValue
              else if (Yi(s))
                1 === s
                  ? Ei(y, i[a], r[a], g)
                  : (function (t, e, n, i) {
                      for (var r = e.length, o = r && e[0].length, a = 0; a < r; a++) {
                        t[a] || (t[a] = [])
                        for (var s = 0; s < o; s++) t[a][s] = zi(e[a][s], n[a][s], i)
                      }
                    })(y, i[a], r[a], g)
              else if (Ui(s)) {
                var v = i[a],
                  m = r[a],
                  x = 4 === s
                ;(t[c] = {
                  type: x ? 'linear' : 'radial',
                  x: zi(v.x, m.x, g),
                  y: zi(v.y, m.y, g),
                  colorStops: E(v.colorStops, function (t, e) {
                    var n = m.colorStops[e]
                    return { offset: zi(t.offset, n.offset, g), color: Hi(Ei([], t.color, n.color, g)) }
                  }),
                  global: m.global
                }),
                  x ? ((t[c].x2 = zi(v.x2, m.x2, g)), (t[c].y2 = zi(v.y2, m.y2, g))) : (t[c].r = zi(v.r, m.r, g))
              } else if (h) Ei(y, i[a], r[a], g), o || (t[c] = Hi(y))
              else {
                var _ = zi(i[a], r[a], g)
                o ? (this._additiveValue = _) : (t[c] = _)
              }
              o && this._addToTarget(t)
            }
          }
        }),
        (t.prototype._addToTarget = function (t) {
          var e = this.valType,
            n = this.propName,
            i = this._additiveValue
          0 === e ? (t[n] = t[n] + i) : 3 === e ? (oi(t[n], Xi), Bi(Xi, Xi, i, 1), (t[n] = Hi(Xi))) : 1 === e ? Bi(t[n], t[n], i, 1) : 2 === e && Vi(t[n], t[n], i, 1)
        }),
        t
      )
    })(),
    ji = (function () {
      function t(t, e, n, i) {
        ;(this._tracks = {}),
          (this._trackKeys = []),
          (this._maxTime = 0),
          (this._started = 0),
          (this._clip = null),
          (this._target = t),
          (this._loop = e),
          e && i ? I("Can' use additive animation on looped animation.") : ((this._additiveAnimators = i), (this._allowDiscrete = n))
      }
      return (
        (t.prototype.getMaxTime = function () {
          return this._maxTime
        }),
        (t.prototype.getDelay = function () {
          return this._delay
        }),
        (t.prototype.getLoop = function () {
          return this._loop
        }),
        (t.prototype.getTarget = function () {
          return this._target
        }),
        (t.prototype.changeTarget = function (t) {
          this._target = t
        }),
        (t.prototype.when = function (t, e, n) {
          return this.whenWithKeys(t, e, F(e), n)
        }),
        (t.prototype.whenWithKeys = function (t, e, n, i) {
          for (var r = this._tracks, o = 0; o < n.length; o++) {
            var a = n[o],
              s = r[a]
            if (!s) {
              s = r[a] = new Zi(a)
              var l = void 0,
                u = this._getAdditiveTrack(a)
              if (u) {
                var c = u.keyframes,
                  h = c[c.length - 1]
                ;(l = h && h.value), 3 === u.valType && l && (l = Hi(l))
              } else l = this._target[a]
              if (null == l) continue
              t > 0 && s.addKeyframe(0, Wi(l), i), this._trackKeys.push(a)
            }
            s.addKeyframe(t, Wi(e[a]), i)
          }
          return (this._maxTime = Math.max(this._maxTime, t)), this
        }),
        (t.prototype.pause = function () {
          this._clip.pause(), (this._paused = !0)
        }),
        (t.prototype.resume = function () {
          this._clip.resume(), (this._paused = !1)
        }),
        (t.prototype.isPaused = function () {
          return !!this._paused
        }),
        (t.prototype.duration = function (t) {
          return (this._maxTime = t), (this._force = !0), this
        }),
        (t.prototype._doneCallback = function () {
          this._setTracksFinished(), (this._clip = null)
          var t = this._doneCbs
          if (t) for (var e = t.length, n = 0; n < e; n++) t[n].call(this)
        }),
        (t.prototype._abortedCallback = function () {
          this._setTracksFinished()
          var t = this.animation,
            e = this._abortedCbs
          if ((t && t.removeClip(this._clip), (this._clip = null), e)) for (var n = 0; n < e.length; n++) e[n].call(this)
        }),
        (t.prototype._setTracksFinished = function () {
          for (var t = this._tracks, e = this._trackKeys, n = 0; n < e.length; n++) t[e[n]].setFinished()
        }),
        (t.prototype._getAdditiveTrack = function (t) {
          var e,
            n = this._additiveAnimators
          if (n)
            for (var i = 0; i < n.length; i++) {
              var r = n[i].getTrack(t)
              r && (e = r)
            }
          return e
        }),
        (t.prototype.start = function (t) {
          if (!(this._started > 0)) {
            this._started = 1
            for (var e = this, n = [], i = this._maxTime || 0, r = 0; r < this._trackKeys.length; r++) {
              var o = this._trackKeys[r],
                a = this._tracks[o],
                s = this._getAdditiveTrack(o),
                l = a.keyframes,
                u = l.length
              if ((a.prepare(i, s), a.needsAnimate()))
                if (!this._allowDiscrete && a.discrete) {
                  var c = l[u - 1]
                  c && (e._target[a.propName] = c.rawValue), a.setFinished()
                } else n.push(a)
            }
            if (n.length || this._force) {
              var h = new Hn({
                life: i,
                loop: this._loop,
                delay: this._delay || 0,
                onframe: function (t) {
                  e._started = 2
                  var i = e._additiveAnimators
                  if (i) {
                    for (var r = !1, o = 0; o < i.length; o++)
                      if (i[o]._clip) {
                        r = !0
                        break
                      }
                    r || (e._additiveAnimators = null)
                  }
                  for (o = 0; o < n.length; o++) n[o].step(e._target, t)
                  var a = e._onframeCbs
                  if (a) for (o = 0; o < a.length; o++) a[o](e._target, t)
                },
                ondestroy: function () {
                  e._doneCallback()
                }
              })
              ;(this._clip = h), this.animation && this.animation.addClip(h), t && h.setEasing(t)
            } else this._doneCallback()
            return this
          }
        }),
        (t.prototype.stop = function (t) {
          if (this._clip) {
            var e = this._clip
            t && e.onframe(1), this._abortedCallback()
          }
        }),
        (t.prototype.delay = function (t) {
          return (this._delay = t), this
        }),
        (t.prototype.during = function (t) {
          return t && (this._onframeCbs || (this._onframeCbs = []), this._onframeCbs.push(t)), this
        }),
        (t.prototype.done = function (t) {
          return t && (this._doneCbs || (this._doneCbs = []), this._doneCbs.push(t)), this
        }),
        (t.prototype.aborted = function (t) {
          return t && (this._abortedCbs || (this._abortedCbs = []), this._abortedCbs.push(t)), this
        }),
        (t.prototype.getClip = function () {
          return this._clip
        }),
        (t.prototype.getTrack = function (t) {
          return this._tracks[t]
        }),
        (t.prototype.getTracks = function () {
          var t = this
          return E(this._trackKeys, function (e) {
            return t._tracks[e]
          })
        }),
        (t.prototype.stopTracks = function (t, e) {
          if (!t.length || !this._clip) return !0
          for (var n = this._tracks, i = this._trackKeys, r = 0; r < t.length; r++) {
            var o = n[t[r]]
            o && !o.isFinished() && (e ? o.step(this._target, 1) : 1 === this._started && o.step(this._target, 0), o.setFinished())
          }
          var a = !0
          for (r = 0; r < i.length; r++)
            if (!n[i[r]].isFinished()) {
              a = !1
              break
            }
          return a && this._abortedCallback(), a
        }),
        (t.prototype.saveTo = function (t, e, n) {
          if (t) {
            e = e || this._trackKeys
            for (var i = 0; i < e.length; i++) {
              var r = e[i],
                o = this._tracks[r]
              if (o && !o.isFinished()) {
                var a = o.keyframes,
                  s = a[n ? 0 : a.length - 1]
                s && (t[r] = Wi(s.rawValue))
              }
            }
          }
        }),
        (t.prototype.__changeFinalValue = function (t, e) {
          e = e || F(t)
          for (var n = 0; n < e.length; n++) {
            var i = e[n],
              r = this._tracks[i]
            if (r) {
              var o = r.keyframes
              if (o.length > 1) {
                var a = o.pop()
                r.addKeyframe(a.time, t[i]), r.prepare(this._maxTime, r.getAdditiveTrack())
              }
            }
          }
        }),
        t
      )
    })()
  function qi() {
    return new Date().getTime()
  }
  var Ki,
    $i,
    Ji = (function (t) {
      function e(e) {
        var n = t.call(this) || this
        return (n._running = !1), (n._time = 0), (n._pausedTime = 0), (n._pauseStart = 0), (n._paused = !1), (e = e || {}), (n.stage = e.stage || {}), n
      }
      return (
        n(e, t),
        (e.prototype.addClip = function (t) {
          t.animation && this.removeClip(t),
            this._head ? ((this._tail.next = t), (t.prev = this._tail), (t.next = null), (this._tail = t)) : (this._head = this._tail = t),
            (t.animation = this)
        }),
        (e.prototype.addAnimator = function (t) {
          t.animation = this
          var e = t.getClip()
          e && this.addClip(e)
        }),
        (e.prototype.removeClip = function (t) {
          if (t.animation) {
            var e = t.prev,
              n = t.next
            e ? (e.next = n) : (this._head = n), n ? (n.prev = e) : (this._tail = e), (t.next = t.prev = t.animation = null)
          }
        }),
        (e.prototype.removeAnimator = function (t) {
          var e = t.getClip()
          e && this.removeClip(e), (t.animation = null)
        }),
        (e.prototype.update = function (t) {
          for (var e = qi() - this._pausedTime, n = e - this._time, i = this._head; i; ) {
            var r = i.next
            i.step(e, n) ? (i.ondestroy(), this.removeClip(i), (i = r)) : (i = r)
          }
          ;(this._time = e), t || (this.trigger('frame', n), this.stage.update && this.stage.update())
        }),
        (e.prototype._startLoop = function () {
          var t = this
          ;(this._running = !0),
            gn(function e() {
              t._running && (gn(e), !t._paused && t.update())
            })
        }),
        (e.prototype.start = function () {
          this._running || ((this._time = qi()), (this._pausedTime = 0), this._startLoop())
        }),
        (e.prototype.stop = function () {
          this._running = !1
        }),
        (e.prototype.pause = function () {
          this._paused || ((this._pauseStart = qi()), (this._paused = !0))
        }),
        (e.prototype.resume = function () {
          this._paused && ((this._pausedTime += qi() - this._pauseStart), (this._paused = !1))
        }),
        (e.prototype.clear = function () {
          for (var t = this._head; t; ) {
            var e = t.next
            ;(t.prev = t.next = t.animation = null), (t = e)
          }
          this._head = this._tail = null
        }),
        (e.prototype.isFinished = function () {
          return null == this._head
        }),
        (e.prototype.animate = function (t, e) {
          ;(e = e || {}), this.start()
          var n = new ji(t, e.loop)
          return this.addAnimator(n), n
        }),
        e
      )
    })(qt),
    Qi = r.domSupported,
    tr =
      (($i = { pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1 }),
      {
        mouse: (Ki = ['click', 'dblclick', 'mousewheel', 'wheel', 'mouseout', 'mouseup', 'mousedown', 'mousemove', 'contextmenu']),
        touch: ['touchstart', 'touchend', 'touchmove'],
        pointer: E(Ki, function (t) {
          var e = t.replace('mouse', 'pointer')
          return $i.hasOwnProperty(e) ? e : t
        })
      }),
    er = ['mousemove', 'mouseup'],
    nr = ['pointermove', 'pointerup'],
    ir = !1
  function rr(t) {
    var e = t.pointerType
    return 'pen' === e || 'touch' === e
  }
  function or(t) {
    t && (t.zrByTouch = !0)
  }
  function ar(t, e) {
    for (var n = e, i = !1; n && 9 !== n.nodeType && !(i = n.domBelongToZr || (n !== e && n === t.painterRoot)); ) n = n.parentNode
    return i
  }
  var sr = function (t, e) {
      ;(this.stopPropagation = bt),
        (this.stopImmediatePropagation = bt),
        (this.preventDefault = bt),
        (this.type = e.type),
        (this.target = this.currentTarget = t.dom),
        (this.pointerType = e.pointerType),
        (this.clientX = e.clientX),
        (this.clientY = e.clientY)
    },
    lr = {
      mousedown: function (t) {
        ;(t = de(this.dom, t)), (this.__mayPointerCapture = [t.zrX, t.zrY]), this.trigger('mousedown', t)
      },
      mousemove: function (t) {
        t = de(this.dom, t)
        var e = this.__mayPointerCapture
        !e || (t.zrX === e[0] && t.zrY === e[1]) || this.__togglePointerCapture(!0), this.trigger('mousemove', t)
      },
      mouseup: function (t) {
        ;(t = de(this.dom, t)), this.__togglePointerCapture(!1), this.trigger('mouseup', t)
      },
      mouseout: function (t) {
        ar(this, (t = de(this.dom, t)).toElement || t.relatedTarget) || (this.__pointerCapturing && (t.zrEventControl = 'no_globalout'), this.trigger('mouseout', t))
      },
      wheel: function (t) {
        ;(ir = !0), (t = de(this.dom, t)), this.trigger('mousewheel', t)
      },
      mousewheel: function (t) {
        ir || ((t = de(this.dom, t)), this.trigger('mousewheel', t))
      },
      touchstart: function (t) {
        or((t = de(this.dom, t))), (this.__lastTouchMoment = new Date()), this.handler.processGesture(t, 'start'), lr.mousemove.call(this, t), lr.mousedown.call(this, t)
      },
      touchmove: function (t) {
        or((t = de(this.dom, t))), this.handler.processGesture(t, 'change'), lr.mousemove.call(this, t)
      },
      touchend: function (t) {
        or((t = de(this.dom, t))), this.handler.processGesture(t, 'end'), lr.mouseup.call(this, t), +new Date() - +this.__lastTouchMoment < 300 && lr.click.call(this, t)
      },
      pointerdown: function (t) {
        lr.mousedown.call(this, t)
      },
      pointermove: function (t) {
        rr(t) || lr.mousemove.call(this, t)
      },
      pointerup: function (t) {
        lr.mouseup.call(this, t)
      },
      pointerout: function (t) {
        rr(t) || lr.mouseout.call(this, t)
      }
    }
  z(['click', 'dblclick', 'contextmenu'], function (t) {
    lr[t] = function (e) {
      ;(e = de(this.dom, e)), this.trigger(t, e)
    }
  })
  var ur = {
    pointermove: function (t) {
      rr(t) || ur.mousemove.call(this, t)
    },
    pointerup: function (t) {
      ur.mouseup.call(this, t)
    },
    mousemove: function (t) {
      this.trigger('mousemove', t)
    },
    mouseup: function (t) {
      var e = this.__pointerCapturing
      this.__togglePointerCapture(!1), this.trigger('mouseup', t), e && ((t.zrEventControl = 'only_globalout'), this.trigger('mouseout', t))
    }
  }
  function cr(t, e) {
    var n = e.domHandlers
    r.pointerEventsSupported
      ? z(tr.pointer, function (i) {
          dr(e, i, function (e) {
            n[i].call(t, e)
          })
        })
      : (r.touchEventsSupported &&
          z(tr.touch, function (i) {
            dr(e, i, function (r) {
              n[i].call(t, r),
                (function (t) {
                  ;(t.touching = !0),
                    null != t.touchTimer && (clearTimeout(t.touchTimer), (t.touchTimer = null)),
                    (t.touchTimer = setTimeout(function () {
                      ;(t.touching = !1), (t.touchTimer = null)
                    }, 700))
                })(e)
            })
          }),
        z(tr.mouse, function (i) {
          dr(e, i, function (r) {
            ;(r = he(r)), e.touching || n[i].call(t, r)
          })
        }))
  }
  function hr(t, e) {
    function n(n) {
      dr(
        e,
        n,
        function (i) {
          ;(i = he(i)),
            ar(t, i.target) ||
              ((i = (function (t, e) {
                return de(t.dom, new sr(t, e), !0)
              })(t, i)),
              e.domHandlers[n].call(t, i))
        },
        { capture: !0 }
      )
    }
    r.pointerEventsSupported ? z(nr, n) : r.touchEventsSupported || z(er, n)
  }
  function dr(t, e, n, i) {
    ;(t.mounted[e] = n), (t.listenerOpts[e] = i), pe(t.domTarget, e, n, i)
  }
  function pr(t) {
    var e,
      n,
      i,
      r,
      o = t.mounted
    for (var a in o) o.hasOwnProperty(a) && ((e = t.domTarget), (n = a), (i = o[a]), (r = t.listenerOpts[a]), e.removeEventListener(n, i, r))
    t.mounted = {}
  }
  var fr = function (t, e) {
      ;(this.mounted = {}), (this.listenerOpts = {}), (this.touching = !1), (this.domTarget = t), (this.domHandlers = e)
    },
    gr = (function (t) {
      function e(e, n) {
        var i = t.call(this) || this
        return (
          (i.__pointerCapturing = !1),
          (i.dom = e),
          (i.painterRoot = n),
          (i._localHandlerScope = new fr(e, lr)),
          Qi && (i._globalHandlerScope = new fr(document, ur)),
          cr(i, i._localHandlerScope),
          i
        )
      }
      return (
        n(e, t),
        (e.prototype.dispose = function () {
          pr(this._localHandlerScope), Qi && pr(this._globalHandlerScope)
        }),
        (e.prototype.setCursor = function (t) {
          this.dom.style && (this.dom.style.cursor = t || 'default')
        }),
        (e.prototype.__togglePointerCapture = function (t) {
          if (((this.__mayPointerCapture = null), Qi && +this.__pointerCapturing ^ +t)) {
            this.__pointerCapturing = t
            var e = this._globalHandlerScope
            t ? hr(this, e) : pr(e)
          }
        }),
        e
      )
    })(qt),
    yr = 1
  r.hasGlobalWindow && (yr = Math.max(window.devicePixelRatio || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI) || 1, 1))
  var vr = yr,
    mr = '#333',
    xr = '#ccc',
    _r = _e,
    br = 5e-5
  function wr(t) {
    return t > br || t < -5e-5
  }
  var Sr,
    Mr = [],
    Ir = [],
    Tr = [1, 0, 0, 1, 0, 0],
    Cr = Math.abs,
    Dr = (function () {
      function t() {}
      var e
      return (
        (t.prototype.getLocalTransform = function (e) {
          return t.getLocalTransform(this, e)
        }),
        (t.prototype.setPosition = function (t) {
          ;(this.x = t[0]), (this.y = t[1])
        }),
        (t.prototype.setScale = function (t) {
          ;(this.scaleX = t[0]), (this.scaleY = t[1])
        }),
        (t.prototype.setSkew = function (t) {
          ;(this.skewX = t[0]), (this.skewY = t[1])
        }),
        (t.prototype.setOrigin = function (t) {
          ;(this.originX = t[0]), (this.originY = t[1])
        }),
        (t.prototype.needLocalTransform = function () {
          return wr(this.rotation) || wr(this.x) || wr(this.y) || wr(this.scaleX - 1) || wr(this.scaleY - 1) || wr(this.skewX) || wr(this.skewY)
        }),
        (t.prototype.updateTransform = function () {
          var t = this.parent && this.parent.transform,
            e = this.needLocalTransform(),
            n = this.transform
          e || t
            ? ((n = n || [1, 0, 0, 1, 0, 0]), e ? this.getLocalTransform(n) : _r(n), t && (e ? we(n, t, n) : be(n, t)), (this.transform = n), this._resolveGlobalScaleRatio(n))
            : n && (_r(n), (this.invTransform = null))
        }),
        (t.prototype._resolveGlobalScaleRatio = function (t) {
          var e = this.globalScaleRatio
          if (null != e && 1 !== e) {
            this.getGlobalScale(Mr)
            var n = Mr[0] < 0 ? -1 : 1,
              i = Mr[1] < 0 ? -1 : 1,
              r = ((Mr[0] - n) * e + n) / Mr[0] || 0,
              o = ((Mr[1] - i) * e + i) / Mr[1] || 0
            ;(t[0] *= r), (t[1] *= r), (t[2] *= o), (t[3] *= o)
          }
          ;(this.invTransform = this.invTransform || [1, 0, 0, 1, 0, 0]), Te(this.invTransform, t)
        }),
        (t.prototype.getComputedTransform = function () {
          for (var t = this, e = []; t; ) e.push(t), (t = t.parent)
          for (; (t = e.pop()); ) t.updateTransform()
          return this.transform
        }),
        (t.prototype.setLocalTransform = function (t) {
          if (t) {
            var e = t[0] * t[0] + t[1] * t[1],
              n = t[2] * t[2] + t[3] * t[3],
              i = Math.atan2(t[1], t[0]),
              r = Math.PI / 2 + i - Math.atan2(t[3], t[2])
            ;(n = Math.sqrt(n) * Math.cos(r)),
              (e = Math.sqrt(e)),
              (this.skewX = r),
              (this.skewY = 0),
              (this.rotation = -i),
              (this.x = +t[4]),
              (this.y = +t[5]),
              (this.scaleX = e),
              (this.scaleY = n),
              (this.originX = 0),
              (this.originY = 0)
          }
        }),
        (t.prototype.decomposeTransform = function () {
          if (this.transform) {
            var t = this.parent,
              e = this.transform
            t && t.transform && ((t.invTransform = t.invTransform || [1, 0, 0, 1, 0, 0]), we(Ir, t.invTransform, e), (e = Ir))
            var n = this.originX,
              i = this.originY
            ;(n || i) && ((Tr[4] = n), (Tr[5] = i), we(Ir, e, Tr), (Ir[4] -= n), (Ir[5] -= i), (e = Ir)), this.setLocalTransform(e)
          }
        }),
        (t.prototype.getGlobalScale = function (t) {
          var e = this.transform
          return (
            (t = t || []),
            e
              ? ((t[0] = Math.sqrt(e[0] * e[0] + e[1] * e[1])), (t[1] = Math.sqrt(e[2] * e[2] + e[3] * e[3])), e[0] < 0 && (t[0] = -t[0]), e[3] < 0 && (t[1] = -t[1]), t)
              : ((t[0] = 1), (t[1] = 1), t)
          )
        }),
        (t.prototype.transformCoordToLocal = function (t, e) {
          var n = [t, e],
            i = this.invTransform
          return i && Ht(n, n, i), n
        }),
        (t.prototype.transformCoordToGlobal = function (t, e) {
          var n = [t, e],
            i = this.transform
          return i && Ht(n, n, i), n
        }),
        (t.prototype.getLineScale = function () {
          var t = this.transform
          return t && Cr(t[0] - 1) > 1e-10 && Cr(t[3] - 1) > 1e-10 ? Math.sqrt(Cr(t[0] * t[3] - t[2] * t[1])) : 1
        }),
        (t.prototype.copyTransform = function (t) {
          kr(this, t)
        }),
        (t.getLocalTransform = function (t, e) {
          e = e || []
          var n = t.originX || 0,
            i = t.originY || 0,
            r = t.scaleX,
            o = t.scaleY,
            a = t.anchorX,
            s = t.anchorY,
            l = t.rotation || 0,
            u = t.x,
            c = t.y,
            h = t.skewX ? Math.tan(t.skewX) : 0,
            d = t.skewY ? Math.tan(-t.skewY) : 0
          if (n || i || a || s) {
            var p = n + a,
              f = i + s
            ;(e[4] = -p * r - h * f * o), (e[5] = -f * o - d * p * r)
          } else e[4] = e[5] = 0
          return (e[0] = r), (e[3] = o), (e[1] = d * r), (e[2] = h * o), l && Me(e, e, l), (e[4] += n + u), (e[5] += i + c), e
        }),
        (t.initDefaultProps =
          (((e = t.prototype).scaleX = e.scaleY = e.globalScaleRatio = 1), void (e.x = e.y = e.originX = e.originY = e.skewX = e.skewY = e.rotation = e.anchorX = e.anchorY = 0))),
        t
      )
    })(),
    Ar = ['x', 'y', 'originX', 'originY', 'anchorX', 'anchorY', 'rotation', 'scaleX', 'scaleY', 'skewX', 'skewY']
  function kr(t, e) {
    for (var n = 0; n < Ar.length; n++) {
      var i = Ar[n]
      t[i] = e[i]
    }
  }
  function Lr(t) {
    Sr || (Sr = new Xn(100)), (t = t || a)
    var e = Sr.get(t)
    return (
      e ||
        ((e = {
          font: t,
          strWidthCache: new Xn(500),
          asciiWidthMap: null,
          asciiWidthMapTried: !1,
          stWideCharWidth: c.measureText('国', t).width,
          asciiCharWidth: c.measureText('a', t).width
        }),
        Sr.put(t, e)),
      e
    )
  }
  var Pr = 0,
    Or = 5
  function Rr(t, e) {
    return (
      t.asciiWidthMapTried ||
        ((t.asciiWidthMap = (function (t) {
          if (!(Pr >= Or)) {
            t = t || a
            for (var e = [], n = +new Date(), i = 0; i <= 127; i++) e[i] = c.measureText(String.fromCharCode(i), t).width
            var r = +new Date() - n
            return r > 16 ? (Pr = Or) : r > 2 && Pr++, e
          }
        })(t.font)),
        (t.asciiWidthMapTried = !0)),
      0 <= e && e <= 127 ? (null != t.asciiWidthMap ? t.asciiWidthMap[e] : t.asciiCharWidth) : t.stWideCharWidth
    )
  }
  function Nr(t, e) {
    var n = t.strWidthCache,
      i = n.get(e)
    return null == i && ((i = c.measureText(e, t.font).width), n.put(e, i)), i
  }
  function zr(t, e, n, i) {
    var r = Nr(Lr(e), t),
      o = Gr(e),
      a = Br(0, r, n),
      s = Vr(0, o, i)
    return new He(a, s, r, o)
  }
  function Er(t, e, n, i) {
    var r = ((t || '') + '').split('\n')
    if (1 === r.length) return zr(r[0], e, n, i)
    for (var o = new He(0, 0, 0, 0), a = 0; a < r.length; a++) {
      var s = zr(r[a], e, n, i)
      0 === a ? o.copy(s) : o.union(s)
    }
    return o
  }
  function Br(t, e, n, i) {
    return 'right' === n ? (i ? (t += e) : (t -= e)) : 'center' === n && (i ? (t += e / 2) : (t -= e / 2)), t
  }
  function Vr(t, e, n, i) {
    return 'middle' === n ? (i ? (t += e / 2) : (t -= e / 2)) : 'bottom' === n && (i ? (t += e) : (t -= e)), t
  }
  function Gr(t) {
    return Lr(t).stWideCharWidth
  }
  function Fr(t, e) {
    return 'string' == typeof t ? (t.lastIndexOf('%') >= 0 ? (parseFloat(t) / 100) * e : parseFloat(t)) : t
  }
  function Wr(t, e, n) {
    var i = e.position || 'inside',
      r = null != e.distance ? e.distance : 5,
      o = n.height,
      a = n.width,
      s = o / 2,
      l = n.x,
      u = n.y,
      c = 'left',
      h = 'top'
    if (i instanceof Array) (l += Fr(i[0], n.width)), (u += Fr(i[1], n.height)), (c = null), (h = null)
    else
      switch (i) {
        case 'left':
          ;(l -= r), (u += s), (c = 'right'), (h = 'middle')
          break
        case 'right':
          ;(l += r + a), (u += s), (h = 'middle')
          break
        case 'top':
          ;(l += a / 2), (u -= r), (c = 'center'), (h = 'bottom')
          break
        case 'bottom':
          ;(l += a / 2), (u += o + r), (c = 'center')
          break
        case 'inside':
          ;(l += a / 2), (u += s), (c = 'center'), (h = 'middle')
          break
        case 'insideLeft':
          ;(l += r), (u += s), (h = 'middle')
          break
        case 'insideRight':
          ;(l += a - r), (u += s), (c = 'right'), (h = 'middle')
          break
        case 'insideTop':
          ;(l += a / 2), (u += r), (c = 'center')
          break
        case 'insideBottom':
          ;(l += a / 2), (u += o - r), (c = 'center'), (h = 'bottom')
          break
        case 'insideTopLeft':
          ;(l += r), (u += r)
          break
        case 'insideTopRight':
          ;(l += a - r), (u += r), (c = 'right')
          break
        case 'insideBottomLeft':
          ;(l += r), (u += o - r), (h = 'bottom')
          break
        case 'insideBottomRight':
          ;(l += a - r), (u += o - r), (c = 'right'), (h = 'bottom')
      }
    return ((t = t || {}).x = l), (t.y = u), (t.align = c), (t.verticalAlign = h), t
  }
  var Hr = '__zr_normal__',
    Ur = Ar.concat(['ignore']),
    Yr = B(
      Ar,
      function (t, e) {
        return (t[e] = !0), t
      },
      { ignore: !1 }
    ),
    Xr = {},
    Zr = new He(0, 0, 0, 0),
    jr = [],
    qr = (function () {
      function t(t) {
        ;(this.id = M()), (this.animators = []), (this.currentStates = []), (this.states = {}), this._init(t)
      }
      return (
        (t.prototype._init = function (t) {
          this.attr(t)
        }),
        (t.prototype.drift = function (t, e, n) {
          switch (this.draggable) {
            case 'horizontal':
              e = 0
              break
            case 'vertical':
              t = 0
          }
          var i = this.transform
          i || (i = this.transform = [1, 0, 0, 1, 0, 0]), (i[4] += t), (i[5] += e), this.decomposeTransform(), this.markRedraw()
        }),
        (t.prototype.beforeUpdate = function () {}),
        (t.prototype.afterUpdate = function () {}),
        (t.prototype.update = function () {
          this.updateTransform(), this.__dirty && this.updateInnerText()
        }),
        (t.prototype.updateInnerText = function (t) {
          var e = this._textContent
          if (e && (!e.ignore || t)) {
            this.textConfig || (this.textConfig = {})
            var n = this.textConfig,
              i = n.local,
              r = e.innerTransformable,
              o = void 0,
              a = void 0,
              s = !1
            r.parent = i ? this : null
            var l = !1
            r.copyTransform(e)
            var u = null != n.position,
              c = n.autoOverflowArea,
              h = void 0
            if (((c || u) && ((h = Zr), n.layoutRect ? h.copy(n.layoutRect) : h.copy(this.getBoundingRect()), i || h.applyTransform(this.transform)), u)) {
              this.calculateTextPosition ? this.calculateTextPosition(Xr, n, h) : Wr(Xr, n, h), (r.x = Xr.x), (r.y = Xr.y), (o = Xr.align), (a = Xr.verticalAlign)
              var d = n.origin
              if (d && null != n.rotation) {
                var p = void 0,
                  f = void 0
                'center' === d ? ((p = 0.5 * h.width), (f = 0.5 * h.height)) : ((p = Fr(d[0], h.width)), (f = Fr(d[1], h.height))),
                  (l = !0),
                  (r.originX = -r.x + p + (i ? 0 : h.x)),
                  (r.originY = -r.y + f + (i ? 0 : h.y))
              }
            }
            null != n.rotation && (r.rotation = n.rotation)
            var g = n.offset
            g && ((r.x += g[0]), (r.y += g[1]), l || ((r.originX = -g[0]), (r.originY = -g[1])))
            var y = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {})
            if (c) {
              var v = (y.overflowRect = y.overflowRect || new He(0, 0, 0, 0))
              r.getLocalTransform(jr), Te(jr, jr), He.copy(v, h), v.applyTransform(jr)
            } else y.overflowRect = null
            var m = void 0,
              x = void 0,
              _ = void 0
            ;(null == n.inside ? 'string' == typeof n.position && n.position.indexOf('inside') >= 0 : n.inside) && this.canBeInsideText()
              ? ((m = n.insideFill),
                (x = n.insideStroke),
                (null != m && 'auto' !== m) || (m = this.getInsideTextFill()),
                (null != x && 'auto' !== x) || ((x = this.getInsideTextStroke(m)), (_ = !0)))
              : ((m = n.outsideFill),
                (x = n.outsideStroke),
                (null != m && 'auto' !== m) || (m = this.getOutsideFill()),
                (null != x && 'auto' !== x) || ((x = this.getOutsideStroke(m)), (_ = !0))),
              ((m = m || '#000') === y.fill && x === y.stroke && _ === y.autoStroke && o === y.align && a === y.verticalAlign) ||
                ((s = !0), (y.fill = m), (y.stroke = x), (y.autoStroke = _), (y.align = o), (y.verticalAlign = a), e.setDefaultTextStyle(y)),
              (e.__dirty |= 1),
              s && e.dirtyStyle(!0)
          }
        }),
        (t.prototype.canBeInsideText = function () {
          return !0
        }),
        (t.prototype.getInsideTextFill = function () {
          return '#fff'
        }),
        (t.prototype.getInsideTextStroke = function (t) {
          return '#000'
        }),
        (t.prototype.getOutsideFill = function () {
          return this.__zr && this.__zr.isDarkMode() ? xr : mr
        }),
        (t.prototype.getOutsideStroke = function (t) {
          var e = this.__zr && this.__zr.getBackgroundColor(),
            n = 'string' == typeof e && oi(e)
          n || (n = [255, 255, 255, 1])
          for (var i = n[3], r = this.__zr.isDarkMode(), o = 0; o < 3; o++) n[o] = n[o] * i + (r ? 0 : 255) * (1 - i)
          return (n[3] = 1), fi(n, 'rgba')
        }),
        (t.prototype.traverse = function (t, e) {}),
        (t.prototype.attrKV = function (t, e) {
          'textConfig' === t
            ? this.setTextConfig(e)
            : 'textContent' === t
              ? this.setTextContent(e)
              : 'clipPath' === t
                ? this.setClipPath(e)
                : 'extra' === t
                  ? ((this.extra = this.extra || {}), A(this.extra, e))
                  : (this[t] = e)
        }),
        (t.prototype.hide = function () {
          ;(this.ignore = !0), this.markRedraw()
        }),
        (t.prototype.show = function () {
          ;(this.ignore = !1), this.markRedraw()
        }),
        (t.prototype.attr = function (t, e) {
          if ('string' == typeof t) this.attrKV(t, e)
          else if (q(t))
            for (var n = F(t), i = 0; i < n.length; i++) {
              var r = n[i]
              this.attrKV(r, t[r])
            }
          return this.markRedraw(), this
        }),
        (t.prototype.saveCurrentToNormalState = function (t) {
          this._innerSaveToNormal(t)
          for (var e = this._normalState, n = 0; n < this.animators.length; n++) {
            var i = this.animators[n],
              r = i.__fromStateTransition
            if (!(i.getLoop() || (r && r !== Hr))) {
              var o = i.targetName,
                a = o ? e[o] : e
              i.saveTo(a)
            }
          }
        }),
        (t.prototype._innerSaveToNormal = function (t) {
          var e = this._normalState
          e || (e = this._normalState = {}), t.textConfig && !e.textConfig && (e.textConfig = this.textConfig), this._savePrimaryToNormal(t, e, Ur)
        }),
        (t.prototype._savePrimaryToNormal = function (t, e, n) {
          for (var i = 0; i < n.length; i++) {
            var r = n[i]
            null == t[r] || r in e || (e[r] = this[r])
          }
        }),
        (t.prototype.hasState = function () {
          return this.currentStates.length > 0
        }),
        (t.prototype.getState = function (t) {
          return this.states[t]
        }),
        (t.prototype.ensureState = function (t) {
          var e = this.states
          return e[t] || (e[t] = {}), e[t]
        }),
        (t.prototype.clearStates = function (t) {
          this.useState(Hr, !1, t)
        }),
        (t.prototype.useState = function (t, e, n, i) {
          var r = t === Hr
          if (this.hasState() || !r) {
            var o = this.currentStates,
              a = this.stateTransition
            if (!(P(o, t) >= 0) || (!e && 1 !== o.length)) {
              var s
              if ((this.stateProxy && !r && (s = this.stateProxy(t)), s || (s = this.states && this.states[t]), s || r)) {
                r || this.saveCurrentToNormalState(s)
                var l = !!((s && s.hoverLayer) || i)
                l && this._toggleHoverLayerFlag(!0), this._applyStateObj(t, s, this._normalState, e, !n && !this.__inHover && a && a.duration > 0, a)
                var u = this._textContent,
                  c = this._textGuide
                return (
                  u && u.useState(t, e, n, l),
                  c && c.useState(t, e, n, l),
                  r ? ((this.currentStates = []), (this._normalState = {})) : e ? this.currentStates.push(t) : (this.currentStates = [t]),
                  this._updateAnimationTargets(),
                  this.markRedraw(),
                  !l && this.__inHover && (this._toggleHoverLayerFlag(!1), (this.__dirty &= -2)),
                  s
                )
              }
              I('State ' + t + ' not exists.')
            }
          }
        }),
        (t.prototype.useStates = function (t, e, n) {
          if (t.length) {
            var i = [],
              r = this.currentStates,
              o = t.length,
              a = o === r.length
            if (a)
              for (var s = 0; s < o; s++)
                if (t[s] !== r[s]) {
                  a = !1
                  break
                }
            if (a) return
            for (s = 0; s < o; s++) {
              var l = t[s],
                u = void 0
              this.stateProxy && (u = this.stateProxy(l, t)), u || (u = this.states[l]), u && i.push(u)
            }
            var c = i[o - 1],
              h = !!((c && c.hoverLayer) || n)
            h && this._toggleHoverLayerFlag(!0)
            var d = this._mergeStates(i),
              p = this.stateTransition
            this.saveCurrentToNormalState(d), this._applyStateObj(t.join(','), d, this._normalState, !1, !e && !this.__inHover && p && p.duration > 0, p)
            var f = this._textContent,
              g = this._textGuide
            f && f.useStates(t, e, h),
              g && g.useStates(t, e, h),
              this._updateAnimationTargets(),
              (this.currentStates = t.slice()),
              this.markRedraw(),
              !h && this.__inHover && (this._toggleHoverLayerFlag(!1), (this.__dirty &= -2))
          } else this.clearStates()
        }),
        (t.prototype.isSilent = function () {
          for (var t = this; t; ) {
            if (t.silent) return !0
            var e = t.__hostTarget
            t = e ? (t.ignoreHostSilent ? null : e) : t.parent
          }
          return !1
        }),
        (t.prototype._updateAnimationTargets = function () {
          for (var t = 0; t < this.animators.length; t++) {
            var e = this.animators[t]
            e.targetName && e.changeTarget(this[e.targetName])
          }
        }),
        (t.prototype.removeState = function (t) {
          var e = P(this.currentStates, t)
          if (e >= 0) {
            var n = this.currentStates.slice()
            n.splice(e, 1), this.useStates(n)
          }
        }),
        (t.prototype.replaceState = function (t, e, n) {
          var i = this.currentStates.slice(),
            r = P(i, t),
            o = P(i, e) >= 0
          r >= 0 ? (o ? i.splice(r, 1) : (i[r] = e)) : n && !o && i.push(e), this.useStates(i)
        }),
        (t.prototype.toggleState = function (t, e) {
          e ? this.useState(t, !0) : this.removeState(t)
        }),
        (t.prototype._mergeStates = function (t) {
          for (var e, n = {}, i = 0; i < t.length; i++) {
            var r = t[i]
            A(n, r), r.textConfig && A((e = e || {}), r.textConfig)
          }
          return e && (n.textConfig = e), n
        }),
        (t.prototype._applyStateObj = function (t, e, n, i, r, o) {
          var a = !(e && i)
          e && e.textConfig
            ? ((this.textConfig = A({}, i ? this.textConfig : n.textConfig)), A(this.textConfig, e.textConfig))
            : a && n.textConfig && (this.textConfig = n.textConfig)
          for (var s = {}, l = !1, u = 0; u < Ur.length; u++) {
            var c = Ur[u],
              h = r && Yr[c]
            e && null != e[c] ? (h ? ((l = !0), (s[c] = e[c])) : (this[c] = e[c])) : a && null != n[c] && (h ? ((l = !0), (s[c] = n[c])) : (this[c] = n[c]))
          }
          if (!r)
            for (u = 0; u < this.animators.length; u++) {
              var d = this.animators[u],
                p = d.targetName
              d.getLoop() || d.__changeFinalValue(p ? (e || n)[p] : e || n)
            }
          l && this._transitionState(t, s, o)
        }),
        (t.prototype._attachComponent = function (t) {
          if ((!t.__zr || t.__hostTarget) && t !== this) {
            var e = this.__zr
            e && t.addSelfToZr(e), (t.__zr = e), (t.__hostTarget = this)
          }
        }),
        (t.prototype._detachComponent = function (t) {
          t.__zr && t.removeSelfFromZr(t.__zr), (t.__zr = null), (t.__hostTarget = null)
        }),
        (t.prototype.getClipPath = function () {
          return this._clipPath
        }),
        (t.prototype.setClipPath = function (t) {
          this._clipPath && this._clipPath !== t && this.removeClipPath(), this._attachComponent(t), (this._clipPath = t), this.markRedraw()
        }),
        (t.prototype.removeClipPath = function () {
          var t = this._clipPath
          t && (this._detachComponent(t), (this._clipPath = null), this.markRedraw())
        }),
        (t.prototype.getTextContent = function () {
          return this._textContent
        }),
        (t.prototype.setTextContent = function (t) {
          var e = this._textContent
          e !== t && (e && e !== t && this.removeTextContent(), (t.innerTransformable = new Dr()), this._attachComponent(t), (this._textContent = t), this.markRedraw())
        }),
        (t.prototype.setTextConfig = function (t) {
          this.textConfig || (this.textConfig = {}), A(this.textConfig, t), this.markRedraw()
        }),
        (t.prototype.removeTextConfig = function () {
          ;(this.textConfig = null), this.markRedraw()
        }),
        (t.prototype.removeTextContent = function () {
          var t = this._textContent
          t && ((t.innerTransformable = null), this._detachComponent(t), (this._textContent = null), (this._innerTextDefaultStyle = null), this.markRedraw())
        }),
        (t.prototype.getTextGuideLine = function () {
          return this._textGuide
        }),
        (t.prototype.setTextGuideLine = function (t) {
          this._textGuide && this._textGuide !== t && this.removeTextGuideLine(), this._attachComponent(t), (this._textGuide = t), this.markRedraw()
        }),
        (t.prototype.removeTextGuideLine = function () {
          var t = this._textGuide
          t && (this._detachComponent(t), (this._textGuide = null), this.markRedraw())
        }),
        (t.prototype.markRedraw = function () {
          this.__dirty |= 1
          var t = this.__zr
          t && (this.__inHover ? t.refreshHover() : t.refresh()), this.__hostTarget && this.__hostTarget.markRedraw()
        }),
        (t.prototype.dirty = function () {
          this.markRedraw()
        }),
        (t.prototype._toggleHoverLayerFlag = function (t) {
          this.__inHover = t
          var e = this._textContent,
            n = this._textGuide
          e && (e.__inHover = t), n && (n.__inHover = t)
        }),
        (t.prototype.addSelfToZr = function (t) {
          if (this.__zr !== t) {
            this.__zr = t
            var e = this.animators
            if (e) for (var n = 0; n < e.length; n++) t.animation.addAnimator(e[n])
            this._clipPath && this._clipPath.addSelfToZr(t), this._textContent && this._textContent.addSelfToZr(t), this._textGuide && this._textGuide.addSelfToZr(t)
          }
        }),
        (t.prototype.removeSelfFromZr = function (t) {
          if (this.__zr) {
            this.__zr = null
            var e = this.animators
            if (e) for (var n = 0; n < e.length; n++) t.animation.removeAnimator(e[n])
            this._clipPath && this._clipPath.removeSelfFromZr(t), this._textContent && this._textContent.removeSelfFromZr(t), this._textGuide && this._textGuide.removeSelfFromZr(t)
          }
        }),
        (t.prototype.animate = function (t, e, n) {
          var i = t ? this[t] : this
          var r = new ji(i, e, n)
          return t && (r.targetName = t), this.addAnimator(r, t), r
        }),
        (t.prototype.addAnimator = function (t, e) {
          var n = this.__zr,
            i = this
          t
            .during(function () {
              i.updateDuringAnimation(e)
            })
            .done(function () {
              var e = i.animators,
                n = P(e, t)
              n >= 0 && e.splice(n, 1)
            }),
            this.animators.push(t),
            n && n.animation.addAnimator(t),
            n && n.wakeUp()
        }),
        (t.prototype.updateDuringAnimation = function (t) {
          this.markRedraw()
        }),
        (t.prototype.stopAnimation = function (t, e) {
          for (var n = this.animators, i = n.length, r = [], o = 0; o < i; o++) {
            var a = n[o]
            t && t !== a.scope ? r.push(a) : a.stop(e)
          }
          return (this.animators = r), this
        }),
        (t.prototype.animateTo = function (t, e, n) {
          Kr(this, t, e, n)
        }),
        (t.prototype.animateFrom = function (t, e, n) {
          Kr(this, t, e, n, !0)
        }),
        (t.prototype._transitionState = function (t, e, n, i) {
          for (var r = Kr(this, e, n, i), o = 0; o < r.length; o++) r[o].__fromStateTransition = t
        }),
        (t.prototype.getBoundingRect = function () {
          return null
        }),
        (t.prototype.getPaintRect = function () {
          return null
        }),
        (t.initDefaultProps = (function () {
          var e = t.prototype
          ;(e.type = 'element'), (e.name = ''), (e.ignore = e.silent = e.ignoreHostSilent = e.isGroup = e.draggable = e.dragging = e.ignoreClip = e.__inHover = !1), (e.__dirty = 1)
          function n(t, n, i, r) {
            function o(t, e) {
              Object.defineProperty(e, 0, {
                get: function () {
                  return t[i]
                },
                set: function (e) {
                  t[i] = e
                }
              }),
                Object.defineProperty(e, 1, {
                  get: function () {
                    return t[r]
                  },
                  set: function (e) {
                    t[r] = e
                  }
                })
            }
            Object.defineProperty(e, t, {
              get: function () {
                this[n] || o(this, (this[n] = []))
                return this[n]
              },
              set: function (t) {
                ;(this[i] = t[0]), (this[r] = t[1]), (this[n] = t), o(this, t)
              }
            })
          }
          Object.defineProperty && (n('position', '_legacyPos', 'x', 'y'), n('scale', '_legacyScale', 'scaleX', 'scaleY'), n('origin', '_legacyOrigin', 'originX', 'originY'))
        })()),
        t
      )
    })()
  function Kr(t, e, n, i, r) {
    var o = []
    Qr(t, '', t, e, (n = n || {}), i, o, r)
    var a = o.length,
      s = !1,
      l = n.done,
      u = n.aborted,
      c = function () {
        ;(s = !0), --a <= 0 && (s ? l && l() : u && u())
      },
      h = function () {
        --a <= 0 && (s ? l && l() : u && u())
      }
    a || (l && l()),
      o.length > 0 &&
        n.during &&
        o[0].during(function (t, e) {
          n.during(e)
        })
    for (var d = 0; d < o.length; d++) {
      var p = o[d]
      c && p.done(c), h && p.aborted(h), n.force && p.duration(n.duration), p.start(n.easing)
    }
    return o
  }
  function $r(t, e, n) {
    for (var i = 0; i < n; i++) t[i] = e[i]
  }
  function Jr(t, e, n) {
    if (N(e[n]))
      if ((N(t[n]) || (t[n] = []), $(e[n]))) {
        var i = e[n].length
        t[n].length !== i && ((t[n] = new e[n].constructor(i)), $r(t[n], e[n], i))
      } else {
        var r = e[n],
          o = t[n],
          a = r.length
        if (N(r[0])) for (var s = r[0].length, l = 0; l < a; l++) o[l] ? $r(o[l], r[l], s) : (o[l] = Array.prototype.slice.call(r[l]))
        else $r(o, r, a)
        o.length = r.length
      }
    else t[n] = e[n]
  }
  function Qr(t, e, n, i, r, o, a, s) {
    for (var l = F(i), u = r.duration, c = r.delay, h = r.additive, d = r.setToFinal, p = !q(o), f = t.animators, g = [], y = 0; y < l.length; y++) {
      var v = l[y],
        m = i[v]
      if (null != m && null != n[v] && (p || o[v]))
        if (!q(m) || N(m) || Q(m)) g.push(v)
        else {
          if (e) {
            s || ((n[v] = m), t.updateDuringAnimation(e))
            continue
          }
          Qr(t, v, n[v], m, r, o && o[v], a, s)
        }
      else s || ((n[v] = m), t.updateDuringAnimation(e), g.push(v))
    }
    var x = g.length
    if (!h && x)
      for (var _ = 0; _ < f.length; _++) {
        if ((w = f[_]).targetName === e)
          if (w.stopTracks(g)) {
            var b = P(f, w)
            f.splice(b, 1)
          }
      }
    if (
      (r.force ||
        ((g = V(g, function (t) {
          return (
            (e = i[t]),
            (r = n[t]),
            !(
              e === r ||
              (N(e) &&
                N(r) &&
                (function (t, e) {
                  var n = t.length
                  if (n !== e.length) return !1
                  for (var i = 0; i < n; i++) if (t[i] !== e[i]) return !1
                  return !0
                })(e, r))
            )
          )
          var e, r
        })),
        (x = g.length)),
      x > 0 || (r.force && !a.length))
    ) {
      var w,
        S = void 0,
        M = void 0,
        I = void 0
      if (s) {
        ;(M = {}), d && (S = {})
        for (_ = 0; _ < x; _++) {
          ;(M[(v = g[_])] = n[v]), d ? (S[v] = i[v]) : (n[v] = i[v])
        }
      } else if (d) {
        I = {}
        for (_ = 0; _ < x; _++) {
          ;(I[(v = g[_])] = Wi(n[v])), Jr(n, i, v)
        }
      }
      ;((w = new ji(
        n,
        !1,
        !1,
        h
          ? V(f, function (t) {
              return t.targetName === e
            })
          : null
      )).targetName = e),
        r.scope && (w.scope = r.scope),
        d && S && w.whenWithKeys(0, S, g),
        I && w.whenWithKeys(0, I, g),
        w.whenWithKeys(null == u ? 500 : u, s ? M : i, g).delay(c || 0),
        t.addAnimator(w, e),
        a.push(w)
    }
  }
  R(qr, qt), R(qr, Dr)
  var to = (function (t) {
    function e(e) {
      var n = t.call(this) || this
      return (n.isGroup = !0), (n._children = []), n.attr(e), n
    }
    return (
      n(e, t),
      (e.prototype.childrenRef = function () {
        return this._children
      }),
      (e.prototype.children = function () {
        return this._children.slice()
      }),
      (e.prototype.childAt = function (t) {
        return this._children[t]
      }),
      (e.prototype.childOfName = function (t) {
        for (var e = this._children, n = 0; n < e.length; n++) if (e[n].name === t) return e[n]
      }),
      (e.prototype.childCount = function () {
        return this._children.length
      }),
      (e.prototype.add = function (t) {
        return t && t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), this
      }),
      (e.prototype.addBefore = function (t, e) {
        if (t && t !== this && t.parent !== this && e && e.parent === this) {
          var n = this._children,
            i = n.indexOf(e)
          i >= 0 && (n.splice(i, 0, t), this._doAdd(t))
        }
        return this
      }),
      (e.prototype.replace = function (t, e) {
        var n = P(this._children, t)
        return n >= 0 && this.replaceAt(e, n), this
      }),
      (e.prototype.replaceAt = function (t, e) {
        var n = this._children,
          i = n[e]
        if (t && t !== this && t.parent !== this && t !== i) {
          ;(n[e] = t), (i.parent = null)
          var r = this.__zr
          r && i.removeSelfFromZr(r), this._doAdd(t)
        }
        return this
      }),
      (e.prototype._doAdd = function (t) {
        t.parent && t.parent.remove(t), (t.parent = this)
        var e = this.__zr
        e && e !== t.__zr && t.addSelfToZr(e), e && e.refresh()
      }),
      (e.prototype.remove = function (t) {
        var e = this.__zr,
          n = this._children,
          i = P(n, t)
        return i < 0 || (n.splice(i, 1), (t.parent = null), e && t.removeSelfFromZr(e), e && e.refresh()), this
      }),
      (e.prototype.removeAll = function () {
        for (var t = this._children, e = this.__zr, n = 0; n < t.length; n++) {
          var i = t[n]
          e && i.removeSelfFromZr(e), (i.parent = null)
        }
        return (t.length = 0), this
      }),
      (e.prototype.eachChild = function (t, e) {
        for (var n = this._children, i = 0; i < n.length; i++) {
          var r = n[i]
          t.call(e, r, i)
        }
        return this
      }),
      (e.prototype.traverse = function (t, e) {
        for (var n = 0; n < this._children.length; n++) {
          var i = this._children[n],
            r = t.call(e, i)
          i.isGroup && !r && i.traverse(t, e)
        }
        return this
      }),
      (e.prototype.addSelfToZr = function (e) {
        t.prototype.addSelfToZr.call(this, e)
        for (var n = 0; n < this._children.length; n++) {
          this._children[n].addSelfToZr(e)
        }
      }),
      (e.prototype.removeSelfFromZr = function (e) {
        t.prototype.removeSelfFromZr.call(this, e)
        for (var n = 0; n < this._children.length; n++) {
          this._children[n].removeSelfFromZr(e)
        }
      }),
      (e.prototype.getBoundingRect = function (t) {
        for (var e = new He(0, 0, 0, 0), n = t || this._children, i = [], r = null, o = 0; o < n.length; o++) {
          var a = n[o]
          if (!a.ignore && !a.invisible) {
            var s = a.getBoundingRect(),
              l = a.getLocalTransform(i)
            l ? (He.applyTransform(e, s, l), (r = r || e.clone()).union(e)) : (r = r || s.clone()).union(s)
          }
        }
        return r || e
      }),
      e
    )
  })(qr)
  to.prototype.type = 'group'
  /*!
   * ZRender, a high performance 2d drawing library.
   *
   * Copyright (c) 2013, Baidu Inc.
   * All rights reserved.
   *
   * LICENSE
   * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt
   */
  var eo = {},
    no = {}
  var io,
    ro = (function () {
      function t(t, e, n) {
        var i = this
        ;(this._sleepAfterStill = 10),
          (this._stillFrameAccum = 0),
          (this._needsRefresh = !0),
          (this._needsRefreshHover = !0),
          (this._darkMode = !1),
          (n = n || {}),
          (this.dom = e),
          (this.id = t)
        var o = new fn(),
          a = n.renderer || 'canvas'
        eo[a] || (a = F(eo)[0]), (n.useDirtyRect = null != n.useDirtyRect && n.useDirtyRect)
        var s = new eo[a](e, o, n, t),
          l = n.ssr || s.ssrOnly
        ;(this.storage = o), (this.painter = s)
        var u,
          c = r.node || r.worker || l ? null : new gr(s.getViewportRoot(), s.root),
          h = n.useCoarsePointer
        ;(null == h || 'auto' === h ? r.touchEventsSupported : !!h) && (u = rt(n.pointerSize, 44)),
          (this.handler = new tn(o, s, c, s.root, u)),
          (this.animation = new Ji({
            stage: {
              update: l
                ? null
                : function () {
                    return i._flush(!0)
                  }
            }
          })),
          l || this.animation.start()
      }
      return (
        (t.prototype.add = function (t) {
          !this._disposed && t && (this.storage.addRoot(t), t.addSelfToZr(this), this.refresh())
        }),
        (t.prototype.remove = function (t) {
          !this._disposed && t && (this.storage.delRoot(t), t.removeSelfFromZr(this), this.refresh())
        }),
        (t.prototype.configLayer = function (t, e) {
          this._disposed || (this.painter.configLayer && this.painter.configLayer(t, e), this.refresh())
        }),
        (t.prototype.setBackgroundColor = function (t) {
          this._disposed ||
            (this.painter.setBackgroundColor && this.painter.setBackgroundColor(t),
            this.refresh(),
            (this._backgroundColor = t),
            (this._darkMode = (function (t) {
              if (!t) return !1
              if ('string' == typeof t) return gi(t, 1) < 0.4
              if (t.colorStops) {
                for (var e = t.colorStops, n = 0, i = e.length, r = 0; r < i; r++) n += gi(e[r].color, 1)
                return (n /= i) < 0.4
              }
              return !1
            })(t)))
        }),
        (t.prototype.getBackgroundColor = function () {
          return this._backgroundColor
        }),
        (t.prototype.setDarkMode = function (t) {
          this._darkMode = t
        }),
        (t.prototype.isDarkMode = function () {
          return this._darkMode
        }),
        (t.prototype.refreshImmediately = function (t) {
          this._disposed || (t || this.animation.update(!0), (this._needsRefresh = !1), this.painter.refresh(), (this._needsRefresh = !1))
        }),
        (t.prototype.refresh = function () {
          this._disposed || ((this._needsRefresh = !0), this.animation.start())
        }),
        (t.prototype.flush = function () {
          this._disposed || this._flush(!1)
        }),
        (t.prototype._flush = function (t) {
          var e,
            n = qi()
          this._needsRefresh && ((e = !0), this.refreshImmediately(t)), this._needsRefreshHover && ((e = !0), this.refreshHoverImmediately())
          var i = qi()
          e
            ? ((this._stillFrameAccum = 0), this.trigger('rendered', { elapsedTime: i - n }))
            : this._sleepAfterStill > 0 && (this._stillFrameAccum++, this._stillFrameAccum > this._sleepAfterStill && this.animation.stop())
        }),
        (t.prototype.setSleepAfterStill = function (t) {
          this._sleepAfterStill = t
        }),
        (t.prototype.wakeUp = function () {
          this._disposed || (this.animation.start(), (this._stillFrameAccum = 0))
        }),
        (t.prototype.refreshHover = function () {
          this._needsRefreshHover = !0
        }),
        (t.prototype.refreshHoverImmediately = function () {
          this._disposed || ((this._needsRefreshHover = !1), this.painter.refreshHover && 'canvas' === this.painter.getType() && this.painter.refreshHover())
        }),
        (t.prototype.resize = function (t) {
          this._disposed || ((t = t || {}), this.painter.resize(t.width, t.height), this.handler.resize())
        }),
        (t.prototype.clearAnimation = function () {
          this._disposed || this.animation.clear()
        }),
        (t.prototype.getWidth = function () {
          if (!this._disposed) return this.painter.getWidth()
        }),
        (t.prototype.getHeight = function () {
          if (!this._disposed) return this.painter.getHeight()
        }),
        (t.prototype.setCursorStyle = function (t) {
          this._disposed || this.handler.setCursorStyle(t)
        }),
        (t.prototype.findHover = function (t, e) {
          if (!this._disposed) return this.handler.findHover(t, e)
        }),
        (t.prototype.on = function (t, e, n) {
          return this._disposed || this.handler.on(t, e, n), this
        }),
        (t.prototype.off = function (t, e) {
          this._disposed || this.handler.off(t, e)
        }),
        (t.prototype.trigger = function (t, e) {
          this._disposed || this.handler.trigger(t, e)
        }),
        (t.prototype.clear = function () {
          if (!this._disposed) {
            for (var t = this.storage.getRoots(), e = 0; e < t.length; e++) t[e] instanceof to && t[e].removeSelfFromZr(this)
            this.storage.delAllRoots(), this.painter.clear()
          }
        }),
        (t.prototype.dispose = function () {
          var t
          this._disposed ||
            (this.animation.stop(),
            this.clear(),
            this.storage.dispose(),
            this.painter.dispose(),
            this.handler.dispose(),
            (this.animation = this.storage = this.painter = this.handler = null),
            (this._disposed = !0),
            (t = this.id),
            delete no[t])
        }),
        t
      )
    })()
  function oo(t, e) {
    var n = new ro(M(), t, e)
    return (no[n.id] = n), n
  }
  function ao(t, e) {
    eo[t] = e
  }
  function so(t) {
    if ('function' == typeof io) return io(t)
  }
  function lo(t) {
    io = t
  }
  var uo = Object.freeze({
      __proto__: null,
      init: oo,
      dispose: function (t) {
        t.dispose()
      },
      disposeAll: function () {
        for (var t in no) no.hasOwnProperty(t) && no[t].dispose()
        no = {}
      },
      getInstance: function (t) {
        return no[t]
      },
      registerPainter: ao,
      getElementSSRData: so,
      registerSSRDataGetter: lo,
      version: '6.0.0'
    }),
    co = 1e-4
  var ho = Math.min,
    po = Math.max,
    fo = Math.abs
  function go(t, e, n, i) {
    var r = e[0],
      o = e[1],
      a = n[0],
      s = n[1],
      l = o - r,
      u = s - a
    if (0 === l) return 0 === u ? a : (a + s) / 2
    if (i)
      if (l > 0) {
        if (t <= r) return a
        if (t >= o) return s
      } else {
        if (t >= r) return a
        if (t <= o) return s
      }
    else {
      if (t === r) return a
      if (t === o) return s
    }
    return ((t - r) / l) * u + a
  }
  var yo = function (t, e, n) {
    switch (t) {
      case 'center':
      case 'middle':
        t = '50%'
        break
      case 'left':
      case 'top':
        t = '0%'
        break
      case 'right':
      case 'bottom':
        t = '100%'
    }
    return vo(t, e, n)
  }
  function vo(t, e, n) {
    return X(t) ? (((i = t), i.replace(/^\s+|\s+$/g, '')).match(/%$/) ? (parseFloat(t) / 100) * e + (n || 0) : parseFloat(t)) : null == t ? NaN : +t
    var i
  }
  function mo(t, e, n) {
    return null == e && (e = 10), (e = Math.min(Math.max(0, e), 20)), (t = (+t).toFixed(e)), n ? t : +t
  }
  function xo(t) {
    return (
      t.sort(function (t, e) {
        return t - e
      }),
      t
    )
  }
  function _o(t) {
    if (((t = +t), isNaN(t))) return 0
    if (t > 1e-14) for (var e = 1, n = 0; n < 15; n++, e *= 10) if (Math.round(t * e) / e === t) return n
    return bo(t)
  }
  function bo(t) {
    var e = t.toString().toLowerCase(),
      n = e.indexOf('e'),
      i = n > 0 ? +e.slice(n + 1) : 0,
      r = n > 0 ? n : e.length,
      o = e.indexOf('.'),
      a = o < 0 ? 0 : r - 1 - o
    return Math.max(0, a - i)
  }
  function wo(t, e) {
    var n = Math.log,
      i = Math.LN10,
      r = Math.floor(n(t[1] - t[0]) / i),
      o = Math.round(n(fo(e[1] - e[0])) / i),
      a = Math.min(Math.max(-r + o, 0), 20)
    return isFinite(a) ? a : 20
  }
  function So(t, e) {
    var n = B(
      t,
      function (t, e) {
        return t + (isNaN(e) ? 0 : e)
      },
      0
    )
    if (0 === n) return []
    for (
      var i = Math.pow(10, e),
        r = E(t, function (t) {
          return ((isNaN(t) ? 0 : t) / n) * i * 100
        }),
        o = 100 * i,
        a = E(r, function (t) {
          return Math.floor(t)
        }),
        s = B(
          a,
          function (t, e) {
            return t + e
          },
          0
        ),
        l = E(r, function (t, e) {
          return t - a[e]
        });
      s < o;

    ) {
      for (var u = Number.NEGATIVE_INFINITY, c = null, h = 0, d = l.length; h < d; ++h) l[h] > u && ((u = l[h]), (c = h))
      ++a[c], (l[c] = 0), ++s
    }
    return E(a, function (t) {
      return t / i
    })
  }
  function Mo(t, e) {
    var n = Math.max(_o(t), _o(e)),
      i = t + e
    return n > 20 ? i : mo(i, n)
  }
  var Io = 9007199254740991
  function To(t) {
    var e = 2 * Math.PI
    return ((t % e) + e) % e
  }
  function Co(t) {
    return t > -1e-4 && t < co
  }
  var Do = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/
  function Ao(t) {
    if (t instanceof Date) return t
    if (X(t)) {
      var e = Do.exec(t)
      if (!e) return new Date(NaN)
      if (e[8]) {
        var n = +e[4] || 0
        return (
          'Z' !== e[8].toUpperCase() && (n -= +e[8].slice(0, 3)),
          new Date(Date.UTC(+e[1], +(e[2] || 1) - 1, +e[3] || 1, n, +(e[5] || 0), +e[6] || 0, e[7] ? +e[7].substring(0, 3) : 0))
        )
      }
      return new Date(+e[1], +(e[2] || 1) - 1, +e[3] || 1, +e[4] || 0, +(e[5] || 0), +e[6] || 0, e[7] ? +e[7].substring(0, 3) : 0)
    }
    return null == t ? new Date(NaN) : new Date(Math.round(t))
  }
  function ko(t) {
    return Math.pow(10, Lo(t))
  }
  function Lo(t) {
    if (0 === t) return 0
    var e = Math.floor(Math.log(t) / Math.LN10)
    return t / Math.pow(10, e) >= 10 && e++, e
  }
  function Po(t, e) {
    var n = Lo(t),
      i = Math.pow(10, n),
      r = t / i
    return (t = (e ? (r < 1.5 ? 1 : r < 2.5 ? 2 : r < 4 ? 3 : r < 7 ? 5 : 10) : r < 1 ? 1 : r < 2 ? 2 : r < 3 ? 3 : r < 5 ? 5 : 10) * i), n >= -20 ? +t.toFixed(n < 0 ? -n : 0) : t
  }
  function Oo(t, e) {
    var n = (t.length - 1) * e + 1,
      i = Math.floor(n),
      r = +t[i - 1],
      o = n - i
    return o ? r + o * (t[i] - r) : r
  }
  function Ro(t) {
    t.sort(function (t, e) {
      return s(t, e, 0) ? -1 : 1
    })
    for (var e = -1 / 0, n = 1, i = 0; i < t.length; ) {
      for (var r = t[i].interval, o = t[i].close, a = 0; a < 2; a++) r[a] <= e && ((r[a] = e), (o[a] = a ? 1 : 1 - n)), (e = r[a]), (n = o[a])
      r[0] === r[1] && o[0] * o[1] != 1 ? t.splice(i, 1) : i++
    }
    return t
    function s(t, e, n) {
      return t.interval[n] < e.interval[n] || (t.interval[n] === e.interval[n] && (t.close[n] - e.close[n] == (n ? -1 : 1) || (!n && s(t, e, 1))))
    }
  }
  function No(t) {
    var e = parseFloat(t)
    return e == t && (0 !== e || !X(t) || t.indexOf('x') <= 0) ? e : NaN
  }
  function zo(t) {
    return !isNaN(No(t))
  }
  function Eo() {
    return Math.round(9 * Math.random())
  }
  function Bo(t, e) {
    return 0 === e ? t : Bo(e, t % e)
  }
  function Vo(t, e) {
    return null == t ? e : null == e ? t : (t * e) / Bo(t, e)
  }
  var Go = {},
    Fo = 'undefined' != typeof console && console.warn && console.log
  function Wo(t, e, n) {
    if (Fo) {
      if (n) {
        if (Go[e]) return
        Go[e] = !0
      }
      console[t]('[ECharts] ' + e)
    }
  }
  function Ho(t, e) {
    Wo('error', t, e)
  }
  function Uo(t) {
    0
  }
  function Yo(t) {
    throw new Error(t)
  }
  function Xo(t, e, n) {
    return (e - t) * n + t
  }
  var Zo = 'series\0',
    jo = '\0_ec_\0'
  function qo(t) {
    return t instanceof Array ? t : null == t ? [] : [t]
  }
  function Ko(t, e, n) {
    if (t) {
      ;(t[e] = t[e] || {}), (t.emphasis = t.emphasis || {}), (t.emphasis[e] = t.emphasis[e] || {})
      for (var i = 0, r = n.length; i < r; i++) {
        var o = n[i]
        !t.emphasis[e].hasOwnProperty(o) && t[e].hasOwnProperty(o) && (t.emphasis[e][o] = t[e][o])
      }
    }
  }
  var $o = [
    'fontStyle',
    'fontWeight',
    'fontSize',
    'fontFamily',
    'rich',
    'tag',
    'color',
    'textBorderColor',
    'textBorderWidth',
    'width',
    'height',
    'lineHeight',
    'align',
    'verticalAlign',
    'baseline',
    'shadowColor',
    'shadowBlur',
    'shadowOffsetX',
    'shadowOffsetY',
    'textShadowColor',
    'textShadowBlur',
    'textShadowOffsetX',
    'textShadowOffsetY',
    'backgroundColor',
    'borderColor',
    'borderWidth',
    'borderRadius',
    'padding'
  ]
  function Jo(t) {
    return !q(t) || U(t) || t instanceof Date ? t : t.value
  }
  function Qo(t) {
    return q(t) && !(t instanceof Array)
  }
  function ta(t, e, n) {
    var i = 'normalMerge' === n,
      r = 'replaceMerge' === n,
      o = 'replaceAll' === n
    ;(t = t || []), (e = (e || []).slice())
    var a = yt()
    z(e, function (t, n) {
      q(t) || (e[n] = null)
    })
    var s,
      l,
      u = (function (t, e, n) {
        var i = []
        if ('replaceAll' === n) return i
        for (var r = 0; r < t.length; r++) {
          var o = t[r]
          o && null != o.id && e.set(o.id, r), i.push({ existing: 'replaceMerge' === n || oa(o) ? null : o, newOption: null, keyInfo: null, brandNew: null })
        }
        return i
      })(t, a, n)
    return (
      (i || r) &&
        (function (t, e, n, i) {
          z(i, function (r, o) {
            if (r && null != r.id) {
              var a = na(r.id),
                s = n.get(a)
              if (null != s) {
                var l = t[s]
                lt(!l.newOption, 'Duplicated option on id "' + a + '".'), (l.newOption = r), (l.existing = e[s]), (i[o] = null)
              }
            }
          })
        })(u, t, a, e),
      i &&
        (function (t, e) {
          z(e, function (n, i) {
            if (n && null != n.name)
              for (var r = 0; r < t.length; r++) {
                var o = t[r].existing
                if (!t[r].newOption && o && (null == o.id || null == n.id) && !oa(n) && !oa(o) && ea('name', o, n)) return (t[r].newOption = n), void (e[i] = null)
              }
          })
        })(u, e),
      i || r
        ? (function (t, e, n) {
            z(e, function (e) {
              if (e) {
                for (var i, r = 0; (i = t[r]) && (i.newOption || oa(i.existing) || (i.existing && null != e.id && !ea('id', e, i.existing))); ) r++
                i ? ((i.newOption = e), (i.brandNew = n)) : t.push({ newOption: e, brandNew: n, existing: null, keyInfo: null }), r++
              }
            })
          })(u, e, r)
        : o &&
          (function (t, e) {
            z(e, function (e) {
              t.push({ newOption: e, brandNew: !0, existing: null, keyInfo: null })
            })
          })(u, e),
      (s = u),
      (l = yt()),
      z(s, function (t) {
        var e = t.existing
        e && l.set(e.id, t)
      }),
      z(s, function (t) {
        var e = t.newOption
        lt(!e || null == e.id || !l.get(e.id) || l.get(e.id) === t, 'id duplicates: ' + (e && e.id)), e && null != e.id && l.set(e.id, t), !t.keyInfo && (t.keyInfo = {})
      }),
      z(s, function (t, e) {
        var n = t.existing,
          i = t.newOption,
          r = t.keyInfo
        if (q(i)) {
          if (((r.name = null != i.name ? na(i.name) : n ? n.name : Zo + e), n)) r.id = na(n.id)
          else if (null != i.id) r.id = na(i.id)
          else {
            var o = 0
            do {
              r.id = '\0' + r.name + '\0' + o++
            } while (l.get(r.id))
          }
          l.set(r.id, t)
        }
      }),
      u
    )
  }
  function ea(t, e, n) {
    var i = ia(e[t], null),
      r = ia(n[t], null)
    return null != i && null != r && i === r
  }
  function na(t) {
    return ia(t, '')
  }
  function ia(t, e) {
    return null == t ? e : X(t) ? t : j(t) || Z(t) ? t + '' : e
  }
  function ra(t) {
    var e = t.name
    return !(!e || !e.indexOf(Zo))
  }
  function oa(t) {
    return t && null != t.id && 0 === na(t.id).indexOf(jo)
  }
  function aa(t, e) {
    return null != e.dataIndexInside
      ? e.dataIndexInside
      : null != e.dataIndex
        ? U(e.dataIndex)
          ? E(e.dataIndex, function (e) {
              return t.indexOfRawIndex(e)
            })
          : t.indexOfRawIndex(e.dataIndex)
        : null != e.name
          ? U(e.name)
            ? E(e.name, function (e) {
                return t.indexOfName(e)
              })
            : t.indexOfName(e.name)
          : void 0
  }
  function sa() {
    var t = '__ec_inner_' + la++
    return function (e) {
      return e[t] || (e[t] = {})
    }
  }
  var la = Eo()
  function ua(t, e, n) {
    var i = ca(e, n),
      r = i.mainTypeSpecified,
      o = i.queryOptionMap,
      a = i.others,
      s = n ? n.defaultMainType : null
    return (
      !r && s && o.set(s, {}),
      o.each(function (e, i) {
        var r = pa(t, i, e, { useDefault: s === i, enableAll: !n || null == n.enableAll || n.enableAll, enableNone: !n || null == n.enableNone || n.enableNone })
        ;(a[i + 'Models'] = r.models), (a[i + 'Model'] = r.models[0])
      }),
      a
    )
  }
  function ca(t, e) {
    var n
    if (X(t)) {
      var i = {}
      ;(i[t + 'Index'] = 0), (n = i)
    } else n = t
    var r = yt(),
      o = {},
      a = !1
    return (
      z(n, function (t, n) {
        if ('dataIndex' !== n && 'dataIndexInside' !== n) {
          var i = n.match(/^(\w+)(Index|Id|Name)$/) || [],
            s = i[1],
            l = (i[2] || '').toLowerCase()
          if (s && l && !(e && e.includeMainTypes && P(e.includeMainTypes, s) < 0)) (a = a || !!s), ((r.get(s) || r.set(s, {}))[l] = t)
        } else o[n] = t
      }),
      { mainTypeSpecified: a, queryOptionMap: r, others: o }
    )
  }
  var ha = { useDefault: !0, enableAll: !1, enableNone: !1 },
    da = { useDefault: !1, enableAll: !0, enableNone: !0 }
  function pa(t, e, n, i) {
    i = i || ha
    var r = n.index,
      o = n.id,
      a = n.name,
      s = { models: null, specified: null != r || null != o || null != a }
    if (!s.specified) {
      var l = void 0
      return (s.models = i.useDefault && (l = t.getComponent(e)) ? [l] : []), s
    }
    if ('none' === r || !1 === r) {
      if (i.enableNone) return (s.models = []), s
      r = -1
    }
    return 'all' === r && (r = i.enableAll ? (o = a = null) : -1), (s.models = t.queryComponents({ mainType: e, index: r, id: o, name: a })), s
  }
  function fa(t, e, n) {
    t.setAttribute ? t.setAttribute(e, n) : (t[e] = n)
  }
  function ga(t, e) {
    var n = yt(),
      i = []
    return (
      z(t, function (t) {
        var r = e(t)
        ;(n.get(r) || (i.push(r), n.set(r, []))).push(t)
      }),
      { keys: i, buckets: n }
    )
  }
  function ya(t, e, n, i, r) {
    var o = null == e || 'auto' === e
    if (null == i) return i
    if (j(i)) return mo((f = Xo(n || 0, i, r)), o ? Math.max(_o(n || 0), _o(i)) : e)
    if (X(i)) return r < 1 ? n : i
    for (var a = [], s = n, l = i, u = Math.max(s ? s.length : 0, l.length), c = 0; c < u; ++c) {
      var h = t.getDimensionInfo(c)
      if (h && 'ordinal' === h.type) a[c] = (r < 1 && s ? s : l)[c]
      else {
        var d = s && s[c] ? s[c] : 0,
          p = l[c],
          f = Xo(d, p, r)
        a[c] = mo(f, o ? Math.max(_o(d), _o(p)) : e)
      }
    }
    return a
  }
  var va = (function () {
    function t() {}
    return (
      (t.prototype.reset = function (t, e, n, i) {
        return (this._list = t), (this._step = i = i || 1), (this._idx = e), (this._end = null != n ? n : i > 0 ? t.length : 0), (this.item = null), (this.key = NaN), this
      }),
      (t.prototype.next = function () {
        return (this._step > 0 ? this._idx < this._end : this._idx >= this._end) && ((this.item = this._list[this._idx]), (this.key = this._idx = this._idx + this._step), !0)
      }),
      t
    )
  })()
  function ma(t) {
    t.option = t.parentModel = t.ecModel = null
  }
  var xa = '___EC__COMPONENT__CONTAINER___',
    _a = '___EC__EXTENDED_CLASS___'
  function ba(t) {
    var e = { main: '', sub: '' }
    if (t) {
      var n = t.split('.')
      ;(e.main = n[0] || ''), (e.sub = n[1] || '')
    }
    return e
  }
  function wa(t, e) {
    ;(t.$constructor = t),
      (t.extend = function (t) {
        var e,
          i,
          r = this
        return (
          Y((i = r)) && /^class\s/.test(Function.prototype.toString.call(i))
            ? (e = (function (t) {
                function e() {
                  return t.apply(this, arguments) || this
                }
                return n(e, t), e
              })(r))
            : ((e = function () {
                ;(t.$constructor || r).apply(this, arguments)
              }),
              O(e, this)),
          A(e.prototype, t),
          (e[_a] = !0),
          (e.extend = this.extend),
          (e.superCall = Ia),
          (e.superApply = Ta),
          (e.superClass = r),
          e
        )
      })
  }
  function Sa(t, e) {
    t.extend = e.extend
  }
  var Ma = Math.round(10 * Math.random())
  function Ia(t, e) {
    for (var n = [], i = 2; i < arguments.length; i++) n[i - 2] = arguments[i]
    return this.superClass.prototype[e].apply(t, n)
  }
  function Ta(t, e, n) {
    return this.superClass.prototype[e].apply(t, n)
  }
  function Ca(t) {
    var e = {}
    ;(t.registerClass = function (t) {
      var n,
        i = t.type || t.prototype.type
      if (i) {
        lt(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test((n = i)), 'componentType "' + n + '" illegal'), (t.prototype.type = i)
        var r = ba(i)
        if (r.sub) {
          if (r.sub !== xa) {
            var o = (function (t) {
              var n = e[t.main]
              ;(n && n[xa]) || ((n = e[t.main] = {})[xa] = !0)
              return n
            })(r)
            o[r.sub] = t
          }
        } else e[r.main] = t
      }
      return t
    }),
      (t.getClass = function (t, n, i) {
        var r = e[t]
        if ((r && r[xa] && (r = n ? r[n] : null), i && !r))
          throw new Error(n ? 'Component ' + t + '.' + (n || '') + ' is used but not imported.' : t + '.type should be specified.')
        return r
      }),
      (t.getClassesByMainType = function (t) {
        var n = ba(t),
          i = [],
          r = e[n.main]
        return (
          r && r[xa]
            ? z(r, function (t, e) {
                e !== xa && i.push(t)
              })
            : i.push(r),
          i
        )
      }),
      (t.hasClass = function (t) {
        var n = ba(t)
        return !!e[n.main]
      }),
      (t.getAllClassMainTypes = function () {
        var t = []
        return (
          z(e, function (e, n) {
            t.push(n)
          }),
          t
        )
      }),
      (t.hasSubTypes = function (t) {
        var n = ba(t),
          i = e[n.main]
        return i && i[xa]
      })
  }
  function Da(t, e) {
    for (var n = 0; n < t.length; n++) t[n][1] || (t[n][1] = t[n][0])
    return (
      (e = e || !1),
      function (n, i, r) {
        for (var o = {}, a = 0; a < t.length; a++) {
          var s = t[a][1]
          if (!((i && P(i, s) >= 0) || (r && P(r, s) < 0))) {
            var l = n.getShallow(s, e)
            null != l && (o[t[a][0]] = l)
          }
        }
        return o
      }
    )
  }
  var Aa = Da([['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']]),
    ka = (function () {
      function t() {}
      return (
        (t.prototype.getAreaStyle = function (t, e) {
          return Aa(this, t, e)
        }),
        t
      )
    })(),
    La = new Xn(50)
  function Pa(t) {
    if ('string' == typeof t) {
      var e = La.get(t)
      return e && e.image
    }
    return t
  }
  function Oa(t, e, n, i, r) {
    if (t) {
      if ('string' == typeof t) {
        if ((e && e.__zrImageSrc === t) || !n) return e
        var o = La.get(t),
          a = { hostEl: n, cb: i, cbPayload: r }
        return o ? !Na((e = o.image)) && o.pending.push(a) : (((e = c.loadImage(t, Ra, Ra)).__zrImageSrc = t), La.put(t, (e.__cachedImgObj = { image: e, pending: [a] }))), e
      }
      return t
    }
    return e
  }
  function Ra() {
    var t = this.__cachedImgObj
    this.onload = this.onerror = this.__cachedImgObj = null
    for (var e = 0; e < t.pending.length; e++) {
      var n = t.pending[e],
        i = n.cb
      i && i(this, n.cbPayload), n.hostEl.dirty()
    }
    t.pending.length = 0
  }
  function Na(t) {
    return t && t.width && t.height
  }
  var za = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g
  function Ea(t, e, n, i, r, o) {
    if (!n) return (t.text = ''), void (t.isTruncated = !1)
    var a = (e + '').split('\n')
    o = Ba(n, i, r, o)
    for (var s = !1, l = {}, u = 0, c = a.length; u < c; u++) Va(l, a[u], o), (a[u] = l.textLine), (s = s || l.isTruncated)
    ;(t.text = a.join('\n')), (t.isTruncated = s)
  }
  function Ba(t, e, n, i) {
    var r = A({}, (i = i || {}))
    ;(n = rt(n, '...')), (r.maxIterations = rt(i.maxIterations, 2))
    var o = (r.minChar = rt(i.minChar, 0)),
      a = (r.fontMeasureInfo = Lr(e)),
      s = a.asciiCharWidth
    r.placeholder = rt(i.placeholder, '')
    for (var l = (t = Math.max(0, t - 1)), u = 0; u < o && l >= s; u++) l -= s
    var c = Nr(a, n)
    return c > l && ((n = ''), (c = 0)), (l = t - c), (r.ellipsis = n), (r.ellipsisWidth = c), (r.contentWidth = l), (r.containerWidth = t), r
  }
  function Va(t, e, n) {
    var i = n.containerWidth,
      r = n.contentWidth,
      o = n.fontMeasureInfo
    if (!i) return (t.textLine = ''), void (t.isTruncated = !1)
    var a = Nr(o, e)
    if (a <= i) return (t.textLine = e), void (t.isTruncated = !1)
    for (var s = 0; ; s++) {
      if (a <= r || s >= n.maxIterations) {
        e += n.ellipsis
        break
      }
      var l = 0 === s ? Ga(e, r, o) : a > 0 ? Math.floor((e.length * r) / a) : 0
      a = Nr(o, (e = e.substr(0, l)))
    }
    '' === e && (e = n.placeholder), (t.textLine = e), (t.isTruncated = !0)
  }
  function Ga(t, e, n) {
    for (var i = 0, r = 0, o = t.length; r < o && i < e; r++) i += Rr(n, t.charCodeAt(r))
    return r
  }
  var Fa = function () {},
    Wa = function (t) {
      ;(this.tokens = []), t && (this.tokens = t)
    },
    Ha = function () {
      ;(this.width = 0),
        (this.height = 0),
        (this.contentWidth = 0),
        (this.contentHeight = 0),
        (this.outerWidth = 0),
        (this.outerHeight = 0),
        (this.lines = []),
        (this.isTruncated = !1)
    }
  function Ua(t, e, n, i, r) {
    var o,
      a,
      s = '' === e,
      l = (r && n.rich[r]) || {},
      u = t.lines,
      c = l.font || n.font,
      h = !1
    if (i) {
      var d = l.padding,
        p = d ? d[1] + d[3] : 0
      if (null != l.width && 'auto' !== l.width) {
        var f = Fr(l.width, i.width) + p
        u.length > 0 && f + i.accumWidth > i.width && ((o = e.split('\n')), (h = !0)), (i.accumWidth = f)
      } else {
        var g = Za(e, c, i.width, i.breakAll, i.accumWidth)
        ;(i.accumWidth = g.accumWidth + p), (a = g.linesWidths), (o = g.lines)
      }
    }
    o || (o = e.split('\n'))
    for (var y = Lr(c), v = 0; v < o.length; v++) {
      var m = o[v],
        x = new Fa()
      if (((x.styleName = r), (x.text = m), (x.isLineHolder = !m && !s), 'number' == typeof l.width ? (x.width = l.width) : (x.width = a ? a[v] : Nr(y, m)), v || h))
        u.push(new Wa([x]))
      else {
        var _ = (u[u.length - 1] || (u[0] = new Wa())).tokens,
          b = _.length
        1 === b && _[0].isLineHolder ? (_[0] = x) : (m || !b || s) && _.push(x)
      }
    }
  }
  var Ya = B(
    ',&?/;] '.split(''),
    function (t, e) {
      return (t[e] = !0), t
    },
    {}
  )
  function Xa(t) {
    return (
      !(function (t) {
        var e = t.charCodeAt(0)
        return (e >= 32 && e <= 591) || (e >= 880 && e <= 4351) || (e >= 4608 && e <= 5119) || (e >= 7680 && e <= 8303)
      })(t) || !!Ya[t]
    )
  }
  function Za(t, e, n, i, r) {
    for (var o = [], a = [], s = '', l = '', u = 0, c = 0, h = Lr(e), d = 0; d < t.length; d++) {
      var p = t.charAt(d)
      if ('\n' !== p) {
        var f = Rr(h, p.charCodeAt(0)),
          g = !i && !Xa(p)
        ;(o.length ? c + f > n : r + c + f > n)
          ? c
            ? (s || l) &&
              (g
                ? (s || ((s = l), (l = ''), (c = u = 0)), o.push(s), a.push(c - u), (l += p), (s = ''), (c = u += f))
                : (l && ((s += l), (l = ''), (u = 0)), o.push(s), a.push(c), (s = p), (c = f)))
            : g
              ? (o.push(l), a.push(u), (l = p), (u = f))
              : (o.push(p), a.push(f))
          : ((c += f), g ? ((l += p), (u += f)) : (l && ((s += l), (l = ''), (u = 0)), (s += p)))
      } else l && ((s += l), (c += u)), o.push(s), a.push(c), (s = ''), (l = ''), (u = 0), (c = 0)
    }
    return l && (s += l), s && (o.push(s), a.push(c)), 1 === o.length && (c += r), { accumWidth: c, lines: o, linesWidths: a }
  }
  function ja(t, e, n, i, r, o) {
    if (((t.baseX = n), (t.baseY = i), (t.outerWidth = t.outerHeight = null), e)) {
      var a = 2 * e.width,
        s = 2 * e.height
      He.set(qa, Br(n, a, r), Vr(i, s, o), a, s), He.intersect(e, qa, null, Ka)
      var l = Ka.outIntersectRect
      ;(t.outerWidth = l.width), (t.outerHeight = l.height), (t.baseX = Br(l.x, l.width, r, !0)), (t.baseY = Vr(l.y, l.height, o, !0))
    }
  }
  var qa = new He(0, 0, 0, 0),
    Ka = { outIntersectRect: {}, clamp: !0 }
  function $a(t) {
    return null != t ? (t += '') : (t = '')
  }
  function Ja(t, e, n, i) {
    var r = new He(Br(t.x || 0, e, t.textAlign), Vr(t.y || 0, n, t.textBaseline), e, n),
      o = null != i ? i : Qa(t) ? t.lineWidth : 0
    return o > 0 && ((r.x -= o / 2), (r.y -= o / 2), (r.width += o), (r.height += o)), r
  }
  function Qa(t) {
    var e = t.stroke
    return null != e && 'none' !== e && t.lineWidth > 0
  }
  var ts = '__zr_style_' + Math.round(10 * Math.random()),
    es = { shadowBlur: 0, shadowOffsetX: 0, shadowOffsetY: 0, shadowColor: '#000', opacity: 1, blend: 'source-over' },
    ns = { style: { shadowBlur: !0, shadowOffsetX: !0, shadowOffsetY: !0, shadowColor: !0, opacity: !0 } }
  es[ts] = !0
  var is = ['z', 'z2', 'invisible'],
    rs = ['invisible'],
    os = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      var i
      return (
        n(e, t),
        (e.prototype._init = function (e) {
          for (var n = F(e), i = 0; i < n.length; i++) {
            var r = n[i]
            'style' === r ? this.useStyle(e[r]) : t.prototype.attrKV.call(this, r, e[r])
          }
          this.style || this.useStyle({})
        }),
        (e.prototype.beforeBrush = function () {}),
        (e.prototype.afterBrush = function () {}),
        (e.prototype.innerBeforeBrush = function () {}),
        (e.prototype.innerAfterBrush = function () {}),
        (e.prototype.shouldBePainted = function (t, e, n, i) {
          var r = this.transform
          if (
            this.ignore ||
            this.invisible ||
            0 === this.style.opacity ||
            (this.culling &&
              (function (t, e, n) {
                as.copy(t.getBoundingRect()), t.transform && as.applyTransform(t.transform)
                return (ss.width = e), (ss.height = n), !as.intersect(ss)
              })(this, t, e)) ||
            (r && !r[0] && !r[3])
          )
            return !1
          if (n && this.__clipPaths && this.__clipPaths.length) for (var o = 0; o < this.__clipPaths.length; ++o) if (this.__clipPaths[o].isZeroArea()) return !1
          if (i && this.parent)
            for (var a = this.parent; a; ) {
              if (a.ignore) return !1
              a = a.parent
            }
          return !0
        }),
        (e.prototype.contain = function (t, e) {
          return this.rectContain(t, e)
        }),
        (e.prototype.traverse = function (t, e) {
          t.call(e, this)
        }),
        (e.prototype.rectContain = function (t, e) {
          var n = this.transformCoordToLocal(t, e)
          return this.getBoundingRect().contain(n[0], n[1])
        }),
        (e.prototype.getPaintRect = function () {
          var t = this._paintRect
          if (!this._paintRect || this.__dirty) {
            var e = this.transform,
              n = this.getBoundingRect(),
              i = this.style,
              r = i.shadowBlur || 0,
              o = i.shadowOffsetX || 0,
              a = i.shadowOffsetY || 0
            ;(t = this._paintRect || (this._paintRect = new He(0, 0, 0, 0))),
              e ? He.applyTransform(t, n, e) : t.copy(n),
              (r || o || a) && ((t.width += 2 * r + Math.abs(o)), (t.height += 2 * r + Math.abs(a)), (t.x = Math.min(t.x, t.x + o - r)), (t.y = Math.min(t.y, t.y + a - r)))
            var s = this.dirtyRectTolerance
            t.isZero() || ((t.x = Math.floor(t.x - s)), (t.y = Math.floor(t.y - s)), (t.width = Math.ceil(t.width + 1 + 2 * s)), (t.height = Math.ceil(t.height + 1 + 2 * s)))
          }
          return t
        }),
        (e.prototype.setPrevPaintRect = function (t) {
          t ? ((this._prevPaintRect = this._prevPaintRect || new He(0, 0, 0, 0)), this._prevPaintRect.copy(t)) : (this._prevPaintRect = null)
        }),
        (e.prototype.getPrevPaintRect = function () {
          return this._prevPaintRect
        }),
        (e.prototype.animateStyle = function (t) {
          return this.animate('style', t)
        }),
        (e.prototype.updateDuringAnimation = function (t) {
          'style' === t ? this.dirtyStyle() : this.markRedraw()
        }),
        (e.prototype.attrKV = function (e, n) {
          'style' !== e ? t.prototype.attrKV.call(this, e, n) : this.style ? this.setStyle(n) : this.useStyle(n)
        }),
        (e.prototype.setStyle = function (t, e) {
          return 'string' == typeof t ? (this.style[t] = e) : A(this.style, t), this.dirtyStyle(), this
        }),
        (e.prototype.dirtyStyle = function (t) {
          t || this.markRedraw(), (this.__dirty |= 2), this._rect && (this._rect = null)
        }),
        (e.prototype.dirty = function () {
          this.dirtyStyle()
        }),
        (e.prototype.styleChanged = function () {
          return !!(2 & this.__dirty)
        }),
        (e.prototype.styleUpdated = function () {
          this.__dirty &= -3
        }),
        (e.prototype.createStyle = function (t) {
          return mt(es, t)
        }),
        (e.prototype.useStyle = function (t) {
          t[ts] || (t = this.createStyle(t)), this.__inHover ? (this.__hoverStyle = t) : (this.style = t), this.dirtyStyle()
        }),
        (e.prototype.isStyleObject = function (t) {
          return t[ts]
        }),
        (e.prototype._innerSaveToNormal = function (e) {
          t.prototype._innerSaveToNormal.call(this, e)
          var n = this._normalState
          e.style && !n.style && (n.style = this._mergeStyle(this.createStyle(), this.style)), this._savePrimaryToNormal(e, n, is)
        }),
        (e.prototype._applyStateObj = function (e, n, i, r, o, a) {
          t.prototype._applyStateObj.call(this, e, n, i, r, o, a)
          var s,
            l = !(n && r)
          if (
            (n && n.style
              ? o
                ? r
                  ? (s = n.style)
                  : ((s = this._mergeStyle(this.createStyle(), i.style)), this._mergeStyle(s, n.style))
                : ((s = this._mergeStyle(this.createStyle(), r ? this.style : i.style)), this._mergeStyle(s, n.style))
              : l && (s = i.style),
            s)
          )
            if (o) {
              var u = this.style
              if (((this.style = this.createStyle(l ? {} : u)), l))
                for (var c = F(u), h = 0; h < c.length; h++) {
                  ;(p = c[h]) in s && ((s[p] = s[p]), (this.style[p] = u[p]))
                }
              var d = F(s)
              for (h = 0; h < d.length; h++) {
                var p = d[h]
                this.style[p] = this.style[p]
              }
              this._transitionState(e, { style: s }, a, this.getAnimationStyleProps())
            } else this.useStyle(s)
          var f = this.__inHover ? rs : is
          for (h = 0; h < f.length; h++) {
            p = f[h]
            n && null != n[p] ? (this[p] = n[p]) : l && null != i[p] && (this[p] = i[p])
          }
        }),
        (e.prototype._mergeStates = function (e) {
          for (var n, i = t.prototype._mergeStates.call(this, e), r = 0; r < e.length; r++) {
            var o = e[r]
            o.style && ((n = n || {}), this._mergeStyle(n, o.style))
          }
          return n && (i.style = n), i
        }),
        (e.prototype._mergeStyle = function (t, e) {
          return A(t, e), t
        }),
        (e.prototype.getAnimationStyleProps = function () {
          return ns
        }),
        (e.initDefaultProps =
          (((i = e.prototype).type = 'displayable'),
          (i.invisible = !1),
          (i.z = 0),
          (i.z2 = 0),
          (i.zlevel = 0),
          (i.culling = !1),
          (i.cursor = 'pointer'),
          (i.rectHover = !1),
          (i.incremental = !1),
          (i._rect = null),
          (i.dirtyRectTolerance = 0),
          void (i.__dirty = 3))),
        e
      )
    })(qr),
    as = new He(0, 0, 0, 0),
    ss = new He(0, 0, 0, 0)
  var ls = Math.min,
    us = Math.max,
    cs = Math.sin,
    hs = Math.cos,
    ds = 2 * Math.PI,
    ps = It(),
    fs = It(),
    gs = It()
  function ys(t, e, n) {
    if (0 !== t.length) {
      for (var i = t[0], r = i[0], o = i[0], a = i[1], s = i[1], l = 1; l < t.length; l++) (i = t[l]), (r = ls(r, i[0])), (o = us(o, i[0])), (a = ls(a, i[1])), (s = us(s, i[1]))
      ;(e[0] = r), (e[1] = a), (n[0] = o), (n[1] = s)
    }
  }
  function vs(t, e, n, i, r, o) {
    ;(r[0] = ls(t, n)), (r[1] = ls(e, i)), (o[0] = us(t, n)), (o[1] = us(e, i))
  }
  var ms = [],
    xs = []
  function _s(t, e, n, i, r, o, a, s, l, u) {
    var c = Ln,
      h = Dn,
      d = c(t, n, r, a, ms)
    ;(l[0] = 1 / 0), (l[1] = 1 / 0), (u[0] = -1 / 0), (u[1] = -1 / 0)
    for (var p = 0; p < d; p++) {
      var f = h(t, n, r, a, ms[p])
      ;(l[0] = ls(f, l[0])), (u[0] = us(f, u[0]))
    }
    d = c(e, i, o, s, xs)
    for (p = 0; p < d; p++) {
      var g = h(e, i, o, s, xs[p])
      ;(l[1] = ls(g, l[1])), (u[1] = us(g, u[1]))
    }
    ;(l[0] = ls(t, l[0])), (u[0] = us(t, u[0])), (l[0] = ls(a, l[0])), (u[0] = us(a, u[0])), (l[1] = ls(e, l[1])), (u[1] = us(e, u[1])), (l[1] = ls(s, l[1])), (u[1] = us(s, u[1]))
  }
  function bs(t, e, n, i, r, o, a, s) {
    var l = En,
      u = Nn,
      c = us(ls(l(t, n, r), 1), 0),
      h = us(ls(l(e, i, o), 1), 0),
      d = u(t, n, r, c),
      p = u(e, i, o, h)
    ;(a[0] = ls(t, r, d)), (a[1] = ls(e, o, p)), (s[0] = us(t, r, d)), (s[1] = us(e, o, p))
  }
  function ws(t, e, n, i, r, o, a, s, l) {
    var u = Ut,
      c = Yt,
      h = Math.abs(r - o)
    if (h % ds < 1e-4 && h > 1e-4) return (s[0] = t - n), (s[1] = e - i), (l[0] = t + n), void (l[1] = e + i)
    if (
      ((ps[0] = hs(r) * n + t),
      (ps[1] = cs(r) * i + e),
      (fs[0] = hs(o) * n + t),
      (fs[1] = cs(o) * i + e),
      u(s, ps, fs),
      c(l, ps, fs),
      (r %= ds) < 0 && (r += ds),
      (o %= ds) < 0 && (o += ds),
      r > o && !a ? (o += ds) : r < o && a && (r += ds),
      a)
    ) {
      var d = o
      ;(o = r), (r = d)
    }
    for (var p = 0; p < o; p += Math.PI / 2) p > r && ((gs[0] = hs(p) * n + t), (gs[1] = cs(p) * i + e), u(s, gs, s), c(l, gs, l))
  }
  var Ss = { M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7 },
    Ms = [],
    Is = [],
    Ts = [],
    Cs = [],
    Ds = [],
    As = [],
    ks = Math.min,
    Ls = Math.max,
    Ps = Math.cos,
    Os = Math.sin,
    Rs = Math.abs,
    Ns = Math.PI,
    zs = 2 * Ns,
    Es = 'undefined' != typeof Float32Array,
    Bs = []
  function Vs(t) {
    return ((Math.round((t / Ns) * 1e8) / 1e8) % 2) * Ns
  }
  function Gs(t, e) {
    var n = Vs(t[0])
    n < 0 && (n += zs)
    var i = n - t[0],
      r = t[1]
    ;(r += i),
      !e && r - n >= zs ? (r = n + zs) : e && n - r >= zs ? (r = n - zs) : !e && n > r ? (r = n + (zs - Vs(n - r))) : e && n < r && (r = n - (zs - Vs(r - n))),
      (t[0] = n),
      (t[1] = r)
  }
  var Fs = (function () {
    function t(t) {
      ;(this.dpr = 1), (this._xi = 0), (this._yi = 0), (this._x0 = 0), (this._y0 = 0), (this._len = 0), t && (this._saveData = !1), this._saveData && (this.data = [])
    }
    var e
    return (
      (t.prototype.increaseVersion = function () {
        this._version++
      }),
      (t.prototype.getVersion = function () {
        return this._version
      }),
      (t.prototype.setScale = function (t, e, n) {
        ;(n = n || 0) > 0 && ((this._ux = Rs(n / vr / t) || 0), (this._uy = Rs(n / vr / e) || 0))
      }),
      (t.prototype.setDPR = function (t) {
        this.dpr = t
      }),
      (t.prototype.setContext = function (t) {
        this._ctx = t
      }),
      (t.prototype.getContext = function () {
        return this._ctx
      }),
      (t.prototype.beginPath = function () {
        return this._ctx && this._ctx.beginPath(), this.reset(), this
      }),
      (t.prototype.reset = function () {
        this._saveData && (this._len = 0), this._pathSegLen && ((this._pathSegLen = null), (this._pathLen = 0)), this._version++
      }),
      (t.prototype.moveTo = function (t, e) {
        return this._drawPendingPt(), this.addData(Ss.M, t, e), this._ctx && this._ctx.moveTo(t, e), (this._x0 = t), (this._y0 = e), (this._xi = t), (this._yi = e), this
      }),
      (t.prototype.lineTo = function (t, e) {
        var n = Rs(t - this._xi),
          i = Rs(e - this._yi),
          r = n > this._ux || i > this._uy
        if ((this.addData(Ss.L, t, e), this._ctx && r && this._ctx.lineTo(t, e), r)) (this._xi = t), (this._yi = e), (this._pendingPtDist = 0)
        else {
          var o = n * n + i * i
          o > this._pendingPtDist && ((this._pendingPtX = t), (this._pendingPtY = e), (this._pendingPtDist = o))
        }
        return this
      }),
      (t.prototype.bezierCurveTo = function (t, e, n, i, r, o) {
        return this._drawPendingPt(), this.addData(Ss.C, t, e, n, i, r, o), this._ctx && this._ctx.bezierCurveTo(t, e, n, i, r, o), (this._xi = r), (this._yi = o), this
      }),
      (t.prototype.quadraticCurveTo = function (t, e, n, i) {
        return this._drawPendingPt(), this.addData(Ss.Q, t, e, n, i), this._ctx && this._ctx.quadraticCurveTo(t, e, n, i), (this._xi = n), (this._yi = i), this
      }),
      (t.prototype.arc = function (t, e, n, i, r, o) {
        this._drawPendingPt(), (Bs[0] = i), (Bs[1] = r), Gs(Bs, o), (i = Bs[0])
        var a = (r = Bs[1]) - i
        return this.addData(Ss.A, t, e, n, n, i, a, 0, o ? 0 : 1), this._ctx && this._ctx.arc(t, e, n, i, r, o), (this._xi = Ps(r) * n + t), (this._yi = Os(r) * n + e), this
      }),
      (t.prototype.arcTo = function (t, e, n, i, r) {
        return this._drawPendingPt(), this._ctx && this._ctx.arcTo(t, e, n, i, r), this
      }),
      (t.prototype.rect = function (t, e, n, i) {
        return this._drawPendingPt(), this._ctx && this._ctx.rect(t, e, n, i), this.addData(Ss.R, t, e, n, i), this
      }),
      (t.prototype.closePath = function () {
        this._drawPendingPt(), this.addData(Ss.Z)
        var t = this._ctx,
          e = this._x0,
          n = this._y0
        return t && t.closePath(), (this._xi = e), (this._yi = n), this
      }),
      (t.prototype.fill = function (t) {
        t && t.fill(), this.toStatic()
      }),
      (t.prototype.stroke = function (t) {
        t && t.stroke(), this.toStatic()
      }),
      (t.prototype.len = function () {
        return this._len
      }),
      (t.prototype.setData = function (t) {
        if (this._saveData) {
          var e = t.length
          ;(this.data && this.data.length === e) || !Es || (this.data = new Float32Array(e))
          for (var n = 0; n < e; n++) this.data[n] = t[n]
          this._len = e
        }
      }),
      (t.prototype.appendPath = function (t) {
        if (this._saveData) {
          t instanceof Array || (t = [t])
          for (var e = t.length, n = 0, i = this._len, r = 0; r < e; r++) n += t[r].len()
          var o = this.data
          if (Es && (o instanceof Float32Array || !o) && ((this.data = new Float32Array(i + n)), i > 0 && o)) for (var a = 0; a < i; a++) this.data[a] = o[a]
          for (r = 0; r < e; r++) {
            var s = t[r].data
            for (a = 0; a < s.length; a++) this.data[i++] = s[a]
          }
          this._len = i
        }
      }),
      (t.prototype.addData = function (t, e, n, i, r, o, a, s, l) {
        if (this._saveData) {
          var u = this.data
          this._len + arguments.length > u.length && (this._expandData(), (u = this.data))
          for (var c = 0; c < arguments.length; c++) u[this._len++] = arguments[c]
        }
      }),
      (t.prototype._drawPendingPt = function () {
        this._pendingPtDist > 0 && (this._ctx && this._ctx.lineTo(this._pendingPtX, this._pendingPtY), (this._pendingPtDist = 0))
      }),
      (t.prototype._expandData = function () {
        if (!(this.data instanceof Array)) {
          for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e]
          this.data = t
        }
      }),
      (t.prototype.toStatic = function () {
        if (this._saveData) {
          this._drawPendingPt()
          var t = this.data
          t instanceof Array && ((t.length = this._len), Es && this._len > 11 && (this.data = new Float32Array(t)))
        }
      }),
      (t.prototype.getBoundingRect = function () {
        ;(Ts[0] = Ts[1] = Ds[0] = Ds[1] = Number.MAX_VALUE), (Cs[0] = Cs[1] = As[0] = As[1] = -Number.MAX_VALUE)
        var t,
          e = this.data,
          n = 0,
          i = 0,
          r = 0,
          o = 0
        for (t = 0; t < this._len; ) {
          var a = e[t++],
            s = 1 === t
          switch ((s && ((r = n = e[t]), (o = i = e[t + 1])), a)) {
            case Ss.M:
              ;(n = r = e[t++]), (i = o = e[t++]), (Ds[0] = r), (Ds[1] = o), (As[0] = r), (As[1] = o)
              break
            case Ss.L:
              vs(n, i, e[t], e[t + 1], Ds, As), (n = e[t++]), (i = e[t++])
              break
            case Ss.C:
              _s(n, i, e[t++], e[t++], e[t++], e[t++], e[t], e[t + 1], Ds, As), (n = e[t++]), (i = e[t++])
              break
            case Ss.Q:
              bs(n, i, e[t++], e[t++], e[t], e[t + 1], Ds, As), (n = e[t++]), (i = e[t++])
              break
            case Ss.A:
              var l = e[t++],
                u = e[t++],
                c = e[t++],
                h = e[t++],
                d = e[t++],
                p = e[t++] + d
              t += 1
              var f = !e[t++]
              s && ((r = Ps(d) * c + l), (o = Os(d) * h + u)), ws(l, u, c, h, d, p, f, Ds, As), (n = Ps(p) * c + l), (i = Os(p) * h + u)
              break
            case Ss.R:
              vs((r = n = e[t++]), (o = i = e[t++]), r + e[t++], o + e[t++], Ds, As)
              break
            case Ss.Z:
              ;(n = r), (i = o)
          }
          Ut(Ts, Ts, Ds), Yt(Cs, Cs, As)
        }
        return 0 === t && (Ts[0] = Ts[1] = Cs[0] = Cs[1] = 0), new He(Ts[0], Ts[1], Cs[0] - Ts[0], Cs[1] - Ts[1])
      }),
      (t.prototype._calculateLength = function () {
        var t = this.data,
          e = this._len,
          n = this._ux,
          i = this._uy,
          r = 0,
          o = 0,
          a = 0,
          s = 0
        this._pathSegLen || (this._pathSegLen = [])
        for (var l = this._pathSegLen, u = 0, c = 0, h = 0; h < e; ) {
          var d = t[h++],
            p = 1 === h
          p && ((a = r = t[h]), (s = o = t[h + 1]))
          var f = -1
          switch (d) {
            case Ss.M:
              ;(r = a = t[h++]), (o = s = t[h++])
              break
            case Ss.L:
              var g = t[h++],
                y = (x = t[h++]) - o
              ;(Rs((A = g - r)) > n || Rs(y) > i || h === e - 1) && ((f = Math.sqrt(A * A + y * y)), (r = g), (o = x))
              break
            case Ss.C:
              var v = t[h++],
                m = t[h++],
                x = ((g = t[h++]), t[h++]),
                _ = t[h++],
                b = t[h++]
              ;(f = Rn(r, o, v, m, g, x, _, b, 10)), (r = _), (o = b)
              break
            case Ss.Q:
              ;(f = Gn(r, o, (v = t[h++]), (m = t[h++]), (g = t[h++]), (x = t[h++]), 10)), (r = g), (o = x)
              break
            case Ss.A:
              var w = t[h++],
                S = t[h++],
                M = t[h++],
                I = t[h++],
                T = t[h++],
                C = t[h++],
                D = C + T
              ;(h += 1), p && ((a = Ps(T) * M + w), (s = Os(T) * I + S)), (f = Ls(M, I) * ks(zs, Math.abs(C))), (r = Ps(D) * M + w), (o = Os(D) * I + S)
              break
            case Ss.R:
              ;(a = r = t[h++]), (s = o = t[h++]), (f = 2 * t[h++] + 2 * t[h++])
              break
            case Ss.Z:
              var A = a - r
              y = s - o
              ;(f = Math.sqrt(A * A + y * y)), (r = a), (o = s)
          }
          f >= 0 && ((l[c++] = f), (u += f))
        }
        return (this._pathLen = u), u
      }),
      (t.prototype.rebuildPath = function (t, e) {
        var n,
          i,
          r,
          o,
          a,
          s,
          l,
          u,
          c,
          h,
          d = this.data,
          p = this._ux,
          f = this._uy,
          g = this._len,
          y = e < 1,
          v = 0,
          m = 0,
          x = 0
        if (!y || (this._pathSegLen || this._calculateLength(), (l = this._pathSegLen), (u = e * this._pathLen)))
          t: for (var _ = 0; _ < g; ) {
            var b = d[_++],
              w = 1 === _
            switch ((w && ((n = r = d[_]), (i = o = d[_ + 1])), b !== Ss.L && x > 0 && (t.lineTo(c, h), (x = 0)), b)) {
              case Ss.M:
                ;(n = r = d[_++]), (i = o = d[_++]), t.moveTo(r, o)
                break
              case Ss.L:
                ;(a = d[_++]), (s = d[_++])
                var S = Rs(a - r),
                  M = Rs(s - o)
                if (S > p || M > f) {
                  if (y) {
                    if (v + (j = l[m++]) > u) {
                      var I = (u - v) / j
                      t.lineTo(r * (1 - I) + a * I, o * (1 - I) + s * I)
                      break t
                    }
                    v += j
                  }
                  t.lineTo(a, s), (r = a), (o = s), (x = 0)
                } else {
                  var T = S * S + M * M
                  T > x && ((c = a), (h = s), (x = T))
                }
                break
              case Ss.C:
                var C = d[_++],
                  D = d[_++],
                  A = d[_++],
                  k = d[_++],
                  L = d[_++],
                  P = d[_++]
                if (y) {
                  if (v + (j = l[m++]) > u) {
                    Pn(r, C, A, L, (I = (u - v) / j), Ms), Pn(o, D, k, P, I, Is), t.bezierCurveTo(Ms[1], Is[1], Ms[2], Is[2], Ms[3], Is[3])
                    break t
                  }
                  v += j
                }
                t.bezierCurveTo(C, D, A, k, L, P), (r = L), (o = P)
                break
              case Ss.Q:
                ;(C = d[_++]), (D = d[_++]), (A = d[_++]), (k = d[_++])
                if (y) {
                  if (v + (j = l[m++]) > u) {
                    Bn(r, C, A, (I = (u - v) / j), Ms), Bn(o, D, k, I, Is), t.quadraticCurveTo(Ms[1], Is[1], Ms[2], Is[2])
                    break t
                  }
                  v += j
                }
                t.quadraticCurveTo(C, D, A, k), (r = A), (o = k)
                break
              case Ss.A:
                var O = d[_++],
                  R = d[_++],
                  N = d[_++],
                  z = d[_++],
                  E = d[_++],
                  B = d[_++],
                  V = d[_++],
                  G = !d[_++],
                  F = N > z ? N : z,
                  W = Rs(N - z) > 0.001,
                  H = E + B,
                  U = !1
                if (y) v + (j = l[m++]) > u && ((H = E + (B * (u - v)) / j), (U = !0)), (v += j)
                if ((W && t.ellipse ? t.ellipse(O, R, N, z, V, E, H, G) : t.arc(O, R, F, E, H, G), U)) break t
                w && ((n = Ps(E) * N + O), (i = Os(E) * z + R)), (r = Ps(H) * N + O), (o = Os(H) * z + R)
                break
              case Ss.R:
                ;(n = r = d[_]), (i = o = d[_ + 1]), (a = d[_++]), (s = d[_++])
                var Y = d[_++],
                  X = d[_++]
                if (y) {
                  if (v + (j = l[m++]) > u) {
                    var Z = u - v
                    t.moveTo(a, s),
                      t.lineTo(a + ks(Z, Y), s),
                      (Z -= Y) > 0 && t.lineTo(a + Y, s + ks(Z, X)),
                      (Z -= X) > 0 && t.lineTo(a + Ls(Y - Z, 0), s + X),
                      (Z -= Y) > 0 && t.lineTo(a, s + Ls(X - Z, 0))
                    break t
                  }
                  v += j
                }
                t.rect(a, s, Y, X)
                break
              case Ss.Z:
                if (y) {
                  var j
                  if (v + (j = l[m++]) > u) {
                    I = (u - v) / j
                    t.lineTo(r * (1 - I) + n * I, o * (1 - I) + i * I)
                    break t
                  }
                  v += j
                }
                t.closePath(), (r = n), (o = i)
            }
          }
      }),
      (t.prototype.clone = function () {
        var e = new t(),
          n = this.data
        return (e.data = n.slice ? n.slice() : Array.prototype.slice.call(n)), (e._len = this._len), e
      }),
      (t.prototype.canSave = function () {
        return !!this._saveData
      }),
      (t.CMD = Ss),
      (t.initDefaultProps = (((e = t.prototype)._saveData = !0), (e._ux = 0), (e._uy = 0), (e._pendingPtDist = 0), void (e._version = 0))),
      t
    )
  })()
  function Ws(t, e, n, i, r, o, a) {
    if (0 === r) return !1
    var s = r,
      l = 0
    if ((a > e + s && a > i + s) || (a < e - s && a < i - s) || (o > t + s && o > n + s) || (o < t - s && o < n - s)) return !1
    if (t === n) return Math.abs(o - t) <= s / 2
    var u = (l = (e - i) / (t - n)) * o - a + (t * i - n * e) / (t - n)
    return (u * u) / (l * l + 1) <= ((s / 2) * s) / 2
  }
  function Hs(t, e, n, i, r, o, a, s, l, u, c) {
    if (0 === l) return !1
    var h = l
    return (
      !(
        (c > e + h && c > i + h && c > o + h && c > s + h) ||
        (c < e - h && c < i - h && c < o - h && c < s - h) ||
        (u > t + h && u > n + h && u > r + h && u > a + h) ||
        (u < t - h && u < n - h && u < r - h && u < a - h)
      ) && On(t, e, n, i, r, o, a, s, u, c, null) <= h / 2
    )
  }
  function Us(t, e, n, i, r, o, a, s, l) {
    if (0 === a) return !1
    var u = a
    return (
      !((l > e + u && l > i + u && l > o + u) || (l < e - u && l < i - u && l < o - u) || (s > t + u && s > n + u && s > r + u) || (s < t - u && s < n - u && s < r - u)) &&
      Vn(t, e, n, i, r, o, s, l, null) <= u / 2
    )
  }
  var Ys = 2 * Math.PI
  function Xs(t) {
    return (t %= Ys) < 0 && (t += Ys), t
  }
  var Zs = 2 * Math.PI
  function js(t, e, n, i, r, o, a, s, l) {
    if (0 === a) return !1
    var u = a
    ;(s -= t), (l -= e)
    var c = Math.sqrt(s * s + l * l)
    if (c - u > n || c + u < n) return !1
    if (Math.abs(i - r) % Zs < 1e-4) return !0
    if (o) {
      var h = i
      ;(i = Xs(r)), (r = Xs(h))
    } else (i = Xs(i)), (r = Xs(r))
    i > r && (r += Zs)
    var d = Math.atan2(l, s)
    return d < 0 && (d += Zs), (d >= i && d <= r) || (d + Zs >= i && d + Zs <= r)
  }
  function qs(t, e, n, i, r, o) {
    if ((o > e && o > i) || (o < e && o < i)) return 0
    if (i === e) return 0
    var a = (o - e) / (i - e),
      s = i < e ? 1 : -1
    ;(1 !== a && 0 !== a) || (s = i < e ? 0.5 : -0.5)
    var l = a * (n - t) + t
    return l === r ? 1 / 0 : l > r ? s : 0
  }
  var Ks = Fs.CMD,
    $s = 2 * Math.PI
  var Js = [-1, -1, -1],
    Qs = [-1, -1]
  function tl(t, e, n, i, r, o, a, s, l, u) {
    if ((u > e && u > i && u > o && u > s) || (u < e && u < i && u < o && u < s)) return 0
    var c,
      h = kn(e, i, o, s, u, Js)
    if (0 === h) return 0
    for (var d = 0, p = -1, f = void 0, g = void 0, y = 0; y < h; y++) {
      var v = Js[y],
        m = 0 === v || 1 === v ? 0.5 : 1
      Dn(t, n, r, a, v) < l ||
        (p < 0 &&
          ((p = Ln(e, i, o, s, Qs)),
          Qs[1] < Qs[0] && p > 1 && ((c = void 0), (c = Qs[0]), (Qs[0] = Qs[1]), (Qs[1] = c)),
          (f = Dn(e, i, o, s, Qs[0])),
          p > 1 && (g = Dn(e, i, o, s, Qs[1]))),
        2 === p ? (v < Qs[0] ? (d += f < e ? m : -m) : v < Qs[1] ? (d += g < f ? m : -m) : (d += s < g ? m : -m)) : v < Qs[0] ? (d += f < e ? m : -m) : (d += s < f ? m : -m))
    }
    return d
  }
  function el(t, e, n, i, r, o, a, s) {
    if ((s > e && s > i && s > o) || (s < e && s < i && s < o)) return 0
    var l = (function (t, e, n, i, r) {
      var o = t - 2 * e + n,
        a = 2 * (e - t),
        s = t - i,
        l = 0
      if (Tn(o)) Cn(a) && (c = -s / a) >= 0 && c <= 1 && (r[l++] = c)
      else {
        var u = a * a - 4 * o * s
        if (Tn(u)) (c = -a / (2 * o)) >= 0 && c <= 1 && (r[l++] = c)
        else if (u > 0) {
          var c,
            h = mn(u),
            d = (-a - h) / (2 * o)
          ;(c = (-a + h) / (2 * o)) >= 0 && c <= 1 && (r[l++] = c), d >= 0 && d <= 1 && (r[l++] = d)
        }
      }
      return l
    })(e, i, o, s, Js)
    if (0 === l) return 0
    var u = En(e, i, o)
    if (u >= 0 && u <= 1) {
      for (var c = 0, h = Nn(e, i, o, u), d = 0; d < l; d++) {
        var p = 0 === Js[d] || 1 === Js[d] ? 0.5 : 1
        Nn(t, n, r, Js[d]) < a || (Js[d] < u ? (c += h < e ? p : -p) : (c += o < h ? p : -p))
      }
      return c
    }
    p = 0 === Js[0] || 1 === Js[0] ? 0.5 : 1
    return Nn(t, n, r, Js[0]) < a ? 0 : o < e ? p : -p
  }
  function nl(t, e, n, i, r, o, a, s) {
    if ((s -= e) > n || s < -n) return 0
    var l = Math.sqrt(n * n - s * s)
    ;(Js[0] = -l), (Js[1] = l)
    var u = Math.abs(i - r)
    if (u < 1e-4) return 0
    if (u >= $s - 1e-4) {
      ;(i = 0), (r = $s)
      var c = o ? 1 : -1
      return a >= Js[0] + t && a <= Js[1] + t ? c : 0
    }
    if (i > r) {
      var h = i
      ;(i = r), (r = h)
    }
    i < 0 && ((i += $s), (r += $s))
    for (var d = 0, p = 0; p < 2; p++) {
      var f = Js[p]
      if (f + t > a) {
        var g = Math.atan2(s, f)
        c = o ? 1 : -1
        g < 0 && (g = $s + g), ((g >= i && g <= r) || (g + $s >= i && g + $s <= r)) && (g > Math.PI / 2 && g < 1.5 * Math.PI && (c = -c), (d += c))
      }
    }
    return d
  }
  function il(t, e, n, i, r) {
    for (var o, a, s, l, u = t.data, c = t.len(), h = 0, d = 0, p = 0, f = 0, g = 0, y = 0; y < c; ) {
      var v = u[y++],
        m = 1 === y
      switch ((v === Ks.M && y > 1 && (n || (h += qs(d, p, f, g, i, r))), m && ((f = d = u[y]), (g = p = u[y + 1])), v)) {
        case Ks.M:
          ;(d = f = u[y++]), (p = g = u[y++])
          break
        case Ks.L:
          if (n) {
            if (Ws(d, p, u[y], u[y + 1], e, i, r)) return !0
          } else h += qs(d, p, u[y], u[y + 1], i, r) || 0
          ;(d = u[y++]), (p = u[y++])
          break
        case Ks.C:
          if (n) {
            if (Hs(d, p, u[y++], u[y++], u[y++], u[y++], u[y], u[y + 1], e, i, r)) return !0
          } else h += tl(d, p, u[y++], u[y++], u[y++], u[y++], u[y], u[y + 1], i, r) || 0
          ;(d = u[y++]), (p = u[y++])
          break
        case Ks.Q:
          if (n) {
            if (Us(d, p, u[y++], u[y++], u[y], u[y + 1], e, i, r)) return !0
          } else h += el(d, p, u[y++], u[y++], u[y], u[y + 1], i, r) || 0
          ;(d = u[y++]), (p = u[y++])
          break
        case Ks.A:
          var x = u[y++],
            _ = u[y++],
            b = u[y++],
            w = u[y++],
            S = u[y++],
            M = u[y++]
          y += 1
          var I = !!(1 - u[y++])
          ;(o = Math.cos(S) * b + x), (a = Math.sin(S) * w + _), m ? ((f = o), (g = a)) : (h += qs(d, p, o, a, i, r))
          var T = ((i - x) * w) / b + x
          if (n) {
            if (js(x, _, w, S, S + M, I, e, T, r)) return !0
          } else h += nl(x, _, w, S, S + M, I, T, r)
          ;(d = Math.cos(S + M) * b + x), (p = Math.sin(S + M) * w + _)
          break
        case Ks.R:
          if (((f = d = u[y++]), (g = p = u[y++]), (o = f + u[y++]), (a = g + u[y++]), n)) {
            if (Ws(f, g, o, g, e, i, r) || Ws(o, g, o, a, e, i, r) || Ws(o, a, f, a, e, i, r) || Ws(f, a, f, g, e, i, r)) return !0
          } else (h += qs(o, g, o, a, i, r)), (h += qs(f, a, f, g, i, r))
          break
        case Ks.Z:
          if (n) {
            if (Ws(d, p, f, g, e, i, r)) return !0
          } else h += qs(d, p, f, g, i, r)
          ;(d = f), (p = g)
      }
    }
    return n || ((s = p), (l = g), Math.abs(s - l) < 1e-4) || (h += qs(d, p, f, g, i, r) || 0), 0 !== h
  }
  var rl = k(
      {
        fill: '#000',
        stroke: null,
        strokePercent: 1,
        fillOpacity: 1,
        strokeOpacity: 1,
        lineDashOffset: 0,
        lineWidth: 1,
        lineCap: 'butt',
        miterLimit: 10,
        strokeNoScale: !1,
        strokeFirst: !1
      },
      es
    ),
    ol = { style: k({ fill: !0, stroke: !0, strokePercent: !0, fillOpacity: !0, strokeOpacity: !0, lineDashOffset: !0, lineWidth: !0, miterLimit: !0 }, ns.style) },
    al = Ar.concat(['invisible', 'culling', 'z', 'z2', 'zlevel', 'parent']),
    sl = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      var i
      return (
        n(e, t),
        (e.prototype.update = function () {
          var n = this
          t.prototype.update.call(this)
          var i = this.style
          if (i.decal) {
            var r = (this._decalEl = this._decalEl || new e())
            r.buildPath === e.prototype.buildPath &&
              (r.buildPath = function (t) {
                n.buildPath(t, n.shape)
              }),
              (r.silent = !0)
            var o = r.style
            for (var a in i) o[a] !== i[a] && (o[a] = i[a])
            ;(o.fill = i.fill ? i.decal : null), (o.decal = null), (o.shadowColor = null), i.strokeFirst && (o.stroke = null)
            for (var s = 0; s < al.length; ++s) r[al[s]] = this[al[s]]
            r.__dirty |= 1
          } else this._decalEl && (this._decalEl = null)
        }),
        (e.prototype.getDecalElement = function () {
          return this._decalEl
        }),
        (e.prototype._init = function (e) {
          var n = F(e)
          this.shape = this.getDefaultShape()
          var i = this.getDefaultStyle()
          i && this.useStyle(i)
          for (var r = 0; r < n.length; r++) {
            var o = n[r],
              a = e[o]
            'style' === o ? (this.style ? A(this.style, a) : this.useStyle(a)) : 'shape' === o ? A(this.shape, a) : t.prototype.attrKV.call(this, o, a)
          }
          this.style || this.useStyle({})
        }),
        (e.prototype.getDefaultStyle = function () {
          return null
        }),
        (e.prototype.getDefaultShape = function () {
          return {}
        }),
        (e.prototype.canBeInsideText = function () {
          return this.hasFill()
        }),
        (e.prototype.getInsideTextFill = function () {
          var t = this.style.fill
          if ('none' !== t) {
            if (X(t)) {
              var e = gi(t, 0)
              return e > 0.5 ? mr : e > 0.2 ? '#eee' : xr
            }
            if (t) return xr
          }
          return mr
        }),
        (e.prototype.getInsideTextStroke = function (t) {
          var e = this.style.fill
          if (X(e)) {
            var n = this.__zr
            if (!(!n || !n.isDarkMode()) === gi(t, 0) < 0.4) return e
          }
        }),
        (e.prototype.buildPath = function (t, e, n) {}),
        (e.prototype.pathUpdated = function () {
          this.__dirty &= -5
        }),
        (e.prototype.getUpdatedPathProxy = function (t) {
          return !this.path && this.createPathProxy(), this.path.beginPath(), this.buildPath(this.path, this.shape, t), this.path
        }),
        (e.prototype.createPathProxy = function () {
          this.path = new Fs(!1)
        }),
        (e.prototype.hasStroke = function () {
          var t = this.style,
            e = t.stroke
          return !(null == e || 'none' === e || !(t.lineWidth > 0))
        }),
        (e.prototype.hasFill = function () {
          var t = this.style.fill
          return null != t && 'none' !== t
        }),
        (e.prototype.getBoundingRect = function () {
          var t = this._rect,
            e = this.style,
            n = !t
          if (n) {
            var i = !1
            this.path || ((i = !0), this.createPathProxy())
            var r = this.path
            ;(i || 4 & this.__dirty) && (r.beginPath(), this.buildPath(r, this.shape, !1), this.pathUpdated()), (t = r.getBoundingRect())
          }
          if (((this._rect = t), this.hasStroke() && this.path && this.path.len() > 0)) {
            var o = this._rectStroke || (this._rectStroke = t.clone())
            if (this.__dirty || n) {
              o.copy(t)
              var a = e.strokeNoScale ? this.getLineScale() : 1,
                s = e.lineWidth
              if (!this.hasFill()) {
                var l = this.strokeContainThreshold
                s = Math.max(s, null == l ? 4 : l)
              }
              a > 1e-10 && ((o.width += s / a), (o.height += s / a), (o.x -= s / a / 2), (o.y -= s / a / 2))
            }
            return o
          }
          return t
        }),
        (e.prototype.contain = function (t, e) {
          var n = this.transformCoordToLocal(t, e),
            i = this.getBoundingRect(),
            r = this.style
          if (((t = n[0]), (e = n[1]), i.contain(t, e))) {
            var o = this.path
            if (this.hasStroke()) {
              var a = r.lineWidth,
                s = r.strokeNoScale ? this.getLineScale() : 1
              if (
                s > 1e-10 &&
                (this.hasFill() || (a = Math.max(a, this.strokeContainThreshold)),
                (function (t, e, n, i) {
                  return il(t, e, !0, n, i)
                })(o, a / s, t, e))
              )
                return !0
            }
            if (this.hasFill())
              return (function (t, e, n) {
                return il(t, 0, !1, e, n)
              })(o, t, e)
          }
          return !1
        }),
        (e.prototype.dirtyShape = function () {
          ;(this.__dirty |= 4), this._rect && (this._rect = null), this._decalEl && this._decalEl.dirtyShape(), this.markRedraw()
        }),
        (e.prototype.dirty = function () {
          this.dirtyStyle(), this.dirtyShape()
        }),
        (e.prototype.animateShape = function (t) {
          return this.animate('shape', t)
        }),
        (e.prototype.updateDuringAnimation = function (t) {
          'style' === t ? this.dirtyStyle() : 'shape' === t ? this.dirtyShape() : this.markRedraw()
        }),
        (e.prototype.attrKV = function (e, n) {
          'shape' === e ? this.setShape(n) : t.prototype.attrKV.call(this, e, n)
        }),
        (e.prototype.setShape = function (t, e) {
          var n = this.shape
          return n || (n = this.shape = {}), 'string' == typeof t ? (n[t] = e) : A(n, t), this.dirtyShape(), this
        }),
        (e.prototype.shapeChanged = function () {
          return !!(4 & this.__dirty)
        }),
        (e.prototype.createStyle = function (t) {
          return mt(rl, t)
        }),
        (e.prototype._innerSaveToNormal = function (e) {
          t.prototype._innerSaveToNormal.call(this, e)
          var n = this._normalState
          e.shape && !n.shape && (n.shape = A({}, this.shape))
        }),
        (e.prototype._applyStateObj = function (e, n, i, r, o, a) {
          t.prototype._applyStateObj.call(this, e, n, i, r, o, a)
          var s,
            l = !(n && r)
          if ((n && n.shape ? (o ? (r ? (s = n.shape) : ((s = A({}, i.shape)), A(s, n.shape))) : ((s = A({}, r ? this.shape : i.shape)), A(s, n.shape))) : l && (s = i.shape), s))
            if (o) {
              this.shape = A({}, this.shape)
              for (var u = {}, c = F(s), h = 0; h < c.length; h++) {
                var d = c[h]
                'object' == typeof s[d] ? (this.shape[d] = s[d]) : (u[d] = s[d])
              }
              this._transitionState(e, { shape: u }, a)
            } else (this.shape = s), this.dirtyShape()
        }),
        (e.prototype._mergeStates = function (e) {
          for (var n, i = t.prototype._mergeStates.call(this, e), r = 0; r < e.length; r++) {
            var o = e[r]
            o.shape && ((n = n || {}), this._mergeStyle(n, o.shape))
          }
          return n && (i.shape = n), i
        }),
        (e.prototype.getAnimationStyleProps = function () {
          return ol
        }),
        (e.prototype.isZeroArea = function () {
          return !1
        }),
        (e.extend = function (t) {
          var i = (function (e) {
            function i(n) {
              var i = e.call(this, n) || this
              return t.init && t.init.call(i, n), i
            }
            return (
              n(i, e),
              (i.prototype.getDefaultStyle = function () {
                return T(t.style)
              }),
              (i.prototype.getDefaultShape = function () {
                return T(t.shape)
              }),
              i
            )
          })(e)
          for (var r in t) 'function' == typeof t[r] && (i.prototype[r] = t[r])
          return i
        }),
        (e.initDefaultProps =
          (((i = e.prototype).type = 'path'), (i.strokeContainThreshold = 5), (i.segmentIgnoreThreshold = 0), (i.subPixelOptimize = !1), (i.autoBatch = !1), void (i.__dirty = 7))),
        e
      )
    })(os),
    ll = k({ strokeFirst: !0, font: a, x: 0, y: 0, textAlign: 'left', textBaseline: 'top', miterLimit: 2 }, rl),
    ul = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.hasStroke = function () {
          return Qa(this.style)
        }),
        (e.prototype.hasFill = function () {
          var t = this.style.fill
          return null != t && 'none' !== t
        }),
        (e.prototype.createStyle = function (t) {
          return mt(ll, t)
        }),
        (e.prototype.setBoundingRect = function (t) {
          this._rect = t
        }),
        (e.prototype.getBoundingRect = function () {
          var t, e, n
          return this._rect || (this._rect = ((t = this.style), (e = $a(t.text)), (n = t.font), Ja(t, Nr(Lr(n), e), Gr(n), null))), this._rect
        }),
        (e.initDefaultProps = void (e.prototype.dirtyRectTolerance = 10)),
        e
      )
    })(os)
  ul.prototype.type = 'tspan'
  var cl = k({ x: 0, y: 0 }, es),
    hl = { style: k({ x: !0, y: !0, width: !0, height: !0, sx: !0, sy: !0, sWidth: !0, sHeight: !0 }, ns.style) }
  var dl = (function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    return (
      n(e, t),
      (e.prototype.createStyle = function (t) {
        return mt(cl, t)
      }),
      (e.prototype._getSize = function (t) {
        var e = this.style,
          n = e[t]
        if (null != n) return n
        var i,
          r = (i = e.image) && 'string' != typeof i && i.width && i.height ? e.image : this.__image
        if (!r) return 0
        var o = 'width' === t ? 'height' : 'width',
          a = e[o]
        return null == a ? r[t] : (r[t] / r[o]) * a
      }),
      (e.prototype.getWidth = function () {
        return this._getSize('width')
      }),
      (e.prototype.getHeight = function () {
        return this._getSize('height')
      }),
      (e.prototype.getAnimationStyleProps = function () {
        return hl
      }),
      (e.prototype.getBoundingRect = function () {
        var t = this.style
        return this._rect || (this._rect = new He(t.x || 0, t.y || 0, this.getWidth(), this.getHeight())), this._rect
      }),
      e
    )
  })(os)
  dl.prototype.type = 'image'
  var pl = Math.round
  function fl(t, e, n) {
    if (e) {
      var i = e.x1,
        r = e.x2,
        o = e.y1,
        a = e.y2
      ;(t.x1 = i), (t.x2 = r), (t.y1 = o), (t.y2 = a)
      var s = n && n.lineWidth
      return s ? (pl(2 * i) === pl(2 * r) && (t.x1 = t.x2 = yl(i, s, !0)), pl(2 * o) === pl(2 * a) && (t.y1 = t.y2 = yl(o, s, !0)), t) : t
    }
  }
  function gl(t, e, n) {
    if (e) {
      var i = e.x,
        r = e.y,
        o = e.width,
        a = e.height
      ;(t.x = i), (t.y = r), (t.width = o), (t.height = a)
      var s = n && n.lineWidth
      return s
        ? ((t.x = yl(i, s, !0)),
          (t.y = yl(r, s, !0)),
          (t.width = Math.max(yl(i + o, s, !1) - t.x, 0 === o ? 0 : 1)),
          (t.height = Math.max(yl(r + a, s, !1) - t.y, 0 === a ? 0 : 1)),
          t)
        : t
    }
  }
  function yl(t, e, n) {
    if (!e) return t
    var i = pl(2 * t)
    return (i + pl(e)) % 2 == 0 ? i / 2 : (i + (n ? 1 : -1)) / 2
  }
  var vl = function () {
      ;(this.x = 0), (this.y = 0), (this.width = 0), (this.height = 0)
    },
    ml = {},
    xl = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new vl()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n, i, r, o
          if (this.subPixelOptimize) {
            var a = gl(ml, e, this.style)
            ;(n = a.x), (i = a.y), (r = a.width), (o = a.height), (a.r = e.r), (e = a)
          } else (n = e.x), (i = e.y), (r = e.width), (o = e.height)
          e.r
            ? (function (t, e) {
                var n,
                  i,
                  r,
                  o,
                  a,
                  s = e.x,
                  l = e.y,
                  u = e.width,
                  c = e.height,
                  h = e.r
                u < 0 && ((s += u), (u = -u)),
                  c < 0 && ((l += c), (c = -c)),
                  'number' == typeof h
                    ? (n = i = r = o = h)
                    : h instanceof Array
                      ? 1 === h.length
                        ? (n = i = r = o = h[0])
                        : 2 === h.length
                          ? ((n = r = h[0]), (i = o = h[1]))
                          : 3 === h.length
                            ? ((n = h[0]), (i = o = h[1]), (r = h[2]))
                            : ((n = h[0]), (i = h[1]), (r = h[2]), (o = h[3]))
                      : (n = i = r = o = 0),
                  n + i > u && ((n *= u / (a = n + i)), (i *= u / a)),
                  r + o > u && ((r *= u / (a = r + o)), (o *= u / a)),
                  i + r > c && ((i *= c / (a = i + r)), (r *= c / a)),
                  n + o > c && ((n *= c / (a = n + o)), (o *= c / a)),
                  t.moveTo(s + n, l),
                  t.lineTo(s + u - i, l),
                  0 !== i && t.arc(s + u - i, l + i, i, -Math.PI / 2, 0),
                  t.lineTo(s + u, l + c - r),
                  0 !== r && t.arc(s + u - r, l + c - r, r, 0, Math.PI / 2),
                  t.lineTo(s + o, l + c),
                  0 !== o && t.arc(s + o, l + c - o, o, Math.PI / 2, Math.PI),
                  t.lineTo(s, l + n),
                  0 !== n && t.arc(s + n, l + n, n, Math.PI, 1.5 * Math.PI)
              })(t, e)
            : t.rect(n, i, r, o)
        }),
        (e.prototype.isZeroArea = function () {
          return !this.shape.width || !this.shape.height
        }),
        e
      )
    })(sl)
  xl.prototype.type = 'rect'
  var _l = { fill: '#000' },
    bl = {},
    wl = {
      style: k(
        {
          fill: !0,
          stroke: !0,
          fillOpacity: !0,
          strokeOpacity: !0,
          lineWidth: !0,
          fontSize: !0,
          lineHeight: !0,
          width: !0,
          height: !0,
          textShadowColor: !0,
          textShadowBlur: !0,
          textShadowOffsetX: !0,
          textShadowOffsetY: !0,
          backgroundColor: !0,
          padding: !0,
          borderColor: !0,
          borderWidth: !0,
          borderRadius: !0
        },
        ns.style
      )
    },
    Sl = (function (t) {
      function e(e) {
        var n = t.call(this) || this
        return (n.type = 'text'), (n._children = []), (n._defaultStyle = _l), n.attr(e), n
      }
      return (
        n(e, t),
        (e.prototype.childrenRef = function () {
          return this._children
        }),
        (e.prototype.update = function () {
          t.prototype.update.call(this), this.styleChanged() && this._updateSubTexts()
          for (var e = 0; e < this._children.length; e++) {
            var n = this._children[e]
            ;(n.zlevel = this.zlevel), (n.z = this.z), (n.z2 = this.z2), (n.culling = this.culling), (n.cursor = this.cursor), (n.invisible = this.invisible)
          }
        }),
        (e.prototype.updateTransform = function () {
          var e = this.innerTransformable
          e ? (e.updateTransform(), e.transform && (this.transform = e.transform)) : t.prototype.updateTransform.call(this)
        }),
        (e.prototype.getLocalTransform = function (e) {
          var n = this.innerTransformable
          return n ? n.getLocalTransform(e) : t.prototype.getLocalTransform.call(this, e)
        }),
        (e.prototype.getComputedTransform = function () {
          return this.__hostTarget && (this.__hostTarget.getComputedTransform(), this.__hostTarget.updateInnerText(!0)), t.prototype.getComputedTransform.call(this)
        }),
        (e.prototype._updateSubTexts = function () {
          var t
          ;(this._childCursor = 0),
            kl((t = this.style)),
            z(t.rich, kl),
            this.style.rich ? this._updateRichTexts() : this._updatePlainTexts(),
            (this._children.length = this._childCursor),
            this.styleUpdated()
        }),
        (e.prototype.addSelfToZr = function (e) {
          t.prototype.addSelfToZr.call(this, e)
          for (var n = 0; n < this._children.length; n++) this._children[n].__zr = e
        }),
        (e.prototype.removeSelfFromZr = function (e) {
          t.prototype.removeSelfFromZr.call(this, e)
          for (var n = 0; n < this._children.length; n++) this._children[n].__zr = null
        }),
        (e.prototype.getBoundingRect = function () {
          if ((this.styleChanged() && this._updateSubTexts(), !this._rect)) {
            for (var t = new He(0, 0, 0, 0), e = this._children, n = [], i = null, r = 0; r < e.length; r++) {
              var o = e[r],
                a = o.getBoundingRect(),
                s = o.getLocalTransform(n)
              s ? (t.copy(a), t.applyTransform(s), (i = i || t.clone()).union(t)) : (i = i || a.clone()).union(a)
            }
            this._rect = i || t
          }
          return this._rect
        }),
        (e.prototype.setDefaultTextStyle = function (t) {
          this._defaultStyle = t || _l
        }),
        (e.prototype.setTextContent = function (t) {
          0
        }),
        (e.prototype._mergeStyle = function (t, e) {
          if (!e) return t
          var n = e.rich,
            i = t.rich || (n && {})
          return A(t, e), n && i ? (this._mergeRich(i, n), (t.rich = i)) : i && (t.rich = i), t
        }),
        (e.prototype._mergeRich = function (t, e) {
          for (var n = F(e), i = 0; i < n.length; i++) {
            var r = n[i]
            ;(t[r] = t[r] || {}), A(t[r], e[r])
          }
        }),
        (e.prototype.getAnimationStyleProps = function () {
          return wl
        }),
        (e.prototype._getOrCreateChild = function (t) {
          var e = this._children[this._childCursor]
          return (e && e instanceof t) || (e = new t()), (this._children[this._childCursor++] = e), (e.__zr = this.__zr), (e.parent = this), e
        }),
        (e.prototype._updatePlainTexts = function () {
          var t = this.style,
            e = t.font || a,
            n = t.padding,
            i = this._defaultStyle,
            r = t.x || 0,
            o = t.y || 0,
            s = t.align || i.align || 'left',
            l = t.verticalAlign || i.verticalAlign || 'top'
          ja(bl, i.overflowRect, r, o, s, l), (r = bl.baseX), (o = bl.baseY)
          var u = (function (t, e, n, i) {
              var r = $a(t),
                o = e.overflow,
                a = e.padding,
                s = a ? a[1] + a[3] : 0,
                l = a ? a[0] + a[2] : 0,
                u = e.font,
                c = 'truncate' === o,
                h = Gr(u),
                d = rt(e.lineHeight, h),
                p = 'truncate' === e.lineOverflow,
                f = !1,
                g = e.width
              null == g && null != n && (g = n - s)
              var y,
                v = e.height
              null == v && null != i && (v = i - l)
              var m = (y = null == g || ('break' !== o && 'breakAll' !== o) ? (r ? r.split('\n') : []) : r ? Za(r, e.font, g, 'breakAll' === o, 0).lines : []).length * d
              if ((null == v && (v = m), m > v && p)) {
                var x = Math.floor(v / d)
                ;(f = f || y.length > x), (m = (y = y.slice(0, x)).length * d)
              }
              if (r && c && null != g)
                for (var _ = Ba(g, u, e.ellipsis, { minChar: e.truncateMinChar, placeholder: e.placeholder }), b = {}, w = 0; w < y.length; w++)
                  Va(b, y[w], _), (y[w] = b.textLine), (f = f || b.isTruncated)
              var S = v,
                M = 0,
                I = Lr(u)
              for (w = 0; w < y.length; w++) M = Math.max(Nr(I, y[w]), M)
              null == g && (g = M)
              var T = g
              return {
                lines: y,
                height: v,
                outerWidth: (T += s),
                outerHeight: (S += l),
                lineHeight: d,
                calculatedLineHeight: h,
                contentWidth: M,
                contentHeight: m,
                width: g,
                isTruncated: f
              }
            })(Rl(t), t, bl.outerWidth, bl.outerHeight),
            c = Nl(t),
            h = !!t.backgroundColor,
            d = u.outerHeight,
            p = u.outerWidth,
            f = u.lines,
            g = u.lineHeight
          this.isTruncated = !!u.isTruncated
          var y = r,
            v = Vr(o, u.contentHeight, l)
          if (c || n) {
            var m = Br(r, p, s),
              x = Vr(o, d, l)
            c && this._renderBackground(t, t, m, x, p, d)
          }
          ;(v += g / 2), n && ((y = Ol(r, s, n)), 'top' === l ? (v += n[0]) : 'bottom' === l && (v -= n[2]))
          for (
            var _ = 0,
              b = !1,
              w = !1,
              S = Pl(('fill' in t) ? t.fill : ((w = !0), i.fill)),
              M = Ll(('stroke' in t) ? t.stroke : h || (i.autoStroke && !w) ? null : ((_ = 2), (b = !0), i.stroke)),
              I = t.textShadowBlur > 0,
              T = 0;
            T < f.length;
            T++
          ) {
            var C = this._getOrCreateChild(ul),
              D = C.createStyle()
            C.useStyle(D),
              (D.text = f[T]),
              (D.x = y),
              (D.y = v),
              s && (D.textAlign = s),
              (D.textBaseline = 'middle'),
              (D.opacity = t.opacity),
              (D.strokeFirst = !0),
              I &&
                ((D.shadowBlur = t.textShadowBlur || 0),
                (D.shadowColor = t.textShadowColor || 'transparent'),
                (D.shadowOffsetX = t.textShadowOffsetX || 0),
                (D.shadowOffsetY = t.textShadowOffsetY || 0)),
              (D.stroke = M),
              (D.fill = S),
              M && ((D.lineWidth = t.lineWidth || _), (D.lineDash = t.lineDash), (D.lineDashOffset = t.lineDashOffset || 0)),
              (D.font = e),
              Dl(D, t),
              (v += g),
              C.setBoundingRect(Ja(D, u.contentWidth, u.calculatedLineHeight, b ? 0 : null))
          }
        }),
        (e.prototype._updateRichTexts = function () {
          var t = this.style,
            e = this._defaultStyle,
            n = t.align || e.align,
            i = t.verticalAlign || e.verticalAlign,
            r = t.x || 0,
            o = t.y || 0
          ja(bl, e.overflowRect, r, o, n, i), (r = bl.baseX), (o = bl.baseY)
          var a = (function (t, e, n, i, r) {
              var o = new Ha(),
                a = $a(t)
              if (!a) return o
              var s = e.padding,
                l = s ? s[1] + s[3] : 0,
                u = s ? s[0] + s[2] : 0,
                c = e.width
              null == c && null != n && (c = n - l)
              var h = e.height
              null == h && null != i && (h = i - u)
              for (
                var d,
                  p = e.overflow,
                  f = ('break' !== p && 'breakAll' !== p) || null == c ? null : { width: c, accumWidth: 0, breakAll: 'breakAll' === p },
                  g = (za.lastIndex = 0);
                null != (d = za.exec(a));

              ) {
                var y = d.index
                y > g && Ua(o, a.substring(g, y), e, f), Ua(o, d[2], e, f, d[1]), (g = za.lastIndex)
              }
              g < a.length && Ua(o, a.substring(g, a.length), e, f)
              var v = [],
                m = 0,
                x = 0,
                _ = 'truncate' === p,
                b = 'truncate' === e.lineOverflow,
                w = {}
              function S(t, e, n) {
                ;(t.width = e), (t.lineHeight = n), (m += n), (x = Math.max(x, e))
              }
              t: for (var M = 0; M < o.lines.length; M++) {
                for (var I = o.lines[M], T = 0, C = 0, D = 0; D < I.tokens.length; D++) {
                  var A = ((G = I.tokens[D]).styleName && e.rich[G.styleName]) || {},
                    k = (G.textPadding = A.padding),
                    L = k ? k[1] + k[3] : 0,
                    P = (G.font = A.font || e.font)
                  G.contentHeight = Gr(P)
                  var O = rt(A.height, G.contentHeight)
                  if (
                    ((G.innerHeight = O),
                    k && (O += k[0] + k[2]),
                    (G.height = O),
                    (G.lineHeight = ot(A.lineHeight, e.lineHeight, O)),
                    (G.align = (A && A.align) || r),
                    (G.verticalAlign = (A && A.verticalAlign) || 'middle'),
                    b && null != h && m + G.lineHeight > h)
                  ) {
                    var R = o.lines.length
                    D > 0 ? ((I.tokens = I.tokens.slice(0, D)), S(I, C, T), (o.lines = o.lines.slice(0, M + 1))) : (o.lines = o.lines.slice(0, M)),
                      (o.isTruncated = o.isTruncated || o.lines.length < R)
                    break t
                  }
                  var N = A.width,
                    z = null == N || 'auto' === N
                  if ('string' == typeof N && '%' === N.charAt(N.length - 1)) (G.percentWidth = N), v.push(G), (G.contentWidth = Nr(Lr(P), G.text))
                  else {
                    if (z) {
                      var E = A.backgroundColor,
                        B = E && E.image
                      B && Na((B = Pa(B))) && (G.width = Math.max(G.width, (B.width * O) / B.height))
                    }
                    var V = _ && null != c ? c - C : null
                    null != V && V < G.width
                      ? !z || V < L
                        ? ((G.text = ''), (G.width = G.contentWidth = 0))
                        : (Ea(w, G.text, V - L, P, e.ellipsis, { minChar: e.truncateMinChar }),
                          (G.text = w.text),
                          (o.isTruncated = o.isTruncated || w.isTruncated),
                          (G.width = G.contentWidth = Nr(Lr(P), G.text)))
                      : (G.contentWidth = Nr(Lr(P), G.text))
                  }
                  ;(G.width += L), (C += G.width), A && (T = Math.max(T, G.lineHeight))
                }
                S(I, C, T)
              }
              for (
                o.outerWidth = o.width = rt(c, x), o.outerHeight = o.height = rt(h, m), o.contentHeight = m, o.contentWidth = x, o.outerWidth += l, o.outerHeight += u, M = 0;
                M < v.length;
                M++
              ) {
                var G,
                  F = (G = v[M]).percentWidth
                G.width = (parseInt(F, 10) / 100) * o.width
              }
              return o
            })(Rl(t), t, bl.outerWidth, bl.outerHeight, n),
            s = a.width,
            l = a.outerWidth,
            u = a.outerHeight,
            c = t.padding
          this.isTruncated = !!a.isTruncated
          var h = Br(r, l, n),
            d = Vr(o, u, i),
            p = h,
            f = d
          c && ((p += c[3]), (f += c[0]))
          var g = p + s
          Nl(t) && this._renderBackground(t, t, h, d, l, u)
          for (var y = !!t.backgroundColor, v = 0; v < a.lines.length; v++) {
            for (
              var m = a.lines[v], x = m.tokens, _ = x.length, b = m.lineHeight, w = m.width, S = 0, M = p, I = g, T = _ - 1, C = void 0;
              S < _ && (!(C = x[S]).align || 'left' === C.align);

            )
              this._placeToken(C, t, b, f, M, 'left', y), (w -= C.width), (M += C.width), S++
            for (; T >= 0 && 'right' === (C = x[T]).align; ) this._placeToken(C, t, b, f, I, 'right', y), (w -= C.width), (I -= C.width), T--
            for (M += (s - (M - p) - (g - I) - w) / 2; S <= T; ) (C = x[S]), this._placeToken(C, t, b, f, M + C.width / 2, 'center', y), (M += C.width), S++
            f += b
          }
        }),
        (e.prototype._placeToken = function (t, e, n, i, r, o, s) {
          var l = e.rich[t.styleName] || {}
          l.text = t.text
          var u = t.verticalAlign,
            c = i + n / 2
          'top' === u ? (c = i + t.height / 2) : 'bottom' === u && (c = i + n - t.height / 2),
            !t.isLineHolder && Nl(l) && this._renderBackground(l, e, 'right' === o ? r - t.width : 'center' === o ? r - t.width / 2 : r, c - t.height / 2, t.width, t.height)
          var h = !!l.backgroundColor,
            d = t.textPadding
          d && ((r = Ol(r, o, d)), (c -= t.height / 2 - d[0] - t.innerHeight / 2))
          var p = this._getOrCreateChild(ul),
            f = p.createStyle()
          p.useStyle(f)
          var g = this._defaultStyle,
            y = !1,
            v = 0,
            m = !1,
            x = Pl('fill' in l ? l.fill : 'fill' in e ? e.fill : ((y = !0), g.fill)),
            _ = Ll('stroke' in l ? l.stroke : 'stroke' in e ? e.stroke : h || s || (g.autoStroke && !y) ? null : ((v = 2), (m = !0), g.stroke)),
            b = l.textShadowBlur > 0 || e.textShadowBlur > 0
          ;(f.text = t.text),
            (f.x = r),
            (f.y = c),
            b &&
              ((f.shadowBlur = l.textShadowBlur || e.textShadowBlur || 0),
              (f.shadowColor = l.textShadowColor || e.textShadowColor || 'transparent'),
              (f.shadowOffsetX = l.textShadowOffsetX || e.textShadowOffsetX || 0),
              (f.shadowOffsetY = l.textShadowOffsetY || e.textShadowOffsetY || 0)),
            (f.textAlign = o),
            (f.textBaseline = 'middle'),
            (f.font = t.font || a),
            (f.opacity = ot(l.opacity, e.opacity, 1)),
            Dl(f, l),
            _ && ((f.lineWidth = ot(l.lineWidth, e.lineWidth, v)), (f.lineDash = rt(l.lineDash, e.lineDash)), (f.lineDashOffset = e.lineDashOffset || 0), (f.stroke = _)),
            x && (f.fill = x),
            p.setBoundingRect(Ja(f, t.contentWidth, t.contentHeight, m ? 0 : null))
        }),
        (e.prototype._renderBackground = function (t, e, n, i, r, o) {
          var a,
            s,
            l,
            u = t.backgroundColor,
            c = t.borderWidth,
            h = t.borderColor,
            d = u && u.image,
            p = u && !d,
            f = t.borderRadius,
            g = this
          if (p || t.lineHeight || (c && h)) {
            ;(a = this._getOrCreateChild(xl)).useStyle(a.createStyle()), (a.style.fill = null)
            var y = a.shape
            ;(y.x = n), (y.y = i), (y.width = r), (y.height = o), (y.r = f), a.dirtyShape()
          }
          if (p) ((l = a.style).fill = u || null), (l.fillOpacity = rt(t.fillOpacity, 1))
          else if (d) {
            ;(s = this._getOrCreateChild(dl)).onload = function () {
              g.dirtyStyle()
            }
            var v = s.style
            ;(v.image = u.image), (v.x = n), (v.y = i), (v.width = r), (v.height = o)
          }
          c &&
            h &&
            (((l = a.style).lineWidth = c),
            (l.stroke = h),
            (l.strokeOpacity = rt(t.strokeOpacity, 1)),
            (l.lineDash = t.borderDash),
            (l.lineDashOffset = t.borderDashOffset || 0),
            (a.strokeContainThreshold = 0),
            a.hasFill() && a.hasStroke() && ((l.strokeFirst = !0), (l.lineWidth *= 2)))
          var m = (a || s).style
          ;(m.shadowBlur = t.shadowBlur || 0),
            (m.shadowColor = t.shadowColor || 'transparent'),
            (m.shadowOffsetX = t.shadowOffsetX || 0),
            (m.shadowOffsetY = t.shadowOffsetY || 0),
            (m.opacity = ot(t.opacity, e.opacity, 1))
        }),
        (e.makeFont = function (t) {
          var e = ''
          return Al(t) && (e = [t.fontStyle, t.fontWeight, Cl(t.fontSize), t.fontFamily || 'sans-serif'].join(' ')), (e && ut(e)) || t.textFont || t.font
        }),
        e
      )
    })(os),
    Ml = { left: !0, right: 1, center: 1 },
    Il = { top: 1, bottom: 1, middle: 1 },
    Tl = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily']
  function Cl(t) {
    return 'string' != typeof t || (-1 === t.indexOf('px') && -1 === t.indexOf('rem') && -1 === t.indexOf('em')) ? (isNaN(+t) ? '12px' : t + 'px') : t
  }
  function Dl(t, e) {
    for (var n = 0; n < Tl.length; n++) {
      var i = Tl[n],
        r = e[i]
      null != r && (t[i] = r)
    }
  }
  function Al(t) {
    return null != t.fontSize || t.fontFamily || t.fontWeight
  }
  function kl(t) {
    if (t) {
      t.font = Sl.makeFont(t)
      var e = t.align
      'middle' === e && (e = 'center'), (t.align = null == e || Ml[e] ? e : 'left')
      var n = t.verticalAlign
      'center' === n && (n = 'middle'), (t.verticalAlign = null == n || Il[n] ? n : 'top'), t.padding && (t.padding = st(t.padding))
    }
  }
  function Ll(t, e) {
    return null == t || e <= 0 || 'transparent' === t || 'none' === t ? null : t.image || t.colorStops ? '#000' : t
  }
  function Pl(t) {
    return null == t || 'none' === t ? null : t.image || t.colorStops ? '#000' : t
  }
  function Ol(t, e, n) {
    return 'right' === e ? t - n[1] : 'center' === e ? t + n[3] / 2 - n[1] / 2 : t + n[3]
  }
  function Rl(t) {
    var e = t.text
    return null != e && (e += ''), e
  }
  function Nl(t) {
    return !!(t.backgroundColor || t.lineHeight || (t.borderWidth && t.borderColor))
  }
  var zl = sa(),
    El = function (t, e, n, i) {
      if (i) {
        var r = zl(i)
        ;(r.dataIndex = n),
          (r.dataType = e),
          (r.seriesIndex = t),
          (r.ssrType = 'chart'),
          'group' === i.type &&
            i.traverse(function (i) {
              var r = zl(i)
              ;(r.seriesIndex = t), (r.dataIndex = n), (r.dataType = e), (r.ssrType = 'chart')
            })
      }
    },
    Bl = 1,
    Vl = {},
    Gl = sa(),
    Fl = sa(),
    Wl = ['emphasis', 'blur', 'select'],
    Hl = ['normal', 'emphasis', 'blur', 'select'],
    Ul = 10,
    Yl = 'highlight',
    Xl = 'downplay',
    Zl = 'select',
    jl = 'unselect',
    ql = 'toggleSelect',
    Kl = 'selectchanged'
  function $l(t) {
    return null != t && 'none' !== t
  }
  function Jl(t, e, n) {
    t.onHoverStateChange && (t.hoverState || 0) !== n && t.onHoverStateChange(e), (t.hoverState = n)
  }
  function Ql(t) {
    Jl(t, 'emphasis', 2)
  }
  function tu(t) {
    2 === t.hoverState && Jl(t, 'normal', 0)
  }
  function eu(t) {
    Jl(t, 'blur', 1)
  }
  function nu(t) {
    1 === t.hoverState && Jl(t, 'normal', 0)
  }
  function iu(t) {
    t.selected = !0
  }
  function ru(t) {
    t.selected = !1
  }
  function ou(t, e, n) {
    e(t, n)
  }
  function au(t, e, n) {
    ou(t, e, n),
      t.isGroup &&
        t.traverse(function (t) {
          ou(t, e, n)
        })
  }
  function su(t, e) {
    switch (e) {
      case 'emphasis':
        t.hoverState = 2
        break
      case 'normal':
        t.hoverState = 0
        break
      case 'blur':
        t.hoverState = 1
        break
      case 'select':
        t.selected = !0
    }
  }
  function lu(t, e) {
    var n = this.states[t]
    if (this.style) {
      if ('emphasis' === t)
        return (function (t, e, n, i) {
          var r = n && P(n, 'select') >= 0,
            o = !1
          if (t instanceof sl) {
            var a = Gl(t),
              s = (r && a.selectFill) || a.normalFill,
              l = (r && a.selectStroke) || a.normalStroke
            if ($l(s) || $l(l)) {
              var u = (i = i || {}).style || {}
              'inherit' === u.fill
                ? ((o = !0), (i = A({}, i)), ((u = A({}, u)).fill = s))
                : !$l(u.fill) && $l(s)
                  ? ((o = !0), (i = A({}, i)), ((u = A({}, u)).fill = vi(s)))
                  : !$l(u.stroke) && $l(l) && (o || ((i = A({}, i)), (u = A({}, u))), (u.stroke = vi(l))),
                (i.style = u)
            }
          }
          if (i && null == i.z2) {
            o || (i = A({}, i))
            var c = t.z2EmphasisLift
            i.z2 = t.z2 + (null != c ? c : Ul)
          }
          return i
        })(this, 0, e, n)
      if ('blur' === t)
        return (function (t, e, n) {
          var i = P(t.currentStates, e) >= 0,
            r = t.style.opacity,
            o = i
              ? null
              : (function (t, e, n, i) {
                  for (var r = t.style, o = {}, a = 0; a < e.length; a++) {
                    var s = e[a],
                      l = r[s]
                    o[s] = null == l ? i && i[s] : l
                  }
                  for (a = 0; a < t.animators.length; a++) {
                    var u = t.animators[a]
                    u.__fromStateTransition && u.__fromStateTransition.indexOf(n) < 0 && 'style' === u.targetName && u.saveTo(o, e)
                  }
                  return o
                })(t, ['opacity'], e, { opacity: 1 }),
            a = (n = n || {}).style || {}
          return null == a.opacity && ((n = A({}, n)), (a = A({ opacity: i ? r : 0.1 * o.opacity }, a)), (n.style = a)), n
        })(this, t, n)
      if ('select' === t)
        return (function (t, e, n) {
          if (n && null == n.z2) {
            n = A({}, n)
            var i = t.z2SelectLift
            n.z2 = t.z2 + (null != i ? i : 9)
          }
          return n
        })(this, 0, n)
    }
    return n
  }
  function uu(t) {
    t.stateProxy = lu
    var e = t.getTextContent(),
      n = t.getTextGuideLine()
    e && (e.stateProxy = lu), n && (n.stateProxy = lu)
  }
  function cu(t, e) {
    !mu(t, e) && !t.__highByOuter && au(t, Ql)
  }
  function hu(t, e) {
    !mu(t, e) && !t.__highByOuter && au(t, tu)
  }
  function du(t, e) {
    ;(t.__highByOuter |= 1 << (e || 0)), au(t, Ql)
  }
  function pu(t, e) {
    !(t.__highByOuter &= ~(1 << (e || 0))) && au(t, tu)
  }
  function fu(t) {
    au(t, eu)
  }
  function gu(t) {
    au(t, nu)
  }
  function yu(t) {
    au(t, iu)
  }
  function vu(t) {
    au(t, ru)
  }
  function mu(t, e) {
    return t.__highDownSilentOnTouch && e.zrByTouch
  }
  function xu(t) {
    var e = t.getModel(),
      n = [],
      i = []
    e.eachComponent(function (e, r) {
      var o = Fl(r),
        a = 'series' === e,
        s = a ? t.getViewOfSeriesModel(r) : t.getViewOfComponentModel(r)
      !a && i.push(s),
        o.isBlured &&
          (s.group.traverse(function (t) {
            nu(t)
          }),
          a && n.push(r)),
        (o.isBlured = !1)
    }),
      z(i, function (t) {
        t && t.toggleBlurSeries && t.toggleBlurSeries(n, !1, e)
      })
  }
  function _u(t, e, n, i) {
    var r = i.getModel()
    function o(t, e) {
      for (var n = 0; n < e.length; n++) {
        var i = t.getItemGraphicEl(e[n])
        i && gu(i)
      }
    }
    if (((n = n || 'coordinateSystem'), null != t && e && 'none' !== e)) {
      var a = r.getSeriesByIndex(t),
        s = a.coordinateSystem
      s && s.master && (s = s.master)
      var l = []
      r.eachSeries(function (t) {
        var r = a === t,
          u = t.coordinateSystem
        if ((u && u.master && (u = u.master), !(('series' === n && !r) || ('coordinateSystem' === n && !(u && s ? u === s : r)) || ('series' === e && r)))) {
          if (
            (i.getViewOfSeriesModel(t).group.traverse(function (t) {
              ;(t.__highByOuter && r && 'self' === e) || eu(t)
            }),
            N(e))
          )
            o(t.getData(), e)
          else if (q(e)) for (var c = F(e), h = 0; h < c.length; h++) o(t.getData(c[h]), e[c[h]])
          l.push(t), (Fl(t).isBlured = !0)
        }
      }),
        r.eachComponent(function (t, e) {
          if ('series' !== t) {
            var n = i.getViewOfComponentModel(e)
            n && n.toggleBlurSeries && n.toggleBlurSeries(l, !0, r)
          }
        })
    }
  }
  function bu(t, e, n) {
    if (null != t && null != e) {
      var i = n.getModel().getComponent(t, e)
      if (i) {
        Fl(i).isBlured = !0
        var r = n.getViewOfComponentModel(i)
        r &&
          r.focusBlurEnabled &&
          r.group.traverse(function (t) {
            eu(t)
          })
      }
    }
  }
  function wu(t, e, n, i) {
    var r = { focusSelf: !1, dispatchers: null }
    if (null == t || 'series' === t || null == e || null == n) return r
    var o = i.getModel().getComponent(t, e)
    if (!o) return r
    var a = i.getViewOfComponentModel(o)
    if (!a || !a.findHighDownDispatchers) return r
    for (var s, l = a.findHighDownDispatchers(n), u = 0; u < l.length; u++)
      if ('self' === zl(l[u]).focus) {
        s = !0
        break
      }
    return { focusSelf: s, dispatchers: l }
  }
  function Su(t) {
    z(t.getAllData(), function (e) {
      var n = e.data,
        i = e.type
      n.eachItemGraphicEl(function (e, n) {
        t.isSelected(n, i) ? yu(e) : vu(e)
      })
    })
  }
  function Mu(t) {
    var e = []
    return (
      t.eachSeries(function (t) {
        z(t.getAllData(), function (n) {
          n.data
          var i = n.type,
            r = t.getSelectedDataIndices()
          if (r.length > 0) {
            var o = { dataIndex: r, seriesIndex: t.seriesIndex }
            null != i && (o.dataType = i), e.push(o)
          }
        })
      }),
      e
    )
  }
  function Iu(t, e, n) {
    Lu(t, !0), au(t, uu), Cu(t, e, n)
  }
  function Tu(t, e, n, i) {
    i
      ? (function (t) {
          Lu(t, !1)
        })(t)
      : Iu(t, e, n)
  }
  function Cu(t, e, n) {
    var i = zl(t)
    null != e ? ((i.focus = e), (i.blurScope = n)) : i.focus && (i.focus = null)
  }
  var Du = ['emphasis', 'blur', 'select'],
    Au = { itemStyle: 'getItemStyle', lineStyle: 'getLineStyle', areaStyle: 'getAreaStyle' }
  function ku(t, e, n, i) {
    n = n || 'itemStyle'
    for (var r = 0; r < Du.length; r++) {
      var o = Du[r],
        a = e.getModel([o, n])
      t.ensureState(o).style = i ? i(a) : a[Au[n]]()
    }
  }
  function Lu(t, e) {
    var n = !1 === e,
      i = t
    t.highDownSilentOnTouch && (i.__highDownSilentOnTouch = t.highDownSilentOnTouch),
      (n && !i.__highDownDispatcher) || ((i.__highByOuter = i.__highByOuter || 0), (i.__highDownDispatcher = !n))
  }
  function Pu(t) {
    return !(!t || !t.__highDownDispatcher)
  }
  function Ou(t) {
    var e = t.type
    return e === Zl || e === jl || e === ql
  }
  function Ru(t) {
    var e = t.type
    return e === Yl || e === Xl
  }
  var Nu = Fs.CMD,
    zu = [[], [], []],
    Eu = Math.sqrt,
    Bu = Math.atan2
  function Vu(t, e) {
    if (e) {
      var n,
        i,
        r,
        o,
        a,
        s,
        l = t.data,
        u = t.len(),
        c = Nu.M,
        h = Nu.C,
        d = Nu.L,
        p = Nu.R,
        f = Nu.A,
        g = Nu.Q
      for (r = 0, o = 0; r < u; ) {
        switch (((n = l[r++]), (o = r), (i = 0), n)) {
          case c:
          case d:
            i = 1
            break
          case h:
            i = 3
            break
          case g:
            i = 2
            break
          case f:
            var y = e[4],
              v = e[5],
              m = Eu(e[0] * e[0] + e[1] * e[1]),
              x = Eu(e[2] * e[2] + e[3] * e[3]),
              _ = Bu(-e[1] / x, e[0] / m)
            ;(l[r] *= m), (l[r++] += y), (l[r] *= x), (l[r++] += v), (l[r++] *= m), (l[r++] *= x), (l[r++] += _), (l[r++] += _), (o = r += 2)
            break
          case p:
            ;(s[0] = l[r++]), (s[1] = l[r++]), Ht(s, s, e), (l[o++] = s[0]), (l[o++] = s[1]), (s[0] += l[r++]), (s[1] += l[r++]), Ht(s, s, e), (l[o++] = s[0]), (l[o++] = s[1])
        }
        for (a = 0; a < i; a++) {
          var b = zu[a]
          ;(b[0] = l[r++]), (b[1] = l[r++]), Ht(b, b, e), (l[o++] = b[0]), (l[o++] = b[1])
        }
      }
      t.increaseVersion()
    }
  }
  var Gu = Math.sqrt,
    Fu = Math.sin,
    Wu = Math.cos,
    Hu = Math.PI
  function Uu(t) {
    return Math.sqrt(t[0] * t[0] + t[1] * t[1])
  }
  function Yu(t, e) {
    return (t[0] * e[0] + t[1] * e[1]) / (Uu(t) * Uu(e))
  }
  function Xu(t, e) {
    return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos(Yu(t, e))
  }
  function Zu(t, e, n, i, r, o, a, s, l, u, c) {
    var h = l * (Hu / 180),
      d = (Wu(h) * (t - n)) / 2 + (Fu(h) * (e - i)) / 2,
      p = (-1 * Fu(h) * (t - n)) / 2 + (Wu(h) * (e - i)) / 2,
      f = (d * d) / (a * a) + (p * p) / (s * s)
    f > 1 && ((a *= Gu(f)), (s *= Gu(f)))
    var g = (r === o ? -1 : 1) * Gu((a * a * (s * s) - a * a * (p * p) - s * s * (d * d)) / (a * a * (p * p) + s * s * (d * d))) || 0,
      y = (g * a * p) / s,
      v = (g * -s * d) / a,
      m = (t + n) / 2 + Wu(h) * y - Fu(h) * v,
      x = (e + i) / 2 + Fu(h) * y + Wu(h) * v,
      _ = Xu([1, 0], [(d - y) / a, (p - v) / s]),
      b = [(d - y) / a, (p - v) / s],
      w = [(-1 * d - y) / a, (-1 * p - v) / s],
      S = Xu(b, w)
    if ((Yu(b, w) <= -1 && (S = Hu), Yu(b, w) >= 1 && (S = 0), S < 0)) {
      var M = Math.round((S / Hu) * 1e6) / 1e6
      S = 2 * Hu + (M % 2) * Hu
    }
    c.addData(u, m, x, a, s, _, S, h, o)
  }
  var ju = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,
    qu = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g
  var Ku = (function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    return n(e, t), (e.prototype.applyTransform = function (t) {}), e
  })(sl)
  function $u(t) {
    return null != t.setData
  }
  function Ju(t, e) {
    var n = (function (t) {
        var e = new Fs()
        if (!t) return e
        var n,
          i = 0,
          r = 0,
          o = i,
          a = r,
          s = Fs.CMD,
          l = t.match(ju)
        if (!l) return e
        for (var u = 0; u < l.length; u++) {
          for (var c = l[u], h = c.charAt(0), d = void 0, p = c.match(qu) || [], f = p.length, g = 0; g < f; g++) p[g] = parseFloat(p[g])
          for (var y = 0; y < f; ) {
            var v = void 0,
              m = void 0,
              x = void 0,
              _ = void 0,
              b = void 0,
              w = void 0,
              S = void 0,
              M = i,
              I = r,
              T = void 0,
              C = void 0
            switch (h) {
              case 'l':
                ;(i += p[y++]), (r += p[y++]), (d = s.L), e.addData(d, i, r)
                break
              case 'L':
                ;(i = p[y++]), (r = p[y++]), (d = s.L), e.addData(d, i, r)
                break
              case 'm':
                ;(i += p[y++]), (r += p[y++]), (d = s.M), e.addData(d, i, r), (o = i), (a = r), (h = 'l')
                break
              case 'M':
                ;(i = p[y++]), (r = p[y++]), (d = s.M), e.addData(d, i, r), (o = i), (a = r), (h = 'L')
                break
              case 'h':
                ;(i += p[y++]), (d = s.L), e.addData(d, i, r)
                break
              case 'H':
                ;(i = p[y++]), (d = s.L), e.addData(d, i, r)
                break
              case 'v':
                ;(r += p[y++]), (d = s.L), e.addData(d, i, r)
                break
              case 'V':
                ;(r = p[y++]), (d = s.L), e.addData(d, i, r)
                break
              case 'C':
                ;(d = s.C), e.addData(d, p[y++], p[y++], p[y++], p[y++], p[y++], p[y++]), (i = p[y - 2]), (r = p[y - 1])
                break
              case 'c':
                ;(d = s.C), e.addData(d, p[y++] + i, p[y++] + r, p[y++] + i, p[y++] + r, p[y++] + i, p[y++] + r), (i += p[y - 2]), (r += p[y - 1])
                break
              case 'S':
                ;(v = i),
                  (m = r),
                  (T = e.len()),
                  (C = e.data),
                  n === s.C && ((v += i - C[T - 4]), (m += r - C[T - 3])),
                  (d = s.C),
                  (M = p[y++]),
                  (I = p[y++]),
                  (i = p[y++]),
                  (r = p[y++]),
                  e.addData(d, v, m, M, I, i, r)
                break
              case 's':
                ;(v = i),
                  (m = r),
                  (T = e.len()),
                  (C = e.data),
                  n === s.C && ((v += i - C[T - 4]), (m += r - C[T - 3])),
                  (d = s.C),
                  (M = i + p[y++]),
                  (I = r + p[y++]),
                  (i += p[y++]),
                  (r += p[y++]),
                  e.addData(d, v, m, M, I, i, r)
                break
              case 'Q':
                ;(M = p[y++]), (I = p[y++]), (i = p[y++]), (r = p[y++]), (d = s.Q), e.addData(d, M, I, i, r)
                break
              case 'q':
                ;(M = p[y++] + i), (I = p[y++] + r), (i += p[y++]), (r += p[y++]), (d = s.Q), e.addData(d, M, I, i, r)
                break
              case 'T':
                ;(v = i),
                  (m = r),
                  (T = e.len()),
                  (C = e.data),
                  n === s.Q && ((v += i - C[T - 4]), (m += r - C[T - 3])),
                  (i = p[y++]),
                  (r = p[y++]),
                  (d = s.Q),
                  e.addData(d, v, m, i, r)
                break
              case 't':
                ;(v = i),
                  (m = r),
                  (T = e.len()),
                  (C = e.data),
                  n === s.Q && ((v += i - C[T - 4]), (m += r - C[T - 3])),
                  (i += p[y++]),
                  (r += p[y++]),
                  (d = s.Q),
                  e.addData(d, v, m, i, r)
                break
              case 'A':
                ;(x = p[y++]), (_ = p[y++]), (b = p[y++]), (w = p[y++]), (S = p[y++]), Zu((M = i), (I = r), (i = p[y++]), (r = p[y++]), w, S, x, _, b, (d = s.A), e)
                break
              case 'a':
                ;(x = p[y++]), (_ = p[y++]), (b = p[y++]), (w = p[y++]), (S = p[y++]), Zu((M = i), (I = r), (i += p[y++]), (r += p[y++]), w, S, x, _, b, (d = s.A), e)
            }
          }
          ;('z' !== h && 'Z' !== h) || ((d = s.Z), e.addData(d), (i = o), (r = a)), (n = d)
        }
        return e.toStatic(), e
      })(t),
      i = A({}, e)
    return (
      (i.buildPath = function (t) {
        var e,
          i = $u(t)
        i && t.canSave() ? (t.appendPath(n), (e = t.getContext()) && t.rebuildPath(e, 1)) : (e = i ? t.getContext() : t) && n.rebuildPath(e, 1)
      }),
      (i.applyTransform = function (t) {
        Vu(n, t), this.dirtyShape()
      }),
      i
    )
  }
  function Qu(t, e) {
    return new Ku(Ju(t, e))
  }
  function tc(t, e) {
    e = e || {}
    var n = new sl()
    return (
      t.shape && n.setShape(t.shape),
      n.setStyle(t.style),
      e.bakeTransform ? Vu(n.path, t.getComputedTransform()) : e.toLocal ? n.setLocalTransform(t.getComputedTransform()) : n.copyTransform(t),
      (n.buildPath = t.buildPath),
      (n.applyTransform = n.applyTransform),
      (n.z = t.z),
      (n.z2 = t.z2),
      (n.zlevel = t.zlevel),
      n
    )
  }
  var ec = function () {
      ;(this.cx = 0), (this.cy = 0), (this.r = 0)
    },
    nc = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new ec()
        }),
        (e.prototype.buildPath = function (t, e) {
          t.moveTo(e.cx + e.r, e.cy), t.arc(e.cx, e.cy, e.r, 0, 2 * Math.PI)
        }),
        e
      )
    })(sl)
  nc.prototype.type = 'circle'
  var ic = function () {
      ;(this.cx = 0), (this.cy = 0), (this.rx = 0), (this.ry = 0)
    },
    rc = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new ic()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = 0.5522848,
            i = e.cx,
            r = e.cy,
            o = e.rx,
            a = e.ry,
            s = o * n,
            l = a * n
          t.moveTo(i - o, r),
            t.bezierCurveTo(i - o, r - l, i - s, r - a, i, r - a),
            t.bezierCurveTo(i + s, r - a, i + o, r - l, i + o, r),
            t.bezierCurveTo(i + o, r + l, i + s, r + a, i, r + a),
            t.bezierCurveTo(i - s, r + a, i - o, r + l, i - o, r),
            t.closePath()
        }),
        e
      )
    })(sl)
  rc.prototype.type = 'ellipse'
  var oc = Math.PI,
    ac = 2 * oc,
    sc = Math.sin,
    lc = Math.cos,
    uc = Math.acos,
    cc = Math.atan2,
    hc = Math.abs,
    dc = Math.sqrt,
    pc = Math.max,
    fc = Math.min,
    gc = 1e-4
  function yc(t, e, n, i, r, o, a) {
    var s = t - n,
      l = e - i,
      u = (a ? o : -o) / dc(s * s + l * l),
      c = u * l,
      h = -u * s,
      d = t + c,
      p = e + h,
      f = n + c,
      g = i + h,
      y = (d + f) / 2,
      v = (p + g) / 2,
      m = f - d,
      x = g - p,
      _ = m * m + x * x,
      b = r - o,
      w = d * g - f * p,
      S = (x < 0 ? -1 : 1) * dc(pc(0, b * b * _ - w * w)),
      M = (w * x - m * S) / _,
      I = (-w * m - x * S) / _,
      T = (w * x + m * S) / _,
      C = (-w * m + x * S) / _,
      D = M - y,
      A = I - v,
      k = T - y,
      L = C - v
    return D * D + A * A > k * k + L * L && ((M = T), (I = C)), { cx: M, cy: I, x0: -c, y0: -h, x1: M * (r / b - 1), y1: I * (r / b - 1) }
  }
  function vc(t, e) {
    var n,
      i = pc(e.r, 0),
      r = pc(e.r0 || 0, 0),
      o = i > 0
    if (o || r > 0) {
      if ((o || ((i = r), (r = 0)), r > i)) {
        var a = i
        ;(i = r), (r = a)
      }
      var s = e.startAngle,
        l = e.endAngle
      if (!isNaN(s) && !isNaN(l)) {
        var u = e.cx,
          c = e.cy,
          h = !!e.clockwise,
          d = hc(l - s),
          p = d > ac && d % ac
        if ((p > gc && (d = p), i > gc))
          if (d > ac - gc) t.moveTo(u + i * lc(s), c + i * sc(s)), t.arc(u, c, i, s, l, !h), r > gc && (t.moveTo(u + r * lc(l), c + r * sc(l)), t.arc(u, c, r, l, s, h))
          else {
            var f = void 0,
              g = void 0,
              y = void 0,
              v = void 0,
              m = void 0,
              x = void 0,
              _ = void 0,
              b = void 0,
              w = void 0,
              S = void 0,
              M = void 0,
              I = void 0,
              T = void 0,
              C = void 0,
              D = void 0,
              A = void 0,
              k = i * lc(s),
              L = i * sc(s),
              P = r * lc(l),
              O = r * sc(l),
              R = d > gc
            if (R) {
              var N = e.cornerRadius
              N &&
                ((n = (function (t) {
                  var e
                  if (U(t)) {
                    var n = t.length
                    if (!n) return t
                    e = 1 === n ? [t[0], t[0], 0, 0] : 2 === n ? [t[0], t[0], t[1], t[1]] : 3 === n ? t.concat(t[2]) : t
                  } else e = [t, t, t, t]
                  return e
                })(N)),
                (f = n[0]),
                (g = n[1]),
                (y = n[2]),
                (v = n[3]))
              var z = hc(i - r) / 2
              if (
                ((m = fc(z, y)),
                (x = fc(z, v)),
                (_ = fc(z, f)),
                (b = fc(z, g)),
                (M = w = pc(m, x)),
                (I = S = pc(_, b)),
                (w > gc || S > gc) && ((T = i * lc(l)), (C = i * sc(l)), (D = r * lc(s)), (A = r * sc(s)), d < oc))
              ) {
                var E = (function (t, e, n, i, r, o, a, s) {
                  var l = n - t,
                    u = i - e,
                    c = a - r,
                    h = s - o,
                    d = h * l - c * u
                  if (!(d * d < gc)) return [t + (d = (c * (e - o) - h * (t - r)) / d) * l, e + d * u]
                })(k, L, D, A, T, C, P, O)
                if (E) {
                  var B = k - E[0],
                    V = L - E[1],
                    G = T - E[0],
                    F = C - E[1],
                    W = 1 / sc(uc((B * G + V * F) / (dc(B * B + V * V) * dc(G * G + F * F))) / 2),
                    H = dc(E[0] * E[0] + E[1] * E[1])
                  ;(M = fc(w, (i - H) / (W + 1))), (I = fc(S, (r - H) / (W - 1)))
                }
              }
            }
            if (R)
              if (M > gc) {
                var Y = fc(y, M),
                  X = fc(v, M),
                  Z = yc(D, A, k, L, i, Y, h),
                  j = yc(T, C, P, O, i, X, h)
                t.moveTo(u + Z.cx + Z.x0, c + Z.cy + Z.y0),
                  M < w && Y === X
                    ? t.arc(u + Z.cx, c + Z.cy, M, cc(Z.y0, Z.x0), cc(j.y0, j.x0), !h)
                    : (Y > 0 && t.arc(u + Z.cx, c + Z.cy, Y, cc(Z.y0, Z.x0), cc(Z.y1, Z.x1), !h),
                      t.arc(u, c, i, cc(Z.cy + Z.y1, Z.cx + Z.x1), cc(j.cy + j.y1, j.cx + j.x1), !h),
                      X > 0 && t.arc(u + j.cx, c + j.cy, X, cc(j.y1, j.x1), cc(j.y0, j.x0), !h))
              } else t.moveTo(u + k, c + L), t.arc(u, c, i, s, l, !h)
            else t.moveTo(u + k, c + L)
            if (r > gc && R)
              if (I > gc) {
                ;(Y = fc(f, I)), (Z = yc(P, O, T, C, r, -(X = fc(g, I)), h)), (j = yc(k, L, D, A, r, -Y, h))
                t.lineTo(u + Z.cx + Z.x0, c + Z.cy + Z.y0),
                  I < S && Y === X
                    ? t.arc(u + Z.cx, c + Z.cy, I, cc(Z.y0, Z.x0), cc(j.y0, j.x0), !h)
                    : (X > 0 && t.arc(u + Z.cx, c + Z.cy, X, cc(Z.y0, Z.x0), cc(Z.y1, Z.x1), !h),
                      t.arc(u, c, r, cc(Z.cy + Z.y1, Z.cx + Z.x1), cc(j.cy + j.y1, j.cx + j.x1), h),
                      Y > 0 && t.arc(u + j.cx, c + j.cy, Y, cc(j.y1, j.x1), cc(j.y0, j.x0), !h))
              } else t.lineTo(u + P, c + O), t.arc(u, c, r, l, s, h)
            else t.lineTo(u + P, c + O)
          }
        else t.moveTo(u, c)
        t.closePath()
      }
    }
  }
  var mc = function () {
      ;(this.cx = 0), (this.cy = 0), (this.r0 = 0), (this.r = 0), (this.startAngle = 0), (this.endAngle = 2 * Math.PI), (this.clockwise = !0), (this.cornerRadius = 0)
    },
    xc = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new mc()
        }),
        (e.prototype.buildPath = function (t, e) {
          vc(t, e)
        }),
        (e.prototype.isZeroArea = function () {
          return this.shape.startAngle === this.shape.endAngle || this.shape.r === this.shape.r0
        }),
        e
      )
    })(sl)
  xc.prototype.type = 'sector'
  var _c = function () {
      ;(this.cx = 0), (this.cy = 0), (this.r = 0), (this.r0 = 0)
    },
    bc = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new _c()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = e.cx,
            i = e.cy,
            r = 2 * Math.PI
          t.moveTo(n + e.r, i), t.arc(n, i, e.r, 0, r, !1), t.moveTo(n + e.r0, i), t.arc(n, i, e.r0, 0, r, !0)
        }),
        e
      )
    })(sl)
  function wc(t, e, n) {
    var i = e.smooth,
      r = e.points
    if (r && r.length >= 2) {
      if (i) {
        var o = (function (t, e, n, i) {
          var r,
            o,
            a,
            s,
            l = [],
            u = [],
            c = [],
            h = []
          if (i) {
            ;(a = [1 / 0, 1 / 0]), (s = [-1 / 0, -1 / 0])
            for (var d = 0, p = t.length; d < p; d++) Ut(a, a, t[d]), Yt(s, s, t[d])
            Ut(a, a, i[0]), Yt(s, s, i[1])
          }
          for (d = 0, p = t.length; d < p; d++) {
            var f = t[d]
            if (n) (r = t[d ? d - 1 : p - 1]), (o = t[(d + 1) % p])
            else {
              if (0 === d || d === p - 1) {
                l.push(Ct(t[d]))
                continue
              }
              ;(r = t[d - 1]), (o = t[d + 1])
            }
            Lt(u, o, r), zt(u, u, e)
            var g = Bt(f, r),
              y = Bt(f, o),
              v = g + y
            0 !== v && ((g /= v), (y /= v)), zt(c, u, -g), zt(h, u, y)
            var m = At([], f, c),
              x = At([], f, h)
            i && (Yt(m, m, a), Ut(m, m, s), Yt(x, x, a), Ut(x, x, s)), l.push(m), l.push(x)
          }
          return n && l.push(l.shift()), l
        })(r, i, n, e.smoothConstraint)
        t.moveTo(r[0][0], r[0][1])
        for (var a = r.length, s = 0; s < (n ? a : a - 1); s++) {
          var l = o[2 * s],
            u = o[2 * s + 1],
            c = r[(s + 1) % a]
          t.bezierCurveTo(l[0], l[1], u[0], u[1], c[0], c[1])
        }
      } else {
        t.moveTo(r[0][0], r[0][1])
        s = 1
        for (var h = r.length; s < h; s++) t.lineTo(r[s][0], r[s][1])
      }
      n && t.closePath()
    }
  }
  bc.prototype.type = 'ring'
  var Sc = function () {
      ;(this.points = null), (this.smooth = 0), (this.smoothConstraint = null)
    },
    Mc = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new Sc()
        }),
        (e.prototype.buildPath = function (t, e) {
          wc(t, e, !0)
        }),
        e
      )
    })(sl)
  Mc.prototype.type = 'polygon'
  var Ic = function () {
      ;(this.points = null), (this.percent = 1), (this.smooth = 0), (this.smoothConstraint = null)
    },
    Tc = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultStyle = function () {
          return { stroke: '#000', fill: null }
        }),
        (e.prototype.getDefaultShape = function () {
          return new Ic()
        }),
        (e.prototype.buildPath = function (t, e) {
          wc(t, e, !1)
        }),
        e
      )
    })(sl)
  Tc.prototype.type = 'polyline'
  var Cc = {},
    Dc = function () {
      ;(this.x1 = 0), (this.y1 = 0), (this.x2 = 0), (this.y2 = 0), (this.percent = 1)
    },
    Ac = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultStyle = function () {
          return { stroke: '#000', fill: null }
        }),
        (e.prototype.getDefaultShape = function () {
          return new Dc()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n, i, r, o
          if (this.subPixelOptimize) {
            var a = fl(Cc, e, this.style)
            ;(n = a.x1), (i = a.y1), (r = a.x2), (o = a.y2)
          } else (n = e.x1), (i = e.y1), (r = e.x2), (o = e.y2)
          var s = e.percent
          0 !== s && (t.moveTo(n, i), s < 1 && ((r = n * (1 - s) + r * s), (o = i * (1 - s) + o * s)), t.lineTo(r, o))
        }),
        (e.prototype.pointAt = function (t) {
          var e = this.shape
          return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t]
        }),
        e
      )
    })(sl)
  Ac.prototype.type = 'line'
  var kc = [],
    Lc = function () {
      ;(this.x1 = 0), (this.y1 = 0), (this.x2 = 0), (this.y2 = 0), (this.cpx1 = 0), (this.cpy1 = 0), (this.percent = 1)
    }
  function Pc(t, e, n) {
    var i = t.cpx2,
      r = t.cpy2
    return null != i || null != r
      ? [(n ? An : Dn)(t.x1, t.cpx1, t.cpx2, t.x2, e), (n ? An : Dn)(t.y1, t.cpy1, t.cpy2, t.y2, e)]
      : [(n ? zn : Nn)(t.x1, t.cpx1, t.x2, e), (n ? zn : Nn)(t.y1, t.cpy1, t.y2, e)]
  }
  var Oc = (function (t) {
    function e(e) {
      return t.call(this, e) || this
    }
    return (
      n(e, t),
      (e.prototype.getDefaultStyle = function () {
        return { stroke: '#000', fill: null }
      }),
      (e.prototype.getDefaultShape = function () {
        return new Lc()
      }),
      (e.prototype.buildPath = function (t, e) {
        var n = e.x1,
          i = e.y1,
          r = e.x2,
          o = e.y2,
          a = e.cpx1,
          s = e.cpy1,
          l = e.cpx2,
          u = e.cpy2,
          c = e.percent
        0 !== c &&
          (t.moveTo(n, i),
          null == l || null == u
            ? (c < 1 && (Bn(n, a, r, c, kc), (a = kc[1]), (r = kc[2]), Bn(i, s, o, c, kc), (s = kc[1]), (o = kc[2])), t.quadraticCurveTo(a, s, r, o))
            : (c < 1 && (Pn(n, a, l, r, c, kc), (a = kc[1]), (l = kc[2]), (r = kc[3]), Pn(i, s, u, o, c, kc), (s = kc[1]), (u = kc[2]), (o = kc[3])),
              t.bezierCurveTo(a, s, l, u, r, o)))
      }),
      (e.prototype.pointAt = function (t) {
        return Pc(this.shape, t, !1)
      }),
      (e.prototype.tangentAt = function (t) {
        var e = Pc(this.shape, t, !0)
        return Et(e, e)
      }),
      e
    )
  })(sl)
  Oc.prototype.type = 'bezier-curve'
  var Rc = function () {
      ;(this.cx = 0), (this.cy = 0), (this.r = 0), (this.startAngle = 0), (this.endAngle = 2 * Math.PI), (this.clockwise = !0)
    },
    Nc = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultStyle = function () {
          return { stroke: '#000', fill: null }
        }),
        (e.prototype.getDefaultShape = function () {
          return new Rc()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = e.cx,
            i = e.cy,
            r = Math.max(e.r, 0),
            o = e.startAngle,
            a = e.endAngle,
            s = e.clockwise,
            l = Math.cos(o),
            u = Math.sin(o)
          t.moveTo(l * r + n, u * r + i), t.arc(n, i, r, o, a, !s)
        }),
        e
      )
    })(sl)
  Nc.prototype.type = 'arc'
  var zc = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.type = 'compound'), e
      }
      return (
        n(e, t),
        (e.prototype._updatePathDirty = function () {
          for (var t = this.shape.paths, e = this.shapeChanged(), n = 0; n < t.length; n++) e = e || t[n].shapeChanged()
          e && this.dirtyShape()
        }),
        (e.prototype.beforeBrush = function () {
          this._updatePathDirty()
          for (var t = this.shape.paths || [], e = this.getGlobalScale(), n = 0; n < t.length; n++)
            t[n].path || t[n].createPathProxy(), t[n].path.setScale(e[0], e[1], t[n].segmentIgnoreThreshold)
        }),
        (e.prototype.buildPath = function (t, e) {
          for (var n = e.paths || [], i = 0; i < n.length; i++) n[i].buildPath(t, n[i].shape, !0)
        }),
        (e.prototype.afterBrush = function () {
          for (var t = this.shape.paths || [], e = 0; e < t.length; e++) t[e].pathUpdated()
        }),
        (e.prototype.getBoundingRect = function () {
          return this._updatePathDirty.call(this), sl.prototype.getBoundingRect.call(this)
        }),
        e
      )
    })(sl),
    Ec = (function () {
      function t(t) {
        this.colorStops = t || []
      }
      return (
        (t.prototype.addColorStop = function (t, e) {
          this.colorStops.push({ offset: t, color: e })
        }),
        t
      )
    })(),
    Bc = (function (t) {
      function e(e, n, i, r, o, a) {
        var s = t.call(this, o) || this
        return (s.x = null == e ? 0 : e), (s.y = null == n ? 0 : n), (s.x2 = null == i ? 1 : i), (s.y2 = null == r ? 0 : r), (s.type = 'linear'), (s.global = a || !1), s
      }
      return n(e, t), e
    })(Ec),
    Vc = (function (t) {
      function e(e, n, i, r, o) {
        var a = t.call(this, r) || this
        return (a.x = null == e ? 0.5 : e), (a.y = null == n ? 0.5 : n), (a.r = null == i ? 0.5 : i), (a.type = 'radial'), (a.global = o || !1), a
      }
      return n(e, t), e
    })(Ec),
    Gc = Math.min,
    Fc = Math.max,
    Wc = Math.abs,
    Hc = [0, 0],
    Uc = [0, 0],
    Yc = Ze(),
    Xc = Yc.minTv,
    Zc = Yc.maxTv,
    jc = (function () {
      function t(t, e) {
        ;(this._corners = []), (this._axes = []), (this._origin = [0, 0])
        for (var n = 0; n < 4; n++) this._corners[n] = new Ae()
        for (n = 0; n < 2; n++) this._axes[n] = new Ae()
        t && this.fromBoundingRect(t, e)
      }
      return (
        (t.prototype.fromBoundingRect = function (t, e) {
          var n = this._corners,
            i = this._axes,
            r = t.x,
            o = t.y,
            a = r + t.width,
            s = o + t.height
          if ((n[0].set(r, o), n[1].set(a, o), n[2].set(a, s), n[3].set(r, s), e)) for (var l = 0; l < 4; l++) n[l].transform(e)
          Ae.sub(i[0], n[1], n[0]), Ae.sub(i[1], n[3], n[0]), i[0].normalize(), i[1].normalize()
          for (l = 0; l < 2; l++) this._origin[l] = i[l].dot(n[0])
        }),
        (t.prototype.intersect = function (t, e, n) {
          var i = !0,
            r = !e
          return (
            e && Ae.set(e, 0, 0),
            Yc.reset(n, !r),
            (!this._intersectCheckOneSide(this, t, r, 1) && ((i = !1), r)) ||
              (!this._intersectCheckOneSide(t, this, r, -1) && ((i = !1), r)) ||
              r ||
              Yc.negativeSize ||
              Ae.copy(e, i ? (Yc.useDir ? Yc.dirMinTv : Xc) : Zc),
            i
          )
        }),
        (t.prototype._intersectCheckOneSide = function (t, e, n, i) {
          for (var r = !0, o = 0; o < 2; o++) {
            var a = t._axes[o]
            if ((t._getProjMinMaxOnAxis(o, t._corners, Hc), t._getProjMinMaxOnAxis(o, e._corners, Uc), Yc.negativeSize || Hc[1] < Uc[0] || Hc[0] > Uc[1])) {
              if (((r = !1), Yc.negativeSize || n)) return r
              var s = Wc(Uc[0] - Hc[1]),
                l = Wc(Hc[0] - Uc[1])
              Gc(s, l) > Zc.len() && (s < l ? Ae.scale(Zc, a, -s * i) : Ae.scale(Zc, a, l * i))
            } else if (!n) {
              ;(s = Wc(Uc[0] - Hc[1])), (l = Wc(Hc[0] - Uc[1]))
              ;(Yc.useDir || Gc(s, l) < Xc.len()) &&
                ((s < l || !Yc.bidirectional) && (Ae.scale(Xc, a, s * i), Yc.useDir && Yc.calcDirMTV()),
                (s >= l || !Yc.bidirectional) && (Ae.scale(Xc, a, -l * i), Yc.useDir && Yc.calcDirMTV()))
            }
          }
          return r
        }),
        (t.prototype._getProjMinMaxOnAxis = function (t, e, n) {
          for (var i = this._axes[t], r = this._origin, o = e[0].dot(i) + r[t], a = o, s = o, l = 1; l < e.length; l++) {
            var u = e[l].dot(i) + r[t]
            ;(a = Gc(u, a)), (s = Fc(u, s))
          }
          ;(n[0] = a + Yc.touchThreshold), (n[1] = s - Yc.touchThreshold), (Yc.negativeSize = n[1] < n[0])
        }),
        t
      )
    })(),
    qc = [],
    Kc = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.notClear = !0), (e.incremental = !0), (e._displayables = []), (e._temporaryDisplayables = []), (e._cursor = 0), e
      }
      return (
        n(e, t),
        (e.prototype.traverse = function (t, e) {
          t.call(e, this)
        }),
        (e.prototype.useStyle = function () {
          this.style = {}
        }),
        (e.prototype.getCursor = function () {
          return this._cursor
        }),
        (e.prototype.innerAfterBrush = function () {
          this._cursor = this._displayables.length
        }),
        (e.prototype.clearDisplaybles = function () {
          ;(this._displayables = []), (this._temporaryDisplayables = []), (this._cursor = 0), this.markRedraw(), (this.notClear = !1)
        }),
        (e.prototype.clearTemporalDisplayables = function () {
          this._temporaryDisplayables = []
        }),
        (e.prototype.addDisplayable = function (t, e) {
          e ? this._temporaryDisplayables.push(t) : this._displayables.push(t), this.markRedraw()
        }),
        (e.prototype.addDisplayables = function (t, e) {
          e = e || !1
          for (var n = 0; n < t.length; n++) this.addDisplayable(t[n], e)
        }),
        (e.prototype.getDisplayables = function () {
          return this._displayables
        }),
        (e.prototype.getTemporalDisplayables = function () {
          return this._temporaryDisplayables
        }),
        (e.prototype.eachPendingDisplayable = function (t) {
          for (var e = this._cursor; e < this._displayables.length; e++) t && t(this._displayables[e])
          for (e = 0; e < this._temporaryDisplayables.length; e++) t && t(this._temporaryDisplayables[e])
        }),
        (e.prototype.update = function () {
          this.updateTransform()
          for (var t = this._cursor; t < this._displayables.length; t++) {
            ;((e = this._displayables[t]).parent = this), e.update(), (e.parent = null)
          }
          for (t = 0; t < this._temporaryDisplayables.length; t++) {
            var e
            ;((e = this._temporaryDisplayables[t]).parent = this), e.update(), (e.parent = null)
          }
        }),
        (e.prototype.getBoundingRect = function () {
          if (!this._rect) {
            for (var t = new He(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) {
              var n = this._displayables[e],
                i = n.getBoundingRect().clone()
              n.needLocalTransform() && i.applyTransform(n.getLocalTransform(qc)), t.union(i)
            }
            this._rect = t
          }
          return this._rect
        }),
        (e.prototype.contain = function (t, e) {
          var n = this.transformCoordToLocal(t, e)
          if (this.getBoundingRect().contain(n[0], n[1]))
            for (var i = 0; i < this._displayables.length; i++) {
              if (this._displayables[i].contain(t, e)) return !0
            }
          return !1
        }),
        e
      )
    })(os),
    $c = sa()
  function Jc(t, e, n, i, r) {
    var o
    if (e && e.ecModel) {
      var a = e.ecModel.getUpdatePayload()
      o = a && a.animation
    }
    var s = 'update' === t
    if (e && e.isAnimationEnabled()) {
      var l = void 0,
        u = void 0,
        c = void 0
      return (
        i
          ? ((l = rt(i.duration, 200)), (u = rt(i.easing, 'cubicOut')), (c = 0))
          : ((l = e.getShallow(s ? 'animationDurationUpdate' : 'animationDuration')),
            (u = e.getShallow(s ? 'animationEasingUpdate' : 'animationEasing')),
            (c = e.getShallow(s ? 'animationDelayUpdate' : 'animationDelay'))),
        o && (null != o.duration && (l = o.duration), null != o.easing && (u = o.easing), null != o.delay && (c = o.delay)),
        Y(c) && (c = c(n, r)),
        Y(l) && (l = l(n)),
        { duration: l || 0, delay: c, easing: u }
      )
    }
    return null
  }
  function Qc(t, e, n, i, r, o, a) {
    var s,
      l = !1
    Y(r) ? ((a = o), (o = r), (r = null)) : q(r) && ((o = r.cb), (a = r.during), (l = r.isFrom), (s = r.removeOpt), (r = r.dataIndex))
    var u = 'leave' === t
    u || e.stopAnimation('leave')
    var c = Jc(t, i, r, u ? s || {} : null, i && i.getAnimationDelayParams ? i.getAnimationDelayParams(e, r) : null)
    if (c && c.duration > 0) {
      var h = { duration: c.duration, delay: c.delay || 0, easing: c.easing, done: o, force: !!o || !!a, setToFinal: !u, scope: t, during: a }
      l ? e.animateFrom(n, h) : e.animateTo(n, h)
    } else e.stopAnimation(), !l && e.attr(n), a && a(1), o && o()
  }
  function th(t, e, n, i, r, o) {
    Qc('update', t, e, n, i, r, o)
  }
  function eh(t, e, n, i, r, o) {
    Qc('enter', t, e, n, i, r, o)
  }
  function nh(t) {
    if (!t.__zr) return !0
    for (var e = 0; e < t.animators.length; e++) {
      if ('leave' === t.animators[e].scope) return !0
    }
    return !1
  }
  function ih(t, e, n, i, r, o) {
    nh(t) || Qc('leave', t, e, n, i, r, o)
  }
  function rh(t, e, n, i) {
    t.removeTextContent(), t.removeTextGuideLine(), ih(t, { style: { opacity: 0 } }, e, n, i)
  }
  function oh(t, e, n) {
    function i() {
      t.parent && t.parent.remove(t)
    }
    t.isGroup
      ? t.traverse(function (t) {
          t.isGroup || rh(t, e, n, i)
        })
      : rh(t, e, n, i)
  }
  function ah(t) {
    $c(t).oldStyle = t.style
  }
  var sh = {},
    lh = ['x', 'y'],
    uh = ['width', 'height']
  function ch(t) {
    return sl.extend(t)
  }
  var hh = function (t, e) {
    var i = Ju(t, e)
    return (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.applyTransform = i.applyTransform), (n.buildPath = i.buildPath), n
      }
      return n(e, t), e
    })(Ku)
  }
  function dh(t, e) {
    return hh(t, e)
  }
  function ph(t, e) {
    sh[t] = e
  }
  function fh(t) {
    if (sh.hasOwnProperty(t)) return sh[t]
  }
  function gh(t, e, n, i) {
    var r = Qu(t, e)
    return n && ('center' === i && (n = vh(n, r.getBoundingRect())), xh(r, n)), r
  }
  function yh(t, e, n) {
    var i = new dl({
      style: { image: t, x: e.x, y: e.y, width: e.width, height: e.height },
      onload: function (t) {
        if ('center' === n) {
          var r = { width: t.width, height: t.height }
          i.setStyle(vh(e, r))
        }
      }
    })
    return i
  }
  function vh(t, e) {
    var n,
      i = e.width / e.height,
      r = t.height * i
    return (n = r <= t.width ? t.height : (r = t.width) / i), { x: t.x + t.width / 2 - r / 2, y: t.y + t.height / 2 - n / 2, width: r, height: n }
  }
  var mh = function (t, e) {
    for (var n = [], i = t.length, r = 0; r < i; r++) {
      var o = t[r]
      n.push(o.getUpdatedPathProxy(!0))
    }
    var a = new sl(e)
    return (
      a.createPathProxy(),
      (a.buildPath = function (t) {
        if ($u(t)) {
          t.appendPath(n)
          var e = t.getContext()
          e && t.rebuildPath(e, 1)
        }
      }),
      a
    )
  }
  function xh(t, e) {
    if (t.applyTransform) {
      var n = t.getBoundingRect().calculateTransform(e)
      t.applyTransform(n)
    }
  }
  function _h(t, e) {
    return fl(t, t, { lineWidth: e }), t
  }
  var bh = yl
  function wh(t, e) {
    for (var n = _e([]); t && t !== e; ) we(n, t.getLocalTransform(), n), (t = t.parent)
    return n
  }
  function Sh(t, e, n) {
    return e && !N(e) && (e = Dr.getLocalTransform(e)), n && (e = Te([], e)), Ht([], t, e)
  }
  function Mh(t, e, n) {
    var i = 0 === e[4] || 0 === e[5] || 0 === e[0] ? 1 : fo((2 * e[4]) / e[0]),
      r = 0 === e[4] || 0 === e[5] || 0 === e[2] ? 1 : fo((2 * e[4]) / e[2]),
      o = ['left' === t ? -i : 'right' === t ? i : 0, 'top' === t ? -r : 'bottom' === t ? r : 0]
    return (o = Sh(o, e, n)), fo(o[0]) > fo(o[1]) ? (o[0] > 0 ? 'right' : 'left') : o[1] > 0 ? 'bottom' : 'top'
  }
  function Ih(t) {
    return !t.isGroup
  }
  function Th(t, e, n) {
    if (t && e) {
      var i,
        r =
          ((i = {}),
          t.traverse(function (t) {
            Ih(t) && t.anid && (i[t.anid] = t)
          }),
          i)
      e.traverse(function (t) {
        if (Ih(t) && t.anid) {
          var e = r[t.anid]
          if (e) {
            var i = o(t)
            t.attr(o(e)), th(t, i, n, zl(t).dataIndex)
          }
        }
      })
    }
    function o(t) {
      var e = { x: t.x, y: t.y, rotation: t.rotation }
      return (
        (function (t) {
          return null != t.shape
        })(t) && (e.shape = T(t.shape)),
        e
      )
    }
  }
  function Ch(t, e) {
    return E(t, function (t) {
      var n = t[0]
      ;(n = po(n, e.x)), (n = ho(n, e.x + e.width))
      var i = t[1]
      return (i = po(i, e.y)), [n, (i = ho(i, e.y + e.height))]
    })
  }
  function Dh(t, e) {
    var n = po(t.x, e.x),
      i = ho(t.x + t.width, e.x + e.width),
      r = po(t.y, e.y),
      o = ho(t.y + t.height, e.y + e.height)
    if (i >= n && o >= r) return { x: n, y: r, width: i - n, height: o - r }
  }
  function Ah(t, e, n) {
    var i = A({ rectHover: !0 }, e),
      r = (i.style = { strokeNoScale: !0 })
    if (((n = n || { x: -1, y: -1, width: 2, height: 2 }), t))
      return 0 === t.indexOf('image://') ? ((r.image = t.slice(8)), k(r, n), new dl(i)) : gh(t.replace('path://', ''), i, n, 'center')
  }
  function kh(t, e, n, i, r) {
    for (var o = 0, a = r[r.length - 1]; o < r.length; o++) {
      var s = r[o]
      if (Lh(t, e, n, i, s[0], s[1], a[0], a[1])) return !0
      a = s
    }
  }
  function Lh(t, e, n, i, r, o, a, s) {
    var l,
      u = n - t,
      c = i - e,
      h = a - r,
      d = s - o,
      p = Ph(h, d, u, c)
    if ((l = p) <= 1e-6 && l >= -1e-6) return !1
    var f = t - r,
      g = e - o,
      y = Ph(f, g, u, c) / p
    if (y < 0 || y > 1) return !1
    var v = Ph(f, g, h, d) / p
    return !(v < 0 || v > 1)
  }
  function Ph(t, e, n, i) {
    return t * i - n * e
  }
  function Oh(t, e, n, i, r) {
    return (
      null == e ||
        (j(e) ? (Rh[0] = Rh[1] = Rh[2] = Rh[3] = e) : ((Rh[0] = e[0]), (Rh[1] = e[1]), (Rh[2] = e[2]), (Rh[3] = e[3])),
        i && ((Rh[0] = po(0, Rh[0])), (Rh[1] = po(0, Rh[1])), (Rh[2] = po(0, Rh[2])), (Rh[3] = po(0, Rh[3]))),
        n && ((Rh[0] = -Rh[0]), (Rh[1] = -Rh[1]), (Rh[2] = -Rh[2]), (Rh[3] = -Rh[3])),
        Nh(t, Rh, 'x', 'width', 3, 1, (r && r[0]) || 0),
        Nh(t, Rh, 'y', 'height', 0, 2, (r && r[1]) || 0)),
      t
    )
  }
  var Rh = [0, 0, 0, 0]
  function Nh(t, e, n, i, r, o, a) {
    var s = e[o] + e[r],
      l = t[i]
    ;(t[i] += s), (a = po(0, ho(a, l))), t[i] < a ? ((t[i] = a), (t[n] += e[r] >= 0 ? -e[r] : e[o] >= 0 ? l + e[o] : fo(s) > 1e-8 ? ((l - a) * e[r]) / s : 0)) : (t[n] -= e[r])
  }
  function zh(t) {
    var e = t.itemTooltipOption,
      n = t.componentModel,
      i = t.itemName,
      r = X(e) ? { formatter: e } : e,
      o = n.mainType,
      a = n.componentIndex,
      s = { componentType: o, name: i, $vars: ['name'] }
    s[o + 'Index'] = a
    var l = t.formatterParamsExtra
    l &&
      z(F(l), function (t) {
        _t(s, t) || ((s[t] = l[t]), s.$vars.push(t))
      })
    var u = zl(t.el)
    ;(u.componentMainType = o), (u.componentIndex = a), (u.tooltipConfig = { name: i, option: k({ content: i, encodeHTMLContent: !0, formatterParams: s }, r) })
  }
  function Eh(t, e) {
    var n
    t.isGroup && (n = e(t)), n || t.traverse(e)
  }
  function Bh(t, e) {
    if (t)
      if (U(t)) for (var n = 0; n < t.length; n++) Eh(t[n], e)
      else Eh(t, e)
  }
  function Vh(t) {
    return !t || (fo(t[1]) < Gh && fo(t[2]) < Gh) || (fo(t[0]) < Gh && fo(t[3]) < Gh)
  }
  var Gh = 1e-5
  function Fh(t, e) {
    return t ? He.copy(t, e) : e.clone()
  }
  function Wh(t, e) {
    return e ? be(t || [1, 0, 0, 1, 0, 0], e) : void 0
  }
  function Hh(t) {
    return { z: t.get('z') || 0, zlevel: t.get('zlevel') || 0 }
  }
  function Uh(t) {
    var e = -1 / 0,
      n = 1 / 0
    function i(t) {
      if (t && !t.isGroup) {
        var e = t.currentStates
        if (e.length) for (var n = 0; n < e.length; n++) r(t.states[e[n]])
        r(t)
      }
    }
    function r(t) {
      if (t) {
        var i = t.z2
        i > e && (e = i), i < n && (n = i)
      }
    }
    return (
      Eh(t, function (t) {
        i(t), i(t.getTextContent()), i(t.getTextGuideLine())
      }),
      n > e && (n = e = 0),
      { min: n, max: e }
    )
  }
  function Yh(t, e, n) {
    Xh(t, e, n, -1 / 0)
  }
  function Xh(t, e, n, i) {
    if (t.ignoreModelZ) return i
    var r = t.getTextContent(),
      o = t.getTextGuideLine()
    if (t.isGroup) for (var a = t.childrenRef(), s = 0; s < a.length; s++) i = po(Xh(a[s], e, n, i), i)
    else (t.z = e), (t.zlevel = n), (i = po(t.z2 || 0, i))
    if ((r && ((r.z = e), (r.zlevel = n), isFinite(i) && (r.z2 = i + 2)), o)) {
      var l = t.textGuideLineConfig
      ;(o.z = e), (o.zlevel = n), isFinite(i) && (o.z2 = i + (l && l.showAbove ? 1 : -1))
    }
    return i
  }
  ph('circle', nc), ph('ellipse', rc), ph('sector', xc), ph('ring', bc), ph('polygon', Mc), ph('polyline', Tc), ph('rect', xl), ph('line', Ac), ph('bezierCurve', Oc), ph('arc', Nc)
  var Zh = Object.freeze({
      __proto__: null,
      updateProps: th,
      initProps: eh,
      removeElement: ih,
      removeElementWithFadeOut: oh,
      isElementRemoved: nh,
      XY: lh,
      WH: uh,
      extendShape: ch,
      extendPath: dh,
      registerShape: ph,
      getShapeClass: fh,
      makePath: gh,
      makeImage: yh,
      mergePath: mh,
      resizePath: xh,
      subPixelOptimizeLine: _h,
      subPixelOptimizeRect: function (t, e) {
        return gl(t, t, e), t
      },
      subPixelOptimize: bh,
      getTransform: wh,
      applyTransform: Sh,
      transformDirection: Mh,
      groupTransition: Th,
      clipPointsByRect: Ch,
      clipRectByRect: Dh,
      createIcon: Ah,
      linePolygonIntersect: kh,
      lineLineIntersect: Lh,
      expandOrShrinkRect: Oh,
      setTooltipConfig: zh,
      traverseElements: Bh,
      isBoundingRectAxisAligned: Vh,
      ensureCopyRect: Fh,
      ensureCopyTransform: Wh,
      retrieveZInfo: Hh,
      calcZ2Range: Uh,
      traverseUpdateZ: Yh,
      Group: to,
      Image: dl,
      Text: Sl,
      Circle: nc,
      Ellipse: rc,
      Sector: xc,
      Ring: bc,
      Polygon: Mc,
      Polyline: Tc,
      Rect: xl,
      Line: Ac,
      BezierCurve: Oc,
      Arc: Nc,
      IncrementalDisplayable: Kc,
      CompoundPath: zc,
      LinearGradient: Bc,
      RadialGradient: Vc,
      BoundingRect: He,
      OrientedBoundingRect: jc,
      Point: Ae,
      Path: sl
    }),
    jh = {}
  function qh(t, e) {
    for (var n = 0; n < Wl.length; n++) {
      var i = Wl[n],
        r = e[i],
        o = t.ensureState(i)
      ;(o.style = o.style || {}), (o.style.text = r)
    }
    var a = t.currentStates.slice()
    t.clearStates(!0), t.setStyle({ text: e.normal }), t.useStates(a, !0)
  }
  function Kh(t, e, n) {
    var i,
      r = t.labelFetcher,
      o = t.labelDataIndex,
      a = t.labelDimIndex,
      s = e.normal
    r && (i = r.getFormattedLabel(o, 'normal', null, a, s && s.get('formatter'), null != n ? { interpolatedValue: n } : null)),
      null == i && (i = Y(t.defaultText) ? t.defaultText(o, t, n) : t.defaultText)
    for (var l = { normal: i }, u = 0; u < Wl.length; u++) {
      var c = Wl[u],
        h = e[c]
      l[c] = rt(r ? r.getFormattedLabel(o, c, null, a, h && h.get('formatter')) : null, i)
    }
    return l
  }
  function $h(t, e, n, i) {
    n = n || jh
    for (var r = t instanceof Sl, o = !1, a = 0; a < Hl.length; a++) {
      if ((d = e[Hl[a]]) && d.getShallow('show')) {
        o = !0
        break
      }
    }
    var s = r ? t : t.getTextContent()
    if (o) {
      r || (s || ((s = new Sl()), t.setTextContent(s)), t.stateProxy && (s.stateProxy = t.stateProxy))
      var l = Kh(n, e),
        u = e.normal,
        c = !!u.getShallow('show'),
        h = Qh(u, i && i.normal, n, !1, !r)
      ;(h.text = l.normal), r || t.setTextConfig(td(u, n, !1))
      for (a = 0; a < Wl.length; a++) {
        var d,
          p = Wl[a]
        if ((d = e[p])) {
          var f = s.ensureState(p),
            g = !!rt(d.getShallow('show'), c)
          if ((g !== c && (f.ignore = !g), (f.style = Qh(d, i && i[p], n, !0, !r)), (f.style.text = l[p]), !r)) t.ensureState(p).textConfig = td(d, n, !0)
        }
      }
      ;(s.silent = !!u.getShallow('silent')),
        null != s.style.x && (h.x = s.style.x),
        null != s.style.y && (h.y = s.style.y),
        (s.ignore = !c),
        s.useStyle(h),
        s.dirty(),
        n.enableTextSetter &&
          (ad(s).setLabelText = function (t) {
            var i = Kh(n, e, t)
            qh(s, i)
          })
    } else s && (s.ignore = !0)
    t.dirty()
  }
  function Jh(t, e) {
    e = e || 'label'
    for (var n = { normal: t.getModel(e) }, i = 0; i < Wl.length; i++) {
      var r = Wl[i]
      n[r] = t.getModel([r, e])
    }
    return n
  }
  function Qh(t, e, n, i, r) {
    var o = {}
    return (
      (function (t, e, n, i, r) {
        n = n || jh
        var o,
          a = e.ecModel,
          s = a && a.option.textStyle,
          l = (function (t) {
            var e
            for (; t && t !== t.ecModel; ) {
              var n = (t.option || jh).rich
              if (n) {
                e = e || {}
                for (var i = F(n), r = 0; r < i.length; r++) {
                  e[i[r]] = 1
                }
              }
              t = t.parentModel
            }
            return e
          })(e)
        if (l) {
          o = {}
          var u = 'richInheritPlainLabel',
            c = rt(e.get(u), a ? a.get(u) : void 0)
          for (var h in l)
            if (l.hasOwnProperty(h)) {
              var d = e.getModel(['rich', h])
              rd((o[h] = {}), d, s, e, c, n, i, r, !1, !0)
            }
        }
        o && (t.rich = o)
        var p = e.get('overflow')
        p && (t.overflow = p)
        var f = e.get('lineOverflow')
        f && (t.lineOverflow = f)
        var g = t,
          y = e.get('minMargin')
        if (null != y) (y = j(y) ? y / 2 : 0), (g.margin = [y, y, y, y]), (g.__marginType = hd.minMargin)
        else {
          var v = e.get('textMargin')
          null != v && ((g.margin = st(v)), (g.__marginType = hd.textMargin))
        }
        rd(t, e, s, null, null, n, i, r, !0, !1)
      })(o, t, n, i, r),
      e && A(o, e),
      o
    )
  }
  function td(t, e, n) {
    e = e || {}
    var i,
      r = {},
      o = t.getShallow('rotate'),
      a = rt(t.getShallow('distance'), n ? null : 5),
      s = t.getShallow('offset')
    return (
      'outside' === (i = t.getShallow('position') || (n ? null : 'inside')) && (i = e.defaultOutsidePosition || 'top'),
      null != i && (r.position = i),
      null != s && (r.offset = s),
      null != o && ((o *= Math.PI / 180), (r.rotation = o)),
      null != a && (r.distance = a),
      (r.outsideFill = 'inherit' === t.get('color') ? e.inheritColor || null : 'auto'),
      null != e.autoOverflowArea && (r.autoOverflowArea = e.autoOverflowArea),
      null != e.layoutRect && (r.layoutRect = e.layoutRect),
      r
    )
  }
  var ed = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'],
    nd = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign', 'ellipsis'],
    id = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']
  function rd(t, e, n, i, r, o, a, s, l, u) {
    n = (!a && n) || jh
    var c = o && o.inheritColor,
      h = e.getShallow('color'),
      d = e.getShallow('textBorderColor'),
      p = rt(e.getShallow('opacity'), n.opacity)
    ;('inherit' !== h && 'auto' !== h) || (h = c || null),
      ('inherit' !== d && 'auto' !== d) || (d = c || null),
      s || ((h = h || n.color), (d = d || n.textBorderColor)),
      null != h && (t.fill = h),
      null != d && (t.stroke = d)
    var f = rt(e.getShallow('textBorderWidth'), n.textBorderWidth)
    null != f && (t.lineWidth = f)
    var g = rt(e.getShallow('textBorderType'), n.textBorderType)
    null != g && (t.lineDash = g)
    var y = rt(e.getShallow('textBorderDashOffset'), n.textBorderDashOffset)
    null != y && (t.lineDashOffset = y),
      a || null != p || u || (p = o && o.defaultOpacity),
      null != p && (t.opacity = p),
      a || s || (null == t.fill && o.inheritColor && (t.fill = o.inheritColor))
    for (var v = 0; v < ed.length; v++) {
      var m = ed[v]
      null != (_ = !1 !== r && i ? ot(e.getShallow(m), i.getShallow(m), n[m]) : rt(e.getShallow(m), n[m])) && (t[m] = _)
    }
    for (v = 0; v < nd.length; v++) {
      m = nd[v]
      null != (_ = e.getShallow(m)) && (t[m] = _)
    }
    if (null == t.verticalAlign) {
      var x = e.getShallow('baseline')
      null != x && (t.verticalAlign = x)
    }
    if (!l || !o.disableBox) {
      for (v = 0; v < id.length; v++) {
        var _
        m = id[v]
        null != (_ = e.getShallow(m)) && (t[m] = _)
      }
      var b = e.getShallow('borderType')
      null != b && (t.borderDash = b),
        ('auto' !== t.backgroundColor && 'inherit' !== t.backgroundColor) || !c || (t.backgroundColor = c),
        ('auto' !== t.borderColor && 'inherit' !== t.borderColor) || !c || (t.borderColor = c)
    }
  }
  function od(t, e) {
    var n = e && e.getModel('textStyle')
    return ut(
      [
        t.fontStyle || (n && n.getShallow('fontStyle')) || '',
        t.fontWeight || (n && n.getShallow('fontWeight')) || '',
        (t.fontSize || (n && n.getShallow('fontSize')) || 12) + 'px',
        t.fontFamily || (n && n.getShallow('fontFamily')) || 'sans-serif'
      ].join(' ')
    )
  }
  var ad = sa()
  function sd(t, e, n, i) {
    if (t) {
      var r = ad(t)
      ;(r.prevValue = r.value), (r.value = n)
      var o = e.normal
      ;(r.valueAnimation = o.get('valueAnimation')), r.valueAnimation && ((r.precision = o.get('precision')), (r.defaultInterpolatedText = i), (r.statesModels = e))
    }
  }
  function ld(t, e, n, i, r) {
    var o = ad(t)
    if (o.valueAnimation && o.prevValue !== o.value) {
      var a = o.defaultInterpolatedText,
        s = rt(o.interpolatedValue, o.prevValue),
        l = o.value
      ;(t.percent = 0),
        (null == o.prevValue ? eh : th)(t, { percent: 1 }, i, e, null, function (i) {
          var u = ya(n, o.precision, s, l, i)
          o.interpolatedValue = 1 === i ? null : u
          var c = Kh({ labelDataIndex: e, labelFetcher: r, defaultText: a ? a(u) : u + '' }, o.statesModels, u)
          qh(t, c)
        })
    }
  }
  var ud,
    cd,
    hd = { minMargin: 1, textMargin: 2 },
    dd = ['textStyle', 'color'],
    pd = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'padding', 'lineHeight', 'rich', 'width', 'height', 'overflow'],
    fd = new Sl(),
    gd = (function () {
      function t() {}
      return (
        (t.prototype.getTextColor = function (t) {
          var e = this.ecModel
          return this.getShallow('color') || (!t && e ? e.get(dd) : null)
        }),
        (t.prototype.getFont = function () {
          return od(
            {
              fontStyle: this.getShallow('fontStyle'),
              fontWeight: this.getShallow('fontWeight'),
              fontSize: this.getShallow('fontSize'),
              fontFamily: this.getShallow('fontFamily')
            },
            this.ecModel
          )
        }),
        (t.prototype.getTextRect = function (t) {
          for (var e = { text: t, verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline') }, n = 0; n < pd.length; n++) e[pd[n]] = this.getShallow(pd[n])
          return fd.useStyle(e), fd.update(), fd.getBoundingRect()
        }),
        t
      )
    })(),
    yd = [
      ['lineWidth', 'width'],
      ['stroke', 'color'],
      ['opacity'],
      ['shadowBlur'],
      ['shadowOffsetX'],
      ['shadowOffsetY'],
      ['shadowColor'],
      ['lineDash', 'type'],
      ['lineDashOffset', 'dashOffset'],
      ['lineCap', 'cap'],
      ['lineJoin', 'join'],
      ['miterLimit']
    ],
    vd = Da(yd),
    md = (function () {
      function t() {}
      return (
        (t.prototype.getLineStyle = function (t) {
          return vd(this, t)
        }),
        t
      )
    })(),
    xd = [
      ['fill', 'color'],
      ['stroke', 'borderColor'],
      ['lineWidth', 'borderWidth'],
      ['opacity'],
      ['shadowBlur'],
      ['shadowOffsetX'],
      ['shadowOffsetY'],
      ['shadowColor'],
      ['lineDash', 'borderType'],
      ['lineDashOffset', 'borderDashOffset'],
      ['lineCap', 'borderCap'],
      ['lineJoin', 'borderJoin'],
      ['miterLimit', 'borderMiterLimit']
    ],
    _d = Da(xd),
    bd = (function () {
      function t() {}
      return (
        (t.prototype.getItemStyle = function (t, e) {
          return _d(this, t, e)
        }),
        t
      )
    })(),
    wd = (function () {
      function t(t, e, n) {
        ;(this.parentModel = e), (this.ecModel = n), (this.option = t)
      }
      return (
        (t.prototype.init = function (t, e, n) {
          for (var i = [], r = 3; r < arguments.length; r++) i[r - 3] = arguments[r]
        }),
        (t.prototype.mergeOption = function (t, e) {
          C(this.option, t, !0)
        }),
        (t.prototype.get = function (t, e) {
          return null == t ? this.option : this._doGet(this.parsePath(t), !e && this.parentModel)
        }),
        (t.prototype.getShallow = function (t, e) {
          var n = this.option,
            i = null == n ? n : n[t]
          if (null == i && !e) {
            var r = this.parentModel
            r && (i = r.getShallow(t))
          }
          return i
        }),
        (t.prototype.getModel = function (e, n) {
          var i = null != e,
            r = i ? this.parsePath(e) : null
          return new t(i ? this._doGet(r) : this.option, (n = n || (this.parentModel && this.parentModel.getModel(this.resolveParentPath(r)))), this.ecModel)
        }),
        (t.prototype.isEmpty = function () {
          return null == this.option
        }),
        (t.prototype.restoreData = function () {}),
        (t.prototype.clone = function () {
          return new (0, this.constructor)(T(this.option))
        }),
        (t.prototype.parsePath = function (t) {
          return 'string' == typeof t ? t.split('.') : t
        }),
        (t.prototype.resolveParentPath = function (t) {
          return t
        }),
        (t.prototype.isAnimationEnabled = function () {
          if (!r.node && this.option) {
            if (null != this.option.animation) return !!this.option.animation
            if (this.parentModel) return this.parentModel.isAnimationEnabled()
          }
        }),
        (t.prototype._doGet = function (t, e) {
          var n = this.option
          if (!t) return n
          for (var i = 0; i < t.length && (!t[i] || null != (n = n && 'object' == typeof n ? n[t[i]] : null)); i++);
          return null == n && e && (n = e._doGet(this.resolveParentPath(t), e.parentModel)), n
        }),
        t
      )
    })()
  wa(wd),
    (ud = wd),
    (cd = ['__\0is_clz', Ma++].join('_')),
    (ud.prototype[cd] = !0),
    (ud.isInstance = function (t) {
      return !(!t || !t[cd])
    }),
    R(wd, md),
    R(wd, bd),
    R(wd, ka),
    R(wd, gd)
  var Sd = Math.round(10 * Math.random())
  function Md(t) {
    return [t || '', Sd++].join('_')
  }
  function Id(t, e) {
    return C(C({}, t, !0), e, !0)
  }
  var Td = 'ZH',
    Cd = 'EN',
    Dd = Cd,
    Ad = {},
    kd = {},
    Ld = r.domSupported && (document.documentElement.lang || navigator.language || navigator.browserLanguage || Dd).toUpperCase().indexOf(Td) > -1 ? Td : Dd
  function Pd(t, e) {
    ;(t = t.toUpperCase()), (kd[t] = new wd(e)), (Ad[t] = e)
  }
  function Od(t) {
    return kd[t]
  }
  Pd(Cd, {
    time: {
      month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
      monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
      dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
      dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
    },
    legend: { selector: { all: 'All', inverse: 'Inv' } },
    toolbox: {
      brush: {
        title: { rect: 'Box Select', polygon: 'Lasso Select', lineX: 'Horizontally Select', lineY: 'Vertically Select', keep: 'Keep Selections', clear: 'Clear Selections' }
      },
      dataView: { title: 'Data View', lang: ['Data View', 'Close', 'Refresh'] },
      dataZoom: { title: { zoom: 'Zoom', back: 'Zoom Reset' } },
      magicType: { title: { line: 'Switch to Line Chart', bar: 'Switch to Bar Chart', stack: 'Stack', tiled: 'Tile' } },
      restore: { title: 'Restore' },
      saveAsImage: { title: 'Save as Image', lang: ['Right Click to Save Image'] }
    },
    series: {
      typeNames: {
        pie: 'Pie chart',
        bar: 'Bar chart',
        line: 'Line chart',
        scatter: 'Scatter plot',
        effectScatter: 'Ripple scatter plot',
        radar: 'Radar chart',
        tree: 'Tree',
        treemap: 'Treemap',
        boxplot: 'Boxplot',
        candlestick: 'Candlestick',
        k: 'K line chart',
        heatmap: 'Heat map',
        map: 'Map',
        parallel: 'Parallel coordinate map',
        lines: 'Line graph',
        graph: 'Relationship graph',
        sankey: 'Sankey diagram',
        funnel: 'Funnel chart',
        gauge: 'Gauge',
        pictorialBar: 'Pictorial bar',
        themeRiver: 'Theme River Map',
        sunburst: 'Sunburst',
        custom: 'Custom chart',
        chart: 'Chart'
      }
    },
    aria: {
      general: { withTitle: 'This is a chart about "{title}"', withoutTitle: 'This is a chart' },
      series: {
        single: { prefix: '', withName: ' with type {seriesType} named {seriesName}.', withoutName: ' with type {seriesType}.' },
        multiple: {
          prefix: '. It consists of {seriesCount} series count.',
          withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',
          withoutName: ' The {seriesId} series is a {seriesType}.',
          separator: { middle: '', end: '' }
        }
      },
      data: {
        allData: 'The data is as follows: ',
        partialData: 'The first {displayCnt} items are: ',
        withName: 'the data for {name} is {value}',
        withoutName: '{value}',
        separator: { middle: ', ', end: '. ' }
      }
    }
  }),
    Pd(Td, {
      time: {
        month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
        monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
        dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
        dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']
      },
      legend: { selector: { all: '全选', inverse: '反选' } },
      toolbox: {
        brush: { title: { rect: '矩形选择', polygon: '圈选', lineX: '横向选择', lineY: '纵向选择', keep: '保持选择', clear: '清除选择' } },
        dataView: { title: '数据视图', lang: ['数据视图', '关闭', '刷新'] },
        dataZoom: { title: { zoom: '区域缩放', back: '区域缩放还原' } },
        magicType: { title: { line: '切换为折线图', bar: '切换为柱状图', stack: '切换为堆叠', tiled: '切换为平铺' } },
        restore: { title: '还原' },
        saveAsImage: { title: '保存为图片', lang: ['右键另存为图片'] }
      },
      series: {
        typeNames: {
          pie: '饼图',
          bar: '柱状图',
          line: '折线图',
          scatter: '散点图',
          effectScatter: '涟漪散点图',
          radar: '雷达图',
          tree: '树图',
          treemap: '矩形树图',
          boxplot: '箱型图',
          candlestick: 'K线图',
          k: 'K线图',
          heatmap: '热力图',
          map: '地图',
          parallel: '平行坐标图',
          lines: '线图',
          graph: '关系图',
          sankey: '桑基图',
          funnel: '漏斗图',
          gauge: '仪表盘图',
          pictorialBar: '象形柱图',
          themeRiver: '主题河流图',
          sunburst: '旭日图',
          custom: '自定义图表',
          chart: '图表'
        }
      },
      aria: {
        general: { withTitle: '这是一个关于“{title}”的图表。', withoutTitle: '这是一个图表，' },
        series: {
          single: { prefix: '', withName: '图表类型是{seriesType}，表示{seriesName}。', withoutName: '图表类型是{seriesType}。' },
          multiple: {
            prefix: '它由{seriesCount}个图表系列组成。',
            withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType}，',
            withoutName: '第{seriesId}个系列是一个{seriesType}，',
            separator: { middle: '；', end: '。' }
          }
        },
        data: { allData: '其数据是——', partialData: '其中，前{displayCnt}项是——', withName: '{name}的数据是{value}', withoutName: '{value}', separator: { middle: '，', end: '' } }
      }
    })
  var Rd = null
  function Nd() {
    return Rd
  }
  var zd = 1e3,
    Ed = 6e4,
    Bd = 36e5,
    Vd = 864e5,
    Gd = 31536e6,
    Fd = {
      year: /({yyyy}|{yy})/,
      month: /({MMMM}|{MMM}|{MM}|{M})/,
      day: /({dd}|{d})/,
      hour: /({HH}|{H}|{hh}|{h})/,
      minute: /({mm}|{m})/,
      second: /({ss}|{s})/,
      millisecond: /({SSS}|{S})/
    },
    Wd = { year: '{yyyy}', month: '{MMM}', day: '{d}', hour: '{HH}:{mm}', minute: '{HH}:{mm}', second: '{HH}:{mm}:{ss}', millisecond: '{HH}:{mm}:{ss} {SSS}' },
    Hd = '{yyyy}-{MM}-{dd}',
    Ud = {
      year: '{yyyy}',
      month: '{yyyy}-{MM}',
      day: Hd,
      hour: Hd + ' ' + Wd.hour,
      minute: Hd + ' ' + Wd.minute,
      second: Hd + ' ' + Wd.second,
      millisecond: '{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}'
    },
    Yd = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'],
    Xd = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond']
  function Zd(t) {
    return X(t) || Y(t)
      ? t
      : (function (t) {
          t = t || {}
          var e = {},
            n = !0
          return (
            z(Yd, function (e) {
              n && (n = null == t[e])
            }),
            z(Yd, function (i, r) {
              var o = t[i]
              e[i] = {}
              for (var a = null, s = r; s >= 0; s--) {
                var l = Yd[s],
                  u = q(o) && !U(o) ? o[l] : o,
                  c = void 0
                U(u)
                  ? (a = (c = u.slice())[0] || '')
                  : X(u)
                    ? (c = [(a = u)])
                    : (null == a ? (a = Wd[i]) : Fd[l].test(a) || (a = e[l][l][0] + ' ' + a), (c = [a]), n && (c[1] = '{primary|' + a + '}')),
                  (e[i][l] = c)
              }
            }),
            e
          )
        })(t)
  }
  function jd(t, e) {
    return '0000'.substr(0, e - (t += '').length) + t
  }
  function qd(t) {
    switch (t) {
      case 'half-year':
      case 'quarter':
        return 'month'
      case 'week':
      case 'half-week':
        return 'day'
      case 'half-day':
      case 'quarter-day':
        return 'hour'
      default:
        return t
    }
  }
  function Kd(t) {
    return t === qd(t)
  }
  function $d(t, e, n, i) {
    var r = Ao(t),
      o = r[tp(n)](),
      a = r[ep(n)]() + 1,
      s = Math.floor((a - 1) / 3) + 1,
      l = r[np(n)](),
      u = r['get' + (n ? 'UTC' : '') + 'Day'](),
      c = r[ip(n)](),
      h = ((c - 1) % 12) + 1,
      d = r[rp(n)](),
      p = r[op(n)](),
      f = r[ap(n)](),
      g = c >= 12 ? 'pm' : 'am',
      y = g.toUpperCase(),
      v = (i instanceof wd ? i : Od(i || Ld) || kd[Dd]).getModel('time'),
      m = v.get('month'),
      x = v.get('monthAbbr'),
      _ = v.get('dayOfWeek'),
      b = v.get('dayOfWeekAbbr')
    return (e || '')
      .replace(/{a}/g, g + '')
      .replace(/{A}/g, y + '')
      .replace(/{yyyy}/g, o + '')
      .replace(/{yy}/g, jd((o % 100) + '', 2))
      .replace(/{Q}/g, s + '')
      .replace(/{MMMM}/g, m[a - 1])
      .replace(/{MMM}/g, x[a - 1])
      .replace(/{MM}/g, jd(a, 2))
      .replace(/{M}/g, a + '')
      .replace(/{dd}/g, jd(l, 2))
      .replace(/{d}/g, l + '')
      .replace(/{eeee}/g, _[u])
      .replace(/{ee}/g, b[u])
      .replace(/{e}/g, u + '')
      .replace(/{HH}/g, jd(c, 2))
      .replace(/{H}/g, c + '')
      .replace(/{hh}/g, jd(h + '', 2))
      .replace(/{h}/g, h + '')
      .replace(/{mm}/g, jd(d, 2))
      .replace(/{m}/g, d + '')
      .replace(/{ss}/g, jd(p, 2))
      .replace(/{s}/g, p + '')
      .replace(/{SSS}/g, jd(f, 3))
      .replace(/{S}/g, f + '')
  }
  function Jd(t, e) {
    var n = Ao(t),
      i = n[ep(e)]() + 1,
      r = n[np(e)](),
      o = n[ip(e)](),
      a = n[rp(e)](),
      s = n[op(e)](),
      l = 0 === n[ap(e)](),
      u = l && 0 === s,
      c = u && 0 === a,
      h = c && 0 === o,
      d = h && 1 === r
    return d && 1 === i ? 'year' : d ? 'month' : h ? 'day' : c ? 'hour' : u ? 'minute' : l ? 'second' : 'millisecond'
  }
  function Qd(t, e, n) {
    switch (e) {
      case 'year':
        t[lp(n)](0)
      case 'month':
        t[up(n)](1)
      case 'day':
        t[cp(n)](0)
      case 'hour':
        t[hp(n)](0)
      case 'minute':
        t[dp(n)](0)
      case 'second':
        t[pp(n)](0)
    }
    return t
  }
  function tp(t) {
    return t ? 'getUTCFullYear' : 'getFullYear'
  }
  function ep(t) {
    return t ? 'getUTCMonth' : 'getMonth'
  }
  function np(t) {
    return t ? 'getUTCDate' : 'getDate'
  }
  function ip(t) {
    return t ? 'getUTCHours' : 'getHours'
  }
  function rp(t) {
    return t ? 'getUTCMinutes' : 'getMinutes'
  }
  function op(t) {
    return t ? 'getUTCSeconds' : 'getSeconds'
  }
  function ap(t) {
    return t ? 'getUTCMilliseconds' : 'getMilliseconds'
  }
  function sp(t) {
    return t ? 'setUTCFullYear' : 'setFullYear'
  }
  function lp(t) {
    return t ? 'setUTCMonth' : 'setMonth'
  }
  function up(t) {
    return t ? 'setUTCDate' : 'setDate'
  }
  function cp(t) {
    return t ? 'setUTCHours' : 'setHours'
  }
  function hp(t) {
    return t ? 'setUTCMinutes' : 'setMinutes'
  }
  function dp(t) {
    return t ? 'setUTCSeconds' : 'setSeconds'
  }
  function pp(t) {
    return t ? 'setUTCMilliseconds' : 'setMilliseconds'
  }
  function fp(t) {
    if (!zo(t)) return X(t) ? t : '-'
    var e = (t + '').split('.')
    return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,') + (e.length > 1 ? '.' + e[1] : '')
  }
  function gp(t, e) {
    return (
      (t = (t || '').toLowerCase().replace(/-(.)/g, function (t, e) {
        return e.toUpperCase()
      })),
      e && t && (t = t.charAt(0).toUpperCase() + t.slice(1)),
      t
    )
  }
  var yp = st
  function vp(t, e, n) {
    function i(t) {
      return t && ut(t) ? t : '-'
    }
    function r(t) {
      return !(null == t || isNaN(t) || !isFinite(t))
    }
    var o = 'time' === e,
      a = t instanceof Date
    if (o || a) {
      var s = o ? Ao(t) : t
      if (!isNaN(+s)) return $d(s, '{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}', n)
      if (a) return '-'
    }
    if ('ordinal' === e) return Z(t) ? i(t) : j(t) && r(t) ? t + '' : '-'
    var l = No(t)
    return r(l) ? fp(l) : Z(t) ? i(t) : 'boolean' == typeof t ? t + '' : '-'
  }
  var mp = ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
    xp = function (t, e) {
      return '{' + t + (null == e ? '' : e) + '}'
    }
  function _p(t, e, n) {
    U(e) || (e = [e])
    var i = e.length
    if (!i) return ''
    for (var r = e[0].$vars || [], o = 0; o < r.length; o++) {
      var a = mp[o]
      t = t.replace(xp(a), xp(a, 0))
    }
    for (var s = 0; s < i; s++)
      for (var l = 0; l < r.length; l++) {
        var u = e[s][r[l]]
        t = t.replace(xp(mp[l], s), n ? oe(u) : u)
      }
    return t
  }
  function bp(t, e) {
    var n = X(t) ? { color: t, extraCssText: e } : t || {},
      i = n.color,
      r = n.type
    e = n.extraCssText
    var o = n.renderMode || 'html'
    return i
      ? 'html' === o
        ? 'subItem' === r
          ? '<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:' +
            oe(i) +
            ';' +
            (e || '') +
            '"></span>'
          : '<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:' + oe(i) + ';' + (e || '') + '"></span>'
        : {
            renderMode: o,
            content: '{' + (n.markerId || 'markerX') + '|}  ',
            style: 'subItem' === r ? { width: 4, height: 4, borderRadius: 2, backgroundColor: i } : { width: 10, height: 10, borderRadius: 5, backgroundColor: i }
          }
      : ''
  }
  function wp(t, e) {
    return (e = e || 'transparent'), X(t) ? t : (q(t) && t.colorStops && (t.colorStops[0] || {}).color) || e
  }
  function Sp(t, e) {
    if ('_blank' === e || 'blank' === e) {
      var n = window.open()
      ;(n.opener = null), (n.location.href = t)
    } else window.open(t, e)
  }
  var Mp = {},
    Ip = {},
    Tp = (function () {
      function t() {
        ;(this._normalMasterList = []), (this._nonSeriesBoxMasterList = [])
      }
      return (
        (t.prototype.create = function (t, e) {
          function n(n, i) {
            var r = []
            return (
              z(n, function (n, i) {
                var o = n.create(t, e)
                r = r.concat(o || [])
              }),
              r
            )
          }
          ;(this._nonSeriesBoxMasterList = n(Mp, !0)), (this._normalMasterList = n(Ip, !1))
        }),
        (t.prototype.update = function (t, e) {
          z(this._normalMasterList, function (n) {
            n.update && n.update(t, e)
          })
        }),
        (t.prototype.getCoordinateSystems = function () {
          return this._normalMasterList.concat(this._nonSeriesBoxMasterList)
        }),
        (t.register = function (t, e) {
          'matrix' !== t && 'calendar' !== t ? (Ip[t] = e) : (Mp[t] = e)
        }),
        (t.get = function (t) {
          return Ip[t] || Mp[t]
        }),
        t
      )
    })()
  var Cp = 1,
    Dp = 2
  var Ap = yt()
  var kp = 0,
    Lp = 1,
    Pp = 2
  function Op(t, e) {
    var n = t.getShallow('coordinateSystem'),
      i = t.getShallow('coordinateSystemUsage', !0),
      r = kp
    if (n) {
      var o = 'series' === t.mainType
      null == i && (i = o ? 'data' : 'box'),
        'data' === i
          ? ((r = Lp), o || (r = kp))
          : 'box' === i &&
            ((r = Pp),
            o ||
              (function (t) {
                return !!Mp[t]
              })(n) ||
              (r = kp))
    }
    return { coordSysType: n, kind: r }
  }
  function Rp(t) {
    var e = t.targetModel,
      n = t.coordSysType,
      i = t.coordSysProvider,
      r = t.isDefaultDataCoordSys
    t.allowNotFound
    var o = Op(e),
      a = o.kind,
      s = o.coordSysType
    if ((r && a !== Lp && ((a = Lp), (s = n)), a === kp || s !== n)) return !1
    var l = i(n, e)
    return !!l && (a === Lp ? (e.coordinateSystem = l) : (e.boxCoordinateSystem = l), !0)
  }
  var Np = function (t, e) {
      var n = e.getReferringComponents(t, ha).models[0]
      return n && n.coordinateSystem
    },
    zp = z,
    Ep = ['left', 'right', 'top', 'bottom', 'width', 'height'],
    Bp = [
      ['width', 'left', 'right'],
      ['height', 'top', 'bottom']
    ]
  function Vp(t, e, n, i, r) {
    var o = 0,
      a = 0
    null == i && (i = 1 / 0), null == r && (r = 1 / 0)
    var s = 0
    e.eachChild(function (l, u) {
      var c,
        h,
        d = l.getBoundingRect(),
        p = e.childAt(u + 1),
        f = p && p.getBoundingRect()
      if ('horizontal' === t) {
        var g = d.width + (f ? -f.x + d.x : 0)
        ;(c = o + g) > i || l.newline ? ((o = 0), (c = g), (a += s + n), (s = d.height)) : (s = Math.max(s, d.height))
      } else {
        var y = d.height + (f ? -f.y + d.y : 0)
        ;(h = a + y) > r || l.newline ? ((o += s + n), (a = 0), (h = y), (s = d.width)) : (s = Math.max(s, d.width))
      }
      l.newline || ((l.x = o), (l.y = a), l.markRedraw(), 'horizontal' === t ? (o = c + n) : (a = h + n))
    })
  }
  var Gp = Vp
  H(Vp, 'vertical'), H(Vp, 'horizontal')
  function Fp(t, e) {
    return {
      left: t.getShallow('left', e),
      top: t.getShallow('top', e),
      right: t.getShallow('right', e),
      bottom: t.getShallow('bottom', e),
      width: t.getShallow('width', e),
      height: t.getShallow('height', e)
    }
  }
  function Wp(t, e) {
    var n = (function (t, e) {
        var n,
          i,
          r = Xp(t, e, { enableLayoutOnlyByCenter: !0 }),
          o = t.getBoxLayoutParams()
        if (r.type === Yp.point) (i = r.refPoint), (n = Hp(o, { width: e.getWidth(), height: e.getHeight() }))
        else {
          var a = t.get('center'),
            s = U(a) ? a : [a, a]
          ;(n = Hp(o, r.refContainer)), (i = r.boxCoordFrom === Dp ? r.refPoint : [yo(s[0], n.width) + n.x, yo(s[1], n.height) + n.y])
        }
        return { viewRect: n, center: i }
      })(t, e),
      i = n.viewRect,
      r = n.center,
      o = t.get('radius')
    U(o) || (o = [0, o])
    var a = yo(i.width, e.getWidth()),
      s = yo(i.height, e.getHeight()),
      l = Math.min(a, s),
      u = yo(o[0], l / 2),
      c = yo(o[1], l / 2)
    return { cx: r[0], cy: r[1], r0: u, r: c, viewRect: i }
  }
  function Hp(t, e, n) {
    n = yp(n || 0)
    var i = e.width,
      r = e.height,
      o = yo(t.left, i),
      a = yo(t.top, r),
      s = yo(t.right, i),
      l = yo(t.bottom, r),
      u = yo(t.width, i),
      c = yo(t.height, r),
      h = n[2] + n[0],
      d = n[1] + n[3],
      p = t.aspect
    switch (
      (isNaN(u) && (u = i - s - d - o),
      isNaN(c) && (c = r - l - h - a),
      null != p && (isNaN(u) && isNaN(c) && (p > i / r ? (u = 0.8 * i) : (c = 0.8 * r)), isNaN(u) && (u = p * c), isNaN(c) && (c = u / p)),
      isNaN(o) && (o = i - s - u - d),
      isNaN(a) && (a = r - l - c - h),
      t.left || t.right)
    ) {
      case 'center':
        o = i / 2 - u / 2 - n[3]
        break
      case 'right':
        o = i - u - d
    }
    switch (t.top || t.bottom) {
      case 'middle':
      case 'center':
        a = r / 2 - c / 2 - n[0]
        break
      case 'bottom':
        a = r - c - h
    }
    ;(o = o || 0), (a = a || 0), isNaN(u) && (u = i - d - o - (s || 0)), isNaN(c) && (c = r - h - a - (l || 0))
    var f = new He((e.x || 0) + o + n[3], (e.y || 0) + a + n[0], u, c)
    return (f.margin = n), f
  }
  function Up(t, e, n) {
    var i = t.getShallow('preserveAspect', !0)
    if (!i) return e
    var r = e.width / e.height
    if (Math.abs(Math.atan(n) - Math.atan(r)) < 1e-9) return e
    var o = t.getShallow('preserveAspectAlign', !0),
      a = t.getShallow('preserveAspectVerticalAlign', !0),
      s = { width: e.width, height: e.height },
      l = 'cover' === i
    return (
      (r > n && !l) || (r < n && l)
        ? ((s.width = e.height * n), 'left' === o ? (s.left = 0) : 'right' === o ? (s.right = 0) : (s.left = 'center'))
        : ((s.height = e.width / n), 'top' === a ? (s.top = 0) : 'bottom' === a ? (s.bottom = 0) : (s.top = 'middle')),
      Hp(s, e)
    )
  }
  var Yp = { rect: 1, point: 2 }
  function Xp(t, e, n) {
    var i,
      r,
      o,
      a,
      s = t.boxCoordinateSystem
    if (s) {
      var l = (function (t) {
          var e = t.getShallow('coord', !0),
            n = Cp
          if (null == e) {
            var i = Ap.get(t.type)
            i && i.getCoord2 && ((n = Dp), (e = i.getCoord2(t)))
          }
          return { coord: e, from: n }
        })(t),
        u = l.coord,
        c = l.from
      if (s.dataToLayout) {
        ;(o = Yp.rect), (a = c)
        var h = s.dataToLayout(u)
        i = h.contentRect || h.rect
      } else n && n.enableLayoutOnlyByCenter && s.dataToPoint && ((o = Yp.point), (a = c), (r = s.dataToPoint(u)))
    }
    return (
      null == o && (o = Yp.rect),
      o === Yp.rect && (i || (i = { x: 0, y: 0, width: e.getWidth(), height: e.getHeight() }), (r = [i.x + i.width / 2, i.y + i.height / 2])),
      { type: o, refContainer: i, refPoint: r, boxCoordFrom: a }
    )
  }
  function Zp(t, e, n, i, r, o) {
    var a,
      s = !r || !r.hv || r.hv[0],
      l = !r || !r.hv || r.hv[1],
      u = (r && r.boundingMode) || 'all'
    if ((((o = o || t).x = t.x), (o.y = t.y), !s && !l)) return !1
    if ('raw' === u) a = 'group' === t.type ? new He(0, 0, +e.width || 0, +e.height || 0) : t.getBoundingRect()
    else if (((a = t.getBoundingRect()), t.needLocalTransform())) {
      var c = t.getLocalTransform()
      ;(a = a.clone()).applyTransform(c)
    }
    var h = Hp(k({ width: a.width, height: a.height }, e), n, i),
      d = s ? h.x - a.x : 0,
      p = l ? h.y - a.y : 0
    return 'raw' === u ? ((o.x = d), (o.y = p)) : ((o.x += d), (o.y += p)), o === t && t.markRedraw(), !0
  }
  function jp(t) {
    var e = t.layoutMode || t.constructor.layoutMode
    return q(e) ? e : e ? { type: e } : null
  }
  function qp(t, e, n) {
    var i = n && n.ignoreSize
    !U(i) && (i = [i, i])
    var r = a(Bp[0], 0),
      o = a(Bp[1], 1)
    function a(n, r) {
      var o = {},
        a = 0,
        l = {},
        u = 0
      if (
        (zp(n, function (e) {
          l[e] = t[e]
        }),
        zp(n, function (t) {
          _t(e, t) && (o[t] = l[t] = e[t]), s(o, t) && a++, s(l, t) && u++
        }),
        i[r])
      )
        return s(e, n[1]) ? (l[n[2]] = null) : s(e, n[2]) && (l[n[1]] = null), l
      if (2 !== u && a) {
        if (a >= 2) return o
        for (var c = 0; c < n.length; c++) {
          var h = n[c]
          if (!_t(o, h) && _t(t, h)) {
            o[h] = t[h]
            break
          }
        }
        return o
      }
      return l
    }
    function s(t, e) {
      return null != t[e] && 'auto' !== t[e]
    }
    function l(t, e, n) {
      zp(t, function (t) {
        e[t] = n[t]
      })
    }
    l(Bp[0], t, r), l(Bp[1], t, o)
  }
  function Kp(t) {
    return $p({}, t)
  }
  function $p(t, e) {
    return (
      e &&
        t &&
        zp(Ep, function (n) {
          _t(e, n) && (t[n] = e[n])
        }),
      t
    )
  }
  var Jp = sa(),
    Qp = (function (t) {
      function e(e, n, i) {
        var r = t.call(this, e, n, i) || this
        return (r.uid = Md('ec_cpt_model')), r
      }
      var i
      return (
        n(e, t),
        (e.prototype.init = function (t, e, n) {
          this.mergeDefaultAndTheme(t, n)
        }),
        (e.prototype.mergeDefaultAndTheme = function (t, e) {
          var n = jp(this),
            i = n ? Kp(t) : {}
          C(t, e.getTheme().get(this.mainType)), C(t, this.getDefaultOption()), n && qp(t, i, n)
        }),
        (e.prototype.mergeOption = function (t, e) {
          C(this.option, t, !0)
          var n = jp(this)
          n && qp(this.option, t, n)
        }),
        (e.prototype.optionUpdated = function (t, e) {}),
        (e.prototype.getDefaultOption = function () {
          var t = this.constructor
          if (
            !(function (t) {
              return !(!t || !t[_a])
            })(t)
          )
            return t.defaultOption
          var e = Jp(this)
          if (!e.defaultOption) {
            for (var n = [], i = t; i; ) {
              var r = i.prototype.defaultOption
              r && n.push(r), (i = i.superClass)
            }
            for (var o = {}, a = n.length - 1; a >= 0; a--) o = C(o, n[a], !0)
            e.defaultOption = o
          }
          return e.defaultOption
        }),
        (e.prototype.getReferringComponents = function (t, e) {
          var n = t + 'Index',
            i = t + 'Id'
          return pa(this.ecModel, t, { index: this.get(n, !0), id: this.get(i, !0) }, e)
        }),
        (e.prototype.getBoxLayoutParams = function () {
          return Fp(this, !1)
        }),
        (e.prototype.getZLevelKey = function () {
          return ''
        }),
        (e.prototype.setZLevel = function (t) {
          this.option.zlevel = t
        }),
        (e.protoInitialize = (((i = e.prototype).type = 'component'), (i.id = ''), (i.name = ''), (i.mainType = ''), (i.subType = ''), void (i.componentIndex = 0))),
        e
      )
    })(wd)
  Sa(Qp, wd),
    Ca(Qp),
    (function (t) {
      var e = {}
      ;(t.registerSubTypeDefaulter = function (t, n) {
        var i = ba(t)
        e[i.main] = n
      }),
        (t.determineSubType = function (n, i) {
          var r = i.type
          if (!r) {
            var o = ba(n).main
            t.hasSubTypes(n) && e[o] && (r = e[o](i))
          }
          return r
        })
    })(Qp),
    (function (t, e) {
      function n(t, e) {
        return t[e] || (t[e] = { predecessor: [], successor: [] }), t[e]
      }
      t.topologicalTravel = function (t, i, r, o) {
        if (t.length) {
          var a = (function (t) {
              var i = {},
                r = []
              return (
                z(t, function (o) {
                  var a = n(i, o),
                    s = (function (t, e) {
                      var n = []
                      return (
                        z(t, function (t) {
                          P(e, t) >= 0 && n.push(t)
                        }),
                        n
                      )
                    })((a.originalDeps = e(o)), t)
                  ;(a.entryCount = s.length),
                    0 === a.entryCount && r.push(o),
                    z(s, function (t) {
                      P(a.predecessor, t) < 0 && a.predecessor.push(t)
                      var e = n(i, t)
                      P(e.successor, t) < 0 && e.successor.push(o)
                    })
                }),
                { graph: i, noEntryList: r }
              )
            })(i),
            s = a.graph,
            l = a.noEntryList,
            u = {}
          for (
            z(t, function (t) {
              u[t] = !0
            });
            l.length;

          ) {
            var c = l.pop(),
              h = s[c],
              d = !!u[c]
            d && (r.call(o, c, h.originalDeps.slice()), delete u[c]), z(h.successor, d ? f : p)
          }
          z(u, function () {
            var t = ''
            throw new Error(t)
          })
        }
        function p(t) {
          s[t].entryCount--, 0 === s[t].entryCount && l.push(t)
        }
        function f(t) {
          ;(u[t] = !0), p(t)
        }
      }
    })(Qp, function (t) {
      var e = []
      z(Qp.getClassesByMainType(t), function (t) {
        e = e.concat(t.dependencies || t.prototype.dependencies || [])
      }),
        (e = E(e, function (t) {
          return ba(t).main
        })),
        'dataset' !== t && P(e, 'dataset') <= 0 && e.unshift('dataset')
      return e
    })
  var tf = { color: {}, darkColor: {}, size: {} },
    ef = (tf.color = {
      theme: ['#5070dd', '#b6d634', '#505372', '#ff994d', '#0ca8df', '#ffd10a', '#fb628b', '#785db0', '#3fbe95'],
      neutral00: '#fff',
      neutral05: '#f4f7fd',
      neutral10: '#e8ebf0',
      neutral15: '#dbdee4',
      neutral20: '#cfd2d7',
      neutral25: '#c3c5cb',
      neutral30: '#b7b9be',
      neutral35: '#aaacb2',
      neutral40: '#9ea0a5',
      neutral45: '#929399',
      neutral50: '#86878c',
      neutral55: '#797b7f',
      neutral60: '#6d6e73',
      neutral65: '#616266',
      neutral70: '#54555a',
      neutral75: '#48494d',
      neutral80: '#3c3c41',
      neutral85: '#303034',
      neutral90: '#232328',
      neutral95: '#17171b',
      neutral99: '#000',
      accent05: '#eff1f9',
      accent10: '#e0e4f2',
      accent15: '#d0d6ec',
      accent20: '#c0c9e6',
      accent25: '#b1bbdf',
      accent30: '#a1aed9',
      accent35: '#91a0d3',
      accent40: '#8292cc',
      accent45: '#7285c6',
      accent50: '#6578ba',
      accent55: '#5c6da9',
      accent60: '#536298',
      accent65: '#4a5787',
      accent70: '#404c76',
      accent75: '#374165',
      accent80: '#2e3654',
      accent85: '#252b43',
      accent90: '#1b2032',
      accent95: '#121521',
      transparent: 'rgba(0,0,0,0)',
      highlight: 'rgba(255,231,130,0.8)'
    })
  for (var nf in (A(ef, {
    primary: ef.neutral80,
    secondary: ef.neutral70,
    tertiary: ef.neutral60,
    quaternary: ef.neutral50,
    disabled: ef.neutral20,
    border: ef.neutral30,
    borderTint: ef.neutral20,
    borderShade: ef.neutral40,
    background: ef.neutral05,
    backgroundTint: 'rgba(234,237,245,0.5)',
    backgroundTransparent: 'rgba(255,255,255,0)',
    backgroundShade: ef.neutral10,
    shadow: 'rgba(0,0,0,0.2)',
    shadowTint: 'rgba(129,130,136,0.2)',
    axisLine: ef.neutral70,
    axisLineTint: ef.neutral40,
    axisTick: ef.neutral70,
    axisTickMinor: ef.neutral60,
    axisLabel: ef.neutral70,
    axisSplitLine: ef.neutral15,
    axisMinorSplitLine: ef.neutral05
  }),
  ef))
    if (ef.hasOwnProperty(nf)) {
      var rf = ef[nf]
      'theme' === nf
        ? (tf.darkColor.theme = ef.theme.slice())
        : 'highlight' === nf
          ? (tf.darkColor.highlight = 'rgba(255,231,130,0.4)')
          : 0 === nf.indexOf('accent')
            ? (tf.darkColor[nf] = di(
                rf,
                null,
                function (t) {
                  return 0.5 * t
                },
                function (t) {
                  return Math.min(1, 1.3 - t)
                }
              ))
            : (tf.darkColor[nf] = di(
                rf,
                null,
                function (t) {
                  return 0.9 * t
                },
                function (t) {
                  return 1 - Math.pow(t, 1.5)
                }
              ))
    }
  tf.size = { xxs: 2, xs: 5, s: 10, m: 15, l: 20, xl: 30, xxl: 40, xxxl: 50 }
  var of = ''
  'undefined' != typeof navigator && (of = navigator.platform || '')
  var af = 'rgba(0, 0, 0, 0.2)',
    sf = tf.color.theme[0],
    lf = di(sf, null, null, 0.9),
    uf = {
      darkMode: 'auto',
      colorBy: 'series',
      color: tf.color.theme,
      gradientColor: [lf, sf],
      aria: {
        decal: {
          decals: [
            { color: af, dashArrayX: [1, 0], dashArrayY: [2, 5], symbolSize: 1, rotation: Math.PI / 6 },
            {
              color: af,
              symbol: 'circle',
              dashArrayX: [
                [8, 8],
                [0, 8, 8, 0]
              ],
              dashArrayY: [6, 0],
              symbolSize: 0.8
            },
            { color: af, dashArrayX: [1, 0], dashArrayY: [4, 3], rotation: -Math.PI / 4 },
            {
              color: af,
              dashArrayX: [
                [6, 6],
                [0, 6, 6, 0]
              ],
              dashArrayY: [6, 0]
            },
            {
              color: af,
              dashArrayX: [
                [1, 0],
                [1, 6]
              ],
              dashArrayY: [1, 0, 6, 0],
              rotation: Math.PI / 4
            },
            {
              color: af,
              symbol: 'triangle',
              dashArrayX: [
                [9, 9],
                [0, 9, 9, 0]
              ],
              dashArrayY: [7, 2],
              symbolSize: 0.75
            }
          ]
        }
      },
      textStyle: { fontFamily: of.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif', fontSize: 12, fontStyle: 'normal', fontWeight: 'normal' },
      blendMode: null,
      stateAnimation: { duration: 300, easing: 'cubicOut' },
      animation: 'auto',
      animationDuration: 1e3,
      animationDurationUpdate: 500,
      animationEasing: 'cubicInOut',
      animationEasingUpdate: 'cubicInOut',
      animationThreshold: 2e3,
      progressiveThreshold: 3e3,
      progressive: 400,
      hoverLayerThreshold: 3e3,
      useUTC: !1
    },
    cf = yt(['tooltip', 'label', 'itemName', 'itemId', 'itemGroupId', 'itemChildGroupId', 'seriesName']),
    hf = 'original',
    df = 'arrayRows',
    pf = 'objectRows',
    ff = 'keyedColumns',
    gf = 'typedArray',
    yf = 'unknown',
    vf = 'column',
    mf = 'row',
    xf = 1,
    _f = 2,
    bf = 3,
    wf = sa()
  function Sf(t, e, n) {
    var i = {},
      r = If(e)
    if (!r || !t) return i
    var o,
      a,
      s = [],
      l = [],
      u = e.ecModel,
      c = wf(u).datasetMap,
      h = r.uid + '_' + n.seriesLayoutBy
    z((t = t.slice()), function (e, n) {
      var r = q(e) ? e : (t[n] = { name: e })
      'ordinal' === r.type && null == o && ((o = n), (a = f(r))), (i[r.name] = [])
    })
    var d = c.get(h) || c.set(h, { categoryWayDim: a, valueWayDim: 0 })
    function p(t, e, n) {
      for (var i = 0; i < n; i++) t.push(e + i)
    }
    function f(t) {
      var e = t.dimsDef
      return e ? e.length : 1
    }
    return (
      z(t, function (t, e) {
        var n = t.name,
          r = f(t)
        if (null == o) {
          var a = d.valueWayDim
          p(i[n], a, r), p(l, a, r), (d.valueWayDim += r)
        } else if (o === e) p(i[n], 0, r), p(s, 0, r)
        else {
          a = d.categoryWayDim
          p(i[n], a, r), p(l, a, r), (d.categoryWayDim += r)
        }
      }),
      s.length && (i.itemName = s),
      l.length && (i.seriesName = l),
      i
    )
  }
  function Mf(t, e, n) {
    var i = {}
    if (!If(t)) return i
    var r,
      o = e.sourceFormat,
      a = e.dimensionsDefine
    ;(o !== pf && o !== ff) ||
      z(a, function (t, e) {
        'name' === (q(t) ? t.name : t) && (r = e)
      })
    var s = (function () {
      for (var t = {}, i = {}, s = [], l = 0, u = Math.min(5, n); l < u; l++) {
        var c = Cf(e.data, o, e.seriesLayoutBy, a, e.startIndex, l)
        s.push(c)
        var h = c === bf
        if ((h && null == t.v && l !== r && (t.v = l), (null == t.n || t.n === t.v || (!h && s[t.n] === bf)) && (t.n = l), d(t) && s[t.n] !== bf)) return t
        h || (c === _f && null == i.v && l !== r && (i.v = l), (null != i.n && i.n !== i.v) || (i.n = l))
      }
      function d(t) {
        return null != t.v && null != t.n
      }
      return d(t) ? t : d(i) ? i : null
    })()
    if (s) {
      i.value = [s.v]
      var l = null != r ? r : s.n
      ;(i.itemName = [l]), (i.seriesName = [l])
    }
    return i
  }
  function If(t) {
    if (!t.get('data', !0)) return pa(t.ecModel, 'dataset', { index: t.get('datasetIndex', !0), id: t.get('datasetId', !0) }, ha).models[0]
  }
  function Tf(t, e) {
    return Cf(t.data, t.sourceFormat, t.seriesLayoutBy, t.dimensionsDefine, t.startIndex, e)
  }
  function Cf(t, e, n, i, r, o) {
    var a, s, l
    if ($(t)) return bf
    if (i) {
      var u = i[o]
      q(u) ? ((s = u.name), (l = u.type)) : X(u) && (s = u)
    }
    if (null != l) return 'ordinal' === l ? xf : bf
    if (e === df) {
      var c = t
      if (n === mf) {
        for (var h = c[o], d = 0; d < (h || []).length && d < 5; d++) if (null != (a = m(h[r + d]))) return a
      } else
        for (d = 0; d < c.length && d < 5; d++) {
          var p = c[r + d]
          if (p && null != (a = m(p[o]))) return a
        }
    } else if (e === pf) {
      var f = t
      if (!s) return bf
      for (d = 0; d < f.length && d < 5; d++) {
        if ((y = f[d]) && null != (a = m(y[s]))) return a
      }
    } else if (e === ff) {
      if (!s) return bf
      if (!(h = t[s]) || $(h)) return bf
      for (d = 0; d < h.length && d < 5; d++) if (null != (a = m(h[d]))) return a
    } else if (e === hf) {
      var g = t
      for (d = 0; d < g.length && d < 5; d++) {
        var y,
          v = Jo((y = g[d]))
        if (!U(v)) return bf
        if (null != (a = m(v[o]))) return a
      }
    }
    function m(t) {
      var e = X(t)
      return null != t && Number.isFinite(Number(t)) && '' !== t ? (e ? _f : bf) : e && '-' !== t ? xf : void 0
    }
    return bf
  }
  var Df = yt()
  var Af,
    kf,
    Lf,
    Pf = sa(),
    Of = sa(),
    Rf = (function () {
      function t() {}
      return (
        (t.prototype.getColorFromPalette = function (t, e, n) {
          var i = qo(this.get('color', !0)),
            r = this.get('colorLayer', !0)
          return zf(this, Pf, i, r, t, e, n)
        }),
        (t.prototype.clearColorPalette = function () {
          !(function (t, e) {
            ;(e(t).paletteIdx = 0), (e(t).paletteNameMap = {})
          })(this, Pf)
        }),
        t
      )
    })()
  function Nf(t, e, n, i) {
    var r = qo(t.get(['aria', 'decal', 'decals']))
    return zf(t, Of, r, null, e, n, i)
  }
  function zf(t, e, n, i, r, o, a) {
    var s = e((o = o || t)),
      l = s.paletteIdx || 0,
      u = (s.paletteNameMap = s.paletteNameMap || {})
    if (u.hasOwnProperty(r)) return u[r]
    var c =
      null != a && i
        ? (function (t, e) {
            for (var n = t.length, i = 0; i < n; i++) if (t[i].length > e) return t[i]
            return t[n - 1]
          })(i, a)
        : n
    if ((c = c || n) && c.length) {
      var h = c[l]
      return r && (u[r] = h), (s.paletteIdx = (l + 1) % c.length), h
    }
  }
  var Ef = '\0_ec_inner'
  var Bf = (function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    return (
      n(e, t),
      (e.prototype.init = function (t, e, n, i, r, o) {
        ;(i = i || {}), (this.option = null), (this._theme = new wd(i)), (this._locale = new wd(r)), (this._optionManager = o)
      }),
      (e.prototype.setOption = function (t, e, n) {
        var i = Ff(e)
        this._optionManager.setOption(t, n, i), this._resetOption(null, i)
      }),
      (e.prototype.resetOption = function (t, e) {
        return this._resetOption(t, Ff(e))
      }),
      (e.prototype._resetOption = function (t, e) {
        var n = !1,
          i = this._optionManager
        if (!t || 'recreate' === t) {
          var r = i.mountOption('recreate' === t)
          0, this.option && 'recreate' !== t ? (this.restoreData(), this._mergeOption(r, e)) : Lf(this, r), (n = !0)
        }
        if ((('timeline' !== t && 'media' !== t) || this.restoreData(), !t || 'recreate' === t || 'timeline' === t)) {
          var o = i.getTimelineOption(this)
          o && ((n = !0), this._mergeOption(o, e))
        }
        if (!t || 'recreate' === t || 'media' === t) {
          var a = i.getMediaOption(this)
          a.length &&
            z(
              a,
              function (t) {
                ;(n = !0), this._mergeOption(t, e)
              },
              this
            )
        }
        return n
      }),
      (e.prototype.mergeOption = function (t) {
        this._mergeOption(t, null)
      }),
      (e.prototype._mergeOption = function (t, e) {
        var n = this.option,
          i = this._componentsMap,
          r = this._componentsCount,
          o = [],
          a = yt(),
          s = e && e.replaceMergeMainTypeMap
        ;(wf(this).datasetMap = yt()),
          z(t, function (t, e) {
            null != t && (Qp.hasClass(e) ? e && (o.push(e), a.set(e, !0)) : (n[e] = null == n[e] ? T(t) : C(n[e], t, !0)))
          }),
          s &&
            s.each(function (t, e) {
              Qp.hasClass(e) && !a.get(e) && (o.push(e), a.set(e, !0))
            }),
          Qp.topologicalTravel(
            o,
            Qp.getAllClassMainTypes(),
            function (e) {
              var o = (function (t, e, n) {
                  var i = Df.get(e)
                  if (!i) return n
                  var r = i(t)
                  return r ? n.concat(r) : n
                })(this, e, qo(t[e])),
                a = i.get(e),
                l = a ? (s && s.get(e) ? 'replaceMerge' : 'normalMerge') : 'replaceAll',
                u = ta(a, o, l)
              ;(function (t, e, n) {
                z(t, function (t) {
                  var i = t.newOption
                  q(i) &&
                    ((t.keyInfo.mainType = e),
                    (t.keyInfo.subType = (function (t, e, n, i) {
                      return e.type ? e.type : n ? n.subType : i.determineSubType(t, e)
                    })(e, i, t.existing, n)))
                })
              })(u, e, Qp),
                (n[e] = null),
                i.set(e, null),
                r.set(e, 0)
              var c,
                h = [],
                d = [],
                p = 0
              z(
                u,
                function (t, n) {
                  var i = t.existing,
                    r = t.newOption
                  if (r) {
                    var o = 'series' === e,
                      a = Qp.getClass(e, t.keyInfo.subType, !o)
                    if (!a) return
                    if ('tooltip' === e) {
                      if (c) return void 0
                      c = !0
                    }
                    if (i && i.constructor === a) (i.name = t.keyInfo.name), i.mergeOption(r, this), i.optionUpdated(r, !1)
                    else {
                      var s = A({ componentIndex: n }, t.keyInfo)
                      A((i = new a(r, this, this, s)), s), t.brandNew && (i.__requireNewView = !0), i.init(r, this, this), i.optionUpdated(null, !0)
                    }
                  } else i && (i.mergeOption({}, this), i.optionUpdated({}, !1))
                  i ? (h.push(i.option), d.push(i), p++) : (h.push(void 0), d.push(void 0))
                },
                this
              ),
                (n[e] = h),
                i.set(e, d),
                r.set(e, p),
                'series' === e && Af(this)
            },
            this
          ),
          this._seriesIndices || Af(this)
      }),
      (e.prototype.getOption = function () {
        var t = T(this.option)
        return (
          z(t, function (e, n) {
            if (Qp.hasClass(n)) {
              for (var i = qo(e), r = i.length, o = !1, a = r - 1; a >= 0; a--) i[a] && !oa(i[a]) ? (o = !0) : ((i[a] = null), !o && r--)
              ;(i.length = r), (t[n] = i)
            }
          }),
          delete t[Ef],
          t
        )
      }),
      (e.prototype.setTheme = function (t) {
        ;(this._theme = new wd(t)), this._resetOption('recreate', null)
      }),
      (e.prototype.getTheme = function () {
        return this._theme
      }),
      (e.prototype.getLocaleModel = function () {
        return this._locale
      }),
      (e.prototype.setUpdatePayload = function (t) {
        this._payload = t
      }),
      (e.prototype.getUpdatePayload = function () {
        return this._payload
      }),
      (e.prototype.getComponent = function (t, e) {
        var n = this._componentsMap.get(t)
        if (n) {
          var i = n[e || 0]
          if (i) return i
          if (null == e) for (var r = 0; r < n.length; r++) if (n[r]) return n[r]
        }
      }),
      (e.prototype.queryComponents = function (t) {
        var e = t.mainType
        if (!e) return []
        var n,
          i = t.index,
          r = t.id,
          o = t.name,
          a = this._componentsMap.get(e)
        return a && a.length
          ? (null != i
              ? ((n = []),
                z(qo(i), function (t) {
                  a[t] && n.push(a[t])
                }))
              : (n =
                  null != r
                    ? Vf('id', r, a)
                    : null != o
                      ? Vf('name', o, a)
                      : V(a, function (t) {
                          return !!t
                        })),
            Gf(n, t))
          : []
      }),
      (e.prototype.findComponents = function (t) {
        var e,
          n,
          i,
          r,
          o,
          a = t.query,
          s = t.mainType,
          l =
            ((n = s + 'Index'),
            (i = s + 'Id'),
            (r = s + 'Name'),
            !(e = a) || (null == e[n] && null == e[i] && null == e[r]) ? null : { mainType: s, index: e[n], id: e[i], name: e[r] }),
          u = l
            ? this.queryComponents(l)
            : V(this._componentsMap.get(s), function (t) {
                return !!t
              })
        return (o = Gf(u, t)), t.filter ? V(o, t.filter) : o
      }),
      (e.prototype.eachComponent = function (t, e, n) {
        var i = this._componentsMap
        if (Y(t)) {
          var r = e,
            o = t
          i.each(function (t, e) {
            for (var n = 0; t && n < t.length; n++) {
              var i = t[n]
              i && o.call(r, e, i, i.componentIndex)
            }
          })
        } else
          for (var a = X(t) ? i.get(t) : q(t) ? this.findComponents(t) : null, s = 0; a && s < a.length; s++) {
            var l = a[s]
            l && e.call(n, l, l.componentIndex)
          }
      }),
      (e.prototype.getSeriesByName = function (t) {
        var e = ia(t, null)
        return V(this._componentsMap.get('series'), function (t) {
          return !!t && null != e && t.name === e
        })
      }),
      (e.prototype.getSeriesByIndex = function (t) {
        return this._componentsMap.get('series')[t]
      }),
      (e.prototype.getSeriesByType = function (t) {
        return V(this._componentsMap.get('series'), function (e) {
          return !!e && e.subType === t
        })
      }),
      (e.prototype.getSeries = function () {
        return V(this._componentsMap.get('series'), function (t) {
          return !!t
        })
      }),
      (e.prototype.getSeriesCount = function () {
        return this._componentsCount.get('series')
      }),
      (e.prototype.eachSeries = function (t, e) {
        kf(this),
          z(
            this._seriesIndices,
            function (n) {
              var i = this._componentsMap.get('series')[n]
              t.call(e, i, n)
            },
            this
          )
      }),
      (e.prototype.eachRawSeries = function (t, e) {
        z(this._componentsMap.get('series'), function (n) {
          n && t.call(e, n, n.componentIndex)
        })
      }),
      (e.prototype.eachSeriesByType = function (t, e, n) {
        kf(this),
          z(
            this._seriesIndices,
            function (i) {
              var r = this._componentsMap.get('series')[i]
              r.subType === t && e.call(n, r, i)
            },
            this
          )
      }),
      (e.prototype.eachRawSeriesByType = function (t, e, n) {
        return z(this.getSeriesByType(t), e, n)
      }),
      (e.prototype.isSeriesFiltered = function (t) {
        return kf(this), null == this._seriesIndicesMap.get(t.componentIndex)
      }),
      (e.prototype.getCurrentSeriesIndices = function () {
        return (this._seriesIndices || []).slice()
      }),
      (e.prototype.filterSeries = function (t, e) {
        kf(this)
        var n = []
        z(
          this._seriesIndices,
          function (i) {
            var r = this._componentsMap.get('series')[i]
            t.call(e, r, i) && n.push(i)
          },
          this
        ),
          (this._seriesIndices = n),
          (this._seriesIndicesMap = yt(n))
      }),
      (e.prototype.restoreData = function (t) {
        Af(this)
        var e = this._componentsMap,
          n = []
        e.each(function (t, e) {
          Qp.hasClass(e) && n.push(e)
        }),
          Qp.topologicalTravel(n, Qp.getAllClassMainTypes(), function (n) {
            z(e.get(n), function (e) {
              !e ||
                ('series' === n &&
                  (function (t, e) {
                    if (e) {
                      var n = e.seriesIndex,
                        i = e.seriesId,
                        r = e.seriesName
                      return (null != n && t.componentIndex !== n) || (null != i && t.id !== i) || (null != r && t.name !== r)
                    }
                  })(e, t)) ||
                e.restoreData()
            })
          })
      }),
      (e.internalField =
        ((Af = function (t) {
          var e = (t._seriesIndices = [])
          z(t._componentsMap.get('series'), function (t) {
            t && e.push(t.componentIndex)
          }),
            (t._seriesIndicesMap = yt(e))
        }),
        (kf = function (t) {}),
        void (Lf = function (t, e) {
          ;(t.option = {}), (t.option[Ef] = 1), (t._componentsMap = yt({ series: [] })), (t._componentsCount = yt())
          var n = e.aria
          q(n) && null == n.enabled && (n.enabled = !0),
            (function (t, e) {
              var n = t.color && !t.colorLayer
              z(e, function (e, i) {
                ;('colorLayer' === i && n) ||
                  ('color' === i && t.color) ||
                  Qp.hasClass(i) ||
                  ('object' == typeof e ? (t[i] = t[i] ? C(t[i], e, !1) : T(e)) : null == t[i] && (t[i] = e))
              })
            })(e, t._theme.option),
            C(e, uf, !1),
            t._mergeOption(e, null)
        }))),
      e
    )
  })(wd)
  function Vf(t, e, n) {
    if (U(e)) {
      var i = yt()
      return (
        z(e, function (t) {
          null != t && null != ia(t, null) && i.set(t, !0)
        }),
        V(n, function (e) {
          return e && i.get(e[t])
        })
      )
    }
    var r = ia(e, null)
    return V(n, function (e) {
      return e && null != r && e[t] === r
    })
  }
  function Gf(t, e) {
    return e.hasOwnProperty('subType')
      ? V(t, function (t) {
          return t && t.subType === e.subType
        })
      : t
  }
  function Ff(t) {
    var e = yt()
    return (
      t &&
        z(qo(t.replaceMerge), function (t) {
          e.set(t, !0)
        }),
      { replaceMergeMainTypeMap: e }
    )
  }
  R(Bf, Rf)
  var Wf = [
      'getDom',
      'getZr',
      'getWidth',
      'getHeight',
      'getDevicePixelRatio',
      'dispatchAction',
      'isSSR',
      'isDisposed',
      'on',
      'off',
      'getDataURL',
      'getConnectedDataURL',
      'getOption',
      'getId',
      'updateLabelLayout'
    ],
    Hf = function (t) {
      z(
        Wf,
        function (e) {
          this[e] = W(t[e], t)
        },
        this
      )
    },
    Uf = /^(min|max)?(.+)$/,
    Yf = (function () {
      function t(t) {
        ;(this._timelineOptions = []), (this._mediaList = []), (this._currentMediaIndices = []), (this._api = t)
      }
      return (
        (t.prototype.setOption = function (t, e, n) {
          t &&
            (z(qo(t.series), function (t) {
              t && t.data && $(t.data) && ht(t.data)
            }),
            z(qo(t.dataset), function (t) {
              t && t.source && $(t.source) && ht(t.source)
            })),
            (t = T(t))
          var i = this._optionBackup,
            r = (function (t, e, n) {
              var i,
                r,
                o = [],
                a = t.baseOption,
                s = t.timeline,
                l = t.options,
                u = t.media,
                c = !!t.media,
                h = !!(l || s || (a && a.timeline))
              a ? (r = a).timeline || (r.timeline = s) : ((h || c) && (t.options = t.media = null), (r = t))
              c &&
                U(u) &&
                z(u, function (t) {
                  t && t.option && (t.query ? o.push(t) : i || (i = t))
                })
              function d(t) {
                z(e, function (e) {
                  e(t, n)
                })
              }
              return (
                d(r),
                z(l, function (t) {
                  return d(t)
                }),
                z(o, function (t) {
                  return d(t.option)
                }),
                { baseOption: r, timelineOptions: l || [], mediaDefault: i, mediaList: o }
              )
            })(t, e, !i)
          ;(this._newBaseOption = r.baseOption),
            i
              ? (r.timelineOptions.length && (i.timelineOptions = r.timelineOptions),
                r.mediaList.length && (i.mediaList = r.mediaList),
                r.mediaDefault && (i.mediaDefault = r.mediaDefault))
              : (this._optionBackup = r)
        }),
        (t.prototype.mountOption = function (t) {
          var e = this._optionBackup
          return (
            (this._timelineOptions = e.timelineOptions),
            (this._mediaList = e.mediaList),
            (this._mediaDefault = e.mediaDefault),
            (this._currentMediaIndices = []),
            T(t ? e.baseOption : this._newBaseOption)
          )
        }),
        (t.prototype.getTimelineOption = function (t) {
          var e,
            n = this._timelineOptions
          if (n.length) {
            var i = t.getComponent('timeline')
            i && (e = T(n[i.getCurrentIndex()]))
          }
          return e
        }),
        (t.prototype.getMediaOption = function (t) {
          var e,
            n,
            i = this._api.getWidth(),
            r = this._api.getHeight(),
            o = this._mediaList,
            a = this._mediaDefault,
            s = [],
            l = []
          if (!o.length && !a) return l
          for (var u = 0, c = o.length; u < c; u++) Xf(o[u].query, i, r) && s.push(u)
          return (
            !s.length && a && (s = [-1]),
            s.length &&
              ((e = s), (n = this._currentMediaIndices), e.join(',') !== n.join(',')) &&
              (l = E(s, function (t) {
                return T(-1 === t ? a.option : o[t].option)
              })),
            (this._currentMediaIndices = s),
            l
          )
        }),
        t
      )
    })()
  function Xf(t, e, n) {
    var i = { width: e, height: n, aspectratio: e / n },
      r = !0
    return (
      z(t, function (t, e) {
        var n = e.match(Uf)
        if (n && n[1] && n[2]) {
          var o = n[1],
            a = n[2].toLowerCase()
          ;(function (t, e, n) {
            return 'min' === n ? t >= e : 'max' === n ? t <= e : t === e
          })(i[a], t, o) || (r = !1)
        }
      }),
      r
    )
  }
  var Zf = z,
    jf = q,
    qf = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine']
  function Kf(t) {
    var e = t && t.itemStyle
    if (e)
      for (var n = 0, i = qf.length; n < i; n++) {
        var r = qf[n],
          o = e.normal,
          a = e.emphasis
        o && o[r] && ((t[r] = t[r] || {}), t[r].normal ? C(t[r].normal, o[r]) : (t[r].normal = o[r]), (o[r] = null)),
          a && a[r] && ((t[r] = t[r] || {}), t[r].emphasis ? C(t[r].emphasis, a[r]) : (t[r].emphasis = a[r]), (a[r] = null))
      }
  }
  function $f(t, e, n) {
    if (t && t[e] && (t[e].normal || t[e].emphasis)) {
      var i = t[e].normal,
        r = t[e].emphasis
      i && (n ? ((t[e].normal = t[e].emphasis = null), k(t[e], i)) : (t[e] = i)),
        r && ((t.emphasis = t.emphasis || {}), (t.emphasis[e] = r), r.focus && (t.emphasis.focus = r.focus), r.blurScope && (t.emphasis.blurScope = r.blurScope))
    }
  }
  function Jf(t) {
    $f(t, 'itemStyle'), $f(t, 'lineStyle'), $f(t, 'areaStyle'), $f(t, 'label'), $f(t, 'labelLine'), $f(t, 'upperLabel'), $f(t, 'edgeLabel')
  }
  function Qf(t, e) {
    var n = jf(t) && t[e],
      i = jf(n) && n.textStyle
    if (i) {
      0
      for (var r = 0, o = $o.length; r < o; r++) {
        var a = $o[r]
        i.hasOwnProperty(a) && (n[a] = i[a])
      }
    }
  }
  function tg(t) {
    t && (Jf(t), Qf(t, 'label'), t.emphasis && Qf(t.emphasis, 'label'))
  }
  function eg(t) {
    return U(t) ? t : t ? [t] : []
  }
  function ng(t) {
    return (U(t) ? t[0] : t) || {}
  }
  function ig(t, e) {
    Zf(eg(t.series), function (t) {
      jf(t) &&
        (function (t) {
          if (jf(t)) {
            Kf(t),
              Jf(t),
              Qf(t, 'label'),
              Qf(t, 'upperLabel'),
              Qf(t, 'edgeLabel'),
              t.emphasis && (Qf(t.emphasis, 'label'), Qf(t.emphasis, 'upperLabel'), Qf(t.emphasis, 'edgeLabel'))
            var e = t.markPoint
            e && (Kf(e), tg(e))
            var n = t.markLine
            n && (Kf(n), tg(n))
            var i = t.markArea
            i && tg(i)
            var r = t.data
            if ('graph' === t.type) {
              r = r || t.nodes
              var o = t.links || t.edges
              if (o && !$(o)) for (var a = 0; a < o.length; a++) tg(o[a])
              z(t.categories, function (t) {
                Jf(t)
              })
            }
            if (r && !$(r)) for (a = 0; a < r.length; a++) tg(r[a])
            if ((e = t.markPoint) && e.data) {
              var s = e.data
              for (a = 0; a < s.length; a++) tg(s[a])
            }
            if ((n = t.markLine) && n.data) {
              var l = n.data
              for (a = 0; a < l.length; a++) U(l[a]) ? (tg(l[a][0]), tg(l[a][1])) : tg(l[a])
            }
            'gauge' === t.type
              ? (Qf(t, 'axisLabel'), Qf(t, 'title'), Qf(t, 'detail'))
              : 'treemap' === t.type
                ? ($f(t.breadcrumb, 'itemStyle'),
                  z(t.levels, function (t) {
                    Jf(t)
                  }))
                : 'tree' === t.type && Jf(t.leaves)
          }
        })(t)
    })
    var n = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar']
    e && n.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis'),
      Zf(n, function (e) {
        Zf(eg(t[e]), function (t) {
          t && (Qf(t, 'axisLabel'), Qf(t.axisPointer, 'label'))
        })
      }),
      Zf(eg(t.parallel), function (t) {
        var e = t && t.parallelAxisDefault
        Qf(e, 'axisLabel'), Qf(e && e.axisPointer, 'label')
      }),
      Zf(eg(t.calendar), function (t) {
        $f(t, 'itemStyle'), Qf(t, 'dayLabel'), Qf(t, 'monthLabel'), Qf(t, 'yearLabel')
      }),
      Zf(eg(t.radar), function (t) {
        Qf(t, 'name'),
          t.name && null == t.axisName && ((t.axisName = t.name), delete t.name),
          null != t.nameGap && null == t.axisNameGap && ((t.axisNameGap = t.nameGap), delete t.nameGap)
      }),
      Zf(eg(t.geo), function (t) {
        jf(t) &&
          (tg(t),
          Zf(eg(t.regions), function (t) {
            tg(t)
          }))
      }),
      Zf(eg(t.timeline), function (t) {
        tg(t), $f(t, 'label'), $f(t, 'itemStyle'), $f(t, 'controlStyle', !0)
        var e = t.data
        U(e) &&
          z(e, function (t) {
            q(t) && ($f(t, 'label'), $f(t, 'itemStyle'))
          })
      }),
      Zf(eg(t.toolbox), function (t) {
        $f(t, 'iconStyle'),
          Zf(t.feature, function (t) {
            $f(t, 'iconStyle')
          })
      }),
      Qf(ng(t.axisPointer), 'label'),
      Qf(ng(t.tooltip).axisPointer, 'label')
  }
  function rg(t) {
    t &&
      z(og, function (e) {
        e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]])
      })
  }
  var og = [
      ['x', 'left'],
      ['y', 'top'],
      ['x2', 'right'],
      ['y2', 'bottom']
    ],
    ag = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'],
    sg = [
      ['borderRadius', 'barBorderRadius'],
      ['borderColor', 'barBorderColor'],
      ['borderWidth', 'barBorderWidth']
    ]
  function lg(t) {
    var e = t && t.itemStyle
    if (e)
      for (var n = 0; n < sg.length; n++) {
        var i = sg[n][1],
          r = sg[n][0]
        null != e[i] && (e[r] = e[i])
      }
  }
  function ug(t) {
    t && 'edge' === t.alignTo && null != t.margin && null == t.edgeDistance && (t.edgeDistance = t.margin)
  }
  function cg(t) {
    t && t.downplay && !t.blur && (t.blur = t.downplay)
  }
  function hg(t, e) {
    if (t) for (var n = 0; n < t.length; n++) e(t[n]), t[n] && hg(t[n].children, e)
  }
  function dg(t, e) {
    ig(t, e),
      (t.series = qo(t.series)),
      z(t.series, function (t) {
        if (q(t)) {
          var e = t.type
          if ('line' === e) null != t.clipOverflow && (t.clip = t.clipOverflow)
          else if ('pie' === e || 'gauge' === e) {
            if ((null != t.clockWise && (t.clockwise = t.clockWise), ug(t.label), (r = t.data) && !$(r))) for (var n = 0; n < r.length; n++) ug(r[n])
            null != t.hoverOffset && ((t.emphasis = t.emphasis || {}), (t.emphasis.scaleSize = null) && (t.emphasis.scaleSize = t.hoverOffset))
          } else if ('gauge' === e) {
            var i = (function (t, e) {
              for (var n = e.split(','), i = t, r = 0; r < n.length && null != (i = i && i[n[r]]); r++);
              return i
            })(t, 'pointer.color')
            null != i &&
              (function (t, e, n, i) {
                for (var r, o = e.split(','), a = t, s = 0; s < o.length - 1; s++) null == a[(r = o[s])] && (a[r] = {}), (a = a[r])
                ;(i || null == a[o[s]]) && (a[o[s]] = n)
              })(t, 'itemStyle.color', i)
          } else if ('bar' === e) {
            var r
            if ((lg(t), lg(t.backgroundStyle), lg(t.emphasis), (r = t.data) && !$(r)))
              for (n = 0; n < r.length; n++) 'object' == typeof r[n] && (lg(r[n]), lg(r[n] && r[n].emphasis))
          } else if ('sunburst' === e) {
            var o = t.highlightPolicy
            o && ((t.emphasis = t.emphasis || {}), t.emphasis.focus || (t.emphasis.focus = o)), cg(t), hg(t.data, cg)
          } else
            'graph' === e || 'sankey' === e
              ? (function (t) {
                  t && null != t.focusNodeAdjacency && ((t.emphasis = t.emphasis || {}), null == t.emphasis.focus && (t.emphasis.focus = 'adjacency'))
                })(t)
              : 'map' === e && (t.mapType && !t.map && (t.map = t.mapType), t.mapLocation && k(t, t.mapLocation))
          null != t.hoverAnimation && ((t.emphasis = t.emphasis || {}), t.emphasis && null == t.emphasis.scale && (t.emphasis.scale = t.hoverAnimation)), rg(t)
        }
      }),
      t.dataRange && (t.visualMap = t.dataRange),
      z(ag, function (e) {
        var n = t[e]
        n &&
          (U(n) || (n = [n]),
          z(n, function (t) {
            rg(t)
          }))
      })
  }
  var pg,
    fg,
    gg,
    yg,
    vg,
    mg,
    xg = function (t) {
      ;(this.data = t.data || (t.sourceFormat === ff ? {} : [])),
        (this.sourceFormat = t.sourceFormat || yf),
        (this.seriesLayoutBy = t.seriesLayoutBy || vf),
        (this.startIndex = t.startIndex || 0),
        (this.dimensionsDetectedCount = t.dimensionsDetectedCount),
        (this.metaRawOption = t.metaRawOption)
      var e = (this.dimensionsDefine = t.dimensionsDefine)
      if (e)
        for (var n = 0; n < e.length; n++) {
          var i = e[n]
          null == i.type && Tf(this, n) === xf && (i.type = 'ordinal')
        }
    }
  function _g(t) {
    return t instanceof xg
  }
  function bg(t, e, n) {
    n = n || Sg(t)
    var i = e.seriesLayoutBy,
      r = (function (t, e, n, i, r) {
        var o, a
        if (!t) return { dimensionsDefine: Mg(r), startIndex: a, dimensionsDetectedCount: o }
        if (e === df) {
          var s = t
          'auto' === i || null == i
            ? Ig(
                function (t) {
                  null != t && '-' !== t && (X(t) ? null == a && (a = 1) : (a = 0))
                },
                n,
                s,
                10
              )
            : (a = j(i) ? i : i ? 1 : 0),
            r ||
              1 !== a ||
              ((r = []),
              Ig(
                function (t, e) {
                  r[e] = null != t ? t + '' : ''
                },
                n,
                s,
                1 / 0
              )),
            (o = r ? r.length : n === mf ? s.length : s[0] ? s[0].length : null)
        } else if (e === pf)
          r ||
            (r = (function (t) {
              var e,
                n = 0
              for (; n < t.length && !(e = t[n++]); );
              if (e) return F(e)
            })(t))
        else if (e === ff)
          r ||
            ((r = []),
            z(t, function (t, e) {
              r.push(e)
            }))
        else if (e === hf) {
          var l = Jo(t[0])
          o = (U(l) && l.length) || 1
        }
        return { startIndex: a, dimensionsDefine: Mg(r), dimensionsDetectedCount: o }
      })(t, n, i, e.sourceHeader, e.dimensions)
    return new xg({
      data: t,
      sourceFormat: n,
      seriesLayoutBy: i,
      dimensionsDefine: r.dimensionsDefine,
      startIndex: r.startIndex,
      dimensionsDetectedCount: r.dimensionsDetectedCount,
      metaRawOption: T(e)
    })
  }
  function wg(t) {
    return new xg({ data: t, sourceFormat: $(t) ? gf : hf })
  }
  function Sg(t) {
    var e = yf
    if ($(t)) e = gf
    else if (U(t)) {
      0 === t.length && (e = df)
      for (var n = 0, i = t.length; n < i; n++) {
        var r = t[n]
        if (null != r) {
          if (U(r) || $(r)) {
            e = df
            break
          }
          if (q(r)) {
            e = pf
            break
          }
        }
      }
    } else if (q(t))
      for (var o in t)
        if (_t(t, o) && N(t[o])) {
          e = ff
          break
        }
    return e
  }
  function Mg(t) {
    if (t) {
      var e = yt()
      return E(t, function (t, n) {
        var i = { name: (t = q(t) ? t : { name: t }).name, displayName: t.displayName, type: t.type }
        if (null == i.name) return i
        ;(i.name += ''), null == i.displayName && (i.displayName = i.name)
        var r = e.get(i.name)
        return r ? (i.name += '-' + r.count++) : e.set(i.name, { count: 1 }), i
      })
    }
  }
  function Ig(t, e, n, i) {
    if (e === mf) for (var r = 0; r < n.length && r < i; r++) t(n[r] ? n[r][0] : null, r)
    else {
      var o = n[0] || []
      for (r = 0; r < o.length && r < i; r++) t(o[r], r)
    }
  }
  function Tg(t) {
    var e = t.sourceFormat
    return e === pf || e === ff
  }
  var Cg = (function () {
      function t(t, e) {
        var n = _g(t) ? t : wg(t)
        this._source = n
        var i = (this._data = n.data),
          r = n.sourceFormat
        n.seriesLayoutBy
        r === gf && ((this._offset = 0), (this._dimSize = e), (this._data = i)), mg(this, i, n)
      }
      var e
      return (
        (t.prototype.getSource = function () {
          return this._source
        }),
        (t.prototype.count = function () {
          return 0
        }),
        (t.prototype.getItem = function (t, e) {}),
        (t.prototype.appendData = function (t) {}),
        (t.prototype.clean = function () {}),
        (t.protoInitialize = (((e = t.prototype).pure = !1), void (e.persistent = !0))),
        (t.internalField = (function () {
          var t
          mg = function (t, r, o) {
            var a = o.sourceFormat,
              s = o.seriesLayoutBy,
              l = o.startIndex,
              u = o.dimensionsDefine,
              c = vg[Bg(a, s)]
            if ((A(t, c), a === gf)) (t.getItem = e), (t.count = i), (t.fillStorage = n)
            else {
              var h = Lg(a, s)
              t.getItem = W(h, null, r, l, u)
              var d = Rg(a, s)
              t.count = W(d, null, r, l, u)
            }
          }
          var e = function (t, e) {
              ;(t -= this._offset), (e = e || [])
              for (var n = this._data, i = this._dimSize, r = i * t, o = 0; o < i; o++) e[o] = n[r + o]
              return e
            },
            n = function (t, e, n, i) {
              for (var r = this._data, o = this._dimSize, a = 0; a < o; a++) {
                for (var s = i[a], l = null == s[0] ? 1 / 0 : s[0], u = null == s[1] ? -1 / 0 : s[1], c = e - t, h = n[a], d = 0; d < c; d++) {
                  var p = r[d * o + a]
                  ;(h[t + d] = p), p < l && (l = p), p > u && (u = p)
                }
                ;(s[0] = l), (s[1] = u)
              }
            },
            i = function () {
              return this._data ? this._data.length / this._dimSize : 0
            }
          function r(t) {
            for (var e = 0; e < t.length; e++) this._data.push(t[e])
          }
          ;((t = {})[df + '_' + vf] = { pure: !0, appendData: r }),
            (t[df + '_' + mf] = {
              pure: !0,
              appendData: function () {
                throw new Error('Do not support appendData when set seriesLayoutBy: "row".')
              }
            }),
            (t[pf] = { pure: !0, appendData: r }),
            (t[ff] = {
              pure: !0,
              appendData: function (t) {
                var e = this._data
                z(t, function (t, n) {
                  for (var i = e[n] || (e[n] = []), r = 0; r < (t || []).length; r++) i.push(t[r])
                })
              }
            }),
            (t[hf] = { appendData: r }),
            (t[gf] = {
              persistent: !1,
              pure: !0,
              appendData: function (t) {
                this._data = t
              },
              clean: function () {
                ;(this._offset += this.count()), (this._data = null)
              }
            }),
            (vg = t)
        })()),
        t
      )
    })(),
    Dg = function (t) {
      U(t) || Ho('series.data or dataset.source must be an array.')
    },
    Ag =
      (((pg = {})[df + '_' + vf] = Dg),
      (pg[df + '_' + mf] = Dg),
      (pg[pf] = Dg),
      (pg[ff] = function (t, e) {
        for (var n = 0; n < e.length; n++) {
          null == e[n].name && Ho('dimension name must not be null/undefined.')
        }
      }),
      (pg[hf] = Dg),
      function (t, e, n, i) {
        return t[i]
      }),
    kg =
      (((fg = {})[df + '_' + vf] = function (t, e, n, i) {
        return t[i + e]
      }),
      (fg[df + '_' + mf] = function (t, e, n, i, r) {
        i += e
        for (var o = r || [], a = t, s = 0; s < a.length; s++) {
          var l = a[s]
          o[s] = l ? l[i] : null
        }
        return o
      }),
      (fg[pf] = Ag),
      (fg[ff] = function (t, e, n, i, r) {
        for (var o = r || [], a = 0; a < n.length; a++) {
          var s = n[a].name,
            l = null != s ? t[s] : null
          o[a] = l ? l[i] : null
        }
        return o
      }),
      (fg[hf] = Ag),
      fg)
  function Lg(t, e) {
    var n = kg[Bg(t, e)]
    return n
  }
  var Pg = function (t, e, n) {
      return t.length
    },
    Og =
      (((gg = {})[df + '_' + vf] = function (t, e, n) {
        return Math.max(0, t.length - e)
      }),
      (gg[df + '_' + mf] = function (t, e, n) {
        var i = t[0]
        return i ? Math.max(0, i.length - e) : 0
      }),
      (gg[pf] = Pg),
      (gg[ff] = function (t, e, n) {
        var i = n[0].name,
          r = null != i ? t[i] : null
        return r ? r.length : 0
      }),
      (gg[hf] = Pg),
      gg)
  function Rg(t, e) {
    var n = Og[Bg(t, e)]
    return n
  }
  var Ng = function (t, e, n) {
      return t[e]
    },
    zg =
      (((yg = {})[df] = Ng),
      (yg[pf] = function (t, e, n) {
        return t[n]
      }),
      (yg[ff] = Ng),
      (yg[hf] = function (t, e, n) {
        var i = Jo(t)
        return i instanceof Array ? i[e] : i
      }),
      (yg[gf] = Ng),
      yg)
  function Eg(t) {
    var e = zg[t]
    return e
  }
  function Bg(t, e) {
    return t === df ? t + '_' + e : t
  }
  function Vg(t, e, n) {
    if (t) {
      var i = t.getRawDataItem(e)
      if (null != i) {
        var r = t.getStore(),
          o = r.getSource().sourceFormat
        if (null != n) {
          var a = t.getDimensionIndex(n),
            s = r.getDimensionProperty(a)
          return Eg(o)(i, a, s)
        }
        var l = i
        return o === hf && (l = Jo(i)), l
      }
    }
  }
  var Gg = /\{@(.+?)\}/g,
    Fg = (function () {
      function t() {}
      return (
        (t.prototype.getDataParams = function (t, e) {
          var n = this.getData(e),
            i = this.getRawValue(t, e),
            r = n.getRawIndex(t),
            o = n.getName(t),
            a = n.getRawDataItem(t),
            s = n.getItemVisual(t, 'style'),
            l = s && s[n.getItemVisual(t, 'drawType') || 'fill'],
            u = s && s.stroke,
            c = this.mainType,
            h = 'series' === c,
            d = n.userOutput && n.userOutput.get()
          return {
            componentType: c,
            componentSubType: this.subType,
            componentIndex: this.componentIndex,
            seriesType: h ? this.subType : null,
            seriesIndex: this.seriesIndex,
            seriesId: h ? this.id : null,
            seriesName: h ? this.name : null,
            name: o,
            dataIndex: r,
            data: a,
            dataType: e,
            value: i,
            color: l,
            borderColor: u,
            dimensionNames: d ? d.fullDimensions : null,
            encode: d ? d.encode : null,
            $vars: ['seriesName', 'name', 'value']
          }
        }),
        (t.prototype.getFormattedLabel = function (t, e, n, i, r, o) {
          e = e || 'normal'
          var a = this.getData(n),
            s = this.getDataParams(t, n)
          ;(o && (s.value = o.interpolatedValue), null != i && U(s.value) && (s.value = s.value[i]), r) ||
            (r = a.getItemModel(t).get('normal' === e ? ['label', 'formatter'] : [e, 'label', 'formatter']))
          return Y(r)
            ? ((s.status = e), (s.dimensionIndex = i), r(s))
            : X(r)
              ? _p(r, s).replace(Gg, function (e, n) {
                  var i = n.length,
                    r = n
                  '[' === r.charAt(0) && ']' === r.charAt(i - 1) && (r = +r.slice(1, i - 1))
                  var s = Vg(a, t, r)
                  if (o && U(o.interpolatedValue)) {
                    var l = a.getDimensionIndex(r)
                    l >= 0 && (s = o.interpolatedValue[l])
                  }
                  return null != s ? s + '' : ''
                })
              : void 0
        }),
        (t.prototype.getRawValue = function (t, e) {
          return Vg(this.getData(e), t)
        }),
        (t.prototype.formatTooltip = function (t, e, n) {}),
        t
      )
    })()
  function Wg(t) {
    var e, n
    return q(t) ? t.type && (n = t) : (e = t), { text: e, frag: n }
  }
  function Hg(t) {
    return new Ug(t)
  }
  var Ug = (function () {
      function t(t) {
        ;(t = t || {}), (this._reset = t.reset), (this._plan = t.plan), (this._count = t.count), (this._onDirty = t.onDirty), (this._dirty = !0)
      }
      return (
        (t.prototype.perform = function (t) {
          var e,
            n = this._upstream,
            i = t && t.skip
          if (this._dirty && n) {
            var r = this.context
            r.data = r.outputData = n.context.outputData
          }
          this.__pipeline && (this.__pipeline.currentTask = this), this._plan && !i && (e = this._plan(this.context))
          var o,
            a = c(this._modBy),
            s = this._modDataCount || 0,
            l = c(t && t.modBy),
            u = (t && t.modDataCount) || 0
          function c(t) {
            return !(t >= 1) && (t = 1), t
          }
          ;(a === l && s === u) || (e = 'reset'), (this._dirty || 'reset' === e) && ((this._dirty = !1), (o = this._doReset(i))), (this._modBy = l), (this._modDataCount = u)
          var h = t && t.step
          if (((this._dueEnd = n ? n._outputDueEnd : this._count ? this._count(this.context) : 1 / 0), this._progress)) {
            var d = this._dueIndex,
              p = Math.min(null != h ? this._dueIndex + h : 1 / 0, this._dueEnd)
            if (!i && (o || d < p)) {
              var f = this._progress
              if (U(f)) for (var g = 0; g < f.length; g++) this._doProgress(f[g], d, p, l, u)
              else this._doProgress(f, d, p, l, u)
            }
            this._dueIndex = p
            var y = null != this._settedOutputEnd ? this._settedOutputEnd : p
            0, (this._outputDueEnd = y)
          } else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd
          return this.unfinished()
        }),
        (t.prototype.dirty = function () {
          ;(this._dirty = !0), this._onDirty && this._onDirty(this.context)
        }),
        (t.prototype._doProgress = function (t, e, n, i, r) {
          Yg.reset(e, n, i, r), (this._callingProgress = t), this._callingProgress({ start: e, end: n, count: n - e, next: Yg.next }, this.context)
        }),
        (t.prototype._doReset = function (t) {
          var e, n
          ;(this._dueIndex = this._outputDueEnd = this._dueEnd = 0),
            (this._settedOutputEnd = null),
            !t && this._reset && ((e = this._reset(this.context)) && e.progress && ((n = e.forceFirstProgress), (e = e.progress)), U(e) && !e.length && (e = null)),
            (this._progress = e),
            (this._modBy = this._modDataCount = null)
          var i = this._downstream
          return i && i.dirty(), n
        }),
        (t.prototype.unfinished = function () {
          return this._progress && this._dueIndex < this._dueEnd
        }),
        (t.prototype.pipe = function (t) {
          ;(this._downstream !== t || this._dirty) && ((this._downstream = t), (t._upstream = this), t.dirty())
        }),
        (t.prototype.dispose = function () {
          this._disposed ||
            (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream = null), (this._dirty = !1), (this._disposed = !0))
        }),
        (t.prototype.getUpstream = function () {
          return this._upstream
        }),
        (t.prototype.getDownstream = function () {
          return this._downstream
        }),
        (t.prototype.setOutputEnd = function (t) {
          this._outputDueEnd = this._settedOutputEnd = t
        }),
        t
      )
    })(),
    Yg = (function () {
      var t,
        e,
        n,
        i,
        r,
        o = {
          reset: function (l, u, c, h) {
            ;(e = l), (t = u), (n = c), (i = h), (r = Math.ceil(i / n)), (o.next = n > 1 && i > 0 ? s : a)
          }
        }
      return o
      function a() {
        return e < t ? e++ : null
      }
      function s() {
        var o = (e % r) * n + Math.ceil(e / r),
          a = e >= t ? null : o < i ? o : e
        return e++, a
      }
    })()
  function Xg(t, e) {
    var n = e && e.type
    return 'ordinal' === n ? t : ('time' !== n || j(t) || null == t || '-' === t || (t = +Ao(t)), null == t || '' === t ? NaN : Number(t))
  }
  var Zg = yt({
    number: function (t) {
      return parseFloat(t)
    },
    time: function (t) {
      return +Ao(t)
    },
    trim: function (t) {
      return X(t) ? ut(t) : t
    }
  })
  function jg(t) {
    return Zg.get(t)
  }
  var qg = {
      lt: function (t, e) {
        return t < e
      },
      lte: function (t, e) {
        return t <= e
      },
      gt: function (t, e) {
        return t > e
      },
      gte: function (t, e) {
        return t >= e
      }
    },
    Kg = (function () {
      function t(t, e) {
        if (!j(e)) {
          var n = ''
          0, Yo(n)
        }
        ;(this._opFn = qg[t]), (this._rvalFloat = No(e))
      }
      return (
        (t.prototype.evaluate = function (t) {
          return j(t) ? this._opFn(t, this._rvalFloat) : this._opFn(No(t), this._rvalFloat)
        }),
        t
      )
    })(),
    $g = (function () {
      function t(t, e) {
        var n = 'desc' === t
        ;(this._resultLT = n ? 1 : -1), null == e && (e = n ? 'min' : 'max'), (this._incomparable = 'min' === e ? -1 / 0 : 1 / 0)
      }
      return (
        (t.prototype.evaluate = function (t, e) {
          var n = j(t) ? t : No(t),
            i = j(e) ? e : No(e),
            r = isNaN(n),
            o = isNaN(i)
          if ((r && (n = this._incomparable), o && (i = this._incomparable), r && o)) {
            var a = X(t),
              s = X(e)
            a && (n = s ? t : 0), s && (i = a ? e : 0)
          }
          return n < i ? this._resultLT : n > i ? -this._resultLT : 0
        }),
        t
      )
    })(),
    Jg = (function () {
      function t(t, e) {
        ;(this._rval = e), (this._isEQ = t), (this._rvalTypeof = typeof e), (this._rvalFloat = No(e))
      }
      return (
        (t.prototype.evaluate = function (t) {
          var e = t === this._rval
          if (!e) {
            var n = typeof t
            n === this._rvalTypeof || ('number' !== n && 'number' !== this._rvalTypeof) || (e = No(t) === this._rvalFloat)
          }
          return this._isEQ ? e : !e
        }),
        t
      )
    })()
  function Qg(t, e) {
    return 'eq' === t || 'ne' === t ? new Jg('eq' === t, e) : _t(qg, t) ? new Kg(t, e) : null
  }
  var ty = (function () {
    function t() {}
    return (
      (t.prototype.getRawData = function () {
        throw new Error('not supported')
      }),
      (t.prototype.getRawDataItem = function (t) {
        throw new Error('not supported')
      }),
      (t.prototype.cloneRawData = function () {}),
      (t.prototype.getDimensionInfo = function (t) {}),
      (t.prototype.cloneAllDimensionInfo = function () {}),
      (t.prototype.count = function () {}),
      (t.prototype.retrieveValue = function (t, e) {}),
      (t.prototype.retrieveValueFromItem = function (t, e) {}),
      (t.prototype.convertValue = function (t, e) {
        return Xg(t, e)
      }),
      t
    )
  })()
  function ey(t) {
    var e = t.sourceFormat
    if (!sy(e)) {
      var n = ''
      0, Yo(n)
    }
    return t.data
  }
  function ny(t) {
    var e = t.sourceFormat,
      n = t.data
    if (!sy(e)) {
      var i = ''
      0, Yo(i)
    }
    if (e === df) {
      for (var r = [], o = 0, a = n.length; o < a; o++) r.push(n[o].slice())
      return r
    }
    if (e === pf) {
      for (r = [], o = 0, a = n.length; o < a; o++) r.push(A({}, n[o]))
      return r
    }
  }
  function iy(t, e, n) {
    if (null != n) return j(n) || (!isNaN(n) && !_t(e, n)) ? t[n] : _t(e, n) ? e[n] : void 0
  }
  function ry(t) {
    return T(t)
  }
  var oy = yt()
  function ay(t, e, n, i) {
    var r = ''
    e.length || Yo(r), q(t) || Yo(r)
    var o = t.type,
      a = oy.get(o)
    a || Yo(r)
    var s = E(e, function (t) {
        return (function (t, e) {
          var n = new ty(),
            i = t.data,
            r = (n.sourceFormat = t.sourceFormat),
            o = t.startIndex,
            a = ''
          t.seriesLayoutBy !== vf && Yo(a)
          var s = [],
            l = {},
            u = t.dimensionsDefine
          if (u)
            z(u, function (t, e) {
              var n = t.name,
                i = { index: e, name: n, displayName: t.displayName }
              if ((s.push(i), null != n)) {
                var r = ''
                _t(l, n) && Yo(r), (l[n] = i)
              }
            })
          else for (var c = 0; c < t.dimensionsDetectedCount; c++) s.push({ index: c })
          var h = Lg(r, vf)
          e.__isBuiltIn &&
            ((n.getRawDataItem = function (t) {
              return h(i, o, s, t)
            }),
            (n.getRawData = W(ey, null, t))),
            (n.cloneRawData = W(ny, null, t))
          var d = Rg(r, vf)
          n.count = W(d, null, i, o, s)
          var p = Eg(r)
          n.retrieveValue = function (t, e) {
            var n = h(i, o, s, t)
            return f(n, e)
          }
          var f = (n.retrieveValueFromItem = function (t, e) {
            if (null != t) {
              var n = s[e]
              return n ? p(t, e, n.name) : void 0
            }
          })
          return (n.getDimensionInfo = W(iy, null, s, l)), (n.cloneAllDimensionInfo = W(ry, null, s)), n
        })(t, a)
      }),
      l = qo(a.transform({ upstream: s[0], upstreamList: s, config: T(t.config) }))
    return E(l, function (t, n) {
      var i,
        r = ''
      q(t) || Yo(r), t.data || Yo(r), sy(Sg(t.data)) || Yo(r)
      var o = e[0]
      if (o && 0 === n && !t.dimensions) {
        var a = o.startIndex
        a && (t.data = o.data.slice(0, a).concat(t.data)), (i = { seriesLayoutBy: vf, sourceHeader: a, dimensions: o.metaRawOption.dimensions })
      } else i = { seriesLayoutBy: vf, sourceHeader: 0, dimensions: t.dimensions }
      return bg(t.data, i, null)
    })
  }
  function sy(t) {
    return t === df || t === pf
  }
  var ly,
    uy = 'undefined',
    cy = typeof Uint32Array === uy ? Array : Uint32Array,
    hy = typeof Uint16Array === uy ? Array : Uint16Array,
    dy = typeof Int32Array === uy ? Array : Int32Array,
    py = typeof Float64Array === uy ? Array : Float64Array,
    fy = { float: py, int: dy, ordinal: Array, number: Array, time: py }
  function gy(t) {
    return t > 65535 ? cy : hy
  }
  function yy(t, e, n, i, r) {
    var o = fy[n || 'float']
    if (r) {
      var a = t[e],
        s = a && a.length
      if (s !== i) {
        for (var l = new o(i), u = 0; u < s; u++) l[u] = a[u]
        t[e] = l
      }
    } else t[e] = new o(i)
  }
  var vy = (function () {
      function t() {
        ;(this._chunks = []), (this._rawExtent = []), (this._extent = []), (this._count = 0), (this._rawCount = 0), (this._calcDimNameToIdx = yt())
      }
      return (
        (t.prototype.initData = function (t, e, n) {
          ;(this._provider = t), (this._chunks = []), (this._indices = null), (this.getRawIndex = this._getRawIdxIdentity)
          var i = t.getSource(),
            r = (this.defaultDimValueGetter = ly[i.sourceFormat])
          ;(this._dimValueGetter = n || r), (this._rawExtent = [])
          Tg(i)
          ;(this._dimensions = E(e, function (t) {
            return { type: t.type, property: t.property }
          })),
            this._initDataFromProvider(0, t.count())
        }),
        (t.prototype.getProvider = function () {
          return this._provider
        }),
        (t.prototype.getSource = function () {
          return this._provider.getSource()
        }),
        (t.prototype.ensureCalculationDimension = function (t, e) {
          var n = this._calcDimNameToIdx,
            i = this._dimensions,
            r = n.get(t)
          if (null != r) {
            if (i[r].type === e) return r
          } else r = i.length
          return (i[r] = { type: e }), n.set(t, r), (this._chunks[r] = new fy[e || 'float'](this._rawCount)), (this._rawExtent[r] = [1 / 0, -1 / 0]), r
        }),
        (t.prototype.collectOrdinalMeta = function (t, e) {
          var n = this._chunks[t],
            i = this._dimensions[t],
            r = this._rawExtent,
            o = i.ordinalOffset || 0,
            a = n.length
          0 === o && (r[t] = [1 / 0, -1 / 0])
          for (var s = r[t], l = o; l < a; l++) {
            var u = (n[l] = e.parseAndCollect(n[l]))
            isNaN(u) || ((s[0] = Math.min(u, s[0])), (s[1] = Math.max(u, s[1])))
          }
          ;(i.ordinalMeta = e), (i.ordinalOffset = a), (i.type = 'ordinal')
        }),
        (t.prototype.getOrdinalMeta = function (t) {
          return this._dimensions[t].ordinalMeta
        }),
        (t.prototype.getDimensionProperty = function (t) {
          var e = this._dimensions[t]
          return e && e.property
        }),
        (t.prototype.appendData = function (t) {
          var e = this._provider,
            n = this.count()
          e.appendData(t)
          var i = e.count()
          return e.persistent || (i += n), n < i && this._initDataFromProvider(n, i, !0), [n, i]
        }),
        (t.prototype.appendValues = function (t, e) {
          for (var n = this._chunks, i = this._dimensions, r = i.length, o = this._rawExtent, a = this.count(), s = a + Math.max(t.length, e || 0), l = 0; l < r; l++) {
            yy(n, l, (p = i[l]).type, s, !0)
          }
          for (var u = [], c = a; c < s; c++)
            for (var h = c - a, d = 0; d < r; d++) {
              var p = i[d],
                f = ly.arrayRows.call(this, t[h] || u, p.property, h, d)
              n[d][c] = f
              var g = o[d]
              f < g[0] && (g[0] = f), f > g[1] && (g[1] = f)
            }
          return (this._rawCount = this._count = s), { start: a, end: s }
        }),
        (t.prototype._initDataFromProvider = function (t, e, n) {
          for (
            var i = this._provider,
              r = this._chunks,
              o = this._dimensions,
              a = o.length,
              s = this._rawExtent,
              l = E(o, function (t) {
                return t.property
              }),
              u = 0;
            u < a;
            u++
          ) {
            var c = o[u]
            s[u] || (s[u] = [1 / 0, -1 / 0]), yy(r, u, c.type, e, n)
          }
          if (i.fillStorage) i.fillStorage(t, e, r, s)
          else
            for (var h = [], d = t; d < e; d++) {
              h = i.getItem(d, h)
              for (var p = 0; p < a; p++) {
                var f = r[p],
                  g = this._dimValueGetter(h, l[p], d, p)
                f[d] = g
                var y = s[p]
                g < y[0] && (y[0] = g), g > y[1] && (y[1] = g)
              }
            }
          !i.persistent && i.clean && i.clean(), (this._rawCount = this._count = e), (this._extent = [])
        }),
        (t.prototype.count = function () {
          return this._count
        }),
        (t.prototype.get = function (t, e) {
          if (!(e >= 0 && e < this._count)) return NaN
          var n = this._chunks[t]
          return n ? n[this.getRawIndex(e)] : NaN
        }),
        (t.prototype.getValues = function (t, e) {
          var n = [],
            i = []
          if (null == e) {
            ;(e = t), (t = [])
            for (var r = 0; r < this._dimensions.length; r++) i.push(r)
          } else i = t
          r = 0
          for (var o = i.length; r < o; r++) n.push(this.get(i[r], e))
          return n
        }),
        (t.prototype.getByRawIndex = function (t, e) {
          if (!(e >= 0 && e < this._rawCount)) return NaN
          var n = this._chunks[t]
          return n ? n[e] : NaN
        }),
        (t.prototype.getSum = function (t) {
          var e = 0
          if (this._chunks[t])
            for (var n = 0, i = this.count(); n < i; n++) {
              var r = this.get(t, n)
              isNaN(r) || (e += r)
            }
          return e
        }),
        (t.prototype.getMedian = function (t) {
          var e = []
          this.each([t], function (t) {
            isNaN(t) || e.push(t)
          })
          var n = e.sort(function (t, e) {
              return t - e
            }),
            i = this.count()
          return 0 === i ? 0 : i % 2 == 1 ? n[(i - 1) / 2] : (n[i / 2] + n[i / 2 - 1]) / 2
        }),
        (t.prototype.indexOfRawIndex = function (t) {
          if (t >= this._rawCount || t < 0) return -1
          if (!this._indices) return t
          var e = this._indices,
            n = e[t]
          if (null != n && n < this._count && n === t) return t
          for (var i = 0, r = this._count - 1; i <= r; ) {
            var o = ((i + r) / 2) | 0
            if (e[o] < t) i = o + 1
            else {
              if (!(e[o] > t)) return o
              r = o - 1
            }
          }
          return -1
        }),
        (t.prototype.getIndices = function () {
          var t,
            e = this._indices
          if (e) {
            var n = e.constructor,
              i = this._count
            if (n === Array) {
              t = new n(i)
              for (var r = 0; r < i; r++) t[r] = e[r]
            } else t = new n(e.buffer, 0, i)
          } else {
            t = new (n = gy(this._rawCount))(this.count())
            for (r = 0; r < t.length; r++) t[r] = r
          }
          return t
        }),
        (t.prototype.filter = function (t, e) {
          if (!this._count) return this
          for (var n = this.clone(), i = n.count(), r = new (gy(n._rawCount))(i), o = [], a = t.length, s = 0, l = t[0], u = n._chunks, c = 0; c < i; c++) {
            var h = void 0,
              d = n.getRawIndex(c)
            if (0 === a) h = e(c)
            else if (1 === a) {
              h = e(u[l][d], c)
            } else {
              for (var p = 0; p < a; p++) o[p] = u[t[p]][d]
              ;(o[p] = c), (h = e.apply(null, o))
            }
            h && (r[s++] = d)
          }
          return s < i && (n._indices = r), (n._count = s), (n._extent = []), n._updateGetRawIdx(), n
        }),
        (t.prototype.selectRange = function (t) {
          var e = this.clone(),
            n = e._count
          if (!n) return this
          var i = F(t),
            r = i.length
          if (!r) return this
          var o = e.count(),
            a = new (gy(e._rawCount))(o),
            s = 0,
            l = i[0],
            u = t[l][0],
            c = t[l][1],
            h = e._chunks,
            d = !1
          if (!e._indices) {
            var p = 0
            if (1 === r) {
              for (var f = h[i[0]], g = 0; g < n; g++) {
                ;(((x = f[g]) >= u && x <= c) || isNaN(x)) && (a[s++] = p), p++
              }
              d = !0
            } else if (2 === r) {
              f = h[i[0]]
              var y = h[i[1]],
                v = t[i[1]][0],
                m = t[i[1]][1]
              for (g = 0; g < n; g++) {
                var x = f[g],
                  _ = y[g]
                ;((x >= u && x <= c) || isNaN(x)) && ((_ >= v && _ <= m) || isNaN(_)) && (a[s++] = p), p++
              }
              d = !0
            }
          }
          if (!d)
            if (1 === r)
              for (g = 0; g < o; g++) {
                var b = e.getRawIndex(g)
                ;(((x = h[i[0]][b]) >= u && x <= c) || isNaN(x)) && (a[s++] = b)
              }
            else
              for (g = 0; g < o; g++) {
                for (var w = !0, S = ((b = e.getRawIndex(g)), 0); S < r; S++) {
                  var M = i[S]
                  ;((x = h[M][b]) < t[M][0] || x > t[M][1]) && (w = !1)
                }
                w && (a[s++] = e.getRawIndex(g))
              }
          return s < o && (e._indices = a), (e._count = s), (e._extent = []), e._updateGetRawIdx(), e
        }),
        (t.prototype.map = function (t, e) {
          var n = this.clone(t)
          return this._updateDims(n, t, e), n
        }),
        (t.prototype.modify = function (t, e) {
          this._updateDims(this, t, e)
        }),
        (t.prototype._updateDims = function (t, e, n) {
          for (var i = t._chunks, r = [], o = e.length, a = t.count(), s = [], l = t._rawExtent, u = 0; u < e.length; u++) l[e[u]] = [1 / 0, -1 / 0]
          for (var c = 0; c < a; c++) {
            for (var h = t.getRawIndex(c), d = 0; d < o; d++) s[d] = i[e[d]][h]
            s[o] = c
            var p = n && n.apply(null, s)
            if (null != p) {
              'object' != typeof p && ((r[0] = p), (p = r))
              for (u = 0; u < p.length; u++) {
                var f = e[u],
                  g = p[u],
                  y = l[f],
                  v = i[f]
                v && (v[h] = g), g < y[0] && (y[0] = g), g > y[1] && (y[1] = g)
              }
            }
          }
        }),
        (t.prototype.lttbDownSample = function (t, e) {
          var n,
            i,
            r,
            o = this.clone([t], !0),
            a = o._chunks[t],
            s = this.count(),
            l = 0,
            u = Math.floor(1 / e),
            c = this.getRawIndex(0),
            h = new (gy(this._rawCount))(Math.min(2 * (Math.ceil(s / u) + 2), s))
          h[l++] = c
          for (var d = 1; d < s - 1; d += u) {
            for (var p = Math.min(d + u, s - 1), f = Math.min(d + 2 * u, s), g = (f + p) / 2, y = 0, v = p; v < f; v++) {
              var m = a[(I = this.getRawIndex(v))]
              isNaN(m) || (y += m)
            }
            y /= f - p
            var x = d,
              _ = Math.min(d + u, s),
              b = d - 1,
              w = a[c]
            ;(n = -1), (r = x)
            var S = -1,
              M = 0
            for (v = x; v < _; v++) {
              var I
              m = a[(I = this.getRawIndex(v))]
              isNaN(m) ? (M++, S < 0 && (S = I)) : (i = Math.abs((b - g) * (m - w) - (b - v) * (y - w))) > n && ((n = i), (r = I))
            }
            M > 0 && M < _ - x && ((h[l++] = Math.min(S, r)), (r = Math.max(S, r))), (h[l++] = r), (c = r)
          }
          return (h[l++] = this.getRawIndex(s - 1)), (o._count = l), (o._indices = h), (o.getRawIndex = this._getRawIdx), o
        }),
        (t.prototype.minmaxDownSample = function (t, e) {
          for (
            var n = this.clone([t], !0), i = n._chunks, r = Math.floor(1 / e), o = i[t], a = this.count(), s = new (gy(this._rawCount))(2 * Math.ceil(a / r)), l = 0, u = 0;
            u < a;
            u += r
          ) {
            var c = u,
              h = o[this.getRawIndex(c)],
              d = u,
              p = o[this.getRawIndex(d)],
              f = r
            u + r > a && (f = a - u)
            for (var g = 0; g < f; g++) {
              var y = o[this.getRawIndex(u + g)]
              y < h && ((h = y), (c = u + g)), y > p && ((p = y), (d = u + g))
            }
            var v = this.getRawIndex(c),
              m = this.getRawIndex(d)
            c < d ? ((s[l++] = v), (s[l++] = m)) : ((s[l++] = m), (s[l++] = v))
          }
          return (n._count = l), (n._indices = s), n._updateGetRawIdx(), n
        }),
        (t.prototype.downSample = function (t, e, n, i) {
          for (
            var r = this.clone([t], !0),
              o = r._chunks,
              a = [],
              s = Math.floor(1 / e),
              l = o[t],
              u = this.count(),
              c = (r._rawExtent[t] = [1 / 0, -1 / 0]),
              h = new (gy(this._rawCount))(Math.ceil(u / s)),
              d = 0,
              p = 0;
            p < u;
            p += s
          ) {
            s > u - p && ((s = u - p), (a.length = s))
            for (var f = 0; f < s; f++) {
              var g = this.getRawIndex(p + f)
              a[f] = l[g]
            }
            var y = n(a),
              v = this.getRawIndex(Math.min(p + i(a, y) || 0, u - 1))
            ;(l[v] = y), y < c[0] && (c[0] = y), y > c[1] && (c[1] = y), (h[d++] = v)
          }
          return (r._count = d), (r._indices = h), r._updateGetRawIdx(), r
        }),
        (t.prototype.each = function (t, e) {
          if (this._count)
            for (var n = t.length, i = this._chunks, r = 0, o = this.count(); r < o; r++) {
              var a = this.getRawIndex(r)
              switch (n) {
                case 0:
                  e(r)
                  break
                case 1:
                  e(i[t[0]][a], r)
                  break
                case 2:
                  e(i[t[0]][a], i[t[1]][a], r)
                  break
                default:
                  for (var s = 0, l = []; s < n; s++) l[s] = i[t[s]][a]
                  ;(l[s] = r), e.apply(null, l)
              }
            }
        }),
        (t.prototype.getDataExtent = function (t) {
          var e = this._chunks[t],
            n = [1 / 0, -1 / 0]
          if (!e) return n
          var i,
            r = this.count()
          if (!this._indices) return this._rawExtent[t].slice()
          if ((i = this._extent[t])) return i.slice()
          for (var o = (i = n)[0], a = i[1], s = 0; s < r; s++) {
            var l = e[this.getRawIndex(s)]
            l < o && (o = l), l > a && (a = l)
          }
          return (i = [o, a]), (this._extent[t] = i), i
        }),
        (t.prototype.getRawDataItem = function (t) {
          var e = this.getRawIndex(t)
          if (this._provider.persistent) return this._provider.getItem(e)
          for (var n = [], i = this._chunks, r = 0; r < i.length; r++) n.push(i[r][e])
          return n
        }),
        (t.prototype.clone = function (e, n) {
          var i,
            r,
            o = new t(),
            a = this._chunks,
            s =
              e &&
              B(
                e,
                function (t, e) {
                  return (t[e] = !0), t
                },
                {}
              )
          if (s) for (var l = 0; l < a.length; l++) o._chunks[l] = s[l] ? ((i = a[l]), (r = void 0), (r = i.constructor) === Array ? i.slice() : new r(i)) : a[l]
          else o._chunks = a
          return this._copyCommonProps(o), n || (o._indices = this._cloneIndices()), o._updateGetRawIdx(), o
        }),
        (t.prototype._copyCommonProps = function (t) {
          ;(t._count = this._count),
            (t._rawCount = this._rawCount),
            (t._provider = this._provider),
            (t._dimensions = this._dimensions),
            (t._extent = T(this._extent)),
            (t._rawExtent = T(this._rawExtent))
        }),
        (t.prototype._cloneIndices = function () {
          if (this._indices) {
            var t = this._indices.constructor,
              e = void 0
            if (t === Array) {
              var n = this._indices.length
              e = new t(n)
              for (var i = 0; i < n; i++) e[i] = this._indices[i]
            } else e = new t(this._indices)
            return e
          }
          return null
        }),
        (t.prototype._getRawIdxIdentity = function (t) {
          return t
        }),
        (t.prototype._getRawIdx = function (t) {
          return t < this._count && t >= 0 ? this._indices[t] : -1
        }),
        (t.prototype._updateGetRawIdx = function () {
          this.getRawIndex = this._indices ? this._getRawIdx : this._getRawIdxIdentity
        }),
        (t.internalField = (function () {
          function t(t, e, n, i) {
            return Xg(t[i], this._dimensions[i])
          }
          ly = {
            arrayRows: t,
            objectRows: function (t, e, n, i) {
              return Xg(t[e], this._dimensions[i])
            },
            keyedColumns: t,
            original: function (t, e, n, i) {
              var r = t && (null == t.value ? t : t.value)
              return Xg(r instanceof Array ? r[i] : r, this._dimensions[i])
            },
            typedArray: function (t, e, n, i) {
              return t[i]
            }
          }
        })()),
        t
      )
    })(),
    my = (function () {
      function t(t) {
        ;(this._sourceList = []), (this._storeList = []), (this._upstreamSignList = []), (this._versionSignBase = 0), (this._dirty = !0), (this._sourceHost = t)
      }
      return (
        (t.prototype.dirty = function () {
          this._setLocalSource([], []), (this._storeList = []), (this._dirty = !0)
        }),
        (t.prototype._setLocalSource = function (t, e) {
          ;(this._sourceList = t), (this._upstreamSignList = e), this._versionSignBase++, this._versionSignBase > 9e10 && (this._versionSignBase = 0)
        }),
        (t.prototype._getVersionSign = function () {
          return this._sourceHost.uid + '_' + this._versionSignBase
        }),
        (t.prototype.prepareSource = function () {
          this._isDirty() && (this._createSource(), (this._dirty = !1))
        }),
        (t.prototype._createSource = function () {
          this._setLocalSource([], [])
          var t,
            e,
            n = this._sourceHost,
            i = this._getUpstreamSourceManagers(),
            r = !!i.length
          if (_y(n)) {
            var o = n,
              a = void 0,
              s = void 0,
              l = void 0
            if (r) {
              var u = i[0]
              u.prepareSource(), (a = (l = u.getSource()).data), (s = l.sourceFormat), (e = [u._getVersionSign()])
            } else (s = $((a = o.get('data', !0))) ? gf : hf), (e = [])
            var c = this._getSourceMetaRawOption() || {},
              h = (l && l.metaRawOption) || {},
              d = rt(c.seriesLayoutBy, h.seriesLayoutBy) || null,
              p = rt(c.sourceHeader, h.sourceHeader),
              f = rt(c.dimensions, h.dimensions)
            t = d !== h.seriesLayoutBy || !!p != !!h.sourceHeader || f ? [bg(a, { seriesLayoutBy: d, sourceHeader: p, dimensions: f }, s)] : []
          } else {
            var g = n
            if (r) {
              var y = this._applyTransform(i)
              ;(t = y.sourceList), (e = y.upstreamSignList)
            } else {
              ;(t = [bg(g.get('source', !0), this._getSourceMetaRawOption(), null)]), (e = [])
            }
          }
          this._setLocalSource(t, e)
        }),
        (t.prototype._applyTransform = function (t) {
          var e,
            n = this._sourceHost,
            i = n.get('transform', !0),
            r = n.get('fromTransformResult', !0)
          if (null != r) {
            var o = ''
            1 !== t.length && by(o)
          }
          var a,
            s = [],
            l = []
          return (
            z(t, function (t) {
              t.prepareSource()
              var e = t.getSource(r || 0),
                n = ''
              null == r || e || by(n), s.push(e), l.push(t._getVersionSign())
            }),
            i
              ? (e = (function (t, e, n) {
                  var i = qo(t),
                    r = i.length,
                    o = ''
                  r || Yo(o)
                  for (var a = 0, s = r; a < s; a++) (e = ay(i[a], e)), a !== s - 1 && (e.length = Math.max(e.length, 1))
                  return e
                })(i, s, n.componentIndex))
              : null != r &&
                (e = [
                  ((a = s[0]),
                  new xg({
                    data: a.data,
                    sourceFormat: a.sourceFormat,
                    seriesLayoutBy: a.seriesLayoutBy,
                    dimensionsDefine: T(a.dimensionsDefine),
                    startIndex: a.startIndex,
                    dimensionsDetectedCount: a.dimensionsDetectedCount
                  }))
                ]),
            { sourceList: e, upstreamSignList: l }
          )
        }),
        (t.prototype._isDirty = function () {
          if (this._dirty) return !0
          for (var t = this._getUpstreamSourceManagers(), e = 0; e < t.length; e++) {
            var n = t[e]
            if (n._isDirty() || this._upstreamSignList[e] !== n._getVersionSign()) return !0
          }
        }),
        (t.prototype.getSource = function (t) {
          t = t || 0
          var e = this._sourceList[t]
          if (!e) {
            var n = this._getUpstreamSourceManagers()
            return n[0] && n[0].getSource(t)
          }
          return e
        }),
        (t.prototype.getSharedDataStore = function (t) {
          var e = t.makeStoreSchema()
          return this._innerGetDataStore(e.dimensions, t.source, e.hash)
        }),
        (t.prototype._innerGetDataStore = function (t, e, n) {
          var i = this._storeList,
            r = i[0]
          r || (r = i[0] = {})
          var o = r[n]
          if (!o) {
            var a = this._getUpstreamSourceManagers()[0]
            _y(this._sourceHost) && a ? (o = a._innerGetDataStore(t, e, n)) : (o = new vy()).initData(new Cg(e, t.length), t), (r[n] = o)
          }
          return o
        }),
        (t.prototype._getUpstreamSourceManagers = function () {
          var t = this._sourceHost
          if (_y(t)) {
            var e = If(t)
            return e ? [e.getSourceManager()] : []
          }
          return E(
            (function (t) {
              return t.get('transform', !0) || t.get('fromTransformResult', !0)
                ? pa(t.ecModel, 'dataset', { index: t.get('fromDatasetIndex', !0), id: t.get('fromDatasetId', !0) }, ha).models
                : []
            })(t),
            function (t) {
              return t.getSourceManager()
            }
          )
        }),
        (t.prototype._getSourceMetaRawOption = function () {
          var t,
            e,
            n,
            i = this._sourceHost
          if (_y(i)) (t = i.get('seriesLayoutBy', !0)), (e = i.get('sourceHeader', !0)), (n = i.get('dimensions', !0))
          else if (!this._getUpstreamSourceManagers().length) {
            var r = i
            ;(t = r.get('seriesLayoutBy', !0)), (e = r.get('sourceHeader', !0)), (n = r.get('dimensions', !0))
          }
          return { seriesLayoutBy: t, sourceHeader: e, dimensions: n }
        }),
        t
      )
    })()
  function xy(t) {
    t.option.transform && ht(t.option.transform)
  }
  function _y(t) {
    return 'series' === t.mainType
  }
  function by(t) {
    throw new Error(t)
  }
  function wy(t) {
    var e = t.lineHeight
    return null == e ? 'line-height:1' : 'line-height:' + oe(e + '') + 'px'
  }
  function Sy(t, e) {
    var n = t.color || tf.color.tertiary,
      i = t.fontSize || 12,
      r = t.fontWeight || '400',
      o = t.color || tf.color.secondary,
      a = t.fontSize || 14,
      s = t.fontWeight || '900'
    return 'html' === e
      ? {
          nameStyle: 'font-size:' + oe(i + '') + 'px;color:' + oe(n) + ';font-weight:' + oe(r + ''),
          valueStyle: 'font-size:' + oe(a + '') + 'px;color:' + oe(o) + ';font-weight:' + oe(s + '')
        }
      : { nameStyle: { fontSize: i, fill: n, fontWeight: r }, valueStyle: { fontSize: a, fill: o, fontWeight: s } }
  }
  var My = [0, 10, 20, 30],
    Iy = ['', '\n', '\n\n', '\n\n\n']
  function Ty(t, e) {
    return (e.type = t), e
  }
  function Cy(t) {
    return 'section' === t.type
  }
  function Dy(t) {
    return Cy(t) ? ky : Ly
  }
  function Ay(t) {
    if (Cy(t)) {
      var e = 0,
        n = t.blocks.length,
        i = n > 1 || (n > 0 && !t.noHeader)
      return (
        z(t.blocks, function (t) {
          var n = Ay(t)
          n >= e && (e = n + +(i && (!n || (Cy(t) && !t.noHeader))))
        }),
        e
      )
    }
    return 0
  }
  function ky(t, e, n, i) {
    var r,
      o = e.noHeader,
      a = ((r = Ay(e)), { html: My[r], richText: Iy[r] }),
      s = [],
      l = e.blocks || []
    lt(!l || U(l)), (l = l || [])
    var u = t.orderMode
    if (e.sortBlocks && u) {
      l = l.slice()
      var c = { valueAsc: 'asc', valueDesc: 'desc' }
      if (_t(c, u)) {
        var h = new $g(c[u], null)
        l.sort(function (t, e) {
          return h.evaluate(t.sortParam, e.sortParam)
        })
      } else 'seriesDesc' === u && l.reverse()
    }
    z(l, function (n, r) {
      var o = e.valueFormatter,
        l = Dy(n)(o ? A(A({}, t), { valueFormatter: o }) : t, n, r > 0 ? a.html : 0, i)
      null != l && s.push(l)
    })
    var d = 'richText' === t.renderMode ? s.join(a.richText) : Oy(i, s.join(''), o ? n : a.html)
    if (o) return d
    var p = vp(e.header, 'ordinal', t.useUTC),
      f = Sy(i, t.renderMode).nameStyle,
      g = wy(i)
    return 'richText' === t.renderMode ? Ry(t, p, f) + a.richText + d : Oy(i, '<div style="' + f + ';' + g + ';">' + oe(p) + '</div>' + d, n)
  }
  function Ly(t, e, n, i) {
    var r = t.renderMode,
      o = e.noName,
      a = e.noValue,
      s = !e.markerType,
      l = e.name,
      u = t.useUTC,
      c =
        e.valueFormatter ||
        t.valueFormatter ||
        function (t) {
          return E((t = U(t) ? t : [t]), function (t, e) {
            return vp(t, U(p) ? p[e] : p, u)
          })
        }
    if (!o || !a) {
      var h = s ? '' : t.markupStyleCreator.makeTooltipMarker(e.markerType, e.markerColor || tf.color.secondary, r),
        d = o ? '' : vp(l, 'ordinal', u),
        p = e.valueType,
        f = a ? [] : c(e.value, e.dataIndex),
        g = !s || !o,
        y = !s && o,
        v = Sy(i, r),
        m = v.nameStyle,
        x = v.valueStyle
      return 'richText' === r
        ? (s ? '' : h) +
            (o ? '' : Ry(t, d, m)) +
            (a
              ? ''
              : (function (t, e, n, i, r) {
                  var o = [r],
                    a = i ? 10 : 20
                  return n && o.push({ padding: [0, 0, 0, a], align: 'right' }), t.markupStyleCreator.wrapRichTextStyle(U(e) ? e.join('  ') : e, o)
                })(t, f, g, y, x))
        : Oy(
            i,
            (s ? '' : h) +
              (o
                ? ''
                : (function (t, e, n) {
                    return '<span style="' + n + ';' + (e ? 'margin-left:2px' : '') + '">' + oe(t) + '</span>'
                  })(d, !s, m)) +
              (a
                ? ''
                : (function (t, e, n, i) {
                    var r = n ? '10px' : '20px',
                      o = e ? 'float:right;margin-left:' + r : ''
                    return (
                      (t = U(t) ? t : [t]),
                      '<span style="' +
                        o +
                        ';' +
                        i +
                        '">' +
                        E(t, function (t) {
                          return oe(t)
                        }).join('&nbsp;&nbsp;') +
                        '</span>'
                    )
                  })(f, g, y, x)),
            n
          )
    }
  }
  function Py(t, e, n, i, r, o) {
    if (t) return Dy(t)({ useUTC: r, renderMode: n, orderMode: i, markupStyleCreator: e, valueFormatter: t.valueFormatter }, t, 0, o)
  }
  function Oy(t, e, n) {
    return '<div style="' + ('margin: ' + n + 'px 0 0') + ';' + wy(t) + ';">' + e + '<div style="clear:both"></div></div>'
  }
  function Ry(t, e, n) {
    return t.markupStyleCreator.wrapRichTextStyle(e, n)
  }
  function Ny(t, e) {
    return wp(t.getData().getItemVisual(e, 'style')[t.visualDrawType])
  }
  function zy(t, e) {
    var n = t.get('padding')
    return null != n ? n : 'richText' === e ? [8, 10] : 10
  }
  var Ey = (function () {
    function t() {
      ;(this.richTextStyles = {}), (this._nextStyleNameId = Eo())
    }
    return (
      (t.prototype._generateStyleName = function () {
        return '__EC_aUTo_' + this._nextStyleNameId++
      }),
      (t.prototype.makeTooltipMarker = function (t, e, n) {
        var i = 'richText' === n ? this._generateStyleName() : null,
          r = bp({ color: e, type: t, renderMode: n, markerId: i })
        return X(r) ? r : ((this.richTextStyles[i] = r.style), r.content)
      }),
      (t.prototype.wrapRichTextStyle = function (t, e) {
        var n = {}
        U(e)
          ? z(e, function (t) {
              return A(n, t)
            })
          : A(n, e)
        var i = this._generateStyleName()
        return (this.richTextStyles[i] = n), '{' + i + '|' + t + '}'
      }),
      t
    )
  })()
  function By(t) {
    var e,
      n,
      i,
      r,
      o = t.series,
      a = t.dataIndex,
      s = t.multipleSeries,
      l = o.getData(),
      u = l.mapDimensionsAll('defaultedTooltip'),
      c = u.length,
      h = o.getRawValue(a),
      d = U(h),
      p = Ny(o, a)
    if (c > 1 || (d && !c)) {
      var f = (function (t, e, n, i, r) {
        var o = e.getData(),
          a = B(
            t,
            function (t, e, n) {
              var i = o.getDimensionInfo(n)
              return t || (i && !1 !== i.tooltip && null != i.displayName)
            },
            !1
          ),
          s = [],
          l = [],
          u = []
        function c(t, e) {
          var n = o.getDimensionInfo(e)
          n &&
            !1 !== n.otherDims.tooltip &&
            (a ? u.push(Ty('nameValue', { markerType: 'subItem', markerColor: r, name: n.displayName, value: t, valueType: n.type })) : (s.push(t), l.push(n.type)))
        }
        return (
          i.length
            ? z(i, function (t) {
                c(Vg(o, n, t), t)
              })
            : z(t, c),
          { inlineValues: s, inlineValueTypes: l, blocks: u }
        )
      })(h, o, a, u, p)
      ;(e = f.inlineValues), (n = f.inlineValueTypes), (i = f.blocks), (r = f.inlineValues[0])
    } else if (c) {
      var g = l.getDimensionInfo(u[0])
      ;(r = e = Vg(l, a, u[0])), (n = g.type)
    } else r = e = d ? h[0] : h
    var y = ra(o),
      v = (y && o.name) || '',
      m = l.getName(a),
      x = s ? v : m
    return Ty('section', {
      header: v,
      noHeader: s || !y,
      sortParam: r,
      blocks: [Ty('nameValue', { markerType: 'item', markerColor: p, name: x, noName: !ut(x), value: e, valueType: n, dataIndex: a })].concat(i || [])
    })
  }
  var Vy = sa()
  function Gy(t, e) {
    return t.getName(e) || t.getId(e)
  }
  var Fy = '__universalTransitionEnabled',
    Wy = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e._selectedDataIndicesMap = {}), e
      }
      var i
      return (
        n(e, t),
        (e.prototype.init = function (t, e, n) {
          ;(this.seriesIndex = this.componentIndex),
            (this.dataTask = Hg({ count: Uy, reset: Yy })),
            (this.dataTask.context = { model: this }),
            this.mergeDefaultAndTheme(t, n),
            (Vy(this).sourceManager = new my(this)).prepareSource()
          var i = this.getInitialData(t, n)
          Zy(i, this), (this.dataTask.context.data = i), (Vy(this).dataBeforeProcessed = i), Hy(this), this._initSelectedMapFromData(i)
        }),
        (e.prototype.mergeDefaultAndTheme = function (t, e) {
          var n = jp(this),
            i = n ? Kp(t) : {},
            r = this.subType
          Qp.hasClass(r) && (r += 'Series'),
            C(t, e.getTheme().get(this.subType)),
            C(t, this.getDefaultOption()),
            Ko(t, 'label', ['show']),
            this.fillDataTextStyle(t.data),
            n && qp(t, i, n)
        }),
        (e.prototype.mergeOption = function (t, e) {
          ;(t = C(this.option, t, !0)), this.fillDataTextStyle(t.data)
          var n = jp(this)
          n && qp(this.option, t, n)
          var i = Vy(this).sourceManager
          i.dirty(), i.prepareSource()
          var r = this.getInitialData(t, e)
          Zy(r, this), this.dataTask.dirty(), (this.dataTask.context.data = r), (Vy(this).dataBeforeProcessed = r), Hy(this), this._initSelectedMapFromData(r)
        }),
        (e.prototype.fillDataTextStyle = function (t) {
          if (t && !$(t)) for (var e = ['show'], n = 0; n < t.length; n++) t[n] && t[n].label && Ko(t[n], 'label', e)
        }),
        (e.prototype.getInitialData = function (t, e) {}),
        (e.prototype.appendData = function (t) {
          this.getRawData().appendData(t.data)
        }),
        (e.prototype.getData = function (t) {
          var e = qy(this)
          if (e) {
            var n = e.context.data
            return null != t && n.getLinkedData ? n.getLinkedData(t) : n
          }
          return Vy(this).data
        }),
        (e.prototype.getAllData = function () {
          var t = this.getData()
          return t && t.getLinkedDataAll ? t.getLinkedDataAll() : [{ data: t }]
        }),
        (e.prototype.setData = function (t) {
          var e = qy(this)
          if (e) {
            var n = e.context
            ;(n.outputData = t), e !== this.dataTask && (n.data = t)
          }
          Vy(this).data = t
        }),
        (e.prototype.getEncode = function () {
          var t = this.get('encode', !0)
          if (t) return yt(t)
        }),
        (e.prototype.getSourceManager = function () {
          return Vy(this).sourceManager
        }),
        (e.prototype.getSource = function () {
          return this.getSourceManager().getSource()
        }),
        (e.prototype.getRawData = function () {
          return Vy(this).dataBeforeProcessed
        }),
        (e.prototype.getColorBy = function () {
          return this.get('colorBy') || 'series'
        }),
        (e.prototype.isColorBySeries = function () {
          return 'series' === this.getColorBy()
        }),
        (e.prototype.getBaseAxis = function () {
          var t = this.coordinateSystem
          return t && t.getBaseAxis && t.getBaseAxis()
        }),
        (e.prototype.indicesOfNearest = function (t, e, n, i) {
          var r = this.getData(),
            o = this.coordinateSystem,
            a = o && o.getAxis(t)
          if (!o || !a) return []
          var s = a.dataToCoord(n)
          null == i && (i = 1 / 0)
          var l = [],
            u = 1 / 0,
            c = -1,
            h = 0
          return (
            r.each(e, function (t, e) {
              var n = a.dataToCoord(t),
                r = s - n,
                o = Math.abs(r)
              o <= i && ((o < u || (o === u && r >= 0 && c < 0)) && ((u = o), (c = r), (h = 0)), r === c && (l[h++] = e))
            }),
            (l.length = h),
            l
          )
        }),
        (e.prototype.formatTooltip = function (t, e, n) {
          return By({ series: this, dataIndex: t, multipleSeries: e })
        }),
        (e.prototype.isAnimationEnabled = function () {
          var t = this.ecModel
          if (r.node && (!t || !t.ssr)) return !1
          var e = this.getShallow('animation')
          return e && this.getData().count() > this.getShallow('animationThreshold') && (e = !1), !!e
        }),
        (e.prototype.restoreData = function () {
          this.dataTask.dirty()
        }),
        (e.prototype.getColorFromPalette = function (t, e, n) {
          var i = this.ecModel,
            r = Rf.prototype.getColorFromPalette.call(this, t, e, n)
          return r || (r = i.getColorFromPalette(t, e, n)), r
        }),
        (e.prototype.coordDimToDataDim = function (t) {
          return this.getRawData().mapDimensionsAll(t)
        }),
        (e.prototype.getProgressive = function () {
          return this.get('progressive')
        }),
        (e.prototype.getProgressiveThreshold = function () {
          return this.get('progressiveThreshold')
        }),
        (e.prototype.select = function (t, e) {
          this._innerSelect(this.getData(e), t)
        }),
        (e.prototype.unselect = function (t, e) {
          var n = this.option.selectedMap
          if (n) {
            var i = this.option.selectedMode,
              r = this.getData(e)
            if ('series' === i || 'all' === n) return (this.option.selectedMap = {}), void (this._selectedDataIndicesMap = {})
            for (var o = 0; o < t.length; o++) {
              var a = Gy(r, t[o])
              ;(n[a] = !1), (this._selectedDataIndicesMap[a] = -1)
            }
          }
        }),
        (e.prototype.toggleSelect = function (t, e) {
          for (var n = [], i = 0; i < t.length; i++) (n[0] = t[i]), this.isSelected(t[i], e) ? this.unselect(n, e) : this.select(n, e)
        }),
        (e.prototype.getSelectedDataIndices = function () {
          if ('all' === this.option.selectedMap) return [].slice.call(this.getData().getIndices())
          for (var t = this._selectedDataIndicesMap, e = F(t), n = [], i = 0; i < e.length; i++) {
            var r = t[e[i]]
            r >= 0 && n.push(r)
          }
          return n
        }),
        (e.prototype.isSelected = function (t, e) {
          var n = this.option.selectedMap
          if (!n) return !1
          var i = this.getData(e)
          return ('all' === n || n[Gy(i, t)]) && !i.getItemModel(t).get(['select', 'disabled'])
        }),
        (e.prototype.isUniversalTransitionEnabled = function () {
          if (this[Fy]) return !0
          var t = this.option.universalTransition
          return !!t && (!0 === t || (t && t.enabled))
        }),
        (e.prototype._innerSelect = function (t, e) {
          var n,
            i,
            r = this.option,
            o = r.selectedMode,
            a = e.length
          if (o && a)
            if ('series' === o) r.selectedMap = 'all'
            else if ('multiple' === o) {
              q(r.selectedMap) || (r.selectedMap = {})
              for (var s = r.selectedMap, l = 0; l < a; l++) {
                var u = e[l]
                ;(s[(h = Gy(t, u))] = !0), (this._selectedDataIndicesMap[h] = t.getRawIndex(u))
              }
            } else if ('single' === o || !0 === o) {
              var c = e[a - 1],
                h = Gy(t, c)
              ;(r.selectedMap = (((n = {})[h] = !0), n)), (this._selectedDataIndicesMap = (((i = {})[h] = t.getRawIndex(c)), i))
            }
        }),
        (e.prototype._initSelectedMapFromData = function (t) {
          if (!this.option.selectedMap) {
            var e = []
            t.hasItemOption &&
              t.each(function (n) {
                var i = t.getRawDataItem(n)
                i && i.selected && e.push(n)
              }),
              e.length > 0 && this._innerSelect(t, e)
          }
        }),
        (e.registerClass = function (t) {
          return Qp.registerClass(t)
        }),
        (e.protoInitialize =
          (((i = e.prototype).type = 'series.__base__'),
          (i.seriesIndex = 0),
          (i.ignoreStyleOnData = !1),
          (i.hasSymbolVisual = !1),
          (i.defaultSymbol = 'circle'),
          (i.visualStyleAccessPath = 'itemStyle'),
          void (i.visualDrawType = 'fill'))),
        e
      )
    })(Qp)
  function Hy(t) {
    var e = t.name
    ra(t) ||
      (t.name =
        (function (t) {
          var e = t.getRawData(),
            n = e.mapDimensionsAll('seriesName'),
            i = []
          return (
            z(n, function (t) {
              var n = e.getDimensionInfo(t)
              n.displayName && i.push(n.displayName)
            }),
            i.join(' ')
          )
        })(t) || e)
  }
  function Uy(t) {
    return t.model.getRawData().count()
  }
  function Yy(t) {
    var e = t.model
    return e.setData(e.getRawData().cloneShallow()), Xy
  }
  function Xy(t, e) {
    e.outputData && t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData)
  }
  function Zy(t, e) {
    z(vt(t.CHANGABLE_METHODS, t.DOWNSAMPLE_METHODS), function (n) {
      t.wrapMethod(n, H(jy, e))
    })
  }
  function jy(t, e) {
    var n = qy(t)
    return n && n.setOutputEnd((e || this).count()), e
  }
  function qy(t) {
    var e = (t.ecModel || {}).scheduler,
      n = e && e.getPipeline(t.uid)
    if (n) {
      var i = n.currentTask
      if (i) {
        var r = i.agentStubMap
        r && (i = r.get(t.uid))
      }
      return i
    }
  }
  R(Wy, Fg), R(Wy, Rf), Sa(Wy, Qp)
  var Ky = (function () {
    function t() {
      ;(this.group = new to()), (this.uid = Md('viewComponent'))
    }
    return (
      (t.prototype.init = function (t, e) {}),
      (t.prototype.render = function (t, e, n, i) {}),
      (t.prototype.dispose = function (t, e) {}),
      (t.prototype.updateView = function (t, e, n, i) {}),
      (t.prototype.updateLayout = function (t, e, n, i) {}),
      (t.prototype.updateVisual = function (t, e, n, i) {}),
      (t.prototype.toggleBlurSeries = function (t, e, n) {}),
      (t.prototype.eachRendered = function (t) {
        var e = this.group
        e && e.traverse(t)
      }),
      t
    )
  })()
  function $y() {
    var t = sa()
    return function (e) {
      var n = t(e),
        i = e.pipelineContext,
        r = !!n.large,
        o = !!n.progressiveRender,
        a = (n.large = !(!i || !i.large)),
        s = (n.progressiveRender = !(!i || !i.progressiveRender))
      return !(r === a && o === s) && 'reset'
    }
  }
  wa(Ky), Ca(Ky)
  var Jy = sa(),
    Qy = $y(),
    tv = (function () {
      function t() {
        ;(this.group = new to()), (this.uid = Md('viewChart')), (this.renderTask = Hg({ plan: iv, reset: rv })), (this.renderTask.context = { view: this })
      }
      return (
        (t.prototype.init = function (t, e) {}),
        (t.prototype.render = function (t, e, n, i) {
          0
        }),
        (t.prototype.highlight = function (t, e, n, i) {
          var r = t.getData(i && i.dataType)
          r && nv(r, i, 'emphasis')
        }),
        (t.prototype.downplay = function (t, e, n, i) {
          var r = t.getData(i && i.dataType)
          r && nv(r, i, 'normal')
        }),
        (t.prototype.remove = function (t, e) {
          this.group.removeAll()
        }),
        (t.prototype.dispose = function (t, e) {}),
        (t.prototype.updateView = function (t, e, n, i) {
          this.render(t, e, n, i)
        }),
        (t.prototype.updateLayout = function (t, e, n, i) {
          this.render(t, e, n, i)
        }),
        (t.prototype.updateVisual = function (t, e, n, i) {
          this.render(t, e, n, i)
        }),
        (t.prototype.eachRendered = function (t) {
          Bh(this.group, t)
        }),
        (t.markUpdateMethod = function (t, e) {
          Jy(t).updateMethod = e
        }),
        (t.protoInitialize = void (t.prototype.type = 'chart')),
        t
      )
    })()
  function ev(t, e, n) {
    t && Pu(t) && ('emphasis' === e ? du : pu)(t, n)
  }
  function nv(t, e, n) {
    var i = aa(t, e),
      r =
        e && null != e.highlightKey
          ? (function (t) {
              var e = Vl[t]
              return null == e && Bl <= 32 && (e = Vl[t] = Bl++), e
            })(e.highlightKey)
          : null
    null != i
      ? z(qo(i), function (e) {
          ev(t.getItemGraphicEl(e), n, r)
        })
      : t.eachItemGraphicEl(function (t) {
          ev(t, n, r)
        })
  }
  function iv(t) {
    return Qy(t.model)
  }
  function rv(t) {
    var e = t.model,
      n = t.ecModel,
      i = t.api,
      r = t.payload,
      o = e.pipelineContext.progressiveRender,
      a = t.view,
      s = r && Jy(r).updateMethod,
      l = o ? 'incrementalPrepareRender' : s && a[s] ? s : 'render'
    return 'render' !== l && a[l](e, n, i, r), ov[l]
  }
  wa(tv), Ca(tv)
  var ov = {
      incrementalPrepareRender: {
        progress: function (t, e) {
          e.view.incrementalRender(t, e.model, e.ecModel, e.api, e.payload)
        }
      },
      render: {
        forceFirstProgress: !0,
        progress: function (t, e) {
          e.view.render(e.model, e.ecModel, e.api, e.payload)
        }
      }
    },
    av = '\0__throttleOriginMethod',
    sv = '\0__throttleRate',
    lv = '\0__throttleType'
  function uv(t, e, n) {
    var i,
      r,
      o,
      a,
      s,
      l = 0,
      u = 0,
      c = null
    function h() {
      ;(u = new Date().getTime()), (c = null), t.apply(o, a || [])
    }
    e = e || 0
    var d = function () {
      for (var t = [], d = 0; d < arguments.length; d++) t[d] = arguments[d]
      ;(i = new Date().getTime()), (o = this), (a = t)
      var p = s || e,
        f = s || n
      ;(s = null), (r = i - (f ? l : u) - p), clearTimeout(c), f ? (c = setTimeout(h, p)) : r >= 0 ? h() : (c = setTimeout(h, -r)), (l = i)
    }
    return (
      (d.clear = function () {
        c && (clearTimeout(c), (c = null))
      }),
      (d.debounceNextCall = function (t) {
        s = t
      }),
      d
    )
  }
  function cv(t, e, n, i) {
    var r = t[e]
    if (r) {
      var o = r[av] || r,
        a = r[lv]
      if (r[sv] !== n || a !== i) {
        if (null == n || !i) return (t[e] = o)
        ;((r = t[e] = uv(o, n, 'debounce' === i))[av] = o), (r[lv] = i), (r[sv] = n)
      }
      return r
    }
  }
  function hv(t, e) {
    var n = t[e]
    n && n[av] && (n.clear && n.clear(), (t[e] = n[av]))
  }
  var dv = sa(),
    pv = { itemStyle: Da(xd, !0), lineStyle: Da(yd, !0) },
    fv = { lineStyle: 'stroke', itemStyle: 'fill' }
  function gv(t, e) {
    var n = t.visualStyleMapper || pv[e]
    return n || (console.warn("Unknown style type '" + e + "'."), pv.itemStyle)
  }
  function yv(t, e) {
    var n = t.visualDrawType || fv[e]
    return n || (console.warn("Unknown style type '" + e + "'."), 'fill')
  }
  var vv = {
      createOnAllSeries: !0,
      performRawSeries: !0,
      reset: function (t, e) {
        var n = t.getData(),
          i = t.visualStyleAccessPath || 'itemStyle',
          r = t.getModel(i),
          o = gv(t, i)(r),
          a = r.getShallow('decal')
        a && (n.setVisual('decal', a), (a.dirty = !0))
        var s = yv(t, i),
          l = o[s],
          u = Y(l) ? l : null,
          c = 'auto' === o.fill || 'auto' === o.stroke
        if (!o[s] || u || c) {
          var h = t.getColorFromPalette(t.name, null, e.getSeriesCount())
          o[s] || ((o[s] = h), n.setVisual('colorFromPalette', !0)),
            (o.fill = 'auto' === o.fill || Y(o.fill) ? h : o.fill),
            (o.stroke = 'auto' === o.stroke || Y(o.stroke) ? h : o.stroke)
        }
        if ((n.setVisual('style', o), n.setVisual('drawType', s), !e.isSeriesFiltered(t) && u))
          return (
            n.setVisual('colorFromPalette', !1),
            {
              dataEach: function (e, n) {
                var i = t.getDataParams(n),
                  r = A({}, o)
                ;(r[s] = u(i)), e.setItemVisual(n, 'style', r)
              }
            }
          )
      }
    },
    mv = new wd(),
    xv = {
      createOnAllSeries: !0,
      performRawSeries: !0,
      reset: function (t, e) {
        if (!t.ignoreStyleOnData && !e.isSeriesFiltered(t)) {
          var n = t.getData(),
            i = t.visualStyleAccessPath || 'itemStyle',
            r = gv(t, i),
            o = n.getVisual('drawType')
          return {
            dataEach: n.hasItemOption
              ? function (t, e) {
                  var n = t.getRawDataItem(e)
                  if (n && n[i]) {
                    mv.option = n[i]
                    var a = r(mv)
                    A(t.ensureUniqueItemVisual(e, 'style'), a),
                      mv.option.decal && (t.setItemVisual(e, 'decal', mv.option.decal), (mv.option.decal.dirty = !0)),
                      o in a && t.setItemVisual(e, 'colorFromPalette', !1)
                  }
                }
              : null
          }
        }
      }
    },
    _v = {
      performRawSeries: !0,
      overallReset: function (t) {
        var e = yt()
        t.eachSeries(function (t) {
          var n = t.getColorBy()
          if (!t.isColorBySeries()) {
            var i = t.type + '-' + n,
              r = e.get(i)
            r || ((r = {}), e.set(i, r)), (dv(t).scope = r)
          }
        }),
          t.eachSeries(function (e) {
            if (!e.isColorBySeries() && !t.isSeriesFiltered(e)) {
              var n = e.getRawData(),
                i = {},
                r = e.getData(),
                o = dv(e).scope,
                a = e.visualStyleAccessPath || 'itemStyle',
                s = yv(e, a)
              r.each(function (t) {
                var e = r.getRawIndex(t)
                i[e] = t
              }),
                n.each(function (t) {
                  var a = i[t]
                  if (r.getItemVisual(a, 'colorFromPalette')) {
                    var l = r.ensureUniqueItemVisual(a, 'style'),
                      u = n.getName(t) || t + '',
                      c = n.count()
                    l[s] = e.getColorFromPalette(u, o, c)
                  }
                })
            }
          })
      }
    },
    bv = Math.PI
  var wv = (function () {
    function t(t, e, n, i) {
      ;(this._stageTaskMap = yt()),
        (this.ecInstance = t),
        (this.api = e),
        (n = this._dataProcessorHandlers = n.slice()),
        (i = this._visualHandlers = i.slice()),
        (this._allHandlers = n.concat(i))
    }
    return (
      (t.prototype.restoreData = function (t, e) {
        t.restoreData(e),
          this._stageTaskMap.each(function (t) {
            var e = t.overallTask
            e && e.dirty()
          })
      }),
      (t.prototype.getPerformArgs = function (t, e) {
        if (t.__pipeline) {
          var n = this._pipelineMap.get(t.__pipeline.id),
            i = n.context,
            r = !e && n.progressiveEnabled && (!i || i.progressiveRender) && t.__idxInPipeline > n.blockIndex ? n.step : null,
            o = i && i.modDataCount
          return { step: r, modBy: null != o ? Math.ceil(o / r) : null, modDataCount: o }
        }
      }),
      (t.prototype.getPipeline = function (t) {
        return this._pipelineMap.get(t)
      }),
      (t.prototype.updateStreamModes = function (t, e) {
        var n = this._pipelineMap.get(t.uid),
          i = t.getData().count(),
          r = n.progressiveEnabled && e.incrementalPrepareRender && i >= n.threshold,
          o = t.get('large') && i >= t.get('largeThreshold'),
          a = 'mod' === t.get('progressiveChunkMode') ? i : null
        t.pipelineContext = n.context = { progressiveRender: r, modDataCount: a, large: o }
      }),
      (t.prototype.restorePipelines = function (t) {
        var e = this,
          n = (e._pipelineMap = yt())
        t.eachSeries(function (t) {
          var i = t.getProgressive(),
            r = t.uid
          n.set(r, {
            id: r,
            head: null,
            tail: null,
            threshold: t.getProgressiveThreshold(),
            progressiveEnabled: i && !(t.preventIncremental && t.preventIncremental()),
            blockIndex: -1,
            step: Math.round(i || 700),
            count: 0
          }),
            e._pipe(t, t.dataTask)
        })
      }),
      (t.prototype.prepareStageTasks = function () {
        var t = this._stageTaskMap,
          e = this.api.getModel(),
          n = this.api
        z(
          this._allHandlers,
          function (i) {
            var r = t.get(i.uid) || t.set(i.uid, {}),
              o = ''
            lt(!(i.reset && i.overallReset), o), i.reset && this._createSeriesStageTask(i, r, e, n), i.overallReset && this._createOverallStageTask(i, r, e, n)
          },
          this
        )
      }),
      (t.prototype.prepareView = function (t, e, n, i) {
        var r = t.renderTask,
          o = r.context
        ;(o.model = e), (o.ecModel = n), (o.api = i), (r.__block = !t.incrementalPrepareRender), this._pipe(e, r)
      }),
      (t.prototype.performDataProcessorTasks = function (t, e) {
        this._performStageTasks(this._dataProcessorHandlers, t, e, { block: !0 })
      }),
      (t.prototype.performVisualTasks = function (t, e, n) {
        this._performStageTasks(this._visualHandlers, t, e, n)
      }),
      (t.prototype._performStageTasks = function (t, e, n, i) {
        i = i || {}
        var r = !1,
          o = this
        function a(t, e) {
          return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id))
        }
        z(t, function (t, s) {
          if (!i.visualType || i.visualType === t.visualType) {
            var l = o._stageTaskMap.get(t.uid),
              u = l.seriesTaskMap,
              c = l.overallTask
            if (c) {
              var h,
                d = c.agentStubMap
              d.each(function (t) {
                a(i, t) && (t.dirty(), (h = !0))
              }),
                h && c.dirty(),
                o.updatePayload(c, n)
              var p = o.getPerformArgs(c, i.block)
              d.each(function (t) {
                t.perform(p)
              }),
                c.perform(p) && (r = !0)
            } else
              u &&
                u.each(function (s, l) {
                  a(i, s) && s.dirty()
                  var u = o.getPerformArgs(s, i.block)
                  ;(u.skip = !t.performRawSeries && e.isSeriesFiltered(s.context.model)), o.updatePayload(s, n), s.perform(u) && (r = !0)
                })
          }
        }),
          (this.unfinished = r || this.unfinished)
      }),
      (t.prototype.performSeriesTasks = function (t) {
        var e
        t.eachSeries(function (t) {
          e = t.dataTask.perform() || e
        }),
          (this.unfinished = e || this.unfinished)
      }),
      (t.prototype.plan = function () {
        this._pipelineMap.each(function (t) {
          var e = t.tail
          do {
            if (e.__block) {
              t.blockIndex = e.__idxInPipeline
              break
            }
            e = e.getUpstream()
          } while (e)
        })
      }),
      (t.prototype.updatePayload = function (t, e) {
        'remain' !== e && (t.context.payload = e)
      }),
      (t.prototype._createSeriesStageTask = function (t, e, n, i) {
        var r = this,
          o = e.seriesTaskMap,
          a = (e.seriesTaskMap = yt()),
          s = t.seriesType,
          l = t.getTargetSeries
        function u(e) {
          var s = e.uid,
            l = a.set(s, (o && o.get(s)) || Hg({ plan: Cv, reset: Dv, count: Lv }))
          ;(l.context = { model: e, ecModel: n, api: i, useClearVisual: t.isVisual && !t.isLayout, plan: t.plan, reset: t.reset, scheduler: r }), r._pipe(e, l)
        }
        t.createOnAllSeries ? n.eachRawSeries(u) : s ? n.eachRawSeriesByType(s, u) : l && l(n, i).each(u)
      }),
      (t.prototype._createOverallStageTask = function (t, e, n, i) {
        var r = this,
          o = (e.overallTask = e.overallTask || Hg({ reset: Sv }))
        o.context = { ecModel: n, api: i, overallReset: t.overallReset, scheduler: r }
        var a = o.agentStubMap,
          s = (o.agentStubMap = yt()),
          l = t.seriesType,
          u = t.getTargetSeries,
          c = !0,
          h = !1,
          d = ''
        function p(t) {
          var e = t.uid,
            n = s.set(e, (a && a.get(e)) || ((h = !0), Hg({ reset: Mv, onDirty: Tv })))
          ;(n.context = { model: t, overallProgress: c }), (n.agent = o), (n.__block = c), r._pipe(t, n)
        }
        lt(!t.createOnAllSeries, d), l ? n.eachRawSeriesByType(l, p) : u ? u(n, i).each(p) : ((c = !1), z(n.getSeries(), p)), h && o.dirty()
      }),
      (t.prototype._pipe = function (t, e) {
        var n = t.uid,
          i = this._pipelineMap.get(n)
        !i.head && (i.head = e), i.tail && i.tail.pipe(e), (i.tail = e), (e.__idxInPipeline = i.count++), (e.__pipeline = i)
      }),
      (t.wrapStageHandler = function (t, e) {
        return Y(t) && (t = { overallReset: t, seriesType: Pv(t) }), (t.uid = Md('stageHandler')), e && (t.visualType = e), t
      }),
      t
    )
  })()
  function Sv(t) {
    t.overallReset(t.ecModel, t.api, t.payload)
  }
  function Mv(t) {
    return t.overallProgress && Iv
  }
  function Iv() {
    this.agent.dirty(), this.getDownstream().dirty()
  }
  function Tv() {
    this.agent && this.agent.dirty()
  }
  function Cv(t) {
    return t.plan ? t.plan(t.model, t.ecModel, t.api, t.payload) : null
  }
  function Dv(t) {
    t.useClearVisual && t.data.clearAllVisual()
    var e = (t.resetDefines = qo(t.reset(t.model, t.ecModel, t.api, t.payload)))
    return e.length > 1
      ? E(e, function (t, e) {
          return kv(e)
        })
      : Av
  }
  var Av = kv(0)
  function kv(t) {
    return function (e, n) {
      var i = n.data,
        r = n.resetDefines[t]
      if (r && r.dataEach) for (var o = e.start; o < e.end; o++) r.dataEach(i, o)
      else r && r.progress && r.progress(e, i)
    }
  }
  function Lv(t) {
    return t.data.count()
  }
  function Pv(t) {
    Ov = null
    try {
      t(Rv, Nv)
    } catch (t) {}
    return Ov
  }
  var Ov,
    Rv = {},
    Nv = {}
  function zv(t, e) {
    for (var n in e.prototype) t[n] = bt
  }
  zv(Rv, Bf),
    zv(Nv, Hf),
    (Rv.eachSeriesByType = Rv.eachRawSeriesByType =
      function (t) {
        Ov = t
      }),
    (Rv.eachComponent = function (t) {
      'series' === t.mainType && t.subType && (Ov = t.subType)
    })
  var Ev,
    Bv = tf.darkColor,
    Vv = Bv.background,
    Gv = function () {
      return {
        axisLine: { lineStyle: { color: Bv.axisLine } },
        splitLine: { lineStyle: { color: Bv.axisSplitLine } },
        splitArea: { areaStyle: { color: [Bv.backgroundTint, Bv.backgroundTransparent] } },
        minorSplitLine: { lineStyle: { color: Bv.axisMinorSplitLine } },
        axisLabel: { color: Bv.axisLabel },
        axisName: {}
      }
    },
    Fv = { label: { color: Bv.secondary }, itemStyle: { borderColor: Bv.borderTint }, dividerLineStyle: { color: Bv.border } },
    Wv = {
      darkMode: !0,
      color: Bv.theme,
      backgroundColor: Vv,
      axisPointer: { lineStyle: { color: Bv.border }, crossStyle: { color: Bv.borderShade }, label: { color: Bv.tertiary } },
      legend: { textStyle: { color: Bv.secondary }, pageTextStyle: { color: Bv.tertiary } },
      textStyle: { color: Bv.secondary },
      title: { textStyle: { color: Bv.primary }, subtextStyle: { color: Bv.quaternary } },
      toolbox: { iconStyle: { borderColor: Bv.accent50 } },
      tooltip: { backgroundColor: Bv.neutral20, defaultBorderColor: Bv.border, textStyle: { color: Bv.tertiary } },
      dataZoom: {
        borderColor: Bv.accent10,
        textStyle: { color: Bv.tertiary },
        brushStyle: { color: Bv.backgroundTint },
        handleStyle: { color: Bv.neutral00, borderColor: Bv.accent20 },
        moveHandleStyle: { color: Bv.accent40 },
        emphasis: { handleStyle: { borderColor: Bv.accent50 } },
        dataBackground: { lineStyle: { color: Bv.accent30 }, areaStyle: { color: Bv.accent20 } },
        selectedDataBackground: { lineStyle: { color: Bv.accent50 }, areaStyle: { color: Bv.accent30 } }
      },
      visualMap: { textStyle: { color: Bv.secondary }, handleStyle: { borderColor: Bv.neutral30 } },
      timeline: { lineStyle: { color: Bv.accent10 }, label: { color: Bv.tertiary }, controlStyle: { color: Bv.accent30, borderColor: Bv.accent30 } },
      calendar: {
        itemStyle: { color: Bv.neutral00, borderColor: Bv.neutral20 },
        dayLabel: { color: Bv.tertiary },
        monthLabel: { color: Bv.secondary },
        yearLabel: { color: Bv.secondary }
      },
      matrix: { x: Fv, y: Fv, backgroundColor: { borderColor: Bv.axisLine }, body: { itemStyle: { borderColor: Bv.borderTint } } },
      timeAxis: Gv(),
      logAxis: Gv(),
      valueAxis: Gv(),
      categoryAxis: Gv(),
      line: { symbol: 'circle' },
      graph: { color: Bv.theme },
      gauge: { title: { color: Bv.secondary }, axisLine: { lineStyle: { color: [[1, Bv.neutral05]] } }, axisLabel: { color: Bv.axisLabel }, detail: { color: Bv.primary } },
      candlestick: { itemStyle: { color: '#f64e56', color0: '#54ea92', borderColor: '#f64e56', borderColor0: '#54ea92' } },
      funnel: { itemStyle: { borderColor: Bv.background } },
      radar: ((Ev = Gv()), (Ev.axisName = { color: Bv.axisLabel }), (Ev.axisLine.lineStyle.color = Bv.neutral20), Ev),
      treemap: { breadcrumb: { itemStyle: { color: Bv.neutral20, textStyle: { color: Bv.secondary } }, emphasis: { itemStyle: { color: Bv.neutral30 } } } },
      sunburst: { itemStyle: { borderColor: Bv.background } },
      map: {
        itemStyle: { borderColor: Bv.border, areaColor: Bv.neutral10 },
        label: { color: Bv.tertiary },
        emphasis: { label: { color: Bv.primary }, itemStyle: { areaColor: Bv.highlight } },
        select: { label: { color: Bv.primary }, itemStyle: { areaColor: Bv.highlight } }
      },
      geo: {
        itemStyle: { borderColor: Bv.border, areaColor: Bv.neutral10 },
        emphasis: { label: { color: Bv.primary }, itemStyle: { areaColor: Bv.highlight } },
        select: { label: { color: Bv.primary }, itemStyle: { color: Bv.highlight } }
      }
    }
  Wv.categoryAxis.splitLine.show = !1
  var Hv = (function () {
      function t() {}
      return (
        (t.prototype.normalizeQuery = function (t) {
          var e = {},
            n = {},
            i = {}
          if (X(t)) {
            var r = ba(t)
            ;(e.mainType = r.main || null), (e.subType = r.sub || null)
          } else {
            var o = ['Index', 'Name', 'Id'],
              a = { name: 1, dataIndex: 1, dataType: 1 }
            z(t, function (t, r) {
              for (var s = !1, l = 0; l < o.length; l++) {
                var u = o[l],
                  c = r.lastIndexOf(u)
                if (c > 0 && c === r.length - u.length) {
                  var h = r.slice(0, c)
                  'data' !== h && ((e.mainType = h), (e[u.toLowerCase()] = t), (s = !0))
                }
              }
              a.hasOwnProperty(r) && ((n[r] = t), (s = !0)), s || (i[r] = t)
            })
          }
          return { cptQuery: e, dataQuery: n, otherQuery: i }
        }),
        (t.prototype.filter = function (t, e) {
          var n = this.eventInfo
          if (!n) return !0
          var i = n.targetEl,
            r = n.packedEvent,
            o = n.model,
            a = n.view
          if (!o || !a) return !0
          var s = e.cptQuery,
            l = e.dataQuery
          return (
            u(s, o, 'mainType') &&
            u(s, o, 'subType') &&
            u(s, o, 'index', 'componentIndex') &&
            u(s, o, 'name') &&
            u(s, o, 'id') &&
            u(l, r, 'name') &&
            u(l, r, 'dataIndex') &&
            u(l, r, 'dataType') &&
            (!a.filterForExposedEvent || a.filterForExposedEvent(t, e.otherQuery, i, r))
          )
          function u(t, e, n, i) {
            return null == t[n] || e[i || n] === t[n]
          }
        }),
        (t.prototype.afterTrigger = function () {
          this.eventInfo = null
        }),
        t
      )
    })(),
    Uv = ['symbol', 'symbolSize', 'symbolRotate', 'symbolOffset'],
    Yv = Uv.concat(['symbolKeepAspect']),
    Xv = {
      createOnAllSeries: !0,
      performRawSeries: !0,
      reset: function (t, e) {
        var n = t.getData()
        if ((t.legendIcon && n.setVisual('legendIcon', t.legendIcon), t.hasSymbolVisual)) {
          for (var i = {}, r = {}, o = !1, a = 0; a < Uv.length; a++) {
            var s = Uv[a],
              l = t.get(s)
            Y(l) ? ((o = !0), (r[s] = l)) : (i[s] = l)
          }
          if (
            ((i.symbol = i.symbol || t.defaultSymbol),
            n.setVisual(A({ legendIcon: t.legendIcon || i.symbol, symbolKeepAspect: t.get('symbolKeepAspect') }, i)),
            !e.isSeriesFiltered(t))
          ) {
            var u = F(r)
            return {
              dataEach: o
                ? function (e, n) {
                    for (var i = t.getRawValue(n), o = t.getDataParams(n), a = 0; a < u.length; a++) {
                      var s = u[a]
                      e.setItemVisual(n, s, r[s](i, o))
                    }
                  }
                : null
            }
          }
        }
      }
    },
    Zv = {
      createOnAllSeries: !0,
      performRawSeries: !0,
      reset: function (t, e) {
        if (t.hasSymbolVisual && !e.isSeriesFiltered(t))
          return {
            dataEach: t.getData().hasItemOption
              ? function (t, e) {
                  for (var n = t.getItemModel(e), i = 0; i < Yv.length; i++) {
                    var r = Yv[i],
                      o = n.getShallow(r, !0)
                    null != o && t.setItemVisual(e, r, o)
                  }
                }
              : null
          }
      }
    }
  function jv(t, e, n) {
    switch (n) {
      case 'color':
        return t.getItemVisual(e, 'style')[t.getVisual('drawType')]
      case 'opacity':
        return t.getItemVisual(e, 'style').opacity
      case 'symbol':
      case 'symbolSize':
      case 'liftZ':
        return t.getItemVisual(e, n)
    }
  }
  function qv(t, e) {
    switch (e) {
      case 'color':
        return t.getVisual('style')[t.getVisual('drawType')]
      case 'opacity':
        return t.getVisual('style').opacity
      case 'symbol':
      case 'symbolSize':
      case 'liftZ':
        return t.getVisual(e)
    }
  }
  function Kv(t, e, n, i) {
    switch (n) {
      case 'color':
        ;(t.ensureUniqueItemVisual(e, 'style')[t.getVisual('drawType')] = i), t.setItemVisual(e, 'colorFromPalette', !1)
        break
      case 'opacity':
        t.ensureUniqueItemVisual(e, 'style').opacity = i
        break
      case 'symbol':
      case 'symbolSize':
      case 'liftZ':
        t.setItemVisual(e, n, i)
    }
  }
  function $v(t, e) {
    function n(e, n) {
      var i = []
      return (
        e.eachComponent({ mainType: 'series', subType: t, query: n }, function (t) {
          i.push(t.seriesIndex)
        }),
        i
      )
    }
    z(
      [
        [t + 'ToggleSelect', 'toggleSelect'],
        [t + 'Select', 'select'],
        [t + 'UnSelect', 'unselect']
      ],
      function (t) {
        e(t[0], function (e, i, r) {
          ;(e = A({}, e)), r.dispatchAction(A(e, { type: t[1], seriesIndex: n(i, e) }))
        })
      }
    )
  }
  function Jv(t, e, n, i, r) {
    var o = t + e
    n.isSilent(o) ||
      i.eachComponent({ mainType: 'series', subType: 'pie' }, function (t) {
        for (var e = t.seriesIndex, i = t.option.selectedMap, a = r.selected, s = 0; s < a.length; s++)
          if (a[s].seriesIndex === e) {
            var l = t.getData(),
              u = aa(l, r.fromActionPayload)
            n.trigger(o, { type: o, seriesId: t.id, name: U(u) ? l.getName(u[0]) : l.getName(u), selected: X(i) ? i : A({}, i) })
          }
      })
  }
  function Qv(t, e, n) {
    for (var i; t && (!e(t) || ((i = t), !n)); ) t = t.__hostTarget || t.parent
    return i
  }
  var tm = Math.round(9 * Math.random()),
    em = 'function' == typeof Object.defineProperty,
    nm = (function () {
      function t() {
        this._id = '__ec_inner_' + tm++
      }
      return (
        (t.prototype.get = function (t) {
          return this._guard(t)[this._id]
        }),
        (t.prototype.set = function (t, e) {
          var n = this._guard(t)
          return em ? Object.defineProperty(n, this._id, { value: e, enumerable: !1, configurable: !0 }) : (n[this._id] = e), this
        }),
        (t.prototype.delete = function (t) {
          return !!this.has(t) && (delete this._guard(t)[this._id], !0)
        }),
        (t.prototype.has = function (t) {
          return !!this._guard(t)[this._id]
        }),
        (t.prototype._guard = function (t) {
          if (t !== Object(t)) throw TypeError('Value of WeakMap is not a non-null object.')
          return t
        }),
        t
      )
    })(),
    im = sl.extend({
      type: 'triangle',
      shape: { cx: 0, cy: 0, width: 0, height: 0 },
      buildPath: function (t, e) {
        var n = e.cx,
          i = e.cy,
          r = e.width / 2,
          o = e.height / 2
        t.moveTo(n, i - o), t.lineTo(n + r, i + o), t.lineTo(n - r, i + o), t.closePath()
      }
    }),
    rm = sl.extend({
      type: 'diamond',
      shape: { cx: 0, cy: 0, width: 0, height: 0 },
      buildPath: function (t, e) {
        var n = e.cx,
          i = e.cy,
          r = e.width / 2,
          o = e.height / 2
        t.moveTo(n, i - o), t.lineTo(n + r, i), t.lineTo(n, i + o), t.lineTo(n - r, i), t.closePath()
      }
    }),
    om = sl.extend({
      type: 'pin',
      shape: { x: 0, y: 0, width: 0, height: 0 },
      buildPath: function (t, e) {
        var n = e.x,
          i = e.y,
          r = (e.width / 5) * 3,
          o = Math.max(r, e.height),
          a = r / 2,
          s = (a * a) / (o - a),
          l = i - o + a + s,
          u = Math.asin(s / a),
          c = Math.cos(u) * a,
          h = Math.sin(u),
          d = Math.cos(u),
          p = 0.6 * a,
          f = 0.7 * a
        t.moveTo(n - c, l + s),
          t.arc(n, l, a, Math.PI - u, 2 * Math.PI + u),
          t.bezierCurveTo(n + c - h * p, l + s + d * p, n, i - f, n, i),
          t.bezierCurveTo(n, i - f, n - c + h * p, l + s + d * p, n - c, l + s),
          t.closePath()
      }
    }),
    am = sl.extend({
      type: 'arrow',
      shape: { x: 0, y: 0, width: 0, height: 0 },
      buildPath: function (t, e) {
        var n = e.height,
          i = e.width,
          r = e.x,
          o = e.y,
          a = (i / 3) * 2
        t.moveTo(r, o), t.lineTo(r + a, o + n), t.lineTo(r, o + (n / 4) * 3), t.lineTo(r - a, o + n), t.lineTo(r, o), t.closePath()
      }
    }),
    sm = {
      line: function (t, e, n, i, r) {
        ;(r.x1 = t), (r.y1 = e + i / 2), (r.x2 = t + n), (r.y2 = e + i / 2)
      },
      rect: function (t, e, n, i, r) {
        ;(r.x = t), (r.y = e), (r.width = n), (r.height = i)
      },
      roundRect: function (t, e, n, i, r) {
        ;(r.x = t), (r.y = e), (r.width = n), (r.height = i), (r.r = Math.min(n, i) / 4)
      },
      square: function (t, e, n, i, r) {
        var o = Math.min(n, i)
        ;(r.x = t), (r.y = e), (r.width = o), (r.height = o)
      },
      circle: function (t, e, n, i, r) {
        ;(r.cx = t + n / 2), (r.cy = e + i / 2), (r.r = Math.min(n, i) / 2)
      },
      diamond: function (t, e, n, i, r) {
        ;(r.cx = t + n / 2), (r.cy = e + i / 2), (r.width = n), (r.height = i)
      },
      pin: function (t, e, n, i, r) {
        ;(r.x = t + n / 2), (r.y = e + i / 2), (r.width = n), (r.height = i)
      },
      arrow: function (t, e, n, i, r) {
        ;(r.x = t + n / 2), (r.y = e + i / 2), (r.width = n), (r.height = i)
      },
      triangle: function (t, e, n, i, r) {
        ;(r.cx = t + n / 2), (r.cy = e + i / 2), (r.width = n), (r.height = i)
      }
    },
    lm = {}
  z({ line: Ac, rect: xl, roundRect: xl, square: xl, circle: nc, diamond: rm, pin: om, arrow: am, triangle: im }, function (t, e) {
    lm[e] = new t()
  })
  var um = sl.extend({
    type: 'symbol',
    shape: { symbolType: '', x: 0, y: 0, width: 0, height: 0 },
    calculateTextPosition: function (t, e, n) {
      var i = Wr(t, e, n),
        r = this.shape
      return r && 'pin' === r.symbolType && 'inside' === e.position && (i.y = n.y + 0.4 * n.height), i
    },
    buildPath: function (t, e, n) {
      var i = e.symbolType
      if ('none' !== i) {
        var r = lm[i]
        r || (r = lm[(i = 'rect')]), sm[i](e.x, e.y, e.width, e.height, r.shape), r.buildPath(t, r.shape, n)
      }
    }
  })
  function cm(t, e) {
    if ('image' !== this.type) {
      var n = this.style
      this.__isEmptyBrush ? ((n.stroke = t), (n.fill = e || tf.color.neutral00), (n.lineWidth = 2)) : 'line' === this.shape.symbolType ? (n.stroke = t) : (n.fill = t),
        this.markRedraw()
    }
  }
  function hm(t, e, n, i, r, o, a) {
    var s,
      l = 0 === t.indexOf('empty')
    return (
      l && (t = t.substr(5, 1).toLowerCase() + t.substr(6)),
      ((s =
        0 === t.indexOf('image://')
          ? yh(t.slice(8), new He(e, n, i, r), a ? 'center' : 'cover')
          : 0 === t.indexOf('path://')
            ? gh(t.slice(7), {}, new He(e, n, i, r), a ? 'center' : 'cover')
            : new um({ shape: { symbolType: t, x: e, y: n, width: i, height: r } })).__isEmptyBrush = l),
      (s.setColor = cm),
      o && s.setColor(o),
      s
    )
  }
  function dm(t) {
    return U(t) || (t = [+t, +t]), [t[0] || 0, t[1] || 0]
  }
  function pm(t, e) {
    if (null != t) return U(t) || (t = [t, t]), [yo(t[0], e[0]) || 0, yo(rt(t[1], t[0]), e[1]) || 0]
  }
  function fm(t) {
    return isFinite(t)
  }
  function gm(t, e, n) {
    for (
      var i =
          'radial' === e.type
            ? (function (t, e, n) {
                var i = n.width,
                  r = n.height,
                  o = Math.min(i, r),
                  a = null == e.x ? 0.5 : e.x,
                  s = null == e.y ? 0.5 : e.y,
                  l = null == e.r ? 0.5 : e.r
                return (
                  e.global || ((a = a * i + n.x), (s = s * r + n.y), (l *= o)),
                  (a = fm(a) ? a : 0.5),
                  (s = fm(s) ? s : 0.5),
                  (l = l >= 0 && fm(l) ? l : 0.5),
                  t.createRadialGradient(a, s, 0, a, s, l)
                )
              })(t, e, n)
            : (function (t, e, n) {
                var i = null == e.x ? 0 : e.x,
                  r = null == e.x2 ? 1 : e.x2,
                  o = null == e.y ? 0 : e.y,
                  a = null == e.y2 ? 0 : e.y2
                return (
                  e.global || ((i = i * n.width + n.x), (r = r * n.width + n.x), (o = o * n.height + n.y), (a = a * n.height + n.y)),
                  (i = fm(i) ? i : 0),
                  (r = fm(r) ? r : 1),
                  (o = fm(o) ? o : 0),
                  (a = fm(a) ? a : 0),
                  t.createLinearGradient(i, o, r, a)
                )
              })(t, e, n),
        r = e.colorStops,
        o = 0;
      o < r.length;
      o++
    )
      i.addColorStop(r[o].offset, r[o].color)
    return i
  }
  function ym(t) {
    return parseInt(t, 10)
  }
  function vm(t, e, n) {
    var i = ['width', 'height'][e],
      r = ['clientWidth', 'clientHeight'][e],
      o = ['paddingLeft', 'paddingTop'][e],
      a = ['paddingRight', 'paddingBottom'][e]
    if (null != n[i] && 'auto' !== n[i]) return parseFloat(n[i])
    var s = document.defaultView.getComputedStyle(t)
    return ((t[r] || ym(s[i]) || ym(t.style[i])) - (ym(s[o]) || 0) - (ym(s[a]) || 0)) | 0
  }
  function mm(t) {
    var e,
      n,
      i = t.style,
      r =
        i.lineDash &&
        i.lineWidth > 0 &&
        ((e = i.lineDash), (n = i.lineWidth), e && 'solid' !== e && n > 0 ? ('dashed' === e ? [4 * n, 2 * n] : 'dotted' === e ? [n] : j(e) ? [e] : U(e) ? e : null) : null),
      o = i.lineDashOffset
    if (r) {
      var a = i.strokeNoScale && t.getLineScale ? t.getLineScale() : 1
      a &&
        1 !== a &&
        ((r = E(r, function (t) {
          return t / a
        })),
        (o /= a))
    }
    return [r, o]
  }
  var xm = new Fs(!0)
  function _m(t) {
    var e = t.stroke
    return !(null == e || 'none' === e || !(t.lineWidth > 0))
  }
  function bm(t) {
    return 'string' == typeof t && 'none' !== t
  }
  function wm(t) {
    var e = t.fill
    return null != e && 'none' !== e
  }
  function Sm(t, e) {
    if (null != e.fillOpacity && 1 !== e.fillOpacity) {
      var n = t.globalAlpha
      ;(t.globalAlpha = e.fillOpacity * e.opacity), t.fill(), (t.globalAlpha = n)
    } else t.fill()
  }
  function Mm(t, e) {
    if (null != e.strokeOpacity && 1 !== e.strokeOpacity) {
      var n = t.globalAlpha
      ;(t.globalAlpha = e.strokeOpacity * e.opacity), t.stroke(), (t.globalAlpha = n)
    } else t.stroke()
  }
  function Im(t, e, n) {
    var i = Oa(e.image, e.__image, n)
    if (Na(i)) {
      var r = t.createPattern(i, e.repeat || 'repeat')
      if ('function' == typeof DOMMatrix && r && r.setTransform) {
        var o = new DOMMatrix()
        o.translateSelf(e.x || 0, e.y || 0), o.rotateSelf(0, 0, (e.rotation || 0) * wt), o.scaleSelf(e.scaleX || 1, e.scaleY || 1), r.setTransform(o)
      }
      return r
    }
  }
  var Tm = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'],
    Cm = [
      ['lineCap', 'butt'],
      ['lineJoin', 'miter'],
      ['miterLimit', 10]
    ]
  function Dm(t, e, n, i, r) {
    var o = !1
    if (!i && e === (n = n || {})) return !1
    if (i || e.opacity !== n.opacity) {
      Lm(t, r), (o = !0)
      var a = Math.max(Math.min(e.opacity, 1), 0)
      t.globalAlpha = isNaN(a) ? es.opacity : a
    }
    ;(i || e.blend !== n.blend) && (o || (Lm(t, r), (o = !0)), (t.globalCompositeOperation = e.blend || es.blend))
    for (var s = 0; s < Tm.length; s++) {
      var l = Tm[s]
      ;(i || e[l] !== n[l]) && (o || (Lm(t, r), (o = !0)), (t[l] = t.dpr * (e[l] || 0)))
    }
    return (i || e.shadowColor !== n.shadowColor) && (o || (Lm(t, r), (o = !0)), (t.shadowColor = e.shadowColor || es.shadowColor)), o
  }
  function Am(t, e, n, i, r) {
    var o = Pm(e, r.inHover),
      a = i ? null : (n && Pm(n, r.inHover)) || {}
    if (o === a) return !1
    var s = Dm(t, o, a, i, r)
    if (
      ((i || o.fill !== a.fill) && (s || (Lm(t, r), (s = !0)), bm(o.fill) && (t.fillStyle = o.fill)),
      (i || o.stroke !== a.stroke) && (s || (Lm(t, r), (s = !0)), bm(o.stroke) && (t.strokeStyle = o.stroke)),
      (i || o.opacity !== a.opacity) && (s || (Lm(t, r), (s = !0)), (t.globalAlpha = null == o.opacity ? 1 : o.opacity)),
      e.hasStroke())
    ) {
      var l = o.lineWidth / (o.strokeNoScale && e.getLineScale ? e.getLineScale() : 1)
      t.lineWidth !== l && (s || (Lm(t, r), (s = !0)), (t.lineWidth = l))
    }
    for (var u = 0; u < Cm.length; u++) {
      var c = Cm[u],
        h = c[0]
      ;(i || o[h] !== a[h]) && (s || (Lm(t, r), (s = !0)), (t[h] = o[h] || c[1]))
    }
    return s
  }
  function km(t, e) {
    var n = e.transform,
      i = t.dpr || 1
    n ? t.setTransform(i * n[0], i * n[1], i * n[2], i * n[3], i * n[4], i * n[5]) : t.setTransform(i, 0, 0, i, 0, 0)
  }
  function Lm(t, e) {
    e.batchFill && t.fill(), e.batchStroke && t.stroke(), (e.batchFill = ''), (e.batchStroke = '')
  }
  function Pm(t, e) {
    return (e && t.__hoverStyle) || t.style
  }
  function Om(t, e) {
    Rm(t, e, { inHover: !1, viewWidth: 0, viewHeight: 0 }, !0)
  }
  function Rm(t, e, n, i) {
    var r = e.transform
    if (!e.shouldBePainted(n.viewWidth, n.viewHeight, !1, !1)) return (e.__dirty &= -2), void (e.__isRendered = !1)
    var o = e.__clipPaths,
      s = n.prevElClipPaths,
      l = !1,
      u = !1
    if (
      ((s &&
        !(function (t, e) {
          if (t === e || (!t && !e)) return !1
          if (!t || !e || t.length !== e.length) return !0
          for (var n = 0; n < t.length; n++) if (t[n] !== e[n]) return !0
          return !1
        })(o, s)) ||
        (s && s.length && (Lm(t, n), t.restore(), (u = l = !0), (n.prevElClipPaths = null), (n.allClipped = !1), (n.prevEl = null)),
        o &&
          o.length &&
          (Lm(t, n),
          t.save(),
          (function (t, e, n) {
            for (var i = !1, r = 0; r < t.length; r++) {
              var o = t[r]
              ;(i = i || o.isZeroArea()), km(e, o), e.beginPath(), o.buildPath(e, o.shape), e.clip()
            }
            n.allClipped = i
          })(o, t, n),
          (l = !0)),
        (n.prevElClipPaths = o)),
      n.allClipped)
    )
      e.__isRendered = !1
    else {
      e.beforeBrush && e.beforeBrush(), e.innerBeforeBrush()
      var c = n.prevEl
      c || (u = l = !0)
      var h,
        d,
        p =
          e instanceof sl &&
          e.autoBatch &&
          (function (t) {
            var e = wm(t),
              n = _m(t)
            return !(
              t.lineDash ||
              !(+e ^ +n) ||
              (e && 'string' != typeof t.fill) ||
              (n && 'string' != typeof t.stroke) ||
              t.strokePercent < 1 ||
              t.strokeOpacity < 1 ||
              t.fillOpacity < 1
            )
          })(e.style)
      l || ((h = r), (d = c.transform), h && d ? h[0] !== d[0] || h[1] !== d[1] || h[2] !== d[2] || h[3] !== d[3] || h[4] !== d[4] || h[5] !== d[5] : h || d)
        ? (Lm(t, n), km(t, e))
        : p || Lm(t, n)
      var f = Pm(e, n.inHover)
      e instanceof sl
        ? (1 !== n.lastDrawType && ((u = !0), (n.lastDrawType = 1)),
          Am(t, e, c, u, n),
          (p && (n.batchFill || n.batchStroke)) || t.beginPath(),
          (function (t, e, n, i) {
            var r,
              o = _m(n),
              a = wm(n),
              s = n.strokePercent,
              l = s < 1,
              u = !e.path
            ;(e.silent && !l) || !u || e.createPathProxy()
            var c = e.path || xm,
              h = e.__dirty
            if (!i) {
              var d = n.fill,
                p = n.stroke,
                f = a && !!d.colorStops,
                g = o && !!p.colorStops,
                y = a && !!d.image,
                v = o && !!p.image,
                m = void 0,
                x = void 0,
                _ = void 0,
                b = void 0,
                w = void 0
              ;(f || g) && (w = e.getBoundingRect()),
                f && ((m = h ? gm(t, d, w) : e.__canvasFillGradient), (e.__canvasFillGradient = m)),
                g && ((x = h ? gm(t, p, w) : e.__canvasStrokeGradient), (e.__canvasStrokeGradient = x)),
                y && ((_ = h || !e.__canvasFillPattern ? Im(t, d, e) : e.__canvasFillPattern), (e.__canvasFillPattern = _)),
                v && ((b = h || !e.__canvasStrokePattern ? Im(t, p, e) : e.__canvasStrokePattern), (e.__canvasStrokePattern = b)),
                f ? (t.fillStyle = m) : y && (_ ? (t.fillStyle = _) : (a = !1)),
                g ? (t.strokeStyle = x) : v && (b ? (t.strokeStyle = b) : (o = !1))
            }
            var S,
              M,
              I = e.getGlobalScale()
            c.setScale(I[0], I[1], e.segmentIgnoreThreshold), t.setLineDash && n.lineDash && ((S = (r = mm(e))[0]), (M = r[1]))
            var T = !0
            ;(u || 4 & h) && (c.setDPR(t.dpr), l ? c.setContext(null) : (c.setContext(t), (T = !1)), c.reset(), e.buildPath(c, e.shape, i), c.toStatic(), e.pathUpdated()),
              T && c.rebuildPath(t, l ? s : 1),
              S && (t.setLineDash(S), (t.lineDashOffset = M)),
              i || (n.strokeFirst ? (o && Mm(t, n), a && Sm(t, n)) : (a && Sm(t, n), o && Mm(t, n))),
              S && t.setLineDash([])
          })(t, e, f, p),
          p && ((n.batchFill = f.fill || ''), (n.batchStroke = f.stroke || '')))
        : e instanceof ul
          ? (3 !== n.lastDrawType && ((u = !0), (n.lastDrawType = 3)),
            Am(t, e, c, u, n),
            (function (t, e, n) {
              var i,
                r = n.text
              if ((null != r && (r += ''), r)) {
                ;(t.font = n.font || a), (t.textAlign = n.textAlign), (t.textBaseline = n.textBaseline)
                var o = void 0,
                  s = void 0
                t.setLineDash && n.lineDash && ((o = (i = mm(e))[0]), (s = i[1])),
                  o && (t.setLineDash(o), (t.lineDashOffset = s)),
                  n.strokeFirst ? (_m(n) && t.strokeText(r, n.x, n.y), wm(n) && t.fillText(r, n.x, n.y)) : (wm(n) && t.fillText(r, n.x, n.y), _m(n) && t.strokeText(r, n.x, n.y)),
                  o && t.setLineDash([])
              }
            })(t, e, f))
          : e instanceof dl
            ? (2 !== n.lastDrawType && ((u = !0), (n.lastDrawType = 2)),
              (function (t, e, n, i, r) {
                Dm(t, Pm(e, r.inHover), n && Pm(n, r.inHover), i, r)
              })(t, e, c, u, n),
              (function (t, e, n) {
                var i = (e.__image = Oa(n.image, e.__image, e, e.onload))
                if (i && Na(i)) {
                  var r = n.x || 0,
                    o = n.y || 0,
                    a = e.getWidth(),
                    s = e.getHeight(),
                    l = i.width / i.height
                  if (
                    (null == a && null != s ? (a = s * l) : null == s && null != a ? (s = a / l) : null == a && null == s && ((a = i.width), (s = i.height)), n.sWidth && n.sHeight)
                  ) {
                    var u = n.sx || 0,
                      c = n.sy || 0
                    t.drawImage(i, u, c, n.sWidth, n.sHeight, r, o, a, s)
                  } else if (n.sx && n.sy) {
                    var h = a - (u = n.sx),
                      d = s - (c = n.sy)
                    t.drawImage(i, u, c, h, d, r, o, a, s)
                  } else t.drawImage(i, r, o, a, s)
                }
              })(t, e, f))
            : e.getTemporalDisplayables &&
              (4 !== n.lastDrawType && ((u = !0), (n.lastDrawType = 4)),
              (function (t, e, n) {
                var i = e.getDisplayables(),
                  r = e.getTemporalDisplayables()
                t.save()
                var o,
                  a,
                  s = { prevElClipPaths: null, prevEl: null, allClipped: !1, viewWidth: n.viewWidth, viewHeight: n.viewHeight, inHover: n.inHover }
                for (o = e.getCursor(), a = i.length; o < a; o++) {
                  ;(c = i[o]).beforeBrush && c.beforeBrush(), c.innerBeforeBrush(), Rm(t, c, s, o === a - 1), c.innerAfterBrush(), c.afterBrush && c.afterBrush(), (s.prevEl = c)
                }
                for (var l = 0, u = r.length; l < u; l++) {
                  var c
                  ;(c = r[l]).beforeBrush && c.beforeBrush(), c.innerBeforeBrush(), Rm(t, c, s, l === u - 1), c.innerAfterBrush(), c.afterBrush && c.afterBrush(), (s.prevEl = c)
                }
                e.clearTemporalDisplayables(), (e.notClear = !0), t.restore()
              })(t, e, n)),
        p && i && Lm(t, n),
        e.innerAfterBrush(),
        e.afterBrush && e.afterBrush(),
        (n.prevEl = e),
        (e.__dirty = 0),
        (e.__isRendered = !0)
    }
  }
  var Nm = new nm(),
    zm = new Xn(100),
    Em = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight']
  function Bm(t, e) {
    if ('none' === t) return null
    var n = e.getDevicePixelRatio(),
      i = e.getZr(),
      r = 'svg' === i.painter.type
    t.dirty && Nm.delete(t)
    var o = Nm.get(t)
    if (o) return o
    var a = k(t, {
      symbol: 'rect',
      symbolSize: 1,
      symbolKeepAspect: !0,
      color: 'rgba(0, 0, 0, 0.2)',
      backgroundColor: null,
      dashArrayX: 5,
      dashArrayY: 5,
      rotation: 0,
      maxTileWidth: 512,
      maxTileHeight: 512
    })
    'none' === a.backgroundColor && (a.backgroundColor = null)
    var s = { repeat: 'repeat' }
    return (
      (function (t) {
        for (var e, o = [n], s = !0, l = 0; l < Em.length; ++l) {
          var u = a[Em[l]]
          if (null != u && !U(u) && !X(u) && !j(u) && 'boolean' != typeof u) {
            s = !1
            break
          }
          o.push(u)
        }
        if (s) {
          e = o.join(',') + (r ? '-svg' : '')
          var h = zm.get(e)
          h && (r ? (t.svgElement = h) : (t.image = h))
        }
        var d,
          p = Gm(a.dashArrayX),
          f = (function (t) {
            if (!t || ('object' == typeof t && 0 === t.length)) return [0, 0]
            if (j(t)) {
              var e = Math.ceil(t)
              return [e, e]
            }
            var n = E(t, function (t) {
              return Math.ceil(t)
            })
            return t.length % 2 ? n.concat(n) : n
          })(a.dashArrayY),
          g = Vm(a.symbol),
          y =
            ((b = p),
            E(b, function (t) {
              return Fm(t)
            })),
          v = Fm(f),
          m = !r && c.createCanvas(),
          x = r && { tag: 'g', attrs: {}, key: 'dcl', children: [] },
          _ = (function () {
            for (var t = 1, e = 0, n = y.length; e < n; ++e) t = Vo(t, y[e])
            var i = 1
            for (e = 0, n = g.length; e < n; ++e) i = Vo(i, g[e].length)
            t *= i
            var r = v * y.length * g.length
            return { width: Math.max(1, Math.min(t, a.maxTileWidth)), height: Math.max(1, Math.min(r, a.maxTileHeight)) }
          })()
        var b
        m && ((m.width = _.width * n), (m.height = _.height * n), (d = m.getContext('2d')))
        ;(function () {
          d && (d.clearRect(0, 0, m.width, m.height), a.backgroundColor && ((d.fillStyle = a.backgroundColor), d.fillRect(0, 0, m.width, m.height)))
          for (var t = 0, e = 0; e < f.length; ++e) t += f[e]
          if (t <= 0) return
          var o = -v,
            s = 0,
            l = 0,
            u = 0
          for (; o < _.height; ) {
            if (s % 2 == 0) {
              for (var c = (l / 2) % g.length, h = 0, y = 0, b = 0; h < 2 * _.width; ) {
                var w = 0
                for (e = 0; e < p[u].length; ++e) w += p[u][e]
                if (w <= 0) break
                if (y % 2 == 0) {
                  var S = 0.5 * (1 - a.symbolSize),
                    M = h + p[u][y] * S,
                    I = o + f[s] * S,
                    T = p[u][y] * a.symbolSize,
                    C = f[s] * a.symbolSize,
                    D = (b / 2) % g[c].length
                  A(M, I, T, C, g[c][D])
                }
                ;(h += p[u][y]), ++b, ++y === p[u].length && (y = 0)
              }
              ++u === p.length && (u = 0)
            }
            ;(o += f[s]), ++l, ++s === f.length && (s = 0)
          }
          function A(t, e, o, s, l) {
            var u = r ? 1 : n,
              c = hm(l, t * u, e * u, o * u, s * u, a.color, a.symbolKeepAspect)
            if (r) {
              var h = i.painter.renderOneToVNode(c)
              h && x.children.push(h)
            } else Om(d, c)
          }
        })(),
          s && zm.put(e, m || x)
        ;(t.image = m), (t.svgElement = x), (t.svgWidth = _.width), (t.svgHeight = _.height)
      })(s),
      (s.rotation = a.rotation),
      (s.scaleX = s.scaleY = r ? 1 : 1 / n),
      Nm.set(t, s),
      (t.dirty = !1),
      s
    )
  }
  function Vm(t) {
    if (!t || 0 === t.length) return [['rect']]
    if (X(t)) return [[t]]
    for (var e = !0, n = 0; n < t.length; ++n)
      if (!X(t[n])) {
        e = !1
        break
      }
    if (e) return Vm([t])
    var i = []
    for (n = 0; n < t.length; ++n) X(t[n]) ? i.push([t[n]]) : i.push(t[n])
    return i
  }
  function Gm(t) {
    if (!t || 0 === t.length) return [[0, 0]]
    if (j(t)) return [[(r = Math.ceil(t)), r]]
    for (var e = !0, n = 0; n < t.length; ++n)
      if (!j(t[n])) {
        e = !1
        break
      }
    if (e) return Gm([t])
    var i = []
    for (n = 0; n < t.length; ++n)
      if (j(t[n])) {
        var r = Math.ceil(t[n])
        i.push([r, r])
      } else {
        ;(r = E(t[n], function (t) {
          return Math.ceil(t)
        })).length %
          2 ==
        1
          ? i.push(r.concat(r))
          : i.push(r)
      }
    return i
  }
  function Fm(t) {
    for (var e = 0, n = 0; n < t.length; ++n) e += t[n]
    return t.length % 2 == 1 ? 2 * e : e
  }
  var Wm = new qt(),
    Hm = {}
  function Um(t) {
    return Hm[t]
  }
  var Ym = {}
  function Xm(t, e) {
    Ym[t] = e
  }
  var Zm = 2e3,
    jm = 4500,
    qm = {
      PROCESSOR: { FILTER: 1e3, SERIES_FILTER: 800, STATISTIC: 5e3 },
      VISUAL: { LAYOUT: 1e3, PROGRESSIVE_LAYOUT: 1100, GLOBAL: Zm, CHART: 3e3, POST_CHART_LAYOUT: 4600, COMPONENT: 4e3, BRUSH: 5e3, CHART_ITEM: jm, ARIA: 6e3, DECAL: 7e3 }
    },
    Km = '__flagInMainProcess',
    $m = '__mainProcessVersion',
    Jm = '__pendingUpdate',
    Qm = '__needsUpdateStatus',
    tx = /^[a-zA-Z0-9_]+$/,
    ex = '__connectUpdateStatus'
  function nx(t) {
    return function () {
      for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]
      if (!this.isDisposed()) return rx(this, t, e)
      kx(this.id)
    }
  }
  function ix(t) {
    return function () {
      for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]
      return rx(this, t, e)
    }
  }
  function rx(t, e, n) {
    return (n[0] = n[0] && n[0].toLowerCase()), qt.prototype[e].apply(t, n)
  }
  var ox,
    ax,
    sx,
    lx,
    ux,
    cx,
    hx,
    dx,
    px,
    fx,
    gx,
    yx,
    vx,
    mx,
    xx,
    _x,
    bx,
    Sx,
    Mx,
    Ix = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return n(e, t), e
    })(qt),
    Tx = Ix.prototype
  ;(Tx.on = ix('on')), (Tx.off = ix('off'))
  var Cx = (function (t) {
      function e(e, n, i) {
        var r = t.call(this, new Hv()) || this
        ;(r._chartsViews = []), (r._chartsMap = {}), (r._componentsViews = []), (r._componentsMap = {}), (r._pendingActions = []), (i = i || {}), (r._dom = e)
        var o = 'canvas',
          a = 'auto',
          s = !1
        ;(r[$m] = 1),
          i.ssr &&
            lo(function (t) {
              var e = zl(t),
                n = e.dataIndex
              if (null != n) {
                var i = yt()
                return i.set('series_index', e.seriesIndex), i.set('data_index', n), e.ssrType && i.set('ssr_type', e.ssrType), i
              }
            })
        var l = (r._zr = oo(e, {
          renderer: i.renderer || o,
          devicePixelRatio: i.devicePixelRatio,
          width: i.width,
          height: i.height,
          ssr: i.ssr,
          useDirtyRect: rt(i.useDirtyRect, s),
          useCoarsePointer: rt(i.useCoarsePointer, a),
          pointerSize: i.pointerSize
        }))
        ;(r._ssr = i.ssr),
          (r._throttledZrFlush = uv(W(l.flush, l), 17)),
          r._updateTheme(n),
          (r._locale = (function (t) {
            if (X(t)) {
              var e = Ad[t.toUpperCase()] || {}
              return t === Td || t === Cd ? T(e) : C(T(e), T(Ad[Dd]), !1)
            }
            return C(T(t), T(Ad[Dd]), !1)
          })(i.locale || Ld)),
          (r._coordSysMgr = new Tp())
        var u = (r._api = xx(r))
        function c(t, e) {
          return t.__prio - e.__prio
        }
        return (
          cn(zx, c),
          cn(Rx, c),
          (r._scheduler = new wv(r, u, Rx, zx)),
          (r._messageCenter = new Ix()),
          r._initEvents(),
          (r.resize = W(r.resize, r)),
          l.animation.on('frame', r._onframe, r),
          fx(l, r),
          gx(l, r),
          ht(r),
          r
        )
      }
      return (
        n(e, t),
        (e.prototype._onframe = function () {
          if (!this._disposed) {
            Sx(this)
            var t = this._scheduler
            if (this[Jm]) {
              var e = this[Jm].silent
              ;(this[Km] = !0), Mx(this)
              try {
                ox(this), lx.update.call(this, null, this[Jm].updateParams)
              } catch (t) {
                throw ((this[Km] = !1), (this[Jm] = null), t)
              }
              this._zr.flush(), (this[Km] = !1), (this[Jm] = null), dx.call(this, e), px.call(this, e)
            } else if (t.unfinished) {
              var n = 1,
                i = this._model,
                r = this._api
              t.unfinished = !1
              do {
                var o = +new Date()
                t.performSeriesTasks(i), t.performDataProcessorTasks(i), cx(this, i), t.performVisualTasks(i), mx(this, this._model, r, 'remain', {}), (n -= +new Date() - o)
              } while (n > 0 && t.unfinished)
              t.unfinished || this._zr.flush()
            }
          }
        }),
        (e.prototype.getDom = function () {
          return this._dom
        }),
        (e.prototype.getId = function () {
          return this.id
        }),
        (e.prototype.getZr = function () {
          return this._zr
        }),
        (e.prototype.isSSR = function () {
          return this._ssr
        }),
        (e.prototype.setOption = function (t, e, n) {
          if (!this[Km])
            if (this._disposed) kx(this.id)
            else {
              var i, r, o
              if ((q(e) && ((n = e.lazyUpdate), (i = e.silent), (r = e.replaceMerge), (o = e.transition), (e = e.notMerge)), (this[Km] = !0), Mx(this), !this._model || e)) {
                var a = new Yf(this._api),
                  s = this._theme,
                  l = (this._model = new Bf())
                ;(l.scheduler = this._scheduler), (l.ssr = this._ssr), l.init(null, null, null, s, this._locale, a)
              }
              this._model.setOption(t, { replaceMerge: r }, Nx)
              var u = { seriesTransition: o, optionChanged: !0 }
              if (n) (this[Jm] = { silent: i, updateParams: u }), (this[Km] = !1), this.getZr().wakeUp()
              else {
                try {
                  ox(this), lx.update.call(this, null, u)
                } catch (t) {
                  throw ((this[Jm] = null), (this[Km] = !1), t)
                }
                this._ssr || this._zr.flush(), (this[Jm] = null), (this[Km] = !1), dx.call(this, i), px.call(this, i)
              }
            }
        }),
        (e.prototype.setTheme = function (t, e) {
          if (!this[Km])
            if (this._disposed) kx(this.id)
            else {
              var n = this._model
              if (n) {
                var i = e && e.silent,
                  r = null
                this[Jm] && (null == i && (i = this[Jm].silent), (r = this[Jm].updateParams), (this[Jm] = null)), (this[Km] = !0), Mx(this)
                try {
                  this._updateTheme(t), n.setTheme(this._theme), ox(this), lx.update.call(this, { type: 'setTheme' }, r)
                } catch (t) {
                  throw ((this[Km] = !1), t)
                }
                ;(this[Km] = !1), dx.call(this, i), px.call(this, i)
              }
            }
        }),
        (e.prototype._updateTheme = function (t) {
          X(t) && (t = Ex[t]), t && ((t = T(t)) && dg(t, !0), (this._theme = t))
        }),
        (e.prototype.getModel = function () {
          return this._model
        }),
        (e.prototype.getOption = function () {
          return this._model && this._model.getOption()
        }),
        (e.prototype.getWidth = function () {
          return this._zr.getWidth()
        }),
        (e.prototype.getHeight = function () {
          return this._zr.getHeight()
        }),
        (e.prototype.getDevicePixelRatio = function () {
          return this._zr.painter.dpr || (r.hasGlobalWindow && window.devicePixelRatio) || 1
        }),
        (e.prototype.getRenderedCanvas = function (t) {
          return this.renderToCanvas(t)
        }),
        (e.prototype.renderToCanvas = function (t) {
          t = t || {}
          var e = this._zr.painter
          return e.getRenderedCanvas({ backgroundColor: t.backgroundColor || this._model.get('backgroundColor'), pixelRatio: t.pixelRatio || this.getDevicePixelRatio() })
        }),
        (e.prototype.renderToSVGString = function (t) {
          t = t || {}
          var e = this._zr.painter
          return e.renderToString({ useViewBox: t.useViewBox })
        }),
        (e.prototype.getSvgDataURL = function () {
          var t = this._zr
          return (
            z(t.storage.getDisplayList(), function (t) {
              t.stopAnimation(null, !0)
            }),
            t.painter.toDataURL()
          )
        }),
        (e.prototype.getDataURL = function (t) {
          if (!this._disposed) {
            var e = (t = t || {}).excludeComponents,
              n = this._model,
              i = [],
              r = this
            z(e, function (t) {
              n.eachComponent({ mainType: t }, function (t) {
                var e = r._componentsMap[t.__viewId]
                e.group.ignore || (i.push(e), (e.group.ignore = !0))
              })
            })
            var o = 'svg' === this._zr.painter.getType() ? this.getSvgDataURL() : this.renderToCanvas(t).toDataURL('image/' + ((t && t.type) || 'png'))
            return (
              z(i, function (t) {
                t.group.ignore = !1
              }),
              o
            )
          }
          kx(this.id)
        }),
        (e.prototype.getConnectedDataURL = function (t) {
          if (!this._disposed) {
            var e = 'svg' === t.type,
              n = this.group,
              i = Math.min,
              r = Math.max,
              o = 1 / 0
            if (Gx[n]) {
              var a = o,
                s = o,
                l = -1 / 0,
                u = -1 / 0,
                h = [],
                d = (t && t.pixelRatio) || this.getDevicePixelRatio()
              z(Vx, function (o, c) {
                if (o.group === n) {
                  var d = e ? o.getZr().painter.getSvgDom().innerHTML : o.renderToCanvas(T(t)),
                    p = o.getDom().getBoundingClientRect()
                  ;(a = i(p.left, a)), (s = i(p.top, s)), (l = r(p.right, l)), (u = r(p.bottom, u)), h.push({ dom: d, left: p.left, top: p.top })
                }
              })
              var p = (l *= d) - (a *= d),
                f = (u *= d) - (s *= d),
                g = c.createCanvas(),
                y = oo(g, { renderer: e ? 'svg' : 'canvas' })
              if ((y.resize({ width: p, height: f }), e)) {
                var v = ''
                return (
                  z(h, function (t) {
                    var e = t.left - a,
                      n = t.top - s
                    v += '<g transform="translate(' + e + ',' + n + ')">' + t.dom + '</g>'
                  }),
                  (y.painter.getSvgRoot().innerHTML = v),
                  t.connectedBackgroundColor && y.painter.setBackgroundColor(t.connectedBackgroundColor),
                  y.refreshImmediately(),
                  y.painter.toDataURL()
                )
              }
              return (
                t.connectedBackgroundColor && y.add(new xl({ shape: { x: 0, y: 0, width: p, height: f }, style: { fill: t.connectedBackgroundColor } })),
                z(h, function (t) {
                  var e = new dl({ style: { x: t.left * d - a, y: t.top * d - s, image: t.dom } })
                  y.add(e)
                }),
                y.refreshImmediately(),
                g.toDataURL('image/' + ((t && t.type) || 'png'))
              )
            }
            return this.getDataURL(t)
          }
          kx(this.id)
        }),
        (e.prototype.convertToPixel = function (t, e, n) {
          return ux(this, 'convertToPixel', t, e, n)
        }),
        (e.prototype.convertToLayout = function (t, e, n) {
          return ux(this, 'convertToLayout', t, e, n)
        }),
        (e.prototype.convertFromPixel = function (t, e, n) {
          return ux(this, 'convertFromPixel', t, e, n)
        }),
        (e.prototype.containPixel = function (t, e) {
          var n
          if (!this._disposed)
            return (
              z(
                ua(this._model, t),
                function (t, i) {
                  i.indexOf('Models') >= 0 &&
                    z(
                      t,
                      function (t) {
                        var r = t.coordinateSystem
                        if (r && r.containPoint) n = n || !!r.containPoint(e)
                        else if ('seriesModels' === i) {
                          var o = this._chartsMap[t.__viewId]
                          o && o.containPoint && (n = n || o.containPoint(e, t))
                        } else 0
                      },
                      this
                    )
                },
                this
              ),
              !!n
            )
          kx(this.id)
        }),
        (e.prototype.getVisual = function (t, e) {
          var n = ua(this._model, t, { defaultMainType: 'series' }),
            i = n.seriesModel
          var r = i.getData(),
            o = n.hasOwnProperty('dataIndexInside') ? n.dataIndexInside : n.hasOwnProperty('dataIndex') ? r.indexOfRawIndex(n.dataIndex) : null
          return null != o ? jv(r, o, e) : qv(r, e)
        }),
        (e.prototype.getViewOfComponentModel = function (t) {
          return this._componentsMap[t.__viewId]
        }),
        (e.prototype.getViewOfSeriesModel = function (t) {
          return this._chartsMap[t.__viewId]
        }),
        (e.prototype._initEvents = function () {
          var t = this
          z(Ax, function (e) {
            var n = function (n) {
              var i,
                r = t.getModel(),
                o = n.target,
                a = 'globalout' === e
              if (
                (a
                  ? (i = {})
                  : o &&
                    Qv(
                      o,
                      function (t) {
                        var e = zl(t)
                        if (e && null != e.dataIndex) {
                          var n = e.dataModel || r.getSeriesByIndex(e.seriesIndex)
                          return (i = (n && n.getDataParams(e.dataIndex, e.dataType, o)) || {}), !0
                        }
                        if (e.eventData) return (i = A({}, e.eventData)), !0
                      },
                      !0
                    ),
                i)
              ) {
                var s = i.componentType,
                  l = i.componentIndex
                ;('markLine' !== s && 'markPoint' !== s && 'markArea' !== s) || ((s = 'series'), (l = i.seriesIndex))
                var u = s && null != l && r.getComponent(s, l),
                  c = u && t['series' === u.mainType ? '_chartsMap' : '_componentsMap'][u.__viewId]
                0, (i.event = n), (i.type = e), (t._$eventProcessor.eventInfo = { targetEl: o, packedEvent: i, model: u, view: c }), t.trigger(e, i)
              }
            }
            ;(n.zrEventfulCallAtLast = !0), t._zr.on(e, n, t)
          })
          var e = this._messageCenter
          z(Ox, function (n, i) {
            e.on(i, function (e) {
              t.trigger(i, e)
            })
          }),
            (function (t, e, n) {
              t.on('selectchanged', function (t) {
                var i = n.getModel()
                t.isFromClick
                  ? (Jv('map', 'selectchanged', e, i, t), Jv('pie', 'selectchanged', e, i, t))
                  : 'select' === t.fromAction
                    ? (Jv('map', 'selected', e, i, t), Jv('pie', 'selected', e, i, t))
                    : 'unselect' === t.fromAction && (Jv('map', 'unselected', e, i, t), Jv('pie', 'unselected', e, i, t))
              })
            })(e, this, this._api)
        }),
        (e.prototype.isDisposed = function () {
          return this._disposed
        }),
        (e.prototype.clear = function () {
          this._disposed ? kx(this.id) : this.setOption({ series: [] }, !0)
        }),
        (e.prototype.dispose = function () {
          if (this._disposed) kx(this.id)
          else {
            ;(this._disposed = !0), this.getDom() && fa(this.getDom(), Hx, '')
            var t = this,
              e = t._api,
              n = t._model
            z(t._componentsViews, function (t) {
              t.dispose(n, e)
            }),
              z(t._chartsViews, function (t) {
                t.dispose(n, e)
              }),
              t._zr.dispose(),
              (t._dom =
                t._model =
                t._chartsMap =
                t._componentsMap =
                t._chartsViews =
                t._componentsViews =
                t._scheduler =
                t._api =
                t._zr =
                t._throttledZrFlush =
                t._theme =
                t._coordSysMgr =
                t._messageCenter =
                  null),
              delete Vx[t.id]
          }
        }),
        (e.prototype.resize = function (t) {
          if (!this[Km])
            if (this._disposed) kx(this.id)
            else {
              this._zr.resize(t)
              var e = this._model
              if ((this._loadingFX && this._loadingFX.resize(), e)) {
                var n = e.resetOption('media'),
                  i = t && t.silent
                this[Jm] && (null == i && (i = this[Jm].silent), (n = !0), (this[Jm] = null)), (this[Km] = !0), Mx(this)
                try {
                  n && ox(this), lx.update.call(this, { type: 'resize', animation: A({ duration: 0 }, t && t.animation) })
                } catch (t) {
                  throw ((this[Km] = !1), t)
                }
                ;(this[Km] = !1), dx.call(this, i), px.call(this, i)
              }
            }
        }),
        (e.prototype.showLoading = function (t, e) {
          if (this._disposed) kx(this.id)
          else if ((q(t) && ((e = t), (t = '')), (t = t || 'default'), this.hideLoading(), Bx[t])) {
            var n = Bx[t](this._api, e),
              i = this._zr
            ;(this._loadingFX = n), i.add(n)
          }
        }),
        (e.prototype.hideLoading = function () {
          this._disposed ? kx(this.id) : (this._loadingFX && this._zr.remove(this._loadingFX), (this._loadingFX = null))
        }),
        (e.prototype.makeActionFromEvent = function (t) {
          var e = A({}, t)
          return (e.type = Px[t.type]), e
        }),
        (e.prototype.dispatchAction = function (t, e) {
          if (this._disposed) kx(this.id)
          else if ((q(e) || (e = { silent: !!e }), Lx[t.type] && this._model))
            if (this[Km]) this._pendingActions.push(t)
            else {
              var n = e.silent
              hx.call(this, t, n)
              var i = e.flush
              i ? this._zr.flush() : !1 !== i && r.browser.weChat && this._throttledZrFlush(), dx.call(this, n), px.call(this, n)
            }
        }),
        (e.prototype.updateLabelLayout = function () {
          Wm.trigger('series:layoutlabels', this._model, this._api, { updatedSeries: [] })
        }),
        (e.prototype.appendData = function (t) {
          if (this._disposed) kx(this.id)
          else {
            var e = t.seriesIndex,
              n = this.getModel().getSeriesByIndex(e)
            0, n.appendData(t), (this._scheduler.unfinished = !0), this.getZr().wakeUp()
          }
        }),
        (e.internalField = (function () {
          function t(t) {
            t.clearColorPalette(),
              t.eachSeries(function (t) {
                t.clearColorPalette()
              })
          }
          function e(t) {
            for (var e = [], n = t.currentStates, i = 0; i < n.length; i++) {
              var r = n[i]
              'emphasis' !== r && 'blur' !== r && 'select' !== r && e.push(r)
            }
            t.selected && t.states.select && e.push('select'),
              2 === t.hoverState && t.states.emphasis ? e.push('emphasis') : 1 === t.hoverState && t.states.blur && e.push('blur'),
              t.useStates(e)
          }
          function i(t, e) {
            if (!t.preventAutoZ) {
              var n = Hh(t)
              e.eachRendered(function (t) {
                return Yh(t, n.z, n.zlevel), !0
              })
            }
          }
          function o(t, e) {
            e.eachRendered(function (t) {
              if (!nh(t)) {
                var e = t.getTextContent(),
                  n = t.getTextGuideLine()
                t.stateTransition && (t.stateTransition = null),
                  e && e.stateTransition && (e.stateTransition = null),
                  n && n.stateTransition && (n.stateTransition = null),
                  t.hasState() ? ((t.prevStates = t.currentStates), t.clearStates()) : t.prevStates && (t.prevStates = null)
              }
            })
          }
          function a(t, n) {
            var i = t.getModel('stateAnimation'),
              r = t.isAnimationEnabled(),
              o = i.get('duration'),
              a = o > 0 ? { duration: o, delay: i.get('delay'), easing: i.get('easing') } : null
            n.eachRendered(function (t) {
              if (t.states && t.states.emphasis) {
                if (nh(t)) return
                if (
                  (t instanceof sl &&
                    (function (t) {
                      var e = Gl(t)
                      ;(e.normalFill = t.style.fill), (e.normalStroke = t.style.stroke)
                      var n = t.states.select || {}
                      ;(e.selectFill = (n.style && n.style.fill) || null), (e.selectStroke = (n.style && n.style.stroke) || null)
                    })(t),
                  t.__dirty)
                ) {
                  var n = t.prevStates
                  n && t.useStates(n)
                }
                if (r) {
                  t.stateTransition = a
                  var i = t.getTextContent(),
                    o = t.getTextGuideLine()
                  i && (i.stateTransition = a), o && (o.stateTransition = a)
                }
                t.__dirty && e(t)
              }
            })
          }
          ;(ox = function (t) {
            var e = t._scheduler
            e.restorePipelines(t._model), e.prepareStageTasks(), ax(t, !0), ax(t, !1), e.plan()
          }),
            (ax = function (t, e) {
              for (
                var n = t._model, i = t._scheduler, r = e ? t._componentsViews : t._chartsViews, o = e ? t._componentsMap : t._chartsMap, a = t._zr, s = t._api, l = 0;
                l < r.length;
                l++
              )
                r[l].__alive = !1
              function u(t) {
                var l = t.__requireNewView
                t.__requireNewView = !1
                var u = '_ec_' + t.id + '_' + t.type,
                  c = !l && o[u]
                if (!c) {
                  var h = ba(t.type),
                    d = e ? Ky.getClass(h.main, h.sub) : tv.getClass(h.sub)
                  0, (c = new d()).init(n, s), (o[u] = c), r.push(c), a.add(c.group)
                }
                ;(t.__viewId = c.__id = u),
                  (c.__alive = !0),
                  (c.__model = t),
                  (c.group.__ecComponentInfo = { mainType: t.mainType, index: t.componentIndex }),
                  !e && i.prepareView(c, t, n, s)
              }
              e
                ? n.eachComponent(function (t, e) {
                    'series' !== t && u(e)
                  })
                : n.eachSeries(u)
              for (l = 0; l < r.length; ) {
                var c = r[l]
                c.__alive
                  ? l++
                  : (!e && c.renderTask.dispose(),
                    a.remove(c.group),
                    c.dispose(n, s),
                    r.splice(l, 1),
                    o[c.__id] === c && delete o[c.__id],
                    (c.__id = c.group.__ecComponentInfo = null))
              }
            }),
            (sx = function (t, e, n, i, r) {
              var o = t._model
              if ((o.setUpdatePayload(n), i)) {
                var a = {}
                ;(a[i + 'Id'] = n[i + 'Id']), (a[i + 'Index'] = n[i + 'Index']), (a[i + 'Name'] = n[i + 'Name'])
                var s = { mainType: i, query: a }
                r && (s.subType = r)
                var l,
                  u = n.excludeSeriesId
                null != u &&
                  ((l = yt()),
                  z(qo(u), function (t) {
                    var e = ia(t, null)
                    null != e && l.set(e, !0)
                  })),
                  o &&
                    o.eachComponent(
                      s,
                      function (e) {
                        if (!(l && null != l.get(e.id)))
                          if (Ru(n))
                            if (e instanceof Wy)
                              n.type !== Yl ||
                                n.notBlur ||
                                e.get(['emphasis', 'disabled']) ||
                                (function (t, e, n) {
                                  var i = t.seriesIndex,
                                    r = t.getData(e.dataType)
                                  if (r) {
                                    var o = aa(r, e)
                                    o = (U(o) ? o[0] : o) || 0
                                    var a = r.getItemGraphicEl(o)
                                    if (!a) for (var s = r.count(), l = 0; !a && l < s; ) a = r.getItemGraphicEl(l++)
                                    if (a) {
                                      var u = zl(a)
                                      _u(i, u.focus, u.blurScope, n)
                                    } else {
                                      var c = t.get(['emphasis', 'focus']),
                                        h = t.get(['emphasis', 'blurScope'])
                                      null != c && _u(i, c, h, n)
                                    }
                                  }
                                })(e, n, t._api)
                            else {
                              var i = wu(e.mainType, e.componentIndex, n.name, t._api),
                                r = i.focusSelf,
                                o = i.dispatchers
                              n.type === Yl && r && !n.notBlur && bu(e.mainType, e.componentIndex, t._api),
                                o &&
                                  z(o, function (t) {
                                    n.type === Yl ? du(t) : pu(t)
                                  })
                            }
                          else
                            Ou(n) &&
                              e instanceof Wy &&
                              (!(function (t, e, n) {
                                if (Ou(e)) {
                                  var i = e.dataType,
                                    r = aa(t.getData(i), e)
                                  U(r) || (r = [r]), t[e.type === ql ? 'toggleSelect' : e.type === Zl ? 'select' : 'unselect'](r, i)
                                }
                              })(e, n, t._api),
                              Su(e),
                              bx(t))
                      },
                      t
                    ),
                  o &&
                    o.eachComponent(
                      s,
                      function (e) {
                        ;(l && null != l.get(e.id)) || c(t['series' === i ? '_chartsMap' : '_componentsMap'][e.__viewId])
                      },
                      t
                    )
              } else z([].concat(t._componentsViews).concat(t._chartsViews), c)
              function c(i) {
                i && i.__alive && i[e] && i[e](i.__model, o, t._api, n)
              }
            }),
            (lx = {
              prepareAndUpdate: function (t) {
                ox(this), lx.update.call(this, t, t && { optionChanged: null != t.newOption })
              },
              update: function (e, n) {
                var i = this._model,
                  r = this._api,
                  o = this._zr,
                  a = this._coordSysMgr,
                  s = this._scheduler
                if (i) {
                  i.setUpdatePayload(e),
                    s.restoreData(i, e),
                    s.performSeriesTasks(i),
                    a.create(i, r),
                    s.performDataProcessorTasks(i, e),
                    cx(this, i),
                    a.update(i, r),
                    t(i),
                    s.performVisualTasks(i, e)
                  var l = i.get('backgroundColor') || 'transparent'
                  o.setBackgroundColor(l)
                  var u = i.get('darkMode')
                  null != u && 'auto' !== u && o.setDarkMode(u), yx(this, i, r, e, n), Wm.trigger('afterupdate', i, r)
                }
              },
              updateTransform: function (e) {
                var n = this,
                  i = this._model,
                  r = this._api
                if (i) {
                  i.setUpdatePayload(e)
                  var o = []
                  i.eachComponent(function (t, a) {
                    if ('series' !== t) {
                      var s = n.getViewOfComponentModel(a)
                      if (s && s.__alive)
                        if (s.updateTransform) {
                          var l = s.updateTransform(a, i, r, e)
                          l && l.update && o.push(s)
                        } else o.push(s)
                    }
                  })
                  var a = yt()
                  i.eachSeries(function (t) {
                    var o = n._chartsMap[t.__viewId]
                    if (o.updateTransform) {
                      var s = o.updateTransform(t, i, r, e)
                      s && s.update && a.set(t.uid, 1)
                    } else a.set(t.uid, 1)
                  }),
                    t(i),
                    this._scheduler.performVisualTasks(i, e, { setDirty: !0, dirtyMap: a }),
                    mx(this, i, r, e, {}, a),
                    Wm.trigger('afterupdate', i, r)
                }
              },
              updateView: function (e) {
                var n = this._model
                n &&
                  (n.setUpdatePayload(e),
                  tv.markUpdateMethod(e, 'updateView'),
                  t(n),
                  this._scheduler.performVisualTasks(n, e, { setDirty: !0 }),
                  yx(this, n, this._api, e, {}),
                  Wm.trigger('afterupdate', n, this._api))
              },
              updateVisual: function (e) {
                var n = this,
                  i = this._model
                i &&
                  (i.setUpdatePayload(e),
                  i.eachSeries(function (t) {
                    t.getData().clearAllVisual()
                  }),
                  tv.markUpdateMethod(e, 'updateVisual'),
                  t(i),
                  this._scheduler.performVisualTasks(i, e, { visualType: 'visual', setDirty: !0 }),
                  i.eachComponent(function (t, r) {
                    if ('series' !== t) {
                      var o = n.getViewOfComponentModel(r)
                      o && o.__alive && o.updateVisual(r, i, n._api, e)
                    }
                  }),
                  i.eachSeries(function (t) {
                    n._chartsMap[t.__viewId].updateVisual(t, i, n._api, e)
                  }),
                  Wm.trigger('afterupdate', i, this._api))
              },
              updateLayout: function (t) {
                lx.update.call(this, t)
              }
            }),
            (ux = function (t, e, n, i, r) {
              if (t._disposed) kx(t.id)
              else {
                for (var o, a = t._model, s = t._coordSysMgr.getCoordinateSystems(), l = ua(a, n), u = 0; u < s.length; u++) {
                  var c = s[u]
                  if (c[e] && null != (o = c[e](a, l, i, r))) return o
                }
                0
              }
            }),
            (cx = function (t, e) {
              var n = t._chartsMap,
                i = t._scheduler
              e.eachSeries(function (t) {
                i.updateStreamModes(t, n[t.__viewId])
              })
            }),
            (hx = function (t, e) {
              var n = this,
                i = this.getModel(),
                r = t.type,
                o = t.escapeConnect,
                a = Lx[r],
                s = (a.update || 'update').split(':'),
                l = s.pop(),
                u = null != s[0] && ba(s[0])
              ;(this[Km] = !0), Mx(this)
              var c = [t],
                h = !1
              t.batch &&
                ((h = !0),
                (c = E(t.batch, function (e) {
                  return ((e = k(A({}, e), t)).batch = null), e
                })))
              var d,
                p = [],
                f = [],
                g = a.nonRefinedEventType,
                y = Ou(t),
                v = Ru(t)
              if (
                (v && xu(this._api),
                z(c, function (e) {
                  var r = a.action(e, i, n._api)
                  if ((a.refineEvent ? f.push(r) : (d = r), ((d = d || A({}, e)).type = g), p.push(d), v)) {
                    var o = ca(t),
                      s = o.queryOptionMap,
                      c = o.mainTypeSpecified ? s.keys()[0] : 'series'
                    sx(n, l, e, c), bx(n)
                  } else y ? (sx(n, l, e, 'series'), bx(n)) : u && sx(n, l, e, u.main, u.sub)
                }),
                'none' !== l && !v && !y && !u)
              )
                try {
                  this[Jm] ? (ox(this), lx.update.call(this, t), (this[Jm] = null)) : lx[l].call(this, t)
                } catch (t) {
                  throw ((this[Km] = !1), t)
                }
              if (((d = h ? { type: g, escapeConnect: o, batch: p } : p[0]), (this[Km] = !1), !e)) {
                var m = void 0
                if (a.refineEvent) {
                  var x = a.refineEvent(f, t, i, this._api).eventContent
                  lt(q(x)), ((m = k({ type: a.refinedEventType }, x)).fromAction = t.type), (m.fromActionPayload = t), (m.escapeConnect = !0)
                }
                var _ = this._messageCenter
                _.trigger(d.type, d), m && _.trigger(m.type, m)
              }
            }),
            (dx = function (t) {
              for (var e = this._pendingActions; e.length; ) {
                var n = e.shift()
                hx.call(this, n, t)
              }
            }),
            (px = function (t) {
              !t && this.trigger('updated')
            }),
            (fx = function (t, e) {
              t.on('rendered', function (n) {
                e.trigger('rendered', n), !t.animation.isFinished() || e[Jm] || e._scheduler.unfinished || e._pendingActions.length || e.trigger('finished')
              })
            }),
            (gx = function (t, e) {
              t.on('mouseover', function (t) {
                var n = Qv(t.target, Pu)
                n &&
                  (!(function (t, e, n) {
                    var i = zl(t),
                      r = wu(i.componentMainType, i.componentIndex, i.componentHighDownName, n),
                      o = r.dispatchers,
                      a = r.focusSelf
                    o
                      ? (a && bu(i.componentMainType, i.componentIndex, n),
                        z(o, function (t) {
                          return cu(t, e)
                        }))
                      : (_u(i.seriesIndex, i.focus, i.blurScope, n), 'self' === i.focus && bu(i.componentMainType, i.componentIndex, n), cu(t, e))
                  })(n, t, e._api),
                  bx(e))
              })
                .on('mouseout', function (t) {
                  var n = Qv(t.target, Pu)
                  n &&
                    (!(function (t, e, n) {
                      xu(n)
                      var i = zl(t),
                        r = wu(i.componentMainType, i.componentIndex, i.componentHighDownName, n).dispatchers
                      r
                        ? z(r, function (t) {
                            return hu(t, e)
                          })
                        : hu(t, e)
                    })(n, t, e._api),
                    bx(e))
                })
                .on('click', function (t) {
                  var n = Qv(
                    t.target,
                    function (t) {
                      return null != zl(t).dataIndex
                    },
                    !0
                  )
                  if (n) {
                    var i = n.selected ? 'unselect' : 'select',
                      r = zl(n)
                    e._api.dispatchAction({ type: i, dataType: r.dataType, dataIndexInside: r.dataIndex, seriesIndex: r.seriesIndex, isFromClick: !0 })
                  }
                })
            }),
            (yx = function (t, e, n, i, r) {
              !(function (t) {
                var e = [],
                  n = [],
                  i = !1
                if (
                  (t.eachComponent(function (t, r) {
                    var o = r.get('zlevel') || 0,
                      a = r.get('z') || 0,
                      s = r.getZLevelKey()
                    ;(i = i || !!s), ('series' === t ? n : e).push({ zlevel: o, z: a, idx: r.componentIndex, type: t, key: s })
                  }),
                  i)
                ) {
                  var r,
                    o,
                    a = e.concat(n)
                  cn(a, function (t, e) {
                    return t.zlevel === e.zlevel ? t.z - e.z : t.zlevel - e.zlevel
                  }),
                    z(a, function (e) {
                      var n = t.getComponent(e.type, e.idx),
                        i = e.zlevel,
                        a = e.key
                      null != r && (i = Math.max(r, i)), a ? (i === r && a !== o && i++, (o = a)) : o && (i === r && i++, (o = '')), (r = i), n.setZLevel(i)
                    })
                }
              })(e),
                vx(t, e, n, i, r),
                z(t._chartsViews, function (t) {
                  t.__alive = !1
                }),
                mx(t, e, n, i, r),
                z(t._chartsViews, function (t) {
                  t.__alive || t.remove(e, n)
                })
            }),
            (vx = function (t, e, n, r, s, l) {
              z(l || t._componentsViews, function (t) {
                var s = t.__model
                o(s, t), t.render(s, e, n, r), i(s, t), a(s, t)
              })
            }),
            (mx = function (t, e, n, s, l, u) {
              var c = t._scheduler
              ;(l = A(l || {}, { updatedSeries: e.getSeries() })), Wm.trigger('series:beforeupdate', e, n, l)
              var h = !1
              e.eachSeries(function (e) {
                var n = t._chartsMap[e.__viewId]
                n.__alive = !0
                var i = n.renderTask
                c.updatePayload(i, s),
                  o(e, n),
                  u && u.get(e.uid) && i.dirty(),
                  i.perform(c.getPerformArgs(i)) && (h = !0),
                  (n.group.silent = !!e.get('silent')),
                  (function (t, e) {
                    var n = t.get('blendMode') || null
                    e.eachRendered(function (t) {
                      t.isGroup || (t.style.blend = n)
                    })
                  })(e, n),
                  Su(e)
              }),
                (c.unfinished = h || c.unfinished),
                Wm.trigger('series:layoutlabels', e, n, l),
                Wm.trigger('series:transition', e, n, l),
                e.eachSeries(function (e) {
                  var n = t._chartsMap[e.__viewId]
                  i(e, n), a(e, n)
                }),
                (function (t, e) {
                  var n = t._zr,
                    i = n.storage,
                    o = 0
                  i.traverse(function (t) {
                    t.isGroup || o++
                  }),
                    o > e.get('hoverLayerThreshold') &&
                      !r.node &&
                      !r.worker &&
                      e.eachSeries(function (e) {
                        if (!e.preventUsingHoverLayer) {
                          var n = t._chartsMap[e.__viewId]
                          n.__alive &&
                            n.eachRendered(function (t) {
                              t.states.emphasis && (t.states.emphasis.hoverLayer = !0)
                            })
                        }
                      })
                })(t, e),
                Wm.trigger('series:afterupdate', e, n, l)
            }),
            (bx = function (t) {
              ;(t[Qm] = !0), t.getZr().wakeUp()
            }),
            (Mx = function (t) {
              t[$m] = (t[$m] + 1) % 1e3
            }),
            (Sx = function (t) {
              t[Qm] &&
                (t.getZr().storage.traverse(function (t) {
                  nh(t) || e(t)
                }),
                (t[Qm] = !1))
            }),
            (xx = function (t) {
              return new ((function (e) {
                function i() {
                  return (null !== e && e.apply(this, arguments)) || this
                }
                return (
                  n(i, e),
                  (i.prototype.getCoordinateSystems = function () {
                    return t._coordSysMgr.getCoordinateSystems()
                  }),
                  (i.prototype.getComponentByElement = function (e) {
                    for (; e; ) {
                      var n = e.__ecComponentInfo
                      if (null != n) return t._model.getComponent(n.mainType, n.index)
                      e = e.parent
                    }
                  }),
                  (i.prototype.enterEmphasis = function (e, n) {
                    du(e, n), bx(t)
                  }),
                  (i.prototype.leaveEmphasis = function (e, n) {
                    pu(e, n), bx(t)
                  }),
                  (i.prototype.enterBlur = function (e) {
                    fu(e), bx(t)
                  }),
                  (i.prototype.leaveBlur = function (e) {
                    gu(e), bx(t)
                  }),
                  (i.prototype.enterSelect = function (e) {
                    yu(e), bx(t)
                  }),
                  (i.prototype.leaveSelect = function (e) {
                    vu(e), bx(t)
                  }),
                  (i.prototype.getModel = function () {
                    return t.getModel()
                  }),
                  (i.prototype.getViewOfComponentModel = function (e) {
                    return t.getViewOfComponentModel(e)
                  }),
                  (i.prototype.getViewOfSeriesModel = function (e) {
                    return t.getViewOfSeriesModel(e)
                  }),
                  (i.prototype.getMainProcessVersion = function () {
                    return t[$m]
                  }),
                  i
                )
              })(Hf))(t)
            }),
            (_x = function (t) {
              function e(t, e) {
                for (var n = 0; n < t.length; n++) {
                  t[n][ex] = e
                }
              }
              z(Px, function (n, i) {
                t._messageCenter.on(i, function (n) {
                  if (Gx[t.group] && 0 !== t[ex]) {
                    if (n && n.escapeConnect) return
                    var i = t.makeActionFromEvent(n),
                      r = []
                    z(Vx, function (e) {
                      e !== t && e.group === t.group && r.push(e)
                    }),
                      e(r, 0),
                      z(r, function (t) {
                        1 !== t[ex] && t.dispatchAction(i)
                      }),
                      e(r, 2)
                  }
                })
              })
            })
        })()),
        e
      )
    })(qt),
    Dx = Cx.prototype
  ;(Dx.on = nx('on')),
    (Dx.off = nx('off')),
    (Dx.one = function (t, e, n) {
      var i = this
      Uo(),
        this.on.call(
          this,
          t,
          function n() {
            for (var r = [], o = 0; o < arguments.length; o++) r[o] = arguments[o]
            e && e.apply && e.apply(this, r), i.off(t, n)
          },
          n
        )
    })
  var Ax = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu']
  function kx(t) {
    0
  }
  var Lx = {},
    Px = {},
    Ox = {},
    Rx = [],
    Nx = [],
    zx = [],
    Ex = {},
    Bx = {},
    Vx = {},
    Gx = {},
    Fx = +new Date() - 0,
    Wx = +new Date() - 0,
    Hx = '_echarts_instance_'
  function Ux(t) {
    Gx[t] = !1
  }
  var Yx = Ux
  function Xx(t) {
    return Vx[
      (function (t, e) {
        return t.getAttribute ? t.getAttribute(e) : t[e]
      })(t, Hx)
    ]
  }
  function Zx(t, e) {
    Ex[t] = e
  }
  function jx(t) {
    P(Nx, t) < 0 && Nx.push(t)
  }
  function qx(t, e) {
    r_(Rx, t, e, 2e3)
  }
  function Kx(t) {
    Jx('afterinit', t)
  }
  function $x(t) {
    Jx('afterupdate', t)
  }
  function Jx(t, e) {
    Wm.on(t, e)
  }
  function Qx(t, e, n) {
    var i, r, o, a, s
    function l(t) {
      return t.toLowerCase()
    }
    Y(e) && ((n = e), (e = '')),
      q(t) ? ((i = t.type), (r = t.event), (a = t.update), (s = t.publishNonRefinedEvent), n || (n = t.action), (o = t.refineEvent)) : ((i = t), (r = e)),
      (r = l(r || i))
    var u = o ? l(i) : r
    Lx[i] ||
      (lt(tx.test(i) && tx.test(r)),
      o && lt(r !== i),
      (Lx[i] = { actionType: i, refinedEventType: r, nonRefinedEventType: u, update: a, action: n, refineEvent: o }),
      (Ox[r] = 1),
      o && s && (Ox[u] = 1),
      (Px[u] = i))
  }
  function t_(t, e) {
    Tp.register(t, e)
  }
  function e_(t, e) {
    r_(zx, t, e, 1e3, 'layout')
  }
  function n_(t, e) {
    r_(zx, t, e, 3e3, 'visual')
  }
  var i_ = []
  function r_(t, e, n, i, r) {
    if (((Y(e) || q(e)) && ((n = e), (e = i)), !(P(i_, n) >= 0))) {
      i_.push(n)
      var o = wv.wrapStageHandler(n, r)
      ;(o.__prio = e), (o.__raw = n), t.push(o)
    }
  }
  function o_(t, e) {
    Bx[t] = e
  }
  function a_(t, e, n) {
    var i = Um('registerMap')
    i && i(t, e, n)
  }
  var s_ = function (t) {
    var e = (t = T(t)).type,
      n = ''
    e || Yo(n)
    var i = e.split(':')
    2 !== i.length && Yo(n)
    var r = !1
    'echarts' === i[0] && ((e = i[1]), (r = !0)), (t.__isBuiltIn = r), oy.set(e, t)
  }
  function l_(t, e, n, i) {
    return { eventContent: { selected: Mu(n), isFromClick: e.isFromClick || !1 } }
  }
  n_(Zm, vv),
    n_(jm, xv),
    n_(jm, _v),
    n_(Zm, Xv),
    n_(jm, Zv),
    n_(7e3, function (t, e) {
      t.eachRawSeries(function (n) {
        if (!t.isSeriesFiltered(n)) {
          var i = n.getData()
          i.hasItemVisual() &&
            i.each(function (t) {
              var n = i.getItemVisual(t, 'decal')
              n && (i.ensureUniqueItemVisual(t, 'style').decal = Bm(n, e))
            })
          var r = i.getVisual('decal')
          if (r) i.getVisual('style').decal = Bm(r, e)
        }
      })
    }),
    jx(dg),
    qx(900, function (t) {
      var e = yt()
      t.eachSeries(function (t) {
        var n = t.get('stack')
        if (n) {
          var i = e.get(n) || e.set(n, []),
            r = t.getData(),
            o = {
              stackResultDimension: r.getCalculationInfo('stackResultDimension'),
              stackedOverDimension: r.getCalculationInfo('stackedOverDimension'),
              stackedDimension: r.getCalculationInfo('stackedDimension'),
              stackedByDimension: r.getCalculationInfo('stackedByDimension'),
              isStackedByIndex: r.getCalculationInfo('isStackedByIndex'),
              data: r,
              seriesModel: t
            }
          if (!o.stackedDimension || (!o.isStackedByIndex && !o.stackedByDimension)) return
          i.push(o)
        }
      }),
        e.each(function (t) {
          0 !== t.length &&
            ('seriesDesc' === (t[0].seriesModel.get('stackOrder') || 'seriesAsc') && t.reverse(),
            z(t, function (e, n) {
              e.data.setCalculationInfo('stackedOnSeries', n > 0 ? t[n - 1].seriesModel : null)
            }),
            (function (t) {
              z(t, function (e, n) {
                var i = [],
                  r = [NaN, NaN],
                  o = [e.stackResultDimension, e.stackedOverDimension],
                  a = e.data,
                  s = e.isStackedByIndex,
                  l = e.seriesModel.get('stackStrategy') || 'samesign'
                a.modify(o, function (o, u, c) {
                  var h,
                    d,
                    p = a.get(e.stackedDimension, c)
                  if (isNaN(p)) return r
                  s ? (d = a.getRawIndex(c)) : (h = a.get(e.stackedByDimension, c))
                  for (var f = NaN, g = n - 1; g >= 0; g--) {
                    var y = t[g]
                    if ((s || (d = y.data.rawIndexOf(y.stackedByDimension, h)), d >= 0)) {
                      var v = y.data.getByRawIndex(y.stackResultDimension, d)
                      if (
                        'all' === l ||
                        ('positive' === l && v > 0) ||
                        ('negative' === l && v < 0) ||
                        ('samesign' === l && p >= 0 && v > 0) ||
                        ('samesign' === l && p <= 0 && v < 0)
                      ) {
                        ;(p = Mo(p, v)), (f = v)
                        break
                      }
                    }
                  }
                  return (i[0] = p), (i[1] = f), i
                })
              })
            })(t))
        })
    }),
    o_('default', function (t, e) {
      k((e = e || {}), {
        text: 'loading',
        textColor: tf.color.primary,
        fontSize: 12,
        fontWeight: 'normal',
        fontStyle: 'normal',
        fontFamily: 'sans-serif',
        maskColor: 'rgba(255,255,255,0.8)',
        showSpinner: !0,
        color: tf.color.theme[0],
        spinnerRadius: 10,
        lineWidth: 5,
        zlevel: 0
      })
      var n = new to(),
        i = new xl({ style: { fill: e.maskColor }, zlevel: e.zlevel, z: 1e4 })
      n.add(i)
      var r,
        o = new Sl({
          style: { text: e.text, fill: e.textColor, fontSize: e.fontSize, fontWeight: e.fontWeight, fontStyle: e.fontStyle, fontFamily: e.fontFamily },
          zlevel: e.zlevel,
          z: 10001
        }),
        a = new xl({ style: { fill: 'none' }, textContent: o, textConfig: { position: 'right', distance: 10 }, zlevel: e.zlevel, z: 10001 })
      return (
        n.add(a),
        e.showSpinner &&
          ((r = new Nc({
            shape: { startAngle: -bv / 2, endAngle: -bv / 2 + 0.1, r: e.spinnerRadius },
            style: { stroke: e.color, lineCap: 'round', lineWidth: e.lineWidth },
            zlevel: e.zlevel,
            z: 10001
          }))
            .animateShape(!0)
            .when(1e3, { endAngle: (3 * bv) / 2 })
            .start('circularInOut'),
          r
            .animateShape(!0)
            .when(1e3, { startAngle: (3 * bv) / 2 })
            .delay(300)
            .start('circularInOut'),
          n.add(r)),
        (n.resize = function () {
          var n = o.getBoundingRect().width,
            s = e.showSpinner ? e.spinnerRadius : 0,
            l = (t.getWidth() - 2 * s - (e.showSpinner && n ? 10 : 0) - n) / 2 - (e.showSpinner && n ? 0 : 5 + n / 2) + (e.showSpinner ? 0 : n / 2) + (n ? 0 : s),
            u = t.getHeight() / 2
          e.showSpinner && r.setShape({ cx: l, cy: u }),
            a.setShape({ x: l - s, y: u - s, width: 2 * s, height: 2 * s }),
            i.setShape({ x: 0, y: 0, width: t.getWidth(), height: t.getHeight() })
        }),
        n.resize(),
        n
      )
    }),
    Qx({ type: Yl, event: Yl, update: Yl }, bt),
    Qx({ type: Xl, event: Xl, update: Xl }, bt),
    Qx({ type: Zl, event: Kl, update: Zl, action: bt, refineEvent: l_, publishNonRefinedEvent: !0 }),
    Qx({ type: jl, event: Kl, update: jl, action: bt, refineEvent: l_, publishNonRefinedEvent: !0 }),
    Qx({ type: ql, event: Kl, update: ql, action: bt, refineEvent: l_, publishNonRefinedEvent: !0 }),
    Zx('default', {}),
    Zx('dark', Wv)
  var u_ = [],
    c_ = {
      registerPreprocessor: jx,
      registerProcessor: qx,
      registerPostInit: Kx,
      registerPostUpdate: $x,
      registerUpdateLifecycle: Jx,
      registerAction: Qx,
      registerCoordinateSystem: t_,
      registerLayout: e_,
      registerVisual: n_,
      registerTransform: s_,
      registerLoading: o_,
      registerMap: a_,
      registerImpl: function (t, e) {
        Hm[t] = e
      },
      PRIORITY: qm,
      ComponentModel: Qp,
      ComponentView: Ky,
      SeriesModel: Wy,
      ChartView: tv,
      registerComponentModel: function (t) {
        Qp.registerClass(t)
      },
      registerComponentView: function (t) {
        Ky.registerClass(t)
      },
      registerSeriesModel: function (t) {
        Wy.registerClass(t)
      },
      registerChartView: function (t) {
        tv.registerClass(t)
      },
      registerCustomSeries: function (t, e) {
        Xm(t, e)
      },
      registerSubTypeDefaulter: function (t, e) {
        Qp.registerSubTypeDefaulter(t, e)
      },
      registerPainter: function (t, e) {
        ao(t, e)
      }
    }
  function h_(t) {
    U(t)
      ? z(t, function (t) {
          h_(t)
        })
      : P(u_, t) >= 0 || (u_.push(t), Y(t) && (t = { install: t }), t.install(c_))
  }
  function d_(t) {
    return null == t ? 0 : t.length || 1
  }
  function p_(t) {
    return t
  }
  var f_ = (function () {
      function t(t, e, n, i, r, o) {
        ;(this._old = t), (this._new = e), (this._oldKeyGetter = n || p_), (this._newKeyGetter = i || p_), (this.context = r), (this._diffModeMultiple = 'multiple' === o)
      }
      return (
        (t.prototype.add = function (t) {
          return (this._add = t), this
        }),
        (t.prototype.update = function (t) {
          return (this._update = t), this
        }),
        (t.prototype.updateManyToOne = function (t) {
          return (this._updateManyToOne = t), this
        }),
        (t.prototype.updateOneToMany = function (t) {
          return (this._updateOneToMany = t), this
        }),
        (t.prototype.updateManyToMany = function (t) {
          return (this._updateManyToMany = t), this
        }),
        (t.prototype.remove = function (t) {
          return (this._remove = t), this
        }),
        (t.prototype.execute = function () {
          this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']()
        }),
        (t.prototype._executeOneToOne = function () {
          var t = this._old,
            e = this._new,
            n = {},
            i = new Array(t.length),
            r = new Array(e.length)
          this._initIndexMap(t, null, i, '_oldKeyGetter'), this._initIndexMap(e, n, r, '_newKeyGetter')
          for (var o = 0; o < t.length; o++) {
            var a = i[o],
              s = n[a],
              l = d_(s)
            if (l > 1) {
              var u = s.shift()
              1 === s.length && (n[a] = s[0]), this._update && this._update(u, o)
            } else 1 === l ? ((n[a] = null), this._update && this._update(s, o)) : this._remove && this._remove(o)
          }
          this._performRestAdd(r, n)
        }),
        (t.prototype._executeMultiple = function () {
          var t = this._old,
            e = this._new,
            n = {},
            i = {},
            r = [],
            o = []
          this._initIndexMap(t, n, r, '_oldKeyGetter'), this._initIndexMap(e, i, o, '_newKeyGetter')
          for (var a = 0; a < r.length; a++) {
            var s = r[a],
              l = n[s],
              u = i[s],
              c = d_(l),
              h = d_(u)
            if (c > 1 && 1 === h) this._updateManyToOne && this._updateManyToOne(u, l), (i[s] = null)
            else if (1 === c && h > 1) this._updateOneToMany && this._updateOneToMany(u, l), (i[s] = null)
            else if (1 === c && 1 === h) this._update && this._update(u, l), (i[s] = null)
            else if (c > 1 && h > 1) this._updateManyToMany && this._updateManyToMany(u, l), (i[s] = null)
            else if (c > 1) for (var d = 0; d < c; d++) this._remove && this._remove(l[d])
            else this._remove && this._remove(l)
          }
          this._performRestAdd(o, i)
        }),
        (t.prototype._performRestAdd = function (t, e) {
          for (var n = 0; n < t.length; n++) {
            var i = t[n],
              r = e[i],
              o = d_(r)
            if (o > 1) for (var a = 0; a < o; a++) this._add && this._add(r[a])
            else 1 === o && this._add && this._add(r)
            e[i] = null
          }
        }),
        (t.prototype._initIndexMap = function (t, e, n, i) {
          for (var r = this._diffModeMultiple, o = 0; o < t.length; o++) {
            var a = '_ec_' + this[i](t[o], o)
            if ((r || (n[o] = a), e)) {
              var s = e[a],
                l = d_(s)
              0 === l ? ((e[a] = o), r && n.push(a)) : 1 === l ? (e[a] = [s, o]) : s.push(o)
            }
          }
        }),
        t
      )
    })(),
    g_ = (function () {
      function t(t, e) {
        ;(this._encode = t), (this._schema = e)
      }
      return (
        (t.prototype.get = function () {
          return { fullDimensions: this._getFullDimensionNames(), encode: this._encode }
        }),
        (t.prototype._getFullDimensionNames = function () {
          return this._cachedDimNames || (this._cachedDimNames = this._schema ? this._schema.makeOutputDimensionNames() : []), this._cachedDimNames
        }),
        t
      )
    })()
  function y_(t, e) {
    return t.hasOwnProperty(e) || (t[e] = []), t[e]
  }
  function v_(t) {
    return 'category' === t ? 'ordinal' : 'time' === t ? 'time' : 'float'
  }
  var m_ = function (t) {
      ;(this.otherDims = {}), null != t && A(this, t)
    },
    x_ = sa(),
    __ = { float: 'f', int: 'i', ordinal: 'o', number: 'n', time: 't' },
    b_ = (function () {
      function t(t) {
        ;(this.dimensions = t.dimensions),
          (this._dimOmitted = t.dimensionOmitted),
          (this.source = t.source),
          (this._fullDimCount = t.fullDimensionCount),
          this._updateDimOmitted(t.dimensionOmitted)
      }
      return (
        (t.prototype.isDimensionOmitted = function () {
          return this._dimOmitted
        }),
        (t.prototype._updateDimOmitted = function (t) {
          ;(this._dimOmitted = t), t && (this._dimNameMap || (this._dimNameMap = M_(this.source)))
        }),
        (t.prototype.getSourceDimensionIndex = function (t) {
          return rt(this._dimNameMap.get(t), -1)
        }),
        (t.prototype.getSourceDimension = function (t) {
          var e = this.source.dimensionsDefine
          if (e) return e[t]
        }),
        (t.prototype.makeStoreSchema = function () {
          for (var t = this._fullDimCount, e = Tg(this.source), n = !I_(t), i = '', r = [], o = 0, a = 0; o < t; o++) {
            var s = void 0,
              l = void 0,
              u = void 0,
              c = this.dimensions[a]
            if (c && c.storeDimIndex === o) (s = e ? c.name : null), (l = c.type), (u = c.ordinalMeta), a++
            else {
              var h = this.getSourceDimension(o)
              h && ((s = e ? h.name : null), (l = h.type))
            }
            r.push({ property: s, type: l, ordinalMeta: u }),
              !e || null == s || (c && c.isCalculationCoord) || (i += n ? s.replace(/\`/g, '`1').replace(/\$/g, '`2') : s),
              (i += '$'),
              (i += __[l] || 'f'),
              u && (i += u.uid),
              (i += '$')
          }
          var d = this.source
          return { dimensions: r, hash: [d.seriesLayoutBy, d.startIndex, i].join('$$') }
        }),
        (t.prototype.makeOutputDimensionNames = function () {
          for (var t = [], e = 0, n = 0; e < this._fullDimCount; e++) {
            var i = void 0,
              r = this.dimensions[n]
            if (r && r.storeDimIndex === e) r.isCalculationCoord || (i = r.name), n++
            else {
              var o = this.getSourceDimension(e)
              o && (i = o.name)
            }
            t.push(i)
          }
          return t
        }),
        (t.prototype.appendCalculationDimension = function (t) {
          this.dimensions.push(t), (t.isCalculationCoord = !0), this._fullDimCount++, this._updateDimOmitted(!0)
        }),
        t
      )
    })()
  function w_(t) {
    return t instanceof b_
  }
  function S_(t) {
    for (var e = yt(), n = 0; n < (t || []).length; n++) {
      var i = t[n],
        r = q(i) ? i.name : i
      null != r && null == e.get(r) && e.set(r, n)
    }
    return e
  }
  function M_(t) {
    var e = x_(t)
    return e.dimNameMap || (e.dimNameMap = S_(t.dimensionsDefine))
  }
  function I_(t) {
    return t > 30
  }
  var T_,
    C_,
    D_,
    A_,
    k_,
    L_,
    P_,
    O_ = q,
    R_ = E,
    N_ = 'undefined' == typeof Int32Array ? Array : Int32Array,
    z_ = [
      'hasItemOption',
      '_nameList',
      '_idList',
      '_invertedIndicesMap',
      '_dimSummary',
      'userOutput',
      '_rawData',
      '_dimValueGetter',
      '_nameDimIdx',
      '_idDimIdx',
      '_nameRepeatCount'
    ],
    E_ = ['_approximateExtent'],
    B_ = (function () {
      function t(t, e) {
        var n
        ;(this.type = 'list'),
          (this._dimOmitted = !1),
          (this._nameList = []),
          (this._idList = []),
          (this._visual = {}),
          (this._layout = {}),
          (this._itemVisuals = []),
          (this._itemLayouts = []),
          (this._graphicEls = []),
          (this._approximateExtent = {}),
          (this._calculationInfo = {}),
          (this.hasItemOption = !1),
          (this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'minmaxDownSample', 'lttbDownSample', 'map']),
          (this.CHANGABLE_METHODS = ['filterSelf', 'selectRange']),
          (this.DOWNSAMPLE_METHODS = ['downSample', 'minmaxDownSample', 'lttbDownSample'])
        var i = !1
        w_(t) ? ((n = t.dimensions), (this._dimOmitted = t.isDimensionOmitted()), (this._schema = t)) : ((i = !0), (n = t)), (n = n || ['x', 'y'])
        for (var r = {}, o = [], a = {}, s = !1, l = {}, u = 0; u < n.length; u++) {
          var c = n[u],
            h = X(c) ? new m_({ name: c }) : c instanceof m_ ? c : new m_(c),
            d = h.name
          ;(h.type = h.type || 'float'), h.coordDim || ((h.coordDim = d), (h.coordDimIndex = 0))
          var p = (h.otherDims = h.otherDims || {})
          o.push(d), (r[d] = h), null != l[d] && (s = !0), h.createInvertedIndices && (a[d] = [])
          var f = u
          j(h.storeDimIndex) && (f = h.storeDimIndex), 0 === p.itemName && (this._nameDimIdx = f), 0 === p.itemId && (this._idDimIdx = f), i && (h.storeDimIndex = u)
        }
        if (((this.dimensions = o), (this._dimInfos = r), this._initGetDimensionInfo(s), (this.hostModel = e), (this._invertedIndicesMap = a), this._dimOmitted)) {
          var g = (this._dimIdxToName = yt())
          z(o, function (t) {
            g.set(r[t].storeDimIndex, t)
          })
        }
      }
      return (
        (t.prototype.getDimension = function (t) {
          var e = this._recognizeDimIndex(t)
          if (null == e) return t
          if (((e = t), !this._dimOmitted)) return this.dimensions[e]
          var n = this._dimIdxToName.get(e)
          if (null != n) return n
          var i = this._schema.getSourceDimension(e)
          return i ? i.name : void 0
        }),
        (t.prototype.getDimensionIndex = function (t) {
          var e = this._recognizeDimIndex(t)
          if (null != e) return e
          if (null == t) return -1
          var n = this._getDimInfo(t)
          return n ? n.storeDimIndex : this._dimOmitted ? this._schema.getSourceDimensionIndex(t) : -1
        }),
        (t.prototype._recognizeDimIndex = function (t) {
          if (j(t) || (null != t && !isNaN(t) && !this._getDimInfo(t) && (!this._dimOmitted || this._schema.getSourceDimensionIndex(t) < 0))) return +t
        }),
        (t.prototype._getStoreDimIndex = function (t) {
          var e = this.getDimensionIndex(t)
          return e
        }),
        (t.prototype.getDimensionInfo = function (t) {
          return this._getDimInfo(this.getDimension(t))
        }),
        (t.prototype._initGetDimensionInfo = function (t) {
          var e = this._dimInfos
          this._getDimInfo = t
            ? function (t) {
                return e.hasOwnProperty(t) ? e[t] : void 0
              }
            : function (t) {
                return e[t]
              }
        }),
        (t.prototype.getDimensionsOnCoord = function () {
          return this._dimSummary.dataDimsOnCoord.slice()
        }),
        (t.prototype.mapDimension = function (t, e) {
          var n = this._dimSummary
          if (null == e) return n.encodeFirstDimNotExtra[t]
          var i = n.encode[t]
          return i ? i[e] : null
        }),
        (t.prototype.mapDimensionsAll = function (t) {
          return (this._dimSummary.encode[t] || []).slice()
        }),
        (t.prototype.getStore = function () {
          return this._store
        }),
        (t.prototype.initData = function (t, e, n) {
          var i,
            r = this
          if ((t instanceof vy && (i = t), !i)) {
            var o = this.dimensions,
              a = _g(t) || N(t) ? new Cg(t, o.length) : t
            i = new vy()
            var s = R_(o, function (t) {
              return { type: r._dimInfos[t].type, property: t }
            })
            i.initData(a, s, n)
          }
          ;(this._store = i),
            (this._nameList = (e || []).slice()),
            (this._idList = []),
            (this._nameRepeatCount = {}),
            this._doInit(0, i.count()),
            (this._dimSummary = (function (t, e) {
              var n = {},
                i = (n.encode = {}),
                r = yt(),
                o = [],
                a = [],
                s = {}
              z(t.dimensions, function (e) {
                var n,
                  l = t.getDimensionInfo(e),
                  u = l.coordDim
                if (u) {
                  var c = l.coordDimIndex
                  ;(y_(i, u)[c] = e),
                    l.isExtraCoord || (r.set(u, 1), 'ordinal' !== (n = l.type) && 'time' !== n && (o[0] = e), (y_(s, u)[c] = t.getDimensionIndex(l.name))),
                    l.defaultTooltip && a.push(e)
                }
                cf.each(function (t, e) {
                  var n = y_(i, e),
                    r = l.otherDims[e]
                  null != r && !1 !== r && (n[r] = l.name)
                })
              })
              var l = [],
                u = {}
              r.each(function (t, e) {
                var n = i[e]
                ;(u[e] = n[0]), (l = l.concat(n))
              }),
                (n.dataDimsOnCoord = l),
                (n.dataDimIndicesOnCoord = E(l, function (e) {
                  return t.getDimensionInfo(e).storeDimIndex
                })),
                (n.encodeFirstDimNotExtra = u)
              var c = i.label
              c && c.length && (o = c.slice())
              var h = i.tooltip
              return h && h.length ? (a = h.slice()) : a.length || (a = o.slice()), (i.defaultedLabel = o), (i.defaultedTooltip = a), (n.userOutput = new g_(s, e)), n
            })(this, this._schema)),
            (this.userOutput = this._dimSummary.userOutput)
        }),
        (t.prototype.appendData = function (t) {
          var e = this._store.appendData(t)
          this._doInit(e[0], e[1])
        }),
        (t.prototype.appendValues = function (t, e) {
          var n = this._store.appendValues(t, e && e.length),
            i = n.start,
            r = n.end,
            o = this._shouldMakeIdFromName()
          if ((this._updateOrdinalMeta(), e))
            for (var a = i; a < r; a++) {
              var s = a - i
              ;(this._nameList[a] = e[s]), o && P_(this, a)
            }
        }),
        (t.prototype._updateOrdinalMeta = function () {
          for (var t = this._store, e = this.dimensions, n = 0; n < e.length; n++) {
            var i = this._dimInfos[e[n]]
            i.ordinalMeta && t.collectOrdinalMeta(i.storeDimIndex, i.ordinalMeta)
          }
        }),
        (t.prototype._shouldMakeIdFromName = function () {
          var t = this._store.getProvider()
          return null == this._idDimIdx && t.getSource().sourceFormat !== gf && !t.fillStorage
        }),
        (t.prototype._doInit = function (t, e) {
          if (!(t >= e)) {
            var n = this._store.getProvider()
            this._updateOrdinalMeta()
            var i = this._nameList,
              r = this._idList
            if (n.getSource().sourceFormat === hf && !n.pure)
              for (var o = [], a = t; a < e; a++) {
                var s = n.getItem(a, o)
                if ((!this.hasItemOption && Qo(s) && (this.hasItemOption = !0), s)) {
                  var l = s.name
                  null == i[a] && null != l && (i[a] = ia(l, null))
                  var u = s.id
                  null == r[a] && null != u && (r[a] = ia(u, null))
                }
              }
            if (this._shouldMakeIdFromName()) for (a = t; a < e; a++) P_(this, a)
            T_(this)
          }
        }),
        (t.prototype.getApproximateExtent = function (t) {
          return this._approximateExtent[t] || this._store.getDataExtent(this._getStoreDimIndex(t))
        }),
        (t.prototype.setApproximateExtent = function (t, e) {
          ;(e = this.getDimension(e)), (this._approximateExtent[e] = t.slice())
        }),
        (t.prototype.getCalculationInfo = function (t) {
          return this._calculationInfo[t]
        }),
        (t.prototype.setCalculationInfo = function (t, e) {
          O_(t) ? A(this._calculationInfo, t) : (this._calculationInfo[t] = e)
        }),
        (t.prototype.getName = function (t) {
          var e = this.getRawIndex(t),
            n = this._nameList[e]
          return null == n && null != this._nameDimIdx && (n = D_(this, this._nameDimIdx, e)), null == n && (n = ''), n
        }),
        (t.prototype._getCategory = function (t, e) {
          var n = this._store.get(t, e),
            i = this._store.getOrdinalMeta(t)
          return i ? i.categories[n] : n
        }),
        (t.prototype.getId = function (t) {
          return C_(this, this.getRawIndex(t))
        }),
        (t.prototype.count = function () {
          return this._store.count()
        }),
        (t.prototype.get = function (t, e) {
          var n = this._store,
            i = this._dimInfos[t]
          if (i) return n.get(i.storeDimIndex, e)
        }),
        (t.prototype.getByRawIndex = function (t, e) {
          var n = this._store,
            i = this._dimInfos[t]
          if (i) return n.getByRawIndex(i.storeDimIndex, e)
        }),
        (t.prototype.getIndices = function () {
          return this._store.getIndices()
        }),
        (t.prototype.getDataExtent = function (t) {
          return this._store.getDataExtent(this._getStoreDimIndex(t))
        }),
        (t.prototype.getSum = function (t) {
          return this._store.getSum(this._getStoreDimIndex(t))
        }),
        (t.prototype.getMedian = function (t) {
          return this._store.getMedian(this._getStoreDimIndex(t))
        }),
        (t.prototype.getValues = function (t, e) {
          var n = this,
            i = this._store
          return U(t)
            ? i.getValues(
                R_(t, function (t) {
                  return n._getStoreDimIndex(t)
                }),
                e
              )
            : i.getValues(t)
        }),
        (t.prototype.hasValue = function (t) {
          for (var e = this._dimSummary.dataDimIndicesOnCoord, n = 0, i = e.length; n < i; n++) if (isNaN(this._store.get(e[n], t))) return !1
          return !0
        }),
        (t.prototype.indexOfName = function (t) {
          for (var e = 0, n = this._store.count(); e < n; e++) if (this.getName(e) === t) return e
          return -1
        }),
        (t.prototype.getRawIndex = function (t) {
          return this._store.getRawIndex(t)
        }),
        (t.prototype.indexOfRawIndex = function (t) {
          return this._store.indexOfRawIndex(t)
        }),
        (t.prototype.rawIndexOf = function (t, e) {
          var n = t && this._invertedIndicesMap[t]
          var i = n && n[e]
          return null == i || isNaN(i) ? -1 : i
        }),
        (t.prototype.each = function (t, e, n) {
          Y(t) && ((n = e), (e = t), (t = []))
          var i = n || this,
            r = R_(A_(t), this._getStoreDimIndex, this)
          this._store.each(r, i ? W(e, i) : e)
        }),
        (t.prototype.filterSelf = function (t, e, n) {
          Y(t) && ((n = e), (e = t), (t = []))
          var i = n || this,
            r = R_(A_(t), this._getStoreDimIndex, this)
          return (this._store = this._store.filter(r, i ? W(e, i) : e)), this
        }),
        (t.prototype.selectRange = function (t) {
          var e = this,
            n = {}
          return (
            z(F(t), function (i) {
              var r = e._getStoreDimIndex(i)
              n[r] = t[i]
            }),
            (this._store = this._store.selectRange(n)),
            this
          )
        }),
        (t.prototype.mapArray = function (t, e, n) {
          Y(t) && ((n = e), (e = t), (t = [])), (n = n || this)
          var i = []
          return (
            this.each(
              t,
              function () {
                i.push(e && e.apply(this, arguments))
              },
              n
            ),
            i
          )
        }),
        (t.prototype.map = function (t, e, n, i) {
          var r = n || i || this,
            o = R_(A_(t), this._getStoreDimIndex, this),
            a = L_(this)
          return (a._store = this._store.map(o, r ? W(e, r) : e)), a
        }),
        (t.prototype.modify = function (t, e, n, i) {
          var r = n || i || this
          var o = R_(A_(t), this._getStoreDimIndex, this)
          this._store.modify(o, r ? W(e, r) : e)
        }),
        (t.prototype.downSample = function (t, e, n, i) {
          var r = L_(this)
          return (r._store = this._store.downSample(this._getStoreDimIndex(t), e, n, i)), r
        }),
        (t.prototype.minmaxDownSample = function (t, e) {
          var n = L_(this)
          return (n._store = this._store.minmaxDownSample(this._getStoreDimIndex(t), e)), n
        }),
        (t.prototype.lttbDownSample = function (t, e) {
          var n = L_(this)
          return (n._store = this._store.lttbDownSample(this._getStoreDimIndex(t), e)), n
        }),
        (t.prototype.getRawDataItem = function (t) {
          return this._store.getRawDataItem(t)
        }),
        (t.prototype.getItemModel = function (t) {
          var e = this.hostModel,
            n = this.getRawDataItem(t)
          return new wd(n, e, e && e.ecModel)
        }),
        (t.prototype.diff = function (t) {
          var e = this
          return new f_(
            t ? t.getStore().getIndices() : [],
            this.getStore().getIndices(),
            function (e) {
              return C_(t, e)
            },
            function (t) {
              return C_(e, t)
            }
          )
        }),
        (t.prototype.getVisual = function (t) {
          var e = this._visual
          return e && e[t]
        }),
        (t.prototype.setVisual = function (t, e) {
          ;(this._visual = this._visual || {}), O_(t) ? A(this._visual, t) : (this._visual[t] = e)
        }),
        (t.prototype.getItemVisual = function (t, e) {
          var n = this._itemVisuals[t],
            i = n && n[e]
          return null == i ? this.getVisual(e) : i
        }),
        (t.prototype.hasItemVisual = function () {
          return this._itemVisuals.length > 0
        }),
        (t.prototype.ensureUniqueItemVisual = function (t, e) {
          var n = this._itemVisuals,
            i = n[t]
          i || (i = n[t] = {})
          var r = i[e]
          return null == r && (U((r = this.getVisual(e))) ? (r = r.slice()) : O_(r) && (r = A({}, r)), (i[e] = r)), r
        }),
        (t.prototype.setItemVisual = function (t, e, n) {
          var i = this._itemVisuals[t] || {}
          ;(this._itemVisuals[t] = i), O_(e) ? A(i, e) : (i[e] = n)
        }),
        (t.prototype.clearAllVisual = function () {
          ;(this._visual = {}), (this._itemVisuals = [])
        }),
        (t.prototype.setLayout = function (t, e) {
          O_(t) ? A(this._layout, t) : (this._layout[t] = e)
        }),
        (t.prototype.getLayout = function (t) {
          return this._layout[t]
        }),
        (t.prototype.getItemLayout = function (t) {
          return this._itemLayouts[t]
        }),
        (t.prototype.setItemLayout = function (t, e, n) {
          this._itemLayouts[t] = n ? A(this._itemLayouts[t] || {}, e) : e
        }),
        (t.prototype.clearItemLayouts = function () {
          this._itemLayouts.length = 0
        }),
        (t.prototype.setItemGraphicEl = function (t, e) {
          var n = this.hostModel && this.hostModel.seriesIndex
          El(n, this.dataType, t, e), (this._graphicEls[t] = e)
        }),
        (t.prototype.getItemGraphicEl = function (t) {
          return this._graphicEls[t]
        }),
        (t.prototype.eachItemGraphicEl = function (t, e) {
          z(this._graphicEls, function (n, i) {
            n && t && t.call(e, n, i)
          })
        }),
        (t.prototype.cloneShallow = function (e) {
          return e || (e = new t(this._schema ? this._schema : R_(this.dimensions, this._getDimInfo, this), this.hostModel)), k_(e, this), (e._store = this._store), e
        }),
        (t.prototype.wrapMethod = function (t, e) {
          var n = this[t]
          Y(n) &&
            ((this.__wrappedMethods = this.__wrappedMethods || []),
            this.__wrappedMethods.push(t),
            (this[t] = function () {
              var t = n.apply(this, arguments)
              return e.apply(this, [t].concat(at(arguments)))
            }))
        }),
        (t.internalField =
          ((T_ = function (t) {
            var e = t._invertedIndicesMap
            z(e, function (n, i) {
              var r = t._dimInfos[i],
                o = r.ordinalMeta,
                a = t._store
              if (o) {
                n = e[i] = new N_(o.categories.length)
                for (var s = 0; s < n.length; s++) n[s] = -1
                for (s = 0; s < a.count(); s++) n[a.get(r.storeDimIndex, s)] = s
              }
            })
          }),
          (D_ = function (t, e, n) {
            return ia(t._getCategory(e, n), null)
          }),
          (C_ = function (t, e) {
            var n = t._idList[e]
            return null == n && null != t._idDimIdx && (n = D_(t, t._idDimIdx, e)), null == n && (n = 'e\0\0' + e), n
          }),
          (A_ = function (t) {
            return U(t) || (t = null != t ? [t] : []), t
          }),
          (L_ = function (e) {
            var n = new t(e._schema ? e._schema : R_(e.dimensions, e._getDimInfo, e), e.hostModel)
            return k_(n, e), n
          }),
          (k_ = function (t, e) {
            z(z_.concat(e.__wrappedMethods || []), function (n) {
              e.hasOwnProperty(n) && (t[n] = e[n])
            }),
              (t.__wrappedMethods = e.__wrappedMethods),
              z(E_, function (n) {
                t[n] = T(e[n])
              }),
              (t._calculationInfo = A({}, e._calculationInfo))
          }),
          void (P_ = function (t, e) {
            var n = t._nameList,
              i = t._idList,
              r = t._nameDimIdx,
              o = t._idDimIdx,
              a = n[e],
              s = i[e]
            if ((null == a && null != r && (n[e] = a = D_(t, r, e)), null == s && null != o && (i[e] = s = D_(t, o, e)), null == s && null != a)) {
              var l = t._nameRepeatCount,
                u = (l[a] = (l[a] || 0) + 1)
              ;(s = a), u > 1 && (s += '__ec__' + u), (i[e] = s)
            }
          }))),
        t
      )
    })()
  function V_(t, e) {
    _g(t) || (t = wg(t))
    var n = (e = e || {}).coordDimensions || [],
      i = e.dimensionsDefine || t.dimensionsDefine || [],
      r = yt(),
      o = [],
      a = (function (t, e, n, i) {
        var r = Math.max(t.dimensionsDetectedCount || 1, e.length, n.length, i || 0)
        return (
          z(e, function (t) {
            var e
            q(t) && (e = t.dimsDef) && (r = Math.max(r, e.length))
          }),
          r
        )
      })(t, n, i, e.dimensionsCount),
      s = e.canOmitUnusedDimensions && I_(a),
      l = i === t.dimensionsDefine,
      u = l ? M_(t) : S_(i),
      c = e.encodeDefine
    !c && e.encodeDefaulter && (c = e.encodeDefaulter(t, a))
    for (var h = yt(c), d = new dy(a), p = 0; p < d.length; p++) d[p] = -1
    function f(t) {
      var e = d[t]
      if (e < 0) {
        var n = i[t],
          r = q(n) ? n : { name: n },
          a = new m_(),
          s = r.name
        null != s && null != u.get(s) && (a.name = a.displayName = s), null != r.type && (a.type = r.type), null != r.displayName && (a.displayName = r.displayName)
        var l = o.length
        return (d[t] = l), (a.storeDimIndex = t), o.push(a), a
      }
      return o[e]
    }
    if (!s) for (p = 0; p < a; p++) f(p)
    h.each(function (t, e) {
      var n = qo(t).slice()
      if (1 === n.length && !X(n[0]) && n[0] < 0) h.set(e, !1)
      else {
        var i = h.set(e, [])
        z(n, function (t, n) {
          var r = X(t) ? u.get(t) : t
          null != r && r < a && ((i[n] = r), y(f(r), e, n))
        })
      }
    })
    var g = 0
    function y(t, e, n) {
      null != cf.get(e) ? (t.otherDims[e] = n) : ((t.coordDim = e), (t.coordDimIndex = n), r.set(e, !0))
    }
    z(n, function (t) {
      var e, n, i, r
      if (X(t)) (e = t), (r = {})
      else {
        e = (r = t).name
        var o = r.ordinalMeta
        ;(r.ordinalMeta = null), ((r = A({}, r)).ordinalMeta = o), (n = r.dimsDef), (i = r.otherDims), (r.name = r.coordDim = r.coordDimIndex = r.dimsDef = r.otherDims = null)
      }
      var s = h.get(e)
      if (!1 !== s) {
        if (!(s = qo(s)).length)
          for (var u = 0; u < ((n && n.length) || 1); u++) {
            for (; g < a && null != f(g).coordDim; ) g++
            g < a && s.push(g++)
          }
        z(s, function (t, o) {
          var a = f(t)
          if ((l && null != r.type && (a.type = r.type), y(k(a, r), e, o), null == a.name && n)) {
            var s = n[o]
            !q(s) && (s = { name: s }), (a.name = a.displayName = s.name), (a.defaultTooltip = s.defaultTooltip)
          }
          i && k(a.otherDims, i)
        })
      }
    })
    var v = e.generateCoord,
      m = e.generateCoordCount,
      x = null != m
    m = v ? m || 1 : 0
    var _ = v || 'value'
    function b(t) {
      null == t.name && (t.name = t.coordDim)
    }
    if (s)
      z(o, function (t) {
        b(t)
      }),
        o.sort(function (t, e) {
          return t.storeDimIndex - e.storeDimIndex
        })
    else
      for (var w = 0; w < a; w++) {
        var S = f(w)
        null == S.coordDim && ((S.coordDim = G_(_, r, x)), (S.coordDimIndex = 0), (!v || m <= 0) && (S.isExtraCoord = !0), m--),
          b(S),
          null != S.type || (Tf(t, w) !== xf && (!S.isExtraCoord || (null == S.otherDims.itemName && null == S.otherDims.seriesName))) || (S.type = 'ordinal')
      }
    return (
      (function (t) {
        for (var e = yt(), n = 0; n < t.length; n++) {
          var i = t[n],
            r = i.name,
            o = e.get(r) || 0
          o > 0 && (i.name = r + (o - 1)), o++, e.set(r, o)
        }
      })(o),
      new b_({ source: t, dimensions: o, fullDimensionCount: a, dimensionOmitted: s })
    )
  }
  function G_(t, e, n) {
    if (n || e.hasKey(t)) {
      for (var i = 0; e.hasKey(t + i); ) i++
      t += i
    }
    return e.set(t, !0), t
  }
  var F_ = function (t) {
    ;(this.coordSysDims = []), (this.axisMap = yt()), (this.categoryAxisMap = yt()), (this.coordSysName = t)
  }
  var W_ = {
    cartesian2d: function (t, e, n, i) {
      var r = t.getReferringComponents('xAxis', ha).models[0],
        o = t.getReferringComponents('yAxis', ha).models[0]
      ;(e.coordSysDims = ['x', 'y']),
        n.set('x', r),
        n.set('y', o),
        H_(r) && (i.set('x', r), (e.firstCategoryDimIndex = 0)),
        H_(o) && (i.set('y', o), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = 1))
    },
    singleAxis: function (t, e, n, i) {
      var r = t.getReferringComponents('singleAxis', ha).models[0]
      ;(e.coordSysDims = ['single']), n.set('single', r), H_(r) && (i.set('single', r), (e.firstCategoryDimIndex = 0))
    },
    polar: function (t, e, n, i) {
      var r = t.getReferringComponents('polar', ha).models[0],
        o = r.findAxisModel('radiusAxis'),
        a = r.findAxisModel('angleAxis')
      ;(e.coordSysDims = ['radius', 'angle']),
        n.set('radius', o),
        n.set('angle', a),
        H_(o) && (i.set('radius', o), (e.firstCategoryDimIndex = 0)),
        H_(a) && (i.set('angle', a), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = 1))
    },
    geo: function (t, e, n, i) {
      e.coordSysDims = ['lng', 'lat']
    },
    parallel: function (t, e, n, i) {
      var r = t.ecModel,
        o = r.getComponent('parallel', t.get('parallelIndex')),
        a = (e.coordSysDims = o.dimensions.slice())
      z(o.parallelAxisIndex, function (t, o) {
        var s = r.getComponent('parallelAxis', t),
          l = a[o]
        n.set(l, s), H_(s) && (i.set(l, s), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = o))
      })
    },
    matrix: function (t, e, n, i) {
      var r = t.getReferringComponents('matrix', ha).models[0]
      e.coordSysDims = ['x', 'y']
      var o = r.getDimensionModel('x'),
        a = r.getDimensionModel('y')
      n.set('x', o), n.set('y', a), i.set('x', o), i.set('y', a)
    }
  }
  function H_(t) {
    return 'category' === t.get('type')
  }
  function U_(t, e, n) {
    var i,
      r,
      o,
      a = (n = n || {}).byIndex,
      s = n.stackedCoordDimension
    !(function (t) {
      return !w_(t.schema)
    })(e)
      ? ((r = e.schema), (i = r.dimensions), (o = e.store))
      : (i = e)
    var l,
      u,
      c,
      h,
      d = !(!t || !t.get('stack'))
    if (
      (z(i, function (t, e) {
        X(t) && (i[e] = t = { name: t }),
          d && !t.isExtraCoord && (a || l || !t.ordinalMeta || (l = t), u || 'ordinal' === t.type || 'time' === t.type || (s && s !== t.coordDim) || (u = t))
      }),
      !u || a || l || (a = !0),
      u)
    ) {
      ;(c = '__\0ecstackresult_' + t.id), (h = '__\0ecstackedover_' + t.id), l && (l.createInvertedIndices = !0)
      var p = u.coordDim,
        f = u.type,
        g = 0
      z(i, function (t) {
        t.coordDim === p && g++
      })
      var y = { name: c, coordDim: p, coordDimIndex: g, type: f, isExtraCoord: !0, isCalculationCoord: !0, storeDimIndex: i.length },
        v = { name: h, coordDim: h, coordDimIndex: g + 1, type: f, isExtraCoord: !0, isCalculationCoord: !0, storeDimIndex: i.length + 1 }
      r
        ? (o && ((y.storeDimIndex = o.ensureCalculationDimension(h, f)), (v.storeDimIndex = o.ensureCalculationDimension(c, f))),
          r.appendCalculationDimension(y),
          r.appendCalculationDimension(v))
        : (i.push(y), i.push(v))
    }
    return { stackedDimension: u && u.name, stackedByDimension: l && l.name, isStackedByIndex: a, stackedOverDimension: h, stackResultDimension: c }
  }
  function Y_(t, e) {
    return !!e && e === t.getCalculationInfo('stackedDimension')
  }
  function X_(t, e) {
    return Y_(t, e) ? t.getCalculationInfo('stackResultDimension') : e
  }
  function Z_(t, e, n) {
    n = n || {}
    var i,
      r = e.getSourceManager(),
      o = !1
    t ? ((o = !0), (i = wg(t))) : (o = (i = r.getSource()).sourceFormat === hf)
    var a = (function (t) {
        var e = t.get('coordinateSystem'),
          n = new F_(e),
          i = W_[e]
        if (i) return i(t, n, n.axisMap, n.categoryAxisMap), n
      })(e),
      s = (function (t, e) {
        var n,
          i = t.get('coordinateSystem'),
          r = Tp.get(i)
        return (
          e &&
            e.coordSysDims &&
            (n = E(e.coordSysDims, function (t) {
              var n = { name: t },
                i = e.axisMap.get(t)
              if (i) {
                var r = i.get('type')
                n.type = v_(r)
              }
              return n
            })),
          n || (n = (r && (r.getDimensionsInfo ? r.getDimensionsInfo() : r.dimensions.slice())) || ['x', 'y']),
          n
        )
      })(e, a),
      l = n.useEncodeDefaulter,
      u = Y(l) ? l : l ? H(Sf, s, e) : null,
      c = V_(i, { coordDimensions: s, generateCoord: n.generateCoord, encodeDefine: e.getEncode(), encodeDefaulter: u, canOmitUnusedDimensions: !o }),
      h = (function (t, e, n) {
        var i, r
        return (
          n &&
            z(t, function (t, o) {
              var a = t.coordDim,
                s = n.categoryAxisMap.get(a)
              s && (null == i && (i = o), (t.ordinalMeta = s.getOrdinalMeta()), e && (t.createInvertedIndices = !0)), null != t.otherDims.itemName && (r = !0)
            }),
          r || null == i || (t[i].otherDims.itemName = 0),
          i
        )
      })(c.dimensions, n.createInvertedIndices, a),
      d = o ? null : r.getSharedDataStore(c),
      p = U_(e, { schema: c, store: d }),
      f = new B_(c, e)
    f.setCalculationInfo(p)
    var g =
      null != h &&
      (function (t) {
        if (t.sourceFormat === hf) {
          var e = (function (t) {
            var e = 0
            for (; e < t.length && null == t[e]; ) e++
            return t[e]
          })(t.data || [])
          return !U(Jo(e))
        }
      })(i)
        ? function (t, e, n, i) {
            return i === h ? n : this.defaultDimValueGetter(t, e, n, i)
          }
        : null
    return (f.hasItemOption = !1), f.initData(o ? i : d, null, g), f
  }
  function j_(t) {
    return 'interval' === t.type || 'log' === t.type
  }
  function q_(t, e, n, i, r) {
    var o = {},
      a = (o.interval = Po(e / n, !0))
    null != i && a < i && (a = o.interval = i), null != r && a > r && (a = o.interval = r)
    var s = (o.intervalPrecision = $_(a))
    return (
      (function (t, e) {
        !isFinite(t[0]) && (t[0] = e[0]), !isFinite(t[1]) && (t[1] = e[1]), J_(t, 0, e), J_(t, 1, e), t[0] > t[1] && (t[0] = t[1])
      })((o.niceTickExtent = [mo(Math.ceil(t[0] / a) * a, s), mo(Math.floor(t[1] / a) * a, s)]), t),
      o
    )
  }
  function K_(t) {
    var e = Math.pow(10, Lo(t)),
      n = t / e
    return n ? (2 === n ? (n = 3) : 3 === n ? (n = 5) : (n *= 2)) : (n = 1), mo(n * e)
  }
  function $_(t) {
    return _o(t) + 2
  }
  function J_(t, e, n) {
    t[e] = Math.max(Math.min(t[e], n[1]), n[0])
  }
  function Q_(t, e) {
    return t >= e[0] && t <= e[1]
  }
  var tb = (function () {
    function t() {
      ;(this.normalize = eb), (this.scale = nb)
    }
    return (
      (t.prototype.updateMethods = function (t) {
        t.hasBreaks() ? ((this.normalize = W(t.normalize, t)), (this.scale = W(t.scale, t))) : ((this.normalize = eb), (this.scale = nb))
      }),
      t
    )
  })()
  function eb(t, e) {
    return e[1] === e[0] ? 0.5 : (t - e[0]) / (e[1] - e[0])
  }
  function nb(t, e) {
    return t * (e[1] - e[0]) + e[0]
  }
  function ib(t, e, n) {
    var i = Math.log(t)
    return [Math.log(n ? e[0] : Math.max(0, e[0])) / i, Math.log(n ? e[1] : Math.max(0, e[1])) / i]
  }
  var rb = (function () {
    function t(t) {
      ;(this._calculator = new tb()), (this._setting = t || {}), (this._extent = [1 / 0, -1 / 0])
      var e = Nd()
      e && ((this._brkCtx = e.createScaleBreakContext()), this._brkCtx.update(this._extent))
    }
    return (
      (t.prototype.getSetting = function (t) {
        return this._setting[t]
      }),
      (t.prototype._innerUnionExtent = function (t) {
        var e = this._extent
        this._innerSetExtent(t[0] < e[0] ? t[0] : e[0], t[1] > e[1] ? t[1] : e[1])
      }),
      (t.prototype.unionExtentFromData = function (t, e) {
        this._innerUnionExtent(t.getApproximateExtent(e))
      }),
      (t.prototype.getExtent = function () {
        return this._extent.slice()
      }),
      (t.prototype.setExtent = function (t, e) {
        this._innerSetExtent(t, e)
      }),
      (t.prototype._innerSetExtent = function (t, e) {
        var n = this._extent
        isNaN(t) || (n[0] = t), isNaN(e) || (n[1] = e), this._brkCtx && this._brkCtx.update(n)
      }),
      (t.prototype.setBreaksFromOption = function (t) {
        var e = Nd()
        e && this._innerSetBreak(e.parseAxisBreakOption(t, W(this.parse, this)))
      }),
      (t.prototype._innerSetBreak = function (t) {
        this._brkCtx && (this._brkCtx.setBreaks(t), this._calculator.updateMethods(this._brkCtx), this._brkCtx.update(this._extent))
      }),
      (t.prototype._innerGetBreaks = function () {
        return this._brkCtx ? this._brkCtx.breaks : []
      }),
      (t.prototype.hasBreaks = function () {
        return !!this._brkCtx && this._brkCtx.hasBreaks()
      }),
      (t.prototype._getExtentSpanWithBreaks = function () {
        return this._brkCtx && this._brkCtx.hasBreaks() ? this._brkCtx.getExtentSpan() : this._extent[1] - this._extent[0]
      }),
      (t.prototype.isInExtentRange = function (t) {
        return this._extent[0] <= t && this._extent[1] >= t
      }),
      (t.prototype.isBlank = function () {
        return this._isBlank
      }),
      (t.prototype.setBlank = function (t) {
        this._isBlank = t
      }),
      t
    )
  })()
  Ca(rb)
  var ob = 0,
    ab = (function () {
      function t(t) {
        ;(this.categories = t.categories || []), (this._needCollect = t.needCollect), (this._deduplication = t.deduplication), (this.uid = ++ob), (this._onCollect = t.onCollect)
      }
      return (
        (t.createByAxisModel = function (e) {
          var n = e.option,
            i = n.data,
            r = i && E(i, sb)
          return new t({ categories: r, needCollect: !r, deduplication: !1 !== n.dedplication })
        }),
        (t.prototype.getOrdinal = function (t) {
          return this._getOrCreateMap().get(t)
        }),
        (t.prototype.parseAndCollect = function (t) {
          var e,
            n = this._needCollect
          if (!X(t) && !n) return t
          if (n && !this._deduplication) return (e = this.categories.length), (this.categories[e] = t), this._onCollect && this._onCollect(t, e), e
          var i = this._getOrCreateMap()
          return null == (e = i.get(t)) && (n ? ((e = this.categories.length), (this.categories[e] = t), i.set(t, e), this._onCollect && this._onCollect(t, e)) : (e = NaN)), e
        }),
        (t.prototype._getOrCreateMap = function () {
          return this._map || (this._map = yt(this.categories))
        }),
        t
      )
    })()
  function sb(t) {
    return q(t) && null != t.value ? t.value : t + ''
  }
  var lb = (function (t) {
    function e(e) {
      var n = t.call(this, e) || this
      n.type = 'ordinal'
      var i = n.getSetting('ordinalMeta')
      return (
        i || (i = new ab({})),
        U(i) &&
          (i = new ab({
            categories: E(i, function (t) {
              return q(t) ? t.value : t
            })
          })),
        (n._ordinalMeta = i),
        (n._extent = n.getSetting('extent') || [0, i.categories.length - 1]),
        n
      )
    }
    return (
      n(e, t),
      (e.prototype.parse = function (t) {
        return null == t ? NaN : X(t) ? this._ordinalMeta.getOrdinal(t) : Math.round(t)
      }),
      (e.prototype.contain = function (t) {
        return Q_(t, this._extent) && t >= 0 && t < this._ordinalMeta.categories.length
      }),
      (e.prototype.normalize = function (t) {
        return (t = this._getTickNumber(t)), this._calculator.normalize(t, this._extent)
      }),
      (e.prototype.scale = function (t) {
        return (t = Math.round(this._calculator.scale(t, this._extent))), this.getRawOrdinalNumber(t)
      }),
      (e.prototype.getTicks = function () {
        for (var t = [], e = this._extent, n = e[0]; n <= e[1]; ) t.push({ value: n }), n++
        return t
      }),
      (e.prototype.getMinorTicks = function (t) {}),
      (e.prototype.setSortInfo = function (t) {
        if (null != t) {
          for (
            var e = t.ordinalNumbers,
              n = (this._ordinalNumbersByTick = []),
              i = (this._ticksByOrdinalNumber = []),
              r = 0,
              o = this._ordinalMeta.categories.length,
              a = Math.min(o, e.length);
            r < a;
            ++r
          ) {
            var s = e[r]
            ;(n[r] = s), (i[s] = r)
          }
          for (var l = 0; r < o; ++r) {
            for (; null != i[l]; ) l++
            n.push(l), (i[l] = r)
          }
        } else this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null
      }),
      (e.prototype._getTickNumber = function (t) {
        var e = this._ticksByOrdinalNumber
        return e && t >= 0 && t < e.length ? e[t] : t
      }),
      (e.prototype.getRawOrdinalNumber = function (t) {
        var e = this._ordinalNumbersByTick
        return e && t >= 0 && t < e.length ? e[t] : t
      }),
      (e.prototype.getLabel = function (t) {
        if (!this.isBlank()) {
          var e = this.getRawOrdinalNumber(t.value),
            n = this._ordinalMeta.categories[e]
          return null == n ? '' : n + ''
        }
      }),
      (e.prototype.count = function () {
        return this._extent[1] - this._extent[0] + 1
      }),
      (e.prototype.isInExtentRange = function (t) {
        return (t = this._getTickNumber(t)), this._extent[0] <= t && this._extent[1] >= t
      }),
      (e.prototype.getOrdinalMeta = function () {
        return this._ordinalMeta
      }),
      (e.prototype.calcNiceTicks = function () {}),
      (e.prototype.calcNiceExtent = function () {}),
      (e.type = 'ordinal'),
      e
    )
  })(rb)
  rb.registerClass(lb)
  var ub = mo,
    cb = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.type = 'interval'), (e._interval = 0), (e._intervalPrecision = 2), e
      }
      return (
        n(e, t),
        (e.prototype.parse = function (t) {
          return null == t || '' === t ? NaN : Number(t)
        }),
        (e.prototype.contain = function (t) {
          return Q_(t, this._extent)
        }),
        (e.prototype.normalize = function (t) {
          return this._calculator.normalize(t, this._extent)
        }),
        (e.prototype.scale = function (t) {
          return this._calculator.scale(t, this._extent)
        }),
        (e.prototype.getInterval = function () {
          return this._interval
        }),
        (e.prototype.setInterval = function (t) {
          ;(this._interval = t), (this._niceExtent = this._extent.slice()), (this._intervalPrecision = $_(t))
        }),
        (e.prototype.getTicks = function (t) {
          t = t || {}
          var e = this._interval,
            n = this._extent,
            i = this._niceExtent,
            r = this._intervalPrecision,
            o = Nd(),
            a = []
          if (!e) return a
          if ('only_break' === t.breakTicks && o) return o.addBreaksToTicks(a, this._brkCtx.breaks, this._extent), a
          n[0] < i[0] && (t.expandToNicedExtent ? a.push({ value: ub(i[0] - e, r) }) : a.push({ value: n[0] }))
          for (
            var s = function (t, n) {
                return Math.round((n - t) / e)
              },
              l = i[0];
            l <= i[1];

          ) {
            if ((a.push({ value: l }), (l = ub(l + e, r)), this._brkCtx)) {
              var u = this._brkCtx.calcNiceTickMultiple(l, s)
              u >= 0 && (l = ub(l + u * e, r))
            }
            if (a.length > 0 && l === a[a.length - 1].value) break
            if (a.length > 1e4) return []
          }
          var c = a.length ? a[a.length - 1].value : i[1]
          return (
            n[1] > c && (t.expandToNicedExtent ? a.push({ value: ub(c + e, r) }) : a.push({ value: n[1] })),
            o &&
              o.pruneTicksByBreak(
                t.pruneByBreak,
                a,
                this._brkCtx.breaks,
                function (t) {
                  return t.value
                },
                this._interval,
                this._extent
              ),
            'none' !== t.breakTicks && o && o.addBreaksToTicks(a, this._brkCtx.breaks, this._extent),
            a
          )
        }),
        (e.prototype.getMinorTicks = function (t) {
          for (var e = this.getTicks({ expandToNicedExtent: !0 }), n = [], i = this.getExtent(), r = 1; r < e.length; r++) {
            var o = e[r],
              a = e[r - 1]
            if (!a.break && !o.break) {
              for (var s = 0, l = [], u = (o.value - a.value) / t, c = $_(u); s < t - 1; ) {
                var h = ub(a.value + (s + 1) * u, c)
                h > i[0] && h < i[1] && l.push(h), s++
              }
              var d = Nd()
              d &&
                d.pruneTicksByBreak(
                  'auto',
                  l,
                  this._getNonTransBreaks(),
                  function (t) {
                    return t
                  },
                  this._interval,
                  i
                ),
                n.push(l)
            }
          }
          return n
        }),
        (e.prototype._getNonTransBreaks = function () {
          return this._brkCtx ? this._brkCtx.breaks : []
        }),
        (e.prototype.getLabel = function (t, e) {
          if (null == t) return ''
          var n = e && e.precision
          return null == n ? (n = _o(t.value) || 0) : 'auto' === n && (n = this._intervalPrecision), fp(ub(t.value, n, !0))
        }),
        (e.prototype.calcNiceTicks = function (t, e, n) {
          t = t || 5
          var i = this._extent.slice(),
            r = this._getExtentSpanWithBreaks()
          if (isFinite(r)) {
            r < 0 && ((r = -r), i.reverse(), this._innerSetExtent(i[0], i[1]), (i = this._extent.slice()))
            var o = q_(i, r, t, e, n)
            ;(this._intervalPrecision = o.intervalPrecision), (this._interval = o.interval), (this._niceExtent = o.niceTickExtent)
          }
        }),
        (e.prototype.calcNiceExtent = function (t) {
          var e = this._extent.slice()
          if (e[0] === e[1])
            if (0 !== e[0]) {
              var n = Math.abs(e[0])
              t.fixMax || (e[1] += n / 2), (e[0] -= n / 2)
            } else e[1] = 1
          var i = e[1] - e[0]
          isFinite(i) || ((e[0] = 0), (e[1] = 1)), this._innerSetExtent(e[0], e[1]), (e = this._extent.slice()), this.calcNiceTicks(t.splitNumber, t.minInterval, t.maxInterval)
          var r = this._interval,
            o = this._intervalPrecision
          t.fixMin || (e[0] = ub(Math.floor(e[0] / r) * r, o)), t.fixMax || (e[1] = ub(Math.ceil(e[1] / r) * r, o)), this._innerSetExtent(e[0], e[1])
        }),
        (e.prototype.setNiceExtent = function (t, e) {
          this._niceExtent = [t, e]
        }),
        (e.type = 'interval'),
        e
      )
    })(rb)
  rb.registerClass(cb)
  var hb = 'undefined' != typeof Float32Array,
    db = hb ? Float32Array : Array
  function pb(t) {
    return U(t) ? (hb ? new Float32Array(t) : t) : new db(t)
  }
  var fb = '__ec_stack_'
  function gb(t) {
    return t.get('stack') || fb + t.seriesIndex
  }
  function yb(t) {
    return t.dim + t.index
  }
  function vb(t, e) {
    var n = []
    return (
      e.eachSeriesByType(t, function (t) {
        wb(t) && n.push(t)
      }),
      n
    )
  }
  function mb(t) {
    var e = (function (t) {
        var e = {}
        z(t, function (t) {
          var n = t.coordinateSystem.getBaseAxis()
          if ('time' === n.type || 'value' === n.type)
            for (var i = t.getData(), r = n.dim + '_' + n.index, o = i.getDimensionIndex(i.mapDimension(n.dim)), a = i.getStore(), s = 0, l = a.count(); s < l; ++s) {
              var u = a.get(o, s)
              e[r] ? e[r].push(u) : (e[r] = [u])
            }
        })
        var n = {}
        for (var i in e)
          if (e.hasOwnProperty(i)) {
            var r = e[i]
            if (r) {
              r.sort(function (t, e) {
                return t - e
              })
              for (var o = null, a = 1; a < r.length; ++a) {
                var s = r[a] - r[a - 1]
                s > 0 && (o = null === o ? s : Math.min(o, s))
              }
              n[i] = o
            }
          }
        return n
      })(t),
      n = []
    return (
      z(t, function (t) {
        var i,
          r = t.coordinateSystem.getBaseAxis(),
          o = r.getExtent()
        if ('category' === r.type) i = r.getBandWidth()
        else if ('value' === r.type || 'time' === r.type) {
          var a = r.dim + '_' + r.index,
            s = e[a],
            l = Math.abs(o[1] - o[0]),
            u = r.scale.getExtent(),
            c = Math.abs(u[1] - u[0])
          i = s ? (l / c) * s : l
        } else {
          var h = t.getData()
          i = Math.abs(o[1] - o[0]) / h.count()
        }
        var d = yo(t.get('barWidth'), i),
          p = yo(t.get('barMaxWidth'), i),
          f = yo(t.get('barMinWidth') || (Sb(t) ? 0.5 : 1), i),
          g = t.get('barGap'),
          y = t.get('barCategoryGap'),
          v = t.get('defaultBarGap')
        n.push({ bandWidth: i, barWidth: d, barMaxWidth: p, barMinWidth: f, barGap: g, barCategoryGap: y, defaultBarGap: v, axisKey: yb(r), stackId: gb(t) })
      }),
      xb(n)
    )
  }
  function xb(t) {
    var e = {}
    z(t, function (t, n) {
      var i = t.axisKey,
        r = t.bandWidth,
        o = e[i] || { bandWidth: r, remainedWidth: r, autoWidthCount: 0, categoryGap: null, gap: t.defaultBarGap || 0, stacks: {} },
        a = o.stacks
      e[i] = o
      var s = t.stackId
      a[s] || o.autoWidthCount++, (a[s] = a[s] || { width: 0, maxWidth: 0 })
      var l = t.barWidth
      l && !a[s].width && ((a[s].width = l), (l = Math.min(o.remainedWidth, l)), (o.remainedWidth -= l))
      var u = t.barMaxWidth
      u && (a[s].maxWidth = u)
      var c = t.barMinWidth
      c && (a[s].minWidth = c)
      var h = t.barGap
      null != h && (o.gap = h)
      var d = t.barCategoryGap
      null != d && (o.categoryGap = d)
    })
    var n = {}
    return (
      z(e, function (t, e) {
        n[e] = {}
        var i = t.stacks,
          r = t.bandWidth,
          o = t.categoryGap
        if (null == o) {
          var a = F(i).length
          o = Math.max(35 - 4 * a, 15) + '%'
        }
        var s = yo(o, r),
          l = yo(t.gap, 1),
          u = t.remainedWidth,
          c = t.autoWidthCount,
          h = (u - s) / (c + (c - 1) * l)
        ;(h = Math.max(h, 0)),
          z(i, function (t) {
            var e = t.maxWidth,
              n = t.minWidth
            if (t.width) {
              i = t.width
              e && (i = Math.min(i, e)), n && (i = Math.max(i, n)), (t.width = i), (u -= i + l * i), c--
            } else {
              var i = h
              e && e < i && (i = Math.min(e, u)), n && n > i && (i = n), i !== h && ((t.width = i), (u -= i + l * i), c--)
            }
          }),
          (h = (u - s) / (c + (c - 1) * l)),
          (h = Math.max(h, 0))
        var d,
          p = 0
        z(i, function (t, e) {
          t.width || (t.width = h), (d = t), (p += t.width * (1 + l))
        }),
          d && (p -= d.width * l)
        var f = -p / 2
        z(i, function (t, i) {
          ;(n[e][i] = n[e][i] || { bandWidth: r, offset: f, width: t.width }), (f += t.width * (1 + l))
        })
      }),
      n
    )
  }
  function _b(t, e) {
    var n = vb(t, e),
      i = mb(n)
    z(n, function (t) {
      var e = t.getData(),
        n = t.coordinateSystem.getBaseAxis(),
        r = gb(t),
        o = i[yb(n)][r],
        a = o.offset,
        s = o.width
      e.setLayout({ bandWidth: o.bandWidth, offset: a, size: s })
    })
  }
  function bb(t) {
    return {
      seriesType: t,
      plan: $y(),
      reset: function (t) {
        if (wb(t)) {
          var e = t.getData(),
            n = t.coordinateSystem,
            i = n.getBaseAxis(),
            r = n.getOtherAxis(i),
            o = e.getDimensionIndex(e.mapDimension(r.dim)),
            a = e.getDimensionIndex(e.mapDimension(i.dim)),
            s = t.get('showBackground', !0),
            l = e.mapDimension(r.dim),
            u = e.getCalculationInfo('stackResultDimension'),
            c = Y_(e, l) && !!e.getCalculationInfo('stackedOnSeries'),
            h = r.isHorizontal(),
            d = (function (t, e) {
              var n = e.model.get('startValue')
              n || (n = 0)
              return e.toGlobalCoord(e.dataToCoord('log' === e.type ? (n > 0 ? n : 1) : n))
            })(0, r),
            p = Sb(t),
            f = t.get('barMinHeight') || 0,
            g = u && e.getDimensionIndex(u),
            y = e.getLayout('size'),
            v = e.getLayout('offset')
          return {
            progress: function (t, e) {
              for (
                var i, r = t.count, l = p && pb(3 * r), u = p && s && pb(3 * r), m = p && pb(r), x = n.master.getRect(), _ = h ? x.width : x.height, b = e.getStore(), w = 0;
                null != (i = t.next());

              ) {
                var S = b.get(c ? g : o, i),
                  M = b.get(a, i),
                  I = d,
                  T = void 0
                c && (T = +S - b.get(o, i))
                var C = void 0,
                  D = void 0,
                  A = void 0,
                  k = void 0
                if (h) {
                  var L = n.dataToPoint([S, M])
                  if (c) I = n.dataToPoint([T, M])[0]
                  ;(C = I), (D = L[1] + v), (A = L[0] - I), (k = y), Math.abs(A) < f && (A = (A < 0 ? -1 : 1) * f)
                } else {
                  L = n.dataToPoint([M, S])
                  if (c) I = n.dataToPoint([M, T])[1]
                  ;(C = L[0] + v), (D = I), (A = y), (k = L[1] - I), Math.abs(k) < f && (k = (k <= 0 ? -1 : 1) * f)
                }
                p
                  ? ((l[w] = C), (l[w + 1] = D), (l[w + 2] = h ? A : k), u && ((u[w] = h ? x.x : C), (u[w + 1] = h ? D : x.y), (u[w + 2] = _)), (m[i] = i))
                  : e.setItemLayout(i, { x: C, y: D, width: A, height: k }),
                  (w += 3)
              }
              p && e.setLayout({ largePoints: l, largeDataIndices: m, largeBackgroundPoints: u, valueAxisHorizontal: h })
            }
          }
        }
      }
    }
  }
  function wb(t) {
    return t.coordinateSystem && 'cartesian2d' === t.coordinateSystem.type
  }
  function Sb(t) {
    return t.pipelineContext && t.pipelineContext.large
  }
  var Mb = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'time'), n
      }
      return (
        n(e, t),
        (e.prototype.getLabel = function (t) {
          var e = this.getSetting('useUTC')
          return $d(
            t.value,
            Ud[
              (function (t) {
                switch (t) {
                  case 'year':
                  case 'month':
                    return 'day'
                  case 'millisecond':
                    return 'millisecond'
                  default:
                    return 'second'
                }
              })(qd(this._minLevelUnit))
            ] || Ud.second,
            e,
            this.getSetting('locale')
          )
        }),
        (e.prototype.getFormattedLabel = function (t, e, n) {
          var i = this.getSetting('useUTC')
          return (function (t, e, n, i, r) {
            var o = null
            if (X(n)) o = n
            else if (Y(n)) {
              var a = { time: t.time, level: t.time.level },
                s = Nd()
              s && s.makeAxisLabelFormatterParamBreak(a, t.break), (o = n(t.value, e, a))
            } else {
              var l = t.time
              if (l) {
                var u = n[l.lowerTimeUnit][l.upperTimeUnit]
                o = u[Math.min(l.level, u.length - 1)] || ''
              } else {
                var c = Jd(t.value, r)
                o = n[c][c][0]
              }
            }
            return $d(new Date(t.value), o, r, i)
          })(t, e, n, this.getSetting('locale'), i)
        }),
        (e.prototype.getTicks = function (t) {
          t = t || {}
          var e = this._interval,
            n = this._extent,
            i = Nd(),
            r = []
          if (!e) return r
          var o = this.getSetting('useUTC')
          if (i && 'only_break' === t.breakTicks) return Nd().addBreaksToTicks(r, this._brkCtx.breaks, this._extent), r
          var a = Jd(n[1], o)
          r.push({ value: n[0], time: { level: 0, upperTimeUnit: a, lowerTimeUnit: a } })
          var s = (function (t, e, n, i, r, o) {
            var a = 1e4,
              s = Xd,
              l = 0
            function u(t, e, n, r, s, u, c) {
              for (
                var h = (function (t, e) {
                    var n = new Date(0)
                    n[t](1)
                    var i = n.getTime()
                    n[t](1 + e)
                    var r = n.getTime() - i
                    return function (t, e) {
                      return Math.max(0, Math.round((e - t) / r))
                    }
                  })(s, t),
                  d = e,
                  p = new Date(d);
                d < n && d <= i[1];

              ) {
                if ((c.push({ value: d }), l++ > a)) {
                  0
                  break
                }
                if ((p[s](p[r]() + t), (d = p.getTime()), o)) {
                  var f = o.calcNiceTickMultiple(d, h)
                  f > 0 && (p[s](p[r]() + f * t), (d = p.getTime()))
                }
              }
              c.push({ value: d, notAdd: !0 })
            }
            function c(t, r, o) {
              var a = [],
                s = !r.length
              if (!Tb(qd(t), i[0], i[1], n)) {
                s && (r = [{ value: Pb(i[0], t, n) }, { value: i[1] }])
                for (var l = 0; l < r.length - 1; l++) {
                  var c = r[l].value,
                    h = r[l + 1].value
                  if (c !== h) {
                    var d = void 0,
                      p = void 0,
                      f = void 0,
                      g = !1
                    switch (t) {
                      case 'year':
                        ;(d = Math.max(1, Math.round(e / Vd / 365))), (p = tp(n)), (f = sp(n))
                        break
                      case 'half-year':
                      case 'quarter':
                      case 'month':
                        ;(d = Db(e)), (p = ep(n)), (f = lp(n))
                        break
                      case 'week':
                      case 'half-week':
                      case 'day':
                        ;(d = Cb(e)), (p = np(n)), (f = up(n)), (g = !0)
                        break
                      case 'half-day':
                      case 'quarter-day':
                      case 'hour':
                        ;(d = Ab(e)), (p = ip(n)), (f = cp(n))
                        break
                      case 'minute':
                        ;(d = kb(e, !0)), (p = rp(n)), (f = hp(n))
                        break
                      case 'second':
                        ;(d = kb(e, !1)), (p = op(n)), (f = dp(n))
                        break
                      case 'millisecond':
                        ;(d = Lb(e)), (p = ap(n)), (f = pp(n))
                    }
                    h >= i[0] && c <= i[1] && u(d, c, h, p, f, g, a), 'year' === t && o.length > 1 && 0 === l && o.unshift({ value: o[0].value - d })
                  }
                }
                for (l = 0; l < a.length; l++) o.push(a[l])
              }
            }
            for (var h = [], d = [], p = 0, f = 0, g = 0; g < s.length; ++g) {
              var y = qd(s[g])
              if (Kd(s[g]))
                if ((c(s[g], h[h.length - 1] || [], d), y !== (s[g + 1] ? qd(s[g + 1]) : null))) {
                  if (d.length) {
                    ;(f = p),
                      d.sort(function (t, e) {
                        return t.value - e.value
                      })
                    for (var v = [], m = 0; m < d.length; ++m) {
                      var x = d[m].value
                      ;(0 !== m && d[m - 1].value === x) || (v.push(d[m]), x >= i[0] && x <= i[1] && p++)
                    }
                    var _ = r / e
                    if (p > 1.5 * _ && f > _ / 1.5) break
                    if ((h.push(v), p > _ || t === s[g])) break
                  }
                  d = []
                }
            }
            var b = V(
                E(h, function (t) {
                  return V(t, function (t) {
                    return t.value >= i[0] && t.value <= i[1] && !t.notAdd
                  })
                }),
                function (t) {
                  return t.length > 0
                }
              ),
              w = [],
              S = b.length - 1
            for (g = 0; g < b.length; ++g)
              for (var M = b[g], I = 0; I < M.length; ++I) {
                var T = Jd(M[I].value, n)
                w.push({ value: M[I].value, time: { level: S - g, upperTimeUnit: T, lowerTimeUnit: T } })
              }
            w.sort(function (t, e) {
              return t.value - e.value
            })
            var C = []
            for (g = 0; g < w.length; ++g) (0 !== g && w[g].value === w[g - 1].value) || C.push(w[g])
            return C
          })(this._minLevelUnit, this._approxInterval, o, n, this._getExtentSpanWithBreaks(), this._brkCtx)
          r = r.concat(s)
          var l = Jd(n[1], o)
          r.push({ value: n[1], time: { level: 0, upperTimeUnit: l, lowerTimeUnit: l } })
          var u = this.getSetting('useUTC'),
            c = Yd.length - 1,
            h = 0
          return (
            z(r, function (t) {
              ;(c = Math.min(c, P(Yd, t.time.upperTimeUnit))), (h = Math.max(h, t.time.level))
            }),
            i &&
              Nd().pruneTicksByBreak(
                t.pruneByBreak,
                r,
                this._brkCtx.breaks,
                function (t) {
                  return t.value
                },
                this._approxInterval,
                this._extent
              ),
            i &&
              'none' !== t.breakTicks &&
              Nd().addBreaksToTicks(r, this._brkCtx.breaks, this._extent, function (t) {
                for (var e = Math.max(P(Yd, Jd(t.vmin, u)), P(Yd, Jd(t.vmax, u))), n = 0, i = 0; i < Yd.length; i++)
                  if (!Tb(Yd[i], t.vmin, t.vmax, u)) {
                    n = i
                    break
                  }
                var r = Math.min(n, c),
                  o = Math.max(r, e)
                return { level: h, lowerTimeUnit: Yd[o], upperTimeUnit: Yd[r] }
              }),
            r
          )
        }),
        (e.prototype.calcNiceExtent = function (t) {
          var e = this.getExtent()
          if ((e[0] === e[1] && ((e[0] -= Vd), (e[1] += Vd)), e[1] === -1 / 0 && e[0] === 1 / 0)) {
            var n = new Date()
            ;(e[1] = +new Date(n.getFullYear(), n.getMonth(), n.getDate())), (e[0] = e[1] - Vd)
          }
          this._innerSetExtent(e[0], e[1]), this.calcNiceTicks(t.splitNumber, t.minInterval, t.maxInterval)
        }),
        (e.prototype.calcNiceTicks = function (t, e, n) {
          t = t || 10
          var i = this._getExtentSpanWithBreaks()
          ;(this._approxInterval = i / t), null != e && this._approxInterval < e && (this._approxInterval = e), null != n && this._approxInterval > n && (this._approxInterval = n)
          var r = Ib.length,
            o = Math.min(
              (function (t, e, n, i) {
                for (; n < i; ) {
                  var r = (n + i) >>> 1
                  t[r][1] < e ? (n = r + 1) : (i = r)
                }
                return n
              })(Ib, this._approxInterval, 0, r),
              r - 1
            )
          ;(this._interval = Ib[o][1]), (this._intervalPrecision = $_(this._interval)), (this._minLevelUnit = Ib[Math.max(o - 1, 0)][0])
        }),
        (e.prototype.parse = function (t) {
          return j(t) ? t : +Ao(t)
        }),
        (e.prototype.contain = function (t) {
          return Q_(t, this._extent)
        }),
        (e.prototype.normalize = function (t) {
          return this._calculator.normalize(t, this._extent)
        }),
        (e.prototype.scale = function (t) {
          return this._calculator.scale(t, this._extent)
        }),
        (e.type = 'time'),
        e
      )
    })(cb),
    Ib = [
      ['second', zd],
      ['minute', Ed],
      ['hour', Bd],
      ['quarter-day', 216e5],
      ['half-day', 432e5],
      ['day', 10368e4],
      ['half-week', 3024e5],
      ['week', 6048e5],
      ['month', 26784e5],
      ['quarter', 8208e6],
      ['half-year', Gd / 2],
      ['year', Gd]
    ]
  function Tb(t, e, n, i) {
    return Qd(new Date(e), t, i).getTime() === Qd(new Date(n), t, i).getTime()
  }
  function Cb(t, e) {
    return (t /= Vd) > 16 ? 16 : t > 7.5 ? 7 : t > 3.5 ? 4 : t > 1.5 ? 2 : 1
  }
  function Db(t) {
    return (t /= 2592e6) > 6 ? 6 : t > 3 ? 3 : t > 2 ? 2 : 1
  }
  function Ab(t) {
    return (t /= Bd) > 12 ? 12 : t > 6 ? 6 : t > 3.5 ? 4 : t > 2 ? 2 : 1
  }
  function kb(t, e) {
    return (t /= e ? Ed : zd) > 30 ? 30 : t > 20 ? 20 : t > 15 ? 15 : t > 10 ? 10 : t > 5 ? 5 : t > 2 ? 2 : 1
  }
  function Lb(t) {
    return Po(t, !0)
  }
  function Pb(t, e, n) {
    var i = Math.max(0, P(Yd, e) - 1)
    return Qd(new Date(t), Yd[i], n).getTime()
  }
  rb.registerClass(Mb)
  var Ob = mo,
    Rb = Math.floor,
    Nb = Math.ceil,
    zb = Math.pow,
    Eb = Math.log,
    Bb = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.type = 'log'), (e.base = 10), (e._originalScale = new cb()), e
      }
      return (
        n(e, t),
        (e.prototype.getTicks = function (e) {
          e = e || {}
          var n = this._extent.slice(),
            i = this._originalScale.getExtent(),
            r = t.prototype.getTicks.call(this, e),
            o = this.base,
            a = this._originalScale._innerGetBreaks(),
            s = Nd()
          return E(
            r,
            function (t) {
              var e,
                r = t.value,
                l = null,
                u = zb(o, r)
              if ((r === n[0] && this._fixMin ? (l = i[0]) : r === n[1] && this._fixMax && (l = i[1]), s)) {
                var c = s.getTicksLogTransformBreak(t, o, a, Vb)
                ;(e = c.vBreak), null == l && (l = c.brkRoundingCriterion)
              }
              return null != l && (u = Vb(u, l)), { value: u, break: e }
            },
            this
          )
        }),
        (e.prototype._getNonTransBreaks = function () {
          return this._originalScale._innerGetBreaks()
        }),
        (e.prototype.setExtent = function (e, n) {
          this._originalScale.setExtent(e, n)
          var i = ib(this.base, [e, n])
          t.prototype.setExtent.call(this, i[0], i[1])
        }),
        (e.prototype.getExtent = function () {
          var e = this.base,
            n = t.prototype.getExtent.call(this)
          ;(n[0] = zb(e, n[0])), (n[1] = zb(e, n[1]))
          var i = this._originalScale.getExtent()
          return this._fixMin && (n[0] = Vb(n[0], i[0])), this._fixMax && (n[1] = Vb(n[1], i[1])), n
        }),
        (e.prototype.unionExtentFromData = function (t, e) {
          this._originalScale.unionExtentFromData(t, e)
          var n = ib(this.base, t.getApproximateExtent(e), !0)
          this._innerUnionExtent(n)
        }),
        (e.prototype.calcNiceTicks = function (t) {
          t = t || 10
          var e = this._extent.slice(),
            n = this._getExtentSpanWithBreaks()
          if (isFinite(n) && !(n <= 0)) {
            var i = ko(n)
            for ((t / n) * i <= 0.5 && (i *= 10); !isNaN(i) && Math.abs(i) < 1 && Math.abs(i) > 0; ) i *= 10
            var r = [Ob(Nb(e[0] / i) * i), Ob(Rb(e[1] / i) * i)]
            ;(this._interval = i), (this._intervalPrecision = $_(i)), (this._niceExtent = r)
          }
        }),
        (e.prototype.calcNiceExtent = function (e) {
          t.prototype.calcNiceExtent.call(this, e), (this._fixMin = e.fixMin), (this._fixMax = e.fixMax)
        }),
        (e.prototype.contain = function (e) {
          return (e = Eb(e) / Eb(this.base)), t.prototype.contain.call(this, e)
        }),
        (e.prototype.normalize = function (e) {
          return (e = Eb(e) / Eb(this.base)), t.prototype.normalize.call(this, e)
        }),
        (e.prototype.scale = function (e) {
          return (e = t.prototype.scale.call(this, e)), zb(this.base, e)
        }),
        (e.prototype.setBreaksFromOption = function (t) {
          var e = Nd()
          if (e) {
            var n = e.logarithmicParseBreaksFromOption(t, this.base, W(this.parse, this)),
              i = n.parsedOriginal,
              r = n.parsedLogged
            this._originalScale._innerSetBreak(i), this._innerSetBreak(r)
          }
        }),
        (e.type = 'log'),
        e
      )
    })(cb)
  function Vb(t, e) {
    return Ob(t, _o(e))
  }
  rb.registerClass(Bb)
  var Gb = (function () {
      function t(t, e, n) {
        this._prepareParams(t, e, n)
      }
      return (
        (t.prototype._prepareParams = function (t, e, n) {
          n[1] < n[0] && (n = [NaN, NaN]), (this._dataMin = n[0]), (this._dataMax = n[1])
          var i = (this._isOrdinal = 'ordinal' === t.type)
          this._needCrossZero = 'interval' === t.type && e.getNeedCrossZero && e.getNeedCrossZero()
          var r = e.get('min', !0)
          null == r && (r = e.get('startValue', !0))
          var o = (this._modelMinRaw = r)
          Y(o) ? (this._modelMinNum = Ub(t, o({ min: n[0], max: n[1] }))) : 'dataMin' !== o && (this._modelMinNum = Ub(t, o))
          var a = (this._modelMaxRaw = e.get('max', !0))
          if ((Y(a) ? (this._modelMaxNum = Ub(t, a({ min: n[0], max: n[1] }))) : 'dataMax' !== a && (this._modelMaxNum = Ub(t, a)), i)) this._axisDataLen = e.getCategories().length
          else {
            var s = e.get('boundaryGap'),
              l = U(s) ? s : [s || 0, s || 0]
            'boolean' == typeof l[0] || 'boolean' == typeof l[1] ? (this._boundaryGapInner = [0, 0]) : (this._boundaryGapInner = [Fr(l[0], 1), Fr(l[1], 1)])
          }
        }),
        (t.prototype.calculate = function () {
          var t = this._isOrdinal,
            e = this._dataMin,
            n = this._dataMax,
            i = this._axisDataLen,
            r = this._boundaryGapInner,
            o = t ? null : n - e || Math.abs(e),
            a = 'dataMin' === this._modelMinRaw ? e : this._modelMinNum,
            s = 'dataMax' === this._modelMaxRaw ? n : this._modelMaxNum,
            l = null != a,
            u = null != s
          null == a && (a = t ? (i ? 0 : NaN) : e - r[0] * o),
            null == s && (s = t ? (i ? i - 1 : NaN) : n + r[1] * o),
            (null == a || !isFinite(a)) && (a = NaN),
            (null == s || !isFinite(s)) && (s = NaN)
          var c = nt(a) || nt(s) || (t && !i)
          this._needCrossZero && (a > 0 && s > 0 && !l && (a = 0), a < 0 && s < 0 && !u && (s = 0))
          var h = this._determinedMin,
            d = this._determinedMax
          return null != h && ((a = h), (l = !0)), null != d && ((s = d), (u = !0)), { min: a, max: s, minFixed: l, maxFixed: u, isBlank: c }
        }),
        (t.prototype.modifyDataMinMax = function (t, e) {
          this[Wb[t]] = e
        }),
        (t.prototype.setDeterminedMinMax = function (t, e) {
          var n = Fb[t]
          this[n] = e
        }),
        (t.prototype.freeze = function () {
          this.frozen = !0
        }),
        t
      )
    })(),
    Fb = { min: '_determinedMin', max: '_determinedMax' },
    Wb = { min: '_dataMin', max: '_dataMax' }
  function Hb(t, e, n) {
    var i = t.rawExtentInfo
    return i || ((i = new Gb(t, e, n)), (t.rawExtentInfo = i), i)
  }
  function Ub(t, e) {
    return null == e ? null : nt(e) ? NaN : t.parse(e)
  }
  function Yb(t, e) {
    var n = t.type,
      i = Hb(t, e, t.getExtent()).calculate()
    t.setBlank(i.isBlank)
    var r = i.min,
      o = i.max,
      a = e.ecModel
    if (a && 'time' === n) {
      var s = vb('bar', a),
        l = !1
      if (
        (z(s, function (t) {
          l = l || t.getBaseAxis() === e.axis
        }),
        l)
      ) {
        var u = mb(s),
          c = (function (t, e, n, i) {
            var r = n.axis.getExtent(),
              o = Math.abs(r[1] - r[0]),
              a = (function (t, e, n) {
                if (t && e) {
                  var i = t[yb(e)]
                  return null != i && null != n ? i[gb(n)] : i
                }
              })(i, n.axis)
            if (void 0 === a) return { min: t, max: e }
            var s = 1 / 0
            z(a, function (t) {
              s = Math.min(t.offset, s)
            })
            var l = -1 / 0
            z(a, function (t) {
              l = Math.max(t.offset + t.width, l)
            }),
              (s = Math.abs(s)),
              (l = Math.abs(l))
            var u = s + l,
              c = e - t,
              h = c / (1 - (s + l) / o) - c
            return (e += h * (l / u)), (t -= h * (s / u)), { min: t, max: e }
          })(r, o, e, u)
        ;(r = c.min), (o = c.max)
      }
    }
    return { extent: [r, o], fixMin: i.minFixed, fixMax: i.maxFixed }
  }
  function Xb(t, e) {
    var n = e,
      i = Yb(t, n),
      r = i.extent,
      o = n.get('splitNumber')
    t instanceof Bb && (t.base = n.get('logBase'))
    var a = t.type,
      s = n.get('interval'),
      l = 'interval' === a || 'time' === a
    t.setBreaksFromOption(ew(n)),
      t.setExtent(r[0], r[1]),
      t.calcNiceExtent({ splitNumber: o, fixMin: i.fixMin, fixMax: i.fixMax, minInterval: l ? n.get('minInterval') : null, maxInterval: l ? n.get('maxInterval') : null }),
      null != s && t.setInterval && t.setInterval(s)
  }
  function Zb(t, e) {
    if ((e = e || t.get('type')))
      switch (e) {
        case 'category':
          return new lb({ ordinalMeta: t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), extent: [1 / 0, -1 / 0] })
        case 'time':
          return new Mb({ locale: t.ecModel.getLocaleModel(), useUTC: t.ecModel.get('useUTC') })
        default:
          return new (rb.getClass(e) || cb)()
      }
  }
  function jb(t) {
    var e = t.getLabelModel().get('formatter')
    if ('time' === t.type) {
      var n = Zd(e)
      return function (e, i) {
        return t.scale.getFormattedLabel(e, i, n)
      }
    }
    if (X(e))
      return function (n) {
        var i = t.scale.getLabel(n)
        return e.replace('{value}', null != i ? i : '')
      }
    if (Y(e)) {
      if ('category' === t.type)
        return function (n, i) {
          return e(qb(t, n), n.value - t.scale.getExtent()[0], null)
        }
      var i = Nd()
      return function (n, r) {
        var o = null
        return i && (o = i.makeAxisLabelFormatterParamBreak(o, n.break)), e(qb(t, n), r, o)
      }
    }
    return function (e) {
      return t.scale.getLabel(e)
    }
  }
  function qb(t, e) {
    return 'category' === t.type ? t.scale.getLabel(e) : e.value
  }
  function Kb(t) {
    var e = t.get('interval')
    return null == e ? 'auto' : e
  }
  function $b(t) {
    return 'category' === t.type && 0 === Kb(t.getLabelModel())
  }
  function Jb(t, e) {
    var n = {}
    return (
      z(t.mapDimensionsAll(e), function (e) {
        n[X_(t, e)] = !0
      }),
      F(n)
    )
  }
  function Qb(t) {
    return 'middle' === t || 'center' === t
  }
  function tw(t) {
    return t.getShallow('show')
  }
  function ew(t) {
    var e,
      n = t.get('breaks', !0)
    if (null != n) return Nd() ? (('x' !== (e = t.axis).dim && 'y' !== e.dim && 'z' !== e.dim && 'single' !== e.dim) || 'category' === e.type ? void 0 : n) : void 0
  }
  var nw = (function () {
    function t() {}
    return (
      (t.prototype.getNeedCrossZero = function () {
        return !this.option.scale
      }),
      (t.prototype.getCoordSysModel = function () {}),
      t
    )
  })()
  var iw = { isDimensionStacked: Y_, enableDataStack: U_, getStackedDimension: X_ }
  var rw = Object.freeze({
    __proto__: null,
    createList: function (t) {
      return Z_(null, t)
    },
    getLayoutRect: Hp,
    dataStack: iw,
    createScale: function (t, e) {
      var n = e
      e instanceof wd || (n = new wd(e))
      var i = Zb(n)
      return i.setExtent(t[0], t[1]), Xb(i, n), i
    },
    mixinAxisModelCommonMethods: function (t) {
      R(t, nw)
    },
    getECData: zl,
    createTextStyle: function (t, e) {
      return Qh(t, null, null, 'normal' !== (e = e || {}).state)
    },
    createDimensions: function (t, e) {
      return V_(t, e).dimensions
    },
    createSymbol: hm,
    enableHoverEmphasis: Iu
  })
  function ow(t, e) {
    return Math.abs(t - e) < 1e-8
  }
  function aw(t, e, n) {
    var i = 0,
      r = t[0]
    if (!r) return !1
    for (var o = 1; o < t.length; o++) {
      var a = t[o]
      ;(i += qs(r[0], r[1], a[0], a[1], e, n)), (r = a)
    }
    var s = t[0]
    return (ow(r[0], s[0]) && ow(r[1], s[1])) || (i += qs(r[0], r[1], s[0], s[1], e, n)), 0 !== i
  }
  var sw = []
  function lw(t, e) {
    for (var n = 0; n < t.length; n++) Ht(t[n], t[n], e)
  }
  function uw(t, e, n, i) {
    for (var r = 0; r < t.length; r++) {
      var o = t[r]
      i && (o = i.project(o)), o && isFinite(o[0]) && isFinite(o[1]) && (Ut(e, e, o), Yt(n, n, o))
    }
  }
  var cw = (function () {
      function t(t) {
        this.name = t
      }
      return (
        (t.prototype.setCenter = function (t) {
          this._center = t
        }),
        (t.prototype.getCenter = function () {
          var t = this._center
          return t || (t = this._center = this.calcCenter()), t
        }),
        t
      )
    })(),
    hw = function (t, e) {
      ;(this.type = 'polygon'), (this.exterior = t), (this.interiors = e)
    },
    dw = function (t) {
      ;(this.type = 'linestring'), (this.points = t)
    },
    pw = (function (t) {
      function e(e, n, i) {
        var r = t.call(this, e) || this
        return (r.type = 'geoJSON'), (r.geometries = n), (r._center = i && [i[0], i[1]]), r
      }
      return (
        n(e, t),
        (e.prototype.calcCenter = function () {
          for (var t, e = this.geometries, n = 0, i = 0; i < e.length; i++) {
            var r = e[i],
              o = r.exterior,
              a = o && o.length
            a > n && ((t = r), (n = a))
          }
          if (t)
            return (function (t) {
              for (var e = 0, n = 0, i = 0, r = t.length, o = t[r - 1][0], a = t[r - 1][1], s = 0; s < r; s++) {
                var l = t[s][0],
                  u = t[s][1],
                  c = o * u - l * a
                ;(e += c), (n += (o + l) * c), (i += (a + u) * c), (o = l), (a = u)
              }
              return e ? [n / e / 3, i / e / 3, e] : [t[0][0] || 0, t[0][1] || 0]
            })(t.exterior)
          var s = this.getBoundingRect()
          return [s.x + s.width / 2, s.y + s.height / 2]
        }),
        (e.prototype.getBoundingRect = function (t) {
          var e = this._rect
          if (e && !t) return e
          var n = [1 / 0, 1 / 0],
            i = [-1 / 0, -1 / 0]
          return (
            z(this.geometries, function (e) {
              'polygon' === e.type
                ? uw(e.exterior, n, i, t)
                : z(e.points, function (e) {
                    uw(e, n, i, t)
                  })
            }),
            (isFinite(n[0]) && isFinite(n[1]) && isFinite(i[0]) && isFinite(i[1])) || (n[0] = n[1] = i[0] = i[1] = 0),
            (e = new He(n[0], n[1], i[0] - n[0], i[1] - n[1])),
            t || (this._rect = e),
            e
          )
        }),
        (e.prototype.contain = function (t) {
          var e = this.getBoundingRect(),
            n = this.geometries
          if (!e.contain(t[0], t[1])) return !1
          t: for (var i = 0, r = n.length; i < r; i++) {
            var o = n[i]
            if ('polygon' === o.type) {
              var a = o.exterior,
                s = o.interiors
              if (aw(a, t[0], t[1])) {
                for (var l = 0; l < (s ? s.length : 0); l++) if (aw(s[l], t[0], t[1])) continue t
                return !0
              }
            }
          }
          return !1
        }),
        (e.prototype.transformTo = function (t, e, n, i) {
          var r = this.getBoundingRect(),
            o = r.width / r.height
          n ? i || (i = n / o) : (n = o * i)
          for (var a = new He(t, e, n, i), s = r.calculateTransform(a), l = this.geometries, u = 0; u < l.length; u++) {
            var c = l[u]
            'polygon' === c.type
              ? (lw(c.exterior, s),
                z(c.interiors, function (t) {
                  lw(t, s)
                }))
              : z(c.points, function (t) {
                  lw(t, s)
                })
          }
          ;(r = this._rect).copy(a), (this._center = [r.x + r.width / 2, r.y + r.height / 2])
        }),
        (e.prototype.cloneShallow = function (t) {
          null == t && (t = this.name)
          var n = new e(t, this.geometries, this._center)
          return (n._rect = this._rect), (n.transformTo = null), n
        }),
        e
      )
    })(cw),
    fw = (function (t) {
      function e(e, n) {
        var i = t.call(this, e) || this
        return (i.type = 'geoSVG'), (i._elOnlyForCalculate = n), i
      }
      return (
        n(e, t),
        (e.prototype.calcCenter = function () {
          for (var t = this._elOnlyForCalculate, e = t.getBoundingRect(), n = [e.x + e.width / 2, e.y + e.height / 2], i = _e(sw), r = t; r && !r.isGeoSVGGraphicRoot; )
            we(i, r.getLocalTransform(), i), (r = r.parent)
          return Te(i, i), Ht(n, n, i), n
        }),
        e
      )
    })(cw)
  function gw(t, e, n) {
    for (var i = 0; i < t.length; i++) t[i] = yw(t[i], e[i], n)
  }
  function yw(t, e, n) {
    for (var i = [], r = e[0], o = e[1], a = 0; a < t.length; a += 2) {
      var s = t.charCodeAt(a) - 64,
        l = t.charCodeAt(a + 1) - 64
      ;(s = (s >> 1) ^ -(1 & s)), (l = (l >> 1) ^ -(1 & l)), (r = s += r), (o = l += o), i.push([s / n, l / n])
    }
    return i
  }
  function vw(t, e) {
    return E(
      V(
        (t = (function (t) {
          if (!t.UTF8Encoding) return t
          var e = t,
            n = e.UTF8Scale
          return (
            null == n && (n = 1024),
            z(e.features, function (t) {
              var e = t.geometry,
                i = e.encodeOffsets,
                r = e.coordinates
              if (i)
                switch (e.type) {
                  case 'LineString':
                    e.coordinates = yw(r, i, n)
                    break
                  case 'Polygon':
                  case 'MultiLineString':
                    gw(r, i, n)
                    break
                  case 'MultiPolygon':
                    z(r, function (t, e) {
                      return gw(t, i[e], n)
                    })
                }
            }),
            (e.UTF8Encoding = !1),
            e
          )
        })(t)).features,
        function (t) {
          return t.geometry && t.properties && t.geometry.coordinates.length > 0
        }
      ),
      function (t) {
        var n = t.properties,
          i = t.geometry,
          r = []
        switch (i.type) {
          case 'Polygon':
            var o = i.coordinates
            r.push(new hw(o[0], o.slice(1)))
            break
          case 'MultiPolygon':
            z(i.coordinates, function (t) {
              t[0] && r.push(new hw(t[0], t.slice(1)))
            })
            break
          case 'LineString':
            r.push(new dw([i.coordinates]))
            break
          case 'MultiLineString':
            r.push(new dw(i.coordinates))
        }
        var a = new pw(n[e || 'name'], r, n.cp)
        return (a.properties = n), a
      }
    )
  }
  var mw = Object.freeze({
      __proto__: null,
      linearMap: go,
      round: mo,
      asc: xo,
      getPrecision: _o,
      getPrecisionSafe: bo,
      getPixelPrecision: wo,
      getPercentWithPrecision: function (t, e, n) {
        return (t[e] && So(t, n)[e]) || 0
      },
      parsePercent: yo,
      MAX_SAFE_INTEGER: Io,
      remRadian: To,
      isRadianAroundZero: Co,
      parseDate: Ao,
      quantity: ko,
      quantityExponent: Lo,
      nice: Po,
      quantile: Oo,
      reformIntervals: Ro,
      isNumeric: zo,
      numericToNumber: No
    }),
    xw = Object.freeze({ __proto__: null, parse: Ao, format: $d, roundTime: Qd }),
    _w = Object.freeze({
      __proto__: null,
      extendShape: ch,
      extendPath: dh,
      makePath: gh,
      makeImage: yh,
      mergePath: mh,
      resizePath: xh,
      createIcon: Ah,
      updateProps: th,
      initProps: eh,
      getTransform: wh,
      clipPointsByRect: Ch,
      clipRectByRect: Dh,
      registerShape: ph,
      getShapeClass: fh,
      Group: to,
      Image: dl,
      Text: Sl,
      Circle: nc,
      Ellipse: rc,
      Sector: xc,
      Ring: bc,
      Polygon: Mc,
      Polyline: Tc,
      Rect: xl,
      Line: Ac,
      BezierCurve: Oc,
      Arc: Nc,
      IncrementalDisplayable: Kc,
      CompoundPath: zc,
      LinearGradient: Bc,
      RadialGradient: Vc,
      BoundingRect: He
    }),
    bw = Object.freeze({
      __proto__: null,
      addCommas: fp,
      toCamelCase: gp,
      normalizeCssArray: yp,
      encodeHTML: oe,
      formatTpl: _p,
      getTooltipMarker: bp,
      formatTime: function (t, e, n) {
        ;('week' !== t && 'month' !== t && 'quarter' !== t && 'half-year' !== t && 'year' !== t) || (t = 'MM-dd\nyyyy')
        var i = Ao(e),
          r = n ? 'getUTC' : 'get',
          o = i[r + 'FullYear'](),
          a = i[r + 'Month']() + 1,
          s = i[r + 'Date'](),
          l = i[r + 'Hours'](),
          u = i[r + 'Minutes'](),
          c = i[r + 'Seconds'](),
          h = i[r + 'Milliseconds']()
        return (t = t
          .replace('MM', jd(a, 2))
          .replace('M', a)
          .replace('yyyy', o)
          .replace('yy', jd((o % 100) + '', 2))
          .replace('dd', jd(s, 2))
          .replace('d', s)
          .replace('hh', jd(l, 2))
          .replace('h', l)
          .replace('mm', jd(u, 2))
          .replace('m', u)
          .replace('ss', jd(c, 2))
          .replace('s', c)
          .replace('SSS', jd(h, 3)))
      },
      capitalFirst: function (t) {
        return t ? t.charAt(0).toUpperCase() + t.substr(1) : t
      },
      truncateText: function (t, e, n, i, r) {
        var o = {}
        return Ea(o, t, e, n, i, r), o.text
      },
      getTextRect: function (t, e, n, i, r, o, a, s) {
        return new Sl({ style: { text: t, font: e, align: n, verticalAlign: i, padding: r, rich: o, overflow: a ? 'truncate' : null, lineHeight: s } }).getBoundingRect()
      }
    }),
    ww = Object.freeze({
      __proto__: null,
      map: E,
      each: z,
      indexOf: P,
      inherits: O,
      reduce: B,
      filter: V,
      bind: W,
      curry: H,
      isArray: U,
      isString: X,
      isObject: q,
      isFunction: Y,
      extend: A,
      defaults: k,
      clone: T,
      merge: C
    }),
    Sw = sa(),
    Mw = sa(),
    Iw = 1,
    Tw = 2
  function Cw(t) {
    return { out: { noPxChangeTryDetermine: [] }, kind: t }
  }
  function Dw(t, e) {
    var n = E(e, function (e) {
      return t.scale.parse(e)
    })
    return 'time' === t.type && n.length > 0 && (n.sort(), n.unshift(n[0]), n.push(n[n.length - 1])), n
  }
  function Aw(t, e) {
    var n = t.getLabelModel().get('customValues')
    if (n) {
      var i = jb(t),
        r = t.scale.getExtent()
      return {
        labels: E(
          V(Dw(t, n), function (t) {
            return t >= r[0] && t <= r[1]
          }),
          function (e) {
            var n = { value: e }
            return { formattedLabel: i(n), rawLabel: t.scale.getLabel(n), tickValue: e, time: void 0, break: void 0 }
          }
        )
      }
    }
    return 'category' === t.type
      ? (function (t, e) {
          var n = t.getLabelModel(),
            i = Lw(t, n, e)
          return !n.get('show') || t.scale.isBlank() ? { labels: [] } : i
        })(t, e)
      : (function (t) {
          var e = t.scale.getTicks(),
            n = jb(t)
          return {
            labels: E(e, function (e, i) {
              return { formattedLabel: n(e, i), rawLabel: t.scale.getLabel(e), tickValue: e.value, time: e.time, break: e.break }
            })
          }
        })(t)
  }
  function kw(t, e, n) {
    var i = t.getTickModel().get('customValues')
    if (i) {
      var r = t.scale.getExtent()
      return {
        ticks: V(Dw(t, i), function (t) {
          return t >= r[0] && t <= r[1]
        })
      }
    }
    return 'category' === t.type
      ? (function (t, e) {
          var n,
            i,
            r = Pw(t),
            o = Kb(e),
            a = Nw(r, o)
          if (a) return a
          ;(e.get('show') && !t.scale.isBlank()) || (n = [])
          if (Y(o)) n = Gw(t, o, !0)
          else if ('auto' === o) {
            var s = Lw(t, t.getLabelModel(), Cw(Tw))
            ;(i = s.labelCategoryInterval),
              (n = E(s.labels, function (t) {
                return t.tickValue
              }))
          } else n = Vw(t, (i = o), !0)
          return zw(r, o, { ticks: n, tickCategoryInterval: i })
        })(t, e)
      : {
          ticks: E(t.scale.getTicks(n), function (t) {
            return t.value
          })
        }
  }
  function Lw(t, e, n) {
    var i,
      r,
      o = Ow(t),
      a = Kb(e),
      s = n.kind === Iw
    if (!s) {
      var l = Nw(o, a)
      if (l) return l
    }
    Y(a)
      ? (i = Gw(t, a))
      : ((r =
          'auto' === a
            ? (function (t, e) {
                if (e.kind === Iw) {
                  var n = t.calculateCategoryInterval(e)
                  return (
                    e.out.noPxChangeTryDetermine.push(function () {
                      return (Mw(t).autoInterval = n), !0
                    }),
                    n
                  )
                }
                var i = Mw(t).autoInterval
                return null != i ? i : (Mw(t).autoInterval = t.calculateCategoryInterval(e))
              })(t, n)
            : a),
        (i = Vw(t, r)))
    var u = { labels: i, labelCategoryInterval: r }
    return (
      s
        ? n.out.noPxChangeTryDetermine.push(function () {
            return zw(o, a, u), !0
          })
        : zw(o, a, u),
      u
    )
  }
  var Pw = Rw('axisTick'),
    Ow = Rw('axisLabel')
  function Rw(t) {
    return function (e) {
      return Mw(e)[t] || (Mw(e)[t] = { list: [] })
    }
  }
  function Nw(t, e) {
    for (var n = 0; n < t.list.length; n++) if (t.list[n].key === e) return t.list[n].value
  }
  function zw(t, e, n) {
    return t.list.push({ key: e, value: n }), n
  }
  function Ew(t, e, n) {
    return null == Bw(t, e, n)
  }
  function Bw(t, e, n) {
    var i = Sw(t.model),
      r = t.getExtent(),
      o = i.lastAutoInterval,
      a = i.lastTickCount
    if (null != o && null != a && Math.abs(o - e) <= 1 && Math.abs(a - n) <= 1 && o > e && i.axisExtent0 === r[0] && i.axisExtent1 === r[1]) return o
    ;(i.lastTickCount = n), (i.lastAutoInterval = e), (i.axisExtent0 = r[0]), (i.axisExtent1 = r[1])
  }
  function Vw(t, e, n) {
    var i = jb(t),
      r = t.scale,
      o = r.getExtent(),
      a = t.getLabelModel(),
      s = [],
      l = Math.max((e || 0) + 1, 1),
      u = o[0],
      c = r.count()
    0 !== u && l > 1 && c / l > 2 && (u = Math.round(Math.ceil(u / l) * l))
    var h = $b(t),
      d = a.get('showMinLabel') || h,
      p = a.get('showMaxLabel') || h
    d && u !== o[0] && g(o[0])
    for (var f = u; f <= o[1]; f += l) g(f)
    function g(t) {
      var e = { value: t }
      s.push(n ? t : { formattedLabel: i(e), rawLabel: r.getLabel(e), tickValue: t, time: void 0, break: void 0 })
    }
    return p && f - l !== o[1] && g(o[1]), s
  }
  function Gw(t, e, n) {
    var i = t.scale,
      r = jb(t),
      o = []
    return (
      z(i.getTicks(), function (t) {
        var a = i.getLabel(t),
          s = t.value
        e(t.value, a) && o.push(n ? s : { formattedLabel: r(t), rawLabel: a, tickValue: s, time: void 0, break: void 0 })
      }),
      o
    )
  }
  var Fw = [0, 1],
    Ww = (function () {
      function t(t, e, n) {
        ;(this.onBand = !1), (this.inverse = !1), (this.dim = t), (this.scale = e), (this._extent = n || [0, 0])
      }
      return (
        (t.prototype.contain = function (t) {
          var e = this._extent,
            n = Math.min(e[0], e[1]),
            i = Math.max(e[0], e[1])
          return t >= n && t <= i
        }),
        (t.prototype.containData = function (t) {
          return this.scale.contain(this.scale.parse(t))
        }),
        (t.prototype.getExtent = function () {
          return this._extent.slice()
        }),
        (t.prototype.getPixelPrecision = function (t) {
          return wo(t || this.scale.getExtent(), this._extent)
        }),
        (t.prototype.setExtent = function (t, e) {
          var n = this._extent
          ;(n[0] = t), (n[1] = e)
        }),
        (t.prototype.dataToCoord = function (t, e) {
          var n = this._extent,
            i = this.scale
          return (t = i.normalize(i.parse(t))), this.onBand && 'ordinal' === i.type && Hw((n = n.slice()), i.count()), go(t, Fw, n, e)
        }),
        (t.prototype.coordToData = function (t, e) {
          var n = this._extent,
            i = this.scale
          this.onBand && 'ordinal' === i.type && Hw((n = n.slice()), i.count())
          var r = go(t, n, Fw, e)
          return this.scale.scale(r)
        }),
        (t.prototype.pointToData = function (t, e) {}),
        (t.prototype.getTicksCoords = function (t) {
          var e = (t = t || {}).tickModel || this.getTickModel(),
            n = E(
              kw(this, e, { breakTicks: t.breakTicks, pruneByBreak: t.pruneByBreak }).ticks,
              function (t) {
                return { coord: this.dataToCoord('ordinal' === this.scale.type ? this.scale.getRawOrdinalNumber(t) : t), tickValue: t }
              },
              this
            )
          return (
            (function (t, e, n, i) {
              var r = e.length
              if (!t.onBand || n || !r) return
              var o,
                a,
                s = t.getExtent()
              if (1 === r) (e[0].coord = s[0]), (e[0].onBand = !0), (o = e[1] = { coord: s[1], tickValue: e[0].tickValue, onBand: !0 })
              else {
                var l = e[r - 1].tickValue - e[0].tickValue,
                  u = (e[r - 1].coord - e[0].coord) / l
                z(e, function (t) {
                  ;(t.coord -= u / 2), (t.onBand = !0)
                })
                var c = t.scale.getExtent()
                ;(a = 1 + c[1] - e[r - 1].tickValue), (o = { coord: e[r - 1].coord + u * a, tickValue: c[1] + 1, onBand: !0 }), e.push(o)
              }
              var h = s[0] > s[1]
              d(e[0].coord, s[0]) && (i ? (e[0].coord = s[0]) : e.shift())
              i && d(s[0], e[0].coord) && e.unshift({ coord: s[0], onBand: !0 })
              d(s[1], o.coord) && (i ? (o.coord = s[1]) : e.pop())
              i && d(o.coord, s[1]) && e.push({ coord: s[1], onBand: !0 })
              function d(t, e) {
                return (t = mo(t)), (e = mo(e)), h ? t > e : t < e
              }
            })(this, n, e.get('alignWithLabel'), t.clamp),
            n
          )
        }),
        (t.prototype.getMinorTicksCoords = function () {
          if ('ordinal' === this.scale.type) return []
          var t = this.model.getModel('minorTick').get('splitNumber')
          return (
            (t > 0 && t < 100) || (t = 5),
            E(
              this.scale.getMinorTicks(t),
              function (t) {
                return E(
                  t,
                  function (t) {
                    return { coord: this.dataToCoord(t), tickValue: t }
                  },
                  this
                )
              },
              this
            )
          )
        }),
        (t.prototype.getViewLabels = function (t) {
          return Aw(this, (t = t || Cw(Tw))).labels
        }),
        (t.prototype.getLabelModel = function () {
          return this.model.getModel('axisLabel')
        }),
        (t.prototype.getTickModel = function () {
          return this.model.getModel('axisTick')
        }),
        (t.prototype.getBandWidth = function () {
          var t = this._extent,
            e = this.scale.getExtent(),
            n = e[1] - e[0] + (this.onBand ? 1 : 0)
          0 === n && (n = 1)
          var i = Math.abs(t[1] - t[0])
          return Math.abs(i) / n
        }),
        (t.prototype.calculateCategoryInterval = function (t) {
          return (function (t, e) {
            var n = e.kind,
              i = (function (t) {
                var e = t.getLabelModel()
                return { axisRotate: t.getRotate ? t.getRotate() : t.isHorizontal && !t.isHorizontal() ? 90 : 0, labelRotate: e.get('rotate') || 0, font: e.getFont() }
              })(t),
              r = jb(t),
              o = ((i.axisRotate - i.labelRotate) / 180) * Math.PI,
              a = t.scale,
              s = a.getExtent(),
              l = a.count()
            if (s[1] - s[0] < 1) return 0
            var u = 1
            l > 40 && (u = Math.max(1, Math.floor(l / 40)))
            for (var c = s[0], h = t.dataToCoord(c + 1) - t.dataToCoord(c), d = Math.abs(h * Math.cos(o)), p = Math.abs(h * Math.sin(o)), f = 0, g = 0; c <= s[1]; c += u) {
              var y,
                v,
                m = Er(r({ value: c }), i.font, 'center', 'top')
              ;(y = 1.3 * m.width), (v = 1.3 * m.height), (f = Math.max(f, y, 7)), (g = Math.max(g, v, 7))
            }
            var x = f / d,
              _ = g / p
            isNaN(x) && (x = 1 / 0), isNaN(_) && (_ = 1 / 0)
            var b = Math.max(0, Math.floor(Math.min(x, _)))
            if (n === Iw) return e.out.noPxChangeTryDetermine.push(W(Ew, null, t, b, l)), b
            var w = Bw(t, b, l)
            return null != w ? w : b
          })(this, (t = t || Cw(Tw)))
        }),
        t
      )
    })()
  function Hw(t, e) {
    var n = (t[1] - t[0]) / e / 2
    ;(t[0] += n), (t[1] -= n)
  }
  var Uw = 2 * Math.PI,
    Yw = Fs.CMD,
    Xw = ['top', 'right', 'bottom', 'left']
  function Zw(t, e, n, i, r) {
    var o = n.width,
      a = n.height
    switch (t) {
      case 'top':
        i.set(n.x + o / 2, n.y - e), r.set(0, -1)
        break
      case 'bottom':
        i.set(n.x + o / 2, n.y + a + e), r.set(0, 1)
        break
      case 'left':
        i.set(n.x - e, n.y + a / 2), r.set(-1, 0)
        break
      case 'right':
        i.set(n.x + o + e, n.y + a / 2), r.set(1, 0)
    }
  }
  function jw(t, e, n, i, r, o, a, s, l) {
    ;(a -= t), (s -= e)
    var u = Math.sqrt(a * a + s * s),
      c = (a /= u) * n + t,
      h = (s /= u) * n + e
    if (Math.abs(i - r) % Uw < 1e-4) return (l[0] = c), (l[1] = h), u - n
    if (o) {
      var d = i
      ;(i = Xs(r)), (r = Xs(d))
    } else (i = Xs(i)), (r = Xs(r))
    i > r && (r += Uw)
    var p = Math.atan2(s, a)
    if ((p < 0 && (p += Uw), (p >= i && p <= r) || (p + Uw >= i && p + Uw <= r))) return (l[0] = c), (l[1] = h), u - n
    var f = n * Math.cos(i) + t,
      g = n * Math.sin(i) + e,
      y = n * Math.cos(r) + t,
      v = n * Math.sin(r) + e,
      m = (f - a) * (f - a) + (g - s) * (g - s),
      x = (y - a) * (y - a) + (v - s) * (v - s)
    return m < x ? ((l[0] = f), (l[1] = g), Math.sqrt(m)) : ((l[0] = y), (l[1] = v), Math.sqrt(x))
  }
  function qw(t, e, n, i, r, o, a, s) {
    var l = r - t,
      u = o - e,
      c = n - t,
      h = i - e,
      d = Math.sqrt(c * c + h * h),
      p = (l * (c /= d) + u * (h /= d)) / d
    s && (p = Math.min(Math.max(p, 0), 1)), (p *= d)
    var f = (a[0] = t + p * c),
      g = (a[1] = e + p * h)
    return Math.sqrt((f - r) * (f - r) + (g - o) * (g - o))
  }
  function Kw(t, e, n, i, r, o, a) {
    n < 0 && ((t += n), (n = -n)), i < 0 && ((e += i), (i = -i))
    var s = t + n,
      l = e + i,
      u = (a[0] = Math.min(Math.max(r, t), s)),
      c = (a[1] = Math.min(Math.max(o, e), l))
    return Math.sqrt((u - r) * (u - r) + (c - o) * (c - o))
  }
  var $w = []
  function Jw(t, e, n) {
    var i = Kw(e.x, e.y, e.width, e.height, t.x, t.y, $w)
    return n.set($w[0], $w[1]), i
  }
  function Qw(t, e, n) {
    for (var i, r, o = 0, a = 0, s = 0, l = 0, u = 1 / 0, c = e.data, h = t.x, d = t.y, p = 0; p < c.length; ) {
      var f = c[p++]
      1 === p && ((s = o = c[p]), (l = a = c[p + 1]))
      var g = u
      switch (f) {
        case Yw.M:
          ;(o = s = c[p++]), (a = l = c[p++])
          break
        case Yw.L:
          ;(g = qw(o, a, c[p], c[p + 1], h, d, $w, !0)), (o = c[p++]), (a = c[p++])
          break
        case Yw.C:
          ;(g = On(o, a, c[p++], c[p++], c[p++], c[p++], c[p], c[p + 1], h, d, $w)), (o = c[p++]), (a = c[p++])
          break
        case Yw.Q:
          ;(g = Vn(o, a, c[p++], c[p++], c[p], c[p + 1], h, d, $w)), (o = c[p++]), (a = c[p++])
          break
        case Yw.A:
          var y = c[p++],
            v = c[p++],
            m = c[p++],
            x = c[p++],
            _ = c[p++],
            b = c[p++]
          p += 1
          var w = !!(1 - c[p++])
          ;(i = Math.cos(_) * m + y),
            (r = Math.sin(_) * x + v),
            p <= 1 && ((s = i), (l = r)),
            (g = jw(y, v, x, _, _ + b, w, ((h - y) * x) / m + y, d, $w)),
            (o = Math.cos(_ + b) * m + y),
            (a = Math.sin(_ + b) * x + v)
          break
        case Yw.R:
          g = Kw((s = o = c[p++]), (l = a = c[p++]), c[p++], c[p++], h, d, $w)
          break
        case Yw.Z:
          ;(g = qw(o, a, s, l, h, d, $w, !0)), (o = s), (a = l)
      }
      g < u && ((u = g), n.set($w[0], $w[1]))
    }
    return u
  }
  var tS = new Ae(),
    eS = new Ae(),
    nS = new Ae(),
    iS = new Ae(),
    rS = new Ae()
  function oS(t, e) {
    if (t) {
      var n = t.getTextGuideLine(),
        i = t.getTextContent()
      if (i && n) {
        var r = t.textGuideLineConfig || {},
          o = [
            [0, 0],
            [0, 0],
            [0, 0]
          ],
          a = r.candidates || Xw,
          s = i.getBoundingRect().clone()
        s.applyTransform(i.getComputedTransform())
        var l = 1 / 0,
          u = r.anchor,
          c = t.getComputedTransform(),
          h = c && Te([], c),
          d = e.get('length2') || 0
        u && nS.copy(u)
        for (var p = 0; p < a.length; p++) {
          Zw(a[p], 0, s, tS, iS), Ae.scaleAndAdd(eS, tS, iS, d), eS.transform(h)
          var f = t.getBoundingRect(),
            g = u ? u.distance(eS) : t instanceof sl ? Qw(eS, t.path, nS) : Jw(eS, f, nS)
          g < l && ((l = g), eS.transform(c), nS.transform(c), nS.toArray(o[0]), eS.toArray(o[1]), tS.toArray(o[2]))
        }
        lS(o, e.get('minTurnAngle')), n.setShape({ points: o })
      }
    }
  }
  var aS = [],
    sS = new Ae()
  function lS(t, e) {
    if (e <= 180 && e > 0) {
      ;(e = (e / 180) * Math.PI), tS.fromArray(t[0]), eS.fromArray(t[1]), nS.fromArray(t[2]), Ae.sub(iS, tS, eS), Ae.sub(rS, nS, eS)
      var n = iS.len(),
        i = rS.len()
      if (!(n < 0.001 || i < 0.001)) {
        iS.scale(1 / n), rS.scale(1 / i)
        var r = iS.dot(rS)
        if (Math.cos(e) < r) {
          var o = qw(eS.x, eS.y, nS.x, nS.y, tS.x, tS.y, aS, !1)
          sS.fromArray(aS), sS.scaleAndAdd(rS, o / Math.tan(Math.PI - e))
          var a = nS.x !== eS.x ? (sS.x - eS.x) / (nS.x - eS.x) : (sS.y - eS.y) / (nS.y - eS.y)
          if (isNaN(a)) return
          a < 0 ? Ae.copy(sS, eS) : a > 1 && Ae.copy(sS, nS), sS.toArray(t[1])
        }
      }
    }
  }
  function uS(t, e, n) {
    if (n <= 180 && n > 0) {
      ;(n = (n / 180) * Math.PI), tS.fromArray(t[0]), eS.fromArray(t[1]), nS.fromArray(t[2]), Ae.sub(iS, eS, tS), Ae.sub(rS, nS, eS)
      var i = iS.len(),
        r = rS.len()
      if (!(i < 0.001 || r < 0.001))
        if ((iS.scale(1 / i), rS.scale(1 / r), iS.dot(e) < Math.cos(n))) {
          var o = qw(eS.x, eS.y, nS.x, nS.y, tS.x, tS.y, aS, !1)
          sS.fromArray(aS)
          var a = Math.PI / 2,
            s = a + Math.acos(rS.dot(e)) - n
          if (s >= a) Ae.copy(sS, nS)
          else {
            sS.scaleAndAdd(rS, o / Math.tan(Math.PI / 2 - s))
            var l = nS.x !== eS.x ? (sS.x - eS.x) / (nS.x - eS.x) : (sS.y - eS.y) / (nS.y - eS.y)
            if (isNaN(l)) return
            l < 0 ? Ae.copy(sS, eS) : l > 1 && Ae.copy(sS, nS)
          }
          sS.toArray(t[1])
        }
    }
  }
  function cS(t, e, n, i) {
    var r = 'normal' === n,
      o = r ? t : t.ensureState(n)
    o.ignore = e
    var a = i.get('smooth')
    a && !0 === a && (a = 0.3), (o.shape = o.shape || {}), a > 0 && (o.shape.smooth = a)
    var s = i.getModel('lineStyle').getLineStyle()
    r ? t.useStyle(s) : (o.style = s)
  }
  function hS(t, e) {
    var n = e.smooth,
      i = e.points
    if (i)
      if ((t.moveTo(i[0][0], i[0][1]), n > 0 && i.length >= 3)) {
        var r = Vt(i[0], i[1]),
          o = Vt(i[1], i[2])
        if (!r || !o) return t.lineTo(i[1][0], i[1][1]), void t.lineTo(i[2][0], i[2][1])
        var a = Math.min(r, o) * n,
          s = Wt([], i[1], i[0], a / r),
          l = Wt([], i[1], i[2], a / o),
          u = Wt([], s, l, 0.5)
        t.bezierCurveTo(s[0], s[1], s[0], s[1], u[0], u[1]), t.bezierCurveTo(l[0], l[1], l[0], l[1], i[2][0], i[2][1])
      } else for (var c = 1; c < i.length; c++) t.lineTo(i[c][0], i[c][1])
  }
  function dS(t, e, n) {
    var i = t.getTextGuideLine(),
      r = t.getTextContent()
    if (r) {
      for (var o = e.normal, a = o.get('show'), s = r.ignore, l = 0; l < Hl.length; l++) {
        var u = Hl[l],
          c = e[u],
          h = 'normal' === u
        if (c) {
          var d = c.get('show')
          if ((h ? s : rt(r.states[u] && r.states[u].ignore, s)) || !rt(d, a)) {
            var p = h ? i : i && i.states[u]
            p && (p.ignore = !0), i && cS(i, !0, u, c)
            continue
          }
          i || ((i = new Tc()), t.setTextGuideLine(i), h || (!s && a) || cS(i, !0, 'normal', e.normal), t.stateProxy && (i.stateProxy = t.stateProxy)), cS(i, !1, u, c)
        }
      }
      if (i) {
        k(i.style, n), (i.style.fill = null)
        var f = o.get('showAbove')
        ;((t.textGuideLineConfig = t.textGuideLineConfig || {}).showAbove = f || !1), (i.buildPath = hS)
      }
    } else i && t.removeTextGuideLine()
  }
  function pS(t, e) {
    e = e || 'labelLine'
    for (var n = { normal: t.getModel(e) }, i = 0; i < Wl.length; i++) {
      var r = Wl[i]
      n[r] = t.getModel([r, e])
    }
    return n
  }
  var fS = ['label', 'labelLine', 'layoutOption', 'priority', 'defaultAttr', 'marginForce', 'minMarginForce', 'marginDefault', 'suggestIgnore']
  function gS(t, e, n) {
    ;(n = n || 3), e ? (t.dirty |= n) : (t.dirty &= ~n)
  }
  function yS(t, e) {
    return (e = e || 3), null == t.dirty || !!(t.dirty & e)
  }
  function vS(t) {
    if (t) return yS(t) && mS(t, t.label, t), t
  }
  function mS(t, e, n) {
    var i = e.getComputedTransform()
    t.transform = Wh(t.transform, i)
    var r = (t.localRect = Fh(t.localRect, e.getBoundingRect())),
      o = e.style,
      a = o.margin,
      s = n && n.marginForce,
      l = n && n.minMarginForce,
      u = n && n.marginDefault,
      c = o.__marginType
    null == c && u && ((a = u), (c = hd.textMargin))
    for (var h = 0; h < 4; h++) xS[h] = c === hd.minMargin && l && null != l[h] ? l[h] : s && null != s[h] ? s[h] : a ? a[h] : 0
    c === hd.textMargin && Oh(r, xS, !1, !1)
    var d = (t.rect = Fh(t.rect, r))
    return i && d.applyTransform(i), c === hd.minMargin && Oh(d, xS, !1, !1), (t.axisAligned = Vh(i)), ((t.label = t.label || {}).ignore = e.ignore), gS(t, !1), gS(t, !0, 2), t
  }
  var xS = [0, 0, 0, 0]
  function _S(t, e) {
    if (t) {
      ;(t.label.x += e.x), (t.label.y += e.y), t.label.markRedraw()
      var n = t.transform
      n && ((n[4] += e.x), (n[5] += e.y))
      var i = t.rect
      i && ((i.x += e.x), (i.y += e.y))
      var r = t.obb
      r && r.fromBoundingRect(t.localRect, n)
    }
  }
  function bS(t, e) {
    for (var n = 0; n < fS.length; n++) {
      var i = fS[n]
      null == t[i] && (t[i] = e[i])
    }
    return vS(t)
  }
  function wS(t) {
    var e = t.obb
    return (e && !yS(t, 2)) || ((t.obb = e = e || new jc()), e.fromBoundingRect(t.localRect, t.transform), gS(t, !1, 2)), e
  }
  function SS(t, e, n, i, r) {
    var o = t.length,
      a = lh[e],
      s = uh[e]
    if (o < 2) return !1
    t.sort(function (t, e) {
      return t.rect[a] - e.rect[a]
    })
    for (var l, u = 0, c = !1, h = 0, d = 0; d < o; d++) {
      var p = t[d],
        f = p.rect
      ;(l = f[a] - u) < 0 && ((f[a] -= l), (p.label[a] -= l), (c = !0)), (h += Math.max(-l, 0)), (u = f[a] + f[s])
    }
    h > 0 && r && b(-h / o, 0, o)
    var g,
      y,
      v = t[0],
      m = t[o - 1]
    function x() {
      ;(g = v.rect[a] - n), (y = i - m.rect[a] - m.rect[s])
    }
    function _(t, e, n) {
      if (t < 0) {
        var i = Math.min(e, -t)
        if (i > 0) {
          b(i * n, 0, o)
          var r = i + t
          r < 0 && w(-r * n, 1)
        } else w(-t * n, 1)
      }
    }
    function b(e, n, i) {
      0 !== e && (c = !0)
      for (var r = n; r < i; r++) {
        var o = t[r]
        ;(o.rect[a] += e), (o.label[a] += e)
      }
    }
    function w(e, n) {
      for (var i = [], r = 0, l = 1; l < o; l++) {
        var u = t[l - 1].rect,
          c = Math.max(t[l].rect[a] - u[a] - u[s], 0)
        i.push(c), (r += c)
      }
      if (r) {
        var h = Math.min(Math.abs(e) / r, n)
        if (e > 0)
          for (l = 0; l < o - 1; l++) {
            b(i[l] * h, 0, l + 1)
          }
        else
          for (l = o - 1; l > 0; l--) {
            b(-(i[l - 1] * h), l, o)
          }
      }
    }
    function S(t) {
      var e = t < 0 ? -1 : 1
      t = Math.abs(t)
      for (var n = Math.ceil(t / (o - 1)), i = 0; i < o - 1; i++) if ((e > 0 ? b(n, 0, i + 1) : b(-n, o - i - 1, o), (t -= n) <= 0)) return
    }
    return x(), g < 0 && w(-g, 0.8), y < 0 && w(y, 0.8), x(), _(g, y, 1), _(y, g, -1), x(), g < 0 && S(-g), y < 0 && S(y), c
  }
  function MS(t) {
    var e = []
    function n(t) {
      if (!t.ignore) {
        var e = t.ensureState('emphasis')
        null == e.ignore && (e.ignore = !1)
      }
      t.ignore = !0
    }
    t.sort(function (t, e) {
      return (e.suggestIgnore ? 1 : 0) - (t.suggestIgnore ? 1 : 0) || e.priority - t.priority
    })
    for (var i = 0; i < t.length; i++) {
      var r = vS(t[i])
      if (!r.label.ignore) {
        for (var o = r.label, a = r.labelLine, s = !1, l = 0; l < e.length; l++)
          if (IS(r, e[l], null, { touchThreshold: 0.05 })) {
            s = !0
            break
          }
        s ? (n(o), a && n(a)) : e.push(r)
      }
    }
  }
  function IS(t, e, n, i) {
    return (
      !(!t || !e) &&
      !((t.label && t.label.ignore) || (e.label && e.label.ignore)) &&
      !!t.rect.intersect(e.rect, n, i) &&
      (!(!t.axisAligned || !e.axisAligned) || wS(t).intersect(wS(e), n, i))
    )
  }
  function TS(t) {
    if (t) {
      for (var e = [], n = 0; n < t.length; n++) e.push(t[n].slice())
      return e
    }
  }
  function CS(t, e) {
    var n = t.label,
      i = e && e.getTextGuideLine()
    return {
      dataIndex: t.dataIndex,
      dataType: t.dataType,
      seriesIndex: t.seriesModel.seriesIndex,
      text: t.label.style.text,
      rect: t.hostRect,
      labelRect: t.rect,
      align: n.style.align,
      verticalAlign: n.style.verticalAlign,
      labelLinePoints: TS(i && i.shape.points)
    }
  }
  var DS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'],
    AS = new Dr(),
    kS = sa(),
    LS = sa()
  function PS(t, e, n) {
    for (var i = 0; i < n.length; i++) {
      var r = n[i]
      null != e[r] && (t[r] = e[r])
    }
  }
  var OS = ['x', 'y', 'rotation'],
    RS = (function () {
      function t() {
        ;(this._labelList = []), (this._chartViewList = [])
      }
      return (
        (t.prototype.clearLabels = function () {
          ;(this._labelList = []), (this._chartViewList = [])
        }),
        (t.prototype._addLabel = function (t, e, n, i, r) {
          var o = i.style,
            a = i.__hostTarget.textConfig || {},
            s = i.getComputedTransform(),
            l = i.getBoundingRect().plain()
          He.applyTransform(l, l, s),
            s ? AS.setLocalTransform(s) : ((AS.x = AS.y = AS.rotation = AS.originX = AS.originY = 0), (AS.scaleX = AS.scaleY = 1)),
            (AS.rotation = Xs(AS.rotation))
          var u,
            c = i.__hostTarget
          if (c) {
            u = c.getBoundingRect().plain()
            var h = c.getComputedTransform()
            He.applyTransform(u, u, h)
          }
          var d = u && c.getTextGuideLine()
          this._labelList.push({
            label: i,
            labelLine: d,
            seriesModel: n,
            dataIndex: t,
            dataType: e,
            layoutOptionOrCb: r,
            layoutOption: null,
            rect: l,
            hostRect: u,
            priority: u ? u.width * u.height : 0,
            defaultAttr: {
              ignore: i.ignore,
              labelGuideIgnore: d && d.ignore,
              x: AS.x,
              y: AS.y,
              scaleX: AS.scaleX,
              scaleY: AS.scaleY,
              rotation: AS.rotation,
              style: { x: o.x, y: o.y, align: o.align, verticalAlign: o.verticalAlign, width: o.width, height: o.height, fontSize: o.fontSize },
              cursor: i.cursor,
              attachedPos: a.position,
              attachedRot: a.rotation
            }
          })
        }),
        (t.prototype.addLabelsOfSeries = function (t) {
          var e = this
          this._chartViewList.push(t)
          var n = t.__model,
            i = n.get('labelLayout')
          ;(Y(i) || F(i).length) &&
            t.group.traverse(function (t) {
              if (t.ignore) return !0
              var r = t.getTextContent(),
                o = zl(t)
              r && !r.disableLabelLayout && e._addLabel(o.dataIndex, o.dataType, n, r, i)
            })
        }),
        (t.prototype.updateLayoutConfig = function (t) {
          var e = t.getWidth(),
            n = t.getHeight()
          function i(t, e) {
            return function () {
              oS(t, e)
            }
          }
          for (var r = 0; r < this._labelList.length; r++) {
            var o = this._labelList[r],
              a = o.label,
              s = a.__hostTarget,
              l = o.defaultAttr,
              u = void 0
            ;(u = (u = Y(o.layoutOptionOrCb) ? o.layoutOptionOrCb(CS(o, s)) : o.layoutOptionOrCb) || {}), (o.layoutOption = u)
            var c = Math.PI / 180
            s &&
              s.setTextConfig({
                local: !1,
                position: null != u.x || null != u.y ? null : l.attachedPos,
                rotation: null != u.rotate ? u.rotate * c : l.attachedRot,
                offset: [u.dx || 0, u.dy || 0]
              })
            var h = !1
            if (
              (null != u.x ? ((a.x = yo(u.x, e)), a.setStyle('x', 0), (h = !0)) : ((a.x = l.x), a.setStyle('x', l.style.x)),
              null != u.y ? ((a.y = yo(u.y, n)), a.setStyle('y', 0), (h = !0)) : ((a.y = l.y), a.setStyle('y', l.style.y)),
              u.labelLinePoints)
            ) {
              var d = s.getTextGuideLine()
              d && (d.setShape({ points: u.labelLinePoints }), (h = !1))
            }
            ;(kS(a).needsUpdateLabelLine = h), (a.rotation = null != u.rotate ? u.rotate * c : l.rotation), (a.scaleX = l.scaleX), (a.scaleY = l.scaleY)
            for (var p = 0; p < DS.length; p++) {
              var f = DS[p]
              a.setStyle(f, null != u[f] ? u[f] : l.style[f])
            }
            if (u.draggable) {
              if (((a.draggable = !0), (a.cursor = 'move'), s)) {
                var g = o.seriesModel
                if (null != o.dataIndex) g = o.seriesModel.getData(o.dataType).getItemModel(o.dataIndex)
                a.on('drag', i(s, g.getModel('labelLine')))
              }
            } else a.off('drag'), (a.cursor = l.cursor)
          }
        }),
        (t.prototype.layout = function (t) {
          var e = t.getWidth(),
            n = t.getHeight(),
            i = []
          z(this._labelList, function (t) {
            t.defaultAttr.ignore || i.push(bS({}, t))
          })
          var r = V(i, function (t) {
              return 'shiftX' === t.layoutOption.moveOverlap
            }),
            o = V(i, function (t) {
              return 'shiftY' === t.layoutOption.moveOverlap
            })
          SS(r, 0, 0, e), SS(o, 1, 0, n)
          var a = V(i, function (t) {
            return t.layoutOption.hideOverlap
          })
          !(function (t) {
            for (var e = 0; e < t.length; e++) {
              var n = t[e],
                i = n.defaultAttr,
                r = n.labelLine
              n.label.attr('ignore', i.ignore), r && r.attr('ignore', i.labelGuideIgnore)
            }
          })(a),
            MS(a)
        }),
        (t.prototype.processLabelsOverall = function () {
          var t = this
          z(this._chartViewList, function (e) {
            var n = e.__model,
              i = e.ignoreLabelLineUpdate,
              r = n.isAnimationEnabled()
            e.group.traverse(function (e) {
              if (e.ignore && !e.forceLabelAnimation) return !0
              var o = !i,
                a = e.getTextContent()
              !o && a && (o = kS(a).needsUpdateLabelLine), o && t._updateLabelLine(e, n), r && t._animateLabels(e, n)
            })
          })
        }),
        (t.prototype._updateLabelLine = function (t, e) {
          var n = t.getTextContent(),
            i = zl(t),
            r = i.dataIndex
          if (n && null != r) {
            var o = e.getData(i.dataType),
              a = o.getItemModel(r),
              s = {},
              l = o.getItemVisual(r, 'style')
            if (l) {
              var u = o.getVisual('drawType')
              s.stroke = l[u]
            }
            var c = a.getModel('labelLine')
            dS(t, pS(a), s), oS(t, c)
          }
        }),
        (t.prototype._animateLabels = function (t, e) {
          var n = t.getTextContent(),
            i = t.getTextGuideLine()
          if (n && (t.forceLabelAnimation || (!n.ignore && !n.invisible && !t.disableLabelAnimation && !nh(t)))) {
            var r = (p = kS(n)).oldLayout,
              o = zl(t),
              a = o.dataIndex,
              s = { x: n.x, y: n.y, rotation: n.rotation },
              l = e.getData(o.dataType)
            if (r) {
              n.attr(r)
              var u = t.prevStates
              u && (P(u, 'select') >= 0 && n.attr(p.oldLayoutSelect), P(u, 'emphasis') >= 0 && n.attr(p.oldLayoutEmphasis)), th(n, s, e, a)
            } else if ((n.attr(s), !ad(n).valueAnimation)) {
              var c = rt(n.style.opacity, 1)
              ;(n.style.opacity = 0), eh(n, { style: { opacity: c } }, e, a)
            }
            if (((p.oldLayout = s), n.states.select)) {
              var h = (p.oldLayoutSelect = {})
              PS(h, s, OS), PS(h, n.states.select, OS)
            }
            if (n.states.emphasis) {
              var d = (p.oldLayoutEmphasis = {})
              PS(d, s, OS), PS(d, n.states.emphasis, OS)
            }
            ld(n, a, l, e, e)
          }
          if (i && !i.ignore && !i.invisible) {
            r = (p = LS(i)).oldLayout
            var p,
              f = { points: i.shape.points }
            r ? (i.attr({ shape: r }), th(i, { shape: f }, e)) : (i.setShape(f), (i.style.strokePercent = 0), eh(i, { style: { strokePercent: 1 } }, e)), (p.oldLayout = f)
          }
        }),
        t
      )
    })(),
    NS = sa()
  var zS = Math.sin,
    ES = Math.cos,
    BS = Math.PI,
    VS = 2 * Math.PI,
    GS = 180 / BS,
    FS = (function () {
      function t() {}
      return (
        (t.prototype.reset = function (t) {
          ;(this._start = !0), (this._d = []), (this._str = ''), (this._p = Math.pow(10, t || 4))
        }),
        (t.prototype.moveTo = function (t, e) {
          this._add('M', t, e)
        }),
        (t.prototype.lineTo = function (t, e) {
          this._add('L', t, e)
        }),
        (t.prototype.bezierCurveTo = function (t, e, n, i, r, o) {
          this._add('C', t, e, n, i, r, o)
        }),
        (t.prototype.quadraticCurveTo = function (t, e, n, i) {
          this._add('Q', t, e, n, i)
        }),
        (t.prototype.arc = function (t, e, n, i, r, o) {
          this.ellipse(t, e, n, n, 0, i, r, o)
        }),
        (t.prototype.ellipse = function (t, e, n, i, r, o, a, s) {
          var l = a - o,
            u = !s,
            c = Math.abs(l),
            h = wi(c - VS) || (u ? l >= VS : -l >= VS),
            d = l > 0 ? l % VS : (l % VS) + VS,
            p = !1
          p = !!h || (!wi(c) && d >= BS == !!u)
          var f = t + n * ES(o),
            g = e + i * zS(o)
          this._start && this._add('M', f, g)
          var y = Math.round(r * GS)
          if (h) {
            var v = 1 / this._p,
              m = (u ? 1 : -1) * (VS - v)
            this._add('A', n, i, y, 1, +u, t + n * ES(o + m), e + i * zS(o + m)), v > 0.01 && this._add('A', n, i, y, 0, +u, f, g)
          } else {
            var x = t + n * ES(a),
              _ = e + i * zS(a)
            this._add('A', n, i, y, +p, +u, x, _)
          }
        }),
        (t.prototype.rect = function (t, e, n, i) {
          this._add('M', t, e), this._add('l', n, 0), this._add('l', 0, i), this._add('l', -n, 0), this._add('Z')
        }),
        (t.prototype.closePath = function () {
          this._d.length > 0 && this._add('Z')
        }),
        (t.prototype._add = function (t, e, n, i, r, o, a, s, l) {
          for (var u = [], c = this._p, h = 1; h < arguments.length; h++) {
            var d = arguments[h]
            if (isNaN(d)) return void (this._invalid = !0)
            u.push(Math.round(d * c) / c)
          }
          this._d.push(t + u.join(' ')), (this._start = 'Z' === t)
        }),
        (t.prototype.generateStr = function () {
          ;(this._str = this._invalid ? '' : this._d.join('')), (this._d = [])
        }),
        (t.prototype.getStr = function () {
          return this._str
        }),
        t
      )
    })(),
    WS = 'none',
    HS = Math.round
  var US = ['lineCap', 'miterLimit', 'lineJoin'],
    YS = E(US, function (t) {
      return 'stroke-' + t.toLowerCase()
    })
  function XS(t, e, n, i) {
    var r = null == e.opacity ? 1 : e.opacity
    if (n instanceof dl) t('opacity', r)
    else {
      if (
        (function (t) {
          var e = t.fill
          return null != e && e !== WS
        })(e)
      ) {
        var o = _i(e.fill)
        t('fill', o.color)
        var a = null != e.fillOpacity ? e.fillOpacity * o.opacity * r : o.opacity * r
        ;(i || a < 1) && t('fill-opacity', a)
      } else t('fill', WS)
      if (
        (function (t) {
          var e = t.stroke
          return null != e && e !== WS
        })(e)
      ) {
        var s = _i(e.stroke)
        t('stroke', s.color)
        var l = e.strokeNoScale ? n.getLineScale() : 1,
          u = l ? (e.lineWidth || 0) / l : 0,
          c = null != e.strokeOpacity ? e.strokeOpacity * s.opacity * r : s.opacity * r,
          h = e.strokeFirst
        if (((i || 1 !== u) && t('stroke-width', u), (i || h) && t('paint-order', h ? 'stroke' : 'fill'), (i || c < 1) && t('stroke-opacity', c), e.lineDash)) {
          var d = mm(n),
            p = d[0],
            f = d[1]
          p && ((f = HS(f || 0)), t('stroke-dasharray', p.join(',')), (f || i) && t('stroke-dashoffset', f))
        } else i && t('stroke-dasharray', WS)
        for (var g = 0; g < US.length; g++) {
          var y = US[g]
          if (i || e[y] !== rl[y]) {
            var v = e[y] || rl[y]
            v && t(YS[g], v)
          }
        }
      } else i && t('stroke', WS)
    }
  }
  var ZS = 'http://www.w3.org/2000/svg',
    jS = 'http://www.w3.org/1999/xlink',
    qS = 'ecmeta_'
  function KS(t) {
    return document.createElementNS(ZS, t)
  }
  function $S(t, e, n, i, r) {
    return { tag: t, attrs: n || {}, children: i, text: r, key: e }
  }
  function JS(t, e) {
    var n = (e = e || {}).newline ? '\n' : ''
    return (function t(e) {
      var i = e.children,
        r = e.tag,
        o = e.attrs,
        a = e.text
      return (
        (function (t, e) {
          var n = []
          if (e)
            for (var i in e) {
              var r = e[i],
                o = i
              !1 !== r && (!0 !== r && null != r && (o += '="' + r + '"'), n.push(o))
            }
          return '<' + t + ' ' + n.join(' ') + '>'
        })(r, o) +
        ('style' !== r ? oe(a) : a || '') +
        (i
          ? '' +
            n +
            E(i, function (e) {
              return t(e)
            }).join(n) +
            n
          : '') +
        ('</' + r + '>')
      )
    })(t)
  }
  function QS(t) {
    return {
      zrId: t,
      shadowCache: {},
      patternCache: {},
      gradientCache: {},
      clipPathCache: {},
      defs: {},
      cssNodes: {},
      cssAnims: {},
      cssStyleCache: {},
      cssAnimIdx: 0,
      shadowIdx: 0,
      gradientIdx: 0,
      patternIdx: 0,
      clipPathIdx: 0
    }
  }
  function tM(t, e, n, i) {
    return $S('svg', 'root', { width: t, height: e, xmlns: ZS, 'xmlns:xlink': jS, version: '1.1', baseProfile: 'full', viewBox: !!i && '0 0 ' + t + ' ' + e }, n)
  }
  var eM = 0
  function nM() {
    return eM++
  }
  var iM = {
      cubicIn: '0.32,0,0.67,0',
      cubicOut: '0.33,1,0.68,1',
      cubicInOut: '0.65,0,0.35,1',
      quadraticIn: '0.11,0,0.5,0',
      quadraticOut: '0.5,1,0.89,1',
      quadraticInOut: '0.45,0,0.55,1',
      quarticIn: '0.5,0,0.75,0',
      quarticOut: '0.25,1,0.5,1',
      quarticInOut: '0.76,0,0.24,1',
      quinticIn: '0.64,0,0.78,0',
      quinticOut: '0.22,1,0.36,1',
      quinticInOut: '0.83,0,0.17,1',
      sinusoidalIn: '0.12,0,0.39,0',
      sinusoidalOut: '0.61,1,0.88,1',
      sinusoidalInOut: '0.37,0,0.63,1',
      exponentialIn: '0.7,0,0.84,0',
      exponentialOut: '0.16,1,0.3,1',
      exponentialInOut: '0.87,0,0.13,1',
      circularIn: '0.55,0,1,0.45',
      circularOut: '0,0.55,0.45,1',
      circularInOut: '0.85,0,0.15,1'
    },
    rM = 'transform-origin'
  function oM(t, e, n) {
    var i = A({}, t.shape)
    A(i, e), t.buildPath(n, i)
    var r = new FS()
    return r.reset(Pi(t)), n.rebuildPath(r, 1), r.generateStr(), r.getStr()
  }
  function aM(t, e) {
    var n = e.originX,
      i = e.originY
    ;(n || i) && (t[rM] = n + 'px ' + i + 'px')
  }
  var sM = { fill: 'fill', opacity: 'opacity', lineWidth: 'stroke-width', lineDashOffset: 'stroke-dashoffset' }
  function lM(t, e) {
    var n = e.zrId + '-ani-' + e.cssAnimIdx++
    return (e.cssAnims[n] = t), n
  }
  function uM(t) {
    return X(t) ? (iM[t] ? 'cubic-bezier(' + iM[t] + ')' : Wn(t) ? t : '') : ''
  }
  function cM(t, e, n, i) {
    var r = t.animators,
      o = r.length,
      a = []
    if (t instanceof zc) {
      var s = (function (t, e, n) {
        var i,
          r,
          o = t.shape.paths,
          a = {}
        if (
          (z(o, function (t) {
            var e = QS(n.zrId)
            ;(e.animation = !0), cM(t, {}, e, !0)
            var o = e.cssAnims,
              s = e.cssNodes,
              l = F(o),
              u = l.length
            if (u) {
              var c = o[(r = l[u - 1])]
              for (var h in c) {
                var d = c[h]
                ;(a[h] = a[h] || { d: '' }), (a[h].d += d.d || '')
              }
              for (var p in s) {
                var f = s[p].animation
                f.indexOf(r) >= 0 && (i = f)
              }
            }
          }),
          i)
        ) {
          e.d = !1
          var s = lM(a, n)
          return i.replace(r, s)
        }
      })(t, e, n)
      if (s) a.push(s)
      else if (!o) return
    } else if (!o) return
    for (var l = {}, u = 0; u < o; u++) {
      var c = r[u],
        h = [c.getMaxTime() / 1e3 + 's'],
        d = uM(c.getClip().easing),
        p = c.getDelay()
      d ? h.push(d) : h.push('linear'), p && h.push(p / 1e3 + 's'), c.getLoop() && h.push('infinite')
      var f = h.join(' ')
      ;(l[f] = l[f] || [f, []]), l[f][1].push(c)
    }
    function g(r) {
      var o,
        a = r[1],
        s = a.length,
        l = {},
        u = {},
        c = {},
        h = 'animation-timing-function'
      function d(t, e, n) {
        for (var i = t.getTracks(), r = t.getMaxTime(), o = 0; o < i.length; o++) {
          var a = i[o]
          if (a.needsAnimate()) {
            var s = a.keyframes,
              l = a.propName
            if ((n && (l = n(l)), l))
              for (var u = 0; u < s.length; u++) {
                var c = s[u],
                  d = Math.round((c.time / r) * 100) + '%',
                  p = uM(c.easing),
                  f = c.rawValue
                ;(X(f) || j(f)) && ((e[d] = e[d] || {}), (e[d][l] = c.rawValue), p && (e[d][h] = p))
              }
          }
        }
      }
      for (var p = 0; p < s; p++) {
        ;(S = (w = a[p]).targetName) ? 'shape' === S && d(w, u) : !i && d(w, l)
      }
      for (var f in l) {
        var g = {}
        kr(g, t), A(g, l[f])
        var y = Oi(g),
          v = l[f][h]
        ;(c[f] = y ? { transform: y } : {}), aM(c[f], g), v && (c[f][h] = v)
      }
      var m = !0
      for (var f in u) {
        c[f] = c[f] || {}
        var x = !o
        v = u[f][h]
        x && (o = new Fs())
        var _ = o.len()
        o.reset(), (c[f].d = oM(t, u[f], o))
        var b = o.len()
        if (!x && _ !== b) {
          m = !1
          break
        }
        v && (c[f][h] = v)
      }
      if (!m) for (var f in c) delete c[f].d
      if (!i)
        for (p = 0; p < s; p++) {
          var w, S
          'style' === (S = (w = a[p]).targetName) &&
            d(w, c, function (t) {
              return sM[t]
            })
        }
      var M,
        I = F(c),
        T = !0
      for (p = 1; p < I.length; p++) {
        var C = I[p - 1],
          D = I[p]
        if (c[C][rM] !== c[D][rM]) {
          T = !1
          break
        }
        M = c[C][rM]
      }
      if (T && M) {
        for (var f in c) c[f][rM] && delete c[f][rM]
        e[rM] = M
      }
      if (
        V(I, function (t) {
          return F(c[t]).length > 0
        }).length
      )
        return lM(c, n) + ' ' + r[0] + ' both'
    }
    for (var y in l) {
      ;(s = g(l[y])) && a.push(s)
    }
    if (a.length) {
      var v = n.zrId + '-cls-' + nM()
      ;(n.cssNodes['.' + v] = { animation: a.join(',') }), (e.class = v)
    }
  }
  function hM(t, e, n, i) {
    var r = JSON.stringify(t),
      o = n.cssStyleCache[r]
    o || ((o = n.zrId + '-cls-' + nM()), (n.cssStyleCache[r] = o), (n.cssNodes['.' + o + (i ? ':hover' : '')] = t)), (e.class = e.class ? e.class + ' ' + o : o)
  }
  var dM = Math.round
  function pM(t) {
    return t && X(t.src)
  }
  function fM(t) {
    return t && Y(t.toDataURL)
  }
  function gM(t, e, n, i) {
    XS(
      function (r, o) {
        var a = 'fill' === r || 'stroke' === r
        a && ki(o) ? TM(e, t, r, i) : a && Ci(o) ? CM(n, t, r, i) : (t[r] = o), a && i.ssr && 'none' === o && (t['pointer-events'] = 'visible')
      },
      e,
      n,
      !1
    ),
      (function (t, e, n) {
        var i = t.style
        if (
          (function (t) {
            return t && (t.shadowBlur || t.shadowOffsetX || t.shadowOffsetY)
          })(i)
        ) {
          var r = (function (t) {
              var e = t.style,
                n = t.getGlobalScale()
              return [e.shadowColor, (e.shadowBlur || 0).toFixed(2), (e.shadowOffsetX || 0).toFixed(2), (e.shadowOffsetY || 0).toFixed(2), n[0], n[1]].join(',')
            })(t),
            o = n.shadowCache,
            a = o[r]
          if (!a) {
            var s = t.getGlobalScale(),
              l = s[0],
              u = s[1]
            if (!l || !u) return
            var c = i.shadowOffsetX || 0,
              h = i.shadowOffsetY || 0,
              d = i.shadowBlur,
              p = _i(i.shadowColor),
              f = p.opacity,
              g = p.color,
              y = d / 2 / l + ' ' + d / 2 / u
            ;(a = n.zrId + '-s' + n.shadowIdx++),
              (n.defs[a] = $S('filter', a, { id: a, x: '-100%', y: '-100%', width: '300%', height: '300%' }, [
                $S('feDropShadow', '', { dx: c / l, dy: h / u, stdDeviation: y, 'flood-color': g, 'flood-opacity': f })
              ])),
              (o[r] = a)
          }
          e.filter = Li(a)
        }
      })(n, t, i)
  }
  function yM(t, e) {
    var n = so(e)
    n &&
      (n.each(function (e, n) {
        null != e && (t[(qS + n).toLowerCase()] = e + '')
      }),
      e.isSilent() && (t[qS + 'silent'] = 'true'))
  }
  function vM(t) {
    return wi(t[0] - 1) && wi(t[1]) && wi(t[2]) && wi(t[3] - 1)
  }
  function mM(t, e, n) {
    if (
      e &&
      (!(function (t) {
        return wi(t[4]) && wi(t[5])
      })(e) ||
        !vM(e))
    ) {
      var i = n ? 10 : 1e4
      t.transform = vM(e)
        ? 'translate(' + dM(e[4] * i) / i + ' ' + dM(e[5] * i) / i + ')'
        : (function (t) {
            return 'matrix(' + Si(t[0]) + ',' + Si(t[1]) + ',' + Si(t[2]) + ',' + Si(t[3]) + ',' + Mi(t[4]) + ',' + Mi(t[5]) + ')'
          })(e)
    }
  }
  function xM(t, e, n) {
    for (var i = t.points, r = [], o = 0; o < i.length; o++) r.push(dM(i[o][0] * n) / n), r.push(dM(i[o][1] * n) / n)
    e.points = r.join(' ')
  }
  function _M(t) {
    return !t.smooth
  }
  var bM,
    wM,
    SM = {
      circle: [
        ((bM = ['cx', 'cy', 'r']),
        (wM = E(bM, function (t) {
          return 'string' == typeof t ? [t, t] : t
        })),
        function (t, e, n) {
          for (var i = 0; i < wM.length; i++) {
            var r = wM[i],
              o = t[r[0]]
            null != o && (e[r[1]] = dM(o * n) / n)
          }
        })
      ],
      polyline: [xM, _M],
      polygon: [xM, _M]
    }
  function MM(t, e) {
    var n = t.style,
      i = t.shape,
      r = SM[t.type],
      o = {},
      a = e.animation,
      s = 'path',
      l = t.style.strokePercent,
      u = (e.compress && Pi(t)) || 4
    if (
      !r ||
      e.willUpdate ||
      (r[1] && !r[1](i)) ||
      (a &&
        (function (t) {
          for (var e = t.animators, n = 0; n < e.length; n++) if ('shape' === e[n].targetName) return !0
          return !1
        })(t)) ||
      l < 1
    ) {
      var c = !t.path || t.shapeChanged()
      t.path || t.createPathProxy()
      var h = t.path
      c && (h.beginPath(), t.buildPath(h, t.shape), t.pathUpdated())
      var d = h.getVersion(),
        p = t,
        f = p.__svgPathBuilder
      ;(p.__svgPathVersion === d && f && l === p.__svgPathStrokePercent) ||
        (f || (f = p.__svgPathBuilder = new FS()), f.reset(u), h.rebuildPath(f, l), f.generateStr(), (p.__svgPathVersion = d), (p.__svgPathStrokePercent = l)),
        (o.d = f.getStr())
    } else {
      s = t.type
      var g = Math.pow(10, u)
      r[0](i, o, g)
    }
    return (
      mM(o, t.transform),
      gM(o, n, t, e),
      yM(o, t),
      e.animation && cM(t, o, e),
      e.emphasis &&
        (function (t, e, n) {
          if (!t.ignore)
            if (t.isSilent()) hM((u = { 'pointer-events': 'none' }), e, n, !0)
            else {
              var i = t.states.emphasis && t.states.emphasis.style ? t.states.emphasis.style : {},
                r = i.fill
              if (!r) {
                var o = t.style && t.style.fill,
                  a = t.states.select && t.states.select.style && t.states.select.style.fill,
                  s = (t.currentStates.indexOf('select') >= 0 && a) || o
                s && (r = vi(s))
              }
              var l = i.lineWidth
              l && (l /= !i.strokeNoScale && t.transform ? t.transform[0] : 1)
              var u = { cursor: 'pointer' }
              r && (u.fill = r), i.stroke && (u.stroke = i.stroke), l && (u['stroke-width'] = l), hM(u, e, n, !0)
            }
        })(t, o, e),
      $S(s, t.id + '', o)
    )
  }
  function IM(t, e) {
    return t instanceof sl
      ? MM(t, e)
      : t instanceof dl
        ? (function (t, e) {
            var n = t.style,
              i = n.image
            if ((i && !X(i) && (pM(i) ? (i = i.src) : fM(i) && (i = i.toDataURL())), i)) {
              var r = n.x || 0,
                o = n.y || 0,
                a = { href: i, width: n.width, height: n.height }
              return r && (a.x = r), o && (a.y = o), mM(a, t.transform), gM(a, n, t, e), yM(a, t), e.animation && cM(t, a, e), $S('image', t.id + '', a)
            }
          })(t, e)
        : t instanceof ul
          ? (function (t, e) {
              var n = t.style,
                i = n.text
              if ((null != i && (i += ''), i && !isNaN(n.x) && !isNaN(n.y))) {
                var r = n.font || a,
                  s = n.x || 0,
                  l = (function (t, e, n) {
                    return 'top' === n ? (t += e / 2) : 'bottom' === n && (t -= e / 2), t
                  })(n.y || 0, Gr(r), n.textBaseline),
                  u = { 'dominant-baseline': 'central', 'text-anchor': Ii[n.textAlign] || n.textAlign }
                if (Al(n)) {
                  var c = '',
                    h = n.fontStyle,
                    d = Cl(n.fontSize)
                  if (!parseFloat(d)) return
                  var p = n.fontFamily || o,
                    f = n.fontWeight
                  ;(c += 'font-size:' + d + ';font-family:' + p + ';'),
                    h && 'normal' !== h && (c += 'font-style:' + h + ';'),
                    f && 'normal' !== f && (c += 'font-weight:' + f + ';'),
                    (u.style = c)
                } else u.style = 'font: ' + r
                return (
                  i.match(/\s/) && (u['xml:space'] = 'preserve'),
                  s && (u.x = s),
                  l && (u.y = l),
                  mM(u, t.transform),
                  gM(u, n, t, e),
                  yM(u, t),
                  e.animation && cM(t, u, e),
                  $S('text', t.id + '', u, void 0, i)
                )
              }
            })(t, e)
          : void 0
  }
  function TM(t, e, n, i) {
    var r,
      o = t[n],
      a = { gradientUnits: o.global ? 'userSpaceOnUse' : 'objectBoundingBox' }
    if (Di(o)) (r = 'linearGradient'), (a.x1 = o.x), (a.y1 = o.y), (a.x2 = o.x2), (a.y2 = o.y2)
    else {
      if (!Ai(o)) return void 0
      ;(r = 'radialGradient'), (a.cx = rt(o.x, 0.5)), (a.cy = rt(o.y, 0.5)), (a.r = rt(o.r, 0.5))
    }
    for (var s = o.colorStops, l = [], u = 0, c = s.length; u < c; ++u) {
      var h = 100 * Mi(s[u].offset) + '%',
        d = _i(s[u].color),
        p = d.color,
        f = d.opacity,
        g = { offset: h }
      ;(g['stop-color'] = p), f < 1 && (g['stop-opacity'] = f), l.push($S('stop', u + '', g))
    }
    var y = JS($S(r, '', a, l)),
      v = i.gradientCache,
      m = v[y]
    m || ((m = i.zrId + '-g' + i.gradientIdx++), (v[y] = m), (a.id = m), (i.defs[m] = $S(r, m, a, l))), (e[n] = Li(m))
  }
  function CM(t, e, n, i) {
    var r,
      o = t.style[n],
      a = t.getBoundingRect(),
      s = {},
      l = o.repeat,
      u = 'no-repeat' === l,
      c = 'repeat-x' === l,
      h = 'repeat-y' === l
    if (Ti(o)) {
      var d = o.imageWidth,
        p = o.imageHeight,
        f = void 0,
        g = o.image
      if ((X(g) ? (f = g) : pM(g) ? (f = g.src) : fM(g) && (f = g.toDataURL()), 'undefined' == typeof Image)) {
        var y = 'Image width/height must been given explictly in svg-ssr renderer.'
        lt(d, y), lt(p, y)
      } else if (null == d || null == p) {
        var v = function (t, e) {
            if (t) {
              var n = t.elm,
                i = d || e.width,
                r = p || e.height
              'pattern' === t.tag && (c ? ((r = 1), (i /= a.width)) : h && ((i = 1), (r /= a.height))),
                (t.attrs.width = i),
                (t.attrs.height = r),
                n && (n.setAttribute('width', i), n.setAttribute('height', r))
            }
          },
          m = Oa(f, null, t, function (t) {
            u || v(w, t), v(r, t)
          })
        m && m.width && m.height && ((d = d || m.width), (p = p || m.height))
      }
      ;(r = $S('image', 'img', { href: f, width: d, height: p })), (s.width = d), (s.height = p)
    } else o.svgElement && ((r = T(o.svgElement)), (s.width = o.svgWidth), (s.height = o.svgHeight))
    if (r) {
      var x, _
      u ? (x = _ = 1) : c ? ((_ = 1), (x = s.width / a.width)) : h ? ((x = 1), (_ = s.height / a.height)) : (s.patternUnits = 'userSpaceOnUse'),
        null == x || isNaN(x) || (s.width = x),
        null == _ || isNaN(_) || (s.height = _)
      var b = Oi(o)
      b && (s.patternTransform = b)
      var w = $S('pattern', '', s, [r]),
        S = JS(w),
        M = i.patternCache,
        I = M[S]
      I || ((I = i.zrId + '-p' + i.patternIdx++), (M[S] = I), (s.id = I), (w = i.defs[I] = $S('pattern', I, s, [r]))), (e[n] = Li(I))
    }
  }
  function DM(t, e, n) {
    var i = n.clipPathCache,
      r = n.defs,
      o = i[t.id]
    if (!o) {
      var a = { id: (o = n.zrId + '-c' + n.clipPathIdx++) }
      ;(i[t.id] = o), (r[o] = $S('clipPath', o, a, [MM(t, n)]))
    }
    e['clip-path'] = Li(o)
  }
  function AM(t) {
    return document.createTextNode(t)
  }
  function kM(t, e, n) {
    t.insertBefore(e, n)
  }
  function LM(t, e) {
    t.removeChild(e)
  }
  function PM(t, e) {
    t.appendChild(e)
  }
  function OM(t) {
    return t.parentNode
  }
  function RM(t) {
    return t.nextSibling
  }
  function NM(t, e) {
    t.textContent = e
  }
  var zM = $S('', '')
  function EM(t) {
    return void 0 === t
  }
  function BM(t) {
    return void 0 !== t
  }
  function VM(t, e, n) {
    for (var i = {}, r = e; r <= n; ++r) {
      var o = t[r].key
      void 0 !== o && (i[o] = r)
    }
    return i
  }
  function GM(t, e) {
    var n = t.key === e.key
    return t.tag === e.tag && n
  }
  function FM(t) {
    var e,
      n = t.children,
      i = t.tag
    if (BM(i)) {
      var r = (t.elm = KS(i))
      if ((UM(zM, t), U(n)))
        for (e = 0; e < n.length; ++e) {
          var o = n[e]
          null != o && PM(r, FM(o))
        }
      else BM(t.text) && !q(t.text) && PM(r, AM(t.text))
    } else t.elm = AM(t.text)
    return t.elm
  }
  function WM(t, e, n, i, r) {
    for (; i <= r; ++i) {
      var o = n[i]
      null != o && kM(t, FM(o), e)
    }
  }
  function HM(t, e, n, i) {
    for (; n <= i; ++n) {
      var r = e[n]
      if (null != r)
        if (BM(r.tag)) LM(OM(r.elm), r.elm)
        else LM(t, r.elm)
    }
  }
  function UM(t, e) {
    var n,
      i = e.elm,
      r = (t && t.attrs) || {},
      o = e.attrs || {}
    if (r !== o) {
      for (n in o) {
        var a = o[n]
        r[n] !== a &&
          (!0 === a
            ? i.setAttribute(n, '')
            : !1 === a
              ? i.removeAttribute(n)
              : 'style' === n
                ? (i.style.cssText = a)
                : 120 !== n.charCodeAt(0)
                  ? i.setAttribute(n, a)
                  : 'xmlns:xlink' === n || 'xmlns' === n
                    ? i.setAttributeNS('http://www.w3.org/2000/xmlns/', n, a)
                    : 58 === n.charCodeAt(3)
                      ? i.setAttributeNS('http://www.w3.org/XML/1998/namespace', n, a)
                      : 58 === n.charCodeAt(5)
                        ? i.setAttributeNS(jS, n, a)
                        : i.setAttribute(n, a))
      }
      for (n in r) n in o || i.removeAttribute(n)
    }
  }
  function YM(t, e) {
    var n = (e.elm = t.elm),
      i = t.children,
      r = e.children
    t !== e &&
      (UM(t, e),
      EM(e.text)
        ? BM(i) && BM(r)
          ? i !== r &&
            (function (t, e, n) {
              for (var i, r, o, a = 0, s = 0, l = e.length - 1, u = e[0], c = e[l], h = n.length - 1, d = n[0], p = n[h]; a <= l && s <= h; )
                null == u
                  ? (u = e[++a])
                  : null == c
                    ? (c = e[--l])
                    : null == d
                      ? (d = n[++s])
                      : null == p
                        ? (p = n[--h])
                        : GM(u, d)
                          ? (YM(u, d), (u = e[++a]), (d = n[++s]))
                          : GM(c, p)
                            ? (YM(c, p), (c = e[--l]), (p = n[--h]))
                            : GM(u, p)
                              ? (YM(u, p), kM(t, u.elm, RM(c.elm)), (u = e[++a]), (p = n[--h]))
                              : GM(c, d)
                                ? (YM(c, d), kM(t, c.elm, u.elm), (c = e[--l]), (d = n[++s]))
                                : (EM(i) && (i = VM(e, a, l)),
                                  EM((r = i[d.key])) || (o = e[r]).tag !== d.tag ? kM(t, FM(d), u.elm) : (YM(o, d), (e[r] = void 0), kM(t, o.elm, u.elm)),
                                  (d = n[++s]))
              ;(a <= l || s <= h) && (a > l ? WM(t, null == n[h + 1] ? null : n[h + 1].elm, n, s, h) : HM(t, e, a, l))
            })(n, i, r)
          : BM(r)
            ? (BM(t.text) && NM(n, ''), WM(n, null, r, 0, r.length - 1))
            : BM(i)
              ? HM(n, i, 0, i.length - 1)
              : BM(t.text) && NM(n, '')
        : t.text !== e.text && (BM(i) && HM(n, i, 0, i.length - 1), NM(n, e.text)))
  }
  var XM = 0,
    ZM = (function () {
      function t(t, e, n) {
        if (
          ((this.type = 'svg'),
          (this.refreshHover = jM('refreshHover')),
          (this.configLayer = jM('configLayer')),
          (this.storage = e),
          (this._opts = n = A({}, n)),
          (this.root = t),
          (this._id = 'zr' + XM++),
          (this._oldVNode = tM(n.width, n.height)),
          t && !n.ssr)
        ) {
          var i = (this._viewport = document.createElement('div'))
          i.style.cssText = 'position:relative;overflow:hidden'
          var r = (this._svgDom = this._oldVNode.elm = KS('svg'))
          UM(null, this._oldVNode), i.appendChild(r), t.appendChild(i)
        }
        this.resize(n.width, n.height)
      }
      return (
        (t.prototype.getType = function () {
          return this.type
        }),
        (t.prototype.getViewportRoot = function () {
          return this._viewport
        }),
        (t.prototype.getViewportRootOffset = function () {
          var t = this.getViewportRoot()
          if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 }
        }),
        (t.prototype.getSvgDom = function () {
          return this._svgDom
        }),
        (t.prototype.refresh = function () {
          if (this.root) {
            var t = this.renderToVNode({ willUpdate: !0 })
            ;(t.attrs.style = 'position:absolute;left:0;top:0;user-select:none'),
              (function (t, e) {
                if (GM(t, e)) YM(t, e)
                else {
                  var n = t.elm,
                    i = OM(n)
                  FM(e), null !== i && (kM(i, e.elm, RM(n)), HM(i, [t], 0, 0))
                }
              })(this._oldVNode, t),
              (this._oldVNode = t)
          }
        }),
        (t.prototype.renderOneToVNode = function (t) {
          return IM(t, QS(this._id))
        }),
        (t.prototype.renderToVNode = function (t) {
          t = t || {}
          var e = this.storage.getDisplayList(!0),
            n = this._width,
            i = this._height,
            r = QS(this._id)
          ;(r.animation = t.animation), (r.willUpdate = t.willUpdate), (r.compress = t.compress), (r.emphasis = t.emphasis), (r.ssr = this._opts.ssr)
          var o = [],
            a = (this._bgVNode = (function (t, e, n, i) {
              var r
              if (n && 'none' !== n)
                if (((r = $S('rect', 'bg', { width: t, height: e, x: '0', y: '0' })), ki(n))) TM({ fill: n }, r.attrs, 'fill', i)
                else if (Ci(n))
                  CM(
                    {
                      style: { fill: n },
                      dirty: bt,
                      getBoundingRect: function () {
                        return { width: t, height: e }
                      }
                    },
                    r.attrs,
                    'fill',
                    i
                  )
                else {
                  var o = _i(n),
                    a = o.color,
                    s = o.opacity
                  ;(r.attrs.fill = a), s < 1 && (r.attrs['fill-opacity'] = s)
                }
              return r
            })(n, i, this._backgroundColor, r))
          a && o.push(a)
          var s = t.compress ? null : (this._mainVNode = $S('g', 'main', {}, []))
          this._paintList(e, r, s ? s.children : o), s && o.push(s)
          var l = E(F(r.defs), function (t) {
            return r.defs[t]
          })
          if ((l.length && o.push($S('defs', 'defs', {}, l)), t.animation)) {
            var u = (function (t, e, n) {
              var i = (n = n || {}).newline ? '\n' : '',
                r = ' {' + i,
                o = i + '}',
                a = E(F(t), function (e) {
                  return (
                    e +
                    r +
                    E(F(t[e]), function (n) {
                      return n + ':' + t[e][n] + ';'
                    }).join(i) +
                    o
                  )
                }).join(i),
                s = E(F(e), function (t) {
                  return (
                    '@keyframes ' +
                    t +
                    r +
                    E(F(e[t]), function (n) {
                      return (
                        n +
                        r +
                        E(F(e[t][n]), function (i) {
                          var r = e[t][n][i]
                          return 'd' === i && (r = 'path("' + r + '")'), i + ':' + r + ';'
                        }).join(i) +
                        o
                      )
                    }).join(i) +
                    o
                  )
                }).join(i)
              return a || s ? ['<![CDATA[', a, s, ']]>'].join(i) : ''
            })(r.cssNodes, r.cssAnims, { newline: !0 })
            if (u) {
              var c = $S('style', 'stl', {}, [], u)
              o.push(c)
            }
          }
          return tM(n, i, o, t.useViewBox)
        }),
        (t.prototype.renderToString = function (t) {
          return (
            (t = t || {}),
            JS(this.renderToVNode({ animation: rt(t.cssAnimation, !0), emphasis: rt(t.cssEmphasis, !0), willUpdate: !1, compress: !0, useViewBox: rt(t.useViewBox, !0) }), {
              newline: !0
            })
          )
        }),
        (t.prototype.setBackgroundColor = function (t) {
          this._backgroundColor = t
        }),
        (t.prototype.getSvgRoot = function () {
          return this._mainVNode && this._mainVNode.elm
        }),
        (t.prototype._paintList = function (t, e, n) {
          for (var i, r, o = t.length, a = [], s = 0, l = 0, u = 0; u < o; u++) {
            var c = t[u]
            if (!c.invisible) {
              var h = c.__clipPaths,
                d = (h && h.length) || 0,
                p = (r && r.length) || 0,
                f = void 0
              for (f = Math.max(d - 1, p - 1); f >= 0 && (!h || !r || h[f] !== r[f]); f--);
              for (var g = p - 1; g > f; g--) i = a[--s - 1]
              for (var y = f + 1; y < d; y++) {
                var v = {}
                DM(h[y], v, e)
                var m = $S('g', 'clip-g-' + l++, v, [])
                ;(i ? i.children : n).push(m), (a[s++] = m), (i = m)
              }
              r = h
              var x = IM(c, e)
              x && (i ? i.children : n).push(x)
            }
          }
        }),
        (t.prototype.resize = function (t, e) {
          var n = this._opts,
            i = this.root,
            r = this._viewport
          if (
            (null != t && (n.width = t),
            null != e && (n.height = e),
            i && r && ((r.style.display = 'none'), (t = vm(i, 0, n)), (e = vm(i, 1, n)), (r.style.display = '')),
            this._width !== t || this._height !== e)
          ) {
            if (((this._width = t), (this._height = e), r)) {
              var o = r.style
              ;(o.width = t + 'px'), (o.height = e + 'px')
            }
            if (Ci(this._backgroundColor)) this.refresh()
            else {
              var a = this._svgDom
              a && (a.setAttribute('width', t), a.setAttribute('height', e))
              var s = this._bgVNode && this._bgVNode.elm
              s && (s.setAttribute('width', t), s.setAttribute('height', e))
            }
          }
        }),
        (t.prototype.getWidth = function () {
          return this._width
        }),
        (t.prototype.getHeight = function () {
          return this._height
        }),
        (t.prototype.dispose = function () {
          this.root && (this.root.innerHTML = ''), (this._svgDom = this._viewport = this.storage = this._oldVNode = this._bgVNode = this._mainVNode = null)
        }),
        (t.prototype.clear = function () {
          this._svgDom && (this._svgDom.innerHTML = null), (this._oldVNode = null)
        }),
        (t.prototype.toDataURL = function (t) {
          var e = this.renderToString(),
            n = 'data:image/svg+xml;'
          return t ? (e = Ri(e)) && n + 'base64,' + e : n + 'charset=UTF-8,' + encodeURIComponent(e)
        }),
        t
      )
    })()
  function jM(t) {
    return function () {
      0
    }
  }
  function qM(t, e, n) {
    var i = c.createCanvas(),
      r = e.getWidth(),
      o = e.getHeight(),
      a = i.style
    return (
      a && ((a.position = 'absolute'), (a.left = '0'), (a.top = '0'), (a.width = r + 'px'), (a.height = o + 'px'), i.setAttribute('data-zr-dom-id', t)),
      (i.width = r * n),
      (i.height = o * n),
      i
    )
  }
  var KM = (function (t) {
      function e(e, n, i) {
        var r,
          o = t.call(this) || this
        ;(o.motionBlur = !1),
          (o.lastFrameAlpha = 0.7),
          (o.dpr = 1),
          (o.virtual = !1),
          (o.config = {}),
          (o.incremental = !1),
          (o.zlevel = 0),
          (o.maxRepaintRectCount = 5),
          (o.__dirty = !0),
          (o.__firstTimePaint = !0),
          (o.__used = !1),
          (o.__drawIndex = 0),
          (o.__startIndex = 0),
          (o.__endIndex = 0),
          (o.__prevStartIndex = null),
          (o.__prevEndIndex = null),
          (i = i || vr),
          'string' == typeof e ? (r = qM(e, n, i)) : q(e) && (e = (r = e).id),
          (o.id = e),
          (o.dom = r)
        var a = r.style
        return (
          a &&
            (xt(r),
            (r.onselectstart = function () {
              return !1
            }),
            (a.padding = '0'),
            (a.margin = '0'),
            (a.borderWidth = '0')),
          (o.painter = n),
          (o.dpr = i),
          o
        )
      }
      return (
        n(e, t),
        (e.prototype.getElementCount = function () {
          return this.__endIndex - this.__startIndex
        }),
        (e.prototype.afterBrush = function () {
          ;(this.__prevStartIndex = this.__startIndex), (this.__prevEndIndex = this.__endIndex)
        }),
        (e.prototype.initContext = function () {
          ;(this.ctx = this.dom.getContext('2d')), (this.ctx.dpr = this.dpr)
        }),
        (e.prototype.setUnpainted = function () {
          this.__firstTimePaint = !0
        }),
        (e.prototype.createBackBuffer = function () {
          var t = this.dpr
          ;(this.domBack = qM('back-' + this.id, this.painter, t)), (this.ctxBack = this.domBack.getContext('2d')), 1 !== t && this.ctxBack.scale(t, t)
        }),
        (e.prototype.createRepaintRects = function (t, e, n, i) {
          if (this.__firstTimePaint) return (this.__firstTimePaint = !1), null
          var r,
            o = [],
            a = this.maxRepaintRectCount,
            s = !1,
            l = new He(0, 0, 0, 0)
          function u(t) {
            if (t.isFinite() && !t.isZero())
              if (0 === o.length) {
                ;(e = new He(0, 0, 0, 0)).copy(t), o.push(e)
              } else {
                for (var e, n = !1, i = 1 / 0, r = 0, u = 0; u < o.length; ++u) {
                  var c = o[u]
                  if (c.intersect(t)) {
                    var h = new He(0, 0, 0, 0)
                    h.copy(c), h.union(t), (o[u] = h), (n = !0)
                    break
                  }
                  if (s) {
                    l.copy(t), l.union(c)
                    var d = t.width * t.height,
                      p = c.width * c.height,
                      f = l.width * l.height - d - p
                    f < i && ((i = f), (r = u))
                  }
                }
                if ((s && (o[r].union(t), (n = !0)), !n)) (e = new He(0, 0, 0, 0)).copy(t), o.push(e)
                s || (s = o.length >= a)
              }
          }
          for (var c = this.__startIndex; c < this.__endIndex; ++c) {
            if ((p = t[c])) {
              var h = p.shouldBePainted(n, i, !0, !0)
              ;(f = p.__isRendered && (1 & p.__dirty || !h) ? p.getPrevPaintRect() : null) && u(f)
              var d = h && (1 & p.__dirty || !p.__isRendered) ? p.getPaintRect() : null
              d && u(d)
            }
          }
          for (c = this.__prevStartIndex; c < this.__prevEndIndex; ++c) {
            var p, f
            h = (p = e[c]) && p.shouldBePainted(n, i, !0, !0)
            if (p && (!h || !p.__zr) && p.__isRendered) (f = p.getPrevPaintRect()) && u(f)
          }
          do {
            r = !1
            for (c = 0; c < o.length; )
              if (o[c].isZero()) o.splice(c, 1)
              else {
                for (var g = c + 1; g < o.length; ) o[c].intersect(o[g]) ? ((r = !0), o[c].union(o[g]), o.splice(g, 1)) : g++
                c++
              }
          } while (r)
          return (this._paintRects = o), o
        }),
        (e.prototype.debugGetPaintRects = function () {
          return (this._paintRects || []).slice()
        }),
        (e.prototype.resize = function (t, e) {
          var n = this.dpr,
            i = this.dom,
            r = i.style,
            o = this.domBack
          r && ((r.width = t + 'px'), (r.height = e + 'px')),
            (i.width = t * n),
            (i.height = e * n),
            o && ((o.width = t * n), (o.height = e * n), 1 !== n && this.ctxBack.scale(n, n))
        }),
        (e.prototype.clear = function (t, e, n) {
          var i = this.dom,
            r = this.ctx,
            o = i.width,
            a = i.height
          e = e || this.clearColor
          var s = this.motionBlur && !t,
            l = this.lastFrameAlpha,
            u = this.dpr,
            c = this
          s && (this.domBack || this.createBackBuffer(), (this.ctxBack.globalCompositeOperation = 'copy'), this.ctxBack.drawImage(i, 0, 0, o / u, a / u))
          var h = this.domBack
          function d(t, n, i, o) {
            if ((r.clearRect(t, n, i, o), e && 'transparent' !== e)) {
              var a = void 0
              if (Q(e))
                (a = ((e.global || (e.__width === i && e.__height === o)) && e.__canvasGradient) || gm(r, e, { x: 0, y: 0, width: i, height: o })),
                  (e.__canvasGradient = a),
                  (e.__width = i),
                  (e.__height = o)
              else
                tt(e) &&
                  ((e.scaleX = e.scaleX || u),
                  (e.scaleY = e.scaleY || u),
                  (a = Im(r, e, {
                    dirty: function () {
                      c.setUnpainted(), c.painter.refresh()
                    }
                  })))
              r.save(), (r.fillStyle = a || e), r.fillRect(t, n, i, o), r.restore()
            }
            s && (r.save(), (r.globalAlpha = l), r.drawImage(h, t, n, i, o), r.restore())
          }
          !n || s
            ? d(0, 0, o, a)
            : n.length &&
              z(n, function (t) {
                d(t.x * u, t.y * u, t.width * u, t.height * u)
              })
        }),
        e
      )
    })(qt),
    $M = 1e5,
    JM = 314159,
    QM = 0.01
  var tI = (function () {
    function t(t, e, n, i) {
      ;(this.type = 'canvas'),
        (this._zlevelList = []),
        (this._prevDisplayList = []),
        (this._layers = {}),
        (this._layerConfig = {}),
        (this._needsManuallyCompositing = !1),
        (this.type = 'canvas')
      var r = !t.nodeName || 'CANVAS' === t.nodeName.toUpperCase()
      ;(this._opts = n = A({}, n || {})),
        (this.dpr = n.devicePixelRatio || vr),
        (this._singleCanvas = r),
        (this.root = t),
        t.style && (xt(t), (t.innerHTML = '')),
        (this.storage = e)
      var o = this._zlevelList
      this._prevDisplayList = []
      var a = this._layers
      if (r) {
        var s = t,
          l = s.width,
          u = s.height
        null != n.width && (l = n.width),
          null != n.height && (u = n.height),
          (this.dpr = n.devicePixelRatio || 1),
          (s.width = l * this.dpr),
          (s.height = u * this.dpr),
          (this._width = l),
          (this._height = u)
        var c = new KM(s, this, this.dpr)
        ;(c.__builtin__ = !0), c.initContext(), (a[314159] = c), (c.zlevel = JM), o.push(JM), (this._domRoot = t)
      } else {
        ;(this._width = vm(t, 0, n)), (this._height = vm(t, 1, n))
        var h = (this._domRoot = (function (t, e) {
          var n = document.createElement('div')
          return (n.style.cssText = ['position:relative', 'width:' + t + 'px', 'height:' + e + 'px', 'padding:0', 'margin:0', 'border-width:0'].join(';') + ';'), n
        })(this._width, this._height))
        t.appendChild(h)
      }
    }
    return (
      (t.prototype.getType = function () {
        return 'canvas'
      }),
      (t.prototype.isSingleCanvas = function () {
        return this._singleCanvas
      }),
      (t.prototype.getViewportRoot = function () {
        return this._domRoot
      }),
      (t.prototype.getViewportRootOffset = function () {
        var t = this.getViewportRoot()
        if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 }
      }),
      (t.prototype.refresh = function (t) {
        var e = this.storage.getDisplayList(!0),
          n = this._prevDisplayList,
          i = this._zlevelList
        ;(this._redrawId = Math.random()), this._paintList(e, n, t, this._redrawId)
        for (var r = 0; r < i.length; r++) {
          var o = i[r],
            a = this._layers[o]
          if (!a.__builtin__ && a.refresh) {
            var s = 0 === r ? this._backgroundColor : null
            a.refresh(s)
          }
        }
        return this._opts.useDirtyRect && (this._prevDisplayList = e.slice()), this
      }),
      (t.prototype.refreshHover = function () {
        this._paintHoverList(this.storage.getDisplayList(!1))
      }),
      (t.prototype._paintHoverList = function (t) {
        var e = t.length,
          n = this._hoverlayer
        if ((n && n.clear(), e)) {
          for (var i, r = { inHover: !0, viewWidth: this._width, viewHeight: this._height }, o = 0; o < e; o++) {
            var a = t[o]
            a.__inHover && (n || (n = this._hoverlayer = this.getLayer($M)), i || (i = n.ctx).save(), Rm(i, a, r, o === e - 1))
          }
          i && i.restore()
        }
      }),
      (t.prototype.getHoverLayer = function () {
        return this.getLayer($M)
      }),
      (t.prototype.paintOne = function (t, e) {
        Om(t, e)
      }),
      (t.prototype._paintList = function (t, e, n, i) {
        if (this._redrawId === i) {
          ;(n = n || !1), this._updateLayerStatus(t)
          var r = this._doPaintList(t, e, n),
            o = r.finished,
            a = r.needsRefreshHover
          if ((this._needsManuallyCompositing && this._compositeManually(), a && this._paintHoverList(t), o))
            this.eachLayer(function (t) {
              t.afterBrush && t.afterBrush()
            })
          else {
            var s = this
            gn(function () {
              s._paintList(t, e, n, i)
            })
          }
        }
      }),
      (t.prototype._compositeManually = function () {
        var t = this.getLayer(JM).ctx,
          e = this._domRoot.width,
          n = this._domRoot.height
        t.clearRect(0, 0, e, n),
          this.eachBuiltinLayer(function (i) {
            i.virtual && t.drawImage(i.dom, 0, 0, e, n)
          })
      }),
      (t.prototype._doPaintList = function (t, e, n) {
        for (var i = this, o = [], a = this._opts.useDirtyRect, s = 0; s < this._zlevelList.length; s++) {
          var l = this._zlevelList[s],
            u = this._layers[l]
          u.__builtin__ && u !== this._hoverlayer && (u.__dirty || n) && o.push(u)
        }
        for (
          var c = !0,
            h = !1,
            d = function (r) {
              var s,
                l = o[r],
                u = l.ctx,
                d = a && l.createRepaintRects(t, e, p._width, p._height),
                f = n ? l.__startIndex : l.__drawIndex,
                g = !n && l.incremental && Date.now,
                y = g && Date.now(),
                v = l.zlevel === p._zlevelList[0] ? p._backgroundColor : null
              if (l.__startIndex === l.__endIndex) l.clear(!1, v, d)
              else if (f === l.__startIndex) {
                var m = t[f]
                ;(m.incremental && m.notClear && !n) || l.clear(!1, v, d)
              }
              ;-1 === f && (console.error('For some unknown reason. drawIndex is -1'), (f = l.__startIndex))
              var x = function (e) {
                var n = { inHover: !1, allClipped: !1, prevEl: null, viewWidth: i._width, viewHeight: i._height }
                for (s = f; s < l.__endIndex; s++) {
                  var r = t[s]
                  if ((r.__inHover && (h = !0), i._doPaintEl(r, l, a, e, n, s === l.__endIndex - 1), g)) if (Date.now() - y > 15) break
                }
                n.prevElClipPaths && u.restore()
              }
              if (d)
                if (0 === d.length) s = l.__endIndex
                else
                  for (var _ = p.dpr, b = 0; b < d.length; ++b) {
                    var w = d[b]
                    u.save(), u.beginPath(), u.rect(w.x * _, w.y * _, w.width * _, w.height * _), u.clip(), x(w), u.restore()
                  }
              else u.save(), x(), u.restore()
              ;(l.__drawIndex = s), l.__drawIndex < l.__endIndex && (c = !1)
            },
            p = this,
            f = 0;
          f < o.length;
          f++
        )
          d(f)
        return (
          r.wxa &&
            z(this._layers, function (t) {
              t && t.ctx && t.ctx.draw && t.ctx.draw()
            }),
          { finished: c, needsRefreshHover: h }
        )
      }),
      (t.prototype._doPaintEl = function (t, e, n, i, r, o) {
        var a = e.ctx
        if (n) {
          var s = t.getPaintRect()
          ;(!i || (s && s.intersect(i))) && (Rm(a, t, r, o), t.setPrevPaintRect(s))
        } else Rm(a, t, r, o)
      }),
      (t.prototype.getLayer = function (t, e) {
        this._singleCanvas && !this._needsManuallyCompositing && (t = JM)
        var n = this._layers[t]
        return (
          n ||
            (((n = new KM('zr_' + t, this, this.dpr)).zlevel = t),
            (n.__builtin__ = !0),
            this._layerConfig[t] ? C(n, this._layerConfig[t], !0) : this._layerConfig[t - QM] && C(n, this._layerConfig[t - QM], !0),
            e && (n.virtual = e),
            this.insertLayer(t, n),
            n.initContext()),
          n
        )
      }),
      (t.prototype.insertLayer = function (t, e) {
        var n = this._layers,
          i = this._zlevelList,
          r = i.length,
          o = this._domRoot,
          a = null,
          s = -1
        if (
          !n[t] &&
          (function (t) {
            return !!t && (!!t.__builtin__ || ('function' == typeof t.resize && 'function' == typeof t.refresh))
          })(e)
        ) {
          if (r > 0 && t > i[0]) {
            for (s = 0; s < r - 1 && !(i[s] < t && i[s + 1] > t); s++);
            a = n[i[s]]
          }
          if ((i.splice(s + 1, 0, t), (n[t] = e), !e.virtual))
            if (a) {
              var l = a.dom
              l.nextSibling ? o.insertBefore(e.dom, l.nextSibling) : o.appendChild(e.dom)
            } else o.firstChild ? o.insertBefore(e.dom, o.firstChild) : o.appendChild(e.dom)
          e.painter || (e.painter = this)
        }
      }),
      (t.prototype.eachLayer = function (t, e) {
        for (var n = this._zlevelList, i = 0; i < n.length; i++) {
          var r = n[i]
          t.call(e, this._layers[r], r)
        }
      }),
      (t.prototype.eachBuiltinLayer = function (t, e) {
        for (var n = this._zlevelList, i = 0; i < n.length; i++) {
          var r = n[i],
            o = this._layers[r]
          o.__builtin__ && t.call(e, o, r)
        }
      }),
      (t.prototype.eachOtherLayer = function (t, e) {
        for (var n = this._zlevelList, i = 0; i < n.length; i++) {
          var r = n[i],
            o = this._layers[r]
          o.__builtin__ || t.call(e, o, r)
        }
      }),
      (t.prototype.getLayers = function () {
        return this._layers
      }),
      (t.prototype._updateLayerStatus = function (t) {
        function e(t) {
          o && (o.__endIndex !== t && (o.__dirty = !0), (o.__endIndex = t))
        }
        if (
          (this.eachBuiltinLayer(function (t, e) {
            t.__dirty = t.__used = !1
          }),
          this._singleCanvas)
        )
          for (var n = 1; n < t.length; n++) {
            if ((s = t[n]).zlevel !== t[n - 1].zlevel || s.incremental) {
              this._needsManuallyCompositing = !0
              break
            }
          }
        var i,
          r,
          o = null,
          a = 0
        for (r = 0; r < t.length; r++) {
          var s,
            l = (s = t[r]).zlevel,
            u = void 0
          i !== l && ((i = l), (a = 0)),
            s.incremental
              ? (((u = this.getLayer(l + 0.001, this._needsManuallyCompositing)).incremental = !0), (a = 1))
              : (u = this.getLayer(l + (a > 0 ? QM : 0), this._needsManuallyCompositing)),
            u.__builtin__ || I('ZLevel ' + l + ' has been used by unkown layer ' + u.id),
            u !== o && ((u.__used = !0), u.__startIndex !== r && (u.__dirty = !0), (u.__startIndex = r), u.incremental ? (u.__drawIndex = -1) : (u.__drawIndex = r), e(r), (o = u)),
            1 & s.__dirty && !s.__inHover && ((u.__dirty = !0), u.incremental && u.__drawIndex < 0 && (u.__drawIndex = r))
        }
        e(r),
          this.eachBuiltinLayer(function (t, e) {
            !t.__used && t.getElementCount() > 0 && ((t.__dirty = !0), (t.__startIndex = t.__endIndex = t.__drawIndex = 0)),
              t.__dirty && t.__drawIndex < 0 && (t.__drawIndex = t.__startIndex)
          })
      }),
      (t.prototype.clear = function () {
        return this.eachBuiltinLayer(this._clearLayer), this
      }),
      (t.prototype._clearLayer = function (t) {
        t.clear()
      }),
      (t.prototype.setBackgroundColor = function (t) {
        ;(this._backgroundColor = t),
          z(this._layers, function (t) {
            t.setUnpainted()
          })
      }),
      (t.prototype.configLayer = function (t, e) {
        if (e) {
          var n = this._layerConfig
          n[t] ? C(n[t], e, !0) : (n[t] = e)
          for (var i = 0; i < this._zlevelList.length; i++) {
            var r = this._zlevelList[i]
            if (r === t || r === t + QM) C(this._layers[r], n[t], !0)
          }
        }
      }),
      (t.prototype.delLayer = function (t) {
        var e = this._layers,
          n = this._zlevelList,
          i = e[t]
        i && (i.dom.parentNode.removeChild(i.dom), delete e[t], n.splice(P(n, t), 1))
      }),
      (t.prototype.resize = function (t, e) {
        if (this._domRoot.style) {
          var n = this._domRoot
          n.style.display = 'none'
          var i = this._opts,
            r = this.root
          if ((null != t && (i.width = t), null != e && (i.height = e), (t = vm(r, 0, i)), (e = vm(r, 1, i)), (n.style.display = ''), this._width !== t || e !== this._height)) {
            for (var o in ((n.style.width = t + 'px'), (n.style.height = e + 'px'), this._layers)) this._layers.hasOwnProperty(o) && this._layers[o].resize(t, e)
            this.refresh(!0)
          }
          ;(this._width = t), (this._height = e)
        } else {
          if (null == t || null == e) return
          ;(this._width = t), (this._height = e), this.getLayer(JM).resize(t, e)
        }
        return this
      }),
      (t.prototype.clearLayer = function (t) {
        var e = this._layers[t]
        e && e.clear()
      }),
      (t.prototype.dispose = function () {
        ;(this.root.innerHTML = ''), (this.root = this.storage = this._domRoot = this._layers = null)
      }),
      (t.prototype.getRenderedCanvas = function (t) {
        if (((t = t || {}), this._singleCanvas && !this._compositeManually)) return this._layers[314159].dom
        var e = new KM('image', this, t.pixelRatio || this.dpr)
        e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor)
        var n = e.ctx
        if (t.pixelRatio <= this.dpr) {
          this.refresh()
          var i = e.dom.width,
            r = e.dom.height
          this.eachLayer(function (t) {
            t.__builtin__ ? n.drawImage(t.dom, 0, 0, i, r) : t.renderToCanvas && (n.save(), t.renderToCanvas(n), n.restore())
          })
        } else
          for (var o = { inHover: !1, viewWidth: this._width, viewHeight: this._height }, a = this.storage.getDisplayList(!0), s = 0, l = a.length; s < l; s++) {
            var u = a[s]
            Rm(n, u, o, s === l - 1)
          }
        return e.dom
      }),
      (t.prototype.getWidth = function () {
        return this._width
      }),
      (t.prototype.getHeight = function () {
        return this._height
      }),
      t
    )
  })()
  var eI = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), (n.hasSymbolVisual = !0), n
    }
    return (
      n(e, t),
      (e.prototype.getInitialData = function (t) {
        return Z_(null, this, { useEncodeDefaulter: !0 })
      }),
      (e.prototype.getLegendIcon = function (t) {
        var e = new to(),
          n = hm('line', 0, t.itemHeight / 2, t.itemWidth, 0, t.lineStyle.stroke, !1)
        e.add(n), n.setStyle(t.lineStyle)
        var i = this.getData().getVisual('symbol'),
          r = this.getData().getVisual('symbolRotate'),
          o = 'none' === i ? 'circle' : i,
          a = 0.8 * t.itemHeight,
          s = hm(o, (t.itemWidth - a) / 2, (t.itemHeight - a) / 2, a, a, t.itemStyle.fill)
        e.add(s), s.setStyle(t.itemStyle)
        var l = 'inherit' === t.iconRotate ? r : t.iconRotate || 0
        return (
          (s.rotation = (l * Math.PI) / 180),
          s.setOrigin([t.itemWidth / 2, t.itemHeight / 2]),
          o.indexOf('empty') > -1 && ((s.style.stroke = s.style.fill), (s.style.fill = tf.color.neutral00), (s.style.lineWidth = 2)),
          e
        )
      }),
      (e.type = 'series.line'),
      (e.dependencies = ['grid', 'polar']),
      (e.defaultOption = {
        z: 3,
        coordinateSystem: 'cartesian2d',
        legendHoverLink: !0,
        clip: !0,
        label: { position: 'top' },
        endLabel: { show: !1, valueAnimation: !0, distance: 8 },
        lineStyle: { width: 2, type: 'solid' },
        emphasis: { scale: !0 },
        step: !1,
        smooth: !1,
        smoothMonotone: null,
        symbol: 'emptyCircle',
        symbolSize: 6,
        symbolRotate: null,
        showSymbol: !0,
        showAllSymbol: 'auto',
        connectNulls: !1,
        sampling: 'none',
        animationEasing: 'linear',
        progressive: 0,
        hoverLayerThreshold: 1 / 0,
        universalTransition: { divideShape: 'clone' },
        triggerLineEvent: !1
      }),
      e
    )
  })(Wy)
  function nI(t, e) {
    var n = t.mapDimensionsAll('defaultedLabel'),
      i = n.length
    if (1 === i) {
      var r = Vg(t, e, n[0])
      return null != r ? r + '' : null
    }
    if (i) {
      for (var o = [], a = 0; a < n.length; a++) o.push(Vg(t, e, n[a]))
      return o.join(' ')
    }
  }
  function iI(t, e) {
    var n = t.mapDimensionsAll('defaultedLabel')
    if (!U(e)) return e + ''
    for (var i = [], r = 0; r < n.length; r++) {
      var o = t.getDimensionIndex(n[r])
      o >= 0 && i.push(e[o])
    }
    return i.join(' ')
  }
  var rI = (function (t) {
    function e(e, n, i, r) {
      var o = t.call(this) || this
      return o.updateData(e, n, i, r), o
    }
    return (
      n(e, t),
      (e.prototype._createSymbol = function (t, e, n, i, r, o) {
        this.removeAll()
        var a = hm(t, -1, -1, 2, 2, null, o)
        a.attr({ z2: rt(r, 100), culling: !0, scaleX: i[0] / 2, scaleY: i[1] / 2 }), (a.drift = oI), (this._symbolType = t), this.add(a)
      }),
      (e.prototype.stopSymbolAnimation = function (t) {
        this.childAt(0).stopAnimation(null, t)
      }),
      (e.prototype.getSymbolType = function () {
        return this._symbolType
      }),
      (e.prototype.getSymbolPath = function () {
        return this.childAt(0)
      }),
      (e.prototype.highlight = function () {
        du(this.childAt(0))
      }),
      (e.prototype.downplay = function () {
        pu(this.childAt(0))
      }),
      (e.prototype.setZ = function (t, e) {
        var n = this.childAt(0)
        ;(n.zlevel = t), (n.z = e)
      }),
      (e.prototype.setDraggable = function (t, e) {
        var n = this.childAt(0)
        ;(n.draggable = t), (n.cursor = !e && t ? 'move' : n.cursor)
      }),
      (e.prototype.updateData = function (t, n, i, r) {
        this.silent = !1
        var o = t.getItemVisual(n, 'symbol') || 'circle',
          a = t.hostModel,
          s = e.getSymbolSize(t, n),
          l = e.getSymbolZ2(t, n),
          u = o !== this._symbolType,
          c = r && r.disableAnimation
        if (u) {
          var h = t.getItemVisual(n, 'symbolKeepAspect')
          this._createSymbol(o, t, n, s, l, h)
        } else {
          ;(p = this.childAt(0)).silent = !1
          var d = { scaleX: s[0] / 2, scaleY: s[1] / 2 }
          c ? p.attr(d) : th(p, d, a, n), ah(p)
        }
        if ((this._updateCommon(t, n, s, i, r), u)) {
          var p = this.childAt(0)
          if (!c) {
            d = { scaleX: this._sizeX, scaleY: this._sizeY, style: { opacity: p.style.opacity } }
            ;(p.scaleX = p.scaleY = 0), (p.style.opacity = 0), eh(p, d, a, n)
          }
        }
        c && this.childAt(0).stopAnimation('leave')
      }),
      (e.prototype._updateCommon = function (t, e, n, i, r) {
        var o,
          a,
          s,
          l,
          u,
          c,
          h,
          d,
          p,
          f = this.childAt(0),
          g = t.hostModel
        if (
          (i &&
            ((o = i.emphasisItemStyle),
            (a = i.blurItemStyle),
            (s = i.selectItemStyle),
            (l = i.focus),
            (u = i.blurScope),
            (h = i.labelStatesModels),
            (d = i.hoverScale),
            (p = i.cursorStyle),
            (c = i.emphasisDisabled)),
          !i || t.hasItemOption)
        ) {
          var y = i && i.itemModel ? i.itemModel : t.getItemModel(e),
            v = y.getModel('emphasis')
          ;(o = v.getModel('itemStyle').getItemStyle()),
            (s = y.getModel(['select', 'itemStyle']).getItemStyle()),
            (a = y.getModel(['blur', 'itemStyle']).getItemStyle()),
            (l = v.get('focus')),
            (u = v.get('blurScope')),
            (c = v.get('disabled')),
            (h = Jh(y)),
            (d = v.getShallow('scale')),
            (p = y.getShallow('cursor'))
        }
        var m = t.getItemVisual(e, 'symbolRotate')
        f.attr('rotation', ((m || 0) * Math.PI) / 180 || 0)
        var x = pm(t.getItemVisual(e, 'symbolOffset'), n)
        x && ((f.x = x[0]), (f.y = x[1])), p && f.attr('cursor', p)
        var _ = t.getItemVisual(e, 'style'),
          b = _.fill
        if (f instanceof dl) {
          var w = f.style
          f.useStyle(A({ image: w.image, x: w.x, y: w.y, width: w.width, height: w.height }, _))
        } else f.__isEmptyBrush ? f.useStyle(A({}, _)) : f.useStyle(_), (f.style.decal = null), f.setColor(b, r && r.symbolInnerColor), (f.style.strokeNoScale = !0)
        var S = t.getItemVisual(e, 'liftZ'),
          M = this._z2
        null != S ? null == M && ((this._z2 = f.z2), (f.z2 += S)) : null != M && ((f.z2 = M), (this._z2 = null))
        var I = r && r.useNameLabel
        $h(f, h, {
          labelFetcher: g,
          labelDataIndex: e,
          defaultText: function (e) {
            return I ? t.getName(e) : nI(t, e)
          },
          inheritColor: b,
          defaultOpacity: _.opacity
        }),
          (this._sizeX = n[0] / 2),
          (this._sizeY = n[1] / 2)
        var T = f.ensureState('emphasis')
        ;(T.style = o), (f.ensureState('select').style = s), (f.ensureState('blur').style = a)
        var C = null == d || !0 === d ? Math.max(1.1, 3 / this._sizeY) : isFinite(d) && d > 0 ? +d : 1
        ;(T.scaleX = this._sizeX * C), (T.scaleY = this._sizeY * C), this.setSymbolScale(1), Tu(this, l, u, c)
      }),
      (e.prototype.setSymbolScale = function (t) {
        this.scaleX = this.scaleY = t
      }),
      (e.prototype.fadeOut = function (t, e, n) {
        var i = this.childAt(0),
          r = zl(this).dataIndex,
          o = n && n.animation
        if (((this.silent = i.silent = !0), n && n.fadeLabel)) {
          var a = i.getTextContent()
          a &&
            ih(a, { style: { opacity: 0 } }, e, {
              dataIndex: r,
              removeOpt: o,
              cb: function () {
                i.removeTextContent()
              }
            })
        } else i.removeTextContent()
        ih(i, { style: { opacity: 0 }, scaleX: 0, scaleY: 0 }, e, { dataIndex: r, cb: t, removeOpt: o })
      }),
      (e.getSymbolSize = function (t, e) {
        return dm(t.getItemVisual(e, 'symbolSize'))
      }),
      (e.getSymbolZ2 = function (t, e) {
        return t.getItemVisual(e, 'z2')
      }),
      e
    )
  })(to)
  function oI(t, e) {
    this.parent.drift(t, e)
  }
  function aI(t, e, n, i) {
    return e && !isNaN(e[0]) && !isNaN(e[1]) && !(i.isIgnore && i.isIgnore(n)) && !(i.clipShape && !i.clipShape.contain(e[0], e[1])) && 'none' !== t.getItemVisual(n, 'symbol')
  }
  function sI(t) {
    return null == t || q(t) || (t = { isIgnore: t }), t || {}
  }
  function lI(t) {
    var e = t.hostModel,
      n = e.getModel('emphasis')
    return {
      emphasisItemStyle: n.getModel('itemStyle').getItemStyle(),
      blurItemStyle: e.getModel(['blur', 'itemStyle']).getItemStyle(),
      selectItemStyle: e.getModel(['select', 'itemStyle']).getItemStyle(),
      focus: n.get('focus'),
      blurScope: n.get('blurScope'),
      emphasisDisabled: n.get('disabled'),
      hoverScale: n.get('scale'),
      labelStatesModels: Jh(e),
      cursorStyle: e.get('cursor')
    }
  }
  var uI = (function () {
    function t(t) {
      ;(this.group = new to()), (this._SymbolCtor = t || rI)
    }
    return (
      (t.prototype.updateData = function (t, e) {
        ;(this._progressiveEls = null), (e = sI(e))
        var n = this.group,
          i = t.hostModel,
          r = this._data,
          o = this._SymbolCtor,
          a = e.disableAnimation,
          s = lI(t),
          l = { disableAnimation: a },
          u =
            e.getSymbolPoint ||
            function (e) {
              return t.getItemLayout(e)
            }
        r || n.removeAll(),
          t
            .diff(r)
            .add(function (i) {
              var r = u(i)
              if (aI(t, r, i, e)) {
                var a = new o(t, i, s, l)
                a.setPosition(r), t.setItemGraphicEl(i, a), n.add(a)
              }
            })
            .update(function (c, h) {
              var d = r.getItemGraphicEl(h),
                p = u(c)
              if (aI(t, p, c, e)) {
                var f = t.getItemVisual(c, 'symbol') || 'circle',
                  g = d && d.getSymbolType && d.getSymbolType()
                if (!d || (g && g !== f)) n.remove(d), (d = new o(t, c, s, l)).setPosition(p)
                else {
                  d.updateData(t, c, s, l)
                  var y = { x: p[0], y: p[1] }
                  a ? d.attr(y) : th(d, y, i)
                }
                n.add(d), t.setItemGraphicEl(c, d)
              } else n.remove(d)
            })
            .remove(function (t) {
              var e = r.getItemGraphicEl(t)
              e &&
                e.fadeOut(function () {
                  n.remove(e)
                }, i)
            })
            .execute(),
          (this._getSymbolPoint = u),
          (this._data = t)
      }),
      (t.prototype.updateLayout = function () {
        var t = this,
          e = this._data
        e &&
          e.eachItemGraphicEl(function (e, n) {
            var i = t._getSymbolPoint(n)
            e.setPosition(i), e.markRedraw()
          })
      }),
      (t.prototype.incrementalPrepareUpdate = function (t) {
        ;(this._seriesScope = lI(t)), (this._data = null), this.group.removeAll()
      }),
      (t.prototype.incrementalUpdate = function (t, e, n) {
        function i(t) {
          t.isGroup || ((t.incremental = !0), (t.ensureState('emphasis').hoverLayer = !0))
        }
        ;(this._progressiveEls = []), (n = sI(n))
        for (var r = t.start; r < t.end; r++) {
          var o = e.getItemLayout(r)
          if (aI(e, o, r, n)) {
            var a = new this._SymbolCtor(e, r, this._seriesScope)
            a.traverse(i), a.setPosition(o), this.group.add(a), e.setItemGraphicEl(r, a), this._progressiveEls.push(a)
          }
        }
      }),
      (t.prototype.eachRendered = function (t) {
        Bh(this._progressiveEls || this.group, t)
      }),
      (t.prototype.remove = function (t) {
        var e = this.group,
          n = this._data
        n && t
          ? n.eachItemGraphicEl(function (t) {
              t.fadeOut(function () {
                e.remove(t)
              }, n.hostModel)
            })
          : e.removeAll()
      }),
      t
    )
  })()
  function cI(t, e, n) {
    var i = t.getBaseAxis(),
      r = t.getOtherAxis(i),
      o = (function (t, e) {
        var n = 0,
          i = t.scale.getExtent()
        'start' === e ? (n = i[0]) : 'end' === e ? (n = i[1]) : j(e) && !isNaN(e) ? (n = e) : i[0] > 0 ? (n = i[0]) : i[1] < 0 && (n = i[1])
        return n
      })(r, n),
      a = i.dim,
      s = r.dim,
      l = e.mapDimension(s),
      u = e.mapDimension(a),
      c = 'x' === s || 'radius' === s ? 1 : 0,
      h = E(t.dimensions, function (t) {
        return e.mapDimension(t)
      }),
      d = !1,
      p = e.getCalculationInfo('stackResultDimension')
    return (
      Y_(e, h[0]) && ((d = !0), (h[0] = p)),
      Y_(e, h[1]) && ((d = !0), (h[1] = p)),
      {
        dataDimsForPoint: h,
        valueStart: o,
        valueAxisDim: s,
        baseAxisDim: a,
        stacked: !!d,
        valueDim: l,
        baseDim: u,
        baseDataOffset: c,
        stackedOverDimension: e.getCalculationInfo('stackedOverDimension')
      }
    )
  }
  function hI(t, e, n, i) {
    var r = NaN
    t.stacked && (r = n.get(n.getCalculationInfo('stackedOverDimension'), i)), isNaN(r) && (r = t.valueStart)
    var o = t.baseDataOffset,
      a = []
    return (a[o] = n.get(t.baseDim, i)), (a[1 - o] = r), e.dataToPoint(a)
  }
  var dI = Math.min,
    pI = Math.max
  function fI(t, e) {
    return isNaN(t) || isNaN(e)
  }
  function gI(t, e, n, i, r, o, a, s, l) {
    for (var u, c, h, d, p, f, g = n, y = 0; y < i; y++) {
      var v = e[2 * g],
        m = e[2 * g + 1]
      if (g >= r || g < 0) break
      if (fI(v, m)) {
        if (l) {
          g += o
          continue
        }
        break
      }
      if (g === n) t[o > 0 ? 'moveTo' : 'lineTo'](v, m), (h = v), (d = m)
      else {
        var x = v - u,
          _ = m - c
        if (x * x + _ * _ < 0.5) {
          g += o
          continue
        }
        if (a > 0) {
          for (var b = g + o, w = e[2 * b], S = e[2 * b + 1]; w === v && S === m && y < i; )
            y++, (g += o), (w = e[2 * (b += o)]), (S = e[2 * b + 1]), (x = (v = e[2 * g]) - u), (_ = (m = e[2 * g + 1]) - c)
          var M = y + 1
          if (l) for (; fI(w, S) && M < i; ) M++, (w = e[2 * (b += o)]), (S = e[2 * b + 1])
          var I = 0.5,
            T = 0,
            C = 0,
            D = void 0,
            A = void 0
          if (M >= i || fI(w, S)) (p = v), (f = m)
          else {
            ;(T = w - u), (C = S - c)
            var k = v - u,
              L = w - v,
              P = m - c,
              O = S - m,
              R = void 0,
              N = void 0
            if ('x' === s) {
              var z = T > 0 ? 1 : -1
              ;(p = v - z * (R = Math.abs(k)) * a), (f = m), (D = v + z * (N = Math.abs(L)) * a), (A = m)
            } else if ('y' === s) {
              var E = C > 0 ? 1 : -1
              ;(p = v), (f = m - E * (R = Math.abs(P)) * a), (D = v), (A = m + E * (N = Math.abs(O)) * a)
            } else
              (R = Math.sqrt(k * k + P * P)),
                (p = v - T * a * (1 - (I = (N = Math.sqrt(L * L + O * O)) / (N + R)))),
                (f = m - C * a * (1 - I)),
                (A = m + C * a * I),
                (D = dI((D = v + T * a * I), pI(w, v))),
                (A = dI(A, pI(S, m))),
                (D = pI(D, dI(w, v))),
                (f = m - ((C = (A = pI(A, dI(S, m))) - m) * R) / N),
                (p = dI((p = v - ((T = D - v) * R) / N), pI(u, v))),
                (f = dI(f, pI(c, m))),
                (D = v + ((T = v - (p = pI(p, dI(u, v)))) * N) / R),
                (A = m + ((C = m - (f = pI(f, dI(c, m)))) * N) / R)
          }
          t.bezierCurveTo(h, d, p, f, v, m), (h = D), (d = A)
        } else t.lineTo(v, m)
      }
      ;(u = v), (c = m), (g += o)
    }
    return y
  }
  var yI = function () {
      ;(this.smooth = 0), (this.smoothConstraint = !0)
    },
    vI = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'ec-polyline'), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultStyle = function () {
          return { stroke: tf.color.neutral99, fill: null }
        }),
        (e.prototype.getDefaultShape = function () {
          return new yI()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = e.points,
            i = 0,
            r = n.length / 2
          if (e.connectNulls) {
            for (; r > 0 && fI(n[2 * r - 2], n[2 * r - 1]); r--);
            for (; i < r && fI(n[2 * i], n[2 * i + 1]); i++);
          }
          for (; i < r; ) i += gI(t, n, i, r, r, 1, e.smooth, e.smoothMonotone, e.connectNulls) + 1
        }),
        (e.prototype.getPointOn = function (t, e) {
          this.path || (this.createPathProxy(), this.buildPath(this.path, this.shape))
          for (var n, i, r = this.path.data, o = Fs.CMD, a = 'x' === e, s = [], l = 0; l < r.length; ) {
            var u = void 0,
              c = void 0,
              h = void 0,
              d = void 0,
              p = void 0,
              f = void 0,
              g = void 0
            switch (r[l++]) {
              case o.M:
                ;(n = r[l++]), (i = r[l++])
                break
              case o.L:
                if (((u = r[l++]), (c = r[l++]), (g = a ? (t - n) / (u - n) : (t - i) / (c - i)) <= 1 && g >= 0)) {
                  var y = a ? (c - i) * g + i : (u - n) * g + n
                  return a ? [t, y] : [y, t]
                }
                ;(n = u), (i = c)
                break
              case o.C:
                ;(u = r[l++]), (c = r[l++]), (h = r[l++]), (d = r[l++]), (p = r[l++]), (f = r[l++])
                var v = a ? kn(n, u, h, p, t, s) : kn(i, c, d, f, t, s)
                if (v > 0)
                  for (var m = 0; m < v; m++) {
                    var x = s[m]
                    if (x <= 1 && x >= 0) {
                      y = a ? Dn(i, c, d, f, x) : Dn(n, u, h, p, x)
                      return a ? [t, y] : [y, t]
                    }
                  }
                ;(n = p), (i = f)
            }
          }
        }),
        e
      )
    })(sl),
    mI = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return n(e, t), e
    })(yI),
    xI = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'ec-polygon'), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new mI()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = e.points,
            i = e.stackedOnPoints,
            r = 0,
            o = n.length / 2,
            a = e.smoothMonotone
          if (e.connectNulls) {
            for (; o > 0 && fI(n[2 * o - 2], n[2 * o - 1]); o--);
            for (; r < o && fI(n[2 * r], n[2 * r + 1]); r++);
          }
          for (; r < o; ) {
            var s = gI(t, n, r, o, o, 1, e.smooth, a, e.connectNulls)
            gI(t, i, r + s - 1, s, o, -1, e.stackedOnSmooth, a, e.connectNulls), (r += s + 1), t.closePath()
          }
        }),
        e
      )
    })(sl)
  function _I(t, e, n, i, r) {
    var o = t.getArea(),
      a = o.x,
      s = o.y,
      l = o.width,
      u = o.height,
      c = n.get(['lineStyle', 'width']) || 0
    ;(a -= c / 2), (s -= c / 2), (l += c), (u += c), (l = Math.ceil(l)), a !== Math.floor(a) && ((a = Math.floor(a)), l++)
    var h = new xl({ shape: { x: a, y: s, width: l, height: u } })
    if (e) {
      var d = t.getBaseAxis(),
        p = d.isHorizontal(),
        f = d.inverse
      p ? (f && (h.shape.x += l), (h.shape.width = 0)) : (f || (h.shape.y += u), (h.shape.height = 0))
      var g = Y(r)
        ? function (t) {
            r(t, h)
          }
        : null
      eh(h, { shape: { width: l, height: u, x: a, y: s } }, n, null, i, g)
    }
    return h
  }
  function bI(t, e, n) {
    var i = t.getArea(),
      r = mo(i.r0, 1),
      o = mo(i.r, 1),
      a = new xc({ shape: { cx: mo(t.cx, 1), cy: mo(t.cy, 1), r0: r, r: o, startAngle: i.startAngle, endAngle: i.endAngle, clockwise: i.clockwise } })
    e && ('angle' === t.getBaseAxis().dim ? (a.shape.endAngle = i.startAngle) : (a.shape.r = r), eh(a, { shape: { endAngle: i.endAngle, r: o } }, n))
    return a
  }
  function wI(t, e, n, i, r) {
    return t ? ('polar' === t.type ? bI(t, e, n) : 'cartesian2d' === t.type ? _I(t, e, n, i, r) : null) : null
  }
  function SI(t, e) {
    return t.type === e
  }
  function MI(t, e) {
    if (t.length === e.length) {
      for (var n = 0; n < t.length; n++) if (t[n] !== e[n]) return
      return !0
    }
  }
  function II(t) {
    for (var e = 1 / 0, n = 1 / 0, i = -1 / 0, r = -1 / 0, o = 0; o < t.length; ) {
      var a = t[o++],
        s = t[o++]
      isNaN(a) || ((e = Math.min(a, e)), (i = Math.max(a, i))), isNaN(s) || ((n = Math.min(s, n)), (r = Math.max(s, r)))
    }
    return [
      [e, n],
      [i, r]
    ]
  }
  function TI(t, e) {
    var n = II(t),
      i = n[0],
      r = n[1],
      o = II(e),
      a = o[0],
      s = o[1]
    return Math.max(Math.abs(i[0] - a[0]), Math.abs(i[1] - a[1]), Math.abs(r[0] - s[0]), Math.abs(r[1] - s[1]))
  }
  function CI(t) {
    return j(t) ? t : t ? 0.5 : 0
  }
  function DI(t, e, n, i, r) {
    var o = n.getBaseAxis(),
      a = 'x' === o.dim || 'radius' === o.dim ? 0 : 1,
      s = [],
      l = 0,
      u = [],
      c = [],
      h = [],
      d = []
    if (r) {
      for (l = 0; l < t.length; l += 2) {
        var p = e || t
        isNaN(p[l]) || isNaN(p[l + 1]) || d.push(t[l], t[l + 1])
      }
      t = d
    }
    for (l = 0; l < t.length - 2; l += 2)
      switch (((h[0] = t[l + 2]), (h[1] = t[l + 3]), (c[0] = t[l]), (c[1] = t[l + 1]), s.push(c[0], c[1]), i)) {
        case 'end':
          ;(u[a] = h[a]), (u[1 - a] = c[1 - a]), s.push(u[0], u[1])
          break
        case 'middle':
          var f = (c[a] + h[a]) / 2,
            g = []
          ;(u[a] = g[a] = f), (u[1 - a] = c[1 - a]), (g[1 - a] = h[1 - a]), s.push(u[0], u[1]), s.push(g[0], g[1])
          break
        default:
          ;(u[a] = c[a]), (u[1 - a] = h[1 - a]), s.push(u[0], u[1])
      }
    return s.push(t[l++], t[l++]), s
  }
  function AI(t, e, n) {
    var i = t.getVisual('visualMeta')
    if (i && i.length && t.count() && 'cartesian2d' === e.type) {
      for (var r, o, a = i.length - 1; a >= 0; a--) {
        var s = t.getDimensionInfo(i[a].dimension)
        if ('x' === (r = s && s.coordDim) || 'y' === r) {
          o = i[a]
          break
        }
      }
      if (o) {
        var l = e.getAxis(r),
          u = E(o.stops, function (t) {
            return { coord: l.toGlobalCoord(l.dataToCoord(t.value)), color: t.color }
          }),
          c = u.length,
          h = o.outerColors.slice()
        c && u[0].coord > u[c - 1].coord && (u.reverse(), h.reverse())
        var d = (function (t, e) {
            var n,
              i,
              r = [],
              o = t.length
            function a(t, e, n) {
              var i = t.coord
              return { coord: n, color: ci((n - i) / (e.coord - i), [t.color, e.color]) }
            }
            for (var s = 0; s < o; s++) {
              var l = t[s],
                u = l.coord
              if (u < 0) n = l
              else {
                if (u > e) {
                  i ? r.push(a(i, l, e)) : n && r.push(a(n, l, 0), a(n, l, e))
                  break
                }
                n && (r.push(a(n, l, 0)), (n = null)), r.push(l), (i = l)
              }
            }
            return r
          })(u, 'x' === r ? n.getWidth() : n.getHeight()),
          p = d.length
        if (!p && c) return u[0].coord < 0 ? (h[1] ? h[1] : u[c - 1].color) : h[0] ? h[0] : u[0].color
        var f = d[0].coord - 10,
          g = d[p - 1].coord + 10,
          y = g - f
        if (y < 0.001) return 'transparent'
        z(d, function (t) {
          t.offset = (t.coord - f) / y
        }),
          d.push({ offset: p ? d[p - 1].offset : 0.5, color: h[1] || 'transparent' }),
          d.unshift({ offset: p ? d[0].offset : 0.5, color: h[0] || 'transparent' })
        var v = new Bc(0, 0, 0, 0, d, !0)
        return (v[r] = f), (v[r + '2'] = g), v
      }
    }
  }
  function kI(t, e, n) {
    var i = t.get('showAllSymbol'),
      r = 'auto' === i
    if (!i || r) {
      var o = n.getAxesByScale('ordinal')[0]
      if (
        o &&
        (!r ||
          !(function (t, e) {
            var n = t.getExtent(),
              i = Math.abs(n[1] - n[0]) / t.scale.count()
            isNaN(i) && (i = 0)
            for (var r = e.count(), o = Math.max(1, Math.round(r / 5)), a = 0; a < r; a += o) if (1.5 * rI.getSymbolSize(e, a)[t.isHorizontal() ? 1 : 0] > i) return !1
            return !0
          })(o, e))
      ) {
        var a = e.mapDimension(o.dim),
          s = {}
        return (
          z(o.getViewLabels(), function (t) {
            var e = o.scale.getRawOrdinalNumber(t.tickValue)
            s[e] = 1
          }),
          function (t) {
            return !s.hasOwnProperty(e.get(a, t))
          }
        )
      }
    }
  }
  function LI(t, e) {
    return [t[2 * e], t[2 * e + 1]]
  }
  function PI(t) {
    if (t.get(['endLabel', 'show'])) return !0
    for (var e = 0; e < Wl.length; e++) if (t.get([Wl[e], 'endLabel', 'show'])) return !0
    return !1
  }
  function OI(t, e, n, i) {
    if (SI(e, 'cartesian2d')) {
      var r = i.getModel('endLabel'),
        o = r.get('valueAnimation'),
        a = i.getData(),
        s = { lastFrameIndex: 0 },
        l = PI(i)
          ? function (n, i) {
              t._endLabelOnDuring(n, i, a, s, o, r, e)
            }
          : null,
        u = e.getBaseAxis().isHorizontal(),
        c = _I(
          e,
          n,
          i,
          function () {
            var e = t._endLabel
            e && n && null != s.originalX && e.attr({ x: s.originalX, y: s.originalY })
          },
          l
        )
      if (!i.get('clip', !0)) {
        var h = c.shape,
          d = Math.max(h.width, h.height)
        u ? ((h.y -= d), (h.height += 2 * d)) : ((h.x -= d), (h.width += 2 * d))
      }
      return l && l(1, c), c
    }
    return bI(e, n, i)
  }
  var RI = (function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    return (
      n(e, t),
      (e.prototype.init = function () {
        var t = new to(),
          e = new uI()
        this.group.add(e.group), (this._symbolDraw = e), (this._lineGroup = t), (this._changePolyState = W(this._changePolyState, this))
      }),
      (e.prototype.render = function (t, e, n) {
        var i = t.coordinateSystem,
          r = this.group,
          o = t.getData(),
          a = t.getModel('lineStyle'),
          s = t.getModel('areaStyle'),
          l = o.getLayout('points') || [],
          u = 'polar' === i.type,
          c = this._coordSys,
          h = this._symbolDraw,
          d = this._polyline,
          p = this._polygon,
          f = this._lineGroup,
          g = !e.ssr && t.get('animation'),
          y = !s.isEmpty(),
          v = s.get('origin'),
          m = cI(i, o, v),
          x =
            y &&
            (function (t, e, n) {
              if (!n.valueDim) return []
              for (var i = e.count(), r = pb(2 * i), o = 0; o < i; o++) {
                var a = hI(n, t, e, o)
                ;(r[2 * o] = a[0]), (r[2 * o + 1] = a[1])
              }
              return r
            })(i, o, m),
          _ = t.get('showSymbol'),
          b = t.get('connectNulls'),
          w = _ && !u && kI(t, o, i),
          S = this._data
        S &&
          S.eachItemGraphicEl(function (t, e) {
            t.__temp && (r.remove(t), S.setItemGraphicEl(e, null))
          }),
          _ || h.remove(),
          r.add(f)
        var M,
          I = !u && t.get('step')
        i &&
          i.getArea &&
          t.get('clip', !0) &&
          (null != (M = i.getArea()).width ? ((M.x -= 0.1), (M.y -= 0.1), (M.width += 0.2), (M.height += 0.2)) : M.r0 && ((M.r0 -= 0.5), (M.r += 0.5))),
          (this._clipShapeForSymbol = M)
        var T = AI(o, i, n) || o.getVisual('style')[o.getVisual('drawType')]
        if (d && c.type === i.type && I === this._step) {
          y && !p ? (p = this._newPolygon(l, x)) : p && !y && (f.remove(p), (p = this._polygon = null)), u || this._initOrUpdateEndLabel(t, i, wp(T))
          var C = f.getClipPath()
          if (C) eh(C, { shape: OI(this, i, !1, t).shape }, t)
          else f.setClipPath(OI(this, i, !0, t))
          _ &&
            h.updateData(o, {
              isIgnore: w,
              clipShape: M,
              disableAnimation: !0,
              getSymbolPoint: function (t) {
                return [l[2 * t], l[2 * t + 1]]
              }
            }),
            (MI(this._stackedOnPoints, x) && MI(this._points, l)) ||
              (g
                ? this._doUpdateAnimation(o, x, i, n, I, v, b)
                : (I && (x && (x = DI(x, l, i, I, b)), (l = DI(l, null, i, I, b))), d.setShape({ points: l }), p && p.setShape({ points: l, stackedOnPoints: x })))
        } else
          _ &&
            h.updateData(o, {
              isIgnore: w,
              clipShape: M,
              disableAnimation: !0,
              getSymbolPoint: function (t) {
                return [l[2 * t], l[2 * t + 1]]
              }
            }),
            g && this._initSymbolLabelAnimation(o, i, M),
            I && (x && (x = DI(x, l, i, I, b)), (l = DI(l, null, i, I, b))),
            (d = this._newPolyline(l)),
            y ? (p = this._newPolygon(l, x)) : p && (f.remove(p), (p = this._polygon = null)),
            u || this._initOrUpdateEndLabel(t, i, wp(T)),
            f.setClipPath(OI(this, i, !0, t))
        var D = t.getModel('emphasis'),
          A = D.get('focus'),
          L = D.get('blurScope'),
          P = D.get('disabled')
        ;(d.useStyle(k(a.getLineStyle(), { fill: 'none', stroke: T, lineJoin: 'bevel' })),
        ku(d, t, 'lineStyle'),
        d.style.lineWidth > 0 && 'bolder' === t.get(['emphasis', 'lineStyle', 'width'])) && (d.getState('emphasis').style.lineWidth = +d.style.lineWidth + 1)
        ;(zl(d).seriesIndex = t.seriesIndex), Tu(d, A, L, P)
        var O = CI(t.get('smooth')),
          R = t.get('smoothMonotone')
        if ((d.setShape({ smooth: O, smoothMonotone: R, connectNulls: b }), p)) {
          var N = o.getCalculationInfo('stackedOnSeries'),
            z = 0
          p.useStyle(k(s.getAreaStyle(), { fill: T, opacity: 0.7, lineJoin: 'bevel', decal: o.getVisual('style').decal })),
            N && (z = CI(N.get('smooth'))),
            p.setShape({ smooth: O, stackedOnSmooth: z, smoothMonotone: R, connectNulls: b }),
            ku(p, t, 'areaStyle'),
            (zl(p).seriesIndex = t.seriesIndex),
            Tu(p, A, L, P)
        }
        var E = this._changePolyState
        o.eachItemGraphicEl(function (t) {
          t && (t.onHoverStateChange = E)
        }),
          (this._polyline.onHoverStateChange = E),
          (this._data = o),
          (this._coordSys = i),
          (this._stackedOnPoints = x),
          (this._points = l),
          (this._step = I),
          (this._valueOrigin = v),
          t.get('triggerLineEvent') && (this.packEventData(t, d), p && this.packEventData(t, p))
      }),
      (e.prototype.packEventData = function (t, e) {
        zl(e).eventData = {
          componentType: 'series',
          componentSubType: 'line',
          componentIndex: t.componentIndex,
          seriesIndex: t.seriesIndex,
          seriesName: t.name,
          seriesType: 'line'
        }
      }),
      (e.prototype.highlight = function (t, e, n, i) {
        var r = t.getData(),
          o = aa(r, i)
        if ((this._changePolyState('emphasis'), !(o instanceof Array) && null != o && o >= 0)) {
          var a = r.getLayout('points'),
            s = r.getItemGraphicEl(o)
          if (!s) {
            var l = a[2 * o],
              u = a[2 * o + 1]
            if (isNaN(l) || isNaN(u)) return
            if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(l, u)) return
            var c = t.get('zlevel') || 0,
              h = t.get('z') || 0
            ;((s = new rI(r, o)).x = l), (s.y = u), s.setZ(c, h)
            var d = s.getSymbolPath().getTextContent()
            d && ((d.zlevel = c), (d.z = h), (d.z2 = this._polyline.z2 + 1)), (s.__temp = !0), r.setItemGraphicEl(o, s), s.stopSymbolAnimation(!0), this.group.add(s)
          }
          s.highlight()
        } else tv.prototype.highlight.call(this, t, e, n, i)
      }),
      (e.prototype.downplay = function (t, e, n, i) {
        var r = t.getData(),
          o = aa(r, i)
        if ((this._changePolyState('normal'), null != o && o >= 0)) {
          var a = r.getItemGraphicEl(o)
          a && (a.__temp ? (r.setItemGraphicEl(o, null), this.group.remove(a)) : a.downplay())
        } else tv.prototype.downplay.call(this, t, e, n, i)
      }),
      (e.prototype._changePolyState = function (t) {
        var e = this._polygon
        su(this._polyline, t), e && su(e, t)
      }),
      (e.prototype._newPolyline = function (t) {
        var e = this._polyline
        return e && this._lineGroup.remove(e), (e = new vI({ shape: { points: t }, segmentIgnoreThreshold: 2, z2: 10 })), this._lineGroup.add(e), (this._polyline = e), e
      }),
      (e.prototype._newPolygon = function (t, e) {
        var n = this._polygon
        return n && this._lineGroup.remove(n), (n = new xI({ shape: { points: t, stackedOnPoints: e }, segmentIgnoreThreshold: 2 })), this._lineGroup.add(n), (this._polygon = n), n
      }),
      (e.prototype._initSymbolLabelAnimation = function (t, e, n) {
        var i,
          r,
          o = e.getBaseAxis(),
          a = o.inverse
        'cartesian2d' === e.type ? ((i = o.isHorizontal()), (r = !1)) : 'polar' === e.type && ((i = 'angle' === o.dim), (r = !0))
        var s = t.hostModel,
          l = s.get('animationDuration')
        Y(l) && (l = l(null))
        var u = s.get('animationDelay') || 0,
          c = Y(u) ? u(null) : u
        t.eachItemGraphicEl(function (t, o) {
          var s = t
          if (s) {
            var h = [t.x, t.y],
              d = void 0,
              p = void 0,
              f = void 0
            if (n)
              if (r) {
                var g = n,
                  y = e.pointToCoord(h)
                i ? ((d = g.startAngle), (p = g.endAngle), (f = (-y[1] / 180) * Math.PI)) : ((d = g.r0), (p = g.r), (f = y[0]))
              } else {
                var v = n
                i ? ((d = v.x), (p = v.x + v.width), (f = t.x)) : ((d = v.y + v.height), (p = v.y), (f = t.y))
              }
            var m = p === d ? 0 : (f - d) / (p - d)
            a && (m = 1 - m)
            var x = Y(u) ? u(o) : l * m + c,
              _ = s.getSymbolPath(),
              b = _.getTextContent()
            s.attr({ scaleX: 0, scaleY: 0 }),
              s.animateTo({ scaleX: 1, scaleY: 1 }, { duration: 200, setToFinal: !0, delay: x }),
              b && b.animateFrom({ style: { opacity: 0 } }, { duration: 300, delay: x }),
              (_.disableLabelAnimation = !0)
          }
        })
      }),
      (e.prototype._initOrUpdateEndLabel = function (t, e, n) {
        var i = t.getModel('endLabel')
        if (PI(t)) {
          var r = t.getData(),
            o = this._polyline,
            a = r.getLayout('points')
          if (!a) return o.removeTextContent(), void (this._endLabel = null)
          var s = this._endLabel
          s || (((s = this._endLabel = new Sl({ z2: 200 })).ignoreClip = !0), o.setTextContent(this._endLabel), (o.disableLabelAnimation = !0))
          var l = (function (t) {
            for (var e, n, i = t.length / 2; i > 0 && ((e = t[2 * i - 2]), (n = t[2 * i - 1]), isNaN(e) || isNaN(n)); i--);
            return i - 1
          })(a)
          l >= 0 &&
            ($h(
              o,
              Jh(t, 'endLabel'),
              {
                inheritColor: n,
                labelFetcher: t,
                labelDataIndex: l,
                defaultText: function (t, e, n) {
                  return null != n ? iI(r, n) : nI(r, t)
                },
                enableTextSetter: !0
              },
              (function (t, e) {
                var n = e.getBaseAxis(),
                  i = n.isHorizontal(),
                  r = n.inverse,
                  o = i ? (r ? 'right' : 'left') : 'center',
                  a = i ? 'middle' : r ? 'top' : 'bottom'
                return { normal: { align: t.get('align') || o, verticalAlign: t.get('verticalAlign') || a } }
              })(i, e)
            ),
            (o.textConfig.position = null))
        } else this._endLabel && (this._polyline.removeTextContent(), (this._endLabel = null))
      }),
      (e.prototype._endLabelOnDuring = function (t, e, n, i, r, o, a) {
        var s = this._endLabel,
          l = this._polyline
        if (s) {
          t < 1 && null == i.originalX && ((i.originalX = s.x), (i.originalY = s.y))
          var u = n.getLayout('points'),
            c = n.hostModel,
            h = c.get('connectNulls'),
            d = o.get('precision'),
            p = o.get('distance') || 0,
            f = a.getBaseAxis(),
            g = f.isHorizontal(),
            y = f.inverse,
            v = e.shape,
            m = y ? (g ? v.x : v.y + v.height) : g ? v.x + v.width : v.y,
            x = (g ? p : 0) * (y ? -1 : 1),
            _ = (g ? 0 : -p) * (y ? -1 : 1),
            b = g ? 'x' : 'y',
            w = (function (t, e, n) {
              for (var i, r, o = t.length / 2, a = 'x' === n ? 0 : 1, s = 0, l = -1, u = 0; u < o; u++)
                if (((r = t[2 * u + a]), !isNaN(r) && !isNaN(t[2 * u + 1 - a])))
                  if (0 !== u) {
                    if ((i <= e && r >= e) || (i >= e && r <= e)) {
                      l = u
                      break
                    }
                    ;(s = u), (i = r)
                  } else i = r
              return { range: [s, l], t: (e - i) / (r - i) }
            })(u, m, b),
            S = w.range,
            M = S[1] - S[0],
            I = void 0
          if (M >= 1) {
            if (M > 1 && !h) {
              var T = LI(u, S[0])
              s.attr({ x: T[0] + x, y: T[1] + _ }), r && (I = c.getRawValue(S[0]))
            } else {
              ;(T = l.getPointOn(m, b)) && s.attr({ x: T[0] + x, y: T[1] + _ })
              var C = c.getRawValue(S[0]),
                D = c.getRawValue(S[1])
              r && (I = ya(n, d, C, D, w.t))
            }
            i.lastFrameIndex = S[0]
          } else {
            var A = 1 === t || i.lastFrameIndex > 0 ? S[0] : 0
            T = LI(u, A)
            r && (I = c.getRawValue(A)), s.attr({ x: T[0] + x, y: T[1] + _ })
          }
          if (r) {
            var k = ad(s)
            'function' == typeof k.setLabelText && k.setLabelText(I)
          }
        }
      }),
      (e.prototype._doUpdateAnimation = function (t, e, n, i, r, o, a) {
        var s = this._polyline,
          l = this._polygon,
          u = t.hostModel,
          c = (function (t, e, n, i, r, o, a, s) {
            for (
              var l = (function (t, e) {
                  var n = []
                  return (
                    e
                      .diff(t)
                      .add(function (t) {
                        n.push({ cmd: '+', idx: t })
                      })
                      .update(function (t, e) {
                        n.push({ cmd: '=', idx: e, idx1: t })
                      })
                      .remove(function (t) {
                        n.push({ cmd: '-', idx: t })
                      })
                      .execute(),
                    n
                  )
                })(t, e),
                u = [],
                c = [],
                h = [],
                d = [],
                p = [],
                f = [],
                g = [],
                y = cI(r, e, a),
                v = t.getLayout('points') || [],
                m = e.getLayout('points') || [],
                x = 0;
              x < l.length;
              x++
            ) {
              var _ = l[x],
                b = !0,
                w = void 0,
                S = void 0
              switch (_.cmd) {
                case '=':
                  ;(w = 2 * _.idx), (S = 2 * _.idx1)
                  var M = v[w],
                    I = v[w + 1],
                    T = m[S],
                    C = m[S + 1]
                  ;(isNaN(M) || isNaN(I)) && ((M = T), (I = C)), u.push(M, I), c.push(T, C), h.push(n[w], n[w + 1]), d.push(i[S], i[S + 1]), g.push(e.getRawIndex(_.idx1))
                  break
                case '+':
                  var D = _.idx,
                    A = y.dataDimsForPoint,
                    k = r.dataToPoint([e.get(A[0], D), e.get(A[1], D)])
                  ;(S = 2 * D), u.push(k[0], k[1]), c.push(m[S], m[S + 1])
                  var L = hI(y, r, e, D)
                  h.push(L[0], L[1]), d.push(i[S], i[S + 1]), g.push(e.getRawIndex(D))
                  break
                case '-':
                  b = !1
              }
              b && (p.push(_), f.push(f.length))
            }
            f.sort(function (t, e) {
              return g[t] - g[e]
            })
            var P = u.length,
              O = pb(P),
              R = pb(P),
              N = pb(P),
              z = pb(P),
              E = []
            for (x = 0; x < f.length; x++) {
              var B = f[x],
                V = 2 * x,
                G = 2 * B
              ;(O[V] = u[G]), (O[V + 1] = u[G + 1]), (R[V] = c[G]), (R[V + 1] = c[G + 1]), (N[V] = h[G]), (N[V + 1] = h[G + 1]), (z[V] = d[G]), (z[V + 1] = d[G + 1]), (E[x] = p[B])
            }
            return { current: O, next: R, stackedOnCurrent: N, stackedOnNext: z, status: E }
          })(this._data, t, this._stackedOnPoints, e, this._coordSys, 0, this._valueOrigin),
          h = c.current,
          d = c.stackedOnCurrent,
          p = c.next,
          f = c.stackedOnNext
        if (
          (r && ((d = DI(c.stackedOnCurrent, c.current, n, r, a)), (h = DI(c.current, null, n, r, a)), (f = DI(c.stackedOnNext, c.next, n, r, a)), (p = DI(c.next, null, n, r, a))),
          TI(h, p) > 3e3 || (l && TI(d, f) > 3e3))
        )
          return s.stopAnimation(), s.setShape({ points: p }), void (l && (l.stopAnimation(), l.setShape({ points: p, stackedOnPoints: f })))
        ;(s.shape.__points = c.current), (s.shape.points = h)
        var g = { shape: { points: p } }
        c.current !== h && (g.shape.__points = c.next),
          s.stopAnimation(),
          th(s, g, u),
          l &&
            (l.setShape({ points: h, stackedOnPoints: d }),
            l.stopAnimation(),
            th(l, { shape: { stackedOnPoints: f } }, u),
            s.shape.points !== l.shape.points && (l.shape.points = s.shape.points))
        for (var y = [], v = c.status, m = 0; m < v.length; m++) {
          if ('=' === v[m].cmd) {
            var x = t.getItemGraphicEl(v[m].idx1)
            x && y.push({ el: x, ptIdx: m })
          }
        }
        s.animators &&
          s.animators.length &&
          s.animators[0].during(function () {
            l && l.dirtyShape()
            for (var t = s.shape.__points, e = 0; e < y.length; e++) {
              var n = y[e].el,
                i = 2 * y[e].ptIdx
              ;(n.x = t[i]), (n.y = t[i + 1]), n.markRedraw()
            }
          })
      }),
      (e.prototype.remove = function (t) {
        var e = this.group,
          n = this._data
        this._lineGroup.removeAll(),
          this._symbolDraw.remove(!0),
          n &&
            n.eachItemGraphicEl(function (t, i) {
              t.__temp && (e.remove(t), n.setItemGraphicEl(i, null))
            }),
          (this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null)
      }),
      (e.type = 'line'),
      e
    )
  })(tv)
  function NI(t, e) {
    return {
      seriesType: t,
      plan: $y(),
      reset: function (t) {
        var n = t.getData(),
          i = t.coordinateSystem,
          r = t.pipelineContext,
          o = e || r.large
        if (i) {
          var a = E(i.dimensions, function (t) {
              return n.mapDimension(t)
            }).slice(0, 2),
            s = a.length,
            l = n.getCalculationInfo('stackResultDimension')
          Y_(n, a[0]) && (a[0] = l), Y_(n, a[1]) && (a[1] = l)
          var u = n.getStore(),
            c = n.getDimensionIndex(a[0]),
            h = n.getDimensionIndex(a[1])
          return (
            s && {
              progress: function (t, e) {
                for (var n = t.end - t.start, r = o && pb(n * s), a = [], l = [], d = t.start, p = 0; d < t.end; d++) {
                  var f = void 0
                  if (1 === s) {
                    var g = u.get(c, d)
                    f = i.dataToPoint(g, null, l)
                  } else (a[0] = u.get(c, d)), (a[1] = u.get(h, d)), (f = i.dataToPoint(a, null, l))
                  o ? ((r[p++] = f[0]), (r[p++] = f[1])) : e.setItemLayout(d, f.slice())
                }
                o && e.setLayout('points', r)
              }
            }
          )
        }
      }
    }
  }
  var zI = {
      average: function (t) {
        for (var e = 0, n = 0, i = 0; i < t.length; i++) isNaN(t[i]) || ((e += t[i]), n++)
        return 0 === n ? NaN : e / n
      },
      sum: function (t) {
        for (var e = 0, n = 0; n < t.length; n++) e += t[n] || 0
        return e
      },
      max: function (t) {
        for (var e = -1 / 0, n = 0; n < t.length; n++) t[n] > e && (e = t[n])
        return isFinite(e) ? e : NaN
      },
      min: function (t) {
        for (var e = 1 / 0, n = 0; n < t.length; n++) t[n] < e && (e = t[n])
        return isFinite(e) ? e : NaN
      },
      nearest: function (t) {
        return t[0]
      }
    },
    EI = function (t) {
      return Math.round(t.length / 2)
    }
  function BI(t) {
    return {
      seriesType: t,
      reset: function (t, e, n) {
        var i = t.getData(),
          r = t.get('sampling'),
          o = t.coordinateSystem,
          a = i.count()
        if (a > 10 && 'cartesian2d' === o.type && r) {
          var s = o.getBaseAxis(),
            l = o.getOtherAxis(s),
            u = s.getExtent(),
            c = n.getDevicePixelRatio(),
            h = Math.abs(u[1] - u[0]) * (c || 1),
            d = Math.round(a / h)
          if (isFinite(d) && d > 1) {
            'lttb' === r ? t.setData(i.lttbDownSample(i.mapDimension(l.dim), 1 / d)) : 'minmax' === r && t.setData(i.minmaxDownSample(i.mapDimension(l.dim), 1 / d))
            var p = void 0
            X(r) ? (p = zI[r]) : Y(r) && (p = r), p && t.setData(i.downSample(i.mapDimension(l.dim), 1 / d, p, EI))
          }
        }
      }
    }
  }
  var VI = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.getInitialData = function (t, e) {
        return Z_(null, this, { useEncodeDefaulter: !0 })
      }),
      (e.prototype.getMarkerPosition = function (t, e, n) {
        var i = this.coordinateSystem
        if (i && i.clampData) {
          var r = i.clampData(t),
            o = i.dataToPoint(r)
          if (n)
            z(i.getAxes(), function (t, n) {
              if ('category' === t.type && null != e) {
                var i = t.getTicksCoords(),
                  a = t.getTickModel().get('alignWithLabel'),
                  s = r[n],
                  l = 'x1' === e[n] || 'y1' === e[n]
                if ((l && !a && (s += 1), i.length < 2)) return
                if (2 === i.length) return void (o[n] = t.toGlobalCoord(t.getExtent()[l ? 1 : 0]))
                for (var u = void 0, c = void 0, h = 1, d = 0; d < i.length; d++) {
                  var p = i[d].coord,
                    f = d === i.length - 1 ? i[d - 1].tickValue + h : i[d].tickValue
                  if (f === s) {
                    c = p
                    break
                  }
                  if (f < s) u = p
                  else if (null != u && f > s) {
                    c = (p + u) / 2
                    break
                  }
                  1 === d && (h = f - i[0].tickValue)
                }
                null == c && (u ? u && (c = i[i.length - 1].coord) : (c = i[0].coord)), (o[n] = t.toGlobalCoord(c))
              }
            })
          else {
            var a = this.getData(),
              s = a.getLayout('offset'),
              l = a.getLayout('size'),
              u = i.getBaseAxis().isHorizontal() ? 0 : 1
            o[u] += s + l / 2
          }
          return o
        }
        return [NaN, NaN]
      }),
      (e.type = 'series.__base_bar__'),
      (e.defaultOption = {
        z: 2,
        coordinateSystem: 'cartesian2d',
        legendHoverLink: !0,
        barMinHeight: 0,
        barMinAngle: 0,
        large: !1,
        largeThreshold: 400,
        progressive: 3e3,
        progressiveChunkMode: 'mod',
        defaultBarGap: '10%'
      }),
      e
    )
  })(Wy)
  Wy.registerClass(VI)
  var GI = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.getInitialData = function () {
          return Z_(null, this, { useEncodeDefaulter: !0, createInvertedIndices: !!this.get('realtimeSort', !0) || null })
        }),
        (e.prototype.getProgressive = function () {
          return !!this.get('large') && this.get('progressive')
        }),
        (e.prototype.getProgressiveThreshold = function () {
          var t = this.get('progressiveThreshold'),
            e = this.get('largeThreshold')
          return e > t && (t = e), t
        }),
        (e.prototype.brushSelector = function (t, e, n) {
          return n.rect(e.getItemLayout(t))
        }),
        (e.type = 'series.bar'),
        (e.dependencies = ['grid', 'polar']),
        (e.defaultOption = Id(VI.defaultOption, {
          clip: !0,
          roundCap: !1,
          showBackground: !1,
          backgroundStyle: {
            color: 'rgba(180, 180, 180, 0.2)',
            borderColor: null,
            borderWidth: 0,
            borderType: 'solid',
            borderRadius: 0,
            shadowBlur: 0,
            shadowColor: null,
            shadowOffsetX: 0,
            shadowOffsetY: 0,
            opacity: 1
          },
          select: { itemStyle: { borderColor: tf.color.primary, borderWidth: 2 } },
          realtimeSort: !1
        })),
        e
      )
    })(VI),
    FI = function () {
      ;(this.cx = 0), (this.cy = 0), (this.r0 = 0), (this.r = 0), (this.startAngle = 0), (this.endAngle = 2 * Math.PI), (this.clockwise = !0)
    },
    WI = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'sausage'), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new FI()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = e.cx,
            i = e.cy,
            r = Math.max(e.r0 || 0, 0),
            o = Math.max(e.r, 0),
            a = 0.5 * (o - r),
            s = r + a,
            l = e.startAngle,
            u = e.endAngle,
            c = e.clockwise,
            h = 2 * Math.PI,
            d = c ? u - l < h : l - u < h
          d || (l = u - (c ? h : -h))
          var p = Math.cos(l),
            f = Math.sin(l),
            g = Math.cos(u),
            y = Math.sin(u)
          d ? (t.moveTo(p * r + n, f * r + i), t.arc(p * s + n, f * s + i, a, -Math.PI + l, l, !c)) : t.moveTo(p * o + n, f * o + i),
            t.arc(n, i, o, l, u, !c),
            t.arc(g * s + n, y * s + i, a, u - 2 * Math.PI, u - Math.PI, !c),
            0 !== r && t.arc(n, i, r, u, l, c)
        }),
        e
      )
    })(sl)
  function HI(t, e, n) {
    return e * Math.sin(t) * (n ? -1 : 1)
  }
  function UI(t, e, n) {
    return e * Math.cos(t) * (n ? 1 : -1)
  }
  function YI(t, e, n) {
    var i = t.get('borderRadius')
    if (null == i) return n ? { cornerRadius: 0 } : null
    U(i) || (i = [i, i, i, i])
    var r = Math.abs(e.r || 0 - e.r0 || 0)
    return {
      cornerRadius: E(i, function (t) {
        return Fr(t, r)
      })
    }
  }
  var XI = Math.max,
    ZI = Math.min
  var jI = (function (t) {
      function e() {
        var n = t.call(this) || this
        return (n.type = e.type), (n._isFirstFrame = !0), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n, i) {
          ;(this._model = t), this._removeOnRenderedListener(n), this._updateDrawMode(t)
          var r = t.get('coordinateSystem')
          ;('cartesian2d' === r || 'polar' === r) && ((this._progressiveEls = null), this._isLargeDraw ? this._renderLarge(t, e, n) : this._renderNormal(t, e, n, i))
        }),
        (e.prototype.incrementalPrepareRender = function (t) {
          this._clear(), this._updateDrawMode(t), this._updateLargeClip(t)
        }),
        (e.prototype.incrementalRender = function (t, e) {
          ;(this._progressiveEls = []), this._incrementalRenderLarge(t, e)
        }),
        (e.prototype.eachRendered = function (t) {
          Bh(this._progressiveEls || this.group, t)
        }),
        (e.prototype._updateDrawMode = function (t) {
          var e = t.pipelineContext.large
          ;(null != this._isLargeDraw && e === this._isLargeDraw) || ((this._isLargeDraw = e), this._clear())
        }),
        (e.prototype._renderNormal = function (t, e, n, i) {
          var r,
            o = this.group,
            a = t.getData(),
            s = this._data,
            l = t.coordinateSystem,
            u = l.getBaseAxis()
          'cartesian2d' === l.type ? (r = u.isHorizontal()) : 'polar' === l.type && (r = 'angle' === u.dim)
          var c = t.isAnimationEnabled() ? t : null,
            h = (function (t, e) {
              var n = t.get('realtimeSort', !0),
                i = e.getBaseAxis()
              0
              if (n && 'category' === i.type && 'cartesian2d' === e.type) return { baseAxis: i, otherAxis: e.getOtherAxis(i) }
            })(t, l)
          h && this._enableRealtimeSort(h, a, n)
          var d = t.get('clip', !0) || h,
            p = (function (t, e) {
              var n = t.getArea && t.getArea()
              if (SI(t, 'cartesian2d')) {
                var i = t.getBaseAxis()
                if ('category' !== i.type || !i.onBand) {
                  var r = e.getLayout('bandWidth')
                  i.isHorizontal() ? ((n.x -= r), (n.width += 2 * r)) : ((n.y -= r), (n.height += 2 * r))
                }
              }
              return n
            })(l, a)
          o.removeClipPath()
          var f = t.get('roundCap', !0),
            g = t.get('showBackground', !0),
            y = t.getModel('backgroundStyle'),
            v = y.get('borderRadius') || 0,
            m = [],
            x = this._backgroundEls,
            _ = i && i.isInitSort,
            b = i && 'changeAxisOrder' === i.type
          function w(t) {
            var e = nT[l.type](a, t)
            if (!e) return null
            var n = (function (t, e, n) {
              var i = 'polar' === t.type ? xc : xl
              return new i({ shape: uT(e, n, t), silent: !0, z2: 0 })
            })(l, r, e)
            return n.useStyle(y.getItemStyle()), 'cartesian2d' === l.type ? n.setShape('r', v) : n.setShape('cornerRadius', v), (m[t] = n), n
          }
          a.diff(s)
            .add(function (e) {
              var n = a.getItemModel(e),
                i = nT[l.type](a, e, n)
              if (i && (g && w(e), a.hasValue(e) && eT[l.type](i))) {
                var s = !1
                d && (s = qI[l.type](p, i))
                var y = KI[l.type](t, a, e, i, r, c, u.model, !1, f)
                h && (y.forceLabelAnimation = !0),
                  rT(y, a, e, n, i, t, r, 'polar' === l.type),
                  _ ? y.attr({ shape: i }) : h ? $I(h, c, y, i, e, r, !1, !1) : eh(y, { shape: i }, t, e),
                  a.setItemGraphicEl(e, y),
                  o.add(y),
                  (y.ignore = s)
              }
            })
            .update(function (e, n) {
              var i = a.getItemModel(e),
                S = nT[l.type](a, e, i)
              if (S) {
                if (g) {
                  var M = void 0
                  0 === x.length ? (M = w(n)) : ((M = x[n]).useStyle(y.getItemStyle()), 'cartesian2d' === l.type ? M.setShape('r', v) : M.setShape('cornerRadius', v), (m[e] = M))
                  var I = nT[l.type](a, e)
                  th(M, { shape: uT(r, I, l) }, c, e)
                }
                var T = s.getItemGraphicEl(n)
                if (a.hasValue(e) && eT[l.type](S)) {
                  var C = !1
                  if (
                    (d && (C = qI[l.type](p, S)) && o.remove(T),
                    T && (('sector' === T.type && f) || ('sausage' === T.type && !f)) && (T && oh(T, t, n), (T = null)),
                    T ? ah(T) : (T = KI[l.type](t, a, e, S, r, c, u.model, !0, f)),
                    h && (T.forceLabelAnimation = !0),
                    b)
                  ) {
                    var D = T.getTextContent()
                    if (D) {
                      var A = ad(D)
                      null != A.prevValue && (A.prevValue = A.value)
                    }
                  } else rT(T, a, e, i, S, t, r, 'polar' === l.type)
                  _ ? T.attr({ shape: S }) : h ? $I(h, c, T, S, e, r, !0, b) : th(T, { shape: S }, t, e, null), a.setItemGraphicEl(e, T), (T.ignore = C), o.add(T)
                } else o.remove(T)
              }
            })
            .remove(function (e) {
              var n = s.getItemGraphicEl(e)
              n && oh(n, t, e)
            })
            .execute()
          var S = this._backgroundGroup || (this._backgroundGroup = new to())
          S.removeAll()
          for (var M = 0; M < m.length; ++M) S.add(m[M])
          o.add(S), (this._backgroundEls = m), (this._data = a)
        }),
        (e.prototype._renderLarge = function (t, e, n) {
          this._clear(), sT(t, this.group), this._updateLargeClip(t)
        }),
        (e.prototype._incrementalRenderLarge = function (t, e) {
          this._removeBackground(), sT(e, this.group, this._progressiveEls, !0)
        }),
        (e.prototype._updateLargeClip = function (t) {
          var e = t.get('clip', !0) && wI(t.coordinateSystem, !1, t),
            n = this.group
          e ? n.setClipPath(e) : n.removeClipPath()
        }),
        (e.prototype._enableRealtimeSort = function (t, e, n) {
          var i = this
          if (e.count()) {
            var r = t.baseAxis
            if (this._isFirstFrame) this._dispatchInitSort(e, t, n), (this._isFirstFrame = !1)
            else {
              var o = function (t) {
                var n = e.getItemGraphicEl(t),
                  i = n && n.shape
                return (i && Math.abs(r.isHorizontal() ? i.height : i.width)) || 0
              }
              ;(this._onRendered = function () {
                i._updateSortWithinSameData(e, o, r, n)
              }),
                n.getZr().on('rendered', this._onRendered)
            }
          }
        }),
        (e.prototype._dataSort = function (t, e, n) {
          var i = []
          return (
            t.each(t.mapDimension(e.dim), function (t, e) {
              var r = n(e)
              ;(r = null == r ? NaN : r), i.push({ dataIndex: e, mappedValue: r, ordinalNumber: t })
            }),
            i.sort(function (t, e) {
              return e.mappedValue - t.mappedValue
            }),
            {
              ordinalNumbers: E(i, function (t) {
                return t.ordinalNumber
              })
            }
          )
        }),
        (e.prototype._isOrderChangedWithinSameData = function (t, e, n) {
          for (var i = n.scale, r = t.mapDimension(n.dim), o = Number.MAX_VALUE, a = 0, s = i.getOrdinalMeta().categories.length; a < s; ++a) {
            var l = t.rawIndexOf(r, i.getRawOrdinalNumber(a)),
              u = l < 0 ? Number.MIN_VALUE : e(t.indexOfRawIndex(l))
            if (u > o) return !0
            o = u
          }
          return !1
        }),
        (e.prototype._isOrderDifferentInView = function (t, e) {
          for (var n = e.scale, i = n.getExtent(), r = Math.max(0, i[0]), o = Math.min(i[1], n.getOrdinalMeta().categories.length - 1); r <= o; ++r)
            if (t.ordinalNumbers[r] !== n.getRawOrdinalNumber(r)) return !0
        }),
        (e.prototype._updateSortWithinSameData = function (t, e, n, i) {
          if (this._isOrderChangedWithinSameData(t, e, n)) {
            var r = this._dataSort(t, n, e)
            this._isOrderDifferentInView(r, n) &&
              (this._removeOnRenderedListener(i), i.dispatchAction({ type: 'changeAxisOrder', componentType: n.dim + 'Axis', axisId: n.index, sortInfo: r }))
          }
        }),
        (e.prototype._dispatchInitSort = function (t, e, n) {
          var i = e.baseAxis,
            r = this._dataSort(t, i, function (n) {
              return t.get(t.mapDimension(e.otherAxis.dim), n)
            })
          n.dispatchAction({ type: 'changeAxisOrder', componentType: i.dim + 'Axis', isInitSort: !0, axisId: i.index, sortInfo: r })
        }),
        (e.prototype.remove = function (t, e) {
          this._clear(this._model), this._removeOnRenderedListener(e)
        }),
        (e.prototype.dispose = function (t, e) {
          this._removeOnRenderedListener(e)
        }),
        (e.prototype._removeOnRenderedListener = function (t) {
          this._onRendered && (t.getZr().off('rendered', this._onRendered), (this._onRendered = null))
        }),
        (e.prototype._clear = function (t) {
          var e = this.group,
            n = this._data
          t && t.isAnimationEnabled() && n && !this._isLargeDraw
            ? (this._removeBackground(),
              (this._backgroundEls = []),
              n.eachItemGraphicEl(function (e) {
                oh(e, t, zl(e).dataIndex)
              }))
            : e.removeAll(),
            (this._data = null),
            (this._isFirstFrame = !0)
        }),
        (e.prototype._removeBackground = function () {
          this.group.remove(this._backgroundGroup), (this._backgroundGroup = null)
        }),
        (e.type = 'bar'),
        e
      )
    })(tv),
    qI = {
      cartesian2d: function (t, e) {
        var n = e.width < 0 ? -1 : 1,
          i = e.height < 0 ? -1 : 1
        n < 0 && ((e.x += e.width), (e.width = -e.width)), i < 0 && ((e.y += e.height), (e.height = -e.height))
        var r = t.x + t.width,
          o = t.y + t.height,
          a = XI(e.x, t.x),
          s = ZI(e.x + e.width, r),
          l = XI(e.y, t.y),
          u = ZI(e.y + e.height, o),
          c = s < a,
          h = u < l
        return (
          (e.x = c && a > r ? s : a),
          (e.y = h && l > o ? u : l),
          (e.width = c ? 0 : s - a),
          (e.height = h ? 0 : u - l),
          n < 0 && ((e.x += e.width), (e.width = -e.width)),
          i < 0 && ((e.y += e.height), (e.height = -e.height)),
          c || h
        )
      },
      polar: function (t, e) {
        var n = e.r0 <= e.r ? 1 : -1
        if (n < 0) {
          var i = e.r
          ;(e.r = e.r0), (e.r0 = i)
        }
        var r = ZI(e.r, t.r),
          o = XI(e.r0, t.r0)
        ;(e.r = r), (e.r0 = o)
        var a = r - o < 0
        if (n < 0) {
          i = e.r
          ;(e.r = e.r0), (e.r0 = i)
        }
        return a
      }
    },
    KI = {
      cartesian2d: function (t, e, n, i, r, o, a, s, l) {
        var u = new xl({ shape: A({}, i), z2: 1 })
        ;((u.__dataIndex = n), (u.name = 'item'), o) && (u.shape[r ? 'height' : 'width'] = 0)
        return u
      },
      polar: function (t, e, n, i, r, o, a, s, l) {
        var u = !r && l ? WI : xc,
          c = new u({ shape: i, z2: 1 })
        c.name = 'item'
        var h,
          d,
          p = iT(r)
        if (
          ((c.calculateTextPosition =
            ((h = p),
            (d = ({ isRoundCap: u === WI } || {}).isRoundCap),
            function (t, e, n) {
              var i = e.position
              if (!i || i instanceof Array) return Wr(t, e, n)
              var r = h(i),
                o = null != e.distance ? e.distance : 5,
                a = this.shape,
                s = a.cx,
                l = a.cy,
                u = a.r,
                c = a.r0,
                p = (u + c) / 2,
                f = a.startAngle,
                g = a.endAngle,
                y = (f + g) / 2,
                v = d ? Math.abs(u - c) / 2 : 0,
                m = Math.cos,
                x = Math.sin,
                _ = s + u * m(f),
                b = l + u * x(f),
                w = 'left',
                S = 'top'
              switch (r) {
                case 'startArc':
                  ;(_ = s + (c - o) * m(y)), (b = l + (c - o) * x(y)), (w = 'center'), (S = 'top')
                  break
                case 'insideStartArc':
                  ;(_ = s + (c + o) * m(y)), (b = l + (c + o) * x(y)), (w = 'center'), (S = 'bottom')
                  break
                case 'startAngle':
                  ;(_ = s + p * m(f) + HI(f, o + v, !1)), (b = l + p * x(f) + UI(f, o + v, !1)), (w = 'right'), (S = 'middle')
                  break
                case 'insideStartAngle':
                  ;(_ = s + p * m(f) + HI(f, -o + v, !1)), (b = l + p * x(f) + UI(f, -o + v, !1)), (w = 'left'), (S = 'middle')
                  break
                case 'middle':
                  ;(_ = s + p * m(y)), (b = l + p * x(y)), (w = 'center'), (S = 'middle')
                  break
                case 'endArc':
                  ;(_ = s + (u + o) * m(y)), (b = l + (u + o) * x(y)), (w = 'center'), (S = 'bottom')
                  break
                case 'insideEndArc':
                  ;(_ = s + (u - o) * m(y)), (b = l + (u - o) * x(y)), (w = 'center'), (S = 'top')
                  break
                case 'endAngle':
                  ;(_ = s + p * m(g) + HI(g, o + v, !0)), (b = l + p * x(g) + UI(g, o + v, !0)), (w = 'left'), (S = 'middle')
                  break
                case 'insideEndAngle':
                  ;(_ = s + p * m(g) + HI(g, -o + v, !0)), (b = l + p * x(g) + UI(g, -o + v, !0)), (w = 'right'), (S = 'middle')
                  break
                default:
                  return Wr(t, e, n)
              }
              return ((t = t || {}).x = _), (t.y = b), (t.align = w), (t.verticalAlign = S), t
            })),
          o)
        ) {
          var f = r ? 'r' : 'endAngle',
            g = {}
          ;(c.shape[f] = r ? i.r0 : i.startAngle), (g[f] = i[f]), (s ? th : eh)(c, { shape: g }, o)
        }
        return c
      }
    }
  function $I(t, e, n, i, r, o, a, s) {
    var l, u
    o ? ((u = { x: i.x, width: i.width }), (l = { y: i.y, height: i.height })) : ((u = { y: i.y, height: i.height }), (l = { x: i.x, width: i.width })),
      s || (a ? th : eh)(n, { shape: l }, e, r, null),
      (a ? th : eh)(n, { shape: u }, e ? t.baseAxis.model : null, r)
  }
  function JI(t, e) {
    for (var n = 0; n < e.length; n++) if (!isFinite(t[e[n]])) return !0
    return !1
  }
  var QI = ['x', 'y', 'width', 'height'],
    tT = ['cx', 'cy', 'r', 'startAngle', 'endAngle'],
    eT = {
      cartesian2d: function (t) {
        return !JI(t, QI)
      },
      polar: function (t) {
        return !JI(t, tT)
      }
    },
    nT = {
      cartesian2d: function (t, e, n) {
        var i = t.getItemLayout(e)
        if (!i) return null
        var r = n
            ? (function (t, e) {
                var n = t.get(['itemStyle', 'borderColor'])
                if (!n || 'none' === n) return 0
                var i = t.get(['itemStyle', 'borderWidth']) || 0,
                  r = isNaN(e.width) ? Number.MAX_VALUE : Math.abs(e.width),
                  o = isNaN(e.height) ? Number.MAX_VALUE : Math.abs(e.height)
                return Math.min(i, r, o)
              })(n, i)
            : 0,
          o = i.width > 0 ? 1 : -1,
          a = i.height > 0 ? 1 : -1
        return { x: i.x + (o * r) / 2, y: i.y + (a * r) / 2, width: i.width - o * r, height: i.height - a * r }
      },
      polar: function (t, e, n) {
        var i = t.getItemLayout(e)
        return { cx: i.cx, cy: i.cy, r0: i.r0, r: i.r, startAngle: i.startAngle, endAngle: i.endAngle, clockwise: i.clockwise }
      }
    }
  function iT(t) {
    return (function (t) {
      var e = t ? 'Arc' : 'Angle'
      return function (t) {
        switch (t) {
          case 'start':
          case 'insideStart':
          case 'end':
          case 'insideEnd':
            return t + e
          default:
            return t
        }
      }
    })(t)
  }
  function rT(t, e, n, i, r, o, a, s) {
    var l = e.getItemVisual(n, 'style')
    if (s) {
      if (!o.get('roundCap')) {
        var u = t.shape
        A(u, YI(i.getModel('itemStyle'), u, !0)), t.setShape(u)
      }
    } else {
      var c = i.get(['itemStyle', 'borderRadius']) || 0
      t.setShape('r', c)
    }
    t.useStyle(l)
    var h = i.getShallow('cursor')
    h && t.attr('cursor', h)
    var d = s
        ? a
          ? r.r >= r.r0
            ? 'endArc'
            : 'startArc'
          : r.endAngle >= r.startAngle
            ? 'endAngle'
            : 'startAngle'
        : a
          ? r.height >= 0
            ? 'bottom'
            : 'top'
          : r.width >= 0
            ? 'right'
            : 'left',
      p = Jh(i)
    $h(t, p, { labelFetcher: o, labelDataIndex: n, defaultText: nI(o.getData(), n), inheritColor: l.fill, defaultOpacity: l.opacity, defaultOutsidePosition: d })
    var f = t.getTextContent()
    if (s && f) {
      var g = i.get(['label', 'position'])
      ;(t.textConfig.inside = 'middle' === g || null),
        (function (t, e, n, i) {
          if (j(i)) t.setTextConfig({ rotation: i })
          else if (U(e)) t.setTextConfig({ rotation: 0 })
          else {
            var r,
              o = t.shape,
              a = o.clockwise ? o.startAngle : o.endAngle,
              s = o.clockwise ? o.endAngle : o.startAngle,
              l = (a + s) / 2,
              u = n(e)
            switch (u) {
              case 'startArc':
              case 'insideStartArc':
              case 'middle':
              case 'insideEndArc':
              case 'endArc':
                r = l
                break
              case 'startAngle':
              case 'insideStartAngle':
                r = a
                break
              case 'endAngle':
              case 'insideEndAngle':
                r = s
                break
              default:
                return void t.setTextConfig({ rotation: 0 })
            }
            var c = 1.5 * Math.PI - r
            'middle' === u && c > Math.PI / 2 && c < 1.5 * Math.PI && (c -= Math.PI), t.setTextConfig({ rotation: c })
          }
        })(t, 'outside' === g ? d : g, iT(a), i.get(['label', 'rotate']))
    }
    sd(f, p, o.getRawValue(n), function (t) {
      return iI(e, t)
    })
    var y = i.getModel(['emphasis'])
    Tu(t, y.get('focus'), y.get('blurScope'), y.get('disabled')),
      ku(t, i),
      (function (t) {
        return null != t.startAngle && null != t.endAngle && t.startAngle === t.endAngle
      })(r) &&
        ((t.style.fill = 'none'),
        (t.style.stroke = 'none'),
        z(t.states, function (t) {
          t.style && (t.style.fill = t.style.stroke = 'none')
        }))
  }
  var oT = function () {},
    aT = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'largeBar'), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new oT()
        }),
        (e.prototype.buildPath = function (t, e) {
          for (var n = e.points, i = this.baseDimIdx, r = 1 - this.baseDimIdx, o = [], a = [], s = this.barWidth, l = 0; l < n.length; l += 3)
            (a[i] = s), (a[r] = n[l + 2]), (o[i] = n[l + i]), (o[r] = n[l + r]), t.rect(o[0], o[1], a[0], a[1])
        }),
        e
      )
    })(sl)
  function sT(t, e, n, i) {
    var r = t.getData(),
      o = r.getLayout('valueAxisHorizontal') ? 1 : 0,
      a = r.getLayout('largeDataIndices'),
      s = r.getLayout('size'),
      l = t.getModel('backgroundStyle'),
      u = r.getLayout('largeBackgroundPoints')
    if (u) {
      var c = new aT({ shape: { points: u }, incremental: !!i, silent: !0, z2: 0 })
      ;(c.baseDimIdx = o), (c.largeDataIndices = a), (c.barWidth = s), c.useStyle(l.getItemStyle()), e.add(c), n && n.push(c)
    }
    var h = new aT({ shape: { points: r.getLayout('largePoints') }, incremental: !!i, ignoreCoarsePointer: !0, z2: 1 })
    ;(h.baseDimIdx = o),
      (h.largeDataIndices = a),
      (h.barWidth = s),
      e.add(h),
      h.useStyle(r.getVisual('style')),
      (h.style.stroke = null),
      (zl(h).seriesIndex = t.seriesIndex),
      t.get('silent') || (h.on('mousedown', lT), h.on('mousemove', lT)),
      n && n.push(h)
  }
  var lT = uv(
    function (t) {
      var e = (function (t, e, n) {
        for (var i = t.baseDimIdx, r = 1 - i, o = t.shape.points, a = t.largeDataIndices, s = [], l = [], u = t.barWidth, c = 0, h = o.length / 3; c < h; c++) {
          var d = 3 * c
          if (
            ((l[i] = u),
            (l[r] = o[d + 2]),
            (s[i] = o[d + i]),
            (s[r] = o[d + r]),
            l[r] < 0 && ((s[r] += l[r]), (l[r] = -l[r])),
            e >= s[0] && e <= s[0] + l[0] && n >= s[1] && n <= s[1] + l[1])
          )
            return a[c]
        }
        return -1
      })(this, t.offsetX, t.offsetY)
      zl(this).dataIndex = e >= 0 ? e : null
    },
    30,
    !1
  )
  function uT(t, e, n) {
    if (SI(n, 'cartesian2d')) {
      var i = e,
        r = n.getArea()
      return { x: t ? i.x : r.x, y: t ? r.y : i.y, width: t ? i.width : r.width, height: t ? r.height : i.height }
    }
    var o = e
    return { cx: (r = n.getArea()).cx, cy: r.cy, r0: t ? r.r0 : o.r0, r: t ? r.r : o.r, startAngle: t ? o.startAngle : 0, endAngle: t ? o.endAngle : 2 * Math.PI }
  }
  var cT = 2 * Math.PI,
    hT = Math.PI / 180
  function dT(t, e, n) {
    e.eachSeriesByType(t, function (t) {
      var e = t.getData(),
        i = e.mapDimension('value'),
        r = Wp(t, n),
        o = r.cx,
        a = r.cy,
        s = r.r,
        l = r.r0,
        u = r.viewRect,
        c = -t.get('startAngle') * hT,
        h = t.get('endAngle'),
        d = t.get('padAngle') * hT
      h = 'auto' === h ? c - cT : -h * hT
      var p = t.get('minAngle') * hT + d,
        f = 0
      e.each(i, function (t) {
        !isNaN(t) && f++
      })
      var g = e.getSum(i),
        y = (Math.PI / (g || f)) * 2,
        v = t.get('clockwise'),
        m = t.get('roseType'),
        x = t.get('stillShowZeroSum'),
        _ = e.getDataExtent(i)
      _[0] = 0
      var b = v ? 1 : -1,
        w = [c, h],
        S = (b * d) / 2
      Gs(w, !v), (c = w[0]), (h = w[1])
      var M = pT(t)
      ;(M.startAngle = c), (M.endAngle = h), (M.clockwise = v), (M.cx = o), (M.cy = a), (M.r = s), (M.r0 = l)
      var I = Math.abs(h - c),
        T = I,
        C = 0,
        D = c
      if (
        (e.setLayout({ viewRect: u, r: s }),
        e.each(i, function (t, n) {
          var i
          if (isNaN(t)) e.setItemLayout(n, { angle: NaN, startAngle: NaN, endAngle: NaN, clockwise: v, cx: o, cy: a, r0: l, r: m ? NaN : s })
          else {
            ;(i = 'area' !== m ? (0 === g && x ? y : t * y) : I / f) < p ? ((i = p), (T -= p)) : (C += t)
            var r = D + b * i,
              u = 0,
              c = 0
            d > i ? (c = u = D + (b * i) / 2) : ((u = D + S), (c = r - S)),
              e.setItemLayout(n, { angle: i, startAngle: u, endAngle: c, clockwise: v, cx: o, cy: a, r0: l, r: m ? go(t, _, [l, s]) : s }),
              (D = r)
          }
        }),
        T < cT && f)
      )
        if (T <= 0.001) {
          var A = I / f
          e.each(i, function (t, n) {
            if (!isNaN(t)) {
              var i = e.getItemLayout(n)
              i.angle = A
              var r = 0,
                o = 0
              A < d ? (o = r = c + b * (n + 0.5) * A) : ((r = c + b * n * A + S), (o = c + b * (n + 1) * A - S)), (i.startAngle = r), (i.endAngle = o)
            }
          })
        } else
          (y = T / C),
            (D = c),
            e.each(i, function (t, n) {
              if (!isNaN(t)) {
                var i = e.getItemLayout(n),
                  r = i.angle === p ? p : t * y,
                  o = 0,
                  a = 0
                r < d ? (a = o = D + (b * r) / 2) : ((o = D + S), (a = D + b * r - S)), (i.startAngle = o), (i.endAngle = a), (D += b * r)
              }
            })
    })
  }
  var pT = sa()
  function fT(t) {
    return {
      seriesType: t,
      reset: function (t, e) {
        var n = e.findComponents({ mainType: 'legend' })
        if (n && n.length) {
          var i = t.getData()
          i.filterSelf(function (t) {
            for (var e = i.getName(t), r = 0; r < n.length; r++) if (!n[r].isSelected(e)) return !1
            return !0
          })
        }
      }
    }
  }
  var gT = Math.PI / 180
  function yT(t, e, n, i, r, o, a, s, l, u) {
    if (!(t.length < 2)) {
      for (var c = t.length, h = 0; h < c; h++)
        if ('outer' === t[h].position && 'labelLine' === t[h].labelAlignTo) {
          var d = t[h].label.x - u
          ;(t[h].linePoints[1][0] += d), (t[h].label.x = u)
        }
      SS(t, 1, l, l + a) &&
        (function (t) {
          for (var o = { list: [], maxY: 0 }, a = { list: [], maxY: 0 }, s = 0; s < t.length; s++)
            if ('none' === t[s].labelAlignTo) {
              var l = t[s],
                u = l.label.y > n ? a : o,
                c = Math.abs(l.label.y - n)
              if (c >= u.maxY) {
                var h = l.label.x - e - l.len2 * r,
                  d = i + l.len,
                  f = Math.abs(h) < d ? Math.sqrt((c * c) / (1 - (h * h) / d / d)) : d
                ;(u.rB = f), (u.maxY = c)
              }
              u.list.push(l)
            }
          p(o), p(a)
        })(t)
    }
    function p(t) {
      for (var o = t.rB, a = o * o, s = 0; s < t.list.length; s++) {
        var l = t.list[s],
          u = Math.abs(l.label.y - n),
          c = i + l.len,
          h = c * c,
          d = Math.sqrt(Math.abs((1 - (u * u) / a) * h)),
          p = e + (d + l.len2) * r,
          f = p - l.label.x
        vT(l, l.targetTextWidth - f * r, !0), (l.label.x = p)
      }
    }
  }
  function vT(t, e, n) {
    if (null == t.labelStyleWidth) {
      var i = t.label,
        r = i.style,
        o = t.rect,
        a = r.backgroundColor,
        s = r.padding,
        l = s ? s[1] + s[3] : 0,
        u = r.overflow,
        c = o.width + (a ? 0 : l)
      if (e < c || n) {
        if (u && u.match('break')) {
          i.setStyle('backgroundColor', null), i.setStyle('width', e - l)
          var h = i.getBoundingRect()
          i.setStyle('width', Math.ceil(h.width)), i.setStyle('backgroundColor', a)
        } else {
          var d = e - l,
            p = e < c ? d : n ? (d > t.unconstrainedWidth ? null : d) : null
          i.setStyle('width', p)
        }
        mT(o, i)
      }
    }
  }
  function mT(t, e) {
    ;(_T.rect = t), mS(_T, e, xT)
  }
  var xT = { minMarginForce: [null, 0, null, 0], marginDefault: [1, 0, 1, 0] },
    _T = {}
  function bT(t) {
    return 'center' === t.position
  }
  function wT(t) {
    var e,
      n,
      i = t.getData(),
      r = [],
      o = !1,
      a = (t.get('minShowLabelAngle') || 0) * gT,
      s = i.getLayout('viewRect'),
      l = i.getLayout('r'),
      u = s.width,
      c = s.x,
      h = s.y,
      d = s.height
    function p(t) {
      t.ignore = !0
    }
    i.each(function (t) {
      var s = i.getItemGraphicEl(t),
        h = s.shape,
        f = s.getTextContent(),
        g = s.getTextGuideLine(),
        y = i.getItemModel(t),
        v = y.getModel('label'),
        m = v.get('position') || y.get(['emphasis', 'label', 'position']),
        x = v.get('distanceToLabelLine'),
        _ = v.get('alignTo'),
        b = yo(v.get('edgeDistance'), u),
        w = v.get('bleedMargin')
      null == w && (w = Math.min(u, d) > 200 ? 10 : 2)
      var S = y.getModel('labelLine'),
        M = S.get('length')
      M = yo(M, u)
      var I = S.get('length2')
      if (((I = yo(I, u)), Math.abs(h.endAngle - h.startAngle) < a)) return z(f.states, p), (f.ignore = !0), void (g && (z(g.states, p), (g.ignore = !0)))
      if (
        (function (t) {
          if (!t.ignore) return !0
          for (var e in t.states) if (!1 === t.states[e].ignore) return !0
          return !1
        })(f)
      ) {
        var T,
          C,
          D,
          A,
          k = (h.startAngle + h.endAngle) / 2,
          L = Math.cos(k),
          P = Math.sin(k)
        ;(e = h.cx), (n = h.cy)
        var O = 'inside' === m || 'inner' === m
        if ('center' === m) (T = h.cx), (C = h.cy), (A = 'center')
        else {
          var R = (O ? ((h.r + h.r0) / 2) * L : h.r * L) + e,
            N = (O ? ((h.r + h.r0) / 2) * P : h.r * P) + n
          if (((T = R + 3 * L), (C = N + 3 * P), !O)) {
            var E = R + L * (M + l - h.r),
              B = N + P * (M + l - h.r),
              V = E + (L < 0 ? -1 : 1) * I
            ;(T = 'edge' === _ ? (L < 0 ? c + b : c + u - b) : V + (L < 0 ? -x : x)),
              (C = B),
              (D = [
                [R, N],
                [E, B],
                [V, B]
              ])
          }
          A = O ? 'center' : 'edge' === _ ? (L > 0 ? 'right' : 'left') : L > 0 ? 'left' : 'right'
        }
        var G = Math.PI,
          F = 0,
          W = v.get('rotate')
        if (j(W)) F = W * (G / 180)
        else if ('center' === m) F = 0
        else if ('radial' === W || !0 === W) {
          F = L < 0 ? -k + G : -k
        } else if ('tangential' === W && 'outside' !== m && 'outer' !== m) {
          var H = Math.atan2(L, P)
          H < 0 && (H = 2 * G + H), P > 0 && (H = G + H), (F = H - G)
        }
        if (((o = !!F), (f.x = T), (f.y = C), (f.rotation = F), f.setStyle({ verticalAlign: 'middle' }), O)) {
          f.setStyle({ align: A })
          var U = f.states.select
          U && ((U.x += f.x), (U.y += f.y))
        } else {
          var Y = new He(0, 0, 0, 0)
          mT(Y, f),
            r.push({
              label: f,
              labelLine: g,
              position: m,
              len: M,
              len2: I,
              minTurnAngle: S.get('minTurnAngle'),
              maxSurfaceAngle: S.get('maxSurfaceAngle'),
              surfaceNormal: new Ae(L, P),
              linePoints: D,
              textAlign: A,
              labelDistance: x,
              labelAlignTo: _,
              edgeDistance: b,
              bleedMargin: w,
              rect: Y,
              unconstrainedWidth: Y.width,
              labelStyleWidth: f.style.width
            })
        }
        s.setTextConfig({ inside: O })
      }
    }),
      !o &&
        t.get('avoidLabelOverlap') &&
        (function (t, e, n, i, r, o, a, s) {
          for (var l = [], u = [], c = Number.MAX_VALUE, h = -Number.MAX_VALUE, d = 0; d < t.length; d++) {
            var p = t[d].label
            bT(t[d]) || (p.x < e ? ((c = Math.min(c, p.x)), l.push(t[d])) : ((h = Math.max(h, p.x)), u.push(t[d])))
          }
          for (d = 0; d < t.length; d++)
            if (!bT((y = t[d])) && y.linePoints) {
              if (null != y.labelStyleWidth) continue
              p = y.label
              var f = y.linePoints,
                g = void 0
              ;(g =
                'edge' === y.labelAlignTo
                  ? p.x < e
                    ? f[2][0] - y.labelDistance - a - y.edgeDistance
                    : a + r - y.edgeDistance - f[2][0] - y.labelDistance
                  : 'labelLine' === y.labelAlignTo
                    ? p.x < e
                      ? c - a - y.bleedMargin
                      : a + r - h - y.bleedMargin
                    : p.x < e
                      ? p.x - a - y.bleedMargin
                      : a + r - p.x - y.bleedMargin),
                (y.targetTextWidth = g),
                vT(y, g, !1)
            }
          for (yT(u, e, n, i, 1, 0, o, 0, s, h), yT(l, e, n, i, -1, 0, o, 0, s, c), d = 0; d < t.length; d++) {
            var y
            if (!bT((y = t[d])) && y.linePoints) {
              ;(p = y.label), (f = y.linePoints)
              var v = 'edge' === y.labelAlignTo,
                m = p.style.padding,
                x = m ? m[1] + m[3] : 0,
                _ = p.style.backgroundColor ? 0 : x,
                b = y.rect.width + _,
                w = f[1][0] - f[2][0]
              v
                ? p.x < e
                  ? (f[2][0] = a + y.edgeDistance + b + y.labelDistance)
                  : (f[2][0] = a + r - y.edgeDistance - b - y.labelDistance)
                : (p.x < e ? (f[2][0] = p.x + y.labelDistance) : (f[2][0] = p.x - y.labelDistance), (f[1][0] = f[2][0] + w)),
                (f[1][1] = f[2][1] = p.y)
            }
          }
        })(r, e, n, l, u, d, c, h)
    for (var f = 0; f < r.length; f++) {
      var g = r[f],
        y = g.label,
        v = g.labelLine,
        m = isNaN(y.x) || isNaN(y.y)
      if (y) {
        y.setStyle({ align: g.textAlign }), m && (z(y.states, p), (y.ignore = !0))
        var x = y.states.select
        x && ((x.x += y.x), (x.y += y.y))
      }
      if (v) {
        var _ = g.linePoints
        m || !_
          ? (z(v.states, p), (v.ignore = !0))
          : (lS(_, g.minTurnAngle),
            uS(_, g.surfaceNormal, g.maxSurfaceAngle),
            v.setShape({ points: _ }),
            (y.__hostTarget.textGuideLineConfig = { anchor: new Ae(_[0][0], _[0][1]) }))
      }
    }
  }
  var ST = (function (t) {
      function e(e, n, i) {
        var r = t.call(this) || this
        r.z2 = 2
        var o = new Sl()
        return r.setTextContent(o), r.updateData(e, n, i, !0), r
      }
      return (
        n(e, t),
        (e.prototype.updateData = function (t, e, n, i) {
          var r = this,
            o = t.hostModel,
            a = t.getItemModel(e),
            s = a.getModel('emphasis'),
            l = t.getItemLayout(e),
            u = A(YI(a.getModel('itemStyle'), l, !0), l)
          if (isNaN(u.startAngle)) r.setShape(u)
          else {
            if (i) {
              r.setShape(u)
              var c = o.getShallow('animationType')
              o.ecModel.ssr
                ? (eh(r, { scaleX: 0, scaleY: 0 }, o, { dataIndex: e, isFrom: !0 }), (r.originX = u.cx), (r.originY = u.cy))
                : 'scale' === c
                  ? ((r.shape.r = l.r0), eh(r, { shape: { r: l.r } }, o, e))
                  : null != n
                    ? (r.setShape({ startAngle: n, endAngle: n }), eh(r, { shape: { startAngle: l.startAngle, endAngle: l.endAngle } }, o, e))
                    : ((r.shape.endAngle = l.startAngle), th(r, { shape: { endAngle: l.endAngle } }, o, e))
            } else ah(r), th(r, { shape: u }, o, e)
            r.useStyle(t.getItemVisual(e, 'style')), ku(r, a)
            var h = (l.startAngle + l.endAngle) / 2,
              d = o.get('selectedOffset'),
              p = Math.cos(h) * d,
              f = Math.sin(h) * d,
              g = a.getShallow('cursor')
            g && r.attr('cursor', g),
              this._updateLabel(o, t, e),
              (r.ensureState('emphasis').shape = A({ r: l.r + ((s.get('scale') && s.get('scaleSize')) || 0) }, YI(s.getModel('itemStyle'), l))),
              A(r.ensureState('select'), { x: p, y: f, shape: YI(a.getModel(['select', 'itemStyle']), l) }),
              A(r.ensureState('blur'), { shape: YI(a.getModel(['blur', 'itemStyle']), l) })
            var y = r.getTextGuideLine(),
              v = r.getTextContent()
            y && A(y.ensureState('select'), { x: p, y: f }), A(v.ensureState('select'), { x: p, y: f }), Tu(this, s.get('focus'), s.get('blurScope'), s.get('disabled'))
          }
        }),
        (e.prototype._updateLabel = function (t, e, n) {
          var i = this,
            r = e.getItemModel(n),
            o = r.getModel('labelLine'),
            a = e.getItemVisual(n, 'style'),
            s = a && a.fill,
            l = a && a.opacity
          $h(i, Jh(r), { labelFetcher: e.hostModel, labelDataIndex: n, inheritColor: s, defaultOpacity: l, defaultText: t.getFormattedLabel(n, 'normal') || e.getName(n) })
          var u = i.getTextContent()
          i.setTextConfig({ position: null, rotation: null }), u.attr({ z2: 10 })
          var c = r.get(['label', 'position'])
          if ('outside' !== c && 'outer' !== c) i.removeTextGuideLine()
          else {
            var h = this.getTextGuideLine()
            h || ((h = new Tc()), this.setTextGuideLine(h)), dS(this, pS(r), { stroke: s, opacity: ot(o.get(['lineStyle', 'opacity']), l, 1) })
          }
        }),
        e
      )
    })(xc),
    MT = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.ignoreLabelLineUpdate = !0), e
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n, i) {
          var r,
            o = t.getData(),
            a = this._data,
            s = this.group
          if (!a && o.count() > 0) {
            for (var l = o.getItemLayout(0), u = 1; isNaN(l && l.startAngle) && u < o.count(); ++u) l = o.getItemLayout(u)
            l && (r = l.startAngle)
          }
          if ((this._emptyCircleSector && s.remove(this._emptyCircleSector), 0 === o.count() && t.get('showEmptyCircle'))) {
            var c = pT(t),
              h = new xc({ shape: T(c) })
            h.useStyle(t.getModel('emptyCircleStyle').getItemStyle()), (this._emptyCircleSector = h), s.add(h)
          }
          o
            .diff(a)
            .add(function (t) {
              var e = new ST(o, t, r)
              o.setItemGraphicEl(t, e), s.add(e)
            })
            .update(function (t, e) {
              var n = a.getItemGraphicEl(e)
              n.updateData(o, t, r), n.off('click'), s.add(n), o.setItemGraphicEl(t, n)
            })
            .remove(function (e) {
              oh(a.getItemGraphicEl(e), t, e)
            })
            .execute(),
            wT(t),
            'expansion' !== t.get('animationTypeUpdate') && (this._data = o)
        }),
        (e.prototype.dispose = function () {}),
        (e.prototype.containPoint = function (t, e) {
          var n = e.getData().getItemLayout(0)
          if (n) {
            var i = t[0] - n.cx,
              r = t[1] - n.cy,
              o = Math.sqrt(i * i + r * r)
            return o <= n.r && o >= n.r0
          }
        }),
        (e.type = 'pie'),
        e
      )
    })(tv)
  function IT(t, e, n) {
    e = (U(e) && { coordDimensions: e }) || A({ encodeDefine: t.getEncode() }, e)
    var i = t.getSource(),
      r = V_(i, e).dimensions,
      o = new B_(r, t)
    return o.initData(i, n), o
  }
  var TT,
    CT = (function () {
      function t(t, e) {
        ;(this._getDataWithEncodedVisual = t), (this._getRawData = e)
      }
      return (
        (t.prototype.getAllNames = function () {
          var t = this._getRawData()
          return t.mapArray(t.getName)
        }),
        (t.prototype.containName = function (t) {
          return this._getRawData().indexOfName(t) >= 0
        }),
        (t.prototype.indexOfName = function (t) {
          return this._getDataWithEncodedVisual().indexOfName(t)
        }),
        (t.prototype.getItemVisual = function (t, e) {
          return this._getDataWithEncodedVisual().getItemVisual(t, e)
        }),
        t
      )
    })(),
    DT = sa(),
    AT = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.init = function (e) {
          t.prototype.init.apply(this, arguments), (this.legendVisualProvider = new CT(W(this.getData, this), W(this.getRawData, this))), this._defaultLabelLine(e)
        }),
        (e.prototype.mergeOption = function () {
          t.prototype.mergeOption.apply(this, arguments)
        }),
        (e.prototype.getInitialData = function () {
          return IT(this, { coordDimensions: ['value'], encodeDefaulter: H(Mf, this) })
        }),
        (e.prototype.getDataParams = function (e) {
          var n = this.getData(),
            i = DT(n),
            r = i.seats
          if (!r) {
            var o = []
            n.each(n.mapDimension('value'), function (t) {
              o.push(t)
            }),
              (r = i.seats = So(o, n.hostModel.get('percentPrecision')))
          }
          var a = t.prototype.getDataParams.call(this, e)
          return (a.percent = r[e] || 0), a.$vars.push('percent'), a
        }),
        (e.prototype._defaultLabelLine = function (t) {
          Ko(t, 'labelLine', ['show'])
          var e = t.labelLine,
            n = t.emphasis.labelLine
          ;(e.show = e.show && t.label.show), (n.show = n.show && t.emphasis.label.show)
        }),
        (e.type = 'series.pie'),
        (e.defaultOption = {
          z: 2,
          legendHoverLink: !0,
          colorBy: 'data',
          center: ['50%', '50%'],
          radius: [0, '50%'],
          clockwise: !0,
          startAngle: 90,
          endAngle: 'auto',
          padAngle: 0,
          minAngle: 0,
          minShowLabelAngle: 0,
          selectedOffset: 10,
          percentPrecision: 2,
          stillShowZeroSum: !0,
          coordinateSystemUsage: 'box',
          left: 0,
          top: 0,
          right: 0,
          bottom: 0,
          width: null,
          height: null,
          label: { rotate: 0, show: !0, overflow: 'truncate', position: 'outer', alignTo: 'none', edgeDistance: '25%', distanceToLabelLine: 5 },
          labelLine: { show: !0, length: 15, length2: 30, smooth: !1, minTurnAngle: 90, maxSurfaceAngle: 90, lineStyle: { width: 1, type: 'solid' } },
          itemStyle: { borderWidth: 1, borderJoin: 'round' },
          showEmptyCircle: !0,
          emptyCircleStyle: { color: 'lightgray', opacity: 1 },
          labelLayout: { hideOverlap: !0 },
          emphasis: { scale: !0, scaleSize: 5 },
          avoidLabelOverlap: !0,
          animationType: 'expansion',
          animationDuration: 1e3,
          animationTypeUpdate: 'transition',
          animationEasingUpdate: 'cubicInOut',
          animationDurationUpdate: 500,
          animationEasing: 'cubicInOut'
        }),
        e
      )
    })(Wy)
  ;(TT = {
    fullType: AT.type,
    getCoord2: function (t) {
      return t.getShallow('center')
    }
  }),
    (Ap.set(TT.fullType, { getCoord2: void 0 }).getCoord2 = TT.getCoord2)
  var kT = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.hasSymbolVisual = !0), n
      }
      return (
        n(e, t),
        (e.prototype.getInitialData = function (t, e) {
          return Z_(null, this, { useEncodeDefaulter: !0 })
        }),
        (e.prototype.getProgressive = function () {
          var t = this.option.progressive
          return null == t ? (this.option.large ? 5e3 : this.get('progressive')) : t
        }),
        (e.prototype.getProgressiveThreshold = function () {
          var t = this.option.progressiveThreshold
          return null == t ? (this.option.large ? 1e4 : this.get('progressiveThreshold')) : t
        }),
        (e.prototype.brushSelector = function (t, e, n) {
          return n.point(e.getItemLayout(t))
        }),
        (e.prototype.getZLevelKey = function () {
          return this.getData().count() > this.getProgressiveThreshold() ? this.id : ''
        }),
        (e.type = 'series.scatter'),
        (e.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar', 'matrix']),
        (e.defaultOption = {
          coordinateSystem: 'cartesian2d',
          z: 2,
          legendHoverLink: !0,
          symbolSize: 10,
          large: !1,
          largeThreshold: 2e3,
          itemStyle: { opacity: 0.8 },
          emphasis: { scale: !0 },
          clip: !0,
          select: { itemStyle: { borderColor: tf.color.primary } },
          universalTransition: { divideShape: 'clone' }
        }),
        e
      )
    })(Wy),
    LT = function () {},
    PT = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n._off = 0), (n.hoverDataIdx = -1), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new LT()
        }),
        (e.prototype.reset = function () {
          ;(this.notClear = !1), (this._off = 0)
        }),
        (e.prototype.buildPath = function (t, e) {
          var n,
            i = e.points,
            r = e.size,
            o = this.symbolProxy,
            a = o.shape,
            s = t.getContext ? t.getContext() : t,
            l = s && r[0] < 4,
            u = this.softClipShape
          if (l) this._ctx = s
          else {
            for (this._ctx = null, n = this._off; n < i.length; ) {
              var c = i[n++],
                h = i[n++]
              isNaN(c) || isNaN(h) || (u && !u.contain(c, h)) || ((a.x = c - r[0] / 2), (a.y = h - r[1] / 2), (a.width = r[0]), (a.height = r[1]), o.buildPath(t, a, !0))
            }
            this.incremental && ((this._off = n), (this.notClear = !0))
          }
        }),
        (e.prototype.afterBrush = function () {
          var t,
            e = this.shape,
            n = e.points,
            i = e.size,
            r = this._ctx,
            o = this.softClipShape
          if (r) {
            for (t = this._off; t < n.length; ) {
              var a = n[t++],
                s = n[t++]
              isNaN(a) || isNaN(s) || (o && !o.contain(a, s)) || r.fillRect(a - i[0] / 2, s - i[1] / 2, i[0], i[1])
            }
            this.incremental && ((this._off = t), (this.notClear = !0))
          }
        }),
        (e.prototype.findDataIndex = function (t, e) {
          for (var n = this.shape, i = n.points, r = n.size, o = Math.max(r[0], 4), a = Math.max(r[1], 4), s = i.length / 2 - 1; s >= 0; s--) {
            var l = 2 * s,
              u = i[l] - o / 2,
              c = i[l + 1] - a / 2
            if (t >= u && e >= c && t <= u + o && e <= c + a) return s
          }
          return -1
        }),
        (e.prototype.contain = function (t, e) {
          var n = this.transformCoordToLocal(t, e),
            i = this.getBoundingRect()
          return (t = n[0]), (e = n[1]), i.contain(t, e) ? (this.hoverDataIdx = this.findDataIndex(t, e)) >= 0 : ((this.hoverDataIdx = -1), !1)
        }),
        (e.prototype.getBoundingRect = function () {
          var t = this._rect
          if (!t) {
            for (var e = this.shape, n = e.points, i = e.size, r = i[0], o = i[1], a = 1 / 0, s = 1 / 0, l = -1 / 0, u = -1 / 0, c = 0; c < n.length; ) {
              var h = n[c++],
                d = n[c++]
              ;(a = Math.min(h, a)), (l = Math.max(h, l)), (s = Math.min(d, s)), (u = Math.max(d, u))
            }
            t = this._rect = new He(a - r / 2, s - o / 2, l - a + r, u - s + o)
          }
          return t
        }),
        e
      )
    })(sl),
    OT = (function () {
      function t() {
        this.group = new to()
      }
      return (
        (t.prototype.updateData = function (t, e) {
          this._clear()
          var n = this._create()
          n.setShape({ points: t.getLayout('points') }), this._setCommon(n, t, e)
        }),
        (t.prototype.updateLayout = function (t) {
          var e = t.getLayout('points')
          this.group.eachChild(function (t) {
            if (null != t.startIndex) {
              var n = 2 * (t.endIndex - t.startIndex),
                i = 4 * t.startIndex * 2
              e = new Float32Array(e.buffer, i, n)
            }
            t.setShape('points', e), t.reset()
          })
        }),
        (t.prototype.incrementalPrepareUpdate = function (t) {
          this._clear()
        }),
        (t.prototype.incrementalUpdate = function (t, e, n) {
          var i = this._newAdded[0],
            r = e.getLayout('points'),
            o = i && i.shape.points
          if (o && o.length < 2e4) {
            var a = o.length,
              s = new Float32Array(a + r.length)
            s.set(o), s.set(r, a), (i.endIndex = t.end), i.setShape({ points: s })
          } else {
            this._newAdded = []
            var l = this._create()
            ;(l.startIndex = t.start), (l.endIndex = t.end), (l.incremental = !0), l.setShape({ points: r }), this._setCommon(l, e, n)
          }
        }),
        (t.prototype.eachRendered = function (t) {
          this._newAdded[0] && t(this._newAdded[0])
        }),
        (t.prototype._create = function () {
          var t = new PT({ cursor: 'default' })
          return (t.ignoreCoarsePointer = !0), this.group.add(t), this._newAdded.push(t), t
        }),
        (t.prototype._setCommon = function (t, e, n) {
          var i = e.hostModel
          n = n || {}
          var r = e.getVisual('symbolSize')
          t.setShape('size', r instanceof Array ? r : [r, r]),
            (t.softClipShape = n.clipShape || null),
            (t.symbolProxy = hm(e.getVisual('symbol'), 0, 0, 0, 0)),
            (t.setColor = t.symbolProxy.setColor)
          var o = t.shape.size[0] < 4
          t.useStyle(i.getModel('itemStyle').getItemStyle(o ? ['color', 'shadowBlur', 'shadowColor'] : ['color']))
          var a = e.getVisual('style'),
            s = a && a.fill
          s && t.setColor(s)
          var l = zl(t)
          ;(l.seriesIndex = i.seriesIndex),
            t.on('mousemove', function (e) {
              l.dataIndex = null
              var n = t.hoverDataIdx
              n >= 0 && (l.dataIndex = n + (t.startIndex || 0))
            })
        }),
        (t.prototype.remove = function () {
          this._clear()
        }),
        (t.prototype._clear = function () {
          ;(this._newAdded = []), this.group.removeAll()
        }),
        t
      )
    })(),
    RT = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          var i = t.getData()
          this._updateSymbolDraw(i, t).updateData(i, { clipShape: this._getClipShape(t) }), (this._finished = !0)
        }),
        (e.prototype.incrementalPrepareRender = function (t, e, n) {
          var i = t.getData()
          this._updateSymbolDraw(i, t).incrementalPrepareUpdate(i), (this._finished = !1)
        }),
        (e.prototype.incrementalRender = function (t, e, n) {
          this._symbolDraw.incrementalUpdate(t, e.getData(), { clipShape: this._getClipShape(e) }), (this._finished = t.end === e.getData().count())
        }),
        (e.prototype.updateTransform = function (t, e, n) {
          var i = t.getData()
          if ((this.group.dirty(), !this._finished || i.count() > 1e4)) return { update: !0 }
          var r = NI('').reset(t, e, n)
          r.progress && r.progress({ start: 0, end: i.count(), count: i.count() }, i), this._symbolDraw.updateLayout(i)
        }),
        (e.prototype.eachRendered = function (t) {
          this._symbolDraw && this._symbolDraw.eachRendered(t)
        }),
        (e.prototype._getClipShape = function (t) {
          if (t.get('clip', !0)) {
            var e = t.coordinateSystem
            return e && e.getArea && e.getArea(0.1)
          }
        }),
        (e.prototype._updateSymbolDraw = function (t, e) {
          var n = this._symbolDraw,
            i = e.pipelineContext.large
          return (
            (n && i === this._isLargeDraw) || (n && n.remove(), (n = this._symbolDraw = i ? new OT() : new uI()), (this._isLargeDraw = i), this.group.removeAll()),
            this.group.add(n.group),
            n
          )
        }),
        (e.prototype.remove = function (t, e) {
          this._symbolDraw && this._symbolDraw.remove(!0), (this._symbolDraw = null)
        }),
        (e.prototype.dispose = function () {}),
        (e.type = 'scatter'),
        e
      )
    })(tv),
    NT = { left: 0, right: 0, top: 0, bottom: 0 },
    zT = ['25%', '25%'],
    ET = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.mergeDefaultAndTheme = function (e, n) {
          var i = Kp(e.outerBounds)
          t.prototype.mergeDefaultAndTheme.apply(this, arguments), i && e.outerBounds && qp(e.outerBounds, i)
        }),
        (e.prototype.mergeOption = function (e, n) {
          t.prototype.mergeOption.apply(this, arguments), this.option.outerBounds && e.outerBounds && qp(this.option.outerBounds, e.outerBounds)
        }),
        (e.type = 'grid'),
        (e.dependencies = ['xAxis', 'yAxis']),
        (e.layoutMode = 'box'),
        (e.defaultOption = {
          show: !1,
          z: 0,
          left: '15%',
          top: 65,
          right: '10%',
          bottom: 80,
          containLabel: !1,
          outerBoundsMode: 'auto',
          outerBounds: NT,
          outerBoundsContain: 'all',
          outerBoundsClampWidth: zT[0],
          outerBoundsClampHeight: zT[1],
          backgroundColor: tf.color.transparent,
          borderWidth: 1,
          borderColor: tf.color.neutral30
        }),
        e
      )
    })(Qp),
    BT = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.getCoordSysModel = function () {
          return this.getReferringComponents('grid', ha).models[0]
        }),
        (e.type = 'cartesian2dAxis'),
        e
      )
    })(Qp)
  R(BT, nw)
  var VT = {
      show: !0,
      z: 0,
      inverse: !1,
      name: '',
      nameLocation: 'end',
      nameRotate: null,
      nameTruncate: { maxWidth: null, ellipsis: '...', placeholder: '.' },
      nameTextStyle: {},
      nameGap: 15,
      silent: !1,
      triggerEvent: !1,
      tooltip: { show: !1 },
      axisPointer: {},
      axisLine: {
        show: !0,
        onZero: !0,
        onZeroAxisIndex: null,
        lineStyle: { color: tf.color.axisLine, width: 1, type: 'solid' },
        symbol: ['none', 'none'],
        symbolSize: [10, 15],
        breakLine: !0
      },
      axisTick: { show: !0, inside: !1, length: 5, lineStyle: { width: 1 } },
      axisLabel: { show: !0, inside: !1, rotate: 0, showMinLabel: null, showMaxLabel: null, margin: 8, fontSize: 12, color: tf.color.axisLabel, textMargin: [0, 3] },
      splitLine: { show: !0, showMinLine: !0, showMaxLine: !0, lineStyle: { color: tf.color.axisSplitLine, width: 1, type: 'solid' } },
      splitArea: { show: !1, areaStyle: { color: [tf.color.backgroundTint, tf.color.backgroundTransparent] } },
      breakArea: {
        show: !0,
        itemStyle: { color: tf.color.neutral00, borderColor: tf.color.border, borderWidth: 1, borderType: [3, 3], opacity: 0.6 },
        zigzagAmplitude: 4,
        zigzagMinSpan: 4,
        zigzagMaxSpan: 20,
        zigzagZ: 100,
        expandOnClick: !0
      },
      breakLabelLayout: { moveOverlap: 'auto' }
    },
    GT = C(
      {
        boundaryGap: !0,
        deduplication: null,
        jitter: 0,
        jitterOverlap: !0,
        jitterMargin: 2,
        splitLine: { show: !1 },
        axisTick: { alignWithLabel: !1, interval: 'auto', show: 'auto' },
        axisLabel: { interval: 'auto' }
      },
      VT
    ),
    FT = C(
      {
        boundaryGap: [0, 0],
        axisLine: { show: 'auto' },
        axisTick: { show: 'auto' },
        splitNumber: 5,
        minorTick: { show: !1, splitNumber: 5, length: 3, lineStyle: {} },
        minorSplitLine: { show: !1, lineStyle: { color: tf.color.axisMinorSplitLine, width: 1 } }
      },
      VT
    ),
    WT = {
      category: GT,
      value: FT,
      time: C({ splitNumber: 6, axisLabel: { showMinLabel: !1, showMaxLabel: !1, rich: { primary: { fontWeight: 'bold' } } }, splitLine: { show: !1 } }, FT),
      log: k({ logBase: 10 }, FT)
    },
    HT = { value: 1, category: 1, time: 1, log: 1 },
    UT = null
  function YT() {
    return UT
  }
  function XT(t, e, i, r) {
    z(HT, function (o, a) {
      var s = C(C({}, WT[a], !0), r, !0),
        l = (function (t) {
          function i() {
            var n = (null !== t && t.apply(this, arguments)) || this
            return (n.type = e + 'Axis.' + a), n
          }
          return (
            n(i, t),
            (i.prototype.mergeDefaultAndTheme = function (t, e) {
              var n = jp(this),
                i = n ? Kp(t) : {}
              C(t, e.getTheme().get(a + 'Axis')), C(t, this.getDefaultOption()), (t.type = ZT(t)), n && qp(t, i, n)
            }),
            (i.prototype.optionUpdated = function () {
              'category' === this.option.type && (this.__ordinalMeta = ab.createByAxisModel(this))
            }),
            (i.prototype.getCategories = function (t) {
              var e = this.option
              if ('category' === e.type) return t ? e.data : this.__ordinalMeta.categories
            }),
            (i.prototype.getOrdinalMeta = function () {
              return this.__ordinalMeta
            }),
            (i.prototype.updateAxisBreaks = function (t) {
              var e = YT()
              return e ? e.updateModelAxisBreak(this, t) : { breaks: [] }
            }),
            (i.type = e + 'Axis.' + a),
            (i.defaultOption = s),
            i
          )
        })(i)
      t.registerComponentModel(l)
    }),
      t.registerSubTypeDefaulter(e + 'Axis', ZT)
  }
  function ZT(t) {
    return t.type || (t.data ? 'category' : 'value')
  }
  var jT = (function () {
      function t(t) {
        ;(this.type = 'cartesian'), (this._dimList = []), (this._axes = {}), (this.name = t || '')
      }
      return (
        (t.prototype.getAxis = function (t) {
          return this._axes[t]
        }),
        (t.prototype.getAxes = function () {
          return E(
            this._dimList,
            function (t) {
              return this._axes[t]
            },
            this
          )
        }),
        (t.prototype.getAxesByScale = function (t) {
          return (
            (t = t.toLowerCase()),
            V(this.getAxes(), function (e) {
              return e.scale.type === t
            })
          )
        }),
        (t.prototype.addAxis = function (t) {
          var e = t.dim
          ;(this._axes[e] = t), this._dimList.push(e)
        }),
        t
      )
    })(),
    qT = ['x', 'y']
  function KT(t) {
    return ('interval' === t.type || 'time' === t.type) && !t.hasBreaks()
  }
  var $T = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.type = 'cartesian2d'), (e.dimensions = qT), e
      }
      return (
        n(e, t),
        (e.prototype.calcAffineTransform = function () {
          this._transform = this._invTransform = null
          var t = this.getAxis('x').scale,
            e = this.getAxis('y').scale
          if (KT(t) && KT(e)) {
            var n = t.getExtent(),
              i = e.getExtent(),
              r = this.dataToPoint([n[0], i[0]]),
              o = this.dataToPoint([n[1], i[1]]),
              a = n[1] - n[0],
              s = i[1] - i[0]
            if (a && s) {
              var l = (o[0] - r[0]) / a,
                u = (o[1] - r[1]) / s,
                c = r[0] - n[0] * l,
                h = r[1] - i[0] * u,
                d = (this._transform = [l, 0, 0, u, c, h])
              this._invTransform = Te([], d)
            }
          }
        }),
        (e.prototype.getBaseAxis = function () {
          return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x')
        }),
        (e.prototype.containPoint = function (t) {
          var e = this.getAxis('x'),
            n = this.getAxis('y')
          return e.contain(e.toLocalCoord(t[0])) && n.contain(n.toLocalCoord(t[1]))
        }),
        (e.prototype.containData = function (t) {
          return this.getAxis('x').containData(t[0]) && this.getAxis('y').containData(t[1])
        }),
        (e.prototype.containZone = function (t, e) {
          var n = this.dataToPoint(t),
            i = this.dataToPoint(e),
            r = this.getArea(),
            o = new He(n[0], n[1], i[0] - n[0], i[1] - n[1])
          return r.intersect(o)
        }),
        (e.prototype.dataToPoint = function (t, e, n) {
          n = n || []
          var i = t[0],
            r = t[1]
          if (this._transform && null != i && isFinite(i) && null != r && isFinite(r)) return Ht(n, t, this._transform)
          var o = this.getAxis('x'),
            a = this.getAxis('y')
          return (n[0] = o.toGlobalCoord(o.dataToCoord(i, e))), (n[1] = a.toGlobalCoord(a.dataToCoord(r, e))), n
        }),
        (e.prototype.clampData = function (t, e) {
          var n = this.getAxis('x').scale,
            i = this.getAxis('y').scale,
            r = n.getExtent(),
            o = i.getExtent(),
            a = n.parse(t[0]),
            s = i.parse(t[1])
          return (
            ((e = e || [])[0] = Math.min(Math.max(Math.min(r[0], r[1]), a), Math.max(r[0], r[1]))), (e[1] = Math.min(Math.max(Math.min(o[0], o[1]), s), Math.max(o[0], o[1]))), e
          )
        }),
        (e.prototype.pointToData = function (t, e, n) {
          if (((n = n || []), this._invTransform)) return Ht(n, t, this._invTransform)
          var i = this.getAxis('x'),
            r = this.getAxis('y')
          return (n[0] = i.coordToData(i.toLocalCoord(t[0]), e)), (n[1] = r.coordToData(r.toLocalCoord(t[1]), e)), n
        }),
        (e.prototype.getOtherAxis = function (t) {
          return this.getAxis('x' === t.dim ? 'y' : 'x')
        }),
        (e.prototype.getArea = function (t) {
          t = t || 0
          var e = this.getAxis('x').getGlobalExtent(),
            n = this.getAxis('y').getGlobalExtent(),
            i = Math.min(e[0], e[1]) - t,
            r = Math.min(n[0], n[1]) - t,
            o = Math.max(e[0], e[1]) - i + t,
            a = Math.max(n[0], n[1]) - r + t
          return new He(i, r, o, a)
        }),
        e
      )
    })(jT),
    JT = (function (t) {
      function e(e, n, i, r, o) {
        var a = t.call(this, e, n, i) || this
        return (a.index = 0), (a.type = r || 'value'), (a.position = o || 'bottom'), a
      }
      return (
        n(e, t),
        (e.prototype.isHorizontal = function () {
          var t = this.position
          return 'top' === t || 'bottom' === t
        }),
        (e.prototype.getGlobalExtent = function (t) {
          var e = this.getExtent()
          return (e[0] = this.toGlobalCoord(e[0])), (e[1] = this.toGlobalCoord(e[1])), t && e[0] > e[1] && e.reverse(), e
        }),
        (e.prototype.pointToData = function (t, e) {
          return this.coordToData(this.toLocalCoord(t['x' === this.dim ? 0 : 1]), e)
        }),
        (e.prototype.setCategorySortInfo = function (t) {
          if ('category' !== this.type) return !1
          ;(this.model.option.categorySortInfo = t), this.scale.setSortInfo(t)
        }),
        e
      )
    })(Ww),
    QT = 'expandAxisBreak',
    tC = 'collapseAxisBreak',
    eC = 'toggleAxisBreak',
    nC = 'axisbreakchanged',
    iC = { type: QT, event: nC, update: 'update', refineEvent: aC },
    rC = { type: tC, event: nC, update: 'update', refineEvent: aC },
    oC = { type: eC, event: nC, update: 'update', refineEvent: aC }
  function aC(t, e, n, i) {
    var r = []
    return (
      z(t, function (t) {
        r = r.concat(t.eventBreaks)
      }),
      { eventContent: { breaks: r } }
    )
  }
  var sC = Math.PI,
    lC = [
      [1, 2, 1, 2],
      [5, 3, 5, 3],
      [8, 3, 8, 3]
    ],
    uC = [
      [0, 1, 0, 1],
      [0, 3, 0, 3],
      [0, 3, 0, 3]
    ],
    cC = sa(),
    hC = sa(),
    dC = (function () {
      function t(t) {
        ;(this.recordMap = {}), (this.resolveAxisNameOverlap = t)
      }
      return (
        (t.prototype.ensureRecord = function (t) {
          var e = t.axis.dim,
            n = t.componentIndex,
            i = this.recordMap,
            r = i[e] || (i[e] = [])
          return r[n] || (r[n] = { ready: {} })
        }),
        t
      )
    })()
  var pC = [1, 0, 0, 1, 0, 0],
    fC = new He(0, 0, 0, 0),
    gC = function (t, e, n, i, r, o) {
      if (Qb(t.nameLocation)) {
        var a = o.stOccupiedRect
        a &&
          yC(
            (function (t, e, n) {
              return (
                (t.transform = Wh(t.transform, n)),
                (t.localRect = Fh(t.localRect, e)),
                (t.rect = Fh(t.rect, e)),
                n && t.rect.applyTransform(n),
                (t.axisAligned = Vh(n)),
                (t.obb = void 0),
                ((t.label = t.label || {}).ignore = !1),
                t
              )
            })({}, a, o.transGroup.transform),
            i,
            r
          )
      } else vC(o.labelInfoList, o.dirVec, i, r)
    }
  function yC(t, e, n) {
    var i = new Ae()
    IS(t, e, i, { direction: Math.atan2(n.y, n.x), bidirectional: !1, touchThreshold: 0.05 }) && _S(e, i)
  }
  function vC(t, e, n, i) {
    for (var r = Ae.dot(i, e) >= 0, o = 0, a = t.length; o < a; o++) {
      var s = t[r ? o : a - 1 - o]
      s.label.ignore || yC(s, n, i)
    }
  }
  var mC = (function () {
      function t(t, e, n, i) {
        ;(this.group = new to()), (this._axisModel = t), (this._api = e), (this._local = {}), (this._shared = i || new dC(gC)), this._resetCfgDetermined(n)
      }
      return (
        (t.prototype.updateCfg = function (t) {
          var e = this._cfg.raw
          ;(e.position = t.position), (e.labelOffset = t.labelOffset), this._resetCfgDetermined(e)
        }),
        (t.prototype.__getRawCfg = function () {
          return this._cfg.raw
        }),
        (t.prototype._resetCfgDetermined = function (t) {
          var e = this._axisModel,
            n = e.getDefaultOption ? e.getDefaultOption() : {},
            i = rt(t.axisName, e.get('name')),
            r = e.get('nameMoveOverlap')
          ;(null != r && 'auto' !== r) || (r = rt(t.defaultNameMoveOverlap, !0))
          var o = {
            raw: t,
            position: t.position,
            rotation: t.rotation,
            nameDirection: rt(t.nameDirection, 1),
            tickDirection: rt(t.tickDirection, 1),
            labelDirection: rt(t.labelDirection, 1),
            labelOffset: rt(t.labelOffset, 0),
            silent: rt(t.silent, !0),
            axisName: i,
            nameLocation: ot(e.get('nameLocation'), n.nameLocation, 'end'),
            shouldNameMoveOverlap: AC(i) && r,
            optionHideOverlap: e.get(['axisLabel', 'hideOverlap']),
            showMinorTicks: e.get(['minorTick', 'show'])
          }
          this._cfg = o
          var a = new to({ x: o.position[0], y: o.position[1], rotation: o.rotation })
          a.updateTransform(), (this._transformGroup = a)
          var s = this._shared.ensureRecord(e)
          ;(s.transGroup = this._transformGroup), (s.dirVec = new Ae(Math.cos(-o.rotation), Math.sin(-o.rotation)))
        }),
        (t.prototype.build = function (t, e) {
          var n = this
          return (
            t || (t = { axisLine: !0, axisTickLabelEstimate: !1, axisTickLabelDetermine: !0, axisName: !0 }),
            z(xC, function (i) {
              t[i] && _C[i](n._cfg, n._local, n._shared, n._axisModel, n.group, n._transformGroup, n._api, e || {})
            }),
            this
          )
        }),
        (t.innerTextLayout = function (t, e, n) {
          var i,
            r,
            o = To(e - t)
          return (
            Co(o)
              ? ((r = n > 0 ? 'top' : 'bottom'), (i = 'center'))
              : Co(o - sC)
                ? ((r = n > 0 ? 'bottom' : 'top'), (i = 'center'))
                : ((r = 'middle'), (i = o > 0 && o < sC ? (n > 0 ? 'right' : 'left') : n > 0 ? 'left' : 'right')),
            { rotation: o, textAlign: i, textVerticalAlign: r }
          )
        }),
        (t.makeAxisEventDataBase = function (t) {
          var e = { componentType: t.mainType, componentIndex: t.componentIndex }
          return (e[t.mainType + 'Index'] = t.componentIndex), e
        }),
        (t.isLabelSilent = function (t) {
          var e = t.get('tooltip')
          return t.get('silent') || !(t.get('triggerEvent') || (e && e.show))
        }),
        t
      )
    })(),
    xC = ['axisLine', 'axisTickLabelEstimate', 'axisTickLabelDetermine', 'axisName'],
    _C = {
      axisLine: function (t, e, n, i, r, o, a) {
        var s = i.get(['axisLine', 'show'])
        if (('auto' === s && ((s = !0), null != t.raw.axisLineAutoShow && (s = !!t.raw.axisLineAutoShow)), s)) {
          var l = i.axis.getExtent(),
            u = o.transform,
            c = [l[0], 0],
            h = [l[1], 0],
            d = c[0] > h[0]
          u && (Ht(c, c, u), Ht(h, h, u))
          var p = A({ lineCap: 'round' }, i.getModel(['axisLine', 'lineStyle']).getLineStyle()),
            f = { strokeContainThreshold: t.raw.strokeContainThreshold || 5, silent: !0, z2: 1, style: p }
          if (i.get(['axisLine', 'breakLine']) && i.axis.scale.hasBreaks()) YT().buildAxisBreakLine(i, r, o, f)
          else {
            var g = new Ac(A({ shape: { x1: c[0], y1: c[1], x2: h[0], y2: h[1] } }, f))
            _h(g.shape, g.style.lineWidth), (g.anid = 'line'), r.add(g)
          }
          var y = i.get(['axisLine', 'symbol'])
          if (null != y) {
            var v = i.get(['axisLine', 'symbolSize'])
            X(y) && (y = [y, y]), (X(v) || j(v)) && (v = [v, v])
            var m = pm(i.get(['axisLine', 'symbolOffset']) || 0, v),
              x = v[0],
              _ = v[1]
            z(
              [
                { rotate: t.rotation + Math.PI / 2, offset: m[0], r: 0 },
                { rotate: t.rotation - Math.PI / 2, offset: m[1], r: Math.sqrt((c[0] - h[0]) * (c[0] - h[0]) + (c[1] - h[1]) * (c[1] - h[1])) }
              ],
              function (e, n) {
                if ('none' !== y[n] && null != y[n]) {
                  var i = hm(y[n], -x / 2, -_ / 2, x, _, p.stroke, !0),
                    o = e.r + e.offset,
                    a = d ? h : c
                  i.attr({ rotation: e.rotate, x: a[0] + o * Math.cos(t.rotation), y: a[1] - o * Math.sin(t.rotation), silent: !0, z2: 11 }), r.add(i)
                }
              }
            )
          }
        }
      },
      axisTickLabelEstimate: function (t, e, n, i, r, o, a, s) {
        MC(e, r, s) && bC(t, e, n, i, r, o, a, Iw)
      },
      axisTickLabelDetermine: function (t, e, n, i, r, o, a, s) {
        MC(e, r, s) && bC(t, e, n, i, r, o, a, Tw)
        var l = (function (t, e, n, i) {
          var r = i.axis,
            o = i.getModel('axisTick'),
            a = o.get('show')
          'auto' === a && ((a = !0), null != t.raw.axisTickAutoShow && (a = !!t.raw.axisTickAutoShow))
          if (!a || r.scale.isBlank()) return []
          for (
            var s = o.getModel('lineStyle'),
              l = t.tickDirection * o.get('length'),
              u = SC(r.getTicksCoords(), n.transform, l, k(s.getLineStyle(), { stroke: i.get(['axisLine', 'lineStyle', 'color']) }), 'ticks'),
              c = 0;
            c < u.length;
            c++
          )
            e.add(u[c])
          return u
        })(t, r, o, i)
        !(function (t, e, n) {
          if (t.showMinorTicks) return
          z(e, function (t) {
            if (t && t.label.ignore)
              for (var e = 0; e < n.length; e++) {
                var i = n[e],
                  r = hC(i),
                  o = cC(t.label)
                if (null != r.tickValue && !r.onBand && r.tickValue === o.tickValue) return void wC(i)
              }
          })
        })(t, e.labelLayoutList, l),
          (function (t, e, n, i, r) {
            var o = i.axis,
              a = i.getModel('minorTick')
            if (!t.showMinorTicks || o.scale.isBlank()) return
            var s = o.getMinorTicksCoords()
            if (!s.length) return
            for (
              var l = a.getModel('lineStyle'),
                u = r * a.get('length'),
                c = k(l.getLineStyle(), k(i.getModel('axisTick').getLineStyle(), { stroke: i.get(['axisLine', 'lineStyle', 'color']) })),
                h = 0;
              h < s.length;
              h++
            )
              for (var d = SC(s[h], n.transform, u, c, 'minorticks_' + h), p = 0; p < d.length; p++) e.add(d[p])
          })(t, r, o, i, t.tickDirection)
      },
      axisName: function (t, e, n, i, r, o, a, s) {
        var l = n.ensureRecord(i)
        e.nameEl && (r.remove(e.nameEl), (e.nameEl = l.nameLayout = l.nameLocation = null))
        var u = t.axisName
        if (AC(u)) {
          var c = t.nameLocation,
            h = t.nameDirection,
            d = i.getModel('nameTextStyle'),
            p = i.get('nameGap') || 0,
            f = i.axis.getExtent(),
            g = i.axis.inverse ? -1 : 1,
            y = new Ae(0, 0),
            v = new Ae(0, 0)
          'start' === c
            ? ((y.x = f[0] - g * p), (v.x = -g))
            : 'end' === c
              ? ((y.x = f[1] + g * p), (v.x = g))
              : ((y.x = (f[0] + f[1]) / 2), (y.y = t.labelOffset + h * p), (v.y = h))
          var m = [1, 0, 0, 1, 0, 0]
          v.transform(Me(m, m, t.rotation))
          var x,
            _,
            b = i.get('nameRotate')
          null != b && (b = (b * sC) / 180),
            Qb(c)
              ? (x = mC.innerTextLayout(t.rotation, null != b ? b : t.rotation, h))
              : ((x = (function (t, e, n, i) {
                  var r,
                    o,
                    a = To(n - t),
                    s = i[0] > i[1],
                    l = ('start' === e && !s) || ('start' !== e && s)
                  Co(a - sC / 2)
                    ? ((o = l ? 'bottom' : 'top'), (r = 'center'))
                    : Co(a - 1.5 * sC)
                      ? ((o = l ? 'top' : 'bottom'), (r = 'center'))
                      : ((o = 'middle'), (r = a < 1.5 * sC && a > sC / 2 ? (l ? 'left' : 'right') : l ? 'right' : 'left'))
                  return { rotation: a, textAlign: r, textVerticalAlign: o }
                })(t.rotation, c, b || 0, f)),
                null != (_ = t.raw.axisNameAvailableWidth) && ((_ = Math.abs(_ / Math.sin(x.rotation))), !isFinite(_) && (_ = null)))
          var w = d.getFont(),
            S = i.get('nameTruncate', !0) || {},
            M = S.ellipsis,
            I = it(t.raw.nameTruncateMaxWidth, S.maxWidth, _),
            T = s.nameMarginLevel || 0,
            C = new Sl({
              x: y.x,
              y: y.y,
              rotation: x.rotation,
              silent: mC.isLabelSilent(i),
              style: Qh(d, {
                text: u,
                font: w,
                overflow: 'truncate',
                width: I,
                ellipsis: M,
                fill: d.getTextColor() || i.get(['axisLine', 'lineStyle', 'color']),
                align: d.get('align') || x.textAlign,
                verticalAlign: d.get('verticalAlign') || x.textVerticalAlign
              }),
              z2: 1
            })
          if ((zh({ el: C, componentModel: i, itemName: u }), (C.__fullText = u), (C.anid = 'name'), i.get('triggerEvent'))) {
            var D = mC.makeAxisEventDataBase(i)
            ;(D.targetType = 'axisName'), (D.name = u), (zl(C).eventData = D)
          }
          o.add(C), C.updateTransform(), (e.nameEl = C)
          var A = (l.nameLayout = vS({ label: C, priority: C.z2, defaultAttr: { ignore: C.ignore }, marginDefault: Qb(c) ? lC[T] : uC[T] }))
          if (((l.nameLocation = c), r.add(C), C.decomposeTransform(), t.shouldNameMoveOverlap && A)) {
            var k = n.ensureRecord(i)
            0, n.resolveAxisNameOverlap(t, n, i, A, v, k)
          }
        }
      }
    }
  function bC(t, e, n, i, r, o, a, s) {
    IC(e) ||
      (function (t, e, n, i, r, o) {
        var a = r.axis,
          s = it(t.raw.axisLabelShow, r.get(['axisLabel', 'show'])),
          l = new to()
        n.add(l)
        var u = Cw(i)
        if (!s || a.scale.isBlank()) return void TC(e, [], l, u)
        var c = r.getModel('axisLabel'),
          h = a.getViewLabels(u),
          d = ((it(t.raw.labelRotate, c.get('rotate')) || 0) * sC) / 180,
          p = mC.innerTextLayout(t.rotation, d, t.labelDirection),
          f = r.getCategories && r.getCategories(!0),
          g = [],
          y = r.get('triggerEvent'),
          v = 1 / 0,
          m = -1 / 0
        z(h, function (t, e) {
          var n,
            i = 'ordinal' === a.scale.type ? a.scale.getRawOrdinalNumber(t.tickValue) : t.tickValue,
            s = t.formattedLabel,
            u = t.rawLabel,
            d = c
          if (f && f[i]) {
            var x = f[i]
            q(x) && x.textStyle && (d = new wd(x.textStyle, c, r.ecModel))
          }
          var _ = d.getTextColor() || r.get(['axisLine', 'lineStyle', 'color']),
            b = d.getShallow('align', !0) || p.textAlign,
            w = rt(d.getShallow('alignMinLabel', !0), b),
            S = rt(d.getShallow('alignMaxLabel', !0), b),
            M = d.getShallow('verticalAlign', !0) || d.getShallow('baseline', !0) || p.textVerticalAlign,
            I = rt(d.getShallow('verticalAlignMinLabel', !0), M),
            T = rt(d.getShallow('verticalAlignMaxLabel', !0), M),
            C = 10 + ((null === (n = t.time) || void 0 === n ? void 0 : n.level) || 0)
          ;(v = Math.min(v, C)), (m = Math.max(m, C))
          var D = new Sl({
            x: 0,
            y: 0,
            rotation: 0,
            silent: mC.isLabelSilent(r),
            z2: C,
            style: Qh(d, {
              text: s,
              align: 0 === e ? w : e === h.length - 1 ? S : b,
              verticalAlign: 0 === e ? I : e === h.length - 1 ? T : M,
              fill: Y(_) ? _('category' === a.type ? u : 'value' === a.type ? i + '' : i, e) : _
            })
          })
          D.anid = 'label_' + i
          var A = cC(D)
          if (
            ((A.break = t.break),
            (A.tickValue = i),
            (A.layoutRotation = p.rotation),
            zh({
              el: D,
              componentModel: r,
              itemName: s,
              formatterParamsExtra: {
                isTruncated: function () {
                  return D.isTruncated
                },
                value: u,
                tickIndex: e
              }
            }),
            y)
          ) {
            var k = mC.makeAxisEventDataBase(r)
            ;(k.targetType = 'axisLabel'),
              (k.value = u),
              (k.tickIndex = e),
              t.break && (k.break = { start: t.break.parsedBreak.vmin, end: t.break.parsedBreak.vmax }),
              'category' === a.type && (k.dataIndex = i),
              (zl(D).eventData = k),
              t.break &&
                (function (t, e, n, i) {
                  n.on('click', function (n) {
                    var r = { type: QT, breaks: [{ start: i.parsedBreak.breakOption.start, end: i.parsedBreak.breakOption.end }] }
                    ;(r[t.axis.dim + 'AxisIndex'] = t.componentIndex), e.dispatchAction(r)
                  })
                })(r, o, D, t.break)
          }
          g.push(D), l.add(D)
        })
        var x = E(g, function (t) {
          return { label: t, priority: cC(t).break ? t.z2 + (m - v + 1) : t.z2, defaultAttr: { ignore: t.ignore } }
        })
        TC(e, x, l, u)
      })(t, e, r, s, i, a)
    var l = e.labelLayoutList
    !(function (t, e, n, i) {
      var r = e.get(['axisLabel', 'margin'])
      z(n, function (n, o) {
        var a = vS(n)
        if (a) {
          var s = a.label,
            l = cC(s)
          ;(a.suggestIgnore = s.ignore),
            (s.ignore = !1),
            kr(CC, DC),
            (CC.x = e.axis.dataToCoord(l.tickValue)),
            (CC.y = t.labelOffset + t.labelDirection * r),
            (CC.rotation = l.layoutRotation),
            i.add(CC),
            CC.updateTransform(),
            i.remove(CC),
            CC.decomposeTransform(),
            kr(s, CC),
            s.markRedraw(),
            gS(a, !0),
            vS(a)
        }
      })
    })(t, i, l, o),
      (function (t, e, n) {
        var i = Nd()
        if (!i) return
        var r = i.retrieveAxisBreakPairs(
            n,
            function (t) {
              return t && cC(t.label).break
            },
            !0
          ),
          o = t.get(['breakLabelLayout', 'moveOverlap'], !0)
        ;(!0 !== o && 'auto' !== o) ||
          z(r, function (i) {
            YT().adjustBreakLabelPair(t.axis.inverse, e, [vS(n[i[0]]), vS(n[i[1]])])
          })
      })(i, t.rotation, l)
    var u = t.optionHideOverlap
    !(function (t, e, n) {
      if ($b(t.axis)) return
      function i(t, i, r) {
        var o = vS(e[i]),
          a = vS(e[r])
        if (o && a)
          if (!1 === t || o.suggestIgnore) wC(o.label)
          else if (a.suggestIgnore) wC(a.label)
          else {
            var s = 0.1
            if (!n) {
              var l = [0, 0, 0, 0]
              ;(o = bS({ marginForce: l }, o)), (a = bS({ marginForce: l }, a))
            }
            IS(o, a, null, { touchThreshold: s }) && wC(t ? a.label : o.label)
          }
      }
      var r = t.get(['axisLabel', 'showMinLabel']),
        o = t.get(['axisLabel', 'showMaxLabel']),
        a = e.length
      i(r, 0, 1), i(o, a - 1, a - 2)
    })(i, l, u),
      u &&
        MS(
          V(l, function (t) {
            return t && !t.label.ignore
          })
        ),
      (function (t, e, n, i) {
        var r,
          o = n.axis,
          a = e.ensureRecord(n),
          s = [],
          l = AC(t.axisName) && Qb(t.nameLocation)
        z(i, function (t) {
          var e = vS(t)
          if (e && !e.label.ignore) {
            s.push(e)
            var n = a.transGroup
            l &&
              (n.transform ? Te(pC, n.transform) : _e(pC),
              e.transform && we(pC, pC, e.transform),
              He.copy(fC, e.localRect),
              fC.applyTransform(pC),
              r ? r.union(fC) : He.copy((r = new He(0, 0, 0, 0)), fC))
          }
        })
        var u = Math.abs(a.dirVec.x) > 0.1 ? 'x' : 'y',
          c = a.transGroup[u]
        if (
          (s.sort(function (t, e) {
            return Math.abs(t.label[u] - c) - Math.abs(e.label[u] - c)
          }),
          l && r)
        ) {
          var h = o.getExtent(),
            d = Math.min(h[0], h[1]),
            p = Math.max(h[0], h[1]) - d
          r.union(new He(d, 0, p, 1))
        }
        ;(a.stOccupiedRect = r), (a.labelInfoList = s)
      })(t, n, i, l)
  }
  function wC(t) {
    t && (t.ignore = !0)
  }
  function SC(t, e, n, i, r) {
    for (var o = [], a = [], s = [], l = 0; l < t.length; l++) {
      var u = t[l].coord
      ;(a[0] = u), (a[1] = 0), (s[0] = u), (s[1] = n), e && (Ht(a, a, e), Ht(s, s, e))
      var c = new Ac({ shape: { x1: a[0], y1: a[1], x2: s[0], y2: s[1] }, style: i, z2: 2, autoBatch: !0, silent: !0 })
      _h(c.shape, c.style.lineWidth), (c.anid = r + '_' + t[l].tickValue), o.push(c)
      var h = hC(c)
      ;(h.onBand = !!t[l].onBand), (h.tickValue = t[l].tickValue)
    }
    return o
  }
  function MC(t, e, n) {
    if (IC(t)) {
      var i = t.axisLabelsCreationContext
      0
      var r = i.out.noPxChangeTryDetermine
      if (n.noPxChange) {
        for (var o = !0, a = 0; a < r.length; a++) o = o && r[a]()
        if (o) return !1
      }
      r.length && (e.remove(t.labelGroup), TC(t, null, null, null))
    }
    return !0
  }
  function IC(t) {
    return !!t.labelLayoutList
  }
  function TC(t, e, n, i) {
    ;(t.labelLayoutList = e), (t.labelGroup = n), (t.axisLabelsCreationContext = i)
  }
  var CC = new xl(),
    DC = new xl()
  function AC(t) {
    return !!t
  }
  function kC(t, e, n) {
    n = n || {}
    var i = e.axis,
      r = {},
      o = i.getAxesOnZeroOf()[0],
      a = i.position,
      s = o ? 'onZero' : a,
      l = i.dim,
      u = [t.x, t.x + t.width, t.y, t.y + t.height],
      c = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 },
      h = e.get('offset') || 0,
      d = 'x' === l ? [u[2] - h, u[3] + h] : [u[0] - h, u[1] + h]
    if (o) {
      var p = o.toGlobalCoord(o.dataToCoord(0))
      d[c.onZero] = Math.max(Math.min(p, d[1]), d[0])
    }
    ;(r.position = ['y' === l ? d[c[s]] : u[0], 'x' === l ? d[c[s]] : u[3]]), (r.rotation = (Math.PI / 2) * ('x' === l ? 0 : 1))
    ;(r.labelDirection = r.tickDirection = r.nameDirection = { top: -1, bottom: 1, left: -1, right: 1 }[a]),
      (r.labelOffset = o ? d[c[a]] - d[c.onZero] : 0),
      e.get(['axisTick', 'inside']) && (r.tickDirection = -r.tickDirection),
      it(n.labelInside, e.get(['axisLabel', 'inside'])) && (r.labelDirection = -r.labelDirection)
    var f = e.get(['axisLabel', 'rotate'])
    return (r.labelRotate = 'top' === s ? -f : f), (r.z2 = 1), r
  }
  function LC(t) {
    var e = { xAxisModel: null, yAxisModel: null }
    return (
      z(e, function (n, i) {
        var r = i.replace(/Model$/, ''),
          o = t.getReferringComponents(r, ha).models[0]
        e[i] = o
      }),
      e
    )
  }
  function PC(t, e, n) {
    var i = cb.prototype,
      r = i.getTicks.call(n),
      o = i.getTicks.call(n, { expandToNicedExtent: !0 }),
      a = r.length - 1,
      s = i.getInterval.call(n),
      l = Yb(t, e),
      u = l.extent,
      c = l.fixMin,
      h = l.fixMax
    'log' === t.type && (u = ib(t.base, u, !0)), t.setBreaksFromOption(ew(e)), t.setExtent(u[0], u[1]), t.calcNiceExtent({ splitNumber: a, fixMin: c, fixMax: h })
    var d = i.getExtent.call(t)
    c && (u[0] = d[0]), h && (u[1] = d[1])
    var p = i.getInterval.call(t),
      f = u[0],
      g = u[1]
    if (c && h) p = (g - f) / a
    else if (c) for (g = u[0] + p * a; g < u[1] && isFinite(g) && isFinite(u[1]); ) (p = K_(p)), (g = u[0] + p * a)
    else if (h) for (f = u[1] - p * a; f > u[0] && isFinite(f) && isFinite(u[0]); ) (p = K_(p)), (f = u[1] - p * a)
    else {
      t.getTicks().length - 1 > a && (p = K_(p))
      var y = p * a
      ;(f = mo((g = Math.ceil(u[1] / p) * p) - y)) < 0 && u[0] >= 0 ? ((f = 0), (g = mo(y))) : g > 0 && u[1] <= 0 && ((g = 0), (f = -mo(y)))
    }
    var v = (r[0].value - o[0].value) / s,
      m = (r[a].value - o[a].value) / s
    i.setExtent.call(t, f + p * v, g + p * m), i.setInterval.call(t, p), (v || m) && i.setNiceExtent.call(t, f + p, g - p)
  }
  var OC,
    RC = [
      [3, 1],
      [0, 2]
    ],
    NC = (function () {
      function t(t, e, n) {
        ;(this.type = 'grid'),
          (this._coordsMap = {}),
          (this._coordsList = []),
          (this._axesMap = {}),
          (this._axesList = []),
          (this.axisPointerEnabled = !0),
          (this.dimensions = qT),
          this._initCartesian(t, e, n),
          (this.model = t)
      }
      return (
        (t.prototype.getRect = function () {
          return this._rect
        }),
        (t.prototype.update = function (t, e) {
          var n = this._axesMap
          function i(t) {
            var e,
              n = F(t),
              i = n.length
            if (i) {
              for (var r = [], o = i - 1; o >= 0; o--) {
                var a = t[+n[o]],
                  s = a.model,
                  l = a.scale
                j_(l) && s.get('alignTicks') && null == s.get('interval') ? r.push(a) : (Xb(l, s), j_(l) && (e = a))
              }
              r.length &&
                (e || Xb((e = r.pop()).scale, e.model),
                z(r, function (t) {
                  PC(t.scale, t.model, e.scale)
                }))
            }
          }
          this._updateScale(t, this.model), i(n.x), i(n.y)
          var r = {}
          z(n.x, function (t) {
            EC(n, 'y', t, r)
          }),
            z(n.y, function (t) {
              EC(n, 'x', t, r)
            }),
            this.resize(this.model, e)
        }),
        (t.prototype.resize = function (t, e, n) {
          var i = Xp(t, e),
            r = (this._rect = Hp(t.getBoxLayoutParams(), i.refContainer)),
            o = this._axesMap,
            a = this._coordsList,
            s = t.get('containLabel')
          if ((VC(o, r), !n)) {
            var l = (function (t, e, n, i, r) {
                var o = new dC(HC)
                return (
                  z(n, function (n) {
                    return z(n, function (n) {
                      if (tw(n.model)) {
                        var a = !i
                        n.axisBuilder = (function (t, e, n, i, r, o) {
                          for (var a = kC(t, n), s = !1, l = !1, u = 0; u < e.length; u++)
                            j_(e[u].getOtherAxis(n.axis).scale) && ((s = l = !0), 'category' === n.axis.type && n.axis.onBand && (l = !1))
                          return (a.axisLineAutoShow = s), (a.axisTickAutoShow = l), (a.defaultNameMoveOverlap = o), new mC(n, i, a, r)
                        })(t, e, n.model, r, o, a)
                      }
                    })
                  }),
                  o
                )
              })(r, a, o, s, e),
              u = void 0
            if (s) OC ? (OC(this._axesList, r), VC(o, r)) : (u = FC(r.clone(), 'axisLabel', null, r, o, l, i))
            else {
              var c = (function (t, e, n) {
                  var i,
                    r = t.get('outerBoundsMode', !0)
                  'same' === r ? (i = e.clone()) : (null != r && 'auto' !== r) || (i = Hp(t.get('outerBounds', !0) || NT, n.refContainer))
                  var o,
                    a = t.get('outerBoundsContain', !0)
                  o = null == a || 'auto' === a || P(['all', 'axisLabel'], a) < 0 ? 'all' : a
                  var s = [vo(rt(t.get('outerBoundsClampWidth', !0), zT[0]), e.width), vo(rt(t.get('outerBoundsClampHeight', !0), zT[1]), e.height)]
                  return { outerBoundsRect: i, parsedOuterBoundsContain: o, outerBoundsClamp: s }
                })(t, r, i),
                h = c.outerBoundsRect,
                d = c.parsedOuterBoundsContain,
                p = c.outerBoundsClamp
              h && (u = FC(h, d, p, r, o, l, i))
            }
            WC(r, o, Tw, null, u, i)
          }
          z(this._coordsList, function (t) {
            t.calcAffineTransform()
          })
        }),
        (t.prototype.getAxis = function (t, e) {
          var n = this._axesMap[t]
          if (null != n) return n[e || 0]
        }),
        (t.prototype.getAxes = function () {
          return this._axesList.slice()
        }),
        (t.prototype.getCartesian = function (t, e) {
          if (null != t && null != e) {
            var n = 'x' + t + 'y' + e
            return this._coordsMap[n]
          }
          q(t) && ((e = t.yAxisIndex), (t = t.xAxisIndex))
          for (var i = 0, r = this._coordsList; i < r.length; i++) if (r[i].getAxis('x').index === t || r[i].getAxis('y').index === e) return r[i]
        }),
        (t.prototype.getCartesians = function () {
          return this._coordsList.slice()
        }),
        (t.prototype.convertToPixel = function (t, e, n) {
          var i = this._findConvertTarget(e)
          return i.cartesian ? i.cartesian.dataToPoint(n) : i.axis ? i.axis.toGlobalCoord(i.axis.dataToCoord(n)) : null
        }),
        (t.prototype.convertFromPixel = function (t, e, n) {
          var i = this._findConvertTarget(e)
          return i.cartesian ? i.cartesian.pointToData(n) : i.axis ? i.axis.coordToData(i.axis.toLocalCoord(n)) : null
        }),
        (t.prototype._findConvertTarget = function (t) {
          var e,
            n,
            i = t.seriesModel,
            r = t.xAxisModel || (i && i.getReferringComponents('xAxis', ha).models[0]),
            o = t.yAxisModel || (i && i.getReferringComponents('yAxis', ha).models[0]),
            a = t.gridModel,
            s = this._coordsList
          if (i) P(s, (e = i.coordinateSystem)) < 0 && (e = null)
          else if (r && o) e = this.getCartesian(r.componentIndex, o.componentIndex)
          else if (r) n = this.getAxis('x', r.componentIndex)
          else if (o) n = this.getAxis('y', o.componentIndex)
          else if (a) {
            a.coordinateSystem === this && (e = this._coordsList[0])
          }
          return { cartesian: e, axis: n }
        }),
        (t.prototype.containPoint = function (t) {
          var e = this._coordsList[0]
          if (e) return e.containPoint(t)
        }),
        (t.prototype._initCartesian = function (t, e, n) {
          var i = this,
            r = this,
            o = { left: !1, right: !1, top: !1, bottom: !1 },
            a = { x: {}, y: {} },
            s = { x: 0, y: 0 }
          if ((e.eachComponent('xAxis', l('x'), this), e.eachComponent('yAxis', l('y'), this), !s.x || !s.y)) return (this._axesMap = {}), void (this._axesList = [])
          function l(e) {
            return function (n, i) {
              if (zC(n, t)) {
                var l = n.get('position')
                'x' === e ? 'top' !== l && 'bottom' !== l && (l = o.bottom ? 'top' : 'bottom') : 'left' !== l && 'right' !== l && (l = o.left ? 'right' : 'left'), (o[l] = !0)
                var u = new JT(e, Zb(n), [0, 0], n.get('type'), l),
                  c = 'category' === u.type
                ;(u.onBand = c && n.get('boundaryGap')),
                  (u.inverse = n.get('inverse')),
                  (n.axis = u),
                  (u.model = n),
                  (u.grid = r),
                  (u.index = i),
                  r._axesList.push(u),
                  (a[e][i] = u),
                  s[e]++
              }
            }
          }
          ;(this._axesMap = a),
            z(a.x, function (e, n) {
              z(a.y, function (r, o) {
                var a = 'x' + n + 'y' + o,
                  s = new $T(a)
                ;(s.master = i), (s.model = t), (i._coordsMap[a] = s), i._coordsList.push(s), s.addAxis(e), s.addAxis(r)
              })
            })
        }),
        (t.prototype._updateScale = function (t, e) {
          function n(t, e) {
            z(Jb(t, e.dim), function (n) {
              e.scale.unionExtentFromData(t, n)
            })
          }
          z(this._axesList, function (t) {
            if ((t.scale.setExtent(1 / 0, -1 / 0), 'category' === t.type)) {
              var e = t.model.get('categorySortInfo')
              t.scale.setSortInfo(e)
            }
          }),
            t.eachSeries(function (t) {
              if (
                (function (t) {
                  return t.coordinateSystem && 'cartesian2d' === t.coordinateSystem.type
                })(t)
              ) {
                var i = LC(t),
                  r = i.xAxisModel,
                  o = i.yAxisModel
                if (!zC(r, e) || !zC(o, e)) return
                var a = this.getCartesian(r.componentIndex, o.componentIndex),
                  s = t.getData(),
                  l = a.getAxis('x'),
                  u = a.getAxis('y')
                n(s, l), n(s, u)
              }
            }, this)
        }),
        (t.prototype.getTooltipAxes = function (t) {
          var e = [],
            n = []
          return (
            z(this.getCartesians(), function (i) {
              var r = null != t && 'auto' !== t ? i.getAxis(t) : i.getBaseAxis(),
                o = i.getOtherAxis(r)
              P(e, r) < 0 && e.push(r), P(n, o) < 0 && n.push(o)
            }),
            { baseAxes: e, otherAxes: n }
          )
        }),
        (t.create = function (e, n) {
          var i = []
          return (
            e.eachComponent('grid', function (r, o) {
              var a = new t(r, e, n)
              ;(a.name = 'grid_' + o), a.resize(r, n, !0), (r.coordinateSystem = a), i.push(a)
            }),
            e.eachSeries(function (t) {
              Rp({
                targetModel: t,
                coordSysType: 'cartesian2d',
                coordSysProvider: function () {
                  var e = LC(t),
                    n = e.xAxisModel,
                    i = e.yAxisModel,
                    r = n.getCoordSysModel()
                  0
                  return r.coordinateSystem.getCartesian(n.componentIndex, i.componentIndex)
                }
              })
            }),
            i
          )
        }),
        (t.dimensions = qT),
        t
      )
    })()
  function zC(t, e) {
    return t.getCoordSysModel() === e
  }
  function EC(t, e, n, i) {
    n.getAxesOnZeroOf = function () {
      return r ? [r] : []
    }
    var r,
      o = t[e],
      a = n.model,
      s = a.get(['axisLine', 'onZero']),
      l = a.get(['axisLine', 'onZeroAxisIndex'])
    if (s) {
      if (null != l) BC(o[l]) && (r = o[l])
      else
        for (var u in o)
          if (o.hasOwnProperty(u) && BC(o[u]) && !i[c(o[u])]) {
            r = o[u]
            break
          }
      r && (i[c(r)] = !0)
    }
    function c(t) {
      return t.dim + '_' + t.index
    }
  }
  function BC(t) {
    return (
      t &&
      'category' !== t.type &&
      'time' !== t.type &&
      (function (t) {
        var e = t.scale.getExtent(),
          n = e[0],
          i = e[1]
        return !((n > 0 && i > 0) || (n < 0 && i < 0))
      })(t)
    )
  }
  function VC(t, e) {
    z(t.x, function (t) {
      return GC(t, e.x, e.width)
    }),
      z(t.y, function (t) {
        return GC(t, e.y, e.height)
      })
  }
  function GC(t, e, n) {
    var i = [0, n],
      r = t.inverse ? 1 : 0
    t.setExtent(i[r], i[1 - r]),
      (function (t, e) {
        var n = t.getExtent(),
          i = n[0] + n[1]
        ;(t.toGlobalCoord =
          'x' === t.dim
            ? function (t) {
                return t + e
              }
            : function (t) {
                return i - t + e
              }),
          (t.toLocalCoord =
            'x' === t.dim
              ? function (t) {
                  return t - e
                }
              : function (t) {
                  return i - t + e
                })
      })(t, e)
  }
  function FC(t, e, n, i, r, o, a) {
    WC(i, r, Iw, e, !1, a)
    var s = [0, 0, 0, 0]
    u(0), u(1), c(i, 0, NaN), c(i, 1, NaN)
    var l =
      null ==
      G(s, function (t) {
        return t > 0
      })
    return Oh(i, s, !0, !0, n), VC(r, i), l
    function u(t) {
      z(r[lh[t]], function (e) {
        if (tw(e.model)) {
          var n = o.ensureRecord(e.model),
            i = n.labelInfoList
          if (i)
            for (var r = 0; r < i.length; r++) {
              var a = i[r],
                s = e.scale.normalize(cC(a.label).tickValue)
              ;(s = 1 === t ? 1 - s : s), c(a.rect, t, s), c(a.rect, 1 - t, NaN)
            }
          var l = n.nameLayout
          if (l) {
            s = Qb(n.nameLocation) ? 0.5 : NaN
            c(l.rect, t, s), c(l.rect, 1 - t, NaN)
          }
        }
      })
    }
    function c(e, n, i) {
      var r = t[lh[n]] - e[lh[n]],
        o = e[uh[n]] + e[lh[n]] - (t[uh[n]] + t[lh[n]])
      ;(r = h(r, 1 - i)), (o = h(o, i))
      var a = RC[n][0],
        l = RC[n][1]
      ;(s[a] = po(s[a], r)), (s[l] = po(s[l], o))
    }
    function h(t, e) {
      return t > 0 && !nt(e) && e > 1e-4 && (t /= e), t
    }
  }
  function WC(t, e, n, i, r, o) {
    var a = n === Tw
    z(e, function (e) {
      return z(e, function (e) {
        tw(e.model) &&
          (!(function (t, e, n) {
            var i = kC(e, n)
            t.updateCfg(i)
          })(e.axisBuilder, t, e.model),
          e.axisBuilder.build(a ? { axisTickLabelDetermine: !0 } : { axisTickLabelEstimate: !0 }, { noPxChange: r }))
      })
    })
    var s = { x: 0, y: 0 }
    function l(e) {
      s[lh[1 - e]] = t[uh[e]] <= 0.5 * o.refContainer[uh[e]] ? 0 : 1 - e == 1 ? 2 : 1
    }
    l(0),
      l(1),
      z(e, function (t, e) {
        return z(t, function (t) {
          tw(t.model) && (('all' === i || a) && t.axisBuilder.build({ axisName: !0 }, { nameMarginLevel: s[e] }), a && t.axisBuilder.build({ axisLine: !0 }))
        })
      })
  }
  var HC = function (t, e, n, i, r, o) {
    var a = 'x' === n.axis.dim ? 'y' : 'x'
    gC(t, 0, 0, i, r, o),
      Qb(t.nameLocation) ||
        z(e.recordMap[a], function (t) {
          t && t.labelInfoList && t.dirVec && vC(t.labelInfoList, t.dirVec, i, r)
        })
  }
  function UC(t, e) {
    var n = { axesInfo: {}, seriesInvolved: !1, coordSysAxesInfo: {}, coordSysMap: {} }
    return (
      (function (t, e, n) {
        var i = e.getComponent('tooltip'),
          r = e.getComponent('axisPointer'),
          o = r.get('link', !0) || [],
          a = []
        z(n.getCoordinateSystems(), function (n) {
          if (n.axisPointerEnabled) {
            var s = qC(n.model),
              l = (t.coordSysAxesInfo[s] = {})
            t.coordSysMap[s] = n
            var u = n.model.getModel('tooltip', i)
            if ((z(n.getAxes(), H(p, !1, null)), n.getTooltipAxes && i && u.get('show'))) {
              var c = 'axis' === u.get('trigger'),
                h = 'cross' === u.get(['axisPointer', 'type']),
                d = n.getTooltipAxes(u.get(['axisPointer', 'axis']))
              ;(c || h) && z(d.baseAxes, H(p, !h || 'cross', c)), h && z(d.otherAxes, H(p, 'cross', !1))
            }
          }
          function p(i, s, c) {
            var h = c.model.getModel('axisPointer', r),
              d = h.get('show')
            if (d && ('auto' !== d || i || jC(h))) {
              null == s && (s = h.get('triggerTooltip')),
                (h = i
                  ? (function (t, e, n, i, r, o) {
                      var a = e.getModel('axisPointer'),
                        s = {}
                      z(['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'], function (t) {
                        s[t] = T(a.get(t))
                      }),
                        (s.snap = 'category' !== t.type && !!o),
                        'cross' === a.get('type') && (s.type = 'line')
                      var l = s.label || (s.label = {})
                      if ((null == l.show && (l.show = !1), 'cross' === r)) {
                        var u = a.get(['label', 'show'])
                        if (((l.show = null == u || u), !o)) {
                          var c = (s.lineStyle = a.get('crossStyle'))
                          c && k(l, c.textStyle)
                        }
                      }
                      return t.model.getModel('axisPointer', new wd(s, n, i))
                    })(c, u, r, e, i, s)
                  : h)
              var p = h.get('snap'),
                f = h.get('triggerEmphasis'),
                g = qC(c.model),
                y = s || p || 'category' === c.type,
                v = (t.axesInfo[g] = {
                  key: g,
                  axis: c,
                  coordSys: n,
                  axisPointerModel: h,
                  triggerTooltip: s,
                  triggerEmphasis: f,
                  involveSeries: y,
                  snap: p,
                  useHandle: jC(h),
                  seriesModels: [],
                  linkGroup: null
                })
              ;(l[g] = v), (t.seriesInvolved = t.seriesInvolved || y)
              var m = (function (t, e) {
                for (var n = e.model, i = e.dim, r = 0; r < t.length; r++) {
                  var o = t[r] || {}
                  if (YC(o[i + 'AxisId'], n.id) || YC(o[i + 'AxisIndex'], n.componentIndex) || YC(o[i + 'AxisName'], n.name)) return r
                }
              })(o, c)
              if (null != m) {
                var x = a[m] || (a[m] = { axesInfo: {} })
                ;(x.axesInfo[g] = v), (x.mapper = o[m].mapper), (v.linkGroup = x)
              }
            }
          }
        })
      })(n, t, e),
      n.seriesInvolved &&
        (function (t, e) {
          e.eachSeries(function (e) {
            var n = e.coordinateSystem,
              i = e.get(['tooltip', 'trigger'], !0),
              r = e.get(['tooltip', 'show'], !0)
            n &&
              n.model &&
              'none' !== i &&
              !1 !== i &&
              'item' !== i &&
              !1 !== r &&
              !1 !== e.get(['axisPointer', 'show'], !0) &&
              z(t.coordSysAxesInfo[qC(n.model)], function (t) {
                var i = t.axis
                n.getAxis(i.dim) === i && (t.seriesModels.push(e), null == t.seriesDataCount && (t.seriesDataCount = 0), (t.seriesDataCount += e.getData().count()))
              })
          })
        })(n, t),
      n
    )
  }
  function YC(t, e) {
    return 'all' === t || (U(t) && P(t, e) >= 0) || t === e
  }
  function XC(t) {
    var e = ZC(t)
    if (e) {
      var n = e.axisPointerModel,
        i = e.axis.scale,
        r = n.option,
        o = n.get('status'),
        a = n.get('value')
      null != a && (a = i.parse(a))
      var s = jC(n)
      null == o && (r.status = s ? 'show' : 'hide')
      var l = i.getExtent().slice()
      l[0] > l[1] && l.reverse(), (null == a || a > l[1]) && (a = l[1]), a < l[0] && (a = l[0]), (r.value = a), s && (r.status = e.axis.scale.isBlank() ? 'hide' : 'show')
    }
  }
  function ZC(t) {
    var e = (t.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo
    return e && e.axesInfo[qC(t)]
  }
  function jC(t) {
    return !!t.get(['handle', 'show'])
  }
  function qC(t) {
    return t.type + '||' + t.id
  }
  var KC = {},
    $C = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (e, n, i, r) {
          this.axisPointerClass && XC(e), t.prototype.render.apply(this, arguments), this._doUpdateAxisPointerClass(e, i, !0)
        }),
        (e.prototype.updateAxisPointer = function (t, e, n, i) {
          this._doUpdateAxisPointerClass(t, n, !1)
        }),
        (e.prototype.remove = function (t, e) {
          var n = this._axisPointer
          n && n.remove(e)
        }),
        (e.prototype.dispose = function (e, n) {
          this._disposeAxisPointer(n), t.prototype.dispose.apply(this, arguments)
        }),
        (e.prototype._doUpdateAxisPointerClass = function (t, n, i) {
          var r = e.getAxisPointerClass(this.axisPointerClass)
          if (r) {
            var o = (function (t) {
              var e = ZC(t)
              return e && e.axisPointerModel
            })(t)
            o ? (this._axisPointer || (this._axisPointer = new r())).render(t, o, n, i) : this._disposeAxisPointer(n)
          }
        }),
        (e.prototype._disposeAxisPointer = function (t) {
          this._axisPointer && this._axisPointer.dispose(t), (this._axisPointer = null)
        }),
        (e.registerAxisPointerClass = function (t, e) {
          KC[t] = e
        }),
        (e.getAxisPointerClass = function (t) {
          return t && KC[t]
        }),
        (e.type = 'axis'),
        e
      )
    })(Ky),
    JC = sa()
  function QC(t, e, n, i) {
    var r = n.axis
    if (!r.scale.isBlank()) {
      var o = n.getModel('splitArea'),
        a = o.getModel('areaStyle'),
        s = a.get('color'),
        l = i.coordinateSystem.getRect(),
        u = r.getTicksCoords({ tickModel: o, clamp: !0, breakTicks: 'none', pruneByBreak: 'preserve_extent_bound' })
      if (u.length) {
        var c = s.length,
          h = JC(t).splitAreaColors,
          d = yt(),
          p = 0
        if (h)
          for (var f = 0; f < u.length; f++) {
            var g = h.get(u[f].tickValue)
            if (null != g) {
              p = (g + (c - 1) * f) % c
              break
            }
          }
        var y = r.toGlobalCoord(u[0].coord),
          v = a.getAreaStyle()
        s = U(s) ? s : [s]
        for (f = 1; f < u.length; f++) {
          var m = r.toGlobalCoord(u[f].coord),
            x = void 0,
            _ = void 0,
            b = void 0,
            w = void 0
          r.isHorizontal() ? ((x = y), (_ = l.y), (b = m - x), (w = l.height), (y = x + b)) : ((x = l.x), (_ = y), (b = l.width), (y = _ + (w = m - _)))
          var S = u[f - 1].tickValue
          null != S && d.set(S, p),
            e.add(new xl({ anid: null != S ? 'area_' + S : null, shape: { x: x, y: _, width: b, height: w }, style: k({ fill: s[p] }, v), autoBatch: !0, silent: !0 })),
            (p = (p + 1) % c)
        }
        JC(t).splitAreaColors = d
      }
    }
  }
  function tD(t) {
    JC(t).splitAreaColors = null
  }
  var eD = ['splitArea', 'splitLine', 'minorSplitLine', 'breakArea'],
    nD = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.axisPointerClass = 'CartesianAxisPointer'), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (e, n, i, r) {
          this.group.removeAll()
          var o = this._axisGroup
          ;((this._axisGroup = new to()), this.group.add(this._axisGroup), tw(e)) &&
            (this._axisGroup.add(e.axis.axisBuilder.group),
            z(
              eD,
              function (t) {
                e.get([t, 'show']) && iD[t](this, this._axisGroup, e, e.getCoordSysModel(), i)
              },
              this
            ),
            (r && 'changeAxisOrder' === r.type && r.isInitSort) || Th(o, this._axisGroup, e),
            t.prototype.render.call(this, e, n, i, r))
        }),
        (e.prototype.remove = function () {
          tD(this)
        }),
        (e.type = 'cartesianAxis'),
        e
      )
    })($C),
    iD = {
      splitLine: function (t, e, n, i, r) {
        var o = n.axis
        if (!o.scale.isBlank()) {
          var a = n.getModel('splitLine'),
            s = a.getModel('lineStyle'),
            l = s.get('color'),
            u = !1 !== a.get('showMinLine'),
            c = !1 !== a.get('showMaxLine')
          l = U(l) ? l : [l]
          for (
            var h = i.coordinateSystem.getRect(),
              d = o.isHorizontal(),
              p = 0,
              f = o.getTicksCoords({ tickModel: a, breakTicks: 'none', pruneByBreak: 'preserve_extent_bound' }),
              g = [],
              y = [],
              v = s.getLineStyle(),
              m = 0;
            m < f.length;
            m++
          ) {
            var x = o.toGlobalCoord(f[m].coord)
            if ((0 !== m || u) && (m !== f.length - 1 || c)) {
              var _ = f[m].tickValue
              d ? ((g[0] = x), (g[1] = h.y), (y[0] = x), (y[1] = h.y + h.height)) : ((g[0] = h.x), (g[1] = x), (y[0] = h.x + h.width), (y[1] = x))
              var b = p++ % l.length,
                w = new Ac({ anid: null != _ ? 'line_' + _ : null, autoBatch: !0, shape: { x1: g[0], y1: g[1], x2: y[0], y2: y[1] }, style: k({ stroke: l[b] }, v), silent: !0 })
              _h(w.shape, v.lineWidth), e.add(w)
            }
          }
        }
      },
      minorSplitLine: function (t, e, n, i, r) {
        var o = n.axis,
          a = n.getModel('minorSplitLine').getModel('lineStyle'),
          s = i.coordinateSystem.getRect(),
          l = o.isHorizontal(),
          u = o.getMinorTicksCoords()
        if (u.length)
          for (var c = [], h = [], d = a.getLineStyle(), p = 0; p < u.length; p++)
            for (var f = 0; f < u[p].length; f++) {
              var g = o.toGlobalCoord(u[p][f].coord)
              l ? ((c[0] = g), (c[1] = s.y), (h[0] = g), (h[1] = s.y + s.height)) : ((c[0] = s.x), (c[1] = g), (h[0] = s.x + s.width), (h[1] = g))
              var y = new Ac({ anid: 'minor_line_' + u[p][f].tickValue, autoBatch: !0, shape: { x1: c[0], y1: c[1], x2: h[0], y2: h[1] }, style: d, silent: !0 })
              _h(y.shape, d.lineWidth), e.add(y)
            }
      },
      splitArea: function (t, e, n, i, r) {
        QC(t, e, n, i)
      },
      breakArea: function (t, e, n, i, r) {
        var o = YT(),
          a = n.axis.scale
        o && 'ordinal' !== a.type && o.rectCoordBuildBreakAxis(e, t, n, i.coordinateSystem.getRect(), r)
      }
    },
    rD = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return n(e, t), (e.type = 'xAxis'), e
    })(nD),
    oD = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.type = rD.type), e
      }
      return n(e, t), (e.type = 'yAxis'), e
    })(nD),
    aD = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.type = 'grid'), e
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e) {
          this.group.removeAll(),
            t.get('show') && this.group.add(new xl({ shape: t.coordinateSystem.getRect(), style: k({ fill: t.get('backgroundColor') }, t.getItemStyle()), silent: !0, z2: -1 }))
        }),
        (e.type = 'grid'),
        e
      )
    })(Ky),
    sD = { offset: 0 }
  function lD(t) {
    t.registerComponentView(aD),
      t.registerComponentModel(ET),
      t.registerCoordinateSystem('cartesian2d', NC),
      XT(t, 'x', BT, sD),
      XT(t, 'y', BT, sD),
      t.registerComponentView(rD),
      t.registerComponentView(oD),
      t.registerPreprocessor(function (t) {
        t.xAxis && t.yAxis && !t.grid && (t.grid = {})
      })
  }
  var uD = sa()
  function cD(t, e, n, i) {
    if (t instanceof JT) {
      var r = t.scale.type
      if ('category' !== r && 'ordinal' !== r) return n
    }
    var o = t.model,
      a = o.get('jitter'),
      s = o.get('jitterOverlap'),
      l = o.get('jitterMargin') || 0,
      u = 'ordinal' === t.scale.type ? t.getBandWidth() : null
    return a > 0
      ? s
        ? hD(n, a, u, i)
        : (function (t, e, n, i, r, o) {
            var a = uD(t)
            a.items || (a.items = [])
            var s = a.items,
              l = dD(s, e, n, i, r, o, 1),
              u = dD(s, e, n, i, r, o, -1),
              c = Math.abs(l - n) < Math.abs(u - n) ? l : u,
              h = 'ordinal' === t.scale.type ? t.getBandWidth() : null,
              d = Math.abs(c - n)
            if (d > r / 2 || (h && d > h / 2 - i)) return hD(n, r, h, i)
            return s.push({ fixedCoord: e, floatCoord: c, r: i }), c
          })(t, e, n, i, a, l)
      : n
  }
  function hD(t, e, n, i) {
    if (null === n) return t + (Math.random() - 0.5) * e
    var r = n - 2 * i,
      o = Math.min(Math.max(0, e), r)
    return t + (Math.random() - 0.5) * o
  }
  function dD(t, e, n, i, r, o, a) {
    for (var s = n, l = 0; l < t.length; l++) {
      var u = t[l],
        c = e - u.fixedCoord,
        h = s - u.floatCoord,
        d = c * c + h * h,
        p = i + u.r + o
      if (d < p * p) {
        var f = u.floatCoord + Math.sqrt(p * p - c * c) * a
        if (Math.abs(f - n) > r / 2) return Number.MAX_VALUE
        if ((1 === a && f > s) || (-1 === a && f < s)) {
          ;(s = f), (l = -1)
          continue
        }
      }
    }
    return s
  }
  function pD(t) {
    t.eachSeriesByType('scatter', function (t) {
      var e = t.coordinateSystem
      if (e && ('cartesian2d' === e.type || 'single' === e.type)) {
        var n = e.getBaseAxis ? e.getBaseAxis() : null,
          i =
            n &&
            (function (t, e) {
              var n = t.coordinateSystem,
                i = n && n.type,
                r = n && n.getBaseAxis && n.getBaseAxis(),
                o = r && r.scale && r.scale.type,
                a = ('cartesian2d' === i && 'ordinal' === o) || 'single' === i,
                s = e.model.get('jitter') > 0
              return a && s
            })(t, n)
        if (i) {
          var r = t.getData()
          r.each(function (t) {
            var e = n.dim,
              i = n.orient,
              o = ('horizontal' === i && 'category' !== n.type) || ('vertical' === i && 'category' === n.type),
              a = r.getItemLayout(t),
              s = r.getItemVisual(t, 'symbolSize'),
              l = s instanceof Array ? (s[1] + s[0]) / 2 : s
            if ('y' === e || ('single' === e && o)) {
              var u = cD(n, a[0], a[1], l / 2)
              r.setItemLayout(t, [a[0], u])
            } else if ('x' === e || ('single' === e && !o)) {
              u = cD(n, a[1], a[0], l / 2)
              r.setItemLayout(t, [u, a[1]])
            }
          })
        }
      }
    })
  }
  function fD(t) {
    t.eachSeriesByType('radar', function (t) {
      var e = t.getData(),
        n = [],
        i = t.coordinateSystem
      if (i) {
        var r = i.getIndicatorAxes()
        z(r, function (t, o) {
          e.each(e.mapDimension(r[o].dim), function (t, e) {
            n[e] = n[e] || []
            var r = i.dataToPoint(t, o)
            n[e][o] = gD(r) ? r : yD(i)
          })
        }),
          e.each(function (t) {
            var r =
              G(n[t], function (t) {
                return gD(t)
              }) || yD(i)
            n[t].push(r.slice()), e.setItemLayout(t, n[t])
          })
      }
    })
  }
  function gD(t) {
    return !isNaN(t[0]) && !isNaN(t[1])
  }
  function yD(t) {
    return [t.cx, t.cy]
  }
  function vD(t) {
    var e = t.polar
    if (e) {
      U(e) || (e = [e])
      var n = []
      z(e, function (e, i) {
        e.indicator ? (e.type && !e.shape && (e.shape = e.type), (t.radar = t.radar || []), U(t.radar) || (t.radar = [t.radar]), t.radar.push(e)) : n.push(e)
      }),
        (t.polar = n)
    }
    z(t.series, function (t) {
      t && 'radar' === t.type && t.polarIndex && (t.radarIndex = t.polarIndex)
    })
  }
  var mD = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          var i = t.coordinateSystem,
            r = this.group,
            o = t.getData(),
            a = this._data
          function s(t, e) {
            var n = t.getItemVisual(e, 'symbol') || 'circle'
            if ('none' !== n) {
              var i = dm(t.getItemVisual(e, 'symbolSize')),
                r = hm(n, -1, -1, 2, 2),
                o = t.getItemVisual(e, 'symbolRotate') || 0
              return r.attr({ style: { strokeNoScale: !0 }, z2: 100, scaleX: i[0] / 2, scaleY: i[1] / 2, rotation: (o * Math.PI) / 180 || 0 }), r
            }
          }
          function l(e, n, i, r, o, a) {
            i.removeAll()
            for (var l = 0; l < n.length - 1; l++) {
              var u = s(r, o)
              u && ((u.__dimIdx = l), e[l] ? (u.setPosition(e[l]), Zh[a ? 'initProps' : 'updateProps'](u, { x: n[l][0], y: n[l][1] }, t, o)) : u.setPosition(n[l]), i.add(u))
            }
          }
          function u(t) {
            return E(t, function (t) {
              return [i.cx, i.cy]
            })
          }
          o
            .diff(a)
            .add(function (e) {
              var n = o.getItemLayout(e)
              if (n) {
                var i = new Mc(),
                  r = new Tc(),
                  a = { shape: { points: n } }
                ;(i.shape.points = u(n)), (r.shape.points = u(n)), eh(i, a, t, e), eh(r, a, t, e)
                var s = new to(),
                  c = new to()
                s.add(r), s.add(i), s.add(c), l(r.shape.points, n, c, o, e, !0), o.setItemGraphicEl(e, s)
              }
            })
            .update(function (e, n) {
              var i = a.getItemGraphicEl(n),
                r = i.childAt(0),
                s = i.childAt(1),
                u = i.childAt(2),
                c = { shape: { points: o.getItemLayout(e) } }
              c.shape.points && (l(r.shape.points, c.shape.points, u, o, e, !1), ah(s), ah(r), th(r, c, t), th(s, c, t), o.setItemGraphicEl(e, i))
            })
            .remove(function (t) {
              r.remove(a.getItemGraphicEl(t))
            })
            .execute(),
            o.eachItemGraphicEl(function (t, e) {
              var n = o.getItemModel(e),
                i = t.childAt(0),
                a = t.childAt(1),
                s = t.childAt(2),
                l = o.getItemVisual(e, 'style'),
                u = l.fill
              r.add(t), i.useStyle(k(n.getModel('lineStyle').getLineStyle(), { fill: 'none', stroke: u })), ku(i, n, 'lineStyle'), ku(a, n, 'areaStyle')
              var c = n.getModel('areaStyle'),
                h = c.isEmpty() && c.parentModel.isEmpty()
              ;(a.ignore = h),
                z(['emphasis', 'select', 'blur'], function (t) {
                  var e = n.getModel([t, 'areaStyle']),
                    r = e.isEmpty() && e.parentModel.isEmpty()
                  a.ensureState(t).ignore = r && h
                  var o = n.getModel([t, 'lineStyle']).getLineStyle()
                  i.ensureState(t).style = o
                  var l = e.getAreaStyle()
                  a.ensureState(t).style = l
                  var u = n.getModel([t, 'itemStyle']).getItemStyle()
                  s.eachChild(function (e) {
                    e.ensureState(t).style = T(u)
                  })
                }),
                a.useStyle(k(n.getModel('areaStyle').getAreaStyle(), { fill: u, opacity: 0.7, decal: l.decal }))
              var d = n.getModel('emphasis')
              s.eachChild(function (t) {
                if (t instanceof dl) {
                  var i = t.style
                  t.useStyle(A({ image: i.image, x: i.x, y: i.y, width: i.width, height: i.height }, l))
                } else t.useStyle(l), t.setColor(u), (t.style.strokeNoScale = !0)
                var r = o.getStore().get(o.getDimensionIndex(t.__dimIdx), e)
                ;(null == r || isNaN(r)) && (r = ''),
                  $h(t, Jh(n), { labelFetcher: o.hostModel, labelDataIndex: e, labelDimIndex: t.__dimIdx, defaultText: r, inheritColor: u, defaultOpacity: l.opacity })
              }),
                Tu(t, d.get('focus'), d.get('blurScope'), d.get('disabled'))
            }),
            (this._data = o)
        }),
        (e.prototype.remove = function () {
          this.group.removeAll(), (this._data = null)
        }),
        (e.type = 'radar'),
        e
      )
    })(tv),
    xD = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.hasSymbolVisual = !0), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (e) {
          t.prototype.init.apply(this, arguments), (this.legendVisualProvider = new CT(W(this.getData, this), W(this.getRawData, this)))
        }),
        (e.prototype.getInitialData = function (t, e) {
          return IT(this, { generateCoord: 'indicator_', generateCoordCount: 1 / 0 })
        }),
        (e.prototype.formatTooltip = function (t, e, n) {
          var i = this.getData(),
            r = this.coordinateSystem.getIndicatorAxes(),
            o = this.getData().getName(t),
            a = '' === o ? this.name : o,
            s = Ny(this, t)
          return Ty('section', {
            header: a,
            sortBlocks: !0,
            blocks: E(r, function (e) {
              var n = i.get(i.mapDimension(e.dim), t)
              return Ty('nameValue', { markerType: 'subItem', markerColor: s, name: e.name, value: n, sortParam: n })
            })
          })
        }),
        (e.prototype.getTooltipPosition = function (t) {
          if (null != t)
            for (
              var e = this.getData(),
                n = this.coordinateSystem,
                i = e.getValues(
                  E(n.dimensions, function (t) {
                    return e.mapDimension(t)
                  }),
                  t
                ),
                r = 0,
                o = i.length;
              r < o;
              r++
            )
              if (!isNaN(i[r])) {
                var a = n.getIndicatorAxes()
                return n.coordToPoint(a[r].dataToCoord(i[r]), r)
              }
        }),
        (e.type = 'series.radar'),
        (e.dependencies = ['radar']),
        (e.defaultOption = {
          z: 2,
          colorBy: 'data',
          coordinateSystem: 'radar',
          legendHoverLink: !0,
          radarIndex: 0,
          lineStyle: { width: 2, type: 'solid', join: 'round' },
          label: { position: 'top' },
          symbolSize: 8
        }),
        e
      )
    })(Wy),
    _D = WT.value
  function bD(t, e) {
    return k({ show: e }, t)
  }
  var wD = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.optionUpdated = function () {
          var t = this.get('boundaryGap'),
            e = this.get('splitNumber'),
            n = this.get('scale'),
            i = this.get('axisLine'),
            r = this.get('axisTick'),
            o = this.get('axisLabel'),
            a = this.get('axisName'),
            s = this.get(['axisName', 'show']),
            l = this.get(['axisName', 'formatter']),
            u = this.get('axisNameGap'),
            c = this.get('triggerEvent'),
            h = E(
              this.get('indicator') || [],
              function (h) {
                null != h.max && h.max > 0 && !h.min ? (h.min = 0) : null != h.min && h.min < 0 && !h.max && (h.max = 0)
                var d = a
                null != h.color && (d = k({ color: h.color }, a))
                var p = C(
                  T(h),
                  {
                    boundaryGap: t,
                    splitNumber: e,
                    scale: n,
                    axisLine: i,
                    axisTick: r,
                    axisLabel: o,
                    name: h.text,
                    showName: s,
                    nameLocation: 'end',
                    nameGap: u,
                    nameTextStyle: d,
                    triggerEvent: c
                  },
                  !1
                )
                if (X(l)) {
                  var f = p.name
                  p.name = l.replace('{value}', null != f ? f : '')
                } else Y(l) && (p.name = l(p.name, p))
                var g = new wd(p, null, this.ecModel)
                return R(g, nw.prototype), (g.mainType = 'radar'), (g.componentIndex = this.componentIndex), g
              },
              this
            )
          this._indicatorModels = h
        }),
        (e.prototype.getIndicatorModels = function () {
          return this._indicatorModels
        }),
        (e.type = 'radar'),
        (e.defaultOption = {
          z: 0,
          center: ['50%', '50%'],
          radius: '50%',
          startAngle: 90,
          axisName: { show: !0, color: tf.color.axisLabel },
          boundaryGap: [0, 0],
          splitNumber: 5,
          axisNameGap: 15,
          scale: !1,
          shape: 'polygon',
          axisLine: C({ lineStyle: { color: tf.color.neutral20 } }, _D.axisLine),
          axisLabel: bD(_D.axisLabel, !1),
          axisTick: bD(_D.axisTick, !1),
          splitLine: bD(_D.splitLine, !0),
          splitArea: bD(_D.splitArea, !0),
          indicator: []
        }),
        e
      )
    })(Qp),
    SD = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          this.group.removeAll(), this._buildAxes(t, n), this._buildSplitLineAndArea(t)
        }),
        (e.prototype._buildAxes = function (t, e) {
          var n = t.coordinateSystem
          z(
            E(n.getIndicatorAxes(), function (t) {
              var i = t.model.get('showName') ? t.name : ''
              return new mC(t.model, e, { axisName: i, position: [n.cx, n.cy], rotation: t.angle, labelDirection: -1, tickDirection: -1, nameDirection: 1 })
            }),
            function (t) {
              t.build(), this.group.add(t.group)
            },
            this
          )
        }),
        (e.prototype._buildSplitLineAndArea = function (t) {
          var e = t.coordinateSystem,
            n = e.getIndicatorAxes()
          if (n.length) {
            var i = t.get('shape'),
              r = t.getModel('splitLine'),
              o = t.getModel('splitArea'),
              a = r.getModel('lineStyle'),
              s = o.getModel('areaStyle'),
              l = r.get('show'),
              u = o.get('show'),
              c = a.get('color'),
              h = s.get('color'),
              d = U(c) ? c : [c],
              p = U(h) ? h : [h],
              f = [],
              g = []
            if ('circle' === i)
              for (var y = n[0].getTicksCoords(), v = e.cx, m = e.cy, x = 0; x < y.length; x++) {
                if (l) f[C(f, d, x)].push(new nc({ shape: { cx: v, cy: m, r: y[x].coord } }))
                if (u && x < y.length - 1) g[C(g, p, x)].push(new bc({ shape: { cx: v, cy: m, r0: y[x].coord, r: y[x + 1].coord } }))
              }
            else {
              var _,
                b = E(n, function (t, n) {
                  var i = t.getTicksCoords()
                  return (
                    (_ = null == _ ? i.length - 1 : Math.min(i.length - 1, _)),
                    E(i, function (t) {
                      return e.coordToPoint(t.coord, n)
                    })
                  )
                }),
                w = []
              for (x = 0; x <= _; x++) {
                for (var S = [], M = 0; M < n.length; M++) S.push(b[M][x])
                if ((S[0] && S.push(S[0].slice()), l)) f[C(f, d, x)].push(new Tc({ shape: { points: S } }))
                if (u && w) g[C(g, p, x - 1)].push(new Mc({ shape: { points: S.concat(w) } }))
                w = S.slice().reverse()
              }
            }
            var I = a.getLineStyle(),
              T = s.getAreaStyle()
            z(
              g,
              function (t, e) {
                this.group.add(mh(t, { style: k({ stroke: 'none', fill: p[e % p.length] }, T), silent: !0 }))
              },
              this
            ),
              z(
                f,
                function (t, e) {
                  this.group.add(mh(t, { style: k({ fill: 'none', stroke: d[e % d.length] }, I), silent: !0 }))
                },
                this
              )
          }
          function C(t, e, n) {
            var i = n % e.length
            return (t[i] = t[i] || []), i
          }
        }),
        (e.type = 'radar'),
        e
      )
    })(Ky),
    MD = (function (t) {
      function e(e, n, i) {
        var r = t.call(this, e, n, i) || this
        return (r.type = 'value'), (r.angle = 0), (r.name = ''), r
      }
      return n(e, t), e
    })(Ww),
    ID = (function () {
      function t(t, e, n) {
        ;(this.dimensions = []),
          (this._model = t),
          (this._indicatorAxes = E(
            t.getIndicatorModels(),
            function (t, e) {
              var n = 'indicator_' + e,
                i = new MD(n, new cb())
              return (i.name = t.get('name')), (i.model = t), (t.axis = i), this.dimensions.push(n), i
            },
            this
          )),
          this.resize(t, n)
      }
      return (
        (t.prototype.getIndicatorAxes = function () {
          return this._indicatorAxes
        }),
        (t.prototype.dataToPoint = function (t, e) {
          var n = this._indicatorAxes[e]
          return this.coordToPoint(n.dataToCoord(t), e)
        }),
        (t.prototype.coordToPoint = function (t, e) {
          var n = this._indicatorAxes[e].angle
          return [this.cx + t * Math.cos(n), this.cy - t * Math.sin(n)]
        }),
        (t.prototype.pointToData = function (t) {
          var e = t[0] - this.cx,
            n = t[1] - this.cy,
            i = Math.sqrt(e * e + n * n)
          ;(e /= i), (n /= i)
          for (var r, o = Math.atan2(-n, e), a = 1 / 0, s = -1, l = 0; l < this._indicatorAxes.length; l++) {
            var u = this._indicatorAxes[l],
              c = Math.abs(o - u.angle)
            c < a && ((r = u), (s = l), (a = c))
          }
          return [s, +(r && r.coordToData(i))]
        }),
        (t.prototype.resize = function (t, e) {
          var n = Xp(t, e).refContainer,
            i = t.get('center'),
            r = Math.min(n.width, n.height) / 2
          ;(this.cx = yo(i[0], n.width) + n.x), (this.cy = yo(i[1], n.height) + n.y), (this.startAngle = (t.get('startAngle') * Math.PI) / 180)
          var o = t.get('radius')
          ;(X(o) || j(o)) && (o = [0, o]),
            (this.r0 = yo(o[0], r)),
            (this.r = yo(o[1], r)),
            z(
              this._indicatorAxes,
              function (t, e) {
                t.setExtent(this.r0, this.r)
                var n = this.startAngle + (e * Math.PI * 2) / this._indicatorAxes.length
                ;(n = Math.atan2(Math.sin(n), Math.cos(n))), (t.angle = n)
              },
              this
            )
        }),
        (t.prototype.update = function (t, e) {
          var n = this._indicatorAxes,
            i = this._model
          z(n, function (t) {
            t.scale.setExtent(1 / 0, -1 / 0)
          }),
            t.eachSeriesByType(
              'radar',
              function (e, r) {
                if ('radar' === e.get('coordinateSystem') && t.getComponent('radar', e.get('radarIndex')) === i) {
                  var o = e.getData()
                  z(n, function (t) {
                    t.scale.unionExtentFromData(o, o.mapDimension(t.dim))
                  })
                }
              },
              this
            )
          var r = i.get('splitNumber'),
            o = new cb()
          o.setExtent(0, r),
            o.setInterval(1),
            z(n, function (t, e) {
              PC(t.scale, t.model, o)
            })
        }),
        (t.prototype.convertToPixel = function (t, e, n) {
          return console.warn('Not implemented.'), null
        }),
        (t.prototype.convertFromPixel = function (t, e, n) {
          return console.warn('Not implemented.'), null
        }),
        (t.prototype.containPoint = function (t) {
          return console.warn('Not implemented.'), !1
        }),
        (t.create = function (e, n) {
          var i = []
          return (
            e.eachComponent('radar', function (r) {
              var o = new t(r, e, n)
              i.push(o), (r.coordinateSystem = o)
            }),
            e.eachSeriesByType('radar', function (t) {
              'radar' === t.get('coordinateSystem') && (t.coordinateSystem = i[t.get('radarIndex') || 0])
            }),
            i
          )
        }),
        (t.dimensions = []),
        t
      )
    })()
  function TD(t) {
    t.registerCoordinateSystem('radar', ID),
      t.registerComponentModel(wD),
      t.registerComponentView(SD),
      t.registerVisual({
        seriesType: 'radar',
        reset: function (t) {
          var e = t.getData()
          e.each(function (t) {
            e.setItemVisual(t, 'legendIcon', 'roundRect')
          }),
            e.setVisual('legendIcon', 'roundRect')
        }
      })
  }
  var CD = sa()
  function DD(t, e) {
    return !!CD(t)[e]
  }
  Qx({ type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' }, bt)
  var AD = { axisPointer: 1, tooltip: 1, brush: 1 }
  function kD(t, e, n) {
    var i = e.getComponentByElement(t.topTarget)
    if (!i || i === n || AD.hasOwnProperty(i.mainType)) return !1
    var r = i.coordinateSystem
    if (!r || r.model === n) return !1
    var o = Hh(i),
      a = Hh(n)
    return !((o.zlevel - a.zlevel || o.z - a.z) <= 0)
  }
  var LD = (function (t) {
    function e(e) {
      var n = t.call(this) || this
      n._zr = e
      var i = W(n._mousedownHandler, n),
        r = W(n._mousemoveHandler, n),
        o = W(n._mouseupHandler, n),
        a = W(n._mousewheelHandler, n),
        s = W(n._pinchHandler, n)
      return (
        (n.enable = function (t, n) {
          var l = n.zInfo,
            u = Hh(l.component),
            c = u.z,
            h = u.zlevel,
            d = { component: l.component, z: c, zlevel: h, z2: rt(l.z2, -1 / 0) },
            p = A({}, n.triggerInfo)
          ;(this._opt = k(A({}, n), { zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !1, preventDefaultMouseMove: !0, zInfoParsed: d, triggerInfo: p })),
            null == t && (t = !0),
            (this._enabled && this._controlType === t) ||
              ((this._enabled = !0),
              this.disable(),
              (!0 !== t && 'move' !== t && 'pan' !== t) || (zD(e, 'mousedown', i, d), zD(e, 'mousemove', r, d), zD(e, 'mouseup', o, d)),
              (!0 !== t && 'scale' !== t && 'zoom' !== t) || (zD(e, 'mousewheel', a, d), zD(e, 'pinch', s, d)))
        }),
        (n.disable = function () {
          ;(this._enabled = !1), ED(e, 'mousedown', i), ED(e, 'mousemove', r), ED(e, 'mouseup', o), ED(e, 'mousewheel', a), ED(e, 'pinch', s)
        }),
        n
      )
    }
    return (
      n(e, t),
      (e.prototype.isDragging = function () {
        return this._dragging
      }),
      (e.prototype.isPinching = function () {
        return this._pinching
      }),
      (e.prototype._checkPointer = function (t, e, n) {
        var i = this._opt,
          r = i.zInfoParsed
        if (kD(t, i.api, r.component)) return !1
        var o = i.triggerInfo,
          a = !1
        return 'global' === o.roamTrigger && (a = !0), a || (a = o.isInSelf(t, e, n)), a && o.isInClip && !o.isInClip(t, e, n) && (a = !1), a
      }),
      (e.prototype._decideCursorStyle = function (t, e, n, i) {
        var r = t.target
        return !r && this._checkPointer(t, e, n) ? 'grab' : i ? (r && r.cursor) || 'default' : void 0
      }),
      (e.prototype.dispose = function () {
        this.disable()
      }),
      (e.prototype._mousedownHandler = function (t) {
        if (!ge(t) && !PD(t)) {
          for (var e = t.target; e; ) {
            if (e.draggable) return
            e = e.__hostTarget || e.parent
          }
          var n = t.offsetX,
            i = t.offsetY
          this._checkPointer(t, n, i) && ((this._x = n), (this._y = i), (this._dragging = !0))
        }
      }),
      (e.prototype._mousemoveHandler = function (t) {
        var e = this._zr
        if ('pinch' !== t.gestureEvent && !DD(e, 'globalPan') && !PD(t)) {
          var n = t.offsetX,
            i = t.offsetY
          if (this._dragging && GD('moveOnMouseMove', t, this._opt)) {
            e.setCursorStyle('grabbing')
            var r = this._x,
              o = this._y,
              a = n - r,
              s = i - o
            ;(this._x = n),
              (this._y = i),
              this._opt.preventDefaultMouseMove && fe(t.event),
              (t.__ecRoamConsumed = !0),
              VD(this, 'pan', 'moveOnMouseMove', t, { dx: a, dy: s, oldX: r, oldY: o, newX: n, newY: i, isAvailableBehavior: null })
          } else {
            var l = this._decideCursorStyle(t, n, i, !1)
            l && e.setCursorStyle(l)
          }
        }
      }),
      (e.prototype._mouseupHandler = function (t) {
        if (!PD(t)) {
          var e = this._zr
          if (!ge(t)) {
            this._dragging = !1
            var n = this._decideCursorStyle(t, t.offsetX, t.offsetY, !0)
            n && e.setCursorStyle(n)
          }
        }
      }),
      (e.prototype._mousewheelHandler = function (t) {
        if (!PD(t)) {
          var e = GD('zoomOnMouseWheel', t, this._opt),
            n = GD('moveOnMouseWheel', t, this._opt),
            i = t.wheelDelta,
            r = Math.abs(i),
            o = t.offsetX,
            a = t.offsetY
          if (0 !== i && (e || n)) {
            if (e) {
              var s = r > 3 ? 1.4 : r > 1 ? 1.2 : 1.1,
                l = i > 0 ? s : 1 / s
              this._checkTriggerMoveZoom(this, 'zoom', 'zoomOnMouseWheel', t, { scale: l, originX: o, originY: a, isAvailableBehavior: null })
            }
            if (n) {
              var u = Math.abs(i),
                c = (i > 0 ? 1 : -1) * (u > 3 ? 0.4 : u > 1 ? 0.15 : 0.05)
              this._checkTriggerMoveZoom(this, 'scrollMove', 'moveOnMouseWheel', t, { scrollDelta: c, originX: o, originY: a, isAvailableBehavior: null })
            }
          }
        }
      }),
      (e.prototype._pinchHandler = function (t) {
        if (!DD(this._zr, 'globalPan') && !PD(t)) {
          var e = t.pinchScale > 1 ? 1.1 : 1 / 1.1
          this._checkTriggerMoveZoom(this, 'zoom', null, t, { scale: e, originX: t.pinchX, originY: t.pinchY, isAvailableBehavior: null })
        }
      }),
      (e.prototype._checkTriggerMoveZoom = function (t, e, n, i, r) {
        t._checkPointer(i, r.originX, r.originY) && (fe(i.event), (i.__ecRoamConsumed = !0), VD(t, e, n, i, r))
      }),
      e
    )
  })(qt)
  function PD(t) {
    return t.__ecRoamConsumed
  }
  var OD,
    RD = sa()
  function ND(t) {
    var e = RD(t)
    return (e.roam = e.roam || {}), (e.uniform = e.uniform || {}), e
  }
  function zD(t, e, n, i) {
    for (var r = ND(t).roam, o = (r[e] = r[e] || []), a = 0; a < o.length; a++) {
      var s = o[a].zInfoParsed
      if ((s.zlevel - i.zlevel || s.z - i.z || s.z2 - i.z2) <= 0) break
    }
    o.splice(a, 0, { listener: n, zInfoParsed: i }),
      (function (t, e) {
        var n = ND(t)
        n.uniform[e] ||
          t.on(
            e,
            (n.uniform[e] = function (t) {
              var i = n.roam[e]
              if (i) for (var r = 0; r < i.length; r++) i[r].listener(t)
            })
          )
      })(t, e)
  }
  function ED(t, e, n) {
    for (var i = ND(t).roam[e] || [], r = 0; r < i.length; r++) if (i[r].listener === n) return i.splice(r, 1), void (i.length || BD(t, e))
  }
  function BD(t, e) {
    var n = ND(t).uniform
    n[e] && (t.off(e, n[e]), (n[e] = null))
  }
  function VD(t, e, n, i, r) {
    ;(r.isAvailableBehavior = W(GD, null, n, i)), t.trigger(e, r)
  }
  function GD(t, e, n) {
    var i = n[t]
    return !t || (i && (!X(i) || e.event[i + 'Key']))
  }
  function FD(t, e, n) {
    var i = t.target
    ;(i.x += e), (i.y += n), i.dirty()
  }
  function WD(t, e, n, i) {
    var r = t.target,
      o = t.zoomLimit,
      a = (t.zoom = t.zoom || 1),
      s = (a = ZD((a *= e), o)) / t.zoom
    ;(t.zoom = a), XD(r, n, i, s), r.dirty()
  }
  function HD(t, e, n, i, r, o) {
    var a = new He(0, 0, 0, 0)
    i.enable(t.get('roam'), {
      api: e,
      zInfo: { component: t },
      triggerInfo: {
        roamTrigger: t.get('roamTrigger'),
        isInSelf: function (t, e, i) {
          return a.copy(n.getBoundingRect()), a.applyTransform(n.getComputedTransform()), a.contain(e, i)
        },
        isInClip: function (t, e, n) {
          return !o || o.contain(e, n)
        }
      }
    }),
      (r.zoomLimit = t.get('scaleLimit'))
    var s = t.coordinateSystem
    r.zoom = s ? s.getZoom() : 1
    var l = t.subType + 'Roam'
    i.off('pan')
      .off('zoom')
      .on('pan', function (n) {
        FD(r, n.dx, n.dy), e.dispatchAction({ seriesId: t.id, type: l, dx: n.dx, dy: n.dy })
      })
      .on('zoom', function (n) {
        WD(r, n.scale, n.originX, n.originY), e.dispatchAction({ seriesId: t.id, type: l, zoom: n.scale, originX: n.originX, originY: n.originY }), e.updateLabelLayout()
      })
  }
  function UD(t, e) {
    return t.pointToProjected ? t.pointToProjected(e) : t.pointToData(e)
  }
  function YD(t, e, n) {
    var i = t.getZoom(),
      r = t.getCenter(),
      o = e.zoom,
      a = t.projectedToPoint ? t.projectedToPoint(r) : t.dataToPoint(r)
    return (
      null != e.dx && null != e.dy && ((a[0] -= e.dx), (a[1] -= e.dy), t.setCenter(UD(t, a))),
      null != o && ((o = ZD(i * o, n) / i), XD(t, e.originX, e.originY, o), t.updateTransform(), t.setCenter(UD(t, a)), t.setZoom(o * i)),
      { center: t.getCenter(), zoom: t.getZoom() }
    )
  }
  function XD(t, e, n, i) {
    ;(t.x -= (e - t.x) * (i - 1)), (t.y -= (n - t.y) * (i - 1)), (t.scaleX *= i), (t.scaleY *= i)
  }
  function ZD(t, e) {
    if (e) {
      var n = e.min || 0,
        i = e.max || 1 / 0
      t = Math.max(Math.min(i, t), n)
    }
    return t
  }
  function jD(t) {
    X(t) && (t = new DOMParser().parseFromString(t, 'text/xml'))
    var e = t
    for (9 === e.nodeType && (e = e.firstChild); 'svg' !== e.nodeName.toLowerCase() || 1 !== e.nodeType; ) e = e.nextSibling
    return e
  }
  var qD = {
      fill: 'fill',
      stroke: 'stroke',
      'stroke-width': 'lineWidth',
      opacity: 'opacity',
      'fill-opacity': 'fillOpacity',
      'stroke-opacity': 'strokeOpacity',
      'stroke-dasharray': 'lineDash',
      'stroke-dashoffset': 'lineDashOffset',
      'stroke-linecap': 'lineCap',
      'stroke-linejoin': 'lineJoin',
      'stroke-miterlimit': 'miterLimit',
      'font-family': 'fontFamily',
      'font-size': 'fontSize',
      'font-style': 'fontStyle',
      'font-weight': 'fontWeight',
      'text-anchor': 'textAlign',
      visibility: 'visibility',
      display: 'display'
    },
    KD = F(qD),
    $D = { 'alignment-baseline': 'textBaseline', 'stop-color': 'stopColor' },
    JD = F($D),
    QD = (function () {
      function t() {
        ;(this._defs = {}), (this._root = null)
      }
      return (
        (t.prototype.parse = function (t, e) {
          e = e || {}
          var n = jD(t)
          this._defsUsePending = []
          var i = new to()
          this._root = i
          var r = [],
            o = n.getAttribute('viewBox') || '',
            a = parseFloat(n.getAttribute('width') || e.width),
            s = parseFloat(n.getAttribute('height') || e.height)
          isNaN(a) && (a = null), isNaN(s) && (s = null), oA(n, i, null, !0, !1)
          for (var l, u, c = n.firstChild; c; ) this._parseNode(c, i, r, null, !1, !1), (c = c.nextSibling)
          if (
            ((function (t, e) {
              for (var n = 0; n < e.length; n++) {
                var i = e[n]
                i[0].style[i[1]] = t[i[2]]
              }
            })(this._defs, this._defsUsePending),
            (this._defsUsePending = []),
            o)
          ) {
            var h = uA(o)
            h.length >= 4 && (l = { x: parseFloat(h[0] || 0), y: parseFloat(h[1] || 0), width: parseFloat(h[2]), height: parseFloat(h[3]) })
          }
          if (l && null != a && null != s && ((u = fA(l, { x: 0, y: 0, width: a, height: s })), !e.ignoreViewBox)) {
            var d = i
            ;(i = new to()).add(d), (d.scaleX = d.scaleY = u.scale), (d.x = u.x), (d.y = u.y)
          }
          return (
            e.ignoreRootClip || null == a || null == s || i.setClipPath(new xl({ shape: { x: 0, y: 0, width: a, height: s } })),
            { root: i, width: a, height: s, viewBoxRect: l, viewBoxTransform: u, named: r }
          )
        }),
        (t.prototype._parseNode = function (t, e, n, i, r, o) {
          var a,
            s = t.nodeName.toLowerCase(),
            l = i
          if (('defs' === s && (r = !0), 'text' === s && (o = !0), 'defs' === s || 'switch' === s)) a = e
          else {
            if (!r) {
              var u = OD[s]
              if (u && _t(OD, s)) {
                a = u.call(this, t, e)
                var c = t.getAttribute('name')
                if (c) {
                  var h = { name: c, namedFrom: null, svgNodeTagLower: s, el: a }
                  n.push(h), 'g' === s && (l = h)
                } else i && n.push({ name: i.name, namedFrom: i, svgNodeTagLower: s, el: a })
                e.add(a)
              }
            }
            var d = tA[s]
            if (d && _t(tA, s)) {
              var p = d.call(this, t),
                f = t.getAttribute('id')
              f && (this._defs[f] = p)
            }
          }
          if (a && a.isGroup)
            for (var g = t.firstChild; g; ) 1 === g.nodeType ? this._parseNode(g, a, n, l, r, o) : 3 === g.nodeType && o && this._parseText(g, a), (g = g.nextSibling)
        }),
        (t.prototype._parseText = function (t, e) {
          var n = new ul({ style: { text: t.textContent }, silent: !0, x: this._textX || 0, y: this._textY || 0 })
          iA(e, n),
            oA(t, n, this._defsUsePending, !1, !1),
            (function (t, e) {
              var n = e.__selfStyle
              if (n) {
                var i = n.textBaseline,
                  r = i
                i && 'auto' !== i
                  ? 'baseline' === i
                    ? (r = 'alphabetic')
                    : 'before-edge' === i || 'text-before-edge' === i
                      ? (r = 'top')
                      : 'after-edge' === i || 'text-after-edge' === i
                        ? (r = 'bottom')
                        : ('central' !== i && 'mathematical' !== i) || (r = 'middle')
                  : (r = 'alphabetic'),
                  (t.style.textBaseline = r)
              }
              var o = e.__inheritedStyle
              if (o) {
                var a = o.textAlign,
                  s = a
                a && ('middle' === a && (s = 'center'), (t.style.textAlign = s))
              }
            })(n, e)
          var i = n.style,
            r = i.fontSize
          r && r < 9 && ((i.fontSize = 9), (n.scaleX *= r / 9), (n.scaleY *= r / 9))
          var o = (i.fontSize || i.fontFamily) && [i.fontStyle, i.fontWeight, (i.fontSize || 12) + 'px', i.fontFamily || 'sans-serif'].join(' ')
          i.font = o
          var a = n.getBoundingRect()
          return (this._textX += a.width), e.add(n), n
        }),
        (t.internalField = void (OD = {
          g: function (t, e) {
            var n = new to()
            return iA(e, n), oA(t, n, this._defsUsePending, !1, !1), n
          },
          rect: function (t, e) {
            var n = new xl()
            return (
              iA(e, n),
              oA(t, n, this._defsUsePending, !1, !1),
              n.setShape({
                x: parseFloat(t.getAttribute('x') || '0'),
                y: parseFloat(t.getAttribute('y') || '0'),
                width: parseFloat(t.getAttribute('width') || '0'),
                height: parseFloat(t.getAttribute('height') || '0')
              }),
              (n.silent = !0),
              n
            )
          },
          circle: function (t, e) {
            var n = new nc()
            return (
              iA(e, n),
              oA(t, n, this._defsUsePending, !1, !1),
              n.setShape({ cx: parseFloat(t.getAttribute('cx') || '0'), cy: parseFloat(t.getAttribute('cy') || '0'), r: parseFloat(t.getAttribute('r') || '0') }),
              (n.silent = !0),
              n
            )
          },
          line: function (t, e) {
            var n = new Ac()
            return (
              iA(e, n),
              oA(t, n, this._defsUsePending, !1, !1),
              n.setShape({
                x1: parseFloat(t.getAttribute('x1') || '0'),
                y1: parseFloat(t.getAttribute('y1') || '0'),
                x2: parseFloat(t.getAttribute('x2') || '0'),
                y2: parseFloat(t.getAttribute('y2') || '0')
              }),
              (n.silent = !0),
              n
            )
          },
          ellipse: function (t, e) {
            var n = new rc()
            return (
              iA(e, n),
              oA(t, n, this._defsUsePending, !1, !1),
              n.setShape({
                cx: parseFloat(t.getAttribute('cx') || '0'),
                cy: parseFloat(t.getAttribute('cy') || '0'),
                rx: parseFloat(t.getAttribute('rx') || '0'),
                ry: parseFloat(t.getAttribute('ry') || '0')
              }),
              (n.silent = !0),
              n
            )
          },
          polygon: function (t, e) {
            var n,
              i = t.getAttribute('points')
            i && (n = rA(i))
            var r = new Mc({ shape: { points: n || [] }, silent: !0 })
            return iA(e, r), oA(t, r, this._defsUsePending, !1, !1), r
          },
          polyline: function (t, e) {
            var n,
              i = t.getAttribute('points')
            i && (n = rA(i))
            var r = new Tc({ shape: { points: n || [] }, silent: !0 })
            return iA(e, r), oA(t, r, this._defsUsePending, !1, !1), r
          },
          image: function (t, e) {
            var n = new dl()
            return (
              iA(e, n),
              oA(t, n, this._defsUsePending, !1, !1),
              n.setStyle({
                image: t.getAttribute('xlink:href') || t.getAttribute('href'),
                x: +t.getAttribute('x'),
                y: +t.getAttribute('y'),
                width: +t.getAttribute('width'),
                height: +t.getAttribute('height')
              }),
              (n.silent = !0),
              n
            )
          },
          text: function (t, e) {
            var n = t.getAttribute('x') || '0',
              i = t.getAttribute('y') || '0',
              r = t.getAttribute('dx') || '0',
              o = t.getAttribute('dy') || '0'
            ;(this._textX = parseFloat(n) + parseFloat(r)), (this._textY = parseFloat(i) + parseFloat(o))
            var a = new to()
            return iA(e, a), oA(t, a, this._defsUsePending, !1, !0), a
          },
          tspan: function (t, e) {
            var n = t.getAttribute('x'),
              i = t.getAttribute('y')
            null != n && (this._textX = parseFloat(n)), null != i && (this._textY = parseFloat(i))
            var r = t.getAttribute('dx') || '0',
              o = t.getAttribute('dy') || '0',
              a = new to()
            return iA(e, a), oA(t, a, this._defsUsePending, !1, !0), (this._textX += parseFloat(r)), (this._textY += parseFloat(o)), a
          },
          path: function (t, e) {
            var n = Qu(t.getAttribute('d') || '')
            return iA(e, n), oA(t, n, this._defsUsePending, !1, !1), (n.silent = !0), n
          }
        })),
        t
      )
    })(),
    tA = {
      lineargradient: function (t) {
        var e = parseInt(t.getAttribute('x1') || '0', 10),
          n = parseInt(t.getAttribute('y1') || '0', 10),
          i = parseInt(t.getAttribute('x2') || '10', 10),
          r = parseInt(t.getAttribute('y2') || '0', 10),
          o = new Bc(e, n, i, r)
        return eA(t, o), nA(t, o), o
      },
      radialgradient: function (t) {
        var e = parseInt(t.getAttribute('cx') || '0', 10),
          n = parseInt(t.getAttribute('cy') || '0', 10),
          i = parseInt(t.getAttribute('r') || '0', 10),
          r = new Vc(e, n, i)
        return eA(t, r), nA(t, r), r
      }
    }
  function eA(t, e) {
    'userSpaceOnUse' === t.getAttribute('gradientUnits') && (e.global = !0)
  }
  function nA(t, e) {
    for (var n = t.firstChild; n; ) {
      if (1 === n.nodeType && 'stop' === n.nodeName.toLocaleLowerCase()) {
        var i = n.getAttribute('offset'),
          r = void 0
        r = i && i.indexOf('%') > 0 ? parseInt(i, 10) / 100 : i ? parseFloat(i) : 0
        var o = {}
        pA(n, o, o)
        var a = o.stopColor || n.getAttribute('stop-color') || '#000000',
          s = o.stopOpacity || n.getAttribute('stop-opacity')
        if (s) {
          var l = oi(a)
          l && l[3] && ((l[3] *= $n(s)), (a = fi(l, 'rgba')))
        }
        e.colorStops.push({ offset: r, color: a })
      }
      n = n.nextSibling
    }
  }
  function iA(t, e) {
    t && t.__inheritedStyle && (e.__inheritedStyle || (e.__inheritedStyle = {}), k(e.__inheritedStyle, t.__inheritedStyle))
  }
  function rA(t) {
    for (var e = uA(t), n = [], i = 0; i < e.length; i += 2) {
      var r = parseFloat(e[i]),
        o = parseFloat(e[i + 1])
      n.push([r, o])
    }
    return n
  }
  function oA(t, e, n, i, r) {
    var o = e,
      a = (o.__inheritedStyle = o.__inheritedStyle || {}),
      s = {}
    1 === t.nodeType &&
      ((function (t, e) {
        var n = t.getAttribute('transform')
        if (n) {
          n = n.replace(/,/g, ' ')
          var i = [],
            r = null
          n.replace(cA, function (t, e, n) {
            return i.push(e, n), ''
          })
          for (var o = i.length - 1; o > 0; o -= 2) {
            var a = i[o],
              s = i[o - 1],
              l = uA(a)
            switch (((r = r || [1, 0, 0, 1, 0, 0]), s)) {
              case 'translate':
                Se(r, r, [parseFloat(l[0]), parseFloat(l[1] || '0')])
                break
              case 'scale':
                Ie(r, r, [parseFloat(l[0]), parseFloat(l[1] || l[0])])
                break
              case 'rotate':
                Me(r, r, -parseFloat(l[0]) * hA, [parseFloat(l[1] || '0'), parseFloat(l[2] || '0')])
                break
              case 'skewX':
                we(r, [1, 0, Math.tan(parseFloat(l[0]) * hA), 1, 0, 0], r)
                break
              case 'skewY':
                we(r, [1, Math.tan(parseFloat(l[0]) * hA), 0, 1, 0, 0], r)
                break
              case 'matrix':
                ;(r[0] = parseFloat(l[0])), (r[1] = parseFloat(l[1])), (r[2] = parseFloat(l[2])), (r[3] = parseFloat(l[3])), (r[4] = parseFloat(l[4])), (r[5] = parseFloat(l[5]))
            }
          }
          e.setLocalTransform(r)
        }
      })(t, e),
      pA(t, a, s),
      i ||
        (function (t, e, n) {
          for (var i = 0; i < KD.length; i++) {
            var r = KD[i]
            null != (o = t.getAttribute(r)) && (e[qD[r]] = o)
          }
          for (i = 0; i < JD.length; i++) {
            var o
            r = JD[i]
            null != (o = t.getAttribute(r)) && (n[$D[r]] = o)
          }
        })(t, a, s)),
      (o.style = o.style || {}),
      null != a.fill && (o.style.fill = sA(o, 'fill', a.fill, n)),
      null != a.stroke && (o.style.stroke = sA(o, 'stroke', a.stroke, n)),
      z(['lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'], function (t) {
        null != a[t] && (o.style[t] = parseFloat(a[t]))
      }),
      z(['lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign'], function (t) {
        null != a[t] && (o.style[t] = a[t])
      }),
      r && (o.__selfStyle = s),
      a.lineDash &&
        (o.style.lineDash = E(uA(a.lineDash), function (t) {
          return parseFloat(t)
        })),
      ('hidden' !== a.visibility && 'collapse' !== a.visibility) || (o.invisible = !0),
      'none' === a.display && (o.ignore = !0)
  }
  var aA = /^url\(\s*#(.*?)\)/
  function sA(t, e, n, i) {
    var r = n && n.match(aA)
    if (!r) return 'none' === n && (n = null), n
    var o = ut(r[1])
    i.push([t, e, o])
  }
  var lA = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g
  function uA(t) {
    return t.match(lA) || []
  }
  var cA = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.eE,]*)\)/g,
    hA = Math.PI / 180
  var dA = /([^\s:;]+)\s*:\s*([^:;]+)/g
  function pA(t, e, n) {
    var i,
      r = t.getAttribute('style')
    if (r)
      for (dA.lastIndex = 0; null != (i = dA.exec(r)); ) {
        var o = i[1],
          a = _t(qD, o) ? qD[o] : null
        a && (e[a] = i[2])
        var s = _t($D, o) ? $D[o] : null
        s && (n[s] = i[2])
      }
  }
  function fA(t, e) {
    var n = e.width / t.width,
      i = e.height / t.height,
      r = Math.min(n, i)
    return { scale: r, x: -(t.x + t.width / 2) * r + (e.x + e.width / 2), y: -(t.y + t.height / 2) * r + (e.y + e.height / 2) }
  }
  var gA = yt(['rect', 'circle', 'line', 'ellipse', 'polygon', 'polyline', 'path', 'text', 'tspan', 'g']),
    yA = (function () {
      function t(t, e) {
        ;(this.type = 'geoSVG'), (this._usedGraphicMap = yt()), (this._freedGraphics = []), (this._mapName = t), (this._parsedXML = jD(e))
      }
      return (
        (t.prototype.load = function () {
          var t = this._firstGraphic
          if (!t) {
            ;(t = this._firstGraphic = this._buildGraphic(this._parsedXML)), this._freedGraphics.push(t), (this._boundingRect = this._firstGraphic.boundingRect.clone())
            var e = (function (t) {
                var e = [],
                  n = yt()
                return (
                  z(t, function (t) {
                    if (null == t.namedFrom) {
                      var i = new fw(t.name, t.el)
                      e.push(i), n.set(t.name, i)
                    }
                  }),
                  { regions: e, regionsMap: n }
                )
              })(t.named),
              n = e.regions,
              i = e.regionsMap
            ;(this._regions = n), (this._regionsMap = i)
          }
          return { boundingRect: this._boundingRect, regions: this._regions, regionsMap: this._regionsMap }
        }),
        (t.prototype._buildGraphic = function (t) {
          var e, n
          try {
            ;(e =
              (t &&
                (function (t, e) {
                  return new QD().parse(t, e)
                })(t, { ignoreViewBox: !0, ignoreRootClip: !0 })) ||
              {}),
              lt(null != (n = e.root))
          } catch (t) {
            throw new Error('Invalid svg format\n' + t.message)
          }
          var i = new to()
          i.add(n), (i.isGeoSVGGraphicRoot = !0)
          var r = e.width,
            o = e.height,
            a = e.viewBoxRect,
            s = this._boundingRect
          if (!s) {
            var l = void 0,
              u = void 0,
              c = void 0,
              h = void 0
            if ((null != r ? ((l = 0), (c = r)) : a && ((l = a.x), (c = a.width)), null != o ? ((u = 0), (h = o)) : a && ((u = a.y), (h = a.height)), null == l || null == u)) {
              var d = n.getBoundingRect()
              null == l && ((l = d.x), (c = d.width)), null == u && ((u = d.y), (h = d.height))
            }
            s = this._boundingRect = new He(l, u, c, h)
          }
          if (a) {
            var p = fA(a, s)
            ;(n.scaleX = n.scaleY = p.scale), (n.x = p.x), (n.y = p.y)
          }
          i.setClipPath(new xl({ shape: s.plain() }))
          var f = []
          return (
            z(e.named, function (t) {
              var e
              null != gA.get(t.svgNodeTagLower) &&
                (f.push(t),
                ((e = t.el).silent = !1),
                e.isGroup &&
                  e.traverse(function (t) {
                    t.silent = !1
                  }))
            }),
            { root: i, boundingRect: s, named: f }
          )
        }),
        (t.prototype.useGraphic = function (t) {
          var e = this._usedGraphicMap,
            n = e.get(t)
          return n || ((n = this._freedGraphics.pop() || this._buildGraphic(this._parsedXML)), e.set(t, n), n)
        }),
        (t.prototype.freeGraphic = function (t) {
          var e = this._usedGraphicMap,
            n = e.get(t)
          n && (e.removeKey(t), this._freedGraphics.push(n))
        }),
        t
      )
    })()
  for (
    var vA = [126, 25],
      mA = '南海诸岛',
      xA = [
        [
          [0, 3.5],
          [7, 11.2],
          [15, 11.9],
          [30, 7],
          [42, 0.7],
          [52, 0.7],
          [56, 7.7],
          [59, 0.7],
          [64, 0.7],
          [64, 0],
          [5, 0],
          [0, 3.5]
        ],
        [
          [13, 16.1],
          [19, 14.7],
          [16, 21.7],
          [11, 23.1],
          [13, 16.1]
        ],
        [
          [12, 32.2],
          [14, 38.5],
          [15, 38.5],
          [13, 32.2],
          [12, 32.2]
        ],
        [
          [16, 47.6],
          [12, 53.2],
          [13, 53.2],
          [18, 47.6],
          [16, 47.6]
        ],
        [
          [6, 64.4],
          [8, 70],
          [9, 70],
          [8, 64.4],
          [6, 64.4]
        ],
        [
          [23, 82.6],
          [29, 79.8],
          [30, 79.8],
          [25, 82.6],
          [23, 82.6]
        ],
        [
          [37, 70.7],
          [43, 62.3],
          [44, 62.3],
          [39, 70.7],
          [37, 70.7]
        ],
        [
          [48, 51.1],
          [51, 45.5],
          [53, 45.5],
          [50, 51.1],
          [48, 51.1]
        ],
        [
          [51, 35],
          [51, 28.7],
          [53, 28.7],
          [53, 35],
          [51, 35]
        ],
        [
          [52, 22.4],
          [55, 17.5],
          [56, 17.5],
          [53, 22.4],
          [52, 22.4]
        ],
        [
          [58, 12.6],
          [62, 7],
          [63, 7],
          [60, 12.6],
          [58, 12.6]
        ],
        [
          [0, 3.5],
          [0, 93.1],
          [64, 93.1],
          [64, 0],
          [63, 0],
          [63, 92.4],
          [1, 92.4],
          [1, 3.5],
          [0, 3.5]
        ]
      ],
      _A = 0;
    _A < xA.length;
    _A++
  )
    for (var bA = 0; bA < xA[_A].length; bA++) (xA[_A][bA][0] /= 10.5), (xA[_A][bA][1] /= -14), (xA[_A][bA][0] += vA[0]), (xA[_A][bA][1] += vA[1])
  var wA = { 南海诸岛: [32, 80], 广东: [0, -10], 香港: [10, 5], 澳门: [-10, 10], 天津: [5, 5] }
  var SA = [
    [
      [123.45165252685547, 25.73527164402261],
      [123.49731445312499, 25.73527164402261],
      [123.49731445312499, 25.750734064600884],
      [123.45165252685547, 25.750734064600884],
      [123.45165252685547, 25.73527164402261]
    ]
  ]
  var MA = (function () {
    function t(t, e, n) {
      var i
      ;(this.type = 'geoJSON'),
        (this._parsedMap = yt()),
        (this._mapName = t),
        (this._specialAreas = n),
        (this._geoJSON = X((i = e)) ? ('undefined' != typeof JSON && JSON.parse ? JSON.parse(i) : new Function('return (' + i + ');')()) : i)
    }
    return (
      (t.prototype.load = function (t, e) {
        e = e || 'name'
        var n = this._parsedMap.get(e)
        if (!n) {
          var i = this._parseToRegions(e)
          n = this._parsedMap.set(e, { regions: i, boundingRect: IA(i) })
        }
        var r = yt(),
          o = []
        return (
          z(n.regions, function (e) {
            var n = e.name
            t && _t(t, n) && (e = e.cloneShallow((n = t[n]))), o.push(e), r.set(n, e)
          }),
          { regions: o, boundingRect: n.boundingRect || new He(0, 0, 0, 0), regionsMap: r }
        )
      }),
      (t.prototype._parseToRegions = function (t) {
        var e,
          n = this._mapName,
          i = this._geoJSON
        try {
          e = i ? vw(i, t) : []
        } catch (t) {
          throw new Error('Invalid geoJson format\n' + t.message)
        }
        return (
          (function (t, e) {
            if ('china' === t) {
              for (var n = 0; n < e.length; n++) if (e[n].name === mA) return
              e.push(
                new pw(
                  mA,
                  E(xA, function (t) {
                    return { type: 'polygon', exterior: t }
                  }),
                  vA
                )
              )
            }
          })(n, e),
          z(
            e,
            function (t) {
              var e = t.name
              !(function (t, e) {
                if ('china' === t) {
                  var n = wA[e.name]
                  if (n) {
                    var i = e.getCenter()
                    ;(i[0] += n[0] / 10.5), (i[1] += -n[1] / 14), e.setCenter(i)
                  }
                }
              })(n, t),
                (function (t, e) {
                  'china' === t && '台湾' === e.name && e.geometries.push({ type: 'polygon', exterior: SA[0] })
                })(n, t)
              var i = this._specialAreas && this._specialAreas[e]
              i && t.transformTo(i.left, i.top, i.width, i.height)
            },
            this
          ),
          e
        )
      }),
      (t.prototype.getMapForUser = function () {
        return { geoJson: this._geoJSON, geoJSON: this._geoJSON, specialAreas: this._specialAreas }
      }),
      t
    )
  })()
  function IA(t) {
    for (var e, n = 0; n < t.length; n++) {
      var i = t[n].getBoundingRect()
      ;(e = e || i.clone()).union(i)
    }
    return e
  }
  var TA = yt(),
    CA = function (t, e, n) {
      if (e.svg) {
        var i = new yA(t, e.svg)
        TA.set(t, i)
      } else {
        var r = e.geoJson || e.geoJSON
        r && !e.features ? (n = e.specialAreas) : (r = e)
        i = new MA(t, r, n)
        TA.set(t, i)
      }
    },
    DA = function (t) {
      return TA.get(t)
    },
    AA = function (t) {
      var e = TA.get(t)
      return e && 'geoJSON' === e.type && e.getMapForUser()
    },
    kA = function (t, e, n) {
      var i = TA.get(t)
      if (i) return i.load(e, n)
    },
    LA = ['rect', 'circle', 'line', 'ellipse', 'polygon', 'polyline', 'path'],
    PA = yt(LA),
    OA = yt(LA.concat(['g'])),
    RA = yt(LA.concat(['g'])),
    NA = sa()
  function zA(t) {
    var e = t.getItemStyle(),
      n = t.get('areaColor')
    return null != n && (e.fill = n), e
  }
  function EA(t) {
    var e = t.style
    e && ((e.stroke = e.stroke || e.fill), (e.fill = null))
  }
  var BA = (function () {
    function t(t) {
      var e = (this.group = new to()),
        n = (this._transformGroup = new to())
      e.add(n),
        (this.uid = Md('ec_map_draw')),
        (this._controller = new LD(t.getZr())),
        (this._controllerHost = { target: n }),
        n.add((this._regionsGroup = new to())),
        n.add((this._svgGroup = new to()))
    }
    return (
      (t.prototype.draw = function (t, e, n, i, r) {
        var o = 'geo' === t.mainType,
          a = t.getData && t.getData()
        o &&
          e.eachComponent({ mainType: 'series', subType: 'map' }, function (e) {
            a || e.getHostGeoModel() !== t || (a = e.getData())
          })
        var s,
          l = t.coordinateSystem,
          u = this._regionsGroup,
          c = this._transformGroup,
          h = l.getTransformInfo(),
          d = h.raw,
          p = h.roam,
          f = !u.childAt(0) || r
        t.getShallow('clip', !0) ? ((s = l.getViewRect().clone()), this.group.setClipPath(new xl({ shape: s.clone() }))) : this.group.removeClipPath(),
          f ? ((c.x = p.x), (c.y = p.y), (c.scaleX = p.scaleX), (c.scaleY = p.scaleY), c.dirty()) : th(c, p, t)
        var g = a && a.getVisual('visualMeta') && a.getVisual('visualMeta').length > 0,
          y = { api: n, geo: l, mapOrGeoModel: t, data: a, isVisualEncodedByVisualMap: g, isGeo: o, transformInfoRaw: d }
        'geoJSON' === l.resourceType ? this._buildGeoJSON(y) : 'geoSVG' === l.resourceType && this._buildSVG(y),
          this._updateController(t, s, e, n),
          this._updateMapSelectHandler(t, u, n, i)
      }),
      (t.prototype._buildGeoJSON = function (t) {
        var e = (this._regionsGroupByName = yt()),
          n = yt(),
          i = this._regionsGroup,
          r = t.transformInfoRaw,
          o = t.mapOrGeoModel,
          a = t.data,
          s = t.geo.projection,
          l = s && s.stream
        function u(t, e) {
          return e && (t = e(t)), t && [t[0] * r.scaleX + r.x, t[1] * r.scaleY + r.y]
        }
        function c(t) {
          for (var e = [], n = !l && s && s.project, i = 0; i < t.length; ++i) {
            var r = u(t[i], n)
            r && e.push(r)
          }
          return e
        }
        function h(t) {
          return { shape: { points: c(t) } }
        }
        i.removeAll(),
          z(t.geo.regions, function (r) {
            var c = r.name,
              d = e.get(c),
              p = n.get(c) || {},
              f = p.dataIdx,
              g = p.regionModel
            if (!d) {
              ;(d = e.set(c, new to())), i.add(d), (f = a ? a.indexOfName(c) : null)
              var y = (g = t.isGeo ? o.getRegionModel(c) : a ? a.getItemModel(f) : null).get('silent', !0)
              null != y && (d.silent = y), n.set(c, { dataIdx: f, regionModel: g })
            }
            var v = [],
              m = []
            z(r.geometries, function (t) {
              if ('polygon' === t.type) {
                var e = [t.exterior].concat(t.interiors || [])
                l && (e = UA(e, l)),
                  z(e, function (t) {
                    v.push(new Mc(h(t)))
                  })
              } else {
                var n = t.points
                l && (n = UA(n, l, !0)),
                  z(n, function (t) {
                    m.push(new Tc(h(t)))
                  })
              }
            })
            var x = u(r.getCenter(), s && s.project)
            function _(e, n) {
              if (e.length) {
                var i = new zc({ culling: !0, segmentIgnoreThreshold: 1, shape: { paths: e } })
                d.add(i), VA(t, i, f, g), GA(t, i, c, g, o, f, x), n && (EA(i), z(i.states, EA))
              }
            }
            _(v), _(m, !0)
          }),
          e.each(function (e, i) {
            var r = n.get(i),
              a = r.dataIdx,
              s = r.regionModel
            FA(t, e, i, s, o, a), WA(t, e, i, s, o), HA(t, e, i, s, o)
          }, this)
      }),
      (t.prototype._buildSVG = function (t) {
        var e = t.geo.map,
          n = t.transformInfoRaw
        ;(this._svgGroup.x = n.x),
          (this._svgGroup.y = n.y),
          (this._svgGroup.scaleX = n.scaleX),
          (this._svgGroup.scaleY = n.scaleY),
          this._svgResourceChanged(e) && (this._freeSVG(), this._useSVG(e))
        var i = (this._svgDispatcherMap = yt()),
          r = !1
        z(
          this._svgGraphicRecord.named,
          function (e) {
            var n = e.name,
              o = t.mapOrGeoModel,
              a = t.data,
              s = e.svgNodeTagLower,
              l = e.el,
              u = a ? a.indexOfName(n) : null,
              c = o.getRegionModel(n)
            null != PA.get(s) && l instanceof os && VA(t, l, u, c), l instanceof os && (l.culling = !0)
            var h = c.get('silent', !0)
            ;(null != h && (l.silent = h), (l.z2EmphasisLift = 0), e.namedFrom) ||
              (null != RA.get(s) && GA(t, l, n, c, o, u, null),
              FA(t, l, n, c, o, u),
              WA(t, l, n, c, o),
              null != OA.get(s) && ('self' === HA(t, l, n, c, o) && (r = !0), (i.get(n) || i.set(n, [])).push(l)))
          },
          this
        ),
          this._enableBlurEntireSVG(r, t)
      }),
      (t.prototype._enableBlurEntireSVG = function (t, e) {
        if (t && e.isGeo) {
          var n = e.mapOrGeoModel.getModel(['blur', 'itemStyle']).getItemStyle().opacity
          this._svgGraphicRecord.root.traverse(function (t) {
            if (!t.isGroup) {
              uu(t)
              var e = t.ensureState('blur').style || {}
              null == e.opacity && null != n && (e.opacity = n), t.ensureState('emphasis')
            }
          })
        }
      }),
      (t.prototype.remove = function () {
        this._regionsGroup.removeAll(), (this._regionsGroupByName = null), this._svgGroup.removeAll(), this._freeSVG(), this._controller.dispose(), (this._controllerHost = null)
      }),
      (t.prototype.findHighDownDispatchers = function (t, e) {
        if (null == t) return []
        var n = e.coordinateSystem
        if ('geoJSON' === n.resourceType) {
          var i = this._regionsGroupByName
          if (i) {
            var r = i.get(t)
            return r ? [r] : []
          }
        } else if ('geoSVG' === n.resourceType) return (this._svgDispatcherMap && this._svgDispatcherMap.get(t)) || []
      }),
      (t.prototype._svgResourceChanged = function (t) {
        return this._svgMapName !== t
      }),
      (t.prototype._useSVG = function (t) {
        var e = DA(t)
        if (e && 'geoSVG' === e.type) {
          var n = e.useGraphic(this.uid)
          this._svgGroup.add(n.root), (this._svgGraphicRecord = n), (this._svgMapName = t)
        }
      }),
      (t.prototype._freeSVG = function () {
        var t = this._svgMapName
        if (null != t) {
          var e = DA(t)
          e && 'geoSVG' === e.type && e.freeGraphic(this.uid),
            (this._svgGraphicRecord = null),
            (this._svgDispatcherMap = null),
            this._svgGroup.removeAll(),
            (this._svgMapName = null)
        }
      }),
      (t.prototype._updateController = function (t, e, n, i) {
        var r = t.coordinateSystem,
          o = this._controller,
          a = this._controllerHost
        ;(a.zoomLimit = t.get('scaleLimit')),
          (a.zoom = r.getZoom()),
          o.enable(t.get('roam') || !1, {
            api: i,
            zInfo: { component: t },
            triggerInfo: {
              roamTrigger: t.get('roamTrigger'),
              isInSelf: function (t, e, n) {
                return r.containPoint([e, n])
              },
              isInClip: function (t, n, i) {
                return !e || e.contain(n, i)
              }
            }
          })
        var s = t.mainType
        function l() {
          var e = { type: 'geoRoam', componentType: s }
          return (e[s + 'Id'] = t.id), e
        }
        o.off('pan').on(
          'pan',
          function (t) {
            ;(this._mouseDownFlag = !1), FD(a, t.dx, t.dy), i.dispatchAction(A(l(), { dx: t.dx, dy: t.dy, animation: { duration: 0 } }))
          },
          this
        ),
          o.off('zoom').on(
            'zoom',
            function (t) {
              ;(this._mouseDownFlag = !1),
                WD(a, t.scale, t.originX, t.originY),
                i.dispatchAction(A(l(), { totalZoom: a.zoom, zoom: t.scale, originX: t.originX, originY: t.originY, animation: { duration: 0 } }))
            },
            this
          )
      }),
      (t.prototype.resetForLabelLayout = function () {
        this.group.traverse(function (t) {
          var e = t.getTextContent()
          e && (e.ignore = NA(e).ignore)
        })
      }),
      (t.prototype._updateMapSelectHandler = function (t, e, n, i) {
        var r = this
        e.off('mousedown'),
          e.off('click'),
          t.get('selectedMode') &&
            (e.on('mousedown', function () {
              r._mouseDownFlag = !0
            }),
            e.on('click', function (t) {
              r._mouseDownFlag && (r._mouseDownFlag = !1)
            }))
      }),
      t
    )
  })()
  function VA(t, e, n, i) {
    var r = i.getModel('itemStyle'),
      o = i.getModel(['emphasis', 'itemStyle']),
      a = i.getModel(['blur', 'itemStyle']),
      s = i.getModel(['select', 'itemStyle']),
      l = zA(r),
      u = zA(o),
      c = zA(s),
      h = zA(a),
      d = t.data
    if (d) {
      var p = d.getItemVisual(n, 'style'),
        f = d.getItemVisual(n, 'decal')
      t.isVisualEncodedByVisualMap && p.fill && (l.fill = p.fill), f && (l.decal = Bm(f, t.api))
    }
    e.setStyle(l), (e.style.strokeNoScale = !0), (e.ensureState('emphasis').style = u), (e.ensureState('select').style = c), (e.ensureState('blur').style = h), uu(e)
  }
  function GA(t, e, n, i, r, o, a) {
    var s = t.data,
      l = t.isGeo,
      u = s && isNaN(s.get(s.mapDimension('value'), o)),
      c = s && s.getItemLayout(o)
    if (l || u || (c && c.showLabel)) {
      var h = l ? n : o,
        d = void 0
      ;(!s || o >= 0) && (d = r)
      var p = a ? { normal: { align: 'center', verticalAlign: 'middle' } } : null
      $h(e, Jh(i), { labelFetcher: d, labelDataIndex: h, defaultText: n }, p)
      var f = e.getTextContent()
      if (f && ((NA(f).ignore = f.ignore), e.textConfig && a)) {
        var g = e.getBoundingRect().clone()
        ;(e.textConfig.layoutRect = g), (e.textConfig.position = [((a[0] - g.x) / g.width) * 100 + '%', ((a[1] - g.y) / g.height) * 100 + '%'])
      }
      e.disableLabelAnimation = !0
    } else e.removeTextContent(), e.removeTextConfig(), (e.disableLabelAnimation = null)
  }
  function FA(t, e, n, i, r, o) {
    t.data
      ? t.data.setItemGraphicEl(o, e)
      : (zl(e).eventData = { componentType: 'geo', componentIndex: r.componentIndex, geoIndex: r.componentIndex, name: n, region: (i && i.option) || {} })
  }
  function WA(t, e, n, i, r) {
    t.data || zh({ el: e, componentModel: r, itemName: n, itemTooltipOption: i.get('tooltip') })
  }
  function HA(t, e, n, i, r) {
    e.highDownSilentOnTouch = !!r.get('selectedMode')
    var o = i.getModel('emphasis'),
      a = o.get('focus')
    return (
      Tu(e, a, o.get('blurScope'), o.get('disabled')),
      t.isGeo &&
        (function (t, e, n) {
          var i = zl(t)
          ;(i.componentMainType = e.mainType), (i.componentIndex = e.componentIndex), (i.componentHighDownName = n)
        })(e, r, n),
      a
    )
  }
  function UA(t, e, n) {
    var i,
      r = []
    function o() {
      i = []
    }
    function a() {
      i.length && (r.push(i), (i = []))
    }
    var s = e({
      polygonStart: o,
      polygonEnd: a,
      lineStart: o,
      lineEnd: a,
      point: function (t, e) {
        isFinite(t) && isFinite(e) && i.push([t, e])
      },
      sphere: function () {}
    })
    return (
      !n && s.polygonStart(),
      z(t, function (t) {
        s.lineStart()
        for (var e = 0; e < t.length; e++) s.point(t[e][0], t[e][1])
        s.lineEnd()
      }),
      !n && s.polygonEnd(),
      r
    )
  }
  var YA = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n, i) {
          if (!i || 'mapToggleSelect' !== i.type || i.from !== this.uid) {
            var r = this.group
            if ((r.removeAll(), !t.getHostGeoModel())) {
              if (
                (this._mapDraw && i && 'geoRoam' === i.type && this._mapDraw.resetForLabelLayout(),
                i && 'geoRoam' === i.type && 'series' === i.componentType && i.seriesId === t.id)
              )
                (o = this._mapDraw) && r.add(o.group)
              else if (t.needsDrawMap) {
                var o = this._mapDraw || new BA(n)
                r.add(o.group), o.draw(t, e, n, this, i), (this._mapDraw = o)
              } else this._mapDraw && this._mapDraw.remove(), (this._mapDraw = null)
              t.get('showLegendSymbol') && e.getComponent('legend') && this._renderSymbols(t, e, n)
            }
          }
        }),
        (e.prototype.remove = function () {
          this._mapDraw && this._mapDraw.remove(), (this._mapDraw = null), this.group.removeAll()
        }),
        (e.prototype.dispose = function () {
          this._mapDraw && this._mapDraw.remove(), (this._mapDraw = null)
        }),
        (e.prototype._renderSymbols = function (t, e, n) {
          var i = t.originalData,
            r = this.group
          i.each(i.mapDimension('value'), function (e, n) {
            if (!isNaN(e)) {
              var o = i.getItemLayout(n)
              if (o && o.point) {
                var a = o.point,
                  s = o.offset,
                  l = new nc({ style: { fill: t.getData().getVisual('style').fill }, shape: { cx: a[0] + 9 * s, cy: a[1], r: 3 }, silent: !0, z2: 8 + (s ? 0 : 11) })
                if (!s) {
                  var u = t.mainSeries.getData(),
                    c = i.getName(n),
                    h = u.indexOfName(c),
                    d = i.getItemModel(n),
                    p = d.getModel('label'),
                    f = u.getItemGraphicEl(h)
                  $h(l, Jh(d), {
                    labelFetcher: {
                      getFormattedLabel: function (e, n) {
                        return t.getFormattedLabel(h, n)
                      }
                    },
                    defaultText: c
                  }),
                    (l.disableLabelAnimation = !0),
                    p.get('position') || l.setTextConfig({ position: 'bottom' }),
                    (f.onHoverStateChange = function (t) {
                      su(l, t)
                    })
                }
                r.add(l)
              }
            }
          })
        }),
        (e.type = 'map'),
        e
      )
    })(tv),
    XA = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (
          (n.type = e.type),
          (n.needsDrawMap = !1),
          (n.seriesGroup = []),
          (n.getTooltipPosition = function (t) {
            if (null != t) {
              var e = this.getData().getName(t),
                n = this.coordinateSystem,
                i = n.getRegion(e)
              return i && n.dataToPoint(i.getCenter())
            }
          }),
          n
        )
      }
      return (
        n(e, t),
        (e.prototype.getInitialData = function (t) {
          for (var e = IT(this, { coordDimensions: ['value'], encodeDefaulter: H(Mf, this) }), n = yt(), i = [], r = 0, o = e.count(); r < o; r++) {
            var a = e.getName(r)
            n.set(a, r)
          }
          return (
            z(kA(this.getMapType(), this.option.nameMap, this.option.nameProperty).regions, function (t) {
              var r,
                o = t.name,
                a = n.get(o),
                s = t.properties && t.properties.echartsStyle
              null == a ? ((r = { name: o }), i.push(r)) : (r = e.getRawDataItem(a)), s && C(r, s)
            }),
            e.appendData(i),
            e
          )
        }),
        (e.prototype.getHostGeoModel = function () {
          if (Op(this).kind !== Pp) return this.getReferringComponents('geo', { useDefault: !1, enableAll: !1, enableNone: !1 }).models[0]
        }),
        (e.prototype.getMapType = function () {
          return (this.getHostGeoModel() || this).option.map
        }),
        (e.prototype.getRawValue = function (t) {
          var e = this.getData()
          return e.get(e.mapDimension('value'), t)
        }),
        (e.prototype.getRegionModel = function (t) {
          var e = this.getData()
          return e.getItemModel(e.indexOfName(t))
        }),
        (e.prototype.formatTooltip = function (t, e, n) {
          for (var i = this.getData(), r = this.getRawValue(t), o = i.getName(t), a = this.seriesGroup, s = [], l = 0; l < a.length; l++) {
            var u = a[l].originalData.indexOfName(o),
              c = i.mapDimension('value')
            isNaN(a[l].originalData.get(c, u)) || s.push(a[l].name)
          }
          return Ty('section', { header: s.join(', '), noHeader: !s.length, blocks: [Ty('nameValue', { name: o, value: r })] })
        }),
        (e.prototype.setZoom = function (t) {
          this.option.zoom = t
        }),
        (e.prototype.setCenter = function (t) {
          this.option.center = t
        }),
        (e.prototype.getLegendIcon = function (t) {
          var e = t.icon || 'roundRect',
            n = hm(e, 0, 0, t.itemWidth, t.itemHeight, t.itemStyle.fill)
          return (
            n.setStyle(t.itemStyle),
            (n.style.stroke = 'none'),
            e.indexOf('empty') > -1 && ((n.style.stroke = n.style.fill), (n.style.fill = tf.color.neutral00), (n.style.lineWidth = 2)),
            n
          )
        }),
        (e.type = 'series.map'),
        (e.dependencies = ['geo']),
        (e.layoutMode = 'box'),
        (e.defaultOption = {
          z: 2,
          coordinateSystem: 'geo',
          map: '',
          left: 'center',
          top: 'center',
          aspectScale: null,
          showLegendSymbol: !0,
          boundingCoords: null,
          center: null,
          zoom: 1,
          scaleLimit: null,
          selectedMode: !0,
          label: { show: !1, color: tf.color.tertiary },
          itemStyle: { borderWidth: 0.5, borderColor: tf.color.border, areaColor: tf.color.background },
          emphasis: { label: { show: !0, color: tf.color.primary }, itemStyle: { areaColor: tf.color.highlight } },
          select: { label: { show: !0, color: tf.color.primary }, itemStyle: { color: tf.color.highlight } },
          nameProperty: 'name'
        }),
        e
      )
    })(Wy)
  function ZA(t) {
    var e = {}
    t.eachSeriesByType('map', function (t) {
      var n = t.getHostGeoModel(),
        i = n ? 'o' + n.id : 'i' + t.getMapType()
      ;(e[i] = e[i] || []).push(t)
    }),
      z(e, function (t, e) {
        for (
          var n,
            i,
            r,
            o =
              ((n = E(t, function (t) {
                return t.getData()
              })),
              (i = t[0].get('mapValueCalculation')),
              (r = {}),
              z(n, function (t) {
                t.each(t.mapDimension('value'), function (e, n) {
                  var i = 'ec-' + t.getName(n)
                  ;(r[i] = r[i] || []), isNaN(e) || r[i].push(e)
                })
              }),
              n[0].map(n[0].mapDimension('value'), function (t, e) {
                for (var o = 'ec-' + n[0].getName(e), a = 0, s = 1 / 0, l = -1 / 0, u = r[o].length, c = 0; c < u; c++)
                  (s = Math.min(s, r[o][c])), (l = Math.max(l, r[o][c])), (a += r[o][c])
                return 0 === u ? NaN : 'min' === i ? s : 'max' === i ? l : 'average' === i ? a / u : a
              })),
            a = 0;
          a < t.length;
          a++
        )
          t[a].originalData = t[a].getData()
        for (a = 0; a < t.length; a++) (t[a].seriesGroup = t), (t[a].needsDrawMap = 0 === a && !t[a].getHostGeoModel()), t[a].setData(o.cloneShallow()), (t[a].mainSeries = t[0])
      })
  }
  function jA(t) {
    var e = {}
    t.eachSeriesByType('map', function (n) {
      var i = n.getMapType()
      if (!n.getHostGeoModel() && !e[i]) {
        var r = {}
        z(n.seriesGroup, function (e) {
          var n = e.coordinateSystem,
            i = e.originalData
          e.get('showLegendSymbol') &&
            t.getComponent('legend') &&
            i.each(i.mapDimension('value'), function (t, e) {
              var o = i.getName(e),
                a = n.getRegion(o)
              if (a && !isNaN(t)) {
                var s = r[o] || 0,
                  l = n.dataToPoint(a.getCenter())
                ;(r[o] = s + 1), i.setItemLayout(e, { point: l, offset: s })
              }
            })
        })
        var o = n.getData()
        o.each(function (t) {
          var e = o.getName(t),
            n = o.getItemLayout(t) || {}
          ;(n.showLabel = !r[e]), o.setItemLayout(t, n)
        }),
          (e[i] = !0)
      }
    })
  }
  var qA = Ht,
    KA = (function (t) {
      function e(e, n) {
        var i = t.call(this) || this
        return (i.type = 'view'), (i.dimensions = ['x', 'y']), (i._roamTransformable = new Dr()), (i._rawTransformable = new Dr()), (i.name = e), (i._opt = n), i
      }
      return (
        n(e, t),
        (e.prototype.setBoundingRect = function (t, e, n, i) {
          return (this._rect = new He(t, e, n, i)), this._updateCenterAndZoom(), this._rect
        }),
        (e.prototype.getBoundingRect = function () {
          return this._rect
        }),
        (e.prototype.setViewRect = function (t, e, n, i) {
          this._transformTo(t, e, n, i), (this._viewRect = new He(t, e, n, i))
        }),
        (e.prototype._transformTo = function (t, e, n, i) {
          var r = this.getBoundingRect(),
            o = this._rawTransformable
          o.transform = r.calculateTransform(new He(t, e, n, i))
          var a = o.parent
          ;(o.parent = null), o.decomposeTransform(), (o.parent = a), this._updateTransform()
        }),
        (e.prototype.setCenter = function (t) {
          var e = this._opt
          e && e.api && e.ecModel && e.ecModel.getShallow('legacyViewCoordSysCenterBase') && t && (t = [yo(t[0], e.api.getWidth()), yo(t[1], e.api.getWidth())]),
            (this._centerOption = T(t)),
            this._updateCenterAndZoom()
        }),
        (e.prototype.setZoom = function (t) {
          ;(this._zoom = ZD(t || 1, this.zoomLimit)), this._updateCenterAndZoom()
        }),
        (e.prototype.getDefaultCenter = function () {
          var t = this.getBoundingRect()
          return [t.x + t.width / 2, t.y + t.height / 2]
        }),
        (e.prototype.getCenter = function () {
          return this._center || this.getDefaultCenter()
        }),
        (e.prototype.getZoom = function () {
          return this._zoom || 1
        }),
        (e.prototype.getRoamTransform = function () {
          return this._roamTransformable.getLocalTransform()
        }),
        (e.prototype._updateCenterAndZoom = function () {
          var t = this._centerOption,
            e = this._rect
          t && e && (this._center = [yo(t[0], e.width, e.x), yo(t[1], e.height, e.y)])
          var n = this._rawTransformable.getLocalTransform(),
            i = this._roamTransformable,
            r = this.getDefaultCenter(),
            o = this.getCenter(),
            a = this.getZoom()
          ;(o = Ht([], o, n)),
            (r = Ht([], r, n)),
            (i.originX = o[0]),
            (i.originY = o[1]),
            (i.x = r[0] - o[0]),
            (i.y = r[1] - o[1]),
            (i.scaleX = i.scaleY = a),
            this._updateTransform()
        }),
        (e.prototype._updateTransform = function () {
          var t = this._roamTransformable,
            e = this._rawTransformable
          ;(e.parent = t),
            t.updateTransform(),
            e.updateTransform(),
            be(this.transform || (this.transform = []), e.transform || [1, 0, 0, 1, 0, 0]),
            (this._rawTransform = e.getLocalTransform()),
            (this.invTransform = this.invTransform || []),
            Te(this.invTransform, this.transform),
            this.decomposeTransform()
        }),
        (e.prototype.getTransformInfo = function () {
          var t = this._rawTransformable,
            e = this._roamTransformable,
            n = new Dr()
          return (
            (n.transform = e.transform),
            n.decomposeTransform(),
            { roam: { x: n.x, y: n.y, scaleX: n.scaleX, scaleY: n.scaleY }, raw: { x: t.x, y: t.y, scaleX: t.scaleX, scaleY: t.scaleY } }
          )
        }),
        (e.prototype.getViewRect = function () {
          return this._viewRect
        }),
        (e.prototype.getViewRectAfterRoam = function () {
          var t = this.getBoundingRect().clone()
          return t.applyTransform(this.transform), t
        }),
        (e.prototype.dataToPoint = function (t, e, n) {
          var i = e ? this._rawTransform : this.transform
          return (n = n || []), i ? qA(n, t, i) : Tt(n, t)
        }),
        (e.prototype.pointToData = function (t, e, n) {
          n = n || []
          var i = this.invTransform
          return i ? qA(n, t, i) : ((n[0] = t[0]), (n[1] = t[1]), n)
        }),
        (e.prototype.convertToPixel = function (t, e, n) {
          var i = $A(e)
          return i === this ? i.dataToPoint(n) : null
        }),
        (e.prototype.convertFromPixel = function (t, e, n) {
          var i = $A(e)
          return i === this ? i.pointToData(n) : null
        }),
        (e.prototype.containPoint = function (t) {
          return this.getViewRectAfterRoam().contain(t[0], t[1])
        }),
        (e.dimensions = ['x', 'y']),
        e
      )
    })(Dr)
  function $A(t) {
    var e = t.seriesModel
    return e ? e.coordinateSystem : null
  }
  var JA = { geoJSON: { aspectScale: 0.75, invertLongitute: !0 }, geoSVG: { aspectScale: 1, invertLongitute: !1 } },
    QA = ['lng', 'lat'],
    tk = (function (t) {
      function e(e, n, i) {
        var r = t.call(this, e, { api: i.api, ecModel: i.ecModel }) || this
        ;(r.dimensions = QA), (r.type = 'geo'), (r._nameCoordMap = yt()), (r.map = n)
        var o,
          a = i.projection,
          s = kA(n, i.nameMap, i.nameProperty),
          l = DA(n),
          u = ((r.resourceType = l ? l.type : null), (r.regions = s.regions)),
          c = JA[l.type]
        if (((r._regionsMap = s.regionsMap), (r.regions = s.regions), (r.projection = a), a))
          for (var h = 0; h < u.length; h++) {
            var d = u[h].getBoundingRect(a)
            ;(o = o || d.clone()).union(d)
          }
        else o = s.boundingRect
        return r.setBoundingRect(o.x, o.y, o.width, o.height), (r.aspectScale = a ? 1 : rt(i.aspectScale, c.aspectScale)), (r._invertLongitute = !a && c.invertLongitute), r
      }
      return (
        n(e, t),
        (e.prototype._transformTo = function (t, e, n, i) {
          var r = this.getBoundingRect(),
            o = this._invertLongitute
          ;(r = r.clone()), o && (r.y = -r.y - r.height)
          var a = this._rawTransformable
          a.transform = r.calculateTransform(new He(t, e, n, i))
          var s = a.parent
          ;(a.parent = null), a.decomposeTransform(), (a.parent = s), o && (a.scaleY = -a.scaleY), this._updateTransform()
        }),
        (e.prototype.getRegion = function (t) {
          return this._regionsMap.get(t)
        }),
        (e.prototype.getRegionByCoord = function (t) {
          for (var e = this.regions, n = 0; n < e.length; n++) {
            var i = e[n]
            if ('geoJSON' === i.type && i.contain(t)) return e[n]
          }
        }),
        (e.prototype.addGeoCoord = function (t, e) {
          this._nameCoordMap.set(t, e)
        }),
        (e.prototype.getGeoCoord = function (t) {
          var e = this._regionsMap.get(t)
          return this._nameCoordMap.get(t) || (e && e.getCenter())
        }),
        (e.prototype.dataToPoint = function (t, e, n) {
          if ((X(t) && (t = this.getGeoCoord(t)), t)) {
            var i = this.projection
            return i && (t = i.project(t)), t && this.projectedToPoint(t, e, n)
          }
        }),
        (e.prototype.pointToData = function (t, e, n) {
          var i = this.projection
          return i && (t = i.unproject(t)), t && this.pointToProjected(t, n)
        }),
        (e.prototype.pointToProjected = function (e, n) {
          return t.prototype.pointToData.call(this, e, 0, n)
        }),
        (e.prototype.projectedToPoint = function (e, n, i) {
          return t.prototype.dataToPoint.call(this, e, n, i)
        }),
        (e.prototype.convertToPixel = function (t, e, n) {
          var i = ek(e)
          return i === this ? i.dataToPoint(n) : null
        }),
        (e.prototype.convertFromPixel = function (t, e, n) {
          var i = ek(e)
          return i === this ? i.pointToData(n) : null
        }),
        e
      )
    })(KA)
  function ek(t) {
    var e = t.geoModel,
      n = t.seriesModel
    return e ? e.coordinateSystem : n ? n.coordinateSystem || (n.getReferringComponents('geo', ha).models[0] || {}).coordinateSystem : null
  }
  function nk(t, e) {
    var n = t.get('boundingCoords')
    if (null != n) {
      var i = n[0],
        r = n[1]
      if (isFinite(i[0]) && isFinite(i[1]) && isFinite(r[0]) && isFinite(r[1])) {
        var o = this.projection
        if (o) {
          var a = i[0],
            s = i[1],
            l = r[0],
            u = r[1]
          ;(i = [1 / 0, 1 / 0]), (r = [-1 / 0, -1 / 0])
          var c = function (t, e, n, a) {
            for (var s = n - t, l = a - e, u = 0; u <= 100; u++) {
              var c = u / 100,
                h = o.project([t + s * c, e + l * c])
              Ut(i, i, h), Yt(r, r, h)
            }
          }
          c(a, s, l, s), c(l, s, l, u), c(l, u, a, u), c(a, u, l, s)
        }
        this.setBoundingRect(i[0], i[1], r[0] - i[0], r[1] - i[1])
      } else 0
    }
    var h,
      d,
      p,
      f = this.getBoundingRect(),
      g = t.get('layoutCenter'),
      y = t.get('layoutSize'),
      v = Xp(t, e).refContainer,
      m = (f.width / f.height) * this.aspectScale,
      x = !1
    if ((g && y && ((h = [yo(g[0], v.width) + v.x, yo(g[1], v.height) + v.y]), (d = yo(y, Math.min(v.width, v.height))), isNaN(h[0]) || isNaN(h[1]) || isNaN(d) || (x = !0)), x))
      (p = {}), m > 1 ? ((p.width = d), (p.height = d / m)) : ((p.height = d), (p.width = d * m)), (p.y = h[1] - p.height / 2), (p.x = h[0] - p.width / 2)
    else {
      var _ = t.getBoxLayoutParams()
      ;(_.aspect = m), (p = Up(t, (p = Hp(_, v)), m))
    }
    this.setViewRect(p.x, p.y, p.width, p.height), this.setCenter(t.get('center')), this.setZoom(t.get('zoom'))
  }
  R(tk, KA)
  var ik = (function () {
      function t() {
        this.dimensions = QA
      }
      return (
        (t.prototype.create = function (t, e) {
          var n = []
          function i(t) {
            return { nameProperty: t.get('nameProperty'), aspectScale: t.get('aspectScale'), projection: t.get('projection') }
          }
          t.eachComponent('geo', function (r, o) {
            var a = r.get('map'),
              s = new tk(a + o, a, A({ nameMap: r.get('nameMap'), api: e, ecModel: t }, i(r)))
            ;(s.zoomLimit = r.get('scaleLimit')), n.push(s), (r.coordinateSystem = s), (s.model = r), (s.resize = nk), s.resize(r, e)
          }),
            t.eachSeries(function (t) {
              Rp({
                targetModel: t,
                coordSysType: 'geo',
                coordSysProvider: function () {
                  var e = 'map' === t.subType ? t.getHostGeoModel() : t.getReferringComponents('geo', ha).models[0]
                  return e && e.coordinateSystem
                },
                allowNotFound: !0
              })
            })
          var r = {}
          return (
            t.eachSeriesByType('map', function (t) {
              if (!t.getHostGeoModel()) {
                var e = t.getMapType()
                ;(r[e] = r[e] || []), r[e].push(t)
              }
            }),
            z(r, function (r, o) {
              var a = E(r, function (t) {
                  return t.get('nameMap')
                }),
                s = new tk(o, o, A({ nameMap: D(a), api: e, ecModel: t }, i(r[0])))
              ;(s.zoomLimit = it.apply(
                null,
                E(r, function (t) {
                  return t.get('scaleLimit')
                })
              )),
                n.push(s),
                (s.resize = nk),
                s.resize(r[0], e),
                z(r, function (t) {
                  ;(t.coordinateSystem = s),
                    (function (t, e) {
                      z(e.get('geoCoord'), function (e, n) {
                        t.addGeoCoord(n, e)
                      })
                    })(s, t)
                })
            }),
            n
          )
        }),
        (t.prototype.getFilledRegions = function (t, e, n, i) {
          for (var r = (t || []).slice(), o = yt(), a = 0; a < r.length; a++) o.set(r[a].name, r[a])
          return (
            z(kA(e, n, i).regions, function (t) {
              var e = t.name,
                n = o.get(e),
                i = t.properties && t.properties.echartsStyle
              n || ((n = { name: e }), r.push(n)), i && C(n, i)
            }),
            r
          )
        }),
        t
      )
    })(),
    rk = new ik(),
    ok = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e, n) {
          this.mergeDefaultAndTheme(t, n)
          var i = DA(t.map)
          if (i && 'geoJSON' === i.type) {
            var r = (t.itemStyle = t.itemStyle || {})
            'color' in r || (r.color = t.defaultItemStyleColor || tf.color.backgroundTint)
          }
          Ko(t, 'label', ['show'])
        }),
        (e.prototype.optionUpdated = function () {
          var t = this,
            e = this.option
          e.regions = rk.getFilledRegions(e.regions, e.map, e.nameMap, e.nameProperty)
          var n = {}
          ;(this._optionModelMap = B(
            e.regions || [],
            function (e, i) {
              var r = i.name
              return r && (e.set(r, new wd(i, t, t.ecModel)), i.selected && (n[r] = !0)), e
            },
            yt()
          )),
            e.selectedMap || (e.selectedMap = n)
        }),
        (e.prototype.getRegionModel = function (t) {
          return this._optionModelMap.get(t) || new wd(null, this, this.ecModel)
        }),
        (e.prototype.getFormattedLabel = function (t, e) {
          var n = this.getRegionModel(t),
            i = 'normal' === e ? n.get(['label', 'formatter']) : n.get(['emphasis', 'label', 'formatter']),
            r = { name: t }
          return Y(i) ? ((r.status = e), i(r)) : X(i) ? i.replace('{a}', null != t ? t : '') : void 0
        }),
        (e.prototype.setZoom = function (t) {
          this.option.zoom = t
        }),
        (e.prototype.setCenter = function (t) {
          this.option.center = t
        }),
        (e.prototype.select = function (t) {
          var e = this.option,
            n = e.selectedMode
          n && ('multiple' !== n && (e.selectedMap = null), ((e.selectedMap || (e.selectedMap = {}))[t] = !0))
        }),
        (e.prototype.unSelect = function (t) {
          var e = this.option.selectedMap
          e && (e[t] = !1)
        }),
        (e.prototype.toggleSelected = function (t) {
          this[this.isSelected(t) ? 'unSelect' : 'select'](t)
        }),
        (e.prototype.isSelected = function (t) {
          var e = this.option.selectedMap
          return !(!e || !e[t])
        }),
        (e.type = 'geo'),
        (e.layoutMode = 'box'),
        (e.defaultOption = {
          z: 0,
          show: !0,
          left: 'center',
          top: 'center',
          aspectScale: null,
          silent: !1,
          map: '',
          boundingCoords: null,
          center: null,
          zoom: 1,
          scaleLimit: null,
          label: { show: !1, color: tf.color.tertiary },
          itemStyle: { borderWidth: 0.5, borderColor: tf.color.border },
          emphasis: { label: { show: !0, color: tf.color.primary }, itemStyle: { color: tf.color.highlight } },
          select: { label: { show: !0, color: tf.color.primary }, itemStyle: { color: tf.color.highlight } },
          regions: []
        }),
        e
      )
    })(Qp),
    ak = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.focusBlurEnabled = !0), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e) {
          this._api = e
        }),
        (e.prototype.render = function (t, e, n, i) {
          if (((this._model = t), !t.get('show'))) return this._mapDraw && this._mapDraw.remove(), void (this._mapDraw = null)
          this._mapDraw || (this._mapDraw = new BA(n))
          var r = this._mapDraw
          r.draw(t, e, n, this, i),
            r.group.on('click', this._handleRegionClick, this),
            (r.group.silent = t.get('silent')),
            this.group.add(r.group),
            this.updateSelectStatus(t, e, n)
        }),
        (e.prototype._handleRegionClick = function (t) {
          var e
          Qv(
            t.target,
            function (t) {
              return null != (e = zl(t).eventData)
            },
            !0
          ),
            e && this._api.dispatchAction({ type: 'geoToggleSelect', geoId: this._model.id, name: e.name })
        }),
        (e.prototype.updateSelectStatus = function (t, e, n) {
          var i = this
          this._mapDraw.group.traverse(function (t) {
            var e = zl(t).eventData
            if (e) return i._model.isSelected(e.name) ? n.enterSelect(t) : n.leaveSelect(t), !0
          })
        }),
        (e.prototype.findHighDownDispatchers = function (t) {
          return this._mapDraw && this._mapDraw.findHighDownDispatchers(t, this._model)
        }),
        (e.prototype.dispose = function () {
          this._mapDraw && this._mapDraw.remove()
        }),
        (e.type = 'geo'),
        e
      )
    })(Ky)
  function sk(t, e, n) {
    CA(t, e, n)
  }
  function lk(t) {
    function e(e, n) {
      ;(n.update = 'geo:updateSelectStatus'),
        t.registerAction(n, function (t, n) {
          var i = {},
            r = []
          return (
            n.eachComponent({ mainType: 'geo', query: t }, function (n) {
              n[e](t.name),
                z(n.coordinateSystem.regions, function (t) {
                  i[t.name] = n.isSelected(t.name) || !1
                })
              var o = []
              z(i, function (t, e) {
                i[e] && o.push(e)
              }),
                r.push({ geoIndex: n.componentIndex, name: o })
            }),
            { selected: i, allSelected: r, name: t.name }
          )
        })
    }
    t.registerCoordinateSystem('geo', rk),
      t.registerComponentModel(ok),
      t.registerComponentView(ak),
      t.registerImpl('registerMap', sk),
      t.registerImpl('getMap', function (t) {
        return AA(t)
      }),
      e('toggleSelected', { type: 'geoToggleSelect', event: 'geoselectchanged' }),
      e('select', { type: 'geoSelect', event: 'geoselected' }),
      e('unSelect', { type: 'geoUnSelect', event: 'geounselected' }),
      t.registerAction({ type: 'geoRoam', event: 'geoRoam', update: 'updateTransform' }, function (t, e, n) {
        var i = t.componentType
        i || (null != t.geoId ? (i = 'geo') : null != t.seriesId && (i = 'series')),
          i || (i = 'series'),
          e.eachComponent({ mainType: i, query: t }, function (e) {
            var n = e.coordinateSystem
            if ('geo' === n.type) {
              var r = YD(n, t, e.get('scaleLimit'))
              e.setCenter && e.setCenter(r.center),
                e.setZoom && e.setZoom(r.zoom),
                'series' === i &&
                  z(e.seriesGroup, function (t) {
                    t.setCenter(r.center), t.setZoom(r.zoom)
                  })
            }
          })
      })
  }
  function uk(t, e) {
    var n = t.isExpand ? t.children : [],
      i = t.parentNode.children,
      r = t.hierNode.i ? i[t.hierNode.i - 1] : null
    if (n.length) {
      !(function (t) {
        var e = t.children,
          n = e.length,
          i = 0,
          r = 0
        for (; --n >= 0; ) {
          var o = e[n]
          ;(o.hierNode.prelim += i), (o.hierNode.modifier += i), (r += o.hierNode.change), (i += o.hierNode.shift + r)
        }
      })(t)
      var o = (n[0].hierNode.prelim + n[n.length - 1].hierNode.prelim) / 2
      r ? ((t.hierNode.prelim = r.hierNode.prelim + e(t, r)), (t.hierNode.modifier = t.hierNode.prelim - o)) : (t.hierNode.prelim = o)
    } else r && (t.hierNode.prelim = r.hierNode.prelim + e(t, r))
    t.parentNode.hierNode.defaultAncestor = (function (t, e, n, i) {
      if (e) {
        for (
          var r = t, o = t, a = o.parentNode.children[0], s = e, l = r.hierNode.modifier, u = o.hierNode.modifier, c = a.hierNode.modifier, h = s.hierNode.modifier;
          (s = pk(s)), (o = fk(o)), s && o;

        ) {
          ;(r = pk(r)), (a = fk(a)), (r.hierNode.ancestor = t)
          var d = s.hierNode.prelim + h - o.hierNode.prelim - u + i(s, o)
          d > 0 && (yk(gk(s, t, n), t, d), (u += d), (l += d)), (h += s.hierNode.modifier), (u += o.hierNode.modifier), (l += r.hierNode.modifier), (c += a.hierNode.modifier)
        }
        s && !pk(r) && ((r.hierNode.thread = s), (r.hierNode.modifier += h - l)), o && !fk(a) && ((a.hierNode.thread = o), (a.hierNode.modifier += u - c), (n = t))
      }
      return n
    })(t, r, t.parentNode.hierNode.defaultAncestor || i[0], e)
  }
  function ck(t) {
    var e = t.hierNode.prelim + t.parentNode.hierNode.modifier
    t.setLayout({ x: e }, !0), (t.hierNode.modifier += t.parentNode.hierNode.modifier)
  }
  function hk(t) {
    return arguments.length ? t : vk
  }
  function dk(t, e) {
    return (t -= Math.PI / 2), { x: e * Math.cos(t), y: e * Math.sin(t) }
  }
  function pk(t) {
    var e = t.children
    return e.length && t.isExpand ? e[e.length - 1] : t.hierNode.thread
  }
  function fk(t) {
    var e = t.children
    return e.length && t.isExpand ? e[0] : t.hierNode.thread
  }
  function gk(t, e, n) {
    return t.hierNode.ancestor.parentNode === e.parentNode ? t.hierNode.ancestor : n
  }
  function yk(t, e, n) {
    var i = n / (e.hierNode.i - t.hierNode.i)
    ;(e.hierNode.change -= i), (e.hierNode.shift += n), (e.hierNode.modifier += n), (e.hierNode.prelim += n), (t.hierNode.change += i)
  }
  function vk(t, e) {
    return t.parentNode === e.parentNode ? 1 : 2
  }
  var mk = function () {
      ;(this.parentPoint = []), (this.childPoints = [])
    },
    xk = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultStyle = function () {
          return { stroke: tf.color.neutral99, fill: null }
        }),
        (e.prototype.getDefaultShape = function () {
          return new mk()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = e.childPoints,
            i = n.length,
            r = e.parentPoint,
            o = n[0],
            a = n[i - 1]
          if (1 === i) return t.moveTo(r[0], r[1]), void t.lineTo(o[0], o[1])
          var s = e.orient,
            l = 'TB' === s || 'BT' === s ? 0 : 1,
            u = 1 - l,
            c = yo(e.forkPosition, 1),
            h = []
          ;(h[l] = r[l]),
            (h[u] = r[u] + (a[u] - r[u]) * c),
            t.moveTo(r[0], r[1]),
            t.lineTo(h[0], h[1]),
            t.moveTo(o[0], o[1]),
            (h[l] = o[l]),
            t.lineTo(h[0], h[1]),
            (h[l] = a[l]),
            t.lineTo(h[0], h[1]),
            t.lineTo(a[0], a[1])
          for (var d = 1; d < i - 1; d++) {
            var p = n[d]
            t.moveTo(p[0], p[1]), (h[l] = p[l]), t.lineTo(h[0], h[1])
          }
        }),
        e
      )
    })(sl),
    _k = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n._mainGroup = new to()), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e) {
          ;(this._controller = new LD(e.getZr())), (this._controllerHost = { target: this.group }), this.group.add(this._mainGroup)
        }),
        (e.prototype.render = function (t, e, n) {
          var i = t.getData(),
            r = t.layoutInfo,
            o = this._mainGroup
          'radial' === t.get('layout') ? ((o.x = r.x + r.width / 2), (o.y = r.y + r.height / 2)) : ((o.x = r.x), (o.y = r.y)),
            this._updateViewCoordSys(t, n),
            this._updateController(t, null, e, n)
          var a = this._data
          i
            .diff(a)
            .add(function (e) {
              bk(i, e) && wk(i, e, null, o, t)
            })
            .update(function (e, n) {
              var r = a.getItemGraphicEl(n)
              bk(i, e) ? wk(i, e, r, o, t) : r && Ik(a, n, r, o, t)
            })
            .remove(function (e) {
              var n = a.getItemGraphicEl(e)
              n && Ik(a, e, n, o, t)
            })
            .execute(),
            (this._nodeScaleRatio = t.get('nodeScaleRatio')),
            this._updateNodeAndLinkScale(t),
            !0 === t.get('expandAndCollapse') &&
              i.eachItemGraphicEl(function (e, i) {
                e.off('click').on('click', function () {
                  n.dispatchAction({ type: 'treeExpandAndCollapse', seriesId: t.id, dataIndex: i })
                })
              }),
            (this._data = i)
        }),
        (e.prototype._updateViewCoordSys = function (t, e) {
          var n = t.getData(),
            i = []
          n.each(function (t) {
            var e = n.getItemLayout(t)
            !e || isNaN(e.x) || isNaN(e.y) || i.push([+e.x, +e.y])
          })
          var r = [],
            o = []
          ys(i, r, o)
          var a = this._min,
            s = this._max
          o[0] - r[0] == 0 && ((r[0] = a ? a[0] : r[0] - 1), (o[0] = s ? s[0] : o[0] + 1)), o[1] - r[1] == 0 && ((r[1] = a ? a[1] : r[1] - 1), (o[1] = s ? s[1] : o[1] + 1))
          var l = (t.coordinateSystem = new KA(null, { api: e, ecModel: t.ecModel }))
          ;(l.zoomLimit = t.get('scaleLimit')),
            l.setBoundingRect(r[0], r[1], o[0] - r[0], o[1] - r[1]),
            l.setCenter(t.get('center')),
            l.setZoom(t.get('zoom')),
            this.group.attr({ x: l.x, y: l.y, scaleX: l.scaleX, scaleY: l.scaleY }),
            (this._min = r),
            (this._max = o)
        }),
        (e.prototype._updateController = function (t, e, n, i) {
          var r = this
          HD(t, i, this.group, this._controller, this._controllerHost, e),
            this._controller.on('zoom', function (e) {
              r._updateNodeAndLinkScale(t)
            })
        }),
        (e.prototype._updateNodeAndLinkScale = function (t) {
          var e = t.getData(),
            n = this._getNodeGlobalScale(t)
          e.eachItemGraphicEl(function (t, e) {
            t.setSymbolScale(n)
          })
        }),
        (e.prototype._getNodeGlobalScale = function (t) {
          var e = t.coordinateSystem
          if ('view' !== e.type) return 1
          var n = this._nodeScaleRatio,
            i = e.scaleX || 1
          return ((e.getZoom() - 1) * n + 1) / i
        }),
        (e.prototype.dispose = function () {
          this._controller && this._controller.dispose(), (this._controllerHost = null)
        }),
        (e.prototype.remove = function () {
          this._mainGroup.removeAll(), (this._data = null)
        }),
        (e.type = 'tree'),
        e
      )
    })(tv)
  function bk(t, e) {
    var n = t.getItemLayout(e)
    return n && !isNaN(n.x) && !isNaN(n.y)
  }
  function wk(t, e, n, i, r) {
    var o = !n,
      a = t.tree.getNodeByDataIndex(e),
      s = a.getModel(),
      l = a.getVisual('style').fill,
      u = !1 === a.isExpand && 0 !== a.children.length ? l : tf.color.neutral00,
      c = t.tree.root,
      h = a.parentNode === c ? a : a.parentNode || a,
      d = t.getItemGraphicEl(h.dataIndex),
      p = h.getLayout(),
      f = d ? { x: d.__oldX, y: d.__oldY, rawX: d.__radialOldRawX, rawY: d.__radialOldRawY } : p,
      g = a.getLayout()
    o ? (((n = new rI(t, e, null, { symbolInnerColor: u, useNameLabel: !0 })).x = f.x), (n.y = f.y)) : n.updateData(t, e, null, { symbolInnerColor: u, useNameLabel: !0 }),
      (n.__radialOldRawX = n.__radialRawX),
      (n.__radialOldRawY = n.__radialRawY),
      (n.__radialRawX = g.rawX),
      (n.__radialRawY = g.rawY),
      i.add(n),
      t.setItemGraphicEl(e, n),
      (n.__oldX = n.x),
      (n.__oldY = n.y),
      th(n, { x: g.x, y: g.y }, r)
    var y = n.getSymbolPath()
    if ('radial' === r.get('layout')) {
      var v = c.children[0],
        m = v.getLayout(),
        x = v.children.length,
        _ = void 0,
        b = void 0
      if (g.x === m.x && !0 === a.isExpand && v.children.length) {
        var w = { x: (v.children[0].getLayout().x + v.children[x - 1].getLayout().x) / 2, y: (v.children[0].getLayout().y + v.children[x - 1].getLayout().y) / 2 }
        ;(_ = Math.atan2(w.y - m.y, w.x - m.x)) < 0 && (_ = 2 * Math.PI + _), (b = w.x < m.x) && (_ -= Math.PI)
      } else
        (_ = Math.atan2(g.y - m.y, g.x - m.x)) < 0 && (_ = 2 * Math.PI + _),
          0 === a.children.length || (0 !== a.children.length && !1 === a.isExpand) ? (b = g.x < m.x) && (_ -= Math.PI) : (b = g.x > m.x) || (_ -= Math.PI)
      var S = b ? 'left' : 'right',
        M = s.getModel('label'),
        I = M.get('rotate'),
        T = I * (Math.PI / 180),
        C = y.getTextContent()
      C && (y.setTextConfig({ position: M.get('position') || S, rotation: null == I ? -_ : T, origin: 'center' }), C.setStyle('verticalAlign', 'middle'))
    }
    var D = s.get(['emphasis', 'focus']),
      A =
        'relative' === D ? vt(a.getAncestorsIndices(), a.getDescendantIndices()) : 'ancestor' === D ? a.getAncestorsIndices() : 'descendant' === D ? a.getDescendantIndices() : null
    A && (zl(n).focus = A),
      (function (t, e, n, i, r, o, a, s) {
        var l = e.getModel(),
          u = t.get('edgeShape'),
          c = t.get('layout'),
          h = t.getOrient(),
          d = t.get(['lineStyle', 'curveness']),
          p = t.get('edgeForkPosition'),
          f = l.getModel('lineStyle').getLineStyle(),
          g = i.__edge
        if ('curve' === u) e.parentNode && e.parentNode !== n && (g || (g = i.__edge = new Oc({ shape: Tk(c, h, d, r, r) })), th(g, { shape: Tk(c, h, d, o, a) }, t))
        else if ('polyline' === u)
          if ('orthogonal' === c) {
            if (e !== n && e.children && 0 !== e.children.length && !0 === e.isExpand) {
              for (var y = e.children, v = [], m = 0; m < y.length; m++) {
                var x = y[m].getLayout()
                v.push([x.x, x.y])
              }
              g || (g = i.__edge = new xk({ shape: { parentPoint: [a.x, a.y], childPoints: [[a.x, a.y]], orient: h, forkPosition: p } })),
                th(g, { shape: { parentPoint: [a.x, a.y], childPoints: v } }, t)
            }
          } else 0
        g && ('polyline' !== u || e.isExpand) && (g.useStyle(k({ strokeNoScale: !0, fill: null }, f)), ku(g, l, 'lineStyle'), uu(g), s.add(g))
      })(r, a, c, n, f, p, g, i),
      n.__edge &&
        (n.onHoverStateChange = function (e) {
          if ('blur' !== e) {
            var i = a.parentNode && t.getItemGraphicEl(a.parentNode.dataIndex)
            ;(i && 1 === i.hoverState) || su(n.__edge, e)
          }
        })
  }
  function Sk(t, e, n, i, r) {
    var o = Mk(e.tree.root, t),
      a = o.source,
      s = o.sourceLayout,
      l = e.getItemGraphicEl(t.dataIndex)
    if (l) {
      var u = e.getItemGraphicEl(a.dataIndex).__edge,
        c = l.__edge || (!1 === a.isExpand || 1 === a.children.length ? u : void 0),
        h = i.get('edgeShape'),
        d = i.get('layout'),
        p = i.get('orient'),
        f = i.get(['lineStyle', 'curveness'])
      c &&
        ('curve' === h
          ? ih(c, { shape: Tk(d, p, f, s, s), style: { opacity: 0 } }, i, {
              cb: function () {
                n.remove(c)
              },
              removeOpt: r
            })
          : 'polyline' === h &&
            'orthogonal' === i.get('layout') &&
            ih(c, { shape: { parentPoint: [s.x, s.y], childPoints: [[s.x, s.y]] }, style: { opacity: 0 } }, i, {
              cb: function () {
                n.remove(c)
              },
              removeOpt: r
            }))
    }
  }
  function Mk(t, e) {
    for (var n, i = e.parentNode === t ? e : e.parentNode || e; null == (n = i.getLayout()); ) i = i.parentNode === t ? i : i.parentNode || i
    return { source: i, sourceLayout: n }
  }
  function Ik(t, e, n, i, r) {
    var o = t.tree.getNodeByDataIndex(e),
      a = Mk(t.tree.root, o).sourceLayout,
      s = { duration: r.get('animationDurationUpdate'), easing: r.get('animationEasingUpdate') }
    ih(n, { x: a.x + 1, y: a.y + 1 }, r, {
      cb: function () {
        i.remove(n), t.setItemGraphicEl(e, null)
      },
      removeOpt: s
    }),
      n.fadeOut(null, t.hostModel, { fadeLabel: !0, animation: s }),
      o.children.forEach(function (e) {
        Sk(e, t, i, r, s)
      }),
      Sk(o, t, i, r, s)
  }
  function Tk(t, e, n, i, r) {
    var o, a, s, l, u, c, h, d
    if ('radial' === t) {
      ;(u = i.rawX), (h = i.rawY), (c = r.rawX), (d = r.rawY)
      var p = dk(u, h),
        f = dk(u, h + (d - h) * n),
        g = dk(c, d + (h - d) * n),
        y = dk(c, d)
      return { x1: p.x || 0, y1: p.y || 0, x2: y.x || 0, y2: y.y || 0, cpx1: f.x || 0, cpy1: f.y || 0, cpx2: g.x || 0, cpy2: g.y || 0 }
    }
    return (
      (u = i.x),
      (h = i.y),
      (c = r.x),
      (d = r.y),
      ('LR' !== e && 'RL' !== e) || ((o = u + (c - u) * n), (a = h), (s = c + (u - c) * n), (l = d)),
      ('TB' !== e && 'BT' !== e) || ((o = u), (a = h + (d - h) * n), (s = c), (l = d + (h - d) * n)),
      { x1: u, y1: h, x2: c, y2: d, cpx1: o, cpy1: a, cpx2: s, cpy2: l }
    )
  }
  var Ck = sa()
  function Dk(t) {
    var e = t.mainData,
      n = t.datas
    n || ((n = { main: e }), (t.datasAttr = { main: 'data' })),
      (t.datas = t.mainData = null),
      Rk(e, n, t),
      z(n, function (n) {
        z(e.TRANSFERABLE_METHODS, function (e) {
          n.wrapMethod(e, H(Ak, t))
        })
      }),
      e.wrapMethod('cloneShallow', H(Lk, t)),
      z(e.CHANGABLE_METHODS, function (n) {
        e.wrapMethod(n, H(kk, t))
      }),
      lt(n[e.dataType] === e)
  }
  function Ak(t, e) {
    if (Ck((i = this)).mainData === i) {
      var n = A({}, Ck(this).datas)
      ;(n[this.dataType] = e), Rk(e, n, t)
    } else Nk(e, this.dataType, Ck(this).mainData, t)
    var i
    return e
  }
  function kk(t, e) {
    return t.struct && t.struct.update(), e
  }
  function Lk(t, e) {
    return (
      z(Ck(e).datas, function (n, i) {
        n !== e && Nk(n.cloneShallow(), i, e, t)
      }),
      e
    )
  }
  function Pk(t) {
    var e = Ck(this).mainData
    return null == t || null == e ? e : Ck(e).datas[t]
  }
  function Ok() {
    var t = Ck(this).mainData
    return null == t
      ? [{ data: t }]
      : E(F(Ck(t).datas), function (e) {
          return { type: e, data: Ck(t).datas[e] }
        })
  }
  function Rk(t, e, n) {
    ;(Ck(t).datas = {}),
      z(e, function (e, i) {
        Nk(e, i, t, n)
      })
  }
  function Nk(t, e, n, i) {
    ;(Ck(n).datas[e] = t),
      (Ck(t).mainData = n),
      (t.dataType = e),
      i.struct && ((t[i.structAttr] = i.struct), (i.struct[i.datasAttr[e]] = t)),
      (t.getLinkedData = Pk),
      (t.getLinkedDataAll = Ok)
  }
  var zk = (function () {
      function t(t, e) {
        ;(this.depth = 0),
          (this.height = 0),
          (this.dataIndex = -1),
          (this.children = []),
          (this.viewChildren = []),
          (this.isExpand = !1),
          (this.name = t || ''),
          (this.hostTree = e)
      }
      return (
        (t.prototype.isRemoved = function () {
          return this.dataIndex < 0
        }),
        (t.prototype.eachNode = function (t, e, n) {
          Y(t) && ((n = e), (e = t), (t = null)), X((t = t || {})) && (t = { order: t })
          var i,
            r = t.order || 'preorder',
            o = this[t.attr || 'children']
          'preorder' === r && (i = e.call(n, this))
          for (var a = 0; !i && a < o.length; a++) o[a].eachNode(t, e, n)
          'postorder' === r && e.call(n, this)
        }),
        (t.prototype.updateDepthAndHeight = function (t) {
          var e = 0
          this.depth = t
          for (var n = 0; n < this.children.length; n++) {
            var i = this.children[n]
            i.updateDepthAndHeight(t + 1), i.height > e && (e = i.height)
          }
          this.height = e + 1
        }),
        (t.prototype.getNodeById = function (t) {
          if (this.getId() === t) return this
          for (var e = 0, n = this.children, i = n.length; e < i; e++) {
            var r = n[e].getNodeById(t)
            if (r) return r
          }
        }),
        (t.prototype.contains = function (t) {
          if (t === this) return !0
          for (var e = 0, n = this.children, i = n.length; e < i; e++) {
            var r = n[e].contains(t)
            if (r) return r
          }
        }),
        (t.prototype.getAncestors = function (t) {
          for (var e = [], n = t ? this : this.parentNode; n; ) e.push(n), (n = n.parentNode)
          return e.reverse(), e
        }),
        (t.prototype.getAncestorsIndices = function () {
          for (var t = [], e = this; e; ) t.push(e.dataIndex), (e = e.parentNode)
          return t.reverse(), t
        }),
        (t.prototype.getDescendantIndices = function () {
          var t = []
          return (
            this.eachNode(function (e) {
              t.push(e.dataIndex)
            }),
            t
          )
        }),
        (t.prototype.getValue = function (t) {
          var e = this.hostTree.data
          return e.getStore().get(e.getDimensionIndex(t || 'value'), this.dataIndex)
        }),
        (t.prototype.setLayout = function (t, e) {
          this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, t, e)
        }),
        (t.prototype.getLayout = function () {
          return this.hostTree.data.getItemLayout(this.dataIndex)
        }),
        (t.prototype.getModel = function (t) {
          if (!(this.dataIndex < 0)) return this.hostTree.data.getItemModel(this.dataIndex).getModel(t)
        }),
        (t.prototype.getLevelModel = function () {
          return (this.hostTree.levelModels || [])[this.depth]
        }),
        (t.prototype.setVisual = function (t, e) {
          this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, t, e)
        }),
        (t.prototype.getVisual = function (t) {
          return this.hostTree.data.getItemVisual(this.dataIndex, t)
        }),
        (t.prototype.getRawIndex = function () {
          return this.hostTree.data.getRawIndex(this.dataIndex)
        }),
        (t.prototype.getId = function () {
          return this.hostTree.data.getId(this.dataIndex)
        }),
        (t.prototype.getChildIndex = function () {
          if (this.parentNode) {
            for (var t = this.parentNode.children, e = 0; e < t.length; ++e) if (t[e] === this) return e
            return -1
          }
          return -1
        }),
        (t.prototype.isAncestorOf = function (t) {
          for (var e = t.parentNode; e; ) {
            if (e === this) return !0
            e = e.parentNode
          }
          return !1
        }),
        (t.prototype.isDescendantOf = function (t) {
          return t !== this && t.isAncestorOf(this)
        }),
        t
      )
    })(),
    Ek = (function () {
      function t(t) {
        ;(this.type = 'tree'), (this._nodes = []), (this.hostModel = t)
      }
      return (
        (t.prototype.eachNode = function (t, e, n) {
          this.root.eachNode(t, e, n)
        }),
        (t.prototype.getNodeByDataIndex = function (t) {
          var e = this.data.getRawIndex(t)
          return this._nodes[e]
        }),
        (t.prototype.getNodeById = function (t) {
          return this.root.getNodeById(t)
        }),
        (t.prototype.update = function () {
          for (var t = this.data, e = this._nodes, n = 0, i = e.length; n < i; n++) e[n].dataIndex = -1
          for (n = 0, i = t.count(); n < i; n++) e[t.getRawIndex(n)].dataIndex = n
        }),
        (t.prototype.clearLayouts = function () {
          this.data.clearItemLayouts()
        }),
        (t.createTree = function (e, n, i) {
          var r = new t(n),
            o = [],
            a = 1
          !(function t(e, n) {
            var i = e.value
            ;(a = Math.max(a, U(i) ? i.length : 1)), o.push(e)
            var s = new zk(ia(e.name, ''), r)
            n
              ? (function (t, e) {
                  var n = e.children
                  if (t.parentNode === e) return
                  n.push(t), (t.parentNode = e)
                })(s, n)
              : (r.root = s),
              r._nodes.push(s)
            var l = e.children
            if (l) for (var u = 0; u < l.length; u++) t(l[u], s)
          })(e),
            r.root.updateDepthAndHeight(0)
          var s = V_(o, { coordDimensions: ['value'], dimensionsCount: a }).dimensions,
            l = new B_(s, n)
          return l.initData(o), i && i(l), Dk({ mainData: l, struct: r, structAttr: 'tree' }), r.update(), r
        }),
        t
      )
    })()
  function Bk(t, e, n) {
    if (t && P(e, t.type) >= 0) {
      var i = n.getData().tree.root,
        r = t.targetNode
      if ((X(r) && (r = i.getNodeById(r)), r && i.contains(r))) return { node: r }
      var o = t.targetNodeId
      if (null != o && (r = i.getNodeById(o))) return { node: r }
    }
  }
  function Vk(t) {
    for (var e = []; t; ) (t = t.parentNode) && e.push(t)
    return e.reverse()
  }
  function Gk(t, e) {
    return P(Vk(t), e) >= 0
  }
  function Fk(t, e) {
    for (var n = []; t; ) {
      var i = t.dataIndex
      n.push({ name: t.name, dataIndex: i, value: e.getRawValue(i) }), (t = t.parentNode)
    }
    return n.reverse(), n
  }
  var Wk = (function (t) {
    function e() {
      var e = (null !== t && t.apply(this, arguments)) || this
      return (e.hasSymbolVisual = !0), (e.ignoreStyleOnData = !0), e
    }
    return (
      n(e, t),
      (e.prototype.getInitialData = function (t) {
        var e = { name: t.name, children: t.data },
          n = t.leaves || {},
          i = new wd(n, this, this.ecModel),
          r = Ek.createTree(e, this, function (t) {
            t.wrapMethod('getItemModel', function (t, e) {
              var n = r.getNodeByDataIndex(e)
              return (n && n.children.length && n.isExpand) || (t.parentModel = i), t
            })
          })
        var o = 0
        r.eachNode('preorder', function (t) {
          t.depth > o && (o = t.depth)
        })
        var a = t.expandAndCollapse && t.initialTreeDepth >= 0 ? t.initialTreeDepth : o
        return (
          r.root.eachNode('preorder', function (t) {
            var e = t.hostTree.data.getRawDataItem(t.dataIndex)
            t.isExpand = e && null != e.collapsed ? !e.collapsed : t.depth <= a
          }),
          r.data
        )
      }),
      (e.prototype.getOrient = function () {
        var t = this.get('orient')
        return 'horizontal' === t ? (t = 'LR') : 'vertical' === t && (t = 'TB'), t
      }),
      (e.prototype.setZoom = function (t) {
        this.option.zoom = t
      }),
      (e.prototype.setCenter = function (t) {
        this.option.center = t
      }),
      (e.prototype.formatTooltip = function (t, e, n) {
        for (var i = this.getData().tree, r = i.root.children[0], o = i.getNodeByDataIndex(t), a = o.getValue(), s = o.name; o && o !== r; )
          (s = o.parentNode.name + '.' + s), (o = o.parentNode)
        return Ty('nameValue', { name: s, value: a, noValue: isNaN(a) || null == a })
      }),
      (e.prototype.getDataParams = function (e) {
        var n = t.prototype.getDataParams.apply(this, arguments),
          i = this.getData().tree.getNodeByDataIndex(e)
        return (n.treeAncestors = Fk(i, this)), (n.collapsed = !i.isExpand), n
      }),
      (e.type = 'series.tree'),
      (e.layoutMode = 'box'),
      (e.defaultOption = {
        z: 2,
        coordinateSystemUsage: 'box',
        left: '12%',
        top: '12%',
        right: '12%',
        bottom: '12%',
        layout: 'orthogonal',
        edgeShape: 'curve',
        edgeForkPosition: '50%',
        roam: !1,
        roamTrigger: 'global',
        nodeScaleRatio: 0.4,
        center: null,
        zoom: 1,
        orient: 'LR',
        symbol: 'emptyCircle',
        symbolSize: 7,
        expandAndCollapse: !0,
        initialTreeDepth: 2,
        lineStyle: { color: tf.color.borderTint, width: 1.5, curveness: 0.5 },
        itemStyle: { color: 'lightsteelblue', borderWidth: 1.5 },
        label: { show: !0 },
        animationEasing: 'linear',
        animationDuration: 700,
        animationDurationUpdate: 500
      }),
      e
    )
  })(Wy)
  function Hk(t, e) {
    for (var n, i = [t]; (n = i.pop()); )
      if ((e(n), n.isExpand)) {
        var r = n.children
        if (r.length) for (var o = r.length - 1; o >= 0; o--) i.push(r[o])
      }
  }
  function Uk(t, e) {
    t.eachSeriesByType('tree', function (t) {
      !(function (t, e) {
        var n = Xp(t, e).refContainer,
          i = Hp(t.getBoxLayoutParams(), n)
        t.layoutInfo = i
        var r = t.get('layout'),
          o = 0,
          a = 0,
          s = null
        'radial' === r
          ? ((o = 2 * Math.PI),
            (a = Math.min(i.height, i.width) / 2),
            (s = hk(function (t, e) {
              return (t.parentNode === e.parentNode ? 1 : 2) / t.depth
            })))
          : ((o = i.width), (a = i.height), (s = hk()))
        var l = t.getData().tree.root,
          u = l.children[0]
        if (u) {
          !(function (t) {
            var e = t
            e.hierNode = { defaultAncestor: null, ancestor: e, prelim: 0, modifier: 0, change: 0, shift: 0, i: 0, thread: null }
            for (var n, i, r = [e]; (n = r.pop()); )
              if (((i = n.children), n.isExpand && i.length))
                for (var o = i.length - 1; o >= 0; o--) {
                  var a = i[o]
                  ;(a.hierNode = { defaultAncestor: null, ancestor: a, prelim: 0, modifier: 0, change: 0, shift: 0, i: o, thread: null }), r.push(a)
                }
          })(l),
            (function (t, e, n) {
              for (var i, r = [t], o = []; (i = r.pop()); )
                if ((o.push(i), i.isExpand)) {
                  var a = i.children
                  if (a.length) for (var s = 0; s < a.length; s++) r.push(a[s])
                }
              for (; (i = o.pop()); ) e(i, n)
            })(u, uk, s),
            (l.hierNode.modifier = -u.hierNode.prelim),
            Hk(u, ck)
          var c = u,
            h = u,
            d = u
          Hk(u, function (t) {
            var e = t.getLayout().x
            e < c.getLayout().x && (c = t), e > h.getLayout().x && (h = t), t.depth > d.depth && (d = t)
          })
          var p = c === h ? 1 : s(c, h) / 2,
            f = p - c.getLayout().x,
            g = 0,
            y = 0,
            v = 0,
            m = 0
          if ('radial' === r)
            (g = o / (h.getLayout().x + p + f)),
              (y = a / (d.depth - 1 || 1)),
              Hk(u, function (t) {
                ;(v = (t.getLayout().x + f) * g), (m = (t.depth - 1) * y)
                var e = dk(v, m)
                t.setLayout({ x: e.x, y: e.y, rawX: v, rawY: m }, !0)
              })
          else {
            var x = t.getOrient()
            'RL' === x || 'LR' === x
              ? ((y = a / (h.getLayout().x + p + f)),
                (g = o / (d.depth - 1 || 1)),
                Hk(u, function (t) {
                  ;(m = (t.getLayout().x + f) * y), (v = 'LR' === x ? (t.depth - 1) * g : o - (t.depth - 1) * g), t.setLayout({ x: v, y: m }, !0)
                }))
              : ('TB' !== x && 'BT' !== x) ||
                ((g = o / (h.getLayout().x + p + f)),
                (y = a / (d.depth - 1 || 1)),
                Hk(u, function (t) {
                  ;(v = (t.getLayout().x + f) * g), (m = 'TB' === x ? (t.depth - 1) * y : a - (t.depth - 1) * y), t.setLayout({ x: v, y: m }, !0)
                }))
          }
        }
      })(t, e)
    })
  }
  function Yk(t) {
    t.eachSeriesByType('tree', function (t) {
      var e = t.getData()
      e.tree.eachNode(function (t) {
        var n = t.getModel().getModel('itemStyle').getItemStyle()
        A(e.ensureUniqueItemVisual(t.dataIndex, 'style'), n)
      })
    })
  }
  var Xk = ['treemapZoomToNode', 'treemapRender', 'treemapMove']
  function Zk(t) {
    var e = t.getData().tree,
      n = {}
    e.eachNode(function (e) {
      for (var i = e; i && i.depth > 1; ) i = i.parentNode
      var r = Nf(t.ecModel, i.name || i.dataIndex + '', n)
      e.setVisual('decal', r)
    })
  }
  var jk = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), (n.preventUsingHoverLayer = !0), n
    }
    return (
      n(e, t),
      (e.prototype.getInitialData = function (t, e) {
        var n = { name: t.name, children: t.data }
        qk(n)
        var i = t.levels || [],
          r = (this.designatedVisualItemStyle = {}),
          o = new wd({ itemStyle: r }, this, e)
        i = t.levels = (function (t, e) {
          var n,
            i,
            r = qo(e.get('color')),
            o = qo(e.get(['aria', 'decal', 'decals']))
          if (!r) return
          ;(t = t || []),
            z(t, function (t) {
              var e = new wd(t),
                r = e.get('color'),
                o = e.get('decal')
              ;(e.get(['itemStyle', 'color']) || (r && 'none' !== r)) && (n = !0), (e.get(['itemStyle', 'decal']) || (o && 'none' !== o)) && (i = !0)
            })
          var a = t[0] || (t[0] = {})
          n || (a.color = r.slice())
          !i && o && (a.decal = o.slice())
          return t
        })(i, e)
        var a = E(
            i || [],
            function (t) {
              return new wd(t, o, e)
            },
            this
          ),
          s = Ek.createTree(n, this, function (t) {
            t.wrapMethod('getItemModel', function (t, e) {
              var n = s.getNodeByDataIndex(e),
                i = n ? a[n.depth] : null
              return (t.parentModel = i || o), t
            })
          })
        return s.data
      }),
      (e.prototype.optionUpdated = function () {
        this.resetViewRoot()
      }),
      (e.prototype.formatTooltip = function (t, e, n) {
        var i = this.getData(),
          r = this.getRawValue(t)
        return Ty('nameValue', { name: i.getName(t), value: r })
      }),
      (e.prototype.getDataParams = function (e) {
        var n = t.prototype.getDataParams.apply(this, arguments),
          i = this.getData().tree.getNodeByDataIndex(e)
        return (n.treeAncestors = Fk(i, this)), (n.treePathInfo = n.treeAncestors), n
      }),
      (e.prototype.setLayoutInfo = function (t) {
        ;(this.layoutInfo = this.layoutInfo || {}), A(this.layoutInfo, t)
      }),
      (e.prototype.mapIdToIndex = function (t) {
        var e = this._idIndexMap
        e || ((e = this._idIndexMap = yt()), (this._idIndexMapCount = 0))
        var n = e.get(t)
        return null == n && e.set(t, (n = this._idIndexMapCount++)), n
      }),
      (e.prototype.getViewRoot = function () {
        return this._viewRoot
      }),
      (e.prototype.resetViewRoot = function (t) {
        t ? (this._viewRoot = t) : (t = this._viewRoot)
        var e = this.getRawData().tree.root
        ;(t && (t === e || e.contains(t))) || (this._viewRoot = e)
      }),
      (e.prototype.enableAriaDecal = function () {
        Zk(this)
      }),
      (e.type = 'series.treemap'),
      (e.layoutMode = 'box'),
      (e.defaultOption = {
        progressive: 0,
        coordinateSystemUsage: 'box',
        left: tf.size.l,
        top: tf.size.xxxl,
        right: tf.size.l,
        bottom: tf.size.xxxl,
        sort: !0,
        clipWindow: 'origin',
        squareRatio: 0.5 * (1 + Math.sqrt(5)),
        leafDepth: null,
        drillDownIcon: '▶',
        zoomToNodeRatio: 0.1024,
        scaleLimit: { max: 5, min: 0.2 },
        roam: !0,
        roamTrigger: 'global',
        nodeClick: 'zoomToNode',
        animation: !0,
        animationDurationUpdate: 900,
        animationEasing: 'quinticInOut',
        breadcrumb: {
          show: !0,
          height: 22,
          left: 'center',
          bottom: tf.size.m,
          emptyItemWidth: 25,
          itemStyle: { color: tf.color.backgroundShade, textStyle: { color: tf.color.secondary } },
          emphasis: { itemStyle: { color: tf.color.background } }
        },
        label: { show: !0, distance: 0, padding: 5, position: 'inside', color: tf.color.neutral00, overflow: 'truncate' },
        upperLabel: { show: !1, position: [0, '50%'], height: 20, overflow: 'truncate', verticalAlign: 'middle' },
        itemStyle: { color: null, colorAlpha: null, colorSaturation: null, borderWidth: 0, gapWidth: 0, borderColor: tf.color.neutral00, borderColorSaturation: null },
        emphasis: { upperLabel: { show: !0, position: [0, '50%'], overflow: 'truncate', verticalAlign: 'middle' } },
        visualDimension: 0,
        visualMin: null,
        visualMax: null,
        color: [],
        colorAlpha: null,
        colorSaturation: null,
        colorMappingBy: 'index',
        visibleMin: 10,
        childrenVisibleMin: null,
        levels: []
      }),
      e
    )
  })(Wy)
  function qk(t) {
    var e = 0
    z(t.children, function (t) {
      qk(t)
      var n = t.value
      U(n) && (n = n[0]), (e += n)
    })
    var n = t.value
    U(n) && (n = n[0]), (null == n || isNaN(n)) && (n = e), n < 0 && (n = 0), U(t.value) ? (t.value[0] = n) : (t.value = n)
  }
  var Kk = (function () {
    function t(t) {
      ;(this.group = new to()), t.add(this.group)
    }
    return (
      (t.prototype.render = function (t, e, n, i) {
        var r = t.getModel('breadcrumb'),
          o = this.group
        if ((o.removeAll(), r.get('show') && n)) {
          var a = r.getModel('itemStyle'),
            s = r.getModel('emphasis'),
            l = a.getModel('textStyle'),
            u = s.getModel(['itemStyle', 'textStyle']),
            c = Xp(t, e).refContainer,
            h = { left: r.get('left'), right: r.get('right'), top: r.get('top'), bottom: r.get('bottom') },
            d = { emptyItemWidth: r.get('emptyItemWidth'), totalWidth: 0, renderList: [] },
            p = Hp(h, c)
          this._prepare(n, d, l), this._renderContent(t, d, p, a, s, l, u, i), Zp(o, h, c)
        }
      }),
      (t.prototype._prepare = function (t, e, n) {
        for (var i = t; i; i = i.parentNode) {
          var r = ia(i.getModel().get('name'), ''),
            o = n.getTextRect(r),
            a = Math.max(o.width + 16, e.emptyItemWidth)
          ;(e.totalWidth += a + 8), e.renderList.push({ node: i, text: r, width: a })
        }
      }),
      (t.prototype._renderContent = function (t, e, n, i, r, o, a, s) {
        for (
          var l = 0, u = e.emptyItemWidth, c = t.get(['breadcrumb', 'height']), h = e.totalWidth, d = e.renderList, p = r.getModel('itemStyle').getItemStyle(), f = d.length - 1;
          f >= 0;
          f--
        ) {
          var g = d[f],
            y = g.node,
            v = g.width,
            m = g.text
          h > n.width && ((h -= v - u), (v = u), (m = null))
          var x = new Mc({
            shape: { points: $k(l, 0, v, c, f === d.length - 1, 0 === f) },
            style: k(i.getItemStyle(), { lineJoin: 'bevel' }),
            textContent: new Sl({ style: Qh(o, { text: m }) }),
            textConfig: { position: 'inside' },
            z2: 1e5,
            onclick: H(s, y)
          })
          ;(x.disableLabelAnimation = !0),
            (x.getTextContent().ensureState('emphasis').style = Qh(a, { text: m })),
            (x.ensureState('emphasis').style = p),
            Tu(x, r.get('focus'), r.get('blurScope'), r.get('disabled')),
            this.group.add(x),
            Jk(x, t, y),
            (l += v + 8)
        }
      }),
      (t.prototype.remove = function () {
        this.group.removeAll()
      }),
      t
    )
  })()
  function $k(t, e, n, i, r, o) {
    var a = [
      [r ? t : t - 5, e],
      [t + n, e],
      [t + n, e + i],
      [r ? t : t - 5, e + i]
    ]
    return !o && a.splice(2, 0, [t + n + 5, e + i / 2]), !r && a.push([t, e + i / 2]), a
  }
  function Jk(t, e, n) {
    zl(t).eventData = {
      componentType: 'series',
      componentSubType: 'treemap',
      componentIndex: e.componentIndex,
      seriesIndex: e.seriesIndex,
      seriesName: e.name,
      seriesType: 'treemap',
      selfType: 'breadcrumb',
      nodeData: { dataIndex: n && n.dataIndex, name: n && n.name },
      treePathInfo: n && Fk(n, e)
    }
  }
  var Qk = (function () {
    function t() {
      ;(this._storage = []), (this._elExistsMap = {})
    }
    return (
      (t.prototype.add = function (t, e, n, i, r) {
        return !this._elExistsMap[t.id] && ((this._elExistsMap[t.id] = !0), this._storage.push({ el: t, target: e, duration: n, delay: i, easing: r }), !0)
      }),
      (t.prototype.finished = function (t) {
        return (this._finishedCallback = t), this
      }),
      (t.prototype.start = function () {
        for (
          var t = this,
            e = this._storage.length,
            n = function () {
              --e <= 0 && ((t._storage.length = 0), (t._elExistsMap = {}), t._finishedCallback && t._finishedCallback())
            },
            i = 0,
            r = this._storage.length;
          i < r;
          i++
        ) {
          var o = this._storage[i]
          o.el.animateTo(o.target, { duration: o.duration, delay: o.delay, easing: o.easing, setToFinal: !0, done: n, aborted: n })
        }
        return this
      }),
      t
    )
  })()
  var tL = to,
    eL = xl,
    nL = 'label',
    iL = 'upperLabel',
    rL = Da([['fill', 'color'], ['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]),
    oL = function (t) {
      var e = rL(t)
      return (e.stroke = e.fill = e.lineWidth = null), e
    },
    aL = sa(),
    sL = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n._state = 'ready'), (n._storage = { nodeGroup: [], background: [], content: [] }), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n, i) {
          if (!(P(e.findComponents({ mainType: 'series', subType: 'treemap', query: i }), t) < 0)) {
            ;(this.seriesModel = t), (this.api = n), (this.ecModel = e)
            var r = Bk(i, ['treemapZoomToNode', 'treemapRootToNode'], t),
              o = i && i.type,
              a = t.layoutInfo,
              s = !this._oldTree,
              l = this._storage,
              u = 'treemapRootToNode' === o && r && l ? { rootNodeGroup: l.nodeGroup[r.node.getRawIndex()], direction: i.direction } : null,
              c = this._giveContainerGroup(a),
              h = t.get('animation'),
              d = this._doRender(c, t, u)
            !h || s || (o && 'treemapZoomToNode' !== o && 'treemapRootToNode' !== o) ? d.renderFinally() : this._doAnimation(c, d, t, u),
              this._resetController(n),
              this._renderBreadcrumb(t, n, r)
          }
        }),
        (e.prototype._giveContainerGroup = function (t) {
          var e = this._containerGroup
          return e || ((e = this._containerGroup = new tL()), this._initEvents(e), this.group.add(e)), (e.x = t.x), (e.y = t.y), e
        }),
        (e.prototype._doRender = function (t, e, n) {
          var i = e.getData().tree,
            r = this._oldTree,
            o = { nodeGroup: [], background: [], content: [] },
            a = { nodeGroup: [], background: [], content: [] },
            s = this._storage,
            l = []
          function u(t, i, r, u) {
            return (function (t, e, n, i, r, o, a, s, l, u) {
              if (!a) return
              var c = a.getLayout(),
                h = t.getData(),
                d = a.getModel()
              if ((h.setItemGraphicEl(a.dataIndex, null), !c || !c.isInView)) return
              var p = c.width,
                f = c.height,
                g = c.borderWidth,
                y = c.invisible,
                v = a.getRawIndex(),
                m = s && s.getRawIndex(),
                x = a.viewChildren,
                _ = c.upperHeight,
                b = x && x.length,
                w = d.getModel('itemStyle'),
                S = d.getModel(['emphasis', 'itemStyle']),
                M = d.getModel(['blur', 'itemStyle']),
                I = d.getModel(['select', 'itemStyle']),
                T = w.get('borderRadius') || 0,
                C = W('nodeGroup', tL)
              if (!C) return
              if ((l.add(C), (C.x = c.x || 0), (C.y = c.y || 0), C.markRedraw(), (aL(C).nodeWidth = p), (aL(C).nodeHeight = f), c.isAboveViewRoot)) return C
              var D = W('background', eL, u, 20)
              D && E(C, D, b && c.upperLabelHeight)
              var k = d.getModel('emphasis'),
                L = k.get('focus'),
                P = k.get('blurScope'),
                O = k.get('disabled'),
                R = 'ancestor' === L ? a.getAncestorsIndices() : 'descendant' === L ? a.getDescendantIndices() : L
              if (b) Pu(C) && Lu(C, !1), D && (Lu(D, !O), h.setItemGraphicEl(a.dataIndex, D), Cu(D, R, P))
              else {
                var N = W('content', eL, u, 30)
                N && B(C, N), (D.disableMorphing = !0), D && Pu(D) && Lu(D, !1), Lu(C, !O), h.setItemGraphicEl(a.dataIndex, C)
                var z = d.getShallow('cursor')
                z && N.attr('cursor', z), Cu(C, R, P)
              }
              return C
              function E(e, n, i) {
                var r = zl(n)
                if (((r.dataIndex = a.dataIndex), (r.seriesIndex = t.seriesIndex), n.setShape({ x: 0, y: 0, width: p, height: f, r: T }), y)) V(n)
                else {
                  n.invisible = !1
                  var o = a.getVisual('style'),
                    s = o.stroke,
                    l = oL(w)
                  l.fill = s
                  var u = rL(S)
                  u.fill = S.get('borderColor')
                  var c = rL(M)
                  c.fill = M.get('borderColor')
                  var h = rL(I)
                  if (((h.fill = I.get('borderColor')), i)) {
                    var d = p - 2 * g
                    G(n, s, o.opacity, { x: g, y: 0, width: d, height: _ })
                  } else n.removeTextContent()
                  n.setStyle(l), (n.ensureState('emphasis').style = u), (n.ensureState('blur').style = c), (n.ensureState('select').style = h), uu(n)
                }
                e.add(n)
              }
              function B(e, n) {
                var i = zl(n)
                ;(i.dataIndex = a.dataIndex), (i.seriesIndex = t.seriesIndex)
                var r = Math.max(p - 2 * g, 0),
                  o = Math.max(f - 2 * g, 0)
                if (((n.culling = !0), n.setShape({ x: g, y: g, width: r, height: o, r: T }), y)) V(n)
                else {
                  n.invisible = !1
                  var s = a.getVisual('style'),
                    l = s.fill,
                    u = oL(w)
                  ;(u.fill = l), (u.decal = s.decal)
                  var c = rL(S),
                    h = rL(M),
                    d = rL(I)
                  G(n, l, s.opacity, null), n.setStyle(u), (n.ensureState('emphasis').style = c), (n.ensureState('blur').style = h), (n.ensureState('select').style = d), uu(n)
                }
                e.add(n)
              }
              function V(t) {
                !t.invisible && o.push(t)
              }
              function G(e, n, i, r) {
                var o = d.getModel(r ? iL : nL),
                  s = ia(d.get('name'), null),
                  l = o.getShallow('show')
                $h(e, Jh(d, r ? iL : nL), { defaultText: l ? s : null, inheritColor: n, defaultOpacity: i, labelFetcher: t, labelDataIndex: a.dataIndex })
                var u = e.getTextContent()
                if (u) {
                  var h = u.style,
                    p = st(h.padding || 0)
                  r && (e.setTextConfig({ layoutRect: r }), (u.disableLabelLayout = !0)),
                    (u.beforeUpdate = function () {
                      var t = Math.max((r ? r.width : e.shape.width) - p[1] - p[3], 0),
                        n = Math.max((r ? r.height : e.shape.height) - p[0] - p[2], 0)
                      ;(h.width === t && h.height === n) || u.setStyle({ width: t, height: n })
                    }),
                    (h.truncateMinChar = 2),
                    (h.lineOverflow = 'truncate'),
                    F(h, r, c)
                  var f = u.getState('emphasis')
                  F(f ? f.style : null, r, c)
                }
              }
              function F(e, n, i) {
                var r = e ? e.text : null
                if (!n && i.isLeafRoot && null != r) {
                  var o = t.get('drillDownIcon', !0)
                  e.text = o ? o + ' ' + r : r
                }
              }
              function W(t, i, o, a) {
                var s = null != m && n[t][m],
                  l = r[t]
                return (
                  s
                    ? ((n[t][m] = null), H(l, s))
                    : y ||
                      ((s = new i()) instanceof os &&
                        (s.z2 = (function (t, e) {
                          return 100 * t + e
                        })(o, a)),
                      U(l, s)),
                  (e[t][v] = s)
                )
              }
              function H(t, e) {
                var n = (t[v] = {})
                e instanceof tL ? ((n.oldX = e.x), (n.oldY = e.y)) : (n.oldShape = A({}, e.shape))
              }
              function U(t, e) {
                var n = (t[v] = {}),
                  o = a.parentNode,
                  s = e instanceof to
                if (o && (!i || 'drillDown' === i.direction)) {
                  var l = 0,
                    u = 0,
                    c = r.background[o.getRawIndex()]
                  !i && c && c.oldShape && ((l = c.oldShape.width), (u = c.oldShape.height)), s ? ((n.oldX = 0), (n.oldY = u)) : (n.oldShape = { x: l, y: u, width: 0, height: 0 })
                }
                n.fadein = !s
              }
            })(e, a, s, n, o, l, t, i, r, u)
          }
          !(function t(e, n, i, r, o) {
            r
              ? ((n = e),
                z(e, function (t, e) {
                  !t.isRemoved() && s(e, e)
                }))
              : new f_(n, e, a, a).add(s).update(s).remove(H(s, null)).execute()
            function a(t) {
              return t.getId()
            }
            function s(a, s) {
              var l = null != a ? e[a] : null,
                c = null != s ? n[s] : null,
                h = u(l, c, i, o)
              h && t((l && l.viewChildren) || [], (c && c.viewChildren) || [], h, r, o + 1)
            }
          })(i.root ? [i.root] : [], r && r.root ? [r.root] : [], t, i === r || !r, 0)
          var c = (function (t) {
            var e = { nodeGroup: [], background: [], content: [] }
            return (
              t &&
                z(t, function (t, n) {
                  var i = e[n]
                  z(t, function (t) {
                    t && (i.push(t), (aL(t).willDelete = !0))
                  })
                }),
              e
            )
          })(s)
          if (((this._oldTree = i), (this._storage = a), this._controllerHost)) {
            var h = this.seriesModel.layoutInfo,
              d = i.root.getLayout()
            d.width === h.width && d.height === h.height && (this._controllerHost.zoom = 1)
          }
          return {
            lastsForAnimation: o,
            willDeleteEls: c,
            renderFinally: function () {
              z(c, function (t) {
                z(t, function (t) {
                  t.parent && t.parent.remove(t)
                })
              }),
                z(l, function (t) {
                  ;(t.invisible = !0), t.dirty()
                })
            }
          }
        }),
        (e.prototype._doAnimation = function (t, e, n, i) {
          var r = n.get('animationDurationUpdate'),
            o = n.get('animationEasing'),
            a = (Y(r) ? 0 : r) || 0,
            s = (Y(o) ? null : o) || 'cubicOut',
            l = new Qk()
          z(e.willDeleteEls, function (t, e) {
            z(t, function (t, n) {
              if (!t.invisible) {
                var r,
                  o = t.parent,
                  u = aL(o)
                if (i && 'drillDown' === i.direction)
                  r = o === i.rootNodeGroup ? { shape: { x: 0, y: 0, width: u.nodeWidth, height: u.nodeHeight }, style: { opacity: 0 } } : { style: { opacity: 0 } }
                else {
                  var c = 0,
                    h = 0
                  u.willDelete || ((c = u.nodeWidth / 2), (h = u.nodeHeight / 2)),
                    (r = 'nodeGroup' === e ? { x: c, y: h, style: { opacity: 0 } } : { shape: { x: c, y: h, width: 0, height: 0 }, style: { opacity: 0 } })
                }
                r && l.add(t, r, a, 0, s)
              }
            })
          }),
            z(
              this._storage,
              function (t, n) {
                z(t, function (t, i) {
                  var r = e.lastsForAnimation[n][i],
                    o = {}
                  r &&
                    (t instanceof to
                      ? null != r.oldX && ((o.x = t.x), (o.y = t.y), (t.x = r.oldX), (t.y = r.oldY))
                      : (r.oldShape && ((o.shape = A({}, t.shape)), t.setShape(r.oldShape)),
                        r.fadein ? (t.setStyle('opacity', 0), (o.style = { opacity: 1 })) : 1 !== t.style.opacity && (o.style = { opacity: 1 })),
                    l.add(t, o, a, 0, s))
                })
              },
              this
            ),
            (this._state = 'animating'),
            l
              .finished(
                W(function () {
                  ;(this._state = 'ready'), e.renderFinally()
                }, this)
              )
              .start()
        }),
        (e.prototype._resetController = function (t) {
          var e = this,
            n = this._controller,
            i = this._controllerHost
          i || ((this._controllerHost = { target: this.group }), (i = this._controllerHost))
          var r = this.seriesModel
          n || ((n = this._controller = new LD(t.getZr())).on('pan', W(this._onPan, this)), n.on('zoom', W(this._onZoom, this))),
            n.enable(r.get('roam'), {
              api: t,
              zInfo: { component: r },
              triggerInfo: {
                roamTrigger: r.get('roamTrigger'),
                isInSelf: function (t, n, i) {
                  var r = e._containerGroup
                  return !!r && r.getBoundingRect().contain(n - r.x, i - r.y)
                }
              }
            }),
            (i.zoomLimit = r.get('scaleLimit')),
            (i.zoom = r.get('zoom'))
        }),
        (e.prototype._clearController = function () {
          var t = this._controller
          ;(this._controllerHost = null), t && (t.dispose(), (t = null))
        }),
        (e.prototype._onPan = function (t) {
          if ('animating' !== this._state && (Math.abs(t.dx) > 3 || Math.abs(t.dy) > 3)) {
            var e = this.seriesModel.getData().tree.root
            if (!e) return
            var n = e.getLayout()
            if (!n) return
            this.api.dispatchAction({
              type: 'treemapMove',
              from: this.uid,
              seriesId: this.seriesModel.id,
              rootRect: { x: n.x + t.dx, y: n.y + t.dy, width: n.width, height: n.height }
            })
          }
        }),
        (e.prototype._onZoom = function (t) {
          var e = t.originX,
            n = t.originY,
            i = t.scale
          if ('animating' !== this._state) {
            var r = this.seriesModel.getData().tree.root
            if (!r) return
            var o = r.getLayout()
            if (!o) return
            var a,
              s = new He(o.x, o.y, o.width, o.height),
              l = this._controllerHost
            a = l.zoomLimit
            var u = (l.zoom = l.zoom || 1)
            if (((u *= i), a)) {
              var c = a.min || 0,
                h = a.max || 1 / 0
              u = Math.max(Math.min(h, u), c)
            }
            var d = u / l.zoom
            l.zoom = u
            var p = this.seriesModel.layoutInfo,
              f = [1, 0, 0, 1, 0, 0]
            Se(f, f, [-(e -= p.x), -(n -= p.y)]),
              Ie(f, f, [d, d]),
              Se(f, f, [e, n]),
              s.applyTransform(f),
              this.api.dispatchAction({ type: 'treemapRender', from: this.uid, seriesId: this.seriesModel.id, rootRect: { x: s.x, y: s.y, width: s.width, height: s.height } })
          }
        }),
        (e.prototype._initEvents = function (t) {
          var e = this
          t.on(
            'click',
            function (t) {
              if ('ready' === e._state) {
                var n = e.seriesModel.get('nodeClick', !0)
                if (n) {
                  var i = e.findTarget(t.offsetX, t.offsetY)
                  if (i) {
                    var r = i.node
                    if (r.getLayout().isLeafRoot) e._rootToNode(i)
                    else if ('zoomToNode' === n) e._zoomToNode(i)
                    else if ('link' === n) {
                      var o = r.hostTree.data.getItemModel(r.dataIndex),
                        a = o.get('link', !0),
                        s = o.get('target', !0) || 'blank'
                      a && Sp(a, s)
                    }
                  }
                }
              }
            },
            this
          )
        }),
        (e.prototype._renderBreadcrumb = function (t, e, n) {
          var i = this
          n || (n = null != t.get('leafDepth', !0) ? { node: t.getViewRoot() } : this.findTarget(e.getWidth() / 2, e.getHeight() / 2)) || (n = { node: t.getData().tree.root }),
            (this._breadcrumb || (this._breadcrumb = new Kk(this.group))).render(t, e, n.node, function (e) {
              'animating' !== i._state && (Gk(t.getViewRoot(), e) ? i._rootToNode({ node: e }) : i._zoomToNode({ node: e }))
            })
        }),
        (e.prototype.remove = function () {
          this._clearController(),
            this._containerGroup && this._containerGroup.removeAll(),
            (this._storage = { nodeGroup: [], background: [], content: [] }),
            (this._state = 'ready'),
            this._breadcrumb && this._breadcrumb.remove()
        }),
        (e.prototype.dispose = function () {
          this._clearController()
        }),
        (e.prototype._zoomToNode = function (t) {
          this.api.dispatchAction({ type: 'treemapZoomToNode', from: this.uid, seriesId: this.seriesModel.id, targetNode: t.node })
        }),
        (e.prototype._rootToNode = function (t) {
          this.api.dispatchAction({ type: 'treemapRootToNode', from: this.uid, seriesId: this.seriesModel.id, targetNode: t.node })
        }),
        (e.prototype.findTarget = function (t, e) {
          var n
          return (
            this.seriesModel.getViewRoot().eachNode(
              { attr: 'viewChildren', order: 'preorder' },
              function (i) {
                var r = this._storage.background[i.getRawIndex()]
                if (r) {
                  var o = r.transformCoordToLocal(t, e),
                    a = r.shape
                  if (!(a.x <= o[0] && o[0] <= a.x + a.width && a.y <= o[1] && o[1] <= a.y + a.height)) return !1
                  n = { node: i, offsetX: o[0], offsetY: o[1] }
                }
              },
              this
            ),
            n
          )
        }),
        (e.type = 'treemap'),
        e
      )
    })(tv)
  var lL = z,
    uL = q,
    cL = -1,
    hL = (function () {
      function t(e) {
        var n = e.mappingMethod,
          i = e.type,
          r = (this.option = T(e))
        ;(this.type = i), (this.mappingMethod = n), (this._normalizeData = bL[n])
        var o = t.visualHandlers[i]
        ;(this.applyVisual = o.applyVisual),
          (this.getColorMapper = o.getColorMapper),
          (this._normalizedToVisual = o._normalizedToVisual[n]),
          'piecewise' === n
            ? (dL(r),
              (function (t) {
                var e = t.pieceList
                ;(t.hasSpecialVisual = !1),
                  z(e, function (e, n) {
                    ;(e.originIndex = n), null != e.visual && (t.hasSpecialVisual = !0)
                  })
              })(r))
            : 'category' === n
              ? r.categories
                ? (function (t) {
                    var e = t.categories,
                      n = (t.categoryMap = {}),
                      i = t.visual
                    if (
                      (lL(e, function (t, e) {
                        n[t] = e
                      }),
                      !U(i))
                    ) {
                      var r = []
                      q(i)
                        ? lL(i, function (t, e) {
                            var i = n[e]
                            r[null != i ? i : cL] = t
                          })
                        : (r[-1] = i),
                        (i = _L(t, r))
                    }
                    for (var o = e.length - 1; o >= 0; o--) null == i[o] && (delete n[e[o]], e.pop())
                  })(r)
                : dL(r, !0)
              : (lt('linear' !== n || r.dataExtent), dL(r))
      }
      return (
        (t.prototype.mapValueToVisual = function (t) {
          var e = this._normalizeData(t)
          return this._normalizedToVisual(e, t)
        }),
        (t.prototype.getNormalizer = function () {
          return W(this._normalizeData, this)
        }),
        (t.listVisualTypes = function () {
          return F(t.visualHandlers)
        }),
        (t.isValidType = function (e) {
          return t.visualHandlers.hasOwnProperty(e)
        }),
        (t.eachVisual = function (t, e, n) {
          q(t) ? z(t, e, n) : e.call(n, t)
        }),
        (t.mapVisual = function (e, n, i) {
          var r,
            o = U(e) ? [] : q(e) ? {} : ((r = !0), null)
          return (
            t.eachVisual(e, function (t, e) {
              var a = n.call(i, t, e)
              r ? (o = a) : (o[e] = a)
            }),
            o
          )
        }),
        (t.retrieveVisuals = function (e) {
          var n,
            i = {}
          return (
            e &&
              lL(t.visualHandlers, function (t, r) {
                e.hasOwnProperty(r) && ((i[r] = e[r]), (n = !0))
              }),
            n ? i : null
          )
        }),
        (t.prepareVisualTypes = function (t) {
          if (U(t)) t = t.slice()
          else {
            if (!uL(t)) return []
            var e = []
            lL(t, function (t, n) {
              e.push(n)
            }),
              (t = e)
          }
          return (
            t.sort(function (t, e) {
              return 'color' === e && 'color' !== t && 0 === t.indexOf('color') ? 1 : -1
            }),
            t
          )
        }),
        (t.dependsOn = function (t, e) {
          return 'color' === e ? !(!t || 0 !== t.indexOf(e)) : t === e
        }),
        (t.findPieceIndex = function (t, e, n) {
          for (var i, r = 1 / 0, o = 0, a = e.length; o < a; o++) {
            var s = e[o].value
            if (null != s) {
              if (s === t || (X(s) && s === t + '')) return o
              n && h(s, o)
            }
          }
          for (o = 0, a = e.length; o < a; o++) {
            var l = e[o],
              u = l.interval,
              c = l.close
            if (u) {
              if (u[0] === -1 / 0) {
                if (wL(c[1], t, u[1])) return o
              } else if (u[1] === 1 / 0) {
                if (wL(c[0], u[0], t)) return o
              } else if (wL(c[0], u[0], t) && wL(c[1], t, u[1])) return o
              n && h(u[0], o), n && h(u[1], o)
            }
          }
          if (n) return t === 1 / 0 ? e.length - 1 : t === -1 / 0 ? 0 : i
          function h(e, n) {
            var o = Math.abs(e - t)
            o < r && ((r = o), (i = n))
          }
        }),
        (t.visualHandlers = {
          color: {
            applyVisual: gL('color'),
            getColorMapper: function () {
              var t = this.option
              return W(
                'category' === t.mappingMethod
                  ? function (t, e) {
                      return !e && (t = this._normalizeData(t)), yL.call(this, t)
                    }
                  : function (e, n, i) {
                      var r = !!i
                      return !n && (e = this._normalizeData(e)), (i = li(e, t.parsedVisual, i)), r ? i : fi(i, 'rgba')
                    },
                this
              )
            },
            _normalizedToVisual: {
              linear: function (t) {
                return fi(li(t, this.option.parsedVisual), 'rgba')
              },
              category: yL,
              piecewise: function (t, e) {
                var n = xL.call(this, e)
                return null == n && (n = fi(li(t, this.option.parsedVisual), 'rgba')), n
              },
              fixed: vL
            }
          },
          colorHue: pL(function (t, e) {
            return di(t, e)
          }),
          colorSaturation: pL(function (t, e) {
            return di(t, null, e)
          }),
          colorLightness: pL(function (t, e) {
            return di(t, null, null, e)
          }),
          colorAlpha: pL(function (t, e) {
            return pi(t, e)
          }),
          decal: { applyVisual: gL('decal'), _normalizedToVisual: { linear: null, category: yL, piecewise: null, fixed: null } },
          opacity: { applyVisual: gL('opacity'), _normalizedToVisual: mL([0, 1]) },
          liftZ: { applyVisual: gL('liftZ'), _normalizedToVisual: { linear: vL, category: vL, piecewise: vL, fixed: vL } },
          symbol: {
            applyVisual: function (t, e, n) {
              n('symbol', this.mapValueToVisual(t))
            },
            _normalizedToVisual: {
              linear: fL,
              category: yL,
              piecewise: function (t, e) {
                var n = xL.call(this, e)
                return null == n && (n = fL.call(this, t)), n
              },
              fixed: vL
            }
          },
          symbolSize: { applyVisual: gL('symbolSize'), _normalizedToVisual: mL([0, 1]) }
        }),
        t
      )
    })()
  function dL(t, e) {
    var n = t.visual,
      i = []
    q(n)
      ? lL(n, function (t) {
          i.push(t)
        })
      : null != n && i.push(n)
    e || 1 !== i.length || { color: 1, symbol: 1 }.hasOwnProperty(t.type) || (i[1] = i[0]), _L(t, i)
  }
  function pL(t) {
    return {
      applyVisual: function (e, n, i) {
        var r = this.mapValueToVisual(e)
        i('color', t(n('color'), r))
      },
      _normalizedToVisual: mL([0, 1])
    }
  }
  function fL(t) {
    var e = this.option.visual
    return e[Math.round(go(t, [0, 1], [0, e.length - 1], !0))] || {}
  }
  function gL(t) {
    return function (e, n, i) {
      i(t, this.mapValueToVisual(e))
    }
  }
  function yL(t) {
    var e = this.option.visual
    return e[this.option.loop && t !== cL ? t % e.length : t]
  }
  function vL() {
    return this.option.visual[0]
  }
  function mL(t) {
    return {
      linear: function (e) {
        return go(e, t, this.option.visual, !0)
      },
      category: yL,
      piecewise: function (e, n) {
        var i = xL.call(this, n)
        return null == i && (i = go(e, t, this.option.visual, !0)), i
      },
      fixed: vL
    }
  }
  function xL(t) {
    var e = this.option,
      n = e.pieceList
    if (e.hasSpecialVisual) {
      var i = n[hL.findPieceIndex(t, n)]
      if (i && i.visual) return i.visual[this.type]
    }
  }
  function _L(t, e) {
    return (
      (t.visual = e),
      'color' === t.type &&
        (t.parsedVisual = E(e, function (t) {
          var e = oi(t)
          return e || [0, 0, 0, 1]
        })),
      e
    )
  }
  var bL = {
    linear: function (t) {
      return go(t, this.option.dataExtent, [0, 1], !0)
    },
    piecewise: function (t) {
      var e = this.option.pieceList,
        n = hL.findPieceIndex(t, e, !0)
      if (null != n) return go(n, [0, e.length - 1], [0, 1], !0)
    },
    category: function (t) {
      var e = this.option.categories ? this.option.categoryMap[t] : t
      return null == e ? cL : e
    },
    fixed: bt
  }
  function wL(t, e, n) {
    return t ? e <= n : e < n
  }
  var SL = sa(),
    ML = {
      seriesType: 'treemap',
      reset: function (t) {
        var e = t.getData().tree.root
        e.isRemoved() || IL(e, {}, t.getViewRoot().getAncestors(), t)
      }
    }
  function IL(t, e, n, i) {
    var r = t.getModel(),
      o = t.getLayout(),
      a = t.hostTree.data
    if (o && !o.invisible && o.isInView) {
      var s,
        l = r.getModel('itemStyle'),
        u = (function (t, e, n) {
          var i = A({}, e),
            r = n.designatedVisualItemStyle
          return (
            z(['color', 'colorAlpha', 'colorSaturation'], function (n) {
              r[n] = e[n]
              var o = t.get(n)
              ;(r[n] = null), null != o && (i[n] = o)
            }),
            i
          )
        })(l, e, i),
        c = a.ensureUniqueItemVisual(t.dataIndex, 'style'),
        h = l.get('borderColor'),
        d = l.get('borderColorSaturation')
      null != d &&
        (h = (function (t, e) {
          return null != e ? di(e, null, null, t) : null
        })(d, (s = TL(u)))),
        (c.stroke = h)
      var p = t.viewChildren
      if (p && p.length) {
        var f = (function (t, e, n, i, r, o) {
          if (!o || !o.length) return
          var a = DL(e, 'color') || (null != r.color && 'none' !== r.color && (DL(e, 'colorAlpha') || DL(e, 'colorSaturation')))
          if (!a) return
          var s = e.get('visualMin'),
            l = e.get('visualMax'),
            u = n.dataExtent.slice()
          null != s && s < u[0] && (u[0] = s), null != l && l > u[1] && (u[1] = l)
          var c = e.get('colorMappingBy'),
            h = { type: a.name, dataExtent: u, visual: a.range }
          'color' !== h.type || ('index' !== c && 'id' !== c) ? (h.mappingMethod = 'linear') : ((h.mappingMethod = 'category'), (h.loop = !0))
          var d = new hL(h)
          return (SL(d).drColorMappingBy = c), d
        })(0, r, o, 0, u, p)
        z(p, function (t, e) {
          if (t.depth >= n.length || t === n[t.depth]) {
            var o = (function (t, e, n, i, r, o) {
              var a = A({}, e)
              if (r) {
                var s = r.type,
                  l = 'color' === s && SL(r).drColorMappingBy,
                  u = 'index' === l ? i : 'id' === l ? o.mapIdToIndex(n.getId()) : n.getValue(t.get('visualDimension'))
                a[s] = r.mapValueToVisual(u)
              }
              return a
            })(r, u, t, e, f, i)
            IL(t, o, n, i)
          }
        })
      } else (s = TL(u)), (c.fill = s)
    }
  }
  function TL(t) {
    var e = CL(t, 'color')
    if (e) {
      var n = CL(t, 'colorAlpha'),
        i = CL(t, 'colorSaturation')
      return i && (e = di(e, null, null, i)), n && (e = pi(e, n)), e
    }
  }
  function CL(t, e) {
    var n = t[e]
    if (null != n && 'none' !== n) return n
  }
  function DL(t, e) {
    var n = t.get(e)
    return U(n) && n.length ? { name: e, range: n } : null
  }
  var AL = Math.max,
    kL = Math.min,
    LL = it,
    PL = z,
    OL = ['itemStyle', 'borderWidth'],
    RL = ['itemStyle', 'gapWidth'],
    NL = ['upperLabel', 'show'],
    zL = ['upperLabel', 'height'],
    EL = {
      seriesType: 'treemap',
      reset: function (t, e, n, i) {
        var r = t.option,
          o = Xp(t, n).refContainer,
          a = Hp(t.getBoxLayoutParams(), o),
          s = r.size || [],
          l = yo(LL(a.width, s[0]), o.width),
          u = yo(LL(a.height, s[1]), o.height),
          c = i && i.type,
          h = Bk(i, ['treemapZoomToNode', 'treemapRootToNode'], t),
          d = 'treemapRender' === c || 'treemapMove' === c ? i.rootRect : null,
          p = t.getViewRoot(),
          f = Vk(p)
        if ('treemapMove' !== c) {
          var g =
              'treemapZoomToNode' === c
                ? (function (t, e, n, i, r) {
                    var o,
                      a = (e || {}).node,
                      s = [i, r]
                    if (!a || a === n) return s
                    var l = i * r,
                      u = l * t.option.zoomToNodeRatio
                    for (; (o = a.parentNode); ) {
                      for (var c = 0, h = o.children, d = 0, p = h.length; d < p; d++) c += h[d].getValue()
                      var f = a.getValue()
                      if (0 === f) return s
                      u *= c / f
                      var g = o.getModel(),
                        y = g.get(OL)
                      ;(u += 4 * y * y + (3 * y + Math.max(y, WL(g))) * Math.pow(u, 0.5)) > Io && (u = Io), (a = o)
                    }
                    u < l && (u = l)
                    var v = Math.pow(u / l, 0.5)
                    return [i * v, r * v]
                  })(t, h, p, l, u)
                : d
                  ? [d.width, d.height]
                  : [l, u],
            y = r.sort
          y && 'asc' !== y && 'desc' !== y && (y = 'desc')
          var v = { squareRatio: r.squareRatio, sort: y, leafDepth: r.leafDepth }
          p.hostTree.clearLayouts()
          var m = { x: 0, y: 0, width: g[0], height: g[1], area: g[0] * g[1] }
          p.setLayout(m),
            BL(p, v, !1, 0),
            (m = p.getLayout()),
            PL(f, function (t, e) {
              var n = (f[e + 1] || p).getValue()
              t.setLayout(A({ dataExtent: [n, n], borderWidth: 0, upperHeight: 0 }, m))
            })
        }
        var x = t.getData().tree.root
        x.setLayout(
          (function (t, e, n) {
            if (e) return { x: e.x, y: e.y }
            var i = { x: 0, y: 0 }
            if (!n) return i
            var r = n.node,
              o = r.getLayout()
            if (!o) return i
            var a = [o.width / 2, o.height / 2],
              s = r
            for (; s; ) {
              var l = s.getLayout()
              ;(a[0] += l.x), (a[1] += l.y), (s = s.parentNode)
            }
            return { x: t.width / 2 - a[0], y: t.height / 2 - a[1] }
          })(a, d, h),
          !0
        ),
          t.setLayoutInfo(a),
          FL(x, new He(-a.x, -a.y, n.getWidth(), n.getHeight()), f, p, 0)
      }
    }
  function BL(t, e, n, i) {
    var r, o
    if (!t.isRemoved()) {
      var a = t.getLayout()
      ;(r = a.width), (o = a.height)
      var s = t.getModel(),
        l = s.get(OL),
        u = s.get(RL) / 2,
        c = WL(s),
        h = Math.max(l, c),
        d = l - u,
        p = h - u
      t.setLayout({ borderWidth: l, upperHeight: h, upperLabelHeight: c }, !0)
      var f = (r = AL(r - 2 * d, 0)) * (o = AL(o - d - p, 0)),
        g = (function (t, e, n, i, r, o) {
          var a = t.children || [],
            s = i.sort
          'asc' !== s && 'desc' !== s && (s = null)
          var l = null != i.leafDepth && i.leafDepth <= o
          if (r && !l) return (t.viewChildren = [])
          ;(a = V(a, function (t) {
            return !t.isRemoved()
          })),
            (function (t, e) {
              e &&
                t.sort(function (t, n) {
                  var i = 'asc' === e ? t.getValue() - n.getValue() : n.getValue() - t.getValue()
                  return 0 === i ? ('asc' === e ? t.dataIndex - n.dataIndex : n.dataIndex - t.dataIndex) : i
                })
            })(a, s)
          var u = (function (t, e, n) {
            for (var i = 0, r = 0, o = e.length; r < o; r++) i += e[r].getValue()
            var a,
              s = t.get('visualDimension')
            e && e.length
              ? 'value' === s && n
                ? ((a = [e[e.length - 1].getValue(), e[0].getValue()]), 'asc' === n && a.reverse())
                : ((a = [1 / 0, -1 / 0]),
                  PL(e, function (t) {
                    var e = t.getValue(s)
                    e < a[0] && (a[0] = e), e > a[1] && (a[1] = e)
                  }))
              : (a = [NaN, NaN])
            return { sum: i, dataExtent: a }
          })(e, a, s)
          if (0 === u.sum) return (t.viewChildren = [])
          if (
            ((u.sum = (function (t, e, n, i, r) {
              if (!i) return n
              for (var o = t.get('visibleMin'), a = r.length, s = a, l = a - 1; l >= 0; l--) {
                var u = r['asc' === i ? a - l - 1 : l].getValue()
                ;(u / n) * e < o && ((s = l), (n -= u))
              }
              return 'asc' === i ? r.splice(0, a - s) : r.splice(s, a - s), n
            })(e, n, u.sum, s, a)),
            0 === u.sum)
          )
            return (t.viewChildren = [])
          for (var c = 0, h = a.length; c < h; c++) {
            var d = (a[c].getValue() / u.sum) * n
            a[c].setLayout({ area: d })
          }
          l && (a.length && t.setLayout({ isLeafRoot: !0 }, !0), (a.length = 0))
          return (t.viewChildren = a), t.setLayout({ dataExtent: u.dataExtent }, !0), a
        })(t, s, f, e, n, i)
      if (g.length) {
        var y = { x: d, y: p, width: r, height: o },
          v = kL(r, o),
          m = 1 / 0,
          x = []
        x.area = 0
        for (var _ = 0, b = g.length; _ < b; ) {
          var w = g[_]
          x.push(w), (x.area += w.getLayout().area)
          var S = VL(x, v, e.squareRatio)
          S <= m ? (_++, (m = S)) : ((x.area -= x.pop().getLayout().area), GL(x, v, y, u, !1), (v = kL(y.width, y.height)), (x.length = x.area = 0), (m = 1 / 0))
        }
        if ((x.length && GL(x, v, y, u, !0), !n)) {
          var M = s.get('childrenVisibleMin')
          null != M && f < M && (n = !0)
        }
        for (_ = 0, b = g.length; _ < b; _++) BL(g[_], e, n, i + 1)
      }
    }
  }
  function VL(t, e, n) {
    for (var i = 0, r = 1 / 0, o = 0, a = void 0, s = t.length; o < s; o++) (a = t[o].getLayout().area) && (a < r && (r = a), a > i && (i = a))
    var l = t.area * t.area,
      u = e * e * n
    return l ? AL((u * i) / l, l / (u * r)) : 1 / 0
  }
  function GL(t, e, n, i, r) {
    var o = e === n.width ? 0 : 1,
      a = 1 - o,
      s = ['x', 'y'],
      l = ['width', 'height'],
      u = n[s[o]],
      c = e ? t.area / e : 0
    ;(r || c > n[l[a]]) && (c = n[l[a]])
    for (var h = 0, d = t.length; h < d; h++) {
      var p = t[h],
        f = {},
        g = c ? p.getLayout().area / c : 0,
        y = (f[l[a]] = AL(c - 2 * i, 0)),
        v = n[s[o]] + n[l[o]] - u,
        m = h === d - 1 || v < g ? v : g,
        x = (f[l[o]] = AL(m - 2 * i, 0))
      ;(f[s[a]] = n[s[a]] + kL(i, y / 2)), (f[s[o]] = u + kL(i, x / 2)), (u += m), p.setLayout(f, !0)
    }
    ;(n[s[a]] += c), (n[l[a]] -= c)
  }
  function FL(t, e, n, i, r) {
    var o = t.getLayout(),
      a = n[r],
      s = a && a === t
    if (!((a && !s) || (r === n.length && t !== i))) {
      t.setLayout({ isInView: !0, invisible: !s && !e.intersect(o), isAboveViewRoot: s }, !0)
      var l = new He(e.x - o.x, e.y - o.y, e.width, e.height)
      PL(t.viewChildren || [], function (t) {
        FL(t, l, n, i, r + 1)
      })
    }
  }
  function WL(t) {
    return t.get(NL) ? t.get(zL) : 0
  }
  function HL(t) {
    var e = t.findComponents({ mainType: 'legend' })
    e &&
      e.length &&
      t.eachSeriesByType('graph', function (t) {
        var n = t.getCategoriesData(),
          i = t.getGraph().data,
          r = n.mapArray(n.getName)
        i.filterSelf(function (t) {
          var n = i.getItemModel(t).getShallow('category')
          if (null != n) {
            j(n) && (n = r[n])
            for (var o = 0; o < e.length; o++) if (!e[o].isSelected(n)) return !1
          }
          return !0
        })
      })
  }
  function UL(t) {
    var e = {}
    t.eachSeriesByType('graph', function (t) {
      var n = t.getCategoriesData(),
        i = t.getData(),
        r = {}
      n.each(function (i) {
        var o = n.getName(i)
        r['ec-' + o] = i
        var a = n.getItemModel(i),
          s = a.getModel('itemStyle').getItemStyle()
        s.fill || (s.fill = t.getColorFromPalette(o, e)), n.setItemVisual(i, 'style', s)
        for (var l = ['symbol', 'symbolSize', 'symbolKeepAspect'], u = 0; u < l.length; u++) {
          var c = a.getShallow(l[u], !0)
          null != c && n.setItemVisual(i, l[u], c)
        }
      }),
        n.count() &&
          i.each(function (t) {
            var e = i.getItemModel(t).getShallow('category')
            if (null != e) {
              X(e) && (e = r['ec-' + e])
              var o = n.getItemVisual(e, 'style')
              A(i.ensureUniqueItemVisual(t, 'style'), o)
              for (var a = ['symbol', 'symbolSize', 'symbolKeepAspect'], s = 0; s < a.length; s++) i.setItemVisual(t, a[s], n.getItemVisual(e, a[s]))
            }
          })
    })
  }
  function YL(t) {
    return t instanceof Array || (t = [t, t]), t
  }
  function XL(t) {
    t.eachSeriesByType('graph', function (t) {
      var e = t.getGraph(),
        n = t.getEdgeData(),
        i = YL(t.get('edgeSymbol')),
        r = YL(t.get('edgeSymbolSize'))
      n.setVisual('fromSymbol', i && i[0]),
        n.setVisual('toSymbol', i && i[1]),
        n.setVisual('fromSymbolSize', r && r[0]),
        n.setVisual('toSymbolSize', r && r[1]),
        n.setVisual('style', t.getModel('lineStyle').getLineStyle()),
        n.each(function (t) {
          var i = n.getItemModel(t),
            r = e.getEdgeByIndex(t),
            o = YL(i.getShallow('symbol', !0)),
            a = YL(i.getShallow('symbolSize', !0)),
            s = i.getModel('lineStyle').getLineStyle(),
            l = n.ensureUniqueItemVisual(t, 'style')
          switch ((A(l, s), l.stroke)) {
            case 'source':
              var u = r.node1.getVisual('style')
              l.stroke = u && u.fill
              break
            case 'target':
              u = r.node2.getVisual('style')
              l.stroke = u && u.fill
          }
          o[0] && r.setVisual('fromSymbol', o[0]), o[1] && r.setVisual('toSymbol', o[1]), a[0] && r.setVisual('fromSymbolSize', a[0]), a[1] && r.setVisual('toSymbolSize', a[1])
        })
    })
  }
  var ZL = '--\x3e',
    jL = function (t) {
      return t.get('autoCurveness') || null
    },
    qL = function (t, e) {
      var n = jL(t),
        i = 20,
        r = []
      if (j(n)) i = n
      else if (U(n)) return void (t.__curvenessList = n)
      e > i && (i = e)
      var o = i % 2 ? i + 2 : i + 3
      r = []
      for (var a = 0; a < o; a++) r.push(((a % 2 ? a + 1 : a) / 10) * (a % 2 ? -1 : 1))
      t.__curvenessList = r
    },
    KL = function (t, e, n) {
      var i = [t.id, t.dataIndex].join('.'),
        r = [e.id, e.dataIndex].join('.')
      return [n.uid, i, r].join(ZL)
    },
    $L = function (t) {
      var e = t.split(ZL)
      return [e[0], e[2], e[1]].join(ZL)
    },
    JL = function (t, e) {
      var n = e.__edgeMap
      return n[t] ? n[t].length : 0
    }
  function QL(t, e, n, i) {
    var r = jL(e),
      o = U(r)
    if (!r) return null
    var a = (function (t, e) {
      var n = KL(t.node1, t.node2, e)
      return e.__edgeMap[n]
    })(t, e)
    if (!a) return null
    for (var s = -1, l = 0; l < a.length; l++)
      if (a[l] === n) {
        s = l
        break
      }
    var u = (function (t, e) {
      return JL(KL(t.node1, t.node2, e), e) + JL(KL(t.node2, t.node1, e), e)
    })(t, e)
    qL(e, u), (t.lineStyle = t.lineStyle || {})
    var c = KL(t.node1, t.node2, e),
      h = e.__curvenessList,
      d = o || u % 2 ? 0 : 1
    if (a.isForward) return h[d + s]
    var p = $L(c),
      f = JL(p, e),
      g = h[s + f + d]
    return i ? (o ? (r && 0 === r[0] ? ((f + d) % 2 ? g : -g) : ((f % 2 ? 0 : 1) + d) % 2 ? g : -g) : (f + d) % 2 ? g : -g) : h[s + f + d]
  }
  function tP(t) {
    var e = t.coordinateSystem
    if (!e || 'view' === e.type) {
      var n = t.getGraph()
      n.eachNode(function (t) {
        var e = t.getModel()
        t.setLayout([+e.get('x'), +e.get('y')])
      }),
        eP(n, t)
    }
  }
  function eP(t, e) {
    t.eachEdge(function (t, n) {
      var i = ot(t.getModel().get(['lineStyle', 'curveness']), -QL(t, e, n, !0), 0),
        r = Ct(t.node1.getLayout()),
        o = Ct(t.node2.getLayout()),
        a = [r, o]
      ;+i && a.push([(r[0] + o[0]) / 2 - (r[1] - o[1]) * i, (r[1] + o[1]) / 2 - (o[0] - r[0]) * i]), t.setLayout(a)
    })
  }
  function nP(t, e) {
    t.eachSeriesByType('graph', function (t) {
      var e = t.get('layout'),
        n = t.coordinateSystem
      if (n && 'view' !== n.type) {
        var i = t.getData(),
          r = []
        z(n.dimensions, function (t) {
          r = r.concat(i.mapDimensionsAll(t))
        })
        for (var o = 0; o < i.count(); o++) {
          for (var a = [], s = !1, l = 0; l < r.length; l++) {
            var u = i.get(r[l], o)
            isNaN(u) || (s = !0), a.push(u)
          }
          s ? i.setItemLayout(o, n.dataToPoint(a)) : i.setItemLayout(o, [NaN, NaN])
        }
        eP(i.graph, t)
      } else (e && 'none' !== e) || tP(t)
    })
  }
  function iP(t) {
    var e = t.coordinateSystem
    if ('view' !== e.type) return 1
    var n = t.option.nodeScaleRatio,
      i = e.scaleX
    return ((e.getZoom() - 1) * n + 1) / i
  }
  function rP(t) {
    var e = t.getVisual('symbolSize')
    return e instanceof Array && (e = (e[0] + e[1]) / 2), +e
  }
  var oP = Math.PI,
    aP = []
  function sP(t, e, n, i) {
    var r = t.coordinateSystem
    if (!r || 'view' === r.type) {
      var o = r.getBoundingRect(),
        a = t.getData(),
        s = a.graph,
        l = o.width / 2 + o.x,
        u = o.height / 2 + o.y,
        c = Math.min(o.width, o.height) / 2,
        h = a.count()
      if ((a.setLayout({ cx: l, cy: u }), h)) {
        if (n) {
          var d = r.pointToData(i),
            p = d[0],
            f = d[1],
            g = [p - l, f - u]
          Et(g, g), zt(g, g, c), n.setLayout([l + g[0], u + g[1]], !0), uP(n, t.get(['circular', 'rotateLabel']), l, u)
        }
        lP[e](t, s, a, c, l, u, h),
          s.eachEdge(function (e, n) {
            var i,
              r = ot(e.getModel().get(['lineStyle', 'curveness']), QL(e, t, n), 0),
              o = Ct(e.node1.getLayout()),
              a = Ct(e.node2.getLayout()),
              s = (o[0] + a[0]) / 2,
              c = (o[1] + a[1]) / 2
            ;+r && (i = [l * (r *= 3) + s * (1 - r), u * r + c * (1 - r)]), e.setLayout([o, a, i])
          })
      }
    }
  }
  var lP = {
    value: function (t, e, n, i, r, o, a) {
      var s = 0,
        l = n.getSum('value'),
        u = (2 * Math.PI) / (l || a)
      e.eachNode(function (t) {
        var e = t.getValue('value'),
          n = (u * (l ? e : 1)) / 2
        ;(s += n), t.setLayout([i * Math.cos(s) + r, i * Math.sin(s) + o]), (s += n)
      })
    },
    symbolSize: function (t, e, n, i, r, o, a) {
      var s = 0
      aP.length = a
      var l = iP(t)
      e.eachNode(function (t) {
        var e = rP(t)
        isNaN(e) && (e = 2), e < 0 && (e = 0), (e *= l)
        var n = Math.asin(e / 2 / i)
        isNaN(n) && (n = oP / 2), (aP[t.dataIndex] = n), (s += 2 * n)
      })
      var u = (2 * oP - s) / a / 2,
        c = 0
      e.eachNode(function (t) {
        var e = u + aP[t.dataIndex]
        ;(c += e), (!t.getLayout() || !t.getLayout().fixed) && t.setLayout([i * Math.cos(c) + r, i * Math.sin(c) + o]), (c += e)
      })
    }
  }
  function uP(t, e, n, i) {
    var r = t.getGraphicEl()
    if (r) {
      var o = t.getModel().get(['label', 'rotate']) || 0,
        a = r.getSymbolPath()
      if (e) {
        var s = t.getLayout(),
          l = Math.atan2(s[1] - i, s[0] - n)
        l < 0 && (l = 2 * Math.PI + l)
        var u = s[0] < n
        u && (l -= Math.PI)
        var c = u ? 'left' : 'right'
        a.setTextConfig({ rotation: -l, position: c, origin: 'center' })
        var h = a.ensureState('emphasis')
        A(h.textConfig || (h.textConfig = {}), { position: c })
      } else a.setTextConfig({ rotation: (o *= Math.PI / 180) })
    }
  }
  function cP(t) {
    t.eachSeriesByType('graph', function (t) {
      'circular' === t.get('layout') && sP(t, 'symbolSize')
    })
  }
  var hP = kt
  function dP(t) {
    t.eachSeriesByType('graph', function (t) {
      var e = t.coordinateSystem
      if (!e || 'view' === e.type)
        if ('force' === t.get('layout')) {
          var n = t.preservedPoints || {},
            i = t.getGraph(),
            r = i.data,
            o = i.edgeData,
            a = t.getModel('force'),
            s = a.get('initLayout')
          t.preservedPoints
            ? r.each(function (t) {
                var e = r.getId(t)
                r.setItemLayout(t, n[e] || [NaN, NaN])
              })
            : s && 'none' !== s
              ? 'circular' === s && sP(t, 'value')
              : tP(t)
          var l = r.getDataExtent('value'),
            u = o.getDataExtent('value'),
            c = a.get('repulsion'),
            h = a.get('edgeLength'),
            d = U(c) ? c : [c, c],
            p = U(h) ? h : [h, h]
          p = [p[1], p[0]]
          var f = r.mapArray('value', function (t, e) {
              var n = r.getItemLayout(e),
                i = go(t, l, d)
              return isNaN(i) && (i = (d[0] + d[1]) / 2), { w: i, rep: i, fixed: r.getItemModel(e).get('fixed'), p: !n || isNaN(n[0]) || isNaN(n[1]) ? null : n }
            }),
            g = o.mapArray('value', function (e, n) {
              var r = i.getEdgeByIndex(n),
                o = go(e, u, p)
              isNaN(o) && (o = (p[0] + p[1]) / 2)
              var a = r.getModel(),
                s = ot(r.getModel().get(['lineStyle', 'curveness']), -QL(r, t, n, !0), 0)
              return { n1: f[r.node1.dataIndex], n2: f[r.node2.dataIndex], d: o, curveness: s, ignoreForceLayout: a.get('ignoreForceLayout') }
            }),
            y = e.getBoundingRect(),
            v = (function (t, e, n) {
              for (var i = t, r = e, o = n.rect, a = o.width, s = o.height, l = [o.x + a / 2, o.y + s / 2], u = null == n.gravity ? 0.1 : n.gravity, c = 0; c < i.length; c++) {
                var h = i[c]
                h.p || (h.p = It(a * (Math.random() - 0.5) + l[0], s * (Math.random() - 0.5) + l[1])), (h.pp = Ct(h.p)), (h.edges = null)
              }
              var d,
                p,
                f = null == n.friction ? 0.6 : n.friction,
                g = f
              return {
                warmUp: function () {
                  g = 0.8 * f
                },
                setFixed: function (t) {
                  i[t].fixed = !0
                },
                setUnfixed: function (t) {
                  i[t].fixed = !1
                },
                beforeStep: function (t) {
                  d = t
                },
                afterStep: function (t) {
                  p = t
                },
                step: function (t) {
                  d && d(i, r)
                  for (var e = [], n = i.length, o = 0; o < r.length; o++) {
                    var a = r[o]
                    if (!a.ignoreForceLayout) {
                      var s = a.n1
                      Lt(e, (y = a.n2).p, s.p)
                      var c = Pt(e) - a.d,
                        h = y.w / (s.w + y.w)
                      isNaN(h) && (h = 0), Et(e, e), !s.fixed && hP(s.p, s.p, e, h * c * g), !y.fixed && hP(y.p, y.p, e, -(1 - h) * c * g)
                    }
                  }
                  for (o = 0; o < n; o++) (x = i[o]).fixed || (Lt(e, l, x.p), hP(x.p, x.p, e, u * g))
                  for (o = 0; o < n; o++) {
                    s = i[o]
                    for (var f = o + 1; f < n; f++) {
                      var y
                      Lt(e, (y = i[f]).p, s.p), 0 === (c = Pt(e)) && (Dt(e, Math.random() - 0.5, Math.random() - 0.5), (c = 1))
                      var v = (s.rep + y.rep) / c / c
                      !s.fixed && hP(s.pp, s.pp, e, v), !y.fixed && hP(y.pp, y.pp, e, -v)
                    }
                  }
                  var m = []
                  for (o = 0; o < n; o++) {
                    var x
                    ;(x = i[o]).fixed || (Lt(m, x.p, x.pp), hP(x.p, x.p, m, g), Tt(x.pp, x.p))
                  }
                  var _ = (g *= 0.992) < 0.01
                  p && p(i, r, _), t && t(_)
                }
              }
            })(f, g, { rect: y, gravity: a.get('gravity'), friction: a.get('friction') })
          v.beforeStep(function (t, e) {
            for (var n = 0, r = t.length; n < r; n++) t[n].fixed && Tt(t[n].p, i.getNodeByIndex(n).getLayout())
          }),
            v.afterStep(function (t, e, o) {
              for (var a = 0, s = t.length; a < s; a++) t[a].fixed || i.getNodeByIndex(a).setLayout(t[a].p), (n[r.getId(a)] = t[a].p)
              for (a = 0, s = e.length; a < s; a++) {
                var l = e[a],
                  u = i.getEdgeByIndex(a),
                  c = l.n1.p,
                  h = l.n2.p,
                  d = u.getLayout()
                ;((d = d ? d.slice() : [])[0] = d[0] || []),
                  (d[1] = d[1] || []),
                  Tt(d[0], c),
                  Tt(d[1], h),
                  +l.curveness && (d[2] = [(c[0] + h[0]) / 2 - (c[1] - h[1]) * l.curveness, (c[1] + h[1]) / 2 - (h[0] - c[0]) * l.curveness]),
                  u.setLayout(d)
              }
            }),
            (t.forceLayout = v),
            (t.preservedPoints = n),
            v.step()
        } else t.forceLayout = null
    })
  }
  function pP(t, e) {
    var n = []
    return (
      t.eachSeriesByType('graph', function (i) {
        Rp({
          targetModel: i,
          coordSysType: 'view',
          coordSysProvider: function () {
            var r = i.getData(),
              o = r.mapArray(function (t) {
                var e = r.getItemModel(t)
                return [+e.get('x'), +e.get('y')]
              }),
              a = [],
              s = []
            ys(o, a, s), s[0] - a[0] == 0 && ((s[0] += 1), (a[0] -= 1))
            s[1] - a[1] == 0 && ((s[1] += 1), (a[1] -= 1))
            var l = (s[0] - a[0]) / (s[1] - a[1]),
              u = (function (t, e, n) {
                var i = Xp(t, e),
                  r = A(t.getBoxLayoutParams(), { aspect: n })
                return Up(t, Hp(r, i.refContainer), n)
              })(i, e, l)
            isNaN(l) && ((a = [u.x, u.y]), (s = [u.x + u.width, u.y + u.height]))
            var c = s[0] - a[0],
              h = s[1] - a[1],
              d = new KA(null, { api: e, ecModel: t })
            return (
              (d.zoomLimit = i.get('scaleLimit')),
              d.setBoundingRect(a[0], a[1], c, h),
              d.setViewRect(u.x, u.y, u.width, u.height),
              d.setCenter(i.get('center')),
              d.setZoom(i.get('zoom')),
              n.push(d),
              d
            )
          },
          isDefaultDataCoordSys: !0
        })
      }),
      n
    )
  }
  var fP = Ac.prototype,
    gP = Oc.prototype,
    yP = function () {
      ;(this.x1 = 0), (this.y1 = 0), (this.x2 = 0), (this.y2 = 0), (this.percent = 1)
    }
  !(function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    n(e, t)
  })(yP)
  function vP(t) {
    return isNaN(+t.cpx1) || isNaN(+t.cpy1)
  }
  var mP = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'ec-line'), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultStyle = function () {
          return { stroke: tf.color.neutral99, fill: null }
        }),
        (e.prototype.getDefaultShape = function () {
          return new yP()
        }),
        (e.prototype.buildPath = function (t, e) {
          vP(e) ? fP.buildPath.call(this, t, e) : gP.buildPath.call(this, t, e)
        }),
        (e.prototype.pointAt = function (t) {
          return vP(this.shape) ? fP.pointAt.call(this, t) : gP.pointAt.call(this, t)
        }),
        (e.prototype.tangentAt = function (t) {
          var e = this.shape,
            n = vP(e) ? [e.x2 - e.x1, e.y2 - e.y1] : gP.tangentAt.call(this, t)
          return Et(n, n)
        }),
        e
      )
    })(sl),
    xP = ['fromSymbol', 'toSymbol']
  function _P(t) {
    return '_' + t + 'Type'
  }
  function bP(t, e, n) {
    var i = e.getItemVisual(n, t)
    if (!i || 'none' === i) return i
    var r = e.getItemVisual(n, t + 'Size'),
      o = e.getItemVisual(n, t + 'Rotate'),
      a = e.getItemVisual(n, t + 'Offset'),
      s = e.getItemVisual(n, t + 'KeepAspect'),
      l = dm(r)
    return i + l + pm(a || 0, l) + (o || '') + (s || '')
  }
  function wP(t, e, n) {
    var i = e.getItemVisual(n, t)
    if (i && 'none' !== i) {
      var r = e.getItemVisual(n, t + 'Size'),
        o = e.getItemVisual(n, t + 'Rotate'),
        a = e.getItemVisual(n, t + 'Offset'),
        s = e.getItemVisual(n, t + 'KeepAspect'),
        l = dm(r),
        u = pm(a || 0, l),
        c = hm(i, -l[0] / 2 + u[0], -l[1] / 2 + u[1], l[0], l[1], null, s)
      return (c.__specifiedRotation = null == o || isNaN(o) ? void 0 : (+o * Math.PI) / 180 || 0), (c.name = t), c
    }
  }
  function SP(t, e) {
    ;(t.x1 = e[0][0]), (t.y1 = e[0][1]), (t.x2 = e[1][0]), (t.y2 = e[1][1]), (t.percent = 1)
    var n = e[2]
    n ? ((t.cpx1 = n[0]), (t.cpy1 = n[1])) : ((t.cpx1 = NaN), (t.cpy1 = NaN))
  }
  var MP = (function (t) {
      function e(e, n, i) {
        var r = t.call(this) || this
        return r._createLine(e, n, i), r
      }
      return (
        n(e, t),
        (e.prototype._createLine = function (t, e, n) {
          var i = t.hostModel,
            r = t.getItemLayout(e),
            o = t.getItemVisual(e, 'z2'),
            a = (function (t) {
              var e = new mP({ name: 'line', subPixelOptimize: !0 })
              return SP(e.shape, t), e
            })(r)
          ;(a.shape.percent = 0),
            eh(a, { z2: rt(o, 0), shape: { percent: 1 } }, i, e),
            this.add(a),
            z(
              xP,
              function (n) {
                var i = wP(n, t, e)
                this.add(i), (this[_P(n)] = bP(n, t, e))
              },
              this
            ),
            this._updateCommonStl(t, e, n)
        }),
        (e.prototype.updateData = function (t, e, n) {
          var i = t.hostModel,
            r = this.childOfName('line'),
            o = t.getItemLayout(e),
            a = { shape: {} }
          SP(a.shape, o),
            th(r, a, i, e),
            z(
              xP,
              function (n) {
                var i = bP(n, t, e),
                  r = _P(n)
                if (this[r] !== i) {
                  this.remove(this.childOfName(n))
                  var o = wP(n, t, e)
                  this.add(o)
                }
                this[r] = i
              },
              this
            ),
            this._updateCommonStl(t, e, n)
        }),
        (e.prototype.getLinePath = function () {
          return this.childAt(0)
        }),
        (e.prototype._updateCommonStl = function (t, e, n) {
          var i = t.hostModel,
            r = this.childOfName('line'),
            o = n && n.emphasisLineStyle,
            a = n && n.blurLineStyle,
            s = n && n.selectLineStyle,
            l = n && n.labelStatesModels,
            u = n && n.emphasisDisabled,
            c = n && n.focus,
            h = n && n.blurScope
          if (!n || t.hasItemOption) {
            var d = t.getItemModel(e),
              p = d.getModel('emphasis')
            ;(o = p.getModel('lineStyle').getLineStyle()),
              (a = d.getModel(['blur', 'lineStyle']).getLineStyle()),
              (s = d.getModel(['select', 'lineStyle']).getLineStyle()),
              (u = p.get('disabled')),
              (c = p.get('focus')),
              (h = p.get('blurScope')),
              (l = Jh(d))
          }
          var f = t.getItemVisual(e, 'style'),
            g = f.stroke
          r.useStyle(f),
            (r.style.fill = null),
            (r.style.strokeNoScale = !0),
            (r.ensureState('emphasis').style = o),
            (r.ensureState('blur').style = a),
            (r.ensureState('select').style = s),
            z(
              xP,
              function (t) {
                var e = this.childOfName(t)
                if (e) {
                  e.setColor(g), (e.style.opacity = f.opacity)
                  for (var n = 0; n < Wl.length; n++) {
                    var i = Wl[n],
                      o = r.getState(i)
                    if (o) {
                      var a = o.style || {},
                        s = e.ensureState(i),
                        l = s.style || (s.style = {})
                      null != a.stroke && (l[e.__isEmptyBrush ? 'stroke' : 'fill'] = a.stroke), null != a.opacity && (l.opacity = a.opacity)
                    }
                  }
                  e.markRedraw()
                }
              },
              this
            )
          var y = i.getRawValue(e)
          $h(this, l, {
            labelDataIndex: e,
            labelFetcher: {
              getFormattedLabel: function (e, n) {
                return i.getFormattedLabel(e, n, t.dataType)
              }
            },
            inheritColor: g || tf.color.neutral99,
            defaultOpacity: f.opacity,
            defaultText: (null == y ? t.getName(e) : isFinite(y) ? mo(y) : y) + ''
          })
          var v = this.getTextContent()
          if (v) {
            var m = l.normal
            ;(v.__align = v.style.align), (v.__verticalAlign = v.style.verticalAlign), (v.__position = m.get('position') || 'middle')
            var x = m.get('distance')
            U(x) || (x = [x, x]), (v.__labelDistance = x)
          }
          this.setTextConfig({ position: null, local: !0, inside: !1 }), Tu(this, c, h, u)
        }),
        (e.prototype.highlight = function () {
          du(this)
        }),
        (e.prototype.downplay = function () {
          pu(this)
        }),
        (e.prototype.updateLayout = function (t, e) {
          this.setLinePoints(t.getItemLayout(e))
        }),
        (e.prototype.setLinePoints = function (t) {
          var e = this.childOfName('line')
          SP(e.shape, t), e.dirty()
        }),
        (e.prototype.beforeUpdate = function () {
          var t = this,
            e = t.childOfName('fromSymbol'),
            n = t.childOfName('toSymbol'),
            i = t.getTextContent()
          if (e || n || (i && !i.ignore)) {
            for (var r = 1, o = this.parent; o; ) o.scaleX && (r /= o.scaleX), (o = o.parent)
            var a = t.childOfName('line')
            if (this.__dirty || a.__dirty) {
              var s = a.shape.percent,
                l = a.pointAt(0),
                u = a.pointAt(s),
                c = Lt([], u, l)
              if (
                (Et(c, c),
                e && (e.setPosition(l), S(e, 0), (e.scaleX = e.scaleY = r * s), e.markRedraw()),
                n && (n.setPosition(u), S(n, 1), (n.scaleX = n.scaleY = r * s), n.markRedraw()),
                i && !i.ignore)
              ) {
                ;(i.x = i.y = 0), (i.originX = i.originY = 0)
                var h = void 0,
                  d = void 0,
                  p = i.__labelDistance,
                  f = p[0] * r,
                  g = p[1] * r,
                  y = s / 2,
                  v = a.tangentAt(y),
                  m = [v[1], -v[0]],
                  x = a.pointAt(y)
                m[1] > 0 && ((m[0] = -m[0]), (m[1] = -m[1]))
                var _ = v[0] < 0 ? -1 : 1
                if ('start' !== i.__position && 'end' !== i.__position) {
                  var b = -Math.atan2(v[1], v[0])
                  u[0] < l[0] && (b = Math.PI + b), (i.rotation = b)
                }
                var w = void 0
                switch (i.__position) {
                  case 'insideStartTop':
                  case 'insideMiddleTop':
                  case 'insideEndTop':
                  case 'middle':
                    ;(w = -g), (d = 'bottom')
                    break
                  case 'insideStartBottom':
                  case 'insideMiddleBottom':
                  case 'insideEndBottom':
                    ;(w = g), (d = 'top')
                    break
                  default:
                    ;(w = 0), (d = 'middle')
                }
                switch (i.__position) {
                  case 'end':
                    ;(i.x = c[0] * f + u[0]),
                      (i.y = c[1] * g + u[1]),
                      (h = c[0] > 0.8 ? 'left' : c[0] < -0.8 ? 'right' : 'center'),
                      (d = c[1] > 0.8 ? 'top' : c[1] < -0.8 ? 'bottom' : 'middle')
                    break
                  case 'start':
                    ;(i.x = -c[0] * f + l[0]),
                      (i.y = -c[1] * g + l[1]),
                      (h = c[0] > 0.8 ? 'right' : c[0] < -0.8 ? 'left' : 'center'),
                      (d = c[1] > 0.8 ? 'bottom' : c[1] < -0.8 ? 'top' : 'middle')
                    break
                  case 'insideStartTop':
                  case 'insideStart':
                  case 'insideStartBottom':
                    ;(i.x = f * _ + l[0]), (i.y = l[1] + w), (h = v[0] < 0 ? 'right' : 'left'), (i.originX = -f * _), (i.originY = -w)
                    break
                  case 'insideMiddleTop':
                  case 'insideMiddle':
                  case 'insideMiddleBottom':
                  case 'middle':
                    ;(i.x = x[0]), (i.y = x[1] + w), (h = 'center'), (i.originY = -w)
                    break
                  case 'insideEndTop':
                  case 'insideEnd':
                  case 'insideEndBottom':
                    ;(i.x = -f * _ + u[0]), (i.y = u[1] + w), (h = v[0] >= 0 ? 'right' : 'left'), (i.originX = f * _), (i.originY = -w)
                }
                ;(i.scaleX = i.scaleY = r), i.setStyle({ verticalAlign: i.__verticalAlign || d, align: i.__align || h })
              }
            }
          }
          function S(t, e) {
            var n = t.__specifiedRotation
            if (null == n) {
              var i = a.tangentAt(e)
              t.attr('rotation', ((1 === e ? -1 : 1) * Math.PI) / 2 - Math.atan2(i[1], i[0]))
            } else t.attr('rotation', n)
          }
        }),
        e
      )
    })(to),
    IP = (function () {
      function t(t) {
        ;(this.group = new to()), (this._LineCtor = t || MP)
      }
      return (
        (t.prototype.updateData = function (t) {
          var e = this
          this._progressiveEls = null
          var n = this,
            i = n.group,
            r = n._lineData
          ;(n._lineData = t), r || i.removeAll()
          var o = TP(t)
          t.diff(r)
            .add(function (n) {
              e._doAdd(t, n, o)
            })
            .update(function (n, i) {
              e._doUpdate(r, t, i, n, o)
            })
            .remove(function (t) {
              i.remove(r.getItemGraphicEl(t))
            })
            .execute()
        }),
        (t.prototype.updateLayout = function () {
          var t = this._lineData
          t &&
            t.eachItemGraphicEl(function (e, n) {
              e.updateLayout(t, n)
            }, this)
        }),
        (t.prototype.incrementalPrepareUpdate = function (t) {
          ;(this._seriesScope = TP(t)), (this._lineData = null), this.group.removeAll()
        }),
        (t.prototype.incrementalUpdate = function (t, e) {
          function n(t) {
            t.isGroup ||
              (function (t) {
                return t.animators && t.animators.length > 0
              })(t) ||
              ((t.incremental = !0), (t.ensureState('emphasis').hoverLayer = !0))
          }
          this._progressiveEls = []
          for (var i = t.start; i < t.end; i++) {
            if (DP(e.getItemLayout(i))) {
              var r = new this._LineCtor(e, i, this._seriesScope)
              r.traverse(n), this.group.add(r), e.setItemGraphicEl(i, r), this._progressiveEls.push(r)
            }
          }
        }),
        (t.prototype.remove = function () {
          this.group.removeAll()
        }),
        (t.prototype.eachRendered = function (t) {
          Bh(this._progressiveEls || this.group, t)
        }),
        (t.prototype._doAdd = function (t, e, n) {
          if (DP(t.getItemLayout(e))) {
            var i = new this._LineCtor(t, e, n)
            t.setItemGraphicEl(e, i), this.group.add(i)
          }
        }),
        (t.prototype._doUpdate = function (t, e, n, i, r) {
          var o = t.getItemGraphicEl(n)
          DP(e.getItemLayout(i)) ? (o ? o.updateData(e, i, r) : (o = new this._LineCtor(e, i, r)), e.setItemGraphicEl(i, o), this.group.add(o)) : this.group.remove(o)
        }),
        t
      )
    })()
  function TP(t) {
    var e = t.hostModel,
      n = e.getModel('emphasis')
    return {
      lineStyle: e.getModel('lineStyle').getLineStyle(),
      emphasisLineStyle: n.getModel(['lineStyle']).getLineStyle(),
      blurLineStyle: e.getModel(['blur', 'lineStyle']).getLineStyle(),
      selectLineStyle: e.getModel(['select', 'lineStyle']).getLineStyle(),
      emphasisDisabled: n.get('disabled'),
      blurScope: n.get('blurScope'),
      focus: n.get('focus'),
      labelStatesModels: Jh(e)
    }
  }
  function CP(t) {
    return isNaN(t[0]) || isNaN(t[1])
  }
  function DP(t) {
    return t && !CP(t[0]) && !CP(t[1])
  }
  var AP = [],
    kP = [],
    LP = [],
    PP = Nn,
    OP = Ft,
    RP = Math.abs
  function NP(t, e, n) {
    for (var i, r = t[0], o = t[1], a = t[2], s = 1 / 0, l = n * n, u = 0.1, c = 0.1; c <= 0.9; c += 0.1) {
      ;(AP[0] = PP(r[0], o[0], a[0], c)), (AP[1] = PP(r[1], o[1], a[1], c)), (p = RP(OP(AP, e) - l)) < s && ((s = p), (i = c))
    }
    for (var h = 0; h < 32; h++) {
      var d = i + u
      ;(kP[0] = PP(r[0], o[0], a[0], i)), (kP[1] = PP(r[1], o[1], a[1], i)), (LP[0] = PP(r[0], o[0], a[0], d)), (LP[1] = PP(r[1], o[1], a[1], d))
      var p = OP(kP, e) - l
      if (RP(p) < 0.01) break
      var f = OP(LP, e) - l
      ;(u /= 2), p < 0 ? (f >= 0 ? (i += u) : (i -= u)) : f >= 0 ? (i -= u) : (i += u)
    }
    return i
  }
  function zP(t, e) {
    var n = [],
      i = Bn,
      r = [[], [], []],
      o = [[], []],
      a = []
    ;(e /= 2),
      t.eachEdge(function (t, s) {
        var l = t.getLayout(),
          u = t.getVisual('fromSymbol'),
          c = t.getVisual('toSymbol')
        l.__original || ((l.__original = [Ct(l[0]), Ct(l[1])]), l[2] && l.__original.push(Ct(l[2])))
        var h = l.__original
        if (null != l[2]) {
          if ((Tt(r[0], h[0]), Tt(r[1], h[2]), Tt(r[2], h[1]), u && 'none' !== u)) {
            var d = rP(t.node1),
              p = NP(r, h[0], d * e)
            i(r[0][0], r[1][0], r[2][0], p, n), (r[0][0] = n[3]), (r[1][0] = n[4]), i(r[0][1], r[1][1], r[2][1], p, n), (r[0][1] = n[3]), (r[1][1] = n[4])
          }
          if (c && 'none' !== c) {
            ;(d = rP(t.node2)), (p = NP(r, h[1], d * e))
            i(r[0][0], r[1][0], r[2][0], p, n), (r[1][0] = n[1]), (r[2][0] = n[2]), i(r[0][1], r[1][1], r[2][1], p, n), (r[1][1] = n[1]), (r[2][1] = n[2])
          }
          Tt(l[0], r[0]), Tt(l[1], r[2]), Tt(l[2], r[1])
        } else {
          if ((Tt(o[0], h[0]), Tt(o[1], h[1]), Lt(a, o[1], o[0]), Et(a, a), u && 'none' !== u)) {
            d = rP(t.node1)
            kt(o[0], o[0], a, d * e)
          }
          if (c && 'none' !== c) {
            d = rP(t.node2)
            kt(o[1], o[1], a, -d * e)
          }
          Tt(l[0], o[0]), Tt(l[1], o[1])
        }
      })
  }
  var EP = sa()
  function BP(t, e) {
    t && (EP(t).bridge = e)
  }
  function VP(t) {
    return 'view' === t.type
  }
  var GP = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.init = function (t, e) {
        var n = new uI(),
          i = new IP(),
          r = this.group,
          o = new to()
        ;(this._controller = new LD(e.getZr())),
          (this._controllerHost = { target: o }),
          o.add(n.group),
          o.add(i.group),
          r.add(o),
          (this._symbolDraw = n),
          (this._lineDraw = i),
          (this._mainGroup = o),
          (this._firstRender = !0)
      }),
      (e.prototype.render = function (t, e, n) {
        var i = this,
          r = t.coordinateSystem,
          o = !1
        ;(this._model = t), (this._api = n), (this._active = !0)
        var a = this._getThumbnailInfo()
        a && a.bridge.reset(n)
        var s = this._symbolDraw,
          l = this._lineDraw
        if (VP(r)) {
          var u = { x: r.x, y: r.y, scaleX: r.scaleX, scaleY: r.scaleY }
          this._firstRender ? this._mainGroup.attr(u) : th(this._mainGroup, u, t)
        }
        zP(t.getGraph(), iP(t))
        var c = t.getData()
        s.updateData(c)
        var h = t.getEdgeData()
        l.updateData(h), this._updateNodeAndLinkScale(), this._updateController(null, t, n), clearTimeout(this._layoutTimeout)
        var d = t.forceLayout,
          p = t.get(['force', 'layoutAnimation'])
        d && ((o = !0), this._startForceLayoutIteration(d, n, p))
        var f = t.get('layout')
        c.graph.eachNode(function (e) {
          var r = e.dataIndex,
            o = e.getGraphicEl(),
            a = e.getModel()
          if (o) {
            o.off('drag').off('dragend')
            var s = a.get('draggable')
            s &&
              o
                .on('drag', function (a) {
                  switch (f) {
                    case 'force':
                      d.warmUp(), !i._layouting && i._startForceLayoutIteration(d, n, p), d.setFixed(r), c.setItemLayout(r, [o.x, o.y])
                      break
                    case 'circular':
                      c.setItemLayout(r, [o.x, o.y]), e.setLayout({ fixed: !0 }, !0), sP(t, 'symbolSize', e, [a.offsetX, a.offsetY]), i.updateLayout(t)
                      break
                    default:
                      c.setItemLayout(r, [o.x, o.y]), eP(t.getGraph(), t), i.updateLayout(t)
                  }
                })
                .on('dragend', function () {
                  d && d.setUnfixed(r)
                }),
              o.setDraggable(s, !!a.get('cursor')),
              'adjacency' === a.get(['emphasis', 'focus']) && (zl(o).focus = e.getAdjacentDataIndices())
          }
        }),
          c.graph.eachEdge(function (t) {
            var e = t.getGraphicEl(),
              n = t.getModel().get(['emphasis', 'focus'])
            e && 'adjacency' === n && (zl(e).focus = { edge: [t.dataIndex], node: [t.node1.dataIndex, t.node2.dataIndex] })
          })
        var g = 'circular' === t.get('layout') && t.get(['circular', 'rotateLabel']),
          y = c.getLayout('cx'),
          v = c.getLayout('cy')
        c.graph.eachNode(function (t) {
          uP(t, g, y, v)
        }),
          (this._firstRender = !1),
          o || this._renderThumbnail(t, n, this._symbolDraw, this._lineDraw)
      }),
      (e.prototype.dispose = function () {
        this.remove(), this._controller && this._controller.dispose(), (this._controllerHost = null)
      }),
      (e.prototype._startForceLayoutIteration = function (t, e, n) {
        var i = this,
          r = !1
        !(function o() {
          t.step(function (t) {
            i.updateLayout(i._model),
              (!t && r) || ((r = !0), i._renderThumbnail(i._model, e, i._symbolDraw, i._lineDraw)),
              (i._layouting = !t) && (n ? (i._layoutTimeout = setTimeout(o, 16)) : o())
          })
        })()
      }),
      (e.prototype._updateController = function (t, e, n) {
        var i = this._controller,
          r = this._controllerHost,
          o = e.coordinateSystem
        VP(o)
          ? (i.enable(e.get('roam'), {
              api: n,
              zInfo: { component: e },
              triggerInfo: {
                roamTrigger: e.get('roamTrigger'),
                isInSelf: function (t, e, n) {
                  return o.containPoint([e, n])
                },
                isInClip: function (e, n, i) {
                  return !t || t.contain(n, i)
                }
              }
            }),
            (r.zoomLimit = e.get('scaleLimit')),
            (r.zoom = o.getZoom()),
            i
              .off('pan')
              .off('zoom')
              .on('pan', function (t) {
                n.dispatchAction({ seriesId: e.id, type: 'graphRoam', dx: t.dx, dy: t.dy })
              })
              .on('zoom', function (t) {
                n.dispatchAction({ seriesId: e.id, type: 'graphRoam', zoom: t.scale, originX: t.originX, originY: t.originY })
              }))
          : i.disable()
      }),
      (e.prototype.updateViewOnPan = function (t, e, n) {
        this._active && (FD(this._controllerHost, n.dx, n.dy), this._updateThumbnailWindow())
      }),
      (e.prototype.updateViewOnZoom = function (t, e, n) {
        this._active &&
          (WD(this._controllerHost, n.zoom, n.originX, n.originY),
          this._updateNodeAndLinkScale(),
          zP(t.getGraph(), iP(t)),
          this._lineDraw.updateLayout(),
          e.updateLabelLayout(),
          this._updateThumbnailWindow())
      }),
      (e.prototype._updateNodeAndLinkScale = function () {
        var t = this._model,
          e = t.getData(),
          n = iP(t)
        e.eachItemGraphicEl(function (t, e) {
          t && t.setSymbolScale(n)
        })
      }),
      (e.prototype.updateLayout = function (t) {
        this._active && (zP(t.getGraph(), iP(t)), this._symbolDraw.updateLayout(), this._lineDraw.updateLayout())
      }),
      (e.prototype.remove = function () {
        ;(this._active = !1),
          clearTimeout(this._layoutTimeout),
          (this._layouting = !1),
          (this._layoutTimeout = null),
          this._symbolDraw && this._symbolDraw.remove(),
          this._lineDraw && this._lineDraw.remove(),
          this._controller && this._controller.disable()
      }),
      (e.prototype._getThumbnailInfo = function () {
        var t = this._model,
          e = t.coordinateSystem
        if ('view' === e.type) {
          var n = (function (t) {
            if (t) return EP(t).bridge
          })(t)
          if (n) return { bridge: n, coordSys: e }
        }
      }),
      (e.prototype._updateThumbnailWindow = function () {
        var t = this._getThumbnailInfo()
        t && t.bridge.updateWindow(t.coordSys.transform, this._api)
      }),
      (e.prototype._renderThumbnail = function (t, e, n, i) {
        var r = this._getThumbnailInfo()
        if (r) {
          var o = new to(),
            a = n.group.children(),
            s = i.group.children(),
            l = new to(),
            u = new to()
          o.add(u), o.add(l)
          for (var c = 0; c < a.length; c++) {
            var h = (v = a[c]).children()[0],
              d = v.x,
              p = v.y,
              f = A(T(h.shape), { width: h.scaleX, height: h.scaleY, x: d - h.scaleX / 2, y: p - h.scaleY / 2 }),
              g = T(h.style),
              y = new h.constructor({ shape: f, style: g, z2: 151 })
            u.add(y)
          }
          for (c = 0; c < s.length; c++) {
            var v,
              m = (v = s[c]).children()[0],
              x = ((g = T(m.style)), (f = T(m.shape)), new mP({ style: g, shape: f, z2: 151 }))
            l.add(x)
          }
          r.bridge.renderContent({ api: e, roamType: t.get('roam'), viewportRect: null, group: o, targetTrans: r.coordSys.transform })
        }
      }),
      (e.type = 'graph'),
      e
    )
  })(tv)
  function FP(t) {
    return '_EC_' + t
  }
  var WP = (function () {
      function t(t) {
        ;(this.type = 'graph'), (this.nodes = []), (this.edges = []), (this._nodesMap = {}), (this._edgesMap = {}), (this._directed = t || !1)
      }
      return (
        (t.prototype.isDirected = function () {
          return this._directed
        }),
        (t.prototype.addNode = function (t, e) {
          t = null == t ? '' + e : '' + t
          var n = this._nodesMap
          if (!n[FP(t)]) {
            var i = new HP(t, e)
            return (i.hostGraph = this), this.nodes.push(i), (n[FP(t)] = i), i
          }
        }),
        (t.prototype.getNodeByIndex = function (t) {
          var e = this.data.getRawIndex(t)
          return this.nodes[e]
        }),
        (t.prototype.getNodeById = function (t) {
          return this._nodesMap[FP(t)]
        }),
        (t.prototype.addEdge = function (t, e, n) {
          var i = this._nodesMap,
            r = this._edgesMap
          if ((j(t) && (t = this.nodes[t]), j(e) && (e = this.nodes[e]), t instanceof HP || (t = i[FP(t)]), e instanceof HP || (e = i[FP(e)]), t && e)) {
            var o = t.id + '-' + e.id,
              a = new UP(t, e, n)
            return (a.hostGraph = this), this._directed && (t.outEdges.push(a), e.inEdges.push(a)), t.edges.push(a), t !== e && e.edges.push(a), this.edges.push(a), (r[o] = a), a
          }
        }),
        (t.prototype.getEdgeByIndex = function (t) {
          var e = this.edgeData.getRawIndex(t)
          return this.edges[e]
        }),
        (t.prototype.getEdge = function (t, e) {
          t instanceof HP && (t = t.id), e instanceof HP && (e = e.id)
          var n = this._edgesMap
          return this._directed ? n[t + '-' + e] : n[t + '-' + e] || n[e + '-' + t]
        }),
        (t.prototype.eachNode = function (t, e) {
          for (var n = this.nodes, i = n.length, r = 0; r < i; r++) n[r].dataIndex >= 0 && t.call(e, n[r], r)
        }),
        (t.prototype.eachEdge = function (t, e) {
          for (var n = this.edges, i = n.length, r = 0; r < i; r++) n[r].dataIndex >= 0 && n[r].node1.dataIndex >= 0 && n[r].node2.dataIndex >= 0 && t.call(e, n[r], r)
        }),
        (t.prototype.breadthFirstTraverse = function (t, e, n, i) {
          if ((e instanceof HP || (e = this._nodesMap[FP(e)]), e)) {
            for (var r = 'out' === n ? 'outEdges' : 'in' === n ? 'inEdges' : 'edges', o = 0; o < this.nodes.length; o++) this.nodes[o].__visited = !1
            if (!t.call(i, e, null))
              for (var a = [e]; a.length; ) {
                var s = a.shift(),
                  l = s[r]
                for (o = 0; o < l.length; o++) {
                  var u = l[o],
                    c = u.node1 === s ? u.node2 : u.node1
                  if (!c.__visited) {
                    if (t.call(i, c, s)) return
                    a.push(c), (c.__visited = !0)
                  }
                }
              }
          }
        }),
        (t.prototype.update = function () {
          for (var t = this.data, e = this.edgeData, n = this.nodes, i = this.edges, r = 0, o = n.length; r < o; r++) n[r].dataIndex = -1
          for (r = 0, o = t.count(); r < o; r++) n[t.getRawIndex(r)].dataIndex = r
          e.filterSelf(function (t) {
            var n = i[e.getRawIndex(t)]
            return n.node1.dataIndex >= 0 && n.node2.dataIndex >= 0
          })
          for (r = 0, o = i.length; r < o; r++) i[r].dataIndex = -1
          for (r = 0, o = e.count(); r < o; r++) i[e.getRawIndex(r)].dataIndex = r
        }),
        (t.prototype.clone = function () {
          for (var e = new t(this._directed), n = this.nodes, i = this.edges, r = 0; r < n.length; r++) e.addNode(n[r].id, n[r].dataIndex)
          for (r = 0; r < i.length; r++) {
            var o = i[r]
            e.addEdge(o.node1.id, o.node2.id, o.dataIndex)
          }
          return e
        }),
        t
      )
    })(),
    HP = (function () {
      function t(t, e) {
        ;(this.inEdges = []), (this.outEdges = []), (this.edges = []), (this.dataIndex = -1), (this.id = null == t ? '' : t), (this.dataIndex = null == e ? -1 : e)
      }
      return (
        (t.prototype.degree = function () {
          return this.edges.length
        }),
        (t.prototype.inDegree = function () {
          return this.inEdges.length
        }),
        (t.prototype.outDegree = function () {
          return this.outEdges.length
        }),
        (t.prototype.getModel = function (t) {
          if (!(this.dataIndex < 0)) return this.hostGraph.data.getItemModel(this.dataIndex).getModel(t)
        }),
        (t.prototype.getAdjacentDataIndices = function () {
          for (var t = { edge: [], node: [] }, e = 0; e < this.edges.length; e++) {
            var n = this.edges[e]
            n.dataIndex < 0 || (t.edge.push(n.dataIndex), t.node.push(n.node1.dataIndex, n.node2.dataIndex))
          }
          return t
        }),
        (t.prototype.getTrajectoryDataIndices = function () {
          for (var t = yt(), e = yt(), n = 0, i = this.edges.length; n < i; n++) {
            var r = this.edges[n]
            if (!(r.dataIndex < 0)) {
              t.set(r.dataIndex, !0)
              for (var o = [r.node1], a = [r.node2], s = 0; s < o.length; ) {
                var l = o[s]
                s++, e.set(l.dataIndex, !0)
                for (var u = l.inEdges, c = 0, h = u.length, d = void 0, p = void 0; c < h; c++) (p = (d = u[c]).dataIndex) >= 0 && !t.hasKey(p) && (t.set(p, !0), o.push(d.node1))
              }
              for (s = 0; s < a.length; ) {
                var f = a[s]
                s++, e.set(f.dataIndex, !0)
                for (var g = f.outEdges, y = ((c = 0), g.length), v = void 0, m = void 0; c < y; c++)
                  (m = (v = g[c]).dataIndex) >= 0 && !t.hasKey(m) && (t.set(m, !0), a.push(v.node2))
              }
            }
          }
          return { edge: t.keys(), node: e.keys() }
        }),
        t
      )
    })(),
    UP = (function () {
      function t(t, e, n) {
        ;(this.dataIndex = -1), (this.node1 = t), (this.node2 = e), (this.dataIndex = null == n ? -1 : n)
      }
      return (
        (t.prototype.getModel = function (t) {
          if (!(this.dataIndex < 0)) return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(t)
        }),
        (t.prototype.getAdjacentDataIndices = function () {
          return { edge: [this.dataIndex], node: [this.node1.dataIndex, this.node2.dataIndex] }
        }),
        (t.prototype.getTrajectoryDataIndices = function () {
          var t = yt(),
            e = yt()
          t.set(this.dataIndex, !0)
          for (var n = [this.node1], i = [this.node2], r = 0; r < n.length; ) {
            var o = n[r]
            r++, e.set(o.dataIndex, !0)
            for (var a = 0, s = o.inEdges.length, l = void 0, u = void 0; a < s; a++) (u = (l = o.inEdges[a]).dataIndex) >= 0 && !t.hasKey(u) && (t.set(u, !0), n.push(l.node1))
          }
          for (r = 0; r < i.length; ) {
            var c = i[r]
            r++, e.set(c.dataIndex, !0)
            ;(a = 0), (s = c.outEdges.length)
            for (var h = void 0, d = void 0; a < s; a++) (d = (h = c.outEdges[a]).dataIndex) >= 0 && !t.hasKey(d) && (t.set(d, !0), i.push(h.node2))
          }
          return { edge: t.keys(), node: e.keys() }
        }),
        t
      )
    })()
  function YP(t, e) {
    return {
      getValue: function (n) {
        var i = this[t][e]
        return i.getStore().get(i.getDimensionIndex(n || 'value'), this.dataIndex)
      },
      setVisual: function (n, i) {
        this.dataIndex >= 0 && this[t][e].setItemVisual(this.dataIndex, n, i)
      },
      getVisual: function (n) {
        return this[t][e].getItemVisual(this.dataIndex, n)
      },
      setLayout: function (n, i) {
        this.dataIndex >= 0 && this[t][e].setItemLayout(this.dataIndex, n, i)
      },
      getLayout: function () {
        return this[t][e].getItemLayout(this.dataIndex)
      },
      getGraphicEl: function () {
        return this[t][e].getItemGraphicEl(this.dataIndex)
      },
      getRawIndex: function () {
        return this[t][e].getRawIndex(this.dataIndex)
      }
    }
  }
  function XP(t, e, n, i, r) {
    for (var o = new WP(i), a = 0; a < t.length; a++) o.addNode(it(t[a].id, t[a].name, a), a)
    var s = [],
      l = [],
      u = 0
    for (a = 0; a < e.length; a++) {
      var c = e[a],
        h = c.source,
        d = c.target
      o.addEdge(h, d, u) && (l.push(c), s.push(it(ia(c.id, null), h + ' > ' + d)), u++)
    }
    var p,
      f = n.get('coordinateSystem')
    if ('cartesian2d' === f || 'polar' === f || 'matrix' === f) p = Z_(t, n)
    else {
      var g = Tp.get(f),
        y = (g && g.dimensions) || []
      P(y, 'value') < 0 && y.concat(['value'])
      var v = V_(t, { coordDimensions: y, encodeDefine: n.getEncode() }).dimensions
      ;(p = new B_(v, n)).initData(t)
    }
    var m = new B_(['value'], n)
    return (
      m.initData(l, s), r && r(p, m), Dk({ mainData: p, struct: o, structAttr: 'graph', datas: { node: p, edge: m }, datasAttr: { node: 'data', edge: 'edgeData' } }), o.update(), o
    )
  }
  R(HP, YP('hostGraph', 'data')), R(UP, YP('hostGraph', 'edgeData'))
  var ZP = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), (n.hasSymbolVisual = !0), n
    }
    return (
      n(e, t),
      (e.prototype.init = function (e) {
        t.prototype.init.apply(this, arguments)
        var n = this
        function i() {
          return n._categoriesData
        }
        ;(this.legendVisualProvider = new CT(i, i)), this.fillDataTextStyle(e.edges || e.links), this._updateCategoriesData()
      }),
      (e.prototype.mergeOption = function (e) {
        t.prototype.mergeOption.apply(this, arguments), this.fillDataTextStyle(e.edges || e.links), this._updateCategoriesData()
      }),
      (e.prototype.mergeDefaultAndTheme = function (e) {
        t.prototype.mergeDefaultAndTheme.apply(this, arguments), Ko(e, 'edgeLabel', ['show'])
      }),
      (e.prototype.getInitialData = function (t, e) {
        var n,
          i = t.edges || t.links || [],
          r = t.data || t.nodes || [],
          o = this
        if (r && i) {
          jL((n = this)) && ((n.__curvenessList = []), (n.__edgeMap = {}), qL(n))
          var a = XP(r, i, this, !0, function (t, e) {
            t.wrapMethod('getItemModel', function (t) {
              var e = o._categoriesModels[t.getShallow('category')]
              return e && ((e.parentModel = t.parentModel), (t.parentModel = e)), t
            })
            var n = wd.prototype.getModel
            function i(t, e) {
              var i = n.call(this, t, e)
              return (i.resolveParentPath = r), i
            }
            function r(t) {
              if (t && ('label' === t[0] || 'label' === t[1])) {
                var e = t.slice()
                return 'label' === t[0] ? (e[0] = 'edgeLabel') : 'label' === t[1] && (e[1] = 'edgeLabel'), e
              }
              return t
            }
            e.wrapMethod('getItemModel', function (t) {
              return (t.resolveParentPath = r), (t.getModel = i), t
            })
          })
          return (
            z(
              a.edges,
              function (t) {
                !(function (t, e, n, i) {
                  if (jL(n)) {
                    var r = KL(t, e, n),
                      o = n.__edgeMap,
                      a = o[$L(r)]
                    o[r] && !a ? (o[r].isForward = !0) : a && o[r] && ((a.isForward = !0), (o[r].isForward = !1)), (o[r] = o[r] || []), o[r].push(i)
                  }
                })(t.node1, t.node2, this, t.dataIndex)
              },
              this
            ),
            a.data
          )
        }
      }),
      (e.prototype.getGraph = function () {
        return this.getData().graph
      }),
      (e.prototype.getEdgeData = function () {
        return this.getGraph().edgeData
      }),
      (e.prototype.getCategoriesData = function () {
        return this._categoriesData
      }),
      (e.prototype.formatTooltip = function (t, e, n) {
        if ('edge' === n) {
          var i = this.getData(),
            r = this.getDataParams(t, n),
            o = i.graph.getEdgeByIndex(t),
            a = i.getName(o.node1.dataIndex),
            s = i.getName(o.node2.dataIndex),
            l = []
          return null != a && l.push(a), null != s && l.push(s), Ty('nameValue', { name: l.join(' > '), value: r.value, noValue: null == r.value })
        }
        return By({ series: this, dataIndex: t, multipleSeries: e })
      }),
      (e.prototype._updateCategoriesData = function () {
        var t = E(this.option.categories || [], function (t) {
            return null != t.value ? t : A({ value: 0 }, t)
          }),
          e = new B_(['value'], this)
        e.initData(t),
          (this._categoriesData = e),
          (this._categoriesModels = e.mapArray(function (t) {
            return e.getItemModel(t)
          }))
      }),
      (e.prototype.setZoom = function (t) {
        this.option.zoom = t
      }),
      (e.prototype.setCenter = function (t) {
        this.option.center = t
      }),
      (e.prototype.isAnimationEnabled = function () {
        return t.prototype.isAnimationEnabled.call(this) && !('force' === this.get('layout') && this.get(['force', 'layoutAnimation']))
      }),
      (e.type = 'series.graph'),
      (e.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar']),
      (e.defaultOption = {
        z: 2,
        coordinateSystem: 'view',
        legendHoverLink: !0,
        layout: null,
        circular: { rotateLabel: !1 },
        force: { initLayout: null, repulsion: [0, 50], gravity: 0.1, friction: 0.6, edgeLength: 30, layoutAnimation: !0 },
        left: 'center',
        top: 'center',
        symbol: 'circle',
        symbolSize: 10,
        edgeSymbol: ['none', 'none'],
        edgeSymbolSize: 10,
        edgeLabel: { position: 'middle', distance: 5 },
        draggable: !1,
        roam: !1,
        center: null,
        zoom: 1,
        nodeScaleRatio: 0.6,
        label: { show: !1, formatter: '{b}' },
        itemStyle: {},
        lineStyle: { color: tf.color.neutral50, width: 1, opacity: 0.5 },
        emphasis: { scale: !0, label: { show: !0 } },
        select: { itemStyle: { borderColor: tf.color.primary } }
      }),
      e
    )
  })(Wy)
  var jP = (function (t) {
      function e(e, n, i) {
        var r = t.call(this) || this
        ;(zl(r).dataType = 'node'), (r.z2 = 2)
        var o = new Sl()
        return r.setTextContent(o), r.updateData(e, n, i, !0), r
      }
      return (
        n(e, t),
        (e.prototype.updateData = function (t, e, n, i) {
          var r = this,
            o = t.graph.getNodeByIndex(e),
            a = t.hostModel,
            s = o.getModel(),
            l = s.getModel('emphasis'),
            u = t.getItemLayout(e),
            c = A(YI(s.getModel('itemStyle'), u, !0), u),
            h = this
          if (isNaN(c.startAngle)) h.setShape(c)
          else {
            i ? h.setShape(c) : th(h, { shape: c }, a, e)
            var d = A(YI(s.getModel('itemStyle'), u, !0), u)
            r.setShape(d), r.useStyle(t.getItemVisual(e, 'style')), ku(r, s), this._updateLabel(a, s, o), t.setItemGraphicEl(e, h), ku(h, s, 'itemStyle')
            var p = l.get('focus')
            Tu(this, 'adjacency' === p ? o.getAdjacentDataIndices() : p, l.get('blurScope'), l.get('disabled'))
          }
        }),
        (e.prototype._updateLabel = function (t, e, n) {
          var i = this.getTextContent(),
            r = n.getLayout(),
            o = (r.startAngle + r.endAngle) / 2,
            a = Math.cos(o),
            s = Math.sin(o),
            l = e.getModel('label')
          i.ignore = !l.get('show')
          var u = Jh(e),
            c = n.getVisual('style')
          $h(i, u, {
            labelFetcher: {
              getFormattedLabel: function (n, i, r, o, a, s) {
                return t.getFormattedLabel(n, i, 'node', o, ot(a, u.normal && u.normal.get('formatter'), e.get('name')), s)
              }
            },
            labelDataIndex: n.dataIndex,
            defaultText: n.dataIndex + '',
            inheritColor: c.fill,
            defaultOpacity: c.opacity,
            defaultOutsidePosition: 'startArc'
          })
          var h,
            d = l.get('position') || 'outside',
            p = l.get('distance') || 0
          ;(h = 'outside' === d ? r.r + p : (r.r + r.r0) / 2), (this.textConfig = { inside: 'outside' !== d })
          var f = 'outside' !== d ? l.get('align') || 'center' : a > 0 ? 'left' : 'right',
            g = 'outside' !== d ? l.get('verticalAlign') || 'middle' : s > 0 ? 'top' : 'bottom'
          i.attr({ x: a * h + r.cx, y: s * h + r.cy, rotation: 0, style: { align: f, verticalAlign: g } })
        }),
        e
      )
    })(xc),
    qP = (function (t) {
      function e(e, n, i, r) {
        var o = t.call(this) || this
        return (zl(o).dataType = 'edge'), o.updateData(e, n, i, r, !0), o
      }
      return (
        n(e, t),
        (e.prototype.buildPath = function (t, e) {
          t.moveTo(e.s1[0], e.s1[1])
          var n = 0.7,
            i = e.clockwise
          t.arc(e.cx, e.cy, e.r, e.sStartAngle, e.sEndAngle, !i),
            t.bezierCurveTo((e.cx - e.s2[0]) * n + e.s2[0], (e.cy - e.s2[1]) * n + e.s2[1], (e.cx - e.t1[0]) * n + e.t1[0], (e.cy - e.t1[1]) * n + e.t1[1], e.t1[0], e.t1[1]),
            t.arc(e.cx, e.cy, e.r, e.tStartAngle, e.tEndAngle, !i),
            t.bezierCurveTo((e.cx - e.t2[0]) * n + e.t2[0], (e.cy - e.t2[1]) * n + e.t2[1], (e.cx - e.s1[0]) * n + e.s1[0], (e.cy - e.s1[1]) * n + e.s1[1], e.s1[0], e.s1[1]),
            t.closePath()
        }),
        (e.prototype.updateData = function (t, e, n, i, r) {
          var o = t.hostModel,
            a = e.graph.getEdgeByIndex(n),
            s = a.getLayout(),
            l = a.node1.getModel(),
            u = e.getItemModel(a.dataIndex),
            c = u.getModel('lineStyle'),
            h = u.getModel('emphasis'),
            d = h.get('focus'),
            p = A(YI(l.getModel('itemStyle'), s, !0), s),
            f = this
          isNaN(p.sStartAngle) || isNaN(p.tStartAngle)
            ? f.setShape(p)
            : (r ? (f.setShape(p), KP(f, a, t, c)) : (ah(f), KP(f, a, t, c), th(f, { shape: p }, o, n)),
              Tu(this, 'adjacency' === d ? a.getAdjacentDataIndices() : d, h.get('blurScope'), h.get('disabled')),
              ku(f, u, 'lineStyle'),
              e.setItemGraphicEl(a.dataIndex, f))
        }),
        e
      )
    })(sl)
  function KP(t, e, n, i) {
    var r = e.node1,
      o = e.node2,
      a = t.style
    switch ((t.setStyle(i.getLineStyle()), i.get('color'))) {
      case 'source':
        ;(a.fill = n.getItemVisual(r.dataIndex, 'style').fill), (a.decal = r.getVisual('style').decal)
        break
      case 'target':
        ;(a.fill = n.getItemVisual(o.dataIndex, 'style').fill), (a.decal = o.getVisual('style').decal)
        break
      case 'gradient':
        var s = n.getItemVisual(r.dataIndex, 'style').fill,
          l = n.getItemVisual(o.dataIndex, 'style').fill
        if (X(s) && X(l)) {
          var u = t.shape,
            c = (u.s1[0] + u.s2[0]) / 2,
            h = (u.s1[1] + u.s2[1]) / 2,
            d = (u.t1[0] + u.t2[0]) / 2,
            p = (u.t1[1] + u.t2[1]) / 2
          a.fill = new Bc(
            c,
            h,
            d,
            p,
            [
              { offset: 0, color: s },
              { offset: 1, color: l }
            ],
            !0
          )
        }
    }
  }
  var $P = Math.PI / 180,
    JP = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e) {}),
        (e.prototype.render = function (t, e, n) {
          var i = t.getData(),
            r = this._data,
            o = this.group,
            a = -t.get('startAngle') * $P
          if (
            (i
              .diff(r)
              .add(function (t) {
                if (i.getItemLayout(t)) {
                  var e = new jP(i, t, a)
                  ;(zl(e).dataIndex = t), o.add(e)
                }
              })
              .update(function (e, n) {
                var s = r.getItemGraphicEl(n)
                i.getItemLayout(e) ? (s ? s.updateData(i, e, a) : (s = new jP(i, e, a)), o.add(s)) : s && oh(s, t, n)
              })
              .remove(function (e) {
                var n = r.getItemGraphicEl(e)
                n && oh(n, t, e)
              })
              .execute(),
            !r)
          ) {
            var s = t.get('center')
            ;(this.group.scaleX = 0.01),
              (this.group.scaleY = 0.01),
              (this.group.originX = yo(s[0], n.getWidth())),
              (this.group.originY = yo(s[1], n.getHeight())),
              eh(this.group, { scaleX: 1, scaleY: 1 }, t)
          }
          ;(this._data = i), this.renderEdges(t, a)
        }),
        (e.prototype.renderEdges = function (t, e) {
          var n = t.getData(),
            i = t.getEdgeData(),
            r = this._edgeData,
            o = this.group
          i
            .diff(r)
            .add(function (t) {
              var r = new qP(n, i, t, e)
              ;(zl(r).dataIndex = t), o.add(r)
            })
            .update(function (t, a) {
              var s = r.getItemGraphicEl(a)
              s.updateData(n, i, t, e), o.add(s)
            })
            .remove(function (e) {
              var n = r.getItemGraphicEl(e)
              n && oh(n, t, e)
            })
            .execute(),
            (this._edgeData = i)
        }),
        (e.prototype.dispose = function () {}),
        (e.type = 'chord'),
        e
      )
    })(tv),
    QP = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (e) {
          t.prototype.init.apply(this, arguments), this.fillDataTextStyle(e.edges || e.links), (this.legendVisualProvider = new CT(W(this.getData, this), W(this.getRawData, this)))
        }),
        (e.prototype.mergeOption = function (e) {
          t.prototype.mergeOption.apply(this, arguments), this.fillDataTextStyle(e.edges || e.links)
        }),
        (e.prototype.getInitialData = function (t, e) {
          var n = t.edges || t.links || [],
            i = t.data || t.nodes || []
          if (i && n)
            return XP(i, n, this, !0, function (t, e) {
              var n = wd.prototype.getModel
              function i(t, e) {
                var i = n.call(this, t, e)
                return (i.resolveParentPath = r), i
              }
              function r(t) {
                if (t && ('label' === t[0] || 'label' === t[1])) {
                  var e = t.slice()
                  return 'label' === t[0] ? (e[0] = 'edgeLabel') : 'label' === t[1] && (e[1] = 'edgeLabel'), e
                }
                return t
              }
              e.wrapMethod('getItemModel', function (t) {
                return (t.resolveParentPath = r), (t.getModel = i), t
              })
            }).data
        }),
        (e.prototype.getGraph = function () {
          return this.getData().graph
        }),
        (e.prototype.getEdgeData = function () {
          return this.getGraph().edgeData
        }),
        (e.prototype.formatTooltip = function (t, e, n) {
          var i = this.getDataParams(t, n)
          if ('edge' === n) {
            var r = this.getData(),
              o = r.graph.getEdgeByIndex(t),
              a = r.getName(o.node1.dataIndex),
              s = r.getName(o.node2.dataIndex),
              l = []
            return null != a && l.push(a), null != s && l.push(s), Ty('nameValue', { name: l.join(' > '), value: i.value, noValue: null == i.value })
          }
          return Ty('nameValue', { name: i.name, value: i.value, noValue: null == i.value })
        }),
        (e.prototype.getDataParams = function (e, n) {
          var i = t.prototype.getDataParams.call(this, e, n)
          if ('node' === n) {
            var r = this.getData(),
              o = this.getGraph().getNodeByIndex(e)
            if ((null == i.name && (i.name = r.getName(e)), null == i.value)) {
              var a = o.getLayout().value
              i.value = a
            }
          }
          return i
        }),
        (e.type = 'series.chord'),
        (e.defaultOption = {
          z: 2,
          coordinateSystem: 'none',
          legendHoverLink: !0,
          colorBy: 'data',
          left: 0,
          top: 0,
          right: 0,
          bottom: 0,
          width: null,
          height: null,
          center: ['50%', '50%'],
          radius: ['70%', '80%'],
          clockwise: !0,
          startAngle: 90,
          endAngle: 'auto',
          minAngle: 0,
          padAngle: 3,
          itemStyle: { borderRadius: [0, 0, 5, 5] },
          lineStyle: { width: 0, color: 'source', opacity: 0.2 },
          label: { show: !0, position: 'outside', distance: 5 },
          emphasis: { focus: 'adjacency', lineStyle: { opacity: 0.5 } }
        }),
        e
      )
    })(Wy),
    tO = Math.PI / 180
  function eO(t, e) {
    t.eachSeriesByType('chord', function (t) {
      !(function (t, e) {
        var n = t.getData(),
          i = n.graph,
          r = t.getEdgeData()
        if (!r.count()) return
        var o = Wp(t, e),
          a = o.cx,
          s = o.cy,
          l = o.r,
          u = o.r0,
          c = Math.max((t.get('padAngle') || 0) * tO, 0),
          h = Math.max((t.get('minAngle') || 0) * tO, 0),
          d = -t.get('startAngle') * tO,
          p = d + 2 * Math.PI,
          f = t.get('clockwise'),
          g = f ? 1 : -1,
          y = [d, p]
        Gs(y, !f)
        var v = y[0],
          m = y[1] - v,
          x = 0 === n.getSum('value') && 0 === r.getSum('value'),
          _ = [],
          b = 0
        i.eachEdge(function (t) {
          var e = x ? 1 : t.getValue('value')
          x && (e > 0 || h) && (b += 2)
          var n = t.node1.dataIndex,
            i = t.node2.dataIndex
          ;(_[n] = (_[n] || 0) + e), (_[i] = (_[i] || 0) + e)
        })
        var w = 0
        if (
          (i.eachNode(function (t) {
            var e = t.getValue('value')
            isNaN(e) || (_[t.dataIndex] = Math.max(e, _[t.dataIndex] || 0)), !x && (_[t.dataIndex] > 0 || h) && b++, (w += _[t.dataIndex] || 0)
          }),
          0 === b || 0 === w)
        )
          return
        c * b >= Math.abs(m) && (c = Math.max(0, (Math.abs(m) - h * b) / b))
        ;(c + h) * b >= Math.abs(m) && (h = (Math.abs(m) - c * b) / b)
        var S = (m - c * b * g) / w,
          M = 0,
          I = 0,
          T = 0
        i.eachNode(function (t) {
          var e = _[t.dataIndex] || 0,
            n = S * (w ? e : 1) * g
          Math.abs(n) < h ? (M += h - Math.abs(n)) : ((I += Math.abs(n) - h), (T += Math.abs(n))), t.setLayout({ angle: n, value: e })
        })
        var C = !1
        if (M > I) {
          var D = M / I
          i.eachNode(function (t) {
            var e = t.getLayout().angle
            Math.abs(e) >= h ? t.setLayout({ angle: e * D, ratio: D }, !0) : t.setLayout({ angle: h, ratio: 0 === h ? 1 : e / h }, !0)
          })
        } else
          i.eachNode(function (t) {
            if (!C) {
              var e = t.getLayout().angle
              e - Math.min(e / T, 1) * M < h && (C = !0)
            }
          })
        var A = M
        i.eachNode(function (t) {
          if (!(A <= 0)) {
            var e = t.getLayout().angle
            if (e > h && h > 0) {
              var n = C ? 1 : Math.min(e / T, 1),
                i = e - h,
                r = Math.min(i, Math.min(A, M * n))
              ;(A -= r), t.setLayout({ angle: e - r, ratio: (e - r) / e }, !0)
            } else h > 0 && t.setLayout({ angle: h, ratio: 0 === e ? 1 : h / e }, !0)
          }
        })
        var k = v,
          L = []
        i.eachNode(function (t) {
          var e = Math.max(t.getLayout().angle, h)
          t.setLayout({ cx: a, cy: s, r0: u, r: l, startAngle: k, endAngle: k + e * g, clockwise: f }, !0), (L[t.dataIndex] = k), (k += (e + c) * g)
        }),
          i.eachEdge(function (t) {
            var e = x ? 1 : t.getValue('value'),
              n = S * (w ? e : 1) * g,
              i = t.node1.dataIndex,
              r = L[i] || 0,
              o = r + Math.abs((t.node1.getLayout().ratio || 1) * n) * g,
              l = [a + u * Math.cos(r), s + u * Math.sin(r)],
              c = [a + u * Math.cos(o), s + u * Math.sin(o)],
              h = t.node2.dataIndex,
              d = L[h] || 0,
              p = d + Math.abs((t.node2.getLayout().ratio || 1) * n) * g,
              y = [a + u * Math.cos(d), s + u * Math.sin(d)],
              v = [a + u * Math.cos(p), s + u * Math.sin(p)]
            t.setLayout({ s1: l, s2: c, sStartAngle: r, sEndAngle: o, t1: y, t2: v, tStartAngle: d, tEndAngle: p, cx: a, cy: s, r: u, value: e, clockwise: f }),
              (L[i] = o),
              (L[h] = p)
          })
      })(t, e)
    })
  }
  var nO = function () {
      ;(this.angle = 0), (this.width = 10), (this.r = 10), (this.x = 0), (this.y = 0)
    },
    iO = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'pointer'), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new nO()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = Math.cos,
            i = Math.sin,
            r = e.r,
            o = e.width,
            a = e.angle,
            s = e.x - n(a) * o * (o >= r / 3 ? 1 : 2),
            l = e.y - i(a) * o * (o >= r / 3 ? 1 : 2)
          ;(a = e.angle - Math.PI / 2),
            t.moveTo(s, l),
            t.lineTo(e.x + n(a) * o, e.y + i(a) * o),
            t.lineTo(e.x + n(e.angle) * r, e.y + i(e.angle) * r),
            t.lineTo(e.x - n(a) * o, e.y - i(a) * o),
            t.lineTo(s, l)
        }),
        e
      )
    })(sl)
  function rO(t, e) {
    var n = null == t ? '' : t + ''
    return e && (X(e) ? (n = e.replace('{value}', n)) : Y(e) && (n = e(t))), n
  }
  var oO = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          this.group.removeAll()
          var i = t.get(['axisLine', 'lineStyle', 'color']),
            r = (function (t, e) {
              var n = t.get('center'),
                i = e.getWidth(),
                r = e.getHeight(),
                o = Math.min(i, r)
              return { cx: yo(n[0], e.getWidth()), cy: yo(n[1], e.getHeight()), r: yo(t.get('radius'), o / 2) }
            })(t, n)
          this._renderMain(t, e, n, i, r), (this._data = t.getData())
        }),
        (e.prototype.dispose = function () {}),
        (e.prototype._renderMain = function (t, e, n, i, r) {
          var o = this.group,
            a = t.get('clockwise'),
            s = (-t.get('startAngle') / 180) * Math.PI,
            l = (-t.get('endAngle') / 180) * Math.PI,
            u = t.getModel('axisLine'),
            c = u.get('roundCap') ? WI : xc,
            h = u.get('show'),
            d = u.getModel('lineStyle'),
            p = d.get('width'),
            f = [s, l]
          Gs(f, !a)
          for (var g = (l = f[1]) - (s = f[0]), y = s, v = [], m = 0; h && m < i.length; m++) {
            var x = new c({
              shape: { startAngle: y, endAngle: (l = s + g * Math.min(Math.max(i[m][0], 0), 1)), cx: r.cx, cy: r.cy, clockwise: a, r0: r.r - p, r: r.r },
              silent: !0
            })
            x.setStyle({ fill: i[m][1] }), x.setStyle(d.getLineStyle(['color', 'width'])), v.push(x), (y = l)
          }
          v.reverse(),
            z(v, function (t) {
              return o.add(t)
            })
          var _ = function (t) {
            if (t <= 0) return i[0][1]
            var e
            for (e = 0; e < i.length; e++) if (i[e][0] >= t && (0 === e ? 0 : i[e - 1][0]) < t) return i[e][1]
            return i[e - 1][1]
          }
          this._renderTicks(t, e, n, _, r, s, l, a, p), this._renderTitleAndDetail(t, e, n, _, r), this._renderAnchor(t, r), this._renderPointer(t, e, n, _, r, s, l, a, p)
        }),
        (e.prototype._renderTicks = function (t, e, n, i, r, o, a, s, l) {
          for (
            var u,
              c,
              h = this.group,
              d = r.cx,
              p = r.cy,
              f = r.r,
              g = +t.get('min'),
              y = +t.get('max'),
              v = t.getModel('splitLine'),
              m = t.getModel('axisTick'),
              x = t.getModel('axisLabel'),
              _ = t.get('splitNumber'),
              b = m.get('splitNumber'),
              w = yo(v.get('length'), f),
              S = yo(m.get('length'), f),
              M = o,
              I = (a - o) / _,
              T = I / b,
              C = v.getModel('lineStyle').getLineStyle(),
              D = m.getModel('lineStyle').getLineStyle(),
              A = v.get('distance'),
              k = 0;
            k <= _;
            k++
          ) {
            if (((u = Math.cos(M)), (c = Math.sin(M)), v.get('show'))) {
              var L = new Ac({ shape: { x1: u * (f - (P = A ? A + l : l)) + d, y1: c * (f - P) + p, x2: u * (f - w - P) + d, y2: c * (f - w - P) + p }, style: C, silent: !0 })
              'auto' === C.stroke && L.setStyle({ stroke: i(k / _) }), h.add(L)
            }
            if (x.get('show')) {
              var P = x.get('distance') + A,
                O = rO(mo((k / _) * (y - g) + g), x.get('formatter')),
                R = i(k / _),
                N = u * (f - w - P) + d,
                z = c * (f - w - P) + p,
                E = x.get('rotate'),
                B = 0
              'radial' === E ? (B = -M + 2 * Math.PI) > Math.PI / 2 && (B += Math.PI) : 'tangential' === E ? (B = -M - Math.PI / 2) : j(E) && (B = (E * Math.PI) / 180),
                0 === B
                  ? h.add(
                      new Sl({
                        style: Qh(
                          x,
                          { text: O, x: N, y: z, verticalAlign: c < -0.8 ? 'top' : c > 0.8 ? 'bottom' : 'middle', align: u < -0.4 ? 'left' : u > 0.4 ? 'right' : 'center' },
                          { inheritColor: R }
                        ),
                        silent: !0
                      })
                    )
                  : h.add(
                      new Sl({
                        style: Qh(x, { text: O, x: N, y: z, verticalAlign: 'middle', align: 'center' }, { inheritColor: R }),
                        silent: !0,
                        originX: N,
                        originY: z,
                        rotation: B
                      })
                    )
            }
            if (m.get('show') && k !== _) {
              P = (P = m.get('distance')) ? P + l : l
              for (var V = 0; V <= b; V++) {
                ;(u = Math.cos(M)), (c = Math.sin(M))
                var G = new Ac({ shape: { x1: u * (f - P) + d, y1: c * (f - P) + p, x2: u * (f - S - P) + d, y2: c * (f - S - P) + p }, silent: !0, style: D })
                'auto' === D.stroke && G.setStyle({ stroke: i((k + V / b) / _) }), h.add(G), (M += T)
              }
              M -= T
            } else M += I
          }
        }),
        (e.prototype._renderPointer = function (t, e, n, i, r, o, a, s, l) {
          var u = this.group,
            c = this._data,
            h = this._progressEls,
            d = [],
            p = t.get(['pointer', 'show']),
            f = t.getModel('progress'),
            g = f.get('show'),
            y = t.getData(),
            v = y.mapDimension('value'),
            m = +t.get('min'),
            x = +t.get('max'),
            _ = [m, x],
            b = [o, a]
          function w(e, n) {
            var i,
              o = y.getItemModel(e).getModel('pointer'),
              a = yo(o.get('width'), r.r),
              s = yo(o.get('length'), r.r),
              l = t.get(['pointer', 'icon']),
              u = o.get('offsetCenter'),
              c = yo(u[0], r.r),
              h = yo(u[1], r.r),
              d = o.get('keepAspect')
            return (
              ((i = l ? hm(l, c - a / 2, h - s, a, s, null, d) : new iO({ shape: { angle: -Math.PI / 2, width: a, r: s, x: c, y: h } })).rotation = -(n + Math.PI / 2)),
              (i.x = r.cx),
              (i.y = r.cy),
              i
            )
          }
          function S(t, e) {
            var n = f.get('roundCap') ? WI : xc,
              i = f.get('overlap'),
              a = i ? f.get('width') : l / y.count(),
              u = i ? r.r - a : r.r - (t + 1) * a,
              c = i ? r.r : r.r - t * a,
              h = new n({ shape: { startAngle: o, endAngle: e, cx: r.cx, cy: r.cy, clockwise: s, r0: u, r: c } })
            return i && (h.z2 = go(y.get(v, t), [m, x], [100, 0], !0)), h
          }
          ;(g || p) &&
            (y
              .diff(c)
              .add(function (e) {
                var n = y.get(v, e)
                if (p) {
                  var i = w(e, o)
                  eh(i, { rotation: -((isNaN(+n) ? b[0] : go(n, _, b, !0)) + Math.PI / 2) }, t), u.add(i), y.setItemGraphicEl(e, i)
                }
                if (g) {
                  var r = S(e, o),
                    a = f.get('clip')
                  eh(r, { shape: { endAngle: go(n, _, b, a) } }, t), u.add(r), El(t.seriesIndex, y.dataType, e, r), (d[e] = r)
                }
              })
              .update(function (e, n) {
                var i = y.get(v, e)
                if (p) {
                  var r = c.getItemGraphicEl(n),
                    a = r ? r.rotation : o,
                    s = w(e, a)
                  ;(s.rotation = a), th(s, { rotation: -((isNaN(+i) ? b[0] : go(i, _, b, !0)) + Math.PI / 2) }, t), u.add(s), y.setItemGraphicEl(e, s)
                }
                if (g) {
                  var l = h[n],
                    m = S(e, l ? l.shape.endAngle : o),
                    x = f.get('clip')
                  th(m, { shape: { endAngle: go(i, _, b, x) } }, t), u.add(m), El(t.seriesIndex, y.dataType, e, m), (d[e] = m)
                }
              })
              .execute(),
            y.each(function (t) {
              var e = y.getItemModel(t),
                n = e.getModel('emphasis'),
                r = n.get('focus'),
                o = n.get('blurScope'),
                a = n.get('disabled')
              if (p) {
                var s = y.getItemGraphicEl(t),
                  l = y.getItemVisual(t, 'style'),
                  u = l.fill
                if (s instanceof dl) {
                  var c = s.style
                  s.useStyle(A({ image: c.image, x: c.x, y: c.y, width: c.width, height: c.height }, l))
                } else s.useStyle(l), 'pointer' !== s.type && s.setColor(u)
                s.setStyle(e.getModel(['pointer', 'itemStyle']).getItemStyle()),
                  'auto' === s.style.fill && s.setStyle('fill', i(go(y.get(v, t), _, [0, 1], !0))),
                  (s.z2EmphasisLift = 0),
                  ku(s, e),
                  Tu(s, r, o, a)
              }
              if (g) {
                var h = d[t]
                h.useStyle(y.getItemVisual(t, 'style')), h.setStyle(e.getModel(['progress', 'itemStyle']).getItemStyle()), (h.z2EmphasisLift = 0), ku(h, e), Tu(h, r, o, a)
              }
            }),
            (this._progressEls = d))
        }),
        (e.prototype._renderAnchor = function (t, e) {
          var n = t.getModel('anchor')
          if (n.get('show')) {
            var i = n.get('size'),
              r = n.get('icon'),
              o = n.get('offsetCenter'),
              a = n.get('keepAspect'),
              s = hm(r, e.cx - i / 2 + yo(o[0], e.r), e.cy - i / 2 + yo(o[1], e.r), i, i, null, a)
            ;(s.z2 = n.get('showAbove') ? 1 : 0), s.setStyle(n.getModel('itemStyle').getItemStyle()), this.group.add(s)
          }
        }),
        (e.prototype._renderTitleAndDetail = function (t, e, n, i, r) {
          var o = this,
            a = t.getData(),
            s = a.mapDimension('value'),
            l = +t.get('min'),
            u = +t.get('max'),
            c = new to(),
            h = [],
            d = [],
            p = t.isAnimationEnabled(),
            f = t.get(['pointer', 'showAbove'])
          a
            .diff(this._data)
            .add(function (t) {
              ;(h[t] = new Sl({ silent: !0 })), (d[t] = new Sl({ silent: !0 }))
            })
            .update(function (t, e) {
              ;(h[t] = o._titleEls[e]), (d[t] = o._detailEls[e])
            })
            .execute(),
            a.each(function (e) {
              var n = a.getItemModel(e),
                o = a.get(s, e),
                g = new to(),
                y = i(go(o, [l, u], [0, 1], !0)),
                v = n.getModel('title')
              if (v.get('show')) {
                var m = v.get('offsetCenter'),
                  x = r.cx + yo(m[0], r.r),
                  _ = r.cy + yo(m[1], r.r)
                ;(D = h[e]).attr({ z2: f ? 0 : 2, style: Qh(v, { x: x, y: _, text: a.getName(e), align: 'center', verticalAlign: 'middle' }, { inheritColor: y }) }), g.add(D)
              }
              var b = n.getModel('detail')
              if (b.get('show')) {
                var w = b.get('offsetCenter'),
                  S = r.cx + yo(w[0], r.r),
                  M = r.cy + yo(w[1], r.r),
                  I = yo(b.get('width'), r.r),
                  T = yo(b.get('height'), r.r),
                  C = t.get(['progress', 'show']) ? a.getItemVisual(e, 'style').fill : y,
                  D = d[e],
                  A = b.get('formatter')
                D.attr({
                  z2: f ? 0 : 2,
                  style: Qh(
                    b,
                    { x: S, y: M, text: rO(o, A), width: isNaN(I) ? null : I, height: isNaN(T) ? null : T, align: 'center', verticalAlign: 'middle' },
                    { inheritColor: C }
                  )
                }),
                  sd(D, { normal: b }, o, function (t) {
                    return rO(t, A)
                  }),
                  p &&
                    ld(D, e, a, t, {
                      getFormattedLabel: function (t, e, n, i, r, a) {
                        return rO(a ? a.interpolatedValue : o, A)
                      }
                    }),
                  g.add(D)
              }
              c.add(g)
            }),
            this.group.add(c),
            (this._titleEls = h),
            (this._detailEls = d)
        }),
        (e.type = 'gauge'),
        e
      )
    })(tv),
    aO = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.visualStyleAccessPath = 'itemStyle'), n
      }
      return (
        n(e, t),
        (e.prototype.getInitialData = function (t, e) {
          return IT(this, ['value'])
        }),
        (e.type = 'series.gauge'),
        (e.defaultOption = {
          z: 2,
          colorBy: 'data',
          center: ['50%', '50%'],
          legendHoverLink: !0,
          radius: '75%',
          startAngle: 225,
          endAngle: -45,
          clockwise: !0,
          min: 0,
          max: 100,
          splitNumber: 10,
          axisLine: { show: !0, roundCap: !1, lineStyle: { color: [[1, tf.color.neutral10]], width: 10 } },
          progress: { show: !1, overlap: !0, width: 10, roundCap: !1, clip: !0 },
          splitLine: { show: !0, length: 10, distance: 10, lineStyle: { color: tf.color.axisTick, width: 3, type: 'solid' } },
          axisTick: { show: !0, splitNumber: 5, length: 6, distance: 10, lineStyle: { color: tf.color.axisTickMinor, width: 1, type: 'solid' } },
          axisLabel: { show: !0, distance: 15, color: tf.color.axisLabel, fontSize: 12, rotate: 0 },
          pointer: { icon: null, offsetCenter: [0, 0], show: !0, showAbove: !0, length: '60%', width: 6, keepAspect: !1 },
          anchor: {
            show: !1,
            showAbove: !1,
            size: 6,
            icon: 'circle',
            offsetCenter: [0, 0],
            keepAspect: !1,
            itemStyle: { color: tf.color.neutral00, borderWidth: 0, borderColor: tf.color.theme[0] }
          },
          title: { show: !0, offsetCenter: [0, '20%'], color: tf.color.secondary, fontSize: 16, valueAnimation: !1 },
          detail: {
            show: !0,
            backgroundColor: tf.color.transparent,
            borderWidth: 0,
            borderColor: tf.color.neutral40,
            width: 100,
            height: null,
            padding: [5, 10],
            offsetCenter: [0, '40%'],
            color: tf.color.primary,
            fontSize: 30,
            fontWeight: 'bold',
            lineHeight: 30,
            valueAnimation: !1
          }
        }),
        e
      )
    })(Wy)
  var sO = ['itemStyle', 'opacity'],
    lO = (function (t) {
      function e(e, n) {
        var i = t.call(this) || this,
          r = i,
          o = new Tc(),
          a = new Sl()
        return r.setTextContent(a), i.setTextGuideLine(o), i.updateData(e, n, !0), i
      }
      return (
        n(e, t),
        (e.prototype.updateData = function (t, e, n) {
          var i = this,
            r = t.hostModel,
            o = t.getItemModel(e),
            a = t.getItemLayout(e),
            s = o.getModel('emphasis'),
            l = o.get(sO)
          ;(l = null == l ? 1 : l),
            n || ah(i),
            i.useStyle(t.getItemVisual(e, 'style')),
            (i.style.lineJoin = 'round'),
            n
              ? (i.setShape({ points: a.points }), (i.style.opacity = 0), eh(i, { style: { opacity: l } }, r, e))
              : th(i, { style: { opacity: l }, shape: { points: a.points } }, r, e),
            ku(i, o),
            this._updateLabel(t, e),
            Tu(this, s.get('focus'), s.get('blurScope'), s.get('disabled'))
        }),
        (e.prototype._updateLabel = function (t, e) {
          var n = this,
            i = this.getTextGuideLine(),
            r = n.getTextContent(),
            o = t.hostModel,
            a = t.getItemModel(e),
            s = t.getItemLayout(e).label,
            l = t.getItemVisual(e, 'style'),
            u = l.fill
          $h(
            r,
            Jh(a),
            { labelFetcher: t.hostModel, labelDataIndex: e, defaultOpacity: l.opacity, defaultText: t.getName(e) },
            { normal: { align: s.textAlign, verticalAlign: s.verticalAlign } }
          )
          var c = 'inherit' === a.getModel('label').get('color') ? u : null
          n.setTextConfig({ local: !0, inside: !!s.inside, insideStroke: c, outsideFill: c })
          var h = s.linePoints
          i.setShape({ points: h }),
            (n.textGuideLineConfig = { anchor: h ? new Ae(h[0][0], h[0][1]) : null }),
            th(r, { style: { x: s.x, y: s.y } }, o, e),
            r.attr({ rotation: s.rotation, originX: s.x, originY: s.y, z2: 10 }),
            dS(n, pS(a), { stroke: u })
        }),
        e
      )
    })(Mc),
    uO = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.ignoreLabelLineUpdate = !0), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          var i = t.getData(),
            r = this._data,
            o = this.group
          i
            .diff(r)
            .add(function (t) {
              var e = new lO(i, t)
              i.setItemGraphicEl(t, e), o.add(e)
            })
            .update(function (t, e) {
              var n = r.getItemGraphicEl(e)
              n.updateData(i, t), o.add(n), i.setItemGraphicEl(t, n)
            })
            .remove(function (e) {
              oh(r.getItemGraphicEl(e), t, e)
            })
            .execute(),
            (this._data = i)
        }),
        (e.prototype.remove = function () {
          this.group.removeAll(), (this._data = null)
        }),
        (e.prototype.dispose = function () {}),
        (e.type = 'funnel'),
        e
      )
    })(tv),
    cO = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (e) {
          t.prototype.init.apply(this, arguments), (this.legendVisualProvider = new CT(W(this.getData, this), W(this.getRawData, this))), this._defaultLabelLine(e)
        }),
        (e.prototype.getInitialData = function (t, e) {
          return IT(this, { coordDimensions: ['value'], encodeDefaulter: H(Mf, this) })
        }),
        (e.prototype._defaultLabelLine = function (t) {
          Ko(t, 'labelLine', ['show'])
          var e = t.labelLine,
            n = t.emphasis.labelLine
          ;(e.show = e.show && t.label.show), (n.show = n.show && t.emphasis.label.show)
        }),
        (e.prototype.getDataParams = function (e) {
          var n = this.getData(),
            i = t.prototype.getDataParams.call(this, e),
            r = n.mapDimension('value'),
            o = n.getSum(r)
          return (i.percent = o ? +((n.get(r, e) / o) * 100).toFixed(2) : 0), i.$vars.push('percent'), i
        }),
        (e.type = 'series.funnel'),
        (e.defaultOption = {
          coordinateSystemUsage: 'box',
          z: 2,
          legendHoverLink: !0,
          colorBy: 'data',
          left: 80,
          top: 60,
          right: 80,
          bottom: 65,
          minSize: '0%',
          maxSize: '100%',
          sort: 'descending',
          orient: 'vertical',
          gap: 0,
          funnelAlign: 'center',
          label: { show: !0, position: 'outer' },
          labelLine: { show: !0, length: 20, lineStyle: { width: 1 } },
          itemStyle: { borderColor: tf.color.neutral00, borderWidth: 1 },
          emphasis: { label: { show: !0 } },
          select: { itemStyle: { borderColor: tf.color.primary } }
        }),
        e
      )
    })(Wy)
  function hO(t, e) {
    t.eachSeriesByType('funnel', function (t) {
      var n = t.getData(),
        i = n.mapDimension('value'),
        r = t.get('sort'),
        o = Xp(t, e),
        a = Hp(t.getBoxLayoutParams(), o.refContainer),
        s = t.get('orient'),
        l = a.width,
        u = a.height,
        c = (function (t, e) {
          for (
            var n = t.mapDimension('value'),
              i = t.mapArray(n, function (t) {
                return t
              }),
              r = [],
              o = 'ascending' === e,
              a = 0,
              s = t.count();
            a < s;
            a++
          )
            r[a] = a
          return (
            Y(e)
              ? r.sort(e)
              : 'none' !== e &&
                r.sort(function (t, e) {
                  return o ? i[t] - i[e] : i[e] - i[t]
                }),
            r
          )
        })(n, r),
        h = a.x,
        d = a.y,
        p = 'horizontal' === s ? [yo(t.get('minSize'), u), yo(t.get('maxSize'), u)] : [yo(t.get('minSize'), l), yo(t.get('maxSize'), l)],
        f = n.getDataExtent(i),
        g = t.get('min'),
        y = t.get('max')
      null == g && (g = Math.min(f[0], 0)), null == y && (y = f[1])
      var v = t.get('funnelAlign'),
        m = t.get('gap'),
        x = (('horizontal' === s ? l : u) - m * (n.count() - 1)) / n.count(),
        _ = function (t, e) {
          if ('horizontal' === s) {
            var r = go(n.get(i, t) || 0, [g, y], p, !0),
              o = void 0
            switch (v) {
              case 'top':
                o = d
                break
              case 'center':
                o = d + (u - r) / 2
                break
              case 'bottom':
                o = d + (u - r)
            }
            return [
              [e, o],
              [e, o + r]
            ]
          }
          var a,
            c = go(n.get(i, t) || 0, [g, y], p, !0)
          switch (v) {
            case 'left':
              a = h
              break
            case 'center':
              a = h + (l - c) / 2
              break
            case 'right':
              a = h + l - c
          }
          return [
            [a, e],
            [a + c, e]
          ]
        }
      'ascending' === r && ((x = -x), (m = -m), 'horizontal' === s ? (h += l) : (d += u), (c = c.reverse()))
      for (var b = 0; b < c.length; b++) {
        var w = c[b],
          S = c[b + 1],
          M = n.getItemModel(w)
        if ('horizontal' === s) {
          var I = M.get(['itemStyle', 'width'])
          null == I ? (I = x) : ((I = yo(I, l)), 'ascending' === r && (I = -I))
          var T = _(w, h),
            C = _(S, h + I)
          ;(h += I + m), n.setItemLayout(w, { points: T.concat(C.slice().reverse()) })
        } else {
          var D = M.get(['itemStyle', 'height'])
          null == D ? (D = x) : ((D = yo(D, u)), 'ascending' === r && (D = -D))
          ;(T = _(w, d)), (C = _(S, d + D))
          ;(d += D + m), n.setItemLayout(w, { points: T.concat(C.slice().reverse()) })
        }
      }
      !(function (t) {
        var e = t.hostModel.get('orient')
        t.each(function (n) {
          var i,
            r,
            o,
            a,
            s = t.getItemModel(n),
            l = s.getModel('label').get('position'),
            u = s.getModel('labelLine'),
            c = t.getItemLayout(n),
            h = c.points,
            d = 'inner' === l || 'inside' === l || 'center' === l || 'insideLeft' === l || 'insideRight' === l
          if (d)
            'insideLeft' === l
              ? ((r = (h[0][0] + h[3][0]) / 2 + 5), (o = (h[0][1] + h[3][1]) / 2), (i = 'left'))
              : 'insideRight' === l
                ? ((r = (h[1][0] + h[2][0]) / 2 - 5), (o = (h[1][1] + h[2][1]) / 2), (i = 'right'))
                : ((r = (h[0][0] + h[1][0] + h[2][0] + h[3][0]) / 4), (o = (h[0][1] + h[1][1] + h[2][1] + h[3][1]) / 4), (i = 'center')),
              (a = [
                [r, o],
                [r, o]
              ])
          else {
            var p = void 0,
              f = void 0,
              g = void 0,
              y = void 0,
              v = u.get('length')
            'left' === l
              ? ((p = (h[3][0] + h[0][0]) / 2), (f = (h[3][1] + h[0][1]) / 2), (r = (g = p - v) - 5), (i = 'right'))
              : 'right' === l
                ? ((p = (h[1][0] + h[2][0]) / 2), (f = (h[1][1] + h[2][1]) / 2), (r = (g = p + v) + 5), (i = 'left'))
                : 'top' === l
                  ? ((p = (h[3][0] + h[0][0]) / 2), (o = (y = (f = (h[3][1] + h[0][1]) / 2) - v) - 5), (i = 'center'))
                  : 'bottom' === l
                    ? ((p = (h[1][0] + h[2][0]) / 2), (o = (y = (f = (h[1][1] + h[2][1]) / 2) + v) + 5), (i = 'center'))
                    : 'rightTop' === l
                      ? ((p = 'horizontal' === e ? h[3][0] : h[1][0]),
                        (f = 'horizontal' === e ? h[3][1] : h[1][1]),
                        'horizontal' === e ? ((o = (y = f - v) - 5), (i = 'center')) : ((r = (g = p + v) + 5), (i = 'top')))
                      : 'rightBottom' === l
                        ? ((p = h[2][0]), (f = h[2][1]), 'horizontal' === e ? ((o = (y = f + v) + 5), (i = 'center')) : ((r = (g = p + v) + 5), (i = 'bottom')))
                        : 'leftTop' === l
                          ? ((p = h[0][0]),
                            (f = 'horizontal' === e ? h[0][1] : h[1][1]),
                            'horizontal' === e ? ((o = (y = f - v) - 5), (i = 'center')) : ((r = (g = p - v) - 5), (i = 'right')))
                          : 'leftBottom' === l
                            ? ((p = 'horizontal' === e ? h[1][0] : h[3][0]),
                              (f = 'horizontal' === e ? h[1][1] : h[2][1]),
                              'horizontal' === e ? ((o = (y = f + v) + 5), (i = 'center')) : ((r = (g = p - v) - 5), (i = 'right')))
                            : ((p = (h[1][0] + h[2][0]) / 2),
                              (f = (h[1][1] + h[2][1]) / 2),
                              'horizontal' === e ? ((o = (y = f + v) + 5), (i = 'center')) : ((r = (g = p + v) + 5), (i = 'left'))),
              'horizontal' === e ? (r = g = p) : (o = y = f),
              (a = [
                [p, f],
                [g, y]
              ])
          }
          c.label = { linePoints: a, x: r, y: o, verticalAlign: 'middle', textAlign: i, inside: d }
        })
      })(n)
    })
  }
  var dO = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), (n._dataGroup = new to()), (n._initialized = !1), n
    }
    return (
      n(e, t),
      (e.prototype.init = function () {
        this.group.add(this._dataGroup)
      }),
      (e.prototype.render = function (t, e, n, i) {
        this._progressiveEls = null
        var r = this._dataGroup,
          o = t.getData(),
          a = this._data,
          s = t.coordinateSystem,
          l = s.dimensions,
          u = gO(t)
        if (
          (o
            .diff(a)
            .add(function (t) {
              yO(fO(o, r, t, l, s), o, t, u)
            })
            .update(function (e, n) {
              var i = a.getItemGraphicEl(n),
                r = pO(o, e, l, s)
              o.setItemGraphicEl(e, i), th(i, { shape: { points: r } }, t, e), ah(i), yO(i, o, e, u)
            })
            .remove(function (t) {
              var e = a.getItemGraphicEl(t)
              r.remove(e)
            })
            .execute(),
          !this._initialized)
        ) {
          this._initialized = !0
          var c = (function (t, e, n) {
            var i = t.model,
              r = t.getRect(),
              o = new xl({ shape: { x: r.x, y: r.y, width: r.width, height: r.height } }),
              a = 'horizontal' === i.get('layout') ? 'width' : 'height'
            return o.setShape(a, 0), eh(o, { shape: { width: r.width, height: r.height } }, e, n), o
          })(s, t, function () {
            setTimeout(function () {
              r.removeClipPath()
            })
          })
          r.setClipPath(c)
        }
        this._data = o
      }),
      (e.prototype.incrementalPrepareRender = function (t, e, n) {
        ;(this._initialized = !0), (this._data = null), this._dataGroup.removeAll()
      }),
      (e.prototype.incrementalRender = function (t, e, n) {
        for (var i = e.getData(), r = e.coordinateSystem, o = r.dimensions, a = gO(e), s = (this._progressiveEls = []), l = t.start; l < t.end; l++) {
          var u = fO(i, this._dataGroup, l, o, r)
          ;(u.incremental = !0), yO(u, i, l, a), s.push(u)
        }
      }),
      (e.prototype.remove = function () {
        this._dataGroup && this._dataGroup.removeAll(), (this._data = null)
      }),
      (e.type = 'parallel'),
      e
    )
  })(tv)
  function pO(t, e, n, i) {
    for (var r, o = [], a = 0; a < n.length; a++) {
      var s = n[a],
        l = t.get(t.mapDimension(s), e)
      ;(r = l), ('category' === i.getAxis(s).type ? null == r : null == r || isNaN(r)) || o.push(i.dataToPoint(l, s))
    }
    return o
  }
  function fO(t, e, n, i, r) {
    var o = pO(t, n, i, r),
      a = new Tc({ shape: { points: o }, z2: 10 })
    return e.add(a), t.setItemGraphicEl(n, a), a
  }
  function gO(t) {
    var e = t.get('smooth', !0)
    return !0 === e && (e = 0.3), nt((e = No(e))) && (e = 0), { smooth: e }
  }
  function yO(t, e, n, i) {
    t.useStyle(e.getItemVisual(n, 'style')), (t.style.fill = null), t.setShape('smooth', i.smooth)
    var r = e.getItemModel(n),
      o = r.getModel('emphasis')
    ku(t, r, 'lineStyle'), Tu(t, o.get('focus'), o.get('blurScope'), o.get('disabled'))
  }
  var vO = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), (n.visualStyleAccessPath = 'lineStyle'), (n.visualDrawType = 'stroke'), n
    }
    return (
      n(e, t),
      (e.prototype.getInitialData = function (t, e) {
        return Z_(null, this, { useEncodeDefaulter: W(mO, null, this) })
      }),
      (e.prototype.getRawIndicesByActiveState = function (t) {
        var e = this.coordinateSystem,
          n = this.getData(),
          i = []
        return (
          e.eachActiveState(n, function (e, r) {
            t === e && i.push(n.getRawIndex(r))
          }),
          i
        )
      }),
      (e.type = 'series.parallel'),
      (e.dependencies = ['parallel']),
      (e.defaultOption = {
        z: 2,
        coordinateSystem: 'parallel',
        parallelIndex: 0,
        label: { show: !1 },
        inactiveOpacity: 0.05,
        activeOpacity: 1,
        lineStyle: { width: 1, opacity: 0.45, type: 'solid' },
        emphasis: { label: { show: !1 } },
        progressive: 500,
        smooth: !1,
        animationEasing: 'linear'
      }),
      e
    )
  })(Wy)
  function mO(t) {
    var e = t.ecModel.getComponent('parallel', t.get('parallelIndex'))
    if (e) {
      var n = {}
      return (
        z(e.dimensions, function (t) {
          var e = +t.replace('dim', '')
          n[t] = e
        }),
        n
      )
    }
  }
  var xO = ['lineStyle', 'opacity'],
    _O = {
      seriesType: 'parallel',
      reset: function (t, e) {
        var n = t.coordinateSystem,
          i = { normal: t.get(['lineStyle', 'opacity']), active: t.get('activeOpacity'), inactive: t.get('inactiveOpacity') }
        return {
          progress: function (t, e) {
            n.eachActiveState(
              e,
              function (t, n) {
                var r = i[t]
                if ('normal' === t && e.hasItemOption) {
                  var o = e.getItemModel(n).get(xO, !0)
                  null != o && (r = o)
                }
                e.ensureUniqueItemVisual(n, 'style').opacity = r
              },
              t.start,
              t.end
            )
          }
        }
      }
    }
  function bO(t) {
    !(function (t) {
      if (t.parallel) return
      var e = !1
      z(t.series, function (t) {
        t && 'parallel' === t.type && (e = !0)
      }),
        e && (t.parallel = [{}])
    })(t),
      (function (t) {
        var e = qo(t.parallelAxis)
        z(e, function (e) {
          if (q(e)) {
            var n = e.parallelIndex || 0,
              i = qo(t.parallel)[n]
            i && i.parallelAxisDefault && C(e, i.parallelAxisDefault, !1)
          }
        })
      })(t)
  }
  var wO = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          ;(this._model = t),
            (this._api = n),
            this._handlers ||
              ((this._handlers = {}),
              z(
                SO,
                function (t, e) {
                  n.getZr().on(e, (this._handlers[e] = W(t, this)))
                },
                this
              )),
            cv(this, '_throttledDispatchExpand', t.get('axisExpandRate'), 'fixRate')
        }),
        (e.prototype.dispose = function (t, e) {
          hv(this, '_throttledDispatchExpand'),
            z(this._handlers, function (t, n) {
              e.getZr().off(n, t)
            }),
            (this._handlers = null)
        }),
        (e.prototype._throttledDispatchExpand = function (t) {
          this._dispatchExpand(t)
        }),
        (e.prototype._dispatchExpand = function (t) {
          t && this._api.dispatchAction(A({ type: 'parallelAxisExpand' }, t))
        }),
        (e.type = 'parallel'),
        e
      )
    })(Ky),
    SO = {
      mousedown: function (t) {
        MO(this, 'click') && (this._mouseDownPoint = [t.offsetX, t.offsetY])
      },
      mouseup: function (t) {
        var e = this._mouseDownPoint
        if (MO(this, 'click') && e) {
          var n = [t.offsetX, t.offsetY]
          if (Math.pow(e[0] - n[0], 2) + Math.pow(e[1] - n[1], 2) > 5) return
          var i = this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX, t.offsetY])
          'none' !== i.behavior && this._dispatchExpand({ axisExpandWindow: i.axisExpandWindow })
        }
        this._mouseDownPoint = null
      },
      mousemove: function (t) {
        if (!this._mouseDownPoint && MO(this, 'mousemove')) {
          var e = this._model,
            n = e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX, t.offsetY]),
            i = n.behavior
          'jump' === i && this._throttledDispatchExpand.debounceNextCall(e.get('axisExpandDebounce')),
            this._throttledDispatchExpand('none' === i ? null : { axisExpandWindow: n.axisExpandWindow, animation: 'jump' === i ? null : { duration: 0 } })
        }
      }
    }
  function MO(t, e) {
    var n = t._model
    return n.get('axisExpandable') && n.get('axisExpandTriggerOn') === e
  }
  var IO = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function () {
          t.prototype.init.apply(this, arguments), this.mergeOption({})
        }),
        (e.prototype.mergeOption = function (t) {
          var e = this.option
          t && C(e, t, !0), this._initDimensions()
        }),
        (e.prototype.contains = function (t, e) {
          var n = t.get('parallelIndex')
          return null != n && e.getComponent('parallel', n) === this
        }),
        (e.prototype.setAxisExpand = function (t) {
          z(
            ['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'],
            function (e) {
              t.hasOwnProperty(e) && (this.option[e] = t[e])
            },
            this
          )
        }),
        (e.prototype._initDimensions = function () {
          var t = (this.dimensions = []),
            e = (this.parallelAxisIndex = [])
          z(
            V(
              this.ecModel.queryComponents({ mainType: 'parallelAxis' }),
              function (t) {
                return (t.get('parallelIndex') || 0) === this.componentIndex
              },
              this
            ),
            function (n) {
              t.push('dim' + n.get('dim')), e.push(n.componentIndex)
            }
          )
        }),
        (e.type = 'parallel'),
        (e.dependencies = ['parallelAxis']),
        (e.layoutMode = 'box'),
        (e.defaultOption = {
          z: 0,
          left: 80,
          top: 60,
          right: 80,
          bottom: 60,
          layout: 'horizontal',
          axisExpandable: !1,
          axisExpandCenter: null,
          axisExpandCount: 0,
          axisExpandWidth: 50,
          axisExpandRate: 17,
          axisExpandDebounce: 50,
          axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],
          axisExpandTriggerOn: 'click',
          parallelAxisDefault: null
        }),
        e
      )
    })(Qp),
    TO = (function (t) {
      function e(e, n, i, r, o) {
        var a = t.call(this, e, n, i) || this
        return (a.type = r || 'value'), (a.axisIndex = o), a
      }
      return (
        n(e, t),
        (e.prototype.isHorizontal = function () {
          return 'horizontal' !== this.coordinateSystem.getModel().get('layout')
        }),
        e
      )
    })(Ww)
  function CO(t, e, n, i, r, o) {
    t = t || 0
    var a = n[1] - n[0]
    if ((null != r && (r = AO(r, [0, a])), null != o && (o = Math.max(o, null != r ? r : 0)), 'all' === i)) {
      var s = Math.abs(e[1] - e[0])
      ;(s = AO(s, [0, a])), (r = o = AO(s, [r, o])), (i = 0)
    }
    ;(e[0] = AO(e[0], n)), (e[1] = AO(e[1], n))
    var l = DO(e, i)
    e[i] += t
    var u,
      c = r || 0,
      h = n.slice()
    return (
      l.sign < 0 ? (h[0] += c) : (h[1] -= c),
      (e[i] = AO(e[i], h)),
      (u = DO(e, i)),
      null != r && (u.sign !== l.sign || u.span < r) && (e[1 - i] = e[i] + l.sign * r),
      (u = DO(e, i)),
      null != o && u.span > o && (e[1 - i] = e[i] + u.sign * o),
      e
    )
  }
  function DO(t, e) {
    var n = t[e] - t[1 - e]
    return { span: Math.abs(n), sign: n > 0 ? -1 : n < 0 ? 1 : e ? -1 : 1 }
  }
  function AO(t, e) {
    return Math.min(null != e[1] ? e[1] : 1 / 0, Math.max(null != e[0] ? e[0] : -1 / 0, t))
  }
  var kO = z,
    LO = Math.min,
    PO = Math.max,
    OO = Math.floor,
    RO = Math.ceil,
    NO = mo,
    zO = Math.PI,
    EO = (function () {
      function t(t, e, n) {
        ;(this.type = 'parallel'), (this._axesMap = yt()), (this._axesLayout = {}), (this.dimensions = t.dimensions), (this._model = t), this._init(t, e, n)
      }
      return (
        (t.prototype._init = function (t, e, n) {
          var i = t.dimensions,
            r = t.parallelAxisIndex
          kO(
            i,
            function (t, n) {
              var i = r[n],
                o = e.getComponent('parallelAxis', i),
                a = this._axesMap.set(t, new TO(t, Zb(o), [0, 0], o.get('type'), i)),
                s = 'category' === a.type
              ;(a.onBand = s && o.get('boundaryGap')), (a.inverse = o.get('inverse')), (o.axis = a), (a.model = o), (a.coordinateSystem = o.coordinateSystem = this)
            },
            this
          )
        }),
        (t.prototype.update = function (t, e) {
          this._updateAxesFromSeries(this._model, t)
        }),
        (t.prototype.containPoint = function (t) {
          var e = this._makeLayoutInfo(),
            n = e.axisBase,
            i = e.layoutBase,
            r = e.pixelDimIndex,
            o = t[1 - r],
            a = t[r]
          return o >= n && o <= n + e.axisLength && a >= i && a <= i + e.layoutLength
        }),
        (t.prototype.getModel = function () {
          return this._model
        }),
        (t.prototype._updateAxesFromSeries = function (t, e) {
          e.eachSeries(function (n) {
            if (t.contains(n, e)) {
              var i = n.getData()
              kO(
                this.dimensions,
                function (t) {
                  var e = this._axesMap.get(t)
                  e.scale.unionExtentFromData(i, i.mapDimension(t)), Xb(e.scale, e.model)
                },
                this
              )
            }
          }, this)
        }),
        (t.prototype.resize = function (t, e) {
          var n = Xp(t, e).refContainer
          ;(this._rect = Hp(t.getBoxLayoutParams(), n)), this._layoutAxes()
        }),
        (t.prototype.getRect = function () {
          return this._rect
        }),
        (t.prototype._makeLayoutInfo = function () {
          var t,
            e = this._model,
            n = this._rect,
            i = ['x', 'y'],
            r = ['width', 'height'],
            o = e.get('layout'),
            a = 'horizontal' === o ? 0 : 1,
            s = n[r[a]],
            l = [0, s],
            u = this.dimensions.length,
            c = BO(e.get('axisExpandWidth'), l),
            h = BO(e.get('axisExpandCount') || 0, [0, u]),
            d = e.get('axisExpandable') && u > 3 && u > h && h > 1 && c > 0 && s > 0,
            p = e.get('axisExpandWindow')
          p ? ((t = BO(p[1] - p[0], l)), (p[1] = p[0] + t)) : ((t = BO(c * (h - 1), l)), ((p = [c * (e.get('axisExpandCenter') || OO(u / 2)) - t / 2])[1] = p[0] + t))
          var f = (s - t) / (u - h)
          f < 3 && (f = 0)
          var g = [OO(NO(p[0] / c, 1)) + 1, RO(NO(p[1] / c, 1)) - 1],
            y = (f / c) * p[0]
          return {
            layout: o,
            pixelDimIndex: a,
            layoutBase: n[i[a]],
            layoutLength: s,
            axisBase: n[i[1 - a]],
            axisLength: n[r[1 - a]],
            axisExpandable: d,
            axisExpandWidth: c,
            axisCollapseWidth: f,
            axisExpandWindow: p,
            axisCount: u,
            winInnerIndices: g,
            axisExpandWindow0Pos: y
          }
        }),
        (t.prototype._layoutAxes = function () {
          var t = this._rect,
            e = this._axesMap,
            n = this.dimensions,
            i = this._makeLayoutInfo(),
            r = i.layout
          e.each(function (t) {
            var e = [0, i.axisLength],
              n = t.inverse ? 1 : 0
            t.setExtent(e[n], e[1 - n])
          }),
            kO(
              n,
              function (e, n) {
                var o = (i.axisExpandable ? GO : VO)(n, i),
                  a = { horizontal: { x: o.position, y: i.axisLength }, vertical: { x: 0, y: o.position } },
                  s = { horizontal: zO / 2, vertical: 0 },
                  l = [a[r].x + t.x, a[r].y + t.y],
                  u = s[r],
                  c = [1, 0, 0, 1, 0, 0]
                Me(c, c, u),
                  Se(c, c, l),
                  (this._axesLayout[e] = {
                    position: l,
                    rotation: u,
                    transform: c,
                    axisNameAvailableWidth: o.axisNameAvailableWidth,
                    axisLabelShow: o.axisLabelShow,
                    nameTruncateMaxWidth: o.nameTruncateMaxWidth,
                    tickDirection: 1,
                    labelDirection: 1
                  })
              },
              this
            )
        }),
        (t.prototype.getAxis = function (t) {
          return this._axesMap.get(t)
        }),
        (t.prototype.dataToPoint = function (t, e) {
          return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t), e)
        }),
        (t.prototype.eachActiveState = function (t, e, n, i) {
          null == n && (n = 0), null == i && (i = t.count())
          var r = this._axesMap,
            o = this.dimensions,
            a = [],
            s = []
          z(o, function (e) {
            a.push(t.mapDimension(e)), s.push(r.get(e).model)
          })
          for (var l = this.hasAxisBrushed(), u = n; u < i; u++) {
            var c = void 0
            if (l) {
              c = 'active'
              for (var h = t.getValues(a, u), d = 0, p = o.length; d < p; d++) {
                if ('inactive' === s[d].getActiveState(h[d])) {
                  c = 'inactive'
                  break
                }
              }
            } else c = 'normal'
            e(c, u)
          }
        }),
        (t.prototype.hasAxisBrushed = function () {
          for (var t = this.dimensions, e = this._axesMap, n = !1, i = 0, r = t.length; i < r; i++) 'normal' !== e.get(t[i]).model.getActiveState() && (n = !0)
          return n
        }),
        (t.prototype.axisCoordToPoint = function (t, e) {
          return Sh([t, 0], this._axesLayout[e].transform)
        }),
        (t.prototype.getAxisLayout = function (t) {
          return T(this._axesLayout[t])
        }),
        (t.prototype.getSlidedAxisExpandWindow = function (t) {
          var e = this._makeLayoutInfo(),
            n = e.pixelDimIndex,
            i = e.axisExpandWindow.slice(),
            r = i[1] - i[0],
            o = [0, e.axisExpandWidth * (e.axisCount - 1)]
          if (!this.containPoint(t)) return { behavior: 'none', axisExpandWindow: i }
          var a,
            s = t[n] - e.layoutBase - e.axisExpandWindow0Pos,
            l = 'slide',
            u = e.axisCollapseWidth,
            c = this._model.get('axisExpandSlideTriggerArea'),
            h = null != c[0]
          if (u)
            h && u && s < r * c[0]
              ? ((l = 'jump'), (a = s - r * c[2]))
              : h && u && s > r * (1 - c[0])
                ? ((l = 'jump'), (a = s - r * (1 - c[2])))
                : (a = s - r * c[1]) >= 0 && (a = s - r * (1 - c[1])) <= 0 && (a = 0),
              (a *= e.axisExpandWidth / u) ? CO(a, i, o, 'all') : (l = 'none')
          else {
            var d = i[1] - i[0]
            ;((i = [PO(0, (o[1] * s) / d - d / 2)])[1] = LO(o[1], i[0] + d)), (i[0] = i[1] - d)
          }
          return { axisExpandWindow: i, behavior: l }
        }),
        t
      )
    })()
  function BO(t, e) {
    return LO(PO(t, e[0]), e[1])
  }
  function VO(t, e) {
    var n = e.layoutLength / (e.axisCount - 1)
    return { position: n * t, axisNameAvailableWidth: n, axisLabelShow: !0 }
  }
  function GO(t, e) {
    var n,
      i,
      r = e.layoutLength,
      o = e.axisExpandWidth,
      a = e.axisCount,
      s = e.axisCollapseWidth,
      l = e.winInnerIndices,
      u = s,
      c = !1
    return (
      t < l[0] ? ((n = t * s), (i = s)) : t <= l[1] ? ((n = e.axisExpandWindow0Pos + t * o - e.axisExpandWindow[0]), (u = o), (c = !0)) : ((n = r - (a - 1 - t) * s), (i = s)),
      { position: n, axisNameAvailableWidth: u, axisLabelShow: c, nameTruncateMaxWidth: i }
    )
  }
  var FO = {
      create: function (t, e) {
        var n = []
        return (
          t.eachComponent('parallel', function (i, r) {
            var o = new EO(i, t, e)
            ;(o.name = 'parallel_' + r), o.resize(i, e), (i.coordinateSystem = o), (o.model = i), n.push(o)
          }),
          t.eachSeries(function (t) {
            if ('parallel' === t.get('coordinateSystem')) {
              var e = t.getReferringComponents('parallel', ha).models[0]
              t.coordinateSystem = e.coordinateSystem
            }
          }),
          n
        )
      }
    },
    WO = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.activeIntervals = []), n
      }
      return (
        n(e, t),
        (e.prototype.getAreaSelectStyle = function () {
          return Da([
            ['fill', 'color'],
            ['lineWidth', 'borderWidth'],
            ['stroke', 'borderColor'],
            ['width', 'width'],
            ['opacity', 'opacity']
          ])(this.getModel('areaSelectStyle'))
        }),
        (e.prototype.setActiveIntervals = function (t) {
          var e = (this.activeIntervals = T(t))
          if (e) for (var n = e.length - 1; n >= 0; n--) xo(e[n])
        }),
        (e.prototype.getActiveState = function (t) {
          var e = this.activeIntervals
          if (!e.length) return 'normal'
          if (null == t || isNaN(+t)) return 'inactive'
          if (1 === e.length) {
            var n = e[0]
            if (n[0] <= t && t <= n[1]) return 'active'
          } else for (var i = 0, r = e.length; i < r; i++) if (e[i][0] <= t && t <= e[i][1]) return 'active'
          return 'inactive'
        }),
        e
      )
    })(Qp)
  R(WO, nw)
  var HO = !0,
    UO = Math.min,
    YO = Math.max,
    XO = Math.pow,
    ZO = 'globalPan',
    jO = { w: [0, 0], e: [0, 1], n: [1, 0], s: [1, 1] },
    qO = { w: 'ew', e: 'ew', n: 'ns', s: 'ns', ne: 'nesw', sw: 'nesw', nw: 'nwse', se: 'nwse' },
    KO = { brushStyle: { lineWidth: 2, stroke: tf.color.backgroundTint, fill: tf.color.borderTint }, transformable: !0, brushMode: 'single', removeOnClick: !1 },
    $O = 0,
    JO = (function (t) {
      function e(e) {
        var n = t.call(this) || this
        return (
          (n._track = []),
          (n._covers = []),
          (n._handlers = {}),
          (n._zr = e),
          (n.group = new to()),
          (n._uid = 'brushController_' + $O++),
          z(
            IR,
            function (t, e) {
              this._handlers[e] = W(t, this)
            },
            n
          ),
          n
        )
      }
      return (
        n(e, t),
        (e.prototype.enableBrush = function (t) {
          return this._brushType && this._doDisableBrush(), t.brushType && this._doEnableBrush(t), this
        }),
        (e.prototype._doEnableBrush = function (t) {
          var e = this._zr
          this._enableGlobalPan ||
            (function (t, e, n) {
              CD(t)[e] = n
            })(e, ZO, this._uid),
            z(this._handlers, function (t, n) {
              e.on(n, t)
            }),
            (this._brushType = t.brushType),
            (this._brushOption = C(T(KO), t, !0))
        }),
        (e.prototype._doDisableBrush = function () {
          var t = this._zr
          !(function (t, e, n) {
            var i = CD(t)
            i[e] === n && (i[e] = null)
          })(t, ZO, this._uid),
            z(this._handlers, function (e, n) {
              t.off(n, e)
            }),
            (this._brushType = this._brushOption = null)
        }),
        (e.prototype.setPanels = function (t) {
          if (t && t.length) {
            var e = (this._panels = {})
            z(t, function (t) {
              e[t.panelId] = T(t)
            })
          } else this._panels = null
          return this
        }),
        (e.prototype.mount = function (t) {
          ;(t = t || {}), (this._enableGlobalPan = t.enableGlobalPan)
          var e = this.group
          return (
            this._zr.add(e),
            e.attr({ x: t.x || 0, y: t.y || 0, rotation: t.rotation || 0, scaleX: t.scaleX || 1, scaleY: t.scaleY || 1 }),
            (this._transform = e.getLocalTransform()),
            this
          )
        }),
        (e.prototype.updateCovers = function (t) {
          t = E(t, function (t) {
            return C(T(KO), t, !0)
          })
          var e = this._covers,
            n = (this._covers = []),
            i = this,
            r = this._creatingCover
          return (
            new f_(
              e,
              t,
              function (t, e) {
                return o(t.__brushOption, e)
              },
              o
            )
              .add(a)
              .update(a)
              .remove(function (t) {
                e[t] !== r && i.group.remove(e[t])
              })
              .execute(),
            this
          )
          function o(t, e) {
            return (null != t.id ? t.id : '\0-brush-index-' + e) + '-' + t.brushType
          }
          function a(o, a) {
            var s = t[o]
            if (null != a && e[a] === r) n[o] = e[a]
            else {
              var l = (n[o] = null != a ? ((e[a].__brushOption = s), e[a]) : tR(i, QO(i, s)))
              iR(i, l)
            }
          }
        }),
        (e.prototype.unmount = function () {
          return this.enableBrush(!1), sR(this), this._zr.remove(this.group), this
        }),
        (e.prototype.dispose = function () {
          this.unmount(), this.off()
        }),
        e
      )
    })(qt)
  function QO(t, e) {
    var n = CR[e.brushType].createCover(t, e)
    return (n.__brushOption = e), nR(n, e), t.group.add(n), n
  }
  function tR(t, e) {
    var n = rR(e)
    return n.endCreating && (n.endCreating(t, e), nR(e, e.__brushOption)), e
  }
  function eR(t, e) {
    var n = e.__brushOption
    rR(e).updateCoverShape(t, e, n.range, n)
  }
  function nR(t, e) {
    var n = e.z
    null == n && (n = 1e4),
      t.traverse(function (t) {
        ;(t.z = n), (t.z2 = n)
      })
  }
  function iR(t, e) {
    rR(e).updateCommon(t, e), eR(t, e)
  }
  function rR(t) {
    return CR[t.__brushOption.brushType]
  }
  function oR(t, e, n) {
    var i,
      r = t._panels
    if (!r) return HO
    var o = t._transform
    return (
      z(r, function (t) {
        t.isTargetByCursor(e, n, o) && (i = t)
      }),
      i
    )
  }
  function aR(t, e) {
    var n = t._panels
    if (!n) return HO
    var i = e.__brushOption.panelId
    return null != i ? n[i] : HO
  }
  function sR(t) {
    var e = t._covers,
      n = e.length
    return (
      z(
        e,
        function (e) {
          t.group.remove(e)
        },
        t
      ),
      (e.length = 0),
      !!n
    )
  }
  function lR(t, e) {
    var n = E(t._covers, function (t) {
      var e = t.__brushOption,
        n = T(e.range)
      return { brushType: e.brushType, panelId: e.panelId, range: n }
    })
    t.trigger('brush', { areas: n, isEnd: !!e.isEnd, removeOnClick: !!e.removeOnClick })
  }
  function uR(t) {
    var e = t.length - 1
    return e < 0 && (e = 0), [t[0], t[e]]
  }
  function cR(t, e, n, i) {
    var r = new to()
    return (
      r.add(new xl({ name: 'main', style: fR(n), silent: !0, draggable: !0, cursor: 'move', drift: H(vR, t, e, r, ['n', 's', 'w', 'e']), ondragend: H(lR, e, { isEnd: !0 }) })),
      z(i, function (n) {
        r.add(new xl({ name: n.join(''), style: { opacity: 0 }, draggable: !0, silent: !0, invisible: !0, drift: H(vR, t, e, r, n), ondragend: H(lR, e, { isEnd: !0 }) }))
      }),
      r
    )
  }
  function hR(t, e, n, i) {
    var r = i.brushStyle.lineWidth || 0,
      o = YO(r, 6),
      a = n[0][0],
      s = n[1][0],
      l = a - r / 2,
      u = s - r / 2,
      c = n[0][1],
      h = n[1][1],
      d = c - o + r / 2,
      p = h - o + r / 2,
      f = c - a,
      g = h - s,
      y = f + r,
      v = g + r
    pR(t, e, 'main', a, s, f, g),
      i.transformable &&
        (pR(t, e, 'w', l, u, o, v),
        pR(t, e, 'e', d, u, o, v),
        pR(t, e, 'n', l, u, y, o),
        pR(t, e, 's', l, p, y, o),
        pR(t, e, 'nw', l, u, o, o),
        pR(t, e, 'ne', d, u, o, o),
        pR(t, e, 'sw', l, p, o, o),
        pR(t, e, 'se', d, p, o, o))
  }
  function dR(t, e) {
    var n = e.__brushOption,
      i = n.transformable,
      r = e.childAt(0)
    r.useStyle(fR(n)),
      r.attr({ silent: !i, cursor: i ? 'move' : 'default' }),
      z([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (n) {
        var r = e.childOfName(n.join('')),
          o =
            1 === n.length
              ? yR(t, n[0])
              : (function (t, e) {
                  var n = [yR(t, e[0]), yR(t, e[1])]
                  return ('e' === n[0] || 'w' === n[0]) && n.reverse(), n.join('')
                })(t, n)
        r && r.attr({ silent: !i, invisible: !i, cursor: i ? qO[o] + '-resize' : null })
      })
  }
  function pR(t, e, n, i, r, o, a) {
    var s = e.childOfName(n)
    s &&
      s.setShape(
        (function (t) {
          var e = UO(t[0][0], t[1][0]),
            n = UO(t[0][1], t[1][1]),
            i = YO(t[0][0], t[1][0]),
            r = YO(t[0][1], t[1][1])
          return { x: e, y: n, width: i - e, height: r - n }
        })(
          _R(t, e, [
            [i, r],
            [i + o, r + a]
          ])
        )
      )
  }
  function fR(t) {
    return k({ strokeNoScale: !0 }, t.brushStyle)
  }
  function gR(t, e, n, i) {
    var r = [UO(t, n), UO(e, i)],
      o = [YO(t, n), YO(e, i)]
    return [
      [r[0], o[0]],
      [r[1], o[1]]
    ]
  }
  function yR(t, e) {
    var n = Mh(
      { w: 'left', e: 'right', n: 'top', s: 'bottom' }[e],
      (function (t) {
        return wh(t.group)
      })(t)
    )
    return { left: 'w', right: 'e', top: 'n', bottom: 's' }[n]
  }
  function vR(t, e, n, i, r, o) {
    var a = n.__brushOption,
      s = t.toRectRange(a.range),
      l = xR(e, r, o)
    z(i, function (t) {
      var e = jO[t]
      s[e[0]][e[1]] += l[e[0]]
    }),
      (a.range = t.fromRectRange(gR(s[0][0], s[1][0], s[0][1], s[1][1]))),
      iR(e, n),
      lR(e, { isEnd: !1 })
  }
  function mR(t, e, n, i) {
    var r = e.__brushOption.range,
      o = xR(t, n, i)
    z(r, function (t) {
      ;(t[0] += o[0]), (t[1] += o[1])
    }),
      iR(t, e),
      lR(t, { isEnd: !1 })
  }
  function xR(t, e, n) {
    var i = t.group,
      r = i.transformCoordToLocal(e, n),
      o = i.transformCoordToLocal(0, 0)
    return [r[0] - o[0], r[1] - o[1]]
  }
  function _R(t, e, n) {
    var i = aR(t, e)
    return i && i !== HO ? i.clipPath(n, t._transform) : T(n)
  }
  function bR(t) {
    var e = t.event
    e.preventDefault && e.preventDefault()
  }
  function wR(t, e, n) {
    return t.childOfName('main').contain(e, n)
  }
  function SR(t, e, n, i) {
    var r,
      o = t._creatingCover,
      a = t._creatingPanel,
      s = t._brushOption
    if (
      (t._track.push(n.slice()),
      (function (t) {
        var e = t._track
        if (!e.length) return !1
        var n = e[e.length - 1],
          i = e[0],
          r = n[0] - i[0],
          o = n[1] - i[1]
        return XO(r * r + o * o, 0.5) > 6
      })(t) || o)
    ) {
      if (a && !o) {
        'single' === s.brushMode && sR(t)
        var l = T(s)
        ;(l.brushType = MR(l.brushType, a)), (l.panelId = a === HO ? null : a.panelId), (o = t._creatingCover = QO(t, l)), t._covers.push(o)
      }
      if (o) {
        var u = CR[MR(t._brushType, a)]
        ;(o.__brushOption.range = u.getCreatingRange(_R(t, o, t._track))), i && (tR(t, o), u.updateCommon(t, o)), eR(t, o), (r = { isEnd: i })
      }
    } else i && 'single' === s.brushMode && s.removeOnClick && oR(t, e, n) && sR(t) && (r = { isEnd: i, removeOnClick: !0 })
    return r
  }
  function MR(t, e) {
    return 'auto' === t ? e.defaultBrushType : t
  }
  var IR = {
    mousedown: function (t) {
      if (this._dragging) TR(this, t)
      else if (!t.target || !t.target.draggable) {
        bR(t)
        var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY)
        ;(this._creatingCover = null), (this._creatingPanel = oR(this, t, e)) && ((this._dragging = !0), (this._track = [e.slice()]))
      }
    },
    mousemove: function (t) {
      var e = t.offsetX,
        n = t.offsetY,
        i = this.group.transformCoordToLocal(e, n)
      if (
        ((function (t, e, n) {
          if (
            t._brushType &&
            !(function (t, e, n) {
              var i = t._zr
              return e < 0 || e > i.getWidth() || n < 0 || n > i.getHeight()
            })(t, e.offsetX, e.offsetY)
          ) {
            var i = t._zr,
              r = t._covers,
              o = oR(t, e, n)
            if (!t._dragging)
              for (var a = 0; a < r.length; a++) {
                var s = r[a].__brushOption
                if (o && (o === HO || s.panelId === o.panelId) && CR[s.brushType].contain(r[a], n[0], n[1])) return
              }
            o && i.setCursorStyle('crosshair')
          }
        })(this, t, i),
        this._dragging)
      ) {
        bR(t)
        var r = SR(this, t, i, !1)
        r && lR(this, r)
      }
    },
    mouseup: function (t) {
      TR(this, t)
    }
  }
  function TR(t, e) {
    if (t._dragging) {
      bR(e)
      var n = e.offsetX,
        i = e.offsetY,
        r = t.group.transformCoordToLocal(n, i),
        o = SR(t, e, r, !0)
      ;(t._dragging = !1), (t._track = []), (t._creatingCover = null), o && lR(t, o)
    }
  }
  var CR = {
    lineX: DR(0),
    lineY: DR(1),
    rect: {
      createCover: function (t, e) {
        function n(t) {
          return t
        }
        return cR({ toRectRange: n, fromRectRange: n }, t, e, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']])
      },
      getCreatingRange: function (t) {
        var e = uR(t)
        return gR(e[1][0], e[1][1], e[0][0], e[0][1])
      },
      updateCoverShape: function (t, e, n, i) {
        hR(t, e, n, i)
      },
      updateCommon: dR,
      contain: wR
    },
    polygon: {
      createCover: function (t, e) {
        var n = new to()
        return n.add(new Tc({ name: 'main', style: fR(e), silent: !0 })), n
      },
      getCreatingRange: function (t) {
        return t
      },
      endCreating: function (t, e) {
        e.remove(e.childAt(0)), e.add(new Mc({ name: 'main', draggable: !0, drift: H(mR, t, e), ondragend: H(lR, t, { isEnd: !0 }) }))
      },
      updateCoverShape: function (t, e, n, i) {
        e.childAt(0).setShape({ points: _R(t, e, n) })
      },
      updateCommon: dR,
      contain: wR
    }
  }
  function DR(t) {
    return {
      createCover: function (e, n) {
        return cR(
          {
            toRectRange: function (e) {
              var n = [e, [0, 100]]
              return t && n.reverse(), n
            },
            fromRectRange: function (e) {
              return e[t]
            }
          },
          e,
          n,
          [
            [['w'], ['e']],
            [['n'], ['s']]
          ][t]
        )
      },
      getCreatingRange: function (e) {
        var n = uR(e)
        return [UO(n[0][t], n[1][t]), YO(n[0][t], n[1][t])]
      },
      updateCoverShape: function (e, n, i, r) {
        var o,
          a = aR(e, n)
        if (a !== HO && a.getLinearBrushOtherExtent) o = a.getLinearBrushOtherExtent(t)
        else {
          var s = e._zr
          o = [0, [s.getWidth(), s.getHeight()][1 - t]]
        }
        var l = [i, o]
        t && l.reverse(), hR(e, n, l, r)
      },
      updateCommon: dR,
      contain: wR
    }
  }
  function AR(t) {
    return (
      (t = PR(t)),
      function (e) {
        return Ch(e, t)
      }
    )
  }
  function kR(t, e) {
    return (
      (t = PR(t)),
      function (n) {
        var i = null != e ? e : n,
          r = i ? t.width : t.height,
          o = i ? t.x : t.y
        return [o, o + (r || 0)]
      }
    )
  }
  function LR(t, e, n) {
    var i = PR(t)
    return function (t, r) {
      return i.contain(r[0], r[1]) && !kD(t, e, n)
    }
  }
  function PR(t) {
    return He.create(t)
  }
  var OR = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.init = function (e, n) {
        t.prototype.init.apply(this, arguments), (this._brushController = new JO(n.getZr())).on('brush', W(this._onBrush, this))
      }),
      (e.prototype.render = function (t, e, n, i) {
        if (
          !(function (t, e, n) {
            return n && 'axisAreaSelect' === n.type && e.findComponents({ mainType: 'parallelAxis', query: n })[0] === t
          })(t, e, i)
        ) {
          ;(this.axisModel = t), (this.api = n), this.group.removeAll()
          var r = this._axisGroup
          if (((this._axisGroup = new to()), this.group.add(this._axisGroup), t.get('show'))) {
            var o = (function (t, e) {
                return e.getComponent('parallel', t.get('parallelIndex'))
              })(t, e),
              a = o.coordinateSystem,
              s = t.getAreaSelectStyle(),
              l = s.width,
              u = t.axis.dim,
              c = A({ strokeContainThreshold: l }, a.getAxisLayout(u)),
              h = new mC(t, n, c)
            h.build(), this._axisGroup.add(h.group), this._refreshBrushController(c, s, t, o, l, n), Th(r, this._axisGroup, t)
          }
        }
      }),
      (e.prototype._refreshBrushController = function (t, e, n, i, r, o) {
        var a = n.axis.getExtent(),
          s = a[1] - a[0],
          l = Math.min(30, 0.1 * Math.abs(s)),
          u = He.create({ x: a[0], y: -r / 2, width: s, height: r })
        ;(u.x -= l),
          (u.width += 2 * l),
          this._brushController
            .mount({ enableGlobalPan: !0, rotation: t.rotation, x: t.position[0], y: t.position[1] })
            .setPanels([{ panelId: 'pl', clipPath: AR(u), isTargetByCursor: LR(u, o, i), getLinearBrushOtherExtent: kR(u, 0) }])
            .enableBrush({ brushType: 'lineX', brushStyle: e, removeOnClick: !0 })
            .updateCovers(
              (function (t) {
                var e = t.axis
                return E(t.activeIntervals, function (t) {
                  return { brushType: 'lineX', panelId: 'pl', range: [e.dataToCoord(t[0], !0), e.dataToCoord(t[1], !0)] }
                })
              })(n)
            )
      }),
      (e.prototype._onBrush = function (t) {
        var e = t.areas,
          n = this.axisModel,
          i = n.axis,
          r = E(e, function (t) {
            return [i.coordToData(t.range[0], !0), i.coordToData(t.range[1], !0)]
          })
        ;(!n.option.realtime === t.isEnd || t.removeOnClick) && this.api.dispatchAction({ type: 'axisAreaSelect', parallelAxisId: n.id, intervals: r })
      }),
      (e.prototype.dispose = function () {
        this._brushController.dispose()
      }),
      (e.type = 'parallelAxis'),
      e
    )
  })(Ky)
  var RR = { type: 'axisAreaSelect', event: 'axisAreaSelected' }
  var NR = { type: 'value', areaSelectStyle: { width: 20, borderWidth: 1, borderColor: 'rgba(160,197,232)', color: 'rgba(160,197,232)', opacity: 0.3 }, realtime: !0, z: 10 }
  function zR(t) {
    t.registerComponentView(wO),
      t.registerComponentModel(IO),
      t.registerCoordinateSystem('parallel', FO),
      t.registerPreprocessor(bO),
      t.registerComponentModel(WO),
      t.registerComponentView(OR),
      XT(t, 'parallel', WO, NR),
      (function (t) {
        t.registerAction(RR, function (t, e) {
          e.eachComponent({ mainType: 'parallelAxis', query: t }, function (e) {
            e.axis.model.setActiveIntervals(t.intervals)
          })
        }),
          t.registerAction('parallelAxisExpand', function (t, e) {
            e.eachComponent({ mainType: 'parallel', query: t }, function (e) {
              e.setAxisExpand(t)
            })
          })
      })(t)
  }
  var ER = function () {
      ;(this.x1 = 0), (this.y1 = 0), (this.x2 = 0), (this.y2 = 0), (this.cpx1 = 0), (this.cpy1 = 0), (this.cpx2 = 0), (this.cpy2 = 0), (this.extent = 0)
    },
    BR = (function (t) {
      function e(e) {
        return t.call(this, e) || this
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new ER()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = e.extent
          t.moveTo(e.x1, e.y1),
            t.bezierCurveTo(e.cpx1, e.cpy1, e.cpx2, e.cpy2, e.x2, e.y2),
            'vertical' === e.orient
              ? (t.lineTo(e.x2 + n, e.y2), t.bezierCurveTo(e.cpx2 + n, e.cpy2, e.cpx1 + n, e.cpy1, e.x1 + n, e.y1))
              : (t.lineTo(e.x2, e.y2 + n), t.bezierCurveTo(e.cpx2, e.cpy2 + n, e.cpx1, e.cpy1 + n, e.x1, e.y1 + n)),
            t.closePath()
        }),
        (e.prototype.highlight = function () {
          du(this)
        }),
        (e.prototype.downplay = function () {
          pu(this)
        }),
        e
      )
    })(sl),
    VR = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n._mainGroup = new to()), (n._focusAdjacencyDisabled = !1), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e) {
          ;(this._controller = new LD(e.getZr())), (this._controllerHost = { target: this.group }), this.group.add(this._mainGroup)
        }),
        (e.prototype.render = function (t, e, n) {
          var i = this,
            r = t.getGraph(),
            o = this._mainGroup,
            a = t.layoutInfo,
            s = a.width,
            l = a.height,
            u = t.getData(),
            c = t.getData('edge'),
            h = t.get('orient')
          ;(this._model = t),
            o.removeAll(),
            (o.x = a.x),
            (o.y = a.y),
            this._updateViewCoordSys(t, n),
            HD(t, n, o, this._controller, this._controllerHost, null),
            r.eachEdge(function (e) {
              var n = new BR(),
                i = zl(n)
              ;(i.dataIndex = e.dataIndex), (i.seriesIndex = t.seriesIndex), (i.dataType = 'edge')
              var r,
                a,
                u,
                d,
                p,
                f,
                g,
                y,
                v = e.getModel(),
                m = v.getModel('lineStyle'),
                x = m.get('curveness'),
                _ = e.node1.getLayout(),
                b = e.node1.getModel(),
                w = b.get('localX'),
                S = b.get('localY'),
                M = e.node2.getLayout(),
                I = e.node2.getModel(),
                T = I.get('localX'),
                C = I.get('localY'),
                D = e.getLayout()
              ;(n.shape.extent = Math.max(1, D.dy)),
                (n.shape.orient = h),
                'vertical' === h
                  ? ((r = (null != w ? w * s : _.x) + D.sy),
                    (a = (null != S ? S * l : _.y) + _.dy),
                    (u = (null != T ? T * s : M.x) + D.ty),
                    (p = r),
                    (f = a * (1 - x) + (d = null != C ? C * l : M.y) * x),
                    (g = u),
                    (y = a * x + d * (1 - x)))
                  : ((r = (null != w ? w * s : _.x) + _.dx),
                    (a = (null != S ? S * l : _.y) + D.sy),
                    (p = r * (1 - x) + (u = null != T ? T * s : M.x) * x),
                    (f = a),
                    (g = r * x + u * (1 - x)),
                    (y = d = (null != C ? C * l : M.y) + D.ty)),
                n.setShape({ x1: r, y1: a, x2: u, y2: d, cpx1: p, cpy1: f, cpx2: g, cpy2: y }),
                n.useStyle(m.getItemStyle()),
                GR(n.style, h, e)
              var A = '' + v.get('value'),
                k = Jh(v, 'edgeLabel')
              $h(n, k, {
                labelFetcher: {
                  getFormattedLabel: function (e, n, i, r, o, a) {
                    return t.getFormattedLabel(e, n, 'edge', r, ot(o, k.normal && k.normal.get('formatter'), A), a)
                  }
                },
                labelDataIndex: e.dataIndex,
                defaultText: A
              }),
                n.setTextConfig({ position: 'inside' })
              var L = v.getModel('emphasis')
              ku(n, v, 'lineStyle', function (t) {
                var n = t.getItemStyle()
                return GR(n, h, e), n
              }),
                o.add(n),
                c.setItemGraphicEl(e.dataIndex, n)
              var P = L.get('focus')
              Tu(n, 'adjacency' === P ? e.getAdjacentDataIndices() : 'trajectory' === P ? e.getTrajectoryDataIndices() : P, L.get('blurScope'), L.get('disabled'))
            }),
            r.eachNode(function (e) {
              var n = e.getLayout(),
                i = e.getModel(),
                r = i.get('localX'),
                a = i.get('localY'),
                c = i.getModel('emphasis'),
                h = i.get(['itemStyle', 'borderRadius']) || 0,
                d = new xl({
                  shape: { x: null != r ? r * s : n.x, y: null != a ? a * l : n.y, width: n.dx, height: n.dy, r: h },
                  style: i.getModel('itemStyle').getItemStyle(),
                  z2: 10
                })
              $h(d, Jh(i), {
                labelFetcher: {
                  getFormattedLabel: function (e, n) {
                    return t.getFormattedLabel(e, n, 'node')
                  }
                },
                labelDataIndex: e.dataIndex,
                defaultText: e.id
              }),
                (d.disableLabelAnimation = !0),
                d.setStyle('fill', e.getVisual('color')),
                d.setStyle('decal', e.getVisual('style').decal),
                ku(d, i),
                o.add(d),
                u.setItemGraphicEl(e.dataIndex, d),
                (zl(d).dataType = 'node')
              var p = c.get('focus')
              Tu(d, 'adjacency' === p ? e.getAdjacentDataIndices() : 'trajectory' === p ? e.getTrajectoryDataIndices() : p, c.get('blurScope'), c.get('disabled'))
            }),
            u.eachItemGraphicEl(function (e, r) {
              u.getItemModel(r).get('draggable') &&
                ((e.drift = function (e, o) {
                  ;(i._focusAdjacencyDisabled = !0),
                    (this.shape.x += e),
                    (this.shape.y += o),
                    this.dirty(),
                    n.dispatchAction({ type: 'dragNode', seriesId: t.id, dataIndex: u.getRawIndex(r), localX: this.shape.x / s, localY: this.shape.y / l })
                }),
                (e.ondragend = function () {
                  i._focusAdjacencyDisabled = !1
                }),
                (e.draggable = !0),
                (e.cursor = 'move'))
            }),
            !this._data &&
              t.isAnimationEnabled() &&
              o.setClipPath(
                (function (t, e, n) {
                  var i = new xl({ shape: { x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20 } })
                  return eh(i, { shape: { width: t.width + 20 } }, e, n), i
                })(o.getBoundingRect(), t, function () {
                  o.removeClipPath()
                })
              ),
            (this._data = t.getData())
        }),
        (e.prototype.dispose = function () {
          this._controller && this._controller.dispose(), (this._controllerHost = null)
        }),
        (e.prototype._updateViewCoordSys = function (t, e) {
          var n = t.layoutInfo,
            i = n.width,
            r = n.height,
            o = (t.coordinateSystem = new KA(null, { api: e, ecModel: t.ecModel }))
          ;(o.zoomLimit = t.get('scaleLimit')),
            o.setBoundingRect(0, 0, i, r),
            o.setCenter(t.get('center')),
            o.setZoom(t.get('zoom')),
            this._controllerHost.target.attr({ x: o.x, y: o.y, scaleX: o.scaleX, scaleY: o.scaleY })
        }),
        (e.type = 'sankey'),
        e
      )
    })(tv)
  function GR(t, e, n) {
    switch (t.fill) {
      case 'source':
        ;(t.fill = n.node1.getVisual('color')), (t.decal = n.node1.getVisual('style').decal)
        break
      case 'target':
        ;(t.fill = n.node2.getVisual('color')), (t.decal = n.node2.getVisual('style').decal)
        break
      case 'gradient':
        var i = n.node1.getVisual('color'),
          r = n.node2.getVisual('color')
        X(i) &&
          X(r) &&
          (t.fill = new Bc(0, 0, +('horizontal' === e), +('vertical' === e), [
            { color: i, offset: 0 },
            { color: r, offset: 1 }
          ]))
    }
  }
  var FR = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.getInitialData = function (t, e) {
        var n = t.edges || t.links || [],
          i = t.data || t.nodes || [],
          r = t.levels || []
        this.levelModels = []
        for (var o = this.levelModels, a = 0; a < r.length; a++) null != r[a].depth && r[a].depth >= 0 && (o[r[a].depth] = new wd(r[a], this, e))
        var s = XP(i, n, this, !0, function (t, e) {
          t.wrapMethod('getItemModel', function (t, e) {
            var n = t.parentModel,
              i = n.getData().getItemLayout(e)
            if (i) {
              var r = i.depth,
                o = n.levelModels[r]
              o && (t.parentModel = o)
            }
            return t
          }),
            e.wrapMethod('getItemModel', function (t, e) {
              var n = t.parentModel,
                i = n.getGraph().getEdgeByIndex(e).node1.getLayout()
              if (i) {
                var r = i.depth,
                  o = n.levelModels[r]
                o && (t.parentModel = o)
              }
              return t
            })
        })
        return s.data
      }),
      (e.prototype.setNodePosition = function (t, e) {
        var n = (this.option.data || this.option.nodes)[t]
        ;(n.localX = e[0]), (n.localY = e[1])
      }),
      (e.prototype.setCenter = function (t) {
        this.option.center = t
      }),
      (e.prototype.setZoom = function (t) {
        this.option.zoom = t
      }),
      (e.prototype.getGraph = function () {
        return this.getData().graph
      }),
      (e.prototype.getEdgeData = function () {
        return this.getGraph().edgeData
      }),
      (e.prototype.formatTooltip = function (t, e, n) {
        function i(t) {
          return isNaN(t) || null == t
        }
        if ('edge' === n) {
          var r = this.getDataParams(t, n),
            o = r.data,
            a = r.value
          return Ty('nameValue', { name: o.source + ' -- ' + o.target, value: a, noValue: i(a) })
        }
        var s = this.getGraph().getNodeByIndex(t).getLayout().value,
          l = this.getDataParams(t, n).data.name
        return Ty('nameValue', { name: null != l ? l + '' : null, value: s, noValue: i(s) })
      }),
      (e.prototype.optionUpdated = function () {}),
      (e.prototype.getDataParams = function (e, n) {
        var i = t.prototype.getDataParams.call(this, e, n)
        if (null == i.value && 'node' === n) {
          var r = this.getGraph().getNodeByIndex(e).getLayout().value
          i.value = r
        }
        return i
      }),
      (e.type = 'series.sankey'),
      (e.layoutMode = 'box'),
      (e.defaultOption = {
        z: 2,
        coordinateSystemUsage: 'box',
        left: '5%',
        top: '5%',
        right: '20%',
        bottom: '5%',
        orient: 'horizontal',
        nodeWidth: 20,
        nodeGap: 8,
        draggable: !0,
        layoutIterations: 32,
        roam: !1,
        roamTrigger: 'global',
        center: null,
        zoom: 1,
        label: { show: !0, position: 'right', fontSize: 12 },
        edgeLabel: { show: !1, fontSize: 12 },
        levels: [],
        nodeAlign: 'justify',
        lineStyle: { color: tf.color.neutral50, opacity: 0.2, curveness: 0.5 },
        emphasis: { label: { show: !0 }, lineStyle: { opacity: 0.5 } },
        select: { itemStyle: { borderColor: tf.color.primary } },
        animationEasing: 'linear',
        animationDuration: 1e3
      }),
      e
    )
  })(Wy)
  function WR(t, e) {
    t.eachSeriesByType('sankey', function (t) {
      var n = t.get('nodeWidth'),
        i = t.get('nodeGap'),
        r = Xp(t, e).refContainer,
        o = Hp(t.getBoxLayoutParams(), r)
      t.layoutInfo = o
      var a = o.width,
        s = o.height,
        l = t.getGraph(),
        u = l.nodes,
        c = l.edges
      !(function (t) {
        z(t, function (t) {
          var e = JR(t.outEdges, $R),
            n = JR(t.inEdges, $R),
            i = t.getValue() || 0,
            r = Math.max(e, n, i)
          t.setLayout({ value: r }, !0)
        })
      })(u),
        (function (t, e, n, i, r, o, a, s, l) {
          ;(function (t, e, n, i, r, o, a) {
            for (var s = [], l = [], u = [], c = [], h = 0, d = 0; d < e.length; d++) s[d] = 1
            for (d = 0; d < t.length; d++) (l[d] = t[d].inEdges.length), 0 === l[d] && u.push(t[d])
            var p = -1
            for (; u.length; ) {
              for (var f = 0; f < u.length; f++) {
                var g = u[f],
                  y = g.hostGraph.data.getRawDataItem(g.dataIndex),
                  v = null != y.depth && y.depth >= 0
                v && y.depth > p && (p = y.depth), g.setLayout({ depth: v ? y.depth : h }, !0), 'vertical' === o ? g.setLayout({ dy: n }, !0) : g.setLayout({ dx: n }, !0)
                for (var m = 0; m < g.outEdges.length; m++) {
                  var x = g.outEdges[m]
                  s[e.indexOf(x)] = 0
                  var _ = x.node2
                  0 == --l[t.indexOf(_)] && c.indexOf(_) < 0 && c.push(_)
                }
              }
              ++h, (u = c), (c = [])
            }
            for (d = 0; d < s.length; d++) if (1 === s[d]) throw new Error('Sankey is a DAG, the original data has cycle!')
            var b = p > h - 1 ? p : h - 1
            a &&
              'left' !== a &&
              (function (t, e, n, i) {
                if ('right' === e) {
                  for (var r = [], o = t, a = 0; o.length; ) {
                    for (var s = 0; s < o.length; s++) {
                      var l = o[s]
                      l.setLayout({ skNodeHeight: a }, !0)
                      for (var u = 0; u < l.inEdges.length; u++) {
                        var c = l.inEdges[u]
                        r.indexOf(c.node1) < 0 && r.push(c.node1)
                      }
                    }
                    ;(o = r), (r = []), ++a
                  }
                  z(t, function (t) {
                    HR(t) || t.setLayout({ depth: Math.max(0, i - t.getLayout().skNodeHeight) }, !0)
                  })
                } else
                  'justify' === e &&
                    (function (t, e) {
                      z(t, function (t) {
                        HR(t) || t.outEdges.length || t.setLayout({ depth: e }, !0)
                      })
                    })(t, i)
              })(t, a, 0, b)
            var w = 'vertical' === o ? (r - n) / b : (i - n) / b
            !(function (t, e, n) {
              z(t, function (t) {
                var i = t.getLayout().depth * e
                'vertical' === n ? t.setLayout({ y: i }, !0) : t.setLayout({ x: i }, !0)
              })
            })(t, w, o)
          })(t, e, n, r, o, s, l),
            (function (t, e, n, i, r, o, a) {
              var s = (function (t, e) {
                var n = [],
                  i = 'vertical' === e ? 'y' : 'x',
                  r = ga(t, function (t) {
                    return t.getLayout()[i]
                  })
                return (
                  r.keys.sort(function (t, e) {
                    return t - e
                  }),
                  z(r.keys, function (t) {
                    n.push(r.buckets.get(t))
                  }),
                  n
                )
              })(t, a)
              ;(function (t, e, n, i, r, o) {
                var a = 1 / 0
                z(t, function (t) {
                  var e = t.length,
                    s = 0
                  z(t, function (t) {
                    s += t.getLayout().value
                  })
                  var l = 'vertical' === o ? (i - (e - 1) * r) / s : (n - (e - 1) * r) / s
                  l < a && (a = l)
                }),
                  z(t, function (t) {
                    z(t, function (t, e) {
                      var n = t.getLayout().value * a
                      'vertical' === o ? (t.setLayout({ x: e }, !0), t.setLayout({ dx: n }, !0)) : (t.setLayout({ y: e }, !0), t.setLayout({ dy: n }, !0))
                    })
                  }),
                  z(e, function (t) {
                    var e = +t.getValue() * a
                    t.setLayout({ dy: e }, !0)
                  })
              })(s, e, n, i, r, a),
                UR(s, r, n, i, a)
              for (var l = 1; o > 0; o--) YR(s, (l *= 0.99), a), UR(s, r, n, i, a), QR(s, l, a), UR(s, r, n, i, a)
            })(t, e, o, r, i, a, s),
            (function (t, e) {
              var n = 'vertical' === e ? 'x' : 'y'
              z(t, function (t) {
                t.outEdges.sort(function (t, e) {
                  return t.node2.getLayout()[n] - e.node2.getLayout()[n]
                }),
                  t.inEdges.sort(function (t, e) {
                    return t.node1.getLayout()[n] - e.node1.getLayout()[n]
                  })
              }),
                z(t, function (t) {
                  var e = 0,
                    n = 0
                  z(t.outEdges, function (t) {
                    t.setLayout({ sy: e }, !0), (e += t.getLayout().dy)
                  }),
                    z(t.inEdges, function (t) {
                      t.setLayout({ ty: n }, !0), (n += t.getLayout().dy)
                    })
                })
            })(t, s)
        })(
          u,
          c,
          n,
          i,
          a,
          s,
          0 !==
            V(u, function (t) {
              return 0 === t.getLayout().value
            }).length
            ? 0
            : t.get('layoutIterations'),
          t.get('orient'),
          t.get('nodeAlign')
        )
    })
  }
  function HR(t) {
    var e = t.hostGraph.data.getRawDataItem(t.dataIndex)
    return null != e.depth && e.depth >= 0
  }
  function UR(t, e, n, i, r) {
    var o = 'vertical' === r ? 'x' : 'y'
    z(t, function (t) {
      var a, s, l
      t.sort(function (t, e) {
        return t.getLayout()[o] - e.getLayout()[o]
      })
      for (var u = 0, c = t.length, h = 'vertical' === r ? 'dx' : 'dy', d = 0; d < c; d++)
        (l = u - (s = t[d]).getLayout()[o]) > 0 && ((a = s.getLayout()[o] + l), 'vertical' === r ? s.setLayout({ x: a }, !0) : s.setLayout({ y: a }, !0)),
          (u = s.getLayout()[o] + s.getLayout()[h] + e)
      if ((l = u - e - ('vertical' === r ? i : n)) > 0) {
        ;(a = s.getLayout()[o] - l), 'vertical' === r ? s.setLayout({ x: a }, !0) : s.setLayout({ y: a }, !0), (u = a)
        for (d = c - 2; d >= 0; --d)
          (l = (s = t[d]).getLayout()[o] + s.getLayout()[h] + e - u) > 0 && ((a = s.getLayout()[o] - l), 'vertical' === r ? s.setLayout({ x: a }, !0) : s.setLayout({ y: a }, !0)),
            (u = s.getLayout()[o])
      }
    })
  }
  function YR(t, e, n) {
    z(t.slice().reverse(), function (t) {
      z(t, function (t) {
        if (t.outEdges.length) {
          var i = JR(t.outEdges, XR, n) / JR(t.outEdges, $R)
          if (isNaN(i)) {
            var r = t.outEdges.length
            i = r ? JR(t.outEdges, ZR, n) / r : 0
          }
          if ('vertical' === n) {
            var o = t.getLayout().x + (i - KR(t, n)) * e
            t.setLayout({ x: o }, !0)
          } else {
            var a = t.getLayout().y + (i - KR(t, n)) * e
            t.setLayout({ y: a }, !0)
          }
        }
      })
    })
  }
  function XR(t, e) {
    return KR(t.node2, e) * t.getValue()
  }
  function ZR(t, e) {
    return KR(t.node2, e)
  }
  function jR(t, e) {
    return KR(t.node1, e) * t.getValue()
  }
  function qR(t, e) {
    return KR(t.node1, e)
  }
  function KR(t, e) {
    return 'vertical' === e ? t.getLayout().x + t.getLayout().dx / 2 : t.getLayout().y + t.getLayout().dy / 2
  }
  function $R(t) {
    return t.getValue()
  }
  function JR(t, e, n) {
    for (var i = 0, r = t.length, o = -1; ++o < r; ) {
      var a = +e(t[o], n)
      isNaN(a) || (i += a)
    }
    return i
  }
  function QR(t, e, n) {
    z(t, function (t) {
      z(t, function (t) {
        if (t.inEdges.length) {
          var i = JR(t.inEdges, jR, n) / JR(t.inEdges, $R)
          if (isNaN(i)) {
            var r = t.inEdges.length
            i = r ? JR(t.inEdges, qR, n) / r : 0
          }
          if ('vertical' === n) {
            var o = t.getLayout().x + (i - KR(t, n)) * e
            t.setLayout({ x: o }, !0)
          } else {
            var a = t.getLayout().y + (i - KR(t, n)) * e
            t.setLayout({ y: a }, !0)
          }
        }
      })
    })
  }
  function tN(t) {
    t.eachSeriesByType('sankey', function (t) {
      var e = t.getGraph(),
        n = e.nodes,
        i = e.edges
      if (n.length) {
        var r = 1 / 0,
          o = -1 / 0
        z(n, function (t) {
          var e = t.getLayout().value
          e < r && (r = e), e > o && (o = e)
        }),
          z(n, function (e) {
            var n = new hL({ type: 'color', mappingMethod: 'linear', dataExtent: [r, o], visual: t.get('color') }).mapValueToVisual(e.getLayout().value),
              i = e.getModel().get(['itemStyle', 'color'])
            null != i ? (e.setVisual('color', i), e.setVisual('style', { fill: i })) : (e.setVisual('color', n), e.setVisual('style', { fill: n }))
          })
      }
      i.length &&
        z(i, function (t) {
          var e = t.getModel().get('lineStyle')
          t.setVisual('style', e)
        })
    })
  }
  var eN = (function () {
      function t() {}
      return (
        (t.prototype._hasEncodeRule = function (t) {
          var e = this.getEncode()
          return e && null != e.get(t)
        }),
        (t.prototype.getInitialData = function (t, e) {
          var n,
            i,
            r = e.getComponent('xAxis', this.get('xAxisIndex')),
            o = e.getComponent('yAxis', this.get('yAxisIndex')),
            a = r.get('type'),
            s = o.get('type')
          'category' === a
            ? ((t.layout = 'horizontal'), (n = r.getOrdinalMeta()), (i = !this._hasEncodeRule('x')))
            : 'category' === s
              ? ((t.layout = 'vertical'), (n = o.getOrdinalMeta()), (i = !this._hasEncodeRule('y')))
              : (t.layout = t.layout || 'horizontal')
          var l = ['x', 'y'],
            u = 'horizontal' === t.layout ? 0 : 1,
            c = (this._baseAxisDim = l[u]),
            h = l[1 - u],
            d = [r, o],
            p = d[u].get('type'),
            f = d[1 - u].get('type'),
            g = t.data
          if (g && i) {
            var y = []
            z(g, function (t, e) {
              var n
              U(t) ? ((n = t.slice()), t.unshift(e)) : U(t.value) ? (((n = A({}, t)).value = n.value.slice()), t.value.unshift(e)) : (n = t), y.push(n)
            }),
              (t.data = y)
          }
          var v = this.defaultValueDimensions,
            m = [
              { name: c, type: v_(p), ordinalMeta: n, otherDims: { tooltip: !1, itemName: 0 }, dimsDef: ['base'] },
              { name: h, type: v_(f), dimsDef: v.slice() }
            ]
          return IT(this, { coordDimensions: m, dimensionsCount: v.length + 1, encodeDefaulter: H(Sf, m, this) })
        }),
        (t.prototype.getBaseAxis = function () {
          var t = this._baseAxisDim
          return this.ecModel.getComponent(t + 'Axis', this.get(t + 'AxisIndex')).axis
        }),
        t
      )
    })(),
    nN = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (
          (n.type = e.type),
          (n.defaultValueDimensions = [
            { name: 'min', defaultTooltip: !0 },
            { name: 'Q1', defaultTooltip: !0 },
            { name: 'median', defaultTooltip: !0 },
            { name: 'Q3', defaultTooltip: !0 },
            { name: 'max', defaultTooltip: !0 }
          ]),
          (n.visualDrawType = 'stroke'),
          n
        )
      }
      return (
        n(e, t),
        (e.type = 'series.boxplot'),
        (e.dependencies = ['xAxis', 'yAxis', 'grid']),
        (e.defaultOption = {
          z: 2,
          coordinateSystem: 'cartesian2d',
          legendHoverLink: !0,
          layout: null,
          boxWidth: [7, 50],
          itemStyle: { color: tf.color.neutral00, borderWidth: 1 },
          emphasis: { scale: !0, itemStyle: { borderWidth: 2, shadowBlur: 5, shadowOffsetX: 1, shadowOffsetY: 1, shadowColor: tf.color.shadow } },
          animationDuration: 800
        }),
        e
      )
    })(Wy)
  R(nN, eN, !0)
  var iN = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          var i = t.getData(),
            r = this.group,
            o = this._data
          this._data || r.removeAll()
          var a = 'horizontal' === t.get('layout') ? 1 : 0
          i
            .diff(o)
            .add(function (t) {
              if (i.hasValue(t)) {
                var e = aN(i.getItemLayout(t), i, t, a, !0)
                i.setItemGraphicEl(t, e), r.add(e)
              }
            })
            .update(function (t, e) {
              var n = o.getItemGraphicEl(e)
              if (i.hasValue(t)) {
                var s = i.getItemLayout(t)
                n ? (ah(n), sN(s, n, i, t)) : (n = aN(s, i, t, a)), r.add(n), i.setItemGraphicEl(t, n)
              } else r.remove(n)
            })
            .remove(function (t) {
              var e = o.getItemGraphicEl(t)
              e && r.remove(e)
            })
            .execute(),
            (this._data = i)
        }),
        (e.prototype.remove = function (t) {
          var e = this.group,
            n = this._data
          ;(this._data = null),
            n &&
              n.eachItemGraphicEl(function (t) {
                t && e.remove(t)
              })
        }),
        (e.type = 'boxplot'),
        e
      )
    })(tv),
    rN = function () {},
    oN = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'boxplotBoxPath'), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new rN()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = e.points,
            i = 0
          for (t.moveTo(n[i][0], n[i][1]), i++; i < 4; i++) t.lineTo(n[i][0], n[i][1])
          for (t.closePath(); i < n.length; i++) t.moveTo(n[i][0], n[i][1]), i++, t.lineTo(n[i][0], n[i][1])
        }),
        e
      )
    })(sl)
  function aN(t, e, n, i, r) {
    var o = t.ends,
      a = new oN({ shape: { points: r ? lN(o, i, t) : o } })
    return sN(t, a, e, n, r), a
  }
  function sN(t, e, n, i, r) {
    var o = n.hostModel
    ;(0, Zh[r ? 'initProps' : 'updateProps'])(e, { shape: { points: t.ends } }, o, i), e.useStyle(n.getItemVisual(i, 'style')), (e.style.strokeNoScale = !0), (e.z2 = 100)
    var a = n.getItemModel(i),
      s = a.getModel('emphasis')
    ku(e, a), Tu(e, s.get('focus'), s.get('blurScope'), s.get('disabled'))
  }
  function lN(t, e, n) {
    return E(t, function (t) {
      return ((t = t.slice())[e] = n.initBaseline), t
    })
  }
  var uN = z
  function cN(t) {
    var e = (function (t) {
      var e = [],
        n = []
      return (
        t.eachSeriesByType('boxplot', function (t) {
          var i = t.getBaseAxis(),
            r = P(n, i)
          r < 0 && ((r = n.length), (n[r] = i), (e[r] = { axis: i, seriesModels: [] })), e[r].seriesModels.push(t)
        }),
        e
      )
    })(t)
    uN(e, function (t) {
      var e = t.seriesModels
      e.length &&
        (!(function (t) {
          var e,
            n = t.axis,
            i = t.seriesModels,
            r = i.length,
            o = (t.boxWidthList = []),
            a = (t.boxOffsetList = []),
            s = []
          if ('category' === n.type) e = n.getBandWidth()
          else {
            var l = 0
            uN(i, function (t) {
              l = Math.max(l, t.getData().count())
            })
            var u = n.getExtent()
            e = Math.abs(u[1] - u[0]) / l
          }
          uN(i, function (t) {
            var n = t.get('boxWidth')
            U(n) || (n = [n, n]), s.push([yo(n[0], e) || 0, yo(n[1], e) || 0])
          })
          var c = 0.8 * e - 2,
            h = (c / r) * 0.3,
            d = (c - h * (r - 1)) / r,
            p = d / 2 - c / 2
          uN(i, function (t, e) {
            a.push(p), (p += h + d), o.push(Math.min(Math.max(d, s[e][0]), s[e][1]))
          })
        })(t),
        uN(e, function (e, n) {
          !(function (t, e, n) {
            var i = t.coordinateSystem,
              r = t.getData(),
              o = n / 2,
              a = 'horizontal' === t.get('layout') ? 0 : 1,
              s = 1 - a,
              l = ['x', 'y'],
              u = r.mapDimension(l[a]),
              c = r.mapDimensionsAll(l[s])
            if (null == u || c.length < 5) return
            for (var h = 0; h < r.count(); h++) {
              var d = r.get(u, h),
                p = x(d, c[2], h),
                f = x(d, c[0], h),
                g = x(d, c[1], h),
                y = x(d, c[3], h),
                v = x(d, c[4], h),
                m = []
              _(m, g, !1), _(m, y, !0), m.push(f, g, v, y), b(m, f), b(m, v), b(m, p), r.setItemLayout(h, { initBaseline: p[s], ends: m })
            }
            function x(t, n, o) {
              var l,
                u = r.get(n, o),
                c = []
              return (c[a] = t), (c[s] = u), isNaN(t) || isNaN(u) ? (l = [NaN, NaN]) : ((l = i.dataToPoint(c))[a] += e), l
            }
            function _(t, e, n) {
              var i = e.slice(),
                r = e.slice()
              ;(i[a] += o), (r[a] -= o), n ? t.push(i, r) : t.push(r, i)
            }
            function b(t, e) {
              var n = e.slice(),
                i = e.slice()
              ;(n[a] -= o), (i[a] += o), t.push(n, i)
            }
          })(e, t.boxOffsetList[n], t.boxWidthList[n])
        }))
    })
  }
  var hN = {
    type: 'echarts:boxplot',
    transform: function (t) {
      var e = t.upstream
      if (e.sourceFormat !== df) {
        var n = ''
        0, Yo(n)
      }
      var i = (function (t, e) {
        for (var n = [], i = [], r = (e = e || {}).boundIQR, o = 'none' === r || 0 === r, a = 0; a < t.length; a++) {
          var s = xo(t[a].slice()),
            l = Oo(s, 0.25),
            u = Oo(s, 0.5),
            c = Oo(s, 0.75),
            h = s[0],
            d = s[s.length - 1],
            p = (null == r ? 1.5 : r) * (c - l),
            f = o ? h : Math.max(h, l - p),
            g = o ? d : Math.min(d, c + p),
            y = e.itemNameFormatter,
            v = Y(y) ? y({ value: a }) : X(y) ? y.replace('{value}', a + '') : a + ''
          n.push([v, f, l, u, c, g])
          for (var m = 0; m < s.length; m++) {
            var x = s[m]
            if (x < f || x > g) {
              var _ = [v, x]
              i.push(_)
            }
          }
        }
        return { boxData: n, outliers: i }
      })(e.getRawData(), t.config)
      return [{ dimensions: ['ItemName', 'Low', 'Q1', 'Q2', 'Q3', 'High'], data: i.boxData }, { data: i.outliers }]
    }
  }
  var dN = ['itemStyle', 'borderColor'],
    pN = ['itemStyle', 'borderColor0'],
    fN = ['itemStyle', 'borderColorDoji'],
    gN = ['itemStyle', 'color'],
    yN = ['itemStyle', 'color0']
  function vN(t, e) {
    return e.get(t > 0 ? gN : yN)
  }
  function mN(t, e) {
    return e.get(0 === t ? fN : t > 0 ? dN : pN)
  }
  var xN = {
      seriesType: 'candlestick',
      plan: $y(),
      performRawSeries: !0,
      reset: function (t, e) {
        if (!e.isSeriesFiltered(t))
          return (
            !t.pipelineContext.large && {
              progress: function (t, e) {
                for (var n; null != (n = t.next()); ) {
                  var i = e.getItemModel(n),
                    r = e.getItemLayout(n).sign,
                    o = i.getItemStyle()
                  ;(o.fill = vN(r, i)), (o.stroke = mN(r, i) || o.fill), A(e.ensureUniqueItemVisual(n, 'style'), o)
                }
              }
            }
          )
      }
    },
    _N = ['color', 'borderColor'],
    bN = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          this.group.removeClipPath(), (this._progressiveEls = null), this._updateDrawMode(t), this._isLargeDraw ? this._renderLarge(t) : this._renderNormal(t)
        }),
        (e.prototype.incrementalPrepareRender = function (t, e, n) {
          this._clear(), this._updateDrawMode(t)
        }),
        (e.prototype.incrementalRender = function (t, e, n, i) {
          ;(this._progressiveEls = []), this._isLargeDraw ? this._incrementalRenderLarge(t, e) : this._incrementalRenderNormal(t, e)
        }),
        (e.prototype.eachRendered = function (t) {
          Bh(this._progressiveEls || this.group, t)
        }),
        (e.prototype._updateDrawMode = function (t) {
          var e = t.pipelineContext.large
          ;(null != this._isLargeDraw && e === this._isLargeDraw) || ((this._isLargeDraw = e), this._clear())
        }),
        (e.prototype._renderNormal = function (t) {
          var e = t.getData(),
            n = this._data,
            i = this.group,
            r = e.getLayout('isSimpleBox'),
            o = t.get('clip', !0),
            a = t.coordinateSystem,
            s = a.getArea && a.getArea()
          this._data || i.removeAll(),
            e
              .diff(n)
              .add(function (n) {
                if (e.hasValue(n)) {
                  var a = e.getItemLayout(n)
                  if (o && IN(s, a)) return
                  var l = MN(a, n, !0)
                  eh(l, { shape: { points: a.ends } }, t, n), TN(l, e, n, r), i.add(l), e.setItemGraphicEl(n, l)
                }
              })
              .update(function (a, l) {
                var u = n.getItemGraphicEl(l)
                if (e.hasValue(a)) {
                  var c = e.getItemLayout(a)
                  o && IN(s, c) ? i.remove(u) : (u ? (th(u, { shape: { points: c.ends } }, t, a), ah(u)) : (u = MN(c)), TN(u, e, a, r), i.add(u), e.setItemGraphicEl(a, u))
                } else i.remove(u)
              })
              .remove(function (t) {
                var e = n.getItemGraphicEl(t)
                e && i.remove(e)
              })
              .execute(),
            (this._data = e)
        }),
        (e.prototype._renderLarge = function (t) {
          this._clear(), kN(t, this.group)
          var e = t.get('clip', !0) ? wI(t.coordinateSystem, !1, t) : null
          e ? this.group.setClipPath(e) : this.group.removeClipPath()
        }),
        (e.prototype._incrementalRenderNormal = function (t, e) {
          for (var n, i = e.getData(), r = i.getLayout('isSimpleBox'); null != (n = t.next()); ) {
            var o = MN(i.getItemLayout(n))
            TN(o, i, n, r), (o.incremental = !0), this.group.add(o), this._progressiveEls.push(o)
          }
        }),
        (e.prototype._incrementalRenderLarge = function (t, e) {
          kN(e, this.group, this._progressiveEls, !0)
        }),
        (e.prototype.remove = function (t) {
          this._clear()
        }),
        (e.prototype._clear = function () {
          this.group.removeAll(), (this._data = null)
        }),
        (e.type = 'candlestick'),
        e
      )
    })(tv),
    wN = function () {},
    SN = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'normalCandlestickBox'), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new wN()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n = e.points
          this.__simpleBox
            ? (t.moveTo(n[4][0], n[4][1]), t.lineTo(n[6][0], n[6][1]))
            : (t.moveTo(n[0][0], n[0][1]),
              t.lineTo(n[1][0], n[1][1]),
              t.lineTo(n[2][0], n[2][1]),
              t.lineTo(n[3][0], n[3][1]),
              t.closePath(),
              t.moveTo(n[4][0], n[4][1]),
              t.lineTo(n[5][0], n[5][1]),
              t.moveTo(n[6][0], n[6][1]),
              t.lineTo(n[7][0], n[7][1]))
        }),
        e
      )
    })(sl)
  function MN(t, e, n) {
    var i = t.ends
    return new SN({ shape: { points: n ? CN(i, t) : i }, z2: 100 })
  }
  function IN(t, e) {
    for (var n = !0, i = 0; i < e.ends.length; i++)
      if (t.contain(e.ends[i][0], e.ends[i][1])) {
        n = !1
        break
      }
    return n
  }
  function TN(t, e, n, i) {
    var r = e.getItemModel(n)
    t.useStyle(e.getItemVisual(n, 'style')), (t.style.strokeNoScale = !0), (t.__simpleBox = i), ku(t, r)
    var o = e.getItemLayout(n).sign
    z(t.states, function (t, e) {
      var n = r.getModel(e),
        i = vN(o, n),
        a = mN(o, n) || i,
        s = t.style || (t.style = {})
      i && (s.fill = i), a && (s.stroke = a)
    })
    var a = r.getModel('emphasis')
    Tu(t, a.get('focus'), a.get('blurScope'), a.get('disabled'))
  }
  function CN(t, e) {
    return E(t, function (t) {
      return ((t = t.slice())[1] = e.initBaseline), t
    })
  }
  var DN = function () {},
    AN = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n.type = 'largeCandlestickBox'), n
      }
      return (
        n(e, t),
        (e.prototype.getDefaultShape = function () {
          return new DN()
        }),
        (e.prototype.buildPath = function (t, e) {
          for (var n = e.points, i = 0; i < n.length; )
            if (this.__sign === n[i++]) {
              var r = n[i++]
              t.moveTo(r, n[i++]), t.lineTo(r, n[i++])
            } else i += 3
        }),
        e
      )
    })(sl)
  function kN(t, e, n, i) {
    var r = t.getData().getLayout('largePoints'),
      o = new AN({ shape: { points: r }, __sign: 1, ignoreCoarsePointer: !0 })
    e.add(o)
    var a = new AN({ shape: { points: r }, __sign: -1, ignoreCoarsePointer: !0 })
    e.add(a)
    var s = new AN({ shape: { points: r }, __sign: 0, ignoreCoarsePointer: !0 })
    e.add(s), LN(1, o, t), LN(-1, a, t), LN(0, s, t), i && ((o.incremental = !0), (a.incremental = !0)), n && n.push(o, a)
  }
  function LN(t, e, n, i) {
    var r = mN(t, n) || vN(t, n),
      o = n.getModel('itemStyle').getItemStyle(_N)
    e.useStyle(o), (e.style.fill = null), (e.style.stroke = r)
  }
  var PN = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (
        (n.type = e.type),
        (n.defaultValueDimensions = [
          { name: 'open', defaultTooltip: !0 },
          { name: 'close', defaultTooltip: !0 },
          { name: 'lowest', defaultTooltip: !0 },
          { name: 'highest', defaultTooltip: !0 }
        ]),
        n
      )
    }
    return (
      n(e, t),
      (e.prototype.getShadowDim = function () {
        return 'open'
      }),
      (e.prototype.brushSelector = function (t, e, n) {
        var i = e.getItemLayout(t)
        return i && n.rect(i.brushRect)
      }),
      (e.type = 'series.candlestick'),
      (e.dependencies = ['xAxis', 'yAxis', 'grid']),
      (e.defaultOption = {
        z: 2,
        coordinateSystem: 'cartesian2d',
        legendHoverLink: !0,
        layout: null,
        clip: !0,
        itemStyle: { color: '#eb5454', color0: '#47b262', borderColor: '#eb5454', borderColor0: '#47b262', borderColorDoji: null, borderWidth: 1 },
        emphasis: { itemStyle: { borderWidth: 2 } },
        barMaxWidth: null,
        barMinWidth: null,
        barWidth: null,
        large: !0,
        largeThreshold: 600,
        progressive: 3e3,
        progressiveThreshold: 1e4,
        progressiveChunkMode: 'mod',
        animationEasing: 'linear',
        animationDuration: 300
      }),
      e
    )
  })(Wy)
  function ON(t) {
    t &&
      U(t.series) &&
      z(t.series, function (t) {
        q(t) && 'k' === t.type && (t.type = 'candlestick')
      })
  }
  R(PN, eN, !0)
  var RN = {
    seriesType: 'candlestick',
    plan: $y(),
    reset: function (t) {
      var e = t.coordinateSystem,
        n = t.getData(),
        i = (function (t, e) {
          var n,
            i = t.getBaseAxis(),
            r = 'category' === i.type ? i.getBandWidth() : ((n = i.getExtent()), Math.abs(n[1] - n[0]) / e.count()),
            o = yo(rt(t.get('barMaxWidth'), r), r),
            a = yo(rt(t.get('barMinWidth'), 1), r),
            s = t.get('barWidth')
          return null != s ? yo(s, r) : Math.max(Math.min(r / 2, o), a)
        })(t, n),
        r = ['x', 'y'],
        o = n.getDimensionIndex(n.mapDimension(r[0])),
        a = E(n.mapDimensionsAll(r[1]), n.getDimensionIndex, n),
        s = a[0],
        l = a[1],
        u = a[2],
        c = a[3]
      if ((n.setLayout({ candleWidth: i, isSimpleBox: i <= 1.3 }), !(o < 0 || a.length < 4)))
        return {
          progress: t.pipelineContext.large
            ? function (n, i) {
                var r,
                  a,
                  h = pb(4 * n.count),
                  d = 0,
                  p = [],
                  f = [],
                  g = i.getStore(),
                  y = !!t.get(['itemStyle', 'borderColorDoji'])
                for (; null != (a = n.next()); ) {
                  var v = g.get(o, a),
                    m = g.get(s, a),
                    x = g.get(l, a),
                    _ = g.get(u, a),
                    b = g.get(c, a)
                  isNaN(v) || isNaN(_) || isNaN(b)
                    ? ((h[d++] = NaN), (d += 3))
                    : ((h[d++] = NN(g, a, m, x, l, y)),
                      (p[0] = v),
                      (p[1] = _),
                      (r = e.dataToPoint(p, null, f)),
                      (h[d++] = r ? r[0] : NaN),
                      (h[d++] = r ? r[1] : NaN),
                      (p[1] = b),
                      (r = e.dataToPoint(p, null, f)),
                      (h[d++] = r ? r[1] : NaN))
                }
                i.setLayout('largePoints', h)
              }
            : function (t, n) {
                var r,
                  a = n.getStore()
                for (; null != (r = t.next()); ) {
                  var h = a.get(o, r),
                    d = a.get(s, r),
                    p = a.get(l, r),
                    f = a.get(u, r),
                    g = a.get(c, r),
                    y = Math.min(d, p),
                    v = Math.max(d, p),
                    m = M(y, h),
                    x = M(v, h),
                    _ = M(f, h),
                    b = M(g, h),
                    w = []
                  I(w, x, 0), I(w, m, 1), w.push(C(b), C(x), C(_), C(m))
                  var S = !!n.getItemModel(r).get(['itemStyle', 'borderColorDoji'])
                  n.setItemLayout(r, { sign: NN(a, r, d, p, l, S), initBaseline: d > p ? x[1] : m[1], ends: w, brushRect: T(f, g, h) })
                }
                function M(t, n) {
                  var i = []
                  return (i[0] = n), (i[1] = t), isNaN(n) || isNaN(t) ? [NaN, NaN] : e.dataToPoint(i)
                }
                function I(t, e, n) {
                  var r = e.slice(),
                    o = e.slice()
                  ;(r[0] = bh(r[0] + i / 2, 1, !1)), (o[0] = bh(o[0] - i / 2, 1, !0)), n ? t.push(r, o) : t.push(o, r)
                }
                function T(t, e, n) {
                  var r = M(t, n),
                    o = M(e, n)
                  return (r[0] -= i / 2), (o[0] -= i / 2), { x: r[0], y: r[1], width: i, height: o[1] - r[1] }
                }
                function C(t) {
                  return (t[0] = bh(t[0], 1)), t
                }
              }
        }
    }
  }
  function NN(t, e, n, i, r, o) {
    return n > i ? -1 : n < i ? 1 : o ? 0 : e > 0 ? (t.get(r, e - 1) <= i ? 1 : -1) : 1
  }
  function zN(t, e) {
    var n = e.rippleEffectColor || e.color
    t.eachChild(function (t) {
      t.attr({ z: e.z, zlevel: e.zlevel, style: { stroke: 'stroke' === e.brushType ? n : null, fill: 'fill' === e.brushType ? n : null } })
    })
  }
  var EN = (function (t) {
      function e(e, n) {
        var i = t.call(this) || this,
          r = new rI(e, n),
          o = new to()
        return i.add(r), i.add(o), i.updateData(e, n), i
      }
      return (
        n(e, t),
        (e.prototype.stopEffectAnimation = function () {
          this.childAt(1).removeAll()
        }),
        (e.prototype.startEffectAnimation = function (t) {
          for (var e = t.symbolType, n = t.color, i = t.rippleNumber, r = this.childAt(1), o = 0; o < i; o++) {
            var a = hm(e, -1, -1, 2, 2, n)
            a.attr({ style: { strokeNoScale: !0 }, z2: 99, silent: !0, scaleX: 0.5, scaleY: 0.5 })
            var s = (-o / i) * t.period + t.effectOffset
            a
              .animate('', !0)
              .when(t.period, { scaleX: t.rippleScale / 2, scaleY: t.rippleScale / 2 })
              .delay(s)
              .start(),
              a.animateStyle(!0).when(t.period, { opacity: 0 }).delay(s).start(),
              r.add(a)
          }
          zN(r, t)
        }),
        (e.prototype.updateEffectAnimation = function (t) {
          for (var e = this._effectCfg, n = this.childAt(1), i = ['symbolType', 'period', 'rippleScale', 'rippleNumber'], r = 0; r < i.length; r++) {
            var o = i[r]
            if (e[o] !== t[o]) return this.stopEffectAnimation(), void this.startEffectAnimation(t)
          }
          zN(n, t)
        }),
        (e.prototype.highlight = function () {
          du(this)
        }),
        (e.prototype.downplay = function () {
          pu(this)
        }),
        (e.prototype.getSymbolType = function () {
          var t = this.childAt(0)
          return t && t.getSymbolType()
        }),
        (e.prototype.updateData = function (t, e) {
          var n = this,
            i = t.hostModel
          this.childAt(0).updateData(t, e)
          var r = this.childAt(1),
            o = t.getItemModel(e),
            a = t.getItemVisual(e, 'symbol'),
            s = dm(t.getItemVisual(e, 'symbolSize')),
            l = t.getItemVisual(e, 'style'),
            u = l && l.fill,
            c = o.getModel('emphasis')
          r.setScale(s),
            r.traverse(function (t) {
              t.setStyle('fill', u)
            })
          var h = pm(t.getItemVisual(e, 'symbolOffset'), s)
          h && ((r.x = h[0]), (r.y = h[1]))
          var d = t.getItemVisual(e, 'symbolRotate')
          r.rotation = ((d || 0) * Math.PI) / 180 || 0
          var p = {}
          ;(p.showEffectOn = i.get('showEffectOn')),
            (p.rippleScale = o.get(['rippleEffect', 'scale'])),
            (p.brushType = o.get(['rippleEffect', 'brushType'])),
            (p.period = 1e3 * o.get(['rippleEffect', 'period'])),
            (p.effectOffset = e / t.count()),
            (p.z = i.getShallow('z') || 0),
            (p.zlevel = i.getShallow('zlevel') || 0),
            (p.symbolType = a),
            (p.color = u),
            (p.rippleEffectColor = o.get(['rippleEffect', 'color'])),
            (p.rippleNumber = o.get(['rippleEffect', 'number'])),
            'render' === p.showEffectOn
              ? (this._effectCfg ? this.updateEffectAnimation(p) : this.startEffectAnimation(p), (this._effectCfg = p))
              : ((this._effectCfg = null),
                this.stopEffectAnimation(),
                (this.onHoverStateChange = function (t) {
                  'emphasis' === t ? 'render' !== p.showEffectOn && n.startEffectAnimation(p) : 'normal' === t && 'render' !== p.showEffectOn && n.stopEffectAnimation()
                })),
            (this._effectCfg = p),
            Tu(this, c.get('focus'), c.get('blurScope'), c.get('disabled'))
        }),
        (e.prototype.fadeOut = function (t) {
          t && t()
        }),
        e
      )
    })(to),
    BN = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function () {
          this._symbolDraw = new uI(EN)
        }),
        (e.prototype.render = function (t, e, n) {
          var i = t.getData(),
            r = this._symbolDraw
          r.updateData(i, { clipShape: this._getClipShape(t) }), this.group.add(r.group)
        }),
        (e.prototype._getClipShape = function (t) {
          var e = t.coordinateSystem,
            n = e && e.getArea && e.getArea()
          return t.get('clip', !0) ? n : null
        }),
        (e.prototype.updateTransform = function (t, e, n) {
          var i = t.getData()
          this.group.dirty()
          var r = NI('').reset(t, e, n)
          r.progress && r.progress({ start: 0, end: i.count(), count: i.count() }, i), this._symbolDraw.updateLayout()
        }),
        (e.prototype._updateGroupTransform = function (t) {
          var e = t.coordinateSystem
          e && e.getRoamTransform && ((this.group.transform = Ce(e.getRoamTransform())), this.group.decomposeTransform())
        }),
        (e.prototype.remove = function (t, e) {
          this._symbolDraw && this._symbolDraw.remove(!0)
        }),
        (e.type = 'effectScatter'),
        e
      )
    })(tv),
    VN = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.hasSymbolVisual = !0), n
      }
      return (
        n(e, t),
        (e.prototype.getInitialData = function (t, e) {
          return Z_(null, this, { useEncodeDefaulter: !0 })
        }),
        (e.prototype.brushSelector = function (t, e, n) {
          return n.point(e.getItemLayout(t))
        }),
        (e.type = 'series.effectScatter'),
        (e.dependencies = ['grid', 'polar']),
        (e.defaultOption = {
          coordinateSystem: 'cartesian2d',
          z: 2,
          legendHoverLink: !0,
          effectType: 'ripple',
          progressive: 0,
          showEffectOn: 'render',
          clip: !0,
          rippleEffect: { period: 4, scale: 2.5, brushType: 'fill', number: 3 },
          universalTransition: { divideShape: 'clone' },
          symbolSize: 10
        }),
        e
      )
    })(Wy)
  var GN = (function (t) {
      function e(e, n, i) {
        var r = t.call(this) || this
        return r.add(r.createLine(e, n, i)), r._updateEffectSymbol(e, n), r
      }
      return (
        n(e, t),
        (e.prototype.createLine = function (t, e, n) {
          return new MP(t, e, n)
        }),
        (e.prototype._updateEffectSymbol = function (t, e) {
          var n = t.getItemModel(e).getModel('effect'),
            i = n.get('symbolSize'),
            r = n.get('symbol')
          U(i) || (i = [i, i])
          var o = t.getItemVisual(e, 'style'),
            a = n.get('color') || (o && o.stroke),
            s = this.childAt(1)
          this._symbolType !== r && (this.remove(s), ((s = hm(r, -0.5, -0.5, 1, 1, a)).z2 = 100), (s.culling = !0), this.add(s)),
            s &&
              (s.setStyle('shadowColor', a),
              s.setStyle(n.getItemStyle(['color'])),
              (s.scaleX = i[0]),
              (s.scaleY = i[1]),
              s.setColor(a),
              (this._symbolType = r),
              (this._symbolScale = i),
              this._updateEffectAnimation(t, n, e))
        }),
        (e.prototype._updateEffectAnimation = function (t, e, n) {
          var i = this.childAt(1)
          if (i) {
            var r = t.getItemLayout(n),
              o = 1e3 * e.get('period'),
              a = e.get('loop'),
              s = e.get('roundTrip'),
              l = e.get('constantSpeed'),
              u = it(e.get('delay'), function (e) {
                return ((e / t.count()) * o) / 3
              })
            if (
              ((i.ignore = !0),
              this._updateAnimationPoints(i, r),
              l > 0 && (o = (this._getLineLength(i) / l) * 1e3),
              o !== this._period || a !== this._loop || s !== this._roundTrip)
            ) {
              i.stopAnimation()
              var c = void 0
              ;(c = Y(u) ? u(n) : u), i.__t > 0 && (c = -o * i.__t), this._animateSymbol(i, o, c, a, s)
            }
            ;(this._period = o), (this._loop = a), (this._roundTrip = s)
          }
        }),
        (e.prototype._animateSymbol = function (t, e, n, i, r) {
          if (e > 0) {
            t.__t = 0
            var o = this,
              a = t
                .animate('', i)
                .when(r ? 2 * e : e, { __t: r ? 2 : 1 })
                .delay(n)
                .during(function () {
                  o._updateSymbolPosition(t)
                })
            i ||
              a.done(function () {
                o.remove(t)
              }),
              a.start()
          }
        }),
        (e.prototype._getLineLength = function (t) {
          return Vt(t.__p1, t.__cp1) + Vt(t.__cp1, t.__p2)
        }),
        (e.prototype._updateAnimationPoints = function (t, e) {
          ;(t.__p1 = e[0]), (t.__p2 = e[1]), (t.__cp1 = e[2] || [(e[0][0] + e[1][0]) / 2, (e[0][1] + e[1][1]) / 2])
        }),
        (e.prototype.updateData = function (t, e, n) {
          this.childAt(0).updateData(t, e, n), this._updateEffectSymbol(t, e)
        }),
        (e.prototype._updateSymbolPosition = function (t) {
          var e = t.__p1,
            n = t.__p2,
            i = t.__cp1,
            r = t.__t < 1 ? t.__t : 2 - t.__t,
            o = [t.x, t.y],
            a = o.slice(),
            s = Nn,
            l = zn
          ;(o[0] = s(e[0], i[0], n[0], r)), (o[1] = s(e[1], i[1], n[1], r))
          var u = t.__t < 1 ? l(e[0], i[0], n[0], r) : l(n[0], i[0], e[0], 1 - r),
            c = t.__t < 1 ? l(e[1], i[1], n[1], r) : l(n[1], i[1], e[1], 1 - r)
          ;(t.rotation = -Math.atan2(c, u) - Math.PI / 2),
            ('line' !== this._symbolType && 'rect' !== this._symbolType && 'roundRect' !== this._symbolType) ||
              (void 0 !== t.__lastT && t.__lastT < t.__t
                ? ((t.scaleY = 1.05 * Vt(a, o)), 1 === r && ((o[0] = a[0] + (o[0] - a[0]) / 2), (o[1] = a[1] + (o[1] - a[1]) / 2)))
                : 1 === t.__lastT
                  ? (t.scaleY = 2 * Vt(e, o))
                  : (t.scaleY = this._symbolScale[1])),
            (t.__lastT = t.__t),
            (t.ignore = !1),
            (t.x = o[0]),
            (t.y = o[1])
        }),
        (e.prototype.updateLayout = function (t, e) {
          this.childAt(0).updateLayout(t, e)
          var n = t.getItemModel(e).getModel('effect')
          this._updateEffectAnimation(t, n, e)
        }),
        e
      )
    })(to),
    FN = (function (t) {
      function e(e, n, i) {
        var r = t.call(this) || this
        return r._createPolyline(e, n, i), r
      }
      return (
        n(e, t),
        (e.prototype._createPolyline = function (t, e, n) {
          var i = t.getItemLayout(e),
            r = new Tc({ shape: { points: i } })
          this.add(r), this._updateCommonStl(t, e, n)
        }),
        (e.prototype.updateData = function (t, e, n) {
          var i = t.hostModel
          th(this.childAt(0), { shape: { points: t.getItemLayout(e) } }, i, e), this._updateCommonStl(t, e, n)
        }),
        (e.prototype._updateCommonStl = function (t, e, n) {
          var i = this.childAt(0),
            r = t.getItemModel(e),
            o = n && n.emphasisLineStyle,
            a = n && n.focus,
            s = n && n.blurScope,
            l = n && n.emphasisDisabled
          if (!n || t.hasItemOption) {
            var u = r.getModel('emphasis')
            ;(o = u.getModel('lineStyle').getLineStyle()), (l = u.get('disabled')), (a = u.get('focus')), (s = u.get('blurScope'))
          }
          i.useStyle(t.getItemVisual(e, 'style')), (i.style.fill = null), (i.style.strokeNoScale = !0), (i.ensureState('emphasis').style = o), Tu(this, a, s, l)
        }),
        (e.prototype.updateLayout = function (t, e) {
          this.childAt(0).setShape('points', t.getItemLayout(e))
        }),
        e
      )
    })(to),
    WN = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e._lastFrame = 0), (e._lastFramePercent = 0), e
      }
      return (
        n(e, t),
        (e.prototype.createLine = function (t, e, n) {
          return new FN(t, e, n)
        }),
        (e.prototype._updateAnimationPoints = function (t, e) {
          this._points = e
          for (var n = [0], i = 0, r = 1; r < e.length; r++) {
            var o = e[r - 1],
              a = e[r]
            ;(i += Vt(o, a)), n.push(i)
          }
          if (0 !== i) {
            for (r = 0; r < n.length; r++) n[r] /= i
            ;(this._offsets = n), (this._length = i)
          } else this._length = 0
        }),
        (e.prototype._getLineLength = function () {
          return this._length
        }),
        (e.prototype._updateSymbolPosition = function (t) {
          var e = t.__t < 1 ? t.__t : 2 - t.__t,
            n = this._points,
            i = this._offsets,
            r = n.length
          if (i) {
            var o,
              a = this._lastFrame
            if (e < this._lastFramePercent) {
              for (o = Math.min(a + 1, r - 1); o >= 0 && !(i[o] <= e); o--);
              o = Math.min(o, r - 2)
            } else {
              for (o = a; o < r && !(i[o] > e); o++);
              o = Math.min(o - 1, r - 2)
            }
            var s = (e - i[o]) / (i[o + 1] - i[o]),
              l = n[o],
              u = n[o + 1]
            ;(t.x = l[0] * (1 - s) + s * u[0]), (t.y = l[1] * (1 - s) + s * u[1])
            var c = t.__t < 1 ? u[0] - l[0] : l[0] - u[0],
              h = t.__t < 1 ? u[1] - l[1] : l[1] - u[1]
            ;(t.rotation = -Math.atan2(h, c) - Math.PI / 2), (this._lastFrame = o), (this._lastFramePercent = e), (t.ignore = !1)
          }
        }),
        e
      )
    })(GN),
    HN = function () {
      ;(this.polyline = !1), (this.curveness = 0), (this.segs = [])
    },
    UN = (function (t) {
      function e(e) {
        var n = t.call(this, e) || this
        return (n._off = 0), (n.hoverDataIdx = -1), n
      }
      return (
        n(e, t),
        (e.prototype.reset = function () {
          ;(this.notClear = !1), (this._off = 0)
        }),
        (e.prototype.getDefaultStyle = function () {
          return { stroke: tf.color.neutral99, fill: null }
        }),
        (e.prototype.getDefaultShape = function () {
          return new HN()
        }),
        (e.prototype.buildPath = function (t, e) {
          var n,
            i = e.segs,
            r = e.curveness
          if (e.polyline)
            for (n = this._off; n < i.length; ) {
              var o = i[n++]
              if (o > 0) {
                t.moveTo(i[n++], i[n++])
                for (var a = 1; a < o; a++) t.lineTo(i[n++], i[n++])
              }
            }
          else
            for (n = this._off; n < i.length; ) {
              var s = i[n++],
                l = i[n++],
                u = i[n++],
                c = i[n++]
              if ((t.moveTo(s, l), r > 0)) {
                var h = (s + u) / 2 - (l - c) * r,
                  d = (l + c) / 2 - (u - s) * r
                t.quadraticCurveTo(h, d, u, c)
              } else t.lineTo(u, c)
            }
          this.incremental && ((this._off = n), (this.notClear = !0))
        }),
        (e.prototype.findDataIndex = function (t, e) {
          var n = this.shape,
            i = n.segs,
            r = n.curveness,
            o = this.style.lineWidth
          if (n.polyline)
            for (var a = 0, s = 0; s < i.length; ) {
              var l = i[s++]
              if (l > 0)
                for (var u = i[s++], c = i[s++], h = 1; h < l; h++) {
                  if (Ws(u, c, (d = i[s++]), (p = i[s++]), o, t, e)) return a
                }
              a++
            }
          else
            for (a = 0, s = 0; s < i.length; ) {
              ;(u = i[s++]), (c = i[s++])
              var d = i[s++],
                p = i[s++]
              if (r > 0) {
                if (Us(u, c, (u + d) / 2 - (c - p) * r, (c + p) / 2 - (d - u) * r, d, p, o, t, e)) return a
              } else if (Ws(u, c, d, p, o, t, e)) return a
              a++
            }
          return -1
        }),
        (e.prototype.contain = function (t, e) {
          var n = this.transformCoordToLocal(t, e),
            i = this.getBoundingRect()
          return (t = n[0]), (e = n[1]), i.contain(t, e) ? (this.hoverDataIdx = this.findDataIndex(t, e)) >= 0 : ((this.hoverDataIdx = -1), !1)
        }),
        (e.prototype.getBoundingRect = function () {
          var t = this._rect
          if (!t) {
            for (var e = this.shape.segs, n = 1 / 0, i = 1 / 0, r = -1 / 0, o = -1 / 0, a = 0; a < e.length; ) {
              var s = e[a++],
                l = e[a++]
              ;(n = Math.min(s, n)), (r = Math.max(s, r)), (i = Math.min(l, i)), (o = Math.max(l, o))
            }
            t = this._rect = new He(n, i, r, o)
          }
          return t
        }),
        e
      )
    })(sl),
    YN = (function () {
      function t() {
        this.group = new to()
      }
      return (
        (t.prototype.updateData = function (t) {
          this._clear()
          var e = this._create()
          e.setShape({ segs: t.getLayout('linesPoints') }), this._setCommon(e, t)
        }),
        (t.prototype.incrementalPrepareUpdate = function (t) {
          this.group.removeAll(), this._clear()
        }),
        (t.prototype.incrementalUpdate = function (t, e) {
          var n = this._newAdded[0],
            i = e.getLayout('linesPoints'),
            r = n && n.shape.segs
          if (r && r.length < 2e4) {
            var o = r.length,
              a = new Float32Array(o + i.length)
            a.set(r), a.set(i, o), n.setShape({ segs: a })
          } else {
            this._newAdded = []
            var s = this._create()
            ;(s.incremental = !0), s.setShape({ segs: i }), this._setCommon(s, e), (s.__startIndex = t.start)
          }
        }),
        (t.prototype.remove = function () {
          this._clear()
        }),
        (t.prototype.eachRendered = function (t) {
          this._newAdded[0] && t(this._newAdded[0])
        }),
        (t.prototype._create = function () {
          var t = new UN({ cursor: 'default', ignoreCoarsePointer: !0 })
          return this._newAdded.push(t), this.group.add(t), t
        }),
        (t.prototype._setCommon = function (t, e, n) {
          var i = e.hostModel
          t.setShape({ polyline: i.get('polyline'), curveness: i.get(['lineStyle', 'curveness']) }),
            t.useStyle(i.getModel('lineStyle').getLineStyle()),
            (t.style.strokeNoScale = !0)
          var r = e.getVisual('style')
          r && r.stroke && t.setStyle('stroke', r.stroke), t.setStyle('fill', null)
          var o = zl(t)
          ;(o.seriesIndex = i.seriesIndex),
            t.on('mousemove', function (e) {
              o.dataIndex = null
              var n = t.hoverDataIdx
              n > 0 && (o.dataIndex = n + t.__startIndex)
            })
        }),
        (t.prototype._clear = function () {
          ;(this._newAdded = []), this.group.removeAll()
        }),
        t
      )
    })(),
    XN = {
      seriesType: 'lines',
      plan: $y(),
      reset: function (t) {
        var e = t.coordinateSystem
        if (e) {
          var n = t.get('polyline'),
            i = t.pipelineContext.large
          return {
            progress: function (r, o) {
              var a = []
              if (i) {
                var s = void 0,
                  l = r.end - r.start
                if (n) {
                  for (var u = 0, c = r.start; c < r.end; c++) u += t.getLineCoordsCount(c)
                  s = new Float32Array(l + 2 * u)
                } else s = new Float32Array(4 * l)
                var h = 0,
                  d = []
                for (c = r.start; c < r.end; c++) {
                  var p = t.getLineCoords(c, a)
                  n && (s[h++] = p)
                  for (var f = 0; f < p; f++) (d = e.dataToPoint(a[f], !1, d)), (s[h++] = d[0]), (s[h++] = d[1])
                }
                o.setLayout('linesPoints', s)
              } else
                for (c = r.start; c < r.end; c++) {
                  var g = o.getItemModel(c),
                    y = ((p = t.getLineCoords(c, a)), [])
                  if (n) for (var v = 0; v < p; v++) y.push(e.dataToPoint(a[v]))
                  else {
                    ;(y[0] = e.dataToPoint(a[0])), (y[1] = e.dataToPoint(a[1]))
                    var m = g.get(['lineStyle', 'curveness'])
                    ;+m && (y[2] = [(y[0][0] + y[1][0]) / 2 - (y[0][1] - y[1][1]) * m, (y[0][1] + y[1][1]) / 2 - (y[1][0] - y[0][0]) * m])
                  }
                  o.setItemLayout(c, y)
                }
            }
          }
        }
      }
    },
    ZN = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          var i = t.getData(),
            r = this._updateLineDraw(i, t),
            o = t.get('zlevel'),
            a = t.get(['effect', 'trailLength']),
            s = n.getZr(),
            l = 'svg' === s.painter.getType()
          l || s.painter.getLayer(o).clear(!0),
            null == this._lastZlevel || l || s.configLayer(this._lastZlevel, { motionBlur: !1 }),
            this._showEffect(t) && a > 0 && (l || s.configLayer(o, { motionBlur: !0, lastFrameAlpha: Math.max(Math.min(a / 10 + 0.9, 1), 0) })),
            r.updateData(i)
          var u = t.get('clip', !0) && wI(t.coordinateSystem, !1, t)
          u ? this.group.setClipPath(u) : this.group.removeClipPath(), (this._lastZlevel = o), (this._finished = !0)
        }),
        (e.prototype.incrementalPrepareRender = function (t, e, n) {
          var i = t.getData()
          this._updateLineDraw(i, t).incrementalPrepareUpdate(i), this._clearLayer(n), (this._finished = !1)
        }),
        (e.prototype.incrementalRender = function (t, e, n) {
          this._lineDraw.incrementalUpdate(t, e.getData()), (this._finished = t.end === e.getData().count())
        }),
        (e.prototype.eachRendered = function (t) {
          this._lineDraw && this._lineDraw.eachRendered(t)
        }),
        (e.prototype.updateTransform = function (t, e, n) {
          var i = t.getData(),
            r = t.pipelineContext
          if (!this._finished || r.large || r.progressiveRender) return { update: !0 }
          var o = XN.reset(t, e, n)
          o.progress && o.progress({ start: 0, end: i.count(), count: i.count() }, i), this._lineDraw.updateLayout(), this._clearLayer(n)
        }),
        (e.prototype._updateLineDraw = function (t, e) {
          var n = this._lineDraw,
            i = this._showEffect(e),
            r = !!e.get('polyline'),
            o = e.pipelineContext.large
          return (
            (n && i === this._hasEffet && r === this._isPolyline && o === this._isLargeDraw) ||
              (n && n.remove(),
              (n = this._lineDraw = o ? new YN() : new IP(r ? (i ? WN : FN) : i ? GN : MP)),
              (this._hasEffet = i),
              (this._isPolyline = r),
              (this._isLargeDraw = o)),
            this.group.add(n.group),
            n
          )
        }),
        (e.prototype._showEffect = function (t) {
          return !!t.get(['effect', 'show'])
        }),
        (e.prototype._clearLayer = function (t) {
          var e = t.getZr()
          'svg' === e.painter.getType() || null == this._lastZlevel || e.painter.getLayer(this._lastZlevel).clear(!0)
        }),
        (e.prototype.remove = function (t, e) {
          this._lineDraw && this._lineDraw.remove(), (this._lineDraw = null), this._clearLayer(e)
        }),
        (e.prototype.dispose = function (t, e) {
          this.remove(t, e)
        }),
        (e.type = 'lines'),
        e
      )
    })(tv),
    jN = 'undefined' == typeof Uint32Array ? Array : Uint32Array,
    qN = 'undefined' == typeof Float64Array ? Array : Float64Array
  function KN(t) {
    var e = t.data
    e &&
      e[0] &&
      e[0][0] &&
      e[0][0].coord &&
      (t.data = E(e, function (t) {
        var e = { coords: [t[0].coord, t[1].coord] }
        return t[0].name && (e.fromName = t[0].name), t[1].name && (e.toName = t[1].name), D([e, t[0], t[1]])
      }))
  }
  var $N = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), (n.visualStyleAccessPath = 'lineStyle'), (n.visualDrawType = 'stroke'), n
    }
    return (
      n(e, t),
      (e.prototype.init = function (e) {
        ;(e.data = e.data || []), KN(e)
        var n = this._processFlatCoordsArray(e.data)
        ;(this._flatCoords = n.flatCoords),
          (this._flatCoordsOffset = n.flatCoordsOffset),
          n.flatCoords && (e.data = new Float32Array(n.count)),
          t.prototype.init.apply(this, arguments)
      }),
      (e.prototype.mergeOption = function (e) {
        if ((KN(e), e.data)) {
          var n = this._processFlatCoordsArray(e.data)
          ;(this._flatCoords = n.flatCoords), (this._flatCoordsOffset = n.flatCoordsOffset), n.flatCoords && (e.data = new Float32Array(n.count))
        }
        t.prototype.mergeOption.apply(this, arguments)
      }),
      (e.prototype.appendData = function (t) {
        var e = this._processFlatCoordsArray(t.data)
        e.flatCoords &&
          (this._flatCoords
            ? ((this._flatCoords = vt(this._flatCoords, e.flatCoords)), (this._flatCoordsOffset = vt(this._flatCoordsOffset, e.flatCoordsOffset)))
            : ((this._flatCoords = e.flatCoords), (this._flatCoordsOffset = e.flatCoordsOffset)),
          (t.data = new Float32Array(e.count))),
          this.getRawData().appendData(t.data)
      }),
      (e.prototype._getCoordsFromItemModel = function (t) {
        var e = this.getData().getItemModel(t),
          n = e.option instanceof Array ? e.option : e.getShallow('coords')
        return n
      }),
      (e.prototype.getLineCoordsCount = function (t) {
        return this._flatCoordsOffset ? this._flatCoordsOffset[2 * t + 1] : this._getCoordsFromItemModel(t).length
      }),
      (e.prototype.getLineCoords = function (t, e) {
        if (this._flatCoordsOffset) {
          for (var n = this._flatCoordsOffset[2 * t], i = this._flatCoordsOffset[2 * t + 1], r = 0; r < i; r++)
            (e[r] = e[r] || []), (e[r][0] = this._flatCoords[n + 2 * r]), (e[r][1] = this._flatCoords[n + 2 * r + 1])
          return i
        }
        var o = this._getCoordsFromItemModel(t)
        for (r = 0; r < o.length; r++) (e[r] = e[r] || []), (e[r][0] = o[r][0]), (e[r][1] = o[r][1])
        return o.length
      }),
      (e.prototype._processFlatCoordsArray = function (t) {
        var e = 0
        if ((this._flatCoords && (e = this._flatCoords.length), j(t[0]))) {
          for (var n = t.length, i = new jN(n), r = new qN(n), o = 0, a = 0, s = 0, l = 0; l < n; ) {
            s++
            var u = t[l++]
            ;(i[a++] = o + e), (i[a++] = u)
            for (var c = 0; c < u; c++) {
              var h = t[l++],
                d = t[l++]
              ;(r[o++] = h), (r[o++] = d)
            }
          }
          return { flatCoordsOffset: new Uint32Array(i.buffer, 0, a), flatCoords: r, count: s }
        }
        return { flatCoordsOffset: null, flatCoords: null, count: t.length }
      }),
      (e.prototype.getInitialData = function (t, e) {
        var n = new B_(['value'], this)
        return (
          (n.hasItemOption = !1),
          n.initData(t.data, [], function (t, e, i, r) {
            if (t instanceof Array) return NaN
            n.hasItemOption = !0
            var o = t.value
            return null != o ? (o instanceof Array ? o[r] : o) : void 0
          }),
          n
        )
      }),
      (e.prototype.formatTooltip = function (t, e, n) {
        var i = this.getData().getItemModel(t),
          r = i.get('name')
        if (r) return r
        var o = i.get('fromName'),
          a = i.get('toName'),
          s = []
        return null != o && s.push(o), null != a && s.push(a), Ty('nameValue', { name: s.join(' > ') })
      }),
      (e.prototype.preventIncremental = function () {
        return !!this.get(['effect', 'show'])
      }),
      (e.prototype.getProgressive = function () {
        var t = this.option.progressive
        return null == t ? (this.option.large ? 1e4 : this.get('progressive')) : t
      }),
      (e.prototype.getProgressiveThreshold = function () {
        var t = this.option.progressiveThreshold
        return null == t ? (this.option.large ? 2e4 : this.get('progressiveThreshold')) : t
      }),
      (e.prototype.getZLevelKey = function () {
        var t = this.getModel('effect'),
          e = t.get('trailLength')
        return this.getData().count() > this.getProgressiveThreshold() ? this.id : t.get('show') && e > 0 ? e + '' : ''
      }),
      (e.type = 'series.lines'),
      (e.dependencies = ['grid', 'polar', 'geo', 'calendar']),
      (e.defaultOption = {
        coordinateSystem: 'geo',
        z: 2,
        legendHoverLink: !0,
        xAxisIndex: 0,
        yAxisIndex: 0,
        symbol: ['none', 'none'],
        symbolSize: [10, 10],
        geoIndex: 0,
        effect: { show: !1, period: 4, constantSpeed: 0, symbol: 'circle', symbolSize: 3, loop: !0, trailLength: 0.2 },
        large: !1,
        largeThreshold: 2e3,
        polyline: !1,
        clip: !0,
        label: { show: !1, position: 'end' },
        lineStyle: { opacity: 0.5 }
      }),
      e
    )
  })(Wy)
  function JN(t) {
    return t instanceof Array || (t = [t, t]), t
  }
  var QN = {
    seriesType: 'lines',
    reset: function (t) {
      var e = JN(t.get('symbol')),
        n = JN(t.get('symbolSize')),
        i = t.getData()
      return (
        i.setVisual('fromSymbol', e && e[0]),
        i.setVisual('toSymbol', e && e[1]),
        i.setVisual('fromSymbolSize', n && n[0]),
        i.setVisual('toSymbolSize', n && n[1]),
        {
          dataEach: i.hasItemOption
            ? function (t, e) {
                var n = t.getItemModel(e),
                  i = JN(n.getShallow('symbol', !0)),
                  r = JN(n.getShallow('symbolSize', !0))
                i[0] && t.setItemVisual(e, 'fromSymbol', i[0]),
                  i[1] && t.setItemVisual(e, 'toSymbol', i[1]),
                  r[0] && t.setItemVisual(e, 'fromSymbolSize', r[0]),
                  r[1] && t.setItemVisual(e, 'toSymbolSize', r[1])
              }
            : null
        }
      )
    }
  }
  var tz = (function () {
    function t() {
      ;(this.blurSize = 30), (this.pointSize = 20), (this.maxOpacity = 1), (this.minOpacity = 0), (this._gradientPixels = { inRange: null, outOfRange: null })
      var t = c.createCanvas()
      this.canvas = t
    }
    return (
      (t.prototype.update = function (t, e, n, i, r, o) {
        var a = this._getBrush(),
          s = this._getGradient(r, 'inRange'),
          l = this._getGradient(r, 'outOfRange'),
          u = this.pointSize + this.blurSize,
          c = this.canvas,
          h = c.getContext('2d'),
          d = t.length
        ;(c.width = e), (c.height = n)
        for (var p = 0; p < d; ++p) {
          var f = t[p],
            g = f[0],
            y = f[1],
            v = i(f[2])
          ;(h.globalAlpha = v), h.drawImage(a, g - u, y - u)
        }
        if (!c.width || !c.height) return c
        for (var m = h.getImageData(0, 0, c.width, c.height), x = m.data, _ = 0, b = x.length, w = this.minOpacity, S = this.maxOpacity - w; _ < b; ) {
          v = x[_ + 3] / 256
          var M = 4 * Math.floor(255 * v)
          if (v > 0) {
            var I = o(v) ? s : l
            v > 0 && (v = v * S + w), (x[_++] = I[M]), (x[_++] = I[M + 1]), (x[_++] = I[M + 2]), (x[_++] = I[M + 3] * v * 256)
          } else _ += 4
        }
        return h.putImageData(m, 0, 0), c
      }),
      (t.prototype._getBrush = function () {
        var t = this._brushCanvas || (this._brushCanvas = c.createCanvas()),
          e = this.pointSize + this.blurSize,
          n = 2 * e
        ;(t.width = n), (t.height = n)
        var i = t.getContext('2d')
        return (
          i.clearRect(0, 0, n, n),
          (i.shadowOffsetX = n),
          (i.shadowBlur = this.blurSize),
          (i.shadowColor = tf.color.neutral99),
          i.beginPath(),
          i.arc(-e, e, this.pointSize, 0, 2 * Math.PI, !0),
          i.closePath(),
          i.fill(),
          t
        )
      }),
      (t.prototype._getGradient = function (t, e) {
        for (var n = this._gradientPixels, i = n[e] || (n[e] = new Uint8ClampedArray(1024)), r = [0, 0, 0, 0], o = 0, a = 0; a < 256; a++)
          t[e](a / 255, !0, r), (i[o++] = r[0]), (i[o++] = r[1]), (i[o++] = r[2]), (i[o++] = r[3])
        return i
      }),
      t
    )
  })()
  function ez(t) {
    var e = t.dimensions
    return 'lng' === e[0] && 'lat' === e[1]
  }
  var nz = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          var i
          e.eachComponent('visualMap', function (e) {
            e.eachTargetSeries(function (n) {
              n === t && (i = e)
            })
          }),
            (this._progressiveEls = null),
            this.group.removeAll()
          var r = t.coordinateSystem
          'cartesian2d' === r.type || 'calendar' === r.type || 'matrix' === r.type ? this._renderOnGridLike(t, n, 0, t.getData().count()) : ez(r) && this._renderOnGeo(r, t, i, n)
        }),
        (e.prototype.incrementalPrepareRender = function (t, e, n) {
          this.group.removeAll()
        }),
        (e.prototype.incrementalRender = function (t, e, n, i) {
          var r = e.coordinateSystem
          r && (ez(r) ? this.render(e, n, i) : ((this._progressiveEls = []), this._renderOnGridLike(e, i, t.start, t.end, !0)))
        }),
        (e.prototype.eachRendered = function (t) {
          Bh(this._progressiveEls || this.group, t)
        }),
        (e.prototype._renderOnGridLike = function (t, e, n, i, r) {
          var o,
            a,
            s,
            l,
            u = t.coordinateSystem,
            c = SI(u, 'cartesian2d'),
            h = SI(u, 'matrix')
          if (c) {
            var d = u.getAxis('x'),
              p = u.getAxis('y')
            0, (o = d.getBandWidth() + 0.5), (a = p.getBandWidth() + 0.5), (s = d.scale.getExtent()), (l = p.scale.getExtent())
          }
          for (
            var f = this.group,
              g = t.getData(),
              y = t.getModel(['emphasis', 'itemStyle']).getItemStyle(),
              v = t.getModel(['blur', 'itemStyle']).getItemStyle(),
              m = t.getModel(['select', 'itemStyle']).getItemStyle(),
              x = t.get(['itemStyle', 'borderRadius']),
              _ = Jh(t),
              b = t.getModel('emphasis'),
              w = b.get('focus'),
              S = b.get('blurScope'),
              M = b.get('disabled'),
              I = c || h ? [g.mapDimension('x'), g.mapDimension('y'), g.mapDimension('value')] : [g.mapDimension('time'), g.mapDimension('value')],
              T = n;
            T < i;
            T++
          ) {
            var C = void 0,
              D = g.getItemVisual(T, 'style')
            if (c) {
              var A = g.get(I[0], T),
                k = g.get(I[1], T)
              if (isNaN(g.get(I[2], T)) || isNaN(A) || isNaN(k) || A < s[0] || A > s[1] || k < l[0] || k > l[1]) continue
              var L = u.dataToPoint([A, k])
              C = new xl({ shape: { x: L[0] - o / 2, y: L[1] - a / 2, width: o, height: a }, style: D })
            } else if (h) {
              if (nt((P = u.dataToLayout([g.get(I[0], T), g.get(I[1], T)]).rect).x)) continue
              C = new xl({ z2: 1, shape: P, style: D })
            } else {
              if (isNaN(g.get(I[1], T))) continue
              var P,
                O = u.dataToLayout([g.get(I[0], T)])
              if (nt((P = O.contentRect || O.rect).x) || nt(P.y)) continue
              C = new xl({ z2: 1, shape: P, style: D })
            }
            if (g.hasItemOption) {
              var R = g.getItemModel(T),
                N = R.getModel('emphasis')
              ;(y = N.getModel('itemStyle').getItemStyle()),
                (v = R.getModel(['blur', 'itemStyle']).getItemStyle()),
                (m = R.getModel(['select', 'itemStyle']).getItemStyle()),
                (x = R.get(['itemStyle', 'borderRadius'])),
                (w = N.get('focus')),
                (S = N.get('blurScope')),
                (M = N.get('disabled')),
                (_ = Jh(R))
            }
            C.shape.r = x
            var z = t.getRawValue(T),
              E = '-'
            z && null != z[2] && (E = z[2] + ''),
              $h(C, _, { labelFetcher: t, labelDataIndex: T, defaultOpacity: D.opacity, defaultText: E }),
              (C.ensureState('emphasis').style = y),
              (C.ensureState('blur').style = v),
              (C.ensureState('select').style = m),
              Tu(C, w, S, M),
              (C.incremental = r),
              r && (C.states.emphasis.hoverLayer = !0),
              f.add(C),
              g.setItemGraphicEl(T, C),
              this._progressiveEls && this._progressiveEls.push(C)
          }
        }),
        (e.prototype._renderOnGeo = function (t, e, n, i) {
          var r = n.targetVisuals.inRange,
            o = n.targetVisuals.outOfRange,
            a = e.getData(),
            s = this._hmLayer || this._hmLayer || new tz()
          ;(s.blurSize = e.get('blurSize')), (s.pointSize = e.get('pointSize')), (s.minOpacity = e.get('minOpacity')), (s.maxOpacity = e.get('maxOpacity'))
          var l = t.getViewRect().clone(),
            u = t.getRoamTransform()
          l.applyTransform(u)
          var c = Math.max(l.x, 0),
            h = Math.max(l.y, 0),
            d = Math.min(l.width + l.x, i.getWidth()),
            p = Math.min(l.height + l.y, i.getHeight()),
            f = d - c,
            g = p - h,
            y = [a.mapDimension('lng'), a.mapDimension('lat'), a.mapDimension('value')],
            v = a.mapArray(y, function (e, n, i) {
              var r = t.dataToPoint([e, n])
              return (r[0] -= c), (r[1] -= h), r.push(i), r
            }),
            m = n.getExtent(),
            x =
              'visualMap.continuous' === n.type
                ? (function (t, e) {
                    var n = t[1] - t[0]
                    return (
                      (e = [(e[0] - t[0]) / n, (e[1] - t[0]) / n]),
                      function (t) {
                        return t >= e[0] && t <= e[1]
                      }
                    )
                  })(m, n.option.range)
                : (function (t, e, n) {
                    var i = t[1] - t[0],
                      r = (e = E(e, function (e) {
                        return { interval: [(e.interval[0] - t[0]) / i, (e.interval[1] - t[0]) / i] }
                      })).length,
                      o = 0
                    return function (t) {
                      var i
                      for (i = o; i < r; i++)
                        if ((a = e[i].interval)[0] <= t && t <= a[1]) {
                          o = i
                          break
                        }
                      if (i === r)
                        for (i = o - 1; i >= 0; i--) {
                          var a
                          if ((a = e[i].interval)[0] <= t && t <= a[1]) {
                            o = i
                            break
                          }
                        }
                      return i >= 0 && i < r && n[i]
                    }
                  })(m, n.getPieceList(), n.option.selected)
          s.update(v, f, g, r.color.getNormalizer(), { inRange: r.color.getColorMapper(), outOfRange: o.color.getColorMapper() }, x)
          var _ = new dl({ style: { width: f, height: g, x: c, y: h, image: s.canvas }, silent: !0 })
          this.group.add(_)
        }),
        (e.type = 'heatmap'),
        e
      )
    })(tv),
    iz = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.getInitialData = function (t, e) {
          return Z_(null, this, { generateCoord: 'value' })
        }),
        (e.prototype.preventIncremental = function () {
          var t = Tp.get(this.get('coordinateSystem'))
          if (t && t.dimensions) return 'lng' === t.dimensions[0] && 'lat' === t.dimensions[1]
        }),
        (e.type = 'series.heatmap'),
        (e.dependencies = ['grid', 'geo', 'calendar', 'matrix']),
        (e.defaultOption = {
          coordinateSystem: 'cartesian2d',
          z: 2,
          geoIndex: 0,
          blurSize: 30,
          pointSize: 20,
          maxOpacity: 1,
          minOpacity: 0,
          select: { itemStyle: { borderColor: tf.color.primary } }
        }),
        e
      )
    })(Wy)
  var rz = ['itemStyle', 'borderWidth'],
    oz = [
      { xy: 'x', wh: 'width', index: 0, posDesc: ['left', 'right'] },
      { xy: 'y', wh: 'height', index: 1, posDesc: ['top', 'bottom'] }
    ],
    az = new nc(),
    sz = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          var i = this.group,
            r = t.getData(),
            o = this._data,
            a = t.coordinateSystem,
            s = a.getBaseAxis().isHorizontal(),
            l = a.master.getRect(),
            u = {
              ecSize: { width: n.getWidth(), height: n.getHeight() },
              seriesModel: t,
              coordSys: a,
              coordSysExtent: [
                [l.x, l.x + l.width],
                [l.y, l.y + l.height]
              ],
              isHorizontal: s,
              valueDim: oz[+s],
              categoryDim: oz[1 - +s]
            }
          r.diff(o)
            .add(function (t) {
              if (r.hasValue(t)) {
                var e = gz(r, t),
                  n = lz(r, t, e, u),
                  o = mz(r, u, n)
                r.setItemGraphicEl(t, o), i.add(o), Sz(o, u, n)
              }
            })
            .update(function (t, e) {
              var n = o.getItemGraphicEl(e)
              if (r.hasValue(t)) {
                var a = gz(r, t),
                  s = lz(r, t, a, u),
                  l = _z(r, s)
                n && l !== n.__pictorialShapeStr && (i.remove(n), r.setItemGraphicEl(t, null), (n = null)),
                  n
                    ? (function (t, e, n) {
                        var i = n.animationModel,
                          r = n.dataIndex,
                          o = t.__pictorialBundle
                        th(o, { x: n.bundlePosition[0], y: n.bundlePosition[1] }, i, r), n.symbolRepeat ? hz(t, e, n, !0) : dz(t, e, n, !0)
                        pz(t, n, !0), fz(t, e, n, !0)
                      })(n, u, s)
                    : (n = mz(r, u, s, !0)),
                  r.setItemGraphicEl(t, n),
                  (n.__pictorialSymbolMeta = s),
                  i.add(n),
                  Sz(n, u, s)
              } else i.remove(n)
            })
            .remove(function (t) {
              var e = o.getItemGraphicEl(t)
              e && xz(o, t, e.__pictorialSymbolMeta.animationModel, e)
            })
            .execute()
          var c = t.get('clip', !0) ? wI(t.coordinateSystem, !1, t) : null
          return c ? i.setClipPath(c) : i.removeClipPath(), (this._data = r), this.group
        }),
        (e.prototype.remove = function (t, e) {
          var n = this.group,
            i = this._data
          t.get('animation')
            ? i &&
              i.eachItemGraphicEl(function (e) {
                xz(i, zl(e).dataIndex, t, e)
              })
            : n.removeAll()
        }),
        (e.type = 'pictorialBar'),
        e
      )
    })(tv)
  function lz(t, e, n, i) {
    var r = t.getItemLayout(e),
      o = n.get('symbolRepeat'),
      a = n.get('symbolClip'),
      s = n.get('symbolPosition') || 'start',
      l = ((n.get('symbolRotate') || 0) * Math.PI) / 180 || 0,
      u = n.get('symbolPatternSize') || 2,
      c = n.isAnimationEnabled(),
      h = {
        dataIndex: e,
        layout: r,
        itemModel: n,
        symbolType: t.getItemVisual(e, 'symbol') || 'circle',
        style: t.getItemVisual(e, 'style'),
        symbolClip: a,
        symbolRepeat: o,
        symbolRepeatDirection: n.get('symbolRepeatDirection'),
        symbolPatternSize: u,
        rotation: l,
        animationModel: c ? n : null,
        hoverScale: c && n.get(['emphasis', 'scale']),
        z2: n.getShallow('z', !0) || 0
      }
    !(function (t, e, n, i, r) {
      var o,
        a = i.valueDim,
        s = t.get('symbolBoundingData'),
        l = i.coordSys.getOtherAxis(i.coordSys.getBaseAxis()),
        u = l.toGlobalCoord(l.dataToCoord(0)),
        c = 1 - +(n[a.wh] <= 0)
      if (U(s)) {
        var h = [uz(l, s[0]) - u, uz(l, s[1]) - u]
        h[1] < h[0] && h.reverse(), (o = h[c])
      } else o = null != s ? uz(l, s) - u : e ? i.coordSysExtent[a.index][c] - u : n[a.wh]
      ;(r.boundingLength = o), e && (r.repeatCutLength = n[a.wh])
      var d = 'x' === a.xy,
        p = l.inverse
      r.pxSign = (d && !p) || (!d && p) ? (o >= 0 ? 1 : -1) : o > 0 ? 1 : -1
    })(n, o, r, i, h),
      (function (t, e, n, i, r, o, a, s, l, u) {
        var c,
          h = l.valueDim,
          d = l.categoryDim,
          p = Math.abs(n[d.wh]),
          f = t.getItemVisual(e, 'symbolSize')
        c = U(f) ? f.slice() : null == f ? ['100%', '100%'] : [f, f]
        ;(c[d.index] = yo(c[d.index], p)), (c[h.index] = yo(c[h.index], i ? p : Math.abs(o))), (u.symbolSize = c)
        var g = (u.symbolScale = [c[0] / s, c[1] / s])
        g[h.index] *= (l.isHorizontal ? -1 : 1) * a
      })(t, e, r, o, 0, h.boundingLength, h.pxSign, u, i, h),
      (function (t, e, n, i, r) {
        var o = t.get(rz) || 0
        o && (az.attr({ scaleX: e[0], scaleY: e[1], rotation: n }), az.updateTransform(), (o /= az.getLineScale()), (o *= e[i.valueDim.index]))
        r.valueLineWidth = o || 0
      })(n, h.symbolScale, l, i, h)
    var d = h.symbolSize,
      p = pm(n.get('symbolOffset'), d)
    return (
      (function (t, e, n, i, r, o, a, s, l, u, c, h) {
        var d = c.categoryDim,
          p = c.valueDim,
          f = h.pxSign,
          g = Math.max(e[p.index] + s, 0),
          y = g
        if (i) {
          var v = Math.abs(l),
            m = it(t.get('symbolMargin'), '15%') + '',
            x = !1
          m.lastIndexOf('!') === m.length - 1 && ((x = !0), (m = m.slice(0, m.length - 1)))
          var _ = yo(m, e[p.index]),
            b = Math.max(g + 2 * _, 0),
            w = x ? 0 : 2 * _,
            S = zo(i),
            M = S ? i : Mz((v + w) / b)
          ;(b = g + 2 * (_ = (v - M * g) / 2 / (x ? M : Math.max(M - 1, 1)))),
            (w = x ? 0 : 2 * _),
            S || 'fixed' === i || (M = u ? Mz((Math.abs(u) + w) / b) : 0),
            (y = M * b - w),
            (h.repeatTimes = M),
            (h.symbolMargin = _)
        }
        var I = f * (y / 2),
          T = (h.pathPosition = [])
        ;(T[d.index] = n[d.wh] / 2), (T[p.index] = 'start' === a ? I : 'end' === a ? l - I : l / 2), o && ((T[0] += o[0]), (T[1] += o[1]))
        var C = (h.bundlePosition = [])
        ;(C[d.index] = n[d.xy]), (C[p.index] = n[p.xy])
        var D = (h.barRectShape = A({}, n))
        ;(D[p.wh] = f * Math.max(Math.abs(n[p.wh]), Math.abs(T[p.index] + I))), (D[d.wh] = n[d.wh])
        var k = (h.clipShape = {})
        ;(k[d.xy] = -n[d.xy]), (k[d.wh] = c.ecSize[d.wh]), (k[p.xy] = 0), (k[p.wh] = n[p.wh])
      })(n, d, r, o, 0, p, s, h.valueLineWidth, h.boundingLength, h.repeatCutLength, i, h),
      h
    )
  }
  function uz(t, e) {
    return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))
  }
  function cz(t) {
    var e = t.symbolPatternSize,
      n = hm(t.symbolType, -e / 2, -e / 2, e, e)
    return n.attr({ culling: !0 }), 'image' !== n.type && n.setStyle({ strokeNoScale: !0 }), n
  }
  function hz(t, e, n, i) {
    var r = t.__pictorialBundle,
      o = n.symbolSize,
      a = n.valueLineWidth,
      s = n.pathPosition,
      l = e.valueDim,
      u = n.repeatTimes || 0,
      c = 0,
      h = o[e.valueDim.index] + a + 2 * n.symbolMargin
    for (
      bz(t, function (t) {
        ;(t.__pictorialAnimationIndex = c),
          (t.__pictorialRepeatTimes = u),
          c < u
            ? wz(t, null, f(c), n, i)
            : wz(t, null, { scaleX: 0, scaleY: 0 }, n, i, function () {
                r.remove(t)
              }),
          c++
      });
      c < u;
      c++
    ) {
      var d = cz(n)
      ;(d.__pictorialAnimationIndex = c), (d.__pictorialRepeatTimes = u), r.add(d)
      var p = f(c)
      wz(d, { x: p.x, y: p.y, scaleX: 0, scaleY: 0 }, { scaleX: p.scaleX, scaleY: p.scaleY, rotation: p.rotation }, n, i)
    }
    function f(t) {
      var e = s.slice(),
        i = n.pxSign,
        r = t
      return (
        ('start' === n.symbolRepeatDirection ? i > 0 : i < 0) && (r = u - 1 - t),
        (e[l.index] = h * (r - u / 2 + 0.5) + s[l.index]),
        { x: e[0], y: e[1], scaleX: n.symbolScale[0], scaleY: n.symbolScale[1], rotation: n.rotation }
      )
    }
  }
  function dz(t, e, n, i) {
    var r = t.__pictorialBundle,
      o = t.__pictorialMainPath
    o
      ? wz(o, null, { x: n.pathPosition[0], y: n.pathPosition[1], scaleX: n.symbolScale[0], scaleY: n.symbolScale[1], rotation: n.rotation }, n, i)
      : ((o = t.__pictorialMainPath = cz(n)),
        r.add(o),
        wz(o, { x: n.pathPosition[0], y: n.pathPosition[1], scaleX: 0, scaleY: 0, rotation: n.rotation }, { scaleX: n.symbolScale[0], scaleY: n.symbolScale[1] }, n, i))
  }
  function pz(t, e, n) {
    var i = A({}, e.barRectShape),
      r = t.__pictorialBarRect
    r
      ? wz(r, null, { shape: i }, e, n)
      : (((r = t.__pictorialBarRect = new xl({ z2: 2, shape: i, silent: !0, style: { stroke: 'transparent', fill: 'transparent', lineWidth: 0 } })).disableMorphing = !0), t.add(r))
  }
  function fz(t, e, n, i) {
    if (n.symbolClip) {
      var r = t.__pictorialClipPath,
        o = A({}, n.clipShape),
        a = e.valueDim,
        s = n.animationModel,
        l = n.dataIndex
      if (r) th(r, { shape: o }, s, l)
      else {
        ;(o[a.wh] = 0), (r = new xl({ shape: o })), t.__pictorialBundle.setClipPath(r), (t.__pictorialClipPath = r)
        var u = {}
        ;(u[a.wh] = n.clipShape[a.wh]), Zh[i ? 'updateProps' : 'initProps'](r, { shape: u }, s, l)
      }
    }
  }
  function gz(t, e) {
    var n = t.getItemModel(e)
    return (n.getAnimationDelayParams = yz), (n.isAnimationEnabled = vz), n
  }
  function yz(t) {
    return { index: t.__pictorialAnimationIndex, count: t.__pictorialRepeatTimes }
  }
  function vz() {
    return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation')
  }
  function mz(t, e, n, i) {
    var r = new to(),
      o = new to()
    return (
      r.add(o),
      (r.__pictorialBundle = o),
      (o.x = n.bundlePosition[0]),
      (o.y = n.bundlePosition[1]),
      n.symbolRepeat ? hz(r, e, n) : dz(r, 0, n),
      pz(r, n, i),
      fz(r, e, n, i),
      (r.__pictorialShapeStr = _z(t, n)),
      (r.__pictorialSymbolMeta = n),
      r
    )
  }
  function xz(t, e, n, i) {
    var r = i.__pictorialBarRect
    r && r.removeTextContent()
    var o = []
    bz(i, function (t) {
      o.push(t)
    }),
      i.__pictorialMainPath && o.push(i.__pictorialMainPath),
      i.__pictorialClipPath && (n = null),
      z(o, function (t) {
        ih(t, { scaleX: 0, scaleY: 0 }, n, e, function () {
          i.parent && i.parent.remove(i)
        })
      }),
      t.setItemGraphicEl(e, null)
  }
  function _z(t, e) {
    return [t.getItemVisual(e.dataIndex, 'symbol') || 'none', !!e.symbolRepeat, !!e.symbolClip].join(':')
  }
  function bz(t, e, n) {
    z(t.__pictorialBundle.children(), function (i) {
      i !== t.__pictorialBarRect && e.call(n, i)
    })
  }
  function wz(t, e, n, i, r, o) {
    e && t.attr(e), i.symbolClip && !r ? n && t.attr(n) : n && Zh[r ? 'updateProps' : 'initProps'](t, n, i.animationModel, i.dataIndex, o)
  }
  function Sz(t, e, n) {
    var i = n.dataIndex,
      r = n.itemModel,
      o = r.getModel('emphasis'),
      a = o.getModel('itemStyle').getItemStyle(),
      s = r.getModel(['blur', 'itemStyle']).getItemStyle(),
      l = r.getModel(['select', 'itemStyle']).getItemStyle(),
      u = r.getShallow('cursor'),
      c = o.get('focus'),
      h = o.get('blurScope'),
      d = o.get('scale')
    bz(t, function (t) {
      if (t instanceof dl) {
        var e = t.style
        t.useStyle(A({ image: e.image, x: e.x, y: e.y, width: e.width, height: e.height }, n.style))
      } else t.useStyle(n.style)
      var i = t.ensureState('emphasis')
      ;(i.style = a),
        d && ((i.scaleX = 1.1 * t.scaleX), (i.scaleY = 1.1 * t.scaleY)),
        (t.ensureState('blur').style = s),
        (t.ensureState('select').style = l),
        u && (t.cursor = u),
        (t.z2 = n.z2)
    })
    var p = e.valueDim.posDesc[+(n.boundingLength > 0)],
      f = t.__pictorialBarRect
    ;(f.ignoreClip = !0),
      $h(f, Jh(r), {
        labelFetcher: e.seriesModel,
        labelDataIndex: i,
        defaultText: nI(e.seriesModel.getData(), i),
        inheritColor: n.style.fill,
        defaultOpacity: n.style.opacity,
        defaultOutsidePosition: p
      }),
      Tu(t, c, h, o.get('disabled'))
  }
  function Mz(t) {
    var e = Math.round(t)
    return Math.abs(t - e) < 1e-4 ? e : Math.ceil(t)
  }
  var Iz = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), (n.hasSymbolVisual = !0), (n.defaultSymbol = 'roundRect'), n
    }
    return (
      n(e, t),
      (e.prototype.getInitialData = function (e) {
        return (e.stack = null), t.prototype.getInitialData.apply(this, arguments)
      }),
      (e.type = 'series.pictorialBar'),
      (e.dependencies = ['grid']),
      (e.defaultOption = Id(VI.defaultOption, {
        symbol: 'circle',
        symbolSize: null,
        symbolRotate: null,
        symbolPosition: null,
        symbolOffset: null,
        symbolMargin: null,
        symbolRepeat: !1,
        symbolRepeatDirection: 'end',
        symbolClip: !1,
        symbolBoundingData: null,
        symbolPatternSize: 400,
        barGap: '-100%',
        clip: !1,
        progressive: 0,
        emphasis: { scale: !1 },
        select: { itemStyle: { borderColor: tf.color.primary } }
      })),
      e
    )
  })(VI)
  var Tz = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), (n._layers = []), n
    }
    return (
      n(e, t),
      (e.prototype.render = function (t, e, n) {
        var i = t.getData(),
          r = this,
          o = this.group,
          a = t.getLayerSeries(),
          s = i.getLayout('layoutInfo'),
          l = s.rect,
          u = s.boundaryGap
        function c(t) {
          return t.name
        }
        ;(o.x = 0), (o.y = l.y + u[0])
        var h = new f_(this._layersSeries || [], a, c, c),
          d = []
        function p(e, n, s) {
          var l = r._layers
          if ('remove' !== e) {
            for (var u, c, h = [], p = [], f = a[n].indices, g = 0; g < f.length; g++) {
              var y = i.getItemLayout(f[g]),
                v = y.x,
                m = y.y0,
                x = y.y
              h.push(v, m), p.push(v, m + x), (u = i.getItemVisual(f[g], 'style'))
            }
            var _ = i.getItemLayout(f[0]),
              b = t.getModel('label').get('margin'),
              w = t.getModel('emphasis')
            if ('add' === e) {
              var S = (d[n] = new to())
              ;(c = new xI({ shape: { points: h, stackedOnPoints: p, smooth: 0.4, stackedOnSmooth: 0.4, smoothConstraint: !1 }, z2: 0 })),
                S.add(c),
                o.add(S),
                t.isAnimationEnabled() &&
                  c.setClipPath(
                    (function (t, e, n) {
                      var i = new xl({ shape: { x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20 } })
                      return eh(i, { shape: { x: t.x - 50, width: t.width + 100, height: t.height + 20 } }, e, n), i
                    })(c.getBoundingRect(), t, function () {
                      c.removeClipPath()
                    })
                  )
            } else {
              S = l[s]
              ;(c = S.childAt(0)), o.add(S), (d[n] = S), th(c, { shape: { points: h, stackedOnPoints: p } }, t), ah(c)
            }
            $h(c, Jh(t), { labelDataIndex: f[g - 1], defaultText: i.getName(f[g - 1]), inheritColor: u.fill }, { normal: { verticalAlign: 'middle' } }),
              c.setTextConfig({ position: null, local: !0 })
            var M = c.getTextContent()
            M && ((M.x = _.x - b), (M.y = _.y0 + _.y / 2)), c.useStyle(u), i.setItemGraphicEl(n, c), ku(c, t), Tu(c, w.get('focus'), w.get('blurScope'), w.get('disabled'))
          } else o.remove(l[n])
        }
        h
          .add(W(p, this, 'add'))
          .update(W(p, this, 'update'))
          .remove(W(p, this, 'remove'))
          .execute(),
          (this._layersSeries = a),
          (this._layers = d)
      }),
      (e.type = 'themeRiver'),
      e
    )
  })(tv)
  var Cz = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.init = function (e) {
        t.prototype.init.apply(this, arguments), (this.legendVisualProvider = new CT(W(this.getData, this), W(this.getRawData, this)))
      }),
      (e.prototype.fixData = function (t) {
        var e = t.length,
          n = {},
          i = ga(t, function (t) {
            return n.hasOwnProperty(t[0] + '') || (n[t[0] + ''] = -1), t[2]
          }),
          r = []
        i.buckets.each(function (t, e) {
          r.push({ name: e, dataList: t })
        })
        for (var o = r.length, a = 0; a < o; ++a) {
          for (var s = r[a].name, l = 0; l < r[a].dataList.length; ++l) {
            var u = r[a].dataList[l][0] + ''
            n[u] = a
          }
          for (var u in n) n.hasOwnProperty(u) && n[u] !== a && ((n[u] = a), (t[e] = [u, 0, s]), e++)
        }
        return t
      }),
      (e.prototype.getInitialData = function (t, e) {
        for (
          var n = this.getReferringComponents('singleAxis', ha).models[0].get('type'),
            i = V(t.data, function (t) {
              return void 0 !== t[2]
            }),
            r = this.fixData(i || []),
            o = [],
            a = (this.nameMap = yt()),
            s = 0,
            l = 0;
          l < r.length;
          ++l
        )
          o.push(r[l][2]), a.get(r[l][2]) || (a.set(r[l][2], s), s++)
        var u = V_(r, {
            coordDimensions: ['single'],
            dimensionsDefine: [
              { name: 'time', type: v_(n) },
              { name: 'value', type: 'float' },
              { name: 'name', type: 'ordinal' }
            ],
            encodeDefine: { single: 0, value: 1, itemName: 2 }
          }).dimensions,
          c = new B_(u, this)
        return c.initData(r), c
      }),
      (e.prototype.getLayerSeries = function () {
        for (var t = this.getData(), e = t.count(), n = [], i = 0; i < e; ++i) n[i] = i
        var r = t.mapDimension('single'),
          o = ga(n, function (e) {
            return t.get('name', e)
          }),
          a = []
        return (
          o.buckets.each(function (e, n) {
            e.sort(function (e, n) {
              return t.get(r, e) - t.get(r, n)
            }),
              a.push({ name: n, indices: e })
          }),
          a
        )
      }),
      (e.prototype.getAxisTooltipData = function (t, e, n) {
        U(t) || (t = t ? [t] : [])
        for (var i, r = this.getData(), o = this.getLayerSeries(), a = [], s = o.length, l = 0; l < s; ++l) {
          for (var u = Number.MAX_VALUE, c = -1, h = o[l].indices.length, d = 0; d < h; ++d) {
            var p = r.get(t[0], o[l].indices[d]),
              f = Math.abs(p - e)
            f <= u && ((i = p), (u = f), (c = o[l].indices[d]))
          }
          a.push(c)
        }
        return { dataIndices: a, nestestValue: i }
      }),
      (e.prototype.formatTooltip = function (t, e, n) {
        var i = this.getData()
        return Ty('nameValue', { name: i.getName(t), value: i.get(i.mapDimension('value'), t) })
      }),
      (e.type = 'series.themeRiver'),
      (e.dependencies = ['singleAxis']),
      (e.defaultOption = {
        z: 2,
        colorBy: 'data',
        coordinateSystem: 'singleAxis',
        boundaryGap: ['10%', '10%'],
        singleAxisIndex: 0,
        animationEasing: 'linear',
        label: { margin: 4, show: !0, position: 'left', fontSize: 11 },
        emphasis: { label: { show: !0 } }
      }),
      e
    )
  })(Wy)
  function Dz(t, e) {
    t.eachSeriesByType('themeRiver', function (t) {
      var e = t.getData(),
        n = t.coordinateSystem,
        i = {},
        r = n.getRect()
      i.rect = r
      var o = t.get('boundaryGap'),
        a = n.getAxis()
      ;((i.boundaryGap = o), 'horizontal' === a.orient)
        ? ((o[0] = yo(o[0], r.height)), (o[1] = yo(o[1], r.height)), Az(e, t, r.height - o[0] - o[1]))
        : ((o[0] = yo(o[0], r.width)), (o[1] = yo(o[1], r.width)), Az(e, t, r.width - o[0] - o[1]))
      e.setLayout('layoutInfo', i)
    })
  }
  function Az(t, e, n) {
    if (t.count())
      for (
        var i,
          r = e.coordinateSystem,
          o = e.getLayerSeries(),
          a = t.mapDimension('single'),
          s = t.mapDimension('value'),
          l = E(o, function (e) {
            return E(e.indices, function (e) {
              var n = r.dataToPoint(t.get(a, e))
              return (n[1] = t.get(s, e)), n
            })
          }),
          u = (function (t) {
            for (var e = t.length, n = t[0].length, i = [], r = [], o = 0, a = 0; a < n; ++a) {
              for (var s = 0, l = 0; l < e; ++l) s += t[l][a][1]
              s > o && (o = s), i.push(s)
            }
            for (var u = 0; u < n; ++u) r[u] = (o - i[u]) / 2
            o = 0
            for (var c = 0; c < n; ++c) {
              var h = i[c] + r[c]
              h > o && (o = h)
            }
            return { y0: r, max: o }
          })(l),
          c = u.y0,
          h = n / u.max,
          d = o.length,
          p = o[0].indices.length,
          f = 0;
        f < p;
        ++f
      ) {
        ;(i = c[f] * h), t.setItemLayout(o[0].indices[f], { layerIndex: 0, x: l[0][f][0], y0: i, y: l[0][f][1] * h })
        for (var g = 1; g < d; ++g) (i += l[g - 1][f][1] * h), t.setItemLayout(o[g].indices[f], { layerIndex: g, x: l[g][f][0], y0: i, y: l[g][f][1] * h })
      }
  }
  var kz = (function (t) {
      function e(e, n, i, r) {
        var o = t.call(this) || this
        ;(o.z2 = 2), (o.textConfig = { inside: !0 }), (zl(o).seriesIndex = n.seriesIndex)
        var a = new Sl({ z2: 4, silent: e.getModel().get(['label', 'silent']) })
        return o.setTextContent(a), o.updateData(!0, e, n, i, r), o
      }
      return (
        n(e, t),
        (e.prototype.updateData = function (t, e, n, i, r) {
          ;(this.node = e), (e.piece = this), (n = n || this._seriesModel), (i = i || this._ecModel)
          var o = this
          zl(o).dataIndex = e.dataIndex
          var a = e.getModel(),
            s = a.getModel('emphasis'),
            l = e.getLayout(),
            u = A({}, l)
          u.label = null
          var c = e.getVisual('style')
          c.lineJoin = 'bevel'
          var h = e.getVisual('decal')
          h && (c.decal = Bm(h, r))
          var d = YI(a.getModel('itemStyle'), u, !0)
          A(u, d),
            z(Wl, function (t) {
              var e = o.ensureState(t),
                n = a.getModel([t, 'itemStyle'])
              e.style = n.getItemStyle()
              var i = YI(n, u)
              i && (e.shape = i)
            }),
            t ? (o.setShape(u), (o.shape.r = l.r0), eh(o, { shape: { r: l.r } }, n, e.dataIndex)) : (th(o, { shape: u }, n), ah(o)),
            o.useStyle(c),
            this._updateLabel(n)
          var p = a.getShallow('cursor')
          p && o.attr('cursor', p), (this._seriesModel = n || this._seriesModel), (this._ecModel = i || this._ecModel)
          var f = s.get('focus')
          Tu(
            this,
            'relative' === f
              ? vt(e.getAncestorsIndices(), e.getDescendantIndices())
              : 'ancestor' === f
                ? e.getAncestorsIndices()
                : 'descendant' === f
                  ? e.getDescendantIndices()
                  : f,
            s.get('blurScope'),
            s.get('disabled')
          )
        }),
        (e.prototype._updateLabel = function (t) {
          var e = this,
            n = this.node.getModel(),
            i = n.getModel('label'),
            r = this.node.getLayout(),
            o = r.endAngle - r.startAngle,
            a = (r.startAngle + r.endAngle) / 2,
            s = Math.cos(a),
            l = Math.sin(a),
            u = this,
            c = u.getTextContent(),
            h = this.node.dataIndex,
            d = (i.get('minAngle') / 180) * Math.PI,
            p = i.get('show') && !(null != d && Math.abs(o) < d)
          function f(t, e) {
            var n = t.get(e)
            return null == n ? i.get(e) : n
          }
          ;(c.ignore = !p),
            z(Hl, function (i) {
              var d = 'normal' === i ? n.getModel('label') : n.getModel([i, 'label']),
                p = 'normal' === i,
                g = p ? c : c.ensureState(i),
                y = t.getFormattedLabel(h, i)
              p && (y = y || e.node.name), (g.style = Qh(d, {}, null, 'normal' !== i, !0)), y && (g.style.text = y)
              var v = d.get('show')
              null == v || p || (g.ignore = !v)
              var m,
                x = f(d, 'position'),
                _ = p ? u : u.states[i],
                b = _.style.fill
              _.textConfig = { outsideFill: 'inherit' === d.get('color') ? b : null, inside: 'outside' !== x }
              var w = f(d, 'distance') || 0,
                S = f(d, 'align'),
                M = f(d, 'rotate'),
                I = 0.5 * Math.PI,
                T = 1.5 * Math.PI,
                C = Xs('tangential' === M ? Math.PI / 2 - a : a),
                D = C > I && !Co(C - I) && C < T
              'outside' === x
                ? ((m = r.r + w), (S = D ? 'right' : 'left'))
                : S && 'center' !== S
                  ? 'left' === S
                    ? ((m = r.r0 + w), (S = D ? 'right' : 'left'))
                    : 'right' === S && ((m = r.r - w), (S = D ? 'left' : 'right'))
                  : ((m = o === 2 * Math.PI && 0 === r.r0 ? 0 : (r.r + r.r0) / 2), (S = 'center')),
                (g.style.align = S),
                (g.style.verticalAlign = f(d, 'verticalAlign') || 'middle'),
                (g.x = m * s + r.cx),
                (g.y = m * l + r.cy)
              var A = 0
              'radial' === M ? (A = Xs(-a) + (D ? Math.PI : 0)) : 'tangential' === M ? (A = Xs(Math.PI / 2 - a) + (D ? Math.PI : 0)) : j(M) && (A = (M * Math.PI) / 180),
                (g.rotation = Xs(A))
            }),
            c.dirtyStyle()
        }),
        e
      )
    })(xc),
    Lz = 'sunburstRootToNode',
    Pz = 'sunburstHighlight'
  var Oz = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n, i) {
          var r = this
          ;(this.seriesModel = t), (this.api = n), (this.ecModel = e)
          var o = t.getData(),
            a = o.tree.root,
            s = t.getViewRoot(),
            l = this.group,
            u = t.get('renderLabelForZeroData'),
            c = []
          s.eachNode(function (t) {
            c.push(t)
          })
          var h = this._oldChildren || []
          !(function (i, r) {
            if (0 === i.length && 0 === r.length) return
            function s(t) {
              return t.getId()
            }
            function c(s, c) {
              !(function (i, r) {
                u || !i || i.getValue() || (i = null)
                if (i !== a && r !== a)
                  if (r && r.piece)
                    i
                      ? (r.piece.updateData(!1, i, t, e, n), o.setItemGraphicEl(i.dataIndex, r.piece))
                      : (function (t) {
                          if (!t) return
                          t.piece && (l.remove(t.piece), (t.piece = null))
                        })(r)
                  else if (i) {
                    var s = new kz(i, t, e, n)
                    l.add(s), o.setItemGraphicEl(i.dataIndex, s)
                  }
              })(null == s ? null : i[s], null == c ? null : r[c])
            }
            new f_(r, i, s, s).add(c).update(c).remove(H(c, null)).execute()
          })(c, h),
            (function (i, o) {
              o.depth > 0
                ? (r.virtualPiece ? r.virtualPiece.updateData(!1, i, t, e, n) : ((r.virtualPiece = new kz(i, t, e, n)), l.add(r.virtualPiece)),
                  o.piece.off('click'),
                  r.virtualPiece.on('click', function (t) {
                    r._rootToNode(o.parentNode)
                  }))
                : r.virtualPiece && (l.remove(r.virtualPiece), (r.virtualPiece = null))
            })(a, s),
            this._initEvents(),
            (this._oldChildren = c)
        }),
        (e.prototype._initEvents = function () {
          var t = this
          this.group.off('click'),
            this.group.on('click', function (e) {
              var n = !1
              t.seriesModel.getViewRoot().eachNode(function (i) {
                if (!n && i.piece && i.piece === e.target) {
                  var r = i.getModel().get('nodeClick')
                  if ('rootToNode' === r) t._rootToNode(i)
                  else if ('link' === r) {
                    var o = i.getModel(),
                      a = o.get('link')
                    if (a) Sp(a, o.get('target', !0) || '_blank')
                  }
                  n = !0
                }
              })
            })
        }),
        (e.prototype._rootToNode = function (t) {
          t !== this.seriesModel.getViewRoot() && this.api.dispatchAction({ type: Lz, from: this.uid, seriesId: this.seriesModel.id, targetNode: t })
        }),
        (e.prototype.containPoint = function (t, e) {
          var n = e.getData().getItemLayout(0)
          if (n) {
            var i = t[0] - n.cx,
              r = t[1] - n.cy,
              o = Math.sqrt(i * i + r * r)
            return o <= n.r && o >= n.r0
          }
        }),
        (e.type = 'sunburst'),
        e
      )
    })(tv),
    Rz = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.ignoreStyleOnData = !0), n
      }
      return (
        n(e, t),
        (e.prototype.getInitialData = function (t, e) {
          var n = { name: t.name, children: t.data }
          Nz(n)
          var i = (this._levelModels = E(
              t.levels || [],
              function (t) {
                return new wd(t, this, e)
              },
              this
            )),
            r = Ek.createTree(n, this, function (t) {
              t.wrapMethod('getItemModel', function (t, e) {
                var n = r.getNodeByDataIndex(e),
                  o = i[n.depth]
                return o && (t.parentModel = o), t
              })
            })
          return r.data
        }),
        (e.prototype.optionUpdated = function () {
          this.resetViewRoot()
        }),
        (e.prototype.getDataParams = function (e) {
          var n = t.prototype.getDataParams.apply(this, arguments),
            i = this.getData().tree.getNodeByDataIndex(e)
          return (n.treePathInfo = Fk(i, this)), n
        }),
        (e.prototype.getLevelModel = function (t) {
          return this._levelModels && this._levelModels[t.depth]
        }),
        (e.prototype.getViewRoot = function () {
          return this._viewRoot
        }),
        (e.prototype.resetViewRoot = function (t) {
          t ? (this._viewRoot = t) : (t = this._viewRoot)
          var e = this.getRawData().tree.root
          ;(t && (t === e || e.contains(t))) || (this._viewRoot = e)
        }),
        (e.prototype.enableAriaDecal = function () {
          Zk(this)
        }),
        (e.type = 'series.sunburst'),
        (e.defaultOption = {
          z: 2,
          center: ['50%', '50%'],
          radius: [0, '75%'],
          clockwise: !0,
          startAngle: 90,
          minAngle: 0,
          stillShowZeroSum: !0,
          nodeClick: 'rootToNode',
          renderLabelForZeroData: !1,
          label: { rotate: 'radial', show: !0, opacity: 1, align: 'center', position: 'inside', distance: 5, silent: !0 },
          itemStyle: {
            borderWidth: 1,
            borderColor: 'white',
            borderType: 'solid',
            shadowBlur: 0,
            shadowColor: 'rgba(0, 0, 0, 0.2)',
            shadowOffsetX: 0,
            shadowOffsetY: 0,
            opacity: 1
          },
          emphasis: { focus: 'descendant' },
          blur: { itemStyle: { opacity: 0.2 }, label: { opacity: 0.1 } },
          animationType: 'expansion',
          animationDuration: 1e3,
          animationDurationUpdate: 500,
          data: [],
          sort: 'desc'
        }),
        e
      )
    })(Wy)
  function Nz(t) {
    var e = 0
    z(t.children, function (t) {
      Nz(t)
      var n = t.value
      U(n) && (n = n[0]), (e += n)
    })
    var n = t.value
    U(n) && (n = n[0]), (null == n || isNaN(n)) && (n = e), n < 0 && (n = 0), U(t.value) ? (t.value[0] = n) : (t.value = n)
  }
  var zz = Math.PI / 180
  function Ez(t, e, n) {
    e.eachSeriesByType(t, function (t) {
      var e = t.get('center'),
        i = t.get('radius')
      U(i) || (i = [0, i]), U(e) || (e = [e, e])
      var r = n.getWidth(),
        o = n.getHeight(),
        a = Math.min(r, o),
        s = yo(e[0], r),
        l = yo(e[1], o),
        u = yo(i[0], a / 2),
        c = yo(i[1], a / 2),
        h = -t.get('startAngle') * zz,
        d = t.get('minAngle') * zz,
        p = t.getData().tree.root,
        f = t.getViewRoot(),
        g = f.depth,
        y = t.get('sort')
      null != y && Bz(f, y)
      var v = 0
      z(f.children, function (t) {
        !isNaN(t.getValue()) && v++
      })
      var m = f.getValue(),
        x = (Math.PI / (m || v)) * 2,
        _ = f.depth > 0,
        b = f.height - (_ ? -1 : 1),
        w = (c - u) / (b || 1),
        S = t.get('clockwise'),
        M = t.get('stillShowZeroSum'),
        I = S ? 1 : -1,
        T = function (e, n) {
          if (e) {
            var i = n
            if (e !== p) {
              var r = e.getValue(),
                o = 0 === m && M ? x : r * x
              o < d && (o = d), (i = n + I * o)
              var c = e.depth - g - (_ ? -1 : 1),
                h = u + w * c,
                f = u + w * (c + 1),
                y = t.getLevelModel(e)
              if (y) {
                var v = y.get('r0', !0),
                  b = y.get('r', !0),
                  C = y.get('radius', !0)
                null != C && ((v = C[0]), (b = C[1])), null != v && (h = yo(v, a / 2)), null != b && (f = yo(b, a / 2))
              }
              e.setLayout({ angle: o, startAngle: n, endAngle: i, clockwise: S, cx: s, cy: l, r0: h, r: f })
            }
            if (e.children && e.children.length) {
              var D = 0
              z(e.children, function (t) {
                D += T(t, n + D)
              })
            }
            return i - n
          }
        }
      if (_) {
        var C = u,
          D = u + w,
          A = 2 * Math.PI
        p.setLayout({ angle: A, startAngle: h, endAngle: h + A, clockwise: S, cx: s, cy: l, r0: C, r: D })
      }
      T(f, h)
    })
  }
  function Bz(t, e) {
    var n = t.children || []
    ;(t.children = (function (t, e) {
      if (Y(e)) {
        var n = E(t, function (t, e) {
          var n = t.getValue()
          return {
            params: {
              depth: t.depth,
              height: t.height,
              dataIndex: t.dataIndex,
              getValue: function () {
                return n
              }
            },
            index: e
          }
        })
        return (
          n.sort(function (t, n) {
            return e(t.params, n.params)
          }),
          E(n, function (e) {
            return t[e.index]
          })
        )
      }
      var i = 'asc' === e
      return t.sort(function (t, e) {
        var n = (t.getValue() - e.getValue()) * (i ? 1 : -1)
        return 0 === n ? (t.dataIndex - e.dataIndex) * (i ? -1 : 1) : n
      })
    })(n, e)),
      n.length &&
        z(t.children, function (t) {
          Bz(t, e)
        })
  }
  function Vz(t) {
    var e = {}
    t.eachSeriesByType('sunburst', function (t) {
      var n = t.getData(),
        i = n.tree
      i.eachNode(function (r) {
        var o = r.getModel().getModel('itemStyle').getItemStyle()
        o.fill ||
          (o.fill = (function (t, n, i) {
            if (0 === t.depth) return tf.color.neutral50
            for (var r = t; r && r.depth > 1; ) r = r.parentNode
            var o = n.getColorFromPalette(r.name || r.dataIndex + '', e)
            return t.depth > 1 && X(o) && (o = si(o, ((t.depth - 1) / (i - 1)) * 0.5)), o
          })(r, t, i.root.height)),
          A(n.ensureUniqueItemVisual(r.dataIndex, 'style'), o)
      })
    })
  }
  var Gz = { color: 'fill', borderColor: 'stroke' },
    Fz = { symbol: 1, symbolSize: 1, symbolKeepAspect: 1, legendIcon: 1, visualMeta: 1, liftZ: 1, decal: 1 },
    Wz = sa(),
    Hz = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.optionUpdated = function () {
          ;(this.currentZLevel = this.get('zlevel', !0)), (this.currentZ = this.get('z', !0))
        }),
        (e.prototype.getInitialData = function (t, e) {
          return Z_(null, this)
        }),
        (e.prototype.getDataParams = function (e, n, i) {
          var r = t.prototype.getDataParams.call(this, e, n)
          return i && (r.info = Wz(i).info), r
        }),
        (e.type = 'series.custom'),
        (e.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar', 'matrix']),
        (e.defaultOption = { coordinateSystem: 'cartesian2d', z: 2, legendHoverLink: !0, clip: !1 }),
        e
      )
    })(Wy)
  function Uz(t, e) {
    return (
      (e = e || [0, 0]),
      E(
        ['x', 'y'],
        function (n, i) {
          var r = this.getAxis(n),
            o = e[i],
            a = t[i] / 2
          return 'category' === r.type ? r.getBandWidth() : Math.abs(r.dataToCoord(o - a) - r.dataToCoord(o + a))
        },
        this
      )
    )
  }
  function Yz(t, e) {
    return (
      (e = e || [0, 0]),
      E(
        [0, 1],
        function (n) {
          var i = e[n],
            r = t[n] / 2,
            o = [],
            a = []
          return (o[n] = i - r), (a[n] = i + r), (o[1 - n] = a[1 - n] = e[1 - n]), Math.abs(this.dataToPoint(o)[n] - this.dataToPoint(a)[n])
        },
        this
      )
    )
  }
  function Xz(t, e) {
    var n = this.getAxis(),
      i = e instanceof Array ? e[0] : e,
      r = (t instanceof Array ? t[0] : t) / 2
    return 'category' === n.type ? n.getBandWidth() : Math.abs(n.dataToCoord(i - r) - n.dataToCoord(i + r))
  }
  function Zz(t, e) {
    return (
      (e = e || [0, 0]),
      E(
        ['Radius', 'Angle'],
        function (n, i) {
          var r = this['get' + n + 'Axis'](),
            o = e[i],
            a = t[i] / 2,
            s = 'category' === r.type ? r.getBandWidth() : Math.abs(r.dataToCoord(o - a) - r.dataToCoord(o + a))
          return 'Angle' === n && (s = (s * Math.PI) / 180), s
        },
        this
      )
    )
  }
  function jz(t, e, n, i) {
    return t && (t.legacy || (!1 !== t.legacy && !n && !i && 'tspan' !== e && ('text' === e || _t(t, 'text'))))
  }
  function qz(t, e, n) {
    var i,
      r,
      o,
      a = t
    if ('text' === e) o = a
    else {
      ;(o = {}),
        _t(a, 'text') && (o.text = a.text),
        _t(a, 'rich') && (o.rich = a.rich),
        _t(a, 'textFill') && (o.fill = a.textFill),
        _t(a, 'textStroke') && (o.stroke = a.textStroke),
        _t(a, 'fontFamily') && (o.fontFamily = a.fontFamily),
        _t(a, 'fontSize') && (o.fontSize = a.fontSize),
        _t(a, 'fontStyle') && (o.fontStyle = a.fontStyle),
        _t(a, 'fontWeight') && (o.fontWeight = a.fontWeight),
        (r = { type: 'text', style: o, silent: !0 }),
        (i = {})
      var s = _t(a, 'textPosition')
      n ? (i.position = s ? a.textPosition : 'inside') : s && (i.position = a.textPosition),
        _t(a, 'textPosition') && (i.position = a.textPosition),
        _t(a, 'textOffset') && (i.offset = a.textOffset),
        _t(a, 'textRotation') && (i.rotation = a.textRotation),
        _t(a, 'textDistance') && (i.distance = a.textDistance)
    }
    return (
      Kz(o, t),
      z(o.rich, function (t) {
        Kz(t, t)
      }),
      { textConfig: i, textContent: r }
    )
  }
  function Kz(t, e) {
    e &&
      ((e.font = e.textFont || e.font),
      _t(e, 'textStrokeWidth') && (t.lineWidth = e.textStrokeWidth),
      _t(e, 'textAlign') && (t.align = e.textAlign),
      _t(e, 'textVerticalAlign') && (t.verticalAlign = e.textVerticalAlign),
      _t(e, 'textLineHeight') && (t.lineHeight = e.textLineHeight),
      _t(e, 'textWidth') && (t.width = e.textWidth),
      _t(e, 'textHeight') && (t.height = e.textHeight),
      _t(e, 'textBackgroundColor') && (t.backgroundColor = e.textBackgroundColor),
      _t(e, 'textPadding') && (t.padding = e.textPadding),
      _t(e, 'textBorderColor') && (t.borderColor = e.textBorderColor),
      _t(e, 'textBorderWidth') && (t.borderWidth = e.textBorderWidth),
      _t(e, 'textBorderRadius') && (t.borderRadius = e.textBorderRadius),
      _t(e, 'textBoxShadowColor') && (t.shadowColor = e.textBoxShadowColor),
      _t(e, 'textBoxShadowBlur') && (t.shadowBlur = e.textBoxShadowBlur),
      _t(e, 'textBoxShadowOffsetX') && (t.shadowOffsetX = e.textBoxShadowOffsetX),
      _t(e, 'textBoxShadowOffsetY') && (t.shadowOffsetY = e.textBoxShadowOffsetY))
  }
  function $z(t, e, n) {
    var i = t
    ;(i.textPosition = i.textPosition || n.position || 'inside'),
      null != n.offset && (i.textOffset = n.offset),
      null != n.rotation && (i.textRotation = n.rotation),
      null != n.distance && (i.textDistance = n.distance)
    var r = i.textPosition.indexOf('inside') >= 0,
      o = t.fill || tf.color.neutral99
    Jz(i, e)
    var a = null == i.textFill
    return (
      r
        ? a &&
          ((i.textFill = n.insideFill || tf.color.neutral00),
          !i.textStroke && n.insideStroke && (i.textStroke = n.insideStroke),
          !i.textStroke && (i.textStroke = o),
          null == i.textStrokeWidth && (i.textStrokeWidth = 2))
        : (a && (i.textFill = t.fill || n.outsideFill || tf.color.neutral00), !i.textStroke && n.outsideStroke && (i.textStroke = n.outsideStroke)),
      (i.text = e.text),
      (i.rich = e.rich),
      z(e.rich, function (t) {
        Jz(t, t)
      }),
      i
    )
  }
  function Jz(t, e) {
    e &&
      (_t(e, 'fill') && (t.textFill = e.fill),
      _t(e, 'stroke') && (t.textStroke = e.fill),
      _t(e, 'lineWidth') && (t.textStrokeWidth = e.lineWidth),
      _t(e, 'font') && (t.font = e.font),
      _t(e, 'fontStyle') && (t.fontStyle = e.fontStyle),
      _t(e, 'fontWeight') && (t.fontWeight = e.fontWeight),
      _t(e, 'fontSize') && (t.fontSize = e.fontSize),
      _t(e, 'fontFamily') && (t.fontFamily = e.fontFamily),
      _t(e, 'align') && (t.textAlign = e.align),
      _t(e, 'verticalAlign') && (t.textVerticalAlign = e.verticalAlign),
      _t(e, 'lineHeight') && (t.textLineHeight = e.lineHeight),
      _t(e, 'width') && (t.textWidth = e.width),
      _t(e, 'height') && (t.textHeight = e.height),
      _t(e, 'backgroundColor') && (t.textBackgroundColor = e.backgroundColor),
      _t(e, 'padding') && (t.textPadding = e.padding),
      _t(e, 'borderColor') && (t.textBorderColor = e.borderColor),
      _t(e, 'borderWidth') && (t.textBorderWidth = e.borderWidth),
      _t(e, 'borderRadius') && (t.textBorderRadius = e.borderRadius),
      _t(e, 'shadowColor') && (t.textBoxShadowColor = e.shadowColor),
      _t(e, 'shadowBlur') && (t.textBoxShadowBlur = e.shadowBlur),
      _t(e, 'shadowOffsetX') && (t.textBoxShadowOffsetX = e.shadowOffsetX),
      _t(e, 'shadowOffsetY') && (t.textBoxShadowOffsetY = e.shadowOffsetY),
      _t(e, 'textShadowColor') && (t.textShadowColor = e.textShadowColor),
      _t(e, 'textShadowBlur') && (t.textShadowBlur = e.textShadowBlur),
      _t(e, 'textShadowOffsetX') && (t.textShadowOffsetX = e.textShadowOffsetX),
      _t(e, 'textShadowOffsetY') && (t.textShadowOffsetY = e.textShadowOffsetY))
  }
  var Qz = { position: ['x', 'y'], scale: ['scaleX', 'scaleY'], origin: ['originX', 'originY'] },
    tE = F(Qz),
    eE =
      (B(
        Ar,
        function (t, e) {
          return (t[e] = 1), t
        },
        {}
      ),
      Ar.join(', '),
      ['', 'style', 'shape', 'extra']),
    nE = sa()
  function iE(t, e, n, i, r) {
    var o = t + 'Animation',
      a = Jc(t, i, r) || {},
      s = nE(e).userDuring
    return a.duration > 0 && ((a.during = s ? W(cE, { el: e, userDuring: s }) : null), (a.setToFinal = !0), (a.scope = t)), A(a, n[o]), a
  }
  function rE(t, e, n, i) {
    var r = (i = i || {}).dataIndex,
      o = i.isInit,
      a = i.clearStyle,
      s = n.isAnimationEnabled(),
      l = nE(t),
      u = e.style
    l.userDuring = e.during
    var c = {},
      h = {}
    if (
      ((function (t, e, n) {
        for (var i = 0; i < tE.length; i++) {
          var r = tE[i],
            o = Qz[r],
            a = e[r]
          a && ((n[o[0]] = a[0]), (n[o[1]] = a[1]))
        }
        for (i = 0; i < Ar.length; i++) {
          var s = Ar[i]
          null != e[s] && (n[s] = e[s])
        }
      })(0, e, h),
      'compound' === t.type)
    )
      for (var d = t.shape.paths, p = e.shape.paths, f = 0; f < p.length; f++) {
        dE('shape', p[f], d[f])
      }
    else dE('shape', e, h), dE('extra', e, h)
    if (
      (!o &&
        s &&
        ((function (t, e, n) {
          for (var i = e.transition, r = sE(i) ? Ar : qo(i || []), o = 0; o < r.length; o++) {
            var a = r[o]
            if ('style' !== a && 'shape' !== a && 'extra' !== a) {
              var s = t[a]
              0, (n[a] = s)
            }
          }
        })(t, e, c),
        hE('shape', t, e, c),
        hE('extra', t, e, c),
        (function (t, e, n, i) {
          if (!n) return
          var r,
            o = t.style
          if (o) {
            var a = n.transition,
              s = e.transition
            if (a && !sE(a)) {
              var l = qo(a)
              !r && (r = i.style = {})
              for (var u = 0; u < l.length; u++) {
                var c = o[(f = l[u])]
                r[f] = c
              }
            } else if (t.getAnimationStyleProps && (sE(s) || sE(a) || P(s, 'style') >= 0)) {
              var h = t.getAnimationStyleProps(),
                d = h ? h.style : null
              if (d) {
                !r && (r = i.style = {})
                var p = F(n)
                for (u = 0; u < p.length; u++) {
                  var f
                  if (d[(f = p[u])]) {
                    c = o[f]
                    r[f] = c
                  }
                }
              }
            }
          }
        })(t, e, u, c)),
      (h.style = u),
      (function (t, e, n) {
        var i = e.style
        if (!t.isGroup && i) {
          if (n) {
            t.useStyle({})
            for (var r = t.animators, o = 0; o < r.length; o++) {
              var a = r[o]
              'style' === a.targetName && a.changeTarget(t.style)
            }
          }
          t.setStyle(i)
        }
        e && ((e.style = null), e && t.attr(e), (e.style = i))
      })(t, h, a),
      (function (t, e) {
        _t(e, 'silent') && (t.silent = e.silent), _t(e, 'ignore') && (t.ignore = e.ignore), t instanceof os && _t(e, 'invisible') && (t.invisible = e.invisible)
        t instanceof sl && _t(e, 'autoBatch') && (t.autoBatch = e.autoBatch)
      })(t, e),
      s)
    )
      if (o) {
        var g = {}
        z(eE, function (t) {
          var n = t ? e[t] : e
          n && n.enterFrom && (t && (g[t] = g[t] || {}), A(t ? g[t] : g, n.enterFrom))
        })
        var y = iE('enter', t, e, n, r)
        y.duration > 0 && t.animateFrom(g, y)
      } else
        !(function (t, e, n, i, r) {
          if (r) {
            var o = iE('update', t, e, i, n)
            o.duration > 0 && t.animateFrom(r, o)
          }
        })(t, e, r || 0, n, c)
    oE(t, e), u ? t.dirty() : t.markRedraw()
  }
  function oE(t, e) {
    for (var n = nE(t).leaveToProps, i = 0; i < eE.length; i++) {
      var r = eE[i],
        o = r ? e[r] : e
      o && o.leaveTo && (n || (n = nE(t).leaveToProps = {}), r && (n[r] = n[r] || {}), A(r ? n[r] : n, o.leaveTo))
    }
  }
  function aE(t, e, n, i) {
    if (t) {
      var r = t.parent,
        o = nE(t).leaveToProps
      if (o) {
        var a = iE('update', t, e, n, 0)
        ;(a.done = function () {
          r && r.remove(t), i && i()
        }),
          t.animateTo(o, a)
      } else r && r.remove(t), i && i()
    }
  }
  function sE(t) {
    return 'all' === t
  }
  var lE = {},
    uE = {
      setTransform: function (t, e) {
        return (lE.el[t] = e), this
      },
      getTransform: function (t) {
        return lE.el[t]
      },
      setShape: function (t, e) {
        var n = lE.el
        return ((n.shape || (n.shape = {}))[t] = e), n.dirtyShape && n.dirtyShape(), this
      },
      getShape: function (t) {
        var e = lE.el.shape
        if (e) return e[t]
      },
      setStyle: function (t, e) {
        var n = lE.el,
          i = n.style
        return i && ((i[t] = e), n.dirtyStyle && n.dirtyStyle()), this
      },
      getStyle: function (t) {
        var e = lE.el.style
        if (e) return e[t]
      },
      setExtra: function (t, e) {
        return ((lE.el.extra || (lE.el.extra = {}))[t] = e), this
      },
      getExtra: function (t) {
        var e = lE.el.extra
        if (e) return e[t]
      }
    }
  function cE() {
    var t = this,
      e = t.el
    if (e) {
      var n = nE(e).userDuring,
        i = t.userDuring
      n === i ? ((lE.el = e), i(uE)) : (t.el = t.userDuring = null)
    }
  }
  function hE(t, e, n, i) {
    var r = n[t]
    if (r) {
      var o,
        a = e[t]
      if (a) {
        var s = n.transition,
          l = r.transition
        if (l)
          if ((!o && (o = i[t] = {}), sE(l))) A(o, a)
          else
            for (var u = qo(l), c = 0; c < u.length; c++) {
              var h = a[(p = u[c])]
              o[p] = h
            }
        else if (sE(s) || P(s, t) >= 0) {
          !o && (o = i[t] = {})
          var d = F(a)
          for (c = 0; c < d.length; c++) {
            var p
            h = a[(p = d[c])]
            pE(r[p], h) && (o[p] = h)
          }
        }
      }
    }
  }
  function dE(t, e, n) {
    var i = e[t]
    if (i)
      for (var r = (n[t] = {}), o = F(i), a = 0; a < o.length; a++) {
        var s = o[a]
        r[s] = Wi(i[s])
      }
  }
  function pE(t, e) {
    return N(t) ? t !== e : null != t && isFinite(t)
  }
  var fE = sa(),
    gE = ['percent', 'easing', 'shape', 'style', 'extra']
  function yE(t) {
    t.stopAnimation('keyframe'), t.attr(fE(t))
  }
  function vE(t, e, n) {
    if (n.isAnimationEnabled() && e)
      if (U(e))
        z(e, function (e) {
          vE(t, e, n)
        })
      else {
        var i = e.keyframes,
          r = e.duration
        if (n && null == r) {
          var o = Jc('enter', n, 0)
          r = o && o.duration
        }
        if (i && r) {
          var a = fE(t)
          z(eE, function (n) {
            if (!n || t[n]) {
              var o
              i.sort(function (t, e) {
                return t.percent - e.percent
              }),
                z(i, function (i) {
                  var s = t.animators,
                    l = n ? i[n] : i
                  if (l) {
                    var u = F(l)
                    if (
                      (n ||
                        (u = V(u, function (t) {
                          return P(gE, t) < 0
                        })),
                      u.length)
                    ) {
                      o || ((o = t.animate(n, e.loop, !0)).scope = 'keyframe')
                      for (var c = 0; c < s.length; c++) s[c] !== o && s[c].targetName === o.targetName && s[c].stopTracks(u)
                      n && (a[n] = a[n] || {})
                      var h = n ? a[n] : a
                      z(u, function (e) {
                        h[e] = ((n ? t[n] : t) || {})[e]
                      }),
                        o.whenWithKeys(r * i.percent, l, u, i.easing)
                    }
                  }
                }),
                o &&
                  o
                    .delay(e.delay || 0)
                    .duration(r)
                    .start(e.easing)
            }
          })
        }
      }
  }
  var mE = 'emphasis',
    xE = 'normal',
    _E = 'blur',
    bE = 'select',
    wE = [xE, mE, _E, bE],
    SE = { normal: ['itemStyle'], emphasis: [mE, 'itemStyle'], blur: [_E, 'itemStyle'], select: [bE, 'itemStyle'] },
    ME = { normal: ['label'], emphasis: [mE, 'label'], blur: [_E, 'label'], select: [bE, 'label'] },
    IE = ['x', 'y'],
    TE = { normal: {}, emphasis: {}, blur: {}, select: {} },
    CE = {
      cartesian2d: function (t) {
        var e = t.master.getRect()
        return {
          coordSys: { type: 'cartesian2d', x: e.x, y: e.y, width: e.width, height: e.height },
          api: {
            coord: function (e) {
              return t.dataToPoint(e)
            },
            size: W(Uz, t)
          }
        }
      },
      geo: function (t) {
        var e = t.getBoundingRect()
        return {
          coordSys: { type: 'geo', x: e.x, y: e.y, width: e.width, height: e.height, zoom: t.getZoom() },
          api: {
            coord: function (e) {
              return t.dataToPoint(e)
            },
            size: W(Yz, t)
          }
        }
      },
      single: function (t) {
        var e = t.getRect()
        return {
          coordSys: { type: 'singleAxis', x: e.x, y: e.y, width: e.width, height: e.height },
          api: {
            coord: function (e) {
              return t.dataToPoint(e)
            },
            size: W(Xz, t)
          }
        }
      },
      polar: function (t) {
        var e = t.getRadiusAxis(),
          n = t.getAngleAxis(),
          i = e.getExtent()
        return (
          i[0] > i[1] && i.reverse(),
          {
            coordSys: { type: 'polar', cx: t.cx, cy: t.cy, r: i[1], r0: i[0] },
            api: {
              coord: function (i) {
                var r = e.dataToRadius(i[0]),
                  o = n.dataToAngle(i[1]),
                  a = t.coordToPoint([r, o])
                return a.push(r, (o * Math.PI) / 180), a
              },
              size: W(Zz, t)
            }
          }
        )
      },
      calendar: function (t) {
        var e = t.getRect(),
          n = t.getRangeInfo()
        return {
          coordSys: {
            type: 'calendar',
            x: e.x,
            y: e.y,
            width: e.width,
            height: e.height,
            cellWidth: t.getCellWidth(),
            cellHeight: t.getCellHeight(),
            rangeInfo: { start: n.start, end: n.end, weeks: n.weeks, dayCount: n.allDay }
          },
          api: {
            coord: function (e, n) {
              return t.dataToPoint(e, n)
            },
            layout: function (e, n) {
              return t.dataToLayout(e, n)
            }
          }
        }
      },
      matrix: function (t) {
        var e = t.getRect()
        return {
          coordSys: { type: 'matrix', x: e.x, y: e.y, width: e.width, height: e.height },
          api: {
            coord: function (e, n) {
              return t.dataToPoint(e, n)
            },
            layout: function (e, n) {
              return t.dataToLayout(e, n)
            }
          }
        }
      }
    }
  function DE(t) {
    return t instanceof sl
  }
  function AE(t) {
    return t instanceof os
  }
  var kE = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.render = function (t, e, n, i) {
        this._progressiveEls = null
        var r = this._data,
          o = t.getData(),
          a = this.group,
          s = NE(t, o, e, n)
        r || a.removeAll(),
          o
            .diff(r)
            .add(function (e) {
              EE(n, null, e, s(e, i), t, a, o)
            })
            .remove(function (e) {
              var n = r.getItemGraphicEl(e)
              n && aE(n, Wz(n).option, t)
            })
            .update(function (e, l) {
              var u = r.getItemGraphicEl(l)
              EE(n, u, e, s(e, i), t, a, o)
            })
            .execute()
        var l = t.get('clip', !0) ? wI(t.coordinateSystem, !1, t) : null
        l ? a.setClipPath(l) : a.removeClipPath(), (this._data = o)
      }),
      (e.prototype.incrementalPrepareRender = function (t, e, n) {
        this.group.removeAll(), (this._data = null)
      }),
      (e.prototype.incrementalRender = function (t, e, n, i, r) {
        var o = e.getData(),
          a = NE(e, o, n, i),
          s = (this._progressiveEls = [])
        function l(t) {
          t.isGroup || ((t.incremental = !0), (t.ensureState('emphasis').hoverLayer = !0))
        }
        for (var u = t.start; u < t.end; u++) {
          var c = EE(null, null, u, a(u, r), e, this.group, o)
          c && (c.traverse(l), s.push(c))
        }
      }),
      (e.prototype.eachRendered = function (t) {
        Bh(this._progressiveEls || this.group, t)
      }),
      (e.prototype.filterForExposedEvent = function (t, e, n, i) {
        var r = e.element
        if (null == r || n.name === r) return !0
        for (; (n = n.__hostTarget || n.parent) && n !== this.group; ) if (n.name === r) return !0
        return !1
      }),
      (e.type = 'custom'),
      e
    )
  })(tv)
  function LE(t) {
    var e,
      n = t.type
    if ('path' === n) {
      var i = null != (o = t.shape).width && null != o.height ? { x: o.x || 0, y: o.y || 0, width: o.width, height: o.height } : null,
        r = ZE(o)
      ;(e = gh(r, null, i, o.layout || 'center')), (Wz(e).customPathData = r)
    } else if ('image' === n) (e = new dl({})), (Wz(e).customImagePath = t.style.image)
    else if ('text' === n) e = new Sl({})
    else if ('group' === n) e = new to()
    else if ('compoundPath' === n) {
      var o
      if (!(o = t.shape) || !o.paths) 0, Yo('')
      var a = E(o.paths, function (t) {
        if ('path' === t.type) return gh(t.shape.pathData, t, null)
        var e = fh(t.type)
        if (!e) {
          var n = ''
          0, Yo(n)
        }
        return new e()
      })
      e = new zc({ shape: { paths: a } })
    } else {
      var s = fh(n)
      if (!s) 0, Yo('')
      e = new s()
    }
    return (Wz(e).customGraphicType = n), (e.name = t.name), (e.z2EmphasisLift = 1), (e.z2SelectLift = 1), e
  }
  function PE(t, e, n, i, r, o, a) {
    yE(e)
    var s = r && r.normal.cfg
    s && e.setTextConfig(s), i && null == i.transition && (i.transition = IE)
    var l = i && i.style
    if (l) {
      if ('text' === e.type) {
        var u = l
        _t(u, 'textFill') && (u.fill = u.textFill), _t(u, 'textStroke') && (u.stroke = u.textStroke)
      }
      var c = void 0,
        h = DE(e) ? l.decal : null
      t && h && ((h.dirty = !0), (c = Bm(h, t))), (l.__decalPattern = c)
    }
    AE(e) && l && (c = l.__decalPattern) && (l.decal = c)
    rE(e, i, o, { dataIndex: n, isInit: a, clearStyle: !0 }), vE(e, i.keyframeAnimation, o)
  }
  function OE(t, e, n, i, r) {
    var o = e.isGroup ? null : e,
      a = r && r[t].cfg
    if (o) {
      var s = o.ensureState(t)
      if (!1 === i) {
        var l = o.getState(t)
        l && (l.style = null)
      } else s.style = i || null
      a && (s.textConfig = a), uu(o)
    }
  }
  function RE(t, e, n) {
    var i = n === xE,
      r = i ? e : FE(e, n),
      o = r ? r.z2 : null
    null != o && ((i ? t : t.ensureState(n)).z2 = o || 0)
  }
  function NE(t, e, n, i) {
    var r = t.get('renderItem')
    if ('string' == typeof r) {
      var o = Ym[r]
      o && (r = o)
    }
    var a = t.coordinateSystem,
      s = {}
    a && (s = a.prepareCustoms ? a.prepareCustoms(a) : CE[a.type](a))
    for (
      var l,
        u,
        c = k(
          {
            getWidth: i.getWidth,
            getHeight: i.getHeight,
            getZr: i.getZr,
            getDevicePixelRatio: i.getDevicePixelRatio,
            value: function (t, n) {
              return null == n && (n = l), e.getStore().get(e.getDimensionIndex(t || 0), n)
            },
            style: function (n, i) {
              0
              null == i && (i = l)
              var r = e.getItemVisual(i, 'style'),
                o = r && r.fill,
                a = r && r.opacity,
                s = x(i, xE).getItemStyle()
              null != o && (s.fill = o), null != a && (s.opacity = a)
              var u = { inheritColor: X(o) ? o : tf.color.neutral99 },
                c = _(i, xE),
                h = Qh(c, null, u, !1, !0)
              h.text = c.getShallow('show') ? rt(t.getFormattedLabel(i, xE), nI(e, i)) : null
              var d = td(c, u, !1)
              return w(n, s), (s = $z(s, h, d)), n && b(s, n), (s.legacy = !0), s
            },
            ordinalRawValue: function (t, n) {
              null == n && (n = l), (t = t || 0)
              var i = e.getDimensionInfo(t)
              if (!i) {
                var r = e.getDimensionIndex(t)
                return r >= 0 ? e.getStore().get(r, n) : void 0
              }
              var o = e.get(i.name, n),
                a = i && i.ordinalMeta
              return a ? a.categories[o] : o
            },
            styleEmphasis: function (n, i) {
              0
              null == i && (i = l)
              var r = x(i, mE).getItemStyle(),
                o = _(i, mE),
                a = Qh(o, null, null, !0, !0)
              a.text = o.getShallow('show') ? ot(t.getFormattedLabel(i, mE), t.getFormattedLabel(i, xE), nI(e, i)) : null
              var s = td(o, null, !0)
              return w(n, r), (r = $z(r, a, s)), n && b(r, n), (r.legacy = !0), r
            },
            visual: function (t, n) {
              if ((null == n && (n = l), _t(Gz, t))) {
                var i = e.getItemVisual(n, 'style')
                return i ? i[Gz[t]] : null
              }
              if (_t(Fz, t)) return e.getItemVisual(n, t)
            },
            barLayout: function (t) {
              if ('cartesian2d' === a.type) {
                return (function (t) {
                  var e = [],
                    n = t.axis,
                    i = 'axis0'
                  if ('category' === n.type) {
                    for (var r = n.getBandWidth(), o = 0; o < t.count; o++) e.push(k({ bandWidth: r, axisKey: i, stackId: fb + o }, t))
                    var a = xb(e),
                      s = []
                    for (o = 0; o < t.count; o++) {
                      var l = a[i][fb + o]
                      ;(l.offsetCenter = l.offset + l.width / 2), s.push(l)
                    }
                    return s
                  }
                })(k({ axis: a.getBaseAxis() }, t))
              }
            },
            currentSeriesIndices: function () {
              return n.getCurrentSeriesIndices()
            },
            font: function (t) {
              return od(t, n)
            }
          },
          s.api || {}
        ),
        h = {
          context: {},
          seriesId: t.id,
          seriesName: t.name,
          seriesIndex: t.seriesIndex,
          coordSys: s.coordSys,
          dataInsideLength: e.count(),
          encode: zE(t.getData()),
          itemPayload: t.get('itemPayload') || {}
        },
        d = {},
        p = {},
        f = {},
        g = {},
        y = 0;
      y < wE.length;
      y++
    ) {
      var v = wE[y]
      ;(f[v] = t.getModel(SE[v])), (g[v] = t.getModel(ME[v]))
    }
    function m(t) {
      return t === l ? u || (u = e.getItemModel(t)) : e.getItemModel(t)
    }
    function x(t, n) {
      return e.hasItemOption ? (t === l ? d[n] || (d[n] = m(t).getModel(SE[n])) : m(t).getModel(SE[n])) : f[n]
    }
    function _(t, n) {
      return e.hasItemOption ? (t === l ? p[n] || (p[n] = m(t).getModel(ME[n])) : m(t).getModel(ME[n])) : g[n]
    }
    return function (t, n) {
      return (l = t), (u = null), (d = {}), (p = {}), r && r(k({ dataIndexInside: t, dataIndex: e.getRawIndex(t), actionType: n ? n.type : null }, h), c)
    }
    function b(t, e) {
      for (var n in e) _t(e, n) && (t[n] = e[n])
    }
    function w(t, e) {
      t && (t.textFill && (e.textFill = t.textFill), t.textPosition && (e.textPosition = t.textPosition))
    }
  }
  function zE(t) {
    var e = {}
    return (
      z(t.dimensions, function (n) {
        var i = t.getDimensionInfo(n)
        if (!i.isExtraCoord) {
          var r = i.coordDim
          ;(e[r] = e[r] || [])[i.coordDimIndex] = t.getDimensionIndex(n)
        }
      }),
      e
    )
  }
  function EE(t, e, n, i, r, o, a) {
    if (i) {
      var s = BE(t, e, n, i, r, o)
      return s && a.setItemGraphicEl(n, s), s && Tu(s, i.focus, i.blurScope, i.emphasisDisabled), s
    }
    o.remove(e)
  }
  function BE(t, e, n, i, r, o) {
    var a = -1,
      s = e
    e && VE(e, i, r) && ((a = P(o.childrenRef(), e)), (e = null))
    var l,
      u,
      c = !e,
      h = e
    h
      ? h.clearStates()
      : ((h = LE(i)),
        s &&
          ((l = s),
          (u = h).copyTransform(l),
          AE(u) &&
            AE(l) &&
            (u.setStyle(l.style), (u.z = l.z), (u.z2 = l.z2), (u.zlevel = l.zlevel), (u.invisible = l.invisible), (u.ignore = l.ignore), DE(u) && DE(l) && u.setShape(l.shape)))),
      !1 === i.morph ? (h.disableMorphing = !0) : h.disableMorphing && (h.disableMorphing = !1),
      i.tooltipDisabled && (h.tooltipDisabled = !0),
      (TE.normal.cfg = TE.normal.conOpt = TE.emphasis.cfg = TE.emphasis.conOpt = TE.blur.cfg = TE.blur.conOpt = TE.select.cfg = TE.select.conOpt = null),
      (TE.isLegacy = !1),
      (function (t, e, n, i, r, o) {
        if (t.isGroup || 'compoundPath' === t.type) return
        GE(n, null, o), GE(n, mE, o)
        var a = o.normal.conOpt,
          s = o.emphasis.conOpt,
          l = o.blur.conOpt,
          u = o.select.conOpt
        if (null != a || null != s || null != u || null != l) {
          var c = t.getTextContent()
          if (!1 === a) c && t.removeTextContent()
          else {
            ;(a = o.normal.conOpt = a || { type: 'text' }), c ? c.clearStates() : ((c = LE(a)), t.setTextContent(c)), PE(null, c, e, a, null, i, r)
            for (var h = a && a.style, d = 0; d < wE.length; d++) {
              var p = wE[d]
              if (p !== xE) {
                var f = o[p].conOpt
                OE(p, c, 0, WE(a, f, p), null)
              }
            }
            h ? c.dirty() : c.markRedraw()
          }
        }
      })(h, n, i, r, c, TE),
      (function (t, e, n, i, r) {
        var o = n.clipPath
        if (!1 === o) t && t.getClipPath() && t.removeClipPath()
        else if (o) {
          var a = t.getClipPath()
          a && VE(a, o, i) && (a = null), a || ((a = LE(o)), t.setClipPath(a)), PE(null, a, e, o, null, i, r)
        }
      })(h, n, i, r, c),
      PE(t, h, n, i, TE, r, c),
      _t(i, 'info') && (Wz(h).info = i.info)
    for (var d = 0; d < wE.length; d++) {
      var p = wE[d]
      if (p !== xE) {
        var f = FE(i, p)
        OE(p, h, 0, WE(i, f, p), TE)
      }
    }
    return (
      (function (t, e, n) {
        if (!t.isGroup) {
          var i = t,
            r = n.currentZ,
            o = n.currentZLevel
          ;(i.z = r), (i.zlevel = o)
          var a = e.z2
          null != a && (i.z2 = a || 0)
          for (var s = 0; s < wE.length; s++) RE(i, e, wE[s])
        }
      })(h, i, r),
      'group' === i.type &&
        (function (t, e, n, i, r) {
          var o = i.children,
            a = o ? o.length : 0,
            s = i.$mergeChildren,
            l = 'byName' === s || i.diffChildrenByName,
            u = !1 === s
          if (!a && !l && !u) return
          if (l)
            return (
              (c = { api: t, oldChildren: e.children() || [], newChildren: o || [], dataIndex: n, seriesModel: r, group: e }),
              void new f_(c.oldChildren, c.newChildren, UE, UE, c).add(YE).update(YE).remove(XE).execute()
            )
          var c
          u && e.removeAll()
          for (var h = 0; h < a; h++) {
            var d = o[h],
              p = e.childAt(h)
            d ? (null == d.ignore && (d.ignore = !1), BE(t, p, n, d, r, e)) : (p.ignore = !0)
          }
          for (var f = e.childCount() - 1; f >= h; f--) {
            var g = e.childAt(f)
            HE(e, g, r)
          }
        })(t, h, n, i, r),
      a >= 0 ? o.replaceAt(h, a) : o.add(h),
      h
    )
  }
  function VE(t, e, n) {
    var i,
      r = Wz(t),
      o = e.type,
      a = e.shape,
      s = e.style
    return (
      n.isUniversalTransitionEnabled() ||
      (null != o && o !== r.customGraphicType) ||
      ('path' === o && (i = a) && (_t(i, 'pathData') || _t(i, 'd')) && ZE(a) !== r.customPathData) ||
      ('image' === o && _t(s, 'image') && s.image !== r.customImagePath)
    )
  }
  function GE(t, e, n) {
    var i = e ? FE(t, e) : t,
      r = e ? WE(t, i, mE) : t.style,
      o = t.type,
      a = i ? i.textConfig : null,
      s = t.textContent,
      l = s ? (e ? FE(s, e) : s) : null
    if (r && (n.isLegacy || jz(r, o, !!a, !!l))) {
      n.isLegacy = !0
      var u = qz(r, o, !e)
      !a && u.textConfig && (a = u.textConfig), !l && u.textContent && (l = u.textContent)
    }
    if (!e && l) {
      var c = l
      !c.type && (c.type = 'text')
    }
    var h = e ? n[e] : n.normal
    ;(h.cfg = a), (h.conOpt = l)
  }
  function FE(t, e) {
    return e ? (t ? t[e] : null) : t
  }
  function WE(t, e, n) {
    var i = e && e.style
    return null == i && n === mE && t && (i = t.styleEmphasis), i
  }
  function HE(t, e, n) {
    e && aE(e, Wz(t).option, n)
  }
  function UE(t, e) {
    var n = t && t.name
    return null != n ? n : 'e\0\0' + e
  }
  function YE(t, e) {
    var n = this.context,
      i = null != t ? n.newChildren[t] : null,
      r = null != e ? n.oldChildren[e] : null
    BE(n.api, r, n.dataIndex, i, n.seriesModel, n.group)
  }
  function XE(t) {
    var e = this.context,
      n = e.oldChildren[t]
    n && aE(n, Wz(n).option, e.seriesModel)
  }
  function ZE(t) {
    return t && (t.pathData || t.d)
  }
  var jE = sa(),
    qE = T,
    KE = W,
    $E = (function () {
      function t() {
        ;(this._dragging = !1), (this.animationThreshold = 15)
      }
      return (
        (t.prototype.render = function (t, e, n, i) {
          var r = e.get('value'),
            o = e.get('status')
          if (((this._axisModel = t), (this._axisPointerModel = e), (this._api = n), i || this._lastValue !== r || this._lastStatus !== o)) {
            ;(this._lastValue = r), (this._lastStatus = o)
            var a = this._group,
              s = this._handle
            if (!o || 'hide' === o) return a && a.hide(), void (s && s.hide())
            a && a.show(), s && s.show()
            var l = {}
            this.makeElOption(l, r, t, e, n)
            var u = l.graphicKey
            u !== this._lastGraphicKey && this.clear(n), (this._lastGraphicKey = u)
            var c = (this._moveAnimation = this.determineAnimation(t, e))
            if (a) {
              var h = H(JE, e, c)
              this.updatePointerEl(a, l, h), this.updateLabelEl(a, l, h, e)
            } else (a = this._group = new to()), this.createPointerEl(a, l, t, e), this.createLabelEl(a, l, t, e), n.getZr().add(a)
            nB(a, e, !0), this._renderHandle(r)
          }
        }),
        (t.prototype.remove = function (t) {
          this.clear(t)
        }),
        (t.prototype.dispose = function (t) {
          this.clear(t)
        }),
        (t.prototype.determineAnimation = function (t, e) {
          var n = e.get('animation'),
            i = t.axis,
            r = 'category' === i.type,
            o = e.get('snap')
          if (!o && !r) return !1
          if ('auto' === n || null == n) {
            var a = this.animationThreshold
            if (r && i.getBandWidth() > a) return !0
            if (o) {
              var s = ZC(t).seriesDataCount,
                l = i.getExtent()
              return Math.abs(l[0] - l[1]) / s > a
            }
            return !1
          }
          return !0 === n
        }),
        (t.prototype.makeElOption = function (t, e, n, i, r) {}),
        (t.prototype.createPointerEl = function (t, e, n, i) {
          var r = e.pointer
          if (r) {
            var o = (jE(t).pointerEl = new Zh[r.type](qE(e.pointer)))
            t.add(o)
          }
        }),
        (t.prototype.createLabelEl = function (t, e, n, i) {
          if (e.label) {
            var r = (jE(t).labelEl = new Sl(qE(e.label)))
            t.add(r), tB(r, i)
          }
        }),
        (t.prototype.updatePointerEl = function (t, e, n) {
          var i = jE(t).pointerEl
          i && e.pointer && (i.setStyle(e.pointer.style), n(i, { shape: e.pointer.shape }))
        }),
        (t.prototype.updateLabelEl = function (t, e, n, i) {
          var r = jE(t).labelEl
          r && (r.setStyle(e.label.style), n(r, { x: e.label.x, y: e.label.y }), tB(r, i))
        }),
        (t.prototype._renderHandle = function (t) {
          if (!this._dragging && this.updateHandleTransform) {
            var e,
              n = this._axisPointerModel,
              i = this._api.getZr(),
              r = this._handle,
              o = n.getModel('handle'),
              a = n.get('status')
            if (!o.get('show') || !a || 'hide' === a) return r && i.remove(r), void (this._handle = null)
            this._handle ||
              ((e = !0),
              (r = this._handle =
                Ah(o.get('icon'), {
                  cursor: 'move',
                  draggable: !0,
                  onmousemove: function (t) {
                    fe(t.event)
                  },
                  onmousedown: KE(this._onHandleDragMove, this, 0, 0),
                  drift: KE(this._onHandleDragMove, this),
                  ondragend: KE(this._onHandleDragEnd, this)
                })),
              i.add(r)),
              nB(r, n, !1),
              r.setStyle(o.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']))
            var s = o.get('size')
            U(s) || (s = [s, s]), (r.scaleX = s[0] / 2), (r.scaleY = s[1] / 2), cv(this, '_doDispatchAxisPointer', o.get('throttle') || 0, 'fixRate'), this._moveHandleToValue(t, e)
          }
        }),
        (t.prototype._moveHandleToValue = function (t, e) {
          JE(this._axisPointerModel, !e && this._moveAnimation, this._handle, eB(this.getHandleTransform(t, this._axisModel, this._axisPointerModel)))
        }),
        (t.prototype._onHandleDragMove = function (t, e) {
          var n = this._handle
          if (n) {
            this._dragging = !0
            var i = this.updateHandleTransform(eB(n), [t, e], this._axisModel, this._axisPointerModel)
            ;(this._payloadInfo = i), n.stopAnimation(), n.attr(eB(i)), (jE(n).lastProp = null), this._doDispatchAxisPointer()
          }
        }),
        (t.prototype._doDispatchAxisPointer = function () {
          if (this._handle) {
            var t = this._payloadInfo,
              e = this._axisModel
            this._api.dispatchAction({
              type: 'updateAxisPointer',
              x: t.cursorPoint[0],
              y: t.cursorPoint[1],
              tooltipOption: t.tooltipOption,
              axesInfo: [{ axisDim: e.axis.dim, axisIndex: e.componentIndex }]
            })
          }
        }),
        (t.prototype._onHandleDragEnd = function () {
          if (((this._dragging = !1), this._handle)) {
            var t = this._axisPointerModel.get('value')
            this._moveHandleToValue(t), this._api.dispatchAction({ type: 'hideTip' })
          }
        }),
        (t.prototype.clear = function (t) {
          ;(this._lastValue = null), (this._lastStatus = null)
          var e = t.getZr(),
            n = this._group,
            i = this._handle
          e && n && ((this._lastGraphicKey = null), n && e.remove(n), i && e.remove(i), (this._group = null), (this._handle = null), (this._payloadInfo = null)),
            hv(this, '_doDispatchAxisPointer')
        }),
        (t.prototype.doClear = function () {}),
        (t.prototype.buildLabel = function (t, e, n) {
          return { x: t[(n = n || 0)], y: t[1 - n], width: e[n], height: e[1 - n] }
        }),
        t
      )
    })()
  function JE(t, e, n, i) {
    QE(jE(n).lastProp, i) || ((jE(n).lastProp = i), e ? th(n, i, t) : (n.stopAnimation(), n.attr(i)))
  }
  function QE(t, e) {
    if (q(t) && q(e)) {
      var n = !0
      return (
        z(e, function (e, i) {
          n = n && QE(t[i], e)
        }),
        !!n
      )
    }
    return t === e
  }
  function tB(t, e) {
    t[e.get(['label', 'show']) ? 'show' : 'hide']()
  }
  function eB(t) {
    return { x: t.x || 0, y: t.y || 0, rotation: t.rotation || 0 }
  }
  function nB(t, e, n) {
    var i = e.get('z'),
      r = e.get('zlevel')
    t &&
      t.traverse(function (t) {
        'group' !== t.type && (null != i && (t.z = i), null != r && (t.zlevel = r), (t.silent = n))
      })
  }
  function iB(t) {
    var e,
      n = t.get('type'),
      i = t.getModel(n + 'Style')
    return 'line' === n ? ((e = i.getLineStyle()).fill = null) : 'shadow' === n && ((e = i.getAreaStyle()).stroke = null), e
  }
  function rB(t, e, n, i, r) {
    var o = oB(n.get('value'), e.axis, e.ecModel, n.get('seriesDataIndices'), { precision: n.get(['label', 'precision']), formatter: n.get(['label', 'formatter']) }),
      a = n.getModel('label'),
      s = yp(a.get('padding') || 0),
      l = a.getFont(),
      u = Er(o, l),
      c = r.position,
      h = u.width + s[1] + s[3],
      d = u.height + s[0] + s[2],
      p = r.align
    'right' === p && (c[0] -= h), 'center' === p && (c[0] -= h / 2)
    var f = r.verticalAlign
    'bottom' === f && (c[1] -= d),
      'middle' === f && (c[1] -= d / 2),
      (function (t, e, n, i) {
        var r = i.getWidth(),
          o = i.getHeight()
        ;(t[0] = Math.min(t[0] + e, r) - e), (t[1] = Math.min(t[1] + n, o) - n), (t[0] = Math.max(t[0], 0)), (t[1] = Math.max(t[1], 0))
      })(c, h, d, i)
    var g = a.get('backgroundColor')
    ;(g && 'auto' !== g) || (g = e.get(['axisLine', 'lineStyle', 'color'])),
      (t.label = { x: c[0], y: c[1], style: Qh(a, { text: o, font: l, fill: a.getTextColor(), padding: s, backgroundColor: g }), z2: 10 })
  }
  function oB(t, e, n, i, r) {
    t = e.scale.parse(t)
    var o = e.scale.getLabel({ value: t }, { precision: r.precision }),
      a = r.formatter
    if (a) {
      var s = { value: qb(e, { value: t }), axisDimension: e.dim, axisIndex: e.index, seriesData: [] }
      z(i, function (t) {
        var e = n.getSeriesByIndex(t.seriesIndex),
          i = t.dataIndexInside,
          r = e && e.getDataParams(i)
        r && s.seriesData.push(r)
      }),
        X(a) ? (o = a.replace('{value}', o)) : Y(a) && (o = a(s))
    }
    return o
  }
  function aB(t, e, n) {
    var i = [1, 0, 0, 1, 0, 0]
    return Me(i, i, n.rotation), Se(i, i, n.position), Sh([t.dataToCoord(e), (n.labelOffset || 0) + (n.labelDirection || 1) * (n.labelMargin || 0)], i)
  }
  function sB(t, e, n, i, r, o) {
    var a = mC.innerTextLayout(n.rotation, 0, n.labelDirection)
    ;(n.labelMargin = r.get(['label', 'margin'])), rB(e, i, r, o, { position: aB(i.axis, t, n), align: a.textAlign, verticalAlign: a.textVerticalAlign })
  }
  function lB(t, e, n) {
    return { x1: t[(n = n || 0)], y1: t[1 - n], x2: e[n], y2: e[1 - n] }
  }
  function uB(t, e, n) {
    return { x: t[(n = n || 0)], y: t[1 - n], width: e[n], height: e[1 - n] }
  }
  function cB(t, e, n, i, r, o) {
    return { cx: t, cy: e, r0: n, r: i, startAngle: r, endAngle: o, clockwise: !0 }
  }
  var hB = (function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    return (
      n(e, t),
      (e.prototype.makeElOption = function (t, e, n, i, r) {
        var o = n.axis,
          a = o.grid,
          s = i.get('type'),
          l = dB(a, o).getOtherAxis(o).getGlobalExtent(),
          u = o.toGlobalCoord(o.dataToCoord(e, !0))
        if (s && 'none' !== s) {
          var c = iB(i),
            h = pB[s](o, u, l)
          ;(h.style = c), (t.graphicKey = h.type), (t.pointer = h)
        }
        sB(e, t, kC(a.getRect(), n), n, i, r)
      }),
      (e.prototype.getHandleTransform = function (t, e, n) {
        var i = kC(e.axis.grid.getRect(), e, { labelInside: !1 })
        i.labelMargin = n.get(['handle', 'margin'])
        var r = aB(e.axis, t, i)
        return { x: r[0], y: r[1], rotation: i.rotation + (i.labelDirection < 0 ? Math.PI : 0) }
      }),
      (e.prototype.updateHandleTransform = function (t, e, n, i) {
        var r = n.axis,
          o = r.grid,
          a = r.getGlobalExtent(!0),
          s = dB(o, r).getOtherAxis(r).getGlobalExtent(),
          l = 'x' === r.dim ? 0 : 1,
          u = [t.x, t.y]
        ;(u[l] += e[l]), (u[l] = Math.min(a[1], u[l])), (u[l] = Math.max(a[0], u[l]))
        var c = (s[1] + s[0]) / 2,
          h = [c, c]
        h[l] = u[l]
        return { x: u[0], y: u[1], rotation: t.rotation, cursorPoint: h, tooltipOption: [{ verticalAlign: 'middle' }, { align: 'center' }][l] }
      }),
      e
    )
  })($E)
  function dB(t, e) {
    var n = {}
    return (n[e.dim + 'AxisIndex'] = e.index), t.getCartesian(n)
  }
  var pB = {
    line: function (t, e, n) {
      return { type: 'Line', subPixelOptimize: !0, shape: lB([e, n[0]], [e, n[1]], fB(t)) }
    },
    shadow: function (t, e, n) {
      var i = Math.max(1, t.getBandWidth()),
        r = n[1] - n[0]
      return { type: 'Rect', shape: uB([e - i / 2, n[0]], [i, r], fB(t)) }
    }
  }
  function fB(t) {
    return 'x' === t.dim ? 0 : 1
  }
  var gB = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.type = 'axisPointer'),
        (e.defaultOption = {
          show: 'auto',
          z: 50,
          type: 'line',
          snap: !1,
          triggerTooltip: !0,
          triggerEmphasis: !0,
          value: null,
          status: null,
          link: [],
          animation: null,
          animationDurationUpdate: 200,
          lineStyle: { color: tf.color.border, width: 1, type: 'dashed' },
          shadowStyle: { color: tf.color.shadowTint },
          label: {
            show: !0,
            formatter: null,
            precision: 'auto',
            margin: 3,
            color: tf.color.neutral00,
            padding: [5, 7, 5, 7],
            backgroundColor: tf.color.accent60,
            borderColor: null,
            borderWidth: 0,
            borderRadius: 3
          },
          handle: {
            show: !1,
            icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',
            size: 45,
            margin: 50,
            color: tf.color.accent40,
            throttle: 40
          }
        }),
        e
      )
    })(Qp),
    yB = sa(),
    vB = z
  function mB(t, e, n) {
    if (!r.node) {
      var i = e.getZr()
      yB(i).records || (yB(i).records = {}),
        (function (t, e) {
          if (yB(t).initialized) return
          function n(n, i) {
            t.on(n, function (n) {
              var r = (function (t) {
                var e = { showTip: [], hideTip: [] },
                  n = function (i) {
                    var r = e[i.type]
                    r ? r.push(i) : ((i.dispatchAction = n), t.dispatchAction(i))
                  }
                return { dispatchAction: n, pendings: e }
              })(e)
              vB(yB(t).records, function (t) {
                t && i(t, n, r.dispatchAction)
              }),
                (function (t, e) {
                  var n,
                    i = t.showTip.length,
                    r = t.hideTip.length
                  i ? (n = t.showTip[i - 1]) : r && (n = t.hideTip[r - 1])
                  n && ((n.dispatchAction = null), e.dispatchAction(n))
                })(r.pendings, e)
            })
          }
          ;(yB(t).initialized = !0), n('click', H(_B, 'click')), n('mousemove', H(_B, 'mousemove')), n('globalout', xB)
        })(i, e),
        ((yB(i).records[t] || (yB(i).records[t] = {})).handler = n)
    }
  }
  function xB(t, e, n) {
    t.handler('leave', null, n)
  }
  function _B(t, e, n, i) {
    e.handler(t, n, i)
  }
  function bB(t, e) {
    if (!r.node) {
      var n = e.getZr()
      ;(yB(n).records || {})[t] && (yB(n).records[t] = null)
    }
  }
  var wB = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.render = function (t, e, n) {
        var i = e.getComponent('tooltip'),
          r = t.get('triggerOn') || (i && i.get('triggerOn')) || 'mousemove|click'
        mB('axisPointer', n, function (t, e, n) {
          'none' !== r && ('leave' === t || r.indexOf(t) >= 0) && n({ type: 'updateAxisPointer', currTrigger: t, x: e && e.offsetX, y: e && e.offsetY })
        })
      }),
      (e.prototype.remove = function (t, e) {
        bB('axisPointer', e)
      }),
      (e.prototype.dispose = function (t, e) {
        bB('axisPointer', e)
      }),
      (e.type = 'axisPointer'),
      e
    )
  })(Ky)
  function SB(t, e) {
    var n,
      i = [],
      r = t.seriesIndex
    if (null == r || !(n = e.getSeriesByIndex(r))) return { point: [] }
    var o = n.getData(),
      a = aa(o, t)
    if (null == a || a < 0 || U(a)) return { point: [] }
    var s = o.getItemGraphicEl(a),
      l = n.coordinateSystem
    if (n.getTooltipPosition) i = n.getTooltipPosition(a) || []
    else if (l && l.dataToPoint)
      if (t.isStacked) {
        var u = l.getBaseAxis(),
          c = l.getOtherAxis(u).dim,
          h = u.dim,
          d = 'x' === c || 'radius' === c ? 1 : 0,
          p = o.mapDimension(h),
          f = []
        ;(f[d] = o.get(p, a)), (f[1 - d] = o.get(o.getCalculationInfo('stackResultDimension'), a)), (i = l.dataToPoint(f) || [])
      } else
        i =
          l.dataToPoint(
            o.getValues(
              E(l.dimensions, function (t) {
                return o.mapDimension(t)
              }),
              a
            )
          ) || []
    else if (s) {
      var g = s.getBoundingRect().clone()
      g.applyTransform(s.transform), (i = [g.x + g.width / 2, g.y + g.height / 2])
    }
    return { point: i, el: s }
  }
  var MB = sa()
  function IB(t, e, n) {
    var i = t.currTrigger,
      r = [t.x, t.y],
      o = t,
      a = t.dispatchAction || W(n.dispatchAction, n),
      s = e.getComponent('axisPointer').coordSysAxesInfo
    if (s) {
      kB(r) && (r = SB({ seriesIndex: o.seriesIndex, dataIndex: o.dataIndex }, e).point)
      var l = kB(r),
        u = o.axesInfo,
        c = s.axesInfo,
        h = 'leave' === i || kB(r),
        d = {},
        p = {},
        f = { list: [], map: {} },
        g = { showPointer: H(CB, p), showTooltip: H(DB, f) }
      z(s.coordSysMap, function (t, e) {
        var n = l || t.containPoint(r)
        z(s.coordSysAxesInfo[e], function (t, e) {
          var i = t.axis,
            o = (function (t, e) {
              for (var n = 0; n < (t || []).length; n++) {
                var i = t[n]
                if (e.axis.dim === i.axisDim && e.axis.model.componentIndex === i.axisIndex) return i
              }
            })(u, t)
          if (!h && n && (!u || o)) {
            var a = o && o.value
            null != a || l || (a = i.pointToData(r)), null != a && TB(t, a, g, !1, d)
          }
        })
      })
      var y = {}
      return (
        z(c, function (t, e) {
          var n = t.linkGroup
          n &&
            !p[e] &&
            z(n.axesInfo, function (e, i) {
              var r = p[i]
              if (e !== t && r) {
                var o = r.value
                n.mapper && (o = t.axis.scale.parse(n.mapper(o, AB(e), AB(t)))), (y[t.key] = o)
              }
            })
        }),
        z(y, function (t, e) {
          TB(c[e], t, g, !0, d)
        }),
        (function (t, e, n) {
          var i = (n.axesInfo = [])
          z(e, function (e, n) {
            var r = e.axisPointerModel.option,
              o = t[n]
            o ? (!e.useHandle && (r.status = 'show'), (r.value = o.value), (r.seriesDataIndices = (o.payloadBatch || []).slice())) : !e.useHandle && (r.status = 'hide'),
              'show' === r.status && i.push({ axisDim: e.axis.dim, axisIndex: e.axis.model.componentIndex, value: r.value })
          })
        })(p, c, d),
        (function (t, e, n, i) {
          if (kB(e) || !t.list.length) return void i({ type: 'hideTip' })
          var r = ((t.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {}
          i({
            type: 'showTip',
            escapeConnect: !0,
            x: e[0],
            y: e[1],
            tooltipOption: n.tooltipOption,
            position: n.position,
            dataIndexInside: r.dataIndexInside,
            dataIndex: r.dataIndex,
            seriesIndex: r.seriesIndex,
            dataByCoordSys: t.list
          })
        })(f, r, t, a),
        (function (t, e, n) {
          var i = n.getZr(),
            r = 'axisPointerLastHighlights',
            o = MB(i)[r] || {},
            a = (MB(i)[r] = {})
          z(t, function (t, e) {
            var n = t.axisPointerModel.option
            'show' === n.status &&
              t.triggerEmphasis &&
              z(n.seriesDataIndices, function (t) {
                var e = t.seriesIndex + ' | ' + t.dataIndex
                a[e] = t
              })
          })
          var s = [],
            l = []
          z(o, function (t, e) {
            !a[e] && l.push(t)
          }),
            z(a, function (t, e) {
              !o[e] && s.push(t)
            }),
            l.length && n.dispatchAction({ type: 'downplay', escapeConnect: !0, notBlur: !0, batch: l }),
            s.length && n.dispatchAction({ type: 'highlight', escapeConnect: !0, notBlur: !0, batch: s })
        })(c, 0, n),
        d
      )
    }
  }
  function TB(t, e, n, i, r) {
    var o = t.axis
    if (!o.scale.isBlank() && o.containData(e))
      if (t.involveSeries) {
        var a = (function (t, e) {
            var n = e.axis,
              i = n.dim,
              r = t,
              o = [],
              a = Number.MAX_VALUE,
              s = -1
            return (
              z(e.seriesModels, function (e, l) {
                var u,
                  c,
                  h = e.getData().mapDimensionsAll(i)
                if (e.getAxisTooltipData) {
                  var d = e.getAxisTooltipData(h, t, n)
                  ;(c = d.dataIndices), (u = d.nestestValue)
                } else {
                  if (!(c = e.indicesOfNearest(i, h[0], t, 'category' === n.type ? 0.5 : null)).length) return
                  u = e.getData().get(h[0], c[0])
                }
                if (null != u && isFinite(u)) {
                  var p = t - u,
                    f = Math.abs(p)
                  f <= a &&
                    ((f < a || (p >= 0 && s < 0)) && ((a = f), (s = p), (r = u), (o.length = 0)),
                    z(c, function (t) {
                      o.push({ seriesIndex: e.seriesIndex, dataIndexInside: t, dataIndex: e.getData().getRawIndex(t) })
                    }))
                }
              }),
              { payloadBatch: o, snapToValue: r }
            )
          })(e, t),
          s = a.payloadBatch,
          l = a.snapToValue
        s[0] && null == r.seriesIndex && A(r, s[0]), !i && t.snap && o.containData(l) && null != l && (e = l), n.showPointer(t, e, s), n.showTooltip(t, a, l)
      } else n.showPointer(t, e)
  }
  function CB(t, e, n, i) {
    t[e.key] = { value: n, payloadBatch: i }
  }
  function DB(t, e, n, i) {
    var r = n.payloadBatch,
      o = e.axis,
      a = o.model,
      s = e.axisPointerModel
    if (e.triggerTooltip && r.length) {
      var l = e.coordSys.model,
        u = qC(l),
        c = t.map[u]
      c || ((c = t.map[u] = { coordSysId: l.id, coordSysIndex: l.componentIndex, coordSysType: l.type, coordSysMainType: l.mainType, dataByAxis: [] }), t.list.push(c)),
        c.dataByAxis.push({
          axisDim: o.dim,
          axisIndex: a.componentIndex,
          axisType: a.type,
          axisId: a.id,
          value: i,
          valueLabelOpt: { precision: s.get(['label', 'precision']), formatter: s.get(['label', 'formatter']) },
          seriesDataIndices: r.slice()
        })
    }
  }
  function AB(t) {
    var e = t.axis.model,
      n = {},
      i = (n.axisDim = t.axis.dim)
    return (n.axisIndex = n[i + 'AxisIndex'] = e.componentIndex), (n.axisName = n[i + 'AxisName'] = e.name), (n.axisId = n[i + 'AxisId'] = e.id), n
  }
  function kB(t) {
    return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1])
  }
  function LB(t) {
    $C.registerAxisPointerClass('CartesianAxisPointer', hB),
      t.registerComponentModel(gB),
      t.registerComponentView(wB),
      t.registerPreprocessor(function (t) {
        if (t) {
          ;(!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {})
          var e = t.axisPointer.link
          e && !U(e) && (t.axisPointer.link = [e])
        }
      }),
      t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC, function (t, e) {
        t.getComponent('axisPointer').coordSysAxesInfo = UC(t, e)
      }),
      t.registerAction({ type: 'updateAxisPointer', event: 'updateAxisPointer', update: ':updateAxisPointer' }, IB)
  }
  var PB = (function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    return (
      n(e, t),
      (e.prototype.makeElOption = function (t, e, n, i, r) {
        var o = n.axis
        'angle' === o.dim && (this.animationThreshold = Math.PI / 18)
        var a = o.polar,
          s = a.getOtherAxis(o).getExtent(),
          l = o.dataToCoord(e),
          u = i.get('type')
        if (u && 'none' !== u) {
          var c = iB(i),
            h = OB[u](o, a, l, s)
          ;(h.style = c), (t.graphicKey = h.type), (t.pointer = h)
        }
        var d = (function (t, e, n, i, r) {
          var o = e.axis,
            a = o.dataToCoord(t),
            s = i.getAngleAxis().getExtent()[0]
          s = (s / 180) * Math.PI
          var l,
            u,
            c,
            h = i.getRadiusAxis().getExtent()
          if ('radius' === o.dim) {
            var d = [1, 0, 0, 1, 0, 0]
            Me(d, d, s), Se(d, d, [i.cx, i.cy]), (l = Sh([a, -r], d))
            var p = e.getModel('axisLabel').get('rotate') || 0,
              f = mC.innerTextLayout(s, (p * Math.PI) / 180, -1)
            ;(u = f.textAlign), (c = f.textVerticalAlign)
          } else {
            var g = h[1]
            l = i.coordToPoint([g + r, a])
            var y = i.cx,
              v = i.cy
            ;(u = Math.abs(l[0] - y) / g < 0.3 ? 'center' : l[0] > y ? 'left' : 'right'), (c = Math.abs(l[1] - v) / g < 0.3 ? 'middle' : l[1] > v ? 'top' : 'bottom')
          }
          return { position: l, align: u, verticalAlign: c }
        })(e, n, 0, a, i.get(['label', 'margin']))
        rB(t, n, i, r, d)
      }),
      e
    )
  })($E)
  var OB = {
      line: function (t, e, n, i) {
        return 'angle' === t.dim ? { type: 'Line', shape: lB(e.coordToPoint([i[0], n]), e.coordToPoint([i[1], n])) } : { type: 'Circle', shape: { cx: e.cx, cy: e.cy, r: n } }
      },
      shadow: function (t, e, n, i) {
        var r = Math.max(1, t.getBandWidth()),
          o = Math.PI / 180
        return 'angle' === t.dim
          ? { type: 'Sector', shape: cB(e.cx, e.cy, i[0], i[1], (-n - r / 2) * o, (r / 2 - n) * o) }
          : { type: 'Sector', shape: cB(e.cx, e.cy, n - r / 2, n + r / 2, 0, 2 * Math.PI) }
      }
    },
    RB = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.findAxisModel = function (t) {
          var e
          return (
            this.ecModel.eachComponent(
              t,
              function (t) {
                t.getCoordSysModel() === this && (e = t)
              },
              this
            ),
            e
          )
        }),
        (e.type = 'polar'),
        (e.dependencies = ['radiusAxis', 'angleAxis']),
        (e.defaultOption = { z: 0, center: ['50%', '50%'], radius: '80%' }),
        e
      )
    })(Qp),
    NB = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.getCoordSysModel = function () {
          return this.getReferringComponents('polar', ha).models[0]
        }),
        (e.type = 'polarAxis'),
        e
      )
    })(Qp)
  R(NB, nw)
  var zB = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return n(e, t), (e.type = 'angleAxis'), e
    })(NB),
    EB = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return n(e, t), (e.type = 'radiusAxis'), e
    })(NB),
    BB = (function (t) {
      function e(e, n) {
        return t.call(this, 'radius', e, n) || this
      }
      return (
        n(e, t),
        (e.prototype.pointToData = function (t, e) {
          return this.polar.pointToData(t, e)['radius' === this.dim ? 0 : 1]
        }),
        e
      )
    })(Ww)
  ;(BB.prototype.dataToRadius = Ww.prototype.dataToCoord), (BB.prototype.radiusToData = Ww.prototype.coordToData)
  var VB = sa(),
    GB = (function (t) {
      function e(e, n) {
        return t.call(this, 'angle', e, n || [0, 360]) || this
      }
      return (
        n(e, t),
        (e.prototype.pointToData = function (t, e) {
          return this.polar.pointToData(t, e)['radius' === this.dim ? 0 : 1]
        }),
        (e.prototype.calculateCategoryInterval = function () {
          var t = this,
            e = t.getLabelModel(),
            n = t.scale,
            i = n.getExtent(),
            r = n.count()
          if (i[1] - i[0] < 1) return 0
          var o = i[0],
            a = t.dataToCoord(o + 1) - t.dataToCoord(o),
            s = Math.abs(a),
            l = Er(null == o ? '' : o + '', e.getFont(), 'center', 'top'),
            u = Math.max(l.height, 7) / s
          isNaN(u) && (u = 1 / 0)
          var c = Math.max(0, Math.floor(u)),
            h = VB(t.model),
            d = h.lastAutoInterval,
            p = h.lastTickCount
          return null != d && null != p && Math.abs(d - c) <= 1 && Math.abs(p - r) <= 1 && d > c ? (c = d) : ((h.lastTickCount = r), (h.lastAutoInterval = c)), c
        }),
        e
      )
    })(Ww)
  ;(GB.prototype.dataToAngle = Ww.prototype.dataToCoord), (GB.prototype.angleToData = Ww.prototype.coordToData)
  var FB = ['radius', 'angle'],
    WB = (function () {
      function t(t) {
        ;(this.dimensions = FB),
          (this.type = 'polar'),
          (this.cx = 0),
          (this.cy = 0),
          (this._radiusAxis = new BB()),
          (this._angleAxis = new GB()),
          (this.axisPointerEnabled = !0),
          (this.name = t || ''),
          (this._radiusAxis.polar = this._angleAxis.polar = this)
      }
      return (
        (t.prototype.containPoint = function (t) {
          var e = this.pointToCoord(t)
          return this._radiusAxis.contain(e[0]) && this._angleAxis.contain(e[1])
        }),
        (t.prototype.containData = function (t) {
          return this._radiusAxis.containData(t[0]) && this._angleAxis.containData(t[1])
        }),
        (t.prototype.getAxis = function (t) {
          return this['_' + t + 'Axis']
        }),
        (t.prototype.getAxes = function () {
          return [this._radiusAxis, this._angleAxis]
        }),
        (t.prototype.getAxesByScale = function (t) {
          var e = [],
            n = this._angleAxis,
            i = this._radiusAxis
          return n.scale.type === t && e.push(n), i.scale.type === t && e.push(i), e
        }),
        (t.prototype.getAngleAxis = function () {
          return this._angleAxis
        }),
        (t.prototype.getRadiusAxis = function () {
          return this._radiusAxis
        }),
        (t.prototype.getOtherAxis = function (t) {
          var e = this._angleAxis
          return t === e ? this._radiusAxis : e
        }),
        (t.prototype.getBaseAxis = function () {
          return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis()
        }),
        (t.prototype.getTooltipAxes = function (t) {
          var e = null != t && 'auto' !== t ? this.getAxis(t) : this.getBaseAxis()
          return { baseAxes: [e], otherAxes: [this.getOtherAxis(e)] }
        }),
        (t.prototype.dataToPoint = function (t, e, n) {
          return this.coordToPoint([this._radiusAxis.dataToRadius(t[0], e), this._angleAxis.dataToAngle(t[1], e)], n)
        }),
        (t.prototype.pointToData = function (t, e, n) {
          n = n || []
          var i = this.pointToCoord(t)
          return (n[0] = this._radiusAxis.radiusToData(i[0], e)), (n[1] = this._angleAxis.angleToData(i[1], e)), n
        }),
        (t.prototype.pointToCoord = function (t) {
          var e = t[0] - this.cx,
            n = t[1] - this.cy,
            i = this.getAngleAxis(),
            r = i.getExtent(),
            o = Math.min(r[0], r[1]),
            a = Math.max(r[0], r[1])
          i.inverse ? (o = a - 360) : (a = o + 360)
          var s = Math.sqrt(e * e + n * n)
          ;(e /= s), (n /= s)
          for (var l = (Math.atan2(-n, e) / Math.PI) * 180, u = l < o ? 1 : -1; l < o || l > a; ) l += 360 * u
          return [s, l]
        }),
        (t.prototype.coordToPoint = function (t, e) {
          e = e || []
          var n = t[0],
            i = (t[1] / 180) * Math.PI
          return (e[0] = Math.cos(i) * n + this.cx), (e[1] = -Math.sin(i) * n + this.cy), e
        }),
        (t.prototype.getArea = function () {
          var t = this.getAngleAxis(),
            e = this.getRadiusAxis().getExtent().slice()
          e[0] > e[1] && e.reverse()
          var n = t.getExtent(),
            i = Math.PI / 180,
            r = 1e-4
          return {
            cx: this.cx,
            cy: this.cy,
            r0: e[0],
            r: e[1],
            startAngle: -n[0] * i,
            endAngle: -n[1] * i,
            clockwise: t.inverse,
            contain: function (t, e) {
              var n = t - this.cx,
                i = e - this.cy,
                o = n * n + i * i,
                a = this.r,
                s = this.r0
              return a !== s && o - r <= a * a && o + r >= s * s
            },
            x: this.cx - e[1],
            y: this.cy - e[1],
            width: 2 * e[1],
            height: 2 * e[1]
          }
        }),
        (t.prototype.convertToPixel = function (t, e, n) {
          return HB(e) === this ? this.dataToPoint(n) : null
        }),
        (t.prototype.convertFromPixel = function (t, e, n) {
          return HB(e) === this ? this.pointToData(n) : null
        }),
        t
      )
    })()
  function HB(t) {
    var e = t.seriesModel,
      n = t.polarModel
    return (n && n.coordinateSystem) || (e && e.coordinateSystem)
  }
  function UB(t, e) {
    var n = this,
      i = n.getAngleAxis(),
      r = n.getRadiusAxis()
    if (
      (i.scale.setExtent(1 / 0, -1 / 0),
      r.scale.setExtent(1 / 0, -1 / 0),
      t.eachSeries(function (t) {
        if (t.coordinateSystem === n) {
          var e = t.getData()
          z(Jb(e, 'radius'), function (t) {
            r.scale.unionExtentFromData(e, t)
          }),
            z(Jb(e, 'angle'), function (t) {
              i.scale.unionExtentFromData(e, t)
            })
        }
      }),
      Xb(i.scale, i.model),
      Xb(r.scale, r.model),
      'category' === i.type && !i.onBand)
    ) {
      var o = i.getExtent(),
        a = 360 / i.scale.count()
      i.inverse ? (o[1] += a) : (o[1] -= a), i.setExtent(o[0], o[1])
    }
  }
  function YB(t, e) {
    var n
    if (
      ((t.type = e.get('type')),
      (t.scale = Zb(e)),
      (t.onBand = e.get('boundaryGap') && 'category' === t.type),
      (t.inverse = e.get('inverse')),
      (function (t) {
        return 'angleAxis' === t.mainType
      })(e))
    ) {
      t.inverse = t.inverse !== e.get('clockwise')
      var i = e.get('startAngle'),
        r = null !== (n = e.get('endAngle')) && void 0 !== n ? n : i + (t.inverse ? -360 : 360)
      t.setExtent(i, r)
    }
    ;(e.axis = t), (t.model = e)
  }
  var XB = {
      dimensions: FB,
      create: function (t, e) {
        var n = []
        return (
          t.eachComponent('polar', function (t, i) {
            var r = new WB(i + '')
            r.update = UB
            var o = r.getRadiusAxis(),
              a = r.getAngleAxis(),
              s = t.findAxisModel('radiusAxis'),
              l = t.findAxisModel('angleAxis')
            YB(o, s),
              YB(a, l),
              (function (t, e, n) {
                var i = e.get('center'),
                  r = Xp(e, n).refContainer
                ;(t.cx = yo(i[0], r.width) + r.x), (t.cy = yo(i[1], r.height) + r.y)
                var o = t.getRadiusAxis(),
                  a = Math.min(r.width, r.height) / 2,
                  s = e.get('radius')
                null == s ? (s = [0, '100%']) : U(s) || (s = [0, s])
                var l = [yo(s[0], a), yo(s[1], a)]
                o.inverse ? o.setExtent(l[1], l[0]) : o.setExtent(l[0], l[1])
              })(r, t, e),
              n.push(r),
              (t.coordinateSystem = r),
              (r.model = t)
          }),
          t.eachSeries(function (t) {
            if ('polar' === t.get('coordinateSystem')) {
              var e = t.getReferringComponents('polar', ha).models[0]
              0, (t.coordinateSystem = e.coordinateSystem)
            }
          }),
          n
        )
      }
    },
    ZB = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea']
  function jB(t, e, n) {
    e[1] > e[0] && (e = e.slice().reverse())
    var i = t.coordToPoint([e[0], n]),
      r = t.coordToPoint([e[1], n])
    return { x1: i[0], y1: i[1], x2: r[0], y2: r[1] }
  }
  function qB(t) {
    return t.getRadiusAxis().inverse ? 0 : 1
  }
  function KB(t) {
    var e = t[0],
      n = t[t.length - 1]
    e && n && Math.abs(Math.abs(e.coord - n.coord) - 360) < 1e-4 && t.pop()
  }
  var $B = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.axisPointerClass = 'PolarAxisPointer'), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e) {
          if ((this.group.removeAll(), t.get('show'))) {
            var n = t.axis,
              i = n.polar,
              r = i.getRadiusAxis().getExtent(),
              o = n.getTicksCoords({ breakTicks: 'none' }),
              a = n.getMinorTicksCoords(),
              s = E(n.getViewLabels(), function (t) {
                t = T(t)
                var e = n.scale,
                  i = 'ordinal' === e.type ? e.getRawOrdinalNumber(t.tickValue) : t.tickValue
                return (t.coord = n.dataToCoord(i)), t
              })
            KB(s),
              KB(o),
              z(
                ZB,
                function (e) {
                  !t.get([e, 'show']) || (n.scale.isBlank() && 'axisLine' !== e) || JB[e](this.group, t, i, o, a, r, s)
                },
                this
              )
          }
        }),
        (e.type = 'angleAxis'),
        e
      )
    })($C),
    JB = {
      axisLine: function (t, e, n, i, r, o) {
        var a,
          s = e.getModel(['axisLine', 'lineStyle']),
          l = n.getAngleAxis(),
          u = Math.PI / 180,
          c = l.getExtent(),
          h = qB(n),
          d = h ? 0 : 1,
          p = 360 === Math.abs(c[1] - c[0]) ? 'Circle' : 'Arc'
        ;((a =
          0 === o[d]
            ? new Zh[p]({ shape: { cx: n.cx, cy: n.cy, r: o[h], startAngle: -c[0] * u, endAngle: -c[1] * u, clockwise: l.inverse }, style: s.getLineStyle(), z2: 1, silent: !0 })
            : new bc({ shape: { cx: n.cx, cy: n.cy, r: o[h], r0: o[d] }, style: s.getLineStyle(), z2: 1, silent: !0 })).style.fill = null),
          t.add(a)
      },
      axisTick: function (t, e, n, i, r, o) {
        var a = e.getModel('axisTick'),
          s = (a.get('inside') ? -1 : 1) * a.get('length'),
          l = o[qB(n)],
          u = E(i, function (t) {
            return new Ac({ shape: jB(n, [l, l + s], t.coord) })
          })
        t.add(mh(u, { style: k(a.getModel('lineStyle').getLineStyle(), { stroke: e.get(['axisLine', 'lineStyle', 'color']) }) }))
      },
      minorTick: function (t, e, n, i, r, o) {
        if (r.length) {
          for (var a = e.getModel('axisTick'), s = e.getModel('minorTick'), l = (a.get('inside') ? -1 : 1) * s.get('length'), u = o[qB(n)], c = [], h = 0; h < r.length; h++)
            for (var d = 0; d < r[h].length; d++) c.push(new Ac({ shape: jB(n, [u, u + l], r[h][d].coord) }))
          t.add(mh(c, { style: k(s.getModel('lineStyle').getLineStyle(), k(a.getLineStyle(), { stroke: e.get(['axisLine', 'lineStyle', 'color']) })) }))
        }
      },
      axisLabel: function (t, e, n, i, r, o, a) {
        var s = e.getCategories(!0),
          l = e.getModel('axisLabel'),
          u = l.get('margin'),
          c = e.get('triggerEvent')
        z(
          a,
          function (i, r) {
            var a = l,
              h = i.tickValue,
              d = o[qB(n)],
              p = n.coordToPoint([d + u, i.coord]),
              f = n.cx,
              g = n.cy,
              y = Math.abs(p[0] - f) / d < 0.3 ? 'center' : p[0] > f ? 'left' : 'right',
              v = Math.abs(p[1] - g) / d < 0.3 ? 'middle' : p[1] > g ? 'top' : 'bottom'
            if (s && s[h]) {
              var m = s[h]
              q(m) && m.textStyle && (a = new wd(m.textStyle, l, l.ecModel))
            }
            var x = new Sl({
              silent: mC.isLabelSilent(e),
              style: Qh(a, { x: p[0], y: p[1], fill: a.getTextColor() || e.get(['axisLine', 'lineStyle', 'color']), text: i.formattedLabel, align: y, verticalAlign: v })
            })
            if (
              (t.add(x),
              zh({
                el: x,
                componentModel: e,
                itemName: i.formattedLabel,
                formatterParamsExtra: {
                  isTruncated: function () {
                    return x.isTruncated
                  },
                  value: i.rawLabel,
                  tickIndex: r
                }
              }),
              c)
            ) {
              var _ = mC.makeAxisEventDataBase(e)
              ;(_.targetType = 'axisLabel'), (_.value = i.rawLabel), (zl(x).eventData = _)
            }
          },
          this
        )
      },
      splitLine: function (t, e, n, i, r, o) {
        var a = e.getModel('splitLine').getModel('lineStyle'),
          s = a.get('color'),
          l = 0
        s = s instanceof Array ? s : [s]
        for (var u = [], c = 0; c < i.length; c++) {
          var h = l++ % s.length
          ;(u[h] = u[h] || []), u[h].push(new Ac({ shape: jB(n, o, i[c].coord) }))
        }
        for (c = 0; c < u.length; c++) t.add(mh(u[c], { style: k({ stroke: s[c % s.length] }, a.getLineStyle()), silent: !0, z: e.get('z') }))
      },
      minorSplitLine: function (t, e, n, i, r, o) {
        if (r.length) {
          for (var a = e.getModel('minorSplitLine').getModel('lineStyle'), s = [], l = 0; l < r.length; l++)
            for (var u = 0; u < r[l].length; u++) s.push(new Ac({ shape: jB(n, o, r[l][u].coord) }))
          t.add(mh(s, { style: a.getLineStyle(), silent: !0, z: e.get('z') }))
        }
      },
      splitArea: function (t, e, n, i, r, o) {
        if (i.length) {
          var a = e.getModel('splitArea').getModel('areaStyle'),
            s = a.get('color'),
            l = 0
          s = s instanceof Array ? s : [s]
          for (var u = [], c = Math.PI / 180, h = -i[0].coord * c, d = Math.min(o[0], o[1]), p = Math.max(o[0], o[1]), f = e.get('clockwise'), g = 1, y = i.length; g <= y; g++) {
            var v = g === y ? i[0].coord : i[g].coord,
              m = l++ % s.length
            ;(u[m] = u[m] || []), u[m].push(new xc({ shape: { cx: n.cx, cy: n.cy, r0: d, r: p, startAngle: h, endAngle: -v * c, clockwise: f }, silent: !0 })), (h = -v * c)
          }
          for (g = 0; g < u.length; g++) t.add(mh(u[g], { style: k({ fill: s[g % s.length] }, a.getAreaStyle()), silent: !0 }))
        }
      }
    },
    QB = ['splitLine', 'splitArea', 'minorSplitLine'],
    tV = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.axisPointerClass = 'PolarAxisPointer'), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          if ((this.group.removeAll(), t.get('show'))) {
            var i = this._axisGroup,
              r = (this._axisGroup = new to())
            this.group.add(r)
            var o = t.axis,
              a = o.polar,
              s = a.getAngleAxis(),
              l = o.getTicksCoords(),
              u = o.getMinorTicksCoords(),
              c = s.getExtent()[0],
              h = o.getExtent(),
              d = (function (t, e, n) {
                return {
                  position: [t.cx, t.cy],
                  rotation: (n / 180) * Math.PI,
                  labelDirection: -1,
                  tickDirection: -1,
                  nameDirection: 1,
                  labelRotate: e.getModel('axisLabel').get('rotate'),
                  z2: 1
                }
              })(a, t, c),
              p = new mC(t, n, d)
            p.build(),
              r.add(p.group),
              Th(i, r, t),
              z(
                QB,
                function (e) {
                  t.get([e, 'show']) && !o.scale.isBlank() && eV[e](this.group, t, a, c, h, l, u)
                },
                this
              )
          }
        }),
        (e.type = 'radiusAxis'),
        e
      )
    })($C),
    eV = {
      splitLine: function (t, e, n, i, r, o) {
        var a = e.getModel('splitLine').getModel('lineStyle'),
          s = a.get('color'),
          l = 0,
          u = n.getAngleAxis(),
          c = Math.PI / 180,
          h = u.getExtent(),
          d = 360 === Math.abs(h[1] - h[0]) ? 'Circle' : 'Arc'
        s = s instanceof Array ? s : [s]
        for (var p = [], f = 0; f < o.length; f++) {
          var g = l++ % s.length
          ;(p[g] = p[g] || []),
            p[g].push(new Zh[d]({ shape: { cx: n.cx, cy: n.cy, r: Math.max(o[f].coord, 0), startAngle: -h[0] * c, endAngle: -h[1] * c, clockwise: u.inverse } }))
        }
        for (f = 0; f < p.length; f++) t.add(mh(p[f], { style: k({ stroke: s[f % s.length], fill: null }, a.getLineStyle()), silent: !0 }))
      },
      minorSplitLine: function (t, e, n, i, r, o, a) {
        if (a.length) {
          for (var s = e.getModel('minorSplitLine').getModel('lineStyle'), l = [], u = 0; u < a.length; u++)
            for (var c = 0; c < a[u].length; c++) l.push(new nc({ shape: { cx: n.cx, cy: n.cy, r: a[u][c].coord } }))
          t.add(mh(l, { style: k({ fill: null }, s.getLineStyle()), silent: !0 }))
        }
      },
      splitArea: function (t, e, n, i, r, o) {
        if (o.length) {
          var a = e.getModel('splitArea').getModel('areaStyle'),
            s = a.get('color'),
            l = 0
          s = s instanceof Array ? s : [s]
          for (var u = [], c = o[0].coord, h = 1; h < o.length; h++) {
            var d = l++ % s.length
            ;(u[d] = u[d] || []), u[d].push(new xc({ shape: { cx: n.cx, cy: n.cy, r0: c, r: o[h].coord, startAngle: 0, endAngle: 2 * Math.PI }, silent: !0 })), (c = o[h].coord)
          }
          for (h = 0; h < u.length; h++) t.add(mh(u[h], { style: k({ fill: s[h % s.length] }, a.getAreaStyle()), silent: !0 }))
        }
      }
    }
  function nV(t) {
    return t.get('stack') || '__ec_stack_' + t.seriesIndex
  }
  function iV(t, e) {
    return e.dim + t.model.componentIndex
  }
  function rV(t, e, n) {
    var i = {},
      r = (function (t) {
        var e = {}
        z(t, function (t, n) {
          var i = t.getData(),
            r = t.coordinateSystem,
            o = r.getBaseAxis(),
            a = iV(r, o),
            s = o.getExtent(),
            l = 'category' === o.type ? o.getBandWidth() : Math.abs(s[1] - s[0]) / i.count(),
            u = e[a] || { bandWidth: l, remainedWidth: l, autoWidthCount: 0, categoryGap: '20%', gap: '30%', stacks: {} },
            c = u.stacks
          e[a] = u
          var h = nV(t)
          c[h] || u.autoWidthCount++, (c[h] = c[h] || { width: 0, maxWidth: 0 })
          var d = yo(t.get('barWidth'), l),
            p = yo(t.get('barMaxWidth'), l),
            f = t.get('barGap'),
            g = t.get('barCategoryGap')
          d && !c[h].width && ((d = Math.min(u.remainedWidth, d)), (c[h].width = d), (u.remainedWidth -= d)),
            p && (c[h].maxWidth = p),
            null != f && (u.gap = f),
            null != g && (u.categoryGap = g)
        })
        var n = {}
        return (
          z(e, function (t, e) {
            n[e] = {}
            var i = t.stacks,
              r = t.bandWidth,
              o = yo(t.categoryGap, r),
              a = yo(t.gap, 1),
              s = t.remainedWidth,
              l = t.autoWidthCount,
              u = (s - o) / (l + (l - 1) * a)
            ;(u = Math.max(u, 0)),
              z(i, function (t, e) {
                var n = t.maxWidth
                n && n < u && ((n = Math.min(n, s)), t.width && (n = Math.min(n, t.width)), (s -= n), (t.width = n), l--)
              }),
              (u = (s - o) / (l + (l - 1) * a)),
              (u = Math.max(u, 0))
            var c,
              h = 0
            z(i, function (t, e) {
              t.width || (t.width = u), (c = t), (h += t.width * (1 + a))
            }),
              c && (h -= c.width * a)
            var d = -h / 2
            z(i, function (t, i) {
              ;(n[e][i] = n[e][i] || { offset: d, width: t.width }), (d += t.width * (1 + a))
            })
          }),
          n
        )
      })(
        V(e.getSeriesByType(t), function (t) {
          return !e.isSeriesFiltered(t) && t.coordinateSystem && 'polar' === t.coordinateSystem.type
        })
      )
    e.eachSeriesByType(t, function (t) {
      if ('polar' === t.coordinateSystem.type) {
        var e = t.getData(),
          n = t.coordinateSystem,
          o = n.getBaseAxis(),
          a = iV(n, o),
          s = nV(t),
          l = r[a][s],
          u = l.offset,
          c = l.width,
          h = n.getOtherAxis(o),
          d = t.coordinateSystem.cx,
          p = t.coordinateSystem.cy,
          f = t.get('barMinHeight') || 0,
          g = t.get('barMinAngle') || 0
        i[s] = i[s] || []
        for (
          var y = e.mapDimension(h.dim),
            v = e.mapDimension(o.dim),
            m = Y_(e, y),
            x = 'radius' !== o.dim || !t.get('roundCap', !0),
            _ = h.model.get('startValue'),
            b = h.dataToCoord(_ || 0),
            w = 0,
            S = e.count();
          w < S;
          w++
        ) {
          var M = e.get(y, w),
            I = e.get(v, w),
            T = M >= 0 ? 'p' : 'n',
            C = b
          m && (i[s][I] || (i[s][I] = { p: b, n: b }), (C = i[s][I][T]))
          var D = void 0,
            A = void 0,
            k = void 0,
            L = void 0
          if ('radius' === h.dim) {
            var P = h.dataToCoord(M) - b,
              O = o.dataToCoord(I)
            Math.abs(P) < f && (P = (P < 0 ? -1 : 1) * f), (D = C), (A = C + P), (L = (k = O - u) - c), m && (i[s][I][T] = A)
          } else {
            var R = h.dataToCoord(M, x) - b,
              N = o.dataToCoord(I)
            Math.abs(R) < g && (R = (R < 0 ? -1 : 1) * g), (A = (D = N + u) + c), (k = C), (L = C + R), m && (i[s][I][T] = L)
          }
          e.setItemLayout(w, { cx: d, cy: p, r0: D, r: A, startAngle: (-k * Math.PI) / 180, endAngle: (-L * Math.PI) / 180, clockwise: k >= L })
        }
      }
    })
  }
  var oV = { startAngle: 90, clockwise: !0, splitNumber: 12, axisLabel: { rotate: 0 } },
    aV = { splitNumber: 5 },
    sV = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return n(e, t), (e.type = 'polar'), e
    })(Ky)
  function lV(t, e) {
    e = e || {}
    var n = t.coordinateSystem,
      i = t.axis,
      r = {},
      o = i.position,
      a = i.orient,
      s = n.getRect(),
      l = [s.x, s.x + s.width, s.y, s.y + s.height],
      u = { horizontal: { top: l[2], bottom: l[3] }, vertical: { left: l[0], right: l[1] } }
    r.position = ['vertical' === a ? u.vertical[o] : l[0], 'horizontal' === a ? u.horizontal[o] : l[3]]
    r.rotation = (Math.PI / 2) * { horizontal: 0, vertical: 1 }[a]
    ;(r.labelDirection = r.tickDirection = r.nameDirection = { top: -1, bottom: 1, right: 1, left: -1 }[o]),
      t.get(['axisTick', 'inside']) && (r.tickDirection = -r.tickDirection),
      it(e.labelInside, t.get(['axisLabel', 'inside'])) && (r.labelDirection = -r.labelDirection)
    var c = t.get(['axisLabel', 'rotate'])
    return (r.labelRotate = 'top' === o ? -c : c), (r.z2 = 1), r
  }
  var uV = ['splitArea', 'splitLine', 'breakArea'],
    cV = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.axisPointerClass = 'SingleAxisPointer'), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (e, n, i, r) {
          var o = this.group
          o.removeAll()
          var a = this._axisGroup
          this._axisGroup = new to()
          var s = lV(e),
            l = new mC(e, i, s)
          l.build(),
            o.add(this._axisGroup),
            o.add(l.group),
            z(
              uV,
              function (t) {
                e.get([t, 'show']) && hV[t](this, this.group, this._axisGroup, e, i)
              },
              this
            ),
            Th(a, this._axisGroup, e),
            t.prototype.render.call(this, e, n, i, r)
        }),
        (e.prototype.remove = function () {
          tD(this)
        }),
        (e.type = 'singleAxis'),
        e
      )
    })($C),
    hV = {
      splitLine: function (t, e, n, i, r) {
        var o = i.axis
        if (!o.scale.isBlank()) {
          var a = i.getModel('splitLine'),
            s = a.getModel('lineStyle'),
            l = s.get('color')
          l = l instanceof Array ? l : [l]
          for (
            var u = s.get('width'),
              c = i.coordinateSystem.getRect(),
              h = o.isHorizontal(),
              d = [],
              p = 0,
              f = o.getTicksCoords({ tickModel: a, breakTicks: 'none', pruneByBreak: 'preserve_extent_bound' }),
              g = [],
              y = [],
              v = 0;
            v < f.length;
            ++v
          ) {
            var m = o.toGlobalCoord(f[v].coord)
            h ? ((g[0] = m), (g[1] = c.y), (y[0] = m), (y[1] = c.y + c.height)) : ((g[0] = c.x), (g[1] = m), (y[0] = c.x + c.width), (y[1] = m))
            var x = new Ac({ shape: { x1: g[0], y1: g[1], x2: y[0], y2: y[1] }, silent: !0 })
            _h(x.shape, u)
            var _ = p++ % l.length
            ;(d[_] = d[_] || []), d[_].push(x)
          }
          var b = s.getLineStyle(['color'])
          for (v = 0; v < d.length; ++v) e.add(mh(d[v], { style: k({ stroke: l[v % l.length] }, b), silent: !0 }))
        }
      },
      splitArea: function (t, e, n, i, r) {
        QC(t, n, i, i)
      },
      breakArea: function (t, e, n, i, r) {
        var o = YT(),
          a = i.axis.scale
        o && 'ordinal' !== a.type && o.rectCoordBuildBreakAxis(e, t, i, i.coordinateSystem.getRect(), r)
      }
    },
    dV = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.getCoordSysModel = function () {
          return this
        }),
        (e.type = 'singleAxis'),
        (e.layoutMode = 'box'),
        (e.defaultOption = {
          left: '5%',
          top: '5%',
          right: '5%',
          bottom: '5%',
          type: 'value',
          position: 'bottom',
          orient: 'horizontal',
          axisLine: { show: !0, lineStyle: { width: 1, type: 'solid' } },
          tooltip: { show: !0 },
          axisTick: { show: !0, length: 6, lineStyle: { width: 1 } },
          axisLabel: { show: !0, interval: 'auto' },
          splitLine: { show: !0, lineStyle: { type: 'dashed', opacity: 0.2 } },
          jitter: 0,
          jitterOverlap: !0,
          jitterMargin: 2
        }),
        e
      )
    })(Qp)
  R(dV, nw.prototype)
  var pV = (function (t) {
      function e(e, n, i, r, o) {
        var a = t.call(this, e, n, i) || this
        return (a.type = r || 'value'), (a.position = o || 'bottom'), a
      }
      return (
        n(e, t),
        (e.prototype.isHorizontal = function () {
          var t = this.position
          return 'top' === t || 'bottom' === t
        }),
        (e.prototype.pointToData = function (t, e) {
          return this.coordinateSystem.pointToData(t)[0]
        }),
        e
      )
    })(Ww),
    fV = ['single'],
    gV = (function () {
      function t(t, e, n) {
        ;(this.type = 'single'), (this.dimension = 'single'), (this.dimensions = fV), (this.axisPointerEnabled = !0), (this.model = t), this._init(t, e, n)
      }
      return (
        (t.prototype._init = function (t, e, n) {
          var i = this.dimension,
            r = new pV(i, Zb(t), [0, 0], t.get('type'), t.get('position')),
            o = 'category' === r.type
          ;(r.onBand = o && t.get('boundaryGap')),
            (r.inverse = t.get('inverse')),
            (r.orient = t.get('orient')),
            (t.axis = r),
            (r.model = t),
            (r.coordinateSystem = this),
            (this._axis = r)
        }),
        (t.prototype.update = function (t, e) {
          t.eachSeries(function (t) {
            if (t.coordinateSystem === this) {
              var e = t.getData()
              z(
                e.mapDimensionsAll(this.dimension),
                function (t) {
                  this._axis.scale.unionExtentFromData(e, t)
                },
                this
              ),
                Xb(this._axis.scale, this._axis.model)
            }
          }, this)
        }),
        (t.prototype.resize = function (t, e) {
          var n = Xp(t, e).refContainer
          ;(this._rect = Hp(t.getBoxLayoutParams(), n)), this._adjustAxis()
        }),
        (t.prototype.getRect = function () {
          return this._rect
        }),
        (t.prototype._adjustAxis = function () {
          var t = this._rect,
            e = this._axis,
            n = e.isHorizontal(),
            i = n ? [0, t.width] : [0, t.height],
            r = e.inverse ? 1 : 0
          e.setExtent(i[r], i[1 - r]), this._updateAxisTransform(e, n ? t.x : t.y)
        }),
        (t.prototype._updateAxisTransform = function (t, e) {
          var n = t.getExtent(),
            i = n[0] + n[1],
            r = t.isHorizontal()
          ;(t.toGlobalCoord = r
            ? function (t) {
                return t + e
              }
            : function (t) {
                return i - t + e
              }),
            (t.toLocalCoord = r
              ? function (t) {
                  return t - e
                }
              : function (t) {
                  return i - t + e
                })
        }),
        (t.prototype.getAxis = function () {
          return this._axis
        }),
        (t.prototype.getBaseAxis = function () {
          return this._axis
        }),
        (t.prototype.getAxes = function () {
          return [this._axis]
        }),
        (t.prototype.getTooltipAxes = function () {
          return { baseAxes: [this.getAxis()], otherAxes: [] }
        }),
        (t.prototype.containPoint = function (t) {
          var e = this.getRect(),
            n = this.getAxis()
          return 'horizontal' === n.orient
            ? n.contain(n.toLocalCoord(t[0])) && t[1] >= e.y && t[1] <= e.y + e.height
            : n.contain(n.toLocalCoord(t[1])) && t[0] >= e.y && t[0] <= e.y + e.height
        }),
        (t.prototype.pointToData = function (t, e, n) {
          n = n || []
          var i = this.getAxis()
          return (n[0] = i.coordToData(i.toLocalCoord(t['horizontal' === i.orient ? 0 : 1]))), n
        }),
        (t.prototype.dataToPoint = function (t, e, n) {
          var i = this.getAxis(),
            r = this.getRect()
          n = n || []
          var o = 'horizontal' === i.orient ? 0 : 1
          return t instanceof Array && (t = t[0]), (n[o] = i.toGlobalCoord(i.dataToCoord(+t))), (n[1 - o] = 0 === o ? r.y + r.height / 2 : r.x + r.width / 2), n
        }),
        (t.prototype.convertToPixel = function (t, e, n) {
          return yV(e) === this ? this.dataToPoint(n) : null
        }),
        (t.prototype.convertFromPixel = function (t, e, n) {
          return yV(e) === this ? this.pointToData(n) : null
        }),
        t
      )
    })()
  function yV(t) {
    var e = t.seriesModel,
      n = t.singleAxisModel
    return (n && n.coordinateSystem) || (e && e.coordinateSystem)
  }
  var vV = {
      create: function (t, e) {
        var n = []
        return (
          t.eachComponent('singleAxis', function (i, r) {
            var o = new gV(i, t, e)
            ;(o.name = 'single_' + r), o.resize(i, e), (i.coordinateSystem = o), n.push(o)
          }),
          t.eachSeries(function (t) {
            if ('singleAxis' === t.get('coordinateSystem')) {
              var e = t.getReferringComponents('singleAxis', ha).models[0]
              t.coordinateSystem = e && e.coordinateSystem
            }
          }),
          n
        )
      },
      dimensions: fV
    },
    mV = ['x', 'y'],
    xV = ['width', 'height'],
    _V = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.makeElOption = function (t, e, n, i, r) {
          var o = n.axis,
            a = o.coordinateSystem,
            s = SV(a, 1 - wV(o)),
            l = a.dataToPoint(e)[0],
            u = i.get('type')
          if (u && 'none' !== u) {
            var c = iB(i),
              h = bV[u](o, l, s)
            ;(h.style = c), (t.graphicKey = h.type), (t.pointer = h)
          }
          sB(e, t, lV(n), n, i, r)
        }),
        (e.prototype.getHandleTransform = function (t, e, n) {
          var i = lV(e, { labelInside: !1 })
          i.labelMargin = n.get(['handle', 'margin'])
          var r = aB(e.axis, t, i)
          return { x: r[0], y: r[1], rotation: i.rotation + (i.labelDirection < 0 ? Math.PI : 0) }
        }),
        (e.prototype.updateHandleTransform = function (t, e, n, i) {
          var r = n.axis,
            o = r.coordinateSystem,
            a = wV(r),
            s = SV(o, a),
            l = [t.x, t.y]
          ;(l[a] += e[a]), (l[a] = Math.min(s[1], l[a])), (l[a] = Math.max(s[0], l[a]))
          var u = SV(o, 1 - a),
            c = (u[1] + u[0]) / 2,
            h = [c, c]
          return (h[a] = l[a]), { x: l[0], y: l[1], rotation: t.rotation, cursorPoint: h, tooltipOption: { verticalAlign: 'middle' } }
        }),
        e
      )
    })($E),
    bV = {
      line: function (t, e, n) {
        return { type: 'Line', subPixelOptimize: !0, shape: lB([e, n[0]], [e, n[1]], wV(t)) }
      },
      shadow: function (t, e, n) {
        var i = t.getBandWidth(),
          r = n[1] - n[0]
        return { type: 'Rect', shape: uB([e - i / 2, n[0]], [i, r], wV(t)) }
      }
    }
  function wV(t) {
    return t.isHorizontal() ? 0 : 1
  }
  function SV(t, e) {
    var n = t.getRect()
    return [n[mV[e]], n[mV[e]] + n[xV[e]]]
  }
  var MV = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return n(e, t), (e.type = 'single'), e
  })(Ky)
  var IV = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.init = function (e, n, i) {
        var r = Kp(e)
        t.prototype.init.apply(this, arguments), TV(e, r)
      }),
      (e.prototype.mergeOption = function (e) {
        t.prototype.mergeOption.apply(this, arguments), TV(this.option, e)
      }),
      (e.prototype.getCellSize = function () {
        return this.option.cellSize
      }),
      (e.type = 'calendar'),
      (e.layoutMode = 'box'),
      (e.defaultOption = {
        z: 2,
        left: 80,
        top: 60,
        cellSize: 20,
        orient: 'horizontal',
        splitLine: { show: !0, lineStyle: { color: tf.color.axisLine, width: 1, type: 'solid' } },
        itemStyle: { color: tf.color.neutral00, borderWidth: 1, borderColor: tf.color.neutral10 },
        dayLabel: { show: !0, firstDay: 0, position: 'start', margin: tf.size.s, color: tf.color.secondary },
        monthLabel: { show: !0, position: 'start', margin: tf.size.s, align: 'center', formatter: null, color: tf.color.secondary },
        yearLabel: { show: !0, position: null, margin: tf.size.xl, formatter: null, color: tf.color.quaternary, fontFamily: 'sans-serif', fontWeight: 'bolder', fontSize: 20 }
      }),
      e
    )
  })(Qp)
  function TV(t, e) {
    var n,
      i = t.cellSize
    1 === (n = U(i) ? i : (t.cellSize = [i, i])).length && (n[1] = n[0])
    var r = E([0, 1], function (t) {
      return (
        (function (t, e) {
          return null != t[Bp[e][0]] || (null != t[Bp[e][1]] && null != t[Bp[e][2]])
        })(e, t) && (n[t] = 'auto'),
        null != n[t] && 'auto' !== n[t]
      )
    })
    qp(t, e, { type: 'box', ignoreSize: r })
  }
  var CV = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          var i = this.group
          i.removeAll()
          var r = t.coordinateSystem,
            o = r.getRangeInfo(),
            a = r.getOrient(),
            s = e.getLocaleModel()
          this._renderDayRect(t, o, i), this._renderLines(t, o, a, i), this._renderYearText(t, o, a, i), this._renderMonthText(t, s, a, i), this._renderWeekText(t, s, o, a, i)
        }),
        (e.prototype._renderDayRect = function (t, e, n) {
          for (
            var i = t.coordinateSystem, r = t.getModel('itemStyle').getItemStyle(), o = i.getCellWidth(), a = i.getCellHeight(), s = e.start.time;
            s <= e.end.time;
            s = i.getNextNDay(s, 1).time
          ) {
            var l = i.dataToCalendarLayout([s], !1).tl,
              u = new xl({ shape: { x: l[0], y: l[1], width: o, height: a }, cursor: 'default', style: r })
            n.add(u)
          }
        }),
        (e.prototype._renderLines = function (t, e, n, i) {
          var r = this,
            o = t.coordinateSystem,
            a = t.getModel(['splitLine', 'lineStyle']).getLineStyle(),
            s = t.get(['splitLine', 'show']),
            l = a.lineWidth
          ;(this._tlpoints = []), (this._blpoints = []), (this._firstDayOfMonth = []), (this._firstDayPoints = [])
          for (var u = e.start, c = 0; u.time <= e.end.time; c++) {
            d(u.formatedDate), 0 === c && (u = o.getDateInfo(e.start.y + '-' + e.start.m))
            var h = u.date
            h.setMonth(h.getMonth() + 1), (u = o.getDateInfo(h))
          }
          function d(e) {
            r._firstDayOfMonth.push(o.getDateInfo(e)), r._firstDayPoints.push(o.dataToCalendarLayout([e], !1).tl)
            var l = r._getLinePointsOfOneWeek(t, e, n)
            r._tlpoints.push(l[0]), r._blpoints.push(l[l.length - 1]), s && r._drawSplitline(l, a, i)
          }
          d(o.getNextNDay(e.end.time, 1).formatedDate),
            s && this._drawSplitline(r._getEdgesPoints(r._tlpoints, l, n), a, i),
            s && this._drawSplitline(r._getEdgesPoints(r._blpoints, l, n), a, i)
        }),
        (e.prototype._getEdgesPoints = function (t, e, n) {
          var i = [t[0].slice(), t[t.length - 1].slice()],
            r = 'horizontal' === n ? 0 : 1
          return (i[0][r] = i[0][r] - e / 2), (i[1][r] = i[1][r] + e / 2), i
        }),
        (e.prototype._drawSplitline = function (t, e, n) {
          var i = new Tc({ z2: 20, shape: { points: t }, style: e })
          n.add(i)
        }),
        (e.prototype._getLinePointsOfOneWeek = function (t, e, n) {
          for (var i = t.coordinateSystem, r = i.getDateInfo(e), o = [], a = 0; a < 7; a++) {
            var s = i.getNextNDay(r.time, a),
              l = i.dataToCalendarLayout([s.time], !1)
            ;(o[2 * s.day] = l.tl), (o[2 * s.day + 1] = l['horizontal' === n ? 'bl' : 'tr'])
          }
          return o
        }),
        (e.prototype._formatterLabel = function (t, e) {
          return X(t) && t
            ? ((n = t),
              z(e, function (t, e) {
                n = n.replace('{' + e + '}', i ? oe(t) : t)
              }),
              n)
            : Y(t)
              ? t(e)
              : e.nameMap
          var n, i
        }),
        (e.prototype._yearTextPositionControl = function (t, e, n, i, r) {
          var o = e[0],
            a = e[1],
            s = ['center', 'bottom']
          'bottom' === i ? ((a += r), (s = ['center', 'top'])) : 'left' === i ? (o -= r) : 'right' === i ? ((o += r), (s = ['center', 'top'])) : (a -= r)
          var l = 0
          return ('left' !== i && 'right' !== i) || (l = Math.PI / 2), { rotation: l, x: o, y: a, style: { align: s[0], verticalAlign: s[1] } }
        }),
        (e.prototype._renderYearText = function (t, e, n, i) {
          var r = t.getModel('yearLabel')
          if (r.get('show')) {
            var o = r.get('margin'),
              a = r.get('position')
            a || (a = 'horizontal' !== n ? 'top' : 'left')
            var s = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]],
              l = (s[0][0] + s[1][0]) / 2,
              u = (s[0][1] + s[1][1]) / 2,
              c = 'horizontal' === n ? 0 : 1,
              h = { top: [l, s[c][1]], bottom: [l, s[1 - c][1]], left: [s[1 - c][0], u], right: [s[c][0], u] },
              d = e.start.y
            ;+e.end.y > +e.start.y && (d = d + '-' + e.end.y)
            var p = r.get('formatter'),
              f = { start: e.start.y, end: e.end.y, nameMap: d },
              g = this._formatterLabel(p, f),
              y = new Sl({ z2: 30, style: Qh(r, { text: g }), silent: r.get('silent') })
            y.attr(this._yearTextPositionControl(y, h[a], n, a, o)), i.add(y)
          }
        }),
        (e.prototype._monthTextPositionControl = function (t, e, n, i, r) {
          var o = 'left',
            a = 'top',
            s = t[0],
            l = t[1]
          return (
            'horizontal' === n ? ((l += r), e && (o = 'center'), 'start' === i && (a = 'bottom')) : ((s += r), e && (a = 'middle'), 'start' === i && (o = 'right')),
            { x: s, y: l, align: o, verticalAlign: a }
          )
        }),
        (e.prototype._renderMonthText = function (t, e, n, i) {
          var r = t.getModel('monthLabel')
          if (r.get('show')) {
            var o = r.get('nameMap'),
              a = r.get('margin'),
              s = r.get('position'),
              l = r.get('align'),
              u = [this._tlpoints, this._blpoints]
            ;(o && !X(o)) || (o && (e = Od(o) || e), (o = e.get(['time', 'monthAbbr']) || []))
            var c = 'start' === s ? 0 : 1,
              h = 'horizontal' === n ? 0 : 1
            a = 'start' === s ? -a : a
            for (var d = 'center' === l, p = r.get('silent'), f = 0; f < u[c].length - 1; f++) {
              var g = u[c][f].slice(),
                y = this._firstDayOfMonth[f]
              if (d) {
                var v = this._firstDayPoints[f]
                g[h] = (v[h] + u[0][f + 1][h]) / 2
              }
              var m = r.get('formatter'),
                x = o[+y.m - 1],
                _ = { yyyy: y.y, yy: (y.y + '').slice(2), MM: y.m, M: +y.m, nameMap: x },
                b = this._formatterLabel(m, _),
                w = new Sl({ z2: 30, style: A(Qh(r, { text: b }), this._monthTextPositionControl(g, d, n, s, a)), silent: p })
              i.add(w)
            }
          }
        }),
        (e.prototype._weekTextPositionControl = function (t, e, n, i, r) {
          var o = 'center',
            a = 'middle',
            s = t[0],
            l = t[1],
            u = 'start' === n
          return (
            'horizontal' === e ? ((s = s + i + ((u ? 1 : -1) * r[0]) / 2), (o = u ? 'right' : 'left')) : ((l = l + i + ((u ? 1 : -1) * r[1]) / 2), (a = u ? 'bottom' : 'top')),
            { x: s, y: l, align: o, verticalAlign: a }
          )
        }),
        (e.prototype._renderWeekText = function (t, e, n, i, r) {
          var o = t.getModel('dayLabel')
          if (o.get('show')) {
            var a = t.coordinateSystem,
              s = o.get('position'),
              l = o.get('nameMap'),
              u = o.get('margin'),
              c = a.getFirstDayOfWeek()
            if (!l || X(l))
              l && (e = Od(l) || e),
                (l =
                  e.get(['time', 'dayOfWeekShort']) ||
                  E(e.get(['time', 'dayOfWeekAbbr']), function (t) {
                    return t[0]
                  }))
            var h = a.getNextNDay(n.end.time, 7 - n.lweek).time,
              d = [a.getCellWidth(), a.getCellHeight()]
            ;(u = yo(u, Math.min(d[1], d[0]))), 'start' === s && ((h = a.getNextNDay(n.start.time, -(7 + n.fweek)).time), (u = -u))
            for (var p = o.get('silent'), f = 0; f < 7; f++) {
              var g,
                y = a.getNextNDay(h, f),
                v = a.dataToCalendarLayout([y.time], !1).center
              g = Math.abs((f + c) % 7)
              var m = new Sl({ z2: 30, style: A(Qh(o, { text: l[g] }), this._weekTextPositionControl(v, i, s, u, d)), silent: p })
              r.add(m)
            }
          }
        }),
        (e.type = 'calendar'),
        e
      )
    })(Ky),
    DV = 864e5,
    AV = (function () {
      function t(e, n, i) {
        ;(this.type = 'calendar'), (this.dimensions = t.dimensions), (this.getDimensionsInfo = t.getDimensionsInfo), (this._model = e), this._update(n, i)
      }
      return (
        (t.getDimensionsInfo = function () {
          return [{ name: 'time', type: 'time' }, 'value']
        }),
        (t.prototype.getRangeInfo = function () {
          return this._rangeInfo
        }),
        (t.prototype.getModel = function () {
          return this._model
        }),
        (t.prototype.getRect = function () {
          return this._rect
        }),
        (t.prototype.getCellWidth = function () {
          return this._sw
        }),
        (t.prototype.getCellHeight = function () {
          return this._sh
        }),
        (t.prototype.getOrient = function () {
          return this._orient
        }),
        (t.prototype.getFirstDayOfWeek = function () {
          return this._firstDayOfWeek
        }),
        (t.prototype.getDateInfo = function (t) {
          var e = (t = Ao(t)).getFullYear(),
            n = t.getMonth() + 1,
            i = n < 10 ? '0' + n : '' + n,
            r = t.getDate(),
            o = r < 10 ? '0' + r : '' + r,
            a = t.getDay()
          return { y: e + '', m: i, d: o, day: (a = Math.abs((a + 7 - this.getFirstDayOfWeek()) % 7)), time: t.getTime(), formatedDate: e + '-' + i + '-' + o, date: t }
        }),
        (t.prototype.getNextNDay = function (t, e) {
          return 0 === (e = e || 0) || (t = new Date(this.getDateInfo(t).time)).setDate(t.getDate() + e), this.getDateInfo(t)
        }),
        (t.prototype._update = function (t, e) {
          ;(this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay')),
            (this._orient = this._model.get('orient')),
            (this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0),
            (this._rangeInfo = this._getRangeInfo(this._initRangeOption()))
          var n = this._rangeInfo.weeks || 1,
            i = ['width', 'height'],
            r = this._model.getCellSize().slice(),
            o = this._model.getBoxLayoutParams(),
            a = 'horizontal' === this._orient ? [n, 7] : [7, n]
          z([0, 1], function (t) {
            u(r, t) && (o[i[t]] = r[t] * a[t])
          })
          var s = { width: e.getWidth(), height: e.getHeight() },
            l = (this._rect = Hp(o, s))
          function u(t, e) {
            return null != t[e] && 'auto' !== t[e]
          }
          z([0, 1], function (t) {
            u(r, t) || (r[t] = l[i[t]] / a[t])
          }),
            (this._sw = r[0]),
            (this._sh = r[1])
        }),
        (t.prototype.dataToPoint = function (t, e, n) {
          ;(n = n || []), U(t) && (t = t[0]), null == e && (e = !0)
          var i = this.getDateInfo(t),
            r = this._rangeInfo,
            o = i.formatedDate
          if (e && !(i.time >= r.start.time && i.time < r.end.time + DV)) return (n[0] = n[1] = NaN), n
          var a = i.day,
            s = this._getRangeInfo([r.start.time, o]).nthWeek
          return (
            'vertical' === this._orient
              ? ((n[0] = this._rect.x + a * this._sw + this._sw / 2), (n[1] = this._rect.y + s * this._sh + this._sh / 2))
              : ((n[0] = this._rect.x + s * this._sw + this._sw / 2), (n[1] = this._rect.y + a * this._sh + this._sh / 2)),
            n
          )
        }),
        (t.prototype.pointToData = function (t) {
          var e = this.pointToDate(t)
          return e && e.time
        }),
        (t.prototype.dataToLayout = function (t, e, n) {
          var i = ((n = n || {}).rect = n.rect || {}),
            r = (n.contentRect = n.contentRect || {}),
            o = this.dataToPoint(t, e)
          return (i.x = o[0] - this._sw / 2), (i.y = o[1] - this._sh / 2), (i.width = this._sw), (i.height = this._sh), He.copy(r, i), Oh(r, this._lineWidth / 2, !0, !0), n
        }),
        (t.prototype.dataToCalendarLayout = function (t, e) {
          var n = this.dataToPoint(t, e)
          return {
            center: n,
            tl: [n[0] - this._sw / 2, n[1] - this._sh / 2],
            tr: [n[0] + this._sw / 2, n[1] - this._sh / 2],
            br: [n[0] + this._sw / 2, n[1] + this._sh / 2],
            bl: [n[0] - this._sw / 2, n[1] + this._sh / 2]
          }
        }),
        (t.prototype.pointToDate = function (t) {
          var e = Math.floor((t[0] - this._rect.x) / this._sw) + 1,
            n = Math.floor((t[1] - this._rect.y) / this._sh) + 1,
            i = this._rangeInfo.range
          return 'vertical' === this._orient ? this._getDateByWeeksAndDay(n, e - 1, i) : this._getDateByWeeksAndDay(e, n - 1, i)
        }),
        (t.prototype.convertToPixel = function (t, e, n) {
          var i = kV(e)
          return i === this ? i.dataToPoint(n) : null
        }),
        (t.prototype.convertToLayout = function (t, e, n) {
          var i = kV(e)
          return i === this ? i.dataToLayout(n) : null
        }),
        (t.prototype.convertFromPixel = function (t, e, n) {
          var i = kV(e)
          return i === this ? i.pointToData(n) : null
        }),
        (t.prototype.containPoint = function (t) {
          return console.warn('Not implemented.'), !1
        }),
        (t.prototype._initRangeOption = function () {
          var t,
            e = this._model.get('range')
          if ((U(e) && 1 === e.length && (e = e[0]), U(e))) t = e
          else {
            var n = e.toString()
            if ((/^\d{4}$/.test(n) && (t = [n + '-01-01', n + '-12-31']), /^\d{4}[\/|-]\d{1,2}$/.test(n))) {
              var i = this.getDateInfo(n),
                r = i.date
              r.setMonth(r.getMonth() + 1)
              var o = this.getNextNDay(r, -1)
              t = [i.formatedDate, o.formatedDate]
            }
            ;/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(n) && (t = [n, n])
          }
          if (!t) return e
          var a = this._getRangeInfo(t)
          return a.start.time > a.end.time && t.reverse(), t
        }),
        (t.prototype._getRangeInfo = function (t) {
          var e,
            n = [this.getDateInfo(t[0]), this.getDateInfo(t[1])]
          n[0].time > n[1].time && ((e = !0), n.reverse())
          var i = Math.floor(n[1].time / DV) - Math.floor(n[0].time / DV) + 1,
            r = new Date(n[0].time),
            o = r.getDate(),
            a = n[1].date.getDate()
          r.setDate(o + i - 1)
          var s = r.getDate()
          if (s !== a) for (var l = r.getTime() - n[1].time > 0 ? 1 : -1; (s = r.getDate()) !== a && (r.getTime() - n[1].time) * l > 0; ) (i -= l), r.setDate(s - l)
          var u = Math.floor((i + n[0].day + 6) / 7),
            c = e ? 1 - u : u - 1
          return e && n.reverse(), { range: [n[0].formatedDate, n[1].formatedDate], start: n[0], end: n[1], allDay: i, weeks: u, nthWeek: c, fweek: n[0].day, lweek: n[1].day }
        }),
        (t.prototype._getDateByWeeksAndDay = function (t, e, n) {
          var i = this._getRangeInfo(n)
          if (t > i.weeks || (0 === t && e < i.fweek) || (t === i.weeks && e > i.lweek)) return null
          var r = 7 * (t - 1) - i.fweek + e,
            o = new Date(i.start.time)
          return o.setDate(+i.start.d + r), this.getDateInfo(o)
        }),
        (t.create = function (e, n) {
          var i = []
          return (
            e.eachComponent('calendar', function (r) {
              var o = new t(r, e, n)
              i.push(o), (r.coordinateSystem = o)
            }),
            e.eachComponent(function (t, e) {
              Rp({ targetModel: e, coordSysType: 'calendar', coordSysProvider: Np })
            }),
            i
          )
        }),
        (t.dimensions = ['time', 'value']),
        t
      )
    })()
  function kV(t) {
    var e = t.calendarModel,
      n = t.seriesModel
    return e ? e.coordinateSystem : n ? n.coordinateSystem : null
  }
  var LV = 1,
    PV = 2,
    OV = 3,
    RV = { none: 0, all: 1, body: 2, corner: 3 }
  function NV(t, e, n) {
    var i = e[lh[n]].getCell(t)
    return !i && j(t) && t < 0 && (i = e[lh[1 - n]].getUnitLayoutInfo(n, Math.round(t))), i
  }
  function zV(t) {
    var e = t || []
    return (e[0] = e[0] || []), (e[1] = e[1] || []), (e[0][0] = e[0][1] = e[1][0] = e[1][1] = NaN), e
  }
  function EV(t, e, n, i, r) {
    BV(t[0], e, r, n, i, 0), BV(t[1], e, r, n, i, 1)
  }
  function BV(t, e, n, i, r, o) {
    ;(t[0] = 1 / 0), (t[1] = -1 / 0)
    var a = i[o],
      s = U(a) ? a : [a],
      l = s.length,
      u = !!n
    if ((l >= 1 ? (VV(t, e, s, u, r, o, 0), l > 1 && VV(t, e, s, u, r, o, l - 1)) : (t[0] = t[1] = NaN), u)) {
      var c = -r[lh[1 - o]].getLocatorCount(o),
        h = r[lh[o]].getLocatorCount(o) - 1
      n === RV.body ? (c = po(0, c)) : n === RV.corner && (h = ho(-1, h)),
        h < c && (c = h = NaN),
        nt(t[0]) && (t[0] = c),
        nt(t[1]) && (t[1] = h),
        (t[0] = po(ho(t[0], h), c)),
        (t[1] = po(ho(t[1], h), c))
    }
  }
  function VV(t, e, n, i, r, o, a) {
    var s = NV(n[a], r, o)
    if (s) {
      var l,
        u = s.id[lh[o]],
        c = u,
        h = !(l = s) || (l.type !== PV && l.type !== OV) ? null : l
      h && (c += h.span[lh[o]] - 1), (t[0] = ho(t[0], u, c)), (t[1] = po(t[1], u, c))
    } else t[0] = t[1] = NaN
  }
  function GV(t, e) {
    return nt(t[e][0]) || nt(t[e][1])
  }
  function FV(t, e, n, i) {
    e = e || WV
    for (var r = 0; r < i; r++) e[r] = !1
    for (;;) {
      var o = !1
      for (r = 0; r < i; r++) {
        var a = n[r]
        !e[r] && a.cellMergeOwner && HV(t, a.locatorRange) && ((e[r] = !0), (o = !0))
      }
      if (!o) break
    }
  }
  var WV = []
  function HV(t, e) {
    return (
      !(!UV(t[0], e[0]) || !UV(t[1], e[1])) &&
      ((t[0][0] = ho(t[0][0], e[0][0])), (t[0][1] = po(t[0][1], e[0][1])), (t[1][0] = ho(t[1][0], e[1][0])), (t[1][1] = po(t[1][1], e[1][1])), !0)
    )
  }
  function UV(t, e) {
    return t[1] >= e[0] && t[0] <= e[1]
  }
  function YV(t, e) {
    t.id.set(e[0][0], e[1][0]), t.span.set(e[0][1] - t.id.x + 1, e[1][1] - t.id.y + 1)
  }
  function XV(t, e, n, i) {
    var r = NV(e[i][0], n, i),
      o = NV(e[i][1], n, i)
    ;(t[lh[i]] = t[uh[i]] = NaN), r && o && ((t[lh[i]] = r.xy), (t[uh[i]] = o.xy + o.wh - r.xy))
  }
  function ZV(t, e, n, i) {
    return (t[lh[e]] = n), (t[lh[1 - e]] = i), t
  }
  var jV = (function () {
    function t(t, e) {
      ;(this._cells = []),
        (this._levels = []),
        (this.dim = t),
        (this.dimIdx = 'x' === t ? 0 : 1),
        (this._model = e),
        (this._uniqueValueGen = (function (t) {
          var e = t.toUpperCase(),
            n = new RegExp('^' + e + '([0-9]+)$'),
            i = 0
          function r(t) {
            var e
            null != t && (e = t.match(n)) && (i = po(i, +e[1] + 1))
          }
          function o() {
            return '' + e + i++
          }
          function a(t, e) {
            for (var n = yt(), i = 0; i < t.length; i++) {
              var r = t[i]
              ;(null != r && null == n.get(r)) || ((t[i] = r = o()), (e[i].option = k({ value: r }, e[i].option))), n.set(r, !0)
            }
          }
          return { calcDupBase: r, ensureValueUnique: a }
        })(t))
      var n = e.get('data', !0)
      null == n || U(n) || (n = []), n ? this._initByDimModelData(n) : this._initBySeriesData()
    }
    return (
      (t.prototype._initByDimModelData = function (t) {
        var e = this,
          n = e._cells,
          i = e._levels,
          r = [],
          o = 0
        return (
          (e._leavesCount = (function t(n, a, s) {
            var l = 0
            if (!n) return l
            return (
              z(n, function (n, u) {
                var c
                X(n) ? (c = { value: n }) : q(n) ? ((c = n), null == n.value || X(n.value) || (!0, (c = { value: null }))) : (c = { value: null })
                var h = {
                  type: OV,
                  ordinal: NaN,
                  level: s,
                  firstLeafLocator: a,
                  id: new Ae(),
                  span: ZV(new Ae(), e.dimIdx, 1, 1),
                  option: c,
                  xy: NaN,
                  wh: NaN,
                  dim: e,
                  rect: { x: NaN, y: NaN, width: NaN, height: NaN }
                }
                o++, (r[a] || (r[a] = [])).push(h), i[s] || (i[s] = { type: LV, xy: NaN, wh: NaN, option: null, id: new Ae(), dim: e })
                var d = t(c.children, a, s + 1),
                  p = Math.max(1, d)
                ;(h.span[lh[e.dimIdx]] = p), (l += p), (a += p)
              }),
              l
            )
          })(t, 0, 0)),
          void (function () {
            var t = []
            for (; n.length < o; )
              for (var i = 0; i < r.length; i++) {
                var a = r[i].pop()
                if (a) {
                  a.ordinal = t.length
                  var s = a.option.value
                  t.push(s), n.push(a), e._uniqueValueGen.calcDupBase(s)
                }
              }
            e._uniqueValueGen.ensureValueUnique(t, n)
            var l = (e._ordinalMeta = new ab({ categories: t, needCollect: !1, deduplication: !1 }))
            e._scale = new lb({ ordinalMeta: l })
            for (var u = 0; u < e._leavesCount; u++) {
              var c = e._cells[u]
              ;(c.type = PV), (c.span[lh[1 - e.dimIdx]] = e._levels.length - c.level)
            }
            e._initCellsId(), e._initLevelIdOptions()
          })()
        )
      }),
      (t.prototype._initBySeriesData = function () {
        var t = this
        ;(t._leavesCount = 0), (t._levels = [{ type: LV, xy: NaN, wh: NaN, option: null, id: new Ae(), dim: t }]), t._initLevelIdOptions()
        var e = (t._ordinalMeta = new ab({
          needCollect: !0,
          deduplication: !0,
          onCollect: function (e, n) {
            var i = (t._cells[n] = {
              type: PV,
              ordinal: n,
              level: 0,
              firstLeafLocator: n,
              id: new Ae(),
              span: ZV(new Ae(), t.dimIdx, 1, 1),
              option: { value: e + '' },
              xy: NaN,
              wh: NaN,
              dim: t,
              rect: { x: NaN, y: NaN, width: NaN, height: NaN }
            })
            t._leavesCount++, t._setCellId(i)
          }
        }))
        t._scale = new lb({ ordinalMeta: e })
      }),
      (t.prototype._setCellId = function (t) {
        var e = this._levels.length,
          n = this.dimIdx
        ZV(t.id, n, t.firstLeafLocator, t.level - e)
      }),
      (t.prototype._initCellsId = function () {
        var t = this._levels.length,
          e = this.dimIdx
        z(this._cells, function (n) {
          ZV(n.id, e, n.firstLeafLocator, n.level - t)
        })
      }),
      (t.prototype._initLevelIdOptions = function () {
        var t = this._levels.length,
          e = this.dimIdx,
          n = this._model.get('levels', !0)
        ;(n = U(n) ? n : []),
          z(this._levels, function (i, r) {
            ZV(i.id, e, 0, r - t), (i.option = n[r])
          })
      }),
      (t.prototype.shouldShow = function () {
        return !!this._model.getShallow('show', !0)
      }),
      (t.prototype.resetLayoutIterator = function (t, e, n, i) {
        if (((t = t || new va()), e === this.dimIdx)) {
          var r = this._leavesCount,
            o = null != n ? Math.max(0, n) : 0
          ;(i = null != i ? Math.min(i, r) : r), t.reset(this._cells, o, o + i)
        } else {
          ;(r = this._levels.length), (o = null != n ? Math.max(0, n + r) : 0)
          ;(i = null != i ? Math.min(i, r) : r), t.reset(this._levels, o, o + i)
        }
        return t
      }),
      (t.prototype.resetCellIterator = function (t) {
        return (t || new va()).reset(this._cells, 0)
      }),
      (t.prototype.resetLevelIterator = function (t) {
        return (t || new va()).reset(this._levels, 0)
      }),
      (t.prototype.getLayout = function (t, e, n) {
        var i = this.getUnitLayoutInfo(e, n)
        ;(t[lh[e]] = i ? i.xy : NaN), (t[uh[e]] = i ? i.wh : NaN)
      }),
      (t.prototype.getUnitLayoutInfo = function (t, e) {
        return t === this.dimIdx ? (e < this._leavesCount ? this._cells[e] : void 0) : this._levels[e + this._levels.length]
      }),
      (t.prototype.getCell = function (t) {
        var e = this._scale.parse(t)
        return nt(e) ? void 0 : this._cells[e]
      }),
      (t.prototype.getLocatorCount = function (t) {
        return t === this.dimIdx ? this._leavesCount : this._levels.length
      }),
      (t.prototype.getOrdinalMeta = function () {
        return this._ordinalMeta
      }),
      t
    )
  })()
  var qV = (function () {
      function t(t, e, n) {
        ;(this._model = e), (this._dims = n), (this._kind = t), (this._cellMergeOwnerList = [])
      }
      return (
        (t.prototype._ensureCellMap = function () {
          var t = this,
            e = t._cellMap
          return (
            e ||
              ((e = t._cellMap = yt()),
              (function () {
                var e = [],
                  i = t._model.getShallow('data')
                i && !U(i) && (i = null)
                z(i, function (n, i) {
                  if (q(n) && U(n.coord)) {
                    var r = zV([]),
                      o = null
                    if ((EV(r, o, n.coord, t._dims, n.coordClamp ? RV[t._kind] : RV.none), !GV(r, 0) && !GV(r, 1))) {
                      var a = n && n.mergeCells,
                        s = { id: new Ae(), span: new Ae(), locatorRange: r, option: n, cellMergeOwner: a }
                      YV(s, r), e.push(s)
                    }
                  }
                })
                for (var r = [], o = 0; o < e.length; o++) {
                  var a = e[o]
                  if (a.cellMergeOwner) {
                    var s = a.locatorRange
                    FV(s, r, e, o)
                    for (var l = 0; l < o; l++) r[l] && (e[l].cellMergeOwner = !1)
                    if (s[0][0] !== a.id.x || s[1][0] !== a.id.y) {
                      a.cellMergeOwner = !1
                      var u = A({}, a.option)
                      u.coord = null
                      var c = { id: new Ae(), span: new Ae(), locatorRange: s, option: u, cellMergeOwner: !0 }
                      YV(c, s), e.push(c)
                    }
                  }
                }
                z(e, function (e) {
                  var i = n(e.id.x, e.id.y)
                  if (
                    (e.cellMergeOwner &&
                      ((i.cellMergeOwner = !0),
                      (i.span = e.span),
                      (i.locatorRange = e.locatorRange),
                      (i.spanRect = { x: NaN, y: NaN, width: NaN, height: NaN }),
                      t._cellMergeOwnerList.push(i)),
                    e.cellMergeOwner || e.option)
                  )
                    for (var r = 0; r < e.span.y; r++)
                      for (var o = 0; o < e.span.x; o++) {
                        var a = n(e.id.x + o, e.id.y + r)
                        ;(a.option = e.option), e.cellMergeOwner && (a.inSpanOf = i)
                      }
                })
              })()),
            e
          )
          function n(t, n) {
            var i = $V(t, n),
              r = e.get(i)
            return r || (r = e.set(i, { id: new Ae(t, n), option: null, inSpanOf: null, span: null, spanRect: null, locatorRange: null, cellMergeOwner: !1 })), r
          }
        }),
        (t.prototype.getCell = function (t) {
          return this._ensureCellMap().get($V(t[0], t[1]))
        }),
        (t.prototype.travelExistingCells = function (t) {
          this._ensureCellMap().each(t)
        }),
        (t.prototype.expandRangeByCellMerge = function (t) {
          if (!GV(t, 0) && !GV(t, 1) && t[0][0] === t[0][1] && t[1][0] === t[1][1]) {
            ;(KV[0] = t[0][0]), (KV[1] = t[1][0])
            var e = this.getCell(KV),
              n = e && e.inSpanOf
            if (n)
              return void (function (t, e) {
                ;(t[0][0] = e[0][0]), (t[0][1] = e[0][1]), (t[1][0] = e[1][0]), (t[1][1] = e[1][1])
              })(t, n.locatorRange)
          }
          var i = this._cellMergeOwnerList
          FV(t, null, i, i.length)
        }),
        t
      )
    })(),
    KV = []
  function $V(t, e) {
    return t + '|' + e
  }
  var JV = { show: !0, color: tf.color.secondary, overflow: 'break', lineOverflow: 'truncate', padding: [2, 3, 2, 3], distance: 0 }
  function QV(t) {
    return { color: 'none', borderWidth: 1, borderColor: t ? 'none' : tf.color.borderTint }
  }
  var tG = { show: !0, label: JV, itemStyle: QV(!1), silent: void 0, dividerLineStyle: { width: 1, color: tf.color.border } },
    eG = {
      z: -50,
      left: '10%',
      top: '10%',
      right: '10%',
      bottom: '10%',
      x: tG,
      y: tG,
      body: { label: JV, itemStyle: QV(!1), silent: void 0 },
      corner: { label: JV, itemStyle: QV(!0), silent: void 0 },
      backgroundStyle: { color: 'none', borderColor: tf.color.axisLine, borderWidth: 1 }
    },
    nG = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.optionUpdated = function () {
          var t = (this._dimModels = { x: new iG(this.get('x', !0) || {}), y: new iG(this.get('y', !0) || {}) })
          t.x.option.type = t.y.option.type = 'category'
          var e = { x: (t.x.dim = new jV('x', t.x)), y: (t.y.dim = new jV('y', t.y)) }
          ;(this._body = new qV('body', new wd(this.getShallow('body')), e)), (this._corner = new qV('corner', new wd(this.getShallow('corner')), e))
        }),
        (e.prototype.getDimensionModel = function (t) {
          return this._dimModels[t]
        }),
        (e.prototype.getBody = function () {
          return this._body
        }),
        (e.prototype.getCorner = function () {
          return this._corner
        }),
        (e.type = 'matrix'),
        (e.layoutMode = 'box'),
        (e.defaultOption = eG),
        e
      )
    })(Qp),
    iG = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.getOrdinalMeta = function () {
          return this.dim.getOrdinalMeta()
        }),
        e
      )
    })(wd),
    rG = Math.round,
    oG = { normal: 25, special: 100 },
    aG = { normal: 50, special: 125 },
    sG = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e) {
          this.group.removeAll()
          var n = this.group,
            i = t.coordinateSystem.getRect(),
            r = t.getDimensionModel('x'),
            o = t.getDimensionModel('y'),
            a = r.dim,
            s = o.dim
          !(function (t, e, n) {
            function i(i) {
              var r = e.getDimensionModel(lh[i]),
                o = r.dim
              if (o.shouldShow())
                for (var a = r.getModel('itemStyle'), s = r.getModel('label'), l = e.getShallow('tooltip', !0), u = [], c = o.resetCellIterator(); c.next(); ) {
                  var h = c.item,
                    d = {}
                  He.copy(d, h.rect), Dt(u, h.id.x, h.id.y), lG(u, e, t, n, h.option, a, s, r, d, h.option.value, aG, l)
                }
            }
            i(0), i(1)
          })(n, t, e),
            (function (t, e, n, i, r) {
              o('body', e.getBody(), n, i), n.shouldShow() && i.shouldShow() && o('corner', e.getCorner(), i, n)
              function o(n, i, o, a) {
                var s = new wd(e.getShallow(n, !0)),
                  l = s.getModel('itemStyle'),
                  u = s.getModel('label'),
                  c = new va(),
                  h = new va(),
                  d = [],
                  p = e.getShallow('tooltip', !0)
                for (a.resetLayoutIterator(h, 1); h.next(); )
                  for (o.resetLayoutIterator(c, 0); c.next(); ) {
                    var f = c.item,
                      g = h.item
                    Dt(d, f.id.x, g.id.y)
                    var y = i.getCell(d)
                    if (!y || !y.inSpanOf || y.inSpanOf === y) {
                      var v = {}
                      y && y.span ? He.copy(v, y.spanRect) : (f.dim.getLayout(v, 0, d[0]), g.dim.getLayout(v, 1, d[1]))
                      var m = y ? y.option : null
                      lG(d, e, t, r, m, l, u, s, v, m ? m.value : null, oG, p)
                    }
                  }
              }
            })(n, t, a, s, e)
          var l = rt(t.getShallow('borderZ2', !0), 99),
            u = l - 1,
            c = t.getModel('backgroundStyle').getItemStyle(['borderWidth'])
          c.lineWidth = 0
          var h = t.getModel('backgroundStyle').getItemStyle(['color', 'decal', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'])
          h.fill = 'none'
          var d = pG(i.clone(), c, 0),
            p = pG(i.clone(), h, l)
          ;(d.silent = !0), (p.silent = !0), n.add(d), n.add(p)
          var f = a.getUnitLayoutInfo(0, 0),
            g = s.getUnitLayoutInfo(1, 0)
          f &&
            g &&
            (a.shouldShow() && n.add(fG({ x1: i.x, y1: g.xy, x2: i.x + i.width, y2: g.xy }, r.getModel('dividerLineStyle').getLineStyle(), u)),
            s.shouldShow() && n.add(fG({ x1: f.xy, y1: i.y, x2: f.xy, y2: i.y + i.height }, o.getModel('dividerLineStyle').getLineStyle(), u)))
        }),
        (e.type = 'matrix'),
        e
      )
    })(Ky)
  function lG(t, e, n, i, r, o, a, s, l, u, c, h) {
    var d
    ;(cG.option = r ? r.itemStyle : null), (cG.parentModel = o), (uG.option = r), (uG.parentModel = s)
    var p = rt(uG.getShallow('z2'), r && r.itemStyle ? c.special : c.normal),
      f = h && h.show,
      g = pG(l, cG.getItemStyle(), p)
    n.add(g)
    var y,
      v = uG.get('cursor')
    if ((null != v && g.attr('cursor', v), null != u)) {
      var m = u + ''
      if (
        ((hG.option = r ? r.label : null),
        (hG.parentModel = a),
        (hG.ecModel = i),
        $h(g, { normal: hG }, { defaultText: m, autoOverflowArea: !0, layoutRect: T(g.shape) }),
        (y = g.getTextContent()))
      ) {
        y.z2 = p + 1
        var x = y.style
        if (x && x.overflow && 'none' !== x.overflow && x.lineOverflow) {
          var _ = {}
          He.copy(_, l),
            Oh(_, ((null === (d = g.style) || void 0 === d ? void 0 : d.lineWidth) || 0) / 2, !0, !0),
            g.updateInnerText(),
            y.getLocalTransform(dG),
            Te(dG, dG),
            He.applyTransform(_, _, dG),
            y.setClipPath(new xl({ shape: _ }))
        }
      }
      zh({ el: g, componentModel: e, itemName: m, itemTooltipOption: h, formatterParamsExtra: { xyLocator: t.slice() } })
    }
    if (y) {
      var b = hG.get('silent')
      null == b && (b = !f), (y.silent = b), (y.ignoreHostSilent = !0)
    }
    var w = uG.get('silent')
    null == w && (w = !g.style || 'none' === g.style.fill || !g.style.fill), (g.silent = w), ma(uG), ma(cG), ma(hG)
  }
  var uG = new wd(),
    cG = new wd(),
    hG = new wd(),
    dG = []
  function pG(t, e, n) {
    var i = e.lineWidth
    if (i) {
      var r = t.x + t.width,
        o = t.y + t.height
      ;(t.x = yl(t.x, i, !0)), (t.y = yl(t.y, i, !0)), (t.width = yl(r, i, !0) - t.x), (t.height = yl(o, i, !0) - t.y)
    }
    return new xl({ shape: t, style: e, z2: n })
  }
  function fG(t, e, n) {
    var i = e.lineWidth
    return (
      i && (rG(2 * t.x1) === rG(2 * t.x2) && (t.x1 = t.x2 = yl(t.x1, i, !0)), rG(2 * t.y1) === rG(2 * t.y2) && (t.y1 = t.y2 = yl(t.y1, i, !0))),
      new Ac({ shape: t, style: e, silent: !0, z2: n })
    )
  }
  var gG = (function () {
      function t(e, n, i) {
        ;(this.dimensions = t.dimensions), (this.type = 'matrix'), (this._model = e)
        var r = (this._dimModels = { x: e.getDimensionModel('x'), y: e.getDimensionModel('y') })
        ;(this._dims = { x: r.x.dim, y: r.y.dim }), this._resize(e, i)
      }
      return (
        (t.getDimensionsInfo = function () {
          return [{ name: 'x', type: 'ordinal' }, { name: 'y', type: 'ordinal' }, { name: 'value' }]
        }),
        (t.create = function (e, n) {
          var i = []
          return (
            e.eachComponent('matrix', function (r) {
              var o = new t(r, e, n)
              i.push(o), (r.coordinateSystem = o)
            }),
            e.eachComponent(function (t, e) {
              Rp({ targetModel: e, coordSysType: 'matrix', coordSysProvider: Np })
            }),
            i
          )
        }),
        (t.prototype.getRect = function () {
          return this._rect
        }),
        (t.prototype._resize = function (t, e) {
          var n = this._dims,
            i = this._dimModels,
            r = (this._rect = Hp(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }))
          xG(i, n, r, 0), xG(i, n, r, 1), _G(0, n), _G(1, n), bG(this._model.getBody(), n), bG(this._model.getCorner(), n)
        }),
        (t.prototype.dataToPoint = function (t, e, n) {
          return (n = n || []), this.dataToLayout(t, e, yG), (n[0] = yG.rect.x + yG.rect.width / 2), (n[1] = yG.rect.y + yG.rect.height / 2), n
        }),
        (t.prototype.dataToLayout = function (t, e, n) {
          var i = this._dims,
            r = ((n = n || {}).rect = n.rect || {})
          r.x = r.y = r.width = r.height = NaN
          var o = (n.matrixXYLocatorRange = zV(n.matrixXYLocatorRange))
          return U(t)
            ? (EV(o, null, t, i, rt(e && e.clamp, RV.none)),
              (e && e.ignoreMergeCells) ||
                ((e && e.clamp === RV.corner) || this._model.getBody().expandRangeByCellMerge(o), (e && e.clamp === RV.body) || this._model.getCorner().expandRangeByCellMerge(o)),
              XV(r, o, i, 0),
              XV(r, o, i, 1),
              n)
            : n
        }),
        (t.prototype.pointToData = function (t, e, n) {
          var i = this._dims
          return (
            CG(TG, 0, i, t, e && e.clamp),
            CG(TG, 1, i, t, e && e.clamp),
            ((n = n || [])[0] = n[1] = NaN),
            TG.y === IG.inCorner && TG.x === IG.inBody ? DG(TG, n, 0, i) : TG.x === IG.inCorner && TG.y === IG.inBody ? DG(TG, n, 1, i) : (AG(TG, n, 0, i), AG(TG, n, 1, i)),
            n
          )
        }),
        (t.prototype.convertToPixel = function (t, e, n, i) {
          var r = MG(e)
          return r === this ? r.dataToPoint(n, i) : void 0
        }),
        (t.prototype.convertToLayout = function (t, e, n, i) {
          var r = MG(e)
          return r === this ? r.dataToLayout(n, i) : void 0
        }),
        (t.prototype.convertFromPixel = function (t, e, n, i) {
          var r = MG(e)
          return r === this ? r.pointToData(n, i) : void 0
        }),
        (t.prototype.containPoint = function (t) {
          return this._rect.contain(t[0], t[1])
        }),
        (t.dimensions = ['x', 'y', 'value']),
        t
      )
    })(),
    yG = { rect: { x: NaN, y: NaN, width: NaN, height: NaN } },
    vG = new va(),
    mG = new va()
  function xG(t, e, n, i) {
    for (var r = 1 - i, o = e[lh[i]], a = e[lh[r]], s = a.shouldShow(), l = o.resetCellIterator(); l.next(); ) l.item.wh = l.item.xy = NaN
    for (var u = a.resetLayoutIterator(null, i); u.next(); ) u.item.wh = u.item.xy = NaN
    for (var c = n[uh[i]], h = o.getLocatorCount(i) + a.getLocatorCount(i), d = new wd(), p = a.resetLevelIterator(); p.next(); )
      (d.option = p.item.option), (d.parentModel = t[lh[r]]), y(p.item, s ? d.get('levelSize') : 0)
    for (var f = new wd(), g = o.resetCellIterator(); g.next(); ) g.item.type === PV && ((f.option = g.item.option), (f.parentModel = void 0), y(g.item, f.get('size')))
    function y(t, e) {
      var r = (function (t, e, n) {
        var i = vo(t, n[uh[e]])
        return SG(i, n[uh[e]])
      })(e, i, n)
      nt(r) || ((t.wh = SG(r, c)), (c = SG(c - t.wh)), h--)
    }
    var v = h ? c / h : 0,
      m = !h && c >= 1,
      x = n[lh[i]],
      _ = o.getLocatorCount(i) - 1,
      b = new va()
    for (a.resetLayoutIterator(b, i); b.next(); ) w(b.item)
    for (o.resetLayoutIterator(b, i); b.next(); ) w(b.item)
    function w(t) {
      nt(t.wh) && (t.wh = v), (t.xy = x), t.id[lh[i]] !== _ || m || (t.wh = n[lh[i]] + n[uh[i]] - t.xy), (x += t.wh)
    }
  }
  function _G(t, e) {
    for (var n = e[lh[t]].resetCellIterator(); n.next(); ) {
      var i = n.item
      wG(i.rect, t, i.id, i.span, e), wG(i.rect, 1 - t, i.id, i.span, e), i.type === OV && ((i.xy = i.rect[lh[t]]), (i.wh = i.rect[uh[t]]))
    }
  }
  function bG(t, e) {
    t.travelExistingCells(function (t) {
      var n = t.span
      if (n) {
        var i = t.spanRect,
          r = t.id
        wG(i, 0, r, n, e), wG(i, 1, r, n, e)
      }
    })
  }
  function wG(t, e, n, i, r) {
    t[uh[e]] = 0
    var o = n[lh[e]] < 0 ? r[lh[1 - e]] : r[lh[e]],
      a = o.getUnitLayoutInfo(e, n[lh[e]])
    if (((t[lh[e]] = a.xy), (t[uh[e]] = a.wh), i[lh[e]] > 1)) {
      var s = o.getUnitLayoutInfo(e, n[lh[e]] + i[lh[e]] - 1)
      t[uh[e]] = s.xy + s.wh - a.xy
    }
  }
  function SG(t, e) {
    return Math.max(Math.min(t, rt(e, 1 / 0)), 0)
  }
  function MG(t) {
    var e = t.matrixModel,
      n = t.seriesModel
    return e ? e.coordinateSystem : n ? n.coordinateSystem : null
  }
  var IG = { inBody: 1, inCorner: 2, outside: 3 },
    TG = { x: null, y: null, point: [] }
  function CG(t, e, n, i, r) {
    var o = n[lh[e]],
      a = n[lh[1 - e]],
      s = o.getUnitLayoutInfo(e, o.getLocatorCount(e) - 1),
      l = o.getUnitLayoutInfo(e, 0),
      u = a.getUnitLayoutInfo(e, -a.getLocatorCount(e)),
      c = a.shouldShow() ? a.getUnitLayoutInfo(e, -1) : null,
      h = (t.point[e] = i[e])
    if (l || c)
      if (r !== RV.body)
        if (r !== RV.corner) {
          var d = l ? l.xy : c ? c.xy + c.wh : NaN,
            p = u ? u.xy : d,
            f = s ? s.xy + s.wh : d
          if (h < p) {
            if (!r) return void (t[lh[e]] = IG.outside)
            h = p
          } else if (h > f) {
            if (!r) return void (t[lh[e]] = IG.outside)
            h = f
          }
          ;(t.point[e] = h), (t[lh[e]] = d <= h && h <= f ? IG.inBody : p <= h && h <= d ? IG.inCorner : IG.outside)
        } else c ? ((t[lh[e]] = IG.inCorner), (h = ho(c.xy + c.wh, po(u.xy, h))), (t.point[e] = h)) : (t[lh[e]] = IG.outside)
      else l ? ((t[lh[e]] = IG.inBody), (h = ho(s.xy + s.wh, po(l.xy, h))), (t.point[e] = h)) : (t[lh[e]] = IG.outside)
    else t[lh[e]] = IG.outside
  }
  function DG(t, e, n, i) {
    var r = 1 - n
    if (t[lh[n]] !== IG.outside)
      for (i[lh[n]].resetCellIterator(mG); mG.next(); ) {
        var o = mG.item
        if (kG(t.point[n], o.rect, n) && kG(t.point[r], o.rect, r)) return (e[n] = o.ordinal), void (e[r] = o.id[lh[r]])
      }
  }
  function AG(t, e, n, i) {
    var r, o
    if (t[lh[n]] !== IG.outside)
      for ((t[lh[n]] === IG.inCorner ? i[lh[1 - n]] : i[lh[n]]).resetLayoutIterator(vG, n); vG.next(); )
        if (((r = t.point[n]), (o = vG.item).xy <= r && r <= o.xy + o.wh)) return void (e[n] = vG.item.id[lh[n]])
  }
  function kG(t, e, n) {
    return e[lh[n]] <= t && t <= e[lh[n]] + e[uh[n]]
  }
  function LG(t, e) {
    var n
    return (
      z(e, function (e) {
        null != t[e] && 'auto' !== t[e] && (n = !0)
      }),
      n
    )
  }
  var PG = ['transition', 'enterFrom', 'leaveTo'],
    OG = PG.concat(['enterAnimation', 'updateAnimation', 'leaveAnimation'])
  function RG(t, e, n) {
    if ((n && (!t[n] && e[n] && (t[n] = {}), (t = t[n]), (e = e[n])), t && e))
      for (var i = n ? PG : OG, r = 0; r < i.length; r++) {
        var o = i[r]
        null == t[o] && null != e[o] && (t[o] = e[o])
      }
  }
  var NG = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.preventAutoZ = !0), n
      }
      return (
        n(e, t),
        (e.prototype.mergeOption = function (e, n) {
          var i = this.option.elements
          ;(this.option.elements = null), t.prototype.mergeOption.call(this, e, n), (this.option.elements = i)
        }),
        (e.prototype.optionUpdated = function (t, e) {
          var n = this.option,
            i = (e ? n : t).elements,
            r = (n.elements = e ? [] : n.elements),
            o = []
          this._flatten(i, o, null)
          var a = ta(r, o, 'normalMerge'),
            s = (this._elOptionsToUpdate = [])
          z(
            a,
            function (t, e) {
              var n = t.newOption
              n &&
                (s.push(n),
                (function (t, e) {
                  var n = t.existing
                  if (((e.id = t.keyInfo.id), !e.type && n && (e.type = n.type), null == e.parentId)) {
                    var i = e.parentOption
                    i ? (e.parentId = i.id) : n && (e.parentId = n.parentId)
                  }
                  e.parentOption = null
                })(t, n),
                (function (t, e, n) {
                  var i = A({}, n),
                    r = t[e],
                    o = n.$action || 'merge'
                  'merge' === o
                    ? r
                      ? (C(r, i, !0), qp(r, i, { ignoreSize: !0 }), $p(n, r), RG(n, r), RG(n, r, 'shape'), RG(n, r, 'style'), RG(n, r, 'extra'), (n.clipPath = r.clipPath))
                      : (t[e] = i)
                    : 'replace' === o
                      ? (t[e] = i)
                      : 'remove' === o && r && (t[e] = null)
                })(r, e, n),
                (function (t, e) {
                  if (t && ((t.hv = e.hv = [LG(e, ['left', 'right']), LG(e, ['top', 'bottom'])]), 'group' === t.type)) {
                    var n = t,
                      i = e
                    null == n.width && (n.width = i.width = 0), null == n.height && (n.height = i.height = 0)
                  }
                })(r[e], n))
            },
            this
          ),
            (n.elements = V(r, function (t) {
              return t && delete t.$action, null != t
            }))
        }),
        (e.prototype._flatten = function (t, e, n) {
          z(
            t,
            function (t) {
              if (t) {
                n && (t.parentOption = n), e.push(t)
                var i = t.children
                i && i.length && this._flatten(i, e, t), delete t.children
              }
            },
            this
          )
        }),
        (e.prototype.useElOptionsToUpdate = function () {
          var t = this._elOptionsToUpdate
          return (this._elOptionsToUpdate = null), t
        }),
        (e.type = 'graphic'),
        (e.defaultOption = { elements: [] }),
        e
      )
    })(Qp),
    zG = { path: null, compoundPath: null, group: to, image: dl, text: Sl },
    EG = sa(),
    BG = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function () {
          this._elMap = yt()
        }),
        (e.prototype.render = function (t, e, n) {
          t !== this._lastGraphicModel && this._clear(), (this._lastGraphicModel = t), this._updateElements(t), this._relocate(t, n)
        }),
        (e.prototype._updateElements = function (t) {
          var e = t.useElOptionsToUpdate()
          if (e) {
            var n = this._elMap,
              i = this.group,
              r = t.get('z'),
              o = t.get('zlevel')
            z(e, function (e) {
              var a = ia(e.id, null),
                s = null != a ? n.get(a) : null,
                l = ia(e.parentId, null),
                u = null != l ? n.get(l) : i,
                c = e.type,
                h = e.style
              'text' === c && h && e.hv && e.hv[1] && (h.textVerticalAlign = h.textBaseline = h.verticalAlign = h.align = null)
              var d = e.textContent,
                p = e.textConfig
              if (h && jz(h, c, !!p, !!d)) {
                var f = qz(h, c, !0)
                !p && f.textConfig && (p = e.textConfig = f.textConfig), !d && f.textContent && (d = f.textContent)
              }
              var g = (function (t) {
                return (
                  (t = A({}, t)),
                  z(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent', 'clipPath'].concat(Ep), function (e) {
                    delete t[e]
                  }),
                  t
                )
              })(e)
              var y = e.$action || 'merge',
                v = 'merge' === y,
                m = 'replace' === y
              if (v) {
                var x = s
                ;(T = !s) ? (x = GG(a, u, e.type, n)) : (x && (EG(x).isNew = !1), yE(x)), x && (rE(x, g, t, { isInit: T }), WG(x, e, r, o))
              } else if (m) {
                FG(s, e, n, t)
                var _ = GG(a, u, e.type, n)
                _ && (rE(_, g, t, { isInit: !0 }), WG(_, e, r, o))
              } else 'remove' === y && (oE(s, e), FG(s, e, n, t))
              var b = n.get(a)
              if (b && d)
                if (v) {
                  var w = b.getTextContent()
                  w ? w.attr(d) : b.setTextContent(new Sl(d))
                } else m && b.setTextContent(new Sl(d))
              if (b) {
                var S = e.clipPath
                if (S) {
                  var M = S.type,
                    I = void 0,
                    T = !1
                  if (v) {
                    var C = b.getClipPath()
                    I = (T = !C || EG(C).type !== M) ? VG(M) : C
                  } else m && ((T = !0), (I = VG(M)))
                  b.setClipPath(I), rE(I, S, t, { isInit: T }), vE(I, S.keyframeAnimation, t)
                }
                var D = EG(b)
                b.setTextConfig(p),
                  (D.option = e),
                  (function (t, e, n) {
                    var i = zl(t).eventData
                    t.silent || t.ignore || i || (i = zl(t).eventData = { componentType: 'graphic', componentIndex: e.componentIndex, name: t.name })
                    i && (i.info = n.info)
                  })(b, t, e),
                  zh({ el: b, componentModel: t, itemName: b.name, itemTooltipOption: e.tooltip }),
                  vE(b, e.keyframeAnimation, t)
              }
            })
          }
        }),
        (e.prototype._relocate = function (t, e) {
          for (var n = t.option.elements, i = this.group, r = this._elMap, o = e.getWidth(), a = e.getHeight(), s = ['x', 'y'], l = 0; l < n.length; l++) {
            if ((f = null != (p = ia((d = n[l]).id, null)) ? r.get(p) : null) && f.isGroup) {
              var u = (g = f.parent) === i,
                c = EG(f),
                h = EG(g)
              ;(c.width = yo(c.option.width, u ? o : h.width) || 0), (c.height = yo(c.option.height, u ? a : h.height) || 0)
            }
          }
          for (l = n.length - 1; l >= 0; l--) {
            var d, p, f
            if ((f = null != (p = ia((d = n[l]).id, null)) ? r.get(p) : null)) {
              var g = f.parent,
                y = ((h = EG(g)), {}),
                v = Zp(f, d, g === i ? { width: o, height: a } : { width: h.width, height: h.height }, null, { hv: d.hv, boundingMode: d.bounding }, y)
              if (!EG(f).isNew && v) {
                for (var m = d.transition, x = {}, _ = 0; _ < s.length; _++) {
                  var b = s[_],
                    w = y[b]
                  m && (sE(m) || P(m, b) >= 0) ? (x[b] = w) : (f[b] = w)
                }
                th(f, x, t, 0)
              } else f.attr(y)
            }
          }
        }),
        (e.prototype._clear = function () {
          var t = this,
            e = this._elMap
          e.each(function (n) {
            FG(n, EG(n).option, e, t._lastGraphicModel)
          }),
            (this._elMap = yt())
        }),
        (e.prototype.dispose = function () {
          this._clear()
        }),
        (e.type = 'graphic'),
        e
      )
    })(Ky)
  function VG(t) {
    var e = _t(zG, t) ? zG[t] : fh(t)
    var n = new e({})
    return (EG(n).type = t), n
  }
  function GG(t, e, n, i) {
    var r = VG(n)
    return e.add(r), i.set(t, r), (EG(r).id = t), (EG(r).isNew = !0), r
  }
  function FG(t, e, n, i) {
    t &&
      t.parent &&
      ('group' === t.type &&
        t.traverse(function (t) {
          FG(t, e, n, i)
        }),
      aE(t, e, i),
      n.removeKey(EG(t).id))
  }
  function WG(t, e, n, i) {
    t.isGroup ||
      z(
        [
          ['cursor', os.prototype.cursor],
          ['zlevel', i || 0],
          ['z', n || 0],
          ['z2', 0]
        ],
        function (n) {
          var i = n[0]
          _t(e, i) ? (t[i] = rt(e[i], n[1])) : null == t[i] && (t[i] = n[1])
        }
      ),
      z(F(e), function (n) {
        if (0 === n.indexOf('on')) {
          var i = e[n]
          t[n] = Y(i) ? i : null
        }
      }),
      _t(e, 'draggable') && (t.draggable = e.draggable),
      null != e.name && (t.name = e.name),
      null != e.id && (t.id = e.id)
  }
  var HG = ['x', 'y', 'radius', 'angle', 'single'],
    UG = ['cartesian2d', 'polar', 'singleAxis']
  function YG(t) {
    return t + 'Axis'
  }
  function XG(t, e) {
    var n,
      i = yt(),
      r = [],
      o = yt()
    t.eachComponent({ mainType: 'dataZoom', query: e }, function (t) {
      o.get(t.uid) || s(t)
    })
    do {
      ;(n = !1), t.eachComponent('dataZoom', a)
    } while (n)
    function a(t) {
      !o.get(t.uid) &&
        (function (t) {
          var e = !1
          return (
            t.eachTargetAxis(function (t, n) {
              var r = i.get(t)
              r && r[n] && (e = !0)
            }),
            e
          )
        })(t) &&
        (s(t), (n = !0))
    }
    function s(t) {
      o.set(t.uid, !0),
        r.push(t),
        t.eachTargetAxis(function (t, e) {
          ;(i.get(t) || i.set(t, []))[e] = !0
        })
    }
    return r
  }
  function ZG(t) {
    var e = t.ecModel,
      n = { infoList: [], infoMap: yt() }
    return (
      t.eachTargetAxis(function (t, i) {
        var r = e.getComponent(YG(t), i)
        if (r) {
          var o = r.getCoordSysModel()
          if (o) {
            var a = o.uid,
              s = n.infoMap.get(a)
            s || ((s = { model: o, axisModels: [] }), n.infoList.push(s), n.infoMap.set(a, s)), s.axisModels.push(r)
          }
        }
      }),
      n
    )
  }
  var jG = (function () {
      function t() {
        ;(this.indexList = []), (this.indexMap = [])
      }
      return (
        (t.prototype.add = function (t) {
          this.indexMap[t] || (this.indexList.push(t), (this.indexMap[t] = !0))
        }),
        t
      )
    })(),
    qG = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n._autoThrottle = !0), (n._noTarget = !0), (n._rangePropMode = ['percent', 'percent']), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e, n) {
          var i = KG(t)
          ;(this.settledOption = i), this.mergeDefaultAndTheme(t, n), this._doInit(i)
        }),
        (e.prototype.mergeOption = function (t) {
          var e = KG(t)
          C(this.option, t, !0), C(this.settledOption, e, !0), this._doInit(e)
        }),
        (e.prototype._doInit = function (t) {
          var e = this.option
          this._setDefaultThrottle(t), this._updateRangeUse(t)
          var n = this.settledOption
          z(
            [
              ['start', 'startValue'],
              ['end', 'endValue']
            ],
            function (t, i) {
              'value' === this._rangePropMode[i] && (e[t[0]] = n[t[0]] = null)
            },
            this
          ),
            this._resetTarget()
        }),
        (e.prototype._resetTarget = function () {
          var t = this.get('orient', !0),
            e = (this._targetAxisInfoMap = yt())
          this._fillSpecifiedTargetAxis(e)
            ? (this._orient = t || this._makeAutoOrientByTargetAxis())
            : ((this._orient = t || 'horizontal'), this._fillAutoTargetAxisByOrient(e, this._orient)),
            (this._noTarget = !0),
            e.each(function (t) {
              t.indexList.length && (this._noTarget = !1)
            }, this)
        }),
        (e.prototype._fillSpecifiedTargetAxis = function (t) {
          var e = !1
          return (
            z(
              HG,
              function (n) {
                var i = this.getReferringComponents(YG(n), da)
                if (i.specified) {
                  e = !0
                  var r = new jG()
                  z(i.models, function (t) {
                    r.add(t.componentIndex)
                  }),
                    t.set(n, r)
                }
              },
              this
            ),
            e
          )
        }),
        (e.prototype._fillAutoTargetAxisByOrient = function (t, e) {
          var n = this.ecModel,
            i = !0
          if (i) {
            var r = 'vertical' === e ? 'y' : 'x'
            o(n.findComponents({ mainType: r + 'Axis' }), r)
          }
          i &&
            o(
              n.findComponents({
                mainType: 'singleAxis',
                filter: function (t) {
                  return t.get('orient', !0) === e
                }
              }),
              'single'
            )
          function o(e, n) {
            var r = e[0]
            if (r) {
              var o = new jG()
              if ((o.add(r.componentIndex), t.set(n, o), (i = !1), 'x' === n || 'y' === n)) {
                var a = r.getReferringComponents('grid', ha).models[0]
                a &&
                  z(e, function (t) {
                    r.componentIndex !== t.componentIndex && a === t.getReferringComponents('grid', ha).models[0] && o.add(t.componentIndex)
                  })
              }
            }
          }
          i &&
            z(
              HG,
              function (e) {
                if (i) {
                  var r = n.findComponents({
                    mainType: YG(e),
                    filter: function (t) {
                      return 'category' === t.get('type', !0)
                    }
                  })
                  if (r[0]) {
                    var o = new jG()
                    o.add(r[0].componentIndex), t.set(e, o), (i = !1)
                  }
                }
              },
              this
            )
        }),
        (e.prototype._makeAutoOrientByTargetAxis = function () {
          var t
          return (
            this.eachTargetAxis(function (e) {
              !t && (t = e)
            }, this),
            'y' === t ? 'vertical' : 'horizontal'
          )
        }),
        (e.prototype._setDefaultThrottle = function (t) {
          if ((t.hasOwnProperty('throttle') && (this._autoThrottle = !1), this._autoThrottle)) {
            var e = this.ecModel.option
            this.option.throttle = e.animation && e.animationDurationUpdate > 0 ? 100 : 20
          }
        }),
        (e.prototype._updateRangeUse = function (t) {
          var e = this._rangePropMode,
            n = this.get('rangeMode')
          z(
            [
              ['start', 'startValue'],
              ['end', 'endValue']
            ],
            function (i, r) {
              var o = null != t[i[0]],
                a = null != t[i[1]]
              o && !a ? (e[r] = 'percent') : !o && a ? (e[r] = 'value') : n ? (e[r] = n[r]) : o && (e[r] = 'percent')
            }
          )
        }),
        (e.prototype.noTarget = function () {
          return this._noTarget
        }),
        (e.prototype.getFirstTargetAxisModel = function () {
          var t
          return (
            this.eachTargetAxis(function (e, n) {
              null == t && (t = this.ecModel.getComponent(YG(e), n))
            }, this),
            t
          )
        }),
        (e.prototype.eachTargetAxis = function (t, e) {
          this._targetAxisInfoMap.each(function (n, i) {
            z(n.indexList, function (n) {
              t.call(e, i, n)
            })
          })
        }),
        (e.prototype.getAxisProxy = function (t, e) {
          var n = this.getAxisModel(t, e)
          if (n) return n.__dzAxisProxy
        }),
        (e.prototype.getAxisModel = function (t, e) {
          var n = this._targetAxisInfoMap.get(t)
          if (n && n.indexMap[e]) return this.ecModel.getComponent(YG(t), e)
        }),
        (e.prototype.setRawRange = function (t) {
          var e = this.option,
            n = this.settledOption
          z(
            [
              ['start', 'startValue'],
              ['end', 'endValue']
            ],
            function (i) {
              ;(null == t[i[0]] && null == t[i[1]]) || ((e[i[0]] = n[i[0]] = t[i[0]]), (e[i[1]] = n[i[1]] = t[i[1]]))
            },
            this
          ),
            this._updateRangeUse(t)
        }),
        (e.prototype.setCalculatedRange = function (t) {
          var e = this.option
          z(['start', 'startValue', 'end', 'endValue'], function (n) {
            e[n] = t[n]
          })
        }),
        (e.prototype.getPercentRange = function () {
          var t = this.findRepresentativeAxisProxy()
          if (t) return t.getDataPercentWindow()
        }),
        (e.prototype.getValueRange = function (t, e) {
          if (null != t || null != e) return this.getAxisProxy(t, e).getDataValueWindow()
          var n = this.findRepresentativeAxisProxy()
          return n ? n.getDataValueWindow() : void 0
        }),
        (e.prototype.findRepresentativeAxisProxy = function (t) {
          if (t) return t.__dzAxisProxy
          for (var e, n = this._targetAxisInfoMap.keys(), i = 0; i < n.length; i++)
            for (var r = n[i], o = this._targetAxisInfoMap.get(r), a = 0; a < o.indexList.length; a++) {
              var s = this.getAxisProxy(r, o.indexList[a])
              if (s.hostedBy(this)) return s
              e || (e = s)
            }
          return e
        }),
        (e.prototype.getRangePropMode = function () {
          return this._rangePropMode.slice()
        }),
        (e.prototype.getOrient = function () {
          return this._orient
        }),
        (e.type = 'dataZoom'),
        (e.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox']),
        (e.defaultOption = { z: 4, filterMode: 'filter', start: 0, end: 100 }),
        e
      )
    })(Qp)
  function KG(t) {
    var e = {}
    return (
      z(['start', 'end', 'startValue', 'endValue', 'throttle'], function (n) {
        t.hasOwnProperty(n) && (e[n] = t[n])
      }),
      e
    )
  }
  var $G = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return n(e, t), (e.type = 'dataZoom.select'), e
    })(qG),
    JG = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n, i) {
          ;(this.dataZoomModel = t), (this.ecModel = e), (this.api = n)
        }),
        (e.type = 'dataZoom'),
        e
      )
    })(Ky),
    QG = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return n(e, t), (e.type = 'dataZoom.select'), e
    })(JG),
    tF = z,
    eF = xo,
    nF = (function () {
      function t(t, e, n, i) {
        ;(this._dimName = t), (this._axisIndex = e), (this.ecModel = i), (this._dataZoomModel = n)
      }
      return (
        (t.prototype.hostedBy = function (t) {
          return this._dataZoomModel === t
        }),
        (t.prototype.getDataValueWindow = function () {
          return this._valueWindow.slice()
        }),
        (t.prototype.getDataPercentWindow = function () {
          return this._percentWindow.slice()
        }),
        (t.prototype.getTargetSeriesModels = function () {
          var t = []
          return (
            this.ecModel.eachSeries(function (e) {
              if (
                (function (t) {
                  var e = t.get('coordinateSystem')
                  return P(UG, e) >= 0
                })(e)
              ) {
                var n = YG(this._dimName),
                  i = e.getReferringComponents(n, ha).models[0]
                i && this._axisIndex === i.componentIndex && t.push(e)
              }
            }, this),
            t
          )
        }),
        (t.prototype.getAxisModel = function () {
          return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex)
        }),
        (t.prototype.getMinMaxSpan = function () {
          return T(this._minMaxSpan)
        }),
        (t.prototype.calculateDataWindow = function (t) {
          var e,
            n = this._dataExtent,
            i = this.getAxisModel().axis.scale,
            r = this._dataZoomModel.getRangePropMode(),
            o = [0, 100],
            a = [],
            s = []
          tF(['start', 'end'], function (l, u) {
            var c = t[l],
              h = t[l + 'Value']
            'percent' === r[u] ? (null == c && (c = o[u]), (h = i.parse(go(c, o, n)))) : ((e = !0), (c = go((h = null == h ? n[u] : i.parse(h)), n, o))),
              (s[u] = null == h || isNaN(h) ? n[u] : h),
              (a[u] = null == c || isNaN(c) ? o[u] : c)
          }),
            eF(s),
            eF(a)
          var l = this._minMaxSpan
          function u(t, e, n, r, o) {
            var a = o ? 'Span' : 'ValueSpan'
            CO(0, t, n, 'all', l['min' + a], l['max' + a])
            for (var s = 0; s < 2; s++) (e[s] = go(t[s], n, r, !0)), o && (e[s] = i.parse(e[s]))
          }
          return e ? u(s, a, n, o, !1) : u(a, s, o, n, !0), { valueWindow: s, percentWindow: a }
        }),
        (t.prototype.reset = function (t) {
          if (t === this._dataZoomModel) {
            var e = this.getTargetSeriesModels()
            ;(this._dataExtent = (function (t, e, n) {
              var i = [1 / 0, -1 / 0]
              tF(n, function (t) {
                !(function (t, e, n) {
                  e &&
                    z(Jb(e, n), function (n) {
                      var i = e.getApproximateExtent(n)
                      i[0] < t[0] && (t[0] = i[0]), i[1] > t[1] && (t[1] = i[1])
                    })
                })(i, t.getData(), e)
              })
              var r = t.getAxisModel(),
                o = Hb(r.axis.scale, r, i).calculate()
              return [o.min, o.max]
            })(this, this._dimName, e)),
              this._updateMinMaxSpan()
            var n = this.calculateDataWindow(t.settledOption)
            ;(this._valueWindow = n.valueWindow), (this._percentWindow = n.percentWindow), this._setAxisModel()
          }
        }),
        (t.prototype.filterData = function (t, e) {
          if (t === this._dataZoomModel) {
            var n = this._dimName,
              i = this.getTargetSeriesModels(),
              r = t.get('filterMode'),
              o = this._valueWindow
            'none' !== r &&
              tF(i, function (t) {
                var e = t.getData(),
                  i = e.mapDimensionsAll(n)
                if (i.length) {
                  if ('weakFilter' === r) {
                    var a = e.getStore(),
                      s = E(
                        i,
                        function (t) {
                          return e.getDimensionIndex(t)
                        },
                        e
                      )
                    e.filterSelf(function (t) {
                      for (var e, n, r, l = 0; l < i.length; l++) {
                        var u = a.get(s[l], t),
                          c = !isNaN(u),
                          h = u < o[0],
                          d = u > o[1]
                        if (c && !h && !d) return !0
                        c && (r = !0), h && (e = !0), d && (n = !0)
                      }
                      return r && e && n
                    })
                  } else
                    tF(i, function (n) {
                      if ('empty' === r)
                        t.setData(
                          (e = e.map(n, function (t) {
                            return (function (t) {
                              return t >= o[0] && t <= o[1]
                            })(t)
                              ? t
                              : NaN
                          }))
                        )
                      else {
                        var i = {}
                        ;(i[n] = o), e.selectRange(i)
                      }
                    })
                  tF(i, function (t) {
                    e.setApproximateExtent(o, t)
                  })
                }
              })
          }
        }),
        (t.prototype._updateMinMaxSpan = function () {
          var t = (this._minMaxSpan = {}),
            e = this._dataZoomModel,
            n = this._dataExtent
          tF(
            ['min', 'max'],
            function (i) {
              var r = e.get(i + 'Span'),
                o = e.get(i + 'ValueSpan')
              null != o && (o = this.getAxisModel().axis.scale.parse(o)),
                null != o ? (r = go(n[0] + o, n, [0, 100], !0)) : null != r && (o = go(r, [0, 100], n, !0) - n[0]),
                (t[i + 'Span'] = r),
                (t[i + 'ValueSpan'] = o)
            },
            this
          )
        }),
        (t.prototype._setAxisModel = function () {
          var t = this.getAxisModel(),
            e = this._percentWindow,
            n = this._valueWindow
          if (e) {
            var i = wo(n, [0, 500])
            i = Math.min(i, 20)
            var r = t.axis.scale.rawExtentInfo
            0 !== e[0] && r.setDeterminedMinMax('min', +n[0].toFixed(i)), 100 !== e[1] && r.setDeterminedMinMax('max', +n[1].toFixed(i)), r.freeze()
          }
        }),
        t
      )
    })()
  var iF = {
    getTargetSeries: function (t) {
      function e(e) {
        t.eachComponent('dataZoom', function (n) {
          n.eachTargetAxis(function (i, r) {
            var o = t.getComponent(YG(i), r)
            e(i, r, o, n)
          })
        })
      }
      e(function (t, e, n, i) {
        n.__dzAxisProxy = null
      })
      var n = []
      e(function (e, i, r, o) {
        r.__dzAxisProxy || ((r.__dzAxisProxy = new nF(e, i, o, t)), n.push(r.__dzAxisProxy))
      })
      var i = yt()
      return (
        z(n, function (t) {
          z(t.getTargetSeriesModels(), function (t) {
            i.set(t.uid, t)
          })
        }),
        i
      )
    },
    overallReset: function (t, e) {
      t.eachComponent('dataZoom', function (t) {
        t.eachTargetAxis(function (e, n) {
          t.getAxisProxy(e, n).reset(t)
        }),
          t.eachTargetAxis(function (n, i) {
            t.getAxisProxy(n, i).filterData(t, e)
          })
      }),
        t.eachComponent('dataZoom', function (t) {
          var e = t.findRepresentativeAxisProxy()
          if (e) {
            var n = e.getDataPercentWindow(),
              i = e.getDataValueWindow()
            t.setCalculatedRange({ start: n[0], end: n[1], startValue: i[0], endValue: i[1] })
          }
        })
    }
  }
  var rF = !1
  function oF(t) {
    rF ||
      ((rF = !0),
      t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER, iF),
      (function (t) {
        t.registerAction('dataZoom', function (t, e) {
          z(XG(e, t), function (e) {
            e.setRawRange({ start: t.start, end: t.end, startValue: t.startValue, endValue: t.endValue })
          })
        })
      })(t),
      t.registerSubTypeDefaulter('dataZoom', function () {
        return 'slider'
      }))
  }
  function aF(t) {
    t.registerComponentModel($G), t.registerComponentView(QG), oF(t)
  }
  var sF = function () {},
    lF = {}
  function uF(t, e) {
    lF[t] = e
  }
  function cF(t) {
    return lF[t]
  }
  var hF = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.optionUpdated = function () {
        t.prototype.optionUpdated.apply(this, arguments)
        var e = this.ecModel
        z(this.option.feature, function (t, n) {
          var i = cF(n)
          i && (i.getDefaultOption && (i.defaultOption = i.getDefaultOption(e)), C(t, i.defaultOption))
        })
      }),
      (e.type = 'toolbox'),
      (e.layoutMode = { type: 'box', ignoreSize: !0 }),
      (e.defaultOption = {
        show: !0,
        z: 6,
        orient: 'horizontal',
        left: 'right',
        top: 'top',
        backgroundColor: 'transparent',
        borderColor: tf.color.border,
        borderRadius: 0,
        borderWidth: 0,
        padding: tf.size.m,
        itemSize: 15,
        itemGap: tf.size.s,
        showTitle: !0,
        iconStyle: { borderColor: tf.color.accent50, color: 'none' },
        emphasis: { iconStyle: { borderColor: tf.color.accent50 } },
        tooltip: { show: !1, position: 'bottom' }
      }),
      e
    )
  })(Qp)
  function dF(t, e) {
    var n = yp(e.get('padding')),
      i = e.getItemStyle(['color', 'opacity'])
    return (
      (i.fill = e.get('backgroundColor')),
      new xl({ shape: { x: t.x - n[3], y: t.y - n[0], width: t.width + n[1] + n[3], height: t.height + n[0] + n[2], r: e.get('borderRadius') }, style: i, silent: !0, z2: -1 })
    )
  }
  var pF = (function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    return (
      n(e, t),
      (e.prototype.render = function (t, e, n, i) {
        var r = this.group
        if ((r.removeAll(), t.get('show'))) {
          var o = +t.get('itemSize'),
            a = 'vertical' === t.get('orient'),
            s = t.get('feature') || {},
            l = this._features || (this._features = {}),
            u = []
          z(s, function (t, e) {
            u.push(e)
          }),
            new f_(this._featureNames || [], u).add(f).update(f).remove(H(f, null)).execute(),
            (this._featureNames = u)
          var c = Xp(t, n).refContainer,
            h = t.getBoxLayoutParams(),
            d = t.get('padding'),
            p = Hp(h, c, d)
          Gp(t.get('orient'), r, t.get('itemGap'), p.width, p.height),
            Zp(r, h, c, d),
            r.add(dF(r.getBoundingRect(), t)),
            a ||
              r.eachChild(function (t) {
                var e = t.__title,
                  i = t.ensureState('emphasis'),
                  a = i.textConfig || (i.textConfig = {}),
                  s = t.getTextContent(),
                  l = s && s.ensureState('emphasis')
                if (l && !Y(l) && e) {
                  var u = l.style || (l.style = {}),
                    c = Er(e, Sl.makeFont(u)),
                    h = t.x + r.x,
                    d = !1
                  t.y + r.y + o + c.height > n.getHeight() && ((a.position = 'top'), (d = !0))
                  var p = d ? -5 - c.height : o + 10
                  h + c.width / 2 > n.getWidth() ? ((a.position = ['100%', p]), (u.align = 'right')) : h - c.width / 2 < 0 && ((a.position = [0, p]), (u.align = 'left'))
                }
              })
        }
        function f(c, h) {
          var d,
            p = u[c],
            f = u[h],
            g = s[p],
            y = new wd(g, t, t.ecModel)
          if ((i && null != i.newTitle && i.featureName === p && (g.title = i.newTitle), p && !f)) {
            if (
              (function (t) {
                return 0 === t.indexOf('my')
              })(p)
            )
              d = { onclick: y.option.onclick, featureName: p }
            else {
              var v = cF(p)
              if (!v) return
              d = new v()
            }
            l[p] = d
          } else if (!(d = l[f])) return
          ;(d.uid = Md('toolbox-feature')), (d.model = y), (d.ecModel = e), (d.api = n)
          var m = d instanceof sF
          p || !f
            ? !y.get('show') || (m && d.unusable)
              ? m && d.remove && d.remove(e, n)
              : (!(function (i, s, l) {
                  var u,
                    c,
                    h = i.getModel('iconStyle'),
                    d = i.getModel(['emphasis', 'iconStyle']),
                    p = s instanceof sF && s.getIcons ? s.getIcons() : i.get('icon'),
                    f = i.get('title') || {}
                  X(p) ? ((u = {})[l] = p) : (u = p)
                  X(f) ? ((c = {})[l] = f) : (c = f)
                  var g = (i.iconPaths = {})
                  z(u, function (l, u) {
                    var p = Ah(l, {}, { x: -o / 2, y: -o / 2, width: o, height: o })
                    p.setStyle(h.getItemStyle()), (p.ensureState('emphasis').style = d.getItemStyle())
                    var f = new Sl({
                      style: {
                        text: c[u],
                        align: d.get('textAlign'),
                        borderRadius: d.get('textBorderRadius'),
                        padding: d.get('textPadding'),
                        fill: null,
                        font: od(
                          { fontStyle: d.get('textFontStyle'), fontFamily: d.get('textFontFamily'), fontSize: d.get('textFontSize'), fontWeight: d.get('textFontWeight') },
                          e
                        )
                      },
                      ignore: !0
                    })
                    p.setTextContent(f),
                      zh({ el: p, componentModel: t, itemName: u, formatterParamsExtra: { title: c[u] } }),
                      (p.__title = c[u]),
                      p
                        .on('mouseover', function () {
                          var e = d.getItemStyle(),
                            i = a
                              ? null == t.get('right') && 'right' !== t.get('left')
                                ? 'right'
                                : 'left'
                              : null == t.get('bottom') && 'bottom' !== t.get('top')
                                ? 'bottom'
                                : 'top'
                          f.setStyle({ fill: d.get('textFill') || e.fill || e.stroke || tf.color.neutral99, backgroundColor: d.get('textBackgroundColor') }),
                            p.setTextConfig({ position: d.get('textPosition') || i }),
                            (f.ignore = !t.get('showTitle')),
                            n.enterEmphasis(this)
                        })
                        .on('mouseout', function () {
                          'emphasis' !== i.get(['iconStatus', u]) && n.leaveEmphasis(this), f.hide()
                        }),
                      ('emphasis' === i.get(['iconStatus', u]) ? du : pu)(p),
                      r.add(p),
                      p.on('click', W(s.onclick, s, e, n, u)),
                      (g[u] = p)
                  })
                })(y, d, p),
                (y.setIconStatus = function (t, e) {
                  var n = this.option,
                    i = this.iconPaths
                  ;(n.iconStatus = n.iconStatus || {}), (n.iconStatus[t] = e), i[t] && ('emphasis' === e ? du : pu)(i[t])
                }),
                d instanceof sF && d.render && d.render(y, e, n, i))
            : m && d.dispose && d.dispose(e, n)
        }
      }),
      (e.prototype.updateView = function (t, e, n, i) {
        z(this._features, function (t) {
          t instanceof sF && t.updateView && t.updateView(t.model, e, n, i)
        })
      }),
      (e.prototype.remove = function (t, e) {
        z(this._features, function (n) {
          n instanceof sF && n.remove && n.remove(t, e)
        }),
          this.group.removeAll()
      }),
      (e.prototype.dispose = function (t, e) {
        z(this._features, function (n) {
          n instanceof sF && n.dispose && n.dispose(t, e)
        })
      }),
      (e.type = 'toolbox'),
      e
    )
  })(Ky)
  var fF = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.onclick = function (t, e) {
          var n = this.model,
            i = n.get('name') || t.get('title.0.text') || 'echarts',
            o = 'svg' === e.getZr().painter.getType(),
            a = o ? 'svg' : n.get('type', !0) || 'png',
            s = e.getConnectedDataURL({
              type: a,
              backgroundColor: n.get('backgroundColor', !0) || t.get('backgroundColor') || tf.color.neutral00,
              connectedBackgroundColor: n.get('connectedBackgroundColor'),
              excludeComponents: n.get('excludeComponents'),
              pixelRatio: n.get('pixelRatio')
            }),
            l = r.browser
          if ('function' != typeof MouseEvent || (!l.newEdge && (l.ie || l.edge)))
            if (window.navigator.msSaveOrOpenBlob || o) {
              var u = s.split(','),
                c = u[0].indexOf('base64') > -1,
                h = o ? decodeURIComponent(u[1]) : u[1]
              c && (h = window.atob(h))
              var d = i + '.' + a
              if (window.navigator.msSaveOrOpenBlob) {
                for (var p = h.length, f = new Uint8Array(p); p--; ) f[p] = h.charCodeAt(p)
                var g = new Blob([f])
                window.navigator.msSaveOrOpenBlob(g, d)
              } else {
                var y = document.createElement('iframe')
                document.body.appendChild(y)
                var v = y.contentWindow,
                  m = v.document
                m.open('image/svg+xml', 'replace'), m.write(h), m.close(), v.focus(), m.execCommand('SaveAs', !0, d), document.body.removeChild(y)
              }
            } else {
              var x = n.get('lang'),
                _ = '<body style="margin:0;"><img src="' + s + '" style="max-width:100%;" title="' + ((x && x[0]) || '') + '" /></body>',
                b = window.open()
              b.document.write(_), (b.document.title = i)
            }
          else {
            var w = document.createElement('a')
            ;(w.download = i + '.' + a), (w.target = '_blank'), (w.href = s)
            var S = new MouseEvent('click', { view: document.defaultView, bubbles: !0, cancelable: !1 })
            w.dispatchEvent(S)
          }
        }),
        (e.getDefaultOption = function (t) {
          return {
            show: !0,
            icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',
            title: t.getLocaleModel().get(['toolbox', 'saveAsImage', 'title']),
            type: 'png',
            connectedBackgroundColor: tf.color.neutral00,
            name: '',
            excludeComponents: ['toolbox'],
            lang: t.getLocaleModel().get(['toolbox', 'saveAsImage', 'lang'])
          }
        }),
        e
      )
    })(sF),
    gF = '__ec_magicType_stack__',
    yF = [['line', 'bar'], ['stack']],
    vF = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.getIcons = function () {
          var t = this.model,
            e = t.get('icon'),
            n = {}
          return (
            z(t.get('type'), function (t) {
              e[t] && (n[t] = e[t])
            }),
            n
          )
        }),
        (e.getDefaultOption = function (t) {
          return {
            show: !0,
            type: [],
            icon: {
              line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',
              bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',
              stack:
                'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'
            },
            title: t.getLocaleModel().get(['toolbox', 'magicType', 'title']),
            option: {},
            seriesIndex: {}
          }
        }),
        (e.prototype.onclick = function (t, e, n) {
          var i = this.model,
            r = i.get(['seriesIndex', n])
          if (mF[n]) {
            var o,
              a = { series: [] }
            z(yF, function (t) {
              P(t, n) >= 0 &&
                z(t, function (t) {
                  i.setIconStatus(t, 'normal')
                })
            }),
              i.setIconStatus(n, 'emphasis'),
              t.eachComponent({ mainType: 'series', query: null == r ? null : { seriesIndex: r } }, function (t) {
                var e = t.subType,
                  r = t.id,
                  o = mF[n](e, r, t, i)
                o && (k(o, t.option), a.series.push(o))
                var s = t.coordinateSystem
                if (s && 'cartesian2d' === s.type && ('line' === n || 'bar' === n)) {
                  var l = s.getAxesByScale('ordinal')[0]
                  if (l) {
                    var u = l.dim + 'Axis',
                      c = t.getReferringComponents(u, ha).models[0].componentIndex
                    a[u] = a[u] || []
                    for (var h = 0; h <= c; h++) a[u][c] = a[u][c] || {}
                    a[u][c].boundaryGap = 'bar' === n
                  }
                }
              })
            var s = n
            'stack' === n && ((o = C({ stack: i.option.title.tiled, tiled: i.option.title.stack }, i.option.title)), 'emphasis' !== i.get(['iconStatus', n]) && (s = 'tiled')),
              e.dispatchAction({ type: 'changeMagicType', currentType: s, newOption: a, newTitle: o, featureName: 'magicType' })
          }
        }),
        e
      )
    })(sF),
    mF = {
      line: function (t, e, n, i) {
        if ('bar' === t)
          return C(
            { id: e, type: 'line', data: n.get('data'), stack: n.get('stack'), markPoint: n.get('markPoint'), markLine: n.get('markLine') },
            i.get(['option', 'line']) || {},
            !0
          )
      },
      bar: function (t, e, n, i) {
        if ('line' === t)
          return C(
            { id: e, type: 'bar', data: n.get('data'), stack: n.get('stack'), markPoint: n.get('markPoint'), markLine: n.get('markLine') },
            i.get(['option', 'bar']) || {},
            !0
          )
      },
      stack: function (t, e, n, i) {
        var r = n.get('stack') === gF
        if ('line' === t || 'bar' === t) return i.setIconStatus('stack', r ? 'normal' : 'emphasis'), C({ id: e, stack: r ? '' : gF }, i.get(['option', 'stack']) || {}, !0)
      }
    }
  Qx({ type: 'changeMagicType', event: 'magicTypeChanged', update: 'prepareAndUpdate' }, function (t, e) {
    e.mergeOption(t.newOption)
  })
  var xF = new Array(60).join('-'),
    _F = '\t'
  function bF(t) {
    return t.replace(/^\s\s*/, '').replace(/\s\s*$/, '')
  }
  var wF = new RegExp('[\t]+', 'g')
  function SF(t, e) {
    var n = t.split(new RegExp('\n*' + xF + '\n*', 'g')),
      i = { series: [] }
    return (
      z(n, function (t, n) {
        if (
          (function (t) {
            if (t.slice(0, t.indexOf('\n')).indexOf(_F) >= 0) return !0
          })(t)
        ) {
          var r = (function (t) {
              for (
                var e = t.split(/\n+/g),
                  n = [],
                  i = E(bF(e.shift()).split(wF), function (t) {
                    return { name: t, data: [] }
                  }),
                  r = 0;
                r < e.length;
                r++
              ) {
                var o = bF(e[r]).split(wF)
                n.push(o.shift())
                for (var a = 0; a < o.length; a++) i[a] && (i[a].data[r] = o[a])
              }
              return { series: i, categories: n }
            })(t),
            o = e[n],
            a = o.axisDim + 'Axis'
          o && ((i[a] = i[a] || []), (i[a][o.axisIndex] = { data: r.categories }), (i.series = i.series.concat(r.series)))
        } else {
          r = (function (t) {
            for (var e = t.split(/\n+/g), n = bF(e.shift()), i = [], r = 0; r < e.length; r++) {
              var o = bF(e[r])
              if (o) {
                var a = o.split(wF),
                  s = '',
                  l = void 0,
                  u = !1
                isNaN(a[0]) ? ((u = !0), (s = a[0]), (a = a.slice(1)), (i[r] = { name: s, value: [] }), (l = i[r].value)) : (l = i[r] = [])
                for (var c = 0; c < a.length; c++) l.push(+a[c])
                1 === l.length && (u ? (i[r].value = l[0]) : (i[r] = l[0]))
              }
            }
            return { name: n, data: i }
          })(t)
          i.series.push(r)
        }
      }),
      i
    )
  }
  var MF = (function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    return (
      n(e, t),
      (e.prototype.onclick = function (t, e) {
        setTimeout(function () {
          e.dispatchAction({ type: 'hideTip' })
        })
        var n = e.getDom(),
          i = this.model
        this._dom && n.removeChild(this._dom)
        var r = document.createElement('div')
        ;(r.style.cssText = 'position:absolute;top:0;bottom:0;left:0;right:0;padding:5px'), (r.style.backgroundColor = i.get('backgroundColor') || tf.color.neutral00)
        var o = document.createElement('h4'),
          a = i.get('lang') || []
        ;(o.innerHTML = a[0] || i.get('title')), (o.style.cssText = 'margin:10px 20px'), (o.style.color = i.get('textColor'))
        var s = document.createElement('div'),
          l = document.createElement('textarea')
        s.style.cssText = 'overflow:auto'
        var u = i.get('optionToContent'),
          c = i.get('contentToOption'),
          h = (function (t) {
            var e,
              n,
              i,
              r = (function (t) {
                var e = {},
                  n = [],
                  i = []
                return (
                  t.eachRawSeries(function (t) {
                    var r = t.coordinateSystem
                    if (!r || ('cartesian2d' !== r.type && 'polar' !== r.type)) n.push(t)
                    else {
                      var o = r.getBaseAxis()
                      if ('category' === o.type) {
                        var a = o.dim + '_' + o.index
                        e[a] || ((e[a] = { categoryAxis: o, valueAxis: r.getOtherAxis(o), series: [] }), i.push({ axisDim: o.dim, axisIndex: o.index })), e[a].series.push(t)
                      } else n.push(t)
                    }
                  }),
                  { seriesGroupByCategoryAxis: e, other: n, meta: i }
                )
              })(t)
            return {
              value: V(
                [
                  ((n = r.seriesGroupByCategoryAxis),
                  (i = []),
                  z(n, function (t, e) {
                    var n = t.categoryAxis,
                      r = t.valueAxis.dim,
                      o = [' '].concat(
                        E(t.series, function (t) {
                          return t.name
                        })
                      ),
                      a = [n.model.getCategories()]
                    z(t.series, function (t) {
                      var e = t.getRawData()
                      a.push(
                        t.getRawData().mapArray(e.mapDimension(r), function (t) {
                          return t
                        })
                      )
                    })
                    for (var s = [o.join(_F)], l = 0; l < a[0].length; l++) {
                      for (var u = [], c = 0; c < a.length; c++) u.push(a[c][l])
                      s.push(u.join(_F))
                    }
                    i.push(s.join('\n'))
                  }),
                  i.join('\n\n' + xF + '\n\n')),
                  ((e = r.other),
                  E(e, function (t) {
                    var e = t.getRawData(),
                      n = [t.name],
                      i = []
                    return (
                      e.each(e.dimensions, function () {
                        for (var t = arguments.length, r = arguments[t - 1], o = e.getName(r), a = 0; a < t - 1; a++) i[a] = arguments[a]
                        n.push((o ? o + _F : '') + i.join(_F))
                      }),
                      n.join('\n')
                    )
                  }).join('\n\n' + xF + '\n\n'))
                ],
                function (t) {
                  return !!t.replace(/[\n\t\s]/g, '')
                }
              ).join('\n\n' + xF + '\n\n'),
              meta: r.meta
            }
          })(t)
        if (Y(u)) {
          var d = u(e.getOption())
          X(d) ? (s.innerHTML = d) : J(d) && s.appendChild(d)
        } else {
          l.readOnly = i.get('readOnly')
          var p = l.style
          ;(p.cssText = 'display:block;width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;resize:none;box-sizing:border-box;outline:none'),
            (p.color = i.get('textColor')),
            (p.borderColor = i.get('textareaBorderColor')),
            (p.backgroundColor = i.get('textareaColor')),
            (l.value = h.value),
            s.appendChild(l)
        }
        var f = h.meta,
          g = document.createElement('div')
        g.style.cssText = 'position:absolute;bottom:5px;left:0;right:0'
        var y = 'float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px',
          v = document.createElement('div'),
          m = document.createElement('div')
        ;(y += ';background-color:' + i.get('buttonColor')), (y += ';color:' + i.get('buttonTextColor'))
        var x = this
        function _() {
          n.removeChild(r), (x._dom = null)
        }
        pe(v, 'click', _),
          pe(m, 'click', function () {
            if ((null == c && null != u) || (null != c && null == u)) _()
            else {
              var t
              try {
                t = Y(c) ? c(s, e.getOption()) : SF(l.value, f)
              } catch (t) {
                throw (_(), new Error('Data view format error ' + t))
              }
              t && e.dispatchAction({ type: 'changeDataView', newOption: t }), _()
            }
          }),
          (v.innerHTML = a[1]),
          (m.innerHTML = a[2]),
          (m.style.cssText = v.style.cssText = y),
          !i.get('readOnly') && g.appendChild(m),
          g.appendChild(v),
          r.appendChild(o),
          r.appendChild(s),
          r.appendChild(g),
          (s.style.height = n.clientHeight - 80 + 'px'),
          n.appendChild(r),
          (this._dom = r)
      }),
      (e.prototype.remove = function (t, e) {
        this._dom && e.getDom().removeChild(this._dom)
      }),
      (e.prototype.dispose = function (t, e) {
        this.remove(t, e)
      }),
      (e.getDefaultOption = function (t) {
        return {
          show: !0,
          readOnly: !1,
          optionToContent: null,
          contentToOption: null,
          icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',
          title: t.getLocaleModel().get(['toolbox', 'dataView', 'title']),
          lang: t.getLocaleModel().get(['toolbox', 'dataView', 'lang']),
          backgroundColor: tf.color.background,
          textColor: tf.color.primary,
          textareaColor: tf.color.background,
          textareaBorderColor: tf.color.border,
          buttonColor: tf.color.accent50,
          buttonTextColor: tf.color.neutral00
        }
      }),
      e
    )
  })(sF)
  function IF(t, e) {
    return E(t, function (t, n) {
      var i = e && e[n]
      if (q(i) && !U(i)) {
        ;(q(t) && !U(t)) || (t = { value: t })
        var r = null != i.name && null == t.name
        return (t = k(t, i)), r && delete t.name, t
      }
      return t
    })
  }
  Qx({ type: 'changeDataView', event: 'dataViewChanged', update: 'prepareAndUpdate' }, function (t, e) {
    var n = []
    z(t.newOption.series, function (t) {
      var i = e.getSeriesByName(t.name)[0]
      if (i) {
        var r = i.get('data')
        n.push({ name: t.name, data: IF(t.data, r) })
      } else n.push(A({ type: 'scatter' }, t))
    }),
      e.mergeOption(k({ series: n }, t.newOption))
  })
  var TF = z,
    CF = sa()
  function DF(t) {
    var e = CF(t)
    return e.snapshots || (e.snapshots = [{}]), e.snapshots
  }
  var AF = (function (t) {
    function e() {
      return (null !== t && t.apply(this, arguments)) || this
    }
    return (
      n(e, t),
      (e.prototype.onclick = function (t, e) {
        !(function (t) {
          CF(t).snapshots = null
        })(t),
          e.dispatchAction({ type: 'restore', from: this.uid })
      }),
      (e.getDefaultOption = function (t) {
        return {
          show: !0,
          icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',
          title: t.getLocaleModel().get(['toolbox', 'restore', 'title'])
        }
      }),
      e
    )
  })(sF)
  Qx({ type: 'restore', event: 'restore', update: 'prepareAndUpdate' }, function (t, e) {
    e.resetOption('recreate')
  })
  var kF = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'],
    LF = (function () {
      function t(t, e, n) {
        var i = this
        this._targetInfoList = []
        var r = OF(e, t)
        z(RF, function (t, e) {
          ;(!n || !n.include || P(n.include, e) >= 0) && t(r, i._targetInfoList)
        })
      }
      return (
        (t.prototype.setOutputRanges = function (t, e) {
          return (
            this.matchOutputRanges(t, e, function (t, e, n) {
              if (((t.coordRanges || (t.coordRanges = [])).push(e), !t.coordRange)) {
                t.coordRange = e
                var i = EF[t.brushType](0, n, e)
                t.__rangeOffset = { offset: VF[t.brushType](i.values, t.range, [1, 1]), xyMinMax: i.xyMinMax }
              }
            }),
            t
          )
        }),
        (t.prototype.matchOutputRanges = function (t, e, n) {
          z(
            t,
            function (t) {
              var i = this.findTargetInfo(t, e)
              i &&
                !0 !== i &&
                z(i.coordSyses, function (i) {
                  var r = EF[t.brushType](1, i, t.range, !0)
                  n(t, r.values, i, e)
                })
            },
            this
          )
        }),
        (t.prototype.setInputRanges = function (t, e) {
          z(
            t,
            function (t) {
              var n,
                i,
                r,
                o,
                a,
                s = this.findTargetInfo(t, e)
              if (((t.range = t.range || []), s && !0 !== s)) {
                t.panelId = s.panelId
                var l = EF[t.brushType](0, s.coordSys, t.coordRange),
                  u = t.__rangeOffset
                t.range = u
                  ? VF[t.brushType](
                      l.values,
                      u.offset,
                      ((n = l.xyMinMax), (i = u.xyMinMax), (r = FF(n)), (o = FF(i)), (a = [r[0] / o[0], r[1] / o[1]]), isNaN(a[0]) && (a[0] = 1), isNaN(a[1]) && (a[1] = 1), a)
                    )
                  : l.values
              }
            },
            this
          )
        }),
        (t.prototype.makePanelOpts = function (t, e) {
          return E(this._targetInfoList, function (n) {
            var i = n.getPanelRect()
            return { panelId: n.panelId, defaultBrushType: e ? e(n) : null, clipPath: AR(i), isTargetByCursor: LR(i, t, n.coordSysModel), getLinearBrushOtherExtent: kR(i) }
          })
        }),
        (t.prototype.controlSeries = function (t, e, n) {
          var i = this.findTargetInfo(t, n)
          return !0 === i || (i && P(i.coordSyses, e.coordinateSystem) >= 0)
        }),
        (t.prototype.findTargetInfo = function (t, e) {
          for (var n = this._targetInfoList, i = OF(e, t), r = 0; r < n.length; r++) {
            var o = n[r],
              a = t.panelId
            if (a) {
              if (o.panelId === a) return o
            } else for (var s = 0; s < NF.length; s++) if (NF[s](i, o)) return o
          }
          return !0
        }),
        t
      )
    })()
  function PF(t) {
    return t[0] > t[1] && t.reverse(), t
  }
  function OF(t, e) {
    return ua(t, e, { includeMainTypes: kF })
  }
  var RF = {
      grid: function (t, e) {
        var n = t.xAxisModels,
          i = t.yAxisModels,
          r = t.gridModels,
          o = yt(),
          a = {},
          s = {}
        ;(n || i || r) &&
          (z(n, function (t) {
            var e = t.axis.grid.model
            o.set(e.id, e), (a[e.id] = !0)
          }),
          z(i, function (t) {
            var e = t.axis.grid.model
            o.set(e.id, e), (s[e.id] = !0)
          }),
          z(r, function (t) {
            o.set(t.id, t), (a[t.id] = !0), (s[t.id] = !0)
          }),
          o.each(function (t) {
            var r = t.coordinateSystem,
              o = []
            z(r.getCartesians(), function (t, e) {
              ;(P(n, t.getAxis('x').model) >= 0 || P(i, t.getAxis('y').model) >= 0) && o.push(t)
            }),
              e.push({
                panelId: 'grid--' + t.id,
                gridModel: t,
                coordSysModel: t,
                coordSys: o[0],
                coordSyses: o,
                getPanelRect: zF.grid,
                xAxisDeclared: a[t.id],
                yAxisDeclared: s[t.id]
              })
          }))
      },
      geo: function (t, e) {
        z(t.geoModels, function (t) {
          var n = t.coordinateSystem
          e.push({ panelId: 'geo--' + t.id, geoModel: t, coordSysModel: t, coordSys: n, coordSyses: [n], getPanelRect: zF.geo })
        })
      }
    },
    NF = [
      function (t, e) {
        var n = t.xAxisModel,
          i = t.yAxisModel,
          r = t.gridModel
        return !r && n && (r = n.axis.grid.model), !r && i && (r = i.axis.grid.model), r && r === e.gridModel
      },
      function (t, e) {
        var n = t.geoModel
        return n && n === e.geoModel
      }
    ],
    zF = {
      grid: function () {
        return this.coordSys.master.getRect().clone()
      },
      geo: function () {
        var t = this.coordSys,
          e = t.getBoundingRect().clone()
        return e.applyTransform(wh(t)), e
      }
    },
    EF = {
      lineX: H(BF, 0),
      lineY: H(BF, 1),
      rect: function (t, e, n, i) {
        var r = t ? e.pointToData([n[0][0], n[1][0]], i) : e.dataToPoint([n[0][0], n[1][0]], i),
          o = t ? e.pointToData([n[0][1], n[1][1]], i) : e.dataToPoint([n[0][1], n[1][1]], i),
          a = [PF([r[0], o[0]]), PF([r[1], o[1]])]
        return { values: a, xyMinMax: a }
      },
      polygon: function (t, e, n, i) {
        var r = [
          [1 / 0, -1 / 0],
          [1 / 0, -1 / 0]
        ]
        return {
          values: E(n, function (n) {
            var o = t ? e.pointToData(n, i) : e.dataToPoint(n, i)
            return (r[0][0] = Math.min(r[0][0], o[0])), (r[1][0] = Math.min(r[1][0], o[1])), (r[0][1] = Math.max(r[0][1], o[0])), (r[1][1] = Math.max(r[1][1], o[1])), o
          }),
          xyMinMax: r
        }
      }
    }
  function BF(t, e, n, i) {
    var r = n.getAxis(['x', 'y'][t]),
      o = PF(
        E([0, 1], function (t) {
          return e ? r.coordToData(r.toLocalCoord(i[t]), !0) : r.toGlobalCoord(r.dataToCoord(i[t]))
        })
      ),
      a = []
    return (a[t] = o), (a[1 - t] = [NaN, NaN]), { values: o, xyMinMax: a }
  }
  var VF = {
    lineX: H(GF, 0),
    lineY: H(GF, 1),
    rect: function (t, e, n) {
      return [
        [t[0][0] - n[0] * e[0][0], t[0][1] - n[0] * e[0][1]],
        [t[1][0] - n[1] * e[1][0], t[1][1] - n[1] * e[1][1]]
      ]
    },
    polygon: function (t, e, n) {
      return E(t, function (t, i) {
        return [t[0] - n[0] * e[i][0], t[1] - n[1] * e[i][1]]
      })
    }
  }
  function GF(t, e, n, i) {
    return [e[0] - i[t] * n[0], e[1] - i[t] * n[1]]
  }
  function FF(t) {
    return t ? [t[0][1] - t[0][0], t[1][1] - t[1][0]] : [NaN, NaN]
  }
  var WF,
    HF,
    UF = z,
    YF = jo + 'toolbox-dataZoom_',
    XF = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n, i) {
          this._brushController || ((this._brushController = new JO(n.getZr())), this._brushController.on('brush', W(this._onBrush, this)).mount()),
            (function (t, e, n, i, r) {
              var o = n._isZoomActive
              i && 'takeGlobalCursor' === i.type && (o = 'dataZoomSelect' === i.key && i.dataZoomSelectActive)
              ;(n._isZoomActive = o), t.setIconStatus('zoom', o ? 'emphasis' : 'normal')
              var a = new LF(jF(t), e, { include: ['grid'] }),
                s = a.makePanelOpts(r, function (t) {
                  return t.xAxisDeclared && !t.yAxisDeclared ? 'lineX' : !t.xAxisDeclared && t.yAxisDeclared ? 'lineY' : 'rect'
                })
              n._brushController.setPanels(s).enableBrush(!(!o || !s.length) && { brushType: 'auto', brushStyle: t.getModel('brushStyle').getItemStyle() })
            })(t, e, this, i, n),
            (function (t, e) {
              t.setIconStatus(
                'back',
                (function (t) {
                  return DF(t).length
                })(e) > 1
                  ? 'emphasis'
                  : 'normal'
              )
            })(t, e)
        }),
        (e.prototype.onclick = function (t, e, n) {
          ZF[n].call(this)
        }),
        (e.prototype.remove = function (t, e) {
          this._brushController && this._brushController.unmount()
        }),
        (e.prototype.dispose = function (t, e) {
          this._brushController && this._brushController.dispose()
        }),
        (e.prototype._onBrush = function (t) {
          var e = t.areas
          if (t.isEnd && e.length) {
            var n = {},
              i = this.ecModel
            this._brushController.updateCovers([]),
              new LF(jF(this.model), i, { include: ['grid'] }).matchOutputRanges(e, i, function (t, e, n) {
                if ('cartesian2d' === n.type) {
                  var i = t.brushType
                  'rect' === i ? (r('x', n, e[0]), r('y', n, e[1])) : r({ lineX: 'x', lineY: 'y' }[i], n, e)
                }
              }),
              (function (t, e) {
                var n = DF(t)
                TF(e, function (e, i) {
                  for (var r = n.length - 1; r >= 0 && !n[r][i]; r--);
                  if (r < 0) {
                    var o = t.queryComponents({ mainType: 'dataZoom', subType: 'select', id: i })[0]
                    if (o) {
                      var a = o.getPercentRange()
                      n[0][i] = { dataZoomId: i, start: a[0], end: a[1] }
                    }
                  }
                }),
                  n.push(e)
              })(i, n),
              this._dispatchZoomAction(n)
          }
          function r(t, e, r) {
            var o = e.getAxis(t),
              a = o.model,
              s = (function (t, e, n) {
                var i
                return (
                  n.eachComponent({ mainType: 'dataZoom', subType: 'select' }, function (n) {
                    n.getAxisModel(t, e.componentIndex) && (i = n)
                  }),
                  i
                )
              })(t, a, i),
              l = s.findRepresentativeAxisProxy(a).getMinMaxSpan()
            ;(null == l.minValueSpan && null == l.maxValueSpan) || (r = CO(0, r.slice(), o.scale.getExtent(), 0, l.minValueSpan, l.maxValueSpan)),
              s && (n[s.id] = { dataZoomId: s.id, startValue: r[0], endValue: r[1] })
          }
        }),
        (e.prototype._dispatchZoomAction = function (t) {
          var e = []
          UF(t, function (t, n) {
            e.push(T(t))
          }),
            e.length && this.api.dispatchAction({ type: 'dataZoom', from: this.uid, batch: e })
        }),
        (e.getDefaultOption = function (t) {
          return {
            show: !0,
            filterMode: 'filter',
            icon: { zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1', back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26' },
            title: t.getLocaleModel().get(['toolbox', 'dataZoom', 'title']),
            brushStyle: { borderWidth: 0, color: tf.color.backgroundTint }
          }
        }),
        e
      )
    })(sF),
    ZF = {
      zoom: function () {
        var t = !this._isZoomActive
        this.api.dispatchAction({ type: 'takeGlobalCursor', key: 'dataZoomSelect', dataZoomSelectActive: t })
      },
      back: function () {
        this._dispatchZoomAction(
          (function (t) {
            var e = DF(t),
              n = e[e.length - 1]
            e.length > 1 && e.pop()
            var i = {}
            return (
              TF(n, function (t, n) {
                for (var r = e.length - 1; r >= 0; r--)
                  if ((t = e[r][n])) {
                    i[n] = t
                    break
                  }
              }),
              i
            )
          })(this.ecModel)
        )
      }
    }
  function jF(t) {
    var e = { xAxisIndex: t.get('xAxisIndex', !0), yAxisIndex: t.get('yAxisIndex', !0), xAxisId: t.get('xAxisId', !0), yAxisId: t.get('yAxisId', !0) }
    return null == e.xAxisIndex && null == e.xAxisId && (e.xAxisIndex = 'all'), null == e.yAxisIndex && null == e.yAxisId && (e.yAxisIndex = 'all'), e
  }
  ;(WF = 'dataZoom'),
    (HF = function (t) {
      var e = t.getComponent('toolbox', 0),
        n = ['feature', 'dataZoom']
      if (e && null != e.get(n)) {
        var i = e.getModel(n),
          r = [],
          o = ua(t, jF(i))
        return (
          UF(o.xAxisModels, function (t) {
            return a(t, 'xAxis', 'xAxisIndex')
          }),
          UF(o.yAxisModels, function (t) {
            return a(t, 'yAxis', 'yAxisIndex')
          }),
          r
        )
      }
      function a(t, e, n) {
        var o = t.componentIndex,
          a = { type: 'select', $fromToolbox: !0, filterMode: i.get('filterMode', !0) || 'filter', id: YF + e + o }
        ;(a[n] = o), r.push(a)
      }
    }),
    lt(null == Df.get(WF) && HF),
    Df.set(WF, HF)
  var qF = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.type = 'tooltip'),
      (e.dependencies = ['axisPointer']),
      (e.defaultOption = {
        z: 60,
        show: !0,
        showContent: !0,
        trigger: 'item',
        triggerOn: 'mousemove|click',
        alwaysShowContent: !1,
        renderMode: 'auto',
        confine: null,
        showDelay: 0,
        hideDelay: 100,
        transitionDuration: 0.4,
        displayTransition: !0,
        enterable: !1,
        backgroundColor: tf.color.neutral00,
        shadowBlur: 10,
        shadowColor: 'rgba(0, 0, 0, .2)',
        shadowOffsetX: 1,
        shadowOffsetY: 2,
        borderRadius: 4,
        borderWidth: 1,
        defaultBorderColor: tf.color.border,
        padding: null,
        extraCssText: '',
        axisPointer: {
          type: 'line',
          axis: 'auto',
          animation: 'auto',
          animationDurationUpdate: 200,
          animationEasingUpdate: 'exponentialOut',
          crossStyle: { color: tf.color.borderShade, width: 1, type: 'dashed', textStyle: {} }
        },
        textStyle: { color: tf.color.tertiary, fontSize: 14 }
      }),
      e
    )
  })(Qp)
  function KF(t) {
    var e = t.get('confine')
    return null != e ? !!e : 'richText' === t.get('renderMode')
  }
  function $F(t) {
    if (r.domSupported) for (var e = document.documentElement.style, n = 0, i = t.length; n < i; n++) if (t[n] in e) return t[n]
  }
  var JF = $F(['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform'])
  function QF(t, e) {
    if (!t) return e
    e = gp(e, !0)
    var n = t.indexOf(e)
    return (t = -1 === n ? e : '-' + t.slice(0, n) + '-' + e).toLowerCase()
  }
  var tW = QF($F(['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']), 'transition'),
    eW = QF(JF, 'transform'),
    nW = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;' + (r.transform3dSupported ? 'will-change:transform;' : '')
  function iW(t, e, n) {
    var i = t.toFixed(0) + 'px',
      o = e.toFixed(0) + 'px'
    if (!r.transformSupported)
      return n
        ? 'top:' + o + ';left:' + i + ';'
        : [
            ['top', o],
            ['left', i]
          ]
    var a = r.transform3dSupported,
      s = 'translate' + (a ? '3d' : '') + '(' + i + ',' + o + (a ? ',0' : '') + ')'
    return n
      ? 'top:0;left:0;' + eW + ':' + s + ';'
      : [
          ['top', 0],
          ['left', 0],
          [JF, s]
        ]
  }
  function rW(t, e, n, i) {
    var o = [],
      a = t.get('transitionDuration'),
      s = t.get('backgroundColor'),
      l = t.get('shadowBlur'),
      u = t.get('shadowColor'),
      c = t.get('shadowOffsetX'),
      h = t.get('shadowOffsetY'),
      d = t.getModel('textStyle'),
      p = zy(t, 'html'),
      f = c + 'px ' + h + 'px ' + l + 'px ' + u
    return (
      o.push('box-shadow:' + f),
      e &&
        a > 0 &&
        o.push(
          (function (t, e, n) {
            var i = 'cubic-bezier(0.23,1,0.32,1)',
              o = '',
              a = ''
            return (
              n && (a = 'opacity' + (o = ' ' + t / 2 + 's ' + i) + ',visibility' + o),
              e || ((o = ' ' + t + 's ' + i), (a += (a.length ? ',' : '') + (r.transformSupported ? '' + eW + o : ',left' + o + ',top' + o))),
              tW + ':' + a
            )
          })(a, n, i)
        ),
      s && o.push('background-color:' + s),
      z(['width', 'color', 'radius'], function (e) {
        var n = 'border-' + e,
          i = gp(n),
          r = t.get(i)
        null != r && o.push(n + ':' + r + ('color' === e ? '' : 'px'))
      }),
      o.push(
        (function (t) {
          var e = [],
            n = t.get('fontSize'),
            i = t.getTextColor()
          i && e.push('color:' + i), e.push('font:' + t.getFont())
          var r = rt(t.get('lineHeight'), Math.round((3 * n) / 2))
          n && e.push('line-height:' + r + 'px')
          var o = t.get('textShadowColor'),
            a = t.get('textShadowBlur') || 0,
            s = t.get('textShadowOffsetX') || 0,
            l = t.get('textShadowOffsetY') || 0
          return (
            o && a && e.push('text-shadow:' + s + 'px ' + l + 'px ' + a + 'px ' + o),
            z(['decoration', 'align'], function (n) {
              var i = t.get(n)
              i && e.push('text-' + n + ':' + i)
            }),
            e.join(';')
          )
        })(d)
      ),
      null != p && o.push('padding:' + yp(p).join('px ') + 'px'),
      o.join(';') + ';'
    )
  }
  function oW(t, e, n, i, r) {
    var o = e && e.painter
    if (n) {
      var a = o && o.getViewportRoot()
      a &&
        (function (t, e, n, i, r) {
          ee(te, e, i, r, !0) && ee(t, n, te[0], te[1])
        })(t, a, n, i, r)
    } else {
      ;(t[0] = i), (t[1] = r)
      var s = o && o.getViewportRootOffset()
      s && ((t[0] += s.offsetLeft), (t[1] += s.offsetTop))
    }
    ;(t[2] = t[0] / e.getWidth()), (t[3] = t[1] / e.getHeight())
  }
  var aW = (function () {
      function t(t, e) {
        if (((this._show = !1), (this._styleCoord = [0, 0, 0, 0]), (this._enterable = !0), (this._alwaysShowContent = !1), (this._firstShow = !0), (this._longHide = !0), r.wxa))
          return null
        var n = document.createElement('div')
        ;(n.domBelongToZr = !0), (this.el = n)
        var i = (this._zr = t.getZr()),
          o = e.appendTo,
          a = o && (X(o) ? document.querySelector(o) : J(o) ? o : Y(o) && o(t.getDom()))
        oW(this._styleCoord, i, a, t.getWidth() / 2, t.getHeight() / 2), (a || t.getDom()).appendChild(n), (this._api = t), (this._container = a)
        var s = this
        ;(n.onmouseenter = function () {
          s._enterable && (clearTimeout(s._hideTimeout), (s._show = !0)), (s._inContent = !0)
        }),
          (n.onmousemove = function (t) {
            if (((t = t || window.event), !s._enterable)) {
              var e = i.handler
              de(i.painter.getViewportRoot(), t, !0), e.dispatch('mousemove', t)
            }
          }),
          (n.onmouseleave = function () {
            ;(s._inContent = !1), s._enterable && s._show && s.hideLater(s._hideDelay)
          })
      }
      return (
        (t.prototype.update = function (t) {
          if (!this._container) {
            var e = this._api.getDom(),
              n = ((o = 'position'), (a = (r = e).currentStyle || (document.defaultView && document.defaultView.getComputedStyle(r))) ? (o ? a[o] : a) : null),
              i = e.style
            'absolute' !== i.position && 'absolute' !== n && (i.position = 'relative')
          }
          var r,
            o,
            a,
            s = t.get('alwaysShowContent')
          s && this._moveIfResized(),
            (this._alwaysShowContent = s),
            (this._enableDisplayTransition = t.get('displayTransition') && t.get('transitionDuration') > 0),
            (this.el.className = t.get('className') || '')
        }),
        (t.prototype.show = function (t, e) {
          clearTimeout(this._hideTimeout), clearTimeout(this._longHideTimeout)
          var n = this.el,
            i = n.style,
            r = this._styleCoord
          n.innerHTML
            ? (i.cssText =
                nW +
                rW(t, !this._firstShow, this._longHide, this._enableDisplayTransition) +
                iW(r[0], r[1], !0) +
                'border-color:' +
                wp(e) +
                ';' +
                (t.get('extraCssText') || '') +
                ';pointer-events:' +
                (this._enterable ? 'auto' : 'none'))
            : (i.display = 'none'),
            (this._show = !0),
            (this._firstShow = !1),
            (this._longHide = !1)
        }),
        (t.prototype.setContent = function (t, e, n, i, r) {
          var o = this.el
          if (null != t) {
            var a = ''
            if (
              (X(r) &&
                'item' === n.get('trigger') &&
                !KF(n) &&
                (a = (function (t, e, n) {
                  if (!X(n) || 'inside' === n) return ''
                  var i = t.get('backgroundColor'),
                    r = t.get('borderWidth')
                  e = wp(e)
                  var o,
                    a,
                    s = 'left' === (o = n) ? 'right' : 'right' === o ? 'left' : 'top' === o ? 'bottom' : 'top',
                    l = Math.max(1.5 * Math.round(r), 6),
                    u = '',
                    c = eW + ':'
                  P(['left', 'right'], s) > -1
                    ? ((u += 'top:50%'), (c += 'translateY(-50%) rotate(' + (a = 'left' === s ? -225 : -45) + 'deg)'))
                    : ((u += 'left:50%'), (c += 'translateX(-50%) rotate(' + (a = 'top' === s ? 225 : 45) + 'deg)'))
                  var h = (a * Math.PI) / 180,
                    d = l + r,
                    p = d * Math.abs(Math.cos(h)) + d * Math.abs(Math.sin(h)),
                    f = e + ' solid ' + r + 'px;'
                  return (
                    '<div style="' +
                    [
                      'position:absolute;width:' + l + 'px;height:' + l + 'px;z-index:-1;',
                      (u += ';' + s + ':-' + Math.round(100 * ((p - Math.SQRT2 * r) / 2 + Math.SQRT2 * r - (p - d) / 2)) / 100 + 'px') + ';' + c + ';',
                      'border-bottom:' + f,
                      'border-right:' + f,
                      'background-color:' + i + ';'
                    ].join('') +
                    '"></div>'
                  )
                })(n, i, r)),
              X(t))
            )
              o.innerHTML = t + a
            else if (t) {
              ;(o.innerHTML = ''), U(t) || (t = [t])
              for (var s = 0; s < t.length; s++) J(t[s]) && t[s].parentNode !== o && o.appendChild(t[s])
              if (a && o.childNodes.length) {
                var l = document.createElement('div')
                ;(l.innerHTML = a), o.appendChild(l)
              }
            }
          } else o.innerHTML = ''
        }),
        (t.prototype.setEnterable = function (t) {
          this._enterable = t
        }),
        (t.prototype.getSize = function () {
          var t = this.el
          return t ? [t.offsetWidth, t.offsetHeight] : [0, 0]
        }),
        (t.prototype.moveTo = function (t, e) {
          if (this.el) {
            var n = this._styleCoord
            if ((oW(n, this._zr, this._container, t, e), null != n[0] && null != n[1])) {
              var i = this.el.style
              z(iW(n[0], n[1]), function (t) {
                i[t[0]] = t[1]
              })
            }
          }
        }),
        (t.prototype._moveIfResized = function () {
          var t = this._styleCoord[2],
            e = this._styleCoord[3]
          this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight())
        }),
        (t.prototype.hide = function () {
          var t = this,
            e = this.el.style
          this._enableDisplayTransition ? ((e.visibility = 'hidden'), (e.opacity = '0')) : (e.display = 'none'),
            r.transform3dSupported && (e.willChange = ''),
            (this._show = !1),
            (this._longHideTimeout = setTimeout(function () {
              return (t._longHide = !0)
            }, 500))
        }),
        (t.prototype.hideLater = function (t) {
          !this._show ||
            (this._inContent && this._enterable) ||
            this._alwaysShowContent ||
            (t ? ((this._hideDelay = t), (this._show = !1), (this._hideTimeout = setTimeout(W(this.hide, this), t))) : this.hide())
        }),
        (t.prototype.isShow = function () {
          return this._show
        }),
        (t.prototype.dispose = function () {
          clearTimeout(this._hideTimeout), clearTimeout(this._longHideTimeout)
          var t = this._zr
          !(function (t, e) {
            function n(t) {
              var e = t[Qt]
              e && (e.clearMarkers && e.clearMarkers(), delete t[Qt])
            }
            t && n(t), e && n(e)
          })(t && t.painter && t.painter.getViewportRoot(), this._container)
          var e = this.el
          if (e) {
            e.onmouseenter = e.onmousemove = e.onmouseleave = null
            var n = e.parentNode
            n && n.removeChild(e)
          }
          this.el = this._container = null
        }),
        t
      )
    })(),
    sW = (function () {
      function t(t) {
        ;(this._show = !1),
          (this._styleCoord = [0, 0, 0, 0]),
          (this._alwaysShowContent = !1),
          (this._enterable = !0),
          (this._zr = t.getZr()),
          cW(this._styleCoord, this._zr, t.getWidth() / 2, t.getHeight() / 2)
      }
      return (
        (t.prototype.update = function (t) {
          var e = t.get('alwaysShowContent')
          e && this._moveIfResized(), (this._alwaysShowContent = e)
        }),
        (t.prototype.show = function () {
          this._hideTimeout && clearTimeout(this._hideTimeout), this.el.show(), (this._show = !0)
        }),
        (t.prototype.setContent = function (t, e, n, i, r) {
          var o = this
          q(t) && Yo(''), this.el && this._zr.remove(this.el)
          var a = n.getModel('textStyle')
          ;(this.el = new Sl({
            style: {
              rich: e.richTextStyles,
              text: t,
              lineHeight: 22,
              borderWidth: 1,
              borderColor: i,
              textShadowColor: a.get('textShadowColor'),
              fill: n.get(['textStyle', 'color']),
              padding: zy(n, 'richText'),
              verticalAlign: 'top',
              align: 'left'
            },
            z: n.get('z')
          })),
            z(['backgroundColor', 'borderRadius', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'], function (t) {
              o.el.style[t] = n.get(t)
            }),
            z(['textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'], function (t) {
              o.el.style[t] = a.get(t) || 0
            }),
            this._zr.add(this.el)
          var s = this
          this.el.on('mouseover', function () {
            s._enterable && (clearTimeout(s._hideTimeout), (s._show = !0)), (s._inContent = !0)
          }),
            this.el.on('mouseout', function () {
              s._enterable && s._show && s.hideLater(s._hideDelay), (s._inContent = !1)
            })
        }),
        (t.prototype.setEnterable = function (t) {
          this._enterable = t
        }),
        (t.prototype.getSize = function () {
          var t = this.el,
            e = this.el.getBoundingRect(),
            n = uW(t.style)
          return [e.width + n.left + n.right, e.height + n.top + n.bottom]
        }),
        (t.prototype.moveTo = function (t, e) {
          var n = this.el
          if (n) {
            var i = this._styleCoord
            cW(i, this._zr, t, e), (t = i[0]), (e = i[1])
            var r = n.style,
              o = lW(r.borderWidth || 0),
              a = uW(r)
            ;(n.x = t + o + a.left), (n.y = e + o + a.top), n.markRedraw()
          }
        }),
        (t.prototype._moveIfResized = function () {
          var t = this._styleCoord[2],
            e = this._styleCoord[3]
          this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight())
        }),
        (t.prototype.hide = function () {
          this.el && this.el.hide(), (this._show = !1)
        }),
        (t.prototype.hideLater = function (t) {
          !this._show ||
            (this._inContent && this._enterable) ||
            this._alwaysShowContent ||
            (t ? ((this._hideDelay = t), (this._show = !1), (this._hideTimeout = setTimeout(W(this.hide, this), t))) : this.hide())
        }),
        (t.prototype.isShow = function () {
          return this._show
        }),
        (t.prototype.dispose = function () {
          this._zr.remove(this.el)
        }),
        t
      )
    })()
  function lW(t) {
    return Math.max(0, t)
  }
  function uW(t) {
    var e = lW(t.shadowBlur || 0),
      n = lW(t.shadowOffsetX || 0),
      i = lW(t.shadowOffsetY || 0)
    return { left: lW(e - n), right: lW(e + n), top: lW(e - i), bottom: lW(e + i) }
  }
  function cW(t, e, n, i) {
    ;(t[0] = n), (t[1] = i), (t[2] = t[0] / e.getWidth()), (t[3] = t[1] / e.getHeight())
  }
  var hW = new xl({ shape: { x: -1, y: -1, width: 2, height: 2 } }),
    dW = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e) {
          if (!r.node && e.getDom()) {
            var n,
              i = t.getComponent('tooltip'),
              o = (this._renderMode = 'auto' === (n = i.get('renderMode')) ? (r.domSupported ? 'html' : 'richText') : n || 'html')
            this._tooltipContent = 'richText' === o ? new sW(e) : new aW(e, { appendTo: i.get('appendToBody', !0) ? 'body' : i.get('appendTo', !0) })
          }
        }),
        (e.prototype.render = function (t, e, n) {
          if (!r.node && n.getDom()) {
            this.group.removeAll(), (this._tooltipModel = t), (this._ecModel = e), (this._api = n)
            var i = this._tooltipContent
            i.update(t),
              i.setEnterable(t.get('enterable')),
              this._initGlobalListener(),
              this._keepShow(),
              'richText' !== this._renderMode && t.get('transitionDuration') ? cv(this, '_updatePosition', 50, 'fixRate') : hv(this, '_updatePosition')
          }
        }),
        (e.prototype._initGlobalListener = function () {
          var t = this._tooltipModel.get('triggerOn')
          mB(
            'itemTooltip',
            this._api,
            W(function (e, n, i) {
              'none' !== t && (t.indexOf(e) >= 0 ? this._tryShow(n, i) : 'leave' === e && this._hide(i))
            }, this)
          )
        }),
        (e.prototype._keepShow = function () {
          var t = this._tooltipModel,
            e = this._ecModel,
            n = this._api,
            i = t.get('triggerOn')
          if (null != this._lastX && null != this._lastY && 'none' !== i && 'click' !== i) {
            var r = this
            clearTimeout(this._refreshUpdateTimeout),
              (this._refreshUpdateTimeout = setTimeout(function () {
                !n.isDisposed() && r.manuallyShowTip(t, e, n, { x: r._lastX, y: r._lastY, dataByCoordSys: r._lastDataByCoordSys })
              }))
          }
        }),
        (e.prototype.manuallyShowTip = function (t, e, n, i) {
          if (i.from !== this.uid && !r.node && n.getDom()) {
            var o = fW(i, n)
            this._ticket = ''
            var a = i.dataByCoordSys,
              s = (function (t, e, n) {
                var i = ca(t).queryOptionMap,
                  r = i.keys()[0]
                if (!r || 'series' === r) return
                var o = pa(e, r, i.get(r), { useDefault: !1, enableAll: !1, enableNone: !1 }),
                  a = o.models[0]
                if (!a) return
                var s,
                  l = n.getViewOfComponentModel(a)
                if (
                  (l.group.traverse(function (e) {
                    var n = zl(e).tooltipConfig
                    if (n && n.name === t.name) return (s = e), !0
                  }),
                  s)
                )
                  return { componentMainType: r, componentIndex: a.componentIndex, el: s }
              })(i, e, n)
            if (s) {
              var l = s.el.getBoundingRect().clone()
              l.applyTransform(s.el.transform),
                this._tryShow({ offsetX: l.x + l.width / 2, offsetY: l.y + l.height / 2, target: s.el, position: i.position, positionDefault: 'bottom' }, o)
            } else if (i.tooltip && null != i.x && null != i.y) {
              var u = hW
              ;(u.x = i.x), (u.y = i.y), u.update(), (zl(u).tooltipConfig = { name: null, option: i.tooltip }), this._tryShow({ offsetX: i.x, offsetY: i.y, target: u }, o)
            } else if (a) this._tryShow({ offsetX: i.x, offsetY: i.y, position: i.position, dataByCoordSys: a, tooltipOption: i.tooltipOption }, o)
            else if (null != i.seriesIndex) {
              if (this._manuallyAxisShowTip(t, e, n, i)) return
              var c = SB(i, e),
                h = c.point[0],
                d = c.point[1]
              null != h && null != d && this._tryShow({ offsetX: h, offsetY: d, target: c.el, position: i.position, positionDefault: 'bottom' }, o)
            } else
              null != i.x &&
                null != i.y &&
                (n.dispatchAction({ type: 'updateAxisPointer', x: i.x, y: i.y }),
                this._tryShow({ offsetX: i.x, offsetY: i.y, position: i.position, target: n.getZr().findHover(i.x, i.y).target }, o))
          }
        }),
        (e.prototype.manuallyHideTip = function (t, e, n, i) {
          var r = this._tooltipContent
          this._tooltipModel && r.hideLater(this._tooltipModel.get('hideDelay')),
            (this._lastX = this._lastY = this._lastDataByCoordSys = null),
            i.from !== this.uid && this._hide(fW(i, n))
        }),
        (e.prototype._manuallyAxisShowTip = function (t, e, n, i) {
          var r = i.seriesIndex,
            o = i.dataIndex,
            a = e.getComponent('axisPointer').coordSysAxesInfo
          if (null != r && null != o && null != a) {
            var s = e.getSeriesByIndex(r)
            if (s)
              if ('axis' === pW([s.getData().getItemModel(o), s, (s.coordinateSystem || {}).model], this._tooltipModel).get('trigger'))
                return n.dispatchAction({ type: 'updateAxisPointer', seriesIndex: r, dataIndex: o, position: i.position }), !0
          }
        }),
        (e.prototype._tryShow = function (t, e) {
          var n = t.target
          if (this._tooltipModel) {
            ;(this._lastX = t.offsetX), (this._lastY = t.offsetY)
            var i = t.dataByCoordSys
            if (i && i.length) this._showAxisTooltip(i, t)
            else if (n) {
              var r, o
              if ('legend' === zl(n).ssrType) return
              ;(this._lastDataByCoordSys = null),
                Qv(
                  n,
                  function (t) {
                    if (t.tooltipDisabled) return (r = o = null), !0
                    r || o || (null != zl(t).dataIndex ? (r = t) : null != zl(t).tooltipConfig && (o = t))
                  },
                  !0
                ),
                r ? this._showSeriesItemTooltip(t, r, e) : o ? this._showComponentItemTooltip(t, o, e) : this._hide(e)
            } else (this._lastDataByCoordSys = null), this._hide(e)
          }
        }),
        (e.prototype._showOrMove = function (t, e) {
          var n = t.get('showDelay')
          ;(e = W(e, this)), clearTimeout(this._showTimout), n > 0 ? (this._showTimout = setTimeout(e, n)) : e()
        }),
        (e.prototype._showAxisTooltip = function (t, e) {
          var n = this._ecModel,
            i = this._tooltipModel,
            r = [e.offsetX, e.offsetY],
            o = pW([e.tooltipOption], i),
            a = this._renderMode,
            s = [],
            l = Ty('section', { blocks: [], noHeader: !0 }),
            u = [],
            c = new Ey()
          z(t, function (t) {
            z(t.dataByAxis, function (t) {
              var e = n.getComponent(t.axisDim + 'Axis', t.axisIndex),
                r = t.value
              if (e && null != r) {
                var o = oB(r, e.axis, n, t.seriesDataIndices, t.valueLabelOpt),
                  h = Ty('section', { header: o, noHeader: !ut(o), sortBlocks: !0, blocks: [] })
                l.blocks.push(h),
                  z(t.seriesDataIndices, function (l) {
                    var d = n.getSeriesByIndex(l.seriesIndex),
                      p = l.dataIndexInside,
                      f = d.getDataParams(p)
                    if (!(f.dataIndex < 0)) {
                      ;(f.axisDim = t.axisDim),
                        (f.axisIndex = t.axisIndex),
                        (f.axisType = t.axisType),
                        (f.axisId = t.axisId),
                        (f.axisValue = qb(e.axis, { value: r })),
                        (f.axisValueLabel = o),
                        (f.marker = c.makeTooltipMarker('item', wp(f.color), a))
                      var g = Wg(d.formatTooltip(p, !0, null)),
                        y = g.frag
                      if (y) {
                        var v = pW([d], i).get('valueFormatter')
                        h.blocks.push(v ? A({ valueFormatter: v }, y) : y)
                      }
                      g.text && u.push(g.text), s.push(f)
                    }
                  })
              }
            })
          }),
            l.blocks.reverse(),
            u.reverse()
          var h = e.position,
            d = o.get('order'),
            p = Py(l, c, a, d, n.get('useUTC'), o.get('textStyle'))
          p && u.unshift(p)
          var f = 'richText' === a ? '\n\n' : '<br/>',
            g = u.join(f)
          this._showOrMove(o, function () {
            this._updateContentNotChangedOnAxis(t, s)
              ? this._updatePosition(o, h, r[0], r[1], this._tooltipContent, s)
              : this._showTooltipContent(o, g, s, Math.random() + '', r[0], r[1], h, null, c)
          })
        }),
        (e.prototype._showSeriesItemTooltip = function (t, e, n) {
          var i = this._ecModel,
            r = zl(e),
            o = r.seriesIndex,
            a = i.getSeriesByIndex(o),
            s = r.dataModel || a,
            l = r.dataIndex,
            u = r.dataType,
            c = s.getData(u),
            h = this._renderMode,
            d = t.positionDefault,
            p = pW([c.getItemModel(l), s, a && (a.coordinateSystem || {}).model], this._tooltipModel, d ? { position: d } : null),
            f = p.get('trigger')
          if (null == f || 'item' === f) {
            var g = s.getDataParams(l, u),
              y = new Ey()
            g.marker = y.makeTooltipMarker('item', wp(g.color), h)
            var v = Wg(s.formatTooltip(l, !1, u)),
              m = p.get('order'),
              x = p.get('valueFormatter'),
              _ = v.frag,
              b = _ ? Py(x ? A({ valueFormatter: x }, _) : _, y, h, m, i.get('useUTC'), p.get('textStyle')) : v.text,
              w = 'item_' + s.name + '_' + l
            this._showOrMove(p, function () {
              this._showTooltipContent(p, b, g, w, t.offsetX, t.offsetY, t.position, t.target, y)
            }),
              n({ type: 'showTip', dataIndexInside: l, dataIndex: c.getRawIndex(l), seriesIndex: o, from: this.uid })
          }
        }),
        (e.prototype._showComponentItemTooltip = function (t, e, n) {
          var i = 'html' === this._renderMode,
            r = zl(e),
            o = r.tooltipConfig.option || {},
            a = o.encodeHTMLContent
          if (X(o)) {
            ;(o = { content: o, formatter: o }), (a = !0)
          }
          a && i && o.content && ((o = T(o)).content = oe(o.content))
          var s = [o],
            l = this._ecModel.getComponent(r.componentMainType, r.componentIndex)
          l && s.push(l), s.push({ formatter: o.content })
          var u = t.positionDefault,
            c = pW(s, this._tooltipModel, u ? { position: u } : null),
            h = c.get('content'),
            d = Math.random() + '',
            p = new Ey()
          this._showOrMove(c, function () {
            var n = T(c.get('formatterParams') || {})
            this._showTooltipContent(c, h, n, d, t.offsetX, t.offsetY, t.position, e, p)
          }),
            n({ type: 'showTip', from: this.uid })
        }),
        (e.prototype._showTooltipContent = function (t, e, n, i, r, o, a, s, l) {
          if (((this._ticket = ''), t.get('showContent') && t.get('show'))) {
            var u = this._tooltipContent
            u.setEnterable(t.get('enterable'))
            var c = t.get('formatter')
            a = a || t.get('position')
            var h = e,
              d = this._getNearestPoint([r, o], n, t.get('trigger'), t.get('borderColor'), t.get('defaultBorderColor', !0)).color
            if (c)
              if (X(c)) {
                var p = t.ecModel.get('useUTC'),
                  f = U(n) ? n[0] : n
                ;(h = c), f && f.axisType && f.axisType.indexOf('time') >= 0 && (h = $d(f.axisValue, h, p)), (h = _p(h, n, !0))
              } else if (Y(c)) {
                var g = W(function (e, i) {
                  e === this._ticket && (u.setContent(i, l, t, d, a), this._updatePosition(t, a, r, o, u, n, s))
                }, this)
                ;(this._ticket = i), (h = c(n, i, g))
              } else h = c
            u.setContent(h, l, t, d, a), u.show(t, d), this._updatePosition(t, a, r, o, u, n, s)
          }
        }),
        (e.prototype._getNearestPoint = function (t, e, n, i, r) {
          return 'axis' === n || U(e) ? { color: i || r } : U(e) ? void 0 : { color: i || e.color || e.borderColor }
        }),
        (e.prototype._updatePosition = function (t, e, n, i, r, o, a) {
          var s = this._api.getWidth(),
            l = this._api.getHeight()
          e = e || t.get('position')
          var u = r.getSize(),
            c = t.get('align'),
            h = t.get('verticalAlign'),
            d = a && a.getBoundingRect().clone()
          if ((a && d.applyTransform(a.transform), Y(e) && (e = e([n, i], o, r.el, d, { viewSize: [s, l], contentSize: u.slice() })), U(e))) (n = yo(e[0], s)), (i = yo(e[1], l))
          else if (q(e)) {
            var p = e
            ;(p.width = u[0]), (p.height = u[1])
            var f = Hp(p, { width: s, height: l })
            ;(n = f.x), (i = f.y), (c = null), (h = null)
          } else if (X(e) && a) {
            var g = (function (t, e, n, i) {
              var r = n[0],
                o = n[1],
                a = Math.ceil(Math.SQRT2 * i) + 8,
                s = 0,
                l = 0,
                u = e.width,
                c = e.height
              switch (t) {
                case 'inside':
                  ;(s = e.x + u / 2 - r / 2), (l = e.y + c / 2 - o / 2)
                  break
                case 'top':
                  ;(s = e.x + u / 2 - r / 2), (l = e.y - o - a)
                  break
                case 'bottom':
                  ;(s = e.x + u / 2 - r / 2), (l = e.y + c + a)
                  break
                case 'left':
                  ;(s = e.x - r - a), (l = e.y + c / 2 - o / 2)
                  break
                case 'right':
                  ;(s = e.x + u + a), (l = e.y + c / 2 - o / 2)
              }
              return [s, l]
            })(e, d, u, t.get('borderWidth'))
            ;(n = g[0]), (i = g[1])
          } else {
            g = (function (t, e, n, i, r, o, a) {
              var s = n.getSize(),
                l = s[0],
                u = s[1]
              null != o && (t + l + o + 2 > i ? (t -= l + o) : (t += o))
              null != a && (e + u + a > r ? (e -= u + a) : (e += a))
              return [t, e]
            })(n, i, r, s, l, c ? null : 20, h ? null : 20)
            ;(n = g[0]), (i = g[1])
          }
          if ((c && (n -= gW(c) ? u[0] / 2 : 'right' === c ? u[0] : 0), h && (i -= gW(h) ? u[1] / 2 : 'bottom' === h ? u[1] : 0), KF(t))) {
            g = (function (t, e, n, i, r) {
              var o = n.getSize(),
                a = o[0],
                s = o[1]
              return (t = Math.min(t + a, i) - a), (e = Math.min(e + s, r) - s), (t = Math.max(t, 0)), (e = Math.max(e, 0)), [t, e]
            })(n, i, r, s, l)
            ;(n = g[0]), (i = g[1])
          }
          r.moveTo(n, i)
        }),
        (e.prototype._updateContentNotChangedOnAxis = function (t, e) {
          var n = this._lastDataByCoordSys,
            i = this._cbParamsList,
            r = !!n && n.length === t.length
          return (
            r &&
              z(n, function (n, o) {
                var a = n.dataByAxis || [],
                  s = (t[o] || {}).dataByAxis || []
                ;(r = r && a.length === s.length) &&
                  z(a, function (t, n) {
                    var o = s[n] || {},
                      a = t.seriesDataIndices || [],
                      l = o.seriesDataIndices || []
                    ;(r = r && t.value === o.value && t.axisType === o.axisType && t.axisId === o.axisId && a.length === l.length) &&
                      z(a, function (t, e) {
                        var n = l[e]
                        r = r && t.seriesIndex === n.seriesIndex && t.dataIndex === n.dataIndex
                      }),
                      i &&
                        z(t.seriesDataIndices, function (t) {
                          var n = t.seriesIndex,
                            o = e[n],
                            a = i[n]
                          o && a && a.data !== o.data && (r = !1)
                        })
                  })
              }),
            (this._lastDataByCoordSys = t),
            (this._cbParamsList = e),
            !!r
          )
        }),
        (e.prototype._hide = function (t) {
          ;(this._lastDataByCoordSys = null), t({ type: 'hideTip', from: this.uid })
        }),
        (e.prototype.dispose = function (t, e) {
          !r.node && e.getDom() && (hv(this, '_updatePosition'), this._tooltipContent.dispose(), bB('itemTooltip', e))
        }),
        (e.type = 'tooltip'),
        e
      )
    })(Ky)
  function pW(t, e, n) {
    var i,
      r = e.ecModel
    n ? ((i = new wd(n, r, r)), (i = new wd(e.option, i, r))) : (i = e)
    for (var o = t.length - 1; o >= 0; o--) {
      var a = t[o]
      a && (a instanceof wd && (a = a.get('tooltip', !0)), X(a) && (a = { formatter: a }), a && (i = new wd(a, i, r)))
    }
    return i
  }
  function fW(t, e) {
    return t.dispatchAction || W(e.dispatchAction, e)
  }
  function gW(t) {
    return 'center' === t || 'middle' === t
  }
  var yW = ['rect', 'polygon', 'keep', 'clear']
  function vW(t, e) {
    var n = qo(t ? t.brush : [])
    if (n.length) {
      var i = []
      z(n, function (t) {
        var e = t.hasOwnProperty('toolbox') ? t.toolbox : []
        e instanceof Array && (i = i.concat(e))
      })
      var r = t && t.toolbox
      U(r) && (r = r[0]), r || ((r = { feature: {} }), (t.toolbox = [r]))
      var o = r.feature || (r.feature = {}),
        a = o.brush || (o.brush = {}),
        s = a.type || (a.type = [])
      s.push.apply(s, i),
        (function (t) {
          var e = {}
          z(t, function (t) {
            e[t] = 1
          }),
            (t.length = 0),
            z(e, function (e, n) {
              t.push(n)
            })
        })(s),
        e && !s.length && s.push.apply(s, yW)
    }
  }
  var mW = z
  function xW(t) {
    if (t) for (var e in t) if (t.hasOwnProperty(e)) return !0
  }
  function _W(t, e, n) {
    var i = {}
    return (
      mW(e, function (e) {
        var r,
          o = (i[e] = (((r = function () {}).prototype.__hidden = r.prototype), new r()))
        mW(t[e], function (t, i) {
          if (hL.isValidType(i)) {
            var r = { type: i, visual: t }
            n && n(r, e), (o[i] = new hL(r)), 'opacity' === i && (((r = T(r)).type = 'colorAlpha'), (o.__hidden.__alphaForOpacity = new hL(r)))
          }
        })
      }),
      i
    )
  }
  function bW(t, e, n) {
    var i
    z(n, function (t) {
      e.hasOwnProperty(t) && xW(e[t]) && (i = !0)
    }),
      i &&
        z(n, function (n) {
          e.hasOwnProperty(n) && xW(e[n]) ? (t[n] = T(e[n])) : delete t[n]
        })
  }
  var wW = {
    lineX: SW(0),
    lineY: SW(1),
    rect: {
      point: function (t, e, n) {
        return t && n.boundingRect.contain(t[0], t[1])
      },
      rect: function (t, e, n) {
        return t && n.boundingRect.intersect(t)
      }
    },
    polygon: {
      point: function (t, e, n) {
        return t && n.boundingRect.contain(t[0], t[1]) && aw(n.range, t[0], t[1])
      },
      rect: function (t, e, n) {
        var i = n.range
        if (!t || i.length <= 1) return !1
        var r = t.x,
          o = t.y,
          a = t.width,
          s = t.height,
          l = i[0]
        return (
          !!(
            aw(i, r, o) ||
            aw(i, r + a, o) ||
            aw(i, r, o + s) ||
            aw(i, r + a, o + s) ||
            He.create(t).contain(l[0], l[1]) ||
            kh(r, o, r + a, o, i) ||
            kh(r, o, r, o + s, i) ||
            kh(r + a, o, r + a, o + s, i) ||
            kh(r, o + s, r + a, o + s, i)
          ) || void 0
        )
      }
    }
  }
  function SW(t) {
    var e = ['x', 'y'],
      n = ['width', 'height']
    return {
      point: function (e, n, i) {
        if (e) {
          var r = i.range
          return MW(e[t], r)
        }
      },
      rect: function (i, r, o) {
        if (i) {
          var a = o.range,
            s = [i[e[t]], i[e[t]] + i[n[t]]]
          return s[1] < s[0] && s.reverse(), MW(s[0], a) || MW(s[1], a) || MW(a[0], s) || MW(a[1], s)
        }
      }
    }
  }
  function MW(t, e) {
    return e[0] <= t && t <= e[1]
  }
  var IW = ['inBrush', 'outOfBrush'],
    TW = '__ecBrushSelect',
    CW = '__ecInBrushSelectEvent'
  function DW(t) {
    t.eachComponent({ mainType: 'brush' }, function (e) {
      ;(e.brushTargetManager = new LF(e.option, t)).setInputRanges(e.areas, t)
    })
  }
  function AW(t, e, n) {
    var i,
      r,
      o = []
    t.eachComponent({ mainType: 'brush' }, function (t) {
      n && 'takeGlobalCursor' === n.type && t.setBrushOption('brush' === n.key ? n.brushOption : { brushType: !1 })
    }),
      DW(t),
      t.eachComponent({ mainType: 'brush' }, function (e, n) {
        var a = { brushId: e.id, brushIndex: n, brushName: e.name, areas: T(e.areas), selected: [] }
        o.push(a)
        var s = e.option,
          l = s.brushLink,
          u = [],
          c = [],
          h = [],
          d = !1
        n || ((i = s.throttleType), (r = s.throttleDelay))
        var p = E(e.areas, function (t) {
            var e = PW[t.brushType],
              n = k({ boundingRect: e ? e(t) : void 0 }, t)
            return (
              (n.selectors = (function (t) {
                var e = t.brushType,
                  n = {
                    point: function (i) {
                      return wW[e].point(i, n, t)
                    },
                    rect: function (i) {
                      return wW[e].rect(i, n, t)
                    }
                  }
                return n
              })(n)),
              n
            )
          }),
          f = _W(e.option, IW, function (t) {
            t.mappingMethod = 'fixed'
          })
        function g(t) {
          return 'all' === l || !!u[t]
        }
        function y(t) {
          return !!t.length
        }
        U(l) &&
          z(l, function (t) {
            u[t] = 1
          }),
          t.eachSeries(function (n, i) {
            var r = (h[i] = [])
            'parallel' === n.subType
              ? (function (t, e) {
                  var n = t.coordinateSystem
                  ;(d = d || n.hasAxisBrushed()),
                    g(e) &&
                      n.eachActiveState(t.getData(), function (t, e) {
                        'active' === t && (c[e] = 1)
                      })
                })(n, i)
              : (function (n, i, r) {
                  if (
                    !n.brushSelector ||
                    (function (t, e) {
                      var n = t.option.seriesIndex
                      return null != n && 'all' !== n && (U(n) ? P(n, e) < 0 : e !== n)
                    })(e, i)
                  )
                    return
                  if (
                    (z(p, function (i) {
                      e.brushTargetManager.controlSeries(i, n, t) && r.push(i), (d = d || y(r))
                    }),
                    g(i) && y(r))
                  ) {
                    var o = n.getData()
                    o.each(function (t) {
                      LW(n, r, o, t) && (c[t] = 1)
                    })
                  }
                })(n, i, r)
          }),
          t.eachSeries(function (t, e) {
            var n = { seriesId: t.id, seriesIndex: e, seriesName: t.name, dataIndex: [] }
            a.selected.push(n)
            var i = h[e],
              r = t.getData(),
              o = g(e)
                ? function (t) {
                    return c[t] ? (n.dataIndex.push(r.getRawIndex(t)), 'inBrush') : 'outOfBrush'
                  }
                : function (e) {
                    return LW(t, i, r, e) ? (n.dataIndex.push(r.getRawIndex(e)), 'inBrush') : 'outOfBrush'
                  }
            ;(g(e) ? d : y(i)) &&
              (function (t, e, n, i, r, o) {
                var a,
                  s = {}
                function l(t) {
                  return jv(n, a, t)
                }
                function u(t, e) {
                  Kv(n, a, t, e)
                }
                function c(t, c) {
                  a = null == o ? t : c
                  var h = n.getRawDataItem(a)
                  if (!h || !1 !== h.visualMap)
                    for (var d = i.call(r, t), p = e[d], f = s[d], g = 0, y = f.length; g < y; g++) {
                      var v = f[g]
                      p[v] && p[v].applyVisual(t, l, u)
                    }
                }
                z(t, function (t) {
                  var n = hL.prepareVisualTypes(e[t])
                  s[t] = n
                }),
                  null == o ? n.each(c) : n.each([o], c)
              })(IW, f, r, o)
          })
      }),
      (function (t, e, n, i, r) {
        if (!r) return
        var o = t.getZr()
        if (o[CW]) return
        o[TW] || (o[TW] = kW)
        var a = cv(o, TW, n, e)
        a(t, i)
      })(e, i, r, o, n)
  }
  function kW(t, e) {
    if (!t.isDisposed()) {
      var n = t.getZr()
      ;(n[CW] = !0), t.dispatchAction({ type: 'brushSelect', batch: e }), (n[CW] = !1)
    }
  }
  function LW(t, e, n, i) {
    for (var r = 0, o = e.length; r < o; r++) {
      var a = e[r]
      if (t.brushSelector(i, n, a.selectors, a)) return !0
    }
  }
  var PW = {
    rect: function (t) {
      return OW(t.range)
    },
    polygon: function (t) {
      for (var e, n = t.range, i = 0, r = n.length; i < r; i++) {
        e = e || [
          [1 / 0, -1 / 0],
          [1 / 0, -1 / 0]
        ]
        var o = n[i]
        o[0] < e[0][0] && (e[0][0] = o[0]), o[0] > e[0][1] && (e[0][1] = o[0]), o[1] < e[1][0] && (e[1][0] = o[1]), o[1] > e[1][1] && (e[1][1] = o[1])
      }
      return e && OW(e)
    }
  }
  function OW(t) {
    return new He(t[0][0], t[1][0], t[0][1] - t[0][0], t[1][1] - t[1][0])
  }
  var RW = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e) {
          ;(this.ecModel = t), (this.api = e), this.model, (this._brushController = new JO(e.getZr())).on('brush', W(this._onBrush, this)).mount()
        }),
        (e.prototype.render = function (t, e, n, i) {
          ;(this.model = t), this._updateController(t, e, n, i)
        }),
        (e.prototype.updateTransform = function (t, e, n, i) {
          DW(e), this._updateController(t, e, n, i)
        }),
        (e.prototype.updateVisual = function (t, e, n, i) {
          this.updateTransform(t, e, n, i)
        }),
        (e.prototype.updateView = function (t, e, n, i) {
          this._updateController(t, e, n, i)
        }),
        (e.prototype._updateController = function (t, e, n, i) {
          ;(!i || i.$from !== t.id) && this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())
        }),
        (e.prototype.dispose = function () {
          this._brushController.dispose()
        }),
        (e.prototype._onBrush = function (t) {
          var e = this.model.id,
            n = this.model.brushTargetManager.setOutputRanges(t.areas, this.ecModel)
          ;(!t.isEnd || t.removeOnClick) && this.api.dispatchAction({ type: 'brush', brushId: e, areas: T(n), $from: e }),
            t.isEnd && this.api.dispatchAction({ type: 'brushEnd', brushId: e, areas: T(n), $from: e })
        }),
        (e.type = 'brush'),
        e
      )
    })(Ky),
    NW = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.areas = []), (n.brushOption = {}), n
      }
      return (
        n(e, t),
        (e.prototype.optionUpdated = function (t, e) {
          var n = this.option
          !e && bW(n, t, ['inBrush', 'outOfBrush'])
          var i = (n.inBrush = n.inBrush || {})
          ;(n.outOfBrush = n.outOfBrush || { color: this.option.defaultOutOfBrushColor }), i.hasOwnProperty('liftZ') || (i.liftZ = 5)
        }),
        (e.prototype.setAreas = function (t) {
          t &&
            (this.areas = E(
              t,
              function (t) {
                return zW(this.option, t)
              },
              this
            ))
        }),
        (e.prototype.setBrushOption = function (t) {
          ;(this.brushOption = zW(this.option, t)), (this.brushType = this.brushOption.brushType)
        }),
        (e.type = 'brush'),
        (e.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series']),
        (e.defaultOption = {
          seriesIndex: 'all',
          brushType: 'rect',
          brushMode: 'single',
          transformable: !0,
          brushStyle: { borderWidth: 1, color: tf.color.backgroundTint, borderColor: tf.color.borderTint },
          throttleType: 'fixRate',
          throttleDelay: 0,
          removeOnClick: !0,
          z: 1e4,
          defaultOutOfBrushColor: tf.color.disabled
        }),
        e
      )
    })(Qp)
  function zW(t, e) {
    return C(
      { brushType: t.brushType, brushMode: t.brushMode, transformable: t.transformable, brushStyle: new wd(t.brushStyle).getItemStyle(), removeOnClick: t.removeOnClick, z: t.z },
      e,
      !0
    )
  }
  var EW = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'],
    BW = (function (t) {
      function e() {
        return (null !== t && t.apply(this, arguments)) || this
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          var i, r, o
          e.eachComponent({ mainType: 'brush' }, function (t) {
            ;(i = t.brushType), (r = t.brushOption.brushMode || 'single'), (o = o || !!t.areas.length)
          }),
            (this._brushType = i),
            (this._brushMode = r),
            z(t.get('type', !0), function (e) {
              t.setIconStatus(e, ('keep' === e ? 'multiple' === r : 'clear' === e ? o : e === i) ? 'emphasis' : 'normal')
            })
        }),
        (e.prototype.updateView = function (t, e, n) {
          this.render(t, e, n)
        }),
        (e.prototype.getIcons = function () {
          var t = this.model,
            e = t.get('icon', !0),
            n = {}
          return (
            z(t.get('type', !0), function (t) {
              e[t] && (n[t] = e[t])
            }),
            n
          )
        }),
        (e.prototype.onclick = function (t, e, n) {
          var i = this._brushType,
            r = this._brushMode
          'clear' === n
            ? (e.dispatchAction({ type: 'axisAreaSelect', intervals: [] }), e.dispatchAction({ type: 'brush', command: 'clear', areas: [] }))
            : e.dispatchAction({
                type: 'takeGlobalCursor',
                key: 'brush',
                brushOption: { brushType: 'keep' === n ? i : i !== n && n, brushMode: 'keep' === n ? ('multiple' === r ? 'single' : 'multiple') : r }
              })
        }),
        (e.getDefaultOption = function (t) {
          return {
            show: !0,
            type: EW.slice(),
            icon: {
              rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',
              polygon:
                'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',
              lineX:
                'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',
              lineY:
                'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',
              keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',
              clear:
                'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2'
            },
            title: t.getLocaleModel().get(['toolbox', 'brush', 'title'])
          }
        }),
        e
      )
    })(sF)
  var VW = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.layoutMode = { type: 'box', ignoreSize: !0 }), n
      }
      return (
        n(e, t),
        (e.type = 'title'),
        (e.defaultOption = {
          z: 6,
          show: !0,
          text: '',
          target: 'blank',
          subtext: '',
          subtarget: 'blank',
          left: 'center',
          top: tf.size.m,
          backgroundColor: tf.color.transparent,
          borderColor: tf.color.primary,
          borderWidth: 0,
          padding: 5,
          itemGap: 10,
          textStyle: { fontSize: 18, fontWeight: 'bold', color: tf.color.primary },
          subtextStyle: { fontSize: 12, color: tf.color.quaternary }
        }),
        e
      )
    })(Qp),
    GW = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          if ((this.group.removeAll(), t.get('show'))) {
            var i = this.group,
              r = t.getModel('textStyle'),
              o = t.getModel('subtextStyle'),
              a = t.get('textAlign'),
              s = rt(t.get('textBaseline'), t.get('textVerticalAlign')),
              l = new Sl({ style: Qh(r, { text: t.get('text'), fill: r.getTextColor() }, { disableBox: !0 }), z2: 10 }),
              u = l.getBoundingRect(),
              c = t.get('subtext'),
              h = new Sl({ style: Qh(o, { text: c, fill: o.getTextColor(), y: u.height + t.get('itemGap'), verticalAlign: 'top' }, { disableBox: !0 }), z2: 10 }),
              d = t.get('link'),
              p = t.get('sublink'),
              f = t.get('triggerEvent', !0)
            ;(l.silent = !d && !f),
              (h.silent = !p && !f),
              d &&
                l.on('click', function () {
                  Sp(d, '_' + t.get('target'))
                }),
              p &&
                h.on('click', function () {
                  Sp(p, '_' + t.get('subtarget'))
                }),
              (zl(l).eventData = zl(h).eventData = f ? { componentType: 'title', componentIndex: t.componentIndex } : null),
              i.add(l),
              c && i.add(h)
            var g = i.getBoundingRect(),
              y = t.getBoxLayoutParams()
            ;(y.width = g.width), (y.height = g.height)
            var v = Hp(y, Xp(t, n).refContainer, t.get('padding'))
            a || ('middle' === (a = t.get('left') || t.get('right')) && (a = 'center'), 'right' === a ? (v.x += v.width) : 'center' === a && (v.x += v.width / 2)),
              s ||
                ('center' === (s = t.get('top') || t.get('bottom')) && (s = 'middle'),
                'bottom' === s ? (v.y += v.height) : 'middle' === s && (v.y += v.height / 2),
                (s = s || 'top')),
              (i.x = v.x),
              (i.y = v.y),
              i.markRedraw()
            var m = { align: a, verticalAlign: s }
            l.setStyle(m), h.setStyle(m), (g = i.getBoundingRect())
            var x = v.margin,
              _ = t.getItemStyle(['color', 'opacity'])
            _.fill = t.get('backgroundColor')
            var b = new xl({
              shape: { x: g.x - x[3], y: g.y - x[0], width: g.width + x[1] + x[3], height: g.height + x[0] + x[2], r: t.get('borderRadius') },
              style: _,
              subPixelOptimize: !0,
              silent: !0
            })
            i.add(b)
          }
        }),
        (e.type = 'title'),
        e
      )
    })(Ky)
  var FW = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.layoutMode = 'box'), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e, n) {
          this.mergeDefaultAndTheme(t, n), this._initData()
        }),
        (e.prototype.mergeOption = function (e) {
          t.prototype.mergeOption.apply(this, arguments), this._initData()
        }),
        (e.prototype.setCurrentIndex = function (t) {
          null == t && (t = this.option.currentIndex)
          var e = this._data.count()
          this.option.loop ? (t = ((t % e) + e) % e) : (t >= e && (t = e - 1), t < 0 && (t = 0)), (this.option.currentIndex = t)
        }),
        (e.prototype.getCurrentIndex = function () {
          return this.option.currentIndex
        }),
        (e.prototype.isIndexMax = function () {
          return this.getCurrentIndex() >= this._data.count() - 1
        }),
        (e.prototype.setPlayState = function (t) {
          this.option.autoPlay = !!t
        }),
        (e.prototype.getPlayState = function () {
          return !!this.option.autoPlay
        }),
        (e.prototype._initData = function () {
          var t,
            e = this.option,
            n = e.data || [],
            i = e.axisType,
            r = (this._names = [])
          'category' === i
            ? ((t = []),
              z(n, function (e, n) {
                var i,
                  o = ia(Jo(e), '')
                q(e) ? ((i = T(e)).value = n) : (i = n), t.push(i), r.push(o)
              }))
            : (t = n)
          var o = { category: 'ordinal', time: 'time', value: 'number' }[i] || 'number'
          ;(this._data = new B_([{ name: 'value', type: o }], this)).initData(t, r)
        }),
        (e.prototype.getData = function () {
          return this._data
        }),
        (e.prototype.getCategories = function () {
          if ('category' === this.get('axisType')) return this._names.slice()
        }),
        (e.type = 'timeline'),
        (e.defaultOption = {
          z: 4,
          show: !0,
          axisType: 'time',
          realtime: !0,
          left: '20%',
          top: null,
          right: '20%',
          bottom: 0,
          width: null,
          height: 40,
          padding: tf.size.m,
          controlPosition: 'left',
          autoPlay: !1,
          rewind: !1,
          loop: !0,
          playInterval: 2e3,
          currentIndex: 0,
          itemStyle: {},
          label: { color: tf.color.secondary },
          data: []
        }),
        e
      )
    })(Qp),
    WW = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.type = 'timeline.slider'),
        (e.defaultOption = Id(FW.defaultOption, {
          backgroundColor: 'rgba(0,0,0,0)',
          borderColor: tf.color.border,
          borderWidth: 0,
          orient: 'horizontal',
          inverse: !1,
          tooltip: { trigger: 'item' },
          symbol: 'circle',
          symbolSize: 12,
          lineStyle: { show: !0, width: 2, color: tf.color.accent10 },
          label: { position: 'auto', show: !0, interval: 'auto', rotate: 0, color: tf.color.tertiary },
          itemStyle: { color: tf.color.accent20, borderWidth: 0 },
          checkpointStyle: {
            symbol: 'circle',
            symbolSize: 15,
            color: tf.color.accent50,
            borderColor: tf.color.accent50,
            borderWidth: 0,
            shadowBlur: 0,
            shadowOffsetX: 0,
            shadowOffsetY: 0,
            shadowColor: 'rgba(0, 0, 0, 0)',
            animation: !0,
            animationDuration: 300,
            animationEasing: 'quinticInOut'
          },
          controlStyle: {
            show: !0,
            showPlayBtn: !0,
            showPrevBtn: !0,
            showNextBtn: !0,
            itemSize: 24,
            itemGap: 12,
            position: 'left',
            playIcon:
              'path://M15 0C23.2843 0 30 6.71573 30 15C30 23.2843 23.2843 30 15 30C6.71573 30 0 23.2843 0 15C0 6.71573 6.71573 0 15 0ZM15 3C8.37258 3 3 8.37258 3 15C3 21.6274 8.37258 27 15 27C21.6274 27 27 21.6274 27 15C27 8.37258 21.6274 3 15 3ZM11.5 10.6699C11.5 9.90014 12.3333 9.41887 13 9.80371L20.5 14.1338C21.1667 14.5187 21.1667 15.4813 20.5 15.8662L13 20.1963C12.3333 20.5811 11.5 20.0999 11.5 19.3301V10.6699Z',
            stopIcon:
              'path://M15 0C23.2843 0 30 6.71573 30 15C30 23.2843 23.2843 30 15 30C6.71573 30 0 23.2843 0 15C0 6.71573 6.71573 0 15 0ZM15 3C8.37258 3 3 8.37258 3 15C3 21.6274 8.37258 27 15 27C21.6274 27 27 21.6274 27 15C27 8.37258 21.6274 3 15 3ZM11.5 10C12.3284 10 13 10.6716 13 11.5V18.5C13 19.3284 12.3284 20 11.5 20C10.6716 20 10 19.3284 10 18.5V11.5C10 10.6716 10.6716 10 11.5 10ZM18.5 10C19.3284 10 20 10.6716 20 11.5V18.5C20 19.3284 19.3284 20 18.5 20C17.6716 20 17 19.3284 17 18.5V11.5C17 10.6716 17.6716 10 18.5 10Z',
            nextIcon:
              'path://M0.838834 18.7383C0.253048 18.1525 0.253048 17.2028 0.838834 16.617L7.55635 9.89949L0.838834 3.18198C0.253048 2.59619 0.253048 1.64645 0.838834 1.06066C1.42462 0.474874 2.37437 0.474874 2.96015 1.06066L10.7383 8.83883L10.8412 8.95277C11.2897 9.50267 11.2897 10.2963 10.8412 10.8462L10.7383 10.9602L2.96015 18.7383C2.37437 19.3241 1.42462 19.3241 0.838834 18.7383Z',
            prevIcon:
              'path://M10.9602 1.06066C11.5459 1.64645 11.5459 2.59619 10.9602 3.18198L4.24264 9.89949L10.9602 16.617C11.5459 17.2028 11.5459 18.1525 10.9602 18.7383C10.3744 19.3241 9.42462 19.3241 8.83883 18.7383L1.06066 10.9602L0.957771 10.8462C0.509245 10.2963 0.509245 9.50267 0.957771 8.95277L1.06066 8.83883L8.83883 1.06066C9.42462 0.474874 10.3744 0.474874 10.9602 1.06066Z',
            prevBtnSize: 18,
            nextBtnSize: 18,
            color: tf.color.accent50,
            borderColor: tf.color.accent50,
            borderWidth: 0
          },
          emphasis: {
            label: { show: !0, color: tf.color.accent60 },
            itemStyle: { color: tf.color.accent60, borderColor: tf.color.accent60 },
            controlStyle: { color: tf.color.accent70, borderColor: tf.color.accent70 }
          },
          progress: { lineStyle: { color: tf.color.accent30 }, itemStyle: { color: tf.color.accent40 } },
          data: []
        })),
        e
      )
    })(FW)
  R(WW, Fg.prototype)
  var HW = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return n(e, t), (e.type = 'timeline'), e
    })(Ky),
    UW = (function (t) {
      function e(e, n, i, r) {
        var o = t.call(this, e, n, i) || this
        return (o.type = r || 'value'), o
      }
      return (
        n(e, t),
        (e.prototype.getLabelModel = function () {
          return this.model.getModel('label')
        }),
        (e.prototype.isHorizontal = function () {
          return 'horizontal' === this.model.get('orient')
        }),
        e
      )
    })(Ww),
    YW = Math.PI,
    XW = sa(),
    ZW = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e) {
          this.api = e
        }),
        (e.prototype.render = function (t, e, n) {
          if (((this.model = t), (this.api = n), (this.ecModel = e), this.group.removeAll(), t.get('show', !0))) {
            var i = this._layout(t, n),
              r = this._createGroup('_mainGroup'),
              o = this._createGroup('_labelGroup'),
              a = (this._axis = this._createAxis(i, t))
            ;(t.formatTooltip = function (t) {
              return Ty('nameValue', { noName: !0, value: a.scale.getLabel({ value: t }) })
            }),
              z(
                ['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'],
                function (e) {
                  this['_render' + e](i, r, a, t)
                },
                this
              ),
              this._renderAxisLabel(i, o, a, t),
              this._position(i, t)
          }
          this._doPlayStop(), this._updateTicksStatus()
        }),
        (e.prototype.remove = function () {
          this._clearTimer(), this.group.removeAll()
        }),
        (e.prototype.dispose = function () {
          this._clearTimer()
        }),
        (e.prototype._layout = function (t, e) {
          var n,
            i,
            r,
            o,
            a = t.get(['label', 'position']),
            s = t.get('orient'),
            l = (function (t, e) {
              return Hp(t.getBoxLayoutParams(), Xp(t, e).refContainer, t.get('padding'))
            })(t, e),
            u = {
              horizontal: 'center',
              vertical:
                (n =
                  null == a || 'auto' === a
                    ? 'horizontal' === s
                      ? l.y + l.height / 2 < e.getHeight() / 2
                        ? '-'
                        : '+'
                      : l.x + l.width / 2 < e.getWidth() / 2
                        ? '+'
                        : '-'
                    : X(a)
                      ? { horizontal: { top: '-', bottom: '+' }, vertical: { left: '-', right: '+' } }[s][a]
                      : a) >= 0 || '+' === n
                  ? 'left'
                  : 'right'
            },
            c = { horizontal: n >= 0 || '+' === n ? 'top' : 'bottom', vertical: 'middle' },
            h = { horizontal: 0, vertical: YW / 2 },
            d = 'vertical' === s ? l.height : l.width,
            p = t.getModel('controlStyle'),
            f = p.get('show', !0),
            g = f ? p.get('itemSize') : 0,
            y = f ? p.get('itemGap') : 0,
            v = g + y,
            m = t.get(['label', 'rotate']) || 0
          m = (m * YW) / 180
          var x = p.get('position', !0),
            _ = f && p.get('showPlayBtn', !0),
            b = f && p.get('showPrevBtn', !0),
            w = f && p.get('showNextBtn', !0),
            S = 0,
            M = d
          'left' === x || 'bottom' === x
            ? (_ && ((i = [0, 0]), (S += v)), b && ((r = [S, 0]), (S += v)), w && ((o = [M - g, 0]), (M -= v)))
            : (_ && ((i = [M - g, 0]), (M -= v)), b && ((r = [0, 0]), (S += v)), w && ((o = [M - g, 0]), (M -= v)))
          var I = [S, M]
          return (
            t.get('inverse') && I.reverse(),
            {
              viewRect: l,
              mainLength: d,
              orient: s,
              rotation: h[s],
              labelRotation: m,
              labelPosOpt: n,
              labelAlign: t.get(['label', 'align']) || u[s],
              labelBaseline: t.get(['label', 'verticalAlign']) || t.get(['label', 'baseline']) || c[s],
              playPosition: i,
              prevBtnPosition: r,
              nextBtnPosition: o,
              axisExtent: I,
              controlSize: g,
              controlGap: y
            }
          )
        }),
        (e.prototype._position = function (t, e) {
          var n = this._mainGroup,
            i = this._labelGroup,
            r = t.viewRect
          if ('vertical' === t.orient) {
            var o = [1, 0, 0, 1, 0, 0],
              a = r.x,
              s = r.y + r.height
            Se(o, o, [-a, -s]), Me(o, o, -YW / 2), Se(o, o, [a, s]), (r = r.clone()).applyTransform(o)
          }
          var l = y(r),
            u = y(n.getBoundingRect()),
            c = y(i.getBoundingRect()),
            h = [n.x, n.y],
            d = [i.x, i.y]
          d[0] = h[0] = l[0][0]
          var p,
            f = t.labelPosOpt
          null == f || X(f) ? (v(h, u, l, 1, (p = '+' === f ? 0 : 1)), v(d, c, l, 1, 1 - p)) : (v(h, u, l, 1, (p = f >= 0 ? 0 : 1)), (d[1] = h[1] + f))
          function g(t) {
            ;(t.originX = l[0][0] - t.x), (t.originY = l[1][0] - t.y)
          }
          function y(t) {
            return [
              [t.x, t.x + t.width],
              [t.y, t.y + t.height]
            ]
          }
          function v(t, e, n, i, r) {
            t[i] += n[i][r] - e[i][r]
          }
          n.setPosition(h), i.setPosition(d), (n.rotation = i.rotation = t.rotation), g(n), g(i)
        }),
        (e.prototype._createAxis = function (t, e) {
          var n = e.getData(),
            i = e.get('axisType'),
            r = (function (t, e) {
              if (((e = e || t.get('type')), e))
                switch (e) {
                  case 'category':
                    return new lb({ ordinalMeta: t.getCategories(), extent: [1 / 0, -1 / 0] })
                  case 'time':
                    return new Mb({ locale: t.ecModel.getLocaleModel(), useUTC: t.ecModel.get('useUTC') })
                  default:
                    return new cb()
                }
            })(e, i)
          r.getTicks = function () {
            return n.mapArray(['value'], function (t) {
              return { value: t }
            })
          }
          var o = n.getDataExtent('value')
          r.setExtent(o[0], o[1]), r.calcNiceTicks()
          var a = new UW('value', r, t.axisExtent, i)
          return (a.model = e), a
        }),
        (e.prototype._createGroup = function (t) {
          var e = (this[t] = new to())
          return this.group.add(e), e
        }),
        (e.prototype._renderAxisLine = function (t, e, n, i) {
          var r = n.getExtent()
          if (i.get(['lineStyle', 'show'])) {
            var o = new Ac({ shape: { x1: r[0], y1: 0, x2: r[1], y2: 0 }, style: A({ lineCap: 'round' }, i.getModel('lineStyle').getLineStyle()), silent: !0, z2: 1 })
            e.add(o)
            var a = (this._progressLine = new Ac({
              shape: { x1: r[0], x2: this._currentPointer ? this._currentPointer.x : r[0], y1: 0, y2: 0 },
              style: k({ lineCap: 'round', lineWidth: o.style.lineWidth }, i.getModel(['progress', 'lineStyle']).getLineStyle()),
              silent: !0,
              z2: 1
            }))
            e.add(a)
          }
        }),
        (e.prototype._renderAxisTick = function (t, e, n, i) {
          var r = this,
            o = i.getData(),
            a = n.scale.getTicks()
          ;(this._tickSymbols = []),
            z(a, function (t) {
              var a = n.dataToCoord(t.value),
                s = o.getItemModel(t.value),
                l = s.getModel('itemStyle'),
                u = s.getModel(['emphasis', 'itemStyle']),
                c = s.getModel(['progress', 'itemStyle']),
                h = { x: a, y: 0, onclick: W(r._changeTimeline, r, t.value) },
                d = jW(s, l, e, h)
              ;(d.ensureState('emphasis').style = u.getItemStyle()), (d.ensureState('progress').style = c.getItemStyle()), Iu(d)
              var p = zl(d)
              s.get('tooltip') ? ((p.dataIndex = t.value), (p.dataModel = i)) : (p.dataIndex = p.dataModel = null), r._tickSymbols.push(d)
            })
        }),
        (e.prototype._renderAxisLabel = function (t, e, n, i) {
          var r = this
          if (n.getLabelModel().get('show')) {
            var o = i.getData(),
              a = n.getViewLabels()
            ;(this._tickLabels = []),
              z(a, function (i) {
                var a = i.tickValue,
                  s = o.getItemModel(a),
                  l = s.getModel('label'),
                  u = s.getModel(['emphasis', 'label']),
                  c = s.getModel(['progress', 'label']),
                  h = n.dataToCoord(i.tickValue),
                  d = new Sl({
                    x: h,
                    y: 0,
                    rotation: t.labelRotation - t.rotation,
                    onclick: W(r._changeTimeline, r, a),
                    silent: !1,
                    style: Qh(l, { text: i.formattedLabel, align: t.labelAlign, verticalAlign: t.labelBaseline })
                  })
                ;(d.ensureState('emphasis').style = Qh(u)), (d.ensureState('progress').style = Qh(c)), e.add(d), Iu(d), (XW(d).dataIndex = a), r._tickLabels.push(d)
              })
          }
        }),
        (e.prototype._renderControl = function (t, e, n, i) {
          var r = t.controlSize,
            o = t.rotation,
            a = i.getModel('controlStyle').getItemStyle(),
            s = i.getModel(['emphasis', 'controlStyle']).getItemStyle(),
            l = i.getPlayState(),
            u = i.get('inverse', !0)
          function c(t, n, l, u) {
            if (t) {
              var c = Fr(rt(i.get(['controlStyle', n + 'BtnSize']), r), r),
                h = (function (t, e, n, i) {
                  var r = i.style,
                    o = Ah(t.get(['controlStyle', e]), i || {}, new He(n[0], n[1], n[2], n[3]))
                  r && o.setStyle(r)
                  return o
                })(i, n + 'Icon', [0, -c / 2, c, c], { x: t[0], y: t[1], originX: r / 2, originY: 0, rotation: u ? -o : 0, rectHover: !0, style: a, onclick: l })
              ;(h.ensureState('emphasis').style = s), e.add(h), Iu(h)
            }
          }
          c(t.nextBtnPosition, 'next', W(this._changeTimeline, this, u ? '-' : '+')),
            c(t.prevBtnPosition, 'prev', W(this._changeTimeline, this, u ? '+' : '-')),
            c(t.playPosition, l ? 'stop' : 'play', W(this._handlePlayClick, this, !l), !0)
        }),
        (e.prototype._renderCurrentPointer = function (t, e, n, i) {
          var r = i.getData(),
            o = i.getCurrentIndex(),
            a = r.getItemModel(o).getModel('checkpointStyle'),
            s = this,
            l = {
              onCreate: function (t) {
                ;(t.draggable = !0), (t.drift = W(s._handlePointerDrag, s)), (t.ondragend = W(s._handlePointerDragend, s)), qW(t, s._progressLine, o, n, i, !0)
              },
              onUpdate: function (t) {
                qW(t, s._progressLine, o, n, i)
              }
            }
          this._currentPointer = jW(a, a, this._mainGroup, {}, this._currentPointer, l)
        }),
        (e.prototype._handlePlayClick = function (t) {
          this._clearTimer(), this.api.dispatchAction({ type: 'timelinePlayChange', playState: t, from: this.uid })
        }),
        (e.prototype._handlePointerDrag = function (t, e, n) {
          this._clearTimer(), this._pointerChangeTimeline([n.offsetX, n.offsetY])
        }),
        (e.prototype._handlePointerDragend = function (t) {
          this._pointerChangeTimeline([t.offsetX, t.offsetY], !0)
        }),
        (e.prototype._pointerChangeTimeline = function (t, e) {
          var n = this._toAxisCoord(t)[0],
            i = xo(this._axis.getExtent().slice())
          n > i[1] && (n = i[1]), n < i[0] && (n = i[0]), (this._currentPointer.x = n), this._currentPointer.markRedraw()
          var r = this._progressLine
          r && ((r.shape.x2 = n), r.dirty())
          var o = this._findNearestTick(n),
            a = this.model
          ;(e || (o !== a.getCurrentIndex() && a.get('realtime'))) && this._changeTimeline(o)
        }),
        (e.prototype._doPlayStop = function () {
          var t = this
          this._clearTimer(),
            this.model.getPlayState() &&
              (this._timer = setTimeout(function () {
                var e = t.model
                t._changeTimeline(e.getCurrentIndex() + (e.get('rewind', !0) ? -1 : 1))
              }, this.model.get('playInterval')))
        }),
        (e.prototype._toAxisCoord = function (t) {
          return Sh(t, this._mainGroup.getLocalTransform(), !0)
        }),
        (e.prototype._findNearestTick = function (t) {
          var e,
            n = this.model.getData(),
            i = 1 / 0,
            r = this._axis
          return (
            n.each(['value'], function (n, o) {
              var a = r.dataToCoord(n),
                s = Math.abs(a - t)
              s < i && ((i = s), (e = o))
            }),
            e
          )
        }),
        (e.prototype._clearTimer = function () {
          this._timer && (clearTimeout(this._timer), (this._timer = null))
        }),
        (e.prototype._changeTimeline = function (t) {
          var e = this.model.getCurrentIndex()
          '+' === t ? (t = e + 1) : '-' === t && (t = e - 1), this.api.dispatchAction({ type: 'timelineChange', currentIndex: t, from: this.uid })
        }),
        (e.prototype._updateTicksStatus = function () {
          var t = this.model.getCurrentIndex(),
            e = this._tickSymbols,
            n = this._tickLabels
          if (e) for (var i = 0; i < e.length; i++) e && e[i] && e[i].toggleState('progress', i < t)
          if (n) for (i = 0; i < n.length; i++) n && n[i] && n[i].toggleState('progress', XW(n[i]).dataIndex <= t)
        }),
        (e.type = 'timeline.slider'),
        e
      )
    })(HW)
  function jW(t, e, n, i, r, o) {
    var a = e.get('color')
    r ? (r.setColor(a), n.add(r), o && o.onUpdate(r)) : ((r = hm(t.get('symbol'), -1, -1, 2, 2, a)).setStyle('strokeNoScale', !0), n.add(r), o && o.onCreate(r))
    var s = e.getItemStyle(['color'])
    r.setStyle(s), (i = C({ rectHover: !0, z2: 100 }, i, !0))
    var l = dm(t.get('symbolSize'))
    ;(i.scaleX = l[0] / 2), (i.scaleY = l[1] / 2)
    var u = pm(t.get('symbolOffset'), l)
    u && ((i.x = (i.x || 0) + u[0]), (i.y = (i.y || 0) + u[1]))
    var c = t.get('symbolRotate')
    return (i.rotation = ((c || 0) * Math.PI) / 180 || 0), r.attr(i), r.updateTransform(), r
  }
  function qW(t, e, n, i, r, o) {
    if (!t.dragging) {
      var a = r.getModel('checkpointStyle'),
        s = i.dataToCoord(r.getData().get('value', n))
      if (o || !a.get('animation', !0)) t.attr({ x: s, y: 0 }), e && e.attr({ shape: { x2: s } })
      else {
        var l = { duration: a.get('animationDuration', !0), easing: a.get('animationEasing', !0) }
        t.stopAnimation(null, !0), t.animateTo({ x: s, y: 0 }, l), e && e.animateTo({ shape: { x2: s } }, l)
      }
    }
  }
  function KW(t) {
    var e = t && t.timeline
    U(e) || (e = e ? [e] : []),
      z(e, function (t) {
        t &&
          (function (t) {
            var e = t.type,
              n = { number: 'value', time: 'time' }
            n[e] && ((t.axisType = n[e]), delete t.type)
            if (($W(t), JW(t, 'controlPosition'))) {
              var i = t.controlStyle || (t.controlStyle = {})
              JW(i, 'position') || (i.position = t.controlPosition), 'none' !== i.position || JW(i, 'show') || ((i.show = !1), delete i.position), delete t.controlPosition
            }
            z(t.data || [], function (t) {
              q(t) && !U(t) && (!JW(t, 'value') && JW(t, 'name') && (t.value = t.name), $W(t))
            })
          })(t)
      })
  }
  function $W(t) {
    var e = t.itemStyle || (t.itemStyle = {}),
      n = e.emphasis || (e.emphasis = {}),
      i = t.label || t.label || {},
      r = i.normal || (i.normal = {}),
      o = { normal: 1, emphasis: 1 }
    z(i, function (t, e) {
      o[e] || JW(r, e) || (r[e] = t)
    }),
      n.label && !JW(i, 'emphasis') && ((i.emphasis = n.label), delete n.label)
  }
  function JW(t, e) {
    return t.hasOwnProperty(e)
  }
  function QW(t, e) {
    if (!t) return !1
    for (var n = U(t) ? t : [t], i = 0; i < n.length; i++) if (n[i] && n[i][e]) return !0
    return !1
  }
  function tH(t) {
    Ko(t, 'label', ['show'])
  }
  var eH = sa(),
    nH = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.createdBySelf = !1), (n.preventAutoZ = !0), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e, n) {
          this.mergeDefaultAndTheme(t, n), this._mergeOption(t, n, !1, !0)
        }),
        (e.prototype.isAnimationEnabled = function () {
          if (r.node) return !1
          var t = this.__hostSeries
          return this.getShallow('animation') && t && t.isAnimationEnabled()
        }),
        (e.prototype.mergeOption = function (t, e) {
          this._mergeOption(t, e, !1, !1)
        }),
        (e.prototype._mergeOption = function (t, e, n, i) {
          var r = this.mainType
          n ||
            e.eachSeries(function (t) {
              var n = t.get(this.mainType, !0),
                o = eH(t)[r]
              n && n.data
                ? (o
                    ? o._mergeOption(n, e, !0)
                    : (i && tH(n),
                      z(n.data, function (t) {
                        t instanceof Array ? (tH(t[0]), tH(t[1])) : tH(t)
                      }),
                      A((o = this.createMarkerModelFromSeries(n, this, e)), { mainType: this.mainType, seriesIndex: t.seriesIndex, name: t.name, createdBySelf: !0 }),
                      (o.__hostSeries = t)),
                  (eH(t)[r] = o))
                : (eH(t)[r] = null)
            }, this)
        }),
        (e.prototype.formatTooltip = function (t, e, n) {
          var i = this.getData(),
            r = this.getRawValue(t),
            o = i.getName(t)
          return Ty('section', { header: this.name, blocks: [Ty('nameValue', { name: o, value: r, noName: !o, noValue: null == r })] })
        }),
        (e.prototype.getData = function () {
          return this._data
        }),
        (e.prototype.setData = function (t) {
          this._data = t
        }),
        (e.prototype.getDataParams = function (t, e) {
          var n = Fg.prototype.getDataParams.call(this, t, e),
            i = this.__hostSeries
          return i && ((n.seriesId = i.id), (n.seriesName = i.name), (n.seriesType = i.subType)), n
        }),
        (e.getMarkerModelFromSeries = function (t, e) {
          return eH(t)[e]
        }),
        (e.type = 'marker'),
        (e.dependencies = ['series', 'grid', 'polar', 'geo']),
        e
      )
    })(Qp)
  R(nH, Fg.prototype)
  var iH = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.createMarkerModelFromSeries = function (t, n, i) {
        return new e(t, n, i)
      }),
      (e.type = 'markPoint'),
      (e.defaultOption = {
        z: 5,
        symbol: 'pin',
        symbolSize: 50,
        tooltip: { trigger: 'item' },
        label: { show: !0, position: 'inside' },
        itemStyle: { borderWidth: 2 },
        emphasis: { label: { show: !0 } }
      }),
      e
    )
  })(nH)
  function rH(t) {
    return !(isNaN(parseFloat(t.x)) && isNaN(parseFloat(t.y)))
  }
  function oH(t, e, n, i, r, o, a) {
    var s = [],
      l = Y_(e, r) ? e.getCalculationInfo('stackResultDimension') : r,
      u = hH(e, l, t),
      c = e.hostModel.indicesOfNearest(n, l, u)[0]
    ;(s[o] = e.get(i, c)), (s[a] = e.get(l, c))
    var h = e.get(r, c),
      d = _o(e.get(r, c))
    return (d = Math.min(d, 20)) >= 0 && (s[a] = +s[a].toFixed(d)), [s, h]
  }
  var aH = { min: H(oH, 'min'), max: H(oH, 'max'), average: H(oH, 'average'), median: H(oH, 'median') }
  function sH(t, e) {
    if (e) {
      var n = t.getData(),
        i = t.coordinateSystem,
        r = i && i.dimensions
      if (
        !(function (t) {
          return !isNaN(parseFloat(t.x)) && !isNaN(parseFloat(t.y))
        })(e) &&
        !U(e.coord) &&
        U(r)
      ) {
        var o = lH(e, n, i, t)
        if ((e = T(e)).type && aH[e.type] && o.baseAxis && o.valueAxis) {
          var a = P(r, o.baseAxis.dim),
            s = P(r, o.valueAxis.dim),
            l = aH[e.type](n, o.valueAxis.dim, o.baseDataDim, o.valueDataDim, a, s)
          ;(e.coord = l[0]), (e.value = l[1])
        } else e.coord = [null != e.xAxis ? e.xAxis : e.radiusAxis, null != e.yAxis ? e.yAxis : e.angleAxis]
      }
      if (null != e.coord && U(r)) for (var u = e.coord, c = 0; c < 2; c++) aH[u[c]] && (u[c] = hH(n, n.mapDimension(r[c]), u[c]))
      else {
        e.coord = []
        var h = t.getBaseAxis()
        if (h && e.type && aH[e.type]) {
          var d = i.getOtherAxis(h)
          d && (e.value = hH(n, n.mapDimension(d.dim), e.type))
        }
      }
      return e
    }
  }
  function lH(t, e, n, i) {
    var r = {}
    return (
      null != t.valueIndex || null != t.valueDim
        ? ((r.valueDataDim = null != t.valueIndex ? e.getDimension(t.valueIndex) : t.valueDim),
          (r.valueAxis = n.getAxis(
            (function (t, e) {
              var n = t.getData().getDimensionInfo(e)
              return n && n.coordDim
            })(i, r.valueDataDim)
          )),
          (r.baseAxis = n.getOtherAxis(r.valueAxis)),
          (r.baseDataDim = e.mapDimension(r.baseAxis.dim)))
        : ((r.baseAxis = i.getBaseAxis()),
          (r.valueAxis = n.getOtherAxis(r.baseAxis)),
          (r.baseDataDim = e.mapDimension(r.baseAxis.dim)),
          (r.valueDataDim = e.mapDimension(r.valueAxis.dim))),
      r
    )
  }
  function uH(t, e) {
    return !(t && t.containData && e.coord && !rH(e)) || t.containData(e.coord)
  }
  function cH(t, e) {
    return t
      ? function (t, n, i, r) {
          return Xg(r < 2 ? t.coord && t.coord[r] : t.value, e[r])
        }
      : function (t, n, i, r) {
          return Xg(t.value, e[r])
        }
  }
  function hH(t, e, n) {
    if ('average' === n) {
      var i = 0,
        r = 0
      return (
        t.each(e, function (t, e) {
          isNaN(t) || ((i += t), r++)
        }),
        i / r
      )
    }
    return 'median' === n ? t.getMedian(e) : t.getDataExtent(e)['max' === n ? 1 : 0]
  }
  var dH = sa(),
    pH = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.init = function () {
          this.markerGroupMap = yt()
        }),
        (e.prototype.render = function (t, e, n) {
          var i = this,
            r = this.markerGroupMap
          r.each(function (t) {
            dH(t).keep = !1
          }),
            e.eachSeries(function (t) {
              var r = nH.getMarkerModelFromSeries(t, i.type)
              r && i.renderSeries(t, r, e, n)
            }),
            r.each(function (t) {
              !dH(t).keep && i.group.remove(t.group)
            }),
            (function (t, e, n) {
              t.eachSeries(function (t) {
                var i = nH.getMarkerModelFromSeries(t, n),
                  r = e.get(t.id)
                if (i && r && r.group) {
                  var o = Hh(i),
                    a = o.z,
                    s = o.zlevel
                  Yh(r.group, a, s)
                }
              })
            })(e, r, this.type)
        }),
        (e.prototype.markKeep = function (t) {
          dH(t).keep = !0
        }),
        (e.prototype.toggleBlurSeries = function (t, e) {
          var n = this
          z(t, function (t) {
            var i = nH.getMarkerModelFromSeries(t, n.type)
            i &&
              i.getData().eachItemGraphicEl(function (t) {
                t && (e ? fu(t) : gu(t))
              })
          })
        }),
        (e.type = 'marker'),
        e
      )
    })(Ky)
  function fH(t, e, n) {
    var i = e.coordinateSystem,
      r = n.getWidth(),
      o = n.getHeight(),
      a = i && i.getArea && i.getArea()
    t.each(function (n) {
      var s,
        l = t.getItemModel(n),
        u = 'coordinate' === l.get('relativeTo'),
        c = u ? (a ? a.width : 0) : r,
        h = u ? (a ? a.height : 0) : o,
        d = u && a ? a.x : 0,
        p = u && a ? a.y : 0,
        f = yo(l.get('x'), c) + d,
        g = yo(l.get('y'), h) + p
      if (isNaN(f) || isNaN(g)) {
        if (e.getMarkerPosition) s = e.getMarkerPosition(t.getValues(t.dimensions, n))
        else if (i) {
          var y = t.get(i.dimensions[0], n),
            v = t.get(i.dimensions[1], n)
          s = i.dataToPoint([y, v])
        }
      } else s = [f, g]
      isNaN(f) || (s[0] = f), isNaN(g) || (s[1] = g), t.setItemLayout(n, s)
    })
  }
  var gH = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.updateTransform = function (t, e, n) {
        e.eachSeries(function (t) {
          var e = nH.getMarkerModelFromSeries(t, 'markPoint')
          e && (fH(e.getData(), t, n), this.markerGroupMap.get(t.id).updateLayout())
        }, this)
      }),
      (e.prototype.renderSeries = function (t, e, n, i) {
        var r = t.coordinateSystem,
          o = t.id,
          a = t.getData(),
          s = this.markerGroupMap,
          l = s.get(o) || s.set(o, new uI()),
          u = (function (t, e, n) {
            var i
            i = t
              ? E(t && t.dimensions, function (t) {
                  return A(A({}, e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}), { name: t, ordinalMeta: null })
                })
              : [{ name: 'value', type: 'float' }]
            var r = new B_(i, n),
              o = E(n.get('data'), H(sH, e))
            t && (o = V(o, H(uH, t)))
            var a = cH(!!t, i)
            return r.initData(o, null, a), r
          })(r, t, e)
        e.setData(u),
          fH(e.getData(), t, i),
          u.each(function (t) {
            var n = u.getItemModel(t),
              i = n.getShallow('symbol'),
              r = n.getShallow('symbolSize'),
              o = n.getShallow('symbolRotate'),
              s = n.getShallow('symbolOffset'),
              l = n.getShallow('symbolKeepAspect')
            if (Y(i) || Y(r) || Y(o) || Y(s)) {
              var c = e.getRawValue(t),
                h = e.getDataParams(t)
              Y(i) && (i = i(c, h)), Y(r) && (r = r(c, h)), Y(o) && (o = o(c, h)), Y(s) && (s = s(c, h))
            }
            var d = n.getModel('itemStyle').getItemStyle(),
              p = n.get('z2'),
              f = qv(a, 'color')
            d.fill || (d.fill = f), u.setItemVisual(t, { z2: rt(p, 0), symbol: i, symbolSize: r, symbolRotate: o, symbolOffset: s, symbolKeepAspect: l, style: d })
          }),
          l.updateData(u),
          this.group.add(l.group),
          u.eachItemGraphicEl(function (t) {
            t.traverse(function (t) {
              zl(t).dataModel = e
            })
          }),
          this.markKeep(l),
          (l.group.silent = e.get('silent') || t.get('silent'))
      }),
      (e.type = 'markPoint'),
      e
    )
  })(pH)
  var yH = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.createMarkerModelFromSeries = function (t, n, i) {
          return new e(t, n, i)
        }),
        (e.type = 'markLine'),
        (e.defaultOption = {
          z: 5,
          symbol: ['circle', 'arrow'],
          symbolSize: [8, 16],
          symbolOffset: 0,
          precision: 2,
          tooltip: { trigger: 'item' },
          label: { show: !0, position: 'end', distance: 5 },
          lineStyle: { type: 'dashed' },
          emphasis: { label: { show: !0 }, lineStyle: { width: 3 } },
          animationEasing: 'linear'
        }),
        e
      )
    })(nH),
    vH = sa(),
    mH = function (t, e, n, i) {
      var r,
        o = t.getData()
      if (U(i)) r = i
      else {
        var a = i.type
        if ('min' === a || 'max' === a || 'average' === a || 'median' === a || null != i.xAxis || null != i.yAxis) {
          var s = void 0,
            l = void 0
          if (null != i.yAxis || null != i.xAxis) (s = e.getAxis(null != i.yAxis ? 'y' : 'x')), (l = it(i.yAxis, i.xAxis))
          else {
            var u = lH(i, o, e, t)
            ;(s = u.valueAxis), (l = hH(o, X_(o, u.valueDataDim), a))
          }
          var c = 'x' === s.dim ? 0 : 1,
            h = 1 - c,
            d = T(i),
            p = { coord: [] }
          ;(d.type = null), (d.coord = []), (d.coord[h] = -1 / 0), (p.coord[h] = 1 / 0)
          var f = n.get('precision')
          f >= 0 && j(l) && (l = +l.toFixed(Math.min(f, 20))), (d.coord[c] = p.coord[c] = l), (r = [d, p, { type: a, valueIndex: i.valueIndex, value: l }])
        } else r = []
      }
      var g = [sH(t, r[0]), sH(t, r[1]), A({}, r[2])]
      return (g[2].type = g[2].type || null), C(g[2], g[0]), C(g[2], g[1]), g
    }
  function xH(t) {
    return !isNaN(t) && !isFinite(t)
  }
  function _H(t, e, n, i) {
    var r = 1 - t,
      o = i.dimensions[t]
    return xH(e[r]) && xH(n[r]) && e[t] === n[t] && i.getAxis(o).containData(e[t])
  }
  function bH(t, e) {
    if ('cartesian2d' === t.type) {
      var n = e[0].coord,
        i = e[1].coord
      if (n && i && (_H(1, n, i, t) || _H(0, n, i, t))) return !0
    }
    return uH(t, e[0]) && uH(t, e[1])
  }
  function wH(t, e, n, i, r) {
    var o,
      a = i.coordinateSystem,
      s = t.getItemModel(e),
      l = yo(s.get('x'), r.getWidth()),
      u = yo(s.get('y'), r.getHeight())
    if (isNaN(l) || isNaN(u)) {
      if (i.getMarkerPosition) o = i.getMarkerPosition(t.getValues(t.dimensions, e))
      else {
        var c = a.dimensions,
          h = t.get(c[0], e),
          d = t.get(c[1], e)
        o = a.dataToPoint([h, d])
      }
      if (SI(a, 'cartesian2d')) {
        var p = a.getAxis('x'),
          f = a.getAxis('y')
        c = a.dimensions
        xH(t.get(c[0], e)) ? (o[0] = p.toGlobalCoord(p.getExtent()[n ? 0 : 1])) : xH(t.get(c[1], e)) && (o[1] = f.toGlobalCoord(f.getExtent()[n ? 0 : 1]))
      }
      isNaN(l) || (o[0] = l), isNaN(u) || (o[1] = u)
    } else o = [l, u]
    t.setItemLayout(e, o)
  }
  var SH = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.updateTransform = function (t, e, n) {
        e.eachSeries(function (t) {
          var e = nH.getMarkerModelFromSeries(t, 'markLine')
          if (e) {
            var i = e.getData(),
              r = vH(e).from,
              o = vH(e).to
            r.each(function (e) {
              wH(r, e, !0, t, n), wH(o, e, !1, t, n)
            }),
              i.each(function (t) {
                i.setItemLayout(t, [r.getItemLayout(t), o.getItemLayout(t)])
              }),
              this.markerGroupMap.get(t.id).updateLayout()
          }
        }, this)
      }),
      (e.prototype.renderSeries = function (t, e, n, i) {
        var r = t.coordinateSystem,
          o = t.id,
          a = t.getData(),
          s = this.markerGroupMap,
          l = s.get(o) || s.set(o, new IP())
        this.group.add(l.group)
        var u = (function (t, e, n) {
            var i
            i = t
              ? E(t && t.dimensions, function (t) {
                  return A(A({}, e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}), { name: t, ordinalMeta: null })
                })
              : [{ name: 'value', type: 'float' }]
            var r = new B_(i, n),
              o = new B_(i, n),
              a = new B_([], n),
              s = E(n.get('data'), H(mH, e, t, n))
            t && (s = V(s, H(bH, t)))
            var l = cH(!!t, i)
            return (
              r.initData(
                E(s, function (t) {
                  return t[0]
                }),
                null,
                l
              ),
              o.initData(
                E(s, function (t) {
                  return t[1]
                }),
                null,
                l
              ),
              a.initData(
                E(s, function (t) {
                  return t[2]
                })
              ),
              (a.hasItemOption = !0),
              { from: r, to: o, line: a }
            )
          })(r, t, e),
          c = u.from,
          h = u.to,
          d = u.line
        ;(vH(e).from = c), (vH(e).to = h), e.setData(d)
        var p = e.get('symbol'),
          f = e.get('symbolSize'),
          g = e.get('symbolRotate'),
          y = e.get('symbolOffset')
        function v(e, n, r) {
          var o = e.getItemModel(n)
          wH(e, n, r, t, i)
          var s = o.getModel('itemStyle').getItemStyle()
          null == s.fill && (s.fill = qv(a, 'color')),
            e.setItemVisual(n, {
              symbolKeepAspect: o.get('symbolKeepAspect'),
              symbolOffset: rt(o.get('symbolOffset', !0), y[r ? 0 : 1]),
              symbolRotate: rt(o.get('symbolRotate', !0), g[r ? 0 : 1]),
              symbolSize: rt(o.get('symbolSize'), f[r ? 0 : 1]),
              symbol: rt(o.get('symbol', !0), p[r ? 0 : 1]),
              style: s
            })
        }
        U(p) || (p = [p, p]),
          U(f) || (f = [f, f]),
          U(g) || (g = [g, g]),
          U(y) || (y = [y, y]),
          u.from.each(function (t) {
            v(c, t, !0), v(h, t, !1)
          }),
          d.each(function (t) {
            var e = d.getItemModel(t),
              n = e.getModel('lineStyle').getLineStyle()
            d.setItemLayout(t, [c.getItemLayout(t), h.getItemLayout(t)])
            var i = e.get('z2')
            null == n.stroke && (n.stroke = c.getItemVisual(t, 'style').fill),
              d.setItemVisual(t, {
                z2: rt(i, 0),
                fromSymbolKeepAspect: c.getItemVisual(t, 'symbolKeepAspect'),
                fromSymbolOffset: c.getItemVisual(t, 'symbolOffset'),
                fromSymbolRotate: c.getItemVisual(t, 'symbolRotate'),
                fromSymbolSize: c.getItemVisual(t, 'symbolSize'),
                fromSymbol: c.getItemVisual(t, 'symbol'),
                toSymbolKeepAspect: h.getItemVisual(t, 'symbolKeepAspect'),
                toSymbolOffset: h.getItemVisual(t, 'symbolOffset'),
                toSymbolRotate: h.getItemVisual(t, 'symbolRotate'),
                toSymbolSize: h.getItemVisual(t, 'symbolSize'),
                toSymbol: h.getItemVisual(t, 'symbol'),
                style: n
              })
          }),
          l.updateData(d),
          u.line.eachItemGraphicEl(function (t) {
            ;(zl(t).dataModel = e),
              t.traverse(function (t) {
                zl(t).dataModel = e
              })
          }),
          this.markKeep(l),
          (l.group.silent = e.get('silent') || t.get('silent'))
      }),
      (e.type = 'markLine'),
      e
    )
  })(pH)
  var MH = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.createMarkerModelFromSeries = function (t, n, i) {
          return new e(t, n, i)
        }),
        (e.type = 'markArea'),
        (e.defaultOption = {
          z: 1,
          tooltip: { trigger: 'item' },
          animation: !1,
          label: { show: !0, position: 'top' },
          itemStyle: { borderWidth: 0 },
          emphasis: { label: { show: !0, position: 'top' } }
        }),
        e
      )
    })(nH),
    IH = sa(),
    TH = function (t, e, n, i) {
      var r = i[0],
        o = i[1]
      if (r && o) {
        var a = sH(t, r),
          s = sH(t, o),
          l = a.coord,
          u = s.coord
        ;(l[0] = it(l[0], -1 / 0)), (l[1] = it(l[1], -1 / 0)), (u[0] = it(u[0], 1 / 0)), (u[1] = it(u[1], 1 / 0))
        var c = D([{}, a, s])
        return (c.coord = [a.coord, s.coord]), (c.x0 = a.x), (c.y0 = a.y), (c.x1 = s.x), (c.y1 = s.y), c
      }
    }
  function CH(t) {
    return !isNaN(t) && !isFinite(t)
  }
  function DH(t, e, n, i) {
    var r = 1 - t
    return CH(e[r]) && CH(n[r])
  }
  function AH(t, e) {
    var n = e.coord[0],
      i = e.coord[1],
      r = { coord: n, x: e.x0, y: e.y0 },
      o = { coord: i, x: e.x1, y: e.y1 }
    return SI(t, 'cartesian2d')
      ? !(!n || !i || (!DH(1, n, i) && !DH(0, n, i))) ||
          (function (t, e, n) {
            return !(t && t.containZone && e.coord && n.coord && !rH(e) && !rH(n)) || t.containZone(e.coord, n.coord)
          })(t, r, o)
      : uH(t, r) || uH(t, o)
  }
  function kH(t, e, n, i, r) {
    var o,
      a = i.coordinateSystem,
      s = t.getItemModel(e),
      l = yo(s.get(n[0]), r.getWidth()),
      u = yo(s.get(n[1]), r.getHeight())
    if (isNaN(l) || isNaN(u)) {
      if (i.getMarkerPosition) {
        var c = t.getValues(['x0', 'y0'], e),
          h = t.getValues(['x1', 'y1'], e),
          d = a.clampData(c),
          p = a.clampData(h),
          f = []
        'x0' === n[0] ? (f[0] = d[0] > p[0] ? h[0] : c[0]) : (f[0] = d[0] > p[0] ? c[0] : h[0]),
          'y0' === n[1] ? (f[1] = d[1] > p[1] ? h[1] : c[1]) : (f[1] = d[1] > p[1] ? c[1] : h[1]),
          (o = i.getMarkerPosition(f, n, !0))
      } else {
        var g = [(m = t.get(n[0], e)), (x = t.get(n[1], e))]
        a.clampData && a.clampData(g, g), (o = a.dataToPoint(g, !0))
      }
      if (SI(a, 'cartesian2d')) {
        var y = a.getAxis('x'),
          v = a.getAxis('y'),
          m = t.get(n[0], e),
          x = t.get(n[1], e)
        CH(m) ? (o[0] = y.toGlobalCoord(y.getExtent()['x0' === n[0] ? 0 : 1])) : CH(x) && (o[1] = v.toGlobalCoord(v.getExtent()['y0' === n[1] ? 0 : 1]))
      }
      isNaN(l) || (o[0] = l), isNaN(u) || (o[1] = u)
    } else o = [l, u]
    return o
  }
  var LH = [
      ['x0', 'y0'],
      ['x1', 'y0'],
      ['x1', 'y1'],
      ['x0', 'y1']
    ],
    PH = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.updateTransform = function (t, e, n) {
          e.eachSeries(function (t) {
            var e = nH.getMarkerModelFromSeries(t, 'markArea')
            if (e) {
              var i = e.getData()
              i.each(function (e) {
                var r = E(LH, function (r) {
                  return kH(i, e, r, t, n)
                })
                i.setItemLayout(e, r), i.getItemGraphicEl(e).setShape('points', r)
              })
            }
          }, this)
        }),
        (e.prototype.renderSeries = function (t, e, n, i) {
          var r = t.coordinateSystem,
            o = t.id,
            a = t.getData(),
            s = this.markerGroupMap,
            l = s.get(o) || s.set(o, { group: new to() })
          this.group.add(l.group), this.markKeep(l)
          var u = (function (t, e, n) {
            var i,
              r,
              o = ['x0', 'y0', 'x1', 'y1']
            if (t) {
              var a = E(t && t.dimensions, function (t) {
                var n = e.getData()
                return A(A({}, n.getDimensionInfo(n.mapDimension(t)) || {}), { name: t, ordinalMeta: null })
              })
              ;(r = E(o, function (t, e) {
                return { name: t, type: a[e % 2].type }
              })),
                (i = new B_(r, n))
            } else i = new B_((r = [{ name: 'value', type: 'float' }]), n)
            var s = E(n.get('data'), H(TH, e, t, n))
            t && (s = V(s, H(AH, t)))
            var l = t
              ? function (t, e, n, i) {
                  return Xg(t.coord[Math.floor(i / 2)][i % 2], r[i])
                }
              : function (t, e, n, i) {
                  return Xg(t.value, r[i])
                }
            return i.initData(s, null, l), (i.hasItemOption = !0), i
          })(r, t, e)
          e.setData(u),
            u.each(function (e) {
              var n = E(LH, function (n) {
                  return kH(u, e, n, t, i)
                }),
                o = r.getAxis('x').scale,
                s = r.getAxis('y').scale,
                l = o.getExtent(),
                c = s.getExtent(),
                h = [o.parse(u.get('x0', e)), o.parse(u.get('x1', e))],
                d = [s.parse(u.get('y0', e)), s.parse(u.get('y1', e))]
              xo(h), xo(d)
              var p = !!(l[0] > h[1] || l[1] < h[0] || c[0] > d[1] || c[1] < d[0])
              u.setItemLayout(e, { points: n, allClipped: p })
              var f = u.getItemModel(e),
                g = f.getModel('itemStyle').getItemStyle(),
                y = f.get('z2'),
                v = qv(a, 'color')
              g.fill || ((g.fill = v), X(g.fill) && (g.fill = pi(g.fill, 0.4))), g.stroke || (g.stroke = v), u.setItemVisual(e, 'style', g), u.setItemVisual(e, 'z2', rt(y, 0))
            }),
            u
              .diff(IH(l).data)
              .add(function (t) {
                var e = u.getItemLayout(t),
                  n = u.getItemVisual(t, 'z2')
                if (!e.allClipped) {
                  var i = new Mc({ z2: rt(n, 0), shape: { points: e.points } })
                  u.setItemGraphicEl(t, i), l.group.add(i)
                }
              })
              .update(function (t, n) {
                var i = IH(l).data.getItemGraphicEl(n),
                  r = u.getItemLayout(t),
                  o = u.getItemVisual(t, 'z2')
                r.allClipped
                  ? i && l.group.remove(i)
                  : (i ? th(i, { z2: rt(o, 0), shape: { points: r.points } }, e, t) : (i = new Mc({ shape: { points: r.points } })), u.setItemGraphicEl(t, i), l.group.add(i))
              })
              .remove(function (t) {
                var e = IH(l).data.getItemGraphicEl(t)
                l.group.remove(e)
              })
              .execute(),
            u.eachItemGraphicEl(function (t, n) {
              var i = u.getItemModel(n),
                r = u.getItemVisual(n, 'style')
              t.useStyle(u.getItemVisual(n, 'style')),
                $h(t, Jh(i), { labelFetcher: e, labelDataIndex: n, defaultText: u.getName(n) || '', inheritColor: X(r.fill) ? pi(r.fill, 1) : tf.color.neutral99 }),
                ku(t, i),
                Tu(t, null, null, i.get(['emphasis', 'disabled'])),
                (zl(t).dataModel = e)
            }),
            (IH(l).data = u),
            (l.group.silent = e.get('silent') || t.get('silent'))
        }),
        (e.type = 'markArea'),
        e
      )
    })(pH)
  var OH = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.layoutMode = { type: 'box', ignoreSize: !0 }), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e, n) {
          this.mergeDefaultAndTheme(t, n), (t.selected = t.selected || {}), this._updateSelector(t)
        }),
        (e.prototype.mergeOption = function (e, n) {
          t.prototype.mergeOption.call(this, e, n), this._updateSelector(e)
        }),
        (e.prototype._updateSelector = function (t) {
          var e = t.selector,
            n = this.ecModel
          !0 === e && (e = t.selector = ['all', 'inverse']),
            U(e) &&
              z(e, function (t, i) {
                X(t) && (t = { type: t }),
                  (e[i] = C(
                    t,
                    (function (t, e) {
                      return 'all' === e
                        ? { type: 'all', title: t.getLocaleModel().get(['legend', 'selector', 'all']) }
                        : 'inverse' === e
                          ? { type: 'inverse', title: t.getLocaleModel().get(['legend', 'selector', 'inverse']) }
                          : void 0
                    })(n, t.type)
                  ))
              })
        }),
        (e.prototype.optionUpdated = function () {
          this._updateData(this.ecModel)
          var t = this._data
          if (t[0] && 'single' === this.get('selectedMode')) {
            for (var e = !1, n = 0; n < t.length; n++) {
              var i = t[n].get('name')
              if (this.isSelected(i)) {
                this.select(i), (e = !0)
                break
              }
            }
            !e && this.select(t[0].get('name'))
          }
        }),
        (e.prototype._updateData = function (t) {
          var e = [],
            n = []
          t.eachRawSeries(function (i) {
            var r,
              o = i.name
            if ((n.push(o), i.legendVisualProvider)) {
              var a = i.legendVisualProvider.getAllNames()
              t.isSeriesFiltered(i) || (n = n.concat(a)), a.length ? (e = e.concat(a)) : (r = !0)
            } else r = !0
            r && ra(i) && e.push(i.name)
          }),
            (this._availableNames = n)
          var i = this.get('data') || e,
            r = yt(),
            o = E(
              i,
              function (t) {
                return (X(t) || j(t)) && (t = { name: t }), r.get(t.name) ? null : (r.set(t.name, !0), new wd(t, this, this.ecModel))
              },
              this
            )
          this._data = V(o, function (t) {
            return !!t
          })
        }),
        (e.prototype.getData = function () {
          return this._data
        }),
        (e.prototype.select = function (t) {
          var e = this.option.selected
          'single' === this.get('selectedMode') &&
            z(this._data, function (t) {
              e[t.get('name')] = !1
            })
          e[t] = !0
        }),
        (e.prototype.unSelect = function (t) {
          'single' !== this.get('selectedMode') && (this.option.selected[t] = !1)
        }),
        (e.prototype.toggleSelected = function (t) {
          var e = this.option.selected
          e.hasOwnProperty(t) || (e[t] = !0), this[e[t] ? 'unSelect' : 'select'](t)
        }),
        (e.prototype.allSelect = function () {
          var t = this._data,
            e = this.option.selected
          z(t, function (t) {
            e[t.get('name', !0)] = !0
          })
        }),
        (e.prototype.inverseSelect = function () {
          var t = this._data,
            e = this.option.selected
          z(t, function (t) {
            var n = t.get('name', !0)
            e.hasOwnProperty(n) || (e[n] = !0), (e[n] = !e[n])
          })
        }),
        (e.prototype.isSelected = function (t) {
          var e = this.option.selected
          return !(e.hasOwnProperty(t) && !e[t]) && P(this._availableNames, t) >= 0
        }),
        (e.prototype.getOrient = function () {
          return 'vertical' === this.get('orient') ? { index: 1, name: 'vertical' } : { index: 0, name: 'horizontal' }
        }),
        (e.type = 'legend.plain'),
        (e.dependencies = ['series']),
        (e.defaultOption = {
          z: 4,
          show: !0,
          orient: 'horizontal',
          left: 'center',
          bottom: tf.size.m,
          align: 'auto',
          backgroundColor: tf.color.transparent,
          borderColor: tf.color.border,
          borderRadius: 0,
          borderWidth: 0,
          padding: 5,
          itemGap: 8,
          itemWidth: 25,
          itemHeight: 14,
          symbolRotate: 'inherit',
          symbolKeepAspect: !0,
          inactiveColor: tf.color.disabled,
          inactiveBorderColor: tf.color.disabled,
          inactiveBorderWidth: 'auto',
          itemStyle: {
            color: 'inherit',
            opacity: 'inherit',
            borderColor: 'inherit',
            borderWidth: 'auto',
            borderCap: 'inherit',
            borderJoin: 'inherit',
            borderDashOffset: 'inherit',
            borderMiterLimit: 'inherit'
          },
          lineStyle: {
            width: 'auto',
            color: 'inherit',
            inactiveColor: tf.color.disabled,
            inactiveWidth: 2,
            opacity: 'inherit',
            type: 'inherit',
            cap: 'inherit',
            join: 'inherit',
            dashOffset: 'inherit',
            miterLimit: 'inherit'
          },
          textStyle: { color: tf.color.secondary },
          selectedMode: !0,
          selector: !1,
          selectorLabel: {
            show: !0,
            borderRadius: 10,
            padding: [3, 5, 3, 5],
            fontSize: 12,
            fontFamily: 'sans-serif',
            color: tf.color.tertiary,
            borderWidth: 1,
            borderColor: tf.color.border
          },
          emphasis: { selectorLabel: { show: !0, color: tf.color.quaternary } },
          selectorPosition: 'auto',
          selectorItemGap: 7,
          selectorButtonGap: 10,
          tooltip: { show: !1 },
          triggerEvent: !1
        }),
        e
      )
    })(Qp),
    RH = H,
    NH = z,
    zH = to,
    EH = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.newlineDisabled = !1), n
      }
      return (
        n(e, t),
        (e.prototype.init = function () {
          this.group.add((this._contentGroup = new zH())), this.group.add((this._selectorGroup = new zH())), (this._isFirstRender = !0)
        }),
        (e.prototype.getContentGroup = function () {
          return this._contentGroup
        }),
        (e.prototype.getSelectorGroup = function () {
          return this._selectorGroup
        }),
        (e.prototype.render = function (t, e, n) {
          var i = this._isFirstRender
          if (((this._isFirstRender = !1), this.resetInner(), t.get('show', !0))) {
            var r = t.get('align'),
              o = t.get('orient')
            ;(r && 'auto' !== r) || (r = 'right' === t.get('left') && 'vertical' === o ? 'right' : 'left')
            var a = t.get('selector', !0),
              s = t.get('selectorPosition', !0)
            !a || (s && 'auto' !== s) || (s = 'horizontal' === o ? 'end' : 'start'), this.renderInner(r, t, e, n, a, o, s)
            var l = Xp(t, n).refContainer,
              u = t.getBoxLayoutParams(),
              c = t.get('padding'),
              h = Hp(u, l, c),
              d = this.layoutInner(t, r, h, i, a, s),
              p = Hp(k({ width: d.width, height: d.height }, u), l, c)
            ;(this.group.x = p.x - d.x), (this.group.y = p.y - d.y), this.group.markRedraw(), this.group.add((this._backgroundEl = dF(d, t)))
          }
        }),
        (e.prototype.resetInner = function () {
          this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this._backgroundEl), this.getSelectorGroup().removeAll()
        }),
        (e.prototype.renderInner = function (t, e, n, i, r, o, a) {
          var s = this.getContentGroup(),
            l = yt(),
            u = e.get('selectedMode'),
            c = e.get('triggerEvent'),
            h = []
          n.eachRawSeries(function (t) {
            !t.get('legendHoverLink') && h.push(t.id)
          }),
            NH(
              e.getData(),
              function (r, o) {
                var a = this,
                  d = r.get('name')
                if (!this.newlineDisabled && ('' === d || '\n' === d)) {
                  var p = new zH()
                  return (p.newline = !0), void s.add(p)
                }
                var f = n.getSeriesByName(d)[0]
                if (!l.get(d)) {
                  if (f) {
                    var g = f.getData(),
                      y = g.getVisual('legendLineStyle') || {},
                      v = g.getVisual('legendIcon'),
                      m = g.getVisual('style'),
                      x = this._createItem(f, d, o, r, e, t, y, m, v, u, i)
                    x
                      .on('click', RH(BH, d, null, i, h))
                      .on('mouseover', RH(GH, f.name, null, i, h))
                      .on('mouseout', RH(FH, f.name, null, i, h)),
                      n.ssr &&
                        x.eachChild(function (t) {
                          var e = zl(t)
                          ;(e.seriesIndex = f.seriesIndex), (e.dataIndex = o), (e.ssrType = 'legend')
                        }),
                      c &&
                        x.eachChild(function (t) {
                          a.packEventData(t, e, f, o, d)
                        }),
                      l.set(d, !0)
                  } else
                    n.eachRawSeries(function (a) {
                      var s = this
                      if (!l.get(d) && a.legendVisualProvider) {
                        var p = a.legendVisualProvider
                        if (!p.containName(d)) return
                        var f = p.indexOfName(d),
                          g = p.getItemVisual(f, 'style'),
                          y = p.getItemVisual(f, 'legendIcon'),
                          v = oi(g.fill)
                        v && 0 === v[3] && ((v[3] = 0.2), (g = A(A({}, g), { fill: fi(v, 'rgba') })))
                        var m = this._createItem(a, d, o, r, e, t, {}, g, y, u, i)
                        m
                          .on('click', RH(BH, null, d, i, h))
                          .on('mouseover', RH(GH, null, d, i, h))
                          .on('mouseout', RH(FH, null, d, i, h)),
                          n.ssr &&
                            m.eachChild(function (t) {
                              var e = zl(t)
                              ;(e.seriesIndex = a.seriesIndex), (e.dataIndex = o), (e.ssrType = 'legend')
                            }),
                          c &&
                            m.eachChild(function (t) {
                              s.packEventData(t, e, a, o, d)
                            }),
                          l.set(d, !0)
                      }
                    }, this)
                  0
                }
              },
              this
            ),
            r && this._createSelector(r, e, i, o, a)
        }),
        (e.prototype.packEventData = function (t, e, n, i, r) {
          var o = { componentType: 'legend', componentIndex: e.componentIndex, dataIndex: i, value: r, seriesIndex: n.seriesIndex }
          zl(t).eventData = o
        }),
        (e.prototype._createSelector = function (t, e, n, i, r) {
          var o = this.getSelectorGroup()
          NH(t, function (t) {
            var i = t.type,
              r = new Sl({
                style: { x: 0, y: 0, align: 'center', verticalAlign: 'middle' },
                onclick: function () {
                  n.dispatchAction({ type: 'all' === i ? 'legendAllSelect' : 'legendInverseSelect', legendId: e.id })
                }
              })
            o.add(r), $h(r, { normal: e.getModel('selectorLabel'), emphasis: e.getModel(['emphasis', 'selectorLabel']) }, { defaultText: t.title }), Iu(r)
          })
        }),
        (e.prototype._createItem = function (t, e, n, i, r, o, a, s, l, u, c) {
          var h = t.visualDrawType,
            d = r.get('itemWidth'),
            p = r.get('itemHeight'),
            f = r.isSelected(e),
            g = i.get('symbolRotate'),
            y = i.get('symbolKeepAspect'),
            v = i.get('icon'),
            m = (function (t, e, n, i, r, o, a) {
              function s(t, e) {
                'auto' === t.lineWidth && (t.lineWidth = e.lineWidth > 0 ? 2 : 0),
                  NH(t, function (n, i) {
                    'inherit' === t[i] && (t[i] = e[i])
                  })
              }
              var l = e.getModel('itemStyle'),
                u = l.getItemStyle(),
                c = 0 === t.lastIndexOf('empty', 0) ? 'fill' : 'stroke',
                h = l.getShallow('decal')
              ;(u.decal = h && 'inherit' !== h ? Bm(h, a) : i.decal), 'inherit' === u.fill && (u.fill = i[r])
              'inherit' === u.stroke && (u.stroke = i[c])
              'inherit' === u.opacity && (u.opacity = ('fill' === r ? i : n).opacity)
              s(u, i)
              var d = e.getModel('lineStyle'),
                p = d.getLineStyle()
              if ((s(p, n), 'auto' === u.fill && (u.fill = i.fill), 'auto' === u.stroke && (u.stroke = i.fill), 'auto' === p.stroke && (p.stroke = i.fill), !o)) {
                var f = e.get('inactiveBorderWidth'),
                  g = u[c]
                ;(u.lineWidth = 'auto' === f ? (i.lineWidth > 0 && g ? 2 : 0) : u.lineWidth),
                  (u.fill = e.get('inactiveColor')),
                  (u.stroke = e.get('inactiveBorderColor')),
                  (p.stroke = d.get('inactiveColor')),
                  (p.lineWidth = d.get('inactiveWidth'))
              }
              return { itemStyle: u, lineStyle: p }
            })((l = v || l || 'roundRect'), i, a, s, h, f, c),
            x = new zH(),
            _ = i.getModel('textStyle')
          if (!Y(t.getLegendIcon) || (v && 'inherit' !== v)) {
            var b = 'inherit' === v && t.getData().getVisual('symbol') ? ('inherit' === g ? t.getData().getVisual('symbolRotate') : g) : 0
            x.add(
              (function (t) {
                var e = t.icon || 'roundRect',
                  n = hm(e, 0, 0, t.itemWidth, t.itemHeight, t.itemStyle.fill, t.symbolKeepAspect)
                n.setStyle(t.itemStyle),
                  (n.rotation = ((t.iconRotate || 0) * Math.PI) / 180),
                  n.setOrigin([t.itemWidth / 2, t.itemHeight / 2]),
                  e.indexOf('empty') > -1 && ((n.style.stroke = n.style.fill), (n.style.fill = tf.color.neutral00), (n.style.lineWidth = 2))
                return n
              })({ itemWidth: d, itemHeight: p, icon: l, iconRotate: b, itemStyle: m.itemStyle, lineStyle: m.lineStyle, symbolKeepAspect: y })
            )
          } else x.add(t.getLegendIcon({ itemWidth: d, itemHeight: p, icon: l, iconRotate: g, itemStyle: m.itemStyle, lineStyle: m.lineStyle, symbolKeepAspect: y }))
          var w = 'left' === o ? d + 5 : -5,
            S = o,
            M = r.get('formatter'),
            I = e
          X(M) && M ? (I = M.replace('{name}', null != e ? e : '')) : Y(M) && (I = M(e))
          var T = f ? _.getTextColor() : i.get('inactiveColor')
          x.add(new Sl({ style: Qh(_, { text: I, x: w, y: p / 2, fill: T, align: S, verticalAlign: 'middle' }, { inheritColor: T }) }))
          var C = new xl({ shape: x.getBoundingRect(), style: { fill: 'transparent' } }),
            D = i.getModel('tooltip')
          return (
            D.get('show') && zh({ el: C, componentModel: r, itemName: e, itemTooltipOption: D.option }),
            x.add(C),
            x.eachChild(function (t) {
              t.silent = !0
            }),
            (C.silent = !u),
            this.getContentGroup().add(x),
            Iu(x),
            (x.__legendDataIndex = n),
            x
          )
        }),
        (e.prototype.layoutInner = function (t, e, n, i, r, o) {
          var a = this.getContentGroup(),
            s = this.getSelectorGroup()
          Gp(t.get('orient'), a, t.get('itemGap'), n.width, n.height)
          var l = a.getBoundingRect(),
            u = [-l.x, -l.y]
          if ((s.markRedraw(), a.markRedraw(), r)) {
            Gp('horizontal', s, t.get('selectorItemGap', !0))
            var c = s.getBoundingRect(),
              h = [-c.x, -c.y],
              d = t.get('selectorButtonGap', !0),
              p = t.getOrient().index,
              f = 0 === p ? 'width' : 'height',
              g = 0 === p ? 'height' : 'width',
              y = 0 === p ? 'y' : 'x'
            'end' === o ? (h[p] += l[f] + d) : (u[p] += c[f] + d), (h[1 - p] += l[g] / 2 - c[g] / 2), (s.x = h[0]), (s.y = h[1]), (a.x = u[0]), (a.y = u[1])
            var v = { x: 0, y: 0 }
            return (v[f] = l[f] + d + c[f]), (v[g] = Math.max(l[g], c[g])), (v[y] = Math.min(0, c[y] + h[1 - p])), v
          }
          return (a.x = u[0]), (a.y = u[1]), this.group.getBoundingRect()
        }),
        (e.prototype.remove = function () {
          this.getContentGroup().removeAll(), (this._isFirstRender = !0)
        }),
        (e.type = 'legend.plain'),
        e
      )
    })(Ky)
  function BH(t, e, n, i) {
    FH(t, e, n, i), n.dispatchAction({ type: 'legendToggleSelect', name: null != t ? t : e }), GH(t, e, n, i)
  }
  function VH(t) {
    for (var e, n = t.getZr().storage.getDisplayList(), i = 0, r = n.length; i < r && !(e = n[i].states.emphasis); ) i++
    return e && e.hoverLayer
  }
  function GH(t, e, n, i) {
    VH(n) || n.dispatchAction({ type: 'highlight', seriesName: t, name: e, excludeSeriesId: i })
  }
  function FH(t, e, n, i) {
    VH(n) || n.dispatchAction({ type: 'downplay', seriesName: t, name: e, excludeSeriesId: i })
  }
  function WH(t) {
    var e = t.findComponents({ mainType: 'legend' })
    e &&
      e.length &&
      t.filterSeries(function (t) {
        for (var n = 0; n < e.length; n++) if (!e[n].isSelected(t.name)) return !1
        return !0
      })
  }
  function HH(t, e, n) {
    var i = 'allSelect' === t || 'inverseSelect' === t,
      r = {},
      o = []
    n.eachComponent({ mainType: 'legend', query: e }, function (n) {
      i ? n[t]() : n[t](e.name), UH(n, r), o.push(n.componentIndex)
    })
    var a = {}
    return (
      n.eachComponent('legend', function (t) {
        z(r, function (e, n) {
          t[e ? 'select' : 'unSelect'](n)
        }),
          UH(t, a)
      }),
      i ? { selected: a, legendIndex: o } : { name: e.name, selected: a }
    )
  }
  function UH(t, e) {
    var n = e || {}
    return (
      z(t.getData(), function (e) {
        var i = e.get('name')
        if ('\n' !== i && '' !== i) {
          var r = t.isSelected(i)
          _t(n, i) ? (n[i] = n[i] && r) : (n[i] = r)
        }
      }),
      n
    )
  }
  function YH(t) {
    t.registerComponentModel(OH),
      t.registerComponentView(EH),
      t.registerProcessor(t.PRIORITY.PROCESSOR.SERIES_FILTER, WH),
      t.registerSubTypeDefaulter('legend', function () {
        return 'plain'
      }),
      (function (t) {
        t.registerAction('legendToggleSelect', 'legendselectchanged', H(HH, 'toggleSelected')),
          t.registerAction('legendAllSelect', 'legendselectall', H(HH, 'allSelect')),
          t.registerAction('legendInverseSelect', 'legendinverseselect', H(HH, 'inverseSelect')),
          t.registerAction('legendSelect', 'legendselected', H(HH, 'select')),
          t.registerAction('legendUnSelect', 'legendunselected', H(HH, 'unSelect'))
      })(t)
  }
  var XH = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.setScrollDataIndex = function (t) {
        this.option.scrollDataIndex = t
      }),
      (e.prototype.init = function (e, n, i) {
        var r = Kp(e)
        t.prototype.init.call(this, e, n, i), ZH(this, e, r)
      }),
      (e.prototype.mergeOption = function (e, n) {
        t.prototype.mergeOption.call(this, e, n), ZH(this, this.option, e)
      }),
      (e.type = 'legend.scroll'),
      (e.defaultOption = Id(OH.defaultOption, {
        scrollDataIndex: 0,
        pageButtonItemGap: 5,
        pageButtonGap: null,
        pageButtonPosition: 'end',
        pageFormatter: '{current}/{total}',
        pageIcons: { horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'], vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z'] },
        pageIconColor: tf.color.accent50,
        pageIconInactiveColor: tf.color.accent10,
        pageIconSize: 15,
        pageTextStyle: { color: tf.color.tertiary },
        animationDurationUpdate: 800
      })),
      e
    )
  })(OH)
  function ZH(t, e, n) {
    var i = [1, 1]
    ;(i[t.getOrient().index] = 0), qp(e, n, { type: 'box', ignoreSize: !!i })
  }
  var jH = to,
    qH = ['width', 'height'],
    KH = ['x', 'y'],
    $H = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.newlineDisabled = !0), (n._currentIndex = 0), n
      }
      return (
        n(e, t),
        (e.prototype.init = function () {
          t.prototype.init.call(this),
            this.group.add((this._containerGroup = new jH())),
            this._containerGroup.add(this.getContentGroup()),
            this.group.add((this._controllerGroup = new jH()))
        }),
        (e.prototype.resetInner = function () {
          t.prototype.resetInner.call(this), this._controllerGroup.removeAll(), this._containerGroup.removeClipPath(), (this._containerGroup.__rectSize = null)
        }),
        (e.prototype.renderInner = function (e, n, i, r, o, a, s) {
          var l = this
          t.prototype.renderInner.call(this, e, n, i, r, o, a, s)
          var u = this._controllerGroup,
            c = n.get('pageIconSize', !0),
            h = U(c) ? c : [c, c]
          p('pagePrev', 0)
          var d = n.getModel('pageTextStyle')
          function p(t, e) {
            var i = t + 'DataIndex',
              o = Ah(n.get('pageIcons', !0)[n.getOrient().name][e], { onclick: W(l._pageGo, l, i, n, r) }, { x: -h[0] / 2, y: -h[1] / 2, width: h[0], height: h[1] })
            ;(o.name = t), u.add(o)
          }
          u.add(new Sl({ name: 'pageText', style: { text: 'xx/xx', fill: d.getTextColor(), font: d.getFont(), verticalAlign: 'middle', align: 'center' }, silent: !0 })),
            p('pageNext', 1)
        }),
        (e.prototype.layoutInner = function (t, e, n, i, r, o) {
          var a = this.getSelectorGroup(),
            s = t.getOrient().index,
            l = qH[s],
            u = KH[s],
            c = qH[1 - s],
            h = KH[1 - s]
          r && Gp('horizontal', a, t.get('selectorItemGap', !0))
          var d = t.get('selectorButtonGap', !0),
            p = a.getBoundingRect(),
            f = [-p.x, -p.y],
            g = T(n)
          r && (g[l] = n[l] - p[l] - d)
          var y = this._layoutContentAndController(t, i, g, s, l, c, h, u)
          if (r) {
            if ('end' === o) f[s] += y[l] + d
            else {
              var v = p[l] + d
              ;(f[s] -= v), (y[u] -= v)
            }
            ;(y[l] += p[l] + d),
              (f[1 - s] += y[h] + y[c] / 2 - p[c] / 2),
              (y[c] = Math.max(y[c], p[c])),
              (y[h] = Math.min(y[h], p[h] + f[1 - s])),
              (a.x = f[0]),
              (a.y = f[1]),
              a.markRedraw()
          }
          return y
        }),
        (e.prototype._layoutContentAndController = function (t, e, n, i, r, o, a, s) {
          var l = this.getContentGroup(),
            u = this._containerGroup,
            c = this._controllerGroup
          Gp(t.get('orient'), l, t.get('itemGap'), i ? n.width : null, i ? null : n.height), Gp('horizontal', c, t.get('pageButtonItemGap', !0))
          var h = l.getBoundingRect(),
            d = c.getBoundingRect(),
            p = (this._showController = h[r] > n[r]),
            f = [-h.x, -h.y]
          e || (f[i] = l[s])
          var g = [0, 0],
            y = [-d.x, -d.y],
            v = rt(t.get('pageButtonGap', !0), t.get('itemGap', !0))
          p && ('end' === t.get('pageButtonPosition', !0) ? (y[i] += n[r] - d[r]) : (g[i] += d[r] + v))
          ;(y[1 - i] += h[o] / 2 - d[o] / 2), l.setPosition(f), u.setPosition(g), c.setPosition(y)
          var m = { x: 0, y: 0 }
          if (((m[r] = p ? n[r] : h[r]), (m[o] = Math.max(h[o], d[o])), (m[a] = Math.min(0, d[a] + y[1 - i])), (u.__rectSize = n[r]), p)) {
            var x = { x: 0, y: 0 }
            ;(x[r] = Math.max(n[r] - d[r] - v, 0)), (x[o] = m[o]), u.setClipPath(new xl({ shape: x })), (u.__rectSize = x[r])
          } else
            c.eachChild(function (t) {
              t.attr({ invisible: !0, silent: !0 })
            })
          var _ = this._getPageInfo(t)
          return null != _.pageIndex && th(l, { x: _.contentPosition[0], y: _.contentPosition[1] }, p ? t : null), this._updatePageInfoView(t, _), m
        }),
        (e.prototype._pageGo = function (t, e, n) {
          var i = this._getPageInfo(e)[t]
          null != i && n.dispatchAction({ type: 'legendScroll', scrollDataIndex: i, legendId: e.id })
        }),
        (e.prototype._updatePageInfoView = function (t, e) {
          var n = this._controllerGroup
          z(['pagePrev', 'pageNext'], function (i) {
            var r = null != e[i + 'DataIndex'],
              o = n.childOfName(i)
            o && (o.setStyle('fill', r ? t.get('pageIconColor', !0) : t.get('pageIconInactiveColor', !0)), (o.cursor = r ? 'pointer' : 'default'))
          })
          var i = n.childOfName('pageText'),
            r = t.get('pageFormatter'),
            o = e.pageIndex,
            a = null != o ? o + 1 : 0,
            s = e.pageCount
          i && r && i.setStyle('text', X(r) ? r.replace('{current}', null == a ? '' : a + '').replace('{total}', null == s ? '' : s + '') : r({ current: a, total: s }))
        }),
        (e.prototype._getPageInfo = function (t) {
          var e = t.get('scrollDataIndex', !0),
            n = this.getContentGroup(),
            i = this._containerGroup.__rectSize,
            r = t.getOrient().index,
            o = qH[r],
            a = KH[r],
            s = this._findTargetItemIndex(e),
            l = n.children(),
            u = l[s],
            c = l.length,
            h = c ? 1 : 0,
            d = { contentPosition: [n.x, n.y], pageCount: h, pageIndex: h - 1, pagePrevDataIndex: null, pageNextDataIndex: null }
          if (!u) return d
          var p = m(u)
          d.contentPosition[r] = -p.s
          for (var f = s + 1, g = p, y = p, v = null; f <= c; ++f)
            ((!(v = m(l[f])) && y.e > g.s + i) || (v && !x(v, g.s))) && (g = y.i > g.i ? y : v) && (null == d.pageNextDataIndex && (d.pageNextDataIndex = g.i), ++d.pageCount),
              (y = v)
          for (f = s - 1, g = p, y = p, v = null; f >= -1; --f)
            ((v = m(l[f])) && x(y, v.s)) || !(g.i < y.i) || ((y = g), null == d.pagePrevDataIndex && (d.pagePrevDataIndex = g.i), ++d.pageCount, ++d.pageIndex), (g = v)
          return d
          function m(t) {
            if (t) {
              var e = t.getBoundingRect(),
                n = e[a] + t[a]
              return { s: n, e: n + e[o], i: t.__legendDataIndex }
            }
          }
          function x(t, e) {
            return t.e >= e && t.s <= e + i
          }
        }),
        (e.prototype._findTargetItemIndex = function (t) {
          return this._showController
            ? (this.getContentGroup().eachChild(function (i, r) {
                var o = i.__legendDataIndex
                null == n && null != o && (n = r), o === t && (e = r)
              }),
              null != e ? e : n)
            : 0
          var e, n
        }),
        (e.type = 'legend.scroll'),
        e
      )
    })(EH)
  function JH(t) {
    h_(YH),
      t.registerComponentModel(XH),
      t.registerComponentView($H),
      (function (t) {
        t.registerAction('legendScroll', 'legendscroll', function (t, e) {
          var n = t.scrollDataIndex
          null != n &&
            e.eachComponent({ mainType: 'legend', subType: 'scroll', query: t }, function (t) {
              t.setScrollDataIndex(n)
            })
        })
      })(t)
  }
  var QH = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.type = 'dataZoom.inside'),
        (e.defaultOption = Id(qG.defaultOption, { disabled: !1, zoomLock: !1, zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !1, preventDefaultMouseMove: !0 })),
        e
      )
    })(qG),
    tU = sa()
  function eU(t, e, n) {
    tU(t).coordSysRecordMap.each(function (t) {
      var i = t.dataZoomInfoMap.get(e.uid)
      i && (i.getRange = n)
    })
  }
  function nU(t, e) {
    if (e) {
      t.removeKey(e.model.uid)
      var n = e.controller
      n && n.dispose()
    }
  }
  function iU(t, e) {
    t.isDisposed() || t.dispatchAction({ type: 'dataZoom', animation: { easing: 'cubicOut', duration: 100 }, batch: e })
  }
  function rU(t, e, n, i) {
    return t.coordinateSystem.containPoint([n, i])
  }
  function oU(t) {
    t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER, function (t, e) {
      var n = tU(e),
        i = n.coordSysRecordMap || (n.coordSysRecordMap = yt())
      i.each(function (t) {
        t.dataZoomInfoMap = null
      }),
        t.eachComponent({ mainType: 'dataZoom', subType: 'inside' }, function (t) {
          z(ZG(t).infoList, function (n) {
            var r = n.model.uid,
              o =
                i.get(r) ||
                i.set(
                  r,
                  (function (t, e) {
                    var n = { model: e, containsPoint: H(rU, e), dispatchAction: H(iU, t), dataZoomInfoMap: null, controller: null },
                      i = (n.controller = new LD(t.getZr()))
                    return (
                      z(['pan', 'zoom', 'scrollMove'], function (t) {
                        i.on(t, function (e) {
                          var i = []
                          n.dataZoomInfoMap.each(function (r) {
                            if (e.isAvailableBehavior(r.model.option)) {
                              var o = (r.getRange || {})[t],
                                a = o && o(r.dzReferCoordSysInfo, n.model.mainType, n.controller, e)
                              !r.model.get('disabled', !0) && a && i.push({ dataZoomId: r.model.id, start: a[0], end: a[1] })
                            }
                          }),
                            i.length && n.dispatchAction(i)
                        })
                      }),
                      n
                    )
                  })(e, n.model)
                )
            ;(o.dataZoomInfoMap || (o.dataZoomInfoMap = yt())).set(t.uid, { dzReferCoordSysInfo: n, model: t, getRange: null })
          })
        }),
        i.each(function (t) {
          var n,
            r = t.controller,
            o = t.dataZoomInfoMap
          if (o) {
            var a = o.keys()[0]
            null != a && (n = o.get(a))
          }
          if (n) {
            var s = (function (t, e, n) {
              var i,
                r = 'type_',
                o = { type_true: 2, type_move: 1, type_false: 0, type_undefined: -1 },
                a = !0
              return (
                t.each(function (t) {
                  var e = t.model,
                    n = !e.get('disabled', !0) && (!e.get('zoomLock', !0) || 'move')
                  o[r + n] > o[r + i] && (i = n), (a = a && e.get('preventDefaultMouseMove', !0))
                }),
                {
                  controlType: i,
                  opt: {
                    zoomOnMouseWheel: !0,
                    moveOnMouseMove: !0,
                    moveOnMouseWheel: !0,
                    preventDefaultMouseMove: !!a,
                    api: n,
                    zInfo: { component: e.model },
                    triggerInfo: { roamTrigger: null, isInSelf: e.containsPoint }
                  }
                }
              )
            })(o, t, e)
            r.enable(s.controlType, s.opt), cv(t, 'dispatchAction', n.model.get('throttle', !0), 'fixRate')
          } else nU(i, t)
        })
    })
  }
  var aU = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.type = 'dataZoom.inside'), e
      }
      return (
        n(e, t),
        (e.prototype.render = function (e, n, i) {
          t.prototype.render.apply(this, arguments),
            e.noTarget() ? this._clear() : ((this.range = e.getPercentRange()), eU(i, e, { pan: W(sU.pan, this), zoom: W(sU.zoom, this), scrollMove: W(sU.scrollMove, this) }))
        }),
        (e.prototype.dispose = function () {
          this._clear(), t.prototype.dispose.apply(this, arguments)
        }),
        (e.prototype._clear = function () {
          !(function (t, e) {
            for (var n = tU(t).coordSysRecordMap, i = n.keys(), r = 0; r < i.length; r++) {
              var o = i[r],
                a = n.get(o),
                s = a.dataZoomInfoMap
              if (s) {
                var l = e.uid
                s.get(l) && (s.removeKey(l), s.keys().length || nU(n, a))
              }
            }
          })(this.api, this.dataZoomModel),
            (this.range = null)
        }),
        (e.type = 'dataZoom.inside'),
        e
      )
    })(JG),
    sU = {
      zoom: function (t, e, n, i) {
        var r = this.range,
          o = r.slice(),
          a = t.axisModels[0]
        if (a) {
          var s = uU[e](null, [i.originX, i.originY], a, n, t),
            l = ((s.signal > 0 ? s.pixelStart + s.pixelLength - s.pixel : s.pixel - s.pixelStart) / s.pixelLength) * (o[1] - o[0]) + o[0],
            u = Math.max(1 / i.scale, 0)
          ;(o[0] = (o[0] - l) * u + l), (o[1] = (o[1] - l) * u + l)
          var c = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan()
          return CO(0, o, [0, 100], 0, c.minSpan, c.maxSpan), (this.range = o), r[0] !== o[0] || r[1] !== o[1] ? o : void 0
        }
      },
      pan: lU(function (t, e, n, i, r, o) {
        var a = uU[i]([o.oldX, o.oldY], [o.newX, o.newY], e, r, n)
        return (a.signal * (t[1] - t[0]) * a.pixel) / a.pixelLength
      }),
      scrollMove: lU(function (t, e, n, i, r, o) {
        return uU[i]([0, 0], [o.scrollDelta, o.scrollDelta], e, r, n).signal * (t[1] - t[0]) * o.scrollDelta
      })
    }
  function lU(t) {
    return function (e, n, i, r) {
      var o = this.range,
        a = o.slice(),
        s = e.axisModels[0]
      if (s) return CO(t(a, s, e, n, i, r), a, [0, 100], 'all'), (this.range = a), o[0] !== a[0] || o[1] !== a[1] ? a : void 0
    }
  }
  var uU = {
    grid: function (t, e, n, i, r) {
      var o = n.axis,
        a = {},
        s = r.model.coordinateSystem.getRect()
      return (
        (t = t || [0, 0]),
        'x' === o.dim
          ? ((a.pixel = e[0] - t[0]), (a.pixelLength = s.width), (a.pixelStart = s.x), (a.signal = o.inverse ? 1 : -1))
          : ((a.pixel = e[1] - t[1]), (a.pixelLength = s.height), (a.pixelStart = s.y), (a.signal = o.inverse ? -1 : 1)),
        a
      )
    },
    polar: function (t, e, n, i, r) {
      var o = n.axis,
        a = {},
        s = r.model.coordinateSystem,
        l = s.getRadiusAxis().getExtent(),
        u = s.getAngleAxis().getExtent()
      return (
        (t = t ? s.pointToCoord(t) : [0, 0]),
        (e = s.pointToCoord(e)),
        'radiusAxis' === n.mainType
          ? ((a.pixel = e[0] - t[0]), (a.pixelLength = l[1] - l[0]), (a.pixelStart = l[0]), (a.signal = o.inverse ? 1 : -1))
          : ((a.pixel = e[1] - t[1]), (a.pixelLength = u[1] - u[0]), (a.pixelStart = u[0]), (a.signal = o.inverse ? -1 : 1)),
        a
      )
    },
    singleAxis: function (t, e, n, i, r) {
      var o = n.axis,
        a = r.model.coordinateSystem.getRect(),
        s = {}
      return (
        (t = t || [0, 0]),
        'horizontal' === o.orient
          ? ((s.pixel = e[0] - t[0]), (s.pixelLength = a.width), (s.pixelStart = a.x), (s.signal = o.inverse ? 1 : -1))
          : ((s.pixel = e[1] - t[1]), (s.pixelLength = a.height), (s.pixelStart = a.y), (s.signal = o.inverse ? -1 : 1)),
        s
      )
    }
  }
  function cU(t) {
    oF(t), t.registerComponentModel(QH), t.registerComponentView(aU), oU(t)
  }
  var hU = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.type = 'dataZoom.slider'),
        (e.layoutMode = 'box'),
        (e.defaultOption = Id(qG.defaultOption, {
          show: !0,
          right: 'ph',
          top: 'ph',
          width: 'ph',
          height: 'ph',
          left: null,
          bottom: null,
          borderColor: tf.color.accent10,
          borderRadius: 0,
          backgroundColor: tf.color.transparent,
          dataBackground: { lineStyle: { color: tf.color.accent30, width: 0.5 }, areaStyle: { color: tf.color.accent20, opacity: 0.2 } },
          selectedDataBackground: { lineStyle: { color: tf.color.accent40, width: 0.5 }, areaStyle: { color: tf.color.accent20, opacity: 0.3 } },
          fillerColor: 'rgba(135,175,274,0.2)',
          handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',
          handleSize: '100%',
          handleStyle: { color: tf.color.neutral00, borderColor: tf.color.accent20 },
          moveHandleSize: 7,
          moveHandleIcon:
            'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',
          moveHandleStyle: { color: tf.color.accent40, opacity: 0.5 },
          showDetail: !0,
          showDataShadow: 'auto',
          realtime: !0,
          zoomLock: !1,
          textStyle: { color: tf.color.tertiary },
          brushSelect: !0,
          brushStyle: { color: tf.color.accent30, opacity: 0.3 },
          emphasis: { handleLabel: { show: !0 }, handleStyle: { borderColor: tf.color.accent40 }, moveHandleStyle: { opacity: 0.8 } },
          defaultLocationEdgeGap: 15
        })),
        e
      )
    })(qG),
    dU = xl,
    pU = 'horizontal',
    fU = 'vertical',
    gU = ['line', 'bar', 'candlestick', 'scatter'],
    yU = { easing: 'cubicOut', duration: 100, delay: 0 },
    vU = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n._displayables = {}), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e) {
          ;(this.api = e), (this._onBrush = W(this._onBrush, this)), (this._onBrushEnd = W(this._onBrushEnd, this))
        }),
        (e.prototype.render = function (e, n, i, r) {
          if ((t.prototype.render.apply(this, arguments), cv(this, '_dispatchZoomAction', e.get('throttle'), 'fixRate'), (this._orient = e.getOrient()), !1 !== e.get('show'))) {
            if (e.noTarget()) return this._clear(), void this.group.removeAll()
            ;(r && 'dataZoom' === r.type && r.from === this.uid) || this._buildView(), this._updateView()
          } else this.group.removeAll()
        }),
        (e.prototype.dispose = function () {
          this._clear(), t.prototype.dispose.apply(this, arguments)
        }),
        (e.prototype._clear = function () {
          hv(this, '_dispatchZoomAction')
          var t = this.api.getZr()
          t.off('mousemove', this._onBrush), t.off('mouseup', this._onBrushEnd)
        }),
        (e.prototype._buildView = function () {
          var t = this.group
          t.removeAll(), (this._brushing = !1), (this._displayables.brushRect = null), this._resetLocation(), this._resetInterval()
          var e = (this._displayables.sliderGroup = new to())
          this._renderBackground(), this._renderHandle(), this._renderDataShadow(), t.add(e), this._positionGroup()
        }),
        (e.prototype._resetLocation = function () {
          var t = this.dataZoomModel,
            e = this.api,
            n = t.get('brushSelect') ? 7 : 0,
            i = Xp(t, e).refContainer,
            r = this._findCoordRect(),
            o = t.get('defaultLocationEdgeGap', !0) || 0,
            a =
              this._orient === pU
                ? { right: i.width - r.x - r.width, top: i.height - 30 - o - n, width: r.width, height: 30 }
                : { right: o, top: r.y, width: 30, height: r.height },
            s = Kp(t.option)
          z(['right', 'top', 'width', 'height'], function (t) {
            'ph' === s[t] && (s[t] = a[t])
          })
          var l = Hp(s, i)
          ;(this._location = { x: l.x, y: l.y }), (this._size = [l.width, l.height]), this._orient === fU && this._size.reverse()
        }),
        (e.prototype._positionGroup = function () {
          var t = this.group,
            e = this._location,
            n = this._orient,
            i = this.dataZoomModel.getFirstTargetAxisModel(),
            r = i && i.get('inverse'),
            o = this._displayables.sliderGroup,
            a = (this._dataShadowInfo || {}).otherAxisInverse
          o.attr(
            n !== pU || r
              ? n === pU && r
                ? { scaleY: a ? 1 : -1, scaleX: -1 }
                : n !== fU || r
                  ? { scaleY: a ? -1 : 1, scaleX: -1, rotation: Math.PI / 2 }
                  : { scaleY: a ? -1 : 1, scaleX: 1, rotation: Math.PI / 2 }
              : { scaleY: a ? 1 : -1, scaleX: 1 }
          )
          var s = t.getBoundingRect([o])
          ;(t.x = e.x - s.x), (t.y = e.y - s.y), t.markRedraw()
        }),
        (e.prototype._getViewExtent = function () {
          return [0, this._size[0]]
        }),
        (e.prototype._renderBackground = function () {
          var t = this.dataZoomModel,
            e = this._size,
            n = this._displayables.sliderGroup,
            i = t.get('brushSelect')
          n.add(new dU({ silent: !0, shape: { x: 0, y: 0, width: e[0], height: e[1] }, style: { fill: t.get('backgroundColor') }, z2: -40 }))
          var r = new dU({ shape: { x: 0, y: 0, width: e[0], height: e[1] }, style: { fill: 'transparent' }, z2: 0, onclick: W(this._onClickPanel, this) }),
            o = this.api.getZr()
          i
            ? (r.on('mousedown', this._onBrushStart, this), (r.cursor = 'crosshair'), o.on('mousemove', this._onBrush), o.on('mouseup', this._onBrushEnd))
            : (o.off('mousemove', this._onBrush), o.off('mouseup', this._onBrushEnd)),
            n.add(r)
        }),
        (e.prototype._renderDataShadow = function () {
          var t = (this._dataShadowInfo = this._prepareDataShadowInfo())
          if (((this._displayables.dataShadowSegs = []), t)) {
            var e = this._size,
              n = this._shadowSize || [],
              i = t.series,
              r = i.getRawData(),
              o = i.getShadowDim && i.getShadowDim(),
              a = o && r.getDimensionInfo(o) ? i.getShadowDim() : t.otherDim
            if (null != a) {
              var s = this._shadowPolygonPts,
                l = this._shadowPolylinePts
              if (r !== this._shadowData || a !== this._shadowDim || e[0] !== n[0] || e[1] !== n[1]) {
                var u = r.getDataExtent(t.thisDim),
                  c = r.getDataExtent(a),
                  h = 0.3 * (c[1] - c[0])
                c = [c[0] - h, c[1] + h]
                var d,
                  p = [0, e[1]],
                  f = [0, e[0]],
                  g = [
                    [e[0], 0],
                    [0, 0]
                  ],
                  y = [],
                  v = f[1] / Math.max(1, r.count() - 1),
                  m = e[0] / (u[1] - u[0]),
                  x = 'time' === t.thisAxis.type,
                  _ = -v,
                  b = Math.round(r.count() / e[0])
                r.each([t.thisDim, a], function (t, e, n) {
                  if (b > 0 && n % b) x || (_ += v)
                  else {
                    _ = x ? (+t - u[0]) * m : _ + v
                    var i = null == e || isNaN(e) || '' === e,
                      r = i ? 0 : go(e, c, p, !0)
                    i && !d && n ? (g.push([g[g.length - 1][0], 0]), y.push([y[y.length - 1][0], 0])) : !i && d && (g.push([_, 0]), y.push([_, 0])),
                      i || (g.push([_, r]), y.push([_, r])),
                      (d = i)
                  }
                }),
                  (s = this._shadowPolygonPts = g),
                  (l = this._shadowPolylinePts = y)
              }
              ;(this._shadowData = r), (this._shadowDim = a), (this._shadowSize = [e[0], e[1]])
              for (var w = this.dataZoomModel, S = 0; S < 3; S++) {
                var M = I(1 === S)
                this._displayables.sliderGroup.add(M), this._displayables.dataShadowSegs.push(M)
              }
            }
          }
          function I(t) {
            var e = w.getModel(t ? 'selectedDataBackground' : 'dataBackground'),
              n = new to(),
              i = new Mc({ shape: { points: s }, segmentIgnoreThreshold: 1, style: e.getModel('areaStyle').getAreaStyle(), silent: !0, z2: -20 }),
              r = new Tc({ shape: { points: l }, segmentIgnoreThreshold: 1, style: e.getModel('lineStyle').getLineStyle(), silent: !0, z2: -19 })
            return n.add(i), n.add(r), n
          }
        }),
        (e.prototype._prepareDataShadowInfo = function () {
          var t = this.dataZoomModel,
            e = t.get('showDataShadow')
          if (!1 !== e) {
            var n,
              i = this.ecModel
            return (
              t.eachTargetAxis(function (r, o) {
                z(
                  t.getAxisProxy(r, o).getTargetSeriesModels(),
                  function (t) {
                    if (!(n || (!0 !== e && P(gU, t.get('type')) < 0))) {
                      var a,
                        s = i.getComponent(YG(r), o).axis,
                        l = (function (t) {
                          var e = { x: 'y', y: 'x', radius: 'angle', angle: 'radius' }
                          return e[t]
                        })(r),
                        u = t.coordinateSystem
                      null != l && u.getOtherAxis && (a = u.getOtherAxis(s).inverse), (l = t.getData().mapDimension(l))
                      var c = t.getData().mapDimension(r)
                      n = { thisAxis: s, series: t, thisDim: c, otherDim: l, otherAxisInverse: a }
                    }
                  },
                  this
                )
              }, this),
              n
            )
          }
        }),
        (e.prototype._renderHandle = function () {
          var t = this.group,
            e = this._displayables,
            n = (e.handles = [null, null]),
            i = (e.handleLabels = [null, null]),
            r = this._displayables.sliderGroup,
            o = this._size,
            a = this.dataZoomModel,
            s = this.api,
            l = a.get('borderRadius') || 0,
            u = a.get('brushSelect'),
            c = (e.filler = new dU({ silent: u, style: { fill: a.get('fillerColor') }, textConfig: { position: 'inside' } }))
          r.add(c),
            r.add(
              new dU({
                silent: !0,
                subPixelOptimize: !0,
                shape: { x: 0, y: 0, width: o[0], height: o[1], r: l },
                style: { stroke: a.get('dataBackgroundColor') || a.get('borderColor'), lineWidth: 1, fill: tf.color.transparent }
              })
            ),
            z(
              [0, 1],
              function (e) {
                var o = a.get('handleIcon')
                !lm[o] && o.indexOf('path://') < 0 && o.indexOf('image://') < 0 && (o = 'path://' + o)
                var s,
                  l = hm(o, -1, 0, 2, 2, null, !0)
                l.attr({
                  cursor: ((s = this._orient), 'vertical' === s ? 'ns-resize' : 'ew-resize'),
                  draggable: !0,
                  drift: W(this._onDragMove, this, e),
                  ondragend: W(this._onDragEnd, this),
                  onmouseover: W(this._showDataInfo, this, !0),
                  onmouseout: W(this._showDataInfo, this, !1),
                  z2: 5
                })
                var u = l.getBoundingRect(),
                  c = a.get('handleSize')
                ;(this._handleHeight = yo(c, this._size[1])),
                  (this._handleWidth = (u.width / u.height) * this._handleHeight),
                  l.setStyle(a.getModel('handleStyle').getItemStyle()),
                  (l.style.strokeNoScale = !0),
                  (l.rectHover = !0),
                  (l.ensureState('emphasis').style = a.getModel(['emphasis', 'handleStyle']).getItemStyle()),
                  Iu(l)
                var h = a.get('handleColor')
                null != h && (l.style.fill = h), r.add((n[e] = l))
                var d = a.getModel('textStyle'),
                  p = (a.get('handleLabel') || {}).show || !1
                t.add(
                  (i[e] = new Sl({
                    silent: !0,
                    invisible: !p,
                    style: Qh(d, { x: 0, y: 0, text: '', verticalAlign: 'middle', align: 'center', fill: d.getTextColor(), font: d.getFont() }),
                    z2: 10
                  }))
                )
              },
              this
            )
          var h = c
          if (u) {
            var d = yo(a.get('moveHandleSize'), o[1]),
              p = (e.moveHandle = new xl({ style: a.getModel('moveHandleStyle').getItemStyle(), silent: !0, shape: { r: [0, 0, 2, 2], y: o[1] - 0.5, height: d } })),
              f = 0.8 * d,
              g = (e.moveHandleIcon = hm(a.get('moveHandleIcon'), -f / 2, -f / 2, f, f, tf.color.neutral00, !0))
            ;(g.silent = !0), (g.y = o[1] + d / 2 - 0.5), (p.ensureState('emphasis').style = a.getModel(['emphasis', 'moveHandleStyle']).getItemStyle())
            var y = Math.min(o[1] / 2, Math.max(d, 10))
            ;(h = e.moveZone = new xl({ invisible: !0, shape: { y: o[1] - y, height: d + y } }))
              .on('mouseover', function () {
                s.enterEmphasis(p)
              })
              .on('mouseout', function () {
                s.leaveEmphasis(p)
              }),
              r.add(p),
              r.add(g),
              r.add(h)
          }
          h.attr({
            draggable: !0,
            cursor: 'default',
            drift: W(this._onDragMove, this, 'all'),
            ondragstart: W(this._showDataInfo, this, !0),
            ondragend: W(this._onDragEnd, this),
            onmouseover: W(this._showDataInfo, this, !0),
            onmouseout: W(this._showDataInfo, this, !1)
          })
        }),
        (e.prototype._resetInterval = function () {
          var t = (this._range = this.dataZoomModel.getPercentRange()),
            e = this._getViewExtent()
          this._handleEnds = [go(t[0], [0, 100], e, !0), go(t[1], [0, 100], e, !0)]
        }),
        (e.prototype._updateInterval = function (t, e) {
          var n = this.dataZoomModel,
            i = this._handleEnds,
            r = this._getViewExtent(),
            o = n.findRepresentativeAxisProxy().getMinMaxSpan(),
            a = [0, 100]
          CO(e, i, r, n.get('zoomLock') ? 'all' : t, null != o.minSpan ? go(o.minSpan, a, r, !0) : null, null != o.maxSpan ? go(o.maxSpan, a, r, !0) : null)
          var s = this._range,
            l = (this._range = xo([go(i[0], r, a, !0), go(i[1], r, a, !0)]))
          return !s || s[0] !== l[0] || s[1] !== l[1]
        }),
        (e.prototype._updateView = function (t) {
          var e = this._displayables,
            n = this._handleEnds,
            i = xo(n.slice()),
            r = this._size
          z(
            [0, 1],
            function (t) {
              var i = e.handles[t],
                o = this._handleHeight
              i.attr({ scaleX: o / 2, scaleY: o / 2, x: n[t] + (t ? -1 : 1), y: r[1] / 2 - o / 2 })
            },
            this
          ),
            e.filler.setShape({ x: i[0], y: 0, width: i[1] - i[0], height: r[1] })
          var o = { x: i[0], width: i[1] - i[0] }
          e.moveHandle && (e.moveHandle.setShape(o), e.moveZone.setShape(o), e.moveZone.getBoundingRect(), e.moveHandleIcon && e.moveHandleIcon.attr('x', o.x + o.width / 2))
          for (var a = e.dataShadowSegs, s = [0, i[0], i[1], r[0]], l = 0; l < a.length; l++) {
            var u = a[l],
              c = u.getClipPath()
            c || ((c = new xl()), u.setClipPath(c)), c.setShape({ x: s[l], y: 0, width: s[l + 1] - s[l], height: r[1] })
          }
          this._updateDataInfo(t)
        }),
        (e.prototype._updateDataInfo = function (t) {
          var e = this.dataZoomModel,
            n = this._displayables,
            i = n.handleLabels,
            r = this._orient,
            o = ['', '']
          if (e.get('showDetail')) {
            var a = e.findRepresentativeAxisProxy()
            if (a) {
              var s = a.getAxisModel().axis,
                l = this._range,
                u = t ? a.calculateDataWindow({ start: l[0], end: l[1] }).valueWindow : a.getDataValueWindow()
              o = [this._formatLabel(u[0], s), this._formatLabel(u[1], s)]
            }
          }
          var c = xo(this._handleEnds.slice())
          function h(t) {
            var e = wh(n.handles[t].parent, this.group),
              a = Mh(0 === t ? 'right' : 'left', e),
              s = this._handleWidth / 2 + 5,
              l = Sh([c[t] + (0 === t ? -s : s), this._size[1] / 2], e)
            i[t].setStyle({ x: l[0], y: l[1], verticalAlign: r === pU ? 'middle' : a, align: r === pU ? a : 'center', text: o[t] })
          }
          h.call(this, 0), h.call(this, 1)
        }),
        (e.prototype._formatLabel = function (t, e) {
          var n = this.dataZoomModel,
            i = n.get('labelFormatter'),
            r = n.get('labelPrecision')
          ;(null != r && 'auto' !== r) || (r = e.getPixelPrecision())
          var o = null == t || isNaN(t) ? '' : 'category' === e.type || 'time' === e.type ? e.scale.getLabel({ value: Math.round(t) }) : t.toFixed(Math.min(r, 20))
          return Y(i) ? i(t, o) : X(i) ? i.replace('{value}', o) : o
        }),
        (e.prototype._showDataInfo = function (t) {
          var e = (this.dataZoomModel.get('handleLabel') || {}).show || !1,
            n = this.dataZoomModel.getModel(['emphasis', 'handleLabel']).get('show') || !1,
            i = t || this._dragging ? n : e,
            r = this._displayables,
            o = r.handleLabels
          o[0].attr('invisible', !i), o[1].attr('invisible', !i), r.moveHandle && this.api[i ? 'enterEmphasis' : 'leaveEmphasis'](r.moveHandle, 1)
        }),
        (e.prototype._onDragMove = function (t, e, n, i) {
          ;(this._dragging = !0), fe(i.event)
          var r = Sh([e, n], this._displayables.sliderGroup.getLocalTransform(), !0),
            o = this._updateInterval(t, r[0]),
            a = this.dataZoomModel.get('realtime')
          this._updateView(!a), o && a && this._dispatchZoomAction(!0)
        }),
        (e.prototype._onDragEnd = function () {
          ;(this._dragging = !1), this._showDataInfo(!1), !this.dataZoomModel.get('realtime') && this._dispatchZoomAction(!1)
        }),
        (e.prototype._onClickPanel = function (t) {
          var e = this._size,
            n = this._displayables.sliderGroup.transformCoordToLocal(t.offsetX, t.offsetY)
          if (!(n[0] < 0 || n[0] > e[0] || n[1] < 0 || n[1] > e[1])) {
            var i = this._handleEnds,
              r = (i[0] + i[1]) / 2,
              o = this._updateInterval('all', n[0] - r)
            this._updateView(), o && this._dispatchZoomAction(!1)
          }
        }),
        (e.prototype._onBrushStart = function (t) {
          var e = t.offsetX,
            n = t.offsetY
          ;(this._brushStart = new Ae(e, n)), (this._brushing = !0), (this._brushStartTime = +new Date())
        }),
        (e.prototype._onBrushEnd = function (t) {
          if (this._brushing) {
            var e = this._displayables.brushRect
            if (((this._brushing = !1), e)) {
              e.attr('ignore', !0)
              var n = e.shape
              if (!(+new Date() - this._brushStartTime < 200 && Math.abs(n.width) < 5)) {
                var i = this._getViewExtent(),
                  r = [0, 100],
                  o = (this._handleEnds = [n.x, n.x + n.width]),
                  a = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan()
                CO(0, o, i, 0, null != a.minSpan ? go(a.minSpan, r, i, !0) : null, null != a.maxSpan ? go(a.maxSpan, r, i, !0) : null),
                  (this._range = xo([go(o[0], i, r, !0), go(o[1], i, r, !0)])),
                  this._updateView(),
                  this._dispatchZoomAction(!1)
              }
            }
          }
        }),
        (e.prototype._onBrush = function (t) {
          this._brushing && (fe(t.event), this._updateBrushRect(t.offsetX, t.offsetY))
        }),
        (e.prototype._updateBrushRect = function (t, e) {
          var n = this._displayables,
            i = this.dataZoomModel,
            r = n.brushRect
          r || ((r = n.brushRect = new dU({ silent: !0, style: i.getModel('brushStyle').getItemStyle() })), n.sliderGroup.add(r)), r.attr('ignore', !1)
          var o = this._brushStart,
            a = this._displayables.sliderGroup,
            s = a.transformCoordToLocal(t, e),
            l = a.transformCoordToLocal(o.x, o.y),
            u = this._size
          ;(s[0] = Math.max(Math.min(u[0], s[0]), 0)), r.setShape({ x: l[0], y: 0, width: s[0] - l[0], height: u[1] })
        }),
        (e.prototype._dispatchZoomAction = function (t) {
          var e = this._range
          this.api.dispatchAction({ type: 'dataZoom', from: this.uid, dataZoomId: this.dataZoomModel.id, animation: t ? yU : null, start: e[0], end: e[1] })
        }),
        (e.prototype._findCoordRect = function () {
          var t,
            e = ZG(this.dataZoomModel).infoList
          if (!t && e.length) {
            var n = e[0].model.coordinateSystem
            t = n.getRect && n.getRect()
          }
          if (!t) {
            var i = this.api.getWidth(),
              r = this.api.getHeight()
            t = { x: 0.2 * i, y: 0.2 * r, width: 0.6 * i, height: 0.6 * r }
          }
          return t
        }),
        (e.type = 'dataZoom.slider'),
        e
      )
    })(JG)
  function mU(t) {
    t.registerComponentModel(hU), t.registerComponentView(vU), oF(t)
  }
  var xU = function (t, e, n) {
      var i = T((_U[t] || {})[e])
      return n && U(i) ? i[i.length - 1] : i
    },
    _U = {
      color: { active: ['#006edd', '#e0ffff'], inactive: [tf.color.transparent] },
      colorHue: { active: [0, 360], inactive: [0, 0] },
      colorSaturation: { active: [0.3, 1], inactive: [0, 0] },
      colorLightness: { active: [0.9, 0.5], inactive: [0, 0] },
      colorAlpha: { active: [0.3, 1], inactive: [0, 0] },
      opacity: { active: [0.3, 1], inactive: [0, 0] },
      symbol: { active: ['circle', 'roundRect', 'diamond'], inactive: ['none'] },
      symbolSize: { active: [10, 50], inactive: [0, 0] }
    },
    bU = hL.mapVisual,
    wU = hL.eachVisual,
    SU = U,
    MU = z,
    IU = xo,
    TU = go,
    CU = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (
          (n.type = e.type),
          (n.stateList = ['inRange', 'outOfRange']),
          (n.replacableOptionKeys = ['inRange', 'outOfRange', 'target', 'controller', 'color']),
          (n.layoutMode = { type: 'box', ignoreSize: !0 }),
          (n.dataBound = [-1 / 0, 1 / 0]),
          (n.targetVisuals = {}),
          (n.controllerVisuals = {}),
          n
        )
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e, n) {
          this.mergeDefaultAndTheme(t, n)
        }),
        (e.prototype.optionUpdated = function (t, e) {
          var n = this.option
          !e && bW(n, t, this.replacableOptionKeys), (this.textStyleModel = this.getModel('textStyle')), this.resetItemSize(), this.completeVisualOption()
        }),
        (e.prototype.resetVisual = function (t) {
          var e = this.stateList
          ;(t = W(t, this)), (this.controllerVisuals = _W(this.option.controller, e, t)), (this.targetVisuals = _W(this.option.target, e, t))
        }),
        (e.prototype.getItemSymbol = function () {
          return null
        }),
        (e.prototype.getTargetSeriesIndices = function () {
          var t = this.option.seriesId,
            e = this.option.seriesIndex
          return (
            null == e && null == t && (e = 'all'),
            E(pa(this.ecModel, 'series', { index: e, id: t }, { useDefault: !1, enableAll: !0, enableNone: !1 }).models, function (t) {
              return t.componentIndex
            })
          )
        }),
        (e.prototype.eachTargetSeries = function (t, e) {
          z(
            this.getTargetSeriesIndices(),
            function (n) {
              var i = this.ecModel.getSeriesByIndex(n)
              i && t.call(e, i)
            },
            this
          )
        }),
        (e.prototype.isTargetSeries = function (t) {
          var e = !1
          return (
            this.eachTargetSeries(function (n) {
              n === t && (e = !0)
            }),
            e
          )
        }),
        (e.prototype.formatValueText = function (t, e, n) {
          var i,
            r = this.option,
            o = r.precision,
            a = this.dataBound,
            s = r.formatter
          ;(n = n || ['<', '>']), U(t) && ((t = t.slice()), (i = !0))
          var l = e ? t : i ? [u(t[0]), u(t[1])] : u(t)
          return X(s)
            ? s.replace('{value}', i ? l[0] : l).replace('{value2}', i ? l[1] : l)
            : Y(s)
              ? i
                ? s(t[0], t[1])
                : s(t)
              : i
                ? t[0] === a[0]
                  ? n[0] + ' ' + l[1]
                  : t[1] === a[1]
                    ? n[1] + ' ' + l[0]
                    : l[0] + ' - ' + l[1]
                : l
          function u(t) {
            return t === a[0] ? 'min' : t === a[1] ? 'max' : (+t).toFixed(Math.min(o, 20))
          }
        }),
        (e.prototype.resetExtent = function () {
          var t = this.option,
            e = IU([t.min, t.max])
          this._dataExtent = e
        }),
        (e.prototype.getDataDimensionIndex = function (t) {
          var e = this.option.dimension
          if (null != e) return t.getDimensionIndex(e)
          for (var n = t.dimensions, i = n.length - 1; i >= 0; i--) {
            var r = n[i],
              o = t.getDimensionInfo(r)
            if (!o.isCalculationCoord) return o.storeDimIndex
          }
        }),
        (e.prototype.getExtent = function () {
          return this._dataExtent.slice()
        }),
        (e.prototype.completeVisualOption = function () {
          var t = this.ecModel,
            e = this.option,
            n = { inRange: e.inRange, outOfRange: e.outOfRange },
            i = e.target || (e.target = {}),
            r = e.controller || (e.controller = {})
          C(i, n), C(r, n)
          var o = this.isCategory()
          function a(n) {
            SU(e.color) && !n.inRange && (n.inRange = { color: e.color.slice().reverse() }), (n.inRange = n.inRange || { color: t.get('gradientColor') })
          }
          a.call(this, i),
            a.call(this, r),
            function (t, e, n) {
              var i = t[e],
                r = t[n]
              i &&
                !r &&
                ((r = t[n] = {}),
                MU(i, function (t, e) {
                  if (hL.isValidType(e)) {
                    var n = xU(e, 'inactive', o)
                    null != n && ((r[e] = n), 'color' !== e || r.hasOwnProperty('opacity') || r.hasOwnProperty('colorAlpha') || (r.opacity = [0, 0]))
                  }
                }))
            }.call(this, i, 'inRange', 'outOfRange'),
            function (t) {
              var e = (t.inRange || {}).symbol || (t.outOfRange || {}).symbol,
                n = (t.inRange || {}).symbolSize || (t.outOfRange || {}).symbolSize,
                i = this.get('inactiveColor'),
                r = this.getItemSymbol() || 'roundRect'
              MU(
                this.stateList,
                function (a) {
                  var s = this.itemSize,
                    l = t[a]
                  l || (l = t[a] = { color: o ? i : [i] }),
                    null == l.symbol && (l.symbol = (e && T(e)) || (o ? r : [r])),
                    null == l.symbolSize && (l.symbolSize = (n && T(n)) || (o ? s[0] : [s[0], s[0]])),
                    (l.symbol = bU(l.symbol, function (t) {
                      return 'none' === t ? r : t
                    }))
                  var u = l.symbolSize
                  if (null != u) {
                    var c = -1 / 0
                    wU(u, function (t) {
                      t > c && (c = t)
                    }),
                      (l.symbolSize = bU(u, function (t) {
                        return TU(t, [0, c], [0, s[0]], !0)
                      }))
                  }
                },
                this
              )
            }.call(this, r)
        }),
        (e.prototype.resetItemSize = function () {
          this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))]
        }),
        (e.prototype.isCategory = function () {
          return !!this.option.categories
        }),
        (e.prototype.setSelected = function (t) {}),
        (e.prototype.getSelected = function () {
          return null
        }),
        (e.prototype.getValueState = function (t) {
          return null
        }),
        (e.prototype.getVisualMeta = function (t) {
          return null
        }),
        (e.type = 'visualMap'),
        (e.dependencies = ['series']),
        (e.defaultOption = {
          show: !0,
          z: 4,
          min: 0,
          max: 200,
          left: 0,
          right: null,
          top: null,
          bottom: 0,
          itemWidth: null,
          itemHeight: null,
          inverse: !1,
          orient: 'vertical',
          backgroundColor: tf.color.transparent,
          borderColor: tf.color.borderTint,
          contentColor: tf.color.theme[0],
          inactiveColor: tf.color.disabled,
          borderWidth: 0,
          padding: tf.size.m,
          textGap: 10,
          precision: 0,
          textStyle: { color: tf.color.secondary }
        }),
        e
      )
    })(Qp),
    DU = [20, 140],
    AU = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.optionUpdated = function (e, n) {
          t.prototype.optionUpdated.apply(this, arguments),
            this.resetExtent(),
            this.resetVisual(function (t) {
              ;(t.mappingMethod = 'linear'), (t.dataExtent = this.getExtent())
            }),
            this._resetRange()
        }),
        (e.prototype.resetItemSize = function () {
          t.prototype.resetItemSize.apply(this, arguments)
          var e = this.itemSize
          ;(null == e[0] || isNaN(e[0])) && (e[0] = DU[0]), (null == e[1] || isNaN(e[1])) && (e[1] = DU[1])
        }),
        (e.prototype._resetRange = function () {
          var t = this.getExtent(),
            e = this.option.range
          !e || e.auto ? ((t.auto = 1), (this.option.range = t)) : U(e) && (e[0] > e[1] && e.reverse(), (e[0] = Math.max(e[0], t[0])), (e[1] = Math.min(e[1], t[1])))
        }),
        (e.prototype.completeVisualOption = function () {
          t.prototype.completeVisualOption.apply(this, arguments),
            z(
              this.stateList,
              function (t) {
                var e = this.option.controller[t].symbolSize
                e && e[0] !== e[1] && (e[0] = e[1] / 3)
              },
              this
            )
        }),
        (e.prototype.setSelected = function (t) {
          ;(this.option.range = t.slice()), this._resetRange()
        }),
        (e.prototype.getSelected = function () {
          var t = this.getExtent(),
            e = xo((this.get('range') || []).slice())
          return e[0] > t[1] && (e[0] = t[1]), e[1] > t[1] && (e[1] = t[1]), e[0] < t[0] && (e[0] = t[0]), e[1] < t[0] && (e[1] = t[0]), e
        }),
        (e.prototype.getValueState = function (t) {
          var e = this.option.range,
            n = this.getExtent(),
            i = rt(this.option.unboundedRange, !0)
          return ((i && e[0] <= n[0]) || e[0] <= t) && ((i && e[1] >= n[1]) || t <= e[1]) ? 'inRange' : 'outOfRange'
        }),
        (e.prototype.findTargetDataIndices = function (t) {
          var e = []
          return (
            this.eachTargetSeries(function (n) {
              var i = [],
                r = n.getData()
              r.each(
                this.getDataDimensionIndex(r),
                function (e, n) {
                  t[0] <= e && e <= t[1] && i.push(n)
                },
                this
              ),
                e.push({ seriesId: n.id, dataIndex: i })
            }, this),
            e
          )
        }),
        (e.prototype.getVisualMeta = function (t) {
          var e = kU(this, 'outOfRange', this.getExtent()),
            n = kU(this, 'inRange', this.option.range.slice()),
            i = []
          function r(e, n) {
            i.push({ value: e, color: t(e, n) })
          }
          for (var o = 0, a = 0, s = n.length, l = e.length; a < l && (!n.length || e[a] <= n[0]); a++) e[a] < n[o] && r(e[a], 'outOfRange')
          for (var u = 1; o < s; o++, u = 0) u && i.length && r(n[o], 'outOfRange'), r(n[o], 'inRange')
          for (u = 1; a < l; a++) (!n.length || n[n.length - 1] < e[a]) && (u && (i.length && r(i[i.length - 1].value, 'outOfRange'), (u = 0)), r(e[a], 'outOfRange'))
          var c = i.length
          return { stops: i, outerColors: [c ? i[0].color : 'transparent', c ? i[c - 1].color : 'transparent'] }
        }),
        (e.type = 'visualMap.continuous'),
        (e.defaultOption = Id(CU.defaultOption, {
          align: 'auto',
          calculable: !1,
          hoverLink: !0,
          realtime: !0,
          handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',
          handleSize: '120%',
          handleStyle: { borderColor: tf.color.neutral00, borderWidth: 1 },
          indicatorIcon: 'circle',
          indicatorSize: '50%',
          indicatorStyle: { borderColor: tf.color.neutral00, borderWidth: 2, shadowBlur: 2, shadowOffsetX: 1, shadowOffsetY: 1, shadowColor: tf.color.shadow }
        })),
        e
      )
    })(CU)
  function kU(t, e, n) {
    if (n[0] === n[1]) return n.slice()
    for (var i = (n[1] - n[0]) / 200, r = n[0], o = [], a = 0; a <= 200 && r < n[1]; a++) o.push(r), (r += i)
    return o.push(n[1]), o
  }
  var LU = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.autoPositionValues = { left: 1, right: 1, top: 1, bottom: 1 }), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (t, e) {
          ;(this.ecModel = t), (this.api = e)
        }),
        (e.prototype.render = function (t, e, n, i) {
          ;(this.visualMapModel = t), !1 !== t.get('show') ? this.doRender(t, e, n, i) : this.group.removeAll()
        }),
        (e.prototype.renderBackground = function (t) {
          var e = this.visualMapModel,
            n = yp(e.get('padding') || 0),
            i = t.getBoundingRect()
          t.add(
            new xl({
              z2: -1,
              silent: !0,
              shape: { x: i.x - n[3], y: i.y - n[0], width: i.width + n[3] + n[1], height: i.height + n[0] + n[2] },
              style: { fill: e.get('backgroundColor'), stroke: e.get('borderColor'), lineWidth: e.get('borderWidth') }
            })
          )
        }),
        (e.prototype.getControllerVisual = function (t, e, n) {
          var i = (n = n || {}).forceState,
            r = this.visualMapModel,
            o = {}
          if ('color' === e) {
            var a = r.get('contentColor')
            o.color = a
          }
          function s(t) {
            return o[t]
          }
          function l(t, e) {
            o[t] = e
          }
          var u = r.controllerVisuals[i || r.getValueState(t)]
          return (
            z(hL.prepareVisualTypes(u), function (i) {
              var r = u[i]
              n.convertOpacityToAlpha && 'opacity' === i && ((i = 'colorAlpha'), (r = u.__alphaForOpacity)), hL.dependsOn(i, e) && r && r.applyVisual(t, s, l)
            }),
            o[e]
          )
        }),
        (e.prototype.positionGroup = function (t) {
          var e = this.visualMapModel,
            n = Xp(e, this.api).refContainer
          Zp(t, e.getBoxLayoutParams(), n)
        }),
        (e.prototype.doRender = function (t, e, n, i) {}),
        (e.type = 'visualMap'),
        e
      )
    })(Ky),
    PU = [
      ['left', 'right', 'width'],
      ['top', 'bottom', 'height']
    ]
  function OU(t, e, n) {
    var i = t.option,
      r = i.align
    if (null != r && 'auto' !== r) return r
    for (var o = { width: e.getWidth(), height: e.getHeight() }, a = 'horizontal' === i.orient ? 1 : 0, s = PU[a], l = [0, null, 10], u = {}, c = 0; c < 3; c++)
      (u[PU[1 - a][c]] = l[c]), (u[s[c]] = 2 === c ? n[0] : i[s[c]])
    var h = [
        ['x', 'width', 3],
        ['y', 'height', 0]
      ][a],
      d = Hp(u, o, i.padding)
    return s[(d.margin[h[2]] || 0) + d[h[0]] + 0.5 * d[h[1]] < 0.5 * o[h[1]] ? 0 : 1]
  }
  function RU(t, e) {
    return (
      z(t || [], function (t) {
        null != t.dataIndex && ((t.dataIndexInside = t.dataIndex), (t.dataIndex = null)), (t.highlightKey = 'visualMap' + (e ? e.componentIndex : ''))
      }),
      t
    )
  }
  var NU = go,
    zU = z,
    EU = Math.min,
    BU = Math.max,
    VU = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n._shapes = {}), (n._dataInterval = []), (n._handleEnds = []), (n._hoverLinkDataIndices = []), n
      }
      return (
        n(e, t),
        (e.prototype.init = function (e, n) {
          t.prototype.init.call(this, e, n),
            (this._hoverLinkFromSeriesMouseOver = W(this._hoverLinkFromSeriesMouseOver, this)),
            (this._hideIndicator = W(this._hideIndicator, this))
        }),
        (e.prototype.doRender = function (t, e, n, i) {
          ;(i && 'selectDataRange' === i.type && i.from === this.uid) || this._buildView()
        }),
        (e.prototype._buildView = function () {
          this.group.removeAll()
          var t = this.visualMapModel,
            e = this.group
          ;(this._orient = t.get('orient')), (this._useHandle = t.get('calculable')), this._resetInterval(), this._renderBar(e)
          var n = t.get('text')
          this._renderEndsText(e, n, 0),
            this._renderEndsText(e, n, 1),
            this._updateView(!0),
            this.renderBackground(e),
            this._updateView(),
            this._enableHoverLinkToSeries(),
            this._enableHoverLinkFromSeries(),
            this.positionGroup(e)
        }),
        (e.prototype._renderEndsText = function (t, e, n) {
          if (e) {
            var i = e[1 - n]
            i = null != i ? i + '' : ''
            var r = this.visualMapModel,
              o = r.get('textGap'),
              a = r.itemSize,
              s = this._shapes.mainGroup,
              l = this._applyTransform([a[0] / 2, 0 === n ? -o : a[1] + o], s),
              u = this._applyTransform(0 === n ? 'bottom' : 'top', s),
              c = this._orient,
              h = this.visualMapModel.textStyleModel
            this.group.add(
              new Sl({
                style: Qh(h, {
                  x: l[0],
                  y: l[1],
                  verticalAlign: h.get('verticalAlign') || ('horizontal' === c ? 'middle' : u),
                  align: h.get('align') || ('horizontal' === c ? u : 'center'),
                  text: i
                })
              })
            )
          }
        }),
        (e.prototype._renderBar = function (t) {
          var e = this.visualMapModel,
            n = this._shapes,
            i = e.itemSize,
            r = this._orient,
            o = this._useHandle,
            a = OU(e, this.api, i),
            s = (n.mainGroup = this._createBarGroup(a)),
            l = new to()
          s.add(l),
            l.add((n.outOfRange = GU())),
            l.add((n.inRange = GU(null, o ? WU(this._orient) : null, W(this._dragHandle, this, 'all', !1), W(this._dragHandle, this, 'all', !0)))),
            l.setClipPath(new xl({ shape: { x: 0, y: 0, width: i[0], height: i[1], r: 3 } }))
          var u = e.textStyleModel.getTextRect('国'),
            c = BU(u.width, u.height)
          o && ((n.handleThumbs = []), (n.handleLabels = []), (n.handleLabelPoints = []), this._createHandle(e, s, 0, i, c, r), this._createHandle(e, s, 1, i, c, r)),
            this._createIndicator(e, s, i, c, r),
            t.add(s)
        }),
        (e.prototype._createHandle = function (t, e, n, i, r, o) {
          var a = W(this._dragHandle, this, n, !1),
            s = W(this._dragHandle, this, n, !0),
            l = Fr(t.get('handleSize'), i[0]),
            u = hm(t.get('handleIcon'), -l / 2, -l / 2, l, l, null, !0),
            c = WU(this._orient)
          u.attr({
            cursor: c,
            draggable: !0,
            drift: a,
            ondragend: s,
            onmousemove: function (t) {
              fe(t.event)
            }
          }),
            (u.x = i[0] / 2),
            u.useStyle(t.getModel('handleStyle').getItemStyle()),
            u.setStyle({ strokeNoScale: !0, strokeFirst: !0 }),
            (u.style.lineWidth *= 2),
            (u.ensureState('emphasis').style = t.getModel(['emphasis', 'handleStyle']).getItemStyle()),
            Lu(u, !0),
            e.add(u)
          var h = this.visualMapModel.textStyleModel,
            d = new Sl({
              cursor: c,
              draggable: !0,
              drift: a,
              onmousemove: function (t) {
                fe(t.event)
              },
              ondragend: s,
              style: Qh(h, { x: 0, y: 0, text: '' })
            })
          ;(d.ensureState('blur').style = { opacity: 0.1 }), (d.stateTransition = { duration: 200 }), this.group.add(d)
          var p = [l, 0],
            f = this._shapes
          ;(f.handleThumbs[n] = u), (f.handleLabelPoints[n] = p), (f.handleLabels[n] = d)
        }),
        (e.prototype._createIndicator = function (t, e, n, i, r) {
          var o = Fr(t.get('indicatorSize'), n[0]),
            a = hm(t.get('indicatorIcon'), -o / 2, -o / 2, o, o, null, !0)
          a.attr({ cursor: 'move', invisible: !0, silent: !0, x: n[0] / 2 })
          var s = t.getModel('indicatorStyle').getItemStyle()
          if (a instanceof dl) {
            var l = a.style
            a.useStyle(A({ image: l.image, x: l.x, y: l.y, width: l.width, height: l.height }, s))
          } else a.useStyle(s)
          e.add(a)
          var u = this.visualMapModel.textStyleModel,
            c = new Sl({ silent: !0, invisible: !0, style: Qh(u, { x: 0, y: 0, text: '' }) })
          this.group.add(c)
          var h = [('horizontal' === r ? i / 2 : 6) + n[0] / 2, 0],
            d = this._shapes
          ;(d.indicator = a), (d.indicatorLabel = c), (d.indicatorLabelPoint = h), (this._firstShowIndicator = !0)
        }),
        (e.prototype._dragHandle = function (t, e, n, i) {
          if (this._useHandle) {
            if (((this._dragging = !e), !e)) {
              var r = this._applyTransform([n, i], this._shapes.mainGroup, !0)
              this._updateInterval(t, r[1]), this._hideIndicator(), this._updateView()
            }
            e === !this.visualMapModel.get('realtime') &&
              this.api.dispatchAction({ type: 'selectDataRange', from: this.uid, visualMapId: this.visualMapModel.id, selected: this._dataInterval.slice() }),
              e ? !this._hovering && this._clearHoverLinkToSeries() : FU(this.visualMapModel) && this._doHoverLinkToSeries(this._handleEnds[t], !1)
          }
        }),
        (e.prototype._resetInterval = function () {
          var t = this.visualMapModel,
            e = (this._dataInterval = t.getSelected()),
            n = t.getExtent(),
            i = [0, t.itemSize[1]]
          this._handleEnds = [NU(e[0], n, i, !0), NU(e[1], n, i, !0)]
        }),
        (e.prototype._updateInterval = function (t, e) {
          e = e || 0
          var n = this.visualMapModel,
            i = this._handleEnds,
            r = [0, n.itemSize[1]]
          CO(e, i, r, t, 0)
          var o = n.getExtent()
          this._dataInterval = [NU(i[0], r, o, !0), NU(i[1], r, o, !0)]
        }),
        (e.prototype._updateView = function (t) {
          var e = this.visualMapModel,
            n = e.getExtent(),
            i = this._shapes,
            r = [0, e.itemSize[1]],
            o = t ? r : this._handleEnds,
            a = this._createBarVisual(this._dataInterval, n, o, 'inRange'),
            s = this._createBarVisual(n, n, r, 'outOfRange')
          i.inRange.setStyle({ fill: a.barColor }).setShape('points', a.barPoints),
            i.outOfRange.setStyle({ fill: s.barColor }).setShape('points', s.barPoints),
            this._updateHandle(o, a)
        }),
        (e.prototype._createBarVisual = function (t, e, n, i) {
          var r = { forceState: i, convertOpacityToAlpha: !0 },
            o = this._makeColorGradient(t, r),
            a = [this.getControllerVisual(t[0], 'symbolSize', r), this.getControllerVisual(t[1], 'symbolSize', r)],
            s = this._createBarPoints(n, a)
          return { barColor: new Bc(0, 0, 0, 1, o), barPoints: s, handlesColor: [o[0].color, o[o.length - 1].color] }
        }),
        (e.prototype._makeColorGradient = function (t, e) {
          var n = [],
            i = (t[1] - t[0]) / 100
          n.push({ color: this.getControllerVisual(t[0], 'color', e), offset: 0 })
          for (var r = 1; r < 100; r++) {
            var o = t[0] + i * r
            if (o > t[1]) break
            n.push({ color: this.getControllerVisual(o, 'color', e), offset: r / 100 })
          }
          return n.push({ color: this.getControllerVisual(t[1], 'color', e), offset: 1 }), n
        }),
        (e.prototype._createBarPoints = function (t, e) {
          var n = this.visualMapModel.itemSize
          return [
            [n[0] - e[0], t[0]],
            [n[0], t[0]],
            [n[0], t[1]],
            [n[0] - e[1], t[1]]
          ]
        }),
        (e.prototype._createBarGroup = function (t) {
          var e = this._orient,
            n = this.visualMapModel.get('inverse')
          return new to(
            'horizontal' !== e || n
              ? 'horizontal' === e && n
                ? { scaleX: 'bottom' === t ? -1 : 1, rotation: -Math.PI / 2 }
                : 'vertical' !== e || n
                  ? { scaleX: 'left' === t ? 1 : -1 }
                  : { scaleX: 'left' === t ? 1 : -1, scaleY: -1 }
              : { scaleX: 'bottom' === t ? 1 : -1, rotation: Math.PI / 2 }
          )
        }),
        (e.prototype._updateHandle = function (t, e) {
          if (this._useHandle) {
            var n = this._shapes,
              i = this.visualMapModel,
              r = n.handleThumbs,
              o = n.handleLabels,
              a = i.itemSize,
              s = i.getExtent(),
              l = this._applyTransform('left', n.mainGroup)
            zU(
              [0, 1],
              function (u) {
                var c = r[u]
                c.setStyle('fill', e.handlesColor[u]), (c.y = t[u])
                var h = NU(t[u], [0, a[1]], s, !0),
                  d = this.getControllerVisual(h, 'symbolSize')
                ;(c.scaleX = c.scaleY = d / a[0]), (c.x = a[0] - d / 2)
                var p = Sh(n.handleLabelPoints[u], wh(c, this.group))
                if ('horizontal' === this._orient) {
                  var f = 'left' === l || 'top' === l ? (a[0] - d) / 2 : (a[0] - d) / -2
                  p[1] += f
                }
                o[u].setStyle({
                  x: p[0],
                  y: p[1],
                  text: i.formatValueText(this._dataInterval[u]),
                  verticalAlign: 'middle',
                  align: 'vertical' === this._orient ? this._applyTransform('left', n.mainGroup) : 'center'
                })
              },
              this
            )
          }
        }),
        (e.prototype._showIndicator = function (t, e, n, i) {
          var r = this.visualMapModel,
            o = r.getExtent(),
            a = r.itemSize,
            s = [0, a[1]],
            l = this._shapes,
            u = l.indicator
          if (u) {
            u.attr('invisible', !1)
            var c = this.getControllerVisual(t, 'color', { convertOpacityToAlpha: !0 }),
              h = this.getControllerVisual(t, 'symbolSize'),
              d = NU(t, o, s, !0),
              p = a[0] - h / 2,
              f = { x: u.x, y: u.y }
            ;(u.y = d), (u.x = p)
            var g = Sh(l.indicatorLabelPoint, wh(u, this.group)),
              y = l.indicatorLabel
            y.attr('invisible', !1)
            var v = this._applyTransform('left', l.mainGroup),
              m = 'horizontal' === this._orient
            y.setStyle({ text: (n || '') + r.formatValueText(e), verticalAlign: m ? v : 'middle', align: m ? 'center' : v })
            var x = { x: p, y: d, style: { fill: c } },
              _ = { style: { x: g[0], y: g[1] } }
            if (r.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {
              var b = { duration: 100, easing: 'cubicInOut', additive: !0 }
              ;(u.x = f.x), (u.y = f.y), u.animateTo(x, b), y.animateTo(_, b)
            } else u.attr(x), y.attr(_)
            this._firstShowIndicator = !1
            var w = this._shapes.handleLabels
            if (w) for (var S = 0; S < w.length; S++) this.api.enterBlur(w[S])
          }
        }),
        (e.prototype._enableHoverLinkToSeries = function () {
          var t = this
          this._shapes.mainGroup
            .on('mousemove', function (e) {
              if (((t._hovering = !0), !t._dragging)) {
                var n = t.visualMapModel.itemSize,
                  i = t._applyTransform([e.offsetX, e.offsetY], t._shapes.mainGroup, !0, !0)
                ;(i[1] = EU(BU(0, i[1]), n[1])), t._doHoverLinkToSeries(i[1], 0 <= i[0] && i[0] <= n[0])
              }
            })
            .on('mouseout', function () {
              ;(t._hovering = !1), !t._dragging && t._clearHoverLinkToSeries()
            })
        }),
        (e.prototype._enableHoverLinkFromSeries = function () {
          var t = this.api.getZr()
          this.visualMapModel.option.hoverLink
            ? (t.on('mouseover', this._hoverLinkFromSeriesMouseOver, this), t.on('mouseout', this._hideIndicator, this))
            : this._clearHoverLinkFromSeries()
        }),
        (e.prototype._doHoverLinkToSeries = function (t, e) {
          var n = this.visualMapModel,
            i = n.itemSize
          if (n.option.hoverLink) {
            var r = [0, i[1]],
              o = n.getExtent()
            t = EU(BU(r[0], t), r[1])
            var a = (function (t, e, n) {
                var i = 6,
                  r = t.get('hoverLinkDataSize')
                r && (i = NU(r, e, n, !0) / 2)
                return i
              })(n, o, r),
              s = [t - a, t + a],
              l = NU(t, r, o, !0),
              u = [NU(s[0], r, o, !0), NU(s[1], r, o, !0)]
            s[0] < r[0] && (u[0] = -1 / 0),
              s[1] > r[1] && (u[1] = 1 / 0),
              e && (u[0] === -1 / 0 ? this._showIndicator(l, u[1], '< ', a) : u[1] === 1 / 0 ? this._showIndicator(l, u[0], '> ', a) : this._showIndicator(l, l, '≈ ', a))
            var c = this._hoverLinkDataIndices,
              h = []
            ;(e || FU(n)) && (h = this._hoverLinkDataIndices = n.findTargetDataIndices(u))
            var d = (function (t, e) {
              var n = {},
                i = {}
              return r(t || [], n), r(e || [], i, n), [o(n), o(i)]
              function r(t, e, n) {
                for (var i = 0, r = t.length; i < r; i++) {
                  var o = ia(t[i].seriesId, null)
                  if (null == o) return
                  for (var a = qo(t[i].dataIndex), s = n && n[o], l = 0, u = a.length; l < u; l++) {
                    var c = a[l]
                    s && s[c] ? (s[c] = null) : ((e[o] || (e[o] = {}))[c] = 1)
                  }
                }
              }
              function o(t, e) {
                var n = []
                for (var i in t)
                  if (t.hasOwnProperty(i) && null != t[i])
                    if (e) n.push(+i)
                    else {
                      var r = o(t[i], !0)
                      r.length && n.push({ seriesId: i, dataIndex: r })
                    }
                return n
              }
            })(c, h)
            this._dispatchHighDown('downplay', RU(d[0], n)), this._dispatchHighDown('highlight', RU(d[1], n))
          }
        }),
        (e.prototype._hoverLinkFromSeriesMouseOver = function (t) {
          var e
          if (
            (Qv(
              t.target,
              function (t) {
                var n = zl(t)
                if (null != n.dataIndex) return (e = n), !0
              },
              !0
            ),
            e)
          ) {
            var n = this.ecModel.getSeriesByIndex(e.seriesIndex),
              i = this.visualMapModel
            if (i.isTargetSeries(n)) {
              var r = n.getData(e.dataType),
                o = r.getStore().get(i.getDataDimensionIndex(r), e.dataIndex)
              isNaN(o) || this._showIndicator(o, o)
            }
          }
        }),
        (e.prototype._hideIndicator = function () {
          var t = this._shapes
          t.indicator && t.indicator.attr('invisible', !0), t.indicatorLabel && t.indicatorLabel.attr('invisible', !0)
          var e = this._shapes.handleLabels
          if (e) for (var n = 0; n < e.length; n++) this.api.leaveBlur(e[n])
        }),
        (e.prototype._clearHoverLinkToSeries = function () {
          this._hideIndicator()
          var t = this._hoverLinkDataIndices
          this._dispatchHighDown('downplay', RU(t, this.visualMapModel)), (t.length = 0)
        }),
        (e.prototype._clearHoverLinkFromSeries = function () {
          this._hideIndicator()
          var t = this.api.getZr()
          t.off('mouseover', this._hoverLinkFromSeriesMouseOver), t.off('mouseout', this._hideIndicator)
        }),
        (e.prototype._applyTransform = function (t, e, n, i) {
          var r = wh(e, i ? null : this.group)
          return U(t) ? Sh(t, r, n) : Mh(t, r, n)
        }),
        (e.prototype._dispatchHighDown = function (t, e) {
          e && e.length && this.api.dispatchAction({ type: t, batch: e })
        }),
        (e.prototype.dispose = function () {
          this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries()
        }),
        (e.type = 'visualMap.continuous'),
        e
      )
    })(LU)
  function GU(t, e, n, i) {
    return new Mc({
      shape: { points: t },
      draggable: !!n,
      cursor: e,
      drift: n,
      onmousemove: function (t) {
        fe(t.event)
      },
      ondragend: i
    })
  }
  function FU(t) {
    var e = t.get('hoverLinkOnHandle')
    return !!(null == e ? t.get('realtime') : e)
  }
  function WU(t) {
    return 'vertical' === t ? 'ns-resize' : 'ew-resize'
  }
  var HU = { type: 'selectDataRange', event: 'dataRangeSelected', update: 'update' },
    UU = function (t, e) {
      e.eachComponent({ mainType: 'visualMap', query: t }, function (e) {
        e.setSelected(t.selected)
      })
    },
    YU = [
      {
        createOnAllSeries: !0,
        reset: function (t, e) {
          var n = []
          return (
            e.eachComponent('visualMap', function (e) {
              var i,
                r,
                o,
                a,
                s,
                l = t.pipelineContext
              !e.isTargetSeries(t) ||
                (l && l.large) ||
                n.push(
                  ((i = e.stateList),
                  (r = e.targetVisuals),
                  (o = W(e.getValueState, e)),
                  (a = e.getDataDimensionIndex(t.getData())),
                  (s = {}),
                  z(i, function (t) {
                    var e = hL.prepareVisualTypes(r[t])
                    s[t] = e
                  }),
                  {
                    progress: function (t, e) {
                      var n, i
                      function l(t) {
                        return jv(e, i, t)
                      }
                      function u(t, n) {
                        Kv(e, i, t, n)
                      }
                      null != a && (n = e.getDimensionIndex(a))
                      for (var c = e.getStore(); null != (i = t.next()); ) {
                        var h = e.getRawDataItem(i)
                        if (!h || !1 !== h.visualMap)
                          for (var d = null != a ? c.get(n, i) : i, p = o(d), f = r[p], g = s[p], y = 0, v = g.length; y < v; y++) {
                            var m = g[y]
                            f[m] && f[m].applyVisual(d, l, u)
                          }
                      }
                    }
                  })
                )
            }),
            n
          )
        }
      },
      {
        createOnAllSeries: !0,
        reset: function (t, e) {
          var n = t.getData(),
            i = []
          e.eachComponent('visualMap', function (e) {
            if (e.isTargetSeries(t)) {
              var r = e.getVisualMeta(W(XU, null, t, e)) || { stops: [], outerColors: [] },
                o = e.getDataDimensionIndex(n)
              o >= 0 && ((r.dimension = o), i.push(r))
            }
          }),
            t.getData().setVisual('visualMeta', i)
        }
      }
    ]
  function XU(t, e, n, i) {
    for (var r = e.targetVisuals[i], o = hL.prepareVisualTypes(r), a = { color: qv(t.getData(), 'color') }, s = 0, l = o.length; s < l; s++) {
      var u = o[s],
        c = r['opacity' === u ? '__alphaForOpacity' : u]
      c && c.applyVisual(n, h, d)
    }
    return a.color
    function h(t) {
      return a[t]
    }
    function d(t, e) {
      a[t] = e
    }
  }
  var ZU = z
  function jU(t) {
    var e = t && t.visualMap
    U(e) || (e = e ? [e] : []),
      ZU(e, function (t) {
        if (t) {
          qU(t, 'splitList') && !qU(t, 'pieces') && ((t.pieces = t.splitList), delete t.splitList)
          var e = t.pieces
          e &&
            U(e) &&
            ZU(e, function (t) {
              q(t) && (qU(t, 'start') && !qU(t, 'min') && (t.min = t.start), qU(t, 'end') && !qU(t, 'max') && (t.max = t.end))
            })
        }
      })
  }
  function qU(t, e) {
    return t && t.hasOwnProperty && t.hasOwnProperty(e)
  }
  var KU = !1
  function $U(t) {
    KU ||
      ((KU = !0),
      t.registerSubTypeDefaulter('visualMap', function (t) {
        return t.categories || ((t.pieces ? t.pieces.length > 0 : t.splitNumber > 0) && !t.calculable) ? 'piecewise' : 'continuous'
      }),
      t.registerAction(HU, UU),
      z(YU, function (e) {
        t.registerVisual(t.PRIORITY.VISUAL.COMPONENT, e)
      }),
      t.registerPreprocessor(jU))
  }
  function JU(t) {
    t.registerComponentModel(AU), t.registerComponentView(VU), $U(t)
  }
  var QU = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n._pieceList = []), n
      }
      return (
        n(e, t),
        (e.prototype.optionUpdated = function (e, n) {
          t.prototype.optionUpdated.apply(this, arguments), this.resetExtent()
          var i = (this._mode = this._determineMode())
          ;(this._pieceList = []), tY[this._mode].call(this, this._pieceList), this._resetSelected(e, n)
          var r = this.option.categories
          this.resetVisual(function (t, e) {
            'categories' === i
              ? ((t.mappingMethod = 'category'), (t.categories = T(r)))
              : ((t.dataExtent = this.getExtent()),
                (t.mappingMethod = 'piecewise'),
                (t.pieceList = E(this._pieceList, function (t) {
                  return (t = T(t)), 'inRange' !== e && (t.visual = null), t
                })))
          })
        }),
        (e.prototype.completeVisualOption = function () {
          var e = this.option,
            n = {},
            i = hL.listVisualTypes(),
            r = this.isCategory()
          function o(t, e, n) {
            return t && t[e] && t[e].hasOwnProperty(n)
          }
          z(e.pieces, function (t) {
            z(i, function (e) {
              t.hasOwnProperty(e) && (n[e] = 1)
            })
          }),
            z(
              n,
              function (t, n) {
                var i = !1
                z(
                  this.stateList,
                  function (t) {
                    i = i || o(e, t, n) || o(e.target, t, n)
                  },
                  this
                ),
                  !i &&
                    z(this.stateList, function (t) {
                      ;(e[t] || (e[t] = {}))[n] = xU(n, 'inRange' === t ? 'active' : 'inactive', r)
                    })
              },
              this
            ),
            t.prototype.completeVisualOption.apply(this, arguments)
        }),
        (e.prototype._resetSelected = function (t, e) {
          var n = this.option,
            i = this._pieceList,
            r = (e ? n : t).selected || {}
          if (
            ((n.selected = r),
            z(
              i,
              function (t, e) {
                var n = this.getSelectedMapKey(t)
                r.hasOwnProperty(n) || (r[n] = !0)
              },
              this
            ),
            'single' === n.selectedMode)
          ) {
            var o = !1
            z(
              i,
              function (t, e) {
                var n = this.getSelectedMapKey(t)
                r[n] && (o ? (r[n] = !1) : (o = !0))
              },
              this
            )
          }
        }),
        (e.prototype.getItemSymbol = function () {
          return this.get('itemSymbol')
        }),
        (e.prototype.getSelectedMapKey = function (t) {
          return 'categories' === this._mode ? t.value + '' : t.index + ''
        }),
        (e.prototype.getPieceList = function () {
          return this._pieceList
        }),
        (e.prototype._determineMode = function () {
          var t = this.option
          return t.pieces && t.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber'
        }),
        (e.prototype.setSelected = function (t) {
          this.option.selected = T(t)
        }),
        (e.prototype.getValueState = function (t) {
          var e = hL.findPieceIndex(t, this._pieceList)
          return null != e && this.option.selected[this.getSelectedMapKey(this._pieceList[e])] ? 'inRange' : 'outOfRange'
        }),
        (e.prototype.findTargetDataIndices = function (t) {
          var e = [],
            n = this._pieceList
          return (
            this.eachTargetSeries(function (i) {
              var r = [],
                o = i.getData()
              o.each(
                this.getDataDimensionIndex(o),
                function (e, i) {
                  hL.findPieceIndex(e, n) === t && r.push(i)
                },
                this
              ),
                e.push({ seriesId: i.id, dataIndex: r })
            }, this),
            e
          )
        }),
        (e.prototype.getRepresentValue = function (t) {
          var e
          if (this.isCategory()) e = t.value
          else if (null != t.value) e = t.value
          else {
            var n = t.interval || []
            e = n[0] === -1 / 0 && n[1] === 1 / 0 ? 0 : (n[0] + n[1]) / 2
          }
          return e
        }),
        (e.prototype.getVisualMeta = function (t) {
          if (!this.isCategory()) {
            var e = [],
              n = ['', ''],
              i = this,
              r = this._pieceList.slice()
            if (r.length) {
              var o = r[0].interval[0]
              o !== -1 / 0 && r.unshift({ interval: [-1 / 0, o] }), (o = r[r.length - 1].interval[1]) !== 1 / 0 && r.push({ interval: [o, 1 / 0] })
            } else r.push({ interval: [-1 / 0, 1 / 0] })
            var a = -1 / 0
            return (
              z(
                r,
                function (t) {
                  var e = t.interval
                  e && (e[0] > a && s([a, e[0]], 'outOfRange'), s(e.slice()), (a = e[1]))
                },
                this
              ),
              { stops: e, outerColors: n }
            )
          }
          function s(r, o) {
            var a = i.getRepresentValue({ interval: r })
            o || (o = i.getValueState(a))
            var s = t(a, o)
            r[0] === -1 / 0 ? (n[0] = s) : r[1] === 1 / 0 ? (n[1] = s) : e.push({ value: r[0], color: s }, { value: r[1], color: s })
          }
        }),
        (e.type = 'visualMap.piecewise'),
        (e.defaultOption = Id(CU.defaultOption, {
          selected: null,
          minOpen: !1,
          maxOpen: !1,
          align: 'auto',
          itemWidth: 20,
          itemHeight: 14,
          itemSymbol: 'roundRect',
          pieces: null,
          categories: null,
          splitNumber: 5,
          selectedMode: 'multiple',
          itemGap: 10,
          hoverLink: !0
        })),
        e
      )
    })(CU),
    tY = {
      splitNumber: function (t) {
        var e = this.option,
          n = Math.min(e.precision, 20),
          i = this.getExtent(),
          r = e.splitNumber
        ;(r = Math.max(parseInt(r, 10), 1)), (e.splitNumber = r)
        for (var o = (i[1] - i[0]) / r; +o.toFixed(n) !== o && n < 5; ) n++
        ;(e.precision = n), (o = +o.toFixed(n)), e.minOpen && t.push({ interval: [-1 / 0, i[0]], close: [0, 0] })
        for (var a = 0, s = i[0]; a < r; s += o, a++) {
          var l = a === r - 1 ? i[1] : s + o
          t.push({ interval: [s, l], close: [1, 1] })
        }
        e.maxOpen && t.push({ interval: [i[1], 1 / 0], close: [0, 0] }),
          Ro(t),
          z(
            t,
            function (t, e) {
              ;(t.index = e), (t.text = this.formatValueText(t.interval))
            },
            this
          )
      },
      categories: function (t) {
        var e = this.option
        z(
          e.categories,
          function (e) {
            t.push({ text: this.formatValueText(e, !0), value: e })
          },
          this
        ),
          eY(e, t)
      },
      pieces: function (t) {
        var e = this.option
        z(
          e.pieces,
          function (e, n) {
            q(e) || (e = { value: e })
            var i = { text: '', index: n }
            if ((null != e.label && (i.text = e.label), e.hasOwnProperty('value'))) {
              var r = (i.value = e.value)
              ;(i.interval = [r, r]), (i.close = [1, 1])
            } else {
              for (var o = (i.interval = []), a = (i.close = [0, 0]), s = [1, 0, 1], l = [-1 / 0, 1 / 0], u = [], c = 0; c < 2; c++) {
                for (
                  var h = [
                      ['gte', 'gt', 'min'],
                      ['lte', 'lt', 'max']
                    ][c],
                    d = 0;
                  d < 3 && null == o[c];
                  d++
                )
                  (o[c] = e[h[d]]), (a[c] = s[d]), (u[c] = 2 === d)
                null == o[c] && (o[c] = l[c])
              }
              u[0] && o[1] === 1 / 0 && (a[0] = 0), u[1] && o[0] === -1 / 0 && (a[1] = 0), o[0] === o[1] && a[0] && a[1] && (i.value = o[0])
            }
            ;(i.visual = hL.retrieveVisuals(e)), t.push(i)
          },
          this
        ),
          eY(e, t),
          Ro(t),
          z(
            t,
            function (t) {
              var e = t.close,
                n = [['<', '≤'][e[1]], ['>', '≥'][e[0]]]
              t.text = t.text || this.formatValueText(null != t.value ? t.value : t.interval, !1, n)
            },
            this
          )
      }
    }
  function eY(t, e) {
    var n = t.inverse
    ;('vertical' === t.orient ? !n : n) && e.reverse()
  }
  var nY = (function (t) {
    function e() {
      var n = (null !== t && t.apply(this, arguments)) || this
      return (n.type = e.type), n
    }
    return (
      n(e, t),
      (e.prototype.doRender = function () {
        var t = this.group
        t.removeAll()
        var e = this.visualMapModel,
          n = e.get('textGap'),
          i = e.textStyleModel,
          r = this._getItemAlign(),
          o = e.itemSize,
          a = this._getViewData(),
          s = a.endsText,
          l = it(e.get('showLabel', !0), !s),
          u = !e.get('selectedMode')
        s && this._renderEndsText(t, s[0], o, l, r),
          z(
            a.viewPieceList,
            function (a) {
              var s = a.piece,
                c = new to()
              ;(c.onclick = W(this._onItemClick, this, s)), this._enableHoverLink(c, a.indexInModelPieceList)
              var h = e.getRepresentValue(s)
              if ((this._createItemSymbol(c, h, [0, 0, o[0], o[1]], u), l)) {
                var d = this.visualMapModel.getValueState(h),
                  p = i.get('align') || r
                c.add(
                  new Sl({
                    style: Qh(i, {
                      x: 'right' === p ? -n : o[0] + n,
                      y: o[1] / 2,
                      text: s.text,
                      verticalAlign: i.get('verticalAlign') || 'middle',
                      align: p,
                      opacity: rt(i.get('opacity'), 'outOfRange' === d ? 0.5 : 1)
                    }),
                    silent: u
                  })
                )
              }
              t.add(c)
            },
            this
          ),
          s && this._renderEndsText(t, s[1], o, l, r),
          Gp(e.get('orient'), t, e.get('itemGap')),
          this.renderBackground(t),
          this.positionGroup(t)
      }),
      (e.prototype._enableHoverLink = function (t, e) {
        var n = this
        t.on('mouseover', function () {
          return i('highlight')
        }).on('mouseout', function () {
          return i('downplay')
        })
        var i = function (t) {
          var i = n.visualMapModel
          i.option.hoverLink && n.api.dispatchAction({ type: t, batch: RU(i.findTargetDataIndices(e), i) })
        }
      }),
      (e.prototype._getItemAlign = function () {
        var t = this.visualMapModel,
          e = t.option
        if ('vertical' === e.orient) return OU(t, this.api, t.itemSize)
        var n = e.align
        return (n && 'auto' !== n) || (n = 'left'), n
      }),
      (e.prototype._renderEndsText = function (t, e, n, i, r) {
        if (e) {
          var o = new to(),
            a = this.visualMapModel.textStyleModel
          o.add(new Sl({ style: Qh(a, { x: i ? ('right' === r ? n[0] : 0) : n[0] / 2, y: n[1] / 2, verticalAlign: 'middle', align: i ? r : 'center', text: e }) })), t.add(o)
        }
      }),
      (e.prototype._getViewData = function () {
        var t = this.visualMapModel,
          e = E(t.getPieceList(), function (t, e) {
            return { piece: t, indexInModelPieceList: e }
          }),
          n = t.get('text'),
          i = t.get('orient'),
          r = t.get('inverse')
        return ('horizontal' === i ? r : !r) ? e.reverse() : n && (n = n.slice().reverse()), { viewPieceList: e, endsText: n }
      }),
      (e.prototype._createItemSymbol = function (t, e, n, i) {
        var r = hm(this.getControllerVisual(e, 'symbol'), n[0], n[1], n[2], n[3], this.getControllerVisual(e, 'color'))
        ;(r.silent = i), t.add(r)
      }),
      (e.prototype._onItemClick = function (t) {
        var e = this.visualMapModel,
          n = e.option,
          i = n.selectedMode
        if (i) {
          var r = T(n.selected),
            o = e.getSelectedMapKey(t)
          'single' === i || !0 === i
            ? ((r[o] = !0),
              z(r, function (t, e) {
                r[e] = e === o
              }))
            : (r[o] = !r[o]),
            this.api.dispatchAction({ type: 'selectDataRange', from: this.uid, visualMapId: this.visualMapModel.id, selected: r })
        }
      }),
      (e.type = 'visualMap.piecewise'),
      e
    )
  })(LU)
  function iY(t) {
    t.registerComponentModel(QU), t.registerComponentView(nY), $U(t)
  }
  var rY = (function () {
      function t(t) {
        this._thumbnailModel = t
      }
      return (
        (t.prototype.reset = function (t) {
          this._renderVersion = t.getMainProcessVersion()
        }),
        (t.prototype.renderContent = function (t) {
          var e = t.api.getViewOfComponentModel(this._thumbnailModel)
          e &&
            ((t.group.silent = !0),
            e.renderContent({
              group: t.group,
              targetTrans: t.targetTrans,
              z2Range: Uh(t.group),
              roamType: t.roamType,
              viewportRect: t.viewportRect,
              renderVersion: this._renderVersion
            }))
        }),
        (t.prototype.updateWindow = function (t, e) {
          var n = e.getViewOfComponentModel(this._thumbnailModel)
          n && n.updateWindow({ targetTrans: t, renderVersion: this._renderVersion })
        }),
        t
      )
    })(),
    oY = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), (n.preventAutoZ = !0), n
      }
      return (
        n(e, t),
        (e.prototype.optionUpdated = function (t, e) {
          this._updateBridge()
        }),
        (e.prototype._updateBridge = function () {
          var t = (this._birdge = this._birdge || new rY(this))
          ;((this._target = null),
          this.ecModel.eachSeries(function (t) {
            BP(t, null)
          }),
          this.shouldShow()) && BP(this.getTarget().baseMapProvider, t)
        }),
        (e.prototype.shouldShow = function () {
          return this.getShallow('show', !0)
        }),
        (e.prototype.getBridge = function () {
          return this._birdge
        }),
        (e.prototype.getTarget = function () {
          if (this._target) return this._target
          var t = this.getReferringComponents('series', { useDefault: !1, enableAll: !1, enableNone: !1 }).models[0]
          return (
            t ? 'graph' !== t.subType && (t = null) : (t = this.ecModel.queryComponents({ mainType: 'series', subType: 'graph' })[0]),
            (this._target = { baseMapProvider: t }),
            this._target
          )
        }),
        (e.type = 'thumbnail'),
        (e.layoutMode = 'box'),
        (e.dependencies = ['series', 'geo']),
        (e.defaultOption = {
          show: !0,
          right: 1,
          bottom: 1,
          height: '25%',
          width: '25%',
          itemStyle: { borderColor: tf.color.border, borderWidth: 2 },
          windowStyle: { borderWidth: 1, color: tf.color.neutral30, borderColor: tf.color.neutral40, opacity: 0.3 },
          z: 10
        }),
        e
      )
    })(Qp),
    aY = (function (t) {
      function e() {
        var n = (null !== t && t.apply(this, arguments)) || this
        return (n.type = e.type), n
      }
      return (
        n(e, t),
        (e.prototype.render = function (t, e, n) {
          if (((this._api = n), (this._model = t), this._coordSys || (this._coordSys = new KA()), this._isEnabled())) {
            this._renderVersion = n.getMainProcessVersion()
            var i = this.group
            i.removeAll()
            var r = t.getModel('itemStyle'),
              o = r.getItemStyle()
            null == o.fill && (o.fill = e.get('backgroundColor') || tf.color.neutral00)
            var a = Xp(t, n).refContainer,
              s = Hp(Fp(t, !0), a),
              l = o.lineWidth || 0,
              u = (this._contentRect = Oh(s.clone(), l / 2, !0, !0)),
              c = new to()
            i.add(c), c.setClipPath(new xl({ shape: u.plain() }))
            var h = (this._targetGroup = new to())
            c.add(h)
            var d = s.plain()
            ;(d.r = r.getShallow('borderRadius', !0)), i.add((this._bgRect = new xl({ style: o, shape: d, silent: !1, cursor: 'grab' })))
            var p = t.getModel('windowStyle'),
              f = p.getShallow('borderRadius', !0)
            c.add((this._windowRect = new xl({ shape: { x: 0, y: 0, width: 0, height: 0, r: f }, style: p.getItemStyle(), silent: !1, cursor: 'grab' }))),
              this._dealRenderContent(),
              this._dealUpdateWindow(),
              lY(t, this)
          } else this._clear()
        }),
        (e.prototype.renderContent = function (t) {
          ;(this._bridgeRendered = t), this._isEnabled() && (this._dealRenderContent(), this._dealUpdateWindow(), lY(this._model, this))
        }),
        (e.prototype._dealRenderContent = function () {
          var t = this._bridgeRendered
          if (t && t.renderVersion === this._renderVersion) {
            var e = this._targetGroup,
              n = this._coordSys,
              i = this._contentRect
            if ((e.removeAll(), t)) {
              var r = t.group,
                o = r.getBoundingRect()
              e.add(r), (this._bgRect.z2 = t.z2Range.min - 10), n.setBoundingRect(o.x, o.y, o.width, o.height)
              var a = Hp({ left: 'center', top: 'center', aspect: o.width / o.height }, i)
              n.setViewRect(a.x, a.y, a.width, a.height), r.attr(n.getTransformInfo().raw), (this._windowRect.z2 = t.z2Range.max + 10), this._resetRoamController(t.roamType)
            }
          }
        }),
        (e.prototype.updateWindow = function (t) {
          var e = this._bridgeRendered
          e && e.renderVersion === t.renderVersion && (e.targetTrans = t.targetTrans), this._isEnabled() && this._dealUpdateWindow()
        }),
        (e.prototype._dealUpdateWindow = function () {
          var t = this._bridgeRendered
          if (t && t.renderVersion === this._renderVersion) {
            var e = Te([], t.targetTrans),
              n = we([], this._coordSys.transform, e)
            this._transThisToTarget = Te([], n)
            var i = t.viewportRect
            ;(i = i ? i.clone() : new He(0, 0, this._api.getWidth(), this._api.getHeight())).applyTransform(n)
            var r = this._windowRect,
              o = r.shape.r
            r.setShape(k({ r: o }, i))
          }
        }),
        (e.prototype._resetRoamController = function (t) {
          var e = this,
            n = this._api,
            i = this._roamController
          i || (i = this._roamController = new LD(n.getZr())),
            t && this._isEnabled()
              ? (i.enable(t, {
                  api: n,
                  zInfo: { component: this._model },
                  triggerInfo: {
                    roamTrigger: null,
                    isInSelf: function (t, n, i) {
                      return e._contentRect.contain(n, i)
                    }
                  }
                }),
                i.off('pan').off('zoom').on('pan', W(this._onPan, this)).on('zoom', W(this._onZoom, this)))
              : i.disable()
        }),
        (e.prototype._onPan = function (t) {
          var e = this._transThisToTarget
          if (this._isEnabled() && e) {
            var n = Ht([], [t.oldX, t.oldY], e),
              i = Ht([], [t.oldX - t.dx, t.oldY - t.dy], e)
            this._api.dispatchAction(sY(this._model.getTarget().baseMapProvider, { dx: i[0] - n[0], dy: i[1] - n[1] }))
          }
        }),
        (e.prototype._onZoom = function (t) {
          var e = this._transThisToTarget
          if (this._isEnabled() && e) {
            var n = Ht([], [t.originX, t.originY], e)
            this._api.dispatchAction(sY(this._model.getTarget().baseMapProvider, { zoom: 1 / t.scale, originX: n[0], originY: n[1] }))
          }
        }),
        (e.prototype._isEnabled = function () {
          var t = this._model
          return !(!t || !t.shouldShow()) && !!t.getTarget().baseMapProvider
        }),
        (e.prototype._clear = function () {
          this.group.removeAll(), (this._bridgeRendered = null), this._roamController && this._roamController.disable()
        }),
        (e.prototype.remove = function () {
          this._clear()
        }),
        (e.prototype.dispose = function () {
          this._clear()
        }),
        (e.type = 'thumbnail'),
        e
      )
    })(Ky)
  function sY(t, e) {
    var n = { type: 'series' === t.mainType ? t.subType + 'Roam' : t.mainType + 'Roam' }
    return (n[t.mainType + 'Id'] = t.id), A(n, e), n
  }
  function lY(t, e) {
    var n = Hh(t)
    Yh(e.group, n.z, n.zlevel)
  }
  var uY = { label: { enabled: !0 }, decal: { show: !1 } },
    cY = sa(),
    hY = {}
  function dY(t, e) {
    var n = t.getModel('aria')
    if (n.get('enabled')) {
      var i = T(uY)
      C(i.label, t.getLocaleModel().get('aria'), !1),
        C(n.option, i, !1),
        (function () {
          if (n.getModel('decal').get('show')) {
            var e = yt()
            t.eachSeries(function (t) {
              if (!t.isColorBySeries()) {
                var n = e.get(t.type)
                n || ((n = {}), e.set(t.type, n)), (cY(t).scope = n)
              }
            }),
              t.eachRawSeries(function (e) {
                if (!t.isSeriesFiltered(e))
                  if (Y(e.enableAriaDecal)) e.enableAriaDecal()
                  else {
                    var n = e.getData()
                    if (e.isColorBySeries()) {
                      var i = Nf(e.ecModel, e.name, hY, t.getSeriesCount()),
                        r = n.getVisual('decal')
                      n.setVisual('decal', u(r, i))
                    } else {
                      var o = e.getRawData(),
                        a = {},
                        s = cY(e).scope
                      n.each(function (t) {
                        var e = n.getRawIndex(t)
                        a[e] = t
                      })
                      var l = o.count()
                      o.each(function (t) {
                        var i = a[t],
                          r = o.getName(t) || t + '',
                          c = Nf(e.ecModel, r, s, l),
                          h = n.getItemVisual(i, 'decal')
                        n.setItemVisual(i, 'decal', u(h, c))
                      })
                    }
                  }
                function u(t, e) {
                  var n = t ? A(A({}, e), t) : e
                  return (n.dirty = !0), n
                }
              })
          }
        })(),
        (function () {
          var i = e.getZr().dom
          if (!i) return
          var o = t.getLocaleModel().get('aria'),
            a = n.getModel('label')
          if (((a.option = k(a.option, o)), !a.get('enabled'))) return
          if ((i.setAttribute('role', 'img'), a.get('description'))) return void i.setAttribute('aria-label', a.get('description'))
          var s,
            l = t.getSeriesCount(),
            u = a.get(['data', 'maxCount']) || 10,
            c = a.get(['series', 'maxCount']) || 10,
            h = Math.min(l, c)
          if (l < 1) return
          var d = (function () {
            var e = t.get('title')
            e && e.length && (e = e[0])
            return e && e.text
          })()
          s = d ? r(a.get(['general', 'withTitle']), { title: d }) : a.get(['general', 'withoutTitle'])
          var p = []
          ;(s += r(l > 1 ? a.get(['series', 'multiple', 'prefix']) : a.get(['series', 'single', 'prefix']), { seriesCount: l })),
            t.eachSeries(function (e, n) {
              if (n < h) {
                var i = void 0,
                  o = e.get('name') ? 'withName' : 'withoutName'
                i = r((i = l > 1 ? a.get(['series', 'multiple', o]) : a.get(['series', 'single', o])), {
                  seriesId: e.seriesIndex,
                  seriesName: e.get('name'),
                  seriesType: ((_ = e.subType), (b = t.getLocaleModel().get(['series', 'typeNames'])), b[_] || b.chart)
                })
                var s = e.getData()
                if (s.count() > u) i += r(a.get(['data', 'partialData']), { displayCnt: u })
                else i += a.get(['data', 'allData'])
                for (
                  var c = a.get(['data', 'separator', 'middle']), d = a.get(['data', 'separator', 'end']), f = a.get(['data', 'excludeDimensionId']), g = [], y = 0;
                  y < s.count();
                  y++
                )
                  if (y < u) {
                    var v = s.getName(y),
                      m = f
                        ? V(s.getValues(y), function (t, e) {
                            return -1 === P(f, e)
                          })
                        : s.getValues(y),
                      x = a.get(['data', v ? 'withName' : 'withoutName'])
                    g.push(r(x, { name: v, value: m.join(c) }))
                  }
                ;(i += g.join(c) + d), p.push(i)
              }
              var _, b
            })
          var f = a.getModel(['series', 'multiple', 'separator']),
            g = f.get('middle'),
            y = f.get('end')
          ;(s += p.join(g) + y), i.setAttribute('aria-label', s)
        })()
    }
    function r(t, e) {
      if (!X(t)) return t
      var n = t
      return (
        z(e, function (t, e) {
          n = n.replace(new RegExp('\\{\\s*' + e + '\\s*\\}', 'g'), t)
        }),
        n
      )
    }
  }
  function pY(t) {
    if (t && t.aria) {
      var e = t.aria
      null != e.show && (e.enabled = e.show),
        (e.label = e.label || {}),
        z(['description', 'general', 'series', 'data'], function (t) {
          null != e[t] && (e.label[t] = e[t])
        })
    }
  }
  var fY = { value: 'eq', '<': 'lt', '<=': 'lte', '>': 'gt', '>=': 'gte', '=': 'eq', '!=': 'ne', '<>': 'ne' },
    gY = (function () {
      function t(t) {
        if (null == (this._condVal = X(t) ? new RegExp(t) : et(t) ? t : null)) {
          var e = ''
          0, Yo(e)
        }
      }
      return (
        (t.prototype.evaluate = function (t) {
          var e = typeof t
          return X(e) ? this._condVal.test(t) : !!j(e) && this._condVal.test(t + '')
        }),
        t
      )
    })(),
    yY = (function () {
      function t() {}
      return (
        (t.prototype.evaluate = function () {
          return this.value
        }),
        t
      )
    })(),
    vY = (function () {
      function t() {}
      return (
        (t.prototype.evaluate = function () {
          for (var t = this.children, e = 0; e < t.length; e++) if (!t[e].evaluate()) return !1
          return !0
        }),
        t
      )
    })(),
    mY = (function () {
      function t() {}
      return (
        (t.prototype.evaluate = function () {
          for (var t = this.children, e = 0; e < t.length; e++) if (t[e].evaluate()) return !0
          return !1
        }),
        t
      )
    })(),
    xY = (function () {
      function t() {}
      return (
        (t.prototype.evaluate = function () {
          return !this.child.evaluate()
        }),
        t
      )
    })(),
    _Y = (function () {
      function t() {}
      return (
        (t.prototype.evaluate = function () {
          for (var t = !!this.valueParser, e = (0, this.getValue)(this.valueGetterParam), n = t ? this.valueParser(e) : null, i = 0; i < this.subCondList.length; i++)
            if (!this.subCondList[i].evaluate(t ? n : e)) return !1
          return !0
        }),
        t
      )
    })()
  function bY(t, e) {
    if (!0 === t || !1 === t) {
      var n = new yY()
      return (n.value = t), n
    }
    var i = ''
    return (
      SY(t) || Yo(i),
      t.and
        ? wY('and', t, e)
        : t.or
          ? wY('or', t, e)
          : t.not
            ? (function (t, e) {
                var n = t.not,
                  i = ''
                0
                SY(n) || Yo(i)
                var r = new xY()
                ;(r.child = bY(n, e)), r.child || Yo(i)
                return r
              })(t, e)
            : (function (t, e) {
                for (var n = '', i = e.prepareGetValue(t), r = [], o = F(t), a = t.parser, s = a ? jg(a) : null, l = 0; l < o.length; l++) {
                  var u = o[l]
                  if ('parser' !== u && !e.valueGetterAttrMap.get(u)) {
                    var c = _t(fY, u) ? fY[u] : u,
                      h = t[u],
                      d = s ? s(h) : h,
                      p = Qg(c, d) || ('reg' === c && new gY(d))
                    p || Yo(n), r.push(p)
                  }
                }
                r.length || Yo(n)
                var f = new _Y()
                return (f.valueGetterParam = i), (f.valueParser = s), (f.getValue = e.getValue), (f.subCondList = r), f
              })(t, e)
    )
  }
  function wY(t, e, n) {
    var i = e[t],
      r = ''
    U(i) || Yo(r), i.length || Yo(r)
    var o = 'and' === t ? new vY() : new mY()
    return (
      (o.children = E(i, function (t) {
        return bY(t, n)
      })),
      o.children.length || Yo(r),
      o
    )
  }
  function SY(t) {
    return q(t) && !N(t)
  }
  var MY = (function () {
    function t(t, e) {
      this._cond = bY(t, e)
    }
    return (
      (t.prototype.evaluate = function () {
        return this._cond.evaluate()
      }),
      t
    )
  })()
  var IY = {
    type: 'echarts:filter',
    transform: function (t) {
      for (
        var e,
          n,
          i,
          r = t.upstream,
          o =
            ((n = t.config),
            (i = {
              valueGetterAttrMap: yt({ dimension: !0 }),
              prepareGetValue: function (t) {
                var e = '',
                  n = t.dimension
                _t(t, 'dimension') || Yo(e)
                var i = r.getDimensionInfo(n)
                return i || Yo(e), { dimIdx: i.index }
              },
              getValue: function (t) {
                return r.retrieveValueFromItem(e, t.dimIdx)
              }
            }),
            new MY(n, i)),
          a = [],
          s = 0,
          l = r.count();
        s < l;
        s++
      )
        (e = r.getRawDataItem(s)), o.evaluate() && a.push(e)
      return { data: a }
    }
  }
  var TY = {
    type: 'echarts:sort',
    transform: function (t) {
      var e = t.upstream,
        n = t.config,
        i = '',
        r = qo(n)
      r.length || Yo(i)
      var o = []
      z(r, function (t) {
        var n = t.dimension,
          r = t.order,
          a = t.parser,
          s = t.incomparable
        if ((null == n && Yo(i), 'asc' !== r && 'desc' !== r && Yo(i), s && 'min' !== s && 'max' !== s)) {
          var l = ''
          0, Yo(l)
        }
        if ('asc' !== r && 'desc' !== r) {
          var u = ''
          0, Yo(u)
        }
        var c = e.getDimensionInfo(n)
        c || Yo(i)
        var h = a ? jg(a) : null
        a && !h && Yo(i), o.push({ dimIdx: c.index, parser: h, comparator: new $g(r, s) })
      })
      var a = e.sourceFormat
      a !== df && a !== pf && Yo(i)
      for (var s = [], l = 0, u = e.count(); l < u; l++) s.push(e.getRawDataItem(l))
      return (
        s.sort(function (t, n) {
          for (var i = 0; i < o.length; i++) {
            var r = o[i],
              a = e.retrieveValueFromItem(t, r.dimIdx),
              s = e.retrieveValueFromItem(n, r.dimIdx)
            r.parser && ((a = r.parser(a)), (s = r.parser(s)))
            var l = r.comparator.evaluate(a, s)
            if (0 !== l) return l
          }
          return 0
        }),
        { data: s }
      )
    }
  }
  var CY = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.type = 'dataset'), e
      }
      return (
        n(e, t),
        (e.prototype.init = function (e, n, i) {
          t.prototype.init.call(this, e, n, i), (this._sourceManager = new my(this)), xy(this)
        }),
        (e.prototype.mergeOption = function (e, n) {
          t.prototype.mergeOption.call(this, e, n), xy(this)
        }),
        (e.prototype.optionUpdated = function () {
          this._sourceManager.dirty()
        }),
        (e.prototype.getSourceManager = function () {
          return this._sourceManager
        }),
        (e.type = 'dataset'),
        (e.defaultOption = { seriesLayoutBy: vf }),
        e
      )
    })(Qp),
    DY = (function (t) {
      function e() {
        var e = (null !== t && t.apply(this, arguments)) || this
        return (e.type = 'dataset'), e
      }
      return n(e, t), (e.type = 'dataset'), e
    })(Ky)
  var AY = Fs.CMD
  function kY(t, e) {
    return Math.abs(t - e) < 1e-5
  }
  function LY(t) {
    var e,
      n,
      i,
      r,
      o,
      a = t.data,
      s = t.len(),
      l = [],
      u = 0,
      c = 0,
      h = 0,
      d = 0
    function p(t, n) {
      e && e.length > 2 && l.push(e), (e = [t, n])
    }
    function f(t, n, i, r) {
      ;(kY(t, i) && kY(n, r)) || e.push(t, n, i, r, i, r)
    }
    function g(t, n, i, r, o, a) {
      var s = Math.abs(n - t),
        l = (4 * Math.tan(s / 4)) / 3,
        u = n < t ? -1 : 1,
        c = Math.cos(t),
        h = Math.sin(t),
        d = Math.cos(n),
        p = Math.sin(n),
        f = c * o + i,
        g = h * a + r,
        y = d * o + i,
        v = p * a + r,
        m = o * l * u,
        x = a * l * u
      e.push(f - m * h, g + x * c, y + m * p, v - x * d, y, v)
    }
    for (var y = 0; y < s; ) {
      var v = a[y++],
        m = 1 === y
      switch ((m && ((h = u = a[y]), (d = c = a[y + 1]), (v !== AY.L && v !== AY.C && v !== AY.Q) || (e = [h, d])), v)) {
        case AY.M:
          ;(u = h = a[y++]), (c = d = a[y++]), p(h, d)
          break
        case AY.L:
          f(u, c, (n = a[y++]), (i = a[y++])), (u = n), (c = i)
          break
        case AY.C:
          e.push(a[y++], a[y++], a[y++], a[y++], (u = a[y++]), (c = a[y++]))
          break
        case AY.Q:
          ;(n = a[y++]),
            (i = a[y++]),
            (r = a[y++]),
            (o = a[y++]),
            e.push(u + (2 / 3) * (n - u), c + (2 / 3) * (i - c), r + (2 / 3) * (n - r), o + (2 / 3) * (i - o), r, o),
            (u = r),
            (c = o)
          break
        case AY.A:
          var x = a[y++],
            _ = a[y++],
            b = a[y++],
            w = a[y++],
            S = a[y++],
            M = a[y++] + S
          y += 1
          var I = !a[y++]
          ;(n = Math.cos(S) * b + x), (i = Math.sin(S) * w + _), m ? p((h = n), (d = i)) : f(u, c, n, i), (u = Math.cos(M) * b + x), (c = Math.sin(M) * w + _)
          for (var T = ((I ? -1 : 1) * Math.PI) / 2, C = S; I ? C > M : C < M; C += T) {
            g(C, I ? Math.max(C + T, M) : Math.min(C + T, M), x, _, b, w)
          }
          break
        case AY.R:
          ;(h = u = a[y++]), (d = c = a[y++]), (n = h + a[y++]), (i = d + a[y++]), p(n, d), f(n, d, n, i), f(n, i, h, i), f(h, i, h, d), f(h, d, n, d)
          break
        case AY.Z:
          e && f(u, c, h, d), (u = h), (c = d)
      }
    }
    return e && e.length > 2 && l.push(e), l
  }
  function PY(t, e, n, i, r, o, a, s, l, u) {
    if (kY(t, n) && kY(e, i) && kY(r, a) && kY(o, s)) l.push(a, s)
    else {
      var c = 2 / u,
        h = c * c,
        d = a - t,
        p = s - e,
        f = Math.sqrt(d * d + p * p)
      ;(d /= f), (p /= f)
      var g = n - t,
        y = i - e,
        v = r - a,
        m = o - s,
        x = g * g + y * y,
        _ = v * v + m * m
      if (x < h && _ < h) l.push(a, s)
      else {
        var b = d * g + p * y,
          w = -d * v - p * m
        if (x - b * b < h && b >= 0 && _ - w * w < h && w >= 0) l.push(a, s)
        else {
          var S = [],
            M = []
          Pn(t, n, r, a, 0.5, S), Pn(e, i, o, s, 0.5, M), PY(S[0], M[0], S[1], M[1], S[2], M[2], S[3], M[3], l, u), PY(S[4], M[4], S[5], M[5], S[6], M[6], S[7], M[7], l, u)
        }
      }
    }
  }
  function OY(t, e, n) {
    var i = t[e],
      r = t[1 - e],
      o = Math.abs(i / r),
      a = Math.ceil(Math.sqrt(o * n)),
      s = Math.floor(n / a)
    0 === s && ((s = 1), (a = n))
    for (var l = [], u = 0; u < a; u++) l.push(s)
    var c = n - a * s
    if (c > 0) for (u = 0; u < c; u++) l[u % a] += 1
    return l
  }
  function RY(t, e, n) {
    for (
      var i = t.r0,
        r = t.r,
        o = t.startAngle,
        a = t.endAngle,
        s = Math.abs(a - o),
        l = s * r,
        u = r - i,
        c = l > Math.abs(u),
        h = OY([l, u], c ? 0 : 1, e),
        d = (c ? s : u) / h.length,
        p = 0;
      p < h.length;
      p++
    )
      for (var f = (c ? u : s) / h[p], g = 0; g < h[p]; g++) {
        var y = {}
        c
          ? ((y.startAngle = o + d * p), (y.endAngle = o + d * (p + 1)), (y.r0 = i + f * g), (y.r = i + f * (g + 1)))
          : ((y.startAngle = o + f * g), (y.endAngle = o + f * (g + 1)), (y.r0 = i + d * p), (y.r = i + d * (p + 1))),
          (y.clockwise = t.clockwise),
          (y.cx = t.cx),
          (y.cy = t.cy),
          n.push(y)
      }
  }
  function NY(t, e, n, i) {
    return t * i - n * e
  }
  function zY(t, e, n, i, r, o, a, s) {
    var l = n - t,
      u = i - e,
      c = a - r,
      h = s - o,
      d = NY(c, h, l, u)
    if (Math.abs(d) < 1e-6) return null
    var p = NY(t - r, e - o, c, h) / d
    return p < 0 || p > 1 ? null : new Ae(p * l + t, p * u + e)
  }
  function EY(t, e, n) {
    var i = new Ae()
    Ae.sub(i, n, e), i.normalize()
    var r = new Ae()
    return Ae.sub(r, t, e), r.dot(i)
  }
  function BY(t, e) {
    var n = t[t.length - 1]
    ;(n && n[0] === e[0] && n[1] === e[1]) || t.push(e)
  }
  function VY(t) {
    var e = t.points,
      n = [],
      i = []
    ys(e, n, i)
    var r = new He(n[0], n[1], i[0] - n[0], i[1] - n[1]),
      o = r.width,
      a = r.height,
      s = r.x,
      l = r.y,
      u = new Ae(),
      c = new Ae()
    return (
      o > a ? ((u.x = c.x = s + o / 2), (u.y = l), (c.y = l + a)) : ((u.y = c.y = l + a / 2), (u.x = s), (c.x = s + o)),
      (function (t, e, n) {
        for (var i = t.length, r = [], o = 0; o < i; o++) {
          var a = t[o],
            s = t[(o + 1) % i],
            l = zY(a[0], a[1], s[0], s[1], e.x, e.y, n.x, n.y)
          l && r.push({ projPt: EY(l, e, n), pt: l, idx: o })
        }
        if (r.length < 2) return [{ points: t }, { points: t }]
        r.sort(function (t, e) {
          return t.projPt - e.projPt
        })
        var u = r[0],
          c = r[r.length - 1]
        if (c.idx < u.idx) {
          var h = u
          ;(u = c), (c = h)
        }
        var d = [u.pt.x, u.pt.y],
          p = [c.pt.x, c.pt.y],
          f = [d],
          g = [p]
        for (o = u.idx + 1; o <= c.idx; o++) BY(f, t[o].slice())
        for (BY(f, p), BY(f, d), o = c.idx + 1; o <= u.idx + i; o++) BY(g, t[o % i].slice())
        return BY(g, d), BY(g, p), [{ points: f }, { points: g }]
      })(e, u, c)
    )
  }
  function GY(t, e, n, i) {
    if (1 === n) i.push(e)
    else {
      var r = Math.floor(n / 2),
        o = t(e)
      GY(t, o[0], r, i), GY(t, o[1], n - r, i)
    }
    return i
  }
  function FY(t, e) {
    e.setStyle(t.style), (e.z = t.z), (e.z2 = t.z2), (e.zlevel = t.zlevel)
  }
  function WY(t, e) {
    var n,
      i = [],
      r = t.shape
    switch (t.type) {
      case 'rect':
        !(function (t, e, n) {
          for (
            var i = t.width,
              r = t.height,
              o = i > r,
              a = OY([i, r], o ? 0 : 1, e),
              s = o ? 'width' : 'height',
              l = o ? 'height' : 'width',
              u = o ? 'x' : 'y',
              c = o ? 'y' : 'x',
              h = t[s] / a.length,
              d = 0;
            d < a.length;
            d++
          )
            for (var p = t[l] / a[d], f = 0; f < a[d]; f++) {
              var g = {}
              ;(g[u] = d * h), (g[c] = f * p), (g[s] = h), (g[l] = p), (g.x += t.x), (g.y += t.y), n.push(g)
            }
        })(r, e, i),
          (n = xl)
        break
      case 'sector':
        RY(r, e, i), (n = xc)
        break
      case 'circle':
        RY({ r0: 0, r: r.r, startAngle: 0, endAngle: 2 * Math.PI, cx: r.cx, cy: r.cy }, e, i), (n = xc)
        break
      default:
        var o = t.getComputedTransform(),
          a = o ? Math.sqrt(Math.max(o[0] * o[0] + o[1] * o[1], o[2] * o[2] + o[3] * o[3])) : 1,
          s = E(
            (function (t, e) {
              var n = LY(t),
                i = []
              e = e || 1
              for (var r = 0; r < n.length; r++) {
                var o = n[r],
                  a = [],
                  s = o[0],
                  l = o[1]
                a.push(s, l)
                for (var u = 2; u < o.length; ) {
                  var c = o[u++],
                    h = o[u++],
                    d = o[u++],
                    p = o[u++],
                    f = o[u++],
                    g = o[u++]
                  PY(s, l, c, h, d, p, f, g, a, e), (s = f), (l = g)
                }
                i.push(a)
              }
              return i
            })(t.getUpdatedPathProxy(), a),
            function (t) {
              return (function (t) {
                for (var e = [], n = 0; n < t.length; ) e.push([t[n++], t[n++]])
                return e
              })(t)
            }
          ),
          l = s.length
        if (0 === l) GY(VY, { points: s[0] }, e, i)
        else if (l === e) for (var u = 0; u < l; u++) i.push({ points: s[u] })
        else {
          var c = 0,
            h = E(s, function (t) {
              var e = [],
                n = []
              ys(t, e, n)
              var i = (n[1] - e[1]) * (n[0] - e[0])
              return (c += i), { poly: t, area: i }
            })
          h.sort(function (t, e) {
            return e.area - t.area
          })
          var d = e
          for (u = 0; u < l; u++) {
            var p = h[u]
            if (d <= 0) break
            var f = u === l - 1 ? d : Math.ceil((p.area / c) * e)
            f < 0 || (GY(VY, { points: p.poly }, f, i), (d -= f))
          }
        }
        n = Mc
    }
    if (!n)
      return (function (t, e) {
        for (var n = [], i = 0; i < e; i++) n.push(tc(t))
        return n
      })(t, e)
    var g = []
    for (u = 0; u < i.length; u++) {
      var y = new n()
      y.setShape(i[u]), FY(t, y), g.push(y)
    }
    return g
  }
  function HY(t, e) {
    var n = t.length,
      i = e.length
    if (n === i) return [t, e]
    for (var r = [], o = [], a = n < i ? t : e, s = Math.min(n, i), l = Math.abs(i - n) / 6, u = (s - 2) / 6, c = Math.ceil(l / u) + 1, h = [a[0], a[1]], d = l, p = 2; p < s; ) {
      var f = a[p - 2],
        g = a[p - 1],
        y = a[p++],
        v = a[p++],
        m = a[p++],
        x = a[p++],
        _ = a[p++],
        b = a[p++]
      if (d <= 0) h.push(y, v, m, x, _, b)
      else {
        for (var w = Math.min(d, c - 1) + 1, S = 1; S <= w; S++) {
          var M = S / w
          Pn(f, y, m, _, M, r), Pn(g, v, x, b, M, o), (f = r[3]), (g = o[3]), h.push(r[1], o[1], r[2], o[2], f, g), (y = r[5]), (v = o[5]), (m = r[6]), (x = o[6])
        }
        d -= w - 1
      }
    }
    return a === t ? [h, e] : [t, h]
  }
  function UY(t, e) {
    for (var n = t.length, i = t[n - 2], r = t[n - 1], o = [], a = 0; a < e.length; ) (o[a++] = i), (o[a++] = r)
    return o
  }
  function YY(t) {
    for (var e = 0, n = 0, i = 0, r = t.length, o = 0, a = r - 2; o < r; a = o, o += 2) {
      var s = t[a],
        l = t[a + 1],
        u = t[o],
        c = t[o + 1],
        h = s * c - u * l
      ;(e += h), (n += (s + u) * h), (i += (l + c) * h)
    }
    return 0 === e ? [t[0] || 0, t[1] || 0] : [n / e / 3, i / e / 3, e]
  }
  function XY(t, e, n, i) {
    for (var r = (t.length - 2) / 6, o = 1 / 0, a = 0, s = t.length, l = s - 2, u = 0; u < r; u++) {
      for (var c = 6 * u, h = 0, d = 0; d < s; d += 2) {
        var p = 0 === d ? c : ((c + d - 2) % l) + 2,
          f = t[p] - n[0],
          g = t[p + 1] - n[1],
          y = e[d] - i[0] - f,
          v = e[d + 1] - i[1] - g
        h += y * y + v * v
      }
      h < o && ((o = h), (a = u))
    }
    return a
  }
  function ZY(t) {
    for (var e = [], n = t.length, i = 0; i < n; i += 2) (e[i] = t[n - i - 2]), (e[i + 1] = t[n - i - 1])
    return e
  }
  function jY(t) {
    return t.__isCombineMorphing
  }
  var qY = '__mOriginal_'
  function KY(t, e, n) {
    var i = qY + e,
      r = t[i] || t[e]
    t[i] || (t[i] = t[e])
    var o = n.replace,
      a = n.after,
      s = n.before
    t[e] = function () {
      var t,
        e = arguments
      return s && s.apply(this, e), (t = o ? o.apply(this, e) : r.apply(this, e)), a && a.apply(this, e), t
    }
  }
  function $Y(t, e) {
    var n = qY + e
    t[n] && ((t[e] = t[n]), (t[n] = null))
  }
  function JY(t, e) {
    for (var n = 0; n < t.length; n++)
      for (var i = t[n], r = 0; r < i.length; ) {
        var o = i[r],
          a = i[r + 1]
        ;(i[r++] = e[0] * o + e[2] * a + e[4]), (i[r++] = e[1] * o + e[3] * a + e[5])
      }
  }
  function QY(t, e) {
    var n = t.getUpdatedPathProxy(),
      i = e.getUpdatedPathProxy(),
      r = (function (t, e) {
        for (var n, i, r, o = [], a = [], s = 0; s < Math.max(t.length, e.length); s++) {
          var l = t[s],
            u = e[s],
            c = void 0,
            h = void 0
          l ? (u ? ((i = c = (n = HY(l, u))[0]), (r = h = n[1])) : ((h = UY(r || l, l)), (c = l))) : ((c = UY(i || u, u)), (h = u)), o.push(c), a.push(h)
        }
        return [o, a]
      })(LY(n), LY(i)),
      o = r[0],
      a = r[1],
      s = t.getComputedTransform(),
      l = e.getComputedTransform()
    s && JY(o, s),
      l && JY(a, l),
      KY(e, 'updateTransform', {
        replace: function () {
          this.transform = null
        }
      }),
      (e.transform = null)
    var u = (function (t, e, n, i) {
        for (var r, o = [], a = 0; a < t.length; a++) {
          var s = t[a],
            l = e[a],
            u = YY(s),
            c = YY(l)
          null == r && (r = u[2] < 0 != c[2] < 0)
          var h = [],
            d = [],
            p = 0,
            f = 1 / 0,
            g = [],
            y = s.length
          r && (s = ZY(s))
          for (var v = 6 * XY(s, l, u, c), m = y - 2, x = 0; x < m; x += 2) {
            var _ = ((v + x) % m) + 2
            ;(h[x + 2] = s[_] - u[0]), (h[x + 3] = s[_ + 1] - u[1])
          }
          if (((h[0] = s[v] - u[0]), (h[1] = s[v + 1] - u[1]), n > 0))
            for (var b = i / n, w = -i / 2; w <= i / 2; w += b) {
              var S = Math.sin(w),
                M = Math.cos(w),
                I = 0
              for (x = 0; x < s.length; x += 2) {
                var T = h[x],
                  C = h[x + 1],
                  D = l[x] - c[0],
                  A = l[x + 1] - c[1],
                  k = D * M - A * S,
                  L = D * S + A * M
                ;(g[x] = k), (g[x + 1] = L)
                var P = k - T,
                  O = L - C
                I += P * P + O * O
              }
              if (I < f) {
                ;(f = I), (p = w)
                for (var R = 0; R < g.length; R++) d[R] = g[R]
              }
            }
          else for (var N = 0; N < y; N += 2) (d[N] = l[N] - c[0]), (d[N + 1] = l[N + 1] - c[1])
          o.push({ from: h, to: d, fromCp: u, toCp: c, rotation: -p })
        }
        return o
      })(o, a, 10, Math.PI),
      c = []
    KY(e, 'buildPath', {
      replace: function (t) {
        for (var n = e.__morphT, i = 1 - n, r = [], o = 0; o < u.length; o++) {
          var a = u[o],
            s = a.from,
            l = a.to,
            h = a.rotation * n,
            d = a.fromCp,
            p = a.toCp,
            f = Math.sin(h),
            g = Math.cos(h)
          Wt(r, d, p, n)
          for (var y = 0; y < s.length; y += 2) {
            var v = s[y],
              m = s[y + 1],
              x = v * i + (S = l[y]) * n,
              _ = m * i + (M = l[y + 1]) * n
            ;(c[y] = x * g - _ * f + r[0]), (c[y + 1] = x * f + _ * g + r[1])
          }
          var b = c[0],
            w = c[1]
          t.moveTo(b, w)
          for (y = 2; y < s.length; ) {
            var S = c[y++],
              M = c[y++],
              I = c[y++],
              T = c[y++],
              C = c[y++],
              D = c[y++]
            b === S && w === M && I === C && T === D ? t.lineTo(C, D) : t.bezierCurveTo(S, M, I, T, C, D), (b = C), (w = D)
          }
        }
      }
    })
  }
  function tX(t, e, n) {
    if (!t || !e) return e
    var i = n.done,
      r = n.during
    return (
      QY(t, e),
      (e.__morphT = 0),
      e.animateTo(
        { __morphT: 1 },
        k(
          {
            during: function (t) {
              e.dirtyShape(), r && r(t)
            },
            done: function () {
              $Y(e, 'buildPath'), $Y(e, 'updateTransform'), (e.__morphT = -1), e.createPathProxy(), e.dirtyShape(), i && i()
            }
          },
          n
        )
      ),
      e
    )
  }
  function eX(t, e, n, i, r, o) {
    ;(t = r === n ? 0 : Math.round((32767 * (t - n)) / (r - n))), (e = o === i ? 0 : Math.round((32767 * (e - i)) / (o - i)))
    for (var a, s = 0, l = 32768; l > 0; l /= 2) {
      var u = 0,
        c = 0
      ;(t & l) > 0 && (u = 1), (e & l) > 0 && (c = 1), (s += l * l * ((3 * u) ^ c)), 0 === c && (1 === u && ((t = l - 1 - t), (e = l - 1 - e)), (a = t), (t = e), (e = a))
    }
    return s
  }
  function nX(t) {
    var e = 1 / 0,
      n = 1 / 0,
      i = -1 / 0,
      r = -1 / 0,
      o = E(t, function (t) {
        var o = t.getBoundingRect(),
          a = t.getComputedTransform(),
          s = o.x + o.width / 2 + (a ? a[4] : 0),
          l = o.y + o.height / 2 + (a ? a[5] : 0)
        return (e = Math.min(s, e)), (n = Math.min(l, n)), (i = Math.max(s, i)), (r = Math.max(l, r)), [s, l]
      })
    return E(o, function (o, a) {
      return { cp: o, z: eX(o[0], o[1], e, n, i, r), path: t[a] }
    })
      .sort(function (t, e) {
        return t.z - e.z
      })
      .map(function (t) {
        return t.path
      })
  }
  function iX(t) {
    return WY(t.path, t.count)
  }
  function rX(t) {
    return U(t[0])
  }
  function oX(t, e) {
    for (var n = [], i = t.length, r = 0; r < i; r++) n.push({ one: t[r], many: [] })
    for (r = 0; r < e.length; r++) {
      var o = e[r].length,
        a = void 0
      for (a = 0; a < o; a++) n[a % i].many.push(e[r][a])
    }
    var s = 0
    for (r = i - 1; r >= 0; r--)
      if (!n[r].many.length) {
        var l = n[s].many
        if (l.length <= 1) {
          if (!s) return n
          s = 0
        }
        o = l.length
        var u = Math.ceil(o / 2)
        ;(n[r].many = l.slice(u, o)), (n[s].many = l.slice(0, u)), s++
      }
    return n
  }
  var aX = {
    clone: function (t) {
      for (var e = [], n = 1 - Math.pow(1 - t.path.style.opacity, 1 / t.count), i = 0; i < t.count; i++) {
        var r = tc(t.path)
        r.setStyle('opacity', n), e.push(r)
      }
      return e
    },
    split: null
  }
  function sX(t, e, n, i, r, o) {
    if (t.length && e.length) {
      var a = Jc('update', i, r)
      if (a && a.duration > 0) {
        var s,
          l,
          u = i.getModel('universalTransition').get('delay'),
          c = Object.assign({ setToFinal: !0 }, a)
        rX(t) && ((s = t), (l = e)), rX(e) && ((s = e), (l = t))
        for (var h = s ? s === t : t.length > e.length, d = s ? oX(l, s) : oX(h ? e : t, [h ? t : e]), p = 0, f = 0; f < d.length; f++) p += d[f].many.length
        var g = 0
        for (f = 0; f < d.length; f++) y(d[f], h, g, p), (g += d[f].many.length)
      }
    }
    function y(t, e, i, r, a) {
      var s = t.many,
        l = t.one
      if (1 !== s.length || a)
        for (
          var h = k(
              {
                dividePath: aX[n],
                individualDelay:
                  u &&
                  function (t, e, n, o) {
                    return u(t + i, r)
                  }
              },
              c
            ),
            d = e
              ? (function (t, e, n) {
                  var i = []
                  !(function t(e) {
                    for (var n = 0; n < e.length; n++) {
                      var r = e[n]
                      jY(r) ? t(r.childrenRef()) : r instanceof sl && i.push(r)
                    }
                  })(t)
                  var r = i.length
                  if (!r) return { fromIndividuals: [], toIndividuals: [], count: 0 }
                  var o = (n.dividePath || iX)({ path: e, count: r })
                  if (o.length !== r) return console.error('Invalid morphing: unmatched splitted path'), { fromIndividuals: [], toIndividuals: [], count: 0 }
                  ;(i = nX(i)), (o = nX(o))
                  for (var a = n.done, s = n.during, l = n.individualDelay, u = new Dr(), c = 0; c < r; c++) {
                    var h = i[c],
                      d = o[c]
                    ;(d.parent = e), d.copyTransform(u), l || QY(h, d)
                  }
                  function p(t) {
                    for (var e = 0; e < o.length; e++) o[e].addSelfToZr(t)
                  }
                  function f() {
                    ;(e.__isCombineMorphing = !1), (e.__morphT = -1), (e.childrenRef = null), $Y(e, 'addSelfToZr'), $Y(e, 'removeSelfFromZr')
                  }
                  ;(e.__isCombineMorphing = !0),
                    (e.childrenRef = function () {
                      return o
                    }),
                    KY(e, 'addSelfToZr', {
                      after: function (t) {
                        p(t)
                      }
                    }),
                    KY(e, 'removeSelfFromZr', {
                      after: function (t) {
                        for (var e = 0; e < o.length; e++) o[e].removeSelfFromZr(t)
                      }
                    })
                  var g = o.length
                  if (l) {
                    var y = g,
                      v = function () {
                        0 == --y && (f(), a && a())
                      }
                    for (c = 0; c < g; c++) {
                      var m = l ? k({ delay: (n.delay || 0) + l(c, g, i[c], o[c]), done: v }, n) : n
                      tX(i[c], o[c], m)
                    }
                  } else
                    (e.__morphT = 0),
                      e.animateTo(
                        { __morphT: 1 },
                        k(
                          {
                            during: function (t) {
                              for (var n = 0; n < g; n++) {
                                var i = o[n]
                                ;(i.__morphT = e.__morphT), i.dirtyShape()
                              }
                              s && s(t)
                            },
                            done: function () {
                              f()
                              for (var e = 0; e < t.length; e++) $Y(t[e], 'updateTransform')
                              a && a()
                            }
                          },
                          n
                        )
                      )
                  return e.__zr && p(e.__zr), { fromIndividuals: i, toIndividuals: o, count: g }
                })(s, l, h)
              : (function (t, e, n) {
                  var i = e.length,
                    r = [],
                    o = n.dividePath || iX
                  if (jY(t)) {
                    !(function t(e) {
                      for (var n = 0; n < e.length; n++) {
                        var i = e[n]
                        jY(i) ? t(i.childrenRef()) : i instanceof sl && r.push(i)
                      }
                    })(t.childrenRef())
                    var a = r.length
                    if (a < i) for (var s = 0, l = a; l < i; l++) r.push(tc(r[s++ % a]))
                    r.length = i
                  } else {
                    r = o({ path: t, count: i })
                    var u = t.getComputedTransform()
                    for (l = 0; l < r.length; l++) r[l].setLocalTransform(u)
                    if (r.length !== i) return console.error('Invalid morphing: unmatched splitted path'), { fromIndividuals: [], toIndividuals: [], count: 0 }
                  }
                  ;(r = nX(r)), (e = nX(e))
                  var c = n.individualDelay
                  for (l = 0; l < i; l++) {
                    var h = c ? k({ delay: (n.delay || 0) + c(l, i, r[l], e[l]) }, n) : n
                    tX(r[l], e[l], h)
                  }
                  return { fromIndividuals: r, toIndividuals: e, count: e.length }
                })(l, s, h),
            p = d.fromIndividuals,
            f = d.toIndividuals,
            g = p.length,
            v = 0;
          v < g;
          v++
        ) {
          m = u ? k({ delay: u(v, g) }, c) : c
          o(p[v], f[v], e ? s[v] : t.one, e ? t.one : s[v], m)
        }
      else {
        var m,
          x = e ? s[0] : l,
          _ = e ? l : s[0]
        if (jY(x)) y({ many: [x], one: _ }, !0, i, r, !0)
        else tX(x, _, (m = u ? k({ delay: u(i, r) }, c) : c)), o(x, _, x, _, m)
      }
    }
  }
  function lX(t) {
    if (!t) return []
    if (U(t)) {
      for (var e = [], n = 0; n < t.length; n++) e.push(lX(t[n]))
      return e
    }
    var i = []
    return (
      t.traverse(function (t) {
        t instanceof sl && !t.disableMorphing && !t.invisible && !t.ignore && i.push(t)
      }),
      i
    )
  }
  var uX = sa()
  function cX(t, e, n, i) {
    var r = (function (t, e) {
      for (var n = t.dimensions, i = 0; i < n.length; i++) {
        var r = t.getDimensionInfo(n[i])
        if (r && 0 === r.otherDims[e]) return n[i]
      }
    })(t, i ? 'itemChildGroupId' : 'itemGroupId')
    if (r) {
      var o = (function (t, e, n) {
        var i = t.getDimensionInfo(n),
          r = i && i.ordinalMeta
        if (i) {
          var o = t.get(i.name, e)
          return (r && r.categories[o]) || o + ''
        }
      })(t, e, r)
      return o
    }
    var a = t.getRawDataItem(e),
      s = i ? 'childGroupId' : 'groupId'
    return a && a[s] ? a[s] + '' : i ? void 0 : n || t.getId(e)
  }
  function hX(t) {
    var e = []
    return (
      z(t, function (t) {
        var n = t.data,
          i = t.dataGroupId
        if (!(n.count() > 1e4))
          for (var r = n.getIndices(), o = 0; o < r.length; o++) e.push({ data: n, groupId: cX(n, o, i, !1), childGroupId: cX(n, o, i, !0), divide: t.divide, dataIndex: o })
      }),
      e
    )
  }
  function dX(t, e, n) {
    t.traverse(function (t) {
      t instanceof sl && eh(t, { style: { opacity: 0 } }, e, { dataIndex: n, isFrom: !0 })
    })
  }
  function pX(t) {
    if (t.parent) {
      var e = t.getComputedTransform()
      t.setLocalTransform(e), t.parent.remove(t)
    }
  }
  function fX(t) {
    t.stopAnimation(),
      t.isGroup &&
        t.traverse(function (t) {
          t.stopAnimation()
        })
  }
  function gX(t, e, n) {
    var i = Jc('update', n, e)
    i &&
      t.traverse(function (t) {
        if (t instanceof os) {
          var e = (function (t) {
            return $c(t).oldStyle
          })(t)
          e && t.animateFrom({ style: e }, i)
        }
      })
  }
  function yX(t, e, n) {
    var i = hX(t),
      r = hX(e)
    function o(t, e, n, i, r) {
      ;(n || t) && e.animateFrom({ style: n && n !== t ? A(A({}, n.style), t.style) : t.style }, r)
    }
    var a = !1,
      s = 0,
      l = yt(),
      u = yt()
    i.forEach(function (t) {
      t.groupId && l.set(t.groupId, !0), t.childGroupId && u.set(t.childGroupId, !0)
    })
    for (var c = 0; c < r.length; c++) {
      var h = r[c].groupId
      if (u.get(h)) {
        s = 1
        break
      }
      var d = r[c].childGroupId
      if (d && l.get(d)) {
        s = 2
        break
      }
    }
    function p(t, e) {
      return function (n) {
        var i = n.data,
          r = n.dataIndex
        return e ? i.getId(r) : t ? (1 === s ? n.childGroupId : n.groupId) : 2 === s ? n.childGroupId : n.groupId
      }
    }
    var f = (function (t, e) {
        var n = t.length
        if (n !== e.length) return !1
        for (var i = 0; i < n; i++) {
          var r = t[i],
            o = e[i]
          if (r.data.getId(r.dataIndex) !== o.data.getId(o.dataIndex)) return !1
        }
        return !0
      })(i, r),
      g = {}
    if (!f)
      for (c = 0; c < r.length; c++) {
        var y = r[c],
          v = y.data.getItemGraphicEl(y.dataIndex)
        v && (g[v.id] = !0)
      }
    function m(t, e) {
      var n = i[e],
        s = r[t],
        l = s.data.hostModel,
        u = n.data.getItemGraphicEl(n.dataIndex),
        c = s.data.getItemGraphicEl(s.dataIndex)
      u !== c ? (u && g[u.id]) || (c && (fX(c), u ? (fX(u), pX(u), (a = !0), sX(lX(u), lX(c), s.divide, l, t, o)) : dX(c, l, t))) : c && gX(c, s.dataIndex, l)
    }
    new f_(i, r, p(!0, f), p(!1, f), null, 'multiple')
      .update(m)
      .updateManyToOne(function (t, e) {
        var n = r[t],
          s = n.data,
          l = s.hostModel,
          u = s.getItemGraphicEl(n.dataIndex),
          c = V(
            E(e, function (t) {
              return i[t].data.getItemGraphicEl(i[t].dataIndex)
            }),
            function (t) {
              return t && t !== u && !g[t.id]
            }
          )
        u &&
          (fX(u),
          c.length
            ? (z(c, function (t) {
                fX(t), pX(t)
              }),
              (a = !0),
              sX(lX(c), lX(u), n.divide, l, t, o))
            : dX(u, l, n.dataIndex))
      })
      .updateOneToMany(function (t, e) {
        var n = i[e],
          s = n.data.getItemGraphicEl(n.dataIndex)
        if (!s || !g[s.id]) {
          var l = V(
              E(t, function (t) {
                return r[t].data.getItemGraphicEl(r[t].dataIndex)
              }),
              function (t) {
                return t && t !== s
              }
            ),
            u = r[t[0]].data.hostModel
          l.length &&
            (z(l, function (t) {
              return fX(t)
            }),
            s
              ? (fX(s), pX(s), (a = !0), sX(lX(s), lX(l), n.divide, u, t[0], o))
              : z(l, function (e) {
                  return dX(e, u, t[0])
                }))
        }
      })
      .updateManyToMany(function (t, e) {
        new f_(
          e,
          t,
          function (t) {
            return i[t].data.getId(i[t].dataIndex)
          },
          function (t) {
            return r[t].data.getId(r[t].dataIndex)
          }
        )
          .update(function (n, i) {
            m(t[n], e[i])
          })
          .execute()
      })
      .execute(),
      a &&
        z(e, function (t) {
          var e = t.data.hostModel,
            i = e && n.getViewOfSeriesModel(e),
            r = Jc('update', e, 0)
          i &&
            e.isAnimationEnabled() &&
            r &&
            r.duration > 0 &&
            i.group.traverse(function (t) {
              t instanceof sl && !t.animators.length && t.animateFrom({ style: { opacity: 0 } }, r)
            })
        })
  }
  function vX(t) {
    var e = t.getModel('universalTransition').get('seriesKey')
    return e || t.id
  }
  function mX(t) {
    return U(t) ? t.sort().join(',') : t
  }
  function xX(t) {
    if (t.hostModel) return t.hostModel.getModel('universalTransition').get('divideShape')
  }
  function _X(t, e) {
    for (var n = 0; n < t.length; n++) {
      if ((null != e.seriesIndex && e.seriesIndex === t[n].seriesIndex) || (null != e.seriesId && e.seriesId === t[n].id)) return n
    }
  }
  var bX = (function () {
    function t() {
      ;(this.breaks = []), (this._elapsedExtent = [1 / 0, -1 / 0])
    }
    return (
      (t.prototype.setBreaks = function (t) {
        this.breaks = t.breaks
      }),
      (t.prototype.update = function (t) {
        !(function (t, e) {
          var n = 0,
            i = { tpAbs: { span: 0, val: 0 }, tpPrct: { span: 0, val: 0 } },
            r = function () {
              return { has: !1, span: NaN, inExtFrac: NaN, val: NaN }
            },
            o = { S: { tpAbs: r(), tpPrct: r() }, E: { tpAbs: r(), tpPrct: r() } }
          z(t.breaks, function (t) {
            var r = t.gapParsed
            'tpPrct' === r.type && (n += r.val)
            var a = CX(t, e)
            if (a) {
              var s = a.vmin !== t.vmin,
                l = a.vmax !== t.vmax,
                u = a.vmax - a.vmin
              if (s && l);
              else if (s || l) {
                var c = s ? 'S' : 'E'
                ;(o[c][r.type].has = !0), (o[c][r.type].span = u), (o[c][r.type].inExtFrac = u / (t.vmax - t.vmin)), (o[c][r.type].val = r.val)
              } else (i[r.type].span += u), (i[r.type].val += r.val)
            }
          })
          var a =
            (n *
              (e[1] -
                e[0] +
                0 +
                (i.tpAbs.val - i.tpAbs.span) +
                (o.S.tpAbs.has ? (o.S.tpAbs.val - o.S.tpAbs.span) * o.S.tpAbs.inExtFrac : 0) +
                (o.E.tpAbs.has ? (o.E.tpAbs.val - o.E.tpAbs.span) * o.E.tpAbs.inExtFrac : 0) -
                i.tpPrct.span -
                (o.S.tpPrct.has ? o.S.tpPrct.span * o.S.tpPrct.inExtFrac : 0) -
                (o.E.tpPrct.has ? o.E.tpPrct.span * o.E.tpPrct.inExtFrac : 0))) /
            (1 - i.tpPrct.val - (o.S.tpPrct.has ? o.S.tpPrct.val * o.S.tpPrct.inExtFrac : 0) - (o.E.tpPrct.has ? o.E.tpPrct.val * o.E.tpPrct.inExtFrac : 0))
          z(t.breaks, function (t) {
            var e = t.gapParsed
            'tpPrct' === e.type && (t.gapReal = 0 !== n ? (Math.max(a, 0) * e.val) / n : 0), 'tpAbs' === e.type && (t.gapReal = e.val), null == t.gapReal && (t.gapReal = 0)
          })
        })(this, t)
        var e = this._elapsedExtent
        ;(e[0] = this.elapse(t[0])), (e[1] = this.elapse(t[1]))
      }),
      (t.prototype.hasBreaks = function () {
        return !!this.breaks.length
      }),
      (t.prototype.calcNiceTickMultiple = function (t, e) {
        for (var n = 0; n < this.breaks.length; n++) {
          var i = this.breaks[n]
          if (i.vmin < t && t < i.vmax) {
            var r = e(t, i.vmax)
            return r
          }
        }
        return 0
      }),
      (t.prototype.getExtentSpan = function () {
        return this._elapsedExtent[1] - this._elapsedExtent[0]
      }),
      (t.prototype.normalize = function (t) {
        var e = this._elapsedExtent[1] - this._elapsedExtent[0]
        return 0 === e ? 0.5 : (this.elapse(t) - this._elapsedExtent[0]) / e
      }),
      (t.prototype.scale = function (t) {
        return this.unelapse(t * (this._elapsedExtent[1] - this._elapsedExtent[0]) + this._elapsedExtent[0])
      }),
      (t.prototype.elapse = function (t) {
        for (var e = SX, n = MX, i = !0, r = 0; r < this.breaks.length; r++) {
          var o = this.breaks[r]
          if (t <= o.vmax) {
            t > o.vmin ? (e += o.vmin - n + ((t - o.vmin) / (o.vmax - o.vmin)) * o.gapReal) : (e += t - n), (n = o.vmax), (i = !1)
            break
          }
          ;(e += o.vmin - n + o.gapReal), (n = o.vmax)
        }
        return i && (e += t - n), e
      }),
      (t.prototype.unelapse = function (t) {
        for (var e = SX, n = MX, i = !0, r = 0, o = 0; o < this.breaks.length; o++) {
          var a = this.breaks[o],
            s = e + a.vmin - n,
            l = s + a.gapReal
          if (t <= l) {
            ;(r = t > s ? a.vmin + ((t - s) / (l - s)) * (a.vmax - a.vmin) : n + t - e), (n = a.vmax), (i = !1)
            break
          }
          ;(e = l), (n = a.vmax)
        }
        return i && (r = n + t - e), r
      }),
      t
    )
  })()
  function wX() {
    return new bX()
  }
  var SX = 0,
    MX = 0
  function IX(t, e, n, i, r, o) {
    'no' !== t &&
      z(n, function (n) {
        var a = CX(n, o)
        if (a)
          for (var s = e.length - 1; s >= 0; s--) {
            var l = e[s],
              u = i(l),
              c = (3 * r) / 4
            u > a.vmin - c && u < a.vmax + c && ('preserve_extent_bound' !== t || (u !== o[0] && u !== o[1])) && e.splice(s, 1)
          }
      })
  }
  function TX(t, e, n, i) {
    z(e, function (e) {
      var r = CX(e, n)
      r &&
        (t.push({ value: r.vmin, break: { type: 'vmin', parsedBreak: r }, time: i ? i(r) : void 0 }),
        t.push({ value: r.vmax, break: { type: 'vmax', parsedBreak: r }, time: i ? i(r) : void 0 }))
    }),
      e.length &&
        t.sort(function (t, e) {
          return t.value - e.value
        })
  }
  function CX(t, e) {
    var n = Math.max(t.vmin, e[0]),
      i = Math.min(t.vmax, e[1])
    return n < i || (n === i && n > e[0] && n < e[1]) ? { vmin: n, vmax: i, breakOption: t.breakOption, gapParsed: t.gapParsed, gapReal: t.gapReal } : null
  }
  function DX(t, e, n) {
    var i = []
    if (!t) return { breaks: i }
    z(t, function (t) {
      if (t && null != t.start && null != t.end && !t.isExpanded) {
        var r = { breakOption: T(t), vmin: e(t.start), vmax: e(t.end), gapParsed: { type: 'tpAbs', val: 0 }, gapReal: null }
        if (null != t.gap) {
          var o = !1
          if (X(t.gap)) {
            var a = ut(t.gap)
            if (a.match(/%$/)) {
              var s = parseFloat(a) / 100
              ;(function (t, e) {
                return t >= 0 && t < 0.99999
              })(s) || (s = 0),
                (r.gapParsed.type = 'tpPrct'),
                (r.gapParsed.val = s),
                (o = !0)
            }
          }
          if (!o) {
            var l = e(t.gap)
            ;(!isFinite(l) || l < 0) && (l = 0), (r.gapParsed.type = 'tpAbs'), (r.gapParsed.val = l)
          }
        }
        if (
          (r.vmin === r.vmax && ((r.gapParsed.type = 'tpAbs'), (r.gapParsed.val = 0)),
          n &&
            n.noNegative &&
            z(['vmin', 'vmax'], function (t) {
              r[t] < 0 && (r[t] = 0)
            }),
          r.vmin > r.vmax)
        ) {
          var u = r.vmax
          ;(r.vmax = r.vmin), (r.vmin = u)
        }
        i.push(r)
      }
    }),
      i.sort(function (t, e) {
        return t.vmin - e.vmin
      })
    var r = -1 / 0
    return (
      z(i, function (t, e) {
        r > t.vmin && (i[e] = null), (r = t.vmax)
      }),
      {
        breaks: i.filter(function (t) {
          return !!t
        })
      }
    )
  }
  function AX(t, e) {
    return kX(e) === kX(t)
  }
  function kX(t) {
    return t.start + '_\0_' + t.end
  }
  function LX(t, e, n) {
    var i = []
    z(t, function (t, n) {
      var r = e(t)
      r && 'vmin' === r.type && i.push([n])
    }),
      z(t, function (n, r) {
        var o = e(n)
        if (o && 'vmax' === o.type) {
          var a = G(i, function (n) {
            return AX(e(t[n[0]]).parsedBreak.breakOption, o.parsedBreak.breakOption)
          })
          a && a.push(r)
        }
      })
    var r = []
    return (
      z(i, function (e) {
        2 === e.length && r.push(n ? e : [t[e[0]], t[e[1]]])
      }),
      r
    )
  }
  function PX(t, e, n, i) {
    var r, o
    if (t.break) {
      var a = t.break.parsedBreak,
        s = G(n, function (e) {
          return AX(e.breakOption, t.break.parsedBreak.breakOption)
        }),
        l = i(Math.pow(e, a.vmin), s.vmin),
        u = i(Math.pow(e, a.vmax), s.vmax),
        c = { type: a.gapParsed.type, val: 'tpAbs' === a.gapParsed.type ? mo(Math.pow(e, a.vmin + a.gapParsed.val)) - l : a.gapParsed.val }
      ;(r = { type: t.break.type, parsedBreak: { breakOption: a.breakOption, vmin: l, vmax: u, gapParsed: c, gapReal: a.gapReal } }), (o = s[t.break.type])
    }
    return { brkRoundingCriterion: o, vBreak: r }
  }
  function OX(t, e, n) {
    var i = { noNegative: !0 },
      r = DX(t, n, i),
      o = DX(t, n, i),
      a = Math.log(e)
    return (
      (o.breaks = E(o.breaks, function (t) {
        var e = Math.log(t.vmin) / a
        return {
          vmin: e,
          vmax: Math.log(t.vmax) / a,
          gapParsed: { type: t.gapParsed.type, val: 'tpAbs' === t.gapParsed.type ? Math.log(t.vmin + t.gapParsed.val) / a - e : t.gapParsed.val },
          gapReal: t.gapReal,
          breakOption: t.breakOption
        }
      })),
      { parsedOriginal: r, parsedLogged: o }
    )
  }
  var RX = { vmin: 'start', vmax: 'end' }
  function NX(t, e) {
    return e && ((t = t || {}).break = { type: RX[e.type], start: e.parsedBreak.vmin, end: e.parsedBreak.vmax }), t
  }
  function zX() {
    var t
    ;(t = {
      createScaleBreakContext: wX,
      pruneTicksByBreak: IX,
      addBreaksToTicks: TX,
      parseAxisBreakOption: DX,
      identifyAxisBreak: AX,
      serializeAxisBreakIdentifier: kX,
      retrieveAxisBreakPairs: LX,
      getTicksLogTransformBreak: PX,
      logarithmicParseBreaksFromOption: OX,
      makeAxisLabelFormatterParamBreak: NX
    }),
      Rd || (Rd = t)
  }
  var EX = sa()
  function BX(t, e, n, i, r) {
    var o = n.axis
    if (!o.scale.isBlank() && Nd()) {
      var a = Nd().retrieveAxisBreakPairs(
        o.scale.getTicks({ breakTicks: 'only_break' }),
        function (t) {
          return t.break
        },
        !1
      )
      if (a.length) {
        var s = n.getModel('breakArea'),
          l = s.get('zigzagAmplitude'),
          u = s.get('zigzagMinSpan'),
          c = s.get('zigzagMaxSpan')
        ;(u = Math.max(2, u || 0)), (c = Math.max(u, c || 0))
        var h = s.get('expandOnClick'),
          d = s.get('zigzagZ'),
          p = s.getModel('itemStyle').getItemStyle(),
          f = p.stroke,
          g = p.lineWidth,
          y = p.lineDash,
          v = p.fill,
          m = new to({ ignoreModelZ: !0 }),
          x = o.isHorizontal(),
          _ = EX(e).visualList || (EX(e).visualList = [])
        z(_, function (t) {
          return (t.shouldRemove = !0)
        })
        for (
          var b = function (t) {
              var e = a[t][0].break.parsedBreak,
                s = []
              ;(s[0] = o.toGlobalCoord(o.dataToCoord(e.vmin, !0))), (s[1] = o.toGlobalCoord(o.dataToCoord(e.vmax, !0))), s[1] < s[0] && s.reverse()
              var b = (function (t, e) {
                var n = G(t, function (t) {
                  return Nd().identifyAxisBreak(t.parsedBreak.breakOption, e.breakOption)
                })
                return n || t.push((n = { zigzagRandomList: [], parsedBreak: e, shouldRemove: !1 })), n
              })(_, e)
              b.shouldRemove = !1
              var w = new to()
              !(function (t, e, n, r, o, a) {
                var s = { stroke: f, lineWidth: g, lineDash: y, fill: 'none' },
                  h = o ? 0 : 1,
                  m = 1 - h,
                  x = i[lh[m]] + i[uh[m]]
                function _(t) {
                  var e = [],
                    n = []
                  ;(e[h] = n[h] = t), (e[m] = i[lh[m]]), (n[m] = x)
                  var r = { x1: e[0], y1: e[1], x2: n[0], y2: n[1] }
                  return fl(r, r, { lineWidth: 1 }), (e[0] = r.x1), (e[1] = r.y1), e[h]
                }
                ;(n = _(n)), (r = _(r))
                for (var b = [], w = [], S = !0, M = i[lh[m]], I = 0; ; I++) {
                  var T = M === i[lh[m]],
                    C = M >= x
                  C && (M = x)
                  var D = [],
                    A = []
                  ;(D[h] = n), (A[h] = r), T || C || ((D[h] += S ? -l : l), (A[h] -= S ? l : -l)), (D[m] = M), (A[m] = M), b.push(D), w.push(A)
                  var k = void 0
                  if ((I < t.length ? (k = t[I]) : ((k = Math.random()), t.push(k)), (M += k * (c - u) + u), (S = !S), C)) break
                }
                var L = Nd().serializeAxisBreakIdentifier(a.breakOption)
                if ((e.add(new Tc({ anid: 'break_a_' + L, shape: { points: b }, style: s, z: d })), 0 !== a.gapReal)) {
                  e.add(new Tc({ anid: 'break_b_' + L, shape: { points: w }, style: s, z: d }))
                  var P = w.slice()
                  P.reverse()
                  var O = b.concat(P)
                  e.add(new Mc({ anid: 'break_c_' + L, shape: { points: O }, style: { fill: v, opacity: p.opacity }, z: d }))
                }
              })(b.zigzagRandomList, w, s[0], s[1], x, e),
                h &&
                  w.on('click', function () {
                    var t = { type: QT, breaks: [{ start: e.breakOption.start, end: e.breakOption.end }] }
                    ;(t[o.dim + 'AxisIndex'] = n.componentIndex), r.dispatchAction(t)
                  }),
                (w.silent = !h),
                m.add(w)
            },
            w = 0;
          w < a.length;
          w++
        )
          b(w)
        t.add(m),
          (function (t) {
            for (var e = t.length - 1; e >= 0; e--) t[e].shouldRemove && t.splice(e, 1)
          })(_)
      }
    }
  }
  function VX(t, e, n, i) {
    var r = t.axis,
      o = n.transform
    lt(i.style)
    var a = r.getExtent()
    r.inverse && (a = a.slice()).reverse()
    var s = E(
      Nd().retrieveAxisBreakPairs(
        r.scale.getTicks({ breakTicks: 'only_break' }),
        function (t) {
          return t.break
        },
        !1
      ),
      function (t) {
        var e = t[0].break.parsedBreak,
          n = [r.dataToCoord(e.vmin, !0), r.dataToCoord(e.vmax, !0)]
        return n[0] > n[1] && n.reverse(), { coordPair: n, brkId: Nd().serializeAxisBreakIdentifier(e.breakOption) }
      }
    )
    s.sort(function (t, e) {
      return t.coordPair[0] - e.coordPair[0]
    })
    for (var l = a[0], u = null, c = 0; c < s.length; c++) {
      var h = s[c],
        d = Math.max(h.coordPair[0], a[0]),
        p = Math.min(h.coordPair[1], a[1])
      l <= d && f(l, d, u, h), (l = p), (u = h)
    }
    function f(t, n, r, a) {
      function s(t, e) {
        o && (Ht(t, t, o), Ht(e, e, o))
      }
      function l(t, e) {
        var n = { x1: t[0], y1: t[1], x2: e[0], y2: e[1] }
        fl(n, n, i.style), (t[0] = n.x1), (t[1] = n.y1), (e[0] = n.x2), (e[1] = n.y2)
      }
      var u = [t, 0],
        c = [n, 0],
        h = [t, 5],
        d = [n, 5]
      s(u, h), l(u, h), s(c, d), l(c, d), l(u, c)
      var p = new Ac(A({ shape: { x1: u[0], y1: u[1], x2: c[0], y2: c[1] } }, i))
      e.add(p), (p.anid = 'breakLine_' + (r ? r.brkId : '\0') + '_\0_' + (a ? a.brkId : '\0'))
    }
    l <= a[1] && f(l, a[1], u, null)
  }
  function GX(t, e, n) {
    if (
      !G(n, function (t) {
        return !t
      })
    ) {
      var i = new Ae()
      if (IS(n[0], n[1], i, { direction: -(t ? e + Math.PI : e), touchThreshold: 0, bidirectional: !1 })) {
        var r = [1, 0, 0, 1, 0, 0]
        Me(r, r, -e)
        var o = E(n, function (t) {
            return t.transform ? we([1, 0, 0, 1, 0, 0], r, t.transform) : r
          }),
          a = 0.5
        if (g(0) || g(1)) {
          var s = E(n, function (t, e) {
              var n = t.localRect.clone()
              return n.applyTransform(o[e]), n
            }),
            l = new Ae()
          l.copy(n[0].label).add(n[1].label).scale(0.5), l.transform(r)
          var u = i.clone().transform(r),
            c = (s[0].x + s[1].x + (u.x >= 0 ? s[0].width : s[1].width) + u.x) / 2 - l.x,
            h = Math.min(c, c - u.x),
            d = Math.max(c, c - u.x)
          a = (c - (d < 0 ? d : h > 0 ? h : 0)) / u.x
        }
        var p = new Ae(),
          f = new Ae()
        Ae.scale(p, i, -a), Ae.scale(f, i, 1 - a), _S(n[0], p), _S(n[1], f)
      }
    }
    function g(t) {
      var e = n[0].localRect,
        i = new Ae(e[uh[t]] * o[0][0], e[uh[t]] * o[0][1])
      return Math.abs(i.y) < 1e-5
    }
  }
  function FX(t, e) {
    var n = { breaks: [] }
    return (
      z(e.breaks, function (i) {
        if (i) {
          var r = G(t.get('breaks', !0), function (t) {
            return Nd().identifyAxisBreak(t, i)
          })
          if (r) {
            var o = e.type,
              a = { isExpanded: !!r.isExpanded }
            ;(r.isExpanded = o === QT || (o !== tC && (o === eC ? !r.isExpanded : r.isExpanded))), n.breaks.push({ start: r.start, end: r.end, isExpanded: !!r.isExpanded, old: a })
          }
        }
      }),
      n
    )
  }
  function WX() {
    var t
    ;(t = { adjustBreakLabelPair: GX, buildAxisBreakLine: VX, rectCoordBuildBreakAxis: BX, updateModelAxisBreak: FX }), UT || (UT = t)
  }
  function HX(t, e) {
    z(t, function (t) {
      if (!t.model.get(['axisLabel', 'inside'])) {
        var n = (function (t) {
          var e,
            n,
            i = t.model,
            r = t.scale
          if (!i.get(['axisLabel', 'show']) || r.isBlank()) return
          var o = r.getExtent()
          n = r instanceof lb ? r.count() : (e = r.getTicks()).length
          var a,
            s = t.getLabelModel(),
            l = jb(t),
            u = 1
          n > 40 && (u = Math.ceil(n / 40))
          for (var c = 0; c < n; c += u) {
            var h = l(e ? e[c] : { value: o[0] + c }, c),
              d = p(s.getTextRect(h), s.get('rotate') || 0)
            a ? a.union(d) : (a = d)
          }
          return a
          function p(t, e) {
            var n = (e * Math.PI) / 180,
              i = t.width,
              r = t.height,
              o = i * Math.abs(Math.cos(n)) + Math.abs(r * Math.sin(n)),
              a = i * Math.abs(Math.sin(n)) + Math.abs(r * Math.cos(n))
            return new He(t.x, t.y, o, a)
          }
        })(t)
        if (n) {
          var i = t.isHorizontal() ? 'height' : 'width',
            r = t.model.get(['axisLabel', 'margin'])
          ;(e[i] -= n[i] + r), 'top' === t.position ? (e.y += n.height + r) : 'left' === t.position && (e.x += n.width + r)
        }
      }
    })
  }
  h_([
    function (t) {
      t.registerPainter('canvas', tI)
    }
  ]),
    h_([
      function (t) {
        t.registerPainter('svg', ZM)
      }
    ]),
    h_([
      function (t) {
        t.registerChartView(RI),
          t.registerSeriesModel(eI),
          t.registerLayout(NI('line', !0)),
          t.registerVisual({
            seriesType: 'line',
            reset: function (t) {
              var e = t.getData(),
                n = t.getModel('lineStyle').getLineStyle()
              n && !n.stroke && (n.stroke = e.getVisual('style').fill), e.setVisual('legendLineStyle', n)
            }
          }),
          t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC, BI('line'))
      },
      function (t) {
        t.registerChartView(jI),
          t.registerSeriesModel(GI),
          t.registerLayout(t.PRIORITY.VISUAL.LAYOUT, H(_b, 'bar')),
          t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, bb('bar')),
          t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC, BI('bar')),
          t.registerAction({ type: 'changeAxisOrder', event: 'changeAxisOrder', update: 'update' }, function (t, e) {
            var n = t.componentType || 'series'
            e.eachComponent({ mainType: n, query: t }, function (e) {
              t.sortInfo && e.axis.setCategorySortInfo(t.sortInfo)
            })
          })
      },
      function (t) {
        t.registerChartView(MT),
          t.registerSeriesModel(AT),
          $v('pie', t.registerAction),
          t.registerLayout(H(dT, 'pie')),
          t.registerProcessor(fT('pie')),
          t.registerProcessor(
            (function (t) {
              return {
                seriesType: t,
                reset: function (t, e) {
                  var n = t.getData()
                  n.filterSelf(function (t) {
                    var e = n.mapDimension('value'),
                      i = n.get(e, t)
                    return !(j(i) && !isNaN(i) && i < 0)
                  })
                }
              }
            })('pie')
          )
      },
      function (t) {
        h_(lD), t.registerSeriesModel(kT), t.registerChartView(RT), t.registerLayout(NI('scatter'))
      },
      function (t) {
        h_(TD), t.registerChartView(mD), t.registerSeriesModel(xD), t.registerLayout(fD), t.registerProcessor(fT('radar')), t.registerPreprocessor(vD)
      },
      function (t) {
        h_(lk), t.registerChartView(YA), t.registerSeriesModel(XA), t.registerLayout(jA), t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC, ZA), $v('map', t.registerAction)
      },
      function (t) {
        t.registerChartView(_k),
          t.registerSeriesModel(Wk),
          t.registerLayout(Uk),
          t.registerVisual(Yk),
          (function (t) {
            t.registerAction({ type: 'treeExpandAndCollapse', event: 'treeExpandAndCollapse', update: 'update' }, function (t, e) {
              e.eachComponent({ mainType: 'series', subType: 'tree', query: t }, function (e) {
                var n = t.dataIndex,
                  i = e.getData().tree.getNodeByDataIndex(n)
                i.isExpand = !i.isExpand
              })
            }),
              t.registerAction({ type: 'treeRoam', event: 'treeRoam', update: 'none' }, function (t, e, n) {
                e.eachComponent({ mainType: 'series', subType: 'tree', query: t }, function (e) {
                  var n = YD(e.coordinateSystem, t, e.get('scaleLimit'))
                  e.setCenter(n.center), e.setZoom(n.zoom)
                })
              })
          })(t)
      },
      function (t) {
        t.registerSeriesModel(jk),
          t.registerChartView(sL),
          t.registerVisual(ML),
          t.registerLayout(EL),
          (function (t) {
            for (var e = 0; e < Xk.length; e++) t.registerAction({ type: Xk[e], update: 'updateView' }, bt)
            t.registerAction({ type: 'treemapRootToNode', update: 'updateView' }, function (t, e) {
              e.eachComponent({ mainType: 'series', subType: 'treemap', query: t }, function (e, n) {
                var i = Bk(t, ['treemapZoomToNode', 'treemapRootToNode'], e)
                if (i) {
                  var r = e.getViewRoot()
                  r && (t.direction = Gk(r, i.node) ? 'rollUp' : 'drillDown'), e.resetViewRoot(i.node)
                }
              })
            })
          })(t)
      },
      function (t) {
        t.registerChartView(GP),
          t.registerSeriesModel(ZP),
          t.registerProcessor(HL),
          t.registerVisual(UL),
          t.registerVisual(XL),
          t.registerLayout(nP),
          t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT, cP),
          t.registerLayout(dP),
          t.registerCoordinateSystem('graphView', { dimensions: KA.dimensions, create: pP }),
          t.registerAction({ type: 'focusNodeAdjacency', event: 'focusNodeAdjacency', update: 'series:focusNodeAdjacency' }, bt),
          t.registerAction({ type: 'unfocusNodeAdjacency', event: 'unfocusNodeAdjacency', update: 'series:unfocusNodeAdjacency' }, bt),
          t.registerAction({ type: 'graphRoam', event: 'graphRoam', update: 'none' }, function (t, e, n) {
            e.eachComponent({ mainType: 'series', query: t }, function (e) {
              var i = n.getViewOfSeriesModel(e)
              i && (null != t.dx && null != t.dy && i.updateViewOnPan(e, n, t), null != t.zoom && null != t.originX && null != t.originY && i.updateViewOnZoom(e, n, t))
              var r = YD(e.coordinateSystem, t, e.get('scaleLimit'))
              e.setCenter && e.setCenter(r.center), e.setZoom && e.setZoom(r.zoom)
            })
          })
      },
      function (t) {
        t.registerChartView(JP), t.registerSeriesModel(QP), t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT, eO), t.registerProcessor(fT('chord'))
      },
      function (t) {
        t.registerChartView(oO), t.registerSeriesModel(aO)
      },
      function (t) {
        t.registerChartView(uO), t.registerSeriesModel(cO), t.registerLayout(hO), t.registerProcessor(fT('funnel'))
      },
      function (t) {
        h_(zR), t.registerChartView(dO), t.registerSeriesModel(vO), t.registerVisual(t.PRIORITY.VISUAL.BRUSH, _O)
      },
      function (t) {
        t.registerChartView(VR),
          t.registerSeriesModel(FR),
          t.registerLayout(WR),
          t.registerVisual(tN),
          t.registerAction({ type: 'dragNode', event: 'dragnode', update: 'update' }, function (t, e) {
            e.eachComponent({ mainType: 'series', subType: 'sankey', query: t }, function (e) {
              e.setNodePosition(t.dataIndex, [t.localX, t.localY])
            })
          }),
          t.registerAction({ type: 'sankeyRoam', event: 'sankeyRoam', update: 'none' }, function (t, e, n) {
            e.eachComponent({ mainType: 'series', subType: 'sankey', query: t }, function (e) {
              var n = YD(e.coordinateSystem, t, e.get('scaleLimit'))
              e.setCenter(n.center), e.setZoom(n.zoom)
            })
          })
      },
      function (t) {
        t.registerSeriesModel(nN), t.registerChartView(iN), t.registerLayout(cN), t.registerTransform(hN)
      },
      function (t) {
        t.registerChartView(bN), t.registerSeriesModel(PN), t.registerPreprocessor(ON), t.registerVisual(xN), t.registerLayout(RN)
      },
      function (t) {
        t.registerChartView(BN), t.registerSeriesModel(VN), t.registerLayout(NI('effectScatter'))
      },
      function (t) {
        t.registerChartView(ZN), t.registerSeriesModel($N), t.registerLayout(XN), t.registerVisual(QN)
      },
      function (t) {
        t.registerChartView(nz), t.registerSeriesModel(iz)
      },
      function (t) {
        t.registerChartView(sz),
          t.registerSeriesModel(Iz),
          t.registerLayout(t.PRIORITY.VISUAL.LAYOUT, H(_b, 'pictorialBar')),
          t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, bb('pictorialBar'))
      },
      function (t) {
        t.registerChartView(Tz), t.registerSeriesModel(Cz), t.registerLayout(Dz), t.registerProcessor(fT('themeRiver'))
      },
      function (t) {
        t.registerChartView(Oz),
          t.registerSeriesModel(Rz),
          t.registerLayout(H(Ez, 'sunburst')),
          t.registerProcessor(H(fT, 'sunburst')),
          t.registerVisual(Vz),
          (function (t) {
            t.registerAction({ type: Lz, update: 'updateView' }, function (t, e) {
              e.eachComponent({ mainType: 'series', subType: 'sunburst', query: t }, function (e, n) {
                var i = Bk(t, [Lz], e)
                if (i) {
                  var r = e.getViewRoot()
                  r && (t.direction = Gk(r, i.node) ? 'rollUp' : 'drillDown'), e.resetViewRoot(i.node)
                }
              })
            }),
              t.registerAction({ type: Pz, update: 'none' }, function (t, e, n) {
                ;(t = A({}, t)),
                  e.eachComponent({ mainType: 'series', subType: 'sunburst', query: t }, function (e) {
                    var n = Bk(t, [Pz], e)
                    n && (t.dataIndex = n.node.dataIndex)
                  }),
                  n.dispatchAction(A(t, { type: 'highlight' }))
              }),
              t.registerAction({ type: 'sunburstUnhighlight', update: 'updateView' }, function (t, e, n) {
                ;(t = A({}, t)), n.dispatchAction(A(t, { type: 'downplay' }))
              })
          })(t)
      },
      function (t) {
        t.registerChartView(kE), t.registerSeriesModel(Hz)
      }
    ]),
    h_(function (t) {
      h_(lD), h_(LB)
    }),
    h_(function (t) {
      h_(LB),
        $C.registerAxisPointerClass('PolarAxisPointer', PB),
        t.registerCoordinateSystem('polar', XB),
        t.registerComponentModel(RB),
        t.registerComponentView(sV),
        XT(t, 'angle', zB, oV),
        XT(t, 'radius', EB, aV),
        t.registerComponentView($B),
        t.registerComponentView(tV),
        t.registerLayout(H(rV, 'bar'))
    }),
    h_(lk),
    h_(function (t) {
      h_(LB),
        $C.registerAxisPointerClass('SingleAxisPointer', _V),
        t.registerComponentView(MV),
        t.registerComponentView(cV),
        t.registerComponentModel(dV),
        XT(t, 'single', dV, dV.defaultOption),
        t.registerCoordinateSystem('single', vV)
    }),
    h_(zR),
    h_(function (t) {
      t.registerComponentModel(IV), t.registerComponentView(CV), t.registerCoordinateSystem('calendar', AV)
    }),
    h_(function (t) {
      t.registerComponentModel(nG), t.registerComponentView(sG), t.registerCoordinateSystem('matrix', gG)
    }),
    h_(function (t) {
      t.registerComponentModel(NG),
        t.registerComponentView(BG),
        t.registerPreprocessor(function (t) {
          var e = t.graphic
          U(e) ? (e[0] && e[0].elements ? (t.graphic = [t.graphic[0]]) : (t.graphic = [{ elements: e }])) : e && !e.elements && (t.graphic = [{ elements: [e] }])
        })
    }),
    h_(function (t) {
      t.registerComponentModel(hF), t.registerComponentView(pF), uF('saveAsImage', fF), uF('magicType', vF), uF('dataView', MF), uF('dataZoom', XF), uF('restore', AF), h_(aF)
    }),
    h_(function (t) {
      h_(LB),
        t.registerComponentModel(qF),
        t.registerComponentView(dW),
        t.registerAction({ type: 'showTip', event: 'showTip', update: 'tooltip:manuallyShowTip' }, bt),
        t.registerAction({ type: 'hideTip', event: 'hideTip', update: 'tooltip:manuallyHideTip' }, bt)
    }),
    h_(LB),
    h_(function (t) {
      t.registerComponentView(RW),
        t.registerComponentModel(NW),
        t.registerPreprocessor(vW),
        t.registerVisual(t.PRIORITY.VISUAL.BRUSH, AW),
        t.registerAction({ type: 'brush', event: 'brush', update: 'updateVisual' }, function (t, e) {
          e.eachComponent({ mainType: 'brush', query: t }, function (e) {
            e.setAreas(t.areas)
          })
        }),
        t.registerAction({ type: 'brushSelect', event: 'brushSelected', update: 'none' }, bt),
        t.registerAction({ type: 'brushEnd', event: 'brushEnd', update: 'none' }, bt),
        uF('brush', BW)
    }),
    h_(function (t) {
      t.registerComponentModel(VW), t.registerComponentView(GW)
    }),
    h_(function (t) {
      t.registerComponentModel(WW),
        t.registerComponentView(ZW),
        t.registerSubTypeDefaulter('timeline', function () {
          return 'slider'
        }),
        (function (t) {
          t.registerAction({ type: 'timelineChange', event: 'timelineChanged', update: 'prepareAndUpdate' }, function (t, e, n) {
            var i = e.getComponent('timeline')
            return (
              i &&
                null != t.currentIndex &&
                (i.setCurrentIndex(t.currentIndex),
                !i.get('loop', !0) && i.isIndexMax() && i.getPlayState() && (i.setPlayState(!1), n.dispatchAction({ type: 'timelinePlayChange', playState: !1, from: t.from }))),
              e.resetOption('timeline', { replaceMerge: i.get('replaceMerge', !0) }),
              k({ currentIndex: i.option.currentIndex }, t)
            )
          }),
            t.registerAction({ type: 'timelinePlayChange', event: 'timelinePlayChanged', update: 'update' }, function (t, e) {
              var n = e.getComponent('timeline')
              n && null != t.playState && n.setPlayState(t.playState)
            })
        })(t),
        t.registerPreprocessor(KW)
    }),
    h_(function (t) {
      t.registerComponentModel(iH),
        t.registerComponentView(gH),
        t.registerPreprocessor(function (t) {
          QW(t.series, 'markPoint') && (t.markPoint = t.markPoint || {})
        })
    }),
    h_(function (t) {
      t.registerComponentModel(yH),
        t.registerComponentView(SH),
        t.registerPreprocessor(function (t) {
          QW(t.series, 'markLine') && (t.markLine = t.markLine || {})
        })
    }),
    h_(function (t) {
      t.registerComponentModel(MH),
        t.registerComponentView(PH),
        t.registerPreprocessor(function (t) {
          QW(t.series, 'markArea') && (t.markArea = t.markArea || {})
        })
    }),
    h_(function (t) {
      h_(YH), h_(JH)
    }),
    h_(function (t) {
      h_(cU), h_(mU)
    }),
    h_(cU),
    h_(mU),
    h_(function (t) {
      h_(JU), h_(iY)
    }),
    h_(JU),
    h_(iY),
    h_(function (t) {
      t.registerComponentModel(oY), t.registerComponentView(aY)
    }),
    h_(function (t) {
      t.registerPreprocessor(pY), t.registerVisual(t.PRIORITY.VISUAL.ARIA, dY)
    }),
    h_(function (t) {
      t.registerTransform(IY), t.registerTransform(TY)
    }),
    h_(function (t) {
      t.registerComponentModel(CY), t.registerComponentView(DY)
    }),
    h_(function (t) {
      t.registerUpdateLifecycle('series:beforeupdate', function (t, e, n) {
        z(qo(n.seriesTransition), function (t) {
          z(qo(t.to), function (t) {
            for (var e = n.updatedSeries, i = 0; i < e.length; i++)
              ((null != t.seriesIndex && t.seriesIndex === e[i].seriesIndex) || (null != t.seriesId && t.seriesId === e[i].id)) && (e[i][Fy] = !0)
          })
        })
      }),
        t.registerUpdateLifecycle('series:transition', function (t, e, n) {
          var i = uX(e)
          if (i.oldSeries && n.updatedSeries && n.optionChanged) {
            var r = n.seriesTransition
            if (r)
              z(qo(r), function (t) {
                !(function (t, e, n, i) {
                  var r = [],
                    o = []
                  z(qo(t.from), function (t) {
                    var n = _X(e.oldSeries, t)
                    n >= 0 && r.push({ dataGroupId: e.oldDataGroupIds[n], data: e.oldData[n], divide: xX(e.oldData[n]), groupIdDim: t.dimension })
                  }),
                    z(qo(t.to), function (t) {
                      var i = _X(n.updatedSeries, t)
                      if (i >= 0) {
                        var r = n.updatedSeries[i].getData()
                        o.push({ dataGroupId: e.oldDataGroupIds[i], data: r, divide: xX(r), groupIdDim: t.dimension })
                      }
                    }),
                    r.length > 0 && o.length > 0 && yX(r, o, i)
                })(t, i, n, e)
              })
            else {
              var o = (function (t, e) {
                var n = yt(),
                  i = yt(),
                  r = yt()
                return (
                  z(t.oldSeries, function (e, n) {
                    var o = t.oldDataGroupIds[n],
                      a = t.oldData[n],
                      s = vX(e),
                      l = mX(s)
                    i.set(l, { dataGroupId: o, data: a }),
                      U(s) &&
                        z(s, function (t) {
                          r.set(t, { key: l, dataGroupId: o, data: a })
                        })
                  }),
                  z(e.updatedSeries, function (t) {
                    if (t.isUniversalTransitionEnabled() && t.isAnimationEnabled()) {
                      var e = t.get('dataGroupId'),
                        o = t.getData(),
                        a = vX(t),
                        s = mX(a),
                        l = i.get(s)
                      if (l) n.set(s, { oldSeries: [{ dataGroupId: l.dataGroupId, divide: xX(l.data), data: l.data }], newSeries: [{ dataGroupId: e, divide: xX(o), data: o }] })
                      else if (U(a)) {
                        var u = []
                        z(a, function (t) {
                          var e = i.get(t)
                          e.data && u.push({ dataGroupId: e.dataGroupId, divide: xX(e.data), data: e.data })
                        }),
                          u.length && n.set(s, { oldSeries: u, newSeries: [{ dataGroupId: e, data: o, divide: xX(o) }] })
                      } else {
                        var c = r.get(a)
                        if (c) {
                          var h = n.get(c.key)
                          h || ((h = { oldSeries: [{ dataGroupId: c.dataGroupId, data: c.data, divide: xX(c.data) }], newSeries: [] }), n.set(c.key, h)),
                            h.newSeries.push({ dataGroupId: e, data: o, divide: xX(o) })
                        }
                      }
                    }
                  }),
                  n
                )
              })(i, n)
              z(o.keys(), function (t) {
                var n = o.get(t)
                yX(n.oldSeries, n.newSeries, e)
              })
            }
            z(n.updatedSeries, function (t) {
              t[Fy] && (t[Fy] = !1)
            })
          }
          for (var a = t.getSeries(), s = (i.oldSeries = []), l = (i.oldDataGroupIds = []), u = (i.oldData = []), c = 0; c < a.length; c++) {
            var h = a[c].getData()
            h.count() < 1e4 && (s.push(a[c]), l.push(a[c].get('dataGroupId')), u.push(h))
          }
        })
    }),
    h_(function (t) {
      t.registerUpdateLifecycle('series:beforeupdate', function (t, e, n) {
        var i = NS(e).labelManager
        i || (i = NS(e).labelManager = new RS()), i.clearLabels()
      }),
        t.registerUpdateLifecycle('series:layoutlabels', function (t, e, n) {
          var i = NS(e).labelManager
          n.updatedSeries.forEach(function (t) {
            i.addLabelsOfSeries(e.getViewOfSeriesModel(t))
          }),
            i.updateLayoutConfig(e),
            i.layout(e),
            i.processLabelsOverall()
        })
    }),
    h_(function (t) {
      !(function (t) {
        function e(t, e) {
          var n = [],
            i = ua(e, t)
          function r(e, r) {
            z(i[e], function (e) {
              z(e.updateAxisBreaks(t).breaks, function (t) {
                var i
                n.push(k((((i = {})[r] = e.componentIndex), i), t))
              })
            })
          }
          return r('xAxisModels', 'xAxisIndex'), r('yAxisModels', 'yAxisIndex'), r('singleAxisModels', 'singleAxisIndex'), { eventBreaks: n }
        }
        t.registerAction(iC, e), t.registerAction(rC, e), t.registerAction(oC, e)
      })(t),
        zX(),
        WX()
    }),
    h_(function () {
      OC = HX
    }),
    h_(function (t) {
      t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT, pD)
    }),
    (t.Axis = Ww),
    (t.ChartView = tv),
    (t.ComponentModel = Qp),
    (t.ComponentView = Ky),
    (t.List = B_),
    (t.Model = wd),
    (t.PRIORITY = qm),
    (t.SeriesModel = Wy),
    (t.color = mi),
    (t.connect = function (t) {
      if (U(t)) {
        var e = t
        ;(t = null),
          z(e, function (e) {
            null != e.group && (t = e.group)
          }),
          (t = t || 'g_' + Wx++),
          z(e, function (e) {
            e.group = t
          })
      }
      return (Gx[t] = !0), t
    }),
    (t.dataTool = {}),
    (t.dependencies = { zrender: '6.0.0' }),
    (t.disConnect = Yx),
    (t.disconnect = Ux),
    (t.dispose = function (t) {
      X(t) ? (t = Vx[t]) : t instanceof Cx || (t = Xx(t)), t instanceof Cx && !t.isDisposed() && t.dispose()
    }),
    (t.env = r),
    (t.extendChartView = function (t) {
      var e = tv.extend(t)
      return tv.registerClass(e), e
    }),
    (t.extendComponentModel = function (t) {
      var e = Qp.extend(t)
      return Qp.registerClass(e), e
    }),
    (t.extendComponentView = function (t) {
      var e = Ky.extend(t)
      return Ky.registerClass(e), e
    }),
    (t.extendSeriesModel = function (t) {
      var e = Wy.extend(t)
      return Wy.registerClass(e), e
    }),
    (t.format = bw),
    (t.getCoordinateSystemDimensions = function (t) {
      var e = Tp.get(t)
      if (e) return e.getDimensionsInfo ? e.getDimensionsInfo() : e.dimensions.slice()
    }),
    (t.getInstanceByDom = Xx),
    (t.getInstanceById = function (t) {
      return Vx[t]
    }),
    (t.getMap = function (t) {
      var e = Um('getMap')
      return e && e(t)
    }),
    (t.graphic = _w),
    (t.helper = rw),
    (t.init = function (t, e, n) {
      var i = !(n && n.ssr)
      if (i) {
        0
        var r = Xx(t)
        if (r) return r
        0
      }
      var o = new Cx(t, e, n)
      return (o.id = 'ec_' + Fx++), (Vx[o.id] = o), i && fa(t, Hx, o.id), _x(o), Wm.trigger('afterinit', o), o
    }),
    (t.innerDrawElementOnCanvas = Om),
    (t.matrix = De),
    (t.number = mw),
    (t.parseGeoJSON = vw),
    (t.parseGeoJson = vw),
    (t.registerAction = Qx),
    (t.registerCoordinateSystem = t_),
    (t.registerCustomSeries = function (t, e) {
      Xm(t, e)
    }),
    (t.registerLayout = e_),
    (t.registerLoading = o_),
    (t.registerLocale = Pd),
    (t.registerMap = a_),
    (t.registerPostInit = Kx),
    (t.registerPostUpdate = $x),
    (t.registerPreprocessor = jx),
    (t.registerProcessor = qx),
    (t.registerTheme = Zx),
    (t.registerTransform = s_),
    (t.registerUpdateLifecycle = Jx),
    (t.registerVisual = n_),
    (t.setCanvasCreator = function (t) {
      h({ createCanvas: t })
    }),
    (t.setPlatformAPI = h),
    (t.throttle = uv),
    (t.time = xw),
    (t.use = h_),
    (t.util = ww),
    (t.vector = Xt),
    (t.version = '6.0.0'),
    (t.zrUtil = Mt),
    (t.zrender = uo),
    Object.defineProperty(t, '__esModule', { value: !0 })
})
