window.TILE_VERSION = {
    "ditu": {
        "normal": {
            "version": "088",
            "updateDate": "20190807"
        },
        "satellite": {
            "version": "009",
            "updateDate": "20190807"
        },
        "normalTraffic": {
            "version": "081",
            "updateDate": "20190807"
        },
        "satelliteTraffic": {
            "version": "083",
            "updateDate": "20190807"
        },
        "mapJS": {
            "version": "104",
            "updateDate": "20190807"
        },
        "satelliteStreet": {
            "version": "083",
            "updateDate": "20190807"
        },
        "earthVector": {
            "version": "001",
            "updateDate": "20190807"
        }
    },
    "webapp": {
        "high_normal": {
            "version": "001",
            "updateDate": "20190807"
        },
        "lower_normal": {
            "version": "002",
            "updateDate": "20190807"
        }
    },
    "api_for_mobile": {
        "vector": {
            "version": "002",
            "updateDate": "20190807"
        },
        "vectorIcon": {
            "version": "002",
            "updateDate": "20190807"
        }
    }
};
window.BMAP_AUTHENTIC_KEY = "KhQqnL3owyAzqjr4zCGbWiiHwPFmKTD6";
(function() {
    function aa(a) {
        throw a;
    }
    var l = void 0
      , p = !0
      , s = null
      , t = !1;
    function u() {
        return function() {}
    }
    function ca(a) {
        return function(b) {
            this[a] = b
        }
    }
    function x(a) {
        return function() {
            return this[a]
        }
    }
    function ea(a) {
        return function() {
            return a
        }
    }
    var fa, ga = [];
    function ha(a) {
        return function() {
            return ga[a].apply(this, arguments)
        }
    }
    function ia(a, b) {
        return ga[a] = b
    }
    var ja, z = ja = z || {
        version: "1.3.4"
    };
    z.ea = "$BAIDU$";
    window[z.ea] = window[z.ea] || {};
    z.object = z.object || {};
    z.extend = z.object.extend = function(a, b) {
        for (var c in b)
            b.hasOwnProperty(c) && (a[c] = b[c]);
        return a
    }
    ;
    z.R = z.R || {};
    z.R.da = function(a) {
        return "string" == typeof a || a instanceof String ? document.getElementById(a) : a && a.nodeName && (1 == a.nodeType || 9 == a.nodeType) ? a : s
    }
    ;
    z.da = z.Ec = z.R.da;
    z.R.aa = function(a) {
        a = z.R.da(a);
        if (a === s)
            return a;
        a.style.display = "none";
        return a
    }
    ;
    z.aa = z.R.aa;
    z.lang = z.lang || {};
    z.lang.og = function(a) {
        return "[object String]" == Object.prototype.toString.call(a)
    }
    ;
    z.og = z.lang.og;
    z.lang.km = function(a) {
        if ("[object Object]" === Object.prototype.toString.call(a)) {
            for (var b in a)
                return t;
            return p
        }
        return t
    }
    ;
    z.km = z.lang.km;
    z.R.Dj = function(a) {
        return z.lang.og(a) ? document.getElementById(a) : a
    }
    ;
    z.Dj = z.R.Dj;
    z.R.getElementsByClassName = function(a, b) {
        var c;
        if (a.getElementsByClassName)
            c = a.getElementsByClassName(b);
        else {
            var e = a;
            e == s && (e = document);
            c = [];
            var e = e.getElementsByTagName("*"), f = e.length, g = RegExp("(^|\\s)" + b + "(\\s|$)"), i, k;
            for (k = i = 0; i < f; i++)
                g.test(e[i].className) && (c[k] = e[i],
                k++)
        }
        return c
    }
    ;
    z.getElementsByClassName = z.R.getElementsByClassName;
    z.R.contains = function(a, b) {
        var c = z.R.Dj
          , a = c(a)
          , b = c(b);
        return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16)
    }
    ;
    z.ga = z.ga || {};
    /msie (\d+\.\d)/i.test(navigator.userAgent) && (z.ga.ma = z.ma = document.documentMode || +RegExp.$1);
    var ka = {
        cellpadding: "cellPadding",
        cellspacing: "cellSpacing",
        colspan: "colSpan",
        rowspan: "rowSpan",
        valign: "vAlign",
        usemap: "useMap",
        frameborder: "frameBorder"
    };
    8 > z.ga.ma ? (ka["for"] = "htmlFor",
    ka["class"] = "className") : (ka.htmlFor = "for",
    ka.className = "class");
    z.R.NF = ka;
    z.R.rE = function(a, b, c) {
        a = z.R.da(a);
        if (a === s)
            return a;
        if ("style" == b)
            a.style.cssText = c;
        else {
            b = z.R.NF[b] || b;
            a.setAttribute(b, c)
        }
        return a
    }
    ;
    z.rE = z.R.rE;
    z.R.sE = function(a, b) {
        a = z.R.da(a);
        if (a === s)
            return a;
        for (var c in b)
            z.R.rE(a, c, b[c]);
        return a
    }
    ;
    z.sE = z.R.sE;
    z.Hk = z.Hk || {};
    (function() {
        var a = RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)", "g");
        z.Hk.trim = function(b) {
            return ("" + b).replace(a, "")
        }
    }
    )();
    z.trim = z.Hk.trim;
    z.Hk.yo = function(a, b) {
        var a = "" + a
          , c = Array.prototype.slice.call(arguments, 1)
          , e = Object.prototype.toString;
        if (c.length) {
            c = c.length == 1 ? b !== s && /\[object Array\]|\[object Object\]/.test(e.call(b)) ? b : c : c;
            return a.replace(/#\{(.+?)\}/g, function(a, b) {
                var i = c[b];
                "[object Function]" == e.call(i) && (i = i(b));
                return "undefined" == typeof i ? "" : i
            })
        }
        return a
    }
    ;
    z.yo = z.Hk.yo;
    z.R.tc = function(a, b) {
        a = z.R.da(a);
        if (a === s)
            return a;
        for (var c = a.className.split(/\s+/), e = b.split(/\s+/), f, g = e.length, i, k = 0; k < g; ++k) {
            i = 0;
            for (f = c.length; i < f; ++i)
                if (c[i] == e[k]) {
                    c.splice(i, 1);
                    break
                }
        }
        a.className = c.join(" ");
        return a
    }
    ;
    z.tc = z.R.tc;
    z.R.bx = function(a, b, c) {
        a = z.R.da(a);
        if (a === s)
            return a;
        var e;
        if (a.insertAdjacentHTML)
            a.insertAdjacentHTML(b, c);
        else {
            e = a.ownerDocument.createRange();
            b = b.toUpperCase();
            if (b == "AFTERBEGIN" || b == "BEFOREEND") {
                e.selectNodeContents(a);
                e.collapse(b == "AFTERBEGIN")
            } else {
                b = b == "BEFOREBEGIN";
                e[b ? "setStartBefore" : "setEndAfter"](a);
                e.collapse(b)
            }
            e.insertNode(e.createContextualFragment(c))
        }
        return a
    }
    ;
    z.bx = z.R.bx;
    z.R.show = function(a) {
        a = z.R.da(a);
        if (a === s)
            return a;
        a.style.display = "";
        return a
    }
    ;
    z.show = z.R.show;
    z.R.PC = function(a) {
        a = z.R.da(a);
        return a === s ? a : a.nodeType == 9 ? a : a.ownerDocument || a.document
    }
    ;
    z.R.eb = function(a, b) {
        a = z.R.da(a);
        if (a === s)
            return a;
        for (var c = b.split(/\s+/), e = a.className, f = " " + e + " ", g = 0, i = c.length; g < i; g++)
            f.indexOf(" " + c[g] + " ") < 0 && (e = e + (" " + c[g]));
        a.className = e;
        return a
    }
    ;
    z.eb = z.R.eb;
    z.R.TA = z.R.TA || {};
    z.R.zl = z.R.zl || [];
    z.R.zl.filter = function(a, b, c) {
        for (var e = 0, f = z.R.zl, g; g = f[e]; e++)
            if (g = g[c])
                b = g(a, b);
        return b
    }
    ;
    z.Hk.CN = function(a) {
        return a.indexOf("-") < 0 && a.indexOf("_") < 0 ? a : a.replace(/[-_][^-_]/g, function(a) {
            return a.charAt(1).toUpperCase()
        })
    }
    ;
    z.R.t_ = function(a) {
        z.R.ws(a, "expand") ? z.R.tc(a, "expand") : z.R.eb(a, "expand")
    }
    ;
    z.R.ws = function(a) {
        if (arguments.length <= 0 || typeof a === "function")
            return this;
        if (this.size() <= 0)
            return t;
        var a = a.replace(/^\s+/g, "").replace(/\s+$/g, "").replace(/\s+/g, " "), b = a.split(" "), c;
        z.forEach(this, function(a) {
            for (var a = a.className, f = 0; f < b.length; f++)
                if (!~(" " + a + " ").indexOf(" " + b[f] + " ")) {
                    c = t;
                    return
                }
            c !== t && (c = p)
        });
        return c
    }
    ;
    z.R.ng = function(a, b) {
        var c = z.R
          , a = c.da(a);
        if (a === s)
            return a;
        var b = z.Hk.CN(b)
          , e = a.style[b];
        if (!e)
            var f = c.TA[b]
              , e = a.currentStyle || (z.ga.ma ? a.style : getComputedStyle(a, s))
              , e = f && f.get ? f.get(a, e) : e[f || b];
        if (f = c.zl)
            e = f.filter(b, e, "get");
        return e
    }
    ;
    z.ng = z.R.ng;
    /opera\/(\d+\.\d)/i.test(navigator.userAgent) && (z.ga.opera = +RegExp.$1);
    z.ga.qL = /webkit/i.test(navigator.userAgent);
    z.ga.PX = /gecko/i.test(navigator.userAgent) && !/like gecko/i.test(navigator.userAgent);
    z.ga.DD = "CSS1Compat" == document.compatMode;
    z.R.ja = function(a) {
        a = z.R.da(a);
        if (a === s)
            return a;
        var b = z.R.PC(a)
          , c = z.ga
          , e = z.R.ng;
        c.PX > 0 && b.getBoxObjectFor && e(a, "position");
        var f = {
            left: 0,
            top: 0
        }, g;
        if (a == (c.ma && !c.DD ? b.body : b.documentElement))
            return f;
        if (a.getBoundingClientRect) {
            a = a.getBoundingClientRect();
            f.left = Math.floor(a.left) + Math.max(b.documentElement.scrollLeft, b.body.scrollLeft);
            f.top = Math.floor(a.top) + Math.max(b.documentElement.scrollTop, b.body.scrollTop);
            f.left = f.left - b.documentElement.clientLeft;
            f.top = f.top - b.documentElement.clientTop;
            a = b.body;
            b = parseInt(e(a, "borderLeftWidth"));
            e = parseInt(e(a, "borderTopWidth"));
            if (c.ma && !c.DD) {
                f.left = f.left - (isNaN(b) ? 2 : b);
                f.top = f.top - (isNaN(e) ? 2 : e)
            }
        } else {
            g = a;
            do {
                f.left = f.left + g.offsetLeft;
                f.top = f.top + g.offsetTop;
                if (c.qL > 0 && e(g, "position") == "fixed") {
                    f.left = f.left + b.body.scrollLeft;
                    f.top = f.top + b.body.scrollTop;
                    break
                }
                g = g.offsetParent
            } while (g && g != a);if (c.opera > 0 || c.qL > 0 && e(a, "position") == "absolute")
                f.top = f.top - b.body.offsetTop;
            for (g = a.offsetParent; g && g != b.body; ) {
                f.left = f.left - g.scrollLeft;
                if (!c.opera || g.tagName != "TR")
                    f.top = f.top - g.scrollTop;
                g = g.offsetParent
            }
        }
        return f
    }
    ;
    /firefox\/(\d+\.\d)/i.test(navigator.userAgent) && (z.ga.Qe = +RegExp.$1);
    /BIDUBrowser/i.test(navigator.userAgent) && (z.ga.u1 = p);
    var la = navigator.userAgent;
    /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(la) && !/chrome/i.test(la) && (z.ga.Mx = +(RegExp.$1 || RegExp.$2));
    /chrome\/(\d+\.\d)/i.test(navigator.userAgent) && (z.ga.Zv = +RegExp.$1);
    z.lc = z.lc || {};
    z.lc.Nb = function(a, b) {
        var c, e, f = a.length;
        if ("function" == typeof b)
            for (e = 0; e < f; e++) {
                c = a[e];
                c = b.call(a, c, e);
                if (c === t)
                    break
            }
        return a
    }
    ;
    z.Nb = z.lc.Nb;
    z.lang.ea = function() {
        return "TANGRAM__" + (window[z.ea]._counter++).toString(36)
    }
    ;
    window[z.ea]._counter = window[z.ea]._counter || 1;
    window[z.ea]._instances = window[z.ea]._instances || {};
    z.lang.Gs = function(a) {
        return "[object Function]" == Object.prototype.toString.call(a)
    }
    ;
    z.lang.Ga = function(a) {
        this.ea = a || z.lang.ea();
        window[z.ea]._instances[this.ea] = this
    }
    ;
    window[z.ea]._instances = window[z.ea]._instances || {};
    z.lang.Ga.prototype.Rh = ha(0);
    z.lang.Ga.prototype.toString = function() {
        return "[object " + (this.AP || "Object") + "]"
    }
    ;
    z.lang.Zt = function(a, b) {
        this.type = a;
        this.returnValue = p;
        this.target = b || s;
        this.currentTarget = s
    }
    ;
    z.lang.Ga.prototype.addEventListener = function(a, b, c) {
        if (z.lang.Gs(b)) {
            !b.Rk && (b.Rk = {});
            !this.vi && (this.vi = {});
            var e = this.vi, f;
            if (typeof c == "string" && c) {
                /[^\w\-]/.test(c) && aa("nonstandard key:" + c);
                f = b.Tw = c
            }
            a.indexOf("on") != 0 && (a = "on" + a);
            typeof e[a] != "object" && (e[a] = {});
            typeof b.Rk[a] != "object" && (b.Rk[a] = {});
            f = f || z.lang.ea();
            b.Rk[a].Tw = f;
            e[a][f] = b
        }
    }
    ;
    z.lang.Ga.prototype.removeEventListener = function(a, b) {
        a.indexOf("on") != 0 && (a = "on" + a);
        if (z.lang.Gs(b)) {
            if (!b.Rk || !b.Rk[a])
                return;
            b = b.Rk[a].Tw
        } else if (!z.lang.og(b))
            return;
        !this.vi && (this.vi = {});
        var c = this.vi;
        c[a] && c[a][b] && delete c[a][b]
    }
    ;
    z.lang.Ga.prototype.dispatchEvent = function(a, b) {
        z.lang.og(a) && (a = new z.lang.Zt(a));
        !this.vi && (this.vi = {});
        var b = b || {}, c;
        for (c in b)
            a[c] = b[c];
        var e = this.vi
          , f = a.type;
        a.target = a.target || this;
        a.currentTarget = this;
        f.indexOf("on") != 0 && (f = "on" + f);
        z.lang.Gs(this[f]) && this[f].apply(this, arguments);
        if (typeof e[f] == "object")
            for (c in e[f])
                e[f][c].apply(this, arguments);
        return a.returnValue
    }
    ;
    z.lang.wa = function(a, b, c) {
        var e, f, g = a.prototype;
        f = new Function;
        f.prototype = b.prototype;
        f = a.prototype = new f;
        for (e in g)
            f[e] = g[e];
        a.prototype.constructor = a;
        a.g_ = b.prototype;
        if ("string" == typeof c)
            f.AP = c
    }
    ;
    z.wa = z.lang.wa;
    z.lang.Mc = function(a) {
        return window[z.ea]._instances[a] || s
    }
    ;
    z.platform = z.platform || {};
    z.platform.jL = /macintosh/i.test(navigator.userAgent);
    z.platform.x3 = /MicroMessenger/i.test(navigator.userAgent);
    z.platform.rL = /windows/i.test(navigator.userAgent);
    z.platform.ZX = /x11/i.test(navigator.userAgent);
    z.platform.jj = /android/i.test(navigator.userAgent);
    /android (\d+(\.\d)?)/i.test(navigator.userAgent) && (z.platform.mB = z.mB = RegExp.$1);
    z.platform.RX = /ipad/i.test(navigator.userAgent);
    z.platform.zD = /iphone/i.test(navigator.userAgent);
    function ma(a, b) {
        a.domEvent = b = window.event || b;
        a.clientX = b.clientX || b.pageX;
        a.clientY = b.clientY || b.pageY;
        a.offsetX = b.offsetX || b.layerX;
        a.offsetY = b.offsetY || b.layerY;
        a.screenX = b.screenX;
        a.screenY = b.screenY;
        a.ctrlKey = b.ctrlKey || b.metaKey;
        a.shiftKey = b.shiftKey;
        a.altKey = b.altKey;
        if (b.touches) {
            a.touches = [];
            for (var c = 0; c < b.touches.length; c++)
                a.touches.push({
                    clientX: b.touches[c].clientX,
                    clientY: b.touches[c].clientY,
                    screenX: b.touches[c].screenX,
                    screenY: b.touches[c].screenY,
                    pageX: b.touches[c].pageX,
                    pageY: b.touches[c].pageY,
                    target: b.touches[c].target,
                    identifier: b.touches[c].identifier
                })
        }
        if (b.changedTouches) {
            a.changedTouches = [];
            for (c = 0; c < b.changedTouches.length; c++)
                a.changedTouches.push({
                    clientX: b.changedTouches[c].clientX,
                    clientY: b.changedTouches[c].clientY,
                    screenX: b.changedTouches[c].screenX,
                    screenY: b.changedTouches[c].screenY,
                    pageX: b.changedTouches[c].pageX,
                    pageY: b.changedTouches[c].pageY,
                    target: b.changedTouches[c].target,
                    identifier: b.changedTouches[c].identifier
                })
        }
        if (b.targetTouches) {
            a.targetTouches = [];
            for (c = 0; c < b.targetTouches.length; c++)
                a.targetTouches.push({
                    clientX: b.targetTouches[c].clientX,
                    clientY: b.targetTouches[c].clientY,
                    screenX: b.targetTouches[c].screenX,
                    screenY: b.targetTouches[c].screenY,
                    pageX: b.targetTouches[c].pageX,
                    pageY: b.targetTouches[c].pageY,
                    target: b.targetTouches[c].target,
                    identifier: b.targetTouches[c].identifier
                })
        }
        a.rotation = b.rotation;
        a.scale = b.scale;
        return a
    }
    z.lang.rw = function(a) {
        var b = window[z.ea];
        b.GR && delete b.GR[a]
    }
    ;
    z.event = {};
    z.V = z.event.V = function(a, b, c) {
        if (!(a = z.da(a)))
            return a;
        b = b.replace(/^on/, "");
        a.addEventListener ? a.addEventListener(b, c, t) : a.attachEvent && a.attachEvent("on" + b, c);
        return a
    }
    ;
    z.dd = z.event.dd = function(a, b, c) {
        if (!(a = z.da(a)))
            return a;
        b = b.replace(/^on/, "");
        a.removeEventListener ? a.removeEventListener(b, c, t) : a.detachEvent && a.detachEvent("on" + b, c);
        return a
    }
    ;
    z.R.ws = function(a, b) {
        if (!a || !a.className || typeof a.className != "string")
            return t;
        var c = -1;
        try {
            c = a.className == b || a.className.search(RegExp("(\\s|^)" + b + "(\\s|$)"))
        } catch (e) {
            return t
        }
        return c > -1
    }
    ;
    z.VJ = function() {
        function a(a) {
            document.addEventListener && (this.element = a,
            this.YJ = this.qk ? "touchstart" : "mousedown",
            this.xC = this.qk ? "touchmove" : "mousemove",
            this.wC = this.qk ? "touchend" : "mouseup",
            this.fh = t,
            this.Et = this.Dt = 0,
            this.element.addEventListener(this.YJ, this, t),
            ja.V(this.element, "mousedown", u()),
            this.handleEvent(s))
        }
        a.prototype = {
            qk: "ontouchstart"in window || "createTouch"in document,
            start: function(a) {
                na(a);
                this.fh = t;
                this.Dt = this.qk ? a.touches[0].clientX : a.clientX;
                this.Et = this.qk ? a.touches[0].clientY : a.clientY;
                this.element.addEventListener(this.xC, this, t);
                this.element.addEventListener(this.wC, this, t)
            },
            move: function(a) {
                oa(a);
                var c = this.qk ? a.touches[0].clientY : a.clientY;
                if (10 < Math.abs((this.qk ? a.touches[0].clientX : a.clientX) - this.Dt) || 10 < Math.abs(c - this.Et))
                    this.fh = p
            },
            end: function(a) {
                oa(a);
                this.fh || (a = document.createEvent("Event"),
                a.initEvent("tap", t, p),
                this.element.dispatchEvent(a));
                this.element.removeEventListener(this.xC, this, t);
                this.element.removeEventListener(this.wC, this, t)
            },
            handleEvent: function(a) {
                if (a)
                    switch (a.type) {
                    case this.YJ:
                        this.start(a);
                        break;
                    case this.xC:
                        this.move(a);
                        break;
                    case this.wC:
                        this.end(a)
                    }
            }
        };
        return function(b) {
            return new a(b)
        }
    }();
    var D = window.BMap || {};
    D.version = "3.0";
    D.l1 = 0.34 > Math.random();
    0 <= D.version.indexOf("#") && (D.version = "3.0");
    D.Wq = [];
    D.We = function(a) {
        this.Wq.push(a)
    }
    ;
    D.Mq = [];
    D.tm = function(a) {
        this.Mq.push(a)
    }
    ;
    D.UT = D.apiLoad || u();
    D.S_ = D.verify || function() {
        D.version && D.version >= 1.5 && pa(D.Cd + "?qt=verify&ak=" + qa, function(a) {
            if (a && a.error !== 0) {
                if (typeof map !== "undefined") {
                    map.Ua().innerHTML = "";
                    map.vi = {}
                }
                D = s;
                var b = "\u767e\u5ea6\u672a\u6388\u6743\u4f7f\u7528\u5730\u56feAPI\uff0c\u53ef\u80fd\u662f\u56e0\u4e3a\u60a8\u63d0\u4f9b\u7684\u5bc6\u94a5\u4e0d\u662f\u6709\u6548\u7684\u767e\u5ea6LBS\u5f00\u653e\u5e73\u53f0\u5bc6\u94a5\uff0c\u6216\u6b64\u5bc6\u94a5\u672a\u5bf9\u672c\u5e94\u7528\u7684\u767e\u5ea6\u5730\u56feJavaScriptAPI\u6388\u6743\u3002\u60a8\u53ef\u4ee5\u8bbf\u95ee\u5982\u4e0b\u7f51\u5740\u4e86\u89e3\u5982\u4f55\u83b7\u53d6\u6709\u6548\u7684\u5bc6\u94a5\uff1ahttp://lbsyun.baidu.com/apiconsole/key#\u3002";
                switch (a.error) {
                case 101:
                    b = "\u5f00\u53d1\u8005\u7981\u7528\u4e86\u8be5ak\u7684jsapi\u670d\u52a1\u6743\u9650\u3002\u60a8\u53ef\u4ee5\u8bbf\u95ee\u5982\u4e0b\u7f51\u5740\u4e86\u89e3\u5982\u4f55\u83b7\u53d6\u6709\u6548\u7684\u5bc6\u94a5\uff1ahttp://lbsyun.baidu.com/apiconsole/key#\u3002";
                    break;
                case 102:
                    b = "\u5f00\u53d1\u8005Referer\u4e0d\u6b63\u786e\u3002\u60a8\u53ef\u4ee5\u8bbf\u95ee\u5982\u4e0b\u7f51\u5740\u4e86\u89e3\u5982\u4f55\u83b7\u53d6\u6709\u6548\u7684\u5bc6\u94a5\uff1ahttp://lbsyun.baidu.com/apiconsole/key#\u3002"
                }
                alert(b)
            }
        })
    }
    ;
    var qa = window.BMAP_AUTHENTIC_KEY;
    window.BMAP_AUTHENTIC_KEY = s;
    var sa = window.BMap_loadScriptTime
      , ta = (new Date).getTime()
      , ua = s
      , wa = p
      , xa = 5042
      , za = 5002
      , Aa = 5003
      , Ba = "load_mapclick"
      , Ca = 5038
      , Da = 5041
      , Fa = 5047
      , Ga = 5036
      , Ha = 5039
      , Ia = 5037
      , Ja = 5040
      , Ka = 5011
      , Ma = 7E3;
    var Na = 0;
    function Oa(a, b) {
        if (a = z.da(a)) {
            var c = this;
            z.lang.Ga.call(c);
            b = b || {};
            c.U = {
                zB: 200,
                Wb: p,
                ww: t,
                mC: p,
                to: p,
                vo: b.enableWheelZoom || t,
                TJ: p,
                pC: p,
                Yr: p,
                Xr: p,
                tC: p,
                ro: b.enable3DBuilding || t,
                Hc: 25,
                e0: 240,
                HT: 450,
                yc: H.yc,
                Gd: H.Gd,
                Hs: !!b.Hs,
                gc: Math.round(b.minZoom) || 1,
                pc: Math.round(b.maxZoom) || 19,
                Db: b.mapType || Pa,
                x4: t,
                QJ: b.drawer || Na,
                vw: p,
                uw: 500,
                LV: b.enableHighResolution !== t,
                oC: b.enableMapClick !== t,
                devicePixelRatio: b.devicePixelRatio || window.devicePixelRatio || 1,
                bF: 99,
                we: b.mapStyle || s,
                gY: b.logoControl === t ? t : p,
                aU: [],
                x1: b.beforeClickIcon || s,
                Xi: t,
                uo: t,
                mo: t,
                aM: p
            };
            c.U.we && (this.CX(c.U.we.controls),
            this.eL(c.U.we.geotableId));
            c.U.we && c.U.we.styleId && c.U2(c.U.we.styleId);
            c.U.CB = {
                dark: {
                    backColor: "#2D2D2D",
                    textColor: "#bfbfbf",
                    iconUrl: "dicons"
                },
                normal: {
                    backColor: "#F3F1EC",
                    textColor: "#c61b1b",
                    iconUrl: "icons"
                },
                light: {
                    backColor: "#EBF8FC",
                    textColor: "#017fb4",
                    iconUrl: "licons"
                }
            };
            b.enableAutoResize && (c.U.Xr = b.enableAutoResize);
            b.enableStreetEntrance === t && (c.U.tC = b.enableStreetEntrance);
            b.enableDeepZoom === t && (c.U.TJ = b.enableDeepZoom);
            var e = c.U.aU;
            if (I())
                for (var f = 0, g = e.length; f < g; f++)
                    if (z.ga[e[f]]) {
                        c.U.devicePixelRatio = 1;
                        break
                    }
            e = -1 < navigator.userAgent.toLowerCase().indexOf("android");
            f = -1 < navigator.userAgent.toLowerCase().indexOf("mqqbrowser");
            if (-1 < navigator.userAgent.toLowerCase().indexOf("UCBrowser") || e && f)
                c.U.bF = 99;
            c.Ya = a;
            c.MA(a);
            a.unselectable = "on";
            a.innerHTML = "";
            a.appendChild(c.za());
            b.size && this.Ae(b.size);
            e = c.Hb();
            c.width = e.width;
            c.height = e.height;
            c.offsetX = 0;
            c.offsetY = 0;
            c.platform = a.firstChild;
            c.xe = c.platform.firstChild;
            c.xe.style.width = c.width + "px";
            c.xe.style.height = c.height + "px";
            c.Wd = {};
            c.pe = new J(0,0);
            c.fc = new J(0,0);
            c.Va = 3;
            c.Bc = 0;
            c.NB = s;
            c.MB = s;
            c.Vb = "";
            c.$v = "";
            c.Ah = {};
            c.Ah.custom = {};
            c.xi = {};
            c.Wa = 0;
            b.useWebGL === t && Qa(t);
            c.W = new Ra(a,{
                hf: "api",
                LR: p
            });
            c.W.aa();
            c.W.xE(c);
            b = b || {};
            e = c.Db = c.U.Db;
            c.Pc = e.nk();
            e === Sa && Ta(za);
            e === Va && Ta(Aa);
            e = c.U;
            e.VN = Math.round(b.minZoom);
            e.UN = Math.round(b.maxZoom);
            c.ru();
            c.$ = {
                Ic: t,
                mc: 0,
                Ms: 0,
                xL: 0,
                B3: 0,
                rB: t,
                gE: -1,
                re: []
            };
            c.platform.style.cursor = c.U.yc;
            for (f = 0; f < D.Wq.length; f++)
                D.Wq[f](c);
            c.$.gE = f;
            c.fa();
            K.load("map", function() {
                c.jb()
            });
            c.U.oC && (setTimeout(function() {
                Ta(Ba)
            }, 1E3),
            K.load("mapclick", function() {
                window.MPC_Mgr = window.MPC_Mgr || {};
                window.MPC_Mgr[c.ea] = new Wa(c)
            }, p));
            Xa() && K.load("oppc", function() {
                c.hu()
            });
            I() && K.load("opmb", function() {
                c.hu()
            });
            a = s;
            c.$A = []
        }
    }
    z.lang.wa(Oa, z.lang.Ga, "Map");
    z.extend(Oa.prototype, {
        za: function() {
            var a = O("div")
              , b = a.style;
            b.overflow = "visible";
            b.position = "absolute";
            b.zIndex = "0";
            b.top = b.left = "0px";
            var b = O("div", {
                "class": "BMap_mask"
            })
              , c = b.style;
            c.position = "absolute";
            c.top = c.left = "0px";
            c.zIndex = "9";
            c.overflow = "hidden";
            c.WebkitUserSelect = "none";
            a.appendChild(b);
            return a
        },
        MA: function(a) {
            var b = a.style;
            b.overflow = "hidden";
            "absolute" !== Ya(a).position && (b.position = "relative",
            b.zIndex = 0);
            b.backgroundColor = "#F3F1EC";
            b.color = "#000";
            b.textAlign = "left"
        },
        fa: function() {
            var a = this;
            a.Sn = function() {
                var b = a.Hb();
                if (a.width !== b.width || a.height !== b.height) {
                    var c = new P(a.width,a.height)
                      , e = new Q("onbeforeresize");
                    e.size = c;
                    a.dispatchEvent(e);
                    a.Wj((b.width - a.width) / 2, (b.height - a.height) / 2);
                    a.xe.style.width = (a.width = b.width) + "px";
                    a.xe.style.height = (a.height = b.height) + "px";
                    c = new Q("onresize");
                    c.size = b;
                    a.dispatchEvent(c)
                }
            }
            ;
            a.U.Xr && (a.$.Jl = setInterval(a.Sn, 80))
        },
        Wj: function(a, b, c, e) {
            var f = this.va().dc(this.ka())
              , g = this.Pc
              , i = p;
            c && J.iL(c) && (this.pe = new J(c.lng,c.lat),
            i = t);
            if (c = c && e ? g.bi(c, this.Vb) : this.fc)
                if (this.fc = new J(c.lng + a * f,c.lat - b * f),
                (a = g.eh(this.fc, this.Vb)) && i)
                    this.pe = a
        },
        yg: function(a, b) {
            if (Za(a) && (this.ru(),
            this.dispatchEvent(new Q("onzoomstart")),
            a = this.tn(a).zoom,
            a !== this.Va)) {
                this.Bc = this.Va;
                this.Va = a;
                var c;
                b ? c = b : this.$g() && (c = this.$g().ja());
                c && (c = this.Rb(c, this.Bc),
                this.Wj(this.width / 2 - c.x, this.height / 2 - c.y, this.Ib(c, this.Bc), p));
                this.dispatchEvent(new Q("onzoomstartcode"))
            }
        },
        Qc: function(a) {
            this.yg(a)
        },
        hF: function(a) {
            this.yg(this.Va + 1, a)
        },
        iF: function(a) {
            this.yg(this.Va - 1, a)
        },
        ji: function(a) {
            a instanceof J && (this.fc = this.Pc.bi(a, this.Vb),
            this.pe = J.iL(a) ? new J(a.lng,a.lat) : this.Pc.eh(this.fc, this.Vb))
        },
        tg: function(a, b) {
            a = Math.round(a) || 0;
            b = Math.round(b) || 0;
            this.Wj(-a, -b)
        },
        Mv: function(a) {
            a && $a(a.Fe) && (a.Fe(this),
            this.dispatchEvent(new Q("onaddcontrol",a)))
        },
        KM: function(a) {
            a && $a(a.remove) && (a.remove(),
            this.dispatchEvent(new Q("onremovecontrol",a)))
        },
        Wn: function(a) {
            a && $a(a.xa) && (a.xa(this),
            this.dispatchEvent(new Q("onaddcontextmenu",a)))
        },
        ap: function(a) {
            a && $a(a.remove) && (this.dispatchEvent(new Q("onremovecontextmenu",a)),
            a.remove())
        },
        Pa: function(a) {
            a && $a(a.Fe) && (a.Fe(this),
            this.dispatchEvent(new Q("onaddoverlay",a)))
        },
        Sb: function(a) {
            a && $a(a.remove) && (a.remove(),
            this.dispatchEvent(new Q("onremoveoverlay",a)))
        },
        lJ: function() {
            this.dispatchEvent(new Q("onclearoverlays"))
        },
        Me: function(a) {
            a && this.dispatchEvent(new Q("onaddtilelayer",a))
        },
        Tf: function(a) {
            a && this.dispatchEvent(new Q("onremovetilelayer",a))
        },
        wg: function(a) {
            if (this.Db !== a) {
                var b = new Q("onsetmaptype");
                b.o4 = this.Db;
                this.Db = this.U.Db = a;
                this.Pc = this.Db.nk();
                this.Wj(0, 0, this.Bb(), p);
                this.ru();
                var c = this.tn(this.ka()).zoom;
                this.yg(c);
                this.dispatchEvent(b);
                b = new Q("onmaptypechange");
                b.Va = c;
                b.Db = a;
                this.dispatchEvent(b);
                (a === ab || a === Va) && Ta(Aa)
            }
        },
        pf: function(a) {
            var b = this;
            if (a instanceof J)
                b.ji(a, {
                    noAnimation: p
                });
            else if (bb(a))
                if (b.Db === Sa) {
                    var c = H.vB[a];
                    c && (pt = c.o,
                    b.pf(pt))
                } else {
                    var e = this.QG();
                    e.ot(function(c) {
                        0 === e.am() && 2 === e.Ma.result.type && (b.pf(c.mk(0).point),
                        Sa.ik(a) && b.uE(a))
                    });
                    e.search(a, {
                        log: "center"
                    })
                }
        },
        Ed: function(a, b) {
            "[object Undefined]" !== Object.prototype.toString.call(b) && (b = parseInt(b));
            D.Qp("cus.fire", "time", {
                z_loadscripttime: ta - sa
            });
            var c = this;
            if (bb(a))
                if (c.Db === Sa) {
                    var e = H.vB[a];
                    e && (pt = e.o,
                    c.Ed(pt, b))
                } else {
                    var f = c.QG();
                    f.ot(function(e) {
                        if (0 === f.am() && (2 === f.Ma.result.type || 11 === f.Ma.result.type)) {
                            var e = e.mk(0).point
                              , g = b || db.Aw(f.Ma.content.level, c);
                            c.Ed(e, g);
                            Sa.ik(a) && c.uE(a)
                        }
                    });
                    f.search(a, {
                        log: "center"
                    })
                }
            else if (a instanceof J && b) {
                b = c.tn(b).zoom;
                c.Bc = c.Va || b;
                c.Va = b;
                e = c.pe;
                c.pe = new J(a.lng,a.lat);
                c.fc = c.Pc.bi(c.pe, c.Vb);
                c.NB = c.NB || c.Va;
                c.MB = c.MB || c.pe;
                var g = new Q("onload")
                  , i = new Q("onloadcode");
                g.point = new J(a.lng,a.lat);
                g.pixel = c.Rb(c.pe, c.Va);
                g.zoom = b;
                c.loaded || (c.loaded = p,
                c.dispatchEvent(g),
                ua || (ua = eb()));
                c.dispatchEvent(i);
                g = new Q("onmoveend");
                g.hz = "centerAndZoom";
                e.oc(c.pe) || c.dispatchEvent(g);
                c.dispatchEvent(new Q("onmoveend"));
                c.Bc !== c.Va && (e = new Q("onzoomend"),
                e.hz = "centerAndZoom",
                c.dispatchEvent(e));
                c.U.ro && c.ro()
            }
        },
        QG: function() {
            this.$.JL || (this.$.JL = new fb(1));
            return this.$.JL
        },
        reset: function() {
            this.Ed(this.MB, this.NB, p)
        },
        enableDragging: function() {
            this.U.Wb = p
        },
        disableDragging: function() {
            this.U.Wb = t
        },
        enableInertialDragging: function() {
            this.U.vw = p
        },
        disableInertialDragging: function() {
            this.U.vw = t
        },
        enableScrollWheelZoom: function() {
            this.U.vo = p
        },
        disableScrollWheelZoom: function() {
            this.U.vo = t
        },
        enableContinuousZoom: function() {
            this.U.to = p
        },
        disableContinuousZoom: function() {
            this.U.to = t
        },
        enableDoubleClickZoom: function() {
            this.U.mC = p
        },
        disableDoubleClickZoom: function() {
            this.U.mC = t
        },
        enableKeyboard: function() {
            this.U.ww = p
        },
        disableKeyboard: function() {
            this.U.ww = t
        },
        enablePinchToZoom: function() {
            this.U.Yr = p
        },
        disablePinchToZoom: function() {
            this.U.Yr = t
        },
        enableAutoResize: function() {
            this.U.Xr = p;
            this.Sn();
            this.$.Jl || (this.$.Jl = setInterval(this.Sn, 80))
        },
        disableAutoResize: function() {
            this.U.Xr = t;
            this.$.Jl && (clearInterval(this.$.Jl),
            this.$.Jl = s)
        },
        ro: function() {
            this.U.ro = p;
            this.bn || (this.bn = new BuildingLayer({
                e2: p
            }),
            this.Me(this.bn))
        },
        lV: function() {
            this.U.ro = t;
            this.bn && (this.Tf(this.bn),
            this.bn = s,
            delete this.bn)
        },
        Hb: function() {
            return this.Kr && this.Kr instanceof P ? new P(this.Kr.width,this.Kr.height) : new P(this.Ya.clientWidth,this.Ya.clientHeight)
        },
        Ae: function(a) {
            a && a instanceof P ? (this.Kr = a,
            this.Ya.style.width = a.width + "px",
            this.Ya.style.height = a.height + "px") : this.Kr = s
        },
        Bb: x("pe"),
        ka: x("Va"),
        zU: function() {
            this.Sn()
        },
        tn: function(a) {
            var b = this.U.gc
              , c = this.U.pc
              , e = t
              , a = Math.round(a);
            a < b && (e = p,
            a = b);
            a > c && (e = p,
            a = c);
            return {
                zoom: a,
                yC: e
            }
        },
        Ua: x("Ya"),
        Rb: function(a, b) {
            b = b || this.ka();
            return this.Pc.Rb(a, b, this.fc, this.Hb(), this.Vb)
        },
        Ib: function(a, b) {
            b = b || this.ka();
            return this.Pc.Ib(a, b, this.fc, this.Hb(), this.Vb)
        },
        Ve: function(a, b) {
            if (a) {
                var c = this.Rb(new J(a.lng,a.lat), b);
                c.x -= this.offsetX;
                c.y -= this.offsetY;
                return c
            }
        },
        tM: function(a, b) {
            if (a) {
                var c = new R(a.x,a.y);
                c.x += this.offsetX;
                c.y += this.offsetY;
                return this.Ib(c, b)
            }
        },
        pointToPixelFor3D: function(a, b) {
            var c = map.Vb;
            this.Db === Sa && c && gb.rJ(a, this, b)
        },
        f4: function(a, b) {
            var c = map.Vb;
            this.Db === Sa && c && gb.qJ(a, this, b)
        },
        g4: function(a, b) {
            var c = this
              , e = map.Vb;
            c.Db === Sa && e && gb.rJ(a, c, function(a) {
                a.x -= c.offsetX;
                a.y -= c.offsetY;
                b && b(a)
            })
        },
        d4: function(a, b) {
            var c = map.Vb;
            this.Db === Sa && c && (a.x += this.offsetX,
            a.y += this.offsetY,
            gb.qJ(a, this, b))
        },
        te: function(a) {
            if (!this.fx())
                return new hb;
            var b = a || {}
              , a = b.margins || [0, 0, 0, 0]
              , c = b.zoom || s
              , b = this.Ib({
                x: a[3],
                y: this.height - a[2]
            }, c)
              , a = this.Ib({
                x: this.width - a[1],
                y: a[0]
            }, c);
            return new hb(b,a)
        },
        fx: function() {
            return !!this.loaded
        },
        PQ: function(a, b) {
            for (var c = this.va(), e = b.margins || [10, 10, 10, 10], f = b.zoomFactor || 0, g = e[1] + e[3], e = e[0] + e[2], i = c.aj(), k = c = c.Xh(); k >= i; k--) {
                var m = this.va().dc(k);
                if (a.TE().lng / m < this.width - g && a.TE().lat / m < this.height - e)
                    break
            }
            k += f;
            k < i && (k = i);
            k > c && (k = c);
            return k
        },
        vs: function(a, b) {
            var c = {
                center: this.Bb(),
                zoom: this.ka()
            };
            if (!a || !a instanceof hb && 0 === a.length || a instanceof hb && a.lj())
                return c;
            var e = [];
            a instanceof hb ? (e.push(a.Lf()),
            e.push(a.Se())) : e = a.slice(0);
            for (var b = b || {}, f = [], g = 0, i = e.length; g < i; g++)
                f.push(this.Pc.bi(e[g], this.Vb));
            e = new hb;
            for (g = f.length - 1; 0 <= g; g--)
                e.extend(f[g]);
            if (e.lj())
                return c;
            c = e.Bb();
            f = this.PQ(e, b);
            b.margins && (e = b.margins,
            g = (e[1] - e[3]) / 2,
            e = (e[0] - e[2]) / 2,
            i = this.va().dc(f),
            b.offset && (g = b.offset.width,
            e = b.offset.height),
            c.lng += i * g,
            c.lat += i * e);
            c = this.Pc.eh(c, this.Vb);
            return {
                center: c,
                zoom: f
            }
        },
        mh: function(a, b) {
            var c;
            c = a && a.center ? a : this.vs(a, b);
            var b = b || {}
              , e = b.delay || 200;
            if (c.zoom === this.Va && b.enableAnimation !== t) {
                var f = this;
                setTimeout(function() {
                    f.ji(c.center, {
                        duration: 210
                    })
                }, e)
            } else
                this.Ed(c.center, c.zoom)
        },
        Mf: x("Wd"),
        $g: function() {
            return this.$.rb && this.$.rb.Za() ? this.$.rb : s
        },
        getDistance: function(a, b) {
            if (a && b) {
                if (a.oc(b))
                    return 0;
                var c = 0
                  , c = S.Co(a, b);
                if (c === s || c === l)
                    c = 0;
                return c
            }
        },
        Mw: function() {
            var a = []
              , b = this.Ba
              , c = this.Ce;
            if (b)
                for (var e in b)
                    b[e]instanceof ib && a.push(b[e]);
            if (c) {
                e = 0;
                for (b = c.length; e < b; e++)
                    a.push(c[e])
            }
            return a
        },
        va: x("Db"),
        cX: x("Bd"),
        hu: function() {
            for (var a = this.$.gE; a < D.Wq.length; a++)
                D.Wq[a](this);
            this.$.gE = a
        },
        uE: function(a) {
            this.Vb = Sa.ik(a);
            this.$v = Sa.mK(this.Vb);
            this.Db === Sa && this.Pc instanceof jb && (this.Pc.Ti = this.Vb)
        },
        setDefaultCursor: function(a) {
            this.U.yc = a;
            this.platform && (this.platform.style.cursor = this.U.yc)
        },
        getDefaultCursor: function() {
            return this.U.yc
        },
        setDraggingCursor: function(a) {
            this.U.Gd = a
        },
        getDraggingCursor: function() {
            return this.U.Gd
        },
        Yw: function() {
            return this.U.LV && 1.5 <= this.U.devicePixelRatio
        },
        eB: function(a, b) {
            b ? this.Ah[b] || (this.Ah[b] = {}) : b = "custom";
            a.tag = b;
            a instanceof kb && (this.Ah[b][a.ea] = a,
            a.xa(this));
            var c = this;
            K.load("hotspot", function() {
                c.hu()
            }, p)
        },
        bZ: function(a, b) {
            b || (b = "custom");
            this.Ah[b][a.ea] && delete this.Ah[b][a.ea]
        },
        bw: function(a) {
            a || (a = "custom");
            this.Ah[a] = {}
        },
        ru: function() {
            var a = this.Db.aj()
              , b = this.Db.Xh()
              , c = this.U;
            c.gc = c.VN || a;
            c.pc = c.UN || b;
            c.gc < a && (c.gc = a);
            c.pc > b && (c.pc = b)
        },
        setMinZoom: function(a) {
            a = Math.round(a);
            a > this.U.pc && (a = this.U.pc);
            this.U.VN = a;
            this.wI()
        },
        setMaxZoom: function(a) {
            a = Math.round(a);
            a < this.U.gc && (a = this.U.gc);
            this.U.UN = a;
            this.wI()
        },
        wI: function() {
            this.ru();
            var a = this.U;
            this.Va < a.gc ? this.Qc(a.gc) : this.Va > a.pc && this.Qc(a.pc);
            var b = new Q("onzoomspanchange");
            b.gc = a.gc;
            b.pc = a.pc;
            this.dispatchEvent(b)
        },
        W2: x("$A"),
        getKey: function() {
            return qa
        },
        GZ: function(a) {
            function b(a) {
                c.c_ = a;
                var b = D.Cd + "custom/v2/mapstyle?ak=" + qa + "&callback=cb&"
                  , b = b + "is_all=true&is_new=1&" + ("styles=" + encodeURIComponent(c.LE(a, e)));
                pa(b)
            }
            var c = this;
            D.Qp("cus.fire", "count", "z_setmapstylev2count");
            this.gN(t);
            this.addEventListener("hidecopyright", function() {
                c.bk.aa();
                c.U.mo = !!a.customEditor;
                c.U.mo === t && c.tE(new P(1,1))
            });
            c.bk && c.bk.aa();
            this.U.mo = !!a.customEditor;
            this.U.M4 = !!a.sharing;
            this.U.s4 = !!a.preview;
            this.U.mo === t && this.tE(new P(1,1));
            K.load("hotspot", function() {
                c.hu()
            }, p);
            window.qh = {};
            window.w5 = [];
            window.Tt = [];
            window.La = {};
            var e = this.ka()
              , f = {};
            z.extend(f, a);
            window.cb = function(a) {
                if (0 === a.status) {
                    3 === a.data.style.length ? (window.bmap_baseFs || (window.bmap_baseFs = a.data.style),
                    window.Kp = a.data.style[2]) : window.Kp = a.data.style;
                    a = window.bmap_baseFs;
                    if (z.km(window.qh))
                        window.j0 = a,
                        c.ZE(e);
                    else {
                        c.RN(window.Kp, e);
                        c.ZE(e);
                        var a = c.sU(window.qh, e), b;
                        for (b in a) {
                            var g = {};
                            z.extend(g, f);
                            c.MW(b, g)
                        }
                    }
                    c.JX()
                }
            }
            ;
            if (a.styleId) {
                var g = "jsapi";
                a.sharing ? g = "sharing" : a.preview && (g = "preview");
                this.zW(a.styleId, g, b)
            } else
                b(a.styleJson);
            window.iconSetInfo_high || pa(D.url.proto + D.url.domain.TILE_ONLINE_URLS[0] + "/sty/icons_na2x.js?udt=20190108&v=001&from=jsapi")
        },
        zW: function(a, b, c) {
            var e = this
              , f = (1E5 * Math.random()).toFixed(0);
            window["_cbk_si_phpui" + f] = function(a) {
                var b = [];
                a.result && (0 === a.result.error && a.content && 0 === a.content.status) && (b = e.Ax(a.content.data.json));
                c && c(b)
            }
            ;
            window["_cbk_si_api" + f] = function(a) {
                var b = [];
                0 === a.status && (b = a.info ? e.Ax(a.info.json) : e.Ax(a.data.json));
                c && c(b)
            }
            ;
            var g = "/apiconsole/custommap/";
            switch (b) {
            case "jsapi":
                g = D.Cd + "?qt=custom_map&v=3.0";
                g += "&style_id=" + a + "&type=publish&ak=" + qa;
                g += "&callback=_cbk_si_phpui" + f;
                break;
            case "sharing":
                g = g + "getSharingJson" + ("?styleid=" + a + "&type=edit") + ("&ck=_cbk_si_api" + f);
                break;
            case "preview":
                g = g + "getJson" + ("?styleid=" + a + "&type=edit") + ("&ck=_cbk_si_api" + f)
            }
            pa(g)
        },
        fV: function() {
            Array.prototype.map || (Array.prototype.map = function(a, b) {
                var c, e, f;
                this == s && aa(new TypeError(" this is null or not defined"));
                var g = Object(this)
                  , i = g.length >>> 0;
                "[object Function]" != Object.prototype.toString.call(a) && aa(new TypeError(a + " is not a function"));
                b && (c = b);
                e = Array(i);
                for (f = 0; f < i; ) {
                    var k;
                    f in g && (k = g[f],
                    k = a.call(c, k, f, g),
                    e[f] = k);
                    f++
                }
                return e
            }
            )
        },
        Ax: function(a) {
            if (a === s || "" === a)
                return [];
            this.fV();
            var b = {
                t: "featureType",
                e: "elementType",
                v: "visibility",
                c: "color",
                l: "lightness",
                s: "saturation",
                w: "weight",
                z: "level",
                h: "hue",
                f: "fontsize",
                zri: "curZoomRegionId",
                zr: "curZoomRegion"
            }
              , c = {
                all: "all",
                g: "geometry",
                "g.f": "geometry.fill",
                "g.s": "geometry.stroke",
                l: "labels",
                "l.t.f": "labels.text.fill",
                "l.t.s": "labels.text.stroke",
                "l.t": "labels.text",
                "l.i": "labels.icon"
            };
            return a.split(",").map(function(a) {
                var a = a.split("|").map(function(a) {
                    var e = b[a.split(":")[0]]
                      , a = c[a.split(":")[1]] ? c[a.split(":")[1]] : a.split(":")[1];
                    switch (a) {
                    case "poi":
                        a = "poilabel";
                        break;
                    case "districtlabel":
                        a = "districtlabel"
                    }
                    var f = {};
                    f[e] = a;
                    return f
                })
                  , f = a[0]
                  , g = 1;
                a[1].elementType && (g = 2,
                z.extend(f, a[1]));
                for (var i = {}; g < a.length; g++)
                    z.extend(i, a[g]);
                return z.extend(f, {
                    stylers: i
                })
            })
        },
        hX: function() {
            return this.oh.Hg
        },
        MW: function(a, b) {
            var c = this
              , e = (1E5 * Math.random()).toFixed(0);
            window["_cbk" + e] = function(b) {
                b = 3 === b.data.style.length ? b.data.style[2] : b.data.style;
                c.RN(b, a);
                c.ZE(a);
                b = new Q("onzoomfeatureload" + a);
                c.dispatchEvent(b);
                delete window["_cbk" + e]
            }
            ;
            var f = D.Cd + "custom/v2/mapstyle?ak=" + qa + "&callback=_cbk" + e + "&"
              , f = f + "is_all=true&is_new=1&";
            b.styleJson ? f += "styles=" + encodeURIComponent(this.LE(b.styleJson, parseInt(a, 10))) : b.styleId && (f += "styles=" + encodeURIComponent(c.LE(c.c_, parseInt(a, 10))));
            pa(f)
        },
        tE: function(a, b) {
            var c = new Q("oncopyrightoffsetchange",{
                fY: a,
                UU: b
            });
            this.U.vJ = b;
            this.dispatchEvent(c)
        },
        kt: function(a) {
            var b = this;
            window.MPC_Mgr && window.MPC_Mgr[b.ea] && window.MPC_Mgr[b.ea].close();
            b.U.oC = t;
            D.Qp("cus.fire", "count", "z_setmapstylecount");
            if (a) {
                b = this;
                a.styleJson && (a.styleStr = b.d_(a.styleJson));
                I() && z.ga.Mx ? setTimeout(function() {
                    b.U.we = a;
                    b.dispatchEvent(new Q("onsetcustomstyles",a))
                }, 50) : (this.U.we = a,
                this.dispatchEvent(new Q("onsetcustomstyles",a)),
                this.eL(b.U.we.geotableId));
                var c = {
                    style: a.style
                };
                a.features && 0 < a.features.length && (c.features = p);
                a.styleJson && 0 < a.styleJson.length && (c.styleJson = p);
                Ta(5050, c);
                a.style && (c = b.U.CB[a.style] ? b.U.CB[a.style].backColor : b.U.CB.normal.backColor) && (this.Ua().style.backgroundColor = c)
            }
        },
        CX: function(a) {
            this.controls || (this.controls = {
                navigationControl: new lb,
                scaleControl: new mb,
                overviewMapControl: new nb,
                mapTypeControl: new ob
            });
            var b = this, c;
            for (c in this.controls)
                b.KM(b.controls[c]);
            a = a || [];
            z.lc.Nb(a, function(a) {
                b.Mv(b.controls[a])
            })
        },
        eL: function(a) {
            a ? this.Ir && this.Ir.xf === a || (this.Tf(this.Ir),
            this.Ir = new pb({
                geotableId: a
            }),
            this.Me(this.Ir)) : this.Tf(this.Ir)
        },
        Nd: function() {
            var a = this.ka() >= this.U.bF && this.va() === Pa && 18 >= this.ka()
              , b = t;
            try {
                document.createElement("canvas").getContext("2d"),
                b = p
            } catch (c) {
                b = t
            }
            return a && b
        },
        getCurrentCity: function() {
            return {
                name: this.Tg,
                code: this.vr
            }
        },
        os: function() {
            this.W.zn();
            return this.W
        },
        GX: function(a) {
            Pa.setMaxZoom(a.maxZoom || 19);
            var b = new Q("oninitindoorlayer");
            b.Te = a;
            this.dispatchEvent(b);
            this.U.Xi = t
        },
        JX: function(a) {
            if (this.U.Xi) {
                var b = new Q("onupdatestyles");
                this.dispatchEvent(b)
            } else
                b = new Q("oninitindoorlayer"),
                b.Te = a,
                this.dispatchEvent(b),
                this.U.Xi = p,
                this.U.uo = p
        },
        gN: function(a) {
            this.U.aM = a;
            if(!this.oh.hc) return;
            this.oh.hc.parentElement.style.display = a ? "block" : "none"
        },
        setPanorama: function(a) {
            this.W = a;
            this.W.xE(this)
        },
        LE: function(a, b) {
            var c = {
                featureType: "t",
                elementType: "e",
                visibility: "v",
                color: "c",
                lightness: "l",
                saturation: "s",
                weight: "w",
                level: "z",
                hue: "h",
                fontsize: "f"
            }
              , e = {
                all: "all",
                geometry: "g",
                "geometry.fill": "g.f",
                "geometry.stroke": "g.s",
                labels: "l",
                "labels.text.fill": "l.t.f",
                "labels.text.stroke": "l.t.s",
                "labels.text": "l.t",
                "labels.icon": "l.i"
            }
              , f = [];
            window.La[b] = {};
            for (var g = 0, i; i = a[g]; g++)
                if (!this.SX(i) && (window.qh = this.lX(i, window.qh),
                this.TX(i, b))) {
                    if (("land" === i.featureType || "all" === i.featureType || "background" === i.featureType) && "string" === typeof i.elementType && ("geometry" === i.elementType || "geometry.fill" === i.elementType || "all" === i.elementType) && i.stylers)
                        if (i.stylers.color && (window.La[b].bmapLandColor = i.stylers.color,
                        window.La[b].wL = p,
                        window.bmapLandColor = i.stylers.color),
                        i.stylers.visibility && "off" === i.stylers.visibility)
                            window.La[b].bmapLandColor = "#00000000",
                            window.La[b].wL = p,
                            window.bmapLandColor = "#00000000";
                    if ("railway" === i.featureType && "string" === typeof i.elementType && i.stylers) {
                        if (i.stylers.color && ("geometry" === i.elementType && (window.bmapRailwayFillColor = i.stylers.color,
                        window.bmapRailwayStrokeColor = i.stylers.color,
                        window.La[b].bmapRailwayFillColor = i.stylers.color,
                        window.La[b].bmapRailwayStrokeColor = i.stylers.color,
                        window.La[b].GM = p,
                        window.La[b].HM = p),
                        "geometry.fill" === i.elementType && (window.bmapRailwayFillColor = i.stylers.color,
                        window.La[b].bmapRailwayFillColor = i.stylers.color,
                        window.La[b].GM = p),
                        "geometry.stroke" === i.elementType))
                            window.bmapRailwayStrokeColor = i.stylers.color,
                            window.La[b].bmapRailwayStrokeColor = i.stylers.color,
                            window.La[b].HM = p;
                        i.stylers.visibility && (window.bmapRailwayVisibility = i.stylers.visibility,
                        window.La[b].bmapRailwayVisibility = i.stylers.visibility,
                        window.La[b].ZY = p)
                    }
                    "roadarrow" === i.featureType && ("labels.icon" === i.elementType && i.stylers) && (window.bmapRoadarrowVisibility = i.stylers.visibility,
                    window.La[b].bmapRoadarrowVisibility = i.stylers.visibility,
                    window.La[b].iZ = p);
                    var k = {};
                    z.extend(k, i);
                    i = k.stylers;
                    delete k.stylers;
                    z.extend(k, i);
                    i = [];
                    for (var m in c)
                        if (k[m] && !this.OX(m))
                            if ("elementType" === m)
                                i.push(c[m] + ":" + e[k[m]]);
                            else {
                                switch (k[m]) {
                                case "poilabel":
                                    k[m] = "poi";
                                    break;
                                case "districtlabel":
                                    k[m] = "label"
                                }
                                i.push(c[m] + ":" + k[m])
                            }
                    2 < i.length && f.push(i.join("|"))
                }
            !window.La[b].wL && window.La[b].bmapLandColor && delete window.La[b].bmapLandColor;
            !window.La[b].GM && window.La[b].bmapRailwayFillColor && delete window.La[b].bmapRailwayFillColor;
            !window.La[b].HM && window.La[b].bmapRailwayStrokeColor && delete window.La[b].bmapRailwayStrokeColor;
            !window.La[b].ZY && window.La[b].bmapRailwayVisibility && delete window.La[b].bmapRailwayVisibility;
            !window.La[b].iZ && window.La[b].bmapRoadarrowVisibility && delete window.La[b].bmapRoadarrowVisibility;
            return f.join(",")
        },
        d_: function(a) {
            for (var b = {
                featureType: "t",
                elementType: "e",
                visibility: "v",
                color: "c",
                lightness: "l",
                saturation: "s",
                weight: "w",
                zoom: "z",
                hue: "h"
            }, c = {
                all: "all",
                geometry: "g",
                "geometry.fill": "g.f",
                "geometry.stroke": "g.s",
                labels: "l",
                "labels.text.fill": "l.t.f",
                "labels.text.stroke": "l.t.s",
                "lables.text": "l.t",
                "labels.icon": "l.i"
            }, e = [], f = 0, g; g = a[f]; f++) {
                var i = g.stylers;
                delete g.stylers;
                z.extend(g, i);
                var i = [], k;
                for (k in b)
                    if (g[k])
                        if ("elementType" === k)
                            i.push(b[k] + ":" + c[g[k]]);
                        else {
                            switch (g[k]) {
                            case "poilabel":
                                g[k] = "poi";
                                break;
                            case "districtlabel":
                                g[k] = "label"
                            }
                            i.push(b[k] + ":" + g[k])
                        }
                2 < i.length && e.push(i.join("|"))
            }
            return e.join(",")
        },
        SX: function(a) {
            var b = {};
            z.extend(b, a.stylers);
            delete b.curZoomRegionId;
            delete b.curZoomRegion;
            delete b.level;
            return z.km(b) ? p : t
        },
        TX: function(a, b) {
            var c = a.stylers.level;
            return c === l ? p : c === b + "" ? p : t
        },
        OX: function(a) {
            return {
                curZoomRegionId: p,
                curZoomRegion: p
            }[a] ? p : t
        },
        lX: function(a, b) {
            var c = a.stylers.level
              , e = {};
            z.extend(e, b);
            c !== l && (e[parseInt(c, 10)] = p);
            return e
        },
        RN: function(a, b) {
            window.Tt[b] = a;
            if (!window.qh[b])
                for (var c = this.Db.aj(), e = this.Db.Xh(); c <= e; c++)
                    window.qh[c] || (window.Tt[c] = a)
        },
        ZE: function(a) {
            if (!window.qh[a])
                for (var b = this.Db.aj(), c = this.Db.Xh(); b <= c; b++)
                    window.qh[b] || (window.La[b] || (window.La[b] = {}),
                    window.La[b].bmapLandColor = window.La[a].bmapLandColor,
                    window.La[b].bmapRailwayFillColor = window.La[a].bmapRailwayFillColor,
                    window.La[b].bmapRailwayStrokeColor = window.La[a].bmapRailwayStrokeColor)
        },
        sU: function(a, b) {
            var c = {};
            z.extend(c, a);
            if (c[b]) {
                for (var e = this.Db.aj(), f = this.Db.Xh(); e <= f; e++)
                    if (!c[e]) {
                        c[e] = p;
                        break
                    }
                delete c[b]
            }
            return c
        },
        s3: function(a) {
            return a.Fs || "0" === a.uid ? t : p
        },
        DU: function() {
            delete this.xi.RY
        },
        E1: function() {
            this.xi = {}
        },
        Vn: function(a, b, c) {
            if (!this.U.mo)
                return t;
            a = a || "sp" + this.$.P4++;
            if (b && 0 !== b.length)
                return c = c || {},
                this.xi[a] = this.xi[a] || {
                    polygon: [],
                    polyline: []
                },
                this.xi = this.xi || {},
                this.xi[a][c.type].push({
                    GE: b,
                    Ub: c.Ub,
                    type: c.type,
                    style: c.style
                }),
                a
        }
    });
    function Ta(a, b) {
        if (a) {
            var b = b || {}, c = "", e;
            for (e in b)
                c = c + "&" + e + "=" + encodeURIComponent(b[e]);
            var f = function(a) {
                a && (qb = p,
                setTimeout(function() {
                    //rb.src = D.Cd + "images/blank.gif?" + a.src
                    //console.log(rb.src)
                    //xiaolin
                    rb.src = "/assets/maptile/back.png"
                }, 50))
            }
              , g = function() {
                var a = sb.shift();
                a && f(a)
            };
            e = (1E8 * Math.random()).toFixed(0);
            qb ? sb.push({
                src: "product=jsapi&sub_product=jsapi&v=" + D.version + "&sub_product_v=" + D.version + "&t=" + e + "&code=" + a + "&da_src=" + a + c
            }) : f({
                src: "product=jsapi&sub_product=jsapi&v=" + D.version + "&sub_product_v=" + D.version + "&t=" + e + "&code=" + a + "&da_src=" + a + c
            });
            tb || (z.V(rb, "load", function() {
                qb = t;
                g()
            }),
            z.V(rb, "error", function() {
                qb = t;
                g()
            }),
            tb = p)
        }
    }
    var qb, tb, sb = [], rb = new Image;
    Ta(5E3, {
        device_pixel_ratio: window.devicePixelRatio,
        platform: navigator.platform
    });
    D.ZK = {
        TILE_BASE_URLS: ["gss0.bdstatic.com/5bwHcj7lABFU8t_jkk_Z1zRvfdw6buu", "gss0.bdstatic.com/5bwHcj7lABFV8t_jkk_Z1zRvfdw6buu", "gss0.bdstatic.com/5bwHcj7lABFS8t_jkk_Z1zRvfdw6buu", "gss0.bdstatic.com/5bwHcj7lABFT8t_jkk_Z1zRvfdw6buu", "gss0.bdstatic.com/5bwHcj7lABFY8t_jkk_Z1zRvfdw6buu"],
        TILE_ONLINE_URLS: ["gss0.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv", "gss0.bdstatic.com/8bo_dTSlRMgBo1vgoIiO_jowehsv", "gss0.bdstatic.com/8bo_dTSlRcgBo1vgoIiO_jowehsv", "gss0.bdstatic.com/8bo_dTSlRsgBo1vgoIiO_jowehsv", "gss0.bdstatic.com/8bo_dTSlQ1gBo1vgoIiO_jowehsv"],
        TIlE_PERSPECT_URLS: ["gss0.bdstatic.com/-OR1cTe9KgQFm2e88IuM_a", "gss0.bdstatic.com/-ON1cTe9KgQFm2e88IuM_a", "gss0.bdstatic.com/-OZ1cTe9KgQFm2e88IuM_a", "gss0.bdstatic.com/-OV1cTe9KgQFm2e88IuM_a"],
        geolocControl: "gsp0.baidu.com/8LkJsjOpB1gCo2Kml5_Y_D3",
        TILES_YUN_HOST: ["gsp0.baidu.com/-eR1bSahKgkFkRGko9WTAnF6hhy", "gsp0.baidu.com/-eN1bSahKgkFkRGko9WTAnF6hhy", "gsp0.baidu.com/-eZ1bSahKgkFkRGko9WTAnF6hhy", "gsp0.baidu.com/-eV1bSahKgkFkRGko9WTAnF6hhy"],
        traffic: "gsp0.baidu.com/7_AZsjOpB1gCo2Kml5_Y_DAcsMJiwa",
        iw_pano: "gss0.bdstatic.com/5LUZemba_QUU8t7mm9GUKT-xh_",
        message: "gsp0.baidu.com/7vo0bSba2gU2pMbgoY3K",
        baidumap: "gsp0.baidu.com/80MWsjip0QIZ8tyhnq",
        wuxian: "gsp0.baidu.com/6a1OdTeaKgQFm2e88IuM_a",
        pano: ["gss0.bdstatic.com/5LUZemba_QUU8t7mm9GUKT-xh_", "gss0.bdstatic.com/5LUZemfa_QUU8t7mm9GUKT-xh_", "gss0.bdstatic.com/5LUZemja_QUU8t7mm9GUKT-xh_"],
        main_domain_nocdn: {
            baidu: "gsp0.baidu.com/9_Q4sjOpB1gCo2Kml5_Y_D3",
            other: "api.map.baidu.com"
        },
        main_domain_cdn: {
            baidu: ["gss0.bdstatic.com/9_Q4vHSd2RZ3otebn9fN2DJv", "gss0.baidu.com/9_Q4vXSd2RZ3otebn9fN2DJv", "gss0.bdstatic.com/9_Q4vnSd2RZ3otebn9fN2DJv"],
            other: ["api.map.baidu.com"],
            webmap: ["gss0.baidu.com/6b1IcTe9R1gBo1vgoIiO_jowehsv"]
        },
        map_click: "gsp0.baidu.com/80MWbzKh2wt3n2qy8IqW0jdnxx1xbK",
        vector_traffic: "gss0.bdstatic.com/8aZ1cTe9KgQIm2_p8IuM_a"
    };
    D.tX = {
        TILE_BASE_URLS: ["shangetu0.map.bdimg.com", "shangetu1.map.bdimg.com", "shangetu2.map.bdimg.com", "shangetu3.map.bdimg.com", "shangetu4.map.bdimg.com"],
        TILE_ONLINE_URLS: ["online0.map.bdimg.com", "online1.map.bdimg.com", "online2.map.bdimg.com", "online3.map.bdimg.com", "online4.map.bdimg.com"],
        TIlE_PERSPECT_URLS: ["d0.map.baidu.com", "d1.map.baidu.com", "d2.map.baidu.com", "d3.map.baidu.com"],
        geolocControl: "loc.map.baidu.com",
        TILES_YUN_HOST: ["g0.api.map.baidu.com", "g1.api.map.baidu.com", "g2.api.map.baidu.com", "g3.api.map.baidu.com"],
        traffic: "its.map.baidu.com:8002",
        iw_pano: "pcsv0.map.bdimg.com",
        message: "j.map.baidu.com",
        baidumap: "map.baidu.com",
        wuxian: "wuxian.baidu.com",
        pano: ["pcsv0.map.bdimg.com", "pcsv1.map.bdimg.com", "pcsv2.map.bdimg.com"],
        main_domain_nocdn: {
            baidu: "api.map.baidu.com"
        },
        main_domain_cdn: {
            baidu: ["api0.map.bdimg.com", "api1.map.bdimg.com", "api2.map.bdimg.com"],
            webmap: ["webmap0.map.bdimg.com"]
        },
        map_click: "mapclick.map.baidu.com",
        vector_traffic: "or.map.bdimg.com"
    };
    D.I_ = {
        "0": {
            proto: "http://",
            domain: D.tX
        },
        1: {
            proto: "https://",
            domain: D.ZK
        },
        2: {
            proto: "https://",
            domain: D.ZK
        }
    };
    window.BMAP_PROTOCOL && "https" === window.BMAP_PROTOCOL && (window.HOST_TYPE = 2);
    D.Nt = window.HOST_TYPE || "0";
    D.url = D.I_[D.Nt];
    D.Uo = D.url.proto + D.url.domain.baidumap + "/";
    D.Cd = D.url.proto + ("2" == D.Nt ? D.url.domain.main_domain_nocdn.other : D.url.domain.main_domain_nocdn.baidu) + "/";
    D.oa = D.url.proto + ("2" == D.Nt ? D.url.domain.main_domain_cdn.other[0] : D.url.domain.main_domain_cdn.baidu[0]) + "/";
    D.Ri = D.url.proto + D.url.domain.main_domain_cdn.webmap[0] + "/";
    D.Yh = function(a, b) {
        var c, e, b = b || "";
        switch (a) {
        case "main_domain_nocdn":
            c = D.Cd + b;
            break;
        case "main_domain_cdn":
            c = D.oa + b;
            break;
        default:
            e = D.url.domain[a],
            "[object Array]" == Object.prototype.toString.call(e) ? (c = [],
            z.lc.Nb(e, function(a, e) {
                c[e] = D.url.proto + a + "/" + b
            })) : c = D.url.proto + D.url.domain[a] + "/" + b
        }
        return c
    }
    ;
    function ub(a) {
        var b = {
            duration: 1E3,
            Hc: 30,
            oo: 0,
            $b: vb.FL,
            Ws: u()
        };
        this.Wf = [];
        if (a)
            for (var c in a)
                b[c] = a[c];
        this.m = b;
        if (Za(b.oo)) {
            var e = this;
            setTimeout(function() {
                e.start()
            }, b.oo)
        } else
            b.oo != wb && this.start()
    }
    var wb = "INFINITE";
    ub.prototype.start = function() {
        this.ju = eb();
        this.fz = this.ju + this.m.duration;
        xb(this)
    }
    ;
    ub.prototype.add = function(a) {
        this.Wf.push(a)
    }
    ;
    function xb(a) {
        var b = eb();
        b >= a.fz ? ($a(a.m.za) && a.m.za(a.m.$b(1)),
        $a(a.m.finish) && a.m.finish(),
        0 < a.Wf.length && (b = a.Wf[0],
        b.Wf = [].concat(a.Wf.slice(1)),
        b.start())) : (a.Nx = a.m.$b((b - a.ju) / a.m.duration),
        $a(a.m.za) && a.m.za(a.Nx),
        a.NE || (a.pr = setTimeout(function() {
            xb(a)
        }, 1E3 / a.m.Hc)))
    }
    ub.prototype.stop = function(a) {
        this.NE = p;
        for (var b = 0; b < this.Wf.length; b++)
            this.Wf[b].stop(),
            this.Wf[b] = s;
        this.Wf.length = 0;
        this.pr && (clearTimeout(this.pr),
        this.pr = s);
        this.m.Ws(this.Nx);
        a && (this.fz = this.ju,
        xb(this))
    }
    ;
    ub.prototype.cancel = ha(1);
    var vb = {
        FL: function(a) {
            return a
        },
        reverse: function(a) {
            return 1 - a
        },
        hC: function(a) {
            return a * a
        },
        fC: function(a) {
            return Math.pow(a, 3)
        },
        Vr: function(a) {
            return -(a * (a - 2))
        },
        RJ: function(a) {
            return Math.pow(a - 1, 3) + 1
        },
        gC: function(a) {
            return 0.5 > a ? 2 * a * a : -2 * (a - 2) * a - 1
        },
        U1: function(a) {
            return 0.5 > a ? 4 * Math.pow(a, 3) : 4 * Math.pow(a - 1, 3) + 1
        },
        V1: function(a) {
            return (1 - Math.cos(Math.PI * a)) / 2
        }
    };
    vb["ease-in"] = vb.hC;
    vb["ease-out"] = vb.Vr;
    var H = {
        lF: 34,
        mF: 21,
        nF: new P(21,32),
        kO: new P(10,32),
        jO: new P(24,36),
        iO: new P(12,36),
        jF: new P(13,1),
      //  sa: D.oa + "images/",
      sa:"assets/images/",
        // m3: "http://api0.map.bdimg.com/images/",
         m3: "assets/images/",
        kF: D.oa + "images/markers_new.png",
        gO: 24,
        hO: 73,
        vB: {
            "\u5317\u4eac": {
                Dx: "bj",
                o: new J(116.403874,39.914889)
            },
            "\u4e0a\u6d77": {
                Dx: "sh",
                o: new J(121.487899,31.249162)
            },
            "\u6df1\u5733": {
                Dx: "sz",
                o: new J(114.025974,22.546054)
            },
            "\u5e7f\u5dde": {
                Dx: "gz",
                o: new J(113.30765,23.120049)
            }
        },
        fontFamily: "arial,sans-serif"
    };
    z.ga.Qe ? (z.extend(H, {
        DJ: "url(" + H.sa + "ruler.cur),crosshair",
        yc: "-moz-grab",
        Gd: "-moz-grabbing"
    }),
    z.platform.rL && (H.fontFamily = "arial,simsun,sans-serif")) : z.ga.Zv || z.ga.Mx ? z.extend(H, {
        DJ: "url(" + H.sa + "ruler.cur) 2 6,crosshair",
        yc: "url(" + H.sa + "openhand.cur) 8 8,default",
        Gd: "url(" + H.sa + "closedhand.cur) 8 8,move"
    }) : z.extend(H, {
        DJ: "url(" + H.sa + "ruler.cur),crosshair",
        yc: "url(" + H.sa + "openhand.cur),default",
        Gd: "url(" + H.sa + "closedhand.cur),move"
    });
    function yb(a, b) {
        var c = a.style;
        c.left = b[0] + "px";
        c.top = b[1] + "px"
    }
    function zb(a) {
        0 < z.ga.ma ? a.unselectable = "on" : a.style.MozUserSelect = "none"
    }
    function Ab(a) {
        return a && a.parentNode && 11 !== a.parentNode.nodeType
    }
    function Bb(a, b) {
        z.R.bx(a, "beforeEnd", b);
        return a.lastChild
    }
    function Cb(a) {
        for (var b = {
            left: 0,
            top: 0
        }; a && a.offsetParent; )
            b.left += a.offsetLeft,
            b.top += a.offsetTop,
            a = a.offsetParent;
        return b
    }
    function na(a) {
        a = window.event || a;
        a.stopPropagation ? a.stopPropagation() : a.cancelBubble = p
    }
    function Db(a) {
        a = window.event || a;
        a.preventDefault ? a.preventDefault() : a.returnValue = t;
        return t
    }
    function oa(a) {
        na(a);
        return Db(a)
    }
    function Eb() {
        var a = document.documentElement
          , b = document.body;
        return a && (a.scrollTop || a.scrollLeft) ? [a.scrollTop, a.scrollLeft] : b ? [b.scrollTop, b.scrollLeft] : [0, 0]
    }
    function Fb(a, b) {
        if (a && b)
            return Math.round(Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2)))
    }
    function Gb(a, b) {
        var c = [], b = b || function(a) {
            return a
        }
        , e;
        for (e in a)
            c.push(e + "=" + b(a[e]));
        return c.join("&")
    }
    function O(a, b, c) {
        var e = document.createElement(a);
        c && (e = document.createElementNS(c, a));
        return z.R.sE(e, b || {})
    }
    function Ya(a) {
        if (a.currentStyle)
            return a.currentStyle;
        if (a.ownerDocument && a.ownerDocument.defaultView)
            return a.ownerDocument.defaultView.getComputedStyle(a, s)
    }
    function $a(a) {
        return "function" === typeof a
    }
    function Za(a) {
        return "number" === typeof a
    }
    function bb(a) {
        return "string" == typeof a
    }
    function Hb(a) {
        return "undefined" != typeof a
    }
    function Ib(a) {
        return "object" == typeof a
    }
    var Jb = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    function Kb(a) {
        for (var b = "", c = 0; c < a.length; c++) {
            var e = a.charCodeAt(c) << 1
              , f = e = e.toString(2);
            8 > e.length && (f = "00000000" + e,
            f = f.substr(e.length, 8));
            b += f
        }
        a = 5 - b.length % 5;
        e = [];
        for (c = 0; c < a; c++)
            e[c] = "0";
        b = e.join("") + b;
        f = [];
        for (c = 0; c < b.length / 5; c++)
            e = b.substr(5 * c, 5),
            f.push(String.fromCharCode(parseInt(e, 2) + 50));
        return f.join("") + a.toString()
    }
    function Lb(a) {
        var b = "", c, e, f = "", g, i = "", k = 0;
        g = /[^A-Za-z0-9\+\/\=]/g;
        if (!a || g.exec(a))
            return a;
        a = a.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        do
            c = Jb.indexOf(a.charAt(k++)),
            e = Jb.indexOf(a.charAt(k++)),
            g = Jb.indexOf(a.charAt(k++)),
            i = Jb.indexOf(a.charAt(k++)),
            c = c << 2 | e >> 4,
            e = (e & 15) << 4 | g >> 2,
            f = (g & 3) << 6 | i,
            b += String.fromCharCode(c),
            64 != g && (b += String.fromCharCode(e)),
            64 != i && (b += String.fromCharCode(f));
        while (k < a.length);return b
    }
    var Q = z.lang.Zt;
    function I() {
        return !(!z.platform.zD && !z.platform.RX && !z.platform.jj)
    }
    function Xa() {
        return !(!z.platform.rL && !z.platform.jL && !z.platform.ZX)
    }
    function eb() {
        return (new Date).getTime()
    }
    function Mb() {
        var a = document.body.appendChild(O("div"));
        a.innerHTML = '<v:shape id="vml_tester1" adj="1" />';
        var b = a.firstChild;
        if (!b.style)
            return t;
        b.style.behavior = "url(#default#VML)";
        b = b ? "object" === typeof b.adj : p;
        a.parentNode.removeChild(a);
        return b
    }
    function Nb() {
        return !!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Shape", "1.1")
    }
    function Ob() {
        return !!O("canvas").getContext
    }
    function Pb(a) {
        return a * Math.PI / 180
    }
    D.eY = function() {
        var a = p
          , b = p
          , c = p
          , e = p
          , f = 0
          , g = 0
          , i = 0
          , k = 0;
        return {
            LP: function() {
                f += 1;
                a && (a = t,
                setTimeout(function() {
                    Ta(5054, {
                        pic: f
                    });
                    a = p;
                    f = 0
                }, 1E4))
            },
            z0: function() {
                g += 1;
                b && (b = t,
                setTimeout(function() {
                    Ta(5055, {
                        move: g
                    });
                    b = p;
                    g = 0
                }, 1E4))
            },
            B0: function() {
                i += 1;
                c && (c = t,
                setTimeout(function() {
                    Ta(5056, {
                        zoom: i
                    });
                    c = p;
                    i = 0
                }, 1E4))
            },
            A0: function(a) {
                k += a;
                e && (e = t,
                setTimeout(function() {
                    Ta(5057, {
                        tile: k
                    });
                    e = p;
                    k = 0
                }, 5E3))
            }
        }
    }();
    D.Fp = {
        AF: "#83a1ff",
        Hp: "#808080"
    };
    function Qb(a, b, c) {
        b.QD || (b.QD = [],
        b.handle = {});
        b.QD.push({
            filter: c,
            bs: a
        });
        b.addEventListener || (b.addEventListener = function(a, c) {
            b.attachEvent("on" + a, c)
        }
        );
        b.handle.click || (b.addEventListener("click", function(a) {
            for (var c = a.target || a.srcElement; c != b; ) {
                Rb(b.QD, function(b, i) {
                    RegExp(i.filter).test(c.getAttribute("filter")) && i.bs.call(c, a, c.getAttribute("filter"))
                });
                c = c.parentNode
            }
        }, t),
        b.handle.click = p)
    }
    function Rb(a, b) {
        for (var c = 0, e = a.length; c < e; c++)
            b(c, a[c])
    }
    void function(a, b, c) {
        void function(a, b, c) {
            function i(a) {
                if (!a.no) {
                    for (var c = p, e = [], g = a.eZ, k = 0; g && k < g.length; k++) {
                        var m = g[k]
                          , n = da[m] = da[m] || {};
                        if (n.no || n == a)
                            e.push(n.Mc);
                        else {
                            c = t;
                            if (!n.gV && (m = (va.get("alias") || {})[m] || m + ".js",
                            !N[m])) {
                                N[m] = p;
                                var o = b.createElement("script")
                                  , q = b.getElementsByTagName("script")[0];
                                o.async = p;
                                o.src = m;
                                q.parentNode.insertBefore(o, q)
                            }
                            n.gy = n.gy || {};
                            n.gy[a.name] = a
                        }
                    }
                    if (c) {
                        a.no = p;
                        a.yJ && (a.Mc = a.yJ.apply(a, e));
                        for (var v in a.gy)
                            i(a.gy[v])
                    }
                }
            }
            function k(a) {
                return (a || new Date) - F
            }
            function m(a, b, c) {
                if (a) {
                    "string" == typeof a && (c = b,
                    b = a,
                    a = L);
                    try {
                        a == L ? (M[b] = M[b] || [],
                        M[b].unshift(c)) : a.addEventListener ? a.addEventListener(b, c, t) : a.attachEvent && a.attachEvent("on" + b, c)
                    } catch (e) {}
                }
            }
            function n(a, b, c) {
                if (a) {
                    "string" == typeof a && (c = b,
                    b = a,
                    a = L);
                    try {
                        if (a == L) {
                            var e = M[b];
                            if (e)
                                for (var f = e.length; f--; )
                                    e[f] === c && e.splice(f, 1)
                        } else
                            a.removeEventListener ? a.removeEventListener(b, c, t) : a.detachEvent && a.detachEvent("on" + b, c)
                    } catch (g) {}
                }
            }
            function o(a) {
                var b = M[a]
                  , c = 0;
                if (b) {
                    for (var e = [], f = arguments, g = 1; g < f.length; g++)
                        e.push(f[g]);
                    for (g = b.length; g--; )
                        b[g].apply(this, e) && c++;
                    return c
                }
            }
            function q(a, b) {
                if (a && b) {
                    var c = new Image(1,1), e = [], f = "img_" + +new Date, g;
                    for (g in b)
                        b[g] && e.push(g + "=" + encodeURIComponent(b[g]));
                    L[f] = c;
                    c.onload = c.onerror = function() {
                        L[f] = c = c.onload = c.onerror = s;
                        delete L[f]
                    }
                    ;
                    c.src = a + "?" + e.join("&")
                }
            }
            function v() {
                var a = arguments
                  , b = a[0];
                if (this.xJ || /^(on|un|set|get|create)$/.test(b)) {
                    for (var b = y.prototype[b], c = [], e = 1, f = a.length; e < f; e++)
                        c.push(a[e]);
                    "function" == typeof b && b.apply(this, c)
                } else
                    this.XI.push(a)
            }
            function w(a, b) {
                var c = {}, e;
                for (e in a)
                    a.hasOwnProperty(e) && (c[e] = a[e]);
                for (e in b)
                    b.hasOwnProperty(e) && (c[e] = b[e]);
                return c
            }
            function y(a) {
                this.name = a;
                this.$r = {
                    protocolParameter: {
                        postUrl: s,
                        protocolParameter: s
                    }
                };
                this.XI = [];
                this.alog = L
            }
            function A(a) {
                a = a || "default";
                if ("*" == a) {
                    var a = [], b;
                    for (b in T)
                        a.push(T[b]);
                    return a
                }
                (b = T[a]) || (b = T[a] = new y(a));
                return b
            }
            var B = c.alog;
            if (!B || !B.no) {
                var C = b.all && a.attachEvent
                  , F = B && B.HD || +new Date
                  , E = a.E3 || (+new Date).toString(36) + Math.random().toString(36).substr(2, 3)
                  , G = 0
                  , N = {}
                  , L = function(a) {
                    var b = arguments, c, e, f, g;
                    if ("define" == a || "require" == a) {
                        for (e = 1; e < b.length; e++)
                            switch (typeof b[e]) {
                            case "string":
                                c = b[e];
                                break;
                            case "object":
                                f = b[e];
                                break;
                            case "function":
                                g = b[e]
                            }
                        "require" == a && (c && !f && (f = [c]),
                        c = s);
                        c = !c ? "#" + G++ : c;
                        e = da[c] = da[c] || {};
                        e.no || (e.name = c,
                        e.eZ = f,
                        e.yJ = g,
                        "define" == a && (e.gV = p),
                        i(e))
                    } else
                        "function" == typeof a ? a(L) : ("" + a).replace(/^(?:([\w$_]+)\.)?(\w+)$/, function(a, c, e) {
                            b[0] = e;
                            v.apply(L.XE(c), b)
                        })
                }
                  , M = {}
                  , T = {}
                  , da = {
                    o1: {
                        name: "alog",
                        no: p,
                        Mc: L
                    }
                };
                y.prototype.start = y.prototype.create = function(a) {
                    if (!this.xJ) {
                        "object" == typeof a && this.set(a);
                        this.xJ = new Date;
                        for (this.as("create", this); a = this.XI.shift(); )
                            v.apply(this, a)
                    }
                }
                ;
                y.prototype.send = function(a, b) {
                    var c = w({
                        ts: k().toString(36),
                        t: a,
                        sid: E
                    }, this.$r);
                    if ("object" == typeof b)
                        c = w(c, b);
                    else {
                        var e = arguments;
                        switch (a) {
                        case "pageview":
                            e[1] && (c.page = e[1]);
                            e[2] && (c.title = e[2]);
                            break;
                        case "event":
                            e[1] && (c.eventCategory = e[1]);
                            e[2] && (c.eventAction = e[2]);
                            e[3] && (c.eventLabel = e[3]);
                            e[4] && (c.eventValue = e[4]);
                            break;
                        case "timing":
                            e[1] && (c.timingCategory = e[1]);
                            e[2] && (c.timingVar = e[2]);
                            e[3] && (c.timingValue = e[3]);
                            e[4] && (c.timingLabel = e[4]);
                            break;
                        case "exception":
                            e[1] && (c.exDescription = e[1]);
                            e[2] && (c.exFatal = e[2]);
                            break;
                        default:
                            return
                        }
                    }
                    this.as("send", c);
                    var f;
                    if (e = this.$r.protocolParameter) {
                        var g = {};
                        for (f in c)
                            e[f] !== s && (g[e[f] || f] = c[f]);
                        f = g
                    } else
                        f = c;
                    q(this.$r.postUrl, f)
                }
                ;
                y.prototype.set = function(a, b) {
                    if ("string" == typeof a)
                        "protocolParameter" == a && (b = w({
                            postUrl: s,
                            protocolParameter: s
                        }, b)),
                        this.$r[a] = b;
                    else if ("object" == typeof a)
                        for (var c in a)
                            this.set(c, a[c])
                }
                ;
                y.prototype.get = function(a, b) {
                    var c = this.$r[a];
                    "function" == typeof b && b(c);
                    return c
                }
                ;
                y.prototype.as = function(a, b) {
                    return L.as(this.name + "." + a, b)
                }
                ;
                y.prototype.V = function(a, b) {
                    L.V(this.name + "." + a, b)
                }
                ;
                y.prototype.dd = function(a, b) {
                    L.dd(this.name + "." + a, b)
                }
                ;
                L.name = "alog";
                L.Ub = E;
                L.no = p;
                L.timestamp = k;
                L.dd = n;
                L.V = m;
                L.as = o;
                L.XE = A;
                L("init");
                var ba = y.prototype;
                U(ba, {
                    start: ba.start,
                    create: ba.create,
                    send: ba.send,
                    set: ba.set,
                    get: ba.get,
                    on: ba.V,
                    un: ba.dd,
                    fire: ba.as
                });
                var va = A();
                va.set("protocolParameter", {
                    n1: s
                });
                if (B) {
                    ba = [].concat(B.xb || [], B.ct || []);
                    B.xb = B.ct = s;
                    for (var ya in L)
                        L.hasOwnProperty(ya) && (B[ya] = L[ya]);
                    L.xb = L.ct = {
                        push: function(a) {
                            L.apply(L, a)
                        }
                    };
                    for (B = 0; B < ba.length; B++)
                        L.apply(L, ba[B])
                }
                c.alog = L;
                C && m(b, "mouseup", function(a) {
                    a = a.target || a.srcElement;
                    1 == a.nodeType && /^ajavascript:/i.test(a.tagName + a.href)
                });
                var Ea = t;
                a.onerror = function(a, b, e, f) {
                    var i = p;
                    !b && /^script error/i.test(a) && (Ea ? i = t : Ea = p);
                    i && c.alog("exception.send", "exception", {
                        Ss: a,
                        GD: b,
                        Os: e,
                        Ol: f
                    });
                    return t
                }
                ;
                c.alog("exception.on", "catch", function(a) {
                    c.alog("exception.send", "exception", {
                        Ss: a.Ss,
                        GD: a.path,
                        Os: a.Os,
                        method: a.method,
                        bK: "catch"
                    })
                })
            }
        }(a, b, c);
        void function(a, b, c) {
            var i = "18_3";
            I() && (i = "18_4");
            var k = "http://static.tieba.baidu.com";
            "https:" === a.location.protocol && (k = "https://gsp0.baidu.com/5aAHeD3nKhI2p27j8IqW0jdnxx1xbK");
            var m = Math.random
              , k = k + "/tb/pms/img/st.gif"
              , n = {
                kh: "0.1"
            }
              , o = {
                kh: "0.1"
            }
              , q = {
                kh: "0.1"
            }
              , v = {
                kh: "0"
            };
            if (n && n.kh && m() < n.kh) {
                var w = c.alog.XE("monkey"), y, n = a.screen, A = b.referrer;
                w.set("ver", 5);
                w.set("pid", 241);
                n && w.set("px", n.width + "*" + n.height);
                w.set("ref", A);
                c.alog("monkey.on", "create", function() {
                    y = c.alog.timestamp;
                    w.set("protocolParameter", {
                        reports: s
                    })
                });
                c.alog("monkey.on", "send", function(a) {
                    "pageview" == a.t && (a.cmd = "open");
                    a.now && (a.ts = y(a.now).toString(36),
                    a.now = "")
                });
                c.alog("monkey.create", {
                    page: i,
                    pid: "241",
                    p: "18",
                    dv: 6,
                    postUrl: k,
                    reports: {
                        refer: 1
                    }
                });
                c.alog("monkey.send", "pageview", {
                    now: +new Date
                })
            }
            if (o && o.kh && m() < o.kh) {
                var B = t;
                a.onerror = function(a, b, e, f) {
                    var i = p;
                    !b && /^script error/i.test(a) && (B ? i = t : B = p);
                    i && c.alog("exception.send", "exception", {
                        Ss: a,
                        GD: b,
                        Os: e,
                        Ol: f
                    });
                    return t
                }
                ;
                c.alog("exception.on", "catch", function(a) {
                    c.alog("exception.send", "exception", {
                        Ss: a.Ss,
                        GD: a.path,
                        Os: a.Os,
                        method: a.method,
                        bK: "catch"
                    })
                });
                c.alog("exception.create", {
                    postUrl: k,
                    dv: 7,
                    page: i,
                    pid: "170",
                    p: "18"
                })
            }
            q && (q.kh && m() < q.kh) && (c.alog("cus.on", "time", function(a) {
                var b = {}, e = t, f;
                if ("[object Object]" === a.toString()) {
                    for (var i in a)
                        "page" == i ? b.page = a[i] : (f = parseInt(a[i]),
                        0 < f && /^z_/.test(i) && (e = p,
                        b[i] = f));
                    e && c.alog("cus.send", "time", b)
                }
            }),
            c.alog("cus.on", "count", function(a) {
                var b = {}
                  , e = t;
                "string" === typeof a && (a = [a]);
                if (a instanceof Array)
                    for (var f = 0; f < a.length; f++)
                        /^z_/.test(a[f]) ? (e = p,
                        b[a[f]] = 1) : /^page:/.test(a[f]) && (b.page = a[f].substring(5));
                e && c.alog("cus.send", "count", b)
            }),
            c.alog("cus.create", {
                dv: 3,
                postUrl: k,
                page: i,
                p: "18"
            }));
            if (v && v.kh && m() < v.kh) {
                var C = ["Moz", "O", "ms", "Webkit"]
                  , F = ["-webkit-", "-moz-", "-o-", "-ms-"]
                  , E = function() {
                    return typeof b.createElement !== "function" ? b.createElement(arguments[0]) : b.createElement.apply(b, arguments)
                }
                  , G = E("dpFeatureTest").style
                  , N = function(a) {
                    return L(a, l, l)
                }
                  , L = function(a, b, c) {
                    var e = a.charAt(0).toUpperCase() + a.slice(1)
                      , f = (a + " " + C.join(e + " ") + e).split(" ");
                    if (typeof b === "string" || typeof b === "undefined")
                        return M(f, b);
                    f = (a + " " + C.join(e + " ") + e).split(" ");
                    a: {
                        var a = f, g;
                        for (g in a)
                            if (a[g]in b) {
                                if (c === t) {
                                    b = a[g];
                                    break a
                                }
                                g = b[a[g]];
                                b = typeof g === "function" ? fnBind(g, c || b) : g;
                                break a
                            }
                        b = t
                    }
                    return b
                }
                  , M = function(a, b) {
                    var c, e, f;
                    e = a.length;
                    for (c = 0; c < e; c++) {
                        f = a[c];
                        ~("" + f).indexOf("-") && (f = T(f));
                        if (G[f] !== l)
                            return b == "pfx" ? f : p
                    }
                    return t
                }
                  , T = function(a) {
                    return a.replace(/([a-z])-([a-z])/g, function(a, b, c) {
                        return b + c.toUpperCase()
                    }).replace(/^-/, "")
                }
                  , da = function(a, b, c) {
                    if (a.indexOf("@") === 0)
                        return atRule(a);
                    a.indexOf("-") != -1 && (a = T(a));
                    return !b ? L(a, "pfx") : L(a, b, c)
                }
                  , ba = function() {
                    var a = E("canvas");
                    return !(!a.getContext || !a.getContext("2d"))
                }
                  , va = function() {
                    var a = E("div");
                    return "draggable"in a || "ondragstart"in a && "ondrop"in a
                }
                  , ya = function() {
                    try {
                        localStorage.setItem("localStorage", "localStorage");
                        localStorage.removeItem("localStorage");
                        return p
                    } catch (a) {
                        return t
                    }
                }
                  , Ea = function() {
                    return "content"in b.createElement("template")
                }
                  , ra = function() {
                    return "createShadowRoot"in b.createElement("a")
                }
                  , Ua = function() {
                    return "registerElement"in b
                }
                  , re = function() {
                    return "import"in b.createElement("link")
                }
                  , Oc = function() {
                    return "getItems"in b
                }
                  , Ci = function() {
                    return "EventSource"in window
                }
                  , se = function(a, b) {
                    var c = new Image;
                    c.onload = function() {
                        b(a, c.width > 0 && c.height > 0)
                    }
                    ;
                    c.onerror = function() {
                        b(a, t)
                    }
                    ;
                    c.src = "data:image/webp;base64," + {
                        H3: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",
                        G3: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",
                        alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",
                        Yj: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"
                    }[a]
                }
                  , te = function(a, b) {
                    return Vb.Th["WebP-" + a] = b
                }
                  , Di = function() {
                    return "openDatabase"in a
                }
                  , Ei = function() {
                    return "performance"in a && "timing"in a.performance
                }
                  , Fi = function() {
                    return "performance"in a && "mark"in a.performance
                }
                  , Gi = function() {
                    return !(!Array.prototype || !Array.prototype.every || !Array.prototype.filter || !Array.prototype.forEach || !Array.prototype.indexOf || !Array.prototype.lastIndexOf || !Array.prototype.map || !Array.prototype.some || !Array.prototype.reduce || !Array.prototype.reduceRight || !Array.isArray)
                }
                  , Hi = function() {
                    return "Promise"in a && "cast"in a.Ip && "resolve"in a.Ip && "reject"in a.Ip && "all"in a.Ip && "race"in a.Ip && function() {
                        var b;
                        new a.Ip(function(a) {
                            b = a
                        }
                        );
                        return typeof b === "function"
                    }()
                }
                  , Ii = function() {
                    var b = !!a.m0
                      , c = a.XMLHttpRequest && "withCredentials"in new XMLHttpRequest;
                    return !!a.q0 && b && c
                }
                  , Ji = function() {
                    return "geolocation"in navigator
                }
                  , Ki = function() {
                    var b = E("canvas")
                      , c = "probablySupportsContext"in b ? "probablySupportsContext" : "supportsContext";
                    return c in b ? b[c]("webgl") || b[c]("experimental-webgl") : "WebGLRenderingContext"in a
                }
                  , Li = function() {
                    return !!b.createElementNS && !!b.createElementNS("http://www.w3.org/2000/svg", "svg").J1
                }
                  , Mi = function() {
                    return !!a.x0
                }
                  , Ni = function() {
                    return "WebSocket"in a && a.u0.i0 === 2
                }
                  , Oi = function() {
                    return !!b.createElement("video").canPlayType
                }
                  , Pi = function() {
                    return !!b.createElement("audio").canPlayType
                }
                  , Qi = function() {
                    return !!(a.history && "pushState"in a.history)
                }
                  , Ri = function() {
                    return !(!a.k0 || !a.l0)
                }
                  , Si = function() {
                    return "postMessage"in window
                }
                  , Ti = function() {
                    return !!a.webkitNotifications || "Notification"in a && "permission"in a.DO && "requestPermission"in a.DO
                }
                  , Ui = function() {
                    for (var b = ["webkit", "moz", "o", "ms"], c = a.requestAnimationFrame, f = 0; f < b.length && !c; ++f)
                        c = a[b[f] + "RequestAnimationFrame"];
                    return !!c
                }
                  , Vi = function() {
                    return "JSON"in a && "parse"in JSON && "stringify"in JSON
                }
                  , Wi = function() {
                    return !(!da("exitFullscreen", b, t) && !da("cancelFullScreen", b, t))
                }
                  , Xi = function() {
                    return !!da("Intl", a)
                }
                  , Yi = function() {
                    return N("flexBasis")
                }
                  , Zi = function() {
                    return !!N("perspective")
                }
                  , $i = function() {
                    return N("shapeOutside")
                }
                  , aj = function() {
                    var a = E("div");
                    a.style.cssText = F.join("filter:blur(2px); ");
                    return !!a.style.length && (b.documentMode === l || b.documentMode > 9)
                }
                  , bj = function() {
                    return "XMLHttpRequest"in a && "withCredentials"in new XMLHttpRequest
                }
                  , cj = function() {
                    return E("progress").max !== l
                }
                  , dj = function() {
                    return E("meter").max !== l
                }
                  , ej = function() {
                    return "sendBeacon"in navigator
                }
                  , fj = function() {
                    return N("borderRadius")
                }
                  , gj = function() {
                    return N("boxShadow")
                }
                  , hj = function() {
                    var a = E("div").style;
                    a.cssText = F.join("opacity:.55;");
                    return /^0.55$/.test(a.opacity)
                }
                  , ij = function() {
                    return M(["textShadow"], l)
                }
                  , jj = function() {
                    return N("animationName")
                }
                  , kj = function() {
                    return N("transition")
                }
                  , lj = function() {
                    return navigator.userAgent.indexOf("Android 2.") === -1 && N("transform")
                }
                  , Vb = {
                    Th: {},
                    ra: function(a, b, c) {
                        this.Th[a] = b.apply(this, [].slice.call(arguments, 2))
                    },
                    Dd: function(a, b) {
                        a.apply(this, [].slice.call(arguments, 1))
                    },
                    kZ: function() {
                        this.ra("bdrs", fj);
                        this.ra("bxsd", gj);
                        this.ra("opat", hj);
                        this.ra("txsd", ij);
                        this.ra("anim", jj);
                        this.ra("trsi", kj);
                        this.ra("trfm", lj);
                        this.ra("flex", Yi);
                        this.ra("3dtr", Zi);
                        this.ra("shpe", $i);
                        this.ra("fltr", aj);
                        this.ra("cavs", ba);
                        this.ra("dgdp", va);
                        this.ra("locs", ya);
                        this.ra("wctem", Ea);
                        this.ra("wcsdd", ra);
                        this.ra("wccse", Ua);
                        this.ra("wchti", re);
                        this.Dd(se, "lossy", te);
                        this.Dd(se, "lossless", te);
                        this.Dd(se, "alpha", te);
                        this.Dd(se, "animation", te);
                        this.ra("wsql", Di);
                        this.ra("natm", Ei);
                        this.ra("ustm", Fi);
                        this.ra("arra", Gi);
                        this.ra("prms", Hi);
                        this.ra("xhr2", Ii);
                        this.ra("wbgl", Ki);
                        this.ra("geol", Ji);
                        this.ra("svg", Li);
                        this.ra("work", Mi);
                        this.ra("wbsk", Ni);
                        this.ra("vido", Oi);
                        this.ra("audo", Pi);
                        this.ra("hsty", Qi);
                        this.ra("file", Ri);
                        this.ra("psmg", Si);
                        this.ra("wknf", Ti);
                        this.ra("rqaf", Ui);
                        this.ra("json", Vi);
                        this.ra("flsc", Wi);
                        this.ra("i18n", Xi);
                        this.ra("cors", bj);
                        this.ra("prog", cj);
                        this.ra("metr", dj);
                        this.ra("becn", ej);
                        this.ra("mcrd", Oc);
                        this.ra("esrc", Ci)
                    }
                }
                  , w = c.alog.XE("feature");
                w.V("commit", function() {
                    Vb.kZ();
                    var a = setInterval(function() {
                        if ("WebP-lossy"in Vb.Th && "WebP-lossless"in Vb.Th && "WebP-alpha"in Vb.Th && "WebP-animation"in Vb.Th) {
                            for (var b in Vb.Th)
                                Vb.Th[b] = Vb.Th[b] ? "y" : "n";
                            w.send("feature", Vb.Th);
                            clearInterval(a)
                        }
                    }, 500)
                });
                c.alog("feature.create", {
                    S1: 4,
                    k4: k,
                    page: i,
                    xb: "18"
                });
                c.alog("feature.fire", "commit")
            }
        }(a, b, c)
    }(window, document, D);
    D.Qp = D.alog || u();
    D.alog("cus.fire", "count", "z_loadscriptcount");
    "https:" === location.protocol && D.alog("cus.fire", "count", "z_httpscount");
    function Sb(a) {
        var b = window.TILE_VERSION
          , c = "20170927";
        b && b.ditu && (b = b.ditu,
        b[a] && b[a].updateDate && (c = b[a].updateDate));
        return c
    }
    ;function pa(a, b) {
        if (b) {
            var c = (1E5 * Math.random()).toFixed(0);
            D._rd["_cbk" + c] = function(a) {
                b && b(a);
                delete D._rd["_cbk" + c]
            }
            ;
            a += "&callback=BMap._rd._cbk" + c
        }
        var e = O("script", {
            type: "text/javascript"
        });
        e.charset = "utf-8";
        e.src = a;
        e.addEventListener ? e.addEventListener("load", function(a) {
            a = a.target;
            a.parentNode.removeChild(a)
        }, t) : e.attachEvent && e.attachEvent("onreadystatechange", function() {
            var a = window.event.srcElement;
            a && ("loaded" == a.readyState || "complete" == a.readyState) && a.parentNode.removeChild(a)
        });
        setTimeout(function() {
            document.getElementsByTagName("head")[0].appendChild(e);
            e = s
        }, 1)
    }
    ;var Tb = {
        map: "i5s0dw",
        common: "jrzmva",
        style: "mqdswt",
        tile: "wetykw",
        groundoverlay: "zel1ht",
        pointcollection: "52rldj",
        marker: "15ipzq",
        symbol: "bxzn24",
        canvablepath: "yjpor5",
        vmlcontext: "41oars",
        markeranimation: "q1bipf",
        poly: "3zcxhi",
        draw: "fkup43",
        drawbysvg: "ijy5nj",
        drawbyvml: "aoibi5",
        drawbycanvas: "aewn4o",
        infowindow: "anxyp0",
        oppc: "upzuz4",
        opmb: "3awlxd",
        menu: "szrz5h",
        control: "j4hynd",
        navictrl: "4m4vf2",
        geoctrl: "qesj1s",
        copyrightctrl: "nafalt",
        citylistcontrol: "ppkbbr",
        scommon: "wwss1q",
        local: "hptci0",
        route: "5f530m",
        othersearch: "txcc0b",
        mapclick: "xh0ipo",
        buslinesearch: "cvs3i2",
        hotspot: "r1fl3s",
        autocomplete: "smbpgf",
        coordtrans: "dl5jov",
        coordtransutils: "4gcmt1",
        convertor: "p2frek",
        clayer: "omtot3",
        pservice: "4cfn3c",
        pcommon: "f13wqp",
        panorama: "pothz4",
        panoramaflash: "3lrn0o"
    };
    z.Zx = function() {
        function a(a) {
            return e && !!c[b + a + "_" + Tb[a]]
        }
        var b = "BMap_"
          , c = window.localStorage
          , e = "localStorage"in window && c !== s && c !== l;
        return {
            UX: e,
            set: function(a, g) {
                if (e) {
                    for (var i = b + a + "_", k = c.length, m; k--; )
                        m = c.key(k),
                        -1 < m.indexOf(i) && c.removeItem(m);
                    try {
                        c.setItem(b + a + "_" + Tb[a], g)
                    } catch (n) {
                        c.clear()
                    }
                }
            },
            get: function(f) {
                return e && a(f) ? c.getItem(b + f + "_" + Tb[f]) : t
            },
            iJ: a
        }
    }();
    function K() {}
    z.object.extend(K, {
        tj: {
            BF: -1,
            RO: 0,
            Bp: 1
        },
        pK: function() {
            var a = "canvablepath";
            if (!I() || !Ob())
                Nb() || (Mb() ? a = "vmlcontext" : Ob());
            return {
                tile: ["style"],
                control: [],
                marker: ["symbol"],
                symbol: ["canvablepath", "common"],
                canvablepath: "canvablepath" === a ? [] : [a],
                vmlcontext: [],
                style: [],
                poly: ["marker", "drawbycanvas", "drawbysvg", "drawbyvml"],
                drawbysvg: ["draw"],
                drawbyvml: ["draw"],
                drawbycanvas: ["draw"],
                infowindow: ["common", "marker"],
                menu: [],
                oppc: [],
                opmb: [],
                scommon: [],
                local: ["scommon"],
                route: ["scommon"],
                othersearch: ["scommon"],
                autocomplete: ["scommon"],
                citylistcontrol: ["autocomplete"],
                mapclick: ["scommon"],
                buslinesearch: ["route"],
                hotspot: [],
                coordtransutils: ["coordtrans"],
                convertor: [],
                clayer: ["tile"],
                pservice: [],
                pcommon: ["style", "pservice"],
                panorama: ["pcommon"],
                panoramaflash: ["pcommon"]
            }
        },
        n4: {},
        // tF: {
        //     $O: D.oa + "getmodules?v=3.0",
        //     wT: 5E3
        // },
         tF: {
             $O:  "/assets/getmodules/",
             wT: 5E3
         },
        OB: t,
        Pd: {
            il: {},
            Wm: [],
            qv: []
        },
        load: function(a, b, c) {
            var e = this.lb(a);
            if (e.Ke == this.tj.Bp)
                c && b();
            else {
                if (e.Ke == this.tj.BF) {
                    this.nJ(a);
                    this.EM(a);
                    var f = this;
                    f.OB == t && (f.OB = p,
                    setTimeout(function() {
                        for (var a = [], b = 0, c = f.Pd.Wm.length; b < c; b++) {
                            var e = f.Pd.Wm[b]
                              , n = "";
                            ja.Zx.iJ(e) ? n = ja.Zx.get(e) : (n = "",
                            a.push(e + "_" + Tb[e]));
                            f.Pd.qv.push({
                                VL: e,
                                UD: n
                            })
                        }
                        f.OB = t;
                        f.Pd.Wm.length = 0;
                        //0 == a.length ? f.XJ() : pa(f.tF.$O + "&mod=" + a.join(","))
                        if(a.length==0){
                            f.XJ();
                        }else{
                            for(var jj=0;jj<a.length;jj++){
                                pa(f.tF.$O +a[jj]+".js");
                            }
                        }
                    }, 1));
                    e.Ke = this.tj.RO
                }
                e.nu.push(b)
            }
        },
        nJ: function(a) {
            if (a && this.pK()[a])
                for (var a = this.pK()[a], b = 0; b < a.length; b++)
                    this.nJ(a[b]),
                    this.Pd.il[a[b]] || this.EM(a[b])
        },
        EM: function(a) {
            for (var b = 0; b < this.Pd.Wm.length; b++)
                if (this.Pd.Wm[b] == a)
                    return;
            this.Pd.Wm.push(a)
        },
        jZ: function(a, b) {
            var c = this.lb(a);
            try {
           
                eval(b)
            } catch (e) {
                return
            }
            c.Ke = this.tj.Bp;
            for (var f = 0, g = c.nu.length; f < g; f++)
                c.nu[f]();
            c.nu.length = 0
        },
        iJ: function(a, b) {
            var c = this;
            c.timeout = setTimeout(function() {
                c.Pd.il[a].Ke != c.tj.Bp ? (c.remove(a),
                c.load(a, b)) : clearTimeout(c.timeout)
            }, c.tF.wT)
        },
        lb: function(a) {
            this.Pd.il[a] || (this.Pd.il[a] = {},
            this.Pd.il[a].Ke = this.tj.BF,
            this.Pd.il[a].nu = []);
            return this.Pd.il[a]
        },
        remove: function(a) {
            delete this.lb(a)
        },
        wU: function(a, b) {
            for (var c = this.Pd.qv, e = p, f = 0, g = c.length; f < g; f++)
                "" == c[f].UD && (c[f].VL == a ? c[f].UD = b : e = t);
            e && this.XJ()
        },
        XJ: function() {
            for (var a = this.Pd.qv, b = 0, c = a.length; b < c; b++)
                this.jZ(a[b].VL, a[b].UD);
            this.Pd.qv.length = 0
        }
    });
    function R(a, b) {
        this.x = a || 0;
        this.y = b || 0;
        this.x = this.x;
        this.y = this.y
    }
    R.prototype.oc = function(a) {
        return a && a.x == this.x && a.y == this.y
    }
    ;
    function P(a, b) {
        this.width = a || 0;
        this.height = b || 0
    }
    P.prototype.oc = function(a) {
        return a && this.width == a.width && this.height == a.height
    }
    ;
    function kb(a, b) {
        a && (this.Lb = a,
        this.ea = "spot" + kb.ea++,
        b = b || {},
        this.Pg = b.text || "",
        this.Wu = b.offsets ? b.offsets.slice(0) : [5, 5, 5, 5],
        this.YA = b.userData || s,
        this.Ch = b.minZoom || s,
        this.Cf = b.maxZoom || s)
    }
    kb.ea = 0;
    z.extend(kb.prototype, {
        xa: function(a) {
            this.Ch == s && (this.Ch = a.U.gc);
            this.Cf == s && (this.Cf = a.U.pc)
        },
        ua: function(a) {
            a instanceof J && (this.Lb = a)
        },
        ja: x("Lb"),
        ut: ca("Pg"),
        eD: x("Pg"),
        setUserData: ca("YA"),
        getUserData: x("YA")
    });
    function Ub() {
        this.M = s;
        this.Mb = "control";
        this.Sa = this.bJ = p
    }
    z.lang.wa(Ub, z.lang.Ga, "Control");
    z.extend(Ub.prototype, {
        initialize: function(a) {
            this.M = a;
            if (this.P)
                return a.Ya.appendChild(this.P),
                this.P
        },
        Fe: function(a) {
            !this.P && (this.initialize && $a(this.initialize)) && (this.P = this.initialize(a));
            this.m = this.m || {
                vg: t
            };
            this.MA();
            this.fr();
            this.P && (this.P.Eq = this)
        },
        MA: function() {
            var a = this.P;
            if (a) {
                var b = a.style;
                b.position = "absolute";
                b.zIndex = this.Hy || "10";
                b.MozUserSelect = "none";
                b.WebkitTextSizeAdjust = "none";
                this.m.vg || z.R.eb(a, "BMap_noprint");
                I() || z.V(a, "contextmenu", oa)
            }
        },
        remove: function() {
            this.M = s;
            this.P && (this.P.parentNode && this.P.parentNode.removeChild(this.P),
            this.P = this.P.Eq = s)
        },
        Ea: function() {
            this.P = Bb(this.M.Ya, "<div unselectable='on'></div>");
            this.Sa == t && z.R.aa(this.P);
            return this.P
        },
        fr: function() {
            this.uc(this.m.anchor)
        },
        uc: function(a) {
            if (this.p1 || !Za(a) || isNaN(a) || a < Wb || 3 < a)
                a = this.defaultAnchor;
            this.m = this.m || {
                vg: t
            };
            this.m.Da = this.m.Da || this.defaultOffset;
            var b = this.m.anchor;
            this.m.anchor = a;
            if (this.P) {
                var c = this.P
                  , e = this.m.Da.width
                  , f = this.m.Da.height;
                c.style.left = c.style.top = c.style.right = c.style.bottom = "auto";
                switch (a) {
                case Wb:
                    c.style.top = f + "px";
                    c.style.left = e + "px";
                    break;
                case Xb:
                    c.style.top = f + "px";
                    c.style.right = e + "px";
                    break;
                case Yb:
                    c.style.bottom = f + "px";
                    c.style.left = e + "px";
                    break;
                case 3:
                    c.style.bottom = f + "px",
                    c.style.right = e + "px"
                }
                c = ["TL", "TR", "BL", "BR"];
                z.R.tc(this.P, "anchor" + c[b]);
                z.R.eb(this.P, "anchor" + c[a])
            }
        },
        HC: function() {
            return this.m.anchor
        },
        getContainer: x("P"),
        ie: function(a) {
            a instanceof P && (this.m = this.m || {
                vg: t
            },
            this.m.Da = new P(a.width,a.height),
            this.P && this.uc(this.m.anchor))
        },
        cj: function() {
            return this.m.Da
        },
        Zc: x("P"),
        show: function() {
            this.Sa != p && (this.Sa = p,
            this.P && z.R.show(this.P))
        },
        aa: function() {
            this.Sa != t && (this.Sa = t,
            this.P && z.R.aa(this.P))
        },
        isPrintable: function() {
            return !!this.m.vg
        },
        Nc: function() {
            return !this.P && !this.M ? t : !!this.Sa
        }
    });
    var Wb = 0
      , Xb = 1
      , Yb = 2;
    function lb(a) {
        Ub.call(this);
        a = a || {};
        this.m = {
            vg: t,
            FE: a.showZoomInfo || p,
            anchor: a.anchor,
            Da: a.offset,
            type: a.type,
            KV: a.enableGeolocation || t
        };
        this.defaultAnchor = I() ? 3 : Wb;
        this.defaultOffset = new P(10,10);
        this.uc(a.anchor);
        this.Gm(a.type);
        this.uf()
    }
    z.lang.wa(lb, Ub, "NavigationControl");
    z.extend(lb.prototype, {
        initialize: function(a) {
            this.M = a;
            return this.P
        },
        Gm: function(a) {
            this.m.type = Za(a) && 0 <= a && 3 >= a ? a : 0
        },
        Ko: function() {
            return this.m.type
        },
        uf: function() {
            var a = this;
            K.load("navictrl", function() {
                a.tf()
            })
        }
    });
    function Zb(a) {
        Ub.call(this);
        a = a || {};
        this.m = {
            anchor: a.anchor || Yb,
            Da: a.offset || new P(10,30),
            TZ: a.showAddressBar !== t,
            X1: a.enableAutoLocation || t,
            NL: a.locationIcon || s
        };
        var b = this;
        this.Hy = 1200;
        b.L_ = [];
        this.ne = [];
        K.load("geoctrl", function() {
            (function e() {
                if (0 !== b.ne.length) {
                    var a = b.ne.shift();
                    b[a.method].apply(b, a.arguments);
                    e()
                }
            }
            )();
            b.ZO()
        });
        Ta(Ma)
    }
    z.lang.wa(Zb, Ub, "GeolocationControl");
    z.extend(Zb.prototype, {
        location: function() {
            this.ne.push({
                method: "location",
                arguments: arguments
            })
        },
        getAddressComponent: ea(s)
    });
    function $b(a) {
        Ub.call(this);
        a = a || {};
        this.m = {
            vg: t,
            anchor: a.anchor,
            Da: a.offset
        };
        this.bc = [];
        this.defaultAnchor = Yb;
        this.defaultOffset = new P(5,2);
        this.uc(a.anchor);
        this.bJ = t;
        this.uf()
    }
    z.lang.wa($b, Ub, "CopyrightControl");
    z.object.extend($b.prototype, {
        initialize: function(a) {
            this.M = a;
            return this.P
        },
        Nv: function(a) {
            if (a && Za(a.id) && !isNaN(a.id)) {
                var b = {
                    bounds: s,
                    content: ""
                }, c;
                for (c in a)
                    b[c] = a[c];
                if (a = this.Wl(a.id))
                    for (var e in b)
                        a[e] = b[e];
                else
                    this.bc.push(b)
            }
        },
        Wl: function(a) {
            for (var b = 0, c = this.bc.length; b < c; b++)
                if (this.bc[b].id == a)
                    return this.bc[b]
        },
        OC: x("bc"),
        hE: function(a) {
            for (var b = 0, c = this.bc.length; b < c; b++)
                this.bc[b].id == a && (r = this.bc.splice(b, 1),
                b--,
                c = this.bc.length)
        },
        uf: function() {
            var a = this;
            K.load("copyrightctrl", function() {
                a.tf()
            })
        }
    });
    function nb(a) {
        Ub.call(this);
        a = a || {};
        this.m = {
            vg: t,
            size: a.size || new P(150,150),
            padding: 5,
            Za: a.isOpen === p ? p : t,
            c0: 4,
            Da: a.offset,
            anchor: a.anchor
        };
        this.defaultAnchor = 3;
        this.defaultOffset = new P(0,0);
        this.Vp = this.Wp = 13;
        this.uc(a.anchor);
        this.Ae(this.m.size);
        this.uf()
    }
    z.lang.wa(nb, Ub, "OverviewMapControl");
    z.extend(nb.prototype, {
        initialize: function(a) {
            this.M = a;
            return this.P
        },
        uc: function(a) {
            Ub.prototype.uc.call(this, a)
        },
        qe: function() {
            this.qe.Hn = p;
            this.m.Za = !this.m.Za;
            this.P || (this.qe.Hn = t)
        },
        Ae: function(a) {
            a instanceof P || (a = new P(150,150));
            a.width = 0 < a.width ? a.width : 150;
            a.height = 0 < a.height ? a.height : 150;
            this.m.size = a
        },
        Hb: function() {
            return this.m.size
        },
        Za: function() {
            return this.m.Za
        },
        uf: function() {
            var a = this;
            K.load("control", function() {
                a.tf()
            })
        }
    });
    function ac(a) {
        Ub.call(this);
        a = a || {};
        this.defaultAnchor = Wb;
        this.uU = a.canCheckSize === t ? t : p;
        this.Ti = "";
        this.defaultOffset = new P(10,10);
        this.onChangeBefore = [];
        this.onChangeAfter = [];
        this.onChangeSuccess = [];
        this.m = {
            vg: t,
            Da: a.offset || this.defaultOffset,
            anchor: a.anchor || this.defaultAnchor,
            expand: !!a.expand
        };
        a.onChangeBefore && $a(a.onChangeBefore) && this.onChangeBefore.push(a.onChangeBefore);
        a.onChangeAfter && $a(a.onChangeAfter) && this.onChangeAfter.push(a.onChangeAfter);
        a.onChangeSuccess && $a(a.onChangeSuccess) && this.onChangeSuccess.push(a.onChangeSuccess);
        this.uc(a.anchor);
        this.uf()
    }
    z.lang.wa(ac, Ub, "CityListControl");
    z.object.extend(ac.prototype, {
        initialize: function(a) {
            this.M = a;
            return this.P
        },
        uf: function() {
            var a = this;
            K.load("citylistcontrol", function() {
                a.tf()
            }, p)
        }
    });
    function mb(a) {
        Ub.call(this);
        a = a || {};
        this.m = {
            vg: t,
            color: "black",
            ed: "metric",
            Da: a.offset
        };
        this.defaultAnchor = Yb;
        this.defaultOffset = new P(81,18);
        this.uc(a.anchor);
        this.Kh = {
            metric: {
                name: "metric",
                pJ: 1,
                dL: 1E3,
                ON: "\u7c73",
                PN: "\u516c\u91cc"
            },
            us: {
                name: "us",
                pJ: 3.2808,
                dL: 5280,
                ON: "\u82f1\u5c3a",
                PN: "\u82f1\u91cc"
            }
        };
        this.Kh[this.m.ed] || (this.m.ed = "metric");
        this.WH = s;
        this.vH = {};
        this.uf()
    }
    z.lang.wa(mb, Ub, "ScaleControl");
    z.object.extend(mb.prototype, {
        initialize: function(a) {
            this.M = a;
            return this.P
        },
        Ak: function(a) {
            this.m.color = a + ""
        },
        t2: function() {
            return this.m.color
        },
        BE: function(a) {
            this.m.ed = this.Kh[a] && this.Kh[a].name || this.m.ed
        },
        gX: function() {
            return this.m.ed
        },
        uf: function() {
            var a = this;
            K.load("control", function() {
                a.tf()
            })
        }
    });
    var bc = 0;
    function ob(a) {
        Ub.call(this);
        a = a || {};
        this.defaultAnchor = Xb;
        this.defaultOffset = new P(10,10);
        this.m = {
            vg: t,
            dh: [Pa, ab, Va, Sa],
            eV: ["B_DIMENSIONAL_MAP", "B_SATELLITE_MAP", "B_NORMAL_MAP"],
            type: a.type || bc,
            Da: a.offset || this.defaultOffset,
            OV: p
        };
        this.uc(a.anchor);
        "[object Array]" == Object.prototype.toString.call(a.mapTypes) && (this.m.dh = a.mapTypes.slice(0));
        this.uf()
    }
    z.lang.wa(ob, Ub, "MapTypeControl");
    z.object.extend(ob.prototype, {
        initialize: function(a) {
            this.M = a;
            return this.P
        },
        $x: function(a) {
            this.M.xn = a
        },
        uf: function() {
            var a = this;
            K.load("control", function() {
                a.tf()
            }, p)
        }
    });
    function cc(a) {
        Ub.call(this);
        a = a || {};
        this.m = {
            vg: t,
            Da: a.offset,
            anchor: a.anchor
        };
        this.Gi = t;
        this.uv = s;
        this.EH = new dc({
            hf: "api"
        });
        this.FH = new ec(s,{
            hf: "api"
        });
        this.defaultAnchor = Xb;
        this.defaultOffset = new P(10,10);
        this.uc(a.anchor);
        this.uf();
        Ta(xa)
    }
    z.lang.wa(cc, Ub, "PanoramaControl");
    z.extend(cc.prototype, {
        initialize: function(a) {
            this.M = a;
            return this.P
        },
        uf: function() {
            var a = this;
            K.load("control", function() {
                a.tf()
            })
        }
    });
    function fc(a) {
        z.lang.Ga.call(this);
        this.m = {
            Ya: s,
            cursor: "default"
        };
        this.m = z.extend(this.m, a);
        this.Mb = "contextmenu";
        this.M = s;
        this.Aa = [];
        this.Ef = [];
        this.De = [];
        this.nw = this.Er = s;
        this.Bh = t;
        var b = this;
        K.load("menu", function() {
            b.jb()
        })
    }
    z.lang.wa(fc, z.lang.Ga, "ContextMenu");
    z.object.extend(fc.prototype, {
        xa: function(a, b) {
            this.M = a;
            this.nl = b || s
        },
        remove: function() {
            this.M = this.nl = s
        },
        Ov: function(a) {
            if (a && !("menuitem" != a.Mb || "" == a.Pg || 0 >= a.Oi)) {
                for (var b = 0, c = this.Aa.length; b < c; b++)
                    if (this.Aa[b] === a)
                        return;
                this.Aa.push(a);
                this.Ef.push(a)
            }
        },
        removeItem: function(a) {
            if (a && "menuitem" == a.Mb) {
                for (var b = 0, c = this.Aa.length; b < c; b++)
                    this.Aa[b] === a && (this.Aa[b].remove(),
                    this.Aa.splice(b, 1),
                    c--);
                b = 0;
                for (c = this.Ef.length; b < c; b++)
                    this.Ef[b] === a && (this.Ef[b].remove(),
                    this.Ef.splice(b, 1),
                    c--)
            }
        },
        hB: function() {
            this.Aa.push({
                Mb: "divider",
                Aj: this.De.length
            });
            this.De.push({
                R: s
            })
        },
        jE: function(a) {
            if (this.De[a]) {
                for (var b = 0, c = this.Aa.length; b < c; b++)
                    this.Aa[b] && ("divider" == this.Aa[b].Mb && this.Aa[b].Aj == a) && (this.Aa.splice(b, 1),
                    c--),
                    this.Aa[b] && ("divider" == this.Aa[b].Mb && this.Aa[b].Aj > a) && this.Aa[b].Aj--;
                this.De.splice(a, 1)
            }
        },
        Zc: x("P"),
        show: function() {
            this.Bh != p && (this.Bh = p)
        },
        aa: function() {
            this.Bh != t && (this.Bh = t)
        },
        yZ: function(a) {
            a && (this.m.cursor = a)
        },
        getItem: function(a) {
            return this.Ef[a]
        }
    });
    var gc = H.sa + "menu_zoom_in.png"
      , hc = H.sa + "menu_zoom_out.png";
    function ic(a, b, c) {
        if (a && $a(b)) {
            z.lang.Ga.call(this);
            this.m = {
                width: 100,
                id: "",
                fm: ""
            };
            c = c || {};
            this.m.width = 1 * c.width ? c.width : 100;
            this.m.id = c.id ? c.id : "";
            this.m.fm = c.iconUrl ? c.iconUrl : "";
            this.Pg = a + "";
            this.Ky = b;
            this.M = s;
            this.Mb = "menuitem";
            this.mr = this.Lu = this.P = this.wh = s;
            this.zh = p;
            var e = this;
            K.load("menu", function() {
                e.jb()
            })
        }
    }
    z.lang.wa(ic, z.lang.Ga, "MenuItem");
    z.object.extend(ic.prototype, {
        xa: function(a, b) {
            this.M = a;
            this.wh = b
        },
        remove: function() {
            this.M = this.wh = s
        },
        ut: function(a) {
            a && (this.Pg = a + "")
        },
        Tb: function(a) {
            a && (this.m.fm = a)
        },
        Zc: x("P"),
        enable: function() {
            this.zh = p
        },
        disable: function() {
            this.zh = t
        }
    });
    function hb(a, b) {
        a && !b && (b = a);
        this.Ge = this.Vd = this.Le = this.Xd = this.Al = this.ll = s;
        a && (this.Al = new J(a.lng,a.lat),
        this.ll = new J(b.lng,b.lat),
        this.Le = a.lng,
        this.Xd = a.lat,
        this.Ge = b.lng,
        this.Vd = b.lat)
    }
    z.object.extend(hb.prototype, {
        lj: function() {
            return !this.Al || !this.ll
        },
        oc: function(a) {
            return !(a instanceof hb) || this.lj() ? t : this.Se().oc(a.Se()) && this.Lf().oc(a.Lf())
        },
        Se: x("Al"),
        Lf: x("ll"),
        LU: function(a) {
            return !(a instanceof hb) || this.lj() || a.lj() ? t : a.Le > this.Le && a.Ge < this.Ge && a.Xd > this.Xd && a.Vd < this.Vd
        },
        Bb: function() {
            return this.lj() ? s : new J((this.Le + this.Ge) / 2,(this.Xd + this.Vd) / 2)
        },
        Ds: function(a) {
            if (!(a instanceof hb) || Math.max(a.Le, a.Ge) < Math.min(this.Le, this.Ge) || Math.min(a.Le, a.Ge) > Math.max(this.Le, this.Ge) || Math.max(a.Xd, a.Vd) < Math.min(this.Xd, this.Vd) || Math.min(a.Xd, a.Vd) > Math.max(this.Xd, this.Vd))
                return s;
            var b = Math.max(this.Le, a.Le)
              , c = Math.min(this.Ge, a.Ge)
              , e = Math.max(this.Xd, a.Xd)
              , a = Math.min(this.Vd, a.Vd);
            return new hb(new J(b,e),new J(c,a))
        },
        Ar: function(a) {
            return !(a instanceof J) || this.lj() ? t : a.lng >= this.Le && a.lng <= this.Ge && a.lat >= this.Xd && a.lat <= this.Vd
        },
        extend: function(a) {
            if (a instanceof J) {
                var b = a.lng
                  , a = a.lat;
                this.Al || (this.Al = new J(0,0));
                this.ll || (this.ll = new J(0,0));
                if (!this.Le || this.Le > b)
                    this.Al.lng = this.Le = b;
                if (!this.Ge || this.Ge < b)
                    this.ll.lng = this.Ge = b;
                if (!this.Xd || this.Xd > a)
                    this.Al.lat = this.Xd = a;
                if (!this.Vd || this.Vd < a)
                    this.ll.lat = this.Vd = a
            }
        },
        TE: function() {
            return this.lj() ? new J(0,0) : new J(Math.abs(this.Ge - this.Le),Math.abs(this.Vd - this.Xd))
        }
    });
    function J(a, b) {
        isNaN(a) && (a = Lb(a),
        a = isNaN(a) ? 0 : a);
        bb(a) && (a = parseFloat(a));
        isNaN(b) && (b = Lb(b),
        b = isNaN(b) ? 0 : b);
        bb(b) && (b = parseFloat(b));
        this.lng = a;
        this.lat = b
    }
    J.iL = function(a) {
        return a && 180 >= a.lng && -180 <= a.lng && 74 >= a.lat && -74 <= a.lat
    }
    ;
    J.prototype.oc = function(a) {
        return a && this.lat == a.lat && this.lng == a.lng
    }
    ;
    function jc() {}
    jc.prototype.qg = function() {
        aa("lngLatToPoint\u65b9\u6cd5\u672a\u5b9e\u73b0")
    }
    ;
    jc.prototype.oj = function() {
        aa("pointToLngLat\u65b9\u6cd5\u672a\u5b9e\u73b0")
    }
    ;
    function kc() {}
    ;var gb = {
        rJ: function(a, b, c) {
            K.load("coordtransutils", function() {
                gb.XT(a, b, c)
            }, p)
        },
        qJ: function(a, b, c) {
            K.load("coordtransutils", function() {
                gb.WT(a, b, c)
            }, p)
        }
    };
    function lc() {
        this.Ra = [];
        var a = this;
        K.load("convertor", function() {
            a.XO()
        })
    }
    z.wa(lc, z.lang.Ga, "Convertor");
    z.extend(lc.prototype, {
        translate: function(a, b, c, e) {
            this.Ra.push({
                method: "translate",
                arguments: [a, b, c, e]
            })
        }
    });
    U(lc.prototype, {
        translate: lc.prototype.translate
    });
    function S() {}
    S.prototype = new jc;
    z.extend(S, {
        uO: 6370996.81,
        FF: [1.289059486E7, 8362377.87, 5591021, 3481989.83, 1678043.12, 0],
        cu: [86, 60, 45, 30, 15, 0],
        AO: [[1.410526172116255E-8, 8.98305509648872E-6, -1.9939833816331, 200.9824383106796, -187.2403703815547, 91.6087516669843, -23.38765649603339, 2.57121317296198, -0.03801003308653, 1.73379812E7], [-7.435856389565537E-9, 8.983055097726239E-6, -0.78625201886289, 96.32687599759846, -1.85204757529826, -59.36935905485877, 47.40033549296737, -16.50741931063887, 2.28786674699375, 1.026014486E7], [-3.030883460898826E-8, 8.98305509983578E-6, 0.30071316287616, 59.74293618442277, 7.357984074871, -25.38371002664745, 13.45380521110908, -3.29883767235584, 0.32710905363475, 6856817.37], [-1.981981304930552E-8, 8.983055099779535E-6, 0.03278182852591, 40.31678527705744, 0.65659298677277, -4.44255534477492, 0.85341911805263, 0.12923347998204, -0.04625736007561, 4482777.06], [3.09191371068437E-9, 8.983055096812155E-6, 6.995724062E-5, 23.10934304144901, -2.3663490511E-4, -0.6321817810242, -0.00663494467273, 0.03430082397953, -0.00466043876332, 2555164.4], [2.890871144776878E-9, 8.983055095805407E-6, -3.068298E-8, 7.47137025468032, -3.53937994E-6, -0.02145144861037, -1.234426596E-5, 1.0322952773E-4, -3.23890364E-6, 826088.5]],
        CF: [[-0.0015702102444, 111320.7020616939, 1704480524535203, -10338987376042340, 26112667856603880, -35149669176653700, 26595700718403920, -10725012454188240, 1800819912950474, 82.5], [8.277824516172526E-4, 111320.7020463578, 6.477955746671607E8, -4.082003173641316E9, 1.077490566351142E10, -1.517187553151559E10, 1.205306533862167E10, -5.124939663577472E9, 9.133119359512032E8, 67.5], [0.00337398766765, 111320.7020202162, 4481351.045890365, -2.339375119931662E7, 7.968221547186455E7, -1.159649932797253E8, 9.723671115602145E7, -4.366194633752821E7, 8477230.501135234, 52.5], [0.00220636496208, 111320.7020209128, 51751.86112841131, 3796837.749470245, 992013.7397791013, -1221952.21711287, 1340652.697009075, -620943.6990984312, 144416.9293806241, 37.5], [-3.441963504368392E-4, 111320.7020576856, 278.2353980772752, 2485758.690035394, 6070.750963243378, 54821.18345352118, 9540.606633304236, -2710.55326746645, 1405.483844121726, 22.5], [-3.218135878613132E-4, 111320.7020701615, 0.00369383431289, 823725.6402795718, 0.46104986909093, 2351.343141331292, 1.58060784298199, 8.77738589078284, 0.37238884252424, 7.45]],
        z2: function(a, b) {
            if (!a || !b)
                return 0;
            var c, e, a = this.cc(a);
            if (!a)
                return 0;
            c = this.Jk(a.lng);
            e = this.Jk(a.lat);
            b = this.cc(b);
            return !b ? 0 : this.jf(c, this.Jk(b.lng), e, this.Jk(b.lat))
        },
        Co: function(a, b) {
            if (!a || !b)
                return 0;
            a.lng = this.VC(a.lng, -180, 180);
            a.lat = this.aD(a.lat, -74, 74);
            b.lng = this.VC(b.lng, -180, 180);
            b.lat = this.aD(b.lat, -74, 74);
            return this.jf(this.Jk(a.lng), this.Jk(b.lng), this.Jk(a.lat), this.Jk(b.lat))
        },
        cc: function(a) {
            if (a === s || a === l)
                return new J(0,0);
            var b, c;
            b = new J(Math.abs(a.lng),Math.abs(a.lat));
            for (var e = 0; e < this.FF.length; e++)
                if (b.lat >= this.FF[e]) {
                    c = this.AO[e];
                    break
                }
            a = this.sJ(a, c);
            return a = new J(a.lng,a.lat)
        },
        Gb: function(a) {
            if (a === s || a === l || 180 < a.lng || -180 > a.lng || 90 < a.lat || -90 > a.lat)
                return new J(0,0);
            var b, c;
            a.lng = this.VC(a.lng, -180, 180);
            a.lat = this.aD(a.lat, -85, 85);
            b = new J(a.lng,a.lat);
            for (var e = 0; e < this.cu.length; e++)
                if (b.lat >= this.cu[e]) {
                    c = this.CF[e];
                    break
                }
            if (!c)
                for (e = 0; e < this.cu.length; e++)
                    if (b.lat <= -this.cu[e]) {
                        c = this.CF[e];
                        break
                    }
            a = this.sJ(a, c);
            return a = new J(a.lng,a.lat)
        },
        sJ: function(a, b) {
            if (a && b) {
                var c = b[0] + b[1] * Math.abs(a.lng)
                  , e = Math.abs(a.lat) / b[9]
                  , e = b[2] + b[3] * e + b[4] * e * e + b[5] * e * e * e + b[6] * e * e * e * e + b[7] * e * e * e * e * e + b[8] * e * e * e * e * e * e
                  , c = c * (0 > a.lng ? -1 : 1)
                  , e = e * (0 > a.lat ? -1 : 1);
                return new J(c,e)
            }
        },
        jf: function(a, b, c, e) {
            return this.uO * Math.acos(Math.sin(c) * Math.sin(e) + Math.cos(c) * Math.cos(e) * Math.cos(b - a))
        },
        Jk: function(a) {
            return Math.PI * a / 180
        },
        W4: function(a) {
            return 180 * a / Math.PI
        },
        aD: function(a, b, c) {
            b != s && (a = Math.max(a, b));
            c != s && (a = Math.min(a, c));
            return a
        },
        VC: function(a, b, c) {
            for (; a > c; )
                a -= c - b;
            for (; a < b; )
                a += c - b;
            return a
        }
    });
    z.extend(S.prototype, {
        bi: function(a) {
            return S.Gb(a)
        },
        qg: function(a) {
            a = S.Gb(a);
            return new R(a.lng,a.lat)
        },
        eh: function(a) {
            return S.cc(a)
        },
        oj: function(a) {
            a = new J(a.x,a.y);
            return S.cc(a)
        },
        Rb: function(a, b, c, e, f) {
            if (a)
                return a = this.bi(a, f),
                b = this.dc(b),
                new R(Math.round((a.lng - c.lng) / b + e.width / 2),Math.round((c.lat - a.lat) / b + e.height / 2))
        },
        Ib: function(a, b, c, e, f) {
            if (a)
                return b = this.dc(b),
                this.eh(new J(c.lng + b * (a.x - e.width / 2),c.lat - b * (a.y - e.height / 2)), f)
        },
        dc: function(a) {
            return Math.pow(2, 18 - a)
        }
    });
    function jb() {
        this.Ti = "bj"
    }
    jb.prototype = new S;
    z.extend(jb.prototype, {
        bi: function(a, b) {
            return this.IP(b, S.Gb(a))
        },
        eh: function(a, b) {
            return S.cc(this.JP(b, a))
        },
        lngLatToPointFor3D: function(a, b) {
            var c = this
              , e = S.Gb(a);
            K.load("coordtrans", function() {
                var a = kc.ZC(c.Ti || "bj", e)
                  , a = new R(a.x,a.y);
                b && b(a)
            }, p)
        },
        pointToLngLatFor3D: function(a, b) {
            var c = this
              , e = new J(a.x,a.y);
            K.load("coordtrans", function() {
                var a = kc.WC(c.Ti || "bj", e)
                  , a = new J(a.lng,a.lat)
                  , a = S.cc(a);
                b && b(a)
            }, p)
        },
        IP: function(a, b) {
            if (K.lb("coordtrans").Ke == K.tj.Bp) {
                var c = kc.ZC(a || "bj", b);
                return new J(c.x,c.y)
            }
            K.load("coordtrans", u());
            return new J(0,0)
        },
        JP: function(a, b) {
            if (K.lb("coordtrans").Ke == K.tj.Bp) {
                var c = kc.WC(a || "bj", b);
                return new J(c.lng,c.lat)
            }
            K.load("coordtrans", u());
            return new J(0,0)
        },
        dc: function(a) {
            return Math.pow(2, 20 - a)
        }
    });
    function mc() {
        this.Mb = "overlay"
    }
    z.lang.wa(mc, z.lang.Ga, "Overlay");
    mc.pk = function(a) {
        a *= 1;
        return !a ? 0 : -1E5 * a << 1
    }
    ;
    z.extend(mc.prototype, {
        Fe: function(a) {
            if (!this.ba && $a(this.initialize) && (this.ba = this.initialize(a)))
                this.ba.style.WebkitUserSelect = "none";
            this.draw()
        },
        initialize: function() {
            aa("initialize\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        draw: function() {
            aa("draw\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        remove: function() {
            this.ba && this.ba.parentNode && this.ba.parentNode.removeChild(this.ba);
            this.ba = s;
            this.dispatchEvent(new Q("onremove"))
        },
        aa: function() {
            this.ba && z.R.aa(this.ba)
        },
        show: function() {
            this.ba && z.R.show(this.ba)
        },
        Nc: function() {
            return !this.ba || "none" == this.ba.style.display || "hidden" == this.ba.style.visibility ? t : p
        }
    });
    D.We(function(a) {
        function b(a, b) {
            var c = O("div")
              , i = c.style;
            i.position = "absolute";
            i.top = i.left = i.width = i.height = "0";
            i.zIndex = b;
            a.appendChild(c);
            return c
        }
        var c = a.$;
        c.Oc = a.Oc = b(a.platform, 200);
        a.Wd.BC = b(c.Oc, 800);
        a.Wd.PD = b(c.Oc, 700);
        a.Wd.cK = b(c.Oc, 600);
        a.Wd.JD = b(c.Oc, 500);
        a.Wd.RL = b(c.Oc, 400);
        a.Wd.SL = b(c.Oc, 300);
        a.Wd.$N = b(c.Oc, 201);
        a.Wd.Ps = b(c.Oc, 200)
    });
    function ib() {
        z.lang.Ga.call(this);
        mc.call(this);
        this.map = s;
        this.Sa = p;
        this.Cb = s;
        this.pG = 0
    }
    z.lang.wa(ib, mc, "OverlayInternal");
    z.extend(ib.prototype, {
        initialize: function(a) {
            this.map = a;
            z.lang.Ga.call(this, this.ea);
            return s
        },
        Iw: x("map"),
        draw: u(),
        uj: u(),
        remove: function() {
            this.map = s;
            z.lang.rw(this.ea);
            mc.prototype.remove.call(this)
        },
        aa: function() {
            this.Sa !== t && (this.Sa = t)
        },
        show: function() {
            this.Sa !== p && (this.Sa = p)
        },
        Nc: function() {
            return !this.ba ? t : !!this.Sa
        },
        Ua: x("ba"),
        $M: function(a) {
            var a = a || {}, b;
            for (b in a)
                this.K[b] = a[b]
        },
        pp: ca("zIndex"),
        Yi: function() {
            this.K.Yi = p
        },
        nV: function() {
            this.K.Yi = t
        },
        Wn: ca("dg"),
        ap: function() {
            this.dg = s
        }
    });
    function nc() {
        this.map = s;
        this.Ba = {};
        this.Ce = []
    }
    D.We(function(a) {
        var b = new nc;
        b.map = a;
        a.Ba = b.Ba;
        a.Ce = b.Ce;
        a.addEventListener("load", function(a) {
            b.draw(a)
        });
        a.addEventListener("moveend", function(a) {
            b.draw(a)
        });
        z.ga.ma && 8 > z.ga.ma || "BackCompat" === document.compatMode ? a.addEventListener("zoomend", function(a) {
            setTimeout(function() {
                b.draw(a)
            }, 20)
        }) : a.addEventListener("zoomend", function(a) {
            b.draw(a)
        });
        a.addEventListener("maptypechange", function(a) {
            b.draw(a)
        });
        a.addEventListener("addoverlay", function(a) {
            a = a.target;
            if (a instanceof ib)
                b.Ba[a.ea] || (b.Ba[a.ea] = a);
            else {
                for (var e = t, f = 0, g = b.Ce.length; f < g; f++)
                    if (b.Ce[f] === a) {
                        e = p;
                        break
                    }
                e || b.Ce.push(a)
            }
        });
        a.addEventListener("removeoverlay", function(a) {
            a = a.target;
            if (a instanceof ib)
                delete b.Ba[a.ea];
            else
                for (var e = 0, f = b.Ce.length; e < f; e++)
                    if (b.Ce[e] === a) {
                        b.Ce.splice(e, 1);
                        break
                    }
        });
        a.addEventListener("clearoverlays", function() {
            this.Xc();
            for (var a in b.Ba)
                b.Ba[a].K.Yi && (b.Ba[a].remove(),
                delete b.Ba[a]);
            a = 0;
            for (var e = b.Ce.length; a < e; a++)
                b.Ce[a].enableMassClear !== t && (b.Ce[a].remove(),
                b.Ce[a] = s,
                b.Ce.splice(a, 1),
                a--,
                e--)
        });
        a.addEventListener("infowindowopen", function() {
            var a = this.Cb;
            a && (z.R.aa(a.zc),
            z.R.aa(a.Zb))
        });
        a.addEventListener("movestart", function() {
            this.$g() && this.$g().bI()
        });
        a.addEventListener("moveend", function() {
            this.$g() && this.$g().RH()
        })
    });
    nc.prototype.draw = function(a) {
        if (D.Ep) {
            var b = D.Ep.hs(this.map);
            "canvas" === b.Mb && b.canvas && b.DP(b.canvas.getContext("2d"))
        }
        for (var c in this.Ba)
            this.Ba[c].draw(a);
        z.lc.Nb(this.Ce, function(a) {
            a.draw()
        });
        this.map.$.rb && this.map.$.rb.ua();
        D.Ep && b.zE()
    }
    ;
    function oc(a) {
        ib.call(this);
        a = a || {};
        this.K = {
            strokeColor: a.strokeColor || "#3a6bdb",
            qc: a.strokeWeight || 5,
            sd: a.strokeOpacity || 0.65,
            strokeStyle: a.strokeStyle || "solid",
            Yi: a.enableMassClear === t ? t : p,
            lk: s,
            Zl: s,
            ff: a.enableEditing === p ? p : t,
            WL: 5,
            J_: t,
            cf: a.enableClicking === t ? t : p,
            $h: a.icons && 0 < a.icons.length ? a.icons : s
        };
        0 >= this.K.qc && (this.K.qc = 5);
        if (0 > this.K.sd || 1 < this.K.sd)
            this.K.sd = 0.65;
        if (0 > this.K.lg || 1 < this.K.lg)
            this.K.lg = 0.65;
        "solid" != this.K.strokeStyle && "dashed" != this.K.strokeStyle && (this.K.strokeStyle = "solid");
        this.ba = s;
        this.ku = new hb(0,0);
        this.af = [];
        this.rc = [];
        this.Ta = {}
    }
    z.lang.wa(oc, ib, "Graph");
    oc.Fw = function(a) {
        var b = [];
        if (!a)
            return b;
        bb(a) && z.lc.Nb(a.split(";"), function(a) {
            a = a.split(",");
            b.push(new J(a[0],a[1]))
        });
        "[object Array]" == Object.prototype.toString.apply(a) && 0 < a.length && (b = a);
        return b
    }
    ;
    oc.ZD = [0.09, 0.0050, 1.0E-4, 1.0E-5];
    z.extend(oc.prototype, {
        initialize: function(a) {
            this.map = a;
            return s
        },
        draw: u(),
        er: function(a) {
            this.af.length = 0;
            this.na = oc.Fw(a).slice(0);
            this.th()
        },
        je: function(a) {
            this.er(a)
        },
        th: function() {
            if (this.na) {
                var a = this;
                a.ku = new hb;
                z.lc.Nb(this.na, function(b) {
                    a.ku.extend(b)
                })
            }
        },
        Re: x("na"),
        Fm: function(a, b) {
            b && this.na[a] && (this.af.length = 0,
            this.na[a] = new J(b.lng,b.lat),
            this.th())
        },
        setStrokeColor: function(a) {
            this.K.strokeColor = a
        },
        ZW: function() {
            return this.K.strokeColor
        },
        op: function(a) {
            0 < a && (this.K.qc = a)
        },
        FK: function() {
            return this.K.qc
        },
        mp: function(a) {
            a == l || (1 < a || 0 > a) || (this.K.sd = a)
        },
        $W: function() {
            return this.K.sd
        },
        it: function(a) {
            1 < a || 0 > a || (this.K.lg = a)
        },
        tW: function() {
            return this.K.lg
        },
        np: function(a) {
            "solid" != a && "dashed" != a || (this.K.strokeStyle = a)
        },
        EK: function() {
            return this.K.strokeStyle
        },
        setFillColor: function(a) {
            this.K.fillColor = a || ""
        },
        sW: function() {
            return this.K.fillColor
        },
        te: x("ku"),
        remove: function() {
            this.map && this.map.removeEventListener("onmousemove", this.Iu);
            ib.prototype.remove.call(this);
            this.af.length = 0
        },
        ff: function() {
            if (!(2 > this.na.length)) {
                this.K.ff = p;
                var a = this;
                K.load("poly", function() {
                    a.Fl()
                }, p)
            }
        },
        mV: function() {
            this.K.ff = t;
            var a = this;
            K.load("poly", function() {
                a.$j()
            }, p)
        },
        pW: function() {
            return this.K.ff
        }
    });
    function pc(a) {
        ib.call(this);
        this.ba = this.map = s;
        this.K = {
            width: 0,
            height: 0,
            Da: new P(0,0),
            opacity: 1,
            background: "transparent",
            kx: 1,
            DL: "#000",
            dY: "solid",
            point: s
        };
        this.$M(a);
        this.point = this.K.point
    }
    z.lang.wa(pc, ib, "Division");
    z.extend(pc.prototype, {
        uj: function() {
            var a = this.K
              , b = this.content
              , c = ['<div class="BMap_Division" style="position:absolute;'];
            c.push("width:" + a.width + "px;display:block;");
            c.push("overflow:hidden;");
            "none" != a.borderColor && c.push("border:" + a.kx + "px " + a.dY + " " + a.DL + ";");
            c.push("opacity:" + a.opacity + "; filter:(opacity=" + 100 * a.opacity + ")");
            c.push("background:" + a.background + ";");
            c.push('z-index:60;">');
            c.push(b);
            c.push("</div>");
            this.ba = Bb(this.map.Mf().PD, c.join(""))
        },
        initialize: function(a) {
            this.map = a;
            this.uj();
            this.ba && z.V(this.ba, I() ? "touchstart" : "mousedown", function(a) {
                na(a)
            });
            return this.ba
        },
        draw: function() {
            var a = this.map.Ve(this.K.point);
            this.K.Da = new P(-Math.round(this.K.width / 2) - Math.round(this.K.kx),-Math.round(this.K.height / 2) - Math.round(this.K.kx));
            this.ba.style.left = a.x + this.K.Da.width + "px";
            this.ba.style.top = a.y + this.K.Da.height + "px"
        },
        ja: function() {
            return this.K.point
        },
        P0: function() {
            return this.map.Rb(this.ja())
        },
        ua: function(a) {
            this.K.point = a;
            this.draw()
        },
        zZ: function(a, b) {
            this.K.width = Math.round(a);
            this.K.height = Math.round(b);
            this.ba && (this.ba.style.width = this.K.width + "px",
            this.ba.style.height = this.K.height + "px",
            this.draw())
        }
    });
    function qc(a, b, c) {
        a && b && (this.imageUrl = a,
        this.size = b,
        a = new P(Math.floor(b.width / 2),Math.floor(b.height / 2)),
        c = c || {},
        a = c.anchor || a,
        b = c.imageOffset || new P(0,0),
        this.imageSize = c.imageSize,
        this.anchor = a,
        this.imageOffset = b,
        this.infoWindowAnchor = c.infoWindowAnchor || this.anchor,
        this.printImageUrl = c.printImageUrl || "")
    }
    z.extend(qc.prototype, {
        aN: function(a) {
            a && (this.imageUrl = a)
        },
        PZ: function(a) {
            a && (this.printImageUrl = a)
        },
        Ae: function(a) {
            a && (this.size = new P(a.width,a.height))
        },
        uc: function(a) {
            a && (this.anchor = new P(a.width,a.height))
        },
        jt: function(a) {
            a && (this.imageOffset = new P(a.width,a.height))
        },
        EZ: function(a) {
            a && (this.infoWindowAnchor = new P(a.width,a.height))
        },
        BZ: function(a) {
            a && (this.imageSize = new P(a.width,a.height))
        },
        toString: ea("Icon")
    });
    function rc(a, b) {
        if (a) {
            b = b || {};
            this.style = {
                anchor: b.anchor || new P(0,0),
                fillColor: b.fillColor || "#000",
                lg: b.fillOpacity || 0,
                scale: b.scale || 1,
                rotation: b.rotation || 0,
                strokeColor: b.strokeColor || "#000",
                sd: b.strokeOpacity || 1,
                qc: b.strokeWeight
            };
            this.Mb = "number" === typeof a ? a : "UserDefined";
            this.wi = this.style.anchor;
            this.Jq = new P(0,0);
            this.anchor = s;
            this.zA = a;
            var c = this;
            K.load("symbol", function() {
                c.an()
            }, p)
        }
    }
    z.extend(rc.prototype, {
        setPath: ca("zA"),
        setAnchor: function(a) {
            this.wi = this.style.anchor = a
        },
        setRotation: function(a) {
            this.style.rotation = a
        },
        setScale: function(a) {
            this.style.scale = a
        },
        setStrokeWeight: function(a) {
            this.style.qc = a
        },
        setStrokeColor: function(a) {
            a = z.xr.FB(a, this.style.sd);
            this.style.strokeColor = a
        },
        setStrokeOpacity: function(a) {
            this.style.sd = a
        },
        setFillOpacity: function(a) {
            this.style.lg = a
        },
        setFillColor: function(a) {
            this.style.fillColor = a
        }
    });
    function sc(a, b, c, e) {
        a && (this.av = {},
        this.aK = e ? !!e : t,
        this.Uc = [],
        this.h_ = a instanceof rc ? a : s,
        this.KH = b === l ? p : !!(b.indexOf("%") + 1),
        this.Nj = isNaN(parseFloat(b)) ? 1 : this.KH ? parseFloat(b) / 100 : parseFloat(b),
        this.LH = !!(c.indexOf("%") + 1),
        this.repeat = c != l ? this.LH ? parseFloat(c) / 100 : parseFloat(c) : 0)
    }
    ;function tc(a, b) {
        z.lang.Ga.call(this);
        this.content = a;
        this.map = s;
        b = b || {};
        this.K = {
            width: b.width || 0,
            height: b.height || 0,
            maxWidth: b.maxWidth || 730,
            Da: b.offset || new P(0,0),
            title: b.title || "",
            RD: b.maxContent || "",
            Xg: b.enableMaximize || t,
            Wr: b.enableAutoPan === t ? t : p,
            kC: b.enableCloseOnClick === t ? t : p,
            margin: b.margin || [10, 10, 40, 10],
            BB: b.collisions || [[10, 10], [10, 10], [10, 10], [10, 10]],
            wX: t,
            yY: b.onClosing || ea(p),
            UJ: t,
            qC: b.enableParano === p ? p : t,
            message: b.message,
            sC: b.enableSearchTool === p ? p : t,
            Uw: b.headerContent || "",
            lC: b.enableContentScroll || t
        };
        if (0 != this.K.width && (220 > this.K.width && (this.K.width = 220),
        730 < this.K.width))
            this.K.width = 730;
        if (0 != this.K.height && (60 > this.K.height && (this.K.height = 60),
        650 < this.K.height))
            this.K.height = 650;
        if (0 != this.K.maxWidth && (220 > this.K.maxWidth && (this.K.maxWidth = 220),
        730 < this.K.maxWidth))
            this.K.maxWidth = 730;
        this.be = t;
        this.ri = H.sa;
        this.sb = s;
        var c = this;
        K.load("infowindow", function() {
            c.jb()
        })
    }
    z.lang.wa(tc, z.lang.Ga, "InfoWindow");
    z.extend(tc.prototype, {
        setWidth: function(a) {
            !a && 0 != a || (isNaN(a) || 0 > a) || (0 != a && (220 > a && (a = 220),
            730 < a && (a = 730)),
            this.K.width = a)
        },
        setHeight: function(a) {
            !a && 0 != a || (isNaN(a) || 0 > a) || (0 != a && (60 > a && (a = 60),
            650 < a && (a = 650)),
            this.K.height = a)
        },
        eN: function(a) {
            !a && 0 != a || (isNaN(a) || 0 > a) || (0 != a && (220 > a && (a = 220),
            730 < a && (a = 730)),
            this.K.maxWidth = a)
        },
        Dc: function(a) {
            this.K.title = a
        },
        getTitle: function() {
            return this.K.title
        },
        cd: ca("content"),
        jk: x("content"),
        lt: function(a) {
            this.K.RD = a + ""
        },
        he: u(),
        Wr: function() {
            this.K.Wr = p
        },
        disableAutoPan: function() {
            this.K.Wr = t
        },
        enableCloseOnClick: function() {
            this.K.kC = p
        },
        disableCloseOnClick: function() {
            this.K.kC = t
        },
        Xg: function() {
            this.K.Xg = p
        },
        tw: function() {
            this.K.Xg = t
        },
        show: function() {
            this.Sa = p
        },
        aa: function() {
            this.Sa = t
        },
        close: function() {
            this.aa()
        },
        nx: function() {
            this.be = p
        },
        restore: function() {
            this.be = t
        },
        Nc: function() {
            return this.Za()
        },
        Za: ea(t),
        ja: function() {
            if (this.sb && this.sb.ja)
                return this.sb.ja()
        },
        cj: function() {
            return this.K.Da
        }
    });
    Oa.prototype.ad = function(a, b) {
        if (a instanceof tc && b instanceof J) {
            var c = this.$;
            c.nm ? c.nm.ua(b) : (c.nm = new V(b,{
                icon: new qc(H.sa + "blank.gif",{
                    width: 1,
                    height: 1
                }),
                offset: new P(0,0),
                clickable: t
            }),
            c.nm.DQ = 1);
            console.log(H.sa + "blank.gif")
            this.Pa(c.nm);
            c.nm.ad(a)
        }
    }
    ;
    Oa.prototype.Xc = function() {
        var a = this.$.rb || this.$.cl;
        a && a.sb && a.sb.Xc()
    }
    ;
    ib.prototype.ad = function(a) {
        this.map && (this.map.Xc(),
        a.Sa = p,
        this.map.$.cl = a,
        a.sb = this,
        z.lang.Ga.call(a, a.ea))
    }
    ;
    ib.prototype.Xc = function() {
        this.map && this.map.$.cl && (this.map.$.cl.Sa = t,
        z.lang.rw(this.map.$.cl.ea),
        this.map.$.cl = s)
    }
    ;
    function uc(a, b) {
        ib.call(this);
        this.content = a;
        this.ba = this.map = s;
        b = b || {};
        this.K = {
            width: 0,
            Da: b.offset || new P(0,0),
            up: {
                backgroundColor: "#fff",
                border: "1px solid #f00",
                padding: "1px",
                whiteSpace: "nowrap",
                font: "12px " + H.fontFamily,
                zIndex: "80",
                MozUserSelect: "none"
            },
            position: b.position || s,
            Yi: b.enableMassClear === t ? t : p,
            cf: p
        };
        0 > this.K.width && (this.K.width = 0);
        Hb(b.enableClicking) && (this.K.cf = b.enableClicking);
        this.point = this.K.position;
        var c = this;
        K.load("marker", function() {
            c.jb()
        })
    }
    z.lang.wa(uc, ib, "Label");
    z.extend(uc.prototype, {
        ja: function() {
            return this.Qu ? this.Qu.ja() : this.point
        },
        ua: function(a) {
            a instanceof J && !this.Jw() && (this.point = this.K.position = new J(a.lng,a.lat))
        },
        cd: ca("content"),
        yE: function(a) {
            0 <= a && 1 >= a && (this.K.opacity = a)
        },
        ie: function(a) {
            a instanceof P && (this.K.Da = new P(a.width,a.height))
        },
        cj: function() {
            return this.K.Da
        },
        Ld: function(a) {
            a = a || {};
            this.K.up = z.extend(this.K.up, a)
        },
        mi: function(a) {
            return this.Ld(a)
        },
        Dc: function(a) {
            this.K.title = a || ""
        },
        getTitle: function() {
            return this.K.title
        },
        dN: function(a) {
            this.point = (this.Qu = a) ? this.K.position = a.ja() : this.K.position = s
        },
        Jw: function() {
            return this.Qu || s
        },
        jk: x("content")
    });
    function vc(a, b) {
        if (0 !== arguments.length) {
            ib.apply(this, arguments);
            b = b || {};
            this.K = {
                fb: a,
                opacity: b.opacity || 1,
                im: b.im || "",
                Nr: b.displayOnMinLevel || 1,
                Yi: b.enableMassClear === t ? t : p,
                Mr: b.displayOnMaxLevel || 19,
                b_: b.stretch || t
            };
            var c = this;
            K.load("groundoverlay", function() {
                c.jb()
            })
        }
    }
    z.lang.wa(vc, ib, "GroundOverlay");
    z.extend(vc.prototype, {
        setBounds: function(a) {
            this.K.fb = a
        },
        getBounds: function() {
            return this.K.fb
        },
        setOpacity: function(a) {
            this.K.opacity = a
        },
        getOpacity: function() {
            return this.K.opacity
        },
        setImageURL: function(a) {
            this.K.im = a
        },
        getImageURL: function() {
            return this.K.im
        },
        setDisplayOnMinLevel: function(a) {
            this.K.Nr = a
        },
        getDisplayOnMinLevel: function() {
            return this.K.Nr
        },
        setDisplayOnMaxLevel: function(a) {
            this.K.Mr = a
        },
        getDisplayOnMaxLevel: function() {
            return this.K.Mr
        }
    });
    var wc = 3
      , xc = 4;
    function yc() {
        var a = document.createElement("canvas");
        return !(!a.getContext || !a.getContext("2d"))
    }
    function zc(a, b) {
        var c = this;
        yc() && (a === l && aa(Error("\u6ca1\u6709\u4f20\u5165points\u6570\u636e")),
        "[object Array]" !== Object.prototype.toString.call(a) && aa(Error("points\u6570\u636e\u4e0d\u662f\u6570\u7ec4")),
        b = b || {},
        ib.apply(c, arguments),
        c.ia = {
            na: a
        },
        c.K = {
            shape: b.shape || wc,
            size: b.size || xc,
            color: b.color || "#fa937e",
            Yi: p
        },
        this.wA = [],
        this.ne = [],
        K.load("pointcollection", function() {
            for (var a = 0, b; b = c.wA[a]; a++)
                c[b.method].apply(c, b.arguments);
            for (a = 0; b = c.ne[a]; a++)
                c[b.method].apply(c, b.arguments)
        }))
    }
    z.lang.wa(zc, ib, "PointCollection");
    z.extend(zc.prototype, {
        initialize: function(a) {
            this.wA && this.wA.push({
                method: "initialize",
                arguments: arguments
            })
        },
        setPoints: function(a) {
            this.ne && this.ne.push({
                method: "setPoints",
                arguments: arguments
            })
        },
        setStyles: function(a) {
            this.ne && this.ne.push({
                method: "setStyles",
                arguments: arguments
            })
        },
        clear: function() {
            this.ne && this.ne.push({
                method: "clear",
                arguments: arguments
            })
        },
        remove: function() {
            this.ne && this.ne.push({
                method: "remove",
                arguments: arguments
            })
        }
    });
    var Ac = new qc(H.sa + "marker_red_sprite.png",new P(19,25),{
        anchor: new P(10,25),
        infoWindowAnchor: new P(10,0)
    })
      , Bc = new qc(H.sa + "marker_red_sprite.png",new P(20,11),{
        anchor: new P(6,11),
        imageOffset: new P(-19,-13)
    });
    function V(a, b) {
        ib.call(this);
        b = b || {};
        this.point = a;
        this.Sp = this.map = s;
        this.K = {
            Da: b.offset || new P(0,0),
            ue: b.icon || Ac,
            Dk: Bc,
            title: b.title || "",
            label: s,
            $I: b.baseZIndex || 0,
            cf: p,
            v5: t,
            ED: t,
            Yi: b.enableMassClear === t ? t : p,
            Wb: t,
            IM: b.raiseOnDrag === p ? p : t,
            QM: t,
            Gd: b.draggingCursor || H.Gd,
            rotation: b.rotation || 0
        };
        b.icon && !b.shadow && (this.K.Dk = s);
        b.enableDragging && (this.K.Wb = b.enableDragging);
        Hb(b.enableClicking) && (this.K.cf = b.enableClicking);
        var c = this;
        K.load("marker", function() {
            c.jb()
        })
    }
    V.fu = mc.pk(-90) + 1E6;
    V.xF = V.fu + 1E6;
    z.lang.wa(V, ib, "Marker");
    z.extend(V.prototype, {
        Tb: function(a) {
            if (a instanceof qc || a instanceof rc)
                this.K.ue = a
        },
        Do: function() {
            return this.K.ue
        },
        Sx: function(a) {
            a instanceof qc && (this.K.Dk = a)
        },
        getShadow: function() {
            return this.K.Dk
        },
        Dm: function(a) {
            this.K.label = a || s
        },
        UC: function() {
            return this.K.label
        },
        Wb: function() {
            this.K.Wb = p
        },
        UB: function() {
            this.K.Wb = t
        },
        ja: x("point"),
        ua: function(a) {
            a instanceof J && (this.point = new J(a.lng,a.lat))
        },
        ni: function(a, b) {
            this.K.ED = !!a;
            a && (this.SF = b || 0)
        },
        Dc: function(a) {
            this.K.title = a + ""
        },
        getTitle: function() {
            return this.K.title
        },
        ie: function(a) {
            a instanceof P && (this.K.Da = a)
        },
        cj: function() {
            return this.K.Da
        },
        Cm: ca("Sp"),
        lp: function(a) {
            this.K.rotation = a
        },
        CK: function() {
            return this.K.rotation
        }
    });
    function Cc(a) {
        this.options = a || {};
        this.CY = this.options.paneName || "labelPane";
        this.zIndex = this.options.zIndex || 0;
        this.MU = this.options.contextType || "2d"
    }
    Cc.prototype = new mc;
    Cc.prototype.initialize = function(a) {
        this.M = a;
        var b = this.canvas = document.createElement("canvas")
          , c = this.canvas.getContext(this.MU);
        b.style.cssText = "position:absolute;left:0;top:0;z-index:" + this.zIndex + ";";
        Dc(this);
        Ec(c);
        a.getPanes()[this.CY].appendChild(b);
        var e = this;
        a.addEventListener("resize", function() {
            Dc(e);
            Ec(c);
            e.jb()
        });
        return this.canvas
    }
    ;
    function Dc(a) {
        var b = a.M.Hb()
          , a = a.canvas;
        a.width = b.width;
        a.height = b.height;
        a.style.width = a.width + "px";
        a.style.height = a.height + "px"
    }
    function Ec(a) {
        var b = (window.devicePixelRatio || 1) / (a.$T || a.q5 || a.O3 || a.P3 || a.T3 || a.$T || 1)
          , c = a.canvas.width
          , e = a.canvas.height;
        a.canvas.width = c * b;
        a.canvas.height = e * b;
        a.canvas.style.width = c + "px";
        a.canvas.style.height = e + "px";
        a.scale(b, b)
    }
    Cc.prototype.draw = function() {
        var a = this
          , b = arguments;
        clearTimeout(a.q_);
        a.q_ = setTimeout(function() {
            a.jb.apply(a, b)
        }, 15)
    }
    ;
    fa = Cc.prototype;
    fa.jb = function() {
        var a = this.M;
        this.canvas.style.left = -a.offsetX + "px";
        this.canvas.style.top = -a.offsetY + "px";
        this.dispatchEvent("draw");
        this.options.update && this.options.update.apply(this, arguments)
    }
    ;
    fa.Ua = x("canvas");
    fa.show = function() {
        this.canvas || this.M.Pa(this);
        this.canvas.style.display = "block"
    }
    ;
    fa.aa = function() {
        this.canvas.style.display = "none"
    }
    ;
    fa.pp = function(a) {
        this.canvas.style.zIndex = a
    }
    ;
    fa.pk = x("zIndex");
    function Fc(a, b) {
        oc.call(this, b);
        b = b || {};
        this.K.lg = b.fillOpacity ? b.fillOpacity : 0.65;
        this.K.fillColor = "" == b.fillColor ? "" : b.fillColor ? b.fillColor : "#fff";
        this.je(a);
        var c = this;
        K.load("poly", function() {
            c.jb()
        })
    }
    z.lang.wa(Fc, oc, "Polygon");
    z.extend(Fc.prototype, {
        je: function(a, b) {
            this.Qn = oc.Fw(a).slice(0);
            var c = oc.Fw(a).slice(0);
            1 < c.length && c.push(new J(c[0].lng,c[0].lat));
            oc.prototype.je.call(this, c, b)
        },
        Fm: function(a, b) {
            this.Qn[a] && (this.Qn[a] = new J(b.lng,b.lat),
            this.na[a] = new J(b.lng,b.lat),
            0 == a && !this.na[0].oc(this.na[this.na.length - 1]) && (this.na[this.na.length - 1] = new J(b.lng,b.lat)),
            this.th())
        },
        Re: function() {
            var a = this.Qn;
            0 == a.length && (a = this.na);
            return a
        }
    });
    function Gc(a, b) {
        oc.call(this, b);
        this.er(a);
        var c = this;
        K.load("poly", function() {
            c.jb()
        })
    }
    z.lang.wa(Gc, oc, "Polyline");
    function Hc(a, b, c) {
        this.point = a;
        this.Ca = Math.abs(b);
        Fc.call(this, [], c)
    }
    Hc.ZD = [0.01, 1.0E-4, 1.0E-5, 4.0E-6];
    z.lang.wa(Hc, Fc, "Circle");
    z.extend(Hc.prototype, {
        initialize: function(a) {
            this.map = a;
            this.na = this.Du(this.point, this.Ca);
            this.th();
            return s
        },
        Bb: x("point"),
        pf: function(a) {
            a && (this.point = a)
        },
        AK: x("Ca"),
        qf: function(a) {
            this.Ca = Math.abs(a)
        },
        Du: function(a, b) {
            if (!a || !b || !this.map)
                return [];
            for (var c = [], e = b / 6378800, f = Math.PI / 180 * a.lat, g = Math.PI / 180 * a.lng, i = 0; 360 > i; i += 9) {
                var k = Math.PI / 180 * i
                  , m = Math.asin(Math.sin(f) * Math.cos(e) + Math.cos(f) * Math.sin(e) * Math.cos(k))
                  , k = new J(((g - Math.atan2(Math.sin(k) * Math.sin(e) * Math.cos(f), Math.cos(e) - Math.sin(f) * Math.sin(m)) + Math.PI) % (2 * Math.PI) - Math.PI) * (180 / Math.PI),m * (180 / Math.PI));
                c.push(k)
            }
            e = c[0];
            c.push(new J(e.lng,e.lat));
            return c
        }
    });
    var Ic = {};
    function Jc(a) {
        this.map = a;
        this.mm = [];
        this.Uf = [];
        this.xg = [];
        this.oU = 300;
        this.fE = 0;
        this.rg = {};
        this.Si = {};
        this.tk = 0;
        this.yD = p;
        this.bV = {};
        this.An = this.bq(1);
        this.hg = this.bq(2);
        this.ml = this.bq(3);
        this.Hg = this.bq(4);
        a.platform.appendChild(this.An);
        a.platform.appendChild(this.hg);
        a.platform.appendChild(this.ml);
        a.platform.appendChild(this.Hg);
        var b = 256 * Math.pow(2, 15)
          , c = 3 * b
          , a = S.Gb(new J(180,0)).lng
          , c = c - a
          , b = -3 * b
          , e = S.Gb(new J(-180,0)).lng;
        this.dA = a;
        this.eA = e;
        this.aA = c + (e - b);
        this.pH = a - e
    }
    D.We(function(a) {
        var b = new Jc(a);
        b.xa();
        a.oh = b
    });
    z.extend(Jc.prototype, {
        xa: function() {
            var a = this
              , b = a.map;
            b.addEventListener("loadcode", function() {
                a.To()
            });
            b.addEventListener("addtilelayer", function(b) {
                a.Me(b)
            });
            b.addEventListener("removetilelayer", function(b) {
                a.Tf(b)
            });
            b.addEventListener("setmaptype", function(b) {
                a.wg(b)
            });
            b.addEventListener("zoomstartcode", function(b) {
                a.Kc(b)
            });
            b.addEventListener("setcustomstyles", function(b) {
                a.kt(b.target);
                a.Rf(p)
            });
            b.addEventListener("initindoorlayer", function(b) {
                a.uD(b)
            })
        },
        To: function() {
            var a = this;
            if (z.ga.ma)
                try {
                    document.execCommand("BackgroundImageCache", t, p)
                } catch (b) {}
            this.loaded || a.ax();
            a.Rf();
            this.loaded || (this.loaded = p,
            K.load("tile", function() {
                a.YO()
            }))
        },
        uD: function(a) {
            this.Ot = new Kc(this);
            this.Ot.Me(new Lc(this.map,this.Ot,a.Te))
        },
        ax: function() {
            for (var a = this.map.va().$e, b = 0; b < a.length; b++) {
                var c = new Mc;
                z.extend(c, a[b]);
                this.mm.push(c);
                c.xa(this.map, this.An)
            }
            this.kt()
        },
        bq: function(a) {
            var b = O("div");
            b.style.position = "absolute";
            b.style.overflow = "visible";
            b.style.left = b.style.top = "0";
            b.style.zIndex = a;
            return b
        },
        vf: function() {
            this.tk--;
            var a = this;
            this.yD && (this.map.dispatchEvent(new Q("onfirsttileloaded")),
            this.yD = t);
            0 == this.tk && (this.Bi && (clearTimeout(this.Bi),
            this.Bi = s),
            this.Bi = setTimeout(function() {
                if (a.tk == 0) {
                    a.map.dispatchEvent(new Q("ontilesloaded"));
                    a.yD = p
                }
                a.Bi = s
            }, 80))
        },
        fD: function(a, b) {
            return "TILE-" + b.ea + "-" + a[0] + "-" + a[1] + "-" + a[2]
        },
        Xw: function(a) {
            var b = a.Jb;
            b && Ab(b) && b.parentNode.removeChild(b);
            delete this.rg[a.name];
            a.loaded || (Nc(a),
            a.Jb = s,
            a.om = s)
        },
        KK: function(a, b, c) {
            var e = this.map
              , f = e.va()
              , g = e.Va
              , i = e.fc
              , k = f.dc(g)
              , m = this.mW()
              , n = m[0]
              , o = m[1]
              , q = m[2]
              , v = m[3]
              , w = m[4]
              , c = "undefined" != typeof c ? c : 0
              , f = f.Id()
              , m = e.ea.replace(/^TANGRAM_/, "");
            for (this.Be ? this.Be.length = 0 : this.Be = []; n < q; n++)
                for (var y = o; y < v; y++) {
                    var A = n
                      , B = y;
                    this.Be.push([A, B]);
                    A = m + "_" + b + "_" + A + "_" + B + "_" + g;
                    this.bV[A] = A
                }
            this.Be.sort(function(a) {
                return function(b, c) {
                    return 0.4 * Math.abs(b[0] - a[0]) + 0.6 * Math.abs(b[1] - a[1]) - (0.4 * Math.abs(c[0] - a[0]) + 0.6 * Math.abs(c[1] - a[1]))
                }
            }([w[0] - 1, w[1] - 1]));
            i = [Math.round(-i.lng / k), Math.round(i.lat / k)];
            n = -e.offsetY + e.height / 2;
            a.style.left = -e.offsetX + e.width / 2 + "px";
            a.style.top = n + "px";
            this.Ne ? this.Ne.length = 0 : this.Ne = [];
            n = 0;
            for (e = a.childNodes.length; n < e; n++)
                y = a.childNodes[n],
                y.Bq = t,
                this.Ne.push(y);
            if (n = this.rm)
                for (var C in n)
                    delete n[C];
            else
                this.rm = {};
            this.Oe ? this.Oe.length = 0 : this.Oe = [];
            n = 0;
            for (e = this.Be.length; n < e; n++) {
                C = this.Be[n][0];
                k = this.Be[n][1];
                y = 0;
                for (o = this.Ne.length; y < o; y++)
                    if (q = this.Ne[y],
                    q.id == m + "_" + b + "_" + C + "_" + k + "_" + g) {
                        q.Bq = p;
                        this.rm[q.id] = q;
                        break
                    }
            }
            n = 0;
            for (e = this.Ne.length; n < e; n++)
                q = this.Ne[n],
                q.Bq || this.Oe.push(q);
            this.QE = [];
            y = (f + c) * this.map.U.devicePixelRatio;
            n = 0;
            for (e = this.Be.length; n < e; n++)
                C = this.Be[n][0],
                k = this.Be[n][1],
                v = C * f + i[0] - c / 2,
                w = (-1 - k) * f + i[1] - c / 2,
                A = m + "_" + b + "_" + C + "_" + k + "_" + g,
                o = this.rm[A],
                q = s,
                o ? (q = o.style,
                q.left = v + "px",
                q.top = w + "px",
                o.jn || this.QE.push([C, k, o])) : (0 < this.Oe.length ? (o = this.Oe.shift(),
                o.getContext("2d").clearRect(-c / 2, -c / 2, y, y),
                q = o.style) : (o = document.createElement("canvas"),
                q = o.style,
                q.position = "absolute",
                q.width = f + c + "px",
                q.height = f + c + "px",
                this.XX() && (q.WebkitTransform = "scale(1.001)"),
                o.setAttribute("width", y),
                o.setAttribute("height", y),
                a.appendChild(o)),
                o.id = A,
                q.left = v + "px",
                q.top = w + "px",
                -1 < A.indexOf("bg") && (v = "#F3F1EC",
                this.map.U.YT && (v = this.map.U.YT),
                q.background = v ? v : ""),
                this.QE.push([C, k, o])),
                o.style.visibility = "";
            n = 0;
            for (e = this.Oe.length; n < e; n++)
                this.Oe[n].style.visibility = "hidden";
            return this.QE
        },
        XX: function() {
            return /M040/i.test(navigator.userAgent)
        },
        mW: function() {
            var a = this.map
              , b = a.va()
              , c = b.PK(a.Va)
              , e = a.fc
              , f = Math.ceil(e.lng / c)
              , g = Math.ceil(e.lat / c)
              , b = b.Id()
              , c = [f, g, (e.lng - f * c) / c * b, (e.lat - g * c) / c * b];
            return [c[0] - Math.ceil((a.width / 2 - c[2]) / b), c[1] - Math.ceil((a.height / 2 - c[3]) / b), c[0] + Math.ceil((a.width / 2 + c[2]) / b), c[1] + Math.ceil((a.height / 2 + c[3]) / b), c]
        },
        WZ: function(a, b, c, e) {
            var f = this;
            f.C1 = b;
            var g = this.map.va()
              , i = f.fD(a, c)
              , k = g.Id()
              , b = [a[0] * k + b[0], (-1 - a[1]) * k + b[1]]
              , m = this.rg[i];
            if (this.map.va() !== ab && this.map.va() !== Va) {
                var n = this.Uv(a[0], a[2]).offsetX;
                b[0] += n;
                b.W0 = n
            }
            m && m.Jb ? (yb(m.Jb, b),
            e && (e = new R(a[0],a[1]),
            g = this.map.U.we ? this.map.U.we.style : "normal",
            e = c.getTilesUrl(e, a[2], g),
            m.loaded = t,
            Pc(m, e)),
            m.loaded ? this.vf() : Qc(m, function() {
                f.vf()
            })) : (m = this.Si[i]) && m.Jb ? (c.hc.insertBefore(m.Jb, c.hc.lastChild),
            this.rg[i] = m,
            yb(m.Jb, b),
            e && (e = new R(a[0],a[1]),
            g = this.map.U.we ? this.map.U.we.style : "normal",
            e = c.getTilesUrl(e, a[2], g),
            m.loaded = t,
            Pc(m, e)),
            m.loaded ? this.vf() : Qc(m, function() {
                f.vf()
            })) : (m = k * Math.pow(2, g.Xh() - a[2]),
            new J(a[0] * m,a[1] * m),
            e = new R(a[0],a[1]),
            g = this.map.U.we ? this.map.U.we.style : "normal",
            e = c.getTilesUrl(e, a[2], g),
            m = new Rc(this,e,b,a,c),
            Qc(m, function() {
                f.vf()
            }),
            m.zn(),
            this.rg[i] = m)
        },
        vf: function() {
            this.tk--;
            var a = this;
            0 == this.tk && (this.Bi && (clearTimeout(this.Bi),
            this.Bi = s),
            this.Bi = setTimeout(function() {
                if (a.tk == 0) {
                    a.map.dispatchEvent(new Q("ontilesloaded"));
                    if (wa) {
                        if (sa && ta && ua) {
                            var b = eb()
                              , c = a.map.Hb();
                            setTimeout(function() {
                                Ta(5030, {
                                    load_script_time: ta - sa,
                                    load_tiles_time: b - ua,
                                    map_width: c.width,
                                    map_height: c.height,
                                    map_size: c.width * c.height
                                })
                            }, 1E4);
                            D.Qp("cus.fire", "time", {
                                z_imgfirstloaded: b - ua
                            })
                        }
                        wa = t
                    }
                }
                a.Bi = s
            }, 80))
        },
        fD: function(a, b) {
            return this.map.va() === Sa ? "TILE-" + b.ea + "-" + this.map.$v + "-" + a[0] + "-" + a[1] + "-" + a[2] : "TILE-" + b.ea + "-" + a[0] + "-" + a[1] + "-" + a[2]
        },
        Xw: function(a) {
            var b = a.Jb;
            b && (Sc(b),
            Ab(b) && b.parentNode.removeChild(b));
            delete this.rg[a.name];
            a.loaded || (Sc(b),
            Nc(a),
            a.Jb = s,
            a.om = s)
        },
        Uv: function(a, b) {
            for (var c = 0, e = 6 * Math.pow(2, b - 3), f = e / 2 - 1, g = -e / 2; a > f; )
                a -= e,
                c -= this.aA;
            for (; a < g; )
                a += e,
                c += this.aA;
            c = Math.round(c / Math.pow(2, 18 - b));
            return {
                offsetX: c,
                Ol: a
            }
        },
        qU: function(a) {
            for (var b = a.lng; b > this.dA; )
                b -= this.pH;
            for (; b < this.eA; )
                b += this.pH;
            a.lng = b;
            return a
        },
        rU: function(a, b) {
            for (var c = 256 * Math.pow(2, 18 - b), e = Math.floor(this.dA / c), f = Math.floor(this.eA / c), c = Math.floor(this.aA / c), g = [], i = 0; i < a.length; i++) {
                var k = a[i]
                  , m = k[0]
                  , k = k[1];
                if (m >= e) {
                    var m = m + c
                      , n = "id_" + m + "_" + k + "_" + b;
                    a[n] || (a[n] = p,
                    g.push([m, k]))
                } else
                    m <= f && (m -= c,
                    n = "id_" + m + "_" + k + "_" + b,
                    a[n] || (a[n] = p,
                    g.push([m, k])))
            }
            for (i = 0; i < g.length; i++)
                a.push(g[i]);
            return a
        },
        Rf: function(a) {
            if (!this.map.U.Xi) {
                var b = this;
                if (b.map.va() == Sa)
                    K.load("coordtrans", function() {
                        b.map.Vb || (b.map.Vb = Sa.ik(b.map.Tg),
                        b.map.$v = Sa.mK(b.map.Vb));
                        b.rH()
                    }, p);
                else {
                    if (a && a)
                        for (var c in this.Si)
                            delete this.Si[c];
                    b.rH(a)
                }
            }
        },
        rH: function(a) {
            var b = this.mm.concat(this.Uf)
              , c = b.length
              , e = this.map
              , f = e.va()
              , g = e.fc
              , i = e.width
              , i = e.va().dc(e.Va) * i
              , i = this.MX(g.lng - i / 2, g.lng + i / 2);
            this.map.va() !== ab && this.map.va() !== Va && (g = this.qU(g));
            for (var k = 0; k < c; k++) {
                var m = b[k];
                if (m.gc && e.Va < m.gc)
                    break;
                if (m.Tv) {
                    var n = this.hc = m.hc;
                    if (a) {
                        var o = n;
                        if (o && o.childNodes)
                            for (var q = o.childNodes.length, v = q - 1; 0 <= v; v--)
                                q = o.childNodes[v],
                                o.removeChild(q),
                                q = s
                    }
                    if (this.map.Nd()) {
                        this.hg.style.display = "block";
                        n.style.display = "none";
                        this.map.dispatchEvent(new Q("vectorchanged"), {
                            isvector: p
                        });
                        continue
                    } else
                        n.style.display = "block",
                        this.hg.style.display = "none",
                        this.map.dispatchEvent(new Q("vectorchanged"), {
                            isvector: t
                        })
                }
                if (!m.V0 && !(m.gx && !this.map.Nd() || m.pL && this.map.Nd())) {
                    e = this.map;
                    f = e.va();
                    n = f.nk();
                    q = e.Va;
                    g = e.fc;
                    f == Sa && g.oc(new J(0,0)) && (g = e.fc = n.bi(e.pe, e.Vb));
                    var w = f.dc(q)
                      , n = f.PK(q)
                      , o = Math.ceil(g.lng / n)
                      , y = Math.ceil(g.lat / n)
                      , A = f.Id()
                      , n = [o, y, (g.lng - o * n) / n * A, (g.lat - y * n) / n * A]
                      , y = i ? 1.5 * (e.width / 2) : e.width / 2
                      , v = n[0] - Math.ceil((y - n[2]) / A)
                      , o = n[1] - Math.ceil((e.height / 2 - n[3]) / A)
                      , y = n[0] + Math.ceil((y + n[2]) / A)
                      , B = 0;
                    f === Sa && 15 == e.ka() && (B = 1);
                    f = n[1] + Math.ceil((e.height / 2 + n[3]) / A) + B;
                    this.VI = new J(g.lng,g.lat);
                    var C = this.rg, A = -this.VI.lng / w, B = this.VI.lat / w, g = [Math.ceil(A), Math.ceil(B)], w = e.ka(), F;
                    for (F in C) {
                        var E = C[F]
                          , G = E.info;
                        (G[2] != w || G[2] == w && (v > G[0] || y <= G[0] || o > G[1] || f <= G[1])) && this.Xw(E)
                    }
                    C = -e.offsetX + e.width / 2;
                    E = -e.offsetY + e.height / 2;
                    m.hc && (m.hc.style.left = Math.ceil(A + C) - g[0] + "px",
                    m.hc.style.top = Math.ceil(B + E) - g[1] + "px",
                    m.hc.style.WebkitTransform = "translate3d(0,0,0)");
                    A = [];
                    for (e.$A = []; v < y; v++)
                        for (B = o; B < f; B++)
                            A.push([v, B]),
                            e.$A.push({
                                x: v,
                                y: B
                            });
                    this.map.va() !== ab && this.map.va() !== Va && (A = this.rU(A, q));
                    A.sort(function(a) {
                        return function(b, c) {
                            return 0.4 * Math.abs(b[0] - a[0]) + 0.6 * Math.abs(b[1] - a[1]) - (0.4 * Math.abs(c[0] - a[0]) + 0.6 * Math.abs(c[1] - a[1]))
                        }
                    }([n[0] - 1, n[1] - 1]));
                    q = A.length;
                    this.tk += q;
                    for (v = 0; v < q; v++)
                        this.WZ([A[v][0], A[v][1], w], g, m, a)
                }
            }
        },
        MX: function(a, b) {
            return a < this.eA || b > this.dA
        },
        Me: function(a) {
            var b = this
              , c = a.target;
            b.map.Nd();
            c.Nm && this.map.Me(c.Nm);
            if (c.gx) {
                for (a = 0; a < b.xg.length; a++)
                    if (b.xg[a] == c)
                        return;
                K.load("vector", function() {
                    c.xa(b.map, b.hg);
                    b.xg.push(c)
                }, p)
            } else {
                for (a = 0; a < b.Uf.length; a++)
                    if (b.Uf[a] == c)
                        return;
                c.xa(this.map, this.ml);
                b.Uf.push(c)
            }
        },
        Tf: function(a) {
            a = a.target;
            this.map.Nd();
            a.Nm && this.map.Tf(a.Nm);
            if (a.gx)
                for (var b = 0, c = this.xg.length; b < c; b++)
                    a == this.xg[b] && this.xg.splice(b, 1);
            else {
                b = 0;
                for (c = this.Uf.length; b < c; b++)
                    a == this.Uf[b] && this.Uf.splice(b, 1)
            }
            a.remove()
        },
        wg: function() {
            for (var a = this.mm, b = 0, c = a.length; b < c; b++)
                a[b].remove();
            delete this.hc;
            this.mm = [];
            this.Si = this.rg = {};
            this.ax();
            this.Rf()
        },
        Kc: function() {
            var a = this;
            a.ud && z.R.aa(a.ud);
            setTimeout(function() {
                a.Rf();
                a.map.dispatchEvent(new Q("onzoomend"))
            }, 10)
        },
        j5: u(),
        kt: function(a) {
            var b = this.map.va();
            if (!this.map.Nd() && (a ? this.map.U.e_ = a : a = this.map.U.e_,
            a))
                for (var c = s, c = "2" == D.Nt ? [D.url.proto + D.url.domain.main_domain_cdn.other[0] + "/"] : [D.url.proto + D.url.domain.main_domain_cdn.baidu[0] + "/", D.url.proto + D.url.domain.main_domain_cdn.baidu[1] + "/", D.url.proto + D.url.domain.main_domain_cdn.baidu[2] + "/"], e = 0, f; f = this.mm[e]; e++)
                    if (f.RZ == p) {
                        b.m.pc = 18;
                        f.getTilesUrl = function(b, e) {
                            var f = b.x
                              , f = this.map.oh.Uv(f, e).Ol
                              , m = b.y
                              , n = Sb("normal")
                              , o = 1;
                            this.map.Yw() && (o = 2);
                            n = "customimage/tile?&x=" + f + "&y=" + m + "&z=" + e + "&udt=" + n + "&scale=" + o + "&ak=" + qa;
                            n = a.styleStr ? n + ("&styles=" + encodeURIComponent(a.styleStr)) : n + ("&customid=" + a.style);
                            return c[Math.abs(f + m) % c.length] + n
                        }
                        ;
                        break
                    }
        }
    });
    function Rc(a, b, c, e, f) {
        this.om = a;
        this.position = c;
        this.pu = [];
        this.name = a.fD(e, f);
        this.info = e;
        this.vI = f.Ks();
        e = O("img");
        zb(e);
        e.fK = t;
        var g = e.style
          , a = a.map.va();
        g.position = "absolute";
        g.border = "none";
        g.width = a.Id() + "px";
        g.height = a.Id() + "px";
        g.left = c[0] + "px";
        g.top = c[1] + "px";
        g.maxWidth = "none";
        this.Jb = e;
        this.src = b;
        Tc && (this.Jb.style.opacity = 0);
        var i = this;
        this.Jb.onload = function() {
            D.eY.LP();
            i.loaded = p;
            if (i.om) {
                var a = i.om
                  , b = a.Si;
                if (!b[i.name]) {
                    a.fE++;
                    b[i.name] = i
                }
                if (i.Jb && !Ab(i.Jb) && f.hc) {
                    f.hc.appendChild(i.Jb);
                    if (z.ga.ma <= 6 && z.ga.ma > 0 && i.vI)
                        i.Jb.style.cssText = i.Jb.style.cssText + (';filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + i.src + '",sizingMethod=scale);')
                }
                var c = a.fE - a.oU, e;
                for (e in b) {
                    if (c <= 0)
                        break;
                    if (!a.rg[e]) {
                        b[e].om = s;
                        var g = b[e].Jb;
                        if (g && g.parentNode) {
                            g.parentNode.removeChild(g);
                            Sc(g)
                        }
                        g = s;
                        b[e].Jb = s;
                        delete b[e];
                        a.fE--;
                        c--
                    }
                }
                Tc && new ub({
                    Hc: 20,
                    duration: 200,
                    za: function(a) {
                        if (i.Jb && i.Jb.style)
                            i.Jb.style.opacity = a * 1
                    },
                    finish: function() {
                        i.Jb && i.Jb.style && delete i.Jb.style.opacity
                    }
                });
                Nc(i)
            }
        }
        ;
        this.Jb.onerror = function() {
            Nc(i);
            if (i.om) {
                var a = i.om.map.va();
                if (a.m.vC) {
                    i.error = p;
                    i.Jb.src = a.m.vC;
                    i.Jb && !Ab(i.Jb) && f.hc.appendChild(i.Jb)
                }
            }
        }
        ;
        e = s
    }
    function Qc(a, b) {
        a.pu.push(b)
    }
    Rc.prototype.zn = function() {
        this.Jb.src = 0 < z.ga.ma && 6 >= z.ga.ma && this.vI ? H.sa + "blank.gif" : "" !== this.src && this.Jb.src == this.src ? this.src + "&t = " + Date.now() : this.src
        console.log(this.Jb.src)
    }
    ;
    function Nc(a) {
        for (var b = 0; b < a.pu.length; b++)
            a.pu[b]();
        a.pu.length = 0
    }
    function Sc(a) {
        if (a) {
            a.onload = a.onerror = s;
            var b = a.attributes, c, e, f;
            if (b) {
                e = b.length;
                for (c = 0; c < e; c += 1)
                    f = b[c].name,
                    $a(a[f]) && (a[f] = s)
            }
            if (b = a.children) {
                e = b.length;
                for (c = 0; c < e; c += 1)
                    Sc(a.children[c])
            }
        }
    }
    function Pc(a, b) {
        a.src = b;
        a.zn()
    }
    var Tc = !z.ga.ma || 8 < z.ga.ma;
    function Mc(a) {
        this.Te = a || {};
        this.OU = this.Te.copyright || s;
        this.F_ = this.Te.transparentPng || t;
        this.Tv = this.Te.baseLayer || t;
        this.zIndex = this.Te.zIndex || 0;
        this.ea = Mc.uR++
    }
    Mc.uR = 0;
    z.lang.wa(Mc, z.lang.Ga, "TileLayer");
    z.extend(Mc.prototype, {
        xa: function(a, b) {
            this.Tv && (this.zIndex = -100);
            this.map = a;
            if (!this.hc) {
                var c = O("div")
                  , e = c.style;
                e.position = "absolute";
                e.overflow = "visible";
                e.zIndex = this.zIndex;
                e.left = Math.ceil(-a.offsetX + a.width / 2) + "px";
                e.top = Math.ceil(-a.offsetY + a.height / 2) + "px";
                b.appendChild(c);
                this.hc = c
            }
        },
        remove: function() {
            this.hc && this.hc.parentNode && (this.hc.innerHTML = "",
            this.hc.parentNode.removeChild(this.hc));
            delete this.hc
        },
        Ks: x("F_"),
        getTilesUrl: function(a, b) {
            if (this.map.va() !== ab && this.map.va() !== Va)
                var c = this.map.oh.Uv(a.x, b).Ol;
            var e = "";
            this.Te.tileUrlTemplate && (e = this.Te.tileUrlTemplate.replace(/\{X\}/, c),
            e = e.replace(/\{Y\}/, a.y),
            e = e.replace(/\{Z\}/, b));
            return e
        },
        Wl: x("OU"),
        va: function() {
            return this.Db || Pa
        }
    });
    function Uc(a) {
        Mc.call(this, a);
        this.m = a || {};
        this.pL = p;
        if (this.m.predictDate) {
            if (1 > this.m.predictDate.weekday || 7 < this.m.predictDate.weekday)
                this.m.predictDate = 1;
            if (0 > this.m.predictDate.hour || 23 < this.m.predictDate.hour)
                this.m.predictDate.hour = 0
        }
        this.vT = D.url.proto + D.url.domain.traffic + "/traffic/"
    }
    Uc.prototype = new Mc;
    Uc.prototype.xa = function(a, b) {
        Mc.prototype.xa.call(this, a, b);
        this.M = a
    }
    ;
    Uc.prototype.Ks = ea(p);
    Uc.prototype.getTilesUrl = function(a, b) {
        var c = "";
        this.m.predictDate ? c = "HistoryService?day=" + (this.m.predictDate.weekday - 1) + "&hour=" + this.m.predictDate.hour + "&t=" + (new Date).getTime() + "&" : (c = "TrafficTileService?time=" + (new Date).getTime() + "&",
        c += "label=web2D&v=016&");
        var c = this.vT + c + "level=" + b + "&x=" + a.x + "&y=" + a.y
          , e = 1;
        this.M.Yw() && (e = 2);
        return (c + "&scaler=" + e).replace(/-(\d+)/gi, "M$1")
    }
    ;
    var Vc = [D.url.proto + D.url.domain.TILES_YUN_HOST[0] + "/georender/gss", D.url.proto + D.url.domain.TILES_YUN_HOST[1] + "/georender/gss", D.url.proto + D.url.domain.TILES_YUN_HOST[2] + "/georender/gss", D.url.proto + D.url.domain.TILES_YUN_HOST[3] + "/georender/gss"]
      , Wc = D.url.proto + D.url.domain.main_domain_nocdn.baidu + "/style/poi/rangestyle"
      , Xc = 100;
    function pb(a, b) {
        Mc.call(this);
        var c = this;
        this.pL = p;
        try {
            document.createElement("canvas").getContext("2d")
        } catch (e) {}
        Ib(a) ? b = a || {} : (c.hn = a,
        b = b || {});
        b.geotableId && (c.xf = b.geotableId);
        b.databoxId && (c.hn = b.databoxId);
        var f = D.Cd + "geosearch";
        c.$a = {
            AM: b.pointDensity || Xc,
            rX: f + "/detail/",
            sX: f + "/v2/detail/",
            SI: b.age || 36E5,
            ct: b.q || "",
            p_: "png",
            j3: [5, 5, 5, 5],
            aY: {
                backgroundColor: "#FFFFD5",
                borderColor: "#808080"
            },
            lB: b.ak || qa,
            ME: b.tags || "",
            filter: b.filter || "",
            pN: b.sortby || "",
            mD: b.hotspotName || "tile_md_" + (1E5 * Math.random()).toFixed(0),
            aF: p
        };
        K.load("clayer", function() {
            c.Qd()
        })
    }
    pb.prototype = new Mc;
    pb.prototype.xa = function(a, b) {
        Mc.prototype.xa.call(this, a, b);
        this.M = a
    }
    ;
    pb.prototype.getTilesUrl = function(a, b) {
        var c = a.x
          , e = a.y
          , f = this.$a
          , c = Vc[Math.abs(c + e) % Vc.length] + "/image?grids=" + c + "_" + e + "_" + b + "&q=" + f.ct + "&tags=" + f.ME + "&filter=" + f.filter + "&sortby=" + f.pN + "&ak=" + this.$a.lB + "&age=" + f.SI + "&page_size=" + f.AM + "&format=" + f.p_;
        f.aF || (f = (1E5 * Math.random()).toFixed(0),
        c += "&timeStamp=" + f);
        this.xf ? c += "&geotable_id=" + this.xf : this.hn && (c += "&databox_id=" + this.hn);
        return c
    }
    ;
    pb.prototype.enableUseCache = function() {
        this.$a.aF = p
    }
    ;
    pb.prototype.disableUseCache = function() {
        this.$a.aF = t
    }
    ;
    pb.US = /^point\(|\)$/ig;
    pb.VS = /\s+/;
    pb.XS = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
    var Yc = {};
    function Zc(a, b) {
        this.jd = a;
        this.aP = 18;
        this.m = {
            dy: 256,
            Pc: new S
        };
        z.extend(this.m, b || {})
    }
    var $c = [0, 0, 0, 8, 7, 7, 6, 6, 5, 5, 4, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0]
      , ad = [512, 2048, 4096, 32768, 65536, 262144, 1048576, 4194304, 8388608]
      , bd = [0, 0, 0, 3, 5, 5, 7, 7, 9, 9, 10, 12, 12, 12, 15, 15, 17, 17, 19, 19, 19, 19]
      , cd = [0, 0, 0, 256, 256, 512, 256, 512, 256, 512, 256, 256, 512, 1024, 256, 512, 512, 1024, 512, 1024, 2048, 4096];
    Zc.prototype = {
        getName: x("jd"),
        Id: function(a) {
            return "na" === this.jd ? cd[a] : this.m.dy
        },
        gs: function(a) {
            return "na" === this.jd ? bd[a] : a
        },
        nk: function() {
            return this.m.Pc
        },
        dc: function(a) {
            return Math.pow(2, this.aP - a)
        },
        XC: function(a) {
            return "na" === this.jd ? ad[$c[a]] : this.dc(a) * this.Id(a)
        }
    };
    var dd = {
        drawPoly: function(a, b, c, e, f, g) {
            var i = a[1];
            if (i)
                for (var a = a[6], k = 0; k < i.length; k++) {
                    var m = i[k][0]
                      , n = f.hj(m, "polygon", c, g);
                    if (n && n.length)
                        for (var o = i[k][1], q = 0; q < o.length; q++) {
                            var v = o[q][1];
                            f.Nc(v[0], c) && (v["cache" + c] || (v["cache" + c] = f.um(v[1], c, e, a)),
                            v = v["cache" + c],
                            f.M.Vn(b.canvas.id, v, {
                                type: "polygon",
                                Ub: m,
                                style: n
                            }),
                            this.EV(b, v, n, c))
                        }
                }
        },
        EV: function(a, b, c, e) {
            c = c[0];
            if (!c.Ub || !(6 < e && (71013 === c.Ub || 71012 === c.Ub || 71011 === c.Ub) || 6 === e && (71011 === c.Ub || 71012 === c.Ub) || 5 === e && (71011 === c.Ub || 71013 === c.Ub) || 5 > e && (71012 === c.Ub || 71013 === c.Ub))) {
                a.fillStyle = c.zw;
                a.beginPath();
                a.moveTo(b[0], b[1]);
                for (var e = 2, f = b.length; e < f; e += 2)
                    a.lineTo(b[e], b[e + 1]);
                a.closePath();
                c.borderWidth && (a.strokeStyle = c.co,
                a.lineWidth = c.borderWidth / 2,
                a.stroke());
                a.fill()
            }
        },
        drawGaoqingRoadBorder: function(a, b, c, e, f) {
            var g = a[1];
            if (g)
                for (var a = a[6], i = 0; i < g.length; i++) {
                    var k = g[i][0]
                      , m = f.hj(k, "polygon", c);
                    if (m && m.length && m[0].borderWidth)
                        for (var n = g[i][1], o = 0; o < n.length; o++) {
                            var q = n[o][1];
                            f.Nc(q[0], c) && (q["cache" + c] || (q["cache" + c] = f.um(q[1], c, e, a)),
                            q = q["cache" + c],
                            f.M.Vn(b.canvas.id, q, {
                                type: "polygon",
                                Ub: k,
                                style: m
                            }),
                            this.GV(b, q, m))
                        }
                }
        },
        drawGaoqingRoadFill: function(a, b, c, e, f) {
            var g = a[1];
            if (g)
                for (var a = a[6], i = 0; i < g.length; i++) {
                    var k = g[i][0]
                      , m = f.hj(k, "polygon", c);
                    if (m && m.length)
                        for (var n = g[i][1], o = 0; o < n.length; o++) {
                            var q = n[o][1];
                            f.Nc(q[0], c) && (q["cache" + c] || (q["cache" + c] = f.um(q[1], c, e, a)),
                            q = q["cache" + c],
                            f.M.Vn(b.canvas.id, q, {
                                type: "polygon",
                                Ub: k,
                                style: m
                            }),
                            this.HV(b, q, m))
                        }
                }
        },
        GV: function(a, b, c) {
            c = c[0];
            a.beginPath();
            a.moveTo(b[0], b[1]);
            for (var e = 2, f = b.length; e < f; e += 2)
                a.lineTo(b[e], b[e + 1]);
            a.closePath();
            a.strokeStyle = c.co;
            a.lineWidth = c.borderWidth / 2;
            a.stroke()
        },
        HV: function(a, b, c) {
            a.fillStyle = c[0].zw;
            a.beginPath();
            a.moveTo(b[0], b[1]);
            for (var c = 2, e = b.length; c < e; c += 2)
                a.lineTo(b[c], b[c + 1]);
            a.closePath();
            a.fill()
        }
    };
    var ed = {
        drawArrow: function(a, b, c, e, f, g) {
            b.lineWidth = 1.5;
            b.lineCap = "butt";
            b.lineJoin = "miter";
            b.strokeStyle = "rgba(153,153,153,1)";
            var i = a[7];
            if (i) {
                a = i[1];
                e = g.um(i[0], c, e);
                for (i = 0; i < a.length; i++)
                    if (g.Nc(a[i], c)) {
                        var k = e[4 * i]
                          , m = e[4 * i + 1]
                          , n = e[4 * i + 2]
                          , o = e[4 * i + 3]
                          , q = (k + n) / 2
                          , v = (m + o) / 2
                          , n = (k - n) / f
                          , o = (m - o) / f
                          , k = q + n / 2
                          , n = q - n / 2
                          , m = v + o / 2
                          , o = v - o / 2;
                        this.xV(b, k, m, n, o)
                    }
            }
        },
        xV: function(a, b, c, e, f) {
            a.beginPath();
            a.moveTo(b, c);
            a.lineTo(e, f);
            a.stroke();
            c = this.pU([b, c], [e, f]);
            b = c[0];
            c = c[1];
            a.beginPath();
            a.moveTo(b[0], b[1]);
            a.lineTo(c[0], c[1]);
            a.lineTo(e, f);
            a.closePath();
            a.stroke()
        },
        pU: function(a, b) {
            var c = b[0] - a[0]
              , e = b[1] - a[1]
              , f = 1.8 * Math.sqrt(c * c + e * e)
              , g = b[0] + 4.8410665352790705 * (c / f)
              , f = b[1] + 4.8410665352790705 * (e / f)
              , c = Math.atan2(e, c) + Math.PI;
            return [[g + 4.8410665352790705 * Math.cos(c - 0.3), f + 4.8410665352790705 * Math.sin(c - 0.3)], [g + 4.8410665352790705 * Math.cos(c + 0.3), f + 4.8410665352790705 * Math.sin(c + 0.3)]]
        }
    };
    var fd = {
        drawHregion: function(a, b, c, e, f) {
            var g = a[1];
            if (g)
                for (var a = a[6], i = 0; i < g.length; i++) {
                    var k = g[i][0]
                      , m = f.hj(k, "polygon3d", c);
                    if (m && m.length)
                        for (var n = g[i][1], o = 0; o < n.length; o++) {
                            var q = n[o][2];
                            if (f.Nc(q[0], c)) {
                                var v = q[2];
                                q["cache" + c] || (q["cache" + c] = f.um(q[1], c, e, a));
                                q = q["cache" + c];
                                f.M.Vn(b.canvas.id, q, {
                                    type: "polygon",
                                    Ub: k,
                                    style: m
                                });
                                this.FV(b, q, v, m)
                            }
                        }
                }
        },
        FV: function(a, b, c, e) {
            e = e[0];
            if (!(c < e.filter)) {
                a.fillStyle = e.XV;
                a.beginPath();
                a.moveTo(b[0], b[1]);
                for (var c = 2, f = b.length; c < f; c += 2)
                    a.lineTo(b[c], b[c + 1]);
                a.closePath();
                e.borderWidth && (a.strokeStyle = e.co,
                a.lineWidth = e.borderWidth / 2,
                a.stroke());
                a.fill()
            }
        }
    };
    var gd = {
        parse: function(a, b, c, e, f) {
            for (var g = e.M, i = g.ka(), k = Math.pow(2, 18 - i), m = g.Pc.bi(g.Bb()), n = m.lng, o = m.lat, m = g.Hb(), q = m.width, v = m.height, m = [], w = 0; w < a.length; w++) {
                var y = []
                  , A = a[w].n_;
                y.x = A[0];
                y.y = A[1];
                y.u5 = A[2];
                for (var B = (A[0] * c * k - n) / k + q / 2, C = (o - (A[1] + 1) * c * k) / k + v / 2, F = 0; F < a[w].length; F++)
                    a[w][F].vL ? this.wM(a[w][F].vL, A, e, b, c, B, C, i, k, q, v, y) : a[w][F].yX ? this.wM(a[w][F].yX, A, e, b, c, B, C, i, k, q, v, y, p, window.n3) : this.IY(a[w][F].bY, A, e, b, c, B, C, i, k, q, v, y, f);
                m.push(y)
            }
            if (/collision=0/.test(location.search)) {
                a = [];
                for (w = 0; w < m.length; w++)
                    for (F = 0; F < m[w].length; F++)
                        a.push(m[w][F])
            } else
                a = this.VY(m, e.M.ka());
            g.DU();
            for (w = 0; w < a.length; w++)
                if (c = a[w],
                !c.Fs)
                    if (F = [c.Pf, c.Qf, c.Pf, c.fi, c.ei, c.fi, c.ei, c.Qf, c.Pf, c.Qf],
                    c.style && g.Vn("poi", F, {
                        type: "polygon",
                        Ub: c.style.Ub,
                        style: c.style
                    }),
                    "fixed" === c.type) {
                        F = t;
                        c.ue && (c.style && 4 === c.direction) && (F = p);
                        if (c.ue)
                            if (F) {
                                var E = this;
                                this.Ur(b, c, e, F, function(a) {
                                    for (var c = 0; c < a.rf.length; c++)
                                        E.OJ(b, a.rf[c].$d, a.rf[c].ae, a.rf[c].text, a.style, e)
                                })
                            } else
                                this.Ur(b, c, e);
                        if (c.style && !F)
                            for (F = 0; F < c.rf.length; F++)
                                this.OJ(b, c.rf[F].$d, c.rf[F].ae, c.rf[F].text, c.style, e)
                    } else if ("line" === c.type)
                        for (F = 0; F < c.eO.length; F++)
                            f = c.eO[F],
                            gd.AV(b, f.$d, f.ae, f.TT, f.cO, f.width, f.height, c.style, e);
            return m
        },
        wM: function(a, b, c, e, f, g, i, k, m, n, o, q, v, w) {
            a = a[1];
            for (b = 0; b < a.length; b++) {
                var y = a[b]
                  , A = y[0]
                  , B = c.hj(A, "point", k, w)
                  , A = c.hj(A, "pointText", k, w)
                  , y = y[1]
                  , C = s
                  , F = 100
                  , E = 0
                  , G = 0;
                B && B[0] && (B = B[0],
                C = B.ue,
                F = B.zoom || 100);
                A = A && A[0] ? A[0] : s;
                for (B = 0; B < y.length; B++) {
                    var N = y[B][4];
                    if (N && c.Nc(N[2], k)) {
                        var L = Math.round(N[0] / 100) / m + g
                          , M = f - Math.round(N[1] / 100) / m + i;
                        if (v || !(-50 > L || -50 > M || L > n + 50 || M > o + 50)) {
                            var T = N[7] || ""
                              , da = {
                                type: "fixed",
                                uid: N[3] || "",
                                name: T,
                                Ix: N[4],
                                As: s,
                                rf: [],
                                wx: [L, M],
                                style: A
                            };
                            if (C) {
                                var ba = window.iconSetInfo_high[C] || window.iconSetInfo_high["MapRes/" + C];
                                if (!ba) {
                                    var va = C.charCodeAt(0);
                                    48 <= va && 57 >= va && (ba = window.iconSetInfo_high["_" + C])
                                }
                                ba && (E = ba[2],
                                G = ba[3],
                                E = E / 2 * F / 100,
                                G = G / 2 * F / 100,
                                da.As = {
                                    $d: L - E / 2,
                                    ae: M - G / 2,
                                    width: E,
                                    height: G
                                },
                                da.ue = C)
                            }
                            if (A) {
                                N = N[5];
                                "number" !== typeof N && (N = 0);
                                var ya = ba = 0
                                  , va = (A.fontSize || 12) / 2
                                  , Ea = 0.2 * va;
                                e.font = gd.Ew(A, c);
                                var T = T.split("\\")
                                  , ra = T.length;
                                da.direction = N;
                                for (var Ua = 0; Ua < ra; Ua++) {
                                    var re = T[Ua]
                                      , Oc = e.measureText(re).width;
                                    switch (N) {
                                    case 3:
                                        ya = M - va / 2 * ra - Ea * (ra - 1) / 2;
                                        ba = L - Oc - E / 2;
                                        ya = ya + va * Ua + Ea * Ua;
                                        break;
                                    case 1:
                                        ya = M - va / 2 * ra - Ea * (ra - 1) / 2;
                                        ba = L + E / 2;
                                        ya = ya + va * Ua + Ea * Ua;
                                        break;
                                    case 2:
                                        ya = M - G / 2 - va * ra - Ea * (ra - 1) - Ea;
                                        ba = L - Oc / 2;
                                        ya = ya + va * Ua + Ea * Ua;
                                        break;
                                    case 0:
                                        ya = M + G / 2 + Ea / 2;
                                        ba = L - Oc / 2;
                                        ya = ya + va * Ua + Ea * Ua;
                                        break;
                                    case 4:
                                        ya = M - va / 2 * ra - Ea * (ra - 1) / 2,
                                        ba = L - Oc / 2,
                                        ya = ya + va * Ua + Ea * Ua
                                    }
                                    da.rf.push({
                                        $d: ba,
                                        ae: ya,
                                        width: Oc,
                                        height: va,
                                        text: re
                                    })
                                }
                            }
                            q.push(da)
                        }
                    }
                }
            }
        },
        IY: function(a, b, c, e, f, g, i, k, m, n, o, q, v) {
            b = a[7].length;
            if ((n = c.hj(a[0], "pointText", k)) && n.length) {
                n = n[0];
                e.font = gd.Ew(n, c);
                for (var o = n.fontSize / 2, w = a[1], y = a[2], A = y.split("").length, B = a[4], C = B.slice(0, 2), F = 2; F < B.length; F += 2)
                    C[F] = C[F - 2] + B[F],
                    C[F + 1] = C[F - 1] + B[F + 1];
                for (F = 2; F < B.length; F += 2)
                    0 === F % (2 * A) || 1 === F % (2 * A) || (C[F] = C[F - 2] + B[F] / v,
                    C[F + 1] = C[F - 1] + B[F + 1] / v);
                for (v = 0; v < b; v++)
                    if (c.Nc(a[7][v], k)) {
                        var F = []
                          , E = l
                          , G = l
                          , N = l
                          , L = l
                          , M = y.split("");
                        a[6][v] && M.reverse();
                        for (var B = 2 * v * A, B = C.slice(B, B + 2 * A), T = 0; T < A; T++) {
                            var da = a[5][A * v + T]
                              , ba = B[2 * T] / 100 / m + g
                              , va = f - B[2 * T + 1] / 100 / m + i
                              , ya = M[T]
                              , Ea = e.measureText(ya).width;
                            if (E === l)
                                E = ba - Ea / 2,
                                G = va - o / 2,
                                N = E + Ea,
                                L = G + o;
                            else {
                                var ra = ba - Ea / 2
                                  , Ua = va - o / 2;
                                ra < E && (E = ra);
                                Ua < G && (G = Ua);
                                ra + Ea > N && (N = ra + Ea);
                                Ua + o > L && (L = Ua + o)
                            }
                            F.push({
                                cO: ya,
                                $d: ba,
                                ae: va,
                                TT: da,
                                width: Ea,
                                height: o
                            })
                        }
                        q.push({
                            type: "line",
                            Ix: w,
                            style: n,
                            eO: F,
                            Pf: E,
                            Qf: G,
                            ei: N,
                            fi: L
                        })
                    }
            }
        },
        Ur: function(a, b, c, e, f) {
            var g = b.ue;
            if ("lanche" !== g)
                if (gd.Zw[g])
                    this.LJ(a, b, gd.Zw[g], e, f);
                else {
                    var c = c.tK(g)
                      , i = new Image;
                    i.setAttribute("crossOrigin", "anonymous");
                    var k = this;
                    i.onload = function() {
                        gd.Zw[g] = this;
                        k.LJ(a, b, this, e, f);
                        i.onload = s
                    }
                    ;
                    i.src = c
                }
        },
        LJ: function(a, b, c, e, f) {
            var g = b.As
              , i = g.$d
              , k = g.ae
              , m = s
              , n = s
              , o = p
              , q = b.style ? b.style.Ub : s;
            if (b.style && 62203 === q) {
                for (var v = n = m = 0; v < b.rf.length; v++)
                    m < b.rf[v].width && (m = b.rf[v].width),
                    n += 20;
                m = Math.ceil(m) + 10
            }
            e && 519 === q && (o = t);
            m !== s && n !== s ? this.DV(a, b, c, 8, m, n) : e && o ? (m = Math.ceil(b.rf[0].width) + 6,
            this.wV(a, b, c, 12, m, c.height / 2)) : a.drawImage(c, i, k, g.width, g.height);
            f && f(b)
        },
        DV: function(a, b, c, e, f, g) {
            var i = b.wx[0] - f / 2
              , b = b.wx[1] - g / 2;
            0 < navigator.userAgent.indexOf("iPhone") && (b += 1);
            var k = e / 2;
            a.drawImage(c, 0, 0, e, e, i, b, k, k);
            a.drawImage(c, e, 0, 1, e, i + k, b, f - 2 * k, k);
            a.drawImage(c, c.width - e, 0, e, e, i + f - k, b, k, k);
            a.drawImage(c, 0, e, e, 1, i, b + k, k, g - 2 * k);
            a.drawImage(c, e, e, 1, 1, i + k, b + k, f - 2 * k, g - 2 * k);
            a.drawImage(c, c.width - e, e, e, 1, i + f - k, b + k, k, g - 2 * k);
            a.drawImage(c, 0, c.height - e, e, e, i, b + g - k, k, k);
            a.drawImage(c, e, c.height - e, 1, e, i + k, b + g - k, f - 2 * k, k);
            a.drawImage(c, c.width - e, c.height - e, e, e, i + f - k, b + g - k, k, k)
        },
        wV: function(a, b, c, e, f, g) {
            var i = b.wx[0] - f / 2
              , b = b.wx[1] - g / 2
              , g = e / 2;
            a.drawImage(c, 0, 0, e, c.height, i, b, g, c.height / 2);
            a.drawImage(c, e, 0, 1, c.height, i + g, b, f - 2 * g, c.height / 2);
            a.drawImage(c, c.width - e, 0, e, c.height, i + f - g, b, g, c.height / 2)
        },
        AV: function(a, b, c, e, f, g, i, k, m) {
            a.font = gd.Ew(k, m);
            a.fillStyle = k.dK;
            g /= 2;
            i /= 2;
            a.save();
            a.translate(b, c);
            a.rotate(-e / 180 * Math.PI);
            0 < k.Rw && (a.lineWidth = k.Rw,
            a.strokeStyle = k.UK,
            a.strokeText(f, -g, -i));
            a.fillText(f, -g, -i);
            a.restore()
        },
        OJ: function(a, b, c, e, f, g) {
            a.font = gd.Ew(f, g);
            a.fillStyle = f.dK;
            0 < f.Rw && (a.lineWidth = f.Rw,
            a.strokeStyle = f.UK,
            a.strokeText(e, b, c));
            a.fillText(e, b, c)
        },
        Ew: function(a, b) {
            var c = a.fontSize / 2
              , e = 10 * a.fontWeight;
            return e = b.zD ? e + " bold" + (" " + c + "px") + ' arial, "PingFang SC", sans-serif' : e + (" " + c + "px") + " arial, sans-serif"
        },
        VY: function(a, b) {
            var c = []
              , e = 0;
            5 === b && (e = 1);
            a.sort(function(a, b) {
                return a.x * a.y < b.x * b.y ? -1 : 1
            });
            for (var f = 0, g = a.length; f < g; f++)
                for (var i = a[f], k = 0, m = i.length; k < m; k++) {
                    var n = i[k]
                      , o = l
                      , q = l
                      , v = l
                      , w = l;
                    if ("fixed" === n.type) {
                        var y = n.As
                          , A = n.rf;
                        y && (o = y.$d,
                        q = y.ae,
                        v = y.$d + y.width,
                        w = y.ae + y.height);
                        for (y = 0; y < A.length; y++) {
                            var B = A[y];
                            o !== l ? (B.$d < o && (o = B.$d),
                            B.ae < q && (q = B.ae),
                            B.$d + B.width > v && (v = B.$d + B.width),
                            B.ae + B.height > w && (w = B.ae + B.height)) : (o = B.$d,
                            q = B.ae,
                            v = B.$d + B.width,
                            w = B.ae + B.height)
                        }
                    } else
                        "line" === n.type ? (o = n.Pf,
                        q = n.Qf,
                        v = n.ei,
                        w = n.fi) : "biaopai" === n.type && (w = n.j4,
                        o = w.$d,
                        q = w.ae,
                        v = w.$d + w.width,
                        w = w.ae + w.height);
                    o !== l && (n.Pf = o,
                    n.Qf = q,
                    n.ei = v,
                    n.fi = w,
                    c.push(n))
                }
            c.sort(function(a, b) {
                return b.Ix - a.Ix || b.Pf - a.Pf || b.Qf - a.Qf
            });
            f = 0;
            for (g = c.length; f < g; f++) {
                m = c[f];
                m.Fs = t;
                m.YI = [];
                for (k = f + 1; k < g; k++)
                    i = c[k],
                    m.ei - e < i.Pf || (m.Pf > i.ei - e || m.fi - e < i.Qf || m.Qf > i.fi - e) || m.YI.push(k)
            }
            f = 0;
            for (g = c.length; f < g; f++)
                if (k = c[f],
                k.Fs === t) {
                    e = k.YI;
                    k = 0;
                    for (m = e.length; k < m; k++)
                        c[e[k]].Fs = p
                }
            return c
        },
        Zw: {}
    };
    var hd = ["round", "butt", "square"]
      , id = ["miter", "round", "bevel"]
      , jd = {
        daojiao: [{
            stroke: "#FF6600",
            Ab: 1,
            yb: "round",
            zb: "round",
            rd: [4, 3]
        }],
        daojiao_bai: [{
            stroke: "#f5f3f0",
            Ab: 1,
            yb: "round",
            zb: "round",
            rd: [4, 3]
        }],
        junhuoxian: [{
            stroke: "#DB7093",
            Ab: 1,
            yb: "round",
            zb: "round",
            rd: [4, 3]
        }],
        lundu: [{
            stroke: "#5c91c5",
            Ab: 1,
            yb: "round",
            zb: "round",
            rd: [10, 11]
        }],
        shengjie: [{
            stroke: "#737373",
            Ab: 1,
            yb: "round",
            zb: "round",
            rd: [6, 3]
        }],
        weidingguojie: [{
            stroke: "#aea08a",
            Ab: 1,
            yb: "round",
            zb: "round",
            rd: [4, 3]
        }],
        weidingguojie_guowai: [{
            stroke: "#a29e96",
            Ab: 2,
            yb: "round",
            zb: "round",
            rd: [4, 3]
        }],
        weidingguojie_guonei: [{
            stroke: "#b5a37c",
            Ab: 2,
            yb: "round",
            zb: "round",
            rd: [4, 3]
        }]
    }
      , kd = {};
    function ld(a, b) {
        if ("tielu" === a || "tielu_0" === a) {
            if ("off" === window.La[b].bmapRailwayVisibility)
                return [];
            var c = "#ffffff"
              , e = "#949494";
            window.La[b].bmapRailwayStrokeColor && (c = window.La[b].bmapRailwayStrokeColor);
            window.La[b].bmapRailwayFillColor && (e = window.La[b].bmapRailwayFillColor);
            if (4 <= b && 9 >= b || 10 <= b && 16 >= b)
                return [{
                    stroke: c,
                    Ab: 1.5,
                    yb: "butt",
                    zb: "round",
                    rd: [10, 11]
                }, {
                    stroke: e,
                    Ab: 2,
                    yb: "round",
                    zb: "round"
                }];
            if (17 <= b && 18 >= b)
                return [{
                    stroke: c,
                    Ab: 2.5,
                    yb: "butt",
                    zb: "round",
                    rd: [15, 16]
                }, {
                    stroke: e,
                    Ab: 5,
                    yb: "round",
                    zb: "round"
                }];
            if (19 <= b && 20 >= b)
                return [{
                    stroke: c,
                    Ab: 4.5,
                    yb: "butt",
                    zb: "round",
                    rd: [25, 26]
                }, {
                    stroke: e,
                    Ab: 5,
                    yb: "round",
                    zb: "round"
                }]
        } else if (0 === a.indexOf("ditie_zj")) {
            if (12 <= b && 16 >= b)
                return [{
                    stroke: "#868686",
                    Ab: 1,
                    yb: "round",
                    zb: "round",
                    rd: [7, 4]
                }];
            if (17 <= b && 18 >= b || 19 <= b && 20 >= b)
                return [{
                    stroke: "#6e6e6e",
                    Ab: 1,
                    yb: "round",
                    zb: "round",
                    rd: [7, 4]
                }]
        } else if (/^tongdaomian/.test(a)) {
            if (17 === b)
                return [{
                    stroke: "#e5e5e5",
                    Ab: 4,
                    yb: "square",
                    zb: "round"
                }, {
                    stroke: "#a8a8a8",
                    Ab: 6,
                    yb: "square",
                    zb: "round"
                }];
            if (18 === b)
                return [{
                    stroke: "#e5e5e5",
                    Ab: 6,
                    yb: "square",
                    zb: "round"
                }, {
                    stroke: "#a8a8a8",
                    Ab: 8,
                    yb: "square",
                    zb: "round"
                }];
            if (19 <= b && 21 >= b)
                return [{
                    stroke: "#e5e5e5",
                    Ab: 8,
                    yb: "square",
                    zb: "round"
                }, {
                    stroke: "#a8a8a8",
                    Ab: 10,
                    yb: "square",
                    zb: "round"
                }]
        } else if (/^jietizhongduan|^dixiatongdaojieti/.test(a)) {
            if (17 === b)
                return [{
                    stroke: "#e5e5e5",
                    Ab: 4,
                    yb: "butt",
                    zb: "round",
                    rd: [2, 1]
                }, {
                    stroke: "#bebebe",
                    Ab: 6,
                    yb: "butt",
                    zb: "round"
                }];
            if (18 === b)
                return [{
                    stroke: "#e5e5e5",
                    Ab: 6,
                    yb: "butt",
                    zb: "round",
                    rd: [3, 1]
                }, {
                    stroke: "#bebebe",
                    Ab: 8,
                    yb: "butt",
                    zb: "round"
                }];
            if (19 <= b && 21 >= b)
                return [{
                    stroke: "#e5e5e5",
                    Ab: 8,
                    yb: "butt",
                    zb: "round",
                    rd: [4, 2]
                }, {
                    stroke: "#bebebe",
                    Ab: 10,
                    yb: "butt",
                    zb: "round"
                }]
        } else if (/^guojietianqiao/.test(a))
            return 18 === b ? [{
                stroke: "#ffffff",
                Ab: 6,
                yb: "butt",
                zb: "round",
                rd: [4, 2]
            }, {
                stroke: "#bebebe",
                Ab: 8,
                yb: "butt",
                zb: "round"
            }] : [{
                stroke: "#ffffff",
                Ab: 8,
                yb: "butt",
                zb: "round",
                rd: [4, 2]
            }, {
                stroke: "#bebebe",
                Ab: 10,
                yb: "butt",
                zb: "round"
            }];
        return jd[a]
    }
    var md = {
        drawLink: function(a, b, c, e, f) {
            var g = a[1];
            g && (a = a[6],
            this.NN(g, c, e, b, a, f, p),
            this.NN(g, c, e, b, a, f, t))
        },
        NN: function(a, b, c, e, f, g, i) {
            for (var k = 0; k < a.length; k++) {
                var m = a[k][0]
                  , n = g.hj(m, "line", b);
                if (n && n.length && (!i || n[0].borderWidth))
                    if (!n[0].xo || ld(n[0].xo, b))
                        for (var o = a[k][1], q = 0; q < o.length; q++) {
                            var v = o[q][3];
                            g.Nc(v[0], b) && (v["cache" + b] || (v["cache" + b] = g.um(v[1], b, c, f)),
                            v = v["cache" + b],
                            g.M.Vn(e.canvas.id, v, {
                                type: "polyline",
                                Ub: m,
                                style: n
                            }),
                            this.BV(e, v, n, i, b))
                        }
            }
        },
        drawSingleTexture: function(a, b, c, e, f) {
            var g = a[1];
            if (g)
                for (var a = a[6], i = 0; i < g.length; i++) {
                    var k = f.hj(g[i][0], "line", c);
                    if (k && k.length)
                        for (var m = g[i][1], n = 0; n < m.length; n++) {
                            var o = m[n][11];
                            if (f.Nc(o[0], c)) {
                                var q;
                                o["cache" + c] || (o["cache" + c] = f.um(o[1], c, e, a));
                                q = o["cache" + c];
                                o = o[3];
                                o *= Math.pow(2, c - f.b0[c].Lc);
                                this.CV(b, q, k, o, f)
                            }
                        }
                }
        },
        CV: function(a, b, c, e, f) {
            var g = c[0].xo
              , i = this;
            if (kd[g])
                i.Ur(b, e, a, kd[g]);
            else {
                var c = f.tK(g)
                  , k = new Image;
                k.onload = function() {
                    kd[g] = k;
                    i.Ur(b, e, a, k);
                    k.onload = s
                }
                ;
                k.src = c
            }
        },
        Ur: function(a, b, c, e) {
            var f = [a[0], a[1]]
              , g = [a[2], a[3]]
              , a = g[0] - f[0]
              , g = g[1] - f[1]
              , f = [f[0] + a / 2, f[1] + g / 2]
              , i = Math.sqrt(a * a + g * g)
              , b = b / 10
              , a = Math.atan2(g, a);
            c.save();
            c.translate(f[0], f[1]);
            c.rotate(Math.PI / 2 + a);
            c.drawImage(e, -b / 2, -i / 2, b, i);
            c.restore()
        },
        BV: function(a, b, c, e, f) {
            c = c[0];
            if (!e && c.xo && ld(c.xo, f))
                this.IV(a, b, c, ld(c.xo, f));
            else {
                a.beginPath();
                a.moveTo(b[0], b[1]);
                for (var f = 2, g = b.length; f < g; f += 2)
                    a.lineTo(b[f], b[f + 1]);
                c.borderWidth && e ? (a.strokeStyle = c.co,
                a.lineCap = hd[c.iU],
                a.lineJoin = id[1],
                a.lineWidth = c.borderWidth / 2,
                a.stroke()) : e || (a.strokeStyle = c.zw,
                a.lineCap = hd[c.WV],
                a.lineJoin = id[1],
                a.lineWidth = c.$J / 2,
                a.stroke())
            }
        },
        IV: function(a, b, c, e) {
            if (c = e[1]) {
                a.strokeStyle = c.stroke;
                a.lineCap = c.yb;
                a.lineJoin = c.zb;
                a.lineWidth = c.Ab;
                a.beginPath();
                a.moveTo(b[0], b[1]);
                for (var c = 2, f = b.length; c < f; c += 2)
                    a.lineTo(b[c], b[c + 1]);
                a.stroke()
            }
            if (e = e[0])
                if (e.rd)
                    this.zV(a, b, e);
                else {
                    a.strokeStyle = e.stroke;
                    a.lineCap = e.yb;
                    a.lineJoin = e.zb;
                    a.lineWidth = e.Ab;
                    a.beginPath();
                    a.moveTo(b[0], b[1]);
                    c = 2;
                    for (f = b.length; c < f; c += 2)
                        a.lineTo(b[c], b[c + 1]);
                    a.stroke()
                }
        },
        zV: function(a, b, c) {
            a.strokeStyle = c.stroke;
            a.lineCap = c.yb;
            a.lineJoin = c.zb;
            a.lineWidth = c.Ab;
            var e = p
              , c = c.rd[0];
            a.beginPath();
            for (var f = 0; f < b.length - 2; f += 2) {
                var g = b[f]
                  , i = b[f + 1]
                  , k = b[f + 2] - g
                  , m = b[f + 3] - i
                  , n = 0 !== k ? m / k : 0 < m ? 1E15 : -1E15
                  , m = Math.sqrt(k * k + m * m)
                  , o = c;
                for (a.moveTo(g, i); 0.1 <= m; ) {
                    o > m && (o = m);
                    var q = Math.sqrt(o * o / (1 + n * n));
                    0 > k && (q = -q);
                    g += q;
                    i += n * q;
                    a[e ? "lineTo" : "moveTo"](g, i);
                    m -= o;
                    e = !e
                }
            }
            a.stroke()
        }
    };
    var nd = 3, od = 4, pd = 7, qd = 8, rd = 15, sd = 16, td = {}, ud = {}, vd = {}, wd, xd = {
        3: {
            start: 3,
            Lc: 3
        },
        4: {
            start: 4,
            Lc: 5
        },
        5: {
            start: 4,
            Lc: 5
        },
        6: {
            start: 6,
            Lc: 7
        },
        7: {
            start: 6,
            Lc: 7
        },
        8: {
            start: 8,
            Lc: 9
        },
        9: {
            start: 8,
            Lc: 9
        },
        10: {
            start: 10,
            Lc: 10
        },
        11: {
            start: 11,
            Lc: 12
        },
        12: {
            start: 11,
            Lc: 12
        },
        13: {
            start: 11,
            Lc: 12
        },
        14: {
            start: 14,
            Lc: 15
        },
        15: {
            start: 14,
            Lc: 15
        },
        16: {
            start: 16,
            Lc: 17
        },
        17: {
            start: 16,
            Lc: 17
        },
        18: {
            start: 18,
            Lc: 19
        },
        19: {
            start: 18,
            Lc: 19
        },
        20: {
            start: 18,
            Lc: 19
        },
        21: {
            start: 18,
            Lc: 19
        }
    };
    function yd(a) {
        this.M = a;
        this.Vc = a.U.devicePixelRatio;
        this.b0 = xd
    }
    yd.prototype = {
        bC: function(a, b, c, e, f, g, i, k, m) {
            this.M.tN = {};
            var n = this;
            m || (m = 0);
            if (!(z.km(window.qh) ? window.Kp : window.Tt[f]) && 100 > m)
                setTimeout(function() {
                    n.bC(a, b, c, e, f, g, i, k, m + 1)
                }, 100);
            else {
                wd || (wd = k);
                var o = b.getContext("2d")
                  , q = b.parentNode;
                q.removeChild(b);
                o.clearRect(0, 0, g, g);
                q.appendChild(b);
                q = this.Vc;
                1 < q && !b._scale && (o.scale(q, q),
                b._scale = p);
                o.fillStyle = this.vM("#F5F3F0");
                window.La[f].bmapLandColor && (o.fillStyle = this.vM(window.La[f].bmapLandColor));
                q = b.style.width;
                b.style.width = "0px";
                b.style.width = q;
                o.fillRect(0, 0, g, g);
                if (a[0])
                    for (q = 0; q < a[0].length; q++) {
                        var v = a[0][q];
                        v[0] === pd && dd.drawPoly(v, o, f, g, this)
                    }
                17 <= this.M.ka() ? (n.NJ(a, o, f, g, i, c, e),
                b.jn = p) : setTimeout(function() {
                    if (!b.tG) {
                        n.NJ(a, o, f, g, i, c, e);
                        b.jn = p
                    }
                }, 1)
            }
        },
        NJ: function(a, b, c, e) {
            if (a[0])
                for (var f = 0; f < a[0].length; f++) {
                    var g = a[0][f]
                      , i = g[0];
                    i === od ? md.drawLink(g, b, c, e, this) : i === sd ? md.drawLink(g, b, c, e, this) : i === rd ? (dd.drawGaoqingRoadBorder(g, b, c, e, this),
                    dd.drawGaoqingRoadFill(g, b, c, e, this)) : 18 === i ? "off" !== window.La[c].bmapRoadarrowVisibility && ed.drawArrow(g, b, c, e, Math.pow(2, c - xd[c].Lc), this) : i === qd ? fd.drawHregion(g, b, c, e, this) : 19 === i && md.drawSingleTexture(g, b, c, e, this)
                }
        },
        MJ: function(a, b, c, e, f, g, i) {
            var k = this;
            i || (i = 0);
            !(z.km(window.qh) ? window.Kp : window.Tt[g]) && 100 > i ? setTimeout(function() {
                k.MJ(a, b, c, e, f, g, i + 1)
            }, 100) : (wd || (wd = b),
            a.PY = gd.parse(a, c, e, this, f))
        },
        hj: function(a, b, c, e) {
            var f = a + "-" + b + "-" + c;
            if (e)
                return td[f] || (td[f] = this.ng(a, b, c, e)),
                td[f];
            this.M.tN[f] = this.ng(a, b, c);
            return this.M.tN[f]
        },
        ng: function(a, b, c, e) {
            var f;
            f = e || window.bmap_baseFs;
            var e = z.km(window.qh) ? window.Kp : window.Tt[c]
              , g = f[2];
            if ("arrow" === b)
                return this.EY(g[2]);
            switch (b) {
            case "point":
                g = g[0];
                e = e[0] || {};
                break;
            case "pointText":
                g = g[1];
                e = e[1] || {};
                break;
            case "line":
                g = g[3];
                e = e[3] || {};
                break;
            case "polygon":
                g = g[4];
                e = e[4] || {};
                break;
            case "polygon3d":
                g = g[5],
                e = e[5] || {}
            }
            var i = []
              , c = f[1][c - 1][0][a];
            if (!c)
                return i;
            for (f = 0; f < c.length; f++) {
                var k = e[c[f]] || g[c[f]];
                if (k) {
                    switch (b) {
                    case "polygon":
                        k = this.NY(k, a);
                        break;
                    case "line":
                        k = this.JY(k, a);
                        break;
                    case "pointText":
                        k = this.LY(k, a);
                        break;
                    case "point":
                        k = this.KY(k, a);
                        break;
                    case "polygon3d":
                        k = this.MY(k, a)
                    }
                    k.Q4 = c[f];
                    i[i.length] = k
                }
            }
            return i
        },
        LY: function(a, b) {
            return {
                Ub: b,
                dK: this.ug(a[0]),
                UK: this.ug(a[1]),
                t1: this.ug(a[2]),
                fontSize: a[3],
                Rw: a[4],
                fontWeight: a[5],
                fontStyle: a[6],
                iV: a[7]
            }
        },
        KY: function(a, b) {
            return {
                Ub: b,
                Ix: a[0],
                h5: a[1],
                ue: a[2],
                uX: a[3],
                R3: a[4],
                iV: a[5],
                zoom: a[6]
            }
        },
        JY: function(a, b) {
            return {
                Ub: b,
                co: this.ug(a[0]),
                zw: this.ug(a[1]),
                borderWidth: a[2],
                $J: a[3],
                iU: a[4],
                WV: a[5],
                b3: a[6],
                c3: a[7],
                d3: a[8],
                u3: a[9],
                v3: a[10],
                jU: a[11],
                xo: a[12],
                kU: a[13],
                d2: a[14],
                t3: a[15],
                Z2: a[16],
                Q3: a[17],
                v4: a[18]
            }
        },
        NY: function(a, b) {
            return {
                Ub: b,
                zw: this.ug(a[0]),
                co: this.ug(a[1]),
                borderWidth: a[2],
                jU: a[3],
                kU: a[4],
                p5: a[5],
                Y2: a[6],
                U4: a[7],
                V4: this.ug(a[8])
            }
        },
        MY: function(a, b) {
            return {
                Ub: b,
                filter: a[0],
                JM: a[1],
                a3: a[2],
                borderWidth: a[3],
                co: this.ug(a[4]),
                XV: this.ug(a[5]),
                c2: this.ug(a[6]),
                h4: a[7]
            }
        },
        EY: function(a) {
            for (var b in a)
                return a = a[b],
                {
                    color: this.ug(a[0]),
                    uX: a[1],
                    ue: a[2]
                }
        },
        ug: function(a) {
            var b = a;
            if (vd[b])
                return vd[b];
            a >>>= 0;
            vd[b] = "rgba(" + (a & 255) + "," + (a >> 8 & 255) + "," + (a >> 16 & 255) + "," + (a >> 24 & 255) / 255 + ")";
            return vd[b]
        },
        vM: function(a) {
            a = a.replace("#", "");
            6 === a.length && (a += "ff");
            for (var b = "rgba(", c = 0; 8 > c; c += 2)
                b = 6 > c ? b + (parseInt(a.slice(c, c + 2), 16) + ",") : b + (parseInt(a.slice(c, c + 2), 16) / 255 + ")");
            return b
        },
        Nc: function(a, b) {
            var c;
            ud[a] || (c = a.toString(2),
            8 > c.length && (c = Array(8 - c.length + 1).join("0") + c),
            ud[a] = c);
            c = ud[a];
            return "1" === c[b - xd[b].start]
        },
        um: function(a, b, c) {
            var e = []
              , b = Math.pow(2, b - xd[b].Lc) / 100
              , f = a[0] * b
              , g = a[1] * b;
            e[e.length] = f;
            e[e.length] = c - g;
            for (var i = 2; i < a.length; i += 2)
                f += a[i] * b,
                g += a[i + 1] * b,
                e[e.length] = f,
                e[e.length] = c - g;
            return e
        },
        tK: function(a) {
            var b = a.length % wd.length
              , c = this.wW();
            return wd[b] + a + ".png?v=" + c.cF + "&udt=" + c.YE
        },
        wW: function() {
            if (this.pD)
                return this.pD;
            var a = "undefined" !== typeof MSV ? MSV.J3 : {};
            return this.pD = {
                cF: a.version ? a.version : "001",
                YE: a.G_ ? a.G_ : "20150621"
            }
        }
    };
    Q = z.lang.Zt;
    nd = 3;
    od = 4;
    pd = 7;
    qd = 8;
    rd = 15;
    sd = 16;
    function Lc(a, b, c) {
        c = c || {};
        this.M = a;
        this.Bv = b;
        this.Vc = b.JM;
        //xiaolin
        this.$a = {
            o_: "na",
            zIndex: 0,
            zN: c.tileUrls || {
                http: ["http://online0.map.bdimg.com/pvd/?qt=vtile", "http://online1.map.bdimg.com/pvd/?qt=vtile", "http://online2.map.bdimg.com/pvd/?qt=vtile", "http://online3.map.bdimg.com/pvd/?qt=vtile", "http://online4.map.bdimg.com/pvd/?qt=vtile"],
                https: ["https://ss0.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv/pvd/?qt=vtile", "https://ss1.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv/pvd/?qt=vtile", "https://ss2.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv/pvd/?qt=vtile", "https://ss3.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv/pvd/?qt=vtile", "https://ss0.bdstatic.com/8bo_dTSlQ1gBo1vgoIiO_jowehsv/pvd/?qt=vtile"]
            },
            oD: c.iconUrls || ["https://ss0.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv/sty/map_icons2x/", "https://ss1.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv/sty/map_icons2x/"],
            DE: p
        };
        //       this.$a = {
        //     o_: "na",
        //     zIndex: 0,
        //     originUrl:"http://online0.map.bdimg.com/pvd/?qt=vtile",
        //     zN: c.tileUrls || {
        //         http: ["http://localhost/baidu/getJson"],
        //         https: ["http://localhost/baidu/getJson"]
        //     },
        //     oD: c.iconUrls || ["https://ss0.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv/sty/map_icons2x/", "https://ss1.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv/sty/map_icons2x/"],
        //     DE: p
        // };
        this.XA = "";
        this.SR = {};
        var c = c.urlOpts || {
            styles: "pl",
            extdata: 1,
            textimg: 0,
            mesh3d: 0,
            limit: 30
        }, e;
        for (e in c)
            c.hasOwnProperty(e) && (this.XA = this.XA + "&" + e + "=" + c[e]);
        this.Ug = {};
        this.Fr = [];
        this.Ls = 0;
        this.ex = t;
        this.Zw = {};
        a = this.$a.o_;
        Yc[a] ? a = Yc[a] : (b = new Zc(a,l),
        a = Yc[a] = b);
        this.Bd = a;
        this.M.Bd = this.Bd
    }
    window.VectorIndoorTileLayer = "VectorIndoorTileLayer";
    fa = Lc.prototype;
    fa.xa = function() {
        var a = this.M
          , b = a.oh;
        if (!this.Rn) {
            var c = b.bq(this.$a.zIndex);
            c.style.WebkitTransform = "translate3d(0px, 0px, 0)";
            this.Rn = c
        }
        b.Hg.appendChild(this.Rn);
        b.o3 = c;
        if (this.$a.DE) {
            zd(this);
            var e = this;
            a.addEventListener("checkvectorclick", function(a) {
                var b;
                a: {
                    b = a.offsetX;
                    var c = a.offsetY
                      , k = e.Fr.PY;
                    if (k)
                        for (var m = 0; m < k.length; m++)
                            for (var n = k[m], o = 0; o < n.length; o++)
                                if (a = n[o],
                                !a.Fs && a.As && b > a.Pf && b < a.ei && c > a.Qf && c < a.fi) {
                                    b = a.As;
                                    b = {
                                        type: 9,
                                        name: a.name,
                                        uid: a.uid,
                                        point: {
                                            x: b.$d + b.width / 2,
                                            y: b.ae + 6
                                        }
                                    };
                                    break a
                                }
                    b = s
                }
                b && (a = new Q("onvectorclick"),
                a.k3 = b,
                a.hf = "base",
                this.dispatchEvent(a))
            })
        }
    }
    ;
    function zd(a) {
        var b = a.M
          , c = b.oh
          , e = a.Vc
          , f = b.Hb()
          , g = f.width
          , f = f.height
          , i = O("canvas");
        i.style.cssText = "position: absolute;left:0;top:0;width:" + g + "px;height:" + f + "px;z-index:2;";
        i.width = g * e;
        i.height = f * e;
        a.ix = i;
        a.Qo = i.getContext("2d");
        a.Qo.scale(e, e);
        a.Qo.textBaseline = "top";
        c.Hg.appendChild(i);
        b.BR = i
    }
    fa.cX = x("Bd");
    fa.update = function(a, b) {
        b = b || {};
        this.$E = b.$E;
        if (this.$a.DE && (b.jo && this.jo(),
        b.XZ)) {
            var c = this.Vc
              , e = this.M.Hb()
              , f = e.width
              , e = e.height
              , g = this.ix
              , i = g.style;
            i.width = f + "px";
            i.height = e + "px";
            g.width = f * c;
            g.height = e * c;
            this.Qo.scale(c, c);
            this.Qo.textBaseline = "top"
        }
        if (b.k5) {
            c = this.Rn;
            f = 0;
            for (e = c.childNodes.length; f < e; f++)
                c.childNodes[f].jn = t
        }
        this.ow = a;
        this.To(a)
    }
    ;
    fa.To = function(a) {
        this.Fr = [];
        var b = this.M
          , c = b.ka()
          , e = b.Pc.bi(b.pe)
          , f = this.Bd.dc(c)
          , e = [Math.round(-e.lng / f), Math.round(e.lat / f)]
          , f = this.Bd.Id(c)
          , g = b.ea.replace(/^TANGRAM_/, "")
          , i = this.Bd.gs(c)
          , b = this.M
          , k = -b.offsetY + b.height / 2
          , m = this.Rn;
        m.style.left = -b.offsetX + b.width / 2 + "px";
        m.style.top = k + "px";
        this.Ne ? this.Ne.length = 0 : this.Ne = [];
        b = 0;
        for (k = m.childNodes.length; b < k; b++) {
            var n = m.childNodes[b];
            n.Bq = t;
            this.Ne.push(n)
        }
        if (b = this.rm)
            for (var o in b)
                delete b[o];
        else
            this.rm = {};
        this.Oe ? this.Oe.length = 0 : this.Oe = [];
        b = 0;
        for (k = a.length; b < k; b++) {
            var n = a[b][0]
              , q = a[b][1];
            o = 0;
            for (var v = this.Ne.length; o < v; o++) {
                var w = this.Ne[o];
                if (w.id === g + "_" + n + "_" + q + "_" + i + "_" + c) {
                    w.Bq = p;
                    this.rm[w.id] = w;
                    break
                }
            }
        }
        b = 0;
        for (k = this.Ne.length; b < k; b++)
            w = this.Ne[b],
            w.Bq || (w.aB = s,
            delete w.aB,
            w.jn = t,
            this.Oe.push(w));
        o = [];
        v = f * this.Vc;
        b = 0;
        for (k = a.length; b < k; b++) {
            var n = a[b][0]
              , q = a[b][1]
              , w = n * f + e[0]
              , y = (-1 - q) * f + e[1]
              , A = g + "_" + n + "_" + q + "_" + i + "_" + c
              , B = this.rm[A]
              , C = s;
            if (B)
                C = B.style,
                C.left = w + "px",
                C.top = y + "px",
                C.width = f + "px",
                C.height = f + "px",
                B.jn ? B.PE && B.PE && this.Fr.push(B.PE) : (B.tG = p,
                B.aB = s,
                delete B.aB,
                o.push([n, q, B]));
            else {
                if (0 < this.Oe.length) {
                    var B = this.Oe.shift()
                      , F = B.getContext("2d");
                    B.getAttribute("width") !== v && (B._scale = t);
                    B.setAttribute("width", v);
                    B.setAttribute("height", v);
                    C = B.style;
                    C.width = f + "px";
                    C.height = f + "px";
                    F.clearRect(0, 0, v, v)
                } else
                    B = document.createElement("canvas"),
                    C = B.style,
                    C.position = "absolute",
                    this.$a.backgroundColor && (C.background = this.$a.backgroundColor),
                    C.width = f + "px",
                    C.height = f + "px",
                    B.setAttribute("width", v),
                    B.setAttribute("height", v),
                    m.appendChild(B);
                B.id = A;
                C.left = w + "px";
                C.top = y + "px";
                o.push([n, q, B])
            }
            B.style.visibility = ""
        }
        b = 0;
        for (k = this.Oe.length; b < k; b++)
            this.Oe[b].style.visibility = "hidden";
        if (0 === o.length) {
            Ad(this);
            a = this.M.ea.replace(/^TANGRAM_/, "");
            c = this.M.ka();
            e = this.Bd.gs(c);
            f = {};
            for (g = 0; g < this.ow.length; g++)
                i = this.ow[g],
                i = a + "_" + i[0] + "_" + i[1] + "_" + e + "_" + c,
                this.Ug[i] && (f[i] = this.Ug[i],
                this.$E && this.Bv.cC.bC(this.Ug[i].T_, this.Ug[i].m_, this.Ug[i].Ol, this.Ug[i].Am, this.Ug[i].OD, this.Bd.Id(this.Ug[i].OD), this.Bd.XC(this.Ug[i].OD), this.$a.oD));
            this.Ug = f
        } else {
            this.Ls = o.length;
            this.ex = t;
            c = this.Bd.gs(this.M.ka());
            for (e = 0; e < a.length; e++)
                a[e][3] = c;
            for (e = 0; e < o.length; e++)
                a = o[e][2],
                f = o[e][0],
                g = o[e][1],
                o[e][3] = c,
                a.jn = t,
                a.tG = t,
                Bd(this, f, g, c, a)
        }
    }
    ;
    function Bd(a, b, c, e, f) {
        var g = b + "_" + c + "_" + e
          , i = a.SR;
        if (i[g]) {
            if ("loading" === i[g].status)
                return
        } else
            i[g] = {
                status: "init",
                RM: 0
            };
        var k = a
          , m = k.M
          , n = []
          , n = "0" === D.Nt ? k.$a.zN.http : k.$a.zN.https
          , o = Math.abs(b + c) % n.length
          , q = "x=" + b + "&y=" + c + "&z=" + e
          , v = Cd(a.Bv)
          , w = v.cF
          , v = v.YE
          , y = "_" + (0 > b ? "_" : "") + (0 > c ? "$" : "") + parseInt(Math.abs(b) + "" + Math.abs(c) + "" + e, 10).toString(36)
          , q = q + a.XA + "v=" + w + "&udt=" + v + "&fn=window." + y
          , w = n[o] + "&" + q
          //xiaolin
         , w = n[o] + "&param=" + window.encodeURIComponent(Kb(q));
         //, w = n[o] + "/" + window.encodeURIComponent(Kb(q));

        window[y] = function(a) {
            clearTimeout(i[g].Ik);
            i[g] = s;
            if (a) {
                var n = m.ka(), o;
                a: {
                    for (o = 0; o < k.ow.length; o++) {
                        var q = k.ow[o];
                        if (q[0] === b && q[1] === c && q[3] === e) {
                            o = p;
                            break a
                        }
                    }
                    o = t
                }
                if (o !== t) {
                    o = new Q("updateindoor");
                    o.IndoorCanvas = [];
                    o.IndoorCanvas.push({
                        canvasDom: f,
                        data: a,
                        canvasID: f.id,
                        ratio: k.Vc
                    });
                    m.dispatchEvent(o);
                    if (m.U.uo) {
                        if (k.Ug[f.id] = {
                            T_: a,
                            m_: f,
                            Ol: b,
                            Am: c,
                            OD: n
                        },
                        k.Bv.cC.bC(a, f, b, c, n, k.Bd.Id(n), k.Bd.XC(n), k.$a.oD),
                        k.$a.DE) {
                            n = [];
                            n.n_ = [b, c, e];
                            if (a[0])
                                for (o = 0; o < a[0].length; o++)
                                    a[0][o][0] === nd && n.push({
                                        vL: a[0][o]
                                    });
                            if (a[2])
                                for (o = 0; o < a[2].length; o++)
                                    n.push({
                                        bY: a[2][o]
                                    });
                            f.PE = n;
                            k.Fr.push(n);
                            k.ex === t && k.Ls--;
                            (0 === k.Ls || k.ex === p) && Ad(k)
                        }
                    } else
                        k.Ls--,
                        (0 === k.Ls || k.ex === p) && Ad(k);
                    delete window[y]
                }
            }
        }
        ;
        pa(w);
        //xiaolin
        //改为异步方式处理数据
        // httpGetAsync(w,function(body){
        //     try{

        //         eval(JSON.parse(body).data)
        //     }catch{
        //         console.log(JSON.parse(body).data)
        //     }
        // })

        //改为异步请求
        i[g].status = "loading";
        k = a;
        i[g].Ik = setTimeout(function() {
            3 > i[g].RM ? (i[g].RM++,
            i[g].status = "init",
            Bd(k, b, c, e, f)) : i[g] = s
        }, 4E3)
    }
    function Ad(a) {
        if (a.ix) {
            var b = a.M;
            a.ix.style.left = -b.offsetX + "px";
            a.ix.style.top = -b.offsetY + "px";
            var c = new Q("updateindoorlabel");
            c.labelCanvasDom = b.BR;
            b.dispatchEvent(c);
            if (b.U.uo) {
                a.jo();
                var c = a.Bd
                  , e = b.ka()
                  , b = c.gs(b.ka());
                a.Bv.cC.MJ(a.Fr, a.$a.oD, a.Qo, c.Id(e), Math.pow(2, e - b), e)
            }
        }
    }
    fa.jo = function() {
        var a = this.M.Hb()
          , b = this.Vc;
        this.Qo.clearRect(0, 0, a.width * b, a.height * b)
    }
    ;
    fa.remove = function() {
        var a = this.M.oh;
        this.Rn && a.Hg.removeChild(this.Rn)
    }
    ;
    function Kc(a) {
        this.M = a.map;
        this.$e = [];
        this.or = {};
        this.JM = this.M.U.devicePixelRatio;
        this.cC = new yd(this.M);
        this.xa()
    }
    window.VectorIndoorTileMgr = "VectorIndoorTileMgr";
    fa = Kc.prototype;
    fa.xa = function() {
        var a = this
          , b = this.M;
        b.addEventListener("addtilelayer", function(b) {
            a.Me(b.target)
        });
        b.addEventListener("removetilelayer", function(b) {
            a.Tf(b.target)
        });
        setTimeout(function() {
            b.addEventListener("onmoveend", function(b) {
                "centerAndZoom" !== b.hz && a.update()
            });
            b.addEventListener("onmoving", function() {
                a.update()
            });
            b.addEventListener("onzoomend", function(b) {
                "centerAndZoom" !== b.hz && a.update({
                    jo: p
                })
            });
            b.addEventListener("centerandzoom", function() {
                a.update({
                    jo: p
                })
            });
            b.addEventListener("onupdatestyles", function() {
                a.update({
                    jo: p,
                    $E: p
                });
                a.M.pf(a.M.Bb());
                setTimeout(function() {
                    a.M.dispatchEvent(new Q("onvectordrawend"))
                }, 10)
            })
        }, 1);
        b.addEventListener("indoor_data_refresh", u());
        b.addEventListener("onresize", function() {
            a.update({
                XZ: p
            })
        });
        a.update()
    }
    ;
    fa.Me = function(a) {
        if (a instanceof Lc) {
            for (var b = 0; b < this.$e.length; b++)
                if (this.$e[b] === a)
                    return;
            this.$e.push(a);
            a.xa();
            this.M.loaded && this.update()
        }
    }
    ;
    fa.Tf = function(a) {
        if (a instanceof Lc) {
            for (var b = 0; b < this.$e.length; b++)
                if (this.$e[b] === a) {
                    this.$e.splice(b, 1);
                    break
                }
            a.remove()
        }
    }
    ;
    fa.KK = function(a) {
        var b = a.getName();
        if (this.or[b])
            return this.or[b];
        var c = this.M
          , e = c.ka()
          , f = c.fc
          , g = a.XC(e);
        c.ea.replace(/^TANGRAM_/, "");
        var i = Math.ceil(f.lng / g)
          , k = Math.ceil(f.lat / g)
          , a = a.Id(e)
          , m = [i, k, (f.lng / g - i) * a, (f.lat / g - k) * a]
          , e = m[0] - Math.ceil((c.width / 2 - m[2]) / a)
          , f = m[1] - Math.ceil((c.height / 2 - m[3]) / a)
          , g = m[0] + Math.ceil((c.width / 2 + m[2]) / a)
          , c = m[1] + Math.ceil((c.height / 2 + m[3]) / a);
        this.Be ? this.Be.length = 0 : this.Be = [];
        for (a = e; a < g; a++)
            for (e = f; e < c; e++)
                this.Be.push([a, e]);
        this.Be.sort(function(a) {
            return function(b, c) {
                return 0.4 * Math.abs(b[0] - a[0]) + 0.6 * Math.abs(b[1] - a[1]) - (0.4 * Math.abs(c[0] - a[0]) + 0.6 * Math.abs(c[1] - a[1]))
            }
        }([i, k]));
        this.or[b] = this.Be.slice(0);
        return this.or[b]
    }
    ;
    function Cd(a) {
        if (a.dF)
            return a.dF;
        a.dF = {
            cF: "001",
            YE: Sb("normal")
        };
        return a.dF
    }
    fa.update = function(a) {
        this.or = {};
        for (var b = 0; b < this.$e.length; b++) {
            var c = this.$e[b]
              , e = this.KK(c.Bd);
            c.update(e, a)
        }
    }
    ;
    function Dd(a, b, c) {
        this.jd = a;
        this.$e = b instanceof Mc ? [b] : b.slice(0);
        c = c || {};
        this.m = {
            r_: c.tips || "",
            KD: "",
            gc: c.minZoom || 4,
            pc: c.maxZoom || 18,
            i3: c.minZoom || 4,
            h3: c.maxZoom || 18,
            dy: 256,
            OE: c.textColor || "black",
            vC: c.errorImageUrl || "",
            fb: new hb(new J(-21364736,-16023552),new J(23855104,19431424)),
            Pc: c.projection || new S
        };
        1 <= this.$e.length && (this.$e[0].Tv = p);
        z.extend(this.m, c)
    }
    z.extend(Dd.prototype, {
        getName: x("jd"),
        ss: function() {
            return this.m.r_
        },
        H2: function() {
            return this.m.KD
        },
        bX: function() {
            return this.$e[0]
        },
        V2: x("$e"),
        Id: function() {
            return this.m.dy
        },
        aj: function() {
            return this.m.gc
        },
        Xh: function() {
            return this.m.pc
        },
        setMaxZoom: function(a) {
            this.m.pc = a
        },
        cm: function() {
            return this.m.OE
        },
        nk: function() {
            return this.m.Pc
        },
        A2: function() {
            return this.m.vC
        },
        Id: function() {
            return this.m.dy
        },
        dc: function(a) {
            return Math.pow(2, 18 - a)
        },
        PK: function(a) {
            return this.dc(a) * this.Id()
        }
    });
    var Ed = [D.url.proto + D.url.domain.TILE_BASE_URLS[0] + "/it/", D.url.proto + D.url.domain.TILE_BASE_URLS[1] + "/it/", D.url.proto + D.url.domain.TILE_BASE_URLS[2] + "/it/", D.url.proto + D.url.domain.TILE_BASE_URLS[3] + "/it/", D.url.proto + D.url.domain.TILE_BASE_URLS[4] + "/it/"]
      , Fd = [D.url.proto + D.url.domain.TILE_ONLINE_URLS[0] + "/tile/", D.url.proto + D.url.domain.TILE_ONLINE_URLS[1] + "/tile/", D.url.proto + D.url.domain.TILE_ONLINE_URLS[2] + "/tile/", D.url.proto + D.url.domain.TILE_ONLINE_URLS[3] + "/tile/", D.url.proto + D.url.domain.TILE_ONLINE_URLS[4] + "/tile/"]
      , Gd = {
        dark: "dl",
        light: "ll",
        normal: "pl"
    }
      , Hd = new Mc;
    Hd.RZ = p;
    Hd.getTilesUrl = function(a, b, c) {
        var e = a.x
          , a = a.y
          , f = Sb("normal")
          , g = 1
          , c = Gd['dark'];
        this.map.Yw() && (g = 2);
        e = this.map.oh.Uv(e, b).Ol;
        var orginUrl= (Fd[Math.abs(e + a) % Fd.length] + "?qt=vtile&x=" + (e + "").replace(/-/gi, "M") + "&y=" + (a + "").replace(/-/gi, "M") + "&z=" + b + "&styles=" + c + "&scaler=" + g + (6 == z.ga.ma ? "&color_dep=32&colors=50" : "") + "&udt=" + f).replace(/-(\d+)/gi, "M$1")
        tdir = bmapcfg.tiles_dir.length>0?bmapcfg.tiles_dir:bmapcfg.home + "maptile";
        //xiaolin
        // httpGetAsync("https://localhost/baidu/isfile/"+e+"/"+a+"/"+b+"/"+c,function(){
            
        // })
       // return tdir + "/" + b + "/" + a+ "/" + e + bmapcfg.imgext; // 使用本地的瓦片
       // return "https://localhost/baidu/isfile/"+e+"/"+a+"/"+b+"/"+c;
       return "/assets/maptile/back.png";
       }
    ;
    var Pa = new Dd("\u5730\u56fe",Hd,{
        tips: "\u663e\u793a\u666e\u901a\u5730\u56fe",
        maxZoom: 19
    })
      , Id = new Mc;
    Id.yN = [D.url.proto + D.url.domain.TIlE_PERSPECT_URLS[0] + "/resource/mappic/", D.url.proto + D.url.domain.TIlE_PERSPECT_URLS[1] + "/resource/mappic/", D.url.proto + D.url.domain.TIlE_PERSPECT_URLS[2] + "/resource/mappic/", D.url.proto + D.url.domain.TIlE_PERSPECT_URLS[3] + "/resource/mappic/"];
    Id.getTilesUrl = function(a, b) {
        var c = a.x
          , e = a.y
          , f = 256 * Math.pow(2, 20 - b)
          , e = Math.round((9998336 - f * e) / f) - 1;
          console.log('in empty tilesUrl')
        return url = this.yN[Math.abs(c + e) % this.yN.length] + this.map.Vb + "/" + this.map.$v + "/3/lv" + (21 - b) + "/" + c + "," + e + ".jpg"
    }
    ;
    var Sa = new Dd("\u4e09\u7ef4",Id,{
        tips: "\u663e\u793a\u4e09\u7ef4\u5730\u56fe",
        minZoom: 15,
        maxZoom: 20,
        textColor: "white",
        projection: new jb
    });
    Sa.dc = function(a) {
        return Math.pow(2, 20 - a)
    }
    ;
    Sa.ik = function(a) {
        if (!a)
            return "";
        var b = H.vB, c;
        for (c in b)
            if (-1 < a.search(c))
                return b[c].Dx;
        return ""
    }
    ;
    Sa.mK = function(a) {
        return {
            bj: 2,
            gz: 1,
            sz: 14,
            sh: 4
        }[a]
    }
    ;
    var Jd = new Mc({
        Tv: p
    });
    Jd.getTilesUrl = function(a, b) {
        var c = a.x
          , e = a.y;
        return (Ed[Math.abs(c + e) % Ed.length] + "u=x=" + c + ";y=" + e + ";z=" + b + ";v=009;type=sate&fm=46&udt=" + Sb("satellite")).replace(/-(\d+)/gi, "M$1")
    }
    ;
    var ab = new Dd("\u536b\u661f",Jd,{
        tips: "\u663e\u793a\u536b\u661f\u5f71\u50cf",
        minZoom: 4,
        maxZoom: 19,
        textColor: "white"
    })
      , Kd = new Mc({
        transparentPng: p
    });
    Kd.getTilesUrl = function(a, b) {
        var c = a.x
          , e = a.y
          , f = Sb("satelliteStreet");
        return (Fd[Math.abs(c + e) % Fd.length] + "?qt=vtile&x=" + (c + "").replace(/-/gi, "M") + "&y=" + (e + "").replace(/-/gi, "M") + "&z=" + b + "&styles=sl" + (6 == z.ga.ma ? "&color_dep=32&colors=50" : "") + "&udt=" + f).replace(/-(\d+)/gi, "M$1")
    }
    ;
    var Va = new Dd("\u6df7\u5408",[Jd, Kd],{
        tips: "\u663e\u793a\u5e26\u6709\u8857\u9053\u7684\u536b\u661f\u5f71\u50cf",
        labelText: "\u8def\u7f51",
        minZoom: 4,
        maxZoom: 19,
        textColor: "white"
    });
    var Ld = 1
      , W = {};
    window.f0 = W;
    function X(a, b) {
        z.lang.Ga.call(this);
        this.yd = {};
        this.Em(a);
        b = b || {};
        b.pa = b.renderOptions || {};
        this.m = {
            pa: {
                Oa: b.pa.panel || s,
                map: b.pa.map || s,
                Sg: b.pa.autoViewport || p,
                gt: b.pa.selectFirstResult,
                ys: b.pa.highlightMode,
                Wb: b.pa.enableDragging || t
            },
            Vs: b.onSearchComplete || u(),
            lM: b.onMarkersSet || u(),
            kM: b.onInfoHtmlSet || u(),
            nM: b.onResultsHtmlSet || u(),
            jM: b.onGetBusListComplete || u(),
            iM: b.onGetBusLineComplete || u(),
            gM: b.onBusListHtmlSet || u(),
            fM: b.onBusLineHtmlSet || u(),
            XD: b.onPolylinesSet || u(),
            bp: b.reqFrom || ""
        };
        this.m.pa.Sg = "undefined" != typeof b && "undefined" != typeof b.renderOptions && "undefined" != typeof b.renderOptions.autoViewport ? b.renderOptions.autoViewport : p;
        this.m.pa.Oa = z.Ec(this.m.pa.Oa)
    }
    z.wa(X, z.lang.Ga);
    z.extend(X.prototype, {
        getResults: function() {
            return this.Gc ? this.yi : this.la
        },
        enableAutoViewport: function() {
            this.m.pa.Sg = p
        },
        disableAutoViewport: function() {
            this.m.pa.Sg = t
        },
        Em: function(a) {
            a && (this.yd.src = a)
        },
        ot: function(a) {
            this.m.Vs = a || u()
        },
        setMarkersSetCallback: function(a) {
            this.m.lM = a || u()
        },
        setPolylinesSetCallback: function(a) {
            this.m.XD = a || u()
        },
        setInfoHtmlSetCallback: function(a) {
            this.m.kM = a || u()
        },
        setResultsHtmlSetCallback: function(a) {
            this.m.nM = a || u()
        },
        am: x("Ke")
    });
    var Md = {
        GF: D.Cd,
        nb: function(a, b, c, e, f) {
            this.YY(b);
            var g = (1E5 * Math.random()).toFixed(0);
            D._rd["_cbk" + g] = function(b) {
                b.result && b.result.error && 202 === b.result.error ? alert("\u8be5AK\u56e0\u4e3a\u6076\u610f\u884c\u4e3a\u5df2\u7ecf\u88ab\u7ba1\u7406\u5458\u5c01\u7981\uff01") : (c = c || {},
                a && a(b, c),
                delete D._rd["_cbk" + g])
            }
            ;
            e = e || "";
            b = c && c.K_ ? Gb(b, encodeURI) : Gb(b, encodeURIComponent);
            this.GF = c && c.WJ ? c.PM ? c.PM : D.Uo : D.Cd;
            e = this.GF + e + "?" + b + "&ie=utf-8&oue=1&fromproduct=jsapi";
            f || (e += "&res=api");
            e = e + ("&callback=BMap._rd._cbk" + g) + ("&ak=" + qa);
            pa(e)
        },
        YY: function(a) {
            if (a.qt) {
                var b = "";
                switch (a.qt) {
                case "bt":
                    b = "z_qt|bt";
                    break;
                case "nav":
                    b = "z_qt|nav";
                    break;
                case "walk":
                    b = "z_qt|walk";
                    break;
                case "bse":
                    b = "z_qt|bse";
                    break;
                case "nse":
                    b = "z_qt|nse";
                    break;
                case "drag":
                    b = "z_qt|drag"
                }
                "" !== b && D.alog("cus.fire", "count", b)
            }
        }
    };
    window.t0 = Md;
    D._rd = {};
    var db = {};
    window.s0 = db;
    db.LM = function(a) {
        a = a.replace(/<\/?[^>]*>/g, "");
        return a = a.replace(/[ | ]* /g, " ")
    }
    ;
    db.FY = function(a) {
        return a.replace(/([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0|[1-9]\d*),([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0|[1-9]\d*)(,)/g, "$1,$2;")
    }
    ;
    db.GY = function(a, b) {
        return a.replace(RegExp("(((-?\\d+)(\\.\\d+)?),((-?\\d+)(\\.\\d+)?);)(((-?\\d+)(\\.\\d+)?),((-?\\d+)(\\.\\d+)?);){" + b + "}", "ig"), "$1")
    }
    ;
    var Nd = 2
      , Od = 6
      , Pd = 8
      , Qd = 2
      , Rd = 3
      , Sd = 6
      , Td = 0
      , Ud = "bt"
      , Vd = "nav"
      , Wd = "walk"
      , Xd = "bl"
      , Yd = "bsl"
      , Zd = "ride"
      , $d = 15
      , ae = 18;
    D.I = window.Instance = z.lang.Mc;
    function be(a, b, c) {
        z.lang.Ga.call(this);
        if (a) {
            this.Ya = "object" == typeof a ? a : z.Ec(a);
            this.page = 1;
            this.Jd = 100;
            this.WI = "pg";
            this.Sf = 4;
            this.eJ = b;
            this.update = p;
            a = {
                page: 1,
                a5: 100,
                Jd: 100,
                Sf: 4,
                WI: "pg",
                update: p
            };
            c || (c = a);
            for (var e in c)
                "undefined" != typeof c[e] && (this[e] = c[e]);
            this.za()
        }
    }
    z.extend(be.prototype, {
        za: function() {
            this.xa()
        },
        xa: function() {
            this.yU();
            this.Ya.innerHTML = this.XU()
        },
        yU: function() {
            isNaN(parseInt(this.page)) && (this.page = 1);
            isNaN(parseInt(this.Jd)) && (this.Jd = 1);
            1 > this.page && (this.page = 1);
            1 > this.Jd && (this.Jd = 1);
            this.page > this.Jd && (this.page = this.Jd);
            this.page = parseInt(this.page);
            this.Jd = parseInt(this.Jd)
        },
        M2: function() {
            location.search.match(RegExp("[?&]?" + this.WI + "=([^&]*)[&$]?", "gi"));
            this.page = RegExp.$1
        },
        XU: function() {
            var a = []
              , b = this.page - 1
              , c = this.page + 1;
            a.push('<p style="margin:0;padding:0;white-space:nowrap">');
            if (!(1 > b)) {
                if (this.page >= this.Sf) {
                    var e;
                    a.push('<span style="margin-right:3px"><a style="color:#7777cc" href="javascript:void(0)" onclick="{temp1}">\u9996\u9875</a></span>'.replace("{temp1}", "BMap.I('" + this.ea + "').toPage(1);"))
                }
                a.push('<span style="margin-right:3px"><a style="color:#7777cc" href="javascript:void(0)" onclick="{temp2}">\u4e0a\u4e00\u9875</a></span>'.replace("{temp2}", "BMap.I('" + this.ea + "').toPage(" + b + ");"))
            }
            if (this.page < this.Sf)
                e = 0 == this.page % this.Sf ? this.page - this.Sf - 1 : this.page - this.page % this.Sf + 1,
                b = e + this.Sf - 1;
            else {
                e = Math.floor(this.Sf / 2);
                var f = this.Sf % 2 - 1
                  , b = this.Jd > this.page + e ? this.page + e : this.Jd;
                e = this.page - e - f
            }
            this.page > this.Jd - this.Sf && this.page >= this.Sf && (e = this.Jd - this.Sf + 1,
            b = this.Jd);
            for (f = e; f <= b; f++)
                0 < f && (f == this.page ? a.push('<span style="margin-right:3px">' + f + "</span>") : 1 <= f && f <= this.Jd && (e = '<span><a style="color:#7777cc;margin-right:3px" href="javascript:void(0)" onclick="{temp3}">[' + f + "]</a></span>",
                a.push(e.replace("{temp3}", "BMap.I('" + this.ea + "').toPage(" + f + ");"))));
            c > this.Jd || a.push('<span><a style="color:#7777cc" href="javascript:void(0)" onclick="{temp4}">\u4e0b\u4e00\u9875</a></span>'.replace("{temp4}", "BMap.I('" + this.ea + "').toPage(" + c + ");"));
            a.push("</p>");
            return a.join("")
        },
        toPage: function(a) {
            a = a ? a : 1;
            "function" == typeof this.eJ && (this.eJ(a),
            this.page = a);
            this.update && this.za()
        }
    });
    function fb(a, b) {
        X.call(this, a, b);
        b = b || {};
        b.renderOptions = b.renderOptions || {};
        this.kp(b.pageCapacity);
        "undefined" != typeof b.renderOptions.selectFirstResult && !b.renderOptions.selectFirstResult ? this.VB() : this.nC();
        this.Ba = [];
        this.sf = [];
        this.ob = -1;
        this.Ra = [];
        var c = this;
        K.load("local", function() {
            c.Ny()
        }, p)
    }
    z.wa(fb, X, "LocalSearch");
    fb.Dp = 10;
    fb.o0 = 1;
    fb.Um = 100;
    fb.wF = 2E3;
    fb.EF = 1E5;
    z.extend(fb.prototype, {
        search: function(a, b) {
            this.Ra.push({
                method: "search",
                arguments: [a, b]
            })
        },
        Bm: function(a, b, c) {
            this.Ra.push({
                method: "searchInBounds",
                arguments: [a, b, c]
            })
        },
        hp: function(a, b, c, e) {
            this.Ra.push({
                method: "searchNearby",
                arguments: [a, b, c, e]
            })
        },
        Pe: function() {
            delete this.Ma;
            delete this.Ke;
            delete this.la;
            delete this.ya;
            this.ob = -1;
            this.Xa();
            this.m.pa.Oa && (this.m.pa.Oa.innerHTML = "")
        },
        dm: u(),
        nC: function() {
            this.m.pa.gt = p
        },
        VB: function() {
            this.m.pa.gt = t
        },
        kp: function(a) {
            this.m.vk = "number" == typeof a && !isNaN(a) ? 1 > a ? fb.Dp : a > fb.Um ? fb.Dp : a : fb.Dp
        },
        kf: function() {
            return this.m.vk
        },
        toString: ea("LocalSearch")
    });
    var ce = fb.prototype;
    U(ce, {
        clearResults: ce.Pe,
        setPageCapacity: ce.kp,
        getPageCapacity: ce.kf,
        gotoPage: ce.dm,
        searchNearby: ce.hp,
        searchInBounds: ce.Bm,
        search: ce.search,
        enableFirstResultSelection: ce.nC,
        disableFirstResultSelection: ce.VB
    });
    function de(a, b) {
        X.call(this, a, b)
    }
    z.wa(de, X, "BaseRoute");
    z.extend(de.prototype, {
        Pe: u()
    });
    function ee(a, b) {
        X.call(this, a, b);
        b = b || {};
        this.nt(b.policy);
        this.cN(b.intercityPolicy);
        this.lN(b.transitTypePolicy);
        this.kp(b.pageCapacity);
        this.Eb = Ud;
        this.Jp = Ld;
        this.Ba = [];
        this.ob = -1;
        this.m.mn = b.enableTraffic || t;
        this.Ra = [];
        var c = this;
        K.load("route", function() {
            c.Qd()
        })
    }
    ee.Um = 100;
    ee.vO = [0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1];
    ee.wO = [0, 3, 4, 0, 0, 0, 5];
    z.wa(ee, de, "TransitRoute");
    z.extend(ee.prototype, {
        nt: function(a) {
            this.m.ge = 0 <= a && 5 >= a ? a : 0
        },
        cN: function(a) {
            this.m.jm = 0 <= a && 2 >= a ? a : 0
        },
        lN: function(a) {
            this.m.Km = 0 <= a && 2 >= a ? a : 0
        },
        Pz: function(a, b) {
            this.Ra.push({
                method: "_internalSearch",
                arguments: [a, b]
            })
        },
        search: function(a, b) {
            this.Ra.push({
                method: "search",
                arguments: [a, b]
            })
        },
        kp: function(a) {
            if ("string" === typeof a && (a = parseInt(a, 10),
            isNaN(a))) {
                this.m.vk = ee.Um;
                return
            }
            this.m.vk = "number" !== typeof a ? ee.Um : 1 <= a && a <= ee.Um ? Math.round(a) : ee.Um
        },
        toString: ea("TransitRoute"),
        e1: function(a) {
            return a.replace(/\(.*\)/, "")
        }
    });
    var fe = ee.prototype;
    U(fe, {
        _internalSearch: fe.Pz
    });
    function ge(a, b) {
        X.call(this, a, b);
        this.Ba = [];
        this.ob = -1;
        this.Ra = [];
        var c = this
          , e = this.m.pa;
        1 !== e.ys && 2 !== e.ys && (e.ys = 1);
        this.yu = this.m.pa.Wb ? p : t;
        K.load("route", function() {
            c.Qd()
        });
        this.wD && this.wD()
    }
    ge.KO = " \u73af\u5c9b \u65e0\u5c5e\u6027\u9053\u8def \u4e3b\u8def \u9ad8\u901f\u8fde\u63a5\u8def \u4ea4\u53c9\u70b9\u5185\u8def\u6bb5 \u8fde\u63a5\u9053\u8def \u505c\u8f66\u573a\u5185\u90e8\u9053\u8def \u670d\u52a1\u533a\u5185\u90e8\u9053\u8def \u6865 \u6b65\u884c\u8857 \u8f85\u8def \u531d\u9053 \u5168\u5c01\u95ed\u9053\u8def \u672a\u5b9a\u4e49\u4ea4\u901a\u533a\u57df POI\u8fde\u63a5\u8def \u96a7\u9053 \u6b65\u884c\u9053 \u516c\u4ea4\u4e13\u7528\u9053 \u63d0\u524d\u53f3\u8f6c\u9053".split(" ");
    z.wa(ge, de, "DWRoute");
    z.extend(ge.prototype, {
        search: function(a, b, c) {
            this.Ra.push({
                method: "search",
                arguments: [a, b, c]
            })
        }
    });
    function he(a, b) {
        ge.call(this, a, b);
        b = b || {};
        this.m.mn = b.enableTraffic || t;
        this.nt(b.policy);
        this.Eb = Vd;
        this.Jp = Rd
    }
    z.wa(he, ge, "DrivingRoute");
    he.prototype.nt = function(a) {
        this.m.ge = 0 <= a && 5 >= a ? a : 0
    }
    ;
    function ie(a, b) {
        ge.call(this, a, b);
        this.Eb = Wd;
        this.Jp = Qd;
        this.yu = t
    }
    z.wa(ie, ge, "WalkingRoute");
    function je(a, b) {
        ge.call(this, a, b);
        this.Eb = Zd;
        this.Jp = Sd;
        this.yu = t
    }
    z.wa(je, ge, "RidingRoute");
    function ke(a, b) {
        z.lang.Ga.call(this);
        this.Of = [];
        this.wk = [];
        this.m = b;
        this.mj = a;
        this.map = this.m.pa.map || s;
        this.XM = this.m.XM;
        this.Cb = s;
        this.ck = 0;
        this.KE = "";
        this.gf = 1;
        this.uC = "";
        this.cp = [0, 0, 0, 0, 0, 0, 0];
        this.IL = [];
        this.Dr = [1, 1, 1, 1, 1, 1, 1];
        this.GN = [1, 1, 1, 1, 1, 1, 1];
        this.dp = [0, 0, 0, 0, 0, 0, 0];
        this.zm = [0, 0, 0, 0, 0, 0, 0];
        this.Kb = [{
            B: "",
            Dd: 0,
            Lm: 0,
            x: 0,
            y: 0,
            ra: -1
        }, {
            B: "",
            Dd: 0,
            Lm: 0,
            x: 0,
            y: 0,
            ra: -1
        }, {
            B: "",
            Dd: 0,
            Lm: 0,
            x: 0,
            y: 0,
            ra: -1
        }, {
            B: "",
            Dd: 0,
            Lm: 0,
            x: 0,
            y: 0,
            ra: -1
        }, {
            B: "",
            Dd: 0,
            Lm: 0,
            x: 0,
            y: 0,
            ra: -1
        }, {
            B: "",
            Dd: 0,
            Lm: 0,
            x: 0,
            y: 0,
            ra: -1
        }, {
            B: "",
            Dd: 0,
            Lm: 0,
            x: 0,
            y: 0,
            ra: -1
        }];
        this.Qh = -1;
        this.It = [];
        this.WE = [];
        K.load("route", u())
    }
    z.lang.wa(ke, z.lang.Ga, "RouteAddr");
    var le = navigator.userAgent;
    /ipad|iphone|ipod|iph/i.test(le);
    var ne = /android/i.test(le);
    function oe(a) {
        this.Te = a || {}
    }
    z.extend(oe.prototype, {
        WM: function(a, b, c) {
            var e = this;
            K.load("route", function() {
                e.Qd(a, b, c)
            })
        }
    });
    function pe(a) {
        this.m = {};
        z.extend(this.m, a);
        this.Ra = [];
        var b = this;
        K.load("othersearch", function() {
            b.Qd()
        })
    }
    z.wa(pe, z.lang.Ga, "Geocoder");
    z.extend(pe.prototype, {
        $l: function(a, b, c) {
            this.Ra.push({
                method: "getPoint",
                arguments: [a, b, c]
            })
        },
        Yl: function(a, b, c) {
            this.Ra.push({
                method: "getLocation",
                arguments: [a, b, c]
            })
        },
        toString: ea("Geocoder")
    });
    var qe = pe.prototype;
    U(qe, {
        getPoint: qe.$l,
        getLocation: qe.Yl
    });
    function Geolocation(a) {
        a = a || {};
        this.U = {
            timeout: a.timeout || 1E4,
            maximumAge: a.maximumAge || 6E5,
            enableHighAccuracy: a.enableHighAccuracy || t,
            si: a.SDKLocation || t
        };
        this.ne = [];
        var b = this;
        K.load("othersearch", function() {
            for (var a = 0, e; e = b.ne[a]; a++)
                b[e.method].apply(b, e.arguments)
        })
    }
    z.extend(Geolocation.prototype, {
        getCurrentPosition: function(a, b) {
            this.ne.push({
                method: "getCurrentPosition",
                arguments: arguments
            })
        },
        getStatus: function() {
            return Nd
        },
        enableSDKLocation: function() {
            I() && (this.U.si = p)
        },
        disableSDKLocation: function() {
            this.U.si = t
        }
    });
    function ue(a) {
        a = a || {};
        a.pa = a.renderOptions || {};
        this.m = {
            pa: {
                map: a.pa.map || s
            }
        };
        this.Ra = [];
        var b = this;
        K.load("othersearch", function() {
            b.Qd()
        })
    }
    z.wa(ue, z.lang.Ga, "LocalCity");
    z.extend(ue.prototype, {
        get: function(a) {
            this.Ra.push({
                method: "get",
                arguments: [a]
            })
        },
        toString: ea("LocalCity")
    });
    function ve() {
        this.Ra = [];
        var a = this;
        K.load("othersearch", function() {
            a.Qd()
        })
    }
    z.wa(ve, z.lang.Ga, "Boundary");
    z.extend(ve.prototype, {
        get: function(a, b) {
            this.Ra.push({
                method: "get",
                arguments: [a, b]
            })
        },
        toString: ea("Boundary")
    });
    function we(a, b) {
        X.call(this, a, b);
        this.HO = Xd;
        this.JO = $d;
        this.GO = Yd;
        this.IO = ae;
        this.Ra = [];
        var c = this;
        K.load("buslinesearch", function() {
            c.Qd()
        })
    }
    we.Mu = H.sa + "iw_plus.gif";
    we.AR = H.sa + "iw_minus.gif";
    we.rT = H.sa + "stop_icon.png";
    z.wa(we, X);
    z.extend(we.prototype, {
        getBusList: function(a) {
            this.Ra.push({
                method: "getBusList",
                arguments: [a]
            })
        },
        getBusLine: function(a) {
            this.Ra.push({
                method: "getBusLine",
                arguments: [a]
            })
        },
        setGetBusListCompleteCallback: function(a) {
            this.m.jM = a || u()
        },
        setGetBusLineCompleteCallback: function(a) {
            this.m.iM = a || u()
        },
        setBusListHtmlSetCallback: function(a) {
            this.m.gM = a || u()
        },
        setBusLineHtmlSetCallback: function(a) {
            this.m.fM = a || u()
        },
        setPolylinesSetCallback: function(a) {
            this.m.XD = a || u()
        }
    });
    function xe(a) {
        X.call(this, a);
        a = a || {};
        this.$a = {
            input: a.input || s,
            oB: a.baseDom || s,
            types: a.types || [],
            Vs: a.onSearchComplete || u()
        };
        this.yd.src = a.location || "\u5168\u56fd";
        this.Pi = "";
        this.gg = s;
        this.dH = "";
        this.Fi();
        Ta(Ka);
        var b = this;
        K.load("autocomplete", function() {
            b.Qd()
        })
    }
    z.wa(xe, X, "Autocomplete");
    z.extend(xe.prototype, {
        Fi: u(),
        show: u(),
        aa: u(),
        AE: function(a) {
            this.$a.types = a
        },
        Em: function(a) {
            this.yd.src = a
        },
        search: ca("Pi"),
        Px: ca("dH"),
        ot: function(a) {
            this.$a.Vs = a
        }
    });
    var Wa;
    function Ra(a, b) {
        function c() {
            f.m.visible ? ("inter" === f.Ie && f.m.haveBreakId && f.m.indoorExitControl === p ? z.R.show(f.Iz) : z.R.aa(f.Iz),
            this.m.closeControl && this.wf && this.M && this.M.Ua() === this.P ? z.R.show(f.wf) : z.R.aa(f.wf),
            this.m.forceCloseControl && z.R.show(f.wf)) : (z.R.aa(f.wf),
            z.R.aa(f.Iz))
        }
        this.P = "string" == typeof a ? z.da(a) : a;
        this.ea = ye++;
        this.m = {
            enableScrollWheelZoom: p,
            panoramaRenderer: "flash",
            swfSrc: D.Yh("main_domain_nocdn", "res/swf/") + "APILoader.swf",
            visible: p,
            indoorExitControl: p,
            indoorFloorControl: t,
            linksControl: p,
            clickOnRoad: p,
            navigationControl: p,
            closeControl: p,
            indoorSceneSwitchControl: p,
            albumsControl: t,
            albumsControlOptions: {},
            copyrightControlOptions: {},
            forceCloseControl: t,
            haveBreakId: t
        };
        var b = b || {}, e;
        for (e in b)
            this.m[e] = b[e];
        b.closeControl === p && (this.m.forceCloseControl = p);
        b.useWebGL === t && Qa(t);
        this.Ha = {
            heading: 0,
            pitch: 0
        };
        this.yn = [];
        this.Lb = this.bb = s;
        this.Rj = this.wq();
        this.Ba = [];
        this.Kc = 1;
        this.Ie = this.ZR = this.Vk = "";
        this.He = {};
        this.If = s;
        this.Lg = [];
        this.Oq = [];
        "cvsRender" == this.Rj || Qa() ? (this.Jj = 90,
        this.Lj = -90) : "cssRender" == this.Rj && (this.Jj = 45,
        this.Lj = -45);
        this.Sq = t;
        var f = this;
        this.zn = function() {
            this.Rj === "flashRender" ? K.load("panoramaflash", function() {
                f.Fi()
            }, p) : K.load("panorama", function() {
                f.jb()
            }, p);
            b.hf == "api" ? Ta(Ga) : Ta(Ha);
            this.zn = u()
        }
        ;
        this.m.LR !== p && (this.zn(),
        D.Qp("cus.fire", "count", "z_loadpanoramacount"));
        this.CS(this.P);
        this.addEventListener("id_changed", function() {
            Ta(Fa, {
                from: b.hf
            })
        });
        this.UO();
        this.addEventListener("indoorexit_options_changed", c);
        this.addEventListener("scene_type_changed", c);
        this.addEventListener("onclose_options_changed", c);
        this.addEventListener("onvisible_changed", c)
    }
    var ze = 4
      , Ae = 1
      , ye = 0;
    z.lang.wa(Ra, z.lang.Ga, "Panorama");
    z.extend(Ra.prototype, {
        UO: function() {
            var a = this
              , b = this.wf = O("div");
            b.className = "pano_close";
            b.style.cssText = "z-index: 1201;display: none";
            b.title = "\u9000\u51fa\u5168\u666f";
            b.onclick = function() {
                a.aa()
            }
            ;
            this.P.appendChild(b);
            var c = this.Iz = O("a");
            c.className = "pano_pc_indoor_exit";
            c.style.cssText = "z-index: 1201;display: none";
            c.innerHTML = '<span style="float:right;margin-right:12px;">\u51fa\u53e3</span>';
            c.title = "\u9000\u51fa\u5ba4\u5185\u666f";
            c.onclick = function() {
                a.wo()
            }
            ;
            this.P.appendChild(c);
            window.ActiveXObject && !document.addEventListener && (b.style.backgroundColor = "rgb(37,37,37)",
            c.style.backgroundColor = "rgb(37,37,37)")
        },
        wo: u(),
        CS: function(a) {
            var b, c;
            b = a.style;
            c = Ya(a).position;
            "absolute" != c && "relative" != c && (b.position = "relative",
            b.zIndex = 0);
            if ("absolute" === c || "relative" === c)
                if (a = Ya(a).zIndex,
                !a || "auto" === a)
                    b.zIndex = 0
        },
        DW: x("yn"),
        Xb: x("bb"),
        dX: x("vv"),
        kN: x("vv"),
        ja: x("Lb"),
        Ia: x("Ha"),
        ka: x("Kc"),
        $i: x("Vk"),
        O2: function() {
            return this.$0 || []
        },
        J2: x("ZR"),
        rs: x("Ie"),
        Rx: function(a) {
            a !== this.Ie && (this.Ie = a,
            this.dispatchEvent(new Q("onscene_type_changed")))
        },
        Cc: function(a, b, c) {
            "object" === typeof b && (c = b,
            b = l);
            a != this.bb && (this.fl = this.bb,
            this.gl = this.Lb,
            this.bb = a,
            this.Ie = b || "street",
            this.Lb = s,
            c && c.pov && this.od(c.pov))
        },
        ua: function(a) {
            a.oc(this.Lb) || (this.fl = this.bb,
            this.gl = this.Lb,
            this.Lb = a,
            this.bb = s)
        },
        od: function(a) {
            a && (this.Ha = a,
            a = this.Ha.pitch,
            a > this.Jj ? a = this.Jj : a < this.Lj && (a = this.Lj),
            this.Sq = p,
            this.Ha.pitch = a)
        },
        MZ: function(a, b) {
            this.Lj = 0 <= a ? 0 : a;
            this.Jj = 0 >= b ? 0 : b
        },
        Qc: function(a) {
            a != this.Kc && (a > ze && (a = ze),
            a < Ae && (a = Ae),
            a != this.Kc && (this.Kc = a),
            "cssRender" === this.Rj && this.od(this.Ha))
        },
        KA: function() {
            if (this.M)
                for (var a = this.M.Mw(), b = 0; b < a.length; b++)
                    (a[b]instanceof V || a[b]instanceof uc) && a[b].point && this.Ba.push(a[b])
        },
        xE: ca("M"),
        mt: function(a) {
            this.If = a || "none"
        },
        Bk: function(a) {
            for (var b in a) {
                if ("object" == typeof a[b])
                    for (var c in a[b])
                        this.m[b][c] = a[b][c];
                else
                    this.m[b] = a[b];
                a.closeControl === p && (this.m.forceCloseControl = p);
                a.closeControl === t && (this.m.forceCloseControl = t);
                switch (b) {
                case "linksControl":
                    this.dispatchEvent(new Q("onlinks_visible_changed"));
                    break;
                case "clickOnRoad":
                    this.dispatchEvent(new Q("onclickonroad_changed"));
                    break;
                case "navigationControl":
                    this.dispatchEvent(new Q("onnavigation_visible_changed"));
                    break;
                case "indoorSceneSwitchControl":
                    this.dispatchEvent(new Q("onindoor_default_switch_mode_changed"));
                    break;
                case "albumsControl":
                    this.dispatchEvent(new Q("onalbums_visible_changed"));
                    break;
                case "albumsControlOptions":
                    this.dispatchEvent(new Q("onalbums_options_changed"));
                    break;
                case "copyrightControlOptions":
                    this.dispatchEvent(new Q("oncopyright_options_changed"));
                    break;
                case "closeControl":
                    this.dispatchEvent(new Q("onclose_options_changed"));
                    break;
                case "indoorExitControl":
                    this.dispatchEvent(new Q("onindoorexit_options_changed"));
                    break;
                case "indoorFloorControl":
                    this.dispatchEvent(new Q("onindoorfloor_options_changed"))
                }
            }
        },
        rk: function() {
            this.ol.style.visibility = "hidden"
        },
        Vx: function() {
            this.ol.style.visibility = "visible"
        },
        NV: function() {
            this.m.enableScrollWheelZoom = p
        },
        oV: function() {
            this.m.enableScrollWheelZoom = t
        },
        show: function() {
            this.m.visible = p
        },
        aa: function() {
            this.m.visible = t
        },
        wq: function() {
            return Xa() && !I() && "javascript" != this.m.panoramaRenderer ? "flashRender" : !I() && Ob() ? "cvsRender" : "cssRender"
        },
        Pa: function(a) {
            this.He[a.kd] = a
        },
        Sb: function(a) {
            delete this.He[a]
        },
        kD: function() {
            return this.m.visible
        },
        Yg: function() {
            return new P(this.P.clientWidth,this.P.clientHeight)
        },
        Ua: x("P"),
        jK: function() {
            var a = D.Yh("baidumap", "?")
              , b = this.Xb();
            if (b) {
                var b = {
                    panotype: this.rs(),
                    heading: this.Ia().heading,
                    pitch: this.Ia().pitch,
                    pid: b,
                    panoid: b,
                    from: "api"
                }, c;
                for (c in b)
                    a += c + "=" + b[c] + "&"
            }
            return a.slice(0, -1)
        },
        Vw: function() {
            this.Bk({
                copyrightControlOptions: {
                    logoVisible: t
                }
            })
        },
        EE: function() {
            this.Bk({
                copyrightControlOptions: {
                    logoVisible: p
                }
            })
        },
        gB: function(a) {
            function b(a, b) {
                return function() {
                    a.Oq.push({
                        UL: b,
                        TL: arguments
                    })
                }
            }
            for (var c = a.getPanoMethodList(), e = "", f = 0, g = c.length; f < g; f++)
                e = c[f],
                this[e] = b(this, e);
            this.Lg.push(a)
        },
        iE: function(a) {
            for (var b = this.Lg.length; b--; )
                this.Lg[b] === a && this.Lg.splice(b, 1)
        },
        wE: u()
    });
    var Be = Ra.prototype;
    U(Be, {
        setId: Be.Cc,
        setPosition: Be.ua,
        setPov: Be.od,
        setZoom: Be.Qc,
        setOptions: Be.Bk,
        getId: Be.Xb,
        getPosition: Be.ja,
        getPov: Be.Ia,
        getZoom: Be.ka,
        getLinks: Be.DW,
        getBaiduMapUrl: Be.jK,
        hideMapLogo: Be.Vw,
        showMapLogo: Be.EE,
        enableDoubleClickZoom: Be.Z1,
        disableDoubleClickZoom: Be.Q1,
        enableScrollWheelZoom: Be.NV,
        disableScrollWheelZoom: Be.oV,
        show: Be.show,
        hide: Be.aa,
        addPlugin: Be.gB,
        removePlugin: Be.iE,
        getVisible: Be.kD,
        addOverlay: Be.Pa,
        removeOverlay: Be.Sb,
        getSceneType: Be.rs,
        setPanoramaPOIType: Be.mt,
        exitInter: Be.wo,
        setInteractiveState: Be.wE
    });
    U(window, {
        BMAP_PANORAMA_POI_HOTEL: "hotel",
        BMAP_PANORAMA_POI_CATERING: "catering",
        BMAP_PANORAMA_POI_MOVIE: "movie",
        BMAP_PANORAMA_POI_TRANSIT: "transit",
        BMAP_PANORAMA_POI_INDOOR_SCENE: "indoor_scene",
        BMAP_PANORAMA_POI_NONE: "none",
        BMAP_PANORAMA_INDOOR_SCENE: "inter",
        BMAP_PANORAMA_STREET_SCENE: "street"
    });
    function Ce() {
        z.lang.Ga.call(this);
        this.kd = "PanoramaOverlay_" + this.ea;
        this.W = s;
        this.Sa = p
    }
    z.lang.wa(Ce, z.lang.Ga, "PanoramaOverlayBase");
    z.extend(Ce.prototype, {
        K2: x("kd"),
        xa: function() {
            aa("initialize\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        remove: function() {
            aa("remove\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        Hf: function() {
            aa("_setOverlayProperty\u65b9\u6cd5\u672a\u5b9e\u73b0")
        }
    });
    function De(a, b) {
        Ce.call(this);
        var c = {
            position: s,
            altitude: 2,
            displayDistance: p
        }, b = b || {}, e;
        for (e in b)
            c[e] = b[e];
        this.Lb = c.position;
        this.yj = a;
        this.Rp = c.altitude;
        this.eQ = c.displayDistance;
        this.OE = c.color;
        this.XK = c.hoverColor;
        this.backgroundColor = c.backgroundColor;
        this.ZI = c.backgroundHoverColor;
        this.borderColor = c.borderColor;
        this.cJ = c.borderHoverColor;
        this.fontSize = c.fontSize;
        this.padding = c.padding;
        this.qD = c.imageUrl;
        this.size = c.size;
        this.ve = c.image;
        this.width = c.width;
        this.height = c.height;
        this.xX = c.imageData;
        this.borderWidth = c.borderWidth
    }
    z.lang.wa(De, Ce, "PanoramaLabel");
    z.extend(De.prototype, {
        p2: x("borderWidth"),
        getImageData: x("xX"),
        cm: x("OE"),
        E2: x("XK"),
        l2: x("backgroundColor"),
        m2: x("ZI"),
        n2: x("borderColor"),
        o2: x("cJ"),
        C2: x("fontSize"),
        L2: x("padding"),
        F2: x("qD"),
        Hb: x("size"),
        Gw: x("ve"),
        ua: function(a) {
            this.Lb = a;
            this.Hf("position", a)
        },
        ja: x("Lb"),
        cd: function(a) {
            this.yj = a;
            this.Hf("content", a)
        },
        jk: x("yj"),
        qE: function(a) {
            this.Rp = a;
            this.Hf("altitude", a)
        },
        Ao: x("Rp"),
        Ia: function() {
            var a = this.ja()
              , b = s
              , c = s;
            this.W && (c = this.W.ja());
            if (a && c)
                if (a.oc(c))
                    b = this.W.Ia();
                else {
                    b = {};
                    b.heading = Ee(a.lng - c.lng, a.lat - c.lat) || 0;
                    var a = b
                      , c = this.Ao()
                      , e = this.qn();
                    a.pitch = Math.round(180 * (Math.atan(c / e) / Math.PI)) || 0
                }
            return b
        },
        qn: function() {
            var a = 0, b, c;
            this.W && (b = this.W.ja(),
            (c = this.ja()) && !c.oc(b) && (a = S.Co(b, c)));
            return a
        },
        aa: function() {
            aa("hide\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        show: function() {
            aa("show\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        Hf: u()
    });
    var Fe = De.prototype;
    U(Fe, {
        setPosition: Fe.ua,
        getPosition: Fe.ja,
        setContent: Fe.cd,
        getContent: Fe.jk,
        setAltitude: Fe.qE,
        getAltitude: Fe.Ao,
        getPov: Fe.Ia,
        show: Fe.show,
        hide: Fe.aa
    });
    function Ge(a, b) {
        Ce.call(this);
        var c = {
            icon: "",
            title: "",
            panoInfo: s,
            altitude: 2
        }, b = b || {}, e;
        for (e in b)
            c[e] = b[e];
        this.Lb = a;
        this.aH = c.icon;
        this.sI = c.title;
        this.Rp = c.altitude;
        this.pS = c.panoInfo;
        this.Ha = {
            heading: 0,
            pitch: 0
        }
    }
    z.lang.wa(Ge, Ce, "PanoramaMarker");
    z.extend(Ge.prototype, {
        ua: function(a) {
            this.Lb = a;
            this.Hf("position", a)
        },
        ja: x("Lb"),
        Dc: function(a) {
            this.sI = a;
            this.Hf("title", a)
        },
        Io: x("sI"),
        Tb: function(a) {
            this.aH = icon;
            this.Hf("icon", a)
        },
        Do: x("aH"),
        qE: function(a) {
            this.Rp = a;
            this.Hf("altitude", a)
        },
        Ao: x("Rp"),
        $C: x("pS"),
        Ia: function() {
            var a = s;
            if (this.W) {
                var a = this.W.ja()
                  , b = this.ja()
                  , a = Ee(b.lng - a.lng, b.lat - a.lat);
                isNaN(a) && (a = 0);
                a = {
                    heading: a,
                    pitch: 0
                }
            } else
                a = this.Ha;
            return a
        },
        Hf: u()
    });
    var He = Ge.prototype;
    U(He, {
        setPosition: He.ua,
        getPosition: He.ja,
        setTitle: He.Dc,
        getTitle: He.Io,
        setAltitude: He.qE,
        getAltitude: He.Ao,
        getPanoInfo: He.$C,
        getIcon: He.Do,
        setIcon: He.Tb,
        getPov: He.Ia
    });
    function Ee(a, b) {
        var c = 0;
        if (0 !== a && 0 !== b) {
            var c = 180 * (Math.atan(a / b) / Math.PI)
              , e = 0;
            0 < a && 0 > b && (e = 90);
            0 > a && 0 > b && (e = 180);
            0 > a && 0 < b && (e = 270);
            c = (c + 90) % 90 + e
        } else
            0 === a ? c = 0 > b ? 180 : 0 : 0 === b && (c = 0 < a ? 90 : 270);
        return Math.round(c)
    }
    function Qa(a) {
        if ("boolean" === typeof Ie)
            return Ie;
        if (a === t || !window.WebGLRenderingContext)
            return Ie = t;
        if (z.platform.jj) {
            a = 0;
            try {
                a = navigator.userAgent.split("Android ")[1].charAt(0)
            } catch (b) {}
            if (5 > a)
                return Ie = t
        }
        var a = document.createElement("canvas")
          , c = s;
        try {
            c = a.getContext("webgl")
        } catch (e) {
            Ie = t
        }
        return Ie = c === s ? t : p
    }
    var Ie;
    function Je() {
        if ("boolean" === typeof Ke)
            return Ke;
        Ke = p;
        if (z.platform.zD)
            return p;
        var a = navigator.userAgent;
        return -1 < a.indexOf("Chrome") || -1 < a.indexOf("SAMSUNG-GT-I9508") ? p : Ke = t
    }
    var Ke;
    function ec(a, b) {
        this.W = a || s;
        var c = this;
        c.W && c.fa();
        K.load("pservice", function() {
            c.yP()
        });
        "api" == (b || {}).hf ? Ta(Ia) : Ta(Ja);
        this.vd = {
            getPanoramaById: [],
            getPanoramaByLocation: [],
            getVisiblePOIs: [],
            getRecommendPanosById: [],
            getPanoramaVersions: [],
            checkPanoSupportByCityCode: [],
            getPanoramaByPOIId: [],
            getCopyrightProviders: []
        }
    }
    D.tm(function(a) {
        "flashRender" !== a.wq() && new ec(a,{
            hf: "api"
        })
    });
    z.extend(ec.prototype, {
        fa: function() {
            function a(a) {
                if (a) {
                    if (a.id != b.vv) {
                        b.kN(a.id);
                        b.ia = a;
                        Je() || b.dispatchEvent(new Q("onthumbnail_complete"));
                        b.bb != s && (b.gl = b._position);
                        for (var c in a)
                            if (a.hasOwnProperty(c))
                                switch (b["_" + c] = a[c],
                                c) {
                                case "position":
                                    b.Lb = a[c];
                                    break;
                                case "id":
                                    b.bb = a[c];
                                    break;
                                case "links":
                                    b.yn = a[c];
                                    break;
                                case "zoom":
                                    b.Kc = a[c]
                                }
                        if (b.gl) {
                            var g = b.gl
                              , i = b._position;
                            c = g.lat;
                            var k = i.lat
                              , m = Pb(k - c)
                              , g = Pb(i.lng - g.lng);
                            c = Math.sin(m / 2) * Math.sin(m / 2) + Math.cos(Pb(c)) * Math.cos(Pb(k)) * Math.sin(g / 2) * Math.sin(g / 2);
                            b.qG = 6371E3 * 2 * Math.atan2(Math.sqrt(c), Math.sqrt(1 - c))
                        }
                        c = new Q("ondataload");
                        c.data = a;
                        b.dispatchEvent(c);
                        b.dispatchEvent(new Q("onposition_changed"));
                        b.dispatchEvent(new Q("onlinks_changed"));
                        b.dispatchEvent(new Q("oncopyright_changed"), {
                            copyright: a.copyright
                        });
                        a.Ll && b.m.closeControl ? z.R.show(b.xQ) : z.R.aa(b.xQ)
                    }
                } else
                    b.bb = b.fl,
                    b.Lb = b.gl,
                    b.dispatchEvent(new Q("onnoresult"))
            }
            var b = this.W
              , c = this;
            b.addEventListener("id_changed", function() {
                c.Go(b.Xb(), a)
            });
            b.addEventListener("iid_changed", function() {
                c.Mg(ec.Qk + "qt=idata&iid=" + b.Ez + "&fn=", function(b) {
                    if (b && b.result && 0 == b.result.error) {
                        var b = b.content[0].interinfo
                          , f = {};
                        f.Ll = b.BreakID;
                        for (var g = b.Defaultfloor, i = s, k = 0; k < b.Floors.length; k++)
                            if (b.Floors[k].Floor == g) {
                                i = b.Floors[k];
                                break
                            }
                        f.id = i.StartID || i.Points[0].PID;
                        c.Go(f.id, a, f)
                    }
                })
            });
            b.addEventListener("position_changed_inner", function() {
                c.dj(b.ja(), a)
            })
        },
        Go: function(a, b) {
            this.vd.getPanoramaById.push(arguments)
        },
        dj: function(a, b, c) {
            this.vd.getPanoramaByLocation.push(arguments)
        },
        lD: function(a, b, c, e) {
            this.vd.getVisiblePOIs.push(arguments)
        },
        Pw: function(a, b) {
            this.vd.getRecommendPanosById.push(arguments)
        },
        Ow: function(a) {
            this.vd.getPanoramaVersions.push(arguments)
        },
        tB: function(a, b) {
            this.vd.checkPanoSupportByCityCode.push(arguments)
        },
        Nw: function(a, b) {
            this.vd.getPanoramaByPOIId.push(arguments)
        },
        nK: function(a) {
            this.vd.getCopyrightProviders.push(arguments)
        }
    });
    var Le = ec.prototype;
    U(Le, {
        getPanoramaById: Le.Go,
        getPanoramaByLocation: Le.dj,
        getPanoramaByPOIId: Le.Nw
    });
    function dc(a) {
        Mc.call(this);
        "api" == (a || {}).hf ? Ta(Ca) : Ta(Da)
    }
    dc.KF = D.Yh("pano", "tile/");
    dc.prototype = new Mc;
    dc.prototype.getTilesUrl = function(a, b) {
        var c = dc.KF[(a.x + a.y) % dc.KF.length] + "?udt=20150114&qt=tile&styles=pl&x=" + a.x + "&y=" + a.y + "&z=" + b;
        z.ga.ma && 6 >= z.ga.ma && (c += "&color_dep=32");
        return c
    }
    ;
    dc.prototype.Ks = ea(p);
    Me.Ud = new S;
    function Me() {}
    z.extend(Me, {
        pV: function(a, b, c) {
            c = z.lang.Mc(c);
            b = {
                data: b
            };
            "position_changed" == a && (b.data = Me.Ud.oj(new R(b.data.mercatorX,b.data.mercatorY)));
            c.dispatchEvent(new Q("on" + a), b)
        }
    });
    var Ne = Me;
    U(Ne, {
        dispatchFlashEvent: Ne.pV
    });
    var Oe = {
        yO: 50
    };
    Oe.du = D.Yh("pano")[0];
    Oe.bu = {
        width: 220,
        height: 60
    };
    z.extend(Oe, {
        fL: function(a, b, c, e) {
            if (!b || !c || !c.lngLat || !c.panoInstance)
                e();
            else {
                this.En === l && (this.En = new ec(s,{
                    hf: "api"
                }));
                var f = this;
                this.En.tB(b, function(b) {
                    b ? f.En.dj(c.lngLat, Oe.yO, function(b) {
                        if (b && b.id) {
                            var g = b.id
                              , m = b.gh
                              , b = b.hh
                              , n = ec.Ud.qg(c.lngLat)
                              , o = f.cR(n, {
                                x: m,
                                y: b
                            })
                              , m = f.yK(g, o, 0, Oe.bu.width, Oe.bu.height);
                            a.content = f.dR(a.content, m, c.titleTip, c.beforeDomId);
                            a.addEventListener("open", function() {
                                ja.V(z.Ec("infoWndPano"), "click", function() {
                                    c.panoInstance.Cc(g);
                                    c.panoInstance.show();
                                    c.panoInstance.od({
                                        heading: o,
                                        pitch: 0
                                    })
                                })
                            })
                        }
                        e()
                    }) : e()
                })
            }
        },
        dR: function(a, b, c, e) {
            var c = c || "", f;
            !e || !a.split(e)[0] ? (e = a,
            a = "") : (e = a.split(e)[0],
            f = e.lastIndexOf("<"),
            e = a.substring(0, f),
            a = a.substring(f));
            f = [];
            var g = Oe.bu.width
              , i = Oe.bu.height;
            f.push(e);
            f.push("<div id='infoWndPano' class='panoInfoBox' style='height:" + i + "px;width:" + g + "px; margin-top: -19px;'>");
            f.push("<img class='pano_thumnail_img' width='" + g + "' height='" + i + "' border='0' alt='" + c + "\u5916\u666f' title='" + c + "\u5916\u666f' src='" + b + "' onerror='Pano.PanoEntranceUtil.thumbnailNotFound(this, " + g + ", " + i + ");' />");
            f.push("<div class='panoInfoBoxTitleBg' style='width:" + g + "px;'></div><a href='javascript:void(0)' class='panoInfoBoxTitleContent' >\u8fdb\u5165\u5168\u666f&gt;&gt;</a>");
            f.push("</div>");
            f.push(a);
            return f.join("")
        },
        cR: function(a, b) {
            var c = 90 - 180 * Math.atan2(a.y - b.y, a.x - b.x) / Math.PI;
            0 > c && (c += 360);
            return c
        },
        yK: function(a, b, c, e, f) {
            var g = {
                panoId: a,
                panoHeading: b || 0,
                panoPitch: c || 0,
                width: e,
                height: f
            };
            return (Oe.du + "?qt=pr3d&fovy=75&quality=80&panoid={panoId}&heading={panoHeading}&pitch={panoPitch}&width={width}&height={height}").replace(/\{(.*?)\}/g, function(a, b) {
                return g[b]
            })
        }
    });
    var Pe = document, Qe = Math, Re = Pe.createElement("div").style, Se;
    a: {
        for (var Te = ["t", "webkitT", "MozT", "msT", "OT"], Ue, Ve = 0, We = Te.length; Ve < We; Ve++)
            if (Ue = Te[Ve] + "ransform",
            Ue in Re) {
                Se = Te[Ve].substr(0, Te[Ve].length - 1);
                break a
            }
        Se = t
    }
    var Xe = Se ? "-" + Se.toLowerCase() + "-" : ""
      , Ze = Ye("transform")
      , $e = Ye("transitionProperty")
      , af = Ye("transitionDuration")
      , bf = Ye("transformOrigin")
      , cf = Ye("transitionTimingFunction")
      , df = Ye("transitionDelay")
      , ne = /android/gi.test(navigator.appVersion)
      , ef = /iphone|ipad/gi.test(navigator.appVersion)
      , ff = /hp-tablet/gi.test(navigator.appVersion)
      , gf = Ye("perspective")in Re
      , hf = "ontouchstart"in window && !ff
      , jf = Se !== t
      , kf = Ye("transition")in Re
      , lf = "onorientationchange"in window ? "orientationchange" : "resize"
      , mf = hf ? "touchstart" : "mousedown"
      , nf = hf ? "touchmove" : "mousemove"
      , of = hf ? "touchend" : "mouseup"
      , pf = hf ? "touchcancel" : "mouseup"
      , qf = Se === t ? t : {
        "": "transitionend",
        webkit: "webkitTransitionEnd",
        Moz: "transitionend",
        O: "otransitionend",
        ms: "MSTransitionEnd"
    }[Se]
      , rf = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(a) {
        return setTimeout(a, 1)
    }
      , sf = window.cancelRequestAnimationFrame || window.r5 || window.webkitCancelRequestAnimationFrame || window.mozCancelRequestAnimationFrame || window.oCancelRequestAnimationFrame || window.msCancelRequestAnimationFrame || clearTimeout
      , tf = gf ? " translateZ(0)" : "";
    function uf(a, b) {
        var c = this, e;
        c.Pm = "object" == typeof a ? a : Pe.getElementById(a);
        c.Pm.style.overflow = "hidden";
        c.Ob = c.Pm.children[0];
        c.options = {
            Mo: p,
            Mm: p,
            x: 0,
            y: 0,
            eo: p,
            lU: t,
            ox: p,
            ND: p,
            Kk: p,
            pi: t,
            u_: 0,
            Yv: t,
            Sw: p,
            Zh: p,
            qi: p,
            AC: ne,
            Ww: ef,
            VV: ef && gf,
            nE: "",
            zoom: t,
            Mk: 1,
            zp: 4,
            rV: 2,
            dO: "scroll",
            At: t,
            Yx: 1,
            mM: s,
            eM: function(a) {
                a.preventDefault()
            },
            pM: s,
            dM: s,
            oM: s,
            cM: s,
            vx: s,
            qM: s,
            hM: s,
            Yo: s,
            rM: s,
            Xo: s
        };
        for (e in b)
            c.options[e] = b[e];
        c.x = c.options.x;
        c.y = c.options.y;
        c.options.Kk = jf && c.options.Kk;
        c.options.Zh = c.options.Mo && c.options.Zh;
        c.options.qi = c.options.Mm && c.options.qi;
        c.options.zoom = c.options.Kk && c.options.zoom;
        c.options.pi = kf && c.options.pi;
        c.options.zoom && ne && (tf = "");
        c.Ob.style[$e] = c.options.Kk ? Xe + "transform" : "top left";
        c.Ob.style[af] = "0";
        c.Ob.style[bf] = "0 0";
        c.options.pi && (c.Ob.style[cf] = "cubic-bezier(0.33,0.66,0.66,1)");
        c.options.Kk ? c.Ob.style[Ze] = "translate(" + c.x + "px," + c.y + "px)" + tf : c.Ob.style.cssText += ";position:absolute;top:" + c.y + "px;left:" + c.x + "px";
        c.options.pi && (c.options.AC = p);
        c.refresh();
        c.fa(lf, window);
        c.fa(mf);
        !hf && "none" != c.options.dO && (c.fa("DOMMouseScroll"),
        c.fa("mousewheel"));
        c.options.Yv && (c.xU = setInterval(function() {
            c.wP()
        }, 500));
        this.options.Sw && (Event.prototype.stopImmediatePropagation || (document.body.removeEventListener = function(a, b, c) {
            var e = Node.prototype.removeEventListener;
            a === "click" ? e.call(document.body, a, b.WK || b, c) : e.call(document.body, a, b, c)
        }
        ,
        document.body.addEventListener = function(a, b, c) {
            var e = Node.prototype.addEventListener;
            a === "click" ? e.call(document.body, a, b.WK || (b.WK = function(a) {
                a.XY || b(a)
            }
            ), c) : e.call(document.body, a, b, c)
        }
        ),
        c.fa("click", document.body, p))
    }
    uf.prototype = {
        enabled: p,
        x: 0,
        y: 0,
        pj: [],
        scale: 1,
        JB: 0,
        KB: 0,
        Ue: [],
        of: [],
        nB: s,
        hy: 0,
        handleEvent: function(a) {
            switch (a.type) {
            case mf:
                if (!hf && 0 !== a.button)
                    break;
                this.ov(a);
                break;
            case nf:
                this.aS(a);
                break;
            case of:
            case pf:
                this.zu(a);
                break;
            case lf:
                this.DA();
                break;
            case "DOMMouseScroll":
            case "mousewheel":
                this.ET(a);
                break;
            case qf:
                this.AT(a);
                break;
            case "click":
                this.GP(a)
            }
        },
        wP: function() {
            !this.fh && (!this.Nk && !(this.Il || this.Ox == this.Ob.offsetWidth * this.scale && this.gp == this.Ob.offsetHeight * this.scale)) && this.refresh()
        },
        fv: function(a) {
            var b;
            this[a + "Scrollbar"] ? (this[a + "ScrollbarWrapper"] || (b = Pe.createElement("div"),
            this.options.nE ? b.className = this.options.nE + a.toUpperCase() : b.style.cssText = "position:absolute;z-index:100;" + ("h" == a ? "height:7px;bottom:1px;left:2px;right:" + (this.qi ? "7" : "2") + "px" : "width:7px;bottom:" + (this.Zh ? "7" : "2") + "px;top:2px;right:1px"),
            b.style.cssText += ";pointer-events:none;" + Xe + "transition-property:opacity;" + Xe + "transition-duration:" + (this.options.VV ? "350ms" : "0") + ";overflow:hidden;opacity:" + (this.options.Ww ? "0" : "1"),
            this.Pm.appendChild(b),
            this[a + "ScrollbarWrapper"] = b,
            b = Pe.createElement("div"),
            this.options.nE || (b.style.cssText = "position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);" + Xe + "background-clip:padding-box;" + Xe + "box-sizing:border-box;" + ("h" == a ? "height:100%" : "width:100%") + ";" + Xe + "border-radius:3px;border-radius:3px"),
            b.style.cssText += ";pointer-events:none;" + Xe + "transition-property:" + Xe + "transform;" + Xe + "transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);" + Xe + "transition-duration:0;" + Xe + "transform: translate(0,0)" + tf,
            this.options.pi && (b.style.cssText += ";" + Xe + "transition-timing-function:cubic-bezier(0.33,0.66,0.66,1)"),
            this[a + "ScrollbarWrapper"].appendChild(b),
            this[a + "ScrollbarIndicator"] = b),
            "h" == a ? (this.SK = this.TK.clientWidth,
            this.oX = Qe.max(Qe.round(this.SK * this.SK / this.Ox), 8),
            this.nX.style.width = this.oX + "px") : (this.WN = this.XN.clientHeight,
            this.O_ = Qe.max(Qe.round(this.WN * this.WN / this.gp), 8),
            this.N_.style.height = this.O_ + "px"),
            this.EA(a, p)) : this[a + "ScrollbarWrapper"] && (jf && (this[a + "ScrollbarIndicator"].style[Ze] = ""),
            this[a + "ScrollbarWrapper"].parentNode.removeChild(this[a + "ScrollbarWrapper"]),
            this[a + "ScrollbarWrapper"] = s,
            this[a + "ScrollbarIndicator"] = s)
        },
        DA: function() {
            var a = this;
            setTimeout(function() {
                a.refresh()
            }, ne ? 200 : 0)
        },
        Rq: function(a, b) {
            this.Nk || (a = this.Mo ? a : 0,
            b = this.Mm ? b : 0,
            this.options.Kk ? this.Ob.style[Ze] = "translate(" + a + "px," + b + "px) scale(" + this.scale + ")" + tf : (a = Qe.round(a),
            b = Qe.round(b),
            this.Ob.style.left = a + "px",
            this.Ob.style.top = b + "px"),
            this.x = a,
            this.y = b,
            this.EA("h"),
            this.EA("v"))
        },
        EA: function(a, b) {
            var c = "h" == a ? this.x : this.y;
            this[a + "Scrollbar"] && (c *= this[a + "ScrollbarProp"],
            0 > c ? (this.options.AC || (c = this[a + "ScrollbarIndicatorSize"] + Qe.round(3 * c),
            8 > c && (c = 8),
            this[a + "ScrollbarIndicator"].style["h" == a ? "width" : "height"] = c + "px"),
            c = 0) : c > this[a + "ScrollbarMaxScroll"] && (this.options.AC ? c = this[a + "ScrollbarMaxScroll"] : (c = this[a + "ScrollbarIndicatorSize"] - Qe.round(3 * (c - this[a + "ScrollbarMaxScroll"])),
            8 > c && (c = 8),
            this[a + "ScrollbarIndicator"].style["h" == a ? "width" : "height"] = c + "px",
            c = this[a + "ScrollbarMaxScroll"] + (this[a + "ScrollbarIndicatorSize"] - c))),
            this[a + "ScrollbarWrapper"].style[df] = "0",
            this[a + "ScrollbarWrapper"].style.opacity = b && this.options.Ww ? "0" : "1",
            this[a + "ScrollbarIndicator"].style[Ze] = "translate(" + ("h" == a ? c + "px,0)" : "0," + c + "px)") + tf)
        },
        GP: function(a) {
            if (a.yQ === p)
                return this.cB = a.target,
                this.yw = Date.now(),
                p;
            if (this.cB && this.yw) {
                if (600 < Date.now() - this.yw)
                    return this.yw = this.cB = s,
                    p
            } else {
                for (var b = a.target; b != this.Ob && b != document.body; )
                    b = b.parentNode;
                if (b == document.body)
                    return p
            }
            for (b = a.target; 1 != b.nodeType; )
                b = b.parentNode;
            b = b.tagName.toLowerCase();
            if ("select" != b && "input" != b && "textarea" != b)
                return a.stopImmediatePropagation ? a.stopImmediatePropagation() : a.XY = p,
                a.stopPropagation(),
                a.preventDefault(),
                this.yw = this.cB = s,
                t
        },
        ov: function(a) {
            var b = hf ? a.touches[0] : a, c, e;
            if (this.enabled) {
                this.options.eM && this.options.eM.call(this, a);
                (this.options.pi || this.options.zoom) && this.uI(0);
                this.Nk = this.Il = this.fh = t;
                this.SB = this.RB = this.Hv = this.Gv = this.YB = this.XB = 0;
                this.options.zoom && (hf && 1 < a.touches.length) && (e = Qe.abs(a.touches[0].pageX - a.touches[1].pageX),
                c = Qe.abs(a.touches[0].pageY - a.touches[1].pageY),
                this.w_ = Qe.sqrt(e * e + c * c),
                this.xx = Qe.abs(a.touches[0].pageX + a.touches[1].pageX - 2 * this.fF) / 2 - this.x,
                this.yx = Qe.abs(a.touches[0].pageY + a.touches[1].pageY - 2 * this.gF) / 2 - this.y,
                this.options.Yo && this.options.Yo.call(this, a));
                if (this.options.ox && (this.options.Kk ? (c = getComputedStyle(this.Ob, s)[Ze].replace(/[^0-9\-.,]/g, "").split(","),
                e = +(c[12] || c[4]),
                c = +(c[13] || c[5])) : (e = +getComputedStyle(this.Ob, s).left.replace(/[^0-9-]/g, ""),
                c = +getComputedStyle(this.Ob, s).top.replace(/[^0-9-]/g, "")),
                e != this.x || c != this.y))
                    this.options.pi ? this.Yd(qf) : sf(this.nB),
                    this.pj = [],
                    this.Rq(e, c),
                    this.options.vx && this.options.vx.call(this);
                this.Iv = this.x;
                this.Jv = this.y;
                this.Dt = this.x;
                this.Et = this.y;
                this.gh = b.pageX;
                this.hh = b.pageY;
                this.startTime = a.timeStamp || Date.now();
                this.options.pM && this.options.pM.call(this, a);
                this.fa(nf, window);
                this.fa(of, window);
                this.fa(pf, window)
            }
        },
        aS: function(a) {
            var b = hf ? a.touches[0] : a
              , c = b.pageX - this.gh
              , e = b.pageY - this.hh
              , f = this.x + c
              , g = this.y + e
              , i = a.timeStamp || Date.now();
            this.options.dM && this.options.dM.call(this, a);
            if (this.options.zoom && hf && 1 < a.touches.length)
                f = Qe.abs(a.touches[0].pageX - a.touches[1].pageX),
                g = Qe.abs(a.touches[0].pageY - a.touches[1].pageY),
                this.v_ = Qe.sqrt(f * f + g * g),
                this.Nk = p,
                b = 1 / this.w_ * this.v_ * this.scale,
                b < this.options.Mk ? b = 0.5 * this.options.Mk * Math.pow(2, b / this.options.Mk) : b > this.options.zp && (b = 2 * this.options.zp * Math.pow(0.5, this.options.zp / b)),
                this.Ro = b / this.scale,
                f = this.xx - this.xx * this.Ro + this.x,
                g = this.yx - this.yx * this.Ro + this.y,
                this.Ob.style[Ze] = "translate(" + f + "px," + g + "px) scale(" + b + ")" + tf,
                this.options.rM && this.options.rM.call(this, a);
            else {
                this.gh = b.pageX;
                this.hh = b.pageY;
                if (0 < f || f < this.fe)
                    f = this.options.eo ? this.x + c / 2 : 0 <= f || 0 <= this.fe ? 0 : this.fe;
                if (g > this.mf || g < this.nd)
                    g = this.options.eo ? this.y + e / 2 : g >= this.mf || 0 <= this.nd ? this.mf : this.nd;
                this.XB += c;
                this.YB += e;
                this.Gv = Qe.abs(this.XB);
                this.Hv = Qe.abs(this.YB);
                6 > this.Gv && 6 > this.Hv || (this.options.ND && (this.Gv > this.Hv + 5 ? (g = this.y,
                e = 0) : this.Hv > this.Gv + 5 && (f = this.x,
                c = 0)),
                this.fh = p,
                this.Rq(f, g),
                this.RB = 0 < c ? -1 : 0 > c ? 1 : 0,
                this.SB = 0 < e ? -1 : 0 > e ? 1 : 0,
                300 < i - this.startTime && (this.startTime = i,
                this.Dt = this.x,
                this.Et = this.y),
                this.options.oM && this.options.oM.call(this, a))
            }
        },
        zu: function(a) {
            if (!(hf && 0 !== a.touches.length)) {
                var b = this, c = hf ? a.changedTouches[0] : a, e, f, g = {
                    Fa: 0,
                    time: 0
                }, i = {
                    Fa: 0,
                    time: 0
                }, k = (a.timeStamp || Date.now()) - b.startTime;
                e = b.x;
                f = b.y;
                b.Yd(nf, window);
                b.Yd(of, window);
                b.Yd(pf, window);
                b.options.cM && b.options.cM.call(b, a);
                if (b.Nk)
                    e = b.scale * b.Ro,
                    e = Math.max(b.options.Mk, e),
                    e = Math.min(b.options.zp, e),
                    b.Ro = e / b.scale,
                    b.scale = e,
                    b.x = b.xx - b.xx * b.Ro + b.x,
                    b.y = b.yx - b.yx * b.Ro + b.y,
                    b.Ob.style[af] = "200ms",
                    b.Ob.style[Ze] = "translate(" + b.x + "px," + b.y + "px) scale(" + b.scale + ")" + tf,
                    b.Nk = t,
                    b.refresh(),
                    b.options.Xo && b.options.Xo.call(b, a);
                else {
                    if (b.fh) {
                        if (300 > k && b.options.ox) {
                            g = e ? b.qH(e - b.Dt, k, -b.x, b.Ox - b.Rt + b.x, b.options.eo ? b.Rt : 0) : g;
                            i = f ? b.qH(f - b.Et, k, -b.y, 0 > b.nd ? b.gp - b.Qm + b.y - b.mf : 0, b.options.eo ? b.Qm : 0) : i;
                            e = b.x + g.Fa;
                            f = b.y + i.Fa;
                            if (0 < b.x && 0 < e || b.x < b.fe && e < b.fe)
                                g = {
                                    Fa: 0,
                                    time: 0
                                };
                            if (b.y > b.mf && f > b.mf || b.y < b.nd && f < b.nd)
                                i = {
                                    Fa: 0,
                                    time: 0
                                }
                        }
                        g.Fa || i.Fa ? (c = Qe.max(Qe.max(g.time, i.time), 10),
                        b.options.At && (g = e - b.Iv,
                        i = f - b.Jv,
                        Qe.abs(g) < b.options.Yx && Qe.abs(i) < b.options.Yx ? b.scrollTo(b.Iv, b.Jv, 200) : (g = b.kI(e, f),
                        e = g.x,
                        f = g.y,
                        c = Qe.max(g.time, c))),
                        b.scrollTo(Qe.round(e), Qe.round(f), c)) : b.options.At ? (g = e - b.Iv,
                        i = f - b.Jv,
                        Qe.abs(g) < b.options.Yx && Qe.abs(i) < b.options.Yx ? b.scrollTo(b.Iv, b.Jv, 200) : (g = b.kI(b.x, b.y),
                        (g.x != b.x || g.y != b.y) && b.scrollTo(g.x, g.y, g.time))) : b.Gn(200)
                    } else {
                        if (hf)
                            if (b.FJ && b.options.zoom)
                                clearTimeout(b.FJ),
                                b.FJ = s,
                                b.options.Yo && b.options.Yo.call(b, a),
                                b.zoom(b.gh, b.hh, 1 == b.scale ? b.options.rV : 1),
                                b.options.Xo && setTimeout(function() {
                                    b.options.Xo.call(b, a)
                                }, 200);
                            else if (this.options.Sw) {
                                for (e = c.target; 1 != e.nodeType; )
                                    e = e.parentNode;
                                f = e.tagName.toLowerCase();
                                "select" != f && "input" != f && "textarea" != f ? (f = Pe.createEvent("MouseEvents"),
                                f.initMouseEvent("click", p, p, a.view, 1, c.screenX, c.screenY, c.clientX, c.clientY, a.ctrlKey, a.altKey, a.shiftKey, a.metaKey, 0, s),
                                f.yQ = p,
                                e.dispatchEvent(f)) : e.focus()
                            }
                        b.Gn(400)
                    }
                    b.options.qM && b.options.qM.call(b, a)
                }
            }
        },
        Gn: function(a) {
            var b = 0 <= this.x ? 0 : this.x < this.fe ? this.fe : this.x
              , c = this.y >= this.mf || 0 < this.nd ? this.mf : this.y < this.nd ? this.nd : this.y;
            if (b == this.x && c == this.y) {
                if (this.fh && (this.fh = t,
                this.options.vx && this.options.vx.call(this)),
                this.Zh && this.options.Ww && ("webkit" == Se && (this.TK.style[df] = "300ms"),
                this.TK.style.opacity = "0"),
                this.qi && this.options.Ww)
                    "webkit" == Se && (this.XN.style[df] = "300ms"),
                    this.XN.style.opacity = "0"
            } else
                this.scrollTo(b, c, a || 0)
        },
        ET: function(a) {
            var b = this, c, e;
            if ("wheelDeltaX"in a)
                c = a.wheelDeltaX / 12,
                e = a.wheelDeltaY / 12;
            else if ("wheelDelta"in a)
                c = e = a.wheelDelta / 12;
            else if ("detail"in a)
                c = e = 3 * -a.detail;
            else
                return;
            if ("zoom" == b.options.dO) {
                if (e = b.scale * Math.pow(2, 1 / 3 * (e ? e / Math.abs(e) : 0)),
                e < b.options.Mk && (e = b.options.Mk),
                e > b.options.zp && (e = b.options.zp),
                e != b.scale)
                    !b.hy && b.options.Yo && b.options.Yo.call(b, a),
                    b.hy++,
                    b.zoom(a.pageX, a.pageY, e, 400),
                    setTimeout(function() {
                        b.hy--;
                        !b.hy && b.options.Xo && b.options.Xo.call(b, a)
                    }, 400)
            } else
                c = b.x + c,
                e = b.y + e,
                0 < c ? c = 0 : c < b.fe && (c = b.fe),
                e > b.mf ? e = b.mf : e < b.nd && (e = b.nd),
                0 > b.nd && b.scrollTo(c, e, 0)
        },
        AT: function(a) {
            a.target == this.Ob && (this.Yd(qf),
            this.QA())
        },
        QA: function() {
            var a = this, b = a.x, c = a.y, e = Date.now(), f, g, i;
            a.Il || (a.pj.length ? (f = a.pj.shift(),
            f.x == b && f.y == c && (f.time = 0),
            a.Il = p,
            a.fh = p,
            a.options.pi) ? (a.uI(f.time),
            a.Rq(f.x, f.y),
            a.Il = t,
            f.time ? a.fa(qf) : a.Gn(0)) : (i = function() {
                var k = Date.now(), m;
                if (k >= e + f.time) {
                    a.Rq(f.x, f.y);
                    a.Il = t;
                    a.options.xY && a.options.xY.call(a);
                    a.QA()
                } else {
                    k = (k - e) / f.time - 1;
                    g = Qe.sqrt(1 - k * k);
                    k = (f.x - b) * g + b;
                    m = (f.y - c) * g + c;
                    a.Rq(k, m);
                    if (a.Il)
                        a.nB = rf(i)
                }
            }
            ,
            i()) : a.Gn(400))
        },
        uI: function(a) {
            a += "ms";
            this.Ob.style[af] = a;
            this.Zh && (this.nX.style[af] = a);
            this.qi && (this.N_.style[af] = a)
        },
        qH: function(a, b, c, e, f) {
            var b = Qe.abs(a) / b
              , g = b * b / 0.0012;
            0 < a && g > c ? (c += f / (6 / (6.0E-4 * (g / b))),
            b = b * c / g,
            g = c) : 0 > a && g > e && (e += f / (6 / (6.0E-4 * (g / b))),
            b = b * e / g,
            g = e);
            return {
                Fa: g * (0 > a ? -1 : 1),
                time: Qe.round(b / 6.0E-4)
            }
        },
        Nj: function(a) {
            for (var b = -a.offsetLeft, c = -a.offsetTop; a = a.offsetParent; )
                b -= a.offsetLeft,
                c -= a.offsetTop;
            a != this.Pm && (b *= this.scale,
            c *= this.scale);
            return {
                left: b,
                top: c
            }
        },
        kI: function(a, b) {
            var c, e, f;
            f = this.Ue.length - 1;
            c = 0;
            for (e = this.Ue.length; c < e; c++)
                if (a >= this.Ue[c]) {
                    f = c;
                    break
                }
            f == this.JB && (0 < f && 0 > this.RB) && f--;
            a = this.Ue[f];
            e = (e = Qe.abs(a - this.Ue[this.JB])) ? 500 * (Qe.abs(this.x - a) / e) : 0;
            this.JB = f;
            f = this.of.length - 1;
            for (c = 0; c < f; c++)
                if (b >= this.of[c]) {
                    f = c;
                    break
                }
            f == this.KB && (0 < f && 0 > this.SB) && f--;
            b = this.of[f];
            c = (c = Qe.abs(b - this.of[this.KB])) ? 500 * (Qe.abs(this.y - b) / c) : 0;
            this.KB = f;
            f = Qe.round(Qe.max(e, c)) || 200;
            return {
                x: a,
                y: b,
                time: f
            }
        },
        fa: function(a, b, c) {
            (b || this.Ob).addEventListener(a, this, !!c)
        },
        Yd: function(a, b, c) {
            (b || this.Ob).removeEventListener(a, this, !!c)
        },
        PB: ha(2),
        refresh: function() {
            var a, b, c, e = 0;
            b = 0;
            this.scale < this.options.Mk && (this.scale = this.options.Mk);
            this.Rt = this.Pm.clientWidth || 1;
            this.Qm = this.Pm.clientHeight || 1;
            this.mf = -this.options.u_ || 0;
            this.Ox = Qe.round(this.Ob.offsetWidth * this.scale);
            this.gp = Qe.round((this.Ob.offsetHeight + this.mf) * this.scale);
            this.fe = this.Rt - this.Ox;
            this.nd = this.Qm - this.gp + this.mf;
            this.SB = this.RB = 0;
            this.options.mM && this.options.mM.call(this);
            this.Mo = this.options.Mo && 0 > this.fe;
            this.Mm = this.options.Mm && (!this.options.lU && !this.Mo || this.gp > this.Qm);
            this.Zh = this.Mo && this.options.Zh;
            this.qi = this.Mm && this.options.qi && this.gp > this.Qm;
            a = this.Nj(this.Pm);
            this.fF = -a.left;
            this.gF = -a.top;
            if ("string" == typeof this.options.At) {
                this.Ue = [];
                this.of = [];
                c = this.Ob.querySelectorAll(this.options.At);
                a = 0;
                for (b = c.length; a < b; a++)
                    e = this.Nj(c[a]),
                    e.left += this.fF,
                    e.top += this.gF,
                    this.Ue[a] = e.left < this.fe ? this.fe : e.left * this.scale,
                    this.of[a] = e.top < this.nd ? this.nd : e.top * this.scale
            } else if (this.options.At) {
                for (this.Ue = []; e >= this.fe; )
                    this.Ue[b] = e,
                    e -= this.Rt,
                    b++;
                this.fe % this.Rt && (this.Ue[this.Ue.length] = this.fe - this.Ue[this.Ue.length - 1] + this.Ue[this.Ue.length - 1]);
                b = e = 0;
                for (this.of = []; e >= this.nd; )
                    this.of[b] = e,
                    e -= this.Qm,
                    b++;
                this.nd % this.Qm && (this.of[this.of.length] = this.nd - this.of[this.of.length - 1] + this.of[this.of.length - 1])
            }
            this.fv("h");
            this.fv("v");
            this.Nk || (this.Ob.style[af] = "0",
            this.Gn(400))
        },
        scrollTo: function(a, b, c, e) {
            var f = a;
            this.stop();
            f.length || (f = [{
                x: a,
                y: b,
                time: c,
                $Y: e
            }]);
            a = 0;
            for (b = f.length; a < b; a++)
                f[a].$Y && (f[a].x = this.x - f[a].x,
                f[a].y = this.y - f[a].y),
                this.pj.push({
                    x: f[a].x,
                    y: f[a].y,
                    time: f[a].time || 0
                });
            this.QA()
        },
        disable: function() {
            this.stop();
            this.Gn(0);
            this.enabled = t;
            this.Yd(nf, window);
            this.Yd(of, window);
            this.Yd(pf, window)
        },
        enable: function() {
            this.enabled = p
        },
        stop: function() {
            this.options.pi ? this.Yd(qf) : sf(this.nB);
            this.pj = [];
            this.Il = this.fh = t
        },
        zoom: function(a, b, c, e) {
            var f = c / this.scale;
            this.options.Kk && (this.Nk = p,
            e = e === l ? 200 : e,
            a = a - this.fF - this.x,
            b = b - this.gF - this.y,
            this.x = a - a * f + this.x,
            this.y = b - b * f + this.y,
            this.scale = c,
            this.refresh(),
            this.x = 0 < this.x ? 0 : this.x < this.fe ? this.fe : this.x,
            this.y = this.y > this.mf ? this.mf : this.y < this.nd ? this.nd : this.y,
            this.Ob.style[af] = e + "ms",
            this.Ob.style[Ze] = "translate(" + this.x + "px," + this.y + "px) scale(" + c + ")" + tf,
            this.Nk = t)
        }
    };
    function Ye(a) {
        if ("" === Se)
            return a;
        a = a.charAt(0).toUpperCase() + a.substr(1);
        return Se + a
    }
    Re = s;
    function vf(a) {
        this.m = {
            anchor: Yb,
            offset: new P(0,0),
            maxWidth: "100%",
            imageHeight: 80
        };
        var a = a || {}, b;
        for (b in a)
            this.m[b] = a[b];
        this.wl = new ec(s,{
            hf: "api"
        });
        this.Pj = [];
        this.W = s;
        this.ag = {
            height: this.m.imageHeight,
            width: this.m.imageHeight * wf
        };
        this.Rc = this.FA = this.Ll = this.Yc = s
    }
    var xf = [0, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5, 6, 6, 7, 8, 8, 8, 9, 10]
      , yf = "\u5176\u4ed6 \u6b63\u95e8 \u623f\u578b \u8bbe\u65bd \u6b63\u95e8 \u9910\u996e\u8bbe\u65bd \u5176\u4ed6\u8bbe\u65bd \u6b63\u95e8 \u8bbe\u65bd \u89c2\u5f71\u5385 \u5176\u4ed6\u8bbe\u65bd".split(" ");
    D.tm(function(a) {
        var b = s;
        a.addEventListener("position_changed", function() {
            a.m.visible && a.m.albumsControl === p && (b ? b.Jx(a.Xb()) : (b = new vf(a.m.albumsControlOptions),
            b.xa(a)))
        });
        a.addEventListener("albums_visible_changed", function() {
            a.m.albumsControl === p ? (b ? b.Jx(a.Xb()) : (b = new vf(a.m.albumsControlOptions),
            b.xa(a)),
            b.show()) : b.aa()
        });
        a.addEventListener("albums_options_changed", function() {
            b && b.Bk(a.m.albumsControlOptions)
        });
        a.addEventListener("visible_changed", function() {
            b && (a.kD() ? a.m.albumsControl === p && (b.P.style.visibility = "visible") : b.P.style.visibility = "hidden")
        })
    });
    var wf = 1.8;
    I() && (wf = 1);
    z.extend(vf.prototype, {
        Bk: function(a) {
            for (var b in a)
                this.m[b] = a[b];
            a = this.m.imageHeight + "px";
            this.uc(this.m.anchor);
            this.P.style.width = isNaN(Number(this.m.maxWidth)) === p ? this.m.maxWidth : this.m.maxWidth + "px";
            this.P.style.height = a;
            this.Uj.style.height = a;
            this.Ih.style.height = a;
            this.ag = {
                height: this.m.imageHeight,
                width: this.m.imageHeight * wf
            };
            this.Tj.style.height = this.ag.height - 6 + "px";
            this.Tj.style.width = this.ag.width - 6 + "px";
            this.Jx(this.W.Xb(), p)
        },
        xa: function(a) {
            this.W = a;
            this.Cr();
            this.eP();
            this.FX();
            this.Jx(a.Xb())
        },
        Cr: function() {
            var a = this.m.imageHeight + "px";
            this.P = O("div");
            var b = this.P.style;
            b.cssText = "background:rgb(37,37,37);background:rgba(37,37,37,0.9);";
            b.position = "absolute";
            b.zIndex = "2000";
            b.width = isNaN(Number(this.m.maxWidth)) === p ? this.m.maxWidth : this.m.maxWidth + "px";
            b.padding = "8px 0";
            b.visibility = "hidden";
            b.height = a;
            this.Uj = O("div");
            b = this.Uj.style;
            b.position = "absolute";
            b.overflow = "hidden";
            b.width = "100%";
            b.height = a;
            this.Ih = O("div");
            b = this.Ih.style;
            b.height = a;
            this.Uj.appendChild(this.Ih);
            this.P.appendChild(this.Uj);
            this.W.P.appendChild(this.P);
            this.Tj = O("div", {
                "class": "pano_photo_item_seleted"
            });
            this.Tj.style.height = this.ag.height - 6 + "px";
            this.Tj.style.width = this.ag.width - 6 + "px";
            this.uc(this.m.anchor)
        },
        LG: function(a) {
            for (var b = this.Pj, c = b.length - 1; 0 <= c; c--)
                if (b[c].panoId == a)
                    return c;
            return -1
        },
        Jx: function(a, b) {
            if (b || !this.Pj[this.Yc] || !(this.Pj[this.Yc].panoId == a && 3 !== this.Pj[this.Yc].recoType)) {
                var c = this
                  , e = this.LG(a);
                !b && -1 !== e && this.Pj[e] && 3 !== this.Pj[e].recoType ? this.jp(e) : this.TW(function(a) {
                    for (var b = {}, e, k, m = t, n = [], o = 0, q = a.length; o < q; o++)
                        e = a[o].catlog,
                        k = a[o].floor,
                        l !== e && ("" === e && l !== k ? (m = p,
                        b[k] || (b[k] = []),
                        b[k].push(a[o])) : (b[xf[e]] || (b[xf[e]] = []),
                        b[xf[e]].push(a[o])));
                    for (var v in b)
                        m ? n.push({
                            data: v + "F",
                            index: v
                        }) : n.push({
                            data: yf[v],
                            index: v
                        });
                    c.eG = b;
                    c.Di = n;
                    c.tl(a);
                    0 == a.length ? c.aa() : c.show()
                })
            }
        },
        YU: function() {
            if (!this.Ai) {
                var a = this.GW(this.Di)
                  , b = O("div");
                b.style.cssText = ["width:" + 134 * this.Di.length + "px;", "overflow:hidden;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;"].join("");
                b.innerHTML = a;
                a = O("div");
                a.appendChild(b);
                a.style.cssText = "position:absolute;top:-25px;background:rgb(37,37,37);background:rgba(37,37,37,0.9);border-bottom:1px solid #4e596a;width:100%;line-height:25px;height:25px;overflow:scroll;outline:0";
                new uf(a,{
                    eo: t,
                    ox: p,
                    Zh: t,
                    qi: t,
                    Mm: t,
                    ND: p,
                    Yv: p,
                    Sw: p
                });
                this.P.appendChild(a);
                for (var c = this, e = b.getElementsByTagName("span"), f = 0, g = e.length; f < g; f++)
                    b = e[f],
                    z.V(b, "click", function() {
                        if (this.getAttribute("dataindex")) {
                            c.tl(c.eG[this.getAttribute("dataindex")]);
                            for (var a = 0, b = e.length; a < b; a++)
                                e[a].style.color = "#FFFFFF";
                            this.style.color = "#3383FF"
                        }
                    });
                this.Ai = a
            }
        },
        VU: function() {
            if (this.Ai)
                a = this.lK(this.Di),
                this.uP.innerHTML = a;
            else {
                var a = this.lK(this.Di)
                  , b = O("ul")
                  , c = this;
                b.style.cssText = "list-style: none;padding:0px;margin:0px;display:block;width:60px;position:absolute;top:7px";
                b.innerHTML = a;
                z.V(b, "click", function(a) {
                    if (a = (a.srcElement || a.target).getAttribute("dataindex")) {
                        c.tl(c.eG[a]);
                        for (var e = b.getElementsByTagName("li"), f = 0, g = e.length; f < g; f++)
                            e[f].childNodes[0].getAttribute("dataindex") === a ? z.R.eb(e[f], "pano_catlogLiActive") : z.R.tc(e[f], "pano_catlogLiActive")
                    }
                });
                var a = O("div")
                  , e = O("a")
                  , f = O("span")
                  , g = O("a")
                  , i = O("span")
                  , k = ["background:url(" + H.sa + "panorama/catlog_icon.png) no-repeat;", "display:block;width:10px;height:7px;margin:0 auto;"].join("");
                f.style.cssText = k + "background-position:-18px 0;";
                e.style.cssText = "background:#1C1C1C;display:block;position:absolute;width:58px;";
                i.style.cssText = k + "background-position:0 0;";
                g.style.cssText = "background:#1C1C1C;display:block;position:absolute;width:58px;";
                g.style.top = this.m.imageHeight - 7 + "px";
                a.style.cssText = "position:absolute;top:0px;left:0px;width:60px;";
                e.appendChild(f);
                g.appendChild(i);
                z.V(e, "mouseover", function() {
                    var a = parseInt(b.style.top, 10);
                    7 !== a && (f.style.backgroundPosition = "-27px 0");
                    new ub({
                        Hc: 60,
                        $b: vb.Vr,
                        duration: 300,
                        za: function(c) {
                            b.style.top = a + (7 - a) * c + "px"
                        }
                    })
                });
                z.V(e, "mouseout", function() {
                    f.style.backgroundPosition = "-18px 0"
                });
                z.V(g, "mouseover", function() {
                    var a = parseInt(b.style.top, 10)
                      , e = c.m.imageHeight - 14;
                    if (!(parseInt(b.offsetHeight, 10) < e)) {
                        var f = e - parseInt(b.offsetHeight, 10) + 7;
                        f !== a && (i.style.backgroundPosition = "-9px 0");
                        new ub({
                            Hc: 60,
                            $b: vb.Vr,
                            duration: 300,
                            za: function(c) {
                                b.style.top = a + (f - a) * c + "px"
                            }
                        })
                    }
                });
                z.V(g, "mouseout", function() {
                    i.style.backgroundPosition = "0 0"
                });
                a.appendChild(e);
                a.appendChild(g);
                e = O("div");
                e.style.cssText = ["position:absolute;z-index:2001;left:20px;", "height:" + this.m.imageHeight + "px;", "width:62px;overflow:hidden;background:rgb(37,37,37);background:rgba(37,37,37,0.9);"].join("");
                e.appendChild(b);
                e.appendChild(a);
                this.Ai = e;
                this.uP = b;
                this.P.appendChild(e)
            }
        },
        WU: function() {
            if (this.Di && !(0 >= this.Di.length)) {
                var a = O("div");
                a.innerHTML = this.iz;
                a.style.cssText = "position:absolute;background:#252525";
                this.P.appendChild(a);
                this.Zr = a;
                this.Rc.bg.style.left = this.ag.width + 8 + "px";
                this.Ai && (this.Ai.style.left = parseInt(this.Ai.style.left, 10) + this.ag.width + 8 + "px");
                var b = this;
                z.V(a, "click", function() {
                    b.W.Cc(b.RV)
                })
            }
        },
        tl: function(a) {
            this.Pj = a;
            this.m.showCatalog && (0 < this.Di.length ? (Xa() ? this.VU() : this.YU(),
            this.Rc.offsetLeft = 60) : (this.Zr && (this.P.removeChild(this.Zr),
            this.Zr = s,
            this.Rc.bg.style.left = "0px"),
            this.Ai && (this.P.removeChild(this.Ai),
            this.Ai = s),
            this.Rc.offsetLeft = 0));
            var b = this.yW(a);
            Xa() && (this.Di && 0 < this.Di.length && this.m.showExit && this.iz) && (this.Rc.offsetLeft += this.ag.width + 8,
            this.Zr ? this.Zr.innerHTML = this.iz : this.WU());
            this.Ih.innerHTML = b;
            this.Ih.style.width = (this.ag.width + 8) * a.length + 8 + "px";
            a = this.P.offsetWidth;
            b = this.Ih.offsetWidth;
            this.Rc.fs && (b += this.Rc.fs());
            b < a - 2 * this.Rc.ti - this.Rc.offsetLeft ? this.P.style.width = b + this.Rc.offsetLeft + "px" : (this.P.style.width = isNaN(Number(this.m.maxWidth)) === p ? this.m.maxWidth : this.m.maxWidth + "px",
            b < this.P.offsetWidth - 2 * this.Rc.ti - this.Rc.offsetLeft && (this.P.style.width = b + this.Rc.offsetLeft + "px"));
            this.Rc.refresh();
            this.FA = this.Ih.children;
            this.Ih.appendChild(this.Tj);
            this.Tj.style.left = "-100000px";
            a = this.LG(this.W.Xb(), this.d1);
            -1 !== a && this.jp(a)
        },
        GW: function(a) {
            for (var b = "", c, e = 0, f = a.length; e < f; e++)
                c = '<div style="color:white;opacity:0.5;margin:0 35px;float:left;text-align: center"><span  dataIndex="' + a[e].index + '">' + a[e].data + "</span></div>",
                b += c;
            return b
        },
        lK: function(a) {
            for (var b = "", c, e = 0, f = a.length; e < f; e++)
                c = '<li class="pano_catlogLi"><span style="display:block;width:100%;" dataIndex="' + a[e].index + '">' + a[e].data + "</span></li>",
                b += c;
            return b
        },
        yW: function(a) {
            for (var b, c, e, f, g = [], i = this.ag.height, k = this.ag.width, m = 0; m < a.length; m++)
                b = a[m],
                recoType = b.recoType,
                e = b.panoId,
                f = b.name,
                c = b.heading,
                b = b.pitch,
                c = Oe.yK(e, c, b, 198, 108),
                b = '<a href="javascript:void(0);" class="pano_photo_item" data-index="' + m + '"><img style="width:' + (k - 2) + "px;height:" + (i - 2) + 'px;" data-index="' + m + '" name="' + f + '" src="' + c + '" alt="' + f + '"/><span class="pano_photo_decs" data-index="' + m + '" style="width:' + k + "px;font-size:" + Math.floor(i / 6) + "px; line-height:" + Math.floor(i / 6) + 'px;"><em class="pano_poi_' + recoType + '"></em>' + f + "</span></a>",
                3 === recoType ? Xa() ? (this.iz = b,
                this.RV = e,
                a.splice(m, 1),
                m--) : (b = '<a href="javascript:void(0);" class="pano_photo_item" data-index="' + m + '"><img style="width:' + (k - 2) + "px;height:" + (i - 2) + 'px;" data-index="' + m + '" name="' + f + '" src="' + c + '" alt="' + f + '"/><div style="background:rgba(37,37,37,0.5);position:absolute;top:0px;left:0px;width:100%;height:100%;text-align: center;line-height:' + this.m.imageHeight + 'px;" data-index="' + m + '"><img src="' + H.sa + 'panorama/photoexit.png" style="border:none;vertical-align:middle;" data-index="' + m + '" alt=""/></div></a>',
                g.push(b)) : g.push(b);
            return g.join("")
        },
        TW: function(a) {
            var b = this
              , c = this.W.Xb();
            c && this.wl.Pw(c, function(e) {
                b.W.Xb() === c && a(e)
            })
        },
        uc: function(a) {
            if (!Za(a) || isNaN(a) || a < Wb || 3 < a)
                a = this.defaultAnchor;
            var b = this.P
              , c = this.m.offset.width
              , e = this.m.offset.height;
            b.style.left = b.style.top = b.style.right = b.style.bottom = "auto";
            switch (a) {
            case Wb:
                b.style.top = e + "px";
                b.style.left = c + "px";
                break;
            case Xb:
                b.style.top = e + "px";
                b.style.right = c + "px";
                break;
            case Yb:
                b.style.bottom = e + "px";
                b.style.left = c + "px";
                break;
            case 3:
                b.style.bottom = e + "px",
                b.style.right = c + "px"
            }
        },
        eP: function() {
            this.cP()
        },
        cP: function() {
            var a = this;
            z.V(this.P, "touchstart", function(a) {
                a.stopPropagation()
            });
            z.V(this.Uj, "click", function(b) {
                if ((b = (b.srcElement || b.target).getAttribute("data-index")) && b != a.Yc)
                    a.jp(b),
                    a.W.Cc(a.Pj[b].panoId)
            });
            z.V(this.Ih, "mouseover", function(b) {
                b = (b.srcElement || b.target).getAttribute("data-index");
                b !== s && a.oJ(b, p)
            });
            this.W.addEventListener("size_changed", function() {
                isNaN(Number(a.m.maxWidth)) && a.Bk({
                    maxWidth: a.m.maxWidth
                })
            })
        },
        jp: function(a) {
            this.Tj.style.left = this.FA[a].offsetLeft + 8 + "px";
            this.Tj.setAttribute("data-index", this.FA[a].getAttribute("data-index"));
            this.Yc = a;
            this.oJ(a)
        },
        oJ: function(a, b) {
            var c = this.ag.width + 8
              , e = 0;
            this.Rc.fs && (e = this.Rc.fs() / 2);
            var f = this.Uj.offsetWidth - 2 * e
              , g = this.Ih.offsetLeft || this.Rc.x
              , g = g - e
              , i = -a * c;
            i > g && this.Rc.scrollTo(i + e);
            c = i - c;
            g -= f;
            c < g && (!b || b && 8 < i - g) && this.Rc.scrollTo(c + f + e)
        },
        FX: function() {
            this.Rc = I() ? new uf(this.Uj,{
                eo: t,
                ox: p,
                Zh: t,
                qi: t,
                Mm: t,
                ND: p,
                Yv: p,
                Sw: p
            }) : new zf(this.Uj)
        },
        aa: function() {
            this.P.style.visibility = "hidden"
        },
        show: function() {
            this.P.style.visibility = "visible"
        }
    });
    function zf(a) {
        this.P = a;
        this.Og = a.children[0];
        this.hr = s;
        this.ti = 20;
        this.offsetLeft = 0;
        this.xa()
    }
    zf.prototype = {
        xa: function() {
            this.Og.style.position = "relative";
            this.refresh();
            this.Cr();
            this.pB()
        },
        refresh: function() {
            this.Cn = this.P.offsetWidth - this.fs();
            this.cA = -(this.Og.offsetWidth - this.Cn - this.ti);
            this.Ru = this.ti + this.offsetLeft;
            this.Og.style.left = this.Ru + "px";
            this.Og.children[0] && (this.hr = this.Og.children[0].offsetWidth);
            this.bg && (this.bg.children[0].style.marginTop = this.Yq.children[0].style.marginTop = this.bg.offsetHeight / 2 - this.bg.children[0].offsetHeight / 2 + "px")
        },
        fs: function() {
            return 2 * this.ti
        },
        Cr: function() {
            this.gv = O("div");
            this.gv.innerHTML = '<a class="pano_photo_arrow_l" style="background:rgb(37,37,37);background:rgba(37,37,37,0.9);" href="javascript:void(0)" title="\u4e0a\u4e00\u9875"><span class="pano_arrow_l"></span></a><a class="pano_photo_arrow_r" style="background:rgb(37,37,37);background:rgba(37,37,37,0.9);" href="javascript:void(0)" title="\u4e0b\u4e00\u9875"><span class="pano_arrow_r"></span></a>';
            this.bg = this.gv.children[0];
            this.Yq = this.gv.children[1];
            this.P.appendChild(this.gv);
            this.bg.children[0].style.marginTop = this.Yq.children[0].style.marginTop = this.bg.offsetHeight / 2 - this.bg.children[0].offsetHeight / 2 + "px"
        },
        pB: function() {
            var a = this;
            z.V(this.bg, "click", function() {
                a.scrollTo(a.Og.offsetLeft + a.Cn)
            });
            z.V(this.Yq, "click", function() {
                a.scrollTo(a.Og.offsetLeft - a.Cn)
            })
        },
        BT: function() {
            z.R.tc(this.bg, "pano_arrow_disable");
            z.R.tc(this.Yq, "pano_arrow_disable");
            var a = this.Og.offsetLeft;
            a >= this.Ru && z.R.eb(this.bg, "pano_arrow_disable");
            a - this.Cn <= this.cA && z.R.eb(this.Yq, "pano_arrow_disable")
        },
        scrollTo: function(a) {
            a = a < this.Og.offsetLeft ? Math.ceil((a - this.ti - this.Cn) / this.hr) * this.hr + this.Cn + this.ti - 8 : Math.ceil((a - this.ti) / this.hr) * this.hr + this.ti;
            a < this.cA ? a = this.cA : a > this.Ru && (a = this.Ru);
            var b = this.Og.offsetLeft
              , c = this;
            new ub({
                Hc: 60,
                $b: vb.Vr,
                duration: 300,
                za: function(e) {
                    c.Og.style.left = b + (a - b) * e + "px"
                },
                finish: function() {
                    c.BT()
                }
            })
        }
    };
    D.Map = Oa;
    D.Hotspot = kb;
    D.MapType = Dd;
    D.Point = J;
    D.Pixel = R;
    D.Size = P;
    D.Bounds = hb;
    D.TileLayer = Mc;
    D.Projection = jc;
    D.MercatorProjection = S;
    D.PerspectiveProjection = jb;
    D.Copyright = function(a, b, c) {
        this.id = a;
        this.fb = b;
        this.content = c
    }
    ;
    D.Overlay = mc;
    D.Label = uc;
    D.GroundOverlay = vc;
    D.PointCollection = zc;
    D.Marker = V;
    D.CanvasLayer = Cc;
    D.Icon = qc;
    D.IconSequence = sc;
    D.Symbol = rc;
    D.Polyline = Gc;
    D.Polygon = Fc;
    D.InfoWindow = tc;
    D.Circle = Hc;
    D.Control = Ub;
    D.NavigationControl = lb;
    D.GeolocationControl = Zb;
    D.OverviewMapControl = nb;
    D.CopyrightControl = $b;
    D.ScaleControl = mb;
    D.MapTypeControl = ob;
    D.CityListControl = ac;
    D.PanoramaControl = cc;
    D.TrafficLayer = Uc;
    D.CustomLayer = pb;
    D.ContextMenu = fc;
    D.MenuItem = ic;
    D.LocalSearch = fb;
    D.TransitRoute = ee;
    D.DrivingRoute = he;
    D.WalkingRoute = ie;
    D.RidingRoute = je;
    D.Autocomplete = xe;
    D.RouteSearch = oe;
    D.Geocoder = pe;
    D.LocalCity = ue;
    D.Geolocation = Geolocation;
    D.Convertor = lc;
    D.BusLineSearch = we;
    D.Boundary = ve;
    D.Panorama = Ra;
    D.PanoramaLabel = De;
    D.PanoramaService = ec;
    D.PanoramaCoverageLayer = dc;
    D.PanoramaFlashInterface = Me;
    function U(a, b) {
        for (var c in b)
            a[c] = b[c]
    }
    U(window, {
        BMap: D,
        _jsload2: function(a, b) {
            ja.Zx.UX && ja.Zx.set(a, b);
            K.wU(a, b)
        },
        BMAP_API_VERSION: "2.0"
    });
    var Af = Oa.prototype;
    U(Af, {
        getBounds: Af.te,
        getCenter: Af.Bb,
        getMapType: Af.va,
        getSize: Af.Hb,
        setSize: Af.Ae,
        getViewport: Af.vs,
        getZoom: Af.ka,
        centerAndZoom: Af.Ed,
        panTo: Af.ji,
        panBy: Af.tg,
        setCenter: Af.pf,
        setCurrentCity: Af.uE,
        setMapType: Af.wg,
        setViewport: Af.mh,
        setZoom: Af.Qc,
        highResolutionEnabled: Af.Yw,
        zoomTo: Af.yg,
        zoomIn: Af.hF,
        zoomOut: Af.iF,
        addHotspot: Af.eB,
        removeHotspot: Af.bZ,
        clearHotspots: Af.bw,
        checkResize: Af.zU,
        addControl: Af.Mv,
        removeControl: Af.KM,
        getContainer: Af.Ua,
        addContextMenu: Af.Wn,
        removeContextMenu: Af.ap,
        addOverlay: Af.Pa,
        removeOverlay: Af.Sb,
        clearOverlays: Af.lJ,
        openInfoWindow: Af.ad,
        closeInfoWindow: Af.Xc,
        pointToOverlayPixel: Af.Ve,
        overlayPixelToPoint: Af.tM,
        getInfoWindow: Af.$g,
        getOverlays: Af.Mw,
        getPanes: function() {
            return {
                floatPane: this.Wd.BC,
                markerMouseTarget: this.Wd.PD,
                floatShadow: this.Wd.cK,
                labelPane: this.Wd.JD,
                markerPane: this.Wd.RL,
                markerShadow: this.Wd.SL,
                mapPane: this.Wd.Ps,
                vertexPane: this.Wd.$N
            }
        },
        addTileLayer: Af.Me,
        removeTileLayer: Af.Tf,
        pixelToPoint: Af.Ib,
        pointToPixel: Af.Rb,
        setFeatureStyle: Af.J4,
        selectBaseElement: Af.C4,
        setMapStyle: Af.kt,
        enable3DBuilding: Af.ro,
        disable3DBuilding: Af.lV,
        getPanorama: Af.os,
        initIndoorLayer: Af.GX,
        setNormalMapDisplay: Af.gN,
        setMapStyleV2: Af.GZ,
        setBMapCopyrightOffset: Af.tE,
        getVectorContainer: Af.hX
    });
    var Bf = Dd.prototype;
    U(Bf, {
        getTileLayer: Bf.bX,
        getMinZoom: Bf.aj,
        getMaxZoom: Bf.Xh,
        getProjection: Bf.nk,
        getTextColor: Bf.cm,
        getTips: Bf.ss
    });
    U(window, {
        BMAP_NORMAL_MAP: Pa,
        BMAP_PERSPECTIVE_MAP: Sa,
        BMAP_SATELLITE_MAP: ab,
        BMAP_HYBRID_MAP: Va
    });
    var Cf = S.prototype;
    U(Cf, {
        lngLatToPoint: Cf.qg,
        pointToLngLat: Cf.oj
    });
    var Df = jb.prototype;
    U(Df, {
        lngLatToPoint: Df.qg,
        pointToLngLat: Df.oj
    });
    var Ef = hb.prototype;
    U(Ef, {
        equals: Ef.oc,
        containsPoint: Ef.Ar,
        containsBounds: Ef.LU,
        intersects: Ef.Ds,
        extend: Ef.extend,
        getCenter: Ef.Bb,
        isEmpty: Ef.lj,
        getSouthWest: Ef.Se,
        getNorthEast: Ef.Lf,
        toSpan: Ef.TE
    });
    var Ff = mc.prototype;
    U(Ff, {
        isVisible: Ff.Nc,
        show: Ff.show,
        hide: Ff.aa
    });
    mc.getZIndex = mc.pk;
    var Gf = ib.prototype;
    U(Gf, {
        openInfoWindow: Gf.ad,
        closeInfoWindow: Gf.Xc,
        enableMassClear: Gf.Yi,
        disableMassClear: Gf.nV,
        show: Gf.show,
        hide: Gf.aa,
        getMap: Gf.Iw,
        addContextMenu: Gf.Wn,
        removeContextMenu: Gf.ap
    });
    var Hf = V.prototype;
    U(Hf, {
        setIcon: Hf.Tb,
        getIcon: Hf.Do,
        setPosition: Hf.ua,
        getPosition: Hf.ja,
        setOffset: Hf.ie,
        getOffset: Hf.cj,
        getLabel: Hf.UC,
        setLabel: Hf.Dm,
        setTitle: Hf.Dc,
        setTop: Hf.ni,
        enableDragging: Hf.Wb,
        disableDragging: Hf.UB,
        setZIndex: Hf.pp,
        getMap: Hf.Iw,
        setAnimation: Hf.Cm,
        setShadow: Hf.Sx,
        hide: Hf.aa,
        setRotation: Hf.lp,
        getRotation: Hf.CK
    });
    U(window, {
        BMAP_ANIMATION_DROP: 1,
        BMAP_ANIMATION_BOUNCE: 2
    });
    var If = uc.prototype;
    U(If, {
        setStyle: If.Ld,
        setStyles: If.mi,
        setContent: If.cd,
        setPosition: If.ua,
        getPosition: If.ja,
        setOffset: If.ie,
        getOffset: If.cj,
        setTitle: If.Dc,
        setZIndex: If.pp,
        getMap: If.Iw,
        getContent: If.jk
    });
    var Jf = qc.prototype;
    U(Jf, {
        setImageUrl: Jf.aN,
        setSize: Jf.Ae,
        setAnchor: Jf.uc,
        setImageOffset: Jf.jt,
        setImageSize: Jf.BZ,
        setInfoWindowAnchor: Jf.EZ,
        setPrintImageUrl: Jf.PZ
    });
    var Kf = tc.prototype;
    U(Kf, {
        redraw: Kf.he,
        setTitle: Kf.Dc,
        setContent: Kf.cd,
        getContent: Kf.jk,
        getPosition: Kf.ja,
        enableMaximize: Kf.Xg,
        disableMaximize: Kf.tw,
        isOpen: Kf.Za,
        setMaxContent: Kf.lt,
        maximize: Kf.nx,
        enableAutoPan: Kf.Wr
    });
    var Lf = oc.prototype;
    U(Lf, {
        getPath: Lf.Re,
        setPath: Lf.je,
        setPositionAt: Lf.Fm,
        getStrokeColor: Lf.ZW,
        setStrokeWeight: Lf.op,
        getStrokeWeight: Lf.FK,
        setStrokeOpacity: Lf.mp,
        getStrokeOpacity: Lf.$W,
        setFillOpacity: Lf.it,
        getFillOpacity: Lf.tW,
        setStrokeStyle: Lf.np,
        getStrokeStyle: Lf.EK,
        getFillColor: Lf.sW,
        getBounds: Lf.te,
        enableEditing: Lf.ff,
        disableEditing: Lf.mV,
        getEditing: Lf.pW
    });
    var Mf = Hc.prototype;
    U(Mf, {
        setCenter: Mf.pf,
        getCenter: Mf.Bb,
        getRadius: Mf.AK,
        setRadius: Mf.qf
    });
    var Nf = Fc.prototype;
    U(Nf, {
        getPath: Nf.Re,
        setPath: Nf.je,
        setPositionAt: Nf.Fm
    });
    var Of = kb.prototype;
    U(Of, {
        getPosition: Of.ja,
        setPosition: Of.ua,
        getText: Of.eD,
        setText: Of.ut
    });
    J.prototype.equals = J.prototype.oc;
    R.prototype.equals = R.prototype.oc;
    P.prototype.equals = P.prototype.oc;
    U(window, {
        BMAP_ANCHOR_TOP_LEFT: Wb,
        BMAP_ANCHOR_TOP_RIGHT: Xb,
        BMAP_ANCHOR_BOTTOM_LEFT: Yb,
        BMAP_ANCHOR_BOTTOM_RIGHT: 3
    });
    var Pf = Ub.prototype;
    U(Pf, {
        setAnchor: Pf.uc,
        getAnchor: Pf.HC,
        setOffset: Pf.ie,
        getOffset: Pf.cj,
        show: Pf.show,
        hide: Pf.aa,
        isVisible: Pf.Nc,
        toString: Pf.toString
    });
    var Qf = lb.prototype;
    U(Qf, {
        getType: Qf.Ko,
        setType: Qf.Gm
    });
    U(window, {
        BMAP_NAVIGATION_CONTROL_LARGE: 0,
        BMAP_NAVIGATION_CONTROL_SMALL: 1,
        BMAP_NAVIGATION_CONTROL_PAN: 2,
        BMAP_NAVIGATION_CONTROL_ZOOM: 3
    });
    var Rf = nb.prototype;
    U(Rf, {
        changeView: Rf.qe,
        setSize: Rf.Ae,
        getSize: Rf.Hb
    });
    var Sf = mb.prototype;
    U(Sf, {
        getUnit: Sf.gX,
        setUnit: Sf.BE
    });
    U(window, {
        BMAP_UNIT_METRIC: "metric",
        BMAP_UNIT_IMPERIAL: "us"
    });
    var Tf = $b.prototype;
    U(Tf, {
        addCopyright: Tf.Nv,
        removeCopyright: Tf.hE,
        getCopyright: Tf.Wl,
        getCopyrightCollection: Tf.OC
    });
    U(window, {
        BMAP_MAPTYPE_CONTROL_HORIZONTAL: bc,
        BMAP_MAPTYPE_CONTROL_DROPDOWN: 1,
        BMAP_MAPTYPE_CONTROL_MAP: 2
    });
    var Uf = Mc.prototype;
    U(Uf, {
        getMapType: Uf.va,
        getCopyright: Uf.Wl,
        isTransparentPng: Uf.Ks
    });
    var Vf = fc.prototype;
    U(Vf, {
        addItem: Vf.Ov,
        addSeparator: Vf.hB,
        removeSeparator: Vf.jE
    });
    var Wf = ic.prototype;
    U(Wf, {
        setText: Wf.ut
    });
    var Xf = X.prototype;
    U(Xf, {
        getStatus: Xf.am,
        setSearchCompleteCallback: Xf.ot,
        getPageCapacity: Xf.kf,
        setPageCapacity: Xf.kp,
        setLocation: Xf.Em,
        disableFirstResultSelection: Xf.VB,
        enableFirstResultSelection: Xf.nC,
        gotoPage: Xf.dm,
        searchNearby: Xf.hp,
        searchInBounds: Xf.Bm,
        search: Xf.search
    });
    U(window, {
        BMAP_STATUS_SUCCESS: 0,
        BMAP_STATUS_CITY_LIST: 1,
        BMAP_STATUS_UNKNOWN_LOCATION: Nd,
        BMAP_STATUS_UNKNOWN_ROUTE: 3,
        BMAP_STATUS_INVALID_KEY: 4,
        BMAP_STATUS_INVALID_REQUEST: 5,
        BMAP_STATUS_PERMISSION_DENIED: Od,
        BMAP_STATUS_SERVICE_UNAVAILABLE: 7,
        BMAP_STATUS_TIMEOUT: Pd
    });
    U(window, {
        BMAP_POI_TYPE_NORMAL: 0,
        BMAP_POI_TYPE_BUSSTOP: 1,
        BMAP_POI_TYPE_BUSLINE: 2,
        BMAP_POI_TYPE_SUBSTOP: 3,
        BMAP_POI_TYPE_SUBLINE: 4
    });
    U(window, {
        BMAP_TRANSIT_POLICY_RECOMMEND: 0,
        BMAP_TRANSIT_POLICY_LEAST_TIME: 4,
        BMAP_TRANSIT_POLICY_LEAST_TRANSFER: 1,
        BMAP_TRANSIT_POLICY_LEAST_WALKING: 2,
        BMAP_TRANSIT_POLICY_AVOID_SUBWAYS: 3,
        BMAP_TRANSIT_POLICY_FIRST_SUBWAYS: 5,
        BMAP_LINE_TYPE_BUS: 0,
        BMAP_LINE_TYPE_SUBWAY: 1,
        BMAP_LINE_TYPE_FERRY: 2,
        BMAP_LINE_TYPE_TRAIN: 3,
        BMAP_LINE_TYPE_AIRPLANE: 4,
        BMAP_LINE_TYPE_COACH: 5
    });
    U(window, {
        BMAP_TRANSIT_TYPE_POLICY_TRAIN: 0,
        BMAP_TRANSIT_TYPE_POLICY_AIRPLANE: 1,
        BMAP_TRANSIT_TYPE_POLICY_COACH: 2
    });
    U(window, {
        BMAP_INTERCITY_POLICY_LEAST_TIME: 0,
        BMAP_INTERCITY_POLICY_EARLY_START: 1,
        BMAP_INTERCITY_POLICY_CHEAP_PRICE: 2
    });
    U(window, {
        BMAP_TRANSIT_TYPE_IN_CITY: 0,
        BMAP_TRANSIT_TYPE_CROSS_CITY: 1
    });
    U(window, {
        BMAP_TRANSIT_PLAN_TYPE_ROUTE: 0,
        BMAP_TRANSIT_PLAN_TYPE_LINE: 1
    });
    var Yf = de.prototype;
    U(Yf, {
        clearResults: Yf.Pe
    });
    fe = ee.prototype;
    U(fe, {
        setPolicy: fe.nt,
        toString: fe.toString,
        setPageCapacity: fe.kp,
        setIntercityPolicy: fe.cN,
        setTransitTypePolicy: fe.lN
    });
    U(window, {
        BMAP_DRIVING_POLICY_DEFAULT: 0,
        BMAP_DRIVING_POLICY_AVOID_HIGHWAYS: 3,
        BMAP_DRIVING_POLICY_AVOID_CONGESTION: 5,
        BMAP_DRIVING_POLICY_FIRST_HIGHWAYS: 4
    });
    U(window, {
        BMAP_MODE_DRIVING: "driving",
        BMAP_MODE_TRANSIT: "transit",
        BMAP_MODE_WALKING: "walking",
        BMAP_MODE_NAVIGATION: "navigation"
    });
    var Zf = oe.prototype;
    U(Zf, {
        routeCall: Zf.WM
    });
    U(window, {
        BMAP_HIGHLIGHT_STEP: 1,
        BMAP_HIGHLIGHT_ROUTE: 2
    });
    U(window, {
        BMAP_ROUTE_TYPE_DRIVING: Rd,
        BMAP_ROUTE_TYPE_WALKING: Qd,
        BMAP_ROUTE_TYPE_RIDING: Sd
    });
    U(window, {
        BMAP_ROUTE_STATUS_NORMAL: Td,
        BMAP_ROUTE_STATUS_EMPTY: 1,
        BMAP_ROUTE_STATUS_ADDRESS: 2
    });
    var $f = he.prototype;
    U($f, {
        setPolicy: $f.nt
    });
    var ag = xe.prototype;
    U(ag, {
        show: ag.show,
        hide: ag.aa,
        setTypes: ag.AE,
        setLocation: ag.Em,
        search: ag.search,
        setInputValue: ag.Px
    });
    U(pb.prototype, {});
    var cg = ve.prototype;
    U(cg, {
        get: cg.get
    });
    U(dc.prototype, {});
    U(window, {
        BMAP_POINT_DENSITY_HIGH: 200,
        BMAP_POINT_DENSITY_MEDIUM: Xc,
        BMAP_POINT_DENSITY_LOW: 50
    });
    U(window, {
        BMAP_POINT_SHAPE_STAR: 1,
        BMAP_POINT_SHAPE_WATERDROP: 2,
        BMAP_POINT_SHAPE_CIRCLE: wc,
        BMAP_POINT_SHAPE_SQUARE: 4,
        BMAP_POINT_SHAPE_RHOMBUS: 5
    });
    U(window, {
        BMAP_POINT_SIZE_TINY: 1,
        BMAP_POINT_SIZE_SMALLER: 2,
        BMAP_POINT_SIZE_SMALL: 3,
        BMAP_POINT_SIZE_NORMAL: xc,
        BMAP_POINT_SIZE_BIG: 5,
        BMAP_POINT_SIZE_BIGGER: 6,
        BMAP_POINT_SIZE_HUGE: 7
    });
    U(window, {
        BMap_Symbol_SHAPE_CAMERA: 11,
        BMap_Symbol_SHAPE_WARNING: 12,
        BMap_Symbol_SHAPE_SMILE: 13,
        BMap_Symbol_SHAPE_CLOCK: 14,
        BMap_Symbol_SHAPE_POINT: 9,
        BMap_Symbol_SHAPE_PLANE: 10,
        BMap_Symbol_SHAPE_CIRCLE: 1,
        BMap_Symbol_SHAPE_RECTANGLE: 2,
        BMap_Symbol_SHAPE_RHOMBUS: 3,
        BMap_Symbol_SHAPE_STAR: 4,
        BMap_Symbol_SHAPE_BACKWARD_CLOSED_ARROW: 5,
        BMap_Symbol_SHAPE_FORWARD_CLOSED_ARROW: 6,
        BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW: 7,
        BMap_Symbol_SHAPE_FORWARD_OPEN_ARROW: 8
    });
    U(window, {
        BMAP_CONTEXT_MENU_ICON_ZOOMIN: gc,
        BMAP_CONTEXT_MENU_ICON_ZOOMOUT: hc
    });
    U(window, {
        BMAP_SYS_DRAWER: Na,
        BMAP_SVG_DRAWER: 1,
        BMAP_VML_DRAWER: 2,
        BMAP_CANVAS_DRAWER: 3,
        BMAP_SVG_DRAWER_FIRST: 4
    });
    D.UT();
    D.S_();
}
)()

function httpGetAsync(theUrl, callback)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function() { 
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
            callback(xmlHttp.responseText);
    }
    xmlHttp.open("GET", theUrl, true); // true for asynchronous 
    xmlHttp.send(null);
}




window.onmousewheel=function(e){
    var curZoom = map.getZoom();
    if(e.deltaY>0){
        map.setZoom(curZoom-1);
    }else{
        map.setZoom(curZoom+1);
    }
}