1! function() { 2 var e, t, o, n, r = { 3 frameRate: 150, 4 animationTime: 600, 5 stepSize: 80, 6 pulseAlgorithm: !0, 7 pulseScale: 4, 8 pulseNormalize: 1, 9 accelerationDelta: 50, 10 accelerationMax: 3, 11 keyboardSupport: !0, 12 arrowScroll: 50, 13 fixedBackground: !0, 14 excluded: "" 15 }, 16 a = r, 17 l = !1, 18 i = { 19 x: 0, 20 y: 0 21 }, 22 c = !1, 23 s = document.documentElement, 24 u = [], 25 d = /^Mac/.test(navigator.platform), 26 f = { 27 37: 1, 28 38: 1, 29 39: 1, 30 40: 1 31 }; 32 33 function m() { 34 if (!c && document.body) { 35 c = !0; 36 var n = document.body, 37 r = document.documentElement, 38 i = window.innerHeight, 39 u = n.scrollHeight; 40 if (s = document.compatMode.indexOf("CSS") >= 0 ? r : n, e = n, a.keyboardSupport && X("keydown", b), top != self) l = !0; 41 else if (J && u > i && (n.offsetHeight <= i || r.offsetHeight <= i)) { 42 var d, f = document.createElement("div"); 43 if (f.style.cssText = "position:absolute; z-index:-10000; top:0; left:0; right:0; height:" + s.scrollHeight + "px", document.body.appendChild(f), o = function() { 44 d || (d = setTimeout((function() { 45 f.style.height = "0", f.style.height = s.scrollHeight + "px", d = null 46 }), 500)) 47 }, setTimeout(o, 10), X("resize", o), (t = new j(o)).observe(n, { 48 attributes: !0, 49 childList: !0, 50 characterData: !1 51 }), s.offsetHeight <= i) { 52 var m = document.createElement("div"); 53 m.style.clear = "both", n.appendChild(m) 54 } 55 } 56 a.fixedBackground || (n.style.backgroundAttachment = "scroll", r.style.backgroundAttachment = "scroll") 57 } 58 } 59 var h = [], 60 w = !1, 61 v = Date.now(); 62 63 function p(e, t, o) { 64 var n, r; 65 if (n = (n = t) > 0 ? 1 : -1, r = (r = o) > 0 ? 1 : -1, (i.x !== n || i.y !== r) && (i.x = n, i.y = r, h = [], v = 0), 1 != a.accelerationMax) { 66 var l = Date.now() - v; 67 if (l < a.accelerationDelta) { 68 var c = (1 + 50 / l) / 2; 69 c > 1 && (c = Math.min(c, a.accelerationMax), t *= c, o *= c) 70 } 71 v = Date.now() 72 } 73 if (h.push({ 74 x: t, 75 y: o, 76 lastX: t < 0 ? .99 : -.99, 77 lastY: o < 0 ? .99 : -.99, 78 start: Date.now() 79 }), !w) { 80 var s = R(), 81 u = e === s || e === document.body; 82 null == e.$scrollBehavior && function(e) { 83 var t = k(e); 84 if (null == E[t]) { 85 var o = getComputedStyle(e, "")["scroll-behavior"]; 86 E[t] = "smooth" == o 87 } 88 return E[t] 89 }(e) && (e.$scrollBehavior = e.style.scrollBehavior, e.style.scrollBehavior = "auto"); 90 var d = function(n) { 91 for (var r = Date.now(), l = 0, i = 0, c = 0; c < h.length; c++) { 92 var s = h[c], 93 f = r - s.start, 94 m = f >= a.animationTime, 95 v = m ? 1 : f / a.animationTime; 96 a.pulseAlgorithm && (v = V(v)); 97 var p = s.x * v - s.lastX >> 0, 98 y = s.y * v - s.lastY >> 0; 99 l += p, i += y, s.lastX += p, s.lastY += y, m && (h.splice(c, 1), c--) 100 } 101 u ? window.scrollBy(l, i) : (l && (e.scrollLeft += l), i && (e.scrollTop += i)), t || o || (h = []), h.length ? $(d, e, 1e3 / a.frameRate + 1) : (w = !1, null != e.$scrollBehavior && (e.style.scrollBehavior = e.$scrollBehavior, e.$scrollBehavior = null)) 102 }; 103 $(d, e, 0), w = !0 104 } 105 } 106 107 function y(t) { 108 c || m(); 109 var o = t.target; 110 if (t.defaultPrevented || t.ctrlKey) return !0; 111 if (A(e, "embed") || A(o, "embed") && /\.pdf/i.test(o.src) || A(e, "object") || o.shadowRoot) return !0; 112 var r = -t.wheelDeltaX || t.deltaX || 0, 113 i = -t.wheelDeltaY || t.deltaY || 0; 114 d && (t.wheelDeltaX && N(t.wheelDeltaX, 120) && (r = t.wheelDeltaX / Math.abs(t.wheelDeltaX) * -120), t.wheelDeltaY && N(t.wheelDeltaY, 120) && (i = t.wheelDeltaY / Math.abs(t.wheelDeltaY) * -120)), r || i || (i = -t.wheelDelta || 0), 1 === t.deltaMode && (r *= 40, i *= 40); 115 var s = H(o); 116 return s ? !! function(e) { 117 if (e) { 118 u.length || (u = [e, e, e]), e = Math.abs(e), u.push(e), u.shift(), clearTimeout(n), n = setTimeout((function() { 119 try { 120 localStorage.SS_deltaBuffer = u.join(",") 121 } catch (e) {} 122 }), 1e3); 123 var t = e > 120 && K(e), 124 o = !K(120) && !K(100) && !t; 125 return e < 50 || o 126 } 127 }(i) || (Math.abs(r) > 1.2 && (r *= a.stepSize / 120), Math.abs(i) > 1.2 && (i *= a.stepSize / 120), p(s, r, i), t.preventDefault(), void T()) : !l || !_ || (Object.defineProperty(t, "target", { 128 value: window.frameElement 129 }), parent.wheel(t)) 130 } 131 132 function b(t) { 133 var o = t.target, 134 n = t.ctrlKey || t.altKey || t.metaKey || t.shiftKey && 32 !== t.keyCode; 135 document.body.contains(e) || (e = document.activeElement); 136 var r = /^(button|submit|radio|checkbox|file|color|image)$/i;
137 if (t.defaultPrevented || /^(textarea|select|embed|object)$/i.test(o.nodeName) || A(o, "input") && !r.test(o.type) || A(e, "video") || function(e) { 138 var t = e.target, 139 o = !1; 140 if (-1 != document.URL.indexOf("www.youtube.com/watch")) 141 do { 142 if (o = t.classList && t.classList.contains("html5-video-controls")) break 143 } while (t = t.parentNode); 144 return o 145 }(t) || o.isContentEditable || n) return !0; 146 if ((A(o, "button") || A(o, "input") && r.test(o.type)) && 32 === t.keyCode) return !0; 147 if (A(o, "input") && "radio" == o.type && f[t.keyCode]) return !0; 148 var i = 0, 149 c = 0, 150 s = H(e); 151 if (!s) return !l || !_ || parent.keydown(t); 152 var u = s.clientHeight; 153 switch (s == document.body && (u = window.innerHeight), t.keyCode) { 154 case 38: 155 c = -a.arrowScroll; 156 break; 157 case 40: 158 c = a.arrowScroll; 159 break; 160 case 32: 161 c = -(t.shiftKey ? 1 : -1) * u * .9; 162 break; 163 case 33: 164 c = .9 * -u; 165 break; 166 case 34: 167 c = .9 * u; 168 break; 169 case 36: 170 s == document.body && document.scrollingElement && (s = document.scrollingElement), c = -s.scrollTop; 171 break; 172 case 35: 173 var d = s.scrollHeight - s.scrollTop - u; 174 c = d > 0 ? d + 10 : 0; 175 break; 176 case 37: 177 i = -a.arrowScroll; 178 break; 179 case 39: 180 i = a.arrowScroll; 181 break; 182 default: 183 return !0 184 } 185 p(s, i, c), t.preventDefault(), T() 186 } 187 188 function g(t) { 189 e = t.target 190 } 191 var S, x, k = (S = 0, function(e) { 192 return e.uniqueID || (e.uniqueID = S++) 193 }), 194 D = {}, 195 M = {}, 196 E = {}; 197 198 function T() { 199 clearTimeout(x), x = setInterval((function() { 200 D = M = E = {} 201 }), 1e3) 202 } 203 204 function B(e, t, o) { 205 for (var n = o ? D : M, r = e.length; r--;) n[k(e[r])] = t; 206 return t 207 } 208 209 function C(e, t) { 210 return (t ? D : M)[k(e)] 211 } 212 213 function H(e) { 214 var t = [], 215 o = document.body, 216 n = s.scrollHeight; 217 do { 218 var r = C(e, !1); 219 if (r) return B(t, r); 220 if (t.push(e), n === e.scrollHeight) { 221 var a = L(s) && L(o) || O(s); 222 if (l && z(s) || !l && a) return B(t, R()) 223 } else if (z(e) && O(e)) return B(t, e) 224 } while (e = e.parentElement) 225 } 226 227 function z(e) { 228 return e.clientHeight + 10 < e.scrollHeight 229 } 230 231 function L(e) { 232 return "hidden" !== getComputedStyle(e, "").getPropertyValue("overflow-y") 233 } 234 235 function O(e) { 236 var t = getComputedStyle(e, "").getPropertyValue("overflow-y"); 237 return "scroll" === t || "auto" === t 238 } 239 240 function X(e, t, o) { 241 window.addEventListener(e, t, o || !1) 242 } 243 244 function Y(e, t, o) { 245 window.removeEventListener(e, t, o || !1) 246 } 247 248 function A(e, t) { 249 return e && (e.nodeName || "").toLowerCase() === t.toLowerCase() 250 } 251 if (window.localStorage && localStorage.SS_deltaBuffer) try { 252 u = localStorage.SS_deltaBuffer.split(",") 253 } catch (e) {} 254 255 function N(e, t) { 256 return Math.floor(e / t) == e / t 257 } 258 259 function K(e) { 260 return N(u[0], e) && N(u[1], e) && N(u[2], e) 261 } 262 var P, $ = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(e, t, o) { 263 window.setTimeout(e, o || 1e3 / 60) 264 }, 265 j = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, 266 R = (P = document.scrollingElement, function() { 267 if (!P) { 268 var e = document.createElement("div"); 269 e.style.cssText = "height:10000px;width:1px;", document.body.appendChild(e); 270 var t = document.body.scrollTop; 271 document.documentElement.scrollTop, window.scrollBy(0, 3), P = document.body.scrollTop != t ? document.body : document.documentElement, window.scrollBy(0, -3), document.body.removeChild(e) 272 } 273 return P 274 }); 275 276 function q(e) { 277 var t, o; 278 return (e *= a.pulseScale) < 1 ? t = e - (1 - Math.exp(-e)) : (e -= 1, t = (o = Math.exp(-1)) + (1 - Math.exp(-e)) * (1 - o)), t * a.pulseNormalize 279 } 280 281 function V(e) { 282 return e >= 1 ? 1 : e <= 0 ? 0 : (1 == a.pulseNormalize && (a.pulseNormalize /= q(1)), q(e)) 283 } 284 var F = window.navigator.userAgent, 285 I = /Edge/.test(F), 286 _ = /chrome/i.test(F) && !I, 287 W = /safari/i.test(F) && !I, 288 U = /mobile/i.test(F), 289 G = /Windows NT 6.1/i.test(F) && /rv:11/i.test(F), 290 J = W && (/Version\/8/i.test(F) || /Version\/9/i.test(F)), 291 Q = (_ || W || G) && !U, 292 Z = !1; 293 try { 294 window.addEventListener("test", null, Object.defineProperty({}, "passive", { 295 get: function() { 296 Z = !0 297 } 298 })) 299 } catch (e) {} 300 var ee = !!Z && { 301 passive: !1 302 }, 303 te = "onwheel" in document.createElement("div") ? "wheel" : "mousewheel"; 304 305 function oe(e) { 306 for (var t in e) r.hasOwnProperty(t) && (a[t] = e[t]) 307 } 308 te && Q && (X(te, y, ee), X("mousedown", g), X("load", m)), oe.destroy = function() { 309 t && t.disconnect(), Y(te, y), Y("mousedown", g), Y("keydown", b), Y("resize", o), Y("load", m) 310 }, window.SmoothScrollOptions && oe(window.SmoothScrollOptions), "function" == typeof define && define.amd ? define((function() { 311 return oe 312 })) : "object" == typeof exports ? module.exports = oe : window.SmoothScroll = oe 313}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.