Advertisement
Guest User

Google Zamboni

a guest
Jan 16th, 2013
272
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function () {
  2.     var h = void 0,
  3.         i = !0,
  4.         k = null,
  5.         l = !1,
  6.         m, aa = this,
  7.         ba = function (a) {
  8.             a = a.split(".");
  9.             var b = aa;
  10.             !(a[0] in b) && b.execScript && b.execScript("var " + a[0]);
  11.             for (var c; a.length && (c = a.shift());)!a.length ? b[c] = i : b = b[c] ? b[c] : b[c] = {}
  12.         }, ca = function (a) {
  13.             var b = typeof a;
  14.             if ("object" == b) if (a) {
  15.                 if (a instanceof Array) return "array";
  16.                 if (a instanceof Object) return b;
  17.                 var c = Object.prototype.toString.call(a);
  18.                 if ("[object Window]" == c) return "object";
  19.                 if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array";
  20.                 if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function"
  21.             } else return "null";
  22.             else if ("function" == b && "undefined" == typeof a.call) return "object";
  23.             return b
  24.         }, da = "closure_uid_" + Math.floor(2147483648 * Math.random()).toString(36),
  25.         ea = 0,
  26.         fa = function (a, b, c) {
  27.             return a.call.apply(a.bind, arguments)
  28.         }, ia = function (a, b, c) {
  29.             if (!a) throw Error();
  30.             if (2 < arguments.length) {
  31.                 var d = Array.prototype.slice.call(arguments,
  32.                 2);
  33.                 return function () {
  34.                     var c = Array.prototype.slice.call(arguments);
  35.                     Array.prototype.unshift.apply(c, d);
  36.                     return a.apply(b, c)
  37.                 }
  38.             }
  39.             return function () {
  40.                 return a.apply(b, arguments)
  41.             }
  42.         }, ja = function (a, b, c) {
  43.             ja = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? fa : ia;
  44.             return ja.apply(k, arguments)
  45.         }, ka = function (a, b) {
  46.             function c() {}
  47.             c.prototype = b.prototype;
  48.             a.Va = b.prototype;
  49.             a.prototype = new c
  50.         };
  51.     Function.prototype.bind = Function.prototype.bind || function (a, b) {
  52.         if (1 < arguments.length) {
  53.             var c = Array.prototype.slice.call(arguments, 1);
  54.             c.unshift(this, a);
  55.             return ja.apply(k, c)
  56.         }
  57.         return ja(this, a)
  58.     };
  59.     var la = function (a, b, c) {
  60.         a = Math.min(1, Math.max(0, a));
  61.         return b + (a + Math.abs(Math.sin(2 * a * Math.PI)) * (1 - a)) * (c - b)
  62.     }, ma = function (a) {
  63.         a.getContext("2d").clearRect(0, 0, a.width, a.height)
  64.     }, na = function (a, b, c) {
  65.         a = Math.pow(a, 0.33);
  66.         return q(a, b, c)
  67.     }, oa = function () {
  68.         return (new Date).getTime()
  69.     }, pa = function (a) {
  70.         if (window.localStorage) {
  71.             if (a = window.localStorage.getItem(a)) if (a = a.toLowerCase(), "0" != a && "no" != a && "false" != a) return i;
  72.             if (a != k) return l
  73.         }
  74.         return k
  75.     }, q = function (a, b, c) {
  76.         return b + Math.min(1, Math.max(0, a)) * (c - b)
  77.     }, qa = function (a,
  78.     b) {
  79.         var c = a / b,
  80.             c = 0 > c ? Math.ceil(c) : Math.floor(c);
  81.         return a - c * b
  82.     }, ra = function (a) {
  83.         a: {
  84.             for (var b = ["requestAnimationFrame", "mozRequestAnimationFrame", "msRequestAnimationFrame", "oRequestAnimationFrame", "webkitRequestAnimationFrame"], c = 0; c < b.length; c++) {
  85.                 var d = window[b[c]];
  86.                 if (d) {
  87.                     ra = ja(d, window);
  88.                     break a
  89.                 }
  90.             }
  91.             ra = function (a) {
  92.                 window.setTimeout(a, 17)
  93.             }
  94.         }
  95.         return ra(a)
  96.     }, sa = function (a) {
  97.         var b = r,
  98.             c = Math.max(0, a - 207) + "px";
  99.         b.style.width = "650px";
  100.         b.style.height = a + "px";
  101.         if (a = document.getElementById("lga")) a.style.marginBottom = c;
  102.         if (a = document.getElementById("searchform") || document.getElementById("gbq2")) a.style.marginTop = c;
  103.         c = document.createEvent("UIEvents");
  104.         c.initUIEvent("resize", l, l, window, 0);
  105.         window.dispatchEvent(c)
  106.     };
  107.     var ta = l,
  108.         t = function () {
  109.             this.Ga = this.Fa = this.s = 0;
  110.             this.va = []
  111.         };
  112.     t.prototype.play = function () {
  113.         ta || (this.stop(), this.Fa = 0, this.Ga = oa(), this.s = window.setInterval(ja(this.Za, this), 16), this.Za())
  114.     };
  115.     var u = function (a, b, c) {
  116.         a.va.push({
  117.             duration: c || 0,
  118.             wa: b
  119.         })
  120.     };
  121.     t.prototype.stop = function () {
  122.         if (this.s) {
  123.             for (var a; a = this.va[this.Fa++];) a.wa(1);
  124.             window.clearInterval(this.s);
  125.             this.s = 0
  126.         }
  127.     };
  128.     var v = function (a, b) {
  129.         u(a, function () {}, b)
  130.     };
  131.     t.prototype.Za = function () {
  132.         var a = oa();
  133.         if (!ta) for (var b; b = this.va[this.Fa]; this.Fa++) {
  134.             var c = a - this.Ga;
  135.             if (c < b.duration) {
  136.                 b.wa(c / b.duration);
  137.                 return
  138.             }
  139.             b.wa(1);
  140.             0 < b.duration && (this.Ga += b.duration)
  141.         }
  142.         this.stop()
  143.     };
  144.     var w = function (a, b, c, d, e, f, g, j) {
  145.         this.reset = function () {
  146.             this.xa = this.p = 0;
  147.             this.ra = "source-over";
  148.             this.T = this.frame = 0;
  149.             this.offsetX = g || 0;
  150.             this.offsetY = j || 0;
  151.             this.F = this.i = this.opacity = 1;
  152.             this.J = this.La = 0;
  153.             this.k = f;
  154.             this.D = e;
  155.             this.Ja = c || 0;
  156.             this.L = d || 0;
  157.             this.S = this.R = k;
  158.             this.y = this.x = 0;
  159.             this.ta = a;
  160.             this.la = this.Na = this.ka = this.Ma = 0;
  161.             this.V = a.getContext("2d");
  162.             this.ma = k;
  163.             this.N = b
  164.         };
  165.         this.reset()
  166.     };
  167.     w.prototype.clip = function (a, b, c, d) {
  168.         var e = this.x + this.offsetX * this.i,
  169.             f = Math.max(0, a - e);
  170.         a = Math.max(0, e + this.getWidth() - a - c);
  171.         0 < this.i ? (this.ka = f, this.Na = a) : (this.ka = a, this.Na = f);
  172.         a = this.y + this.offsetY * this.F;
  173.         f = Math.max(0, b - a);
  174.         b = Math.max(0, a + this.getHeight() - b - d);
  175.         0 < this.F ? (this.la = f, this.Ma = b) : (this.la = b, this.Ma = f)
  176.     };
  177.     w.prototype.o = function () {
  178.         var a = new w(this.ta, this.N, this.Ja, this.L, this.D, this.k, this.offsetX, this.offsetY);
  179.         a.xa = this.xa;
  180.         a.p = this.p;
  181.         a.frame = this.frame;
  182.         a.T = this.T;
  183.         a.opacity = this.opacity;
  184.         a.i = this.i;
  185.         a.F = this.F;
  186.         a.La = this.La;
  187.         a.J = this.J;
  188.         a.R = this.R;
  189.         a.S = this.S;
  190.         a.x = this.x;
  191.         a.y = this.y;
  192.         return a
  193.     };
  194.     var ua = function (a, b, c) {
  195.         var d = new t;
  196.         c /= b;
  197.         for (var e = function (a, b) {
  198.             return function () {
  199.                 a.frame = b
  200.             }
  201.         }, f = 0; f < b; f++) u(d, e(a, f), c);
  202.         return d
  203.     }, va = function (a, b, c) {
  204.         var d = a.x + a.offsetX,
  205.             e = a.y + a.offsetY;
  206.         return b >= d && b < d + a.getWidth() && c >= e && c < e + a.getHeight()
  207.     };
  208.     w.prototype.a = function () {
  209.         if (!this.N.complete && "complete" != this.N.readyState || !this.opacity) return l;
  210.         this.D || (this.D = this.N.width);
  211.         this.k || (this.k = this.N.height);
  212.         var a = this.getWidth(),
  213.             b = this.getHeight();
  214.         if (!a || !b) return l;
  215.         var c = this.p ? 0.2071 * Math.max(a, b) : 0,
  216.             d = this.x + this.offsetX,
  217.             e = this.y + this.offsetY;
  218.         if (0 >= d + a + c || 0 >= e + b + c || d - c > this.ta.width || e - c > this.ta.height) return l;
  219.         this.V.save();
  220.         this.V.globalAlpha = this.opacity;
  221.         this.V.globalCompositeOperation = this.ra;
  222.         e = this.p;
  223.         this.xa && (e += this.xa * (Math.random() - 0.5));
  224.         c = 0;
  225.         d = 1;
  226.         e && (c = Math.sin(e), d = Math.cos(e));
  227.         var f = (0 > this.i ? -a : a) / 2,
  228.             g = (0 > this.F ? -b : b) / 2,
  229.             e = this.x + f - d * f + c * g,
  230.             f = this.y + g - d * g - c * f;
  231.         this.T && (e += this.T * (Math.random() - 0.5), f += this.T * (Math.random() - 0.5));
  232.         0 > this.i && (e += a);
  233.         0 > this.F && (f += b);
  234.         var g = this.La / b,
  235.             j = this.J / a;
  236.         this.V.transform(this.i * (d - j * c), this.i * (j * d + c), this.F * (g * d - c), this.F * (d + g * c), e, f);
  237.         try {
  238.             if (this.S || this.R) for (var n = this.D * this.i, p = this.k * this.F, s = Math.ceil(a / n), A = Math.ceil(b / p), ga = qa(a, n) || n, ha = qa(b, p) || p, a = 0; a < A; a++) for (b = 0; b < s; b++) wa(this,
  239.             b * this.D, a * this.k, b == s - 1 ? ga : this.D, a == A - 1 ? ha : this.k);
  240.             else wa(this, 0, 0, this.D, this.k)
  241.         } catch (Pf) {}
  242.         this.V.restore();
  243.         return i
  244.     };
  245.     var xa = function (a, b, c, d) {
  246.         d == h && (d = a.opacity);
  247.         if (d == c) a.opacity = c;
  248.         else {
  249.             a.ma && a.ma.stop();
  250.             a.ma = new t;
  251.             var e = a.ma,
  252.                 f = d;
  253.             d = ja(function (a) {
  254.                 this.opacity = q(a, f, c)
  255.             }, a);
  256.             u(e, d, b);
  257.             a.ma.play()
  258.         }
  259.     };
  260.     w.prototype.getHeight = function () {
  261.         if (this.R != h) return this.R;
  262.         this.k || (this.k = this.N.height);
  263.         return this.k * Math.abs(this.F)
  264.     };
  265.     w.prototype.getWidth = function () {
  266.         if (this.S != h) return this.S;
  267.         this.D || (this.D = this.N.width);
  268.         return this.D * Math.abs(this.i)
  269.     };
  270.     var wa = function (a, b, c, d, e) {
  271.         var f = a.Ja + a.ka,
  272.             g = a.L + a.la;
  273.         d = d - a.Na - a.ka;
  274.         e = e - a.Ma - a.la;
  275.         0 > d || 0 > e || a.V.drawImage(a.N, f + a.frame * a.D, g, d, e, a.ka + a.offsetX + b, a.la + a.offsetY + c, d, e)
  276.     };
  277.     var ya = function (a) {
  278.         Error.captureStackTrace ? Error.captureStackTrace(this, ya) : this.stack = Error().stack || "";
  279.         a && (this.message = String(a))
  280.     };
  281.     ka(ya, Error);
  282.     var za = function (a, b) {
  283.         for (var c = 1; c < arguments.length; c++) {
  284.             var d = String(arguments[c]).replace(/\$/g, "$$$$");
  285.             a = a.replace(/\%s/, d)
  286.         }
  287.         return a
  288.     };
  289.     var Aa = function (a, b) {
  290.         b.unshift(a);
  291.         ya.call(this, za.apply(k, b));
  292.         b.shift()
  293.     };
  294.     ka(Aa, ya);
  295.     var Ba = function (a, b, c) {
  296.         if (!a) {
  297.             var d = Array.prototype.slice.call(arguments, 2),
  298.                 e = "Assertion failed";
  299.             if (b) var e = e + (": " + b),
  300.                 f = d;
  301.             throw new Aa("" + e, f || []);
  302.         }
  303.     };
  304.     var Ca = Array.prototype,
  305.         Da = Ca.indexOf ? function (a, b, c) {
  306.             Ba(a.length != k);
  307.             return Ca.indexOf.call(a, b, c)
  308.         } : function (a, b, c) {
  309.             c = c == k ? 0 : 0 > c ? Math.max(0, a.length + c) : c;
  310.             if ("string" == typeof a) return "string" != typeof b || 1 != b.length ? -1 : a.indexOf(b, c);
  311.             for (; c < a.length; c++) if (c in a && a[c] === b) return c;
  312.             return -1
  313.         };
  314.     var Ea = function () {};
  315.     var Fa, Ga, Ha, Ia, Ja = function () {
  316.         return aa.navigator ? aa.navigator.userAgent : k
  317.     };
  318.     Ia = Ha = Ga = Fa = l;
  319.     var Ka;
  320.     if (Ka = Ja()) {
  321.         var La = aa.navigator;
  322.         Fa = 0 == Ka.indexOf("Opera");
  323.         Ga = !Fa && -1 != Ka.indexOf("MSIE");
  324.         Ha = !Fa && -1 != Ka.indexOf("WebKit");
  325.         Ia = !Fa && !Ha && "Gecko" == La.product
  326.     }
  327.     var Ma = Fa,
  328.         Na = Ga,
  329.         Oa = Ia,
  330.         Pa = Ha,
  331.         Qa = function () {
  332.             var a = aa.document;
  333.             return a ? a.documentMode : h
  334.         }, Ra;
  335.     a: {
  336.         var Sa = "",
  337.             Ta;
  338.         if (Ma && aa.opera) var Ua = aa.opera.version,
  339.             Sa = "function" == typeof Ua ? Ua() : Ua;
  340.         else if (Oa ? Ta = /rv\:([^\);]+)(\)|;)/ : Na ? Ta = /MSIE\s+([^\);]+)(\)|;)/ : Pa && (Ta = /WebKit\/(\S+)/), Ta) var Va = Ta.exec(Ja()),
  341.             Sa = Va ? Va[1] : "";
  342.         if (Na) {
  343.             var Wa = Qa();
  344.             if (Wa > parseFloat(Sa)) {
  345.                 Ra = String(Wa);
  346.                 break a
  347.             }
  348.         }
  349.         Ra = Sa
  350.     }
  351.     var Xa = Ra,
  352.         Ya = {}, Za = function (a) {
  353.             var b;
  354.             if (!(b = Ya[a])) {
  355.                 b = 0;
  356.                 for (var c = String(Xa).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), d = String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), e = Math.max(c.length, d.length), f = 0; 0 == b && f < e; f++) {
  357.                     var g = c[f] || "",
  358.                         j = d[f] || "",
  359.                         n = RegExp("(\\d*)(\\D*)", "g"),
  360.                         p = RegExp("(\\d*)(\\D*)", "g");
  361.                     do {
  362.                         var s = n.exec(g) || ["", "", ""],
  363.                             A = p.exec(j) || ["", "", ""];
  364.                         if (0 == s[0].length && 0 == A[0].length) break;
  365.                         b = ((0 == s[1].length ? 0 : parseInt(s[1], 10)) < (0 == A[1].length ? 0 : parseInt(A[1], 10)) ? -1 : (0 == s[1].length ? 0 : parseInt(s[1], 10)) > (0 == A[1].length ? 0 : parseInt(A[1], 10)) ? 1 : 0) || ((0 == s[2].length) < (0 == A[2].length) ? -1 : (0 == s[2].length) > (0 == A[2].length) ? 1 : 0) || (s[2] < A[2] ? -1 : s[2] > A[2] ? 1 : 0)
  366.                     } while (0 == b)
  367.                 }
  368.                 b = Ya[a] = 0 <= b
  369.             }
  370.             return b
  371.         }, $a = aa.document,
  372.         ab = !$a || !Na ? h : Qa() || ("CSS1Compat" == $a.compatMode ? parseInt(Xa, 10) : 5);
  373.     var bb = function (a) {
  374.         bb[" "](a);
  375.         return a
  376.     };
  377.     bb[" "] = function () {};
  378.     var cb;
  379.     if (!(cb = !Na)) cb = Na && 9 <= ab;
  380.     var db = cb,
  381.         eb = Na && !Za("9");
  382.     !Pa || Za("528");
  383.     Oa && Za("1.9b") || Na && Za("8") || Ma && Za("9.5") || Pa && Za("528");
  384.     Oa && !Za("8") || Na && Za("9");
  385.     var fb = function (a, b) {
  386.         this.type = a;
  387.         this.currentTarget = this.target = b
  388.     };
  389.     fb.prototype.Qa = l;
  390.     fb.prototype.defaultPrevented = l;
  391.     fb.prototype.preventDefault = function () {
  392.         this.defaultPrevented = i
  393.     };
  394.     var gb = function (a, b) {
  395.         a && this.init(a, b)
  396.     };
  397.     ka(gb, fb);
  398.     m = gb.prototype;
  399.     m.target = k;
  400.     m.relatedTarget = k;
  401.     m.offsetX = 0;
  402.     m.offsetY = 0;
  403.     m.clientX = 0;
  404.     m.clientY = 0;
  405.     m.screenX = 0;
  406.     m.screenY = 0;
  407.     m.button = 0;
  408.     m.keyCode = 0;
  409.     m.charCode = 0;
  410.     m.ctrlKey = l;
  411.     m.altKey = l;
  412.     m.shiftKey = l;
  413.     m.metaKey = l;
  414.     m.fb = k;
  415.     m.init = function (a, b) {
  416.         var c = this.type = a.type;
  417.         fb.call(this, c);
  418.         this.target = a.target || a.srcElement;
  419.         this.currentTarget = b;
  420.         var d = a.relatedTarget;
  421.         if (d) {
  422.             if (Oa) {
  423.                 var e;
  424.                 a: {
  425.                     try {
  426.                         bb(d.nodeName);
  427.                         e = i;
  428.                         break a
  429.                     } catch (f) {}
  430.                     e = l
  431.                 }
  432.                 e || (d = k)
  433.             }
  434.         } else "mouseover" == c ? d = a.fromElement : "mouseout" == c && (d = a.toElement);
  435.         this.relatedTarget = d;
  436.         this.offsetX = Pa || a.offsetX !== h ? a.offsetX : a.layerX;
  437.         this.offsetY = Pa || a.offsetY !== h ? a.offsetY : a.layerY;
  438.         this.clientX = a.clientX !== h ? a.clientX : a.pageX;
  439.         this.clientY = a.clientY !== h ? a.clientY : a.pageY;
  440.         this.screenX = a.screenX || 0;
  441.         this.screenY = a.screenY || 0;
  442.         this.button = a.button;
  443.         this.keyCode = a.keyCode || 0;
  444.         this.charCode = a.charCode || ("keypress" == c ? a.keyCode : 0);
  445.         this.ctrlKey = a.ctrlKey;
  446.         this.altKey = a.altKey;
  447.         this.shiftKey = a.shiftKey;
  448.         this.metaKey = a.metaKey;
  449.         this.state = a.state;
  450.         this.fb = a;
  451.         a.defaultPrevented && this.preventDefault();
  452.         delete this.Qa
  453.     };
  454.     m.preventDefault = function () {
  455.         gb.Va.preventDefault.call(this);
  456.         var a = this.fb;
  457.         if (a.preventDefault) a.preventDefault();
  458.         else if (a.returnValue = l, eb) try {
  459.             if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode) a.keyCode = -1
  460.         } catch (b) {}
  461.     };
  462.     var hb = function () {}, ib = 0;
  463.     m = hb.prototype;
  464.     m.key = 0;
  465.     m.ea = l;
  466.     m.Da = l;
  467.     m.init = function (a, b, c, d, e, f) {
  468.         if ("function" == ca(a)) this.$a = i;
  469.         else if (a && a.handleEvent && "function" == ca(a.handleEvent)) this.$a = l;
  470.         else throw Error("Invalid listener argument");
  471.         this.Ea = a;
  472.         this.Xa = b;
  473.         this.src = c;
  474.         this.type = d;
  475.         this.capture = !! e;
  476.         this.Wa = f;
  477.         this.Da = l;
  478.         this.key = ++ib;
  479.         this.ea = l
  480.     };
  481.     m.handleEvent = function (a) {
  482.         return this.$a ? this.Ea.call(this.Wa || this.src, a) : this.Ea.handleEvent.call(this.Ea, a)
  483.     };
  484.     var jb = {}, kb = {}, lb = {}, mb = {}, nb = function (a, b, c, d, e) {
  485.         if ("array" == ca(b)) {
  486.             for (var f = 0; f < b.length; f++) nb(a, b[f], c, d, e);
  487.             return k
  488.         }
  489.         a: {
  490.             if (!b) throw Error("Invalid event type");
  491.             d = !! d;
  492.             var g = kb;
  493.             b in g || (g[b] = {
  494.                 K: 0,
  495.                 W: 0
  496.             });
  497.             g = g[b];
  498.             d in g || (g[d] = {
  499.                 K: 0,
  500.                 W: 0
  501.             }, g.K++);
  502.             var g = g[d],
  503.                 f = a[da] || (a[da] = ++ea),
  504.                 j;
  505.             g.W++;
  506.             if (g[f]) {
  507.                 j = g[f];
  508.                 for (var n = 0; n < j.length; n++) if (g = j[n], g.Ea == c && g.Wa == e) {
  509.                     if (g.ea) break;
  510.                     j[n].Da = l;
  511.                     a = j[n].key;
  512.                     break a
  513.                 }
  514.             } else j = g[f] = [], g.K++;
  515.             var p = ob,
  516.                 s = db ? function (a) {
  517.                     return p.call(s.src, s.key, a)
  518.                 } : function (a) {
  519.                     a = p.call(s.src,
  520.                     s.key, a);
  521.                     if (!a) return a
  522.                 }, n = s;
  523.             n.src = a;
  524.             g = new hb;
  525.             g.init(c, n, a, b, d, e);
  526.             g.Da = l;
  527.             c = g.key;
  528.             n.key = c;
  529.             j.push(g);
  530.             jb[c] = g;
  531.             lb[f] || (lb[f] = []);
  532.             lb[f].push(g);
  533.             a.addEventListener ? (a == aa || !a.ib) && a.addEventListener(b, n, d) : a.attachEvent(b in mb ? mb[b] : mb[b] = "on" + b, n);
  534.             a = c
  535.         }
  536.         return a
  537.     }, pb = function (a, b, c, d) {
  538.         if (!d.Ha && d.Ya) {
  539.             for (var e = 0, f = 0; e < d.length; e++) d[e].ea ? d[e].Xa.src = k : (e != f && (d[f] = d[e]), f++);
  540.             d.length = f;
  541.             d.Ya = l;
  542.             0 == f && (delete kb[a][b][c], kb[a][b].K--, 0 == kb[a][b].K && (delete kb[a][b], kb[a].K--), 0 == kb[a].K && delete kb[a])
  543.         }
  544.     }, rb = function (a, b, c, d, e) {
  545.         var f = 1;
  546.         b = b[da] || (b[da] = ++ea);
  547.         if (a[b]) {
  548.             a.W--;
  549.             a = a[b];
  550.             a.Ha ? a.Ha++ : a.Ha = 1;
  551.             try {
  552.                 for (var g = a.length, j = 0; j < g; j++) {
  553.                     var n = a[j];
  554.                     n && !n.ea && (f &= qb(n, e) !== l)
  555.                 }
  556.             } finally {
  557.                 a.Ha--, pb(c, d, b, a)
  558.             }
  559.         }
  560.         return Boolean(f)
  561.     }, qb = function (a, b) {
  562.         if (a.Da) {
  563.             var c = a.key;
  564.             if (jb[c]) {
  565.                 var d = jb[c];
  566.                 if (!d.ea) {
  567.                     var e = d.src,
  568.                         f = d.type,
  569.                         g = d.Xa,
  570.                         j = d.capture;
  571.                     e.removeEventListener ? (e == aa || !e.ib) && e.removeEventListener(f, g, j) : e.detachEvent && e.detachEvent(f in mb ? mb[f] : mb[f] = "on" + f, g);
  572.                     e = e[da] || (e[da] = ++ea);
  573.                     if (lb[e]) {
  574.                         var g = lb[e],
  575.                             n = Da(g, d);
  576.                         0 <= n && (Ba(g.length != k), Ca.splice.call(g, n, 1));
  577.                         0 == g.length && delete lb[e]
  578.                     }
  579.                     d.ea = i;
  580.                     if (d = kb[f][j][e]) d.Ya = i, pb(f, j, e, d);
  581.                     delete jb[c]
  582.                 }
  583.             }
  584.         }
  585.         return a.handleEvent(b)
  586.     }, ob = function (a, b) {
  587.         if (!jb[a]) return i;
  588.         var c = jb[a],
  589.             d = c.type,
  590.             e = kb;
  591.         if (!(d in e)) return i;
  592.         var e = e[d],
  593.             f, g;
  594.         if (!db) {
  595.             var j;
  596.             if (!(j = b)) a: {
  597.                 j = ["window", "event"];
  598.                 for (var n = aa; f = j.shift();) if (n[f] != k) n = n[f];
  599.                 else {
  600.                     j = k;
  601.                     break a
  602.                 }
  603.                 j = n
  604.             }
  605.             f = j;
  606.             j = i in e;
  607.             n = l in e;
  608.             if (j) {
  609.                 if (0 > f.keyCode || f.returnValue != h) return i;
  610.                 a: {
  611.                     var p = l;
  612.                     if (0 == f.keyCode) try {
  613.                         f.keyCode = -1;
  614.                         break a
  615.                     } catch (s) {
  616.                         p = i
  617.                     }
  618.                     if (p || f.returnValue == h) f.returnValue = i
  619.                 }
  620.             }
  621.             p = new gb;
  622.             p.init(f, this);
  623.             f = i;
  624.             try {
  625.                 if (j) {
  626.                     for (var A = [], ga = p.currentTarget; ga; ga = ga.parentNode) A.push(ga);
  627.                     g = e[i];
  628.                     g.W = g.K;
  629.                     for (var ha = A.length - 1; !p.Qa && 0 <= ha && g.W; ha--) p.currentTarget = A[ha], f &= rb(g, A[ha], d, i, p);
  630.                     if (n) {
  631.                         g = e[l];
  632.                         g.W = g.K;
  633.                         for (ha = 0; !p.Qa && ha < A.length && g.W; ha++) p.currentTarget = A[ha], f &= rb(g, A[ha], d, l, p)
  634.                     }
  635.                 } else f = qb(c, p)
  636.             } finally {
  637.                 A && (A.length = 0)
  638.             }
  639.             return f
  640.         }
  641.         d = new gb(b, this);
  642.         return f = qb(c, d)
  643.     };
  644.     var sb = function (a) {
  645.         this.nb = a;
  646.         this.ob = []
  647.     };
  648.     ka(sb, Ea);
  649.     var tb = [];
  650.     sb.prototype.listen = function (a, b, c, d, e) {
  651.         "array" != ca(b) && (tb[0] = b, b = tb);
  652.         for (var f = 0; f < b.length; f++) {
  653.             var g = nb(a, b[f], c || this, d || l, e || this.nb || this);
  654.             this.ob.push(g)
  655.         }
  656.         return this
  657.     };
  658.     sb.prototype.handleEvent = function () {
  659.         throw Error("EventHandler.handleEvent not implemented");
  660.     };
  661.     var ub = function (a, b, c, d, e) {
  662.         sb.call(this);
  663.         this.kb = a;
  664.         this.jb = b;
  665.         this.bb = c;
  666.         this.ab = d;
  667.         (this.cb = e || k) && this.listen(this.cb, "click", this.show)
  668.     };
  669.     ka(ub, sb);
  670.     ub.prototype.show = function () {
  671.         window.gapi && window.gbar && window.gbar.asmc ? window.gapi.load("share", ja(this.eb, this)) : window.open("about:blank").location = "https://plus.google.com"
  672.     };
  673.     ub.prototype.eb = function () {
  674.         if (window.gapi && window.gapi.share) {
  675.             var a = {
  676.                 items: [{
  677.                     type: "http://schema.org/WebPage",
  678.                     id: location.protocol + "//" + location.host,
  679.                     properties: {
  680.                         description: [this.bb],
  681.                         url: [this.kb],
  682.                         name: [this.jb],
  683.                         image: [this.ab]
  684.                     }
  685.                 }]
  686.             }, b = window.location.toString().match(/[?&]authuser=(\d+)/);
  687.             window.gapi.share.lightbox(a, {
  688.                 isLoggedInForGooglePlus: !(!window.gbar || !window.gbar.asmc) || !! window.google.doodle.sf,
  689.                 onLoginPopupBlocked: function () {
  690.                     window.google.log && window.google.log("DOODLE", "popupblocked")
  691.                 },
  692.                 sessionIndex: b && b[1] || "",
  693.                 sourceForLogging: "doodle",
  694.                 onLoginStateChanged: ja(function () {
  695.                     ba("google.doodle.sf");
  696.                     this.eb()
  697.                 }, this)
  698.             })
  699.         }
  700.     };
  701.     var vb = function (a, b, c) {
  702.         this.Ia = {};
  703.         this.lb = b || "";
  704.         this.mb = c || document.body;
  705.         if (a) for (var d in a) this.load(a[d])
  706.     };
  707.     ka(vb, Ea);
  708.     m = vb.prototype;
  709.     m.load = function (a) {
  710.         var b;
  711.         if (a && !(b = this.Ia[a])) {
  712.             var c = document.createElement("audio");
  713.             c && (c.controls = l, c.hidden = i, c.loaded = l, nb(c, "loadedmetadata", function () {
  714.                 c.loaded = i
  715.             }), b = this.lb + "/" + a, wb(c, b + ".ogg", "audio/ogg"), wb(c, b + ".mp3", "audio/mpeg"), this.Ia[a] = c, this.mb.appendChild(c));
  716.             b = c
  717.         }
  718.         return b
  719.     };
  720.     m.loop = function (a) {
  721.         if (a = this.play(a)) a.loop = i;
  722.         return a
  723.     };
  724.     m.play = function (a) {
  725.         if ((a = this.load(a)) && a.play) a.autoplay = i, a.loop = l, a.play();
  726.         return a
  727.     };
  728.     m.pause = function (a) {
  729.         if (a) {
  730.             var b = this.Ia[a];
  731.             b && b.pause && (b.pause(), b.autoplay = l, b.loop = l)
  732.         }
  733.         return b
  734.     };
  735.     m.stop = function (a) {
  736.         if ((a = this.pause(a)) && a.loaded) a.currentTime = 0;
  737.         return a
  738.     };
  739.     var xb = function () {
  740.         var a = x,
  741.             b;
  742.         for (b in a.Ia) a.stop(b)
  743.     }, wb = function (a, b, c) {
  744.         var d = document.createElement("source");
  745.         d.src = b;
  746.         d.type = c;
  747.         a.appendChild(d)
  748.     };
  749.     var yb = function (a, b) {
  750.         this.x = a !== h ? a : 0;
  751.         this.y = b !== h ? b : 0
  752.     };
  753.     m = yb.prototype;
  754.     m.o = function () {
  755.         return new yb(this.x, this.y)
  756.     };
  757.     m.toString = function () {
  758.         return "(" + this.x + ", " + this.y + ")"
  759.     };
  760.     m.ceil = function () {
  761.         this.x = Math.ceil(this.x);
  762.         this.y = Math.ceil(this.y);
  763.         return this
  764.     };
  765.     m.floor = function () {
  766.         this.x = Math.floor(this.x);
  767.         this.y = Math.floor(this.y);
  768.         return this
  769.     };
  770.     m.round = function () {
  771.         this.x = Math.round(this.x);
  772.         this.y = Math.round(this.y);
  773.         return this
  774.     };
  775.     m.scale = function (a, b) {
  776.         this.x *= a;
  777.         this.y *= "number" == typeof b ? b : a;
  778.         return this
  779.     };
  780.     var zb = function (a, b, c, d) {
  781.         this.left = a;
  782.         this.top = b;
  783.         this.width = c;
  784.         this.height = d
  785.     };
  786.     zb.prototype.o = function () {
  787.         return new zb(this.left, this.top, this.width, this.height)
  788.     };
  789.     zb.prototype.toString = function () {
  790.         return "(" + this.left + ", " + this.top + " - " + this.width + "w x " + this.height + "h)"
  791.     };
  792.     var Ab = function (a, b) {
  793.         return a.left <= b.left + b.width && b.left <= a.left + a.width && a.top <= b.top + b.height && b.top <= a.top + a.height
  794.     };
  795.     zb.prototype.ceil = function () {
  796.         this.left = Math.ceil(this.left);
  797.         this.top = Math.ceil(this.top);
  798.         this.width = Math.ceil(this.width);
  799.         this.height = Math.ceil(this.height);
  800.         return this
  801.     };
  802.     zb.prototype.floor = function () {
  803.         this.left = Math.floor(this.left);
  804.         this.top = Math.floor(this.top);
  805.         this.width = Math.floor(this.width);
  806.         this.height = Math.floor(this.height);
  807.         return this
  808.     };
  809.     zb.prototype.round = function () {
  810.         this.left = Math.round(this.left);
  811.         this.top = Math.round(this.top);
  812.         this.width = Math.round(this.width);
  813.         this.height = Math.round(this.height);
  814.         return this
  815.     };
  816.     zb.prototype.scale = function (a, b) {
  817.         var c = "number" == typeof b ? b : a;
  818.         this.left *= a;
  819.         this.width *= a;
  820.         this.top *= c;
  821.         this.height *= c;
  822.         return this
  823.     };
  824.     var y = function (a, b) {
  825.         this.x = a;
  826.         this.y = b
  827.     };
  828.     ka(y, yb);
  829.     y.prototype.o = function () {
  830.         return new y(this.x, this.y)
  831.     };
  832.     var Bb = function (a) {
  833.         return Math.sqrt(a.x * a.x + a.y * a.y)
  834.     };
  835.     y.prototype.add = function (a) {
  836.         this.x += a.x;
  837.         this.y += a.y;
  838.         return this
  839.     };
  840.     var Cb = new y(-1, 0),
  841.         Db = new y(1, 0),
  842.         Eb = new y(0, 1),
  843.         Fb = new y(0, -1),
  844.         Jb = function (a) {
  845.             var b = Gb,
  846.                 c = Hb;
  847.             c && (a.left < c.left && (a.left = c.left), a.top < c.top && (a.top = c.top), a.left + a.width > c.left + c.width && (a.left = c.left + c.width - a.width), a.top + a.height > c.top + c.height && (a.top = c.top + c.height - a.height));
  848.             for (c = 0; c < b.length; c++) {
  849.                 var d = b[c];
  850.                 if (Ib(a, d)) {
  851.                     var e, f, g, j = d.top + d.height - a.top;
  852.                     if (0 < j && (!g || j < g)) g = j, e = a.left, f = a.top + j;
  853.                     j = d.left + d.width - a.left;
  854.                     if (0 < j && (!g || j < g)) g = j, e = a.left + j, f = a.top;
  855.                     j = a.left + a.width - d.left;
  856.                     if (0 < j && (!g || j < g)) g = j, e = a.left - j, f = a.top;
  857.                     d = a.top + a.height - d.top;
  858.                     if (0 < d && (!g || d < g)) g = d, e = a.left, f = a.top - d;
  859.                     g && (a.left = e, a.top = f)
  860.                 }
  861.             }
  862.         }, Ib = function (a, b) {
  863.             return a.left + a.width > b.left && a.top + a.height > b.top && b.left + b.width > a.left && b.top + b.height > a.top
  864.         };
  865.     var Kb, Lb, z, Mb, Nb, Ob, Pb, Qb, Rb, B, r, Sb, Tb, Ub, Vb, Wb, Xb, Yb, Zb, $b, C, ac, bc, cc, dc, ec, fc, D, gc, hc, ic, jc, x, kc, lc, mc, nc, oc, pc, qc, rc, sc, tc, uc, vc, wc, xc, E, yc, zc, F, G, Ac, Bc, Cc, Dc, Ec, Fc, Gc, Hc, Ic, Jc, Kc, Lc, Mc, Nc, Oc, Pc, Qc, Rc, Hb, Sc = [],
  866.         Gb = [],
  867.         Tc = function () {
  868.             zb.call(this, 0, 0, 0, 0);
  869.             this.g = new y(0, 0);
  870.             this.ua = 1;
  871.             this.B = this.Ka = 0;
  872.             this.X = this.d = k;
  873.             this.H = new y(0, 0);
  874.             this.U = this.I = l
  875.         };
  876.     ka(Tc, zb);
  877.     Tc.prototype.a = function () {
  878.         Ab(this, Hb) && this.d && (this.d.x = this.left + H - Kb, this.d.y = this.top + I, this.d.a(), this.X ? (this.X.x = this.d.x, this.X.y = this.d.y, Uc(this.X)) : Uc(this.d))
  879.     };
  880.     var Vc = function (a, b) {
  881.         a.U || (a.U = i, Sc.push(a), a.Oa = !! b, a.Oa && Gb.push(a))
  882.     }, Wc = function (a) {
  883.         if (a.U) {
  884.             a.U = l;
  885.             for (var b = 0; b < Sc.length; b++) if (Sc[b] == a) {
  886.                 Sc.splice(b, 1);
  887.                 break
  888.             }
  889.             if (a.Oa) for (b = 0; b < Gb.length; b++) if (Gb[b] == a) {
  890.                 Gb.splice(b, 1);
  891.                 break
  892.             }
  893.         }
  894.     };
  895.     Tc.prototype.update = function (a) {
  896.         this.Ua = l;
  897.         if (!this.Oa) {
  898.             var b = this.g.o();
  899.             if (!this.I) {
  900.                 if (0 > b.x && 0 >= this.left || 0 < b.x && this.left + this.width >= Hb.width) b.x = 0;
  901.                 if (0 > b.y && 0 >= this.top || 0 < b.y && this.top + this.height >= Hb.height) b.y = 0;
  902.                 if (this.Aa) {
  903.                     var c = this.Aa.ca;
  904.                     if (c) {
  905.                         if (0 > b.x && c.left + c.width == this.left || 0 < b.x && c.left == this.left + this.width) b.x = 0;
  906.                         if (0 > b.y && c.top + c.height == this.top || 0 < b.y && c.top == this.top + this.height) b.y = 0
  907.                     }
  908.                 }
  909.             }
  910.             var b = this.H.o().add(b.scale(a)),
  911.                 c = 0,
  912.                 d = Bb(b);
  913.             d && (c = 1 - Math.min(1, this.Ka * a / d));
  914.             b.scale(c);
  915.             a = this.H.o().add(b).scale(a / 2);
  916.             this.H = b;
  917.             a = new y(this.left + a.x, this.top + a.y);
  918.             if (!this.I) {
  919.                 a: {
  920.                     var e = a;
  921.                     a = Gb;
  922.                     var f = Hb,
  923.                         b = {
  924.                             direction: k,
  925.                             end: new y(e.x, e.y),
  926.                             ca: k,
  927.                             C: 1,
  928.                             Ba: l
  929.                         }, c = e.x - this.left,
  930.                         d = e.y - this.top,
  931.                         g = new zb(Math.min(this.left, e.x), Math.min(this.top, e.y), this.width + Math.abs(c), this.height + Math.abs(d));
  932.                     if (f) {
  933.                         var j = f.left + f.width,
  934.                             n = f.top + f.height;
  935.                         if (this.left < f.left || this.top < f.top || this.left + this.width > j || this.top + this.height > n) {
  936.                             b.end = new y(this.left, this.top);
  937.                             b.ca = f;
  938.                             b.Ba = i;
  939.                             b.C = 0;
  940.                             a = b;
  941.                             break a
  942.                         }
  943.                         var p = 1,
  944.                             s = 1;
  945.                         e.x < f.left ? (p = (f.left - this.left) / c, b.direction = Cb) : e.x + this.width > j && (p = (j - this.width - this.left) / c, b.direction = Db);
  946.                         e.y < f.top ? (s = (f.top - this.top) / d, b.direction = Fb) : e.y + this.height > n && (s = (n - this.height - this.top) / d, b.direction = Eb);
  947.                         b.C = Math.min(p, s);
  948.                         1 > b.C && (b.ca = f)
  949.                     }
  950.                     for (e = 0; e < a.length; e++) if (f = a[e], Ib(g, f)) {
  951.                         if (Ib(this, f)) {
  952.                             b.end = new y(this.left, this.top);
  953.                             b.Ba = i;
  954.                             b.ca = f;
  955.                             b.C = 0;
  956.                             a = b;
  957.                             break a
  958.                         }
  959.                         c && (p = f.left - this.left + (0 < c ? -this.width : f.width), p /= c, 0 <= p && p < b.C && (s = this.top + p * d, s < f.top + f.height && s + this.height > f.top && (b.ca = f, b.C = p, b.direction = 0 < c ? Db : Cb)));
  960.                         d && (p = f.top - this.top + (0 < d ? -this.height : f.height), s = p / d, 0 <= s && s < b.C && (p = this.left + s * c, p < f.left + f.width && p + this.width > f.left && (b.ca = f, b.C = s, b.direction = 0 < d ? Eb : Fb)))
  961.                     }
  962.                     1 > b.C && (b.end = new y(1E-4 * Math.round((this.left + c * b.C) / 1E-4), 1E-4 * Math.round((this.top + d * b.C) / 1E-4)));
  963.                     a = b
  964.                 }
  965.                 1 > a.C && (this.Ua = i, a.Ba ? Jb(this) : a.direction && (a.direction.x && (this.H.x *= -this.ua), a.direction.y && (this.H.y *= -this.ua)));
  966.                 this.Aa = a;
  967.                 if (this.Aa.Ba) return;
  968.                 a = this.Aa.end
  969.             }
  970.             a && (this.B += Bb(new y(a.x - this.left,
  971.             a.y - this.top)), this.left = a.x, this.top = a.y)
  972.         }
  973.     };
  974.     Tc.prototype.stop = function () {
  975.         this.H.x = this.H.y = this.g.x = this.g.y = 0
  976.     };
  977.     var Xc = function () {
  978.         var a = Sc;
  979.         Sc = [];
  980.         Gb = [];
  981.         for (var b = 0; b < a.length; b++) Wc(a[b])
  982.     }, Yc = function (a, b) {
  983.         return a.top - b.top
  984.     };
  985.     var H, I, Zc, $c, J, ad, bd, K, L, M, cd, dd, ed, fd, gd, hd, id, jd, kd, N, ld, md, nd, od, O, pd, qd = [],
  986.         rd = 0,
  987.         sd = 0,
  988.         P = l,
  989.         td = k,
  990.         ud = [],
  991.         Q = [],
  992.         R = [],
  993.         vd = function (a, b, c, d, e, f, g) {
  994.             this.opacity = 0;
  995.             if (this.Z = a) this.aa = a.o(), this.aa.i = -1;
  996.             if (this.ia = b) this.ba = this.ia.o(), this.ba.i = -1;
  997.             this.M = c;
  998.             this.G = e;
  999.             if (this.fa = d) this.ha = this.fa.o(), this.ha.i = -1;
  1000.             this.Y = f;
  1001.             this.$ = g
  1002.         };
  1003.     vd.prototype.a = function () {
  1004.         if (this.opacity && this.M) {
  1005.             this.ia.opacity = this.M.opacity = this.ba.opacity = this.Z.opacity = this.aa.opacity = this.fa.opacity = this.G.opacity = this.ha.opacity = this.Y.opacity = this.opacity;
  1006.             this.$.opacity = 0.2 * this.opacity;
  1007.             this.fa.x = this.Z.x = this.ia.x = H - this.Z.getWidth();
  1008.             this.ha.x = this.aa.x = H + K;
  1009.             this.ba.x = H + K - this.ba.getWidth() + this.aa.getWidth();
  1010.             this.fa.y = this.ha.y = this.G.y = L + M;
  1011.             this.M.y = this.ba.y = this.ia.y = L - this.M.getHeight();
  1012.             for (var a = 0; a < K; a += this.M.getWidth()) this.M.x = H + a, this.M.clip(H,
  1013.             0, K, L), this.M.a();
  1014.             for (a = 0; a < K; a += this.G.getWidth()) this.G.x = H + a, this.G.clip(H, 0, K, cd.height), this.G.a();
  1015.             for (a = 0; a < M; a += this.Z.getHeight()) this.Z.y = this.aa.y = L + a, this.Z.a(), this.aa.a();
  1016.             this.fa.a();
  1017.             this.ha.a();
  1018.             this.ia.a();
  1019.             this.ba.a();
  1020.             this.v && this.v.k && (this.v.x = H - 4, this.v.y = I + -11 - this.v.getHeight(), this.v.S = K + 8, this.v.R = this.v.k, this.v.a());
  1021.             this.Y.x = H + (K - this.Y.getWidth()) / 2;
  1022.             this.Y.y = L - this.Y.getHeight();
  1023.             this.Y.a();
  1024.             this.$.x = H + (K - this.$.getWidth()) / 2;
  1025.             this.$.y = L + (M - this.$.getHeight()) / 2;
  1026.             this.$.a()
  1027.         }
  1028.     };
  1029.     var wd = function () {
  1030.         for (var a = Math.floor(Math.random() * dd), b = 0, c = 0; c < dd; c++) {
  1031.             for (var d = 0, e = 0; e < ed; e++) 2 == qd[c][e] && d++;
  1032.             d > b && (b = d, a = c)
  1033.         }
  1034.         return 2 * a
  1035.     }, yd = function () {
  1036.         var a = ud;
  1037.         ud = [];
  1038.         for (var b = 0; b < a.length; b++) {
  1039.             for (var c = a[b], d = c[0], c = c[1], e = 0, f = -1; 1 >= f; f++) for (var g = -1; 1 >= g; g++) {
  1040.                 var j = c + f,
  1041.                     n = d + g;
  1042.                 0 <= n && (n < ed && 0 <= j && j < dd && 2 == qd[j][n]) && e++
  1043.             }
  1044.             f = qd[c][d];
  1045.             0 == f && 1 < e || 2 == f && 4 > e ? xd(d, c, 1) : 1 == f && 1 > e && xd(d, c, 0)
  1046.         }
  1047.     }, zd = function (a, b, c, d) {
  1048.         if (N != a || O != b || I != d || c != bd) {
  1049.             if (!K || !M) K = a, M = b, L = d, fd = Q[c].G ? Q[c].G.getHeight() : 0, P = i;
  1050.             else {
  1051.                 td && td.stop();
  1052.                 var e = new t,
  1053.                     f = N || 0,
  1054.                     g = O || 0,
  1055.                     j = I || 0,
  1056.                     n = bd,
  1057.                     p = Q[n].G ? Q[n].G.getHeight() : 0,
  1058.                     s = Q[c].G ? Q[c].G.getHeight() : 0;
  1059.                 u(e, function (b) {
  1060.                     K = na(b, f, a);
  1061.                     P = i
  1062.                 }, 500);
  1063.                 u(e, function (a) {
  1064.                     L = na(a, j, d);
  1065.                     M = na(a, g, b);
  1066.                     fd = na(a, p, s);
  1067.                     P = i
  1068.                 }, 500);
  1069.                 n != c && (u(e, function () {
  1070.                     Q[n] && Q[n].z && Q[n].z.play();
  1071.                     Q[c] && Q[c].w && Q[c].w.play()
  1072.                 }), v(e, 750));
  1073.                 u(e, function () {
  1074.                     td = k
  1075.                 });
  1076.                 td = e;
  1077.                 td.play()
  1078.             }
  1079.             N = a;
  1080.             O = b;
  1081.             I = d;
  1082.             dd = Math.ceil(b / 2);
  1083.             ed = Math.ceil(a / 2);
  1084.             bd = c;
  1085.             Hb = new zb(0, 0, a, b)
  1086.         }
  1087.         qd = [];
  1088.         for (e = rd = 0; e < dd; e++) {
  1089.             for (var A = [], ga = 0; ga < ed; ga++) A.push(0);
  1090.             qd[e] = A
  1091.         }
  1092.         ud = [];
  1093.         P = i
  1094.     },
  1095.     Ad = function (a) {
  1096.         for (var b = 0; b < dd; b++) for (var c = 0; c < ed; c++) qd[b][c] == a && md.rect(H - Kb + 2 * c, I + 2 * b, 2, 2)
  1097.     }, Bd = function (a, b) {
  1098.         var c = 2 * a,
  1099.             d = 2 * b;
  1100.         nd.clearRect(c, d, 2, 2);
  1101.         var e = qd[b][a];
  1102.         if (0 != e) {
  1103.             var f = pd;
  1104.             f.opacity = 1 == e ? 0.5 : 1;
  1105.             f.x = c;
  1106.             f.y = d;
  1107.             f.Ja = 0 + c % 172;
  1108.             f.L = 0 + d % 120;
  1109.             f.a()
  1110.         }
  1111.     }, Cd = function (a, b) {
  1112.         for (var c = 0, d = Math.max(0, a.left), e = Math.min(N - 1, a.left + a.width), f = Math.max(0, a.top), g = Math.min(O - 1, a.top + a.height), d = Math.floor(d / 2), e = Math.floor(e / 2), g = Math.floor(g / 2), f = Math.floor(f / 2); f <= g; f++) for (var j = d; j <= e; j++) {
  1113.             var n = qd[f][j];
  1114.             n != b && (xd(j, f, b), 1 != n && c++)
  1115.         }
  1116.         return c
  1117.     }, xd = function (a, b, c) {
  1118.         var d = qd[b][a];
  1119.         if (d != c && (qd[b][a] = c, Bd(a, b), 2 == c || 2 == d)) {
  1120.             2 == c ? rd++ : rd--;
  1121.             for (c = -1; 1 >= c; c++) for (d = -1; 1 >= d; d++) {
  1122.                 var e = b + c,
  1123.                     f = a + d;
  1124.                 (f != a || e != b) && (0 <= f && f < ed && 0 <= e && e < dd) && ud.push([f, e])
  1125.             }
  1126.         }
  1127.     }, Dd = function () {
  1128.         $c.top = ad.top = (M - 20) / 2;
  1129.         $c.left = K / 2 - sd - 18;
  1130.         ad.left = K / 2 + sd
  1131.     };
  1132.     var Ed, Fd, S, Gd, Hd, Id, Jd, Kd, T, Ld, U, Md, Nd, Od, Pd, Qd, Rd, Sd, Td, Ud, Vd, Wd, Xd, Yd, Zd, $d, ae, be, ce, de, ee, fe, ge, he, ie, ke, le, me, ne = 0,
  1133.         oe = function (a, b) {
  1134.             this.y = this.x = 0;
  1135.             this.A = a;
  1136.             this.hb = b;
  1137.             this.Q = this.Pa = this.Ca = l;
  1138.             a.offsetX = a.offsetY = 2;
  1139.             var c = this;
  1140.             c.pa = new t;
  1141.             u(c.pa, function (a) {
  1142.                 c.A.offsetX = c.A.offsetY = 2 * (1 - a)
  1143.             }, 50);
  1144.             c.qa = new t;
  1145.             u(c.qa, function (a) {
  1146.                 c.A.offsetX = c.A.offsetY = 2 * a
  1147.             }, 50)
  1148.         };
  1149.     oe.prototype.a = function () {
  1150.         this.A.x = this.x;
  1151.         this.A.y = this.y;
  1152.         this.A.ra = "source-over";
  1153.         this.A.opacity = 1;
  1154.         this.A.a();
  1155.         this.Pa && (this.A.ra = "lighter", this.A.opacity = 0.1, this.A.a())
  1156.     };
  1157.     var pe = function (a, b, c) {
  1158.         !a.Q && va(a.A, b, c) && (a.qa.stop(), a.pa.play(), a.Q = i, a.Ca = i, V("bp"))
  1159.     }, qe = function (a, b, c) {
  1160.         (b = va(a.A, b, c)) && (Lb = i);
  1161.         !a.Pa && b && V("bh");
  1162.         a.Pa = b;
  1163.         a.Ca && (a.Q && !b ? (a.pa.stop(), a.qa.play(), a.Q = l) : !a.Q && b && (a.qa.stop(), a.pa.play(), a.Q = i))
  1164.     }, re = function (a) {
  1165.         a.Ca && (a.Q && (a.pa.stop(), a.qa.play(), a.hb(), a.Q = l), a.Ca = l)
  1166.     }, se = function () {
  1167.         0 >= S && (0 > S && (Hd || (re(Td), re(Sd)), re(Ud)), re(Vd))
  1168.     }, te = function () {
  1169.         ke = 0;
  1170.         U = [0, 0, 0, 0, 0, 0];
  1171.         le = [0, 0, 0, 0, 0, 0];
  1172.         me = [l, l, l, l, l, l]
  1173.     }, ue = function () {
  1174.         Ed = !Ed;
  1175.         window.localStorage && window.localStorage.setItem("doodle-zamboni-audio",
  1176.         Ed ? "true" : "false");
  1177.         Ed ? Vd.A = ge : (Vd.A = he, x && xb())
  1178.     };
  1179.     var ve = [],
  1180.         we = [],
  1181.         xe = [],
  1182.         ye = function (a, b) {
  1183.             Tc.call(this);
  1184.             this.type = a;
  1185.             this.C = b;
  1186.             this.Sa = this.Ra = k;
  1187.             this.Ta = l;
  1188.             this.d = ve[a].o();
  1189.             this.width = this.height = 16
  1190.         };
  1191.     ka(ye, Tc);
  1192.     ye.prototype.a = function () {
  1193.         this.d.a();
  1194.         Uc(this.d)
  1195.     };
  1196.     var ze = function () {
  1197.         for (var a = 0; a < xe.length; a++) Wc(xe[a]);
  1198.         xe = []
  1199.     }, Ce = function (a) {
  1200.         ze();
  1201.         for (var b = 1; b < a.length; b++) {
  1202.             var c = Math.floor(Math.random() * (b + 1));
  1203.             if (b != c) {
  1204.                 var d = a[b];
  1205.                 a[b] = a[c];
  1206.                 a[c] = d
  1207.             }
  1208.         }
  1209.         for (b = 0; b < a.length; b++) c = a[b], 0 == c && (c = Math.floor(6 * Math.random())), c && (c = new ye(c, b / a.length + Math.random() / a.length), c.Ra = Ae(c), c.Sa = Be(c), xe.push(c))
  1210.     }, Ae = function (a) {
  1211.         var b = new t;
  1212.         u(b, function (b) {
  1213.             a.d.x = 16 + a.left + b * (a.left > N / 2 ? -32 : 32) + (16 - a.d.getWidth()) / 2;
  1214.             a.d.y = L + a.top + 64 * (b * b - b) + (16 - a.d.getHeight()) / 2
  1215.         }, 500);
  1216.         u(b,
  1217.  
  1218.         function () {
  1219.             a.left += a.left > N / 2 ? -32 : 32
  1220.         });
  1221.         return b
  1222.     }, Be = function (a) {
  1223.         var b = new t;
  1224.         u(b, function () {
  1225.             a.d = we[a.type].o()
  1226.         });
  1227.         u(b, function (b) {
  1228.             var d = b * Math.PI;
  1229.             a.d.opacity = 1 - b;
  1230.             a.d.p = 2 * d;
  1231.             a.d.x = a.left + 24 * (Math.cos(d) - 1);
  1232.             a.d.y = L + a.top - 24 * (Math.sin(d) + 1)
  1233.         }, 500);
  1234.         return b
  1235.     };
  1236.     var W = function (a, b) {
  1237.         Tc.call(this);
  1238.         this.gb = b;
  1239.         this.oa = i;
  1240.         this.ya = l;
  1241.         this.za = [];
  1242.         this.top = -10;
  1243.         this.width = this.height = 4;
  1244.         this.ua = 0.5;
  1245.         this.Ka = 1.5E-4;
  1246.         this.d = a
  1247.     };
  1248.     ka(W, Tc);
  1249.     var Ee = function (a) {
  1250.         if (!De(a)) {
  1251.             var b = Math.max(0, Math.min(N - 4, a.left)),
  1252.                 c = Math.max(0, Math.min(O - 4, a.top));
  1253.             a.target(b, c);
  1254.             a.ya = l;
  1255.             a.I = i;
  1256.             Vc(a)
  1257.         }
  1258.     };
  1259.     W.prototype.a = function () {
  1260.         0 < this.H.x ? this.d.i = 1 : 0 > this.H.x && (this.d.i = -1);
  1261.         30 < this.B && (this.d.frame = this.d.frame ? 0 : 1, this.B = 0);
  1262.         this.d.x = this.left + H - Kb - (this.d.getWidth() - 4) / 2;
  1263.         this.d.y = this.top + I - this.d.getHeight() + 4;
  1264.         this.d.a();
  1265.         Uc(this.d)
  1266.     };
  1267.     W.prototype.moveTo = function (a, b) {
  1268.         this.left = a - 2;
  1269.         this.top = b - 2
  1270.     };
  1271.     var Fe = function (a, b, c) {
  1272.         a.ya = i;
  1273.         a.oa = l;
  1274.         a.za.push([b, c])
  1275.     };
  1276.     W.prototype.reset = function () {
  1277.         var a = (N - 4) / 2;
  1278.         this.moveTo(a, -10);
  1279.         this.target(a, -10)
  1280.     };
  1281.     W.prototype.target = function (a, b) {
  1282.         this.ya = i;
  1283.         this.oa = l;
  1284.         this.za = [];
  1285.         this.O = a;
  1286.         this.P = b;
  1287.         V("sk")
  1288.     };
  1289.     W.prototype.update = function (a) {
  1290.         var b = 0 > this.O || this.O > N || 0 > this.P || this.P > O;
  1291.         if (!Ab(this, Hb) && b) Wc(this), this.oa = i;
  1292.         else if (b = De(this), this.I = !b || Ge(this), !td || !td.s) {
  1293.             var c = new y(this.O - this.left, this.P - this.top),
  1294.                 d = Bb(c);
  1295.             4 < d ? (this.g = c.o(), this.g.scale(this.gb / d)) : (this.g.x = this.g.y = 0, this.ya ? this.za.length ? (c = this.za.shift(), this.O = c[0], this.P = c[1], V("sk")) : this.oa = i : (this.O = 2 + Math.random() * (N - 4), this.P = 2 + Math.random() * (O - 4), V("sk")));
  1296.             W.Va.update.call(this, a);
  1297.             b && (!De(this) && !Ge(this)) && Jb(this);
  1298.             Cd(this,
  1299.             2)
  1300.         }
  1301.     };
  1302.     var Ge = function (a) {
  1303.         return (0 > a.O || a.O > N) && 15 > Math.abs(a.top - a.P) || (0 > a.P || a.P > O) && 15 > Math.abs(a.left - a.O)
  1304.     }, De = function (a) {
  1305.         return 0 <= a.left && 0 <= a.top && a.left < N - 4 && a.top < O - 4
  1306.     };
  1307.     var He = {
  1308.         en: ["Happy Birthday, Frank Zamboni!", "I resurfaced ice on the Google homepage!", "My score:"],
  1309.         af: ["Lekker verjaar, Frank Zamboni!", "Ek het ys hervlak op die Google-tuisblad!", "My telling:"],
  1310.         bg: ["\u0427\u0435\u0441\u0442\u0438\u0442 \u0440\u043e\u0436\u0434\u0435\u043d \u0434\u0435\u043d, \u0424\u0440\u0430\u043d\u043a \u0417\u0430\u043c\u0431\u043e\u043d\u0438!", "\u0427\u0438\u0441\u0442\u0438\u0445 \u043b\u0435\u0434\u0430 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043d\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430 Google!", "\u041c\u043e\u044f\u0442 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442:"],
  1311.         cs: ["Je v\u00fdro\u010d\u00ed narozen\u00ed Franka Zamboniho!", "Vyzkou\u0161ejte si taky \u00fapravu ledov\u00e9 plochy na str\u00e1nce Google!", "Moje sk\u00f3re je:"],
  1312.         da: ["Tillykke med f\u00f8dselsdagen, Frank Zamboni!", "Jeg k\u00f8rte med ismaskinen p\u00e5 Googles startside!", "Mit resultat:"],
  1313.         de: ["Alles Gute zum Geburtstag, Frank Zamboni!", "Ich habe auf der Google-Startseite Eis pr\u00e4pariert!", "Meine Punktzahl:"],
  1314.         el: ["\u03a7\u03c1\u03cc\u03bd\u03b9\u03b1 \u03c0\u03bf\u03bb\u03bb\u03ac, \u03a6\u03c1\u03ac\u03bd\u03ba \u0396\u03b1\u03bc\u03c0\u03cc\u03bd\u03b9", "\u0393\u03c5\u03ac\u03bb\u03b9\u03c3\u03b1 \u03c4\u03bf\u03bd \u03c0\u03ac\u03b3\u03bf \u03c3\u03c4\u03b7\u03bd \u03ba\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c4\u03b7\u03c2 Google!", "\u0397 \u03b2\u03b1\u03b8\u03bc\u03bf\u03bb\u03bf\u03b3\u03af\u03b1 \u03bc\u03bf\u03c5:"],
  1315.         es: ["\u00a1Feliz cumplea\u00f1os Frank Zamboni!", "\u00a1Limpi\u00e9 el hielo en la p\u00e1gina principal de Google!", "Mi marcador:"],
  1316.         et: ["Palju \u00f5nne Frank Zamboni!", "T\u00f5stsin j\u00e4\u00e4d Google'i avalehel!", "Minu tulemus:"],
  1317.         fi: ["Paljon onnea Frank Zamboni!", "Tasoitin j\u00e4\u00e4n Googlen kotisivulla!", "Tulokseni:"],
  1318.         fr: ["Joyeux Anniversaire Frank Zamboni !", "J'ai surfac\u00e9 la glace sur la page d'accueil de Google !", "Mon score :"],
  1319.         fr_ca: ["Joyeux Anniversaire Frank Zamboni!", "J'ai surfac\u00e9 la glace sur la page d'accueil de Google!", "Mon score :"],
  1320.         ga: ["Breithl\u00e1 shona, Frank Zamboni!", "T\u00e1 dromchl\u00fa oighir d\u00e9anta agam ar leathanach baile Google!", "Mo sc\u00f3r f\u00e9in:"],
  1321.         hu: ["Boldog sz\u00fclet\u00e9snapot Frank Zamboni!", "Lecsiszoltam a jeget a Google-on!", "A pontsz\u00e1mom:"],
  1322.         it: ["Buon compleanno, Frank Zamboni!", "Ho rifatto il ghiaccio sull'home page di Google!", "Il mio punteggio:"],
  1323.         iw: ["\u05d9\u05d5\u05dd \u05d4\u05d5\u05dc\u05d3\u05ea \u05e9\u05de\u05d7 \u05dc\u05e4\u05e8\u05e0\u05e7 \u05d6\u05de\u05d1\u05d5\u05e0\u05d9!", "\u05d0\u05e0\u05d9 \u05d4\u05e6\u05e4\u05ea\u05d9 \u05d1\u05e7\u05e8\u05d7 \u05d0\u05ea \u05e2\u05de\u05d5\u05d3 \u05d4\u05d1\u05d9\u05ea \u05e9\u05dc Google", "\u05d4\u05e6\u05d9\u05d5\u05df \u05e9\u05dc\u05d9:"],
  1324.         ja: ["\u30d5\u30e9\u30f3\u30af \u30b6\u30f3\u30dc\u30cb\u30fc\u3055\u3093\u3001\u304a\u8a95\u751f\u65e5\u304a\u3081\u3067\u3068\u3046\uff01", "\u30b6\u30f3\u30dc\u30cb\u30fc\u3067 Google \u30db\u30fc\u30e0\u30da\u30fc\u30b8\u306e\u6c37\u9762\u3092\u306a\u3089\u3057\u305f\uff01", "\u30b9\u30b3\u30a2:"],
  1325.         lt: ["Su gimimo diena, Frank Zamboni!", "A\u0161 i\u0161lyginau led\u0105 Google paie\u0161kos puslapyje!", "Mano rezultatas:"],
  1326.         lv: ["Daudz laimes dzim\u0161anas dien\u0101, Frenk Zamboni!", "Es uzkopu ledu Google m\u0101jaslap\u0101!", "Mans rezult\u0101ts:"],
  1327.         mk: ["\u0421\u0440\u0435\u045c\u0435\u043d \u0440\u043e\u0434\u0435\u043d\u0434\u0435\u043d, \u0424\u0440\u0435\u043d\u043a \u0417\u0430\u043c\u0431\u043e\u043d\u0438!", "\u0413\u043e \u0438\u0441\u0447\u0438\u0441\u0442\u0438\u0432 \u043b\u0435\u0434\u043e\u0442 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0430 \u043d\u0430 Google!", "\u041c\u043e\u0458 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442:"],
  1328.         nl: ["Gefeliciteerd Frank Zamboni!", "Ik heb ijs gedweild op de Google-homepage!", "Mijn score:"],
  1329.         pl: ["Rocznica urodzin Franka Zamboniego!", "Wyg\u0142adzam l\u00f3d na Google.pl!", "M\u00f3j wynik:"],
  1330.         pt: ["Feliz Anivers\u00e1rio, Frank Zamboni!", "Refiz a superf\u00edcie de gelo da p\u00e1gina inicial do Google!", "A minha pontua\u00e7\u00e3o:"],
  1331.         ru: ["\u0421 \u0434\u043d\u0435\u043c \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f, \u0424\u0440\u044d\u043d\u043a \u0417\u0430\u043c\u0431\u043e\u043d\u0438!", "\u042f \u043c\u0435\u043d\u044f\u044e \u043b\u0435\u0434 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 Google!", "\u041c\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:"],
  1332.         sk: ["Je v\u00fdro\u010die narodenia Franka Zamboniho!", "Vysk\u00fa\u0161ajte si tie\u017e \u00fapravu \u013eadovej plochy na str\u00e1nke Google!", "Moje sk\u00f3re je:"],
  1333.         sl: ["Vse najbolj\u0161e, Frank Zamboni!", "Po\u010distil sem led na Googlovi doma\u010di strani!", "Moj rezultat je:"],
  1334.         sr: ["\u0421\u0440\u0435\u045b\u0430\u043d \u0440\u043e\u0452\u0435\u043d\u0434\u0430\u043d, \u0424\u0440\u0435\u043d\u043a \u0417\u0430\u043c\u0431\u043e\u043d\u0438!", "\u0420\u0430\u0432\u043d\u0430\u043c \u043b\u0435\u0434\u0435\u043d\u0443 \u043f\u043e\u0432\u0440\u0448\u0438\u043d\u0443 \u043d\u0430 \u043d\u0430\u0441\u043b\u043e\u0432\u043d\u043e\u0458 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0438 Google-a!", "\u041c\u043e\u0458 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442:"],
  1335.         sv: ["Grattis p\u00e5 f\u00f6delsedagen Frank Zamboni!", "Jag spolade is p\u00e5 Googles startsida!", "Mitt resultat:"],
  1336.         tr: ["\u0130yi ki Do\u011fdun, Frank Zamboni!", "Google Ana Sayfas\u0131nda Buz Pistini D\u00fczelttim!", "Puan\u0131m:"],
  1337.         uk: ["\u0417 \u0414\u043d\u0435\u043c \u043d\u0430\u0440\u043e\u0434\u0436\u0435\u043d\u043d\u044f, \u0424\u0440\u0435\u043d\u043a\u0443 \u0417\u0430\u043c\u0431\u043e\u043d\u0456!", "\u042f \u0440\u0456\u0432\u043d\u044f\u044e \u043a\u0440\u0438\u0433\u0443 \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u0456\u0439 \u0441\u0442\u043e\u0440\u0456\u043d\u0446\u0456 Google!", "\u041c\u0456\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:"],
  1338.         "zh-cn": ["\u751f\u65e5\u5feb\u4e50\uff0cFrank Zamboni!", "\u6211\u5728 Google \u9996\u9875\u628a\u51b0\u78e8\u5e73\u4e86!", "\u6211\u7684\u5f97\u5206:"],
  1339.         "zh-tw": ["\u751f\u65e5\u5feb\u6a02, Frank Zamboni!", "\u6211\u5728 Google \u9996\u9801\u628a\u51b0\u78e8\u5e73\u4e86!", "\u6211\u7684\u5f97\u5206:"]
  1340.     }, Ie = /_\w+$/,
  1341.         Je = /-\w+$/,
  1342.         Ke = function (a) {
  1343.             var b = window.google,
  1344.                 b = (b && b.kHL || "en").toLowerCase();
  1345.             b in He || (b = b.replace(Ie, ""), b in He || (b = b.replace(Je, ""), b in He || (b = "en")));
  1346.             return He[b][a]
  1347.         };
  1348.     var Le = {
  1349.         pb: "bh",
  1350.         qb: "bp",
  1351.         rb: "cp",
  1352.         tb: "do",
  1353.         ub: "ec",
  1354.         vb: "ed",
  1355.         wb: "fv",
  1356.         xb: "hw",
  1357.         yb: "hn",
  1358.         zb: "in",
  1359.         Ab: "lf",
  1360.         Bb: "lw",
  1361.         Cb: "lm",
  1362.         Db: "pp",
  1363.         Eb: "rb",
  1364.         Fb: "sk",
  1365.         Gb: "sm",
  1366.         Hb: "tr",
  1367.         Ib: "wh"
  1368.     }, Me = [],
  1369.         Ne = 0,
  1370.         Oe = l,
  1371.         Pe = l,
  1372.         Qe = l,
  1373.         Re = l,
  1374.         Se = 0,
  1375.         Te = 0,
  1376.         Ue = 0,
  1377.         X = 0,
  1378.         Ve = 2,
  1379.         We = 6,
  1380.         Xe = 0,
  1381.         Ye = 0,
  1382.         Ze = l,
  1383.         $e = 0,
  1384.         Y = 0,
  1385.         af = 0,
  1386.         bf = 0,
  1387.         cf = 0,
  1388.         Uc = function (a) {
  1389.             if (a.opacity) {
  1390.                 var b = a.o(),
  1391.                     c = Sb;
  1392.                 b.ta = c;
  1393.                 b.V = c.getContext("2d");
  1394.                 b.F = -a.F;
  1395.                 b.x += Kb - H;
  1396.                 b.y += a.getHeight() + 2 * a.offsetY - L;
  1397.                 b.a()
  1398.             }
  1399.         }, ef = function () {
  1400.             0 > S && !Id.s && (Jd.stop(), Id.play());
  1401.             te();
  1402.             Qb = af = 0;
  1403.             df()
  1404.         }, ff = function () {
  1405.             google.nav && (google.nav.go && google.doodle && google.doodle.url) && google.nav.go(google.doodle.url)
  1406.         }, gf = function () {
  1407.             Pb.bb = Rb + " " + Math.floor(X) + " #zambonidoodle";
  1408.             Pb.ab = "https://www.google.com/logos/2013/zamboni/share_" + ne + ".png";
  1409.             Pb.show()
  1410.         }, V = function (a) {
  1411.             x && (Ed && 2 != z && 1 != z) && x.play(a)
  1412.         }, hf = function (a, b, c, d, e) {
  1413.             return a.width != b || a.height != c ? (d && (a.style.marginLeft = d + "px"), e && (a.style.marginTop = e + "px"), a.width = b, a.height = c, i) : l
  1414.         }, df = function () {
  1415.             9 <= Qb ? Z(15) : (0 != Qb && (X += 10 * Qb, be.play()), jf(Qb + 1, oa()), Z(8))
  1416.         }, kf = function () {
  1417.             var a = document.createElement("canvas");
  1418.             a.style.position = "absolute";
  1419.             a.height = 198;
  1420.             a.width = 650;
  1421.             r.appendChild(a);
  1422.             return a
  1423.         }, lf = function () {
  1424.             if (Oe && (12 == z || 6 == z) && kc >= H && kc < H + N && lc > L && lc < L + O) {
  1425.                 var a = kc - D.left - D.width / 2 - H,
  1426.                     b = lc - D.top - D.height / 2 - L,
  1427.                     c = Math.sqrt(a * a + b * b);
  1428.                 if (10 < c) {
  1429.                     D.g.x = 3.4E-4 * a / c;
  1430.                     D.g.y = 3.4E-4 * b / c;
  1431.                     Qe = i;
  1432.                     return
  1433.                 }
  1434.             }
  1435.             Qe && (D.g.x = D.g.y = 0, Qe = l)
  1436.         }, mf = function () {
  1437.             for (var a = 0; a < B.length; a++) if (!B[a].oa) return l;
  1438.             return i
  1439.         }, $ = function (a) {
  1440.             var b = D;
  1441.             if (Ve != a) {
  1442.                 var c = 1 == Ve || 3 == Ve,
  1443.                     d = 1 == a || 3 == a;
  1444.                 if (d != c) {
  1445.                     var e = 3,
  1446.                         f = -9;
  1447.                     c && (e = -e, f = -f);
  1448.                     b.top += e;
  1449.                     b.left += f;
  1450.                     d ? (b.width = 42, b.height = 24) : (b.width = 24, b.height = 30)
  1451.                 }
  1452.                 Ve = a
  1453.             }
  1454.             b.d = 3 == a ? Vb : 2 == a ? qc : 0 == a ? rc : Wb
  1455.         }, nf = function (a) {
  1456.             var b;
  1457.             if (b = Cd(D, 0)) 12 == z && (X += b / 100), Se = a
  1458.         }, of = function () {
  1459.             1 == mc && x.stop("cp");
  1460.             mc = k
  1461.         }, pf = function (a) {
  1462.             if (rd && 20 > rd && 3E3 < a - Se) {
  1463.                 a = 0.6 * Math.abs(Math.sin(0.005 * a));
  1464.                 var b = md;
  1465.                 b.save();
  1466.                 b.beginPath();
  1467.                 b.fillStyle = "#f66";
  1468.                 b.globalAlpha = a;
  1469.                 Ad(2);
  1470.                 b.fill();
  1471.                 b.beginPath();
  1472.                 b.globalAlpha = a / 2;
  1473.                 Ad(1);
  1474.                 b.fill();
  1475.                 b.restore()
  1476.             }
  1477.         }, qf = function () {
  1478.             return Math.random() * (M - 4)
  1479.         }, rf = function () {
  1480.             for (var a = 0, b = 0; b < B.length; b++) B[b].U && a++;
  1481.             return a
  1482.         },
  1483.         uf = function (a) {
  1484.             var b = document.createElement("img");
  1485.             b.src = "/logos/2013/zamboni/" + a;
  1486.             !b.complete && "complete" != b.readyState ? (b.onload = sf, Ne++) : Qc || (Qc = window.setTimeout(tf, 10));
  1487.             return b
  1488.         }, vf = function () {
  1489.             window.google && window.google.log && window.google.log("doodle-zamboni", "s:" + z + ",o:" + Math.floor(X) + ",l:" + Qb + ",t:" + Math.floor(af / 1E3) + ",p:" + bf + ",w:" + cf + ",a:" + (Ed ? "1" : "0"))
  1490.         }, wf = function (a) {
  1491.             x && (Ed && 2 != z && 1 != z) && x.loop(a)
  1492.         }, yf = function (a) {
  1493.             Te = oa();
  1494.             Re || xf();
  1495.             document.activeElement == r && (37 <= a.keyCode && 40 >= a.keyCode) && a.preventDefault();
  1496.             if (!Qe && (12 == z || 6 == z)) {
  1497.                 var b = 3.4E-4;
  1498.                 1 == mc && (b = 4.5E-4);
  1499.                 3 != mc && (37 == a.keyCode ? D.g.x = -b : 39 == a.keyCode ? D.g.x = b : 38 == a.keyCode ? D.g.y = -b : 40 == a.keyCode && (D.g.y = b))
  1500.             }
  1501.         }, zf = function (a) {
  1502.             if (37 == a.keyCode && 0 > D.g.x || 39 == a.keyCode && 0 < D.g.x) D.g.x = 0;
  1503.             else if (38 == a.keyCode && 0 > D.g.y || 40 == a.keyCode && 0 < D.g.y) D.g.y = 0
  1504.         }, tf = function () {
  1505.             Qc && (window.clearTimeout(Qc), Qc = k);
  1506.             if (0 == z) {
  1507.                 r.onmouseout = Af;
  1508.                 r.onmouseup = Bf;
  1509.                 r.onmousedown = Cf;
  1510.                 r.onmousemove = Df;
  1511.                 r.onkeydown = yf;
  1512.                 r.onkeyup = zf;
  1513.                 r.style.backgroundImage = "none";
  1514.                 Te = oa();
  1515.                 Rc = 0;
  1516.                 Z(1);
  1517.                 xf();
  1518.                 var a = Ub,
  1519.                     b = uf("sprite_p.png"),
  1520.                     c = cd,
  1521.                     d = new vd(new w(c, b, 1095, 158, 13, 25), new w(c, b, 939, 203, 13, 49), new w(c, b, 260, 181, 25, 49), new w(c, b, 1041, 286, 13, 47), new w(c, b, 306, 124, 25, 47), new w(c, b, 174, 109, 23, 7), new w(c, b, 502, 56, 372, 79));
  1522.                 Q[1] = d;
  1523.                 ld = new w(od, b, 877, 214, 5, 9);
  1524.                 ld.opacity = 0;
  1525.                 ld.offsetX = 10;
  1526.                 var e = new w(c, b, 1041, 253, 40, 30),
  1527.                     f = new w(c, b, 0, 109, 32, 24);
  1528.                 J = [];
  1529.                 for (var g = 0; 6 > g; g++) J.push(e.o());
  1530.                 J.push(f.o());
  1531.                 J.push(f.o());
  1532.                 J.push(new w(c, b, 1041, 212, 38, 38));
  1533.                 R = [new w(c, b, 565, 236, 22, 32), new w(c, b, 0, 0, 22, 24)];
  1534.                 d.w = new t;
  1535.                 v(d.w, 500);
  1536.                 u(d.w, function (a) {
  1537.                     Q[1].opacity = a;
  1538.                     P = i
  1539.                 }, 250);
  1540.                 u(d.w, function (a) {
  1541.                     var b = H + K / 2;
  1542.                     J[0].x = b - 75;
  1543.                     J[1].x = b - 137;
  1544.                     J[2].x = b - 179;
  1545.                     J[3].x = b + 39;
  1546.                     J[4].x = b + 72;
  1547.                     J[5].x = b + 139;
  1548.                     J[6].x = b - 95;
  1549.                     J[7].x = b + 104;
  1550.                     J[8].x = b - J[8].getWidth() / 2;
  1551.                     R[0].x = b - 48;
  1552.                     R[0].offsetY = -R[0].getHeight();
  1553.                     R[1].x = b + 25;
  1554.                     R[1].offsetY = -R[1].getHeight();
  1555.                     R[0].y = R[1].y = L + -11;
  1556.                     R[0].p = R[1].p = Math.PI;
  1557.                     for (b = 0; b < J.length; b++) {
  1558.                         var c = L + -11,
  1559.                             d = c - J[b].getHeight(),
  1560.                             e = Math.min(1, Math.max(0, (a - 0.4 * b / J.length - 0) / 0.6));
  1561.                         J[b].y = la(e, c, d)
  1562.                     }
  1563.                     a = la(a, 0, 1);
  1564.                     for (b = 0; b < R.length; b++) R[b].p = q(a, Math.PI / 2, 0);
  1565.                     P = i
  1566.                 }, 750);
  1567.                 u(d.w, function (a) {
  1568.                     ld.opacity = a
  1569.                 }, 1E3);
  1570.                 d.z = new t;
  1571.                 u(d.z, function (a) {
  1572.                     for (var b = 0; b < J.length; b++) {
  1573.                         var c = L + -11,
  1574.                             d = c - J[b].getHeight();
  1575.                         J[b].y = q(a, d, c)
  1576.                     }
  1577.                     for (b = 0; b < R.length; b++) R[b].p = q(a, 0, Math.PI);
  1578.                     ld.opacity = 1 - a;
  1579.                     P = i
  1580.                 }, 500);
  1581.                 v(d.z, 250);
  1582.                 u(d.z, function () {
  1583.                     Q[1].opacity = 0
  1584.                 });
  1585.                 Ld = new w(T, b, 502, 138, 359, 45);
  1586.                 ge = new w(T, b, 0, 80, 25, 26);
  1587.                 he = new w(T, b, 625, 186, 25, 26);
  1588.                 Zd = new w(T, b, 200, 181, 57, 47, -7.5);
  1589.                 Yd = new w(T, b, 227, 56, 57, 47, -7.5);
  1590.                 Yd.opacity = 0;
  1591.                 Xd = new w(T, b, 565, 186, 57, 47, -7.5);
  1592.                 Xd.opacity = 0;
  1593.                 Wd = new w(T,
  1594.                 b, 502, 186, 60, 45, 25, 4);
  1595.                 Wd.opacity = 0;
  1596.                 Md = new w(T, b, 288, 56, 15, 200);
  1597.                 Nd = new w(T, b, 939, 0, 15, 200);
  1598.                 Od = new w(T, b, 306, 99, 100, 22);
  1599.                 Od.opacity = 0;
  1600.                 Od.ra = "lighter";
  1601.                 ae = new t;
  1602.                 u(ae, function () {
  1603.                     Xd.opacity = 1
  1604.                 });
  1605.                 u(ae, function (a) {
  1606.                     Yd.opacity = a
  1607.                 }, 32);
  1608.                 u(ae, function (a) {
  1609.                     Yd.opacity = 1 - a
  1610.                 }, 150);
  1611.                 u(ae, function (a) {
  1612.                     Xd.opacity = 1 - a
  1613.                 }, 500);
  1614.                 be = new t;
  1615.                 u(be, function (a) {
  1616.                     Od.opacity = a
  1617.                 }, 32);
  1618.                 u(be, function (a) {
  1619.                     Od.opacity = 1 - a
  1620.                 }, 1E3);
  1621.                 $d = new t;
  1622.                 u($d, function (a) {
  1623.                     Wd.opacity = a
  1624.                 }, 500);
  1625.                 u($d, function (a) {
  1626.                     Wd.opacity = 1 - a
  1627.                 }, 500);
  1628.                 ie = new t;
  1629.                 u(ie, function (a) {
  1630.                     S = 49 * (1 - a)
  1631.                 },
  1632.                 500);
  1633.                 Vd = new oe(Ed ? ge : he, ue);
  1634.                 sc = new w(a, b, 116, 0, 53, 53);
  1635.                 tc = new w(a, b, 1041, 158, 51, 51, 1, 1);
  1636.                 uc = new w(a, b, 200, 109, 69, 69, -8, -8);
  1637.                 vc = ua(sc, 8, 500);
  1638.                 v(vc, 6E3);
  1639.                 qc = new w(a, b, 957, 145, 25, 50, 0, -20);
  1640.                 rc = new w(a, b, 174, 56, 25, 50, 0, -20);
  1641.                 Hc = new w(a, b, 0, 27, 48, 50, 0, -26);
  1642.                 Ic = new w(a, b, 0, 294, 56, 50, -8, -26);
  1643.                 Jc = new w(a, b, 116, 282, 82, 55, 0, -29);
  1644.                 G = new w(a, b, 1041, 0, 55, 155);
  1645.                 F = new w(a, b, 877, 56, 55, 155);
  1646.                 E = new w(a, b, 58, 109, 55, 155);
  1647.                 zc = new w(a, b, 0, 136, 55, 155);
  1648.                 yc = new w(a, b, 116, 56, 55, 155);
  1649.                 Bc = new w(a, b, 306, 56, 57, 40, -1, 19);
  1650.                 wc = new w(a, b, 955, 293,
  1651.                 81, 142);
  1652.                 xc = new w(a, b, 957, 0, 81, 142);
  1653.                 Kc = new t;
  1654.                 u(Kc, function () {
  1655.                     Vc(D, l);
  1656.                     D.I = i;
  1657.                     $(2);
  1658.                     Ef()
  1659.                 });
  1660.                 u(Kc, function (a) {
  1661.                     D.top = q(a, -10, 0)
  1662.                 }, 250);
  1663.                 u(Kc, function () {
  1664.                     D.I = l;
  1665.                     Z(5 == z ? 6 : 12)
  1666.                 });
  1667.                 Lc = new t;
  1668.                 u(Lc, function (a) {
  1669.                     Yb.k = 91 * (1 - a)
  1670.                 }, 500);
  1671.                 u(Lc, function () {
  1672.                     Mb && Mb.stop();
  1673.                     pa("doodle-zamboni-tutorial") ? (Qb = 0, df()) : Z(4)
  1674.                 });
  1675.                 v(Lc, 1E3);
  1676.                 u(Lc, function () {
  1677.                     0 < S && ie.play()
  1678.                 });
  1679.                 var j, n;
  1680.                 Mc = new t;
  1681.                 u(Mc, function () {
  1682.                     $(3);
  1683.                     D.d = Hc;
  1684.                     D.g.x = D.g.y = 0;
  1685.                     V("lw")
  1686.                 });
  1687.                 v(Mc, 150);
  1688.                 u(Mc, function () {
  1689.                     D.d = Ic
  1690.                 });
  1691.                 v(Mc, 1E3);
  1692.                 u(Mc, function () {
  1693.                     of();
  1694.                     var a = D.left - N / 2;
  1695.                     0 > a && -a > D.top ? $(3) : 0 < a && a > D.top ? $(1) : $(0);
  1696.                     j = D.left;
  1697.                     n = D.top;
  1698.                     D.I = i
  1699.                 });
  1700.                 u(Mc, function (a) {
  1701.                     var b = D.left,
  1702.                         c = D.top;
  1703.                     D.left = q(a, j, (N - 24) / 2);
  1704.                     D.top = q(a, n, -10);
  1705.                     a = b - D.left;
  1706.                     c -= D.top;
  1707.                     D.B += Math.sqrt(a * a + c * c)
  1708.                 }, 1E3);
  1709.                 u(Mc, function () {
  1710.                     Wc(D);
  1711.                     df()
  1712.                 });
  1713.                 oc = ua(Jc, 10, 750);
  1714.                 oc.va.splice(0, 0, {
  1715.                     duration: 0,
  1716.                     wa: function () {
  1717.                         D.d = Jc;
  1718.                         D.g.x = D.g.y = 0
  1719.                     }
  1720.                 });
  1721.                 v(oc, 1E3);
  1722.                 u(oc, function () {
  1723.                     D.d.T = 0;
  1724.                     Jd.s || Jd.play();
  1725.                     V("lm")
  1726.                 });
  1727.                 nc = new t;
  1728.                 u(nc, function () {
  1729.                     F.opacity = E.opacity = zc.opacity = yc.opacity = G.opacity = Bc.opacity = wc.opacity = xc.opacity = 0;
  1730.                     Nc.height = O;
  1731.                     Vc(Nc, i);
  1732.                     x.play("in")
  1733.                 });
  1734.                 v(nc,
  1735.                 2500);
  1736.                 u(nc, function () {
  1737.                     B[0].reset();
  1738.                     Ee(B[0]);
  1739.                     Fe(B[0], 225, 100);
  1740.                     Fe(B[0], 250, 100);
  1741.                     Fe(B[0], 220, 50)
  1742.                 });
  1743.                 Oc = new t;
  1744.                 u(Oc, function () {
  1745.                     Ef();
  1746.                     Ve = 3;
  1747.                     G.x = F.x = E.x = zc.x = Bc.x = 77;
  1748.                     yc.x = 132;
  1749.                     xc.x = yc.x - 21;
  1750.                     F.y = E.y = zc.y = yc.y = Bc.y = I + 10;
  1751.                     wc.y = xc.y = E.y + 18
  1752.                 });
  1753.                 u(Oc, function (a) {
  1754.                     G.y = q(a, Ub.height, L + 10);
  1755.                     G.opacity = a;
  1756.                     G.p = 1 - a
  1757.                 }, 500);
  1758.                 u(Oc, function () {
  1759.                     F.opacity = 1
  1760.                 });
  1761.                 u(Oc, function (a) {
  1762.                     Ff(a)
  1763.                 }, 300);
  1764.                 u(Oc, function (a) {
  1765.                     Gf(a)
  1766.                 }, 300);
  1767.                 u(Oc, function () {
  1768.                     Ac = i
  1769.                 });
  1770.                 Pc = new t;
  1771.                 u(Pc, function () {
  1772.                     Ac = l;
  1773.                     Wc(Nc)
  1774.                 });
  1775.                 u(Pc, function (a) {
  1776.                     a *= 1.2;
  1777.                     Ff(1 - a);
  1778.                     Gf(0.8 - a)
  1779.                 }, 350);
  1780.                 u(Pc, function () {
  1781.                     F.opacity = E.opacity = yc.opacity = zc.opacity = 0
  1782.                 });
  1783.                 u(Pc, function (a) {
  1784.                     G.y = q(a, L + 10, Ub.height);
  1785.                     G.opacity = 1 - a;
  1786.                     G.p = a
  1787.                 }, 500);
  1788.                 Nc = new Tc;
  1789.                 Nc.left = Nc.top = 0;
  1790.                 Nc.width = 175;
  1791.                 x = new vb(["in", "sk"], "/logos/2013/zamboni/", r)
  1792.             } else 1 == z && Z(2)
  1793.         }, sf = function () {
  1794.             --Ne || tf()
  1795.         }, Cf = function (a) {
  1796.             Oe = i;
  1797.             Hf(a);
  1798.             document.activeElement != r && r.focus();
  1799.             a.preventDefault();
  1800.             a = kc - Kb;
  1801.             var b = lc;
  1802.             0 >= S && (0 > S && (Hd || (pe(Td, a, b), pe(Sd, a, b)), pe(Ud, a, b), !fe.s && va(Qd, a, b) && fe.play()), pe(Vd, a, b))
  1803.         }, Df = function (a) {
  1804.             var b = Lb;
  1805.             Lb = l;
  1806.             Pe = i;
  1807.             Hf(a);
  1808.             a = kc - Kb;
  1809.             var c = lc;
  1810.             0 >= S && (0 > S && (Hd || (qe(Td, a, c), qe(Sd, a, c)), qe(Ud, a, c), va(Qd, a, c) && (Lb = i)), qe(Vd, a, c));
  1811.             2 == z && (Lb = i);
  1812.             if ((12 == z || 6 == z) && kc >= H && lc >= I && kc < H + K && lc < I + M) Lb = i;
  1813.             b != Lb && (r.style.cursor = Lb ? "pointer" : "default")
  1814.         }, Af = function (a) {
  1815.             Pe = Oe = l;
  1816.             Hf(a);
  1817.             se()
  1818.         }, Bf = function (a) {
  1819.             Oe && 2 == z && Z(3);
  1820.             Oe = l;
  1821.             Hf(a);
  1822.             se()
  1823.         }, Ff = function (a) {
  1824.             a = Math.max(0, Math.min(1, a));
  1825.             0.5 >= a ? (a *= 2, wc.opacity = E.opacity = 0, G.opacity = zc.opacity = 1, G.i = 1 - a, G.J = -12 * a) : (a = 2 * (a - 0.5), G.opacity = 0, zc.opacity = wc.opacity = E.opacity = 1, wc.i = E.i = a, E.x = 77 - E.getWidth(), E.J = q(a, 12, 4), E.y = L + 10 - E.J, wc.x = E.x - 6)
  1826.         }, Gf = function (a) {
  1827.             a = Math.max(0, Math.min(1, a));
  1828.             0.5 >= a ? (a *= 2, xc.opacity = yc.opacity = 0, F.opacity = 1, F.i = 1 - a, F.x = 77 + 55 * a, F.J = 12 * a, F.y = L + 10 - F.J) : (a = 2 * (a - 0.5), xc.opacity = yc.opacity = 1, F.opacity = 0, xc.i = yc.i = a, yc.J = q(a, -12, -4))
  1829.         }, Ef = function () {
  1830.             var a = D;
  1831.             a.stop();
  1832.             a.left = (N - 24) / 2;
  1833.             a.top = -10
  1834.         }, xf = function () {
  1835.             var a = oa(),
  1836.                 b = Math.min(33, a - Rc);
  1837.             if (16 > b) window.setTimeout(xf, 16 - b);
  1838.             else {
  1839.                 var c;
  1840.                 if (c = !Ze) {
  1841.                     yd();
  1842.                     if (P) {
  1843.                         P = l;
  1844.                         hf(cd, 650, M + L + fd);
  1845.                         H = Math.floor((cd.width - K) / 2);
  1846.                         hf(gd, K, M, H, L);
  1847.                         ma(cd);
  1848.                         ma(gd);
  1849.                         Q[0].opacity && (hd.x = H, hd.a(),
  1850.                         id.x = H + K - id.getWidth(), id.a());
  1851.                         (c = Q[2]) && c.opacity && Dd();
  1852.                         jd.x = H;
  1853.                         jd.y = L;
  1854.                         jd.S = K;
  1855.                         jd.R = M;
  1856.                         jd.a();
  1857.                         if (rd) for (c = 0; c < dd; c++) for (var d = 0; d < ed; d++) 0 != qd[c][d] && Bd(d, c);
  1858.                         for (c = 0; c < Q.length; c++) Q[c] && Q[c].a();
  1859.                         if ((c = Q[1]) && c.opacity) {
  1860.                             kd.save();
  1861.                             kd.beginPath();
  1862.                             kd.rect(H, 0, N, L + -11);
  1863.                             kd.clip();
  1864.                             for (c = 0; c < J.length; c++) J[c].a();
  1865.                             for (c = 0; c < R.length; c++) R[c].a();
  1866.                             kd.restore()
  1867.                         }
  1868.                     }
  1869.                     c = H || 0;
  1870.                     var d = K || 0,
  1871.                         e = Tb.height;
  1872.                     1 != z && (2 != z && 3 != z) && (c -= 16, d += 32);
  1873.                     hf(Ub, d, e, c, 0) && (Kb = c, hf(Sb, K || 0, M || 0, H, L), sa(e));
  1874.                     ma(Sb);
  1875.                     ma(Ub);
  1876.                     ld && ld.opacity && (ld.x = H - Kb + K / 2, ld.y = 12 - 0.0075 * a % 24, ld.clip(0, 0, 650, 12), ld.a());
  1877.                     if ((c = Q[3]) && c.opacity) {
  1878.                         c = Zc.length;
  1879.                         d = H - Kb + (K - 100 * (c - 1)) / 2;
  1880.                         for (e = 0; e < c; e++) {
  1881.                             var f = Zc[e];
  1882.                             f.x = d + 100 * e;
  1883.                             f.frame = Math.floor(a / 150 % 4);
  1884.                             f.a()
  1885.                         }
  1886.                     }
  1887.                     if ((c = 1 - Math.min(1, rd / 100)) && (!td || !td.s)) {
  1888.                         if (!Cc) {
  1889.                             Cc = [];
  1890.                             for (d = 0; 5 > d; d++) e = Xb.o(), e.x = H - Kb + Math.random() * K - e.getWidth() / 2, e.y = L + Math.random() * M - e.getHeight() / 2, Cc.push(e)
  1891.                         }
  1892.                         for (d = 0; d < Cc.length; d++) f = 0.002 * a + 2 * d, e = Cc[d], e.p = f % (2 * Math.PI), e.frame = f & 1, e.opacity = c, e.a()
  1893.                     } else Cc && (Cc = k);
  1894.                     switch (z) {
  1895.                         case 2:
  1896.                             We = Oe ? Math.min(6,
  1897.                             We + 0.05 * b) : Math.max(0, We - 0.05 * b);
  1898.                         case 1:
  1899.                             if (Mb) {
  1900.                                 if (!Mb.s && mf()) {
  1901.                                     Xc();
  1902.                                     B = [];
  1903.                                     var g = [hc];
  1904.                                     c = function (a) {
  1905.                                         Mb != a && g.push(a)
  1906.                                     };
  1907.                                     rd && (c(fc), c(gc));
  1908.                                     c(jc);
  1909.                                     c(ic);
  1910.                                     Mb = g[Math.floor(Math.random() * g.length)];
  1911.                                     Mb.play()
  1912.                                 }
  1913.                             } else c = N / 2, Cd(new zb(c, 30, c, 4), 2), yd(), Mb = fc, Mb.play();
  1914.                         case 3:
  1915.                             If(a, b);
  1916.                             for (c = 0; c < Me.length; c++) d = Me[c], d.x += b * (2E-4 + 1E-5 * (75 - d.y)), d.x > K && (d.x = -d.getWidth()), d.a();
  1917.                             C.a();
  1918.                             Uc(C);
  1919.                             Yb.x = (N - Yb.getWidth()) / 2;
  1920.                             Yb.y = I - Yb.getHeight();
  1921.                             Yb.a();
  1922.                             Uc(Yb);
  1923.                             sc && (sc.x = tc.x = uc.x = Yb.x + 159, sc.y = tc.y = Yb.y + 21, sc.y -= 6 - We, uc.y = sc.y,
  1924.                             tc.clip(0, 0, 650, I), tc.a(), sc.clip(0, 0, 650, I), sc.a(), 2 == z && (Pe && uc.a(), vc.s || vc.play()));
  1925.                             nf(a);
  1926.                             break;
  1927.                         case 4:
  1928.                             if (!nc.s && mf()) if (rf()) for (c = 0; c < B.length; c++) B[c].target(N / 2, -10);
  1929.                             else Z(5);
  1930.                             break;
  1931.                         case 6:
  1932.                             lf(), rd || Z(7), Jf(a), Kf(a), If(a, b), pf(a);
  1933.                         case 5:
  1934.                             nf(a);
  1935.                         case 7:
  1936.                             wc.a();
  1937.                             xc.a();
  1938.                             E.a();
  1939.                             yc.a();
  1940.                             zc.a();
  1941.                             F.a();
  1942.                             G.a();
  1943.                             Ac && (Bc.opacity = Math.abs(Math.sin(0.005 * a)), Bc.a());
  1944.                             break;
  1945.                         case 12:
  1946.                             lf();
  1947.                             a: {
  1948.                                 c = D;
  1949.                                 for (d = 0; d < xe.length; d++) if (e = xe[d], e.U && !e.Ta && Ab(c, e)) {
  1950.                                     e.Ta = i;
  1951.                                     e.Sa.play();
  1952.                                     c = e.type;
  1953.                                     break a
  1954.                                 }
  1955.                                 c = k
  1956.                             }
  1957.                             c && (V("pp"), 2 == c ? (ae.play(),
  1958.                             Y = Math.min(6E4, Y + 18E3)) : 4 == c ? (be.play(), X += 50) : 5 == c ? (be.play(), X += 75) : c && (of(), mc = c, 3 == c ? (D.g.x = D.g.y = 0, Xe = a + 1E3) : 1 == c && (wf("cp"), Xe = a + 6E3)));
  1959.                             nf(a);
  1960.                             c = Math.floor(Y / 1E3);
  1961.                             if (D.g.x || D.g.y) Y -= b;
  1962.                             d = Math.floor(Y / 1E3);
  1963.                             0 >= Y ? (Y = 0, oc.s || Z(14)) : 10 > d && c != d && ($d.play(), V("tr"));
  1964.                             pf(a);
  1965.                             !rd && !oc.s && Z(13);
  1966.                             Jf(a);
  1967.                             Kf(a);
  1968.                         case 11:
  1969.                         case 13:
  1970.                             If(a, b);
  1971.                             break;
  1972.                         case 8:
  1973.                             if ((!td || !td.s) && 0 != Qb) Nb -= b, 0 >= Nb && (Ee(B[pc++]), Nb += 500);
  1974.                             pc >= B.length && Z(9);
  1975.                             break;
  1976.                         case 9:
  1977.                             e = B[Math.floor(Math.random() * B.length)];
  1978.                             c = Math.max(0, 1 - Ye / 8E3);
  1979.                             if (0 <= e.top && (d = Math.max(16, Math.min(N - 16, e.left + (e.width - 16) / 2)), e = Math.max(16, Math.min(O - 16, e.top - e.height)), !(64 > Math.abs(d - N / 2) && 64 > e))) for (f = 0; f < xe.length; f++) {
  1980.                                 var j = xe[f];
  1981.                                 !j.U && j.C < c && (j.left = d, j.top = e, Vc(j), j.Ra.play())
  1982.                             }
  1983.                             Ye -= b;
  1984.                             0 >= Ye && (Ye = 0, Z(10));
  1985.                             break;
  1986.                         case 10:
  1987.                             rf() || Z(11)
  1988.                     }
  1989.                     c = k;
  1990.                     if (Ed && (6 == z || 12 == z) && (D.g.x || D.g.y)) c = 500 > a - Se ? "ed" : "ec";
  1991.                     Ob != c && (x.stop(Ob), c && wf(c), Ob = c);
  1992.                     for (c = 0; c < Sc.length; c++) Sc[c].update(b);
  1993.                     Sc.sort(Yc);
  1994.                     for (c = 0; c < Sc.length; c++) Sc[c].a();
  1995.                     ke = Math.min(6E4, Y) / 6E4 * Math.PI;
  1996.                     c = X;
  1997.                     c = Math.floor(c);
  1998.                     for (d = 0; d < U.length; d++) le[d] = c % 10, c = Math.floor(c / 10);
  1999.                     if (!(49 <= S)) {
  2000.                         Fd && (Kd.beginPath(), Kd.fillStyle = "rgba(255,255,255," + Fd + ")", Kd.rect(0, 0, T.width, T.height), Kd.fill());
  2001.                         c = 16 + Math.floor((K - Ld.getWidth()) / 2);
  2002.                         d = L + M + S + 2;
  2003.                         e = c + 131;
  2004.                         f = d + 16;
  2005.                         a: {
  2006.                             for (j = U.length - 1; U[j] == le[j];) if (0 > --j) break a;
  2007.                             var n = Math.min(1, 0.01 * b);
  2008.                             me[0] = i;
  2009.                             for (var p = 0; p <= j; p++) if (me[p]) {
  2010.                                 9 == U[p] && p < j && (me[p + 1] = i);
  2011.                                 var s = Math.floor(U[p] + 1);
  2012.                                 U[p] += n;
  2013.                                 U[p] >= s && (10 <= s && (s = 0), U[p] = s, me[p] = l)
  2014.                             }
  2015.                         }
  2016.                         for (j = 0; j < U.length; j++) {
  2017.                             var s = U[j],
  2018.                                 A = f,
  2019.                                 n = 0 != j ? Md : Nd,
  2020.                                 p = n.L,
  2021.                                 ga = 20 * s;
  2022.                             n.x = e + 17 * (U.length - j - 1);
  2023.                             n.y = A;
  2024.                             n.L += ga;
  2025.                             9 < s ? (s = 20 * (1 - Math.min(1, s - 9)), A = 20 - s, n.k = s, n.a(), n.y += s, n.L = p, n.k = A, n.a()) : (n.k = 20, n.a(), n.L = p)
  2026.                         }
  2027.                         Od.x = e;
  2028.                         Od.y = f;
  2029.                         Od.a();
  2030.                         Ld.x = c;
  2031.                         Ld.y = d;
  2032.                         Ld.a();
  2033.                         S && (Pd.x = c, Pd.y = d, Pd.a(), Qd.x = c + 20, Qd.y = d + 63, Qd.a(), Rd.x = c + 20 + 4, Rd.y = d + 63 + 4, Rd.a(), Hd ? (Kd.save(), Kd.beginPath(), Kd.rect(c + 321 - 2 - 1, d + 67 - 2 - 1, 30, 70), Kd.fillStyle = "#516a88", Kd.fill(), Kd.restore()) : (Sd.x = Td.x = c + 321, Td.y = d + 67, Td.a(), Sd.y = d + 108, Sd.a()), Ud.x = c + 321, Ud.y = d + 149, Ud.a(), e = Gd[ne], e.x = c + 225 - e.getWidth() / 2, e.y = d + 130 - e.getHeight() / 2, e.a());
  2034.                         Vd.x = c + 321;
  2035.                         Vd.y = d + 13;
  2036.                         Vd.a();
  2037.                         Wd.x = c;
  2038.                         Wd.y = d;
  2039.                         Xd.x = Yd.x = Zd.x = c + 27;
  2040.                         Xd.y = Yd.y = Zd.y = d + 8;
  2041.                         c = ke - Zd.p;
  2042.                         d = Math.abs(c);
  2043.                         b *= 0.002;
  2044.                         e = ke;
  2045.                         d >= b && (e = Zd.p + c / d * b);
  2046.                         Xd.p = Yd.p = Zd.p = e;
  2047.                         Wd.a();
  2048.                         Zd.a();
  2049.                         Xd.a();
  2050.                         Yd.a()
  2051.                     }
  2052.                     c = 12E4 > a - Te
  2053.                 }
  2054.                 c ? (ra(xf), Rc = a, Re = i) : Re = l
  2055.             }
  2056.         }, Z = function (a) {
  2057.             if (a != z) {
  2058.                 z = a;
  2059.                 var b = oa();
  2060.                 switch (a) {
  2061.                     case 0:
  2062.                         Ze = ta = l;
  2063.                         Mb = k;
  2064.                         B = [];
  2065.                         Xc();
  2066.                         break;
  2067.                     case 1:
  2068.                         zd(570, 83, 0, 114);
  2069.                         D.left = -42;
  2070.                         Me = [];
  2071.                         for (var c = 0; 10 > c; c++) a = (0.5 < Math.random() ? Zb : $b).o(), a.x = K * Math.random() - a.getWidth(), a.y = 75 * Math.random() - a.getHeight(), xa(a, 3E3, 1, 0), Me.push(a);
  2072.                         break;
  2073.                     case 3:
  2074.                         for (a = 0; 10 > a; a++) xa(Me[a], 500, 0);
  2075.                         We = 6;
  2076.                         Lc.play();
  2077.                         a = Ub;
  2078.                         var b = uf("sprite_f.png"),
  2079.                             d = cd,
  2080.                             e = new vd(new w(d, b, 1489, 0, 9, 25), new w(d, b, 0, 0, 12, 49), new w(d, b, 359, 21, 75, 49), new w(d, b, 2110, 0, 9, 47), new w(d, b, 469, 166, 25, 47), new w(d, b, 1489, 51, 46, 49), new w(d, b, 626, 0, 388, 200));
  2081.                         Q[2] = e;
  2082.                         e.v = new w(d, b, 59, 172, 5, 15);
  2083.                         var f = new vd(new w(d, b, 497, 149, 9, 26), new w(d, b, 437, 21, 10, 49), new w(d, b, 1017, 157, 65, 49), new w(d, b, 347, 21, 9, 47), new w(d, b, 509, 149, 26, 47), new w(d, b, 1489, 150, 46, 40), new w(d, b, 1726, 0, 381, 218));
  2084.                         Q[3] = f;
  2085.                         f.v = new w(d, b, 173, 0, 249, 18);
  2086.                         f.v.opacity = 0.8;
  2087.                         d = new w(od, b, 59, 148, 25, 21);
  2088.                         d.y = -21;
  2089.                         Zc = [];
  2090.                         for (var g = 0; 6 > g; g++) Zc.push(d.o());
  2091.                         d = new w(od, b, 1489, 28, 18, 20);
  2092.                         g = d.o();
  2093.                         g.i = -1;
  2094.                         $c = new Tc;
  2095.                         $c.d = new w(od, b, 538, 149, 18, 40);
  2096.                         $c.d.offsetY = -20;
  2097.                         $c.width = 18;
  2098.                         $c.height = 20;
  2099.                         $c.X = d;
  2100.                         ad = new Tc;
  2101.                         ad.d = $c.d.o();
  2102.                         ad.d.i = -1;
  2103.                         ad.width = 18;
  2104.                         ad.height = 20;
  2105.                         ad.X = g;
  2106.                         e.w = new t;
  2107.                         v(e.w, 500);
  2108.                         u(e.w, function () {
  2109.                             e.v.k = 0
  2110.                         });
  2111.                         u(e.w, function (a) {
  2112.                             Q[2].opacity = a;
  2113.                             P = i
  2114.                         }, 250);
  2115.                         u(e.w, function () {
  2116.                             Vc($c, i);
  2117.                             Vc(ad, i)
  2118.                         });
  2119.                         u(e.w, function (a) {
  2120.                             e.v.k = la(a, 0, 14);
  2121.                             sd = q(a, N / 2 + 10, 173);
  2122.                             Dd();
  2123.                             P = i
  2124.                         }, 750);
  2125.                         e.z = new t;
  2126.                         u(e.z, function (a) {
  2127.                             e.v.k = 14 * (1 - a);
  2128.                             sd = q(a, 173, N / 2 + 10);
  2129.                             Dd();
  2130.                             P = i
  2131.                         }, 500);
  2132.                         u(e.z, function () {
  2133.                             Wc($c);
  2134.                             Wc(ad)
  2135.                         });
  2136.                         v(e.z, 250);
  2137.                         u(e.z, function () {
  2138.                             Q[2].opacity = 0
  2139.                         });
  2140.                         f.w = new t;
  2141.                         u(f.w, function () {
  2142.                             f.v.k = 0
  2143.                         });
  2144.                         v(f.w, 500);
  2145.                         u(f.w, function (a) {
  2146.                             Q[3].opacity = a;
  2147.                             P = i
  2148.                         }, 250);
  2149.                         u(f.w, function (a) {
  2150.                             for (var b = 0; b < Zc.length; b++) {
  2151.                                 var c = Zc[b],
  2152.                                     d = I + -40 + (b & 1 ? -4 : 0);
  2153.                                 c.y = q(a, -c.getHeight(), d);
  2154.                                 c.opacity = 0.9 * a
  2155.                             }
  2156.                             f.v.k = la(a, 0, 18);
  2157.                             P = i
  2158.                         }, 750);
  2159.                         f.z = new t;
  2160.                         u(f.z, function (a) {
  2161.                             for (var b = 0; b < Zc.length; b++) {
  2162.                                 var c = Zc[b];
  2163.                                 c.y = q(a, I + -40 + (b & 1 ? -4 : 0), -c.getHeight())
  2164.                             }
  2165.                             f.v.k = 18 * (1 - a);
  2166.                             P = i
  2167.                         }, 500);
  2168.                         u(f.z, function (a) {
  2169.                             Q[3].opacity = 1 - a;
  2170.                             P = i
  2171.                         }, 250);
  2172.                         Pd = new w(T, b, 1127, 0, 359, 208, 0, 45);
  2173.                         Hd || (ce = new w(T, b, 359, 73, 25, 26), de = new w(T, b, 559, 149, 25, 26));
  2174.                         ee = new w(T, b, 1085, 157, 25, 26);
  2175.                         Qd = new w(T, b, 359, 102, 107, 107);
  2176.                         Rd = new w(T, b, 1017, 0, 107, 107);
  2177.                         Gd = [];
  2178.                         Gd.push(new w(T, b, 15, 0, 155, 145));
  2179.                         Gd.push(new w(T, b, 469, 0, 154, 146));
  2180.                         Gd.push(new w(T, b, 173, 21, 171, 160));
  2181.                         Gd.push(new w(T, b, 1560, 0, 163, 151));
  2182.                         Jd = new t;
  2183.                         u(Jd, function (a) {
  2184.                             S = -208 * a;
  2185.                             Fd = 0.67 * a
  2186.                         }, 750);
  2187.                         Id = new t;
  2188.                         u(Id, function (a) {
  2189.                             S = -208 * (1 - a);
  2190.                             Fd = 0.67 * (1 - a)
  2191.                         }, 750);
  2192.                         fe = new t;
  2193.                         u(fe, function () {
  2194.                             V("hn")
  2195.                         });
  2196.                         u(fe, function (a) {
  2197.                             Rd.p = Qd.p = Math.sin(2 * Math.PI * a)
  2198.                         }, 1E3);
  2199.                         Hd || (Td = new oe(ce, gf), Sd = new oe(de, ff));
  2200.                         Ud = new oe(ee, ef);
  2201.                         we[1] = new w(a, b, 37, 148, 19, 17);
  2202.                         ve[1] = new w(a, b, 15, 148, 19, 17);
  2203.                         we[2] = ve[2] = new w(a, b, 587, 195, 20, 17);
  2204.                         we[3] = ve[3] = new w(a, b, 587, 149, 20, 20);
  2205.                         we[4] = new w(a, b, 144, 195, 10, 10);
  2206.                         ve[4] = new w(a, b, 144, 172, 12, 20);
  2207.                         we[5] = new w(a, b, 469, 149, 15, 14);
  2208.                         ve[5] = new w(a, b, 587, 172, 20, 20);
  2209.                         Dc = new w(a, b, 1017, 110, 37, 44);
  2210.                         Ec = new w(a, b, 67, 172, 37, 44);
  2211.                         Fc = new w(a, b, 1489, 103,
  2212.                         34, 44);
  2213.                         Gc = new w(a, b, 1560, 154, 34, 44);
  2214.                         a = x;
  2215.                         for (c in Le) a.load(Le[c]);
  2216.                         Pb = new ub("http://www.google.com/doodles/zamboni", Ke(0), "", "");
  2217.                         Rb = Ke(1) + " " + Ke(2);
  2218.                         break;
  2219.                     case 4:
  2220.                         jf(0, b);
  2221.                         Y = 6E4;
  2222.                         nc.play();
  2223.                         break;
  2224.                     case 8:
  2225.                         for (a = 0; a < B.length; a++) B[a].reset();
  2226.                         pc = Nb = 0;
  2227.                         V("do");
  2228.                         wf("sm");
  2229.                         Ye = 8E3;
  2230.                         break;
  2231.                     case 10:
  2232.                         for (a = 0; a < B.length; a++) B[a].target(N / 2, -10);
  2233.                         V("wh");
  2234.                         x.stop("sm");
  2235.                         break;
  2236.                     case 5:
  2237.                         Oc.play();
  2238.                     case 11:
  2239.                         Kc.play();
  2240.                         break;
  2241.                     case 7:
  2242.                         window.localStorage && window.localStorage.setItem("doodle-zamboni-tutorial", "true"), Pc.play();
  2243.                     case 13:
  2244.                         Mc.play();
  2245.                         break;
  2246.                     case 14:
  2247.                         ne = bd - 1;
  2248.                         of();
  2249.                         oc.play();
  2250.                         V("lf");
  2251.                         vf();
  2252.                         break;
  2253.                     case 15:
  2254.                         ne = 3, Jd.s || Jd.play(), be.play(), of(), x.stop("lw"), V("fv"), X += Y / 250, Y = 0, cf++, vf()
  2255.                 }
  2256.             }
  2257.         }, jf = function (a, b) {
  2258.             Qb = a;
  2259.             Te = b;
  2260.             Y = Math.max(15E3, Y);
  2261.             for (var c = 0; c < B.length; c++) Wc(B[c]);
  2262.             B = [];
  2263.             Wc(D);
  2264.             ze();
  2265.             switch (a) {
  2266.                 case 1:
  2267.                     bf++;
  2268.                 case 0:
  2269.                     X = 0;
  2270.                     Y = 6E4;
  2271.                     B = [new W(ac, 2E-4)];
  2272.                     zd(396, 172, 1, 49);
  2273.                     break;
  2274.                 case 2:
  2275.                     B = [new W(ac, 2E-4), new W(bc, 2.2E-4)];
  2276.                     Ce([2]);
  2277.                     break;
  2278.                 case 3:
  2279.                     B = [new W(ac, 2E-4), new W(bc, 2.2E-4), new W(cc, 2.5E-4)];
  2280.                     Ce([4, 2]);
  2281.                     break;
  2282.                 case 4:
  2283.                     B = [new W(dc, 2.7E-4), new W(ec, 3E-4),
  2284.                     new W(dc, 3.3E-4), new W(ec, 3.6E-4)];
  2285.                     Ce([2, 3, 3]);
  2286.                     zd(440, 196, 2, 49);
  2287.                     V("rb");
  2288.                     break;
  2289.                 case 5:
  2290.                     B = [new W(ec, 3E-4), new W(dc, 3.3E-4), new W(ec, 3.6E-4), new W(dc, 3.9E-4)];
  2291.                     Ce([2, 2, 3, 3, 3]);
  2292.                     break;
  2293.                 case 6:
  2294.                     B = [new W(dc, 3.3E-4), new W(ec, 3.6E-4), new W(ec, 3.9E-4), new W(dc, 4.2E-4)];
  2295.                     Ce([4, 2, 2, 3, 3, 3, 3]);
  2296.                     break;
  2297.                 case 7:
  2298.                     B = [new W(Dc, 3.5E-4), new W(Fc, 3.7E-4), new W(Ec, 3.9E-4), new W(Gc, 4.1E-4)];
  2299.                     Ce([2, 2, 1, 1, 3, 3, 0]);
  2300.                     zd(550, 250, 3, 49);
  2301.                     V("rb");
  2302.                     break;
  2303.                 case 8:
  2304.                     B = [new W(Dc, 3.5E-4), new W(Fc, 3.7E-4), new W(Ec, 3.9E-4), new W(Gc, 4.1E-4), new W(dc, 3.3E-4),
  2305.                     new W(ec, 3.6E-4), new W(dc, 3.9E-4), new W(ec, 4.2E-4)];
  2306.                     Ce([2, 2, 2, 1, 1, 1, 3, 3, 0]);
  2307.                     zd(575, 275, 3, 49);
  2308.                     V("rb");
  2309.                     break;
  2310.                 case 9:
  2311.                     B = [new W(Dc, 3.5E-4), new W(Fc, 3.7E-4), new W(Ec, 3.9E-4), new W(Gc, 4.1E-4), new W(dc, 3.3E-4), new W(ec, 3.6E-4), new W(dc, 3.9E-4), new W(ec, 4.2E-4), new W(ac, 2E-4), new W(bc, 2.2E-4), new W(cc, 2.5E-4)], Ce([4, 2, 2, 2, 1, 1, 1, 1, 3, 3, 0]), zd(600, 300, 3, 49), V("rb")
  2312.             }
  2313.             vf();
  2314.             af = 0
  2315.         }, Hf = function (a) {
  2316.             Te = oa();
  2317.             Re || xf();
  2318.             a.target == Ub && (kc = (a.offsetX || a.layerX || 0) + Kb, lc = a.offsetY || a.layerY || 0)
  2319.         }, Jf = function (a) {
  2320.             if (!Mc.s) if (3 == mc) a = Math.floor((Xe - a) / 66), 0 <= a && $(a % 4);
  2321.             else if (!Qe || 100 < a - Ue) {
  2322.                 Ue = a;
  2323.                 a = Math.abs(D.g.x);
  2324.                 var b = Math.abs(D.g.y);
  2325.                 a > b ? 0 > D.g.x ? $(1) : 0 < D.g.x && $(3) : a < b && (0 > D.g.y ? $(0) : 0 < D.g.y && $(2))
  2326.             }
  2327.         }, If = function (a, b) {
  2328.             var c = D;
  2329.             mc && a > Xe && of();
  2330.             14 != z && (c.B += 0.05 * b, 15 < c.B && (c.B = 0, c.d.frame = 0 == c.d.frame ? 1 : 0));
  2331.             if (12 == z || 6 == z) {
  2332.                 var d = 2.5E-4;
  2333.                 3 == mc ? d = 0 : 50 > a - Se && (d = 2.7E-4);
  2334.                 c.Ka = d;
  2335.                 if (c.g.x || c.g.y) af += b
  2336.             }
  2337.             c.Ua && a > $e && (V("hw"), $e = a + 150);
  2338.             c.d.T = 1 == mc || a < $e ? 3 : 0
  2339.         }, Kf = function (a) {
  2340.             var b = D;
  2341.             3E4 < a - Te && b.d != Jc && ($(3), b.d = Jc)
  2342.         }, Lf = function () {
  2343.             if (!r && (r = document.getElementById("hplogo"))) {
  2344.                 Z(0);
  2345.                 var a = kf();
  2346.                 if (a && a.getContext) {
  2347.                     Tb = a;
  2348.                     Sb = kf();
  2349.                     Sb.style.opacity = 0.1;
  2350.                     var b = kf(),
  2351.                         c = kf();
  2352.                     Ub = c;
  2353.                     c.getContext("2d");
  2354.                     var d = uf("sprite_a.png");
  2355.                     cd = a;
  2356.                     kd = a.getContext("2d");
  2357.                     gd = b;
  2358.                     nd = b.getContext("2d");
  2359.                     od = c;
  2360.                     md = c.getContext("2d");
  2361.                     N = O = K = M = k;
  2362.                     bd = 0;
  2363.                     a = new vd(k, k, k, k, k, k, k);
  2364.                     a.opacity = 1;
  2365.                     Q[0] = a;
  2366.                     hd = new w(cd, d, 175, 0, 285, 115);
  2367.                     id = hd.o();
  2368.                     id.i = -1;
  2369.                     pd = new w(b, d);
  2370.                     pd.k = 2;
  2371.                     pd.D = 2;
  2372.                     jd = new w(cd, d, 0, 123, 172, 120);
  2373.                     a.z = new t;
  2374.                     v(a.z, 750);
  2375.                     u(a.z, function () {
  2376.                         Q[0].opacity = 0
  2377.                     });
  2378.                     T = c;
  2379.                     Kd = c.getContext("2d");
  2380.                     b = (b = window.google) && b.doodle;
  2381.                     Hd = !(!b || !b.standalone);
  2382.                     b = pa("doodle-zamboni-audio");
  2383.                     Ed = !! b || b == k;
  2384.                     S = 49;
  2385.                     Fd = 0;
  2386.                     te();
  2387.                     Vb = new w(c, d, 473, 0, 49, 50, -1, -26);
  2388.                     Wb = Vb.o();
  2389.                     Wb.offsetX = 7;
  2390.                     Wb.i = -1;
  2391.                     Xb = new w(c, d, 175, 118, 15, 15);
  2392.                     Yb = new w(c, d, 175, 158, 436, 91);
  2393.                     Zb = new w(c, d, 473, 53, 33, 6);
  2394.                     $b = new w(c, d, 509, 53, 28, 6);
  2395.                     C = new w(c, d, 263, 118, 69, 37);
  2396.                     C.opacity = 0;
  2397.                     ac = new w(c, d, 558, 109, 23, 33);
  2398.                     bc = new w(c, d, 558, 62, 26, 30);
  2399.                     cc = new w(c, d, 208, 118, 26, 34);
  2400.                     dc = new w(c, d, 473, 109, 41, 44);
  2401.                     ec = new w(c, d, 473, 62, 41, 44);
  2402.                     fc = new t;
  2403.                     u(fc, function () {
  2404.                         $(3);
  2405.                         D.top = Math.min(M - 24, wd() - 12);
  2406.                         D.I = i;
  2407.                         Vc(D)
  2408.                     });
  2409.                     u(fc, function (a) {
  2410.                         var b = D.left;
  2411.                         D.left = q(a, -42, 650);
  2412.                         D.B += Math.abs(D.left - b)
  2413.                     }, 1E4);
  2414.                     u(fc, function () {
  2415.                         Wc(D)
  2416.                     });
  2417.                     gc = new t;
  2418.                     u(gc, function () {
  2419.                         $(1);
  2420.                         D.top = Math.max(0, Math.min(M - 24, wd() - 12));
  2421.                         D.I = i;
  2422.                         Vc(D)
  2423.                     });
  2424.                     u(gc, function (a) {
  2425.                         var b = D.left;
  2426.                         D.left = q(a, 650, -42);
  2427.                         D.B += Math.abs(D.left - b)
  2428.                     }, 1E4);
  2429.                     u(gc, function () {
  2430.                         Wc(D)
  2431.                     });
  2432.                     hc = new t;
  2433.                     u(hc, function () {
  2434.                         var a = Math.floor(3 * Math.random()),
  2435.                             b = ac;
  2436.                         1 == a ? b = bc : 2 == a && (b = cc);
  2437.                         B = [new W(b, 1.8E-4)];
  2438.                         B[0].moveTo(-10, qf());
  2439.                         Ee(B[0]);
  2440.                         Fe(B[0], 2 * N / 3, qf());
  2441.                         Fe(B[0], N / 3, qf());
  2442.                         Fe(B[0],
  2443.                         N + 10, qf())
  2444.                     });
  2445.                     ic = new t;
  2446.                     u(ic, function () {
  2447.                         B = [new W(ec, 2.5E-4), new W(dc, 2.5E-4)];
  2448.                         B[0].moveTo(-10, qf());
  2449.                         B[1].moveTo(N + 10, qf());
  2450.                         Ee(B[0]);
  2451.                         Ee(B[1]);
  2452.                         Fe(B[0], N / 2, 30);
  2453.                         Fe(B[1], N / 2, 60);
  2454.                         Fe(B[0], N / 2 - 30, 60);
  2455.                         Fe(B[1], N / 2 + 30, 30);
  2456.                         Fe(B[0], N + 10, qf());
  2457.                         Fe(B[1], -10, qf())
  2458.                     });
  2459.                     jc = new t;
  2460.                     u(jc, function () {
  2461.                         C.opacity = 1;
  2462.                         C.y = I - C.getHeight();
  2463.                         C.i = 1
  2464.                     });
  2465.                     u(jc, function (a) {
  2466.                         C.x = q(a, -C.getWidth(), 0);
  2467.                         C.frame = C.x / 5 & 1 ? 1 : 0
  2468.                     }, 3E3);
  2469.                     v(jc, 1E3);
  2470.                     u(jc, function () {
  2471.                         C.frame = 2
  2472.                     }, 500);
  2473.                     u(jc, function (a) {
  2474.                         C.offsetY = -10 * Math.sin(a * Math.PI)
  2475.                     }, 200);
  2476.                     u(jc, function () {
  2477.                         C.i = -1
  2478.                     });
  2479.                     u(jc, function (a) {
  2480.                         C.x = q(a, 0, -C.getWidth());
  2481.                         C.frame = C.x / 5 & 1 ? 1 : 0
  2482.                     }, 500);
  2483.                     u(jc, function () {
  2484.                         C.opacity = 0
  2485.                     });
  2486.                     D = new Tc;
  2487.                     D.ua = 0.3;
  2488.                     D.d = Vb;
  2489.                     D.width = 42;
  2490.                     D.height = 24;
  2491.                     Ve = 3
  2492.                 }
  2493.             }
  2494.         }, Mf = function () {
  2495.             16 != z && (Z(16), x && xb(), ta = Ze = i, r && (sa(198), r.innerHTML = "", r = k))
  2496.         }, Nf = function () {
  2497.             var a = window.google;
  2498.             if (a) {
  2499.                 var b = a.msg,
  2500.                     c = function () {
  2501.                         var a = b && b.unlisten;
  2502.                         a && a(67, c);
  2503.                         Mf();
  2504.                         return i
  2505.                     }, d = function () {
  2506.                         var d = document.getElementById("hplogo");
  2507.                         if (d && "hidden" != d.style.visibility) {
  2508.                             var d = a.psy,
  2509.                                 f = b && b.listen;
  2510.                             d && (d.q && f) && f(67, c)
  2511.                         }
  2512.                     };
  2513.                 d();
  2514.                 if (!a.doodle || !a.doodle.jesr) ba("google.doodle.jesr"),
  2515.                 a.rein && a.dstr && (a.rein.push(d, Lf), a.dstr.push(c))
  2516.             }
  2517.             if ((d = window.google) && d.doodle) Mf && (d.doodle.cpDestroy = Mf), d.doodle.cpInit = function () {
  2518.                 Mf && Mf();
  2519.                 Lf()
  2520.             };
  2521.             Lf()
  2522.         }, Of = window.google;
  2523.     Of && Of.x ? Of.x({
  2524.         id: "DOODLE"
  2525.     }, Nf) : Nf();
  2526. })();
Advertisement
RAW Paste Data Copied
Advertisement