1/*! modernizr 3.6.0 (Custom Build) | MIT * 2 * https://modernizr.com/download/?-animation-applicationcache-backgroundblendmode-backgroundcliptext-backgroundsize-bgsizecover-boxsizing-canvastext-checked-contenteditable-contextmenu-cssanimations-csscalc-csscolumns-cssfilters-cssgrid_cssgridlegacy-cssmask-cssremunit-cssscrollbar-csstransforms-csstransitions-cssvhunit-cssvwunit-cubicbezierrange-ellipsis-emoji-eventlistener-flash-flexbox-flexboxlegacy-focuswithin-fontface-formvalidation-fullscreen-generatedcontent-geolocation-hashchange-hidden-hiddenscroll-history-htmlimports-ie8compat-indexeddb-inlinesvg-localstorage-mediaqueries-objectfit-opacity-picture-scriptasync-sessionstorage-smil-svg-svgclippaths-svgfilters-touchevents-urlparser-video-webgl-websqldatabase-willchange-printshiv-setclasses !*/ 3!(function (e, t, n) { 4 function r(e, t) { 5 return typeof e === t; 6 } 7 function o() { 8 var e, t, n, o, i, a, s; 9 for (var c in S) 10 if (S.hasOwnProperty(c)) { 11 if ( 12 ((e = []), 13 (t = S[c]), 14 t.name && 15 (e.push(t.name.toLowerCase()), 16 t.options && t.options.aliases && t.options.aliases.length)) 17 ) 18 for (n = 0; n < t.options.aliases.length; n++) 19 e.push(t.options.aliases[n].toLowerCase()); 20 for (o = r(t.fn, "function") ? t.fn() : t.fn, i = 0; i < e.length; i++) 21 (a = e[i]), 22 (s = a.split(".")), 23 1 === s.length 24 ? (Modernizr[s[0]] = o) 25 : (!Modernizr[s[0]] || 26 Modernizr[s[0]] instanceof Boolean || 27 (Modernizr[s[0]] = new Boolean(Modernizr[s[0]])), 28 (Modernizr[s[0]][s[1]] = o)), 29 w.push((o ? "" : "no-") + s.join("-")); 30 } 31 } 32 function i(e) { 33 var t = C.className, 34 n = Modernizr._config.classPrefix || ""; 35 if ((k && (t = t.baseVal), Modernizr._config.enableJSClass)) { 36 var r = new RegExp("(^|\\s)" + n + "no-js(\\s|$)"); 37 t = t.replace(r, "$1" + n + "js$2"); 38 } 39 Modernizr._config.enableClasses && 40 ((t += " " + n + e.join(" " + n)), 41 k ? (C.className.baseVal = t) : (C.className = t)); 42 } 43 function a() { 44 return "function" != typeof t.createElement 45 ? t.createElement(arguments[0]) 46 : k 47 ? t.createElementNS.call(t, "http://www.w3.org/2000/svg", arguments[0]) 48 : t.createElement.apply(t, arguments); 49 } 50 function s() { 51 var e = t.body; 52 return e || ((e = a(k ? "svg" : "body")), (e.fake = !0)), e; 53 } 54 function c(t, n, r) { 55 var o; 56 if ("getComputedStyle" in e) { 57 o = getComputedStyle.call(e, t, n); 58 var i = e.console; 59 if (null !== o) r && (o = o.getPropertyValue(r)); 60 else if (i) { 61 var a = i.error ? "error" : "log"; 62 i[a].call( 63 i, 64 "getComputedStyle returning null, its possible modernizr test results are inaccurate" 65 ); 66 } 67 } else o = !n && t.currentStyle && t.currentStyle[r]; 68 return o; 69 } 70 function d(e, t) { 71 return e - 1 === t || e === t || e + 1 === t; 72 } 73 function l(e, t) { 74 if ("object" == typeof e) for (var n in e) P(e, n) && l(n, e[n]); 75 else { 76 e = e.toLowerCase(); 77 var r = e.split("."), 78 o = Modernizr[r[0]]; 79 if ((2 == r.length && (o = o[r[1]]), "undefined" != typeof o)) 80 return Modernizr; 81 (t = "function" == typeof t ? t() : t), 82 1 == r.length 83 ? (Modernizr[r[0]] = t) 84 : (!Modernizr[r[0]] || 85 Modernizr[r[0]] instanceof Boolean || 86 (Modernizr[r[0]] = new Boolean(Modernizr[r[0]])), 87 (Modernizr[r[0]][r[1]] = t)), 88 i([(t && 0 != t ? "" : "no-") + r.join("-")]), 89 Modernizr._trigger(e, t); 90 } 91 return Modernizr; 92 } 93 function u(e) { 94 return e 95 .replace(/([a-z])-([a-z])/g, function (e, t, n) { 96 return t + n.toUpperCase(); 97 }) 98 .replace(/^-/, ""); 99 } 100 function f(e, n, r, o) { 101 var i, 102 c, 103 d, 104 l, 105 u = "modernizr", 106 f = a("div"), 107 p = s(); 108 if (parseInt(r, 10)) 109 for (; r--; ) 110 (d = a("div")), (d.id = o ? o[r] : u + (r + 1)), f.appendChild(d); 111 return ( 112 (i = a("style")), 113 (i.type = "text/css"), 114 (i.id = "s" + u), 115 (p.fake ? p : f).appendChild(i), 116 p.appendChild(f), 117 i.styleSheet 118 ? (i.styleSheet.cssText = e) 119 : i.appendChild(t.createTextNode(e)), 120 (f.id = u), 121 p.fake && 122 ((p.style.background = ""), 123 (p.style.overflow = "hidden"), 124 (l = C.style.overflow), 125 (C.style.overflow = "hidden"), 126 C.appendChild(p)), 127 (c = n(f, e)), 128 p.fake 129 ? (p.parentNode.removeChild(p), (C.style.overflow = l),
129C.offsetHeight) 130 : f.parentNode.removeChild(f), 131 !!c 132 ); 133 } 134 function p(e, t) { 135 return !!~("" + e).indexOf(t); 136 } 137 function m(e, t) { 138 return function () { 139 return e.apply(t, arguments); 140 }; 141 } 142 function h(e, t, n) { 143 var o; 144 for (var i in e) 145 if (e[i] in t) 146 return n === !1 147 ? e[i] 148 : ((o = t[e[i]]), r(o, "function") ? m(o, n || t) : o); 149 return !1; 150 } 151 function v(e) { 152 return e 153 .replace(/([A-Z])/g, function (e, t) { 154 return "-" + t.toLowerCase(); 155 }) 156 .replace(/^ms-/, "-ms-"); 157 } 158 function g(t, r) { 159 var o = t.length; 160 if ("CSS" in e && "supports" in e.CSS) { 161 for (; o--; ) if (e.CSS.supports(v(t[o]), r)) return !0; 162 return !1; 163 } 164 if ("CSSSupportsRule" in e) { 165 for (var i = []; o--; ) i.push("(" + v(t[o]) + ":" + r + ")"); 166 return ( 167 (i = i.join(" or ")), 168 f( 169 "@supports (" + i + ") { #modernizr { position: absolute; } }", 170 function (e) { 171 return "absolute" == c(e, null, "position"); 172 } 173 ) 174 ); 175 } 176 return n; 177 } 178 function y(e, t, o, i) { 179 function s() { 180 d && (delete $.style, delete $.modElem); 181 } 182 if (((i = r(i, "undefined") ? !1 : i), !r(o, "undefined"))) { 183 var c = g(e, o); 184 if (!r(c, "undefined")) return c; 185 } 186 for ( 187 var d, l, f, m, h, v = ["modernizr", "tspan", "samp"]; 188 !$.style && v.length; 189 190 ) 191 (d = !0), ($.modElem = a(v.shift())), ($.style = $.modElem.style); 192 for (f = e.length, l = 0; f > l; l++) 193 if ( 194 ((m = e[l]), 195 (h = $.style[m]), 196 p(m, "-") && (m = u(m)), 197 $.style[m] !== n) 198 ) { 199 if (i || r(o, "undefined")) return s(), "pfx" == t ? m : !0; 200 try { 201 $.style[m] = o; 202 } catch (y) {} 203 if ($.style[m] != h) return s(), "pfx" == t ? m : !0; 204 } 205 return s(), !1; 206 } 207 function b(e, t, n, o, i) { 208 var a = e.charAt(0).toUpperCase() + e.slice(1), 209 s = (e + " " + B.join(a + " ") + a).split(" "); 210 return r(t, "string") || r(t, "undefined") 211 ? y(s, t, o, i) 212 : ((s = (e + " " + D.join(a + " ") + a).split(" ")), h(s, t, n)); 213 } 214 function T(e, t) { 215 var n = e.deleteDatabase(t); 216 (n.onsuccess = function () { 217 l("indexeddb.deletedatabase", !0); 218 }), 219 (n.onerror = function () { 220 l("indexeddb.deletedatabase", !1); 221 }); 222 } 223 function x(e, t, r) { 224 return b(e, n, n, t, r); 225 } 226 var w = [], 227 S = [], 228 E = { 229 _version: "3.6.0", 230 _config: { 231 classPrefix: "", 232 enableClasses: !0, 233 enableJSClass: !0, 234 usePrefixes: !0, 235 }, 236 _q: [], 237 on: function (e, t) { 238 var n = this; 239 setTimeout(function () { 240 t(n[e]); 241 }, 0); 242 }, 243 addTest: function (e, t, n) { 244 S.push({ name: e, fn: t, options: n }); 245 }, 246 addAsyncTest: function (e) { 247 S.push({ name: null, fn: e }); 248 }, 249 }, 250 Modernizr = function () {}; 251 (Modernizr.prototype = E), 252 (Modernizr = new Modernizr()), 253 Modernizr.addTest("applicationcache", "applicationCache" in e), 254 Modernizr.addTest("eventlistener", "addEventListener" in e), 255 Modernizr.addTest("geolocation", "geolocation" in navigator), 256 Modernizr.addTest("history", function () { 257 var t = navigator.userAgent; 258 return (-1 === t.indexOf("Android 2.") && 259 -1 === t.indexOf("Android 4.0")) || 260 -1 === t.indexOf("Mobile Safari") || 261 -1 !== t.indexOf("Chrome") || 262 -1 !== t.indexOf("Windows Phone") || 263 "file:" === location.protocol 264 ? e.history && "pushState" in e.history 265 : !1; 266 }), 267 Modernizr.addTest( 268 "ie8compat", 269 !e.addEventListener && !!t.documentMode && 7 === t.documentMode 270 ), 271 Modernizr.addTest( 272 "svg", 273 !!t.createElementNS && 274 !!t.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGRect 275 ), 276 Modernizr.addTest("focuswithin", function () { 277 try { 278 t.querySelector(":focus-within"); 279 } catch (e) { 280 return !1; 281 } 282 return !0; 283 }), 284 Modernizr.addTest("picture", "HTMLPictureElement" in e), 285 Modernizr.addTest("localstorage", function () { 286 var e = "modernizr";
287 try { 288 return localStorage.setItem(e, e), localStorage.removeItem(e), !0; 289 } catch (t) { 290 return !1; 291 } 292 }), 293 Modernizr.addTest("sessionstorage", function () { 294 var e = "modernizr"; 295 try { 296 return sessionStorage.setItem(e, e), sessionStorage.removeItem(e), !0; 297 } catch (t) { 298 return !1; 299 } 300 }), 301 Modernizr.addTest("websqldatabase", "openDatabase" in e), 302 Modernizr.addTest("svgfilters", function () { 303 var t = !1; 304 try { 305 t = 306 "SVGFEColorMatrixElement" in e && 307 2 == SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE; 308 } catch (n) {} 309 return t; 310 }), 311 Modernizr.addTest("urlparser", function () { 312 var e; 313 try { 314 return ( 315 (e = new URL("http://modernizr.com/")), 316 "http://modernizr.com/" === e.href 317 ); 318 } catch (t) { 319 return !1; 320 } 321 }); 322 var C = t.documentElement; 323 Modernizr.addTest( 324 "contextmenu", 325 "contextMenu" in C && "HTMLMenuItemElement" in e 326 ), 327 Modernizr.addTest("willchange", "willChange" in C.style); 328 var k = "svg" === C.nodeName.toLowerCase(); 329 k || 330 !(function (e, t) { 331 function n(e, t) { 332 var n = e.createElement("p"), 333 r = e.getElementsByTagName("head")[0] || e.documentElement; 334 return ( 335 (n.innerHTML = "x<style>" + t + "</style>"), 336 r.insertBefore(n.lastChild, r.firstChild) 337 ); 338 } 339 function r() { 340 var e = E.elements; 341 return "string" == typeof e ? e.split(" ") : e; 342 } 343 function o(e, t) { 344 var n = E.elements; 345 "string" != typeof n && (n = n.join(" ")), 346 "string" != typeof e && (e = e.join(" ")), 347 (E.elements = n + " " + e), 348 d(t); 349 } 350 function i(e) { 351 var t = S[e[x]]; 352 return t || ((t = {}), w++, (e[x] = w), (S[w] = t)), t; 353 } 354 function a(e, n, r) { 355 if ((n || (n = t), v)) return n.createElement(e); 356 r || (r = i(n)); 357 var o; 358 return ( 359 (o = r.cache[e] 360 ? r.cache[e].cloneNode() 361 : T.test(e) 362 ? (r.cache[e] = r.createElem(e)).cloneNode() 363 : r.createElem(e)), 364 !o.canHaveChildren || b.test(e) || o.tagUrn 365 ? o 366 : r.frag.appendChild(o) 367 ); 368 } 369 function s(e, n) { 370 if ((e || (e = t), v)) return e.createDocumentFragment(); 371 n = n || i(e); 372 for ( 373 var o = n.frag.cloneNode(), a = 0, s = r(), c = s.length; 374 c > a; 375 a++ 376 ) 377 o.createElement(s[a]); 378 return o; 379 } 380 function c(e, t) { 381 t.cache || 382 ((t.cache = {}), 383 (t.createElem = e.createElement), 384 (t.createFrag = e.createDocumentFragment), 385 (t.frag = t.createFrag())), 386 (e.createElement = function (n) { 387 return E.shivMethods ? a(n, e, t) : t.createElem(n); 388 }), 389 (e.createDocumentFragment = Function( 390 "h,f", 391 "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + 392 r() 393 .join() 394 .replace(/[\w\-:]+/g, function (e) { 395 return ( 396 t.createElem(e), t.frag.createElement(e), 'c("' + e + '")' 397 ); 398 }) + 399 ");return n}" 400 )(E, t.frag)); 401 } 402 function d(e) { 403 e || (e = t); 404 var r = i(e); 405 return ( 406 !E.shivCSS || 407 h || 408 r.hasCSS || 409 (r.hasCSS = !!n( 410 e, 411 "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}" 412 )), 413 v || c(e, r), 414 e 415 ); 416 } 417 function l(e) { 418 for ( 419 var t, 420 n = e.getElementsByTagName("*"), 421 o = n.length, 422 i = RegExp("^(?:" + r().join("|") + ")$", "i"), 423 a = []; 424 o--; 425 426 )
427 (t = n[o]), i.test(t.nodeName) && a.push(t.applyElement(u(t))); 428 return a; 429 } 430 function u(e) { 431 for ( 432 var t, 433 n = e.attributes, 434 r = n.length, 435 o = e.ownerDocument.createElement(k + ":" + e.nodeName); 436 r--; 437 438 ) 439 (t = n[r]), t.specified && o.setAttribute(t.nodeName, t.nodeValue); 440 return (o.style.cssText = e.style.cssText), o; 441 } 442 function f(e) { 443 for ( 444 var t, 445 n = e.split("{"), 446 o = n.length, 447 i = RegExp( 448 "(^|[\\s,>+~])(" + r().join("|") + ")(?=[[\\s,>+~#.:]|$)", 449 "gi" 450 ), 451 a = "$1" + k + "\\:$2"; 452 o--; 453 454 ) 455 (t = n[o] = n[o].split("}")), 456 (t[t.length - 1] = t[t.length - 1].replace(i, a)), 457 (n[o] = t.join("}")); 458 return n.join("{"); 459 } 460 function p(e) { 461 for (var t = e.length; t--; ) e[t].removeNode(); 462 } 463 function m(e) { 464 function t() { 465 clearTimeout(a._removeSheetTimer), r && r.removeNode(!0), (r = null); 466 } 467 var r, 468 o, 469 a = i(e), 470 s = e.namespaces, 471 c = e.parentWindow; 472 return !z || e.printShived 473 ? e 474 : ("undefined" == typeof s[k] && s.add(k), 475 c.attachEvent("onbeforeprint", function () { 476 t(); 477 for ( 478 var i, 479 a, 480 s, 481 c = e.styleSheets, 482 d = [], 483 u = c.length, 484 p = Array(u); 485 u--; 486 487 ) 488 p[u] = c[u]; 489 for (; (s = p.pop()); ) 490 if (!s.disabled && C.test(s.media)) { 491 try { 492 (i = s.imports), (a = i.length); 493 } catch (m) { 494 a = 0; 495 } 496 for (u = 0; a > u; u++) p.push(i[u]); 497 try { 498 d.push(s.cssText); 499 } catch (m) {} 500 } 501 (d = f(d.reverse().join(""))), (o = l(e)), (r = n(e, d)); 502 }), 503 c.attachEvent("onafterprint", function () { 504 p(o), 505 clearTimeout(a._removeSheetTimer), 506 (a._removeSheetTimer = setTimeout(t, 500)); 507 }), 508 (e.printShived = !0), 509 e); 510 } 511 var h, 512 v, 513 g = "3.7.3", 514 y = e.html5 || {}, 515 b = 516 /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, 517 T = 518 /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, 519 x = "_html5shiv", 520 w = 0, 521 S = {}; 522 !(function () { 523 try { 524 var e = t.createElement("a"); 525 (e.innerHTML = "<xyz></xyz>"), 526 (h = "hidden" in e), 527 (v = 528 1 == e.childNodes.length || 529 (function () { 530 t.createElement("a"); 531 var e = t.createDocumentFragment(); 532 return ( 533 "undefined" == typeof e.cloneNode || 534 "undefined" == typeof e.createDocumentFragment || 535 "undefined" == typeof e.createElement 536 ); 537 })()); 538 } catch (n) { 539 (h = !0), (v = !0); 540 } 541 })(); 542 var E = { 543 elements: 544 y.elements || 545 "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video", 546 version: g, 547 shivCSS: y.shivCSS !== !1, 548 supportsUnknownElements: v, 549 shivMethods: y.shivMethods !== !1, 550 type: "default", 551 shivDocument: d, 552 createElement: a, 553 createDocumentFragment: s, 554 addElements: o, 555 }; 556 (e.html5 = E), d(t); 557 var C = /^$|\b(?:all|print)\b/, 558 k = "html5shiv", 559 z = 560 !v && 561 (function () { 562 var n = t.documentElement; 563 return !( 564 "undefined" == typeof t.namespaces || 565 "undefined" == typeof t.parentWindow || 566 "undefined" == typeof n.applyElement || 567 "undefined" == typeof n.removeNode || 568 "undefined" == typeof e.attachEvent 569 ); 570 })(); 571 (E.type += " print"), 572 (E.shivPrint = m), 573 m(t), 574 "object" == typeof module && module.exports && (module.exports = E); 575 })("undefined" != typeof e ? e : this, t), 576 Modernizr.addTest("contenteditable", function () { 577 if ("contentEditable" in C) { 578 var e = a("div"); 579 return (e.contentEditable = !0), "true" === e.contentEditable; 580 } 581 }), 582 Modernizr.addTest("video", function () { 583 var e = a("video"), 584 t = !1;
585 try { 586 (t = !!e.canPlayType), 587 t && 588 ((t = new Boolean(t)), 589 (t.ogg = e 590 .canPlayType('video/ogg; codecs="theora"') 591 .replace(/^no$/, "")), 592 (t.h264 = e 593 .canPlayType('video/mp4; codecs="avc1.42E01E"') 594 .replace(/^no$/, "")), 595 (t.webm = e 596 .canPlayType('video/webm; codecs="vp8, vorbis"') 597 .replace(/^no$/, "")), 598 (t.vp9 = e 599 .canPlayType('video/webm; codecs="vp9"') 600 .replace(/^no$/, "")), 601 (t.hls = e 602 .canPlayType('application/x-mpegURL; codecs="avc1.42E01E"') 603 .replace(/^no$/, ""))); 604 } catch (n) {} 605 return t; 606 }), 607 Modernizr.addTest("webanimations", "animate" in a("div")), 608 Modernizr.addTest("webgl", function () { 609 var t = a("canvas"), 610 n = 611 "probablySupportsContext" in t 612 ? "probablySupportsContext" 613 : "supportsContext"; 614 return n in t 615 ? t[n]("webgl") || t[n]("experimental-webgl") 616 : "WebGLRenderingContext" in e; 617 }), 618 Modernizr.addTest("cssremunit", function () { 619 var e = a("a").style; 620 try { 621 e.fontSize = "3rem"; 622 } catch (t) {} 623 return /rem/.test(e.fontSize); 624 }), 625 Modernizr.addTest("hidden", "hidden" in a("a")), 626 Modernizr.addTest("scriptasync", "async" in a("script")), 627 Modernizr.addTest("inlinesvg", function () { 628 var e = a("div"); 629 return ( 630 (e.innerHTML = "<svg/>"), 631 "http://www.w3.org/2000/svg" == 632 ("undefined" != typeof SVGRect && 633 e.firstChild && 634 e.firstChild.namespaceURI) 635 ); 636 }), 637 Modernizr.addTest("canvas", function () { 638 var e = a("canvas"); 639 return !(!e.getContext || !e.getContext("2d")); 640 }), 641 Modernizr.addTest("canvastext", function () { 642 return Modernizr.canvas === !1 643 ? !1 644 : "function" == typeof a("canvas").getContext("2d").fillText; 645 }), 646 Modernizr.addTest("emoji", function () { 647 if (!Modernizr.canvastext) return !1; 648 var t = e.devicePixelRatio || 1, 649 n = 12 * t, 650 r = a("canvas"), 651 o = r.getContext("2d"); 652 return ( 653 (o.fillStyle = "#f00"), 654 (o.textBaseline = "top"), 655 (o.font = "32px Arial"), 656 o.fillText("ð¨", 0, 0), 657 0 !== o.getImageData(n, n, 1, 1).data[0] 658 ); 659 }); 660 var z = (function () { 661 function e(e, t) { 662 var o; 663 return e 664 ? ((t && "string" != typeof t) || (t = a(t || "div")), 665 (e = "on" + e), 666 (o = e in t), 667 !o && 668 r && 669 (t.setAttribute || (t = a("div")), 670 t.setAttribute(e, ""), 671 (o = "function" == typeof t[e]), 672 t[e] !== n && (t[e] = n), 673 t.removeAttribute(e)), 674 o) 675 : !1; 676 } 677 var r = !("onblur" in t.documentElement); 678 return e; 679 })(); 680 (E.hasEvent = z), 681 Modernizr.addTest("hashchange", function () { 682 return z("hashchange", e) === !1 683 ? !1 684 : t.documentMode === n || t.documentMode > 7; 685 }); 686 var _ = E._config.usePrefixes 687 ? " -webkit- -moz- -o- -ms- ".split(" ") 688 : ["", ""]; 689 (E._prefixes = _), 690 Modernizr.addTest("csscalc", function () { 691 var e = "width:", 692 t = "calc(10px);", 693 n = a("a"); 694 return (n.style.cssText = e + _.join(t + e)), !!n.style.length; 695 }), 696 Modernizr.addTest("cubicbezierrange", function () { 697 var e = a("a"); 698 return ( 699 (e.style.cssText = _.join( 700 "transition-timing-function:cubic-bezier(1,0,0,1.1); " 701 )), 702 !!e.style.length 703 ); 704 }), 705 Modernizr.addTest("opacity", function () { 706 var e = a("a").style; 707 return (e.cssText = _.join("opacity:.55;")), /^0.55$/.test(e.opacity); 708 }); 709 var N = "CSS" in e && "supports" in e.CSS, 710 j = "supportsCSS" in e; 711 Modernizr.addTest("supports", N || j); 712 var M = {}.toString; 713 Modernizr.addTest("svgclippaths", function () { 714 return ( 715 !!t.createElementNS && 716 /SVGClipPath/.test( 717 M.call(t.createElementNS("http://www.w3.org/2000/svg", "clipPath")) 718 ) 719 ); 720 }), 721 Modernizr.addTest("smil", function () { 722 return ( 723 !!t.createElementNS && 724 /SVGAnimate/.test( 725 M.call(t.createElementNS("http://www.w3.org/2000/svg", "animate")) 726 ) 727 ); 728 }); 729 var P; 730 !(function () { 731 var e = {}.hasOwnProperty; 732 P = 733 r(e, "undefined") || r(e.call, "undefined") 734 ? function (e, t) { 735 return t in e && r(e.constructor.prototype[t], "undefined"); 736 } 737 : function (t, n) { 738 return e.call(t, n); 739 }; 740 })(), 741 (E._l = {}), 742 (E.on = function (e, t) { 743 this._l[e] || (this._l[e] = []), 744 this._l[e].push(t), 745 Modernizr.hasOwnProperty(e) && 746 setTimeout(function () { 747 Modernizr._trigger(e, Modernizr[e]); 748 }, 0); 749 }), 750 (E._trigger = function (e, t) { 751 if (this._l[e]) { 752 var n = this._l[e]; 753 setTimeout(function () { 754 var e, r; 755 for (e = 0; e < n.length; e++) (r = n[e])(t); 756 }, 0), 757 delete this._l[e]; 758 } 759 }), 760 Modernizr._q.push(function () { 761 E.addTest = l; 762 }), 763 Modernizr.addAsyncTest(function () { 764 var n, 765 r, 766 o = function (e) { 767 C.contains(e) || C.appendChild(e); 768 }, 769 i = function (e) { 770 e.fake && e.parentNode && e.parentNode.removeChild(e); 771 }, 772 c = function (e, t) { 773 var n = !!e; 774 if ( 775 (n && ((n = new Boolean(n)), (n.blocked = "blocked" === e)), 776 l("flash", function () { 777 return n; 778 }), 779 t && m.contains(t)) 780 ) { 781 for (; t.parentNode !== m; ) t = t.parentNode; 782 m.removeChild(t); 783 } 784 };
785 try { 786 r = 787 "ActiveXObject" in e && 788 "Pan" in new e.ActiveXObject("ShockwaveFlash.ShockwaveFlash"); 789 } catch (d) {} 790 if ( 791 ((n = !( 792 ("plugins" in navigator && "Shockwave Flash" in navigator.plugins) || 793 r 794 )), 795 n || k) 796 ) 797 c(!1); 798 else { 799 var u, 800 f, 801 p = a("embed"), 802 m = s(); 803 if ( 804 ((p.type = "application/x-shockwave-flash"), 805 m.appendChild(p), 806 !("Pan" in p || r)) 807 ) 808 return o(m), c("blocked", p), void i(m); 809 (u = function () { 810 return ( 811 o(m), 812 C.contains(m) 813 ? (C.contains(p) 814 ? ((f = p.style.cssText), 815 "" !== f ? c("blocked", p) : c(!0, p)) 816 : c("blocked"), 817 void i(m)) 818 : ((m = t.body || m), 819 (p = a("embed")), 820 (p.type = "application/x-shockwave-flash"), 821 m.appendChild(p), 822 setTimeout(u, 1e3)) 823 ); 824 }), 825 setTimeout(u, 10); 826 } 827 }), 828 l("htmlimports", "import" in a("link")); 829 var A = (E.testStyles = f); 830 Modernizr.addTest("hiddenscroll", function () { 831 return A( 832 "#modernizr {width:100px;height:100px;overflow:scroll}", 833 function (e) { 834 return e.offsetWidth === e.clientWidth; 835 } 836 ); 837 }), 838 Modernizr.addTest("touchevents", function () { 839 var n; 840 if ( 841 "ontouchstart" in e || 842 (e.DocumentTouch && t instanceof DocumentTouch) 843 ) 844 n = !0; 845 else { 846 var r = [ 847 "@media (", 848 _.join("touch-enabled),("), 849 "heartz", 850 ")", 851 "{#modernizr{top:9px;position:absolute}}", 852 ].join(""); 853 A(r, function (e) { 854 n = 9 === e.offsetTop; 855 }); 856 } 857 return n; 858 }), 859 Modernizr.addTest("checked", function () { 860 return A( 861 "#modernizr {position:absolute} #modernizr input {margin-left:10px} #modernizr :checked {margin-left:20px;display:block}", 862 function (e) { 863 var t = a("input"); 864 return ( 865 t.setAttribute("type", "checkbox"), 866 t.setAttribute("checked", "checked"), 867 e.appendChild(t), 868 20 === t.offsetLeft 869 ); 870 } 871 ); 872 }); 873 var R = (function () { 874 var e = navigator.userAgent, 875 t = e.match(/w(eb)?osbrowser/gi), 876 n = 877 e.match(/windows phone/gi) && 878 e.match(/iemobile\/([0-9])+/gi) && 879 parseFloat(RegExp.$1) >= 9; 880 return t || n; 881 })(); 882 R 883 ? Modernizr.addTest("fontface", !1) 884 : A('@font-face {font-family:"font";src:url("https://")}', function (e, n) { 885 var r = t.getElementById("smodernizr"), 886 o = r.sheet || r.styleSheet, 887 i = o 888 ? o.cssRules && o.cssRules[0] 889 ? o.cssRules[0].cssText 890 : o.cssText || "" 891 : "", 892 a = /src/i.test(i) && 0 === i.indexOf(n.split(" ")[0]); 893 Modernizr.addTest("fontface", a); 894 }), 895 A( 896 '#modernizr{font:0/0 a}#modernizr:after{content:":)";visibility:hidden;font:7px/1 a}', 897 function (e) { 898 Modernizr.addTest("generatedcontent", e.offsetHeight >= 6); 899 } 900 ), 901 A( 902 "#modernizr{overflow: scroll; width: 40px; height: 40px; }#" + 903 _.join("scrollbar{width:10px} #modernizr::") 904 .split("#") 905 .slice(1) 906 .join("#") + 907 "scrollbar{width:10px}", 908 function (e) { 909 Modernizr.addTest( 910 "cssscrollbar", 911 "scrollWidth" in e && 30 == e.scrollWidth 912 ); 913 } 914 ), 915 A("#modernizr { width: 50vw; }", function (t) { 916 var n = parseInt(e.innerWidth / 2, 10), 917 r = parseInt(c(t, null, "width"), 10); 918 Modernizr.addTest("cssvwunit", d(r, n)); 919 }), 920 Modernizr.addTest("formvalidation", function () { 921 var t = a("form"); 922 if (!("checkValidity" in t && "addEventListener" in t)) return !1; 923 if ("reportValidity" in t) return !0; 924 var n, 925 r = !1; 926 return ( 927 (Modernizr.formvalidationapi = !0), 928 t.addEventListener( 929 "submit", 930 function (t) { 931 (!e.opera || e.operamini) && t.preventDefault(), 932 t.stopPropagation(); 933 }, 934 !1 935 ), 936 (t.innerHTML = 937 '<input name="modTest" required="required" /><button></button>'), 938 A("#modernizr form{position:absolute;top:-99999em}", function (e) { 939 e.appendChild(t), 940 (n = t.getElementsByTagName("input")[0]), 941 n.addEventListener( 942 "invalid", 943 function (e) { 944 (r = !0), e.preventDefault(), e.stopPropagation(); 945 }, 946 !1 947 ), 948 (Modernizr.formvalidationmessage = !!n.validationMessage),
949 t.getElementsByTagName("button")[0].click(); 950 }), 951 r 952 ); 953 }), 954 A("#modernizr { height: 50vh; }", function (t) { 955 var n = parseInt(e.innerHeight / 2, 10), 956 r = parseInt(c(t, null, "height"), 10); 957 Modernizr.addTest("cssvhunit", d(r, n)); 958 }); 959 var L = (function () { 960 var t = e.matchMedia || e.msMatchMedia; 961 return t 962 ? function (e) { 963 var n = t(e); 964 return (n && n.matches) || !1; 965 } 966 : function (t) { 967 var n = !1; 968 return ( 969 f( 970 "@media " + t + " { #modernizr { position: absolute; } }", 971 function (t) { 972 n = 973 "absolute" == 974 (e.getComputedStyle 975 ? e.getComputedStyle(t, null) 976 : t.currentStyle 977 ).position; 978 } 979 ), 980 n 981 ); 982 }; 983 })(); 984 (E.mq = L), Modernizr.addTest("mediaqueries", L("only all")); 985 var F = "Moz O ms Webkit", 986 B = E._config.usePrefixes ? F.split(" ") : []; 987 E._cssomPrefixes = B; 988 var O = function (t) { 989 var r, 990 o = _.length, 991 i = e.CSSRule; 992 if ("undefined" == typeof i) return n; 993 if (!t) return !1; 994 if ( 995 ((t = t.replace(/^@/, "")), 996 (r = t.replace(/-/g, "_").toUpperCase() + "_RULE"), 997 r in i) 998 ) 999 return "@" + t; 1000 for (var a = 0; o > a; a++) { 1001 var s = _[a], 1002 c = s.toUpperCase() + "_" + r; 1003 if (c in i) return "@-" + s.toLowerCase() + "-" + t; 1004 } 1005 return !1; 1006 }; 1007 E.atRule = O; 1008 var D = E._config.usePrefixes ? F.toLowerCase().split(" ") : []; 1009 E._domPrefixes = D; 1010 var I = { elem: a("modernizr") }; 1011 Modernizr._q.push(function () { 1012 delete I.elem; 1013 }); 1014 var $ = { style: I.elem.style }; 1015 Modernizr._q.unshift(function () { 1016 delete $.style; 1017 }), 1018 (E.testAllProps = b); 1019 var V = (E.prefixed = function (e, t, n) { 1020 return 0 === e.indexOf("@") 1021 ? O(e) 1022 : (-1 != e.indexOf("-") && (e = u(e)), t ? b(e, t, n) : b(e, "pfx")); 1023 }); 1024 Modernizr.addTest( 1025 "fullscreen", 1026 !(!V("exitFullscreen", t, !1) && !V("cancelFullScreen", t, !1)) 1027 ), 1028 Modernizr.addAsyncTest(function () { 1029 var t; 1030 try { 1031 t = V("indexedDB", e); 1032 } catch (n) {} 1033 if (t) { 1034 var r = "modernizr-" + Math.random(), 1035 o = t.open(r); 1036 (o.onerror = function () { 1037 o.error && "InvalidStateError" === o.error.name 1038 ? l("indexeddb", !1) 1039 : (l("indexeddb", !0), T(t, r)); 1040 }), 1041 (o.onsuccess = function () { 1042 l("indexeddb", !0), T(t, r); 1043 }); 1044 } else l("indexeddb", !1); 1045 }), 1046 Modernizr.addTest("backgroundblendmode", V("backgroundBlendMode", "text")), 1047 Modernizr.addTest("objectfit", !!V("objectFit"), { 1048 aliases: ["object-fit"],
1049 }), 1050 (E.testAllProps = x), 1051 Modernizr.addTest("cssanimations", x("animationName", "a", !0)), 1052 Modernizr.addTest("backgroundcliptext", function () { 1053 return x("backgroundClip", "text"); 1054 }), 1055 Modernizr.addTest("backgroundsize", x("backgroundSize", "100%", !0)), 1056 Modernizr.addTest("bgsizecover", x("backgroundSize", "cover")), 1057 Modernizr.addTest( 1058 "boxsizing", 1059 x("boxSizing", "border-box", !0) && 1060 (t.documentMode === n || t.documentMode > 7) 1061 ), 1062 (function () { 1063 Modernizr.addTest("csscolumns", function () { 1064 var e = !1, 1065 t = x("columnCount"); 1066 try { 1067 (e = !!t), e && (e = new Boolean(e)); 1068 } catch (n) {} 1069 return e; 1070 }); 1071 for ( 1072 var e, 1073 t, 1074 n = [ 1075 "Width", 1076 "Span", 1077 "Fill", 1078 "Gap", 1079 "Rule", 1080 "RuleColor", 1081 "RuleStyle", 1082 "RuleWidth", 1083 "BreakBefore", 1084 "BreakAfter", 1085 "BreakInside", 1086 ], 1087 r = 0; 1088 r < n.length; 1089 r++ 1090 ) 1091 (e = n[r].toLowerCase()), 1092 (t = x("column" + n[r])), 1093 ("breakbefore" === e || "breakafter" === e || "breakinside" == e) && 1094 (t = t || x(n[r])), 1095 Modernizr.addTest("csscolumns." + e, t); 1096 })(), 1097 Modernizr.addTest("cssgridlegacy", x("grid-columns", "10px", !0)), 1098 Modernizr.addTest("cssgrid", x("grid-template-rows", "none", !0)), 1099 Modernizr.addTest("ellipsis", x("textOverflow", "ellipsis")), 1100 Modernizr.addTest("cssfilters", function () { 1101 if (Modernizr.supports) return x("filter", "blur(2px)"); 1102 var e = a("a"); 1103 return ( 1104 (e.style.cssText = _.join("filter:blur(2px); ")), 1105 !!e.style.length && (t.documentMode === n || t.documentMode > 9) 1106 ); 1107 }), 1108 Modernizr.addTest("flexbox", x("flexBasis", "1px", !0)), 1109 Modernizr.addTest("flexboxlegacy", x("boxDirection", "reverse", !0)), 1110 Modernizr.addTest("cssmask", x("maskRepeat", "repeat-x", !0)), 1111 Modernizr.addTest("csstransforms", function () { 1112 return ( 1113 -1 === navigator.userAgent.indexOf("Android 2.") && 1114 x("transform", "scale(1)", !0) 1115 ); 1116 }), 1117 Modernizr.addTest("csstransitions", x("transition", "all", !0)), 1118 o(), 1119 i(w), 1120 delete E.addTest, 1121 delete E.addAsyncTest; 1122 for (var q = 0; q < Modernizr._q.length; q++) Modernizr._q[q](); 1123 e.Modernizr = Modernizr; 1124})(window, document);
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.