Created
December 27, 2024 15:58
-
-
Save felixguerrero12/f827f512667dec30004fbcb12352839e to your computer and use it in GitHub Desktop.
browser-signature-identifier.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function param(t) { | |
| var e, n = ""; | |
| for (e in t) t.hasOwnProperty(e) && (0 < n.length && (n += "&"), n += encodeURI(e + "=" + t[e])); | |
| return n; | |
| } | |
| ((t, e) => { | |
| "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.ClipboardJS = e() : t.ClipboardJS = e(); | |
| })(this, function () { | |
| return n = [function (t, e, n) { | |
| var o; | |
| n = [t, n(7)], undefined !== (e = "function" == typeof (o = function (t, e) { | |
| "use strict"; | |
| function n(t, e) { | |
| if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); | |
| } | |
| var o = function (t) { | |
| return t && t.__esModule ? t : {default: t}; | |
| }(e), r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { | |
| return typeof t; | |
| } : function (t) { | |
| return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; | |
| }, i = function () { | |
| function o(t, e) { | |
| for (var n = 0; n < e.length; n++) { | |
| var o = e[n]; | |
| o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(t, o.key, o); | |
| } | |
| } | |
| return function (t, e, n) { | |
| return e && o(t.prototype, e), n && o(t, n), t; | |
| }; | |
| }(), a = function () { | |
| function e(t) { | |
| n(this, e), this.resolveOptions(t), this.initSelection(); | |
| } | |
| return i(e, [{key: "resolveOptions", value: function () { | |
| var t = arguments.length > 0 && undefined !== arguments[0] ? arguments[0] : {}; | |
| this.action = t.action, this.container = t.container, this.emitter = t.emitter, this.target = t.target, this.text = t.text, this.trigger = t.trigger, this.selectedText = ""; | |
| }}, {key: "initSelection", value: function () { | |
| this.text ? this.selectFake() : this.target && this.selectTarget(); | |
| }}, {key: "selectFake", value: function () { | |
| var t = this, e = "rtl" == document.documentElement.getAttribute("dir"); | |
| this.removeFake(), this.fakeHandlerCallback = function () { | |
| return t.removeFake(); | |
| }, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || true, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[e ? "right" : "left"] = "-9999px"; | |
| var n = window.pageYOffset || document.documentElement.scrollTop; | |
| this.fakeElem.style.top = n + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, o.default)(this.fakeElem), this.copyText(); | |
| }}, {key: "removeFake", value: function () { | |
| this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null); | |
| }}, {key: "selectTarget", value: function () { | |
| this.selectedText = (0, o.default)(this.target), this.copyText(); | |
| }}, {key: "copyText", value: function () { | |
| var e = undefined; | |
| try { | |
| e = document.execCommand(this.action); | |
| } catch (t) { | |
| e = false; | |
| } | |
| this.handleResult(e); | |
| }}, {key: "handleResult", value: function (t) { | |
| this.emitter.emit(t ? "success" : "error", {action: this.action, text: this.selectedText, trigger: this.trigger, clearSelection: this.clearSelection.bind(this)}); | |
| }}, {key: "clearSelection", value: function () { | |
| this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges(); | |
| }}, {key: "destroy", value: function () { | |
| this.removeFake(); | |
| }}, {key: "action", set: function () { | |
| var t = arguments.length > 0 && undefined !== arguments[0] ? arguments[0] : "copy"; | |
| if (this._action = t, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"'); | |
| }, get: function () { | |
| return this._action; | |
| }}, {key: "target", set: function (t) { | |
| if (undefined !== t) { | |
| if (!t || "object" !== (undefined === t ? "undefined" : r(t)) || 1 !== t.nodeType) throw new Error('Invalid "target" value, use a valid Element'); | |
| if ("copy" === this.action && t.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); | |
| if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); | |
| this._target = t; | |
| } | |
| }, get: function () { | |
| return this._target; | |
| }}]), e; | |
| }(); | |
| t.exports = a; | |
| }) ? o.apply(e, n) : o) && (t.exports = e); | |
| }, function (t, e, n) { | |
| var l = n(6), s = n(5); | |
| t.exports = function (t, e, n) { | |
| if (!t && !e && !n) throw new Error("Missing required arguments"); | |
| if (!l.string(e)) throw new TypeError("Second argument must be a String"); | |
| if (!l.fn(n)) throw new TypeError("Third argument must be a Function"); | |
| if (l.node(t)) return r = e, i = n, (o = t).addEventListener(r, i), {destroy: function () { | |
| o.removeEventListener(r, i); | |
| }}; | |
| var o, r, i, a, c, u; | |
| if (l.nodeList(t)) return a = t, c = e, u = n, Array.prototype.forEach.call(a, function (t) { | |
| t.addEventListener(c, u); | |
| }), {destroy: function () { | |
| Array.prototype.forEach.call(a, function (t) { | |
| t.removeEventListener(c, u); | |
| }); | |
| }}; | |
| if (l.string(t)) return s(document.body, t, e, n); | |
| throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); | |
| }; | |
| }, function (t, e) { | |
| function n() {} | |
| n.prototype = {on: function (t, e, n) { | |
| var o = this.e || (this.e = {}); | |
| return (o[t] || (o[t] = [])).push({fn: e, ctx: n}), this; | |
| }, once: function (t, e, n) { | |
| function o() { | |
| r.off(t, o), e.apply(n, arguments); | |
| } | |
| var r = this; | |
| return o._ = e, this.on(t, o, n); | |
| }, emit: function (t) { | |
| for (var e = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[t] || []).slice(), o = 0, r = n.length; o < r; o++) n[o].fn.apply(n[o].ctx, e); | |
| return this; | |
| }, off: function (t, e) { | |
| var n = this.e || (this.e = {}), o = n[t], r = []; | |
| if (o && e) for (var i = 0, a = o.length; i < a; i++) o[i].fn !== e && o[i].fn._ !== e && r.push(o[i]); | |
| return r.length ? n[t] = r : delete n[t], this; | |
| }}, t.exports = n; | |
| }, function (t, e, n) { | |
| var o; | |
| n = [t, n(0), n(2), n(1)], undefined !== (e = "function" == typeof (o = function (t, e, n, o) { | |
| "use strict"; | |
| function r(t) { | |
| return t && t.__esModule ? t : {default: t}; | |
| } | |
| function i(t, e) { | |
| if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); | |
| } | |
| function a(t, e) { | |
| if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); | |
| return !e || "object" != typeof e && "function" != typeof e ? t : e; | |
| } | |
| function c(t, e) { | |
| if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e); | |
| t.prototype = Object.create(e && e.prototype, {constructor: {value: t, enumerable: false, writable: true, configurable: true}}), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e); | |
| } | |
| function u(t, e) { | |
| var n = "data-clipboard-" + t; | |
| if (e.hasAttribute(n)) return e.getAttribute(n); | |
| } | |
| var l = r(e), s = r(n), f = r(o), d = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { | |
| return typeof t; | |
| } : function (t) { | |
| return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; | |
| }, h = function () { | |
| function o(t, e) { | |
| for (var n = 0; n < e.length; n++) { | |
| var o = e[n]; | |
| o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(t, o.key, o); | |
| } | |
| } | |
| return function (t, e, n) { | |
| return e && o(t.prototype, e), n && o(t, n), t; | |
| }; | |
| }(), p = function (t) { | |
| function o(t, e) { | |
| i(this, o); | |
| var n = a(this, (o.__proto__ || Object.getPrototypeOf(o)).call(this)); | |
| return n.resolveOptions(e), n.listenClick(t), n; | |
| } | |
| return c(o, t), h(o, [{key: "resolveOptions", value: function () { | |
| var t = arguments.length > 0 && undefined !== arguments[0] ? arguments[0] : {}; | |
| this.action = "function" == typeof t.action ? t.action : this.defaultAction, this.target = "function" == typeof t.target ? t.target : this.defaultTarget, this.text = "function" == typeof t.text ? t.text : this.defaultText, this.container = "object" === d(t.container) ? t.container : document.body; | |
| }}, {key: "listenClick", value: function (t) { | |
| var e = this; | |
| this.listener = (0, f.default)(t, "click", function (t) { | |
| return e.onClick(t); | |
| }); | |
| }}, {key: "onClick", value: function (t) { | |
| var e = t.delegateTarget || t.currentTarget; | |
| this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new l.default({action: this.action(e), target: this.target(e), text: this.text(e), container: this.container, trigger: e, emitter: this}); | |
| }}, {key: "defaultAction", value: function (t) { | |
| return u("action", t); | |
| }}, {key: "defaultTarget", value: function (t) { | |
| var e = u("target", t); | |
| if (e) return document.querySelector(e); | |
| }}, {key: "defaultText", value: function (t) { | |
| return u("text", t); | |
| }}, {key: "destroy", value: function () { | |
| this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null); | |
| }}], [{key: "isSupported", value: function () { | |
| var t = arguments.length > 0 && undefined !== arguments[0] ? arguments[0] : ["copy", "cut"], e = "string" == typeof t ? [t] : t, n = !!document.queryCommandSupported; | |
| return e.forEach(function (t) { | |
| n = n && !!document.queryCommandSupported(t); | |
| }), n; | |
| }}]), o; | |
| }(s.default); | |
| t.exports = p; | |
| }) ? o.apply(e, n) : o) && (t.exports = e); | |
| }, function (t, e) { | |
| var n; | |
| "undefined" == typeof Element || Element.prototype.matches || ((n = Element.prototype).matches = n.matchesSelector || n.mozMatchesSelector || n.msMatchesSelector || n.oMatchesSelector || n.webkitMatchesSelector), t.exports = function (t, e) { | |
| for (; t && 9 !== t.nodeType;) { | |
| if ("function" == typeof t.matches && t.matches(e)) return t; | |
| t = t.parentNode; | |
| } | |
| }; | |
| }, function (t, e, n) { | |
| function i(t, e, n, o, r) { | |
| var i = function (e, n, t, o) { | |
| return function (t) { | |
| t.delegateTarget = a(t.target, n), t.delegateTarget && o.call(e, t); | |
| }; | |
| }.apply(this, arguments); | |
| return t.addEventListener(n, i, r), {destroy: function () { | |
| t.removeEventListener(n, i, r); | |
| }}; | |
| } | |
| var a = n(4); | |
| t.exports = function (t, e, n, o, r) { | |
| return "function" == typeof t.addEventListener ? i.apply(null, arguments) : "function" == typeof n ? i.bind(null, document).apply(null, arguments) : ("string" == typeof t && (t = document.querySelectorAll(t)), Array.prototype.map.call(t, function (t) { | |
| return i(t, e, n, o, r); | |
| })); | |
| }; | |
| }, function (t, n) { | |
| n.node = function (t) { | |
| return undefined !== t && t instanceof HTMLElement && 1 === t.nodeType; | |
| }, n.nodeList = function (t) { | |
| var e = Object.prototype.toString.call(t); | |
| return undefined !== t && ("[object NodeList]" === e || "[object HTMLCollection]" === e) && "length" in t && (0 === t.length || n.node(t[0])); | |
| }, n.string = function (t) { | |
| return "string" == typeof t || t instanceof String; | |
| }, n.fn = function (t) { | |
| return "[object Function]" === Object.prototype.toString.call(t); | |
| }; | |
| }, function (t, e) { | |
| t.exports = function (t) { | |
| var e, n; | |
| return t = "SELECT" === t.nodeName ? (t.focus(), t.value) : "INPUT" === t.nodeName || "TEXTAREA" === t.nodeName ? ((e = t.hasAttribute("readonly")) || t.setAttribute("readonly", ""), t.select(), t.setSelectionRange(0, t.value.length), e || t.removeAttribute("readonly"), t.value) : (t.hasAttribute("contenteditable") && t.focus(), e = window.getSelection(), (n = document.createRange()).selectNodeContents(t), e.removeAllRanges(), e.addRange(n), e.toString()); | |
| }; | |
| }], r = {}, o.m = n, o.c = r, o.i = function (t) { | |
| return t; | |
| }, o.d = function (t, e, n) { | |
| o.o(t, e) || Object.defineProperty(t, e, {configurable: false, enumerable: true, get: n}); | |
| }, o.n = function (t) { | |
| var e = t && t.__esModule ? function () { | |
| return t.default; | |
| } : function () { | |
| return t; | |
| }; | |
| return o.d(e, "a", e), e; | |
| }, o.o = function (t, e) { | |
| return Object.prototype.hasOwnProperty.call(t, e); | |
| }, o.p = "", o(o.s = 3); | |
| function o(t) { | |
| var e; | |
| return (r[t] || (e = r[t] = {i: t, l: false, exports: {}}, n[t].call(e.exports, e, e.exports, o), e.l = true, e)).exports; | |
| } | |
| var n, r; | |
| }); | |
| for (var TRANSLATION_STRING in TRANSLATION_STRINGS = {detect_looks_like: "Your web browser looks like:", detect_looks_like_announcing: "But it's announcing that it is:", detect_yes: "Yes", detect_no: "No", detect_javascript_is_enabled: "JavaScript is enabled", detect_cookies_are_enabled: "Cookies are enabled", detect_cookies_not_enabled: "Cookies are not enabled", detect_third_party_cookies_are_enabled: "Third-Party Cookies are enabled", detect_third_party_cookies_not_enabled: "Third-Party Cookies are not enabled", detect_could_not_be_detected_javascript_disabled: "Could not be detected because Javascript is disabled", detection_blocked_by_browser: "Detection blocked by your web browser", detect_try_reloading: "Error. Try reloading.", please_wait: "Please wait...", detect_up_to_date: "Up to date", detect_out_of_date: "Out of date", detect_click_to_update: "Click to update", detect_not_installed_or_disabled: "Not installed, or disabled", detect_your_local_ip_manually: "Detect your local IP manually", detect_gmt_offset: "Browser GMT Offset", detect_pixel_ratio: "Device Pixel Ratio", detect_platform: "Navigator Platform", detect_oscpu: "OS / CPU", detect_vendor: "Vendor", detect_hardware_concurrency: "No. of logical CPU cores", detect_ram_gb: "RAM", detect_max_touch_points: "Maximum Touch Points", detect_webgl_vendor: "WebGL Vendor", detect_webgl_renderer: "WebGL Renderer", detect_ecma_version: "ECMA Version", detect_addon_adblocker: "Ad blocker", detect_pixels: "Pixels", detect_bit: "bit"}) TRANSLATION_STRING in window == false && (window[TRANSLATION_STRING] = TRANSLATION_STRINGS[TRANSLATION_STRING]); | |
| NAVIGATOR_PLATFORM_MAP = {android: "Android", arm: "ARM", debian: "Linux (Debian)", "freebsd-amd64": "FreeBSD (AMD64)", "general mobile device": "General Mobile Device", haiku: "Haiku", "hp-ux": "Hewlett Packard UNIX", ipad: "Apple iPad", iphone: "Apple iPhone", "ipod-touch": "Apple iPod Touch", ios: "Apple iOS", "linux aarch64": "Linux (AArch64)", "linux armv7l": "Linux (armv7l)", "linux armv8l": "Linux (armv8l)", "linux mips": "Linux (MIPS)", "linux i686": "Linux (i686)", "linux x86_64": "Linux (x86_64)", linux: "Linux", macintel: "Intel based Mac", "mac-os": "macOS", macppc: "PPC based Mac", mac68k: "Motorola 68K based Mac", nintendo: "Nintendo", "new-nintendo-3ds": "Nintendo (3DS)", "nintendo-switch": "Nintendo Switch", "nintendo-wiiu": "Nintendo WiiU", "openbsd-amd64": "OpenBSD (AMD64)", orbisos: "Orbis OS", "playstation 4": "PlayStation 4", "playstation vita": "PlayStation Vita", sunos: "SunOS", ubuntu: "Linux (Ubuntu)", unknown: "Unknown platform", win16: "Windows (16-Bit)", win32: "Windows (32-Bit)", win64: "Windows (64-Bit)", windows: "Windows", x11: "System running X11"}; | |
| var WIMB = WIMB || {version: "1.9", init: function () { | |
| window.WIMB.data || (window.WIMB.data = {}); | |
| }, meta: {meta_string: function () { | |
| return "href=" + encodeURIComponent(window.location.href) + "&src=wimb_library&wimb_version=" + WIMB.version + "&js_src_url=" + encodeURIComponent(window.WIMB.meta.js_src_url); | |
| }}, detect: {javascript: {enabled: function () { | |
| return true; | |
| }}, cookies: {enabled: function () { | |
| return !!navigator.cookieEnabled; | |
| }}, cookies_third_party: {enabled: function () { | |
| return "enabled" == window.WIMB.data.cookies_third_party || "disabled" != window.WIMB.data.cookies_third_party && null; | |
| }, trigger_set_cookie: function (e) { | |
| return window.WIMB.data.cookies_third_party = "unknown", cookie_set_script_element_id = "set_cookie", e = (e = undefined !== e ? e : "//webbrowsertests.com/detect/are-third-party-cookies-enabled-set-cookie") + "?" + WIMB.meta.meta_string(), (cookie_set_script_element = document.createElement("script")).setAttribute("src", e), cookie_set_script_element.setAttribute("id", cookie_set_script_element_id), cookie_set_script_element.setAttribute("async", "async"), (body_object = document.getElementsByTagName("body")[0]).appendChild(cookie_set_script_element), null !== document.getElementById(cookie_set_script_element_id); | |
| }, cookie_has_now_been_set_by_third_party: function (e) { | |
| e = (e = undefined !== e ? e : "//webbrowsertests.com/detect/are-third-party-cookies-enabled-check-cookie") + "?" + WIMB.meta.meta_string(), (cookie_check_script_element = document.createElement("script")).setAttribute("src", e), cookie_set_script_element.setAttribute("id", "check_cookie"), (body_object = document.getElementsByTagName("body")[0]).appendChild(cookie_check_script_element); | |
| }, cookies_test_finished: function (e) { | |
| window.WIMB.data.cookies_third_party = e ? "enabled" : "disabled"; | |
| }}, flash: {enabled: function () { | |
| return console.log("Flash detection has been removed in v1.8. You can monkey-patch it back in with whatismybrowser-heavy.min.js"), null; | |
| }}, java: {enabled: function () { | |
| return console.log("Java detection has been removed in v1.8. You can monkey-patch it back in with whatismybrowser-heavy.min.js"), null; | |
| }}, popup_windows: {allowed: function (e, t, n) { | |
| return e = undefined !== e ? e : "/", t = undefined !== t ? parseInt(t) : 1, n = undefined !== n ? parseInt(n) : 1, popup_test_params = "width=" + t + ",height=" + n + ",left=0,top=0,location=no,toolbar=no,menubar=no,scrollbars=no,status=no,resizable=no,directories=no", !(!(popup_test_window = window.open(e, "wimb_popup_test", popup_test_params)) || popup_test_window.closed || undefined === popup_test_window.closed || 0 == parseInt(popup_test_window.outerHeight) || 0 == parseInt(popup_test_window.outerWidth)); | |
| }}, browser_window_size: {width: function () { | |
| return undefined !== window.outerWidth ? parseInt(window.outerWidth) : 0; | |
| }, height: function () { | |
| return undefined !== window.outerHeight ? parseInt(window.outerHeight) : 0; | |
| }}, browser_viewport_size: {width: function () { | |
| var e = document.documentElement, t = document.getElementsByTagName("body")[0], e = window.innerWidth || e.clientWidth || t.clientWidth; | |
| return parseInt(e); | |
| }, height: function () { | |
| var e = document.documentElement, t = document.getElementsByTagName("body")[0], e = window.innerHeight || e.clientHeight || t.clientHeight; | |
| return parseInt(e); | |
| }}, computer_screen: {width: function () { | |
| return undefined !== window.screen.width ? parseInt(WIMB.detect.computer_screen.device_pixel_ratio() * parseInt(window.screen.width)) : 0; | |
| }, height: function () { | |
| return undefined !== window.screen.height ? parseInt(WIMB.detect.computer_screen.device_pixel_ratio() * parseInt(window.screen.height)) : 0; | |
| }, color_depth: function () { | |
| return undefined !== window.screen.colorDepth ? parseInt(window.screen.colorDepth) : 0; | |
| }, device_pixel_ratio: function () { | |
| return "undefined" !== window.devicePixelRatio ? parseInt(window.devicePixelRatio) : 1; | |
| }}, private_mode: {enabled: function () { | |
| return new Promise(function (e) { | |
| function t() { | |
| e(true); | |
| } | |
| function n() { | |
| e(false); | |
| } | |
| var o, i; | |
| function r() { | |
| var e = navigator.userAgent.match(/Version\/([0-9\._]+).*Safari/); | |
| if (e) { | |
| if (parseInt(e[1], 10) < 11) { | |
| try { | |
| localStorage.length || (localStorage.setItem("inPrivate", "0"), localStorage.removeItem("inPrivate")), n(); | |
| } catch (e) { | |
| (navigator.cookieEnabled ? t : n)(); | |
| } | |
| return true; | |
| return; | |
| } | |
| try { | |
| window.openDatabase(null, null, null, null), n(); | |
| } catch (e) { | |
| t(); | |
| } | |
| } | |
| return e; | |
| } | |
| if (((o = /(?=.*(opera|chrome)).*/i.test(navigator.userAgent) && navigator.storage && navigator.storage.estimate) && navigator.storage.estimate().then(function (e) { | |
| return (e.quota < 12e7 ? t : n)(); | |
| }), !o) && ((o = "MozAppearance" in document.documentElement.style) && (null == indexedDB ? t() : ((i = indexedDB.open("inPrivate")).onsuccess = n, i.onerror = t)), !o && !r() && ((i = !window.indexedDB && (window.PointerEvent || window.MSPointerEvent)) && t(), !i))) return n(); | |
| }); | |
| }}, local_ipv4_addresses: {retrieve: function () { | |
| if (undefined !== window.WIMB.data.ipv4_addresses) return window.WIMB.data.ipv4_addresses; | |
| }, trigger_detection: function () { | |
| window.WIMB.data.ipv4_addresses || (window.WIMB.data.ipv4_addresses = []); | |
| var e = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection; | |
| if (undefined === e) return false; | |
| if (e) { | |
| function t(e) { | |
| if (".local" === ipv4_address.slice(ipv4_address.length - 6)) return window.WIMB.data.ipv4_addresses = []; | |
| if ("" !== ipv4_address && "0.0.0.0" !== ipv4_address) { | |
| for (local_ipv4_address_key in window.WIMB.data.ipv4_addresses) if (window.WIMB.data.ipv4_addresses[local_ipv4_address_key] == ipv4_address) return; | |
| window.WIMB.data.ipv4_addresses.push(ipv4_address); | |
| } | |
| } | |
| var n = new e({iceServers: []}); | |
| try { | |
| n.createDataChannel("", {reliable: false}); | |
| } catch (e) {} | |
| function o(e) { | |
| var o = ""; | |
| return e.split("\r\n").forEach(function (e) { | |
| var t, n; | |
| ~e.indexOf("a=candidate") ? (n = (t = e.split(" "))[4], "host" === t[7] && (o = n)) : ~e.indexOf("c=") && (n = (t = e.split(" "))[2], o = n); | |
| }), o; | |
| } | |
| n.onicecandidate = function (e) { | |
| e.candidate && (ipv4_address = o("a=" + e.candidate.candidate), t(ipv4_address)); | |
| }, n.createOffer(function (e) { | |
| ipv4_address = o(e.sdp), t(ipv4_address), n.setLocalDescription(e); | |
| }, function (e) {}); | |
| } | |
| return true; | |
| }}, gmt_offset: function () { | |
| z = function (e) { | |
| return e < 10 ? "0" + e : e; | |
| }; | |
| var e = new Date, t = 0 < e.getTimezoneOffset() ? "-" : "+", e = Math.abs(e.getTimezoneOffset()); | |
| return t + z(Math.floor(e / 60)) + ":" + z(e % 60); | |
| }, navigator: {platform: {value: function () { | |
| try { | |
| navigator_platform = navigator.platform; | |
| } catch (e) { | |
| return null; | |
| } | |
| return "undefined" != typeof navigator_platform && navigator_platform ? navigator_platform : null; | |
| }, value_human_readable: function () { | |
| if ("undefined" == typeof NAVIGATOR_PLATFORM_MAP && console.log("Couldn't load Navigator Platform Map"), null !== (navigator_platform = WIMB.detect.navigator.platform.value())) { | |
| try { | |
| navigator_platform_human = NAVIGATOR_PLATFORM_MAP[navigator_platform.toLowerCase()]; | |
| } catch (e) { | |
| return null; | |
| } | |
| return "undefined" != typeof navigator_platform_human && navigator_platform_human ? navigator_platform_human : null; | |
| } | |
| }}, oscpu: {value: function () { | |
| try { | |
| navigator_oscpu = navigator.oscpu; | |
| } catch (e) { | |
| return null; | |
| } | |
| return "undefined" != typeof navigator_oscpu && navigator_oscpu ? navigator_oscpu : null; | |
| }}, vendor: {value: function () { | |
| try { | |
| navigator_vendor = navigator.vendor; | |
| } catch (e) { | |
| return null; | |
| } | |
| return "undefined" != typeof navigator_vendor && navigator_vendor ? navigator_vendor : null; | |
| }}, hardware_concurrency: {value: function () { | |
| try { | |
| hardware_concurrency = navigator.hardwareConcurrency; | |
| } catch (e) { | |
| return null; | |
| } | |
| return "undefined" != typeof hardware_concurrency && hardware_concurrency ? hardware_concurrency : null; | |
| }}, mime_types: {all: function () { | |
| if (undefined === navigator.mimeTypes) return null; | |
| if (mime_types = [], 0 < navigator.mimeTypes.length) for (var e = 0; e < navigator.mimeTypes.length; e++) { | |
| if (mime_type = {name: null, type: null, filename: null, suffixes: [], description: null}, undefined !== navigator.mimeTypes[e].enabledPlugin) { | |
| try { | |
| undefined !== navigator.mimeTypes[e].enabledPlugin.name && "" != navigator.mimeTypes[e].enabledPlugin.name && (mime_name = navigator.mimeTypes[e].enabledPlugin.name.replace(/\"/g, "'"), mime_type.name = mime_name); | |
| } catch (e) {} | |
| try { | |
| undefined !== navigator.mimeTypes[e].enabledPlugin.filename && "" != navigator.mimeTypes[e].enabledPlugin.filename && (mime_type.filename = navigator.mimeTypes[e].enabledPlugin.filename); | |
| } catch (e) {} | |
| } | |
| try { | |
| undefined !== navigator.mimeTypes[e].type && "" != navigator.mimeTypes[e].type && (mime_type.type = navigator.mimeTypes[e].type); | |
| } catch (e) {} | |
| try { | |
| undefined !== navigator.mimeTypes[e].suffixes && "" != navigator.mimeTypes[e].suffixes && (mime_type.suffixes = navigator.mimeTypes[e].suffixes.split(",")); | |
| } catch (e) {} | |
| try { | |
| undefined !== navigator.mimeTypes[e].description && "" != navigator.mimeTypes[e].description && (mime_description = (mime_description = navigator.mimeTypes[e].enabledPlugin.description).replace(/\"/g, "'"), mime_type.description = mime_description); | |
| } catch (e) {} | |
| try { | |
| mime_types.push(mime_type); | |
| } catch (e) {} | |
| } | |
| return mime_types; | |
| }}, navigator_ram: {gigabytes: function () { | |
| try { | |
| navigator_ram_gb = navigator.deviceMemory; | |
| } catch (e) { | |
| return null; | |
| } | |
| return "undefined" != typeof navigator_ram_gb && navigator_ram_gb ? navigator_ram_gb : null; | |
| }}, max_touch_points: {value: function () { | |
| max_touch_points = null; | |
| try { | |
| max_touch_points = navigator.maxTouchPoints; | |
| } catch (e) {} | |
| if (null === max_touch_points) try { | |
| max_touch_points = navigator.msMaxTouchPoints; | |
| } catch (e) {} | |
| return "undefined" != typeof max_touch_points ? max_touch_points : null; | |
| }}, is_brave: function () { | |
| try { | |
| return !!navigator.brave && !!navigator.brave.isBrave(); | |
| } catch (e) {} | |
| return null; | |
| }, is_arc: function () { | |
| try { | |
| return "" !== getComputedStyle(document.documentElement).getPropertyValue("--arc-palette-title"); | |
| } catch (e) {} | |
| return null; | |
| }}, ecma: function () { | |
| return rv = null, "function" == typeof RegExp && (rv = {edition: 3, date_published: "1999-12"}), "function" == typeof Array.isArray && (rv = {edition: 5, date_published: "2009-12"}), "function" != typeof Array.find && "function" != typeof Array.findIndex || (rv = {edition: 6, date_published: "2015-06", name: "ECMAScript 2015", name_code: "ES2015"}), "function" == typeof Array.prototype.includes && (rv = {edition: 7, date_published: "2016-06", name: "ECMAScript 2016", name_code: "ES2016"}), "function" == typeof Object.entries && (rv = {edition: 8, date_published: "2017-06", name: "ECMAScript 2017", name_code: "ES2017"}), "undefined" != typeof Promise && "function" == typeof Promise.prototype.finally && (rv = {edition: 9, date_published: "2018-06", name: "ECMAScript 2018", name_code: "ES2018"}), "function" != typeof Object.fromEntries && "function" != typeof String.prototype.trimStart || (rv = {edition: 10, date_published: "2019-06", name: "ECMAScript 2019", name_code: "ES2019"}), rv = "function" == typeof BigInt ? {edition: 11, date_published: "2020-06", name: "ECMAScript 2020", name_code: "ES2020"} : rv; | |
| }, looks_like: {simple_software_string: function () { | |
| return rv = null, window.WIMB.data.simple_software_string || (software_detection_result = WIMB.detect.looks_like.software.detection_result(), operating_system_detection_result = WIMB.detect.looks_like.operating_system.detection_result(), software_detection_result && operating_system_detection_result ? software_detection_result.software_name && operating_system_detection_result.operating_system_name && (rv = software_detection_result.software_name + " on " + operating_system_detection_result.operating_system_name) : software_detection_result ? software_detection_result.software_name && (rv = "undefined" != typeof detection_helper_operating_system_name ? software_detection_result.software_name + " on " + detection_helper_operating_system_name : software_detection_result.software_name) : operating_system_detection_result && operating_system_detection_result.operating_system_name && (rv = "undefined" != typeof detection_helper_software_name ? detection_helper_software_name + " on " + operating_system_detection_result.operating_system_name : "It's running on " + operating_system_detection_result.operating_system_name), rv && (window.WIMB.data.simple_software_string = rv), rv); | |
| }, software: {detection_tests: function () { | |
| if (window.WIMB.data.software_detection_tests) return window.WIMB.data.software_detection_tests; | |
| rv = {}; | |
| try { | |
| navigator_vendor = WIMB.detect.navigator.vendor.value().toLowerCase(); | |
| } catch (e) {} | |
| return true === WIMB.detect.navigator.is_brave() && (rv.is_brave = 1), true === WIMB.detect.navigator.is_arc() && (rv.is_arc = 1), window.chrome && (rv.window_chrome = 1), window.safari && (rv.window_safari = 1), window.opera && (rv.window_opr = 1), window.opera && (rv.opr = 1), navigator.storage && (rv.navigator_storage = 1), document.documentMode && (rv.document_document_mode = 1), window.StyleMedia && (rv.window_style_media = 1), String.prototype.startsWith || (rv.no_starts_with = 1), "undefined" != typeof navigator_vendor && (rv.navigator_vendor = 1, "apple" == navigator_vendor.slice(0, 5) ? rv.navigator_vendor_is_apple = 1 : "google" == navigator_vendor.slice(0, 6) ? rv.navigator_vendor_is_google = 1 : "" === navigator_vendor && (rv.navigator_vendor_is_blank = 1)), rv && (window.WIMB.data.software_detection_tests = rv), rv; | |
| }, detection_result: function () { | |
| return (software_detection_tests = WIMB.detect.looks_like.software.detection_tests()).navigator_vendor_is_apple && software_detection_tests.window_safari ? {software_name: "Safari", software_name_code: "safari"} : software_detection_tests.is_brave ? {software_name: "Brave", software_name_code: "brave"} : software_detection_tests.is_arc ? {software_name: "Arc", software_name_code: "arc"} : software_detection_tests.document_document_mode || software_detection_tests.window_style_media ? {software_name: "Internet Explorer", software_name_code: "internet-explorer"} : software_detection_tests.window_opr || software_detection_tests.opr ? {software_name: "Opera", software_name_code: "opera"} : WIMB.detect.navigator.oscpu.value() || 1 === software_detection_tests.navigator_vendor_is_blank ? {software_name: "Firefox", software_name_code: "firefox"} : null; | |
| }}, operating_system: {detection_tests: function () { | |
| if (window.WIMB.data.operating_system_detection_tests) return window.WIMB.data.operating_system_detection_tests; | |
| rv = {}; | |
| var e = ""; | |
| try { | |
| e = WIMB.detect.navigator.platform.value().toLowerCase(); | |
| } catch (e) {} | |
| null !== e && ("macintel" == e.slice(0, 8) ? 0 < WIMB.detect.navigator.max_touch_points.value() ? rv.platform = "ios" : rv.platform = "macos" : "win" == e.slice(0, 3) ? rv.platform = "windows" : "linux" == e.slice(0, 5) || "suse" == e.slice(0, 4) || "ubuntu" == e.slice(0, 6) ? rv.platform = "linux" : "ios" == e.slice(0, 3) || "iphone" == e.slice(0, 6) || "ipad" == e.slice(0, 4) || "ipod" == e.slice(0, 4) || "iphone" == e.slice(-6) || "ipad" == e.slice(-4) || "ipod" == e.slice(-4) ? rv.platform = "ios" : "general mobile device" == e ? rv.platform = "ios_gmd" : "android" == e.slice(0, 7) ? rv.platform = "android" : "chromium os" == e.slice(0, 11) ? rv.platform = "chromium_os" : "freebsd" == e.slice(0, 7) ? rv.platform = "freebsd" : "openbsd" == e.slice(0, 7) && (rv.platform = "openbsd")); | |
| try { | |
| navigator_vendor = WIMB.detect.navigator.vendor.value().toLowerCase(); | |
| } catch (e) {} | |
| return "undefined" != typeof navigator_vendor && "apple" == navigator_vendor.slice(0, 5) && (rv.vendor = "apple"), null !== (navigator_oscpu = WIMB.detect.navigator.oscpu.value()) && (-1 !== navigator_oscpu.search(/windowsce/i) ? rv.oscpu = "windows_ce" : -1 !== navigator_oscpu.search(/windows/i) ? rv.oscpu = "windows" : -1 !== navigator_oscpu.search(/mac ?os/i) ? rv.oscpu = "macos" : -1 !== navigator_oscpu.search(/linux/i) && (rv.oscpu = "linux")), rv && (window.WIMB.data.operating_system_detection_tests = rv), rv; | |
| }, detection_result: function () { | |
| if ((operating_system_detection_tests = WIMB.detect.looks_like.operating_system.detection_tests()).platform) { | |
| if ("macos" === operating_system_detection_tests.platform) return {operating_system_name: "macOS", operating_system_name_code: "macos"}; | |
| if ("windows" === operating_system_detection_tests.platform) return {operating_system_name: "Windows", operating_system_name_code: "windows"}; | |
| if ("ios" === operating_system_detection_tests.platform || "ios_gmd" === operating_system_detection_tests.platform) return {operating_system_name: "iOS", operating_system_name_code: "ios"}; | |
| if ("linux" === operating_system_detection_tests.platform) return {operating_system_name: "Linux", operating_system_name_code: "linux"}; | |
| if ("android" === operating_system_detection_tests.platform) return {operating_system_name: "Android", operating_system_name_code: "android"}; | |
| if ("freebsd" === operating_system_detection_tests.platform) return {operating_system_name: "FreeBSD", operating_system_name_code: "freebsd"}; | |
| if ("openbsd" === operating_system_detection_tests.platform) return {operating_system_name: "OpenBSD", operating_system_name_code: "openbsd"}; | |
| } | |
| if (operating_system_detection_tests.vendor && "apple" === operating_system_detection_tests.platform && 0 < WIMB.detect.navigator.max_touch_points.value()) return {operating_system_name: "iOS", operating_system_name_code: "ios"}; | |
| if (operating_system_detection_tests.oscpu) { | |
| if ("macos" === operating_system_detection_tests.oscpu) return {operating_system_name: "macOS", operating_system_name_code: "macos"}; | |
| operating_system_detection_tests.oscpu; | |
| } | |
| return null; | |
| }}}, webgl: {canvas_div_id: "wimb_library_canvas", canvas: null, canvas_webgl: null, _init: function () { | |
| var e; | |
| null === document.getElementById(WIMB.detect.webgl.canvas_div_id) && ((e = document.createElement("canvas")).id = WIMB.detect.webgl.canvas_div_id, e.style = "position: absolute; height: 1px; width: 1px;", null !== document.body && document.body.appendChild(e), WIMB.detect.webgl.canvas = e, WIMB.detect.webgl.canvas_webgl = e.getContext("webgl")); | |
| }, vendor: function () { | |
| WIMB.detect.webgl._init(); | |
| var e = null; | |
| try { | |
| var t = WIMB.detect.webgl.canvas_webgl.getExtension("WEBGL_debug_renderer_info"), e = WIMB.detect.webgl.canvas_webgl.getParameter(t.UNMASKED_VENDOR_WEBGL); | |
| } catch (e) {} | |
| return e; | |
| }, renderer: function () { | |
| WIMB.detect.webgl._init(); | |
| var e = null; | |
| try { | |
| var t = WIMB.detect.webgl.canvas_webgl.getExtension("WEBGL_debug_renderer_info"), e = WIMB.detect.webgl.canvas_webgl.getParameter(t.UNMASKED_RENDERER_WEBGL); | |
| } catch (e) {} | |
| return e; | |
| }}, client_hints: {frontend: {available: function () { | |
| if (undefined === window.WIMB.data.client_hints_frontend_available) return undefined !== navigator.userAgentData ? (window.WIMB.data.client_hints_uadata = navigator.userAgentData, window.WIMB.data.client_hints_frontend_available = true, (async () => { | |
| var e = await navigator.userAgentData.getHighEntropyValues(["architecture", "bitness", "model", "platform", "platformVersion", "uaFullVersion"]); | |
| window.WIMB.data.client_hints_frontend_architecture = e.architecture, window.WIMB.data.client_hints_frontend_bitness = e.bitness, window.WIMB.data.client_hints_frontend_model = e.model, window.WIMB.data.client_hints_frontend_platform = e.platform, window.WIMB.data.client_hints_frontend_platform_version = e.platformVersion, window.WIMB.data.client_hints_frontend_ua_full_version = e.uaFullVersion; | |
| })(), window.WIMB.data.client_hints_frontend_brands = window.WIMB.data.client_hints_uadata.brands, true) : window.WIMB.data.client_hints_frontend_available = false; | |
| }, architecture: function () { | |
| return window.WIMB.data.client_hints_frontend_architecture; | |
| }, bitness: function () { | |
| return window.WIMB.data.client_hints_frontend_bitness; | |
| }, raw_brands: function () { | |
| return window.WIMB.data.client_hints_frontend_brands; | |
| }, brands_string: function () { | |
| if (undefined !== window.WIMB.data.client_hints_frontend_brands) { | |
| brands_string = ""; | |
| for (var e = 0; e < window.WIMB.data.client_hints_frontend_brands.length; e++) brands_string = brands_string + window.WIMB.data.client_hints_frontend_brands[e].brand + ": " + window.WIMB.data.client_hints_frontend_brands[e].version + ". "; | |
| return (brands_string = (brands_string = (brands_string = (brands_string = brands_string.replace(/\"/g, "'")).replace(/\\/g, " ")).replace(/;/g, " ")).replace(/ +/g, " ")).trim(); | |
| } | |
| }, model: function () { | |
| return window.WIMB.data.client_hints_frontend_model; | |
| }, platform: function () { | |
| return window.WIMB.data.client_hints_frontend_platform; | |
| }, platform_version: function () { | |
| return window.WIMB.data.client_hints_frontend_platform_version; | |
| }, ua_full_version: function () { | |
| return window.WIMB.data.client_hints_frontend_ua_full_version; | |
| }}}, addons: {get_all_names: function () { | |
| return addons = [], WIMB.detect.addons.adblock.enabled() && addons.push({code: "adblocker", name: detect_addon_adblocker, version: null}), undefined !== WIMB.detect.addons.silverlight && WIMB.detect.addons.silverlight.enabled() && addons.push({code: "silverlight", name: "Microsoft Silverlight", version: WIMB.detect.addons.silverlight.version()}), addons; | |
| }, adblock: {ad_div_id: "ads-advert-banner", _init: function () { | |
| var e = document.createElement("div"); | |
| e.id = WIMB.detect.addons.adblock.ad_div_id, e.className = "ads--square ads--top adFrame", null !== document.body && document.body.appendChild(e); | |
| }, enabled: function () { | |
| return WIMB.detect.addons.adblock._init(), advert_id = document.getElementById(WIMB.detect.addons.adblock.ad_div_id), "none" == WIMB_UTIL.get_style(advert_id, "display"); | |
| }}, silverlight: {enabled: function () { | |
| return null; | |
| }}}}, version_check: {}}, WIMB_UTIL = (window.WIMB.init(), window.WIMB.meta.js_src_url = document.currentScript.src, WIMB_UTIL || {version: "1.0", get_style: function (e, t) { | |
| return rv = "", e.currentStyle ? rv = e.currentStyle[t] : window.getComputedStyle && (rv = document.defaultView.getComputedStyle(e, null).getPropertyValue(t)), rv; | |
| }, decode_java_version: function (e) { | |
| if (!e) return false; | |
| var t = e.split("."), n = [], o = ""; | |
| for (v = "1" == t[0] && t[1] <= "4" ? 0 : 1; v < t.length; v++) false !== t[v].search(/^[0-9]+[_]+[0-9]*$/) ? (fragment_fragments = t[v].split("_"), n.push(parseInt(fragment_fragments[0])), undefined !== fragment_fragments[1] && (o = parseInt(fragment_fragments[1]))) : (n.push(t[v]), v++); | |
| return {version: n, update: o}; | |
| }}); | |
| var WIMB_CAPABILITIES = WIMB_CAPABILITIES || {capabilities: {}, add: function (e, t, o) { | |
| o ? (WIMB_CAPABILITIES.capabilities[o] || (WIMB_CAPABILITIES.capabilities[o] = {}), WIMB_CAPABILITIES.capabilities[o][e] = t) : WIMB_CAPABILITIES.capabilities[e] = t; | |
| }, add_update: function (e, t) { | |
| WIMB_CAPABILITIES.add(e, t); | |
| }, get_as_json_string: function () { | |
| return undefined === WIMB_CAPABILITIES || undefined === WIMB_CAPABILITIES.capabilities.javascript ? "{}" : encodeURIComponent(JSON.stringify(WIMB_CAPABILITIES.capabilities)); | |
| }}, add_row_to_tech_details = function (e) { | |
| document.getElementById("technical-details") && (document.getElementById("technical-details").innerHTML = document.getElementById("technical-details").innerHTML + '<li class="tech-detail-item"' + (e.title ? 'title="' + e.title + '"' : "") + '><div class="key">' + (undefined !== e.link ? '<a href="' + e.link + '">' : "") + e.key + (undefined !== e.link ? "</a>" : "") + '</div><div class="value">' + (undefined !== e.link ? '<a href="' + e.link + '">' : "") + e.value + (undefined !== e.link ? "</a>" : "") + "</div></li>"); | |
| }, do_capabilities_detection = function () { | |
| try { | |
| document.querySelector("#your-browsers-settings").classList.remove("no-javascript"); | |
| } catch (e) {} | |
| try { | |
| document.querySelector("#javascript-detection .detection-message").innerHTML = detect_yes + " - " + detect_javascript_is_enabled; | |
| } catch (e) {} | |
| if (WIMB_CAPABILITIES.add("javascript", "1"), WIMB.detect.cookies.enabled()) { | |
| try { | |
| document.querySelector("#cookies-detection .detection-message").innerHTML = detect_yes + " - " + detect_cookies_are_enabled; | |
| } catch (e) {} | |
| WIMB_CAPABILITIES.add("cookies", "1"); | |
| } else { | |
| try { | |
| document.querySelector("#cookies-detection .detection-message").innerHTML = detect_no + " - " + detect_cookies_not_enabled; | |
| } catch (e) {} | |
| WIMB_CAPABILITIES.add("cookies", "0"); | |
| } | |
| try { | |
| document.querySelector("#third-party-cookies-detection .detection-message").innerHTML = please_wait; | |
| } catch (e) {} | |
| if (WIMB.detect.cookies_third_party.trigger_set_cookie("https://" + window.third_party_domain + "/detect/are-third-party-cookies-enabled-set-cookie"), cookie_check_interval = setInterval(function () { | |
| if (1 == WIMB.detect.cookies_third_party.enabled()) { | |
| try { | |
| document.querySelector("#third-party-cookies-detection .detection-message").innerHTML = detect_yes + " - " + detect_third_party_cookies_are_enabled; | |
| } catch (e) {} | |
| WIMB_CAPABILITIES.add("cookies_third_party", "1"), clearInterval(cookie_check_interval); | |
| } else if (0 == WIMB.detect.cookies_third_party.enabled()) { | |
| try { | |
| document.querySelector("#third-party-cookies-detection .detection-message").innerHTML = detect_no + " - " + detect_third_party_cookies_not_enabled; | |
| } catch (e) {} | |
| WIMB_CAPABILITIES.add("cookies_third_party", "0"), clearInterval(cookie_check_interval); | |
| } | |
| }, 50), setTimeout(function () { | |
| try { | |
| document.querySelector("#third-party-cookies-detection .detection-message").innerHTML == please_wait && (document.querySelector("#third-party-cookies-detection .detection-message").innerHTML = detect_try_reloading, WIMB_CAPABILITIES.add("cookies_third_party", "-1")); | |
| } catch (e) {} | |
| clearInterval(cookie_check_interval); | |
| }, 4e3), WIMB.detect.local_ipv4_addresses.trigger_detection(), setTimeout(function () { | |
| if (null === (local_ip_div = document.querySelector("#local-ip-address .detected-column .detected-column-text"))) return true; | |
| local_ip_div.innerHTML = please_wait; | |
| var e = WIMB.detect.local_ipv4_addresses.retrieve(); | |
| if (local_ipv4_html = "", 0 < e.length) { | |
| for (local_ipv4_address_key in e) local_ipv4_html = local_ipv4_html + e[local_ipv4_address_key] + "<br />", WIMB_CAPABILITIES.add("ip_" + local_ipv4_address_key, e[local_ipv4_address_key], "local_ipv4_addresses"); | |
| try { | |
| document.querySelector("#local-ip-address .detected-column .detected-column-text").innerHTML = local_ipv4_html; | |
| } catch (e) {} | |
| } else document.querySelector("#local-ip-address .detected-column .detected-column-text").style.display = "none", document.querySelector("#local-ip-address .detected-column #local-ip-address-detection-blocked").style.display = "block"; | |
| }, 1e3), WIMB.detect.computer_screen.width() && WIMB.detect.computer_screen.height()) { | |
| WIMB_CAPABILITIES.add("computer_screen_width", WIMB.detect.computer_screen.width()), WIMB_CAPABILITIES.add("computer_screen_height", WIMB.detect.computer_screen.height()), WIMB_CAPABILITIES.add("computer_screen_color_depth", WIMB.detect.computer_screen.color_depth()); | |
| try { | |
| document.getElementById("computer-screen-detection").innerHTML = '<span class="detection-message">' + WIMB.detect.computer_screen.width() + " <span>x</span> " + WIMB.detect.computer_screen.height() + " " + detect_pixels + "<br />" + WIMB.detect.computer_screen.color_depth() + " bit</span>"; | |
| } catch (e) {} | |
| } | |
| function t() { | |
| if (WIMB_CAPABILITIES.add_update("browser_window_size_width", WIMB.detect.browser_window_size.width()), WIMB_CAPABILITIES.add_update("browser_window_size_height", WIMB.detect.browser_window_size.height()), 0 == WIMB.detect.browser_window_size.width() || 0 == WIMB.detect.browser_window_size.height()) try { | |
| var e = document.getElementById("browser-window-size"); | |
| e.parentNode.removeChild(e); | |
| } catch (e) {} else try { | |
| document.getElementById("browser-window-size-detection").innerHTML = '<span class="detection-message">' + WIMB.detect.browser_window_size.width() + " x " + WIMB.detect.browser_window_size.height() + " " + detect_pixels + "</span>"; | |
| } catch (e) {} | |
| } | |
| t(), setTimeout(function () { | |
| t(); | |
| }, 2e3), window.addEventListener("resize", function (e) { | |
| t(); | |
| }), setTimeout(function () { | |
| if (0 < (browser_addons = WIMB.detect.addons.get_all_names()).length) { | |
| for (browser_addon_key in browser_addons) { | |
| WIMB_CAPABILITIES.add(browser_addons[browser_addon_key].code, browser_addons[browser_addon_key].version || "true", "browser_addons"); | |
| try { | |
| document.getElementById("detected-addons-ul").insertAdjacentHTML("beforeend", "<li>" + browser_addons[browser_addon_key].name + "</li>"); | |
| } catch (e) {} | |
| } | |
| try { | |
| document.getElementById("detected-addons").style.display = "flex"; | |
| } catch (e) {} | |
| } | |
| }, 1e3), WIMB.detect.computer_screen.device_pixel_ratio() && (WIMB_CAPABILITIES.add("device_pixel_ratio", WIMB.detect.computer_screen.device_pixel_ratio()), add_row_to_tech_details({key: detect_pixel_ratio, value: WIMB.detect.computer_screen.device_pixel_ratio()})), WIMB_CAPABILITIES.add("browser_gmt_offset", WIMB.detect.gmt_offset()), add_row_to_tech_details({key: detect_gmt_offset, value: WIMB.detect.gmt_offset()}), navigator_platform = WIMB.detect.navigator.platform.value(), navigator_platform_human = WIMB.detect.navigator.platform.value_human_readable(), null !== navigator_platform && (WIMB_CAPABILITIES.add("navigator_platform", navigator_platform), null !== navigator_platform_human ? add_row_to_tech_details({key: detect_platform, title: navigator_platform, value: navigator_platform_human, link: "/detect/navigator-platform"}) : add_row_to_tech_details({key: detect_platform, value: navigator_platform, link: "/detect/navigator-platform"})), null !== (navigator_oscpu = WIMB.detect.navigator.oscpu.value()) && (WIMB_CAPABILITIES.add("navigator_oscpu", navigator_oscpu.replace('"', "")), add_row_to_tech_details({key: detect_oscpu, value: navigator_oscpu})), null !== (navigator_vendor = WIMB.detect.navigator.vendor.value()) && (WIMB_CAPABILITIES.add("navigator_vendor", navigator_vendor), add_row_to_tech_details({key: detect_vendor, value: navigator_vendor})), null !== (navigator_hardware_concurrency = WIMB.detect.navigator.hardware_concurrency.value()) && (WIMB_CAPABILITIES.add("navigator_hardware_concurrency", hardware_concurrency), add_row_to_tech_details({key: detect_hardware_concurrency, value: navigator_hardware_concurrency})), null !== (navigator_mime_types = WIMB.detect.navigator.mime_types.all()) && WIMB_CAPABILITIES.add("navigator_mime_types", navigator_mime_types), null !== (navigator_ram_gb = WIMB.detect.navigator.navigator_ram.gigabytes()) && (WIMB_CAPABILITIES.add("navigator_ram_gb", navigator_ram_gb), add_row_to_tech_details({key: detect_ram_gb, value: navigator_ram_gb + " GB"})), null !== (max_touch_points = WIMB.detect.navigator.max_touch_points.value()) && (WIMB_CAPABILITIES.add("max_touch_points", max_touch_points), add_row_to_tech_details({key: detect_max_touch_points, value: max_touch_points})), null !== (webgl_vendor = WIMB.detect.webgl.vendor()) && (WIMB_CAPABILITIES.add("webgl_vendor", webgl_vendor), add_row_to_tech_details({key: detect_webgl_vendor, value: webgl_vendor})), webgl_renderer = WIMB.detect.webgl.renderer(), null !== webgl_vendor && (WIMB_CAPABILITIES.add("webgl_renderer", webgl_renderer), add_row_to_tech_details({key: detect_webgl_renderer, value: webgl_renderer})), WIMB.detect.client_hints.frontend.available() && setTimeout(function () { | |
| WIMB_CAPABILITIES.add("architecture", WIMB.detect.client_hints.frontend.architecture(), "js_ch"), WIMB_CAPABILITIES.add("bitness", WIMB.detect.client_hints.frontend.bitness(), "js_ch"), WIMB_CAPABILITIES.add("brands_string", WIMB.detect.client_hints.frontend.brands_string(), "js_ch"), WIMB_CAPABILITIES.add("model", WIMB.detect.client_hints.frontend.model(), "js_ch"), WIMB_CAPABILITIES.add("platform", WIMB.detect.client_hints.frontend.platform(), "js_ch"), WIMB_CAPABILITIES.add("platform_version", WIMB.detect.client_hints.frontend.platform_version(), "js_ch"), WIMB_CAPABILITIES.add("ua_full_version", WIMB.detect.client_hints.frontend.ua_full_version(), "js_ch"); | |
| }, 1e3), software_detection_tests = WIMB.detect.looks_like.software.detection_tests(), 0 < Object.keys(software_detection_tests).length && software_detection_tests.constructor === Object && WIMB_CAPABILITIES.add("software_detection_tests", software_detection_tests), operating_system_detection_tests = WIMB.detect.looks_like.operating_system.detection_tests(), 0 < Object.keys(operating_system_detection_tests).length && operating_system_detection_tests.constructor === Object && WIMB_CAPABILITIES.add("operating_system_detection_tests", operating_system_detection_tests), null !== (ecma = WIMB.detect.ecma()) && (WIMB_CAPABILITIES.add("ecma_edition", ecma.edition), ecma.name_code ? add_row_to_tech_details({key: detect_ecma_version, value: ecma.edition + " (" + ecma.name_code + ")", link: "/detect/ecma-script-version"}) : add_row_to_tech_details({key: detect_ecma_version, value: ecma.edition, link: "/detect/ecma-script-version"})); | |
| var e = false, o = (null !== (software_detection_result = WIMB.detect.looks_like.software.detection_result()) && null !== software_detection_result.software_name_code && "undefined" != typeof detection_helper_software_name_code && detection_helper_software_name_code !== software_detection_result.software_name_code && (e = true), false); | |
| null !== (operating_system_detection_result = WIMB.detect.looks_like.operating_system.detection_result()) && "undefined" != typeof detection_helper_operating_system_name_code && detection_helper_operating_system_name_code !== operating_system_detection_result.operating_system_name_code && (o = true), true !== e && true !== o || document.getElementById("readout-primary") && (looks_like_simple_software_string = WIMB.detect.looks_like.simple_software_string(), e = '<li id="primary-browser-detection-frontend"><h1>' + detect_looks_like + '</h1><div class="string-major">' + looks_like_simple_software_string + "</li>", document.getElementById("primary-browser-detection").insertAdjacentHTML("afterbegin", e), document.getElementById("primary-browser-detection-backend").insertAdjacentHTML("beforeend", "<p>This conflict might be causing other websites to not detect your web browser properly.</p>")); | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment