Advertisement
Guest User

assafdsf

a guest
Oct 13th, 2015
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name        ☯ YinYang 扩展
  3. // @description Yin Yang clan extension for agar.io
  4. // @author      szymy & Quaze
  5. // @namespace   OGARio.szymy, quazeful.deviantart.com
  6. // @include     http://agar.io/*
  7. // @include     https://agar.io/*
  8. // @version     0.1
  9. // @grant       none
  10. // ==/UserScript==
  11.  
  12. // Get lang script
  13. var lang = "";
  14. for (var i = 0; i < document.scripts.length; i++) {
  15.     if (document.scripts[i].text.search("i18n_lang") > -1) {
  16.         lang = document.scripts[i].text.slice(0, document.scripts[i].text.search("\\(function\\(") - 1);
  17.         break;
  18.     }
  19. }
  20. // Prevent original script
  21. window.jQuery("#canvas").remove();
  22. window.jQuery("body").append('<canvas id="canvas" width="800" height="600"></canvas>');
  23. // Inject OGARio
  24. $("head").append("<style>#mainPanel > center{display:none}.tagList{position:relative;width:107px;text-align:left;padding:0;margin:0}.tagList label{display:block;float:left;width:92px;text-align:right}.tagList ul{padding:1px;width:107px;background-color:#FFF;position:absolute;right:0;top:35px;display:none;z-index:1}.tagList li{display:block;width:100%;padding:0 10px}.tagList li:hover{color:#999 !important;background:#EEE !important}#mainPanel{transition:0.3s all ease}.agario-exp-bar{border:none;background:#222;box-shadow:none;border-radius:0;height:26px}.agario-exp-bar .progress-bar{background:#fff;border-radius:0}.progress-bar-star{background:#fff;//background:none;border-radius:50%;line-height:1.9;right:-6px;//text-shadow:0px 0px 0px #FFFFFF,-2px 0px 0px #FFFFFF,2px 0px 0px #FFFFFF,0px 1px 0px #FFFFFF,0px -2px 0px #FFFFFF,-2px -2px 0px #FFFFFF,2px 2px 0px #FFFFFF,-2px 2px 0px #FFFFFF,2px -2px 0px #FFFFFF;text-shadow:none;transform:none !important;color:#222;width:30px;height:30px;top:-2px}#s300x250{display:none}.tosBox{display:none}input,select{border:black !important;border-radius:0 !important}hr{border-color:#333;border-width:1px}#statsChartText,#statsText{color:#5d6f7a}#statsSubtext{color:#BBB}.agario-promo{display:none}button:focus{outline:0 !important}.agario-panel{background:#222;color:#5d6f7a;border-radius:0}.btn{border:none !important;border-radius:0 !important;background:#333;height:35px}form > center > h5{visibility:hidden}form > center > h5:after{content:'';visibility:visible;display:block;height:100px;margin-top:-24px;background:url(http://puu.sh/kGkbP/6a1a26db5f.png) no-repeat;background-size:244px;background-position:40px 20px}#mainPanel > form > .form-group:first-child{display:none}</style>");
  25. var ogario = function(a, b) {
  26.     function c() {
  27.         pb = !0, B(), setInterval(B, 18e4), Ea = Ca = document.getElementById("canvas"), Da = Ea.getContext("2d"), Ea.onmousedown = function(a) {
  28.             if (wc) {
  29.                 var b = a.clientX - (5 + Fa / 5 / 2),
  30.                     c = a.clientY - (5 + Fa / 5 / 2);
  31.                 if (Math.sqrt(b * b + c * c) <= Fa / 5 / 2) return U(), void X(17)
  32.             }
  33.             Ra = 1 * a.clientX, Sa = 1 * a.clientY, A(), U()
  34.         }, Ea.onmousemove = function(a) {
  35.             Ra = 1 * a.clientX, Sa = 1 * a.clientY, A()
  36.         }, Ea.onmouseup = function() {}, /firefox/i.test(navigator.userAgent) ? document.addEventListener("DOMMouseScroll", y, !1) : document.body.onmousewheel = y, b(a).on("beforeunload", d);
  37.         var c = !1,
  38.             e = !1,
  39.             f = !1,
  40.             g = !1,
  41.             h = !1,
  42.             i = !1,
  43.             j = !1,
  44.             k = !1,
  45.             l = !1,
  46.             m = !1;
  47.         a.onkeydown = function(a) {
  48.             32 != a.keyCode || c || (U(), X(17), c = !0), 81 != a.keyCode || e || (X(18), e = !0), 87 != a.keyCode || f || (U(), X(21), f = !1), 27 == a.keyCode && E(300), 83 != a.keyCode || g || (p(!0), g = !0), 73 != a.keyCode || h || (v(), h = !0), 68 != a.keyCode || i || (q(), i = !0), 69 != a.keyCode || j || (r(), j = !0), 90 != a.keyCode || k || (x(), k = !0), 88 != a.keyCode || l || (s(), l = !0), 16 != a.keyCode || m || (Vb && w(), m = !0)
  49.         }, a.onkeyup = function(a) {
  50.             32 == a.keyCode && (c = !1), 87 == a.keyCode && (f = !1), 81 == a.keyCode && e && (X(19), e = !1), 83 == a.keyCode && (p(!1), g = !1), 65 == a.keyCode && (h = !1), 68 == a.keyCode && (i = !1), 69 == a.keyCode && (j = !1), 90 == a.keyCode && (k = !1), 88 == a.keyCode && (l = !1), 16 == a.keyCode && (m = !1)
  51.         }, a.onblur = function() {
  52.             X(19), f = e = c = !1
  53.         }, a.onresize = Z, a.requestAnimationFrame($c), setInterval(U, 40), cb && b("#region").val(cb), G(), D(b("#region").val()), 0 == Eb && cb && L(), E(0), Z(), a.location.hash && 6 <= a.location.hash.length && sa(a.location.hash)
  54.     }
  55.  
  56.     function d() {
  57.         return h() ? "Yin Yang: Are you sure you want to quit?" : void 0
  58.     }
  59.  
  60.     function e() {
  61.         a.localStorage.setItem("nick", qc), a.localStorage.setItem("clantag", rc), a.localStorage.setItem("skins", g(db)), a.localStorage.setItem("names", g(eb)), a.localStorage.setItem("darktheme", g(ib)), a.localStorage.setItem("colors", g(fb)), a.localStorage.setItem("showmass", g(jb)), a.localStorage.setItem("skipstats", g(Zb)), a.localStorage.setItem("acid", g(xb)), a.localStorage.setItem("zoom", g(Hb)), a.localStorage.setItem("mapborders", g(Ib)), a.localStorage.setItem("oppcolors", g(Jb)), a.localStorage.setItem("opprings", g(Kb)), a.localStorage.setItem("skinsalpha", g(Lb)), a.localStorage.setItem("cellsalpha", g(Mb)), a.localStorage.setItem("simpledraw", g(Nb)), a.localStorage.setItem("splittimer", g(Ob)), a.localStorage.setItem("splitrange", g(Pb)), a.localStorage.setItem("virusrange", g(Qb)), a.localStorage.setItem("biggernames", g(Rb)), a.localStorage.setItem("onlyogarioskins", g(Tb)), a.localStorage.setItem("showminimap", g(Ub)), a.localStorage.setItem("shifton", g(Vb)), a.localStorage.setItem("showfps", g(Wb)), a.localStorage.setItem("showmassguides", g(Xb)), a.localStorage.setItem("cursortracking", g(Yb)), a.localStorage.setItem("rainbowfood", g($b)), a.localStorage.setItem("sectorsbg", g(_b))
  62.     }
  63.  
  64.     function f() {
  65.         null !== a.localStorage.getItem("skins") && (setSkins(g(a.localStorage.getItem("skins"))), setNames(g(a.localStorage.getItem("names"))), setDarkTheme(g(a.localStorage.getItem("darktheme"))), setColors(g(a.localStorage.getItem("colors"))), setShowMass(g(a.localStorage.getItem("showmass"))), setSkipStats(g(a.localStorage.getItem("skipstats"))), setAcid(g(a.localStorage.getItem("acid"))), setZoom(g(a.localStorage.getItem("zoom"))), setMapBorders(g(a.localStorage.getItem("mapborders"))), setOppColors(g(a.localStorage.getItem("oppcolors"))), setOppRings(g(a.localStorage.getItem("opprings"))), setSkinsAlpha(g(a.localStorage.getItem("skinsalpha"))), setCellsAlpha(g(a.localStorage.getItem("cellsalpha"))), setSimpleDraw(g(a.localStorage.getItem("simpledraw"))), setSplitTimer(g(a.localStorage.getItem("splittimer"))), setSplitRange(g(a.localStorage.getItem("splitrange"))), setVirusRange(g(a.localStorage.getItem("virusrange"))), setBiggerNames(g(a.localStorage.getItem("biggernames"))), setOnlyOgarioSkins(g(a.localStorage.getItem("onlyogarioskins"))), setShowMiniMap(g(a.localStorage.getItem("showminimap"))), setShiftOn(g(a.localStorage.getItem("shifton"))), setShowFps(g(a.localStorage.getItem("showfps"))), setShowMassGuides(g(a.localStorage.getItem("showmassguides"))), setCursorTracking(g(a.localStorage.getItem("cursortracking"))), setRainbowFood(g(a.localStorage.getItem("rainbowfood"))), setSectorsBg(g(a.localStorage.getItem("sectorsbg"))))
  66.     }
  67.  
  68.     function g(a) {
  69.         return "string" == typeof a ? JSON.parse(a) : JSON.stringify(a)
  70.     }
  71.  
  72.     function h() {
  73.         return Ma.length > 0
  74.     }
  75.  
  76.     function j() {
  77.         return Ma.length > 1
  78.     }
  79.  
  80.     function k() {
  81.         return Ma.length
  82.     }
  83.  
  84.     function l(a) {
  85.         return (Date.now() - a) / 1e3
  86.     }
  87.  
  88.     function m(a) {
  89.         return Math.floor(l(a) / 3600) + "h " + Math.floor(l(a) / 60) % 60 + "m " + Math.floor(l(a) % 60) + "s"
  90.     }
  91.  
  92.     function n() {
  93.         return 30 + da() / 100 * .02
  94.     }
  95.  
  96.     function o() {
  97.         return j() ? Ob ? (k() != ec && (startSplitTime = Ma[k() - 1].createTime, ec = k()), n() - (Date.now() - startSplitTime) / 1e3) : 0 : (ec = 1, Sb = !0, 0)
  98.     }
  99.  
  100.     function p(a) {
  101.         dc = a
  102.     }
  103.  
  104.     function q() {
  105.         Sb = !Sb, ea(Sb, ib)
  106.     }
  107.  
  108.     function r() {
  109.         ac = !ac
  110.     }
  111.  
  112.     function s() {
  113.         tc--, 0 > tc && (tc = sc.length - 1)
  114.     }
  115.  
  116.     function t(a, b) {
  117.         sc.push({
  118.             x: a,
  119.             y: b
  120.         }), 6 == sc.length && sc.splice(0, 1), tc = sc.length - 1
  121.     }
  122.  
  123.     function u(a) {
  124.         a ? (cc = !0, lc = Date.now(), x(), gc = 0, t(kb, lb)) : cc = !1
  125.     }
  126.  
  127.     function v() {
  128.         var a = 0,
  129.             b = setInterval(function() {
  130.                 U(), X(21), 7 == ++a && clearInterval(b)
  131.             }, 100)
  132.     }
  133.  
  134.     function w() {
  135.         var a = 0,
  136.             b = setInterval(function() {
  137.                 U(), X(17), 4 == ++a && clearInterval(b)
  138.             }, 100)
  139.     }
  140.  
  141.     function x() {
  142.         Bb = 1
  143.     }
  144.  
  145.     function y(a) {
  146.         Bb *= Math.pow(.9, a.wheelDelta / -120 || a.detail || 0), !Hb && 1 > Bb && (Bb = 1), Bb > 4 / bb && (Bb = 4 / bb)
  147.     }
  148.  
  149.     function z() {
  150.         if (.4 > bb) Ha = null;
  151.         else {
  152.             for (var a = Number.POSITIVE_INFINITY, b = Number.POSITIVE_INFINITY, c = Number.NEGATIVE_INFINITY, d = Number.NEGATIVE_INFINITY, e = 0; e < Oa.length; e++) {
  153.                 var f = Oa[e];
  154.                 !f.H() || f.L || 20 >= f.size * bb || (a = Math.min(f.x - f.size, a), b = Math.min(f.y - f.size, b), c = Math.max(f.x + f.size, c), d = Math.max(f.y + f.size, d))
  155.             }
  156.             for (Ha = ld.X({
  157.                     ba: a - 10,
  158.                     ca: b - 10,
  159.                     Z: c + 10,
  160.                     $: d + 10,
  161.                     fa: 2,
  162.                     ha: 4
  163.                 }), e = 0; e < Oa.length; e++)
  164.                 if (f = Oa[e], f.H() && !(20 >= f.size * bb))
  165.                     for (a = 0; a < f.a.length; ++a) b = f.a[a].x, c = f.a[a].y, Ja - Fa / 2 / bb > b || Ka - Ga / 2 / bb > c || b > Ja + Fa / 2 / bb || c > Ka + Ga / 2 / bb || Ha.Y(f.a[a])
  166.         }
  167.     }
  168.  
  169.     function A() {
  170.         Ta = (Ra - Fa / 2) / bb + Ja, Ua = (Sa - Ga / 2) / bb + Ka
  171.     }
  172.  
  173.     function B() {
  174.         null == zc && (zc = {}, b("#region").children().each(function() {
  175.             var a = b(this),
  176.                 c = a.val();
  177.             c && (zc[c] = a.text())
  178.         })), b.get(Aa + "info", function(a) {
  179.             var d, c = {};
  180.             for (d in a.regions) {
  181.                 var e = d.split(":")[0];
  182.                 c[e] = c[e] || 0, c[e] += a.regions[d].numPlayers
  183.             }
  184.             for (d in c) b('#region option[value="' + d + '"]').text(zc[d] + " (" + c[d] + " players)")
  185.         }, "json")
  186.     }
  187.  
  188.     function C() {
  189.         b("#adsBottom").hide(), b("#overlays").hide(), b("#stats").hide(), b("#mainPanel").hide(), sd = Db = !1, G(), I(a.aa.concat(a.ac))
  190.     }
  191.  
  192.     function D(c) {
  193.         c && c != cb && (b("#region").val() != c && b("#region").val(c), cb = a.localStorage.location = c, b(".region-message").hide(), b(".region-message." + c).show(), b(".btn-needs-server").prop("disabled", !1), pb && L())
  194.     }
  195.  
  196.     function E(c) {
  197.         Db || sd || (Ya = null, Ac || (b("#adsBottom").show(), ac = !0, b("#g300x250").hide(), b("#a300x250").show()), H(Ac ? a.ac : a.aa), Ac = !1, 1e3 > c && (Cb = 1), Db = !0, b("#mainPanel").show(), c > 0 ? b("#overlays").fadeTo(c, .75) : b("#overlays").show())
  198.     }
  199.  
  200.     function F(a) {
  201.         b("#helloContainer").attr("data-gamemode", a), nb = a, b("#gamemode").val(a)
  202.     }
  203.  
  204.     function G() {
  205.         b("#region").val() ? a.localStorage.location = b("#region").val() : a.localStorage.location && b("#region").val(a.localStorage.location), b("#region").val() ? b("#locationKnown").append(b("#region")) : b("#locationUnknown").append(b("#region"))
  206.     }
  207.  
  208.     function H(b) {
  209.         a.googletag && a.googletag.cmd.push(function() {
  210.             Bc && (Bc = !1, setTimeout(function() {
  211.                 Bc = !0
  212.             }, 6e4 * Cc), a.googletag && a.googletag.pubads && a.googletag.pubads().refresh && a.googletag.pubads().refresh(b))
  213.         })
  214.     }
  215.  
  216.     function I(b) {
  217.         a.googletag && a.googletag.pubads && a.googletag.pubads().clear && a.googletag.pubads().clear(b)
  218.     }
  219.  
  220.     function J(b) {
  221.         return a.i18n[b] || a.i18n_dict.en[b] || b
  222.     }
  223.  
  224.     function K() {
  225.         var a = ++Eb;
  226.         console.log("Find " + cb + nb), b.ajax(Aa + "findServer", {
  227.             error: function() {
  228.                 setTimeout(K, 1e3)
  229.             },
  230.             success: function(b) {
  231.                 a == Eb && (b.alert && alert(b.alert), M("ws://" + b.ip, b.token))
  232.             },
  233.             dataType: "json",
  234.             method: "POST",
  235.             cache: !1,
  236.             crossDomain: !0,
  237.             data: (cb + nb || "?") + "\n154669603"
  238.         })
  239.     }
  240.  
  241.     function L() {
  242.         pb && cb && (b("#connecting").show(), K())
  243.     }
  244.  
  245.     function M(a, b) {
  246.         if (Ia) {
  247.             Ia.onopen = null, Ia.onmessage = null, Ia.onclose = null;
  248.             try {
  249.                 Ia.close()
  250.             } catch (c) {}
  251.             Ia = null
  252.         }
  253.         if (Gb.ip && (a = "ws://" + Gb.ip), null != Ec) {
  254.             var d = Ec;
  255.             Ec = function() {
  256.                 d(b)
  257.             }
  258.         }
  259.         if (za) {
  260.             var e = a.split(":");
  261.             a = e[0] + "s://ip-" + e[1].replace(/\./g, "-").replace(/\//g, "") + ".tech.agar.io:" + (+e[2] + 2e3)
  262.         }
  263.         La = [], Ma = [], Na = {}, Oa = [], Pa = [], Qa = [], Kc = ob = null, hb = 0, yb = !1, console.log("Connecting to " + a), Ia = new WebSocket(a), Ia.binaryType = "arraybuffer", Ia.onopen = function() {
  264.             var a;
  265.             console.log("socket open"), a = N(5), a.setUint8(0, 254), a.setUint32(1, 5, !0), O(a), a = N(5), a.setUint8(0, 255), a.setUint32(1, 154669603, !0), O(a), a = N(1 + b.length), a.setUint8(0, 80);
  266.             for (var c = 0; c < b.length; ++c) a.setUint8(c + 1, b.charCodeAt(c));
  267.             O(a), Y()
  268.         }, Ia.onmessage = Q, Ia.onclose = P, Ia.onerror = function() {
  269.             console.log("socket error")
  270.         }
  271.     }
  272.  
  273.     function N(a) {
  274.         return new DataView(new ArrayBuffer(a))
  275.     }
  276.  
  277.     function O(a) {
  278.         Ia.send(a.buffer)
  279.     }
  280.  
  281.     function P() {
  282.         yb && (Fc = 500), console.log("socket close"), setTimeout(L, Fc), Fc *= 2
  283.     }
  284.  
  285.     function Q(a) {
  286.         R(new DataView(a.data))
  287.     }
  288.  
  289.     function R(a) {
  290.         function b() {
  291.             for (var b = "";;) {
  292.                 var d = a.getUint16(c, !0);
  293.                 if (c += 2, 0 == d) break;
  294.                 b += String.fromCharCode(d)
  295.             }
  296.             return b
  297.         }
  298.         var c = 0;
  299.         switch (240 == a.getUint8(c) && (c += 5), a.getUint8(c++)) {
  300.             case 16:
  301.                 S(a, c);
  302.                 break;
  303.             case 17:
  304.                 kb = a.getFloat32(c, !0), c += 4, lb = a.getFloat32(c, !0), c += 4, mb = a.getFloat32(c, !0), c += 4;
  305.                 break;
  306.             case 20:
  307.                 Ma = [], La = [];
  308.                 break;
  309.             case 21:
  310.                 rb = a.getInt16(c, !0), c += 2, sb = a.getInt16(c, !0), c += 2, qb || (qb = !0, tb = rb, ub = sb);
  311.                 break;
  312.             case 32:
  313.                 La.push(a.getUint32(c, !0)), c += 4;
  314.                 break;
  315.             case 49:
  316.                 if (null != ob) break;
  317.                 var d = a.getUint32(c, !0),
  318.                     c = c + 4;
  319.                 Qa = [];
  320.                 for (var e = 0; d > e; ++e) {
  321.                     var f = a.getUint32(c, !0),
  322.                         c = c + 4;
  323.                     Qa.push({
  324.                         id: f,
  325.                         name: b()
  326.                     })
  327.                 }
  328.                 ia();
  329.                 break;
  330.             case 50:
  331.                 for (ob = [], d = a.getUint32(c, !0), c += 4, e = 0; d > e; ++e) ob.push(a.getFloat32(c, !0)), c += 4;
  332.                 ia();
  333.                 break;
  334.             case 64:
  335.                 Za = a.getFloat64(c, !0), c += 8, $a = a.getFloat64(c, !0), c += 8, _a = a.getFloat64(c, !0), c += 8, ab = a.getFloat64(c, !0), c += 8, kb = (_a + Za) / 2, lb = (ab + $a) / 2, mb = 1, 0 == Ma.length && (Ja = kb, Ka = lb, bb = mb);
  336.                 break;
  337.             case 81:
  338.                 var g = a.getUint32(c, !0),
  339.                     c = c + 4,
  340.                     h = a.getUint32(c, !0),
  341.                     c = c + 4,
  342.                     i = a.getUint32(c, !0),
  343.                     c = c + 4;
  344.                 setTimeout(function() {
  345.                     oa({
  346.                         d: g,
  347.                         e: h,
  348.                         c: i
  349.                     })
  350.                 }, 1200)
  351.         }
  352.     }
  353.  
  354.     function S(c, d) {
  355.         function e() {
  356.             for (var a = "";;) {
  357.                 var b = c.getUint16(d, !0);
  358.                 if (d += 2, 0 == b) break;
  359.                 a += String.fromCharCode(b)
  360.             }
  361.             return a
  362.         }
  363.  
  364.         function f() {
  365.             for (var a = "";;) {
  366.                 var b = c.getUint8(d++);
  367.                 if (0 == b) break;
  368.                 a += String.fromCharCode(b)
  369.             }
  370.             return a
  371.         }
  372.         zb = Wa = Date.now(), yb || (yb = !0, T()), gb = !1;
  373.         var g = c.getUint16(d, !0);
  374.         d += 2;
  375.         for (var h = 0; g > h; ++h) {
  376.             var i = Na[c.getUint32(d, !0)],
  377.                 j = Na[c.getUint32(d + 4, !0)];
  378.             d += 8, i && j && (j.R(), j.o = j.x, j.p = j.y, j.n = j.size, j.C = i.x, j.D = i.y, j.m = j.size, j.K = Wa, ua(i, j))
  379.         }
  380.         for (h = 0; g = c.getUint32(d, !0), d += 4, 0 != g;) {
  381.             ++h;
  382.             var k, i = c.getInt32(d, !0);
  383.             d += 4, j = c.getInt32(d, !0), d += 4, k = c.getInt16(d, !0), d += 2;
  384.             var l = c.getUint8(d++),
  385.                 m = c.getUint8(d++),
  386.                 n = c.getUint8(d++),
  387.                 m = la(l << 16 | m << 8 | n),
  388.                 n = c.getUint8(d++),
  389.                 o = !!(1 & n),
  390.                 p = !!(16 & n),
  391.                 q = null;
  392.             2 & n && (d += 4 + c.getUint32(d, !0)), 4 & n && (q = f());
  393.             var r = e(),
  394.                 l = null;
  395.             Na.hasOwnProperty(g) ? (l = Na[g], l.J(), l.o = l.x, l.p = l.y, l.n = l.size, l.color = m) : (l = new ka(g, i, j, k, m, r), Oa.push(l), Na[g] = l, l.ia = i, l.ja = j), l.f = o, l.j = p, l.C = i, l.D = j, l.m = k, l.K = Wa, l.T = n, q && (l.V = q), r && l.t(r), -1 != La.indexOf(g) && -1 == Ma.indexOf(l) && (Ma.push(l), 1 == Ma.length && (Ja = l.x, Ka = l.y, md(), document.getElementById("overlays").style.display = "none", pd = [], qd = 0, rd = Ma[0].color, td = !0, ud = Date.now(), yd = xd = wd = 0))
  396.         }
  397.         for (i = c.getUint32(d, !0), d += 4, h = 0; i > h; h++) g = c.getUint32(d, !0), d += 4, l = Na[g], null != l && l.R();
  398.         gb && 0 == Ma.length && (vd = Date.now(), td = !1, Db || sd || (Zb ? E(3e3) : (H(a.ab), xa(), sd = !0, b("#overlays").fadeTo(3e3, .75), b("#stats").show())), jc++, u(!1))
  399.     }
  400.  
  401.     function T() {
  402.         b("#connecting").hide(), V(), Ec && (Ec(), Ec = null), null != Gc && clearTimeout(Gc), Gc = setTimeout(function() {
  403.             a.ga && (++Hc, a.ga("set", "dimension2", Hc))
  404.         }, 1e4)
  405.     }
  406.  
  407.     function U() {
  408.         if (W() && !ac) {
  409.             var a = Ra - Fa / 2,
  410.                 b = Sa - Ga / 2;
  411.             64 > a * a + b * b || .01 > Math.abs(Ic - Ta) && .01 > Math.abs(Jc - Ua) || (Ic = Ta, Jc = Ua, a = N(13), a.setUint8(0, 16), a.setInt32(1, Ta, !0), a.setInt32(5, Ua, !0), a.setUint32(9, 0, !0), O(a))
  412.         }
  413.     }
  414.  
  415.     function V() {
  416.         if (W() && yb && null != Ya) {
  417.             var a = N(1 + 2 * Ya.length);
  418.             a.setUint8(0, 0);
  419.             for (var b = 0; b < Ya.length; ++b) a.setUint16(1 + 2 * b, Ya.charCodeAt(b), !0);
  420.             O(a), Ya = null
  421.         }
  422.     }
  423.  
  424.     function W() {
  425.         return null != Ia && Ia.readyState == Ia.OPEN
  426.     }
  427.  
  428.     function X(a) {
  429.         if (W()) {
  430.             var b = N(1);
  431.             b.setUint8(0, a), O(b)
  432.         }
  433.     }
  434.  
  435.     function Y() {
  436.         if (W() && null != Ab) {
  437.             var a = N(1 + Ab.length);
  438.             a.setUint8(0, 81);
  439.             for (var b = 0; b < Ab.length; ++b) a.setUint8(b + 1, Ab.charCodeAt(b));
  440.             O(a)
  441.         }
  442.     }
  443.  
  444.     function Z() {
  445.         Fa = 1 * a.innerWidth, Ga = 1 * a.innerHeight, Ca.width = Ea.width = Fa, Ca.height = Ea.height = Ga;
  446.         var c = b("#helloContainer");
  447.         c.css("transform", "none");
  448.         var d = c.height(),
  449.             e = a.innerHeight;
  450.         d > e / 1.1 ? c.css("transform", "translate(-50%, -50%) scale(" + e / d / 1.1 + ")") : c.css("transform", "translate(-50%, -50%)"), aa()
  451.     }
  452.  
  453.     function $() {
  454.         var a;
  455.         return a = 1 * Math.max(Ga / 1080, Fa / 1920), a *= Bb
  456.     }
  457.  
  458.     function _() {
  459.         if (0 != Ma.length) {
  460.             for (var a = 0, b = 0; b < Ma.length; b++) a += Ma[b].size;
  461.             a = Math.pow(Math.min(64 / a, 1), .4) * $(), bb = (9 * bb + a) / 10
  462.         }
  463.     }
  464.  
  465.     function aa() {
  466.         var a, b = Date.now();
  467.         if (++Va, Wa = b, 0 < Ma.length) {
  468.             _();
  469.             for (var c = a = 0, d = 0; d < Ma.length; d++) Ma[d].J(), a += Ma[d].x / Ma.length, c += Ma[d].y / Ma.length;
  470.             kb = a, lb = c, mb = bb, Ja = (Ja + a) / 2, Ka = (Ka + c) / 2
  471.         } else Ja = (29 * Ja + kb) / 30, Ka = (29 * Ka + lb) / 30, bb = (9 * bb + mb * $()) / 10;
  472.         for (z(), A(), xb || Da.clearRect(0, 0, Fa, Ga), xb ? (Da.fillStyle = ib ? "#111111" : "#F2FBFF", Da.globalAlpha = .05, Da.fillRect(0, 0, Fa, Ga), Da.globalAlpha = 1) : ba(), Oa.sort(function(a, b) {
  473.                 return a.size == b.size ? a.id - b.id : a.size - b.size
  474.             }), Da.save(), Da.translate(Fa / 2, Ga / 2), Da.scale(bb, bb), Da.translate(-Ja, -Ka), _b && fa(Da, 7, 7, -7080, -7080, 7080, 7080, 10, ib, !0), Ib && (Da.strokeStyle = "#FF7800", Da.lineWidth = 20, Da.strokeRect(-7080, -7080, 14160, 14160)), d = 0; d < Pa.length; d++) Pa[d].s(Da);
  475.         for (d = 0; d < Oa.length; d++) Oa[d].s(Da);
  476.         if (qb) {
  477.             for (tb = (3 * tb + rb) / 4, ub = (3 * ub + sb) / 4, Da.save(), Da.strokeStyle = "#FFAAAA", Da.lineWidth = 10, Da.lineCap = "round", Da.lineJoin = "round", Da.globalAlpha = .5, Da.beginPath(), d = 0; d < Ma.length; d++) Da.moveTo(Ma[d].x, Ma[d].y), Da.lineTo(tb, ub);
  478.             Da.stroke(), Da.restore()
  479.         }
  480.         Da.restore(), Kc && Kc.width && Da.drawImage(Kc, Fa - Kc.width - 10, 10), hb = Math.max(hb, da()), uc = da() / 100, h() && (roundTime = l(lc)), 0 != hb && (null == Mc && (Mc = new ma(20, "#FFFFFF")), Mc.u("Mass: " + ~~uc + " | Highest mass: " + ~~(hb / 100) + " | Kills: " + ~~gc + " | Food: " + ~~qd + " | Time: " + m(lc)), c = Mc.F(), a = c.width, Da.globalAlpha = .3, Da.fillStyle = "#000000", Da.fillRect(10, Ga - 10 - 20 - 10, a + 10, 30), Da.globalAlpha = 1, Da.drawImage(c, 15, Ga - 10 - 20 - 6)), fc = Math.max(fc, hb), hc = Math.max(hc, gc), ic = Math.max(ic, qd), dc && 0 != fc && (null == Nc && (Nc = new ma(20, "#FF7800")), Nc.u("Game highest mass: " + ~~(fc / 100) + " | Highest kills: " + ~~hc + " | Highest food: " + ~~ic + " | Total deaths: " + ~~jc + " | Game time: " + m(kc)), c = Nc.F(), a = c.width, Da.globalAlpha = .4, Da.fillStyle = "#000000", Da.fillRect(10, Ga - 10 - 20 - 10 - 35, a + 10, 30), Da.globalAlpha = 1, Da.drawImage(c, 15, Ga - 10 - 20 - 6 - 35)), nc = o(), Ob && j() && (null == Oc && (Oc = new ma(30, "#FF7800", "000000")), Oc.u(~~nc + "s"), c = Oc.F(), a = c.width, Da.globalAlpha = 1, Da.drawImage(c, Fa / 2 - a / 2, 10)), j() && (Qc && Qc.width ? Da.drawImage(Qc, Fa / 2 - 28, Ob ? 44 : 10) : ea(Sb, ib), null == Pc && (Pc = new ma(20, "#FFFFFF", "#000000")), Pc.u(~~k() + " / 16"), c = Pc.F(), a = c.width, Da.globalAlpha = 1, Da.drawImage(c, Fa / 2 - a / 2, Ob ? 78 : 44)), Wb && h() && (null == Rc && (Rc = new ma(20, "#FF7800")), Rc.u("FPS: " + ~~oc), c = Rc.F(), a = c.width, Da.globalAlpha = .3, Da.fillStyle = "#000000", Da.fillRect(10, 10, a + 10, 30), Da.globalAlpha = 1, Da.drawImage(c, 15, 14)), Xb && h() && (null == Sc && (Sc = new ma(20, "#FF0000")), Sc.u("●● >" + ~~Math.floor(2.5 * uc)), c = Sc.F(), a = c.width, Da.globalAlpha = .2, Da.fillStyle = "#000000", Da.fillRect(10, Wb ? 41 : 10, a + 10, 30), Da.globalAlpha = 1, Da.drawImage(c, 15, 14 + (Wb ? 31 : 0)), null == Tc && (Tc = new ma(20, "#FF8800")), Tc.u("● >" + ~~Math.floor(1.25 * uc)), c = Tc.F(), a = c.width, Da.globalAlpha = .2, Da.fillStyle = "#000000", Da.fillRect(10, Wb ? 72 : 41, a + 10, 30), Da.globalAlpha = 1, Da.drawImage(c, 15, 14 + (Wb ? 62 : 31)), null == Uc && (Uc = new ma(20, "#00FF00")), Uc.u("● <" + ~~Math.floor(.75 * uc)), c = Uc.F(), a = c.width, Da.globalAlpha = .2, Da.fillStyle = "#000000", Da.fillRect(10, Wb ? 103 : 72, a + 10, 30), Da.globalAlpha = 1, Da.drawImage(c, 15, 14 + (Wb ? 93 : 62)), uc >= 35 && (null == Vc && (Vc = new ma(20, "#0066FF")), Vc.u("●● <" + ~~Math.floor(uc * (1e3 > uc ? .35 : .38))), c = Vc.F(), a = c.width, Da.globalAlpha = .2, Da.fillStyle = "#000000", Da.fillRect(10, Wb ? 134 : 103, a + 10, 30), Da.globalAlpha = 1, Da.drawImage(c, 15, 14 + (Wb ? 124 : 93)), null == Wc && (Wc = new ma(20, "#FFFFFF")), Wc.u("W x" + ~~Math.floor((uc - 18) / 17)), c = Wc.F(), a = c.width, Da.globalAlpha = .2, Da.fillStyle = "#000000", Da.fillRect(10, Wb ? 165 : 134, a + 10, 30), Da.globalAlpha = 1, Da.drawImage(c, 15, 14 + (Wb ? 155 : 124)))), Ub && (ha(7, 7, kb, lb, 182, 14160, Ma, ib), Yc && Yc.width && Da.drawImage(Yc, Fa - Yc.width - 10, Ga - Yc.height - 45)), h() && (null == Xc && (Xc = new ma(14, "#FFFFFF", "#000000")), Xc.u("Polish MOD: OGARio by szymy"), c = Xc.F(), a = c.width, Da.globalAlpha = .75, Da.drawImage(c, Fa - a - 10, Ga - 5 - 15 - 5), Da.globalAlpha = 1), ca(), b = Date.now() - b, b > 1e3 / 60 ? Lc -= .01 : 1e3 / 65 > b && (Lc += .01), .4 > Lc && (Lc = .4), Lc > 1 && (Lc = 1), b = Wa - Xa, !W() || Db || sd ? (Cb += b / 2e3, Cb > 1 && (Cb = 1)) : (Cb -= b / 300, 0 > Cb && (Cb = 0)), Cb > 0 ? (Da.fillStyle = "#000000", Fb ? (Da.globalAlpha = Cb, Da.fillRect(0, 0, Fa, Ga), vc.complete && vc.width && (vc.width / vc.height < Fa / Ga ? (b = Fa, a = vc.height * Fa / vc.width) : (b = vc.width * Ga / vc.height, a = Ga), Da.drawImage(vc, (Fa - b) / 2, (Ga - a) / 2, b, a), Da.globalAlpha = .5 * Cb, Da.fillRect(0, 0, Fa, Ga))) : (Da.globalAlpha = .5 * Cb, Da.fillRect(0, 0, Fa, Ga)), Da.globalAlpha = 1) : Fb = !1, Xa = Wa
  481.         }
  482.  
  483.     function ba() {
  484.         if (Da.fillStyle = ib ? "#111111" : "#F2FBFF", Da.fillRect(0, 0, Fa, Ga), Da.save(), Da.strokeStyle = ib ? "#AAAAAA" : "#000000", Da.globalAlpha = .2 * bb, !_b) {
  485.             Da.strokeStyle = ib ? "#AAAAAA" : "#000000", Da.globalAlpha = .2 * bb;
  486.             for (var a = Fa / bb, b = Ga / bb, c = (-Ja + a / 2) % 50; a > c; c += 50) Da.beginPath(), Da.moveTo(c * bb - .5, 0), Da.lineTo(c * bb - .5, b * bb), Da.stroke();
  487.             for (c = (-Ka + b / 2) % 50; b > c; c += 50) Da.beginPath(), Da.moveTo(0, c * bb - .5), Da.lineTo(a * bb, c * bb - .5), Da.stroke()
  488.         }
  489.         Da.restore()
  490.     }
  491.  
  492.     function ca() {
  493.         if (wc && xc.width) {
  494.             var a = Fa / 5;
  495.             Da.drawImage(xc, 5, 5, a, a)
  496.         }
  497.     }
  498.  
  499.     function da() {
  500.         for (var a = 0, b = 0; b < Ma.length; b++) a += Ma[b].m * Ma[b].m;
  501.         return a
  502.     }
  503.  
  504.     function ea(a, b) {
  505.         Qc = document.createElement("canvas");
  506.         var c = Qc.getContext("2d");
  507.         Qc.width = 56, Qc.height = 32, c.fillStyle = b ? "#FFFFFF" : "#000000", c.globalAlpha = a ? .6 : .3, c.beginPath(), c.arc(16, 16, 16, 0, 2 * Math.PI, !1), c.closePath(), c.fill(), c.globalAlpha = a ? .3 : .6, c.beginPath(), c.arc(44, 16, 12, 0, 2 * Math.PI, !1), c.closePath(), c.fill()
  508.     }
  509.  
  510.     function fa(a, b, c, d, e, f, g, h, i, j) {
  511.         var k = Math.ceil((f - d) / b),
  512.             l = Math.ceil((g - e) / c);
  513.         a.save(), j ? (a.strokeStyle = i ? "#292929" : "#D9E1E5", a.fillStyle = i ? "#292929" : "#D9E1E5") : (a.strokeStyle = "#FFFFFF", a.fillStyle = "#FFFFFF"), a.lineWidth = h, a.font = .6 * l + "px Ubuntu";
  514.         for (var m = 0; b + 1 > m; m++) a.beginPath(), a.moveTo(m == b ? f : d + k * m, e), a.lineTo(m == b ? f : d + k * m, g), a.stroke();
  515.         for (var m = 0; c + 1 > m; m++) a.beginPath(), a.moveTo(d, m == c ? g : e + l * m), a.lineTo(f, m == c ? g : e + l * m), a.stroke();
  516.         for (var m = 0; c > m; m++)
  517.             for (var n = "", o = 0; b > o; o++) n = String.fromCharCode(65 + m) + (o + 1), a.fillText(n, d + k / 2 + o * k - a.measureText(n).width / 2, e + l / 2 + m * l + .2 * l);
  518.         a.restore()
  519.     }
  520.  
  521.     function ga(a, b, c, d) {
  522.         Zc = document.createElement("canvas");
  523.         var e = Zc.getContext("2d");
  524.         Zc.width = c, Zc.height = d, fa(e, a, b, .5, .5, c - .5, d - .5, 1, ib, !1)
  525.     }
  526.  
  527.     function ha(a, b, c, d, e, f, g, i) {
  528.         if (h()) {
  529.             Yc = document.createElement("canvas");
  530.             var j = Yc.getContext("2d"),
  531.                 k = e / f,
  532.                 l = "X:" + ~~c + " Y:" + ~~d,
  533.                 m = f / 2,
  534.                 n = String.fromCharCode(65 + Math.floor((d + m) / (f / a))) + (Math.floor((c + m) / (f / b)) + 1);
  535.             Yc.width = 200, Yc.height = 222, j.globalAlpha = .2, j.fillStyle = "#000000", j.fillRect(0, 0, 200, 222), j.globalAlpha = 1, j.font = "16px Ubuntu", j.fillStyle = "#FF7800", j.fillText(n, 11, 22), j.fillStyle = "#FFFFFF", j.fillText(l, 200 - j.measureText(l).width - 11, 22), j.globalAlpha = i ? .2 : .4, Zc && Zc.width ? j.drawImage(Zc, 9, 31) : ga(a, b, e, e), j.translate(9.5, 30.5), j.globalAlpha = 1, j.fillStyle = "#FFFFFF";
  536.             for (var o = 0; o < g.length; o++) j.beginPath(), j.arc((g[o].x + m) * k, (g[o].y + m) * k, Math.max(4.5, (g[o].size + 5) * k), 0, 2 * Math.PI, !1), j.closePath(), j.fill();
  537.             if (sc.length > 0) {
  538.                 var p = Math.round((sc[tc].x + m) * k),
  539.                     q = Math.round((sc[tc].y + m) * k);
  540.                 j.lineWidth = 1, j.strokeStyle = sc.length - 1 == tc ? "#FF7800" : "#FFFFFF", j.beginPath(), j.moveTo(p - 4.5, q), j.lineTo(p + 4.5, q), j.closePath(), j.stroke(), j.beginPath(), j.moveTo(p, q - 4.5), j.lineTo(p, q + 4.5), j.closePath(), j.stroke()
  541.             }
  542.         }
  543.     }
  544.  
  545.     function ia() {
  546.         if (Kc = null, (null != ob || 0 != Qa.length) && (null != ob || eb)) {
  547.             Kc = document.createElement("canvas");
  548.             var a = Kc.getContext("2d"),
  549.                 c = 60,
  550.                 c = null == ob ? c + 24 * Qa.length : c + 180,
  551.                 d = Math.min(200, .3 * Fa) / 200;
  552.             if (Kc.width = 200 * d, Kc.height = c * d, a.scale(d, d), a.globalAlpha = .4, a.fillStyle = "#000000", a.fillRect(0, 0, 200, c), a.globalAlpha = 1, a.fillStyle = "#FFFFFF", d = null, d = J("leaderboard"), a.font = "30px Ubuntu", a.fillText(d, 100 - a.measureText(d).width / 2, 40), null == ob) {
  553.                 for (pc = "", a.font = "20px Ubuntu", c = 0; c < Qa.length; ++c) d = Qa[c].name || J("unnamed_cell"), eb || (d = J("unnamed_cell")), -1 != La.indexOf(Qa[c].id) ? (Ma[0].name && (d = Ma[0].name), a.fillStyle = "#FF7800") : a.fillStyle = 0 == Qa[c].name.indexOf("☯ ☯ ", "☯ 陽 ", "☯ 陰 ") ? "#00C8FF" : "#FFFFFF", d = c + 1 + ". " + d, pc += d + "<br>", a.fillText(d, 100 - a.measureText(d).width / 2, 70 + 24 * c);
  554.                 b(".partyInfoTopka").html(pc)
  555.             } else
  556.                 for (c = d = 0; c < ob.length; ++c) {
  557.                     var e = d + ob[c] * Math.PI * 2;
  558.                     a.fillStyle = wb[c + 1], a.beginPath(), a.moveTo(100, 140), a.arc(100, 140, 80, d, e, !1), a.fill(), d = e
  559.                 }
  560.         }
  561.     }
  562.  
  563.     function ja(a, b, c, d, e) {
  564.         this.P = a, this.x = b, this.y = c, this.g = d, this.b = e
  565.     }
  566.  
  567.     function ka(a, b, c, d, e, f) {
  568.         this.id = a, this.o = this.x = b, this.p = this.y = c, this.n = this.size = d, this.color = e, this.a = [], this.Q(), this.t(f), this.createTime = Date.now()
  569.     }
  570.  
  571.     function la(a) {
  572.         for (a = a.toString(16); 6 > a.length;) a = "0" + a;
  573.         return "#" + a
  574.     }
  575.  
  576.     function ma(a, b, c, d) {
  577.         a && (this.q = a), b && (this.M = b), this.O = !!c, d && (this.r = d)
  578.     }
  579.  
  580.     function na(a) {
  581.         for (var c, d, b = a.length; b > 0;) d = Math.floor(Math.random() * b), b--, c = a[b], a[b] = a[d], a[d] = c
  582.     }
  583.  
  584.     function oa(c, d) {
  585.         var e = "1" == b("#helloContainer").attr("data-has-account-data");
  586.         if (b("#helloContainer").attr("data-has-account-data", "1"), null == d && a.localStorage[nd]) {
  587.             var f = JSON.parse(a.localStorage[nd]);
  588.             f.xp = c.e, f.xpNeeded = c.c, f.level = c.d, a.localStorage[nd] = JSON.stringify(f)
  589.         }
  590.         if (e) {
  591.             var g = +b(".agario-exp-bar .progress-bar-text").first().text().split("/")[0],
  592.                 e = +b(".agario-exp-bar .progress-bar-text").first().text().split("/")[1].split(" ")[0],
  593.                 f = b(".agario-profile-panel .progress-bar-star").first().text();
  594.             if (f != c.d) oa({
  595.                 e: e,
  596.                 c: e,
  597.                 d: f
  598.             }, function() {
  599.                 b(".agario-profile-panel .progress-bar-star").text(c.d), b(".agario-exp-bar .progress-bar").css("width", "100%"), b(".progress-bar-star").addClass("animated tada").one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function() {
  600.                     b(".progress-bar-star").removeClass("animated tada")
  601.                 }), setTimeout(function() {
  602.                     b(".agario-exp-bar .progress-bar-text").text(c.c + "/" + c.c + " XP"), oa({
  603.                         e: 0,
  604.                         c: c.c,
  605.                         d: c.d
  606.                     }, function() {
  607.                         oa(c, d)
  608.                     })
  609.                 }, 1e3)
  610.             });
  611.             else {
  612.                 var h = Date.now(),
  613.                     i = function() {
  614.                         var e;
  615.                         e = (Date.now() - h) / 1e3, e = 0 > e ? 0 : e > 1 ? 1 : e, e = e * e * (3 - 2 * e), b(".agario-exp-bar .progress-bar-text").text(~~(g + (c.e - g) * e) + "/" + c.c + " XP"), b(".agario-exp-bar .progress-bar").css("width", (88 * (g + (c.e - g) * e) / c.c).toFixed(2) + "%"), 1 > e ? a.requestAnimationFrame(i) : d && d()
  616.                     };
  617.                 a.requestAnimationFrame(i)
  618.             }
  619.         } else b(".agario-profile-panel .progress-bar-star").text(c.d), b(".agario-exp-bar .progress-bar-text").text(c.e + "/" + c.c + " XP"), b(".agario-exp-bar .progress-bar").css("width", (88 * c.e / c.c).toFixed(2) + "%"), d && d()
  620.     }
  621.  
  622.     function pa(c) {
  623.         "string" == typeof c && (c = JSON.parse(c)), Date.now() + 18e5 > c.expires ? b("#helloContainer").attr("data-logged-in", "0") : (a.localStorage[nd] = JSON.stringify(c), Ab = c.authToken, b(".agario-profile-name").text(c.name), Y(), oa({
  624.             e: c.xp,
  625.             c: c.xpNeeded,
  626.             d: c.level
  627.         }), b("#helloContainer").attr("data-logged-in", "1"))
  628.     }
  629.  
  630.     function qa(a) {
  631.         a = a.split("\n"), pa({
  632.             name: a[0],
  633.             fbid: a[1],
  634.             authToken: a[2],
  635.             expires: 1e3 * +a[3],
  636.             level: +a[4],
  637.             xp: +a[5],
  638.             xpNeeded: +a[6]
  639.         })
  640.     }
  641.  
  642.     function ra(c) {
  643.         if ("connected" == c.status) {
  644.             var d = c.authResponse.accessToken;
  645.             console.log(d), a.FB.api("/me/picture?width=180&height=180", function(c) {
  646.                 a.localStorage.fbPictureCache = c.data.url, b(".agario-profile-picture").attr("src", c.data.url)
  647.             }), b("#helloContainer").attr("data-logged-in", "1"), null != Ab ? b.ajax(Aa + "checkToken", {
  648.                 error: function() {
  649.                     Ab = null, ra(c)
  650.                 },
  651.                 success: function(a) {
  652.                     a = a.split("\n"), oa({
  653.                         d: +a[0],
  654.                         e: +a[1],
  655.                         c: +a[2]
  656.                     })
  657.                 },
  658.                 dataType: "text",
  659.                 method: "POST",
  660.                 cache: !1,
  661.                 crossDomain: !0,
  662.                 data: Ab
  663.             }) : b.ajax(Aa + "facebookLogin", {
  664.                 error: function() {
  665.                     Ab = null, b("#helloContainer").attr("data-logged-in", "0")
  666.                 },
  667.                 success: qa,
  668.                 dataType: "text",
  669.                 method: "POST",
  670.                 cache: !1,
  671.                 crossDomain: !0,
  672.                 data: d
  673.             })
  674.         }
  675.     }
  676.  
  677.     function sa(c) {
  678.         F(":party"), b("#helloContainer").attr("data-party-state", "4"), c = decodeURIComponent(c).replace(/.*#/gim, ""), ta("#" + a.encodeURIComponent(c)), b.ajax(Aa + "getToken", {
  679.             error: function() {
  680.                 b("#helloContainer").attr("data-party-state", "6")
  681.             },
  682.             success: function(d) {
  683.                 d = d.split("\n"), b(".partyToken").val("agar.io/#" + a.encodeURIComponent(c)), b(".partyInfoToken").text("agar.io/#" + a.encodeURIComponent(c)), b("#helloContainer").attr("data-party-state", "5"), F(":party"), M("ws://" + d[0], c)
  684.             },
  685.             dataType: "text",
  686.             method: "POST",
  687.             cache: !1,
  688.             crossDomain: !0,
  689.             data: c
  690.         })
  691.     }
  692.  
  693.     function ta(b) {
  694.         a.history && a.history.replaceState && a.history.replaceState({}, a.document.title, b)
  695.     }
  696.  
  697.     function ua(a, b) {
  698.         ~Ma.indexOf(a) && b.name && ++gc;
  699.         var c = -1 != La.indexOf(a.id),
  700.             d = -1 != La.indexOf(b.id),
  701.             e = 30 > b.size;
  702.         c && e && ++qd, e || !c || d || ++xd
  703.     }
  704.  
  705.     function va(a) {
  706.         a = ~~a;
  707.         var b = (a % 60).toString();
  708.         return a = (~~(a / 60)).toString(), 2 > b.length && (b = "0" + b), a + ":" + b
  709.     }
  710.  
  711.     function wa() {
  712.         if (null == Qa) return 0;
  713.         for (var a = 0; a < Qa.length; ++a)
  714.             if (-1 != La.indexOf(Qa[a].id)) return a + 1;
  715.         return 0
  716.     }
  717.  
  718.     function xa() {
  719.         b(".stats-food-eaten").text(qd), b(".stats-time-alive").text(va((vd - ud) / 1e3)), b(".stats-leaderboard-time").text(va(wd)), b(".stats-highest-mass").text(~~(hb / 100)), b(".stats-cells-eaten").text(xd), b(".stats-top-position").text(0 == yd ? ":(" : yd);
  720.         var a = document.getElementById("statsGraph");
  721.         if (a) {
  722.             var c = a.getContext("2d"),
  723.                 d = a.width,
  724.                 a = a.height;
  725.             if (c.clearRect(0, 0, d, a), 2 < pd.length) {
  726.                 for (var e = 200, f = 0; f < pd.length; f++) e = Math.max(pd[f], e);
  727.                 for (c.lineWidth = 3, c.lineCap = "round", c.lineJoin = "round", c.strokeStyle = rd, c.fillStyle = rd, c.beginPath(), c.moveTo(0, a - pd[0] / e * (a - 10) + 10), f = 1; f < pd.length; f += Math.max(~~(pd.length / d), 1)) {
  728.                     for (var g = f / (pd.length - 1) * d, h = [], i = -20; 20 >= i; ++i) 0 > f + i || f + i >= pd.length || h.push(pd[f + i]);
  729.                     h = h.reduce(function(a, b) {
  730.                         return a + b
  731.                     }) / h.length / e, c.lineTo(g, a - h * (a - 10) + 10)
  732.                 }
  733.                 c.stroke(), c.globalAlpha = .5, c.lineTo(d, a), c.lineTo(0, a), c.fill(), c.globalAlpha = 1
  734.             }
  735.         }
  736.     }
  737.     if (!a.agarioNoInit) {
  738.         var ya = a.location.protocol,
  739.             za = "https:" == ya,
  740.             Aa = ya + "//m.agar.io/";
  741.         if (za && -1 == a.location.search.indexOf("fb")) a.location.href = "http://agar.io/";
  742.         else {
  743.             var Ba = a.navigator.userAgent;
  744.             if (-1 != Ba.indexOf("Android")) a.ga && a.ga("send", "event", "MobileRedirect", "PlayStore"), setTimeout(function() {
  745.                 a.location.href = "https://play.google.com/store/apps/details?id=com.miniclip.agar.io"
  746.             }, 1e3);
  747.             else if (-1 != Ba.indexOf("iPhone") || -1 != Ba.indexOf("iPad") || -1 != Ba.indexOf("iPod")) a.ga && a.ga("send", "event", "MobileRedirect", "AppStore"), setTimeout(function() {
  748.                 a.location.href = "https://itunes.apple.com/app/agar.io/id995999703?mt=8&at=1l3vajp"
  749.             }, 1e3);
  750.             else {
  751.                 var Ca, Da, Ea, Fa, Ga, Ha = null,
  752.                     Ia = null,
  753.                     Ja = 0,
  754.                     Ka = 0,
  755.                     La = [],
  756.                     Ma = [],
  757.                     Na = {},
  758.                     Oa = [],
  759.                     Pa = [],
  760.                     Qa = [],
  761.                     Ra = 0,
  762.                     Sa = 0,
  763.                     Ta = -1,
  764.                     Ua = -1,
  765.                     Va = 0,
  766.                     Wa = 0,
  767.                     Xa = 0,
  768.                     Ya = null,
  769.                     Za = 0,
  770.                     $a = 0,
  771.                     _a = 1e4,
  772.                     ab = 1e4,
  773.                     bb = 1,
  774.                     cb = null,
  775.                     db = !0,
  776.                     eb = !0,
  777.                     fb = !1,
  778.                     gb = !1,
  779.                     hb = 0,
  780.                     ib = !0,
  781.                     jb = !0,
  782.                     kb = Ja = ~~((Za + _a) / 2),
  783.                     lb = Ka = ~~(($a + ab) / 2),
  784.                     mb = 1,
  785.                     nb = "",
  786.                     ob = null,
  787.                     pb = !1,
  788.                     qb = !1,
  789.                     rb = 0,
  790.                     sb = 0,
  791.                     tb = 0,
  792.                     ub = 0,
  793.                     vb = 0,
  794.                     wb = ["#333333", "#FF3333", "#33FF33", "#3333FF"],
  795.                     xb = !1,
  796.                     yb = !1,
  797.                     zb = 0,
  798.                     Ab = null,
  799.                     Bb = 1,
  800.                     Cb = 1,
  801.                     Db = !1,
  802.                     Eb = 0,
  803.                     Fb = !1,
  804.                     Gb = {},
  805.                     Hb = !0,
  806.                     Ib = !0,
  807.                     Jb = !0,
  808.                     Kb = !1,
  809.                     Lb = !0,
  810.                     Mb = !0,
  811.                     Nb = !0,
  812.                     Ob = !0,
  813.                     Pb = !0,
  814.                     Qb = !0,
  815.                     Rb = !0,
  816.                     Sb = !0,
  817.                     Tb = !1,
  818.                     Ub = !0,
  819.                     Vb = !0,
  820.                     Wb = !0,
  821.                     Xb = !0,
  822.                     Yb = !0,
  823.                     Zb = !1,
  824.                     $b = !1,
  825.                     _b = !0,
  826.                     ac = !0,
  827.                     bc = !1,
  828.                     cc = !1,
  829.                     dc = !1,
  830.                     ec = 1,
  831.                     fc = 0,
  832.                     gc = 0,
  833.                     hc = 0,
  834.                     ic = 0,
  835.                     jc = 0,
  836.                     kc = 0,
  837.                     lc = 0,
  838.                     nc = 0,
  839.                     oc = 0,
  840.                     pc = "",
  841.                     qc = "",
  842.                     rc = "",
  843.                     sc = [],
  844.                     tc = 0,
  845.                     uc = 0;
  846.                 ! function() {
  847.                     var b = a.location.search;
  848.                     "?" == b.charAt(0) && (b = b.slice(1));
  849.                     for (var b = b.split("&"), c = 0; c < b.length; c++) {
  850.                         var d = b[c].split("=");
  851.                         Gb[d[0]] = d[1]
  852.                     }
  853.                 }();
  854.                 var vc = new Image;
  855.                 vc.src = "img/background.png";
  856.                 var wc = "ontouchstart" in a && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a.navigator.userAgent),
  857.                     xc = new Image;
  858.                 xc.src = "img/split.png";
  859.                 var yc = document.createElement("canvas");
  860.                 if ("undefined" == typeof console || "undefined" == typeof DataView || "undefined" == typeof WebSocket || null == yc || null == yc.getContext || null == a.localStorage) alert("You browser does not support this game, we recommend you to use Firefox to play this");
  861.                 else {
  862.                     var zc = null;
  863.                     a.setNick = function(c) {
  864.                         rc = b("#clanTag").val(), qc = c, Ya = rc + qc, a.ga && a.ga("send", "event", "Nick", Ya.toLowerCase()), C(), V(), hb = 0, !bc && (kc = Date.now(), bc = !0), !cc && u(!0), e(), ac = !1
  865.                     }, a.setRegion = D;
  866.                     var Ac = !0;
  867.                     a.setSkins = function(a) {
  868.                         db = a
  869.                     }, a.setNames = function(a) {
  870.                         eb = a
  871.                     }, a.setDarkTheme = function(a) {
  872.                         ib = a
  873.                     }, a.setColors = function(a) {
  874.                         fb = a
  875.                     }, a.setShowMass = function(a) {
  876.                         jb = a
  877.                     }, a.spectate = function() {
  878.                         Ya = null, X(1), C(), ac = !1
  879.                     }, a.setGameMode = function(a) {
  880.                         a != nb && (":party" == nb && b("#helloContainer").attr("data-party-state", "0"), F(a), ":party" != a && L())
  881.                     }, a.setAcid = function(a) {
  882.                         xb = a
  883.                     }, a.setSkipStats = function(a) {
  884.                         Zb = a
  885.                     }, a.nextIP = function() {
  886.                         K()
  887.                     }, a.setZoom = function(a) {
  888.                         Hb = a
  889.                     }, a.setMapBorders = function(a) {
  890.                         Ib = a
  891.                     }, a.setOppColors = function(a) {
  892.                         Jb = a
  893.                     }, a.setOppRings = function(a) {
  894.                         Kb = a
  895.                     }, a.setSkinsAlpha = function(a) {
  896.                         Lb = a
  897.                     }, a.setCellsAlpha = function(a) {
  898.                         Mb = a
  899.                     }, a.setSimpleDraw = function(a) {
  900.                         Nb = a
  901.                     }, a.setSplitTimer = function(a) {
  902.                         Ob = a
  903.                     }, a.setSplitRange = function(a) {
  904.                         Pb = a
  905.                     }, a.setVirusRange = function(a) {
  906.                         Qb = a
  907.                     }, a.setBiggerNames = function(a) {
  908.                         Rb = a
  909.                     }, a.setOnlyOgarioSkins = function(a) {
  910.                         Tb = a
  911.                     }, a.setShowMiniMap = function(a) {
  912.                         Ub = a
  913.                     }, a.setShiftOn = function(a) {
  914.                         Vb = a
  915.                     }, a.setShowFps = function(a) {
  916.                         Wb = a
  917.                     }, a.setShowMassGuides = function(a) {
  918.                         Xb = a
  919.                     }, a.setCursorTracking = function(a) {
  920.                         Yb = a
  921.                     }, a.setRainbowFood = function(a) {
  922.                         $b = a
  923.                     }, a.setSectorsBg = function(a) {
  924.                         _b = a
  925.                     }, f(), null != a.localStorage && (null == a.localStorage.AB9 && (a.localStorage.AB9 = 0 + ~~(100 * Math.random())), vb = +a.localStorage.AB9, a.ABGroup = vb), b.get(ya + "//gc.agar.io", function(a) {
  926.                         var b = a.split(" ");
  927.                         a = b[0], b = b[1] || "", -1 == ["UA"].indexOf(a) && ad.push("ussr"), Dc.hasOwnProperty(a) && ("string" == typeof Dc[a] ? cb || D(Dc[a]) : Dc[a].hasOwnProperty(b) && (cb || D(Dc[a][b])))
  928.                     }, "text");
  929.                     var Bc = !0,
  930.                         Cc = 0,
  931.                         Dc = {
  932.                             AF: "JP-Tokyo",
  933.                             AX: "EU-London",
  934.                             AL: "EU-London",
  935.                             DZ: "EU-London",
  936.                             AS: "SG-Singapore",
  937.                             AD: "EU-London",
  938.                             AO: "EU-London",
  939.                             AI: "US-Atlanta",
  940.                             AG: "US-Atlanta",
  941.                             AR: "BR-Brazil",
  942.                             AM: "JP-Tokyo",
  943.                             AW: "US-Atlanta",
  944.                             AU: "SG-Singapore",
  945.                             AT: "EU-London",
  946.                             AZ: "JP-Tokyo",
  947.                             BS: "US-Atlanta",
  948.                             BH: "JP-Tokyo",
  949.                             BD: "JP-Tokyo",
  950.                             BB: "US-Atlanta",
  951.                             BY: "EU-London",
  952.                             BE: "EU-London",
  953.                             BZ: "US-Atlanta",
  954.                             BJ: "EU-London",
  955.                             BM: "US-Atlanta",
  956.                             BT: "JP-Tokyo",
  957.                             BO: "BR-Brazil",
  958.                             BQ: "US-Atlanta",
  959.                             BA: "EU-London",
  960.                             BW: "EU-London",
  961.                             BR: "BR-Brazil",
  962.                             IO: "JP-Tokyo",
  963.                             VG: "US-Atlanta",
  964.                             BN: "JP-Tokyo",
  965.                             BG: "EU-London",
  966.                             BF: "EU-London",
  967.                             BI: "EU-London",
  968.                             KH: "JP-Tokyo",
  969.                             CM: "EU-London",
  970.                             CA: "US-Atlanta",
  971.                             CV: "EU-London",
  972.                             KY: "US-Atlanta",
  973.                             CF: "EU-London",
  974.                             TD: "EU-London",
  975.                             CL: "BR-Brazil",
  976.                             CN: "CN-China",
  977.                             CX: "JP-Tokyo",
  978.                             CC: "JP-Tokyo",
  979.                             CO: "BR-Brazil",
  980.                             KM: "EU-London",
  981.                             CD: "EU-London",
  982.                             CG: "EU-London",
  983.                             CK: "SG-Singapore",
  984.                             CR: "US-Atlanta",
  985.                             CI: "EU-London",
  986.                             HR: "EU-London",
  987.                             CU: "US-Atlanta",
  988.                             CW: "US-Atlanta",
  989.                             CY: "JP-Tokyo",
  990.                             CZ: "EU-London",
  991.                             DK: "EU-London",
  992.                             DJ: "EU-London",
  993.                             DM: "US-Atlanta",
  994.                             DO: "US-Atlanta",
  995.                             EC: "BR-Brazil",
  996.                             EG: "EU-London",
  997.                             SV: "US-Atlanta",
  998.                             GQ: "EU-London",
  999.                             ER: "EU-London",
  1000.                             EE: "EU-London",
  1001.                             ET: "EU-London",
  1002.                             FO: "EU-London",
  1003.                             FK: "BR-Brazil",
  1004.                             FJ: "SG-Singapore",
  1005.                             FI: "EU-London",
  1006.                             FR: "EU-London",
  1007.                             GF: "BR-Brazil",
  1008.                             PF: "SG-Singapore",
  1009.                             GA: "EU-London",
  1010.                             GM: "EU-London",
  1011.                             GE: "JP-Tokyo",
  1012.                             DE: "EU-London",
  1013.                             GH: "EU-London",
  1014.                             GI: "EU-London",
  1015.                             GR: "EU-London",
  1016.                             GL: "US-Atlanta",
  1017.                             GD: "US-Atlanta",
  1018.                             GP: "US-Atlanta",
  1019.                             GU: "SG-Singapore",
  1020.                             GT: "US-Atlanta",
  1021.                             GG: "EU-London",
  1022.                             GN: "EU-London",
  1023.                             GW: "EU-London",
  1024.                             GY: "BR-Brazil",
  1025.                             HT: "US-Atlanta",
  1026.                             VA: "EU-London",
  1027.                             HN: "US-Atlanta",
  1028.                             HK: "JP-Tokyo",
  1029.                             HU: "EU-London",
  1030.                             IS: "EU-London",
  1031.                             IN: "JP-Tokyo",
  1032.                             ID: "JP-Tokyo",
  1033.                             IR: "JP-Tokyo",
  1034.                             IQ: "JP-Tokyo",
  1035.                             IE: "EU-London",
  1036.                             IM: "EU-London",
  1037.                             IL: "JP-Tokyo",
  1038.                             IT: "EU-London",
  1039.                             JM: "US-Atlanta",
  1040.                             JP: "JP-Tokyo",
  1041.                             JE: "EU-London",
  1042.                             JO: "JP-Tokyo",
  1043.                             KZ: "JP-Tokyo",
  1044.                             KE: "EU-London",
  1045.                             KI: "SG-Singapore",
  1046.                             KP: "JP-Tokyo",
  1047.                             KR: "JP-Tokyo",
  1048.                             KW: "JP-Tokyo",
  1049.                             KG: "JP-Tokyo",
  1050.                             LA: "JP-Tokyo",
  1051.                             LV: "EU-London",
  1052.                             LB: "JP-Tokyo",
  1053.                             LS: "EU-London",
  1054.                             LR: "EU-London",
  1055.                             LY: "EU-London",
  1056.                             LI: "EU-London",
  1057.                             LT: "EU-London",
  1058.                             LU: "EU-London",
  1059.                             MO: "JP-Tokyo",
  1060.                             MK: "EU-London",
  1061.                             MG: "EU-London",
  1062.                             MW: "EU-London",
  1063.                             MY: "JP-Tokyo",
  1064.                             MV: "JP-Tokyo",
  1065.                             ML: "EU-London",
  1066.                             MT: "EU-London",
  1067.                             MH: "SG-Singapore",
  1068.                             MQ: "US-Atlanta",
  1069.                             MR: "EU-London",
  1070.                             MU: "EU-London",
  1071.                             YT: "EU-London",
  1072.                             MX: "US-Atlanta",
  1073.                             FM: "SG-Singapore",
  1074.                             MD: "EU-London",
  1075.                             MC: "EU-London",
  1076.                             MN: "JP-Tokyo",
  1077.                             ME: "EU-London",
  1078.                             MS: "US-Atlanta",
  1079.                             MA: "EU-London",
  1080.                             MZ: "EU-London",
  1081.                             MM: "JP-Tokyo",
  1082.                             NA: "EU-London",
  1083.                             NR: "SG-Singapore",
  1084.                             NP: "JP-Tokyo",
  1085.                             NL: "EU-London",
  1086.                             NC: "SG-Singapore",
  1087.                             NZ: "SG-Singapore",
  1088.                             NI: "US-Atlanta",
  1089.                             NE: "EU-London",
  1090.                             NG: "EU-London",
  1091.                             NU: "SG-Singapore",
  1092.                             NF: "SG-Singapore",
  1093.                             MP: "SG-Singapore",
  1094.                             NO: "EU-London",
  1095.                             OM: "JP-Tokyo",
  1096.                             PK: "JP-Tokyo",
  1097.                             PW: "SG-Singapore",
  1098.                             PS: "JP-Tokyo",
  1099.                             PA: "US-Atlanta",
  1100.                             PG: "SG-Singapore",
  1101.                             PY: "BR-Brazil",
  1102.                             PE: "BR-Brazil",
  1103.                             PH: "JP-Tokyo",
  1104.                             PN: "SG-Singapore",
  1105.                             PL: "EU-London",
  1106.                             PT: "EU-London",
  1107.                             PR: "US-Atlanta",
  1108.                             QA: "JP-Tokyo",
  1109.                             RE: "EU-London",
  1110.                             RO: "EU-London",
  1111.                             RU: "RU-Russia",
  1112.                             RW: "EU-London",
  1113.                             BL: "US-Atlanta",
  1114.                             SH: "EU-London",
  1115.                             KN: "US-Atlanta",
  1116.                             LC: "US-Atlanta",
  1117.                             MF: "US-Atlanta",
  1118.                             PM: "US-Atlanta",
  1119.                             VC: "US-Atlanta",
  1120.                             WS: "SG-Singapore",
  1121.                             SM: "EU-London",
  1122.                             ST: "EU-London",
  1123.                             SA: "EU-London",
  1124.                             SN: "EU-London",
  1125.                             RS: "EU-London",
  1126.                             SC: "EU-London",
  1127.                             SL: "EU-London",
  1128.                             SG: "JP-Tokyo",
  1129.                             SX: "US-Atlanta",
  1130.                             SK: "EU-London",
  1131.                             SI: "EU-London",
  1132.                             SB: "SG-Singapore",
  1133.                             SO: "EU-London",
  1134.                             ZA: "EU-London",
  1135.                             SS: "EU-London",
  1136.                             ES: "EU-London",
  1137.                             LK: "JP-Tokyo",
  1138.                             SD: "EU-London",
  1139.                             SR: "BR-Brazil",
  1140.                             SJ: "EU-London",
  1141.                             SZ: "EU-London",
  1142.                             SE: "EU-London",
  1143.                             CH: "EU-London",
  1144.                             SY: "EU-London",
  1145.                             TW: "JP-Tokyo",
  1146.                             TJ: "JP-Tokyo",
  1147.                             TZ: "EU-London",
  1148.                             TH: "JP-Tokyo",
  1149.                             TL: "JP-Tokyo",
  1150.                             TG: "EU-London",
  1151.                             TK: "SG-Singapore",
  1152.                             TO: "SG-Singapore",
  1153.                             TT: "US-Atlanta",
  1154.                             TN: "EU-London",
  1155.                             TR: "TK-Turkey",
  1156.                             TM: "JP-Tokyo",
  1157.                             TC: "US-Atlanta",
  1158.                             TV: "SG-Singapore",
  1159.                             UG: "EU-London",
  1160.                             UA: "EU-London",
  1161.                             AE: "EU-London",
  1162.                             GB: "EU-London",
  1163.                             US: "US-Atlanta",
  1164.                             UM: "SG-Singapore",
  1165.                             VI: "US-Atlanta",
  1166.                             UY: "BR-Brazil",
  1167.                             UZ: "JP-Tokyo",
  1168.                             VU: "SG-Singapore",
  1169.                             VE: "BR-Brazil",
  1170.                             VN: "JP-Tokyo",
  1171.                             WF: "SG-Singapore",
  1172.                             EH: "EU-London",
  1173.                             YE: "JP-Tokyo",
  1174.                             ZM: "EU-London",
  1175.                             ZW: "EU-London"
  1176.                         },
  1177.                         Ec = null;
  1178.                     a.connect = M;
  1179.                     var Fc = 500,
  1180.                         Gc = null,
  1181.                         Hc = 0,
  1182.                         Ic = -1,
  1183.                         Jc = -1,
  1184.                         Kc = null,
  1185.                         Lc = 1,
  1186.                         Mc = null,
  1187.                         Nc = null,
  1188.                         Oc = null,
  1189.                         Pc = null,
  1190.                         Qc = null,
  1191.                         Rc = null,
  1192.                         Sc = null,
  1193.                         Tc = null,
  1194.                         Uc = null,
  1195.                         Vc = null,
  1196.                         Wc = null,
  1197.                         Xc = null,
  1198.                         Yc = null,
  1199.                         Zc = null,
  1200.                         $c = function() {
  1201.                             var b = Date.now(),
  1202.                                 c = 1e3 / 60,
  1203.                                 d = 0,
  1204.                                 e = 0,
  1205.                                 f = Date.now();
  1206.                             return function() {
  1207.                                 a.requestAnimationFrame($c);
  1208.                                 var g = Date.now(),
  1209.                                     h = g - b;
  1210.                                 e > 1e3 ? (f = Date.now(), e = 0, oc = d, d = 0) : e = Date.now() - f, h > c && (b = g - h % c, !W() || 240 > Date.now() - zb ? (aa(), d++) : console.warn("Skipping draw"), od())
  1211.                             }
  1212.                         }(),
  1213.                         _c = {},
  1214.                         ad = "poland;usa;china;russia;canada;australia;spain;brazil;germany;ukraine;france;sweden;chaplin;north korea;south korea;japan;united kingdom;earth;greece;latvia;lithuania;estonia;finland;norway;cia;maldivas;austria;nigeria;reddit;yaranaika;confederate;9gag;indiana;4chan;italy;bulgaria;tumblr;2ch.hk;hong kong;portugal;jamaica;german empire;mexico;sanik;switzerland;croatia;chile;indonesia;bangladesh;thailand;iran;iraq;peru;moon;botswana;bosnia;netherlands;european union;taiwan;pakistan;hungary;satanist;qing dynasty;matriarchy;patriarchy;feminism;ireland;texas;facepunch;prodota;cambodia;steam;piccolo;ea;india;kc;denmark;quebec;ayy lmao;sealand;bait;tsarist russia;origin;vinesauce;stalin;belgium;luxembourg;stussy;prussia;8ch;argentina;scotland;sir;romania;belarus;wojak;doge;nasa;byzantium;imperial japan;french kingdom;somalia;turkey;mars;pokerface;8;irs;receita federal;facebook;putin;merkel;tsipras;obama;kim jong-un;dilma;hollande;berlusconi;cameron;clinton;hillary;venezuela;blatter;chavez;cuba;fidel;merkel;palin;queen;boris;bush;trump;hitler;nazi;ussr".split(";"),
  1215.                         bd = "8;nasa;putin;merkel;tsipras;obama;kim jong-un;dilma;hollande;berlusconi;cameron;clinton;hillary;blatter;chavez;fidel;merkel;palin;queen;boris;bush;trump;michau;michau biauek;leszke;korwin;grzegorz braun;jp2;linda;blacksketch;davidmcpolska;sasha grey;stulejarnosc;coca cola".split(";"),
  1216.                         cd = {},
  1217.                         dd = "michau;michau biauek;leszke;korwin;grzegorz braun;szczesc boze;jp2;linda;kosmonauta;chuj jebany;stulejarnosc;feels;smutna zaba;germandeathcamp;thanks doge;smutny piesek;pinionszek;ami;92gruszka;gruszka;anka-agar;blacksketch;bladi89;bolyss;ciepla_kupa;cimcirimci;davidmcpolska;d1ck;edward_kenway;empe666 wypok;filozofujaca;hansolony;hulajdusza;janusz-cebula;jayjay1337;kat_rzeznikow;kiku;michalek;oscyp33;polonium;psposki;ruszowaa;siabadabada;sialababamak;smashgoor;szymy;typowy_sebix;xaimeii;papaj;bean;kenny;benis;penis;mario;bender;bert;gaben;dolan;heisenberg;chuck;pikachu;slowpoke;pig;pedobear;rainbow;illuminati;coca cola;pepsi;cage;dupa;dupa wykop;quinn;rafalala;qas;agar online;albus dumbledor;albus;dumbledore;ginny weasley;harry potter;hermione;ron weasley;lord voldemort;draco malfoy;wykop peel;panda;polska;tymbark;kpr. wojtek;atari;amiga;marihuana;thug life;g2;vp;fnatic;tsm;cojawamzrobilem;neymar;koksy;policja;krzysiu jp;puchauke;pi;rain;deszcz;thunder;night;flower;trollface;troll;osama;sasha grey;wina tuska;wsk;sosnowiec;nevergonna;terminator;spyro;tiger bonzo;kobra bonzo;ordenminer;zoidberg;swidnik;chrome;firefox;cookie;lg;peppa pig;peppa;spongebob;vw;durex;france;russia;usa;brazil;portugal;israel;sweden;radagast;gandalf;cygan".split(";"),
  1218.                         ed = "wykop;#wykop;@wykop;wykop.pl;#wykop.pl;wypok;wypoczek".split(";"),
  1219.                         fd = "mirko;#mirko;@mirko;mikro;tylko mirko;tylkomirko;#tylkomirko;@tylkomirko".split(";"),
  1220.                         gd = "#koksy;.( ͡° ͜ʖ ͡°);( ͡° ͜ʖ ͡°).;[pl]ziomek00725;wiktorkox100#ht;ϩảςℌǻ ɠɍ℮ɣ;฿ĭℊ ℬøƨƨ;ოﻪรէεгofﻪցﻪг皮;w=friend;w = friend;w=friends;w = friends;w=team;w = team;need a bro;ą          ę;świdnik;szczęść boże;ŋìċθļåĩ;乃ц尺ムズ;布拉克;kirmaz ㊗㊙;☂ƛȥȥɗɩɲ☂;ⱥめξทǥєʀ;ℜℯḱтɐℜ;ℬấℌọʐ ²¹;zyronik;ρʀøƒ 越;к∂©ℙєℜ;┆♕₭↑ℵǥ♕;ℚʊ@к℮432;ᎯᏝᎮℋᎯ;ј ฝ ☼ᎯᏝᎮℋᎯ;røŀєx ミ;๔єคtђรtг๏кє;ℛấʝọɳ (◣_◢)".split(";"),
  1221.                         hd = "koksy;lennyface_left;lennyface_right;ziomek00725;wiktorkox100;sasha;sasha;masterofagar;wfriend;wfriend;wfriend;wfriend;wfriend;wfriend;wfriend;ae;swidnik;szczesc boze;nicolai;burak;atom;kirmaz;azzdin;avenger;rektar;bahoz;zyronik;prof;kacper;king;quake;alpha;alpha;rolex;deathstroke;rajon".split(";"),
  1222.                         id = "☢Ⓜ|;㉹|;㉹;〖ƝƁƘ〗;☠ⒻⓇ |;ᓮᗯᗩᘐ|;ᓮᗯᗩᘐ;ƵŦ|;ƵŦ★|;ℛɨᎮ|;ℛɨᎮ;ӍᏨ²;【☠】;ȺƧƤЄƇƬ✠;ฬℬ|".split(";"),
  1223.                         jd = "atomicmirko;et;et;nbk;dfr;iwag;iwag;zt;zts;rip;rip;mc2;scull;aspecto;wumbo".split(";"),
  1224.                         kd = dd.concat(ed, fd, gd);
  1225.                     ja.prototype = {
  1226.                             P: null,
  1227.                             x: 0,
  1228.                             y: 0,
  1229.                             g: 0,
  1230.                             b: 0
  1231.                         }, ka.prototype = {
  1232.                             id: 0,
  1233.                             a: null,
  1234.                             name: null,
  1235.                             k: null,
  1236.                             I: null,
  1237.                             x: 0,
  1238.                             y: 0,
  1239.                             size: 0,
  1240.                             o: 0,
  1241.                             p: 0,
  1242.                             n: 0,
  1243.                             C: 0,
  1244.                             D: 0,
  1245.                             m: 0,
  1246.                             T: 0,
  1247.                             K: 0,
  1248.                             W: 0,
  1249.                             A: !1,
  1250.                             f: !1,
  1251.                             j: !1,
  1252.                             L: !0,
  1253.                             S: 0,
  1254.                             V: null,
  1255.                             createTime: 0,
  1256.                             R: function() {
  1257.                                 var a;
  1258.                                 for (a = 0; a < Oa.length; a++)
  1259.                                     if (Oa[a] == this) {
  1260.                                         Oa.splice(a, 1);
  1261.                                         break
  1262.                                     }
  1263.                                 delete Na[this.id], a = Ma.indexOf(this), -1 != a && (gb = !0, Ma.splice(a, 1)), a = La.indexOf(this.id), -1 != a && La.splice(a, 1), this.A = !0, 0 < this.S && Pa.push(this)
  1264.                             },
  1265.                             i: function() {
  1266.                                 return Math.max(~~(.3 * this.size), 24)
  1267.                             },
  1268.                             t: function(a) {
  1269.                                 (this.name = a) && (null == this.k ? this.k = new ma(this.i(), "#FFFFFF", !0, "#000000") : this.k.G(this.i()), this.k.u(this.name))
  1270.                             },
  1271.                             Q: function() {
  1272.                                 for (var a = this.B(); this.a.length > a;) {
  1273.                                     var b = ~~(Math.random() * this.a.length);
  1274.                                     this.a.splice(b, 1)
  1275.                                 }
  1276.                                 for (0 == this.a.length && a > 0 && this.a.push(new ja(this, this.x, this.y, this.size, Math.random() - .5)); this.a.length < a;) b = ~~(Math.random() * this.a.length), b = this.a[b], this.a.push(new ja(this, b.x, b.y, b.g, b.b))
  1277.                             },
  1278.                             B: function() {
  1279.                                 var a = 10;
  1280.                                 20 > this.size && (a = 0), this.f && (a = 30);
  1281.                                 var b = this.size;
  1282.                                 return this.f || (b *= bb), b *= Lc, 32 & this.T && (b *= .25), ~~Math.max(b, a)
  1283.                             },
  1284.                             da: function() {
  1285.                                 this.Q();
  1286.                                 for (var a = this.a, b = a.length, c = 0; b > c; ++c) {
  1287.                                     var d = a[(c - 1 + b) % b].b,
  1288.                                         e = a[(c + 1) % b].b;
  1289.                                     a[c].b += (Math.random() - .5) * (this.j ? 3 : 1), a[c].b *= .7, 10 < a[c].b && (a[c].b = 10), -10 > a[c].b && (a[c].b = -10), a[c].b = (d + e + 8 * a[c].b) / 10
  1290.                                 }
  1291.                                 for (var f = this, g = this.f ? 0 : (this.id / 1e3 + Wa / 1e4) % (2 * Math.PI), c = 0; b > c; ++c) {
  1292.                                     var h = a[c].g,
  1293.                                         d = a[(c - 1 + b) % b].g,
  1294.                                         e = a[(c + 1) % b].g;
  1295.                                     if (15 < this.size && null != Ha && 20 < this.size * bb && 0 < this.id) {
  1296.                                         var i = !1,
  1297.                                             j = a[c].x,
  1298.                                             k = a[c].y;
  1299.                                         Ha.ea(j - 5, k - 5, 10, 10, function(a) {
  1300.                                             a.P != f && 25 > (j - a.x) * (j - a.x) + (k - a.y) * (k - a.y) && (i = !0)
  1301.                                         }), !i && (a[c].x < Za || a[c].y < $a || a[c].x > _a || a[c].y > ab) && (i = !0), i && (0 < a[c].b && (a[c].b = 0), a[c].b -= 1)
  1302.                                     }
  1303.                                     h += a[c].b, 0 > h && (h = 0), h = this.j ? (19 * h + this.size) / 20 : (12 * h + this.size) / 13, a[c].g = (d + e + 8 * h) / 10, d = 2 * Math.PI / b, e = this.a[c].g, this.f && 0 == c % 2 && (e += 5), a[c].x = this.x + Math.cos(d * c + g) * e, a[c].y = this.y + Math.sin(d * c + g) * e
  1304.                                 }
  1305.                             },
  1306.                             J: function() {
  1307.                                 if (0 >= this.id) return 1;
  1308.                                 var a;
  1309.                                 a = (Wa - this.K) / 120, a = 0 > a ? 0 : a > 1 ? 1 : a;
  1310.                                 var b = 0 > a ? 0 : a > 1 ? 1 : a;
  1311.                                 if (this.i(), this.A && b >= 1) {
  1312.                                     var c = Pa.indexOf(this); - 1 != c && Pa.splice(c, 1)
  1313.                                 }
  1314.                                 return this.x = a * (this.C - this.o) + this.o, this.y = a * (this.D - this.p) + this.p, this.size = b * (this.m - this.n) + this.n, b
  1315.                             },
  1316.                             H: function() {
  1317.                                 return 0 >= this.id ? !0 : this.x + this.size + 40 < Ja - Fa / 2 / bb || this.y + this.size + 40 < Ka - Ga / 2 / bb || this.x - this.size - 40 > Ja + Fa / 2 / bb || this.y - this.size - 40 > Ka + Ga / 2 / bb ? !1 : !0
  1318.                             },
  1319.                             findCellSize: function(a, b) {
  1320.                                 for (var c = 0, d = a[0].size, e = 1; e < a.length; e++) b ? d < a[e].size && (d = a[e].size, c = e) : d > a[e].size && (d = a[e].size, c = e);
  1321.                                 return {
  1322.                                     index: c,
  1323.                                     size: d
  1324.                                 }
  1325.                             },
  1326.                             s: function(a) {
  1327.                                 if (this.H()) {
  1328.                                     ++this.S;
  1329.                                     var b = Ma.indexOf(this),
  1330.                                         c = -1 != b,
  1331.                                         d = this.f,
  1332.                                         e = this.size * this.size / 100,
  1333.                                         f = Rb ? d ? 3 : 1.5 : 1,
  1334.                                         g = Rb ? 10 : 4,
  1335.                                         k = Rb ? 1 : 2,
  1336.                                         l = !1,
  1337.                                         m = ib,
  1338.                                         n = nb,
  1339.                                         o = {},
  1340.                                         p = 0,
  1341.                                         q = 0,
  1342.                                         r = 0,
  1343.                                         s = "",
  1344.                                         t = this.color,
  1345.                                         u = "",
  1346.                                         v = "",
  1347.                                         w = "",
  1348.                                         x = 0 < this.id && !this.f && !this.j && (Nb || .4 > bb);
  1349.                                     if (5 > this.B() && 0 < this.id && (x = !0), this.L && !x)
  1350.                                         for (var y = 0; y < this.a.length; y++) this.a[y].g = this.size;
  1351.                                     if (this.L = x, a.save(), this.W = Wa, y = this.J(), this.A && (a.globalAlpha *= 1 - y), a.lineCap = "round", a.lineJoin = this.f ? "miter" : "round", (Jb || Kb || Pb) && h() && this.size > 30 && (o = this.findCellSize(Ma, Sb), p = Math.pow(o.size, 2) / 100, q = e / p, r = 1e3 > p ? .35 : .38, !Jb && !Kb || c || (d ? s = q > .76 ? "#FFDC00" : "#C80000" : (s = q > 5 ? "#FF00FF" :  q >= 2.5 ? "#FF0000" : q >= 1.25 ? "#FF8800" : 1.25 > q && q > .75 ? "#FFFF00" : q > r ? "#00FF00" : q > r/2 ? "#0066FF" : q > r/4 ? "#CC0099" : "#00FFFF", this.color = ":teams" == n || Kb ? t : s))), !$b && this.size <= 30 && (this.color = "#E16400"), d && ((Jb || Kb) && (e > 183 ? this.color = "#C80000" : m ? this.color = "#999999" : this.color = "#666666"), null == this.k && (this.k = new ma(this.i(), "#FFFFFF", !0, "#000000")), Qb && (a.beginPath(), a.arc(this.x, this.y, this.size + 810, 0, 2 * Math.PI, !1), a.closePath(), a.globalAlpha = "#C80000" == this.color ? .2 : .1, !m && (a.globalAlpha *= .5), a.fillStyle = this.color, a.fill())), Kb && !c && h() && this.size > 40 && !d && (a.beginPath(), a.arc(this.x, this.y, this.size + 16 + 4 / bb, 0, 2 * Math.PI, !1), a.closePath(), a.globalAlpha = .75, a.lineWidth = 10, a.strokeStyle = s, a.stroke()), Pb && (c || q >= 2.5) && !d && e >= 35 && (a.beginPath(), a.arc(this.x, this.y, this.size + 710, 0, 2 * Math.PI, !1), a.closePath(), a.globalAlpha = .4, !m && !c && (a.globalAlpha *= .4), a.lineWidth = 4, c && j() && b == o.index ? a.strokeStyle = m ? "#FFFFFF" : "#222222" : a.strokeStyle = c && (Jb || Kb) && ":teams" != n ? "#FF7800" : Kb ? s : this.color, a.stroke()), Yb && c && (a.beginPath(), a.moveTo(this.x, this.y), a.lineTo(Ta, Ua), a.globalAlpha = m ? .7 : .35, a.lineWidth = 2, a.strokeStyle = m ? "#FFFFFF" : "#000000", a.stroke()), fb ? Jb ? (a.fillStyle = "#FFFFFF", a.strokeStyle = this.color) : (a.fillStyle = "#FFFFFF", a.strokeStyle = "#AAAAAA") : (a.fillStyle = this.color, a.strokeStyle = (":teams" == n || d) && s ? s : this.color), x) a.beginPath(), a.arc(this.x, this.y, this.size, 0, 2 * Math.PI, !1);
  1352.                                     else {
  1353.                                         this.da(), a.beginPath();
  1354.                                         var z = this.B();
  1355.                                         for (a.moveTo(this.a[0].x, this.a[0].y), y = 1; z >= y; ++y) {
  1356.                                             var A = y % z;
  1357.                                             a.lineTo(this.a[A].x, this.a[A].y)
  1358.                                         }
  1359.                                     }
  1360.                                     for (a.closePath(), y = this.name.toLowerCase(), u = this.name.trim(), i = 0; i < id.length; i++)
  1361.                                         if (0 == u.indexOf(id[i])) {
  1362.                                             u = u.replace(id[i], "").trim(), v = id[i];
  1363.                                             break
  1364.                                         }
  1365.                                     if (u = u.toLowerCase(), -1 != kd.indexOf(u) ? (l = !0, w = "http://ogario.wpload.com/skins.php?s=" + u, -1 != ed.indexOf(u) && (w = "http://ogario.wpload.com/skins.php?s=wykop"), -1 != fd.indexOf(u) && (w = "http://ogario.wpload.com/skins.php?s=mirko"), -1 != gd.indexOf(u) && (w = "http://ogario.wpload.com/skins.php?s=" + hd[gd.indexOf(u)])) : v.length > 0 ? (l = !0, w = "http://ogario.wpload.com/skins.php?s=" + jd[id.indexOf(v)]) : w = "skins/" + y + ".png", !this.j && db && ":teams" != nb ? (z = this.V, null == z ? z = null : ":" == z[0] ? (cd.hasOwnProperty(z) || (cd[z] = new Image, cd[z].src = z.slice(1)), z = 0 != cd[z].width && cd[z].complete ? cd[z] : null) : z = null, z || (-1 != ad.indexOf(y) && !Tb || l ? (_c.hasOwnProperty(y) || (_c[y] = new Image, _c[y].crossOrigin = "Anonymous", _c[y].src = w), z = 0 != _c[y].width && _c[y].complete ? _c[y] : null) : z = null)) : z = null, A = z, Mb ? (this.size > 30 && (a.globalAlpha = .8), d && (a.globalAlpha = .5)) : a.globalAlpha = 1, a.lineWidth = 10, Jb && !Kb && null != A ? (a.lineWidth = 20, a.stroke()) : (Jb && (fb || ":teams" == n) && a.stroke(), x || a.stroke()), a.fill(), d && a.stroke(), null != A && (a.save(), a.clip(), Lb && (a.globalAlpha = .75), a.drawImage(A, this.x - this.size, this.y - this.size, 2 * this.size, 2 * this.size), a.restore()), (fb || 15 < this.size) && !x && (a.strokeStyle = "#000000", a.globalAlpha *= .1, a.stroke()), a.globalAlpha = 1, Jb && !c && r >= q && this.size > 50 && !d && da() >= 28e3 && e > da() / 1100 && (a.beginPath(), a.arc(this.x, this.y, this.size - 5, 0, 2 * Math.PI, !1), a.closePath(), a.globalAlpha = .75, a.strokeStyle = "#FFFFFF", a.stroke(), a.globalAlpha = 1), x = ~~this.y, 0 != this.id && (eb || c) && (this.name || d && jb) && this.k && (null == A || -1 == bd.indexOf(y) || -1 == bd.indexOf(u))) {
  1366.                                         A = this.k, d ? A.u(Math.floor((200 - e) / 14)) : A.u(this.name), A.G(this.i() * f), y = 0 >= this.id ? 1 : Math.ceil(10 * bb) / 10, A.U(y);
  1367.                                         var A = A.F(),
  1368.                                             B = ~~(A.width / y),
  1369.                                             C = ~~(A.height / y);
  1370.                                         a.drawImage(A, ~~this.x - ~~(B / 2), x - ~~(C / 2), B, C), x += A.height / 2 / y + g
  1371.                                     }
  1372.                                     0 < this.id && jb && 30 < this.size && (null == this.I && (this.I = new ma(this.i() / k, "#FFFFFF", !0, "#000000")), z = this.I, z.G(this.i() / k), z.u(~~(this.size * this.size / 100)), y = Math.ceil(10 * bb) / 10, z.U(y), A = z.F(), B = ~~(A.width / y), C = ~~(A.height / y), a.drawImage(A, ~~this.x - ~~(B / 2), x - ~~(C / 2), B, C)), a.restore()
  1373.                                 }
  1374.                             }
  1375.                         }, ma.prototype = {
  1376.                             w: "",
  1377.                             M: "#000000",
  1378.                             O: !1,
  1379.                             r: "#000000",
  1380.                             q: 16,
  1381.                             l: null,
  1382.                             N: null,
  1383.                             h: !1,
  1384.                             v: 1,
  1385.                             G: function(a) {
  1386.                                 this.q != a && (this.q = a, this.h = !0)
  1387.                             },
  1388.                             U: function(a) {
  1389.                                 this.v != a && (this.v = a, this.h = !0)
  1390.                             },
  1391.                             setStrokeColor: function(a) {
  1392.                                 this.r != a && (this.r = a, this.h = !0)
  1393.                             },
  1394.                             u: function(a) {
  1395.                                 a != this.w && (this.w = a, this.h = !0)
  1396.                             },
  1397.                             F: function() {
  1398.                                 if (null == this.l && (this.l = document.createElement("canvas"), this.N = this.l.getContext("2d")), this.h) {
  1399.                                     this.h = !1;
  1400.                                     var a = this.l,
  1401.                                         b = this.N,
  1402.                                         c = this.w,
  1403.                                         d = this.v,
  1404.                                         e = this.q,
  1405.                                         f = e + "px Ubuntu";
  1406.                                     b.font = f;
  1407.                                     var g = ~~(.2 * e);
  1408.                                     a.width = (b.measureText(c).width + 6) * d, a.height = (e + g) * d, b.font = f, b.scale(d, d), b.globalAlpha = 1, b.lineWidth = 3, b.strokeStyle = this.r, b.fillStyle = this.M, this.O && b.strokeText(c, 3, e - g / 2), b.fillText(c, 3, e - g / 2)
  1409.                                 }
  1410.                                 return this.l
  1411.                             }
  1412.                         }, Date.now || (Date.now = function() {
  1413.                             return (new Date).getTime()
  1414.                         }),
  1415.                         function() {
  1416.                             for (var b = ["ms", "moz", "webkit", "o"], c = 0; c < b.length && !a.requestAnimationFrame; ++c) a.requestAnimationFrame = a[b[c] + "RequestAnimationFrame"], a.cancelAnimationFrame = a[b[c] + "CancelAnimationFrame"] || a[b[c] + "CancelRequestAnimationFrame"];
  1417.                             a.requestAnimationFrame || (a.requestAnimationFrame = function(a) {
  1418.                                 return setTimeout(a, 1e3 / 60)
  1419.                             }, a.cancelAnimationFrame = function(a) {
  1420.                                 clearTimeout(a)
  1421.                             })
  1422.                         }();
  1423.                     var ld = {
  1424.                             X: function(a) {
  1425.                                 function b(a) {
  1426.                                     return d > a && (a = d), a > f && (a = f), ~~((a - d) / 32)
  1427.                                 }
  1428.  
  1429.                                 function c(a) {
  1430.                                     return e > a && (a = e), a > g && (a = g), ~~((a - e) / 32)
  1431.                                 }
  1432.                                 var d = a.ba,
  1433.                                     e = a.ca,
  1434.                                     f = a.Z,
  1435.                                     g = a.$,
  1436.                                     h = ~~((f - d) / 32) + 1,
  1437.                                     i = ~~((g - e) / 32) + 1,
  1438.                                     j = Array(h * i);
  1439.                                 return {
  1440.                                     Y: function(a) {
  1441.                                         var d = b(a.x) + c(a.y) * h;
  1442.                                         null == j[d] ? j[d] = a : Array.isArray(j[d]) ? j[d].push(a) : j[d] = [j[d], a]
  1443.                                     },
  1444.                                     ea: function(a, d, e, f, g) {
  1445.                                         var k = b(a),
  1446.                                             l = c(d);
  1447.                                         for (a = b(a + e), d = c(d + f); d >= l; ++l)
  1448.                                             for (f = k; a >= f; ++f)
  1449.                                                 if (e = j[f + l * h], null != e)
  1450.                                                     if (Array.isArray(e))
  1451.                                                         for (var m = 0; m < e.length; m++) g(e[m]);
  1452.                                                     else g(e)
  1453.                                     }
  1454.                                 }
  1455.                             }
  1456.                         },
  1457.                         md = function() {
  1458.                             var a = new ka(0, 0, 0, 32, "#ED1C24", ""),
  1459.                                 b = document.createElement("canvas");
  1460.                             b.width = 32, b.height = 32;
  1461.                             var c = b.getContext("2d");
  1462.                             return function() {
  1463.                                 0 < Ma.length && (a.color = Ma[0].color, a.t(Ma[0].name)), c.clearRect(0, 0, 32, 32), c.save(), c.translate(16, 16), c.scale(.4, .4), a.s(c), c.restore();
  1464.                                 var d = document.getElementById("favicon"),
  1465.                                     e = d.cloneNode(!0);
  1466.                                 e.setAttribute("href", b.toDataURL("image/png")), d.parentNode.replaceChild(e, d)
  1467.                             }
  1468.                         }();
  1469.                     b(function() {
  1470.                         md()
  1471.                     });
  1472.                     var nd = "loginCache3";
  1473.                     b(function() {
  1474.                         +a.localStorage.wannaLogin && (a.localStorage[nd] && pa(a.localStorage[nd]), a.localStorage.fbPictureCache && b(".agario-profile-picture").attr("src", a.localStorage.fbPictureCache))
  1475.                     }), a.facebookLogin = function() {
  1476.                         a.localStorage.wannaLogin = 1
  1477.                     }, a.fbAsyncInit = function() {
  1478.                         function b() {
  1479.                             a.localStorage.wannaLogin = 1, null == a.FB ? alert("You seem to have something blocking Facebook on your browser, please check for any extensions") : a.FB.login(function(a) {
  1480.                                 ra(a)
  1481.                             }, {
  1482.                                 scope: "public_profile, email"
  1483.                             })
  1484.                         }
  1485.                         a.FB.init({
  1486.                             appId: "677505792353827",
  1487.                             cookie: !0,
  1488.                             xfbml: !0,
  1489.                             status: !0,
  1490.                             version: "v2.2"
  1491.                         }), a.FB.Event.subscribe("auth.statusChange", function(c) {
  1492.                             +a.localStorage.wannaLogin && ("connected" == c.status ? ra(c) : b())
  1493.                         }), a.facebookLogin = b
  1494.                     }, a.logout = function() {
  1495.                         Ab = null, b("#helloContainer").attr("data-logged-in", "0"), b("#helloContainer").attr("data-has-account-data", "0"), delete a.localStorage.wannaLogin, delete a.localStorage[nd], delete a.localStorage.fbPictureCache, L()
  1496.                     };
  1497.                     var od = function() {
  1498.                         function a(a, b, c, d, e) {
  1499.                             var f = b.getContext("2d"),
  1500.                                 g = b.width;
  1501.                             b = b.height, a.color = e, a.t(c), a.size = d, f.save(), f.translate(g / 2, b / 2), a.s(f), f.restore()
  1502.                         }
  1503.                         for (var c = new ka(-1, 0, 0, 32, "#5bc0de", ""), d = new ka(-1, 0, 0, 32, "#5bc0de", ""), e = "#0791ff #5a07ff #ff07fe #ffa507 #ff0774 #077fff #3aff07 #ff07ed #07a8ff #ff076e #3fff07 #ff0734 #07ff20 #ff07a2 #ff8207 #07ff0e".split(" "), f = [], g = 0; g < e.length; ++g) {
  1504.                             var h = g / e.length * 12,
  1505.                                 i = 30 * Math.sqrt(g / e.length);
  1506.                             f.push(new ka(-1, Math.cos(h) * i, Math.sin(h) * i, 10, e[g], ""))
  1507.                         }
  1508.                         na(f);
  1509.                         var j = document.createElement("canvas");
  1510.                         return j.getContext("2d"), j.width = j.height = 70, a(d, j, "", 26, "#ebc0de"),
  1511.                             function() {
  1512.                                 b(".cell-spinner").filter(":visible").each(function() {
  1513.                                     var d = b(this),
  1514.                                         e = Date.now(),
  1515.                                         f = this.width,
  1516.                                         g = this.height,
  1517.                                         h = this.getContext("2d");
  1518.                                     h.clearRect(0, 0, f, g), h.save(), h.translate(f / 2, g / 2);
  1519.                                     for (var i = 0; 10 > i; ++i) h.drawImage(j, (.1 * e + 80 * i) % (f + 140) - f / 2 - 70 - 35, g / 2 * Math.sin((.001 * e + i) % Math.PI * 2) - 35, 70, 70);
  1520.                                     h.restore(), (d = d.attr("data-itr")) && (d = J(d)), a(c, this, d || "", +b(this).attr("data-size"), "#5bc0de")
  1521.                                 }), b("#statsPellets").filter(":visible").each(function() {
  1522.                                     b(this);
  1523.                                     var c = this.width,
  1524.                                         d = this.height;
  1525.                                     for (this.getContext("2d").clearRect(0, 0, c, d), c = 0; c < f.length; c++) a(f[c], this, "", f[c].size, f[c].color)
  1526.                                 })
  1527.                             }
  1528.                     }();
  1529.                     a.createParty = function() {
  1530.                         F(":party"), Ec = function(c) {
  1531.                             ta("/#" + a.encodeURIComponent(c)), b(".partyToken").val("agar.io/#" + a.encodeURIComponent(c)), b(".partyInfoToken").text("agar.io/#" + a.encodeURIComponent(c)), b("#helloContainer").attr("data-party-state", "1")
  1532.                         }, L()
  1533.                     }, a.joinParty = sa, a.cancelParty = function() {
  1534.                         ta("/"), b("#helloContainer").attr("data-party-state", "0"), F(""), L()
  1535.                     };
  1536.                     var pd = [],
  1537.                         qd = 0,
  1538.                         rd = "#000000",
  1539.                         sd = !1,
  1540.                         td = !1,
  1541.                         ud = 0,
  1542.                         vd = 0,
  1543.                         wd = 0,
  1544.                         xd = 0,
  1545.                         yd = 0;
  1546.                     setInterval(function() {
  1547.                         td && pd.push(da() / 100)
  1548.                     }, 1e3 / 60), setInterval(function() {
  1549.                         var a = wa();
  1550.                         0 != a && (++wd, 0 == yd && (yd = a), yd = Math.min(yd, a))
  1551.                     }, 1e3), a.closeStats = function() {
  1552.                         sd = !1, b("#stats").hide(), I(a.ab), E(0)
  1553.                     }, b(function() {
  1554.                         b(c)
  1555.                     })
  1556.                 }
  1557.             }
  1558.         }
  1559.     }
  1560.     copyToken = function() {
  1561.         var a = b(".partyToken:visible")[0];
  1562.         a.setSelectionRange(0, a.value.length), a.select();
  1563.         try {
  1564.             document.execCommand("copy")
  1565.         } catch (b) {}
  1566.     }, b(function() {
  1567.         b("#helloContainer form .form-group:first").after('<center><h5>Polish MOD: OGARio by szymy | v0.7.1 | <a href="http://ogario.wpload.com" target="_blank">Home</a></h5></center>'),
  1568.             b("#nick").before('<input id="clanTag" placeholder="Tag" class="form-control" value="☯">'),
  1569.             b("#locationKnown, #locationUnknown").insertAfter(b("#nick")),
  1570.             b(".btn-settings, .btn-spectate, .btn-logout").appendTo("#agario-main-buttons"),
  1571.             b(".btn-settings").after('<button id="nextBtn" onclick="nextIP(); return false;" class="btn btn-info btn-needs-server">&gt;&gt;</button>'),
  1572.             b("#agario-main-buttons").append('<br clear="both"/>'),
  1573.             b("#helloContainer form").after('<div id="ogarioParty"><input class="partyToken form-control" placeholder="Party token" /> <button class="btn btn-info btn-copyToken" onclick="copyToken();">Copy</button> <button class="btn btn-primary btn-createParty" onclick="$(\'#helloContainer\').attr(\'data-party-state\', \'3\'); createParty();" data-itr="create_party">Create</button> <button class="btn btn-success btn-joinParty" onclick="joinParty($(\'.partyToken\').val());" data-itr="join_party">Join</button> <button class="btn btn-danger btn-closeParty" onclick="cancelParty();">×</button> <br clear="both"/></div>'),
  1574.             b("#settings").insertAfter(b("#ogarioParty")),
  1575.             b("#instructions .text-muted").append("Press <b>S</b> to show game stats<br/> Press <b>A</b> to fast shoot viruses<br/> Press <b>D</b> to switch between your cells<br/> Press <b>E</b> to pause your cell<br/> Press <b>Z</b> to reset zoom<br/> Press <b>X</b> to switch death location<br/> Press <b>Shift</b> to fast split<br/>"), b("#settings").append('<div id="ogario-options" style="margin: 0 6px; font-size: 12px;"><label><input type="checkbox" onchange="setZoom($(this).is(\':checked\'));" id="zoom">Zoom</label> <label><input type="checkbox" onchange="setMapBorders($(this).is(\':checked\'));" id="mapborders">Map borders</label> <label><input type="checkbox" onchange="setOppColors($(this).is(\':checked\'));" id="oppcolors">Opponents colours</label> <label><input type="checkbox" onchange="setOppRings($(this).is(\':checked\'));" id="opprings">Opponents rings</label> <label><input type="checkbox" onchange="setSkinsAlpha($(this).is(\':checked\'));" id="skinsalpha">Transparent skins</label> <label><input type="checkbox" onchange="setCellsAlpha($(this).is(\':checked\'));" id="cellsalpha">Transparent cells</label> <label><input type="checkbox" onchange="setSimpleDraw($(this).is(\':checked\'));" id="simpledraw">Simple drawing</label> <label><input type="checkbox" onchange="setSplitTimer($(this).is(\':checked\'));" id="splittimer">Time to re-merge</label> <label><input type="checkbox" onchange="setSplitRange($(this).is(\':checked\'));" id="splitrange">Split range</label> <label><input type="checkbox" onchange="setVirusRange($(this).is(\':checked\'));" id="virusrange">Viruses range</label> <label><input type="checkbox" onchange="setBiggerNames($(this).is(\':checked\'));" id="biggernames">Bigger names</label> <label><input type="checkbox" onchange="setOnlyOgarioSkins($(this).is(\':checked\'));" id="onlyogarioskins">Only OGARio skins</label> <label><input type="checkbox" onchange="setShowMiniMap($(this).is(\':checked\'));" id="showminimap">Show minimap</label> <label><input type="checkbox" onchange="setShiftOn(!$(this).is(\':checked\'));" id="shifton">Disable Shift</label> <label><input type="checkbox" onchange="setShowFps($(this).is(\':checked\'));" id="showfps">FPS counter</label> <label><input type="checkbox" onchange="setShowMassGuides($(this).is(\':checked\'));" id="showmassguides">Mass guides</label> <label><input type="checkbox" onchange="setCursorTracking($(this).is(\':checked\'));" id="cursortracking">Cursor tracking</label> <label><input type="checkbox" onchange="setRainbowFood($(this).is(\':checked\'));" id="rainbowfood">Rainbow food</label> <label><input type="checkbox" onchange="setSectorsBg($(this).is(\':checked\'));" id="sectorsbg">Background sectors</label> <label><input type="checkbox" onchange="setAcid($(this).is(\':checked\'));" id="acid">Acid mode</label></div>'),
  1576.             b(".agario-party-1, .agario-party-5").append('<div class="partyInfo">Token: <span class="partyInfoToken"></span><br>Leaderboard:<br><span class="partyInfoTopka"></span><br></div>'),
  1577.             b("#statsContinue").after('<button type="submit" onclick="closeStats(); setNick(document.getElementById(\'nick\').value); return false;" class="btn btn-success btn-needs-server" style="position:absolute;left:25px;width:145px;bottom:269px;" data-itr="play">Play</button> <button onclick="closeStats(); spectate(); return false;" class="btn btn-warning btn-needs-server" style="position:absolute;right:25px;width:145px;bottom:269px;" data-itr="spectate">Spectate</button>'),
  1578.             b("#nick").val(a.localStorage.getItem("nick")),
  1579.             b("#clanTag").val(a.localStorage.getItem("clantag")),
  1580.             b('span[data-itr="option_no_skins"]').parent().find("input[type='checkbox']").prop("checked", !db),
  1581.             b('span[data-itr="option_no_names"]').parent().find("input[type='checkbox']").prop("checked", !eb),
  1582.             b('span[data-itr="option_dark_theme"]').parent().find("input[type='checkbox']").prop("checked", ib),
  1583.             b('span[data-itr="option_no_colors"]').parent().find("input[type='checkbox']").prop("checked", fb),
  1584.             b('span[data-itr="option_show_mass"]').parent().find("input[type='checkbox']").prop("checked", jb),
  1585.             b('span[data-itr="option_skip_stats"]').parent().find("input[type='checkbox']").prop("checked", Zb),
  1586.             b("#zoom").prop("checked", Hb),
  1587.             b("#mapborders").prop("checked", Ib),
  1588.             b("#oppcolors").prop("checked", Jb),
  1589.             b("#opprings").prop("checked", Kb),
  1590.             b("#skinsalpha").prop("checked", Lb),
  1591.             b("#cellsalpha").prop("checked", Mb),
  1592.             b("#simpledraw").prop("checked", Nb),
  1593.             b("#splittimer").prop("checked", Ob),
  1594.             b("#splitrange").prop("checked", Pb),
  1595.             b("#virusrange").prop("checked", Qb),
  1596.             b("#biggernames").prop("checked", Rb),
  1597.             b("#onlyogarioskins").prop("checked", Tb),
  1598.             b("#showminimap").prop("checked", Ub),
  1599.             b("#shifton").prop("checked", !Vb),
  1600.             b("#clanTag").wrap('<div class="tagList"></div>'),
  1601.             b(".tagList").append('<ul><li>☯ 陽 </li><li>☯ 陰 </li><li>☯ ☯ </li></ul>'),
  1602.             b("#showfps").prop("checked", Wb), b("#showmassguides").prop("checked", Xb), b("#cursortracking").prop("checked", Yb), b("#rainbowfood").prop("checked", $b), b("#sectorsbg").prop("checked", _b), b("#acid").prop("checked", xb), b("#clanTag").css({
  1603.             width: "107px",
  1604.             "margin-right": "5px",
  1605.             "float": "left"
  1606.         }), b("#region").css({
  1607.             width: "209px",
  1608.             margin: "5px 0 0 0",
  1609.             "float": "left"
  1610.         }), b("#gamemode").css("margin-top", "5px"), b(".btn-play").css({
  1611.             width: "100%",
  1612.             "margin-left": "0"
  1613.         }), b(".btn-play-guest, .btn-login").css("width", "157px"), b(".btn-play-guest").css("margin-left", "0"), b(".btn-settings").css("margin-top", "5px"), b(".btn-spectate, .btn-logout").css({
  1614.             margin: "5px 0 0 5px",
  1615.             "float": "left"
  1616.         }), b("#nextBtn").css({
  1617.             width: "45px",
  1618.             margin: "5px 0 0 5px",
  1619.             "padding-bottom": "7px",
  1620.             "float": "left"
  1621.         }), b("#ogarioParty").css("padding-bottom", "6px"), b("#ogarioParty .partyToken").css({
  1622.             width: "210px",
  1623.             margin: "0 5px 0 0",
  1624.             "float": "left"
  1625.         }), b(".btn-copyToken").css("width", "105px"), b(".btn-createParty, .btn-joinParty").css({
  1626.             width: "136px",
  1627.             "margin-top": "5px"
  1628.         }), b(".btn-closeParty").css({
  1629.             width: "40px",
  1630.             "margin-top": "5px"
  1631.         }), b("#settings div").css({
  1632.             width: "100%",
  1633.             "float": "none"
  1634.         }), b("#options label").css("width", "153px"), b("#ogario-options label").css("width", "150px"), b("#adbg, #g300x250, #a300x250").css("height", "auto"), b("#helloContainer hr").css("margin", "6px 0"), b("#instructions").css("font-size", "12px"), b("#statsContinue").css("bottom", "309px"), b(".agario-profile-picture, .agario-profile-name-container").css("display", "none")
  1635.     })
  1636.    
  1637.     function tagList(id, h, l) {
  1638.     var self = this;
  1639.     self.h = h;
  1640.     self.l = l;
  1641.     self.inp = document.getElementById(id);
  1642.     self.hasfocus = false;
  1643.     self.sel = -1;
  1644.     self.ul = self.inp.nextSibling;
  1645.     while (self.ul.nodeType == 3) self.ul = self.ul.nextSibling;
  1646.     self.ul.onmouseover = function() {
  1647.         self.ul.className = '';
  1648.     };
  1649.     self.ul.onmouseout = function() {
  1650.         self.ul.className = 'focused';
  1651.         if (!self.hasfocus) self.ul.style.display = 'none';
  1652.     };
  1653.     self.list = self.ul.getElementsByTagName('li');
  1654.     for (var i = self.list.length - 1; i >= 0; i--) {
  1655.         self.list[i].onclick = function() {
  1656.             self.inp.value = this.firstChild.data;
  1657.             self.rset(self);
  1658.         }
  1659.     }
  1660.     self.inp.onfocus = function() {
  1661.         self.ul.style.display = 'block';
  1662.         self.ul.className = 'focused';
  1663.         self.hasfocus = true;
  1664.         self.sel = -1;
  1665.     };
  1666.     self.inp.onblur = function() {
  1667.         if (self.ul.className == 'focused') {
  1668.             self.rset(self);
  1669.         }
  1670.         self.ul.className = '';
  1671.         self.hasfocus = false;
  1672.     };
  1673.     self.inp.onkeyup = function(e) {
  1674.         var k = (e) ? e.keyCode : event.keyCode;
  1675.         if (k == 40 || k == 13) {
  1676.             if (self.sel == self.list.length - 1) {
  1677.                 self.list[self.sel].style.backgroundColor = self.l;
  1678.                 self.sel = -1;
  1679.             }
  1680.             if (self.sel > -1) self.list[self.sel].style.backgroundColor = self.l;
  1681.             self.inp.value = self.list[++self.sel].firstChild.data;
  1682.             self.list[self.sel].style.backgroundColor = self.h;
  1683.         } else if (k == 38 && self.sel > 0) {
  1684.             self.list[self.sel].style.backgroundColor = self.l;
  1685.             self.inp.value = self.list[--self.sel].firstChild.data;
  1686.             self.list[self.sel].style.backgroundColor = self.h;
  1687.         }
  1688.         return false;
  1689.     };
  1690. }
  1691. tagList.prototype.rset = function(self) {
  1692.     self.ul.style.display = 'none';
  1693.     self.sel = -1;
  1694.     for (var i = self.list.length - 1; i >= 0; i--) {
  1695.         self.list[i].style.backgroundColor = self.l;
  1696.     }
  1697.     return false;
  1698. };
  1699.  
  1700. new tagList('clanTag', '#FFF', '#FFF');
  1701.    
  1702. };
  1703.  
  1704. var script = document.createElement('script');
  1705. script.textContent = lang + '!' + ogario + '(window,window.jQuery);';
  1706. (document.head || document.documentElement).appendChild(script);
  1707. script.onload = function() {
  1708.     this.parentNode.removeChild(this);
  1709. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement