├── LICENSE ├── README.md ├── decryptPayload.js ├── DISCLAIMER.md ├── encryptPayload.js ├── autoReverseCaptcha.js ├── readable ├── eps-d.md ├── init_8.9.6.md └── init_9.0.8.md ├── autoReverseMain.js ├── source ├── iamNotaRobot.js └── eps-mgr └── payload.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 MiddleSchoolStudent 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PerimeterX Privacy Fingerprint Research 2 | 3 | ## ⚠️ PRIVACY RESEARCH USE ONLY 4 | 5 | **📋 [Complete Legal Disclaimer and Terms of Use](DISCLAIMER.md)** 6 | 7 | This repository is designed for **privacy fingerprint research and authorized security analysis** in controlled environments that comply with all applicable laws and institutional ethics guidelines. 8 | 9 | ---------- 10 | 11 | ## Research Overview 12 | 13 | This repository contains educational materials for **researchers** studying browser fingerprinting techniques and web security mechanisms in **authorized testing environments**. The research demonstrates compatibility testing methodologies using **[BotBrowser](https://github.com/MiddleSchoolStudent/BotBrowser)** for privacy focused analysis of fingerprint collection patterns. 14 | 15 | [video.webm](https://github.com/user-attachments/assets/c964998b-6c28-4c1a-b0cc-164c7b445a6b) 16 | 17 | 18 | ---------- 19 | 20 | ## Educational Resources 21 | 22 | ### Code Analysis 23 | - **[source](source)** - Original implementation for educational study 24 | - **[readable](readable)** - Step-by-step analysis methodology for academic understanding 25 | 26 | ### Research Documentation 27 | - **[payload.md](payload.md)** - Educational documentation of fingerprint collection techniques for privacy and security research purposes 28 | 29 | ---------- 30 | 31 | ## Research Methodology 32 | 33 | This educational repository provides insights into browser fingerprinting collection patterns for **authorized privacy and security research**. The analysis methodology demonstrates techniques used in **controlled academic environments** for understanding web security mechanisms. 34 | 35 | **Note:** All research materials are intended for **educational and authorized testing purposes only** in compliance with applicable laws and institutional guidelines. 36 | 37 | ---------- 38 | 39 | ## Important Usage Guidelines 40 | 41 | ⚠️ **This repository is strictly for academic research and authorized security analysis** 42 | 43 | - Only use in **controlled testing environments** 44 | - Ensure **proper institutional approval** before conducting research 45 | - Comply with all applicable **laws and regulations** 46 | - Respect **terms of service** of all systems 47 | - Follow **ethical research guidelines** 48 | 49 | **By using this repository, you acknowledge compliance with the [complete disclaimer](DISCLAIMER.md) and accept full responsibility for lawful use.** 50 | -------------------------------------------------------------------------------- /decryptPayload.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | function sortJsonKeys(obj) { 4 | if (typeof obj !== 'object' || obj === null) { 5 | return obj; 6 | } 7 | 8 | if (Array.isArray(obj)) { 9 | return obj.map((item) => sortJsonKeys(item)); 10 | } 11 | 12 | const sortedKeys = Object.keys(obj).sort(); 13 | const sortedObj = {}; 14 | 15 | sortedKeys.forEach((key) => { 16 | sortedObj[key] = sortJsonKeys(obj[key]); 17 | }); 18 | 19 | return sortedObj; 20 | } 21 | 22 | export function decrypt(encrypted, uuid) { 23 | const o = 'G^S}DNK8DNa>D`K}GK77'; 24 | const L = o.length; 25 | 26 | const origLen = encrypted.length - L; 27 | const mapping = computeMapping(o, origLen, uuid); 28 | let base64Str = encrypted; 29 | const removeIdx = mapping.map((x) => x - 1).sort((a, b) => b - a); 30 | for (const idx of removeIdx) { 31 | base64Str = base64Str.slice(0, idx) + base64Str.slice(idx + 1); 32 | } 33 | 34 | const buf = Buffer.from(base64Str, 'base64'); 35 | const latin1 = buf.toString('latin1'); 36 | 37 | let pct = ''; 38 | for (let i = 0; i < latin1.length; i++) { 39 | const hex = latin1.charCodeAt(i).toString(16).toUpperCase().padStart(2, '0'); 40 | pct += '%' + hex; 41 | } 42 | const xoredJson = decodeURIComponent(pct); 43 | 44 | let jsonStr = ''; 45 | for (let i = 0; i < xoredJson.length; i++) { 46 | jsonStr += String.fromCharCode(xoredJson.charCodeAt(i) ^ 50); 47 | } 48 | 49 | return JSON.stringify(sortJsonKeys(JSON.parse(jsonStr)), null, 2); 50 | } 51 | 52 | function jt(str, key) { 53 | let r = ''; 54 | for (let i = 0; i < str.length; i++) { 55 | r += String.fromCharCode(str.charCodeAt(i) ^ key); 56 | } 57 | return r; 58 | } 59 | 60 | function computeMapping(o, e, uuid) { 61 | const b64 = Buffer.from(uuid, 'utf8').toString('base64'); 62 | const v = jt(b64, 10); 63 | 64 | let p = -1; 65 | for (let g = 0; g < o.length; g++) { 66 | const y = Math.floor(g / v.length + 1); 67 | const b = g >= v.length ? g % v.length : g; 68 | const T = v.charCodeAt(b) * v.charCodeAt(y); 69 | if (T > p) p = T; 70 | } 71 | 72 | const m = []; 73 | for (let E = 0; E < o.length; E++) { 74 | const S = Math.floor(E / v.length) + 1; 75 | const I = E % v.length; 76 | let A = v.charCodeAt(I) * v.charCodeAt(S); 77 | 78 | if (A >= e) { 79 | A = Math.floor((A / p) * (e - 1)); 80 | } 81 | while (m.indexOf(A) !== -1) { 82 | A++; 83 | } 84 | m.push(A); 85 | } 86 | 87 | return m.sort((a, b) => a - b); 88 | } 89 | -------------------------------------------------------------------------------- /DISCLAIMER.md: -------------------------------------------------------------------------------- 1 | # ⚠️ LEGAL DISCLAIMER AND TERMS OF USE 2 | 3 | ## ACADEMIC & RESEARCH USE DISCLAIMER 4 | 5 | **PerimeterX-Privacy-Research** is designed exclusively for **privacy research, security analysis, and authorized testing environments** that comply with all applicable **laws, regulations, and institutional ethics guidelines**. 6 | 7 | ## AUTHORIZED USE CASES 8 | 9 | This software is intended for legitimate purposes only: 10 | 11 | - **University and institutional research projects** 12 | - **Security and privacy research in controlled environments** 13 | - **Browser compatibility studies** 14 | - **Fingerprint consistency and anti-tracking analysis** 15 | - **Authorized penetration testing** 16 | - **Academic coursework and educational purposes** 17 | - **Open source security research** 18 | 19 | ## PROHIBITED USES 20 | 21 | The following uses are strictly prohibited: 22 | 23 | - **Misuse** to violate **terms of service** of third-party websites 24 | - Unauthorized access to systems you do not own 25 | - Commercial exploitation without proper licensing 26 | - Any illegal activities or policy violations 27 | - Circumventing security controls on production systems 28 | - Data harvesting or privacy violations 29 | - Automated abuse of web services 30 | - Bypassing anti-bot measures for malicious purposes 31 | - Any use that violates local, state, federal, or international laws 32 | 33 | ## LEGAL & ETHICAL REQUIREMENTS 34 | 35 | ### Institutional Approval 36 | All users must obtain proper institutional approval and follow ethical research guidelines when conducting studies involving web services or user data. 37 | 38 | ### Legal Compliance 39 | Users are solely responsible for ensuring compliance with all applicable laws in their jurisdiction, including but not limited to: 40 | - Computer Fraud and Abuse Act (CFAA) 41 | - Digital Millennium Copyright Act (DMCA) 42 | - General Data Protection Regulation (GDPR) 43 | - California Consumer Privacy Act (CCPA) 44 | - Local privacy and computer access laws 45 | 46 | ### Data Protection 47 | Any data collection must comply with applicable privacy laws and institutional review board requirements. 48 | 49 | ### Terms of Service Compliance 50 | Users must respect and comply with the terms of service of any websites or services they interact with using this software. 51 | 52 | ## LIABILITY DISCLAIMER 53 | 54 | ### No Warranty 55 | This software is provided **"as-is"** without any warranty, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. 56 | 57 | ### User Responsibility 58 | Users assume full responsibility for any consequences of using this software, including: 59 | - Legal liability for misuse 60 | - Compliance with applicable laws and regulations 61 | - Respect for third-party rights and terms of service 62 | - Proper institutional oversight and approval 63 | 64 | ### Third-Party Damages 65 | The authors, contributors, and maintainers are not liable for any damages to third-party systems, violations of third-party rights, or any direct, indirect, incidental, special, or consequential damages arising from the use of this software. 66 | 67 | ### Indemnification 68 | Users agree to indemnify and hold harmless the authors, contributors, and maintainers from any claims, damages, or legal actions arising from misuse of this software. 69 | 70 | ## PLATFORM COMPLIANCE 71 | 72 | ### GitHub Policy 73 | This repository is not intended for production use against third-party services without proper authorization. Any misuse will result in violation of GitHub's Acceptable Use Policies. 74 | 75 | ### Open Source License 76 | Use must comply with the project's open source license terms as specified in the LICENSE file. 77 | 78 | ### Research Ethics 79 | All research conducted using this software must comply with applicable research ethics guidelines and institutional review board requirements. 80 | 81 | ## ENFORCEMENT 82 | 83 | The maintainers reserve the right to: 84 | - Refuse support to users who violate these terms 85 | - Report suspected misuse to appropriate authorities 86 | - Remove access to repositories for policy violations 87 | - Cooperate with law enforcement investigations 88 | 89 | ## UPDATES TO DISCLAIMER 90 | 91 | This disclaimer may be updated from time to time. Users are responsible for reviewing the current version before using the software. 92 | 93 | ## CONTACT 94 | 95 | For questions about proper use or compliance, please contact the maintainers through official project channels. 96 | 97 | --- 98 | 99 | **By downloading, using, or contributing to this software, you acknowledge that you have read, understood, and agree to be bound by this disclaimer and all applicable laws and regulations.** 100 | 101 | **Last Updated: September 2025** 102 | -------------------------------------------------------------------------------- /encryptPayload.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | function t(e) { 4 | return ( 5 | (t = 6 | 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator 7 | ? function (t) { 8 | return typeof t; 9 | } 10 | : function (t) { 11 | return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype 12 | ? 'symbol' 13 | : typeof t; 14 | }), 15 | t(e) 16 | ); 17 | } 18 | 19 | var G = { 20 | '\b': '\\b', 21 | '\t': '\\t', 22 | '\n': '\\n', 23 | '\f': '\\f', 24 | '\r': '\\r', 25 | ' ': '\\v', 26 | '"': '\\"', 27 | '\\': '\\\\', 28 | }; 29 | 30 | function W(t) { 31 | var e = G[t]; 32 | return e || '\\u' + ('0000' + t.charCodeAt(0).toString(16)).slice(-4); 33 | } 34 | 35 | var F = 36 | /[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; 37 | 38 | function L(t) { 39 | F.lastIndex = 0; 40 | return '"' + (F.test(t) ? t.replace(F, W) : t) + '"'; 41 | } 42 | 43 | function j(e) { 44 | var n; 45 | switch (t(e)) { 46 | case 'undefined': 47 | return 'null'; 48 | case 'boolean': 49 | return String(e); 50 | case 'number': 51 | var r = String(e); 52 | return 'NaN' === r || 'Infinity' === r ? 'null' : r; 53 | case 'string': 54 | return L(e); 55 | } 56 | if (null === e || e instanceof RegExp) { 57 | return 'null'; 58 | } 59 | if (e instanceof Date) { 60 | return [ 61 | '"', 62 | e.getFullYear(), 63 | '-', 64 | e.getMonth() + 1, 65 | '-', 66 | e.getDate(), 67 | 'T', 68 | e.getHours(), 69 | ':', 70 | e.getMinutes(), 71 | ':', 72 | e.getSeconds(), 73 | '.', 74 | e.getMilliseconds(), 75 | '"', 76 | ].join(''); 77 | } 78 | if (e instanceof Array) { 79 | var a; 80 | n = ['[']; 81 | for (a = 0; a < e.length; a++) { 82 | n.push(j(e[a]) || '"undefined"', ','); 83 | } 84 | n[n.length > 1 ? n.length - 1 : n.length] = ']'; 85 | return n.join(''); 86 | } 87 | n = ['{']; 88 | for (var o in e) 89 | if (e.hasOwnProperty(o) && undefined !== e[o]) { 90 | n.push(L(o), ':', j(e[o]) || '"undefined"', ','); 91 | } 92 | n[n.length > 1 ? n.length - 1 : n.length] = '}'; 93 | return n.join(''); 94 | } 95 | 96 | function jt(t, e) { 97 | var n = ''; 98 | for (var r = 0; r < t.length; r++) { 99 | n += String.fromCharCode(e ^ t.charCodeAt(r)); 100 | } 101 | return n; 102 | } 103 | 104 | var w = window.btoa; 105 | var x = t(w); 106 | 107 | function B(t) { 108 | return x === 'function' 109 | ? w( 110 | encodeURIComponent(t).replace(/%([0-9A-F]{2})/g, function (t, e) { 111 | return String.fromCharCode('0x' + e); 112 | }) 113 | ) 114 | : (function (t) { 115 | var e; 116 | var n; 117 | var r; 118 | var a; 119 | var o; 120 | var i = window.unescape || window.decodeURI; 121 | var c = 0; 122 | var u = 0; 123 | var s = []; 124 | if (!t) { 125 | return t; 126 | } 127 | try { 128 | t = i(encodeURIComponent(t)); 129 | } catch (e) { 130 | return t; 131 | } 132 | do { 133 | e = ((o = (t.charCodeAt(c++) << 16) | (t.charCodeAt(c++) << 8) | t.charCodeAt(c++)) >> 18) & 63; 134 | n = (o >> 12) & 63; 135 | r = (o >> 6) & 63; 136 | a = 63 & o; 137 | s[u++] = 138 | 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.charAt(e) + 139 | 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.charAt(n) + 140 | 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.charAt(r) + 141 | 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.charAt(a); 142 | } while (c < t.length); 143 | var l = s.join(''); 144 | var f = t.length % 3; 145 | return (f ? l.slice(0, f - 3) : l) + '==='.slice(f || 3); 146 | })(t); 147 | } 148 | 149 | export function encrypt(t, uuid) { 150 | var a = t.slice(); 151 | var o = 'G^S}DNK8DNa>D`K}GK77'; 152 | a = B(jt(j(a), 50)); 153 | var i = uuid; 154 | var c = (function (t, e, n) { 155 | var v = jt(B(n), 10); 156 | var m = []; 157 | var p = -1; 158 | for (var g = 0; g < t.length; g++) { 159 | var y = Math.floor(g / v.length + 1); 160 | var b = g >= v.length ? g % v.length : g; 161 | var T = v.charCodeAt(b) * v.charCodeAt(y); 162 | if (T > p) { 163 | p = T; 164 | } 165 | } 166 | for (var E = 0; t.length > E; E++) { 167 | var S = Math.floor(E / v.length) + 1; 168 | var I = E % v.length; 169 | var A = v.charCodeAt(I) * v.charCodeAt(S); 170 | for (A >= e && (A = Math.floor(((A - 0) / (p - 0)) * (e - 1 - 0) + 0)); -1 !== m.indexOf(A); ) { 171 | A += 1; 172 | } 173 | m.push(A); 174 | } 175 | var R = m.sort(function (t, e) { 176 | return t - e; 177 | }); 178 | return R; 179 | })(o, a.length, i); 180 | a = (function (t, e, n) { 181 | var o = ''; 182 | var i = 0; 183 | var c = t.split(''); 184 | for (var u = 0; u < t.length; u++) { 185 | o += e.substring(i, n[u] - u - 1) + c[u]; 186 | i = n[u] - u - 1; 187 | } 188 | o += e.substring(i); 189 | return o; 190 | })(o, a, c); 191 | return a; 192 | } 193 | -------------------------------------------------------------------------------- /autoReverseCaptcha.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { traverse, types } from '@babel/core'; 4 | import { generate } from '@babel/generator'; 5 | import parser from '@babel/parser'; 6 | import axios from 'axios'; 7 | import fs from 'fs/promises'; 8 | import { JSDOM } from 'jsdom'; 9 | import { Script } from 'vm'; 10 | import { 11 | analyzeFunctionCalls, 12 | convertComputedToProperty, 13 | extractIIFEBody, 14 | inlineImmutableBindings, 15 | removeExcessiveParseIntFunctions, 16 | removeIntermediateFunctions, 17 | } from './utils.js'; 18 | 19 | (async () => { 20 | const appId = 'PXzC5j78di'; 21 | const url = `https://captcha.hsprotect.net/${appId}/captcha.js`; 22 | 23 | /** @type {string} */ 24 | let originalScript = ''; 25 | try { 26 | const response = await axios.get(url); 27 | originalScript = response.data; 28 | } catch (error) { 29 | console.error('Error fetching the script:', error); 30 | return; 31 | } 32 | 33 | const ast = parser.parse(originalScript); 34 | 35 | // Traverse the AST to find and replace function calls 36 | inlineImmutableBindings(ast); 37 | 38 | const fnCalls = analyzeFunctionCalls(ast); 39 | fnCalls.forEach((elem) => { 40 | const { path, fnFinalCallString } = elem; 41 | if (fnFinalCallString) { 42 | path.replaceWithSourceString(fnFinalCallString); 43 | } 44 | }); 45 | 46 | // Remove intermediate functions that are not used 47 | removeIntermediateFunctions(ast, fnCalls); 48 | 49 | // Extract the body of the IIFE and execute it in a JSDOM context 50 | const iifeBodyResult = extractIIFEBody(ast); 51 | const jsdom = new JSDOM( 52 | ` 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | HUMAN Iframe Page 61 | 67 | 68 | 69 |
70 | 102 | 103 | 104 | 105 | 106 | `, 107 | { 108 | runScripts: 'dangerously', 109 | } 110 | ); 111 | 112 | const script = new Script(iifeBodyResult?.code || ''); 113 | 114 | // Execute the IIFE body in jsdom context 115 | try { 116 | script.runInContext(jsdom.getInternalVMContext()); 117 | } catch (err) {} 118 | 119 | // run the IIFE body in a JSDOM context 120 | const { window } = jsdom; 121 | 122 | fnCalls.forEach((elem) => { 123 | const { path, fnFinalCallString } = elem; 124 | if (fnFinalCallString) { 125 | const result = window.eval(fnFinalCallString); 126 | // console.log(`Function call replaced: ${fnFinalCallString} => ${result}`); 127 | path.replaceWith(types.stringLiteral(result)); 128 | } 129 | }); 130 | 131 | // const chatCodeAtResults = findCharCodeAtCalls(ast); 132 | 133 | let replacedAttempts = 0; 134 | for (;;) { 135 | const replaceResults = []; 136 | traverse(ast, { 137 | CallExpression(path) { 138 | const node = path.node; 139 | 140 | if (node.arguments.length !== 1 || !types.isStringLiteral(node.arguments[0])) { 141 | return; 142 | } 143 | 144 | const functionName = node.callee.name; 145 | if (!functionName || ['atob', 'parseInt'].includes(functionName)) return; 146 | 147 | // FIXME: handle the case where the function name is a single character 148 | if (functionName.length === 1) { 149 | // console.log(`Found function call: ${functionName}`); 150 | const stringArg = node.arguments[0].value; 151 | 152 | try { 153 | const stringResult = window.u(stringArg); 154 | if (stringResult !== stringArg) { 155 | replaceResults.push({ 156 | path, 157 | stringResult, 158 | }); 159 | } 160 | } catch (err) {} 161 | } else { 162 | // console.log(`Found function call: ${functionName} with argument: ${node.arguments[0].value}`); 163 | } 164 | }, 165 | }); 166 | 167 | if (replaceResults.length === 0) { 168 | ++replacedAttempts; 169 | if (replacedAttempts === 3) { 170 | break; 171 | } 172 | 173 | continue; 174 | } 175 | 176 | replacedAttempts = 0; 177 | 178 | replaceResults.forEach((result) => { 179 | const { path, stringResult } = result; 180 | path.replaceWith(types.stringLiteral(stringResult)); 181 | }); 182 | } 183 | 184 | // Convert computed properties to regular properties 185 | convertComputedToProperty(ast); 186 | 187 | // Remove excessive parseInt functions 188 | removeExcessiveParseIntFunctions(ast); 189 | 190 | // generate the modified script from the AST 191 | const modifiedScript = generate(ast, { retainLines: false }).code; 192 | 193 | // Save the modified script to a file 194 | const outputPath = './captcha.transformed.js'; 195 | const prettier = await import('prettier'); 196 | const prettierConfig = await prettier.resolveConfig(outputPath); 197 | const formatted = await prettier.format(modifiedScript, { 198 | ...prettierConfig, 199 | filepath: outputPath, 200 | }); 201 | await fs.writeFile(outputPath, formatted, 'utf-8'); 202 | })(); 203 | -------------------------------------------------------------------------------- /readable/eps-d.md: -------------------------------------------------------------------------------- 1 | ### The steps to de-obfuscate eps-d: 2 | 1. Paste `eps-d` into `https://obf-io.deobfuscate.io/`. 3 | 2. Paste the output code into Chrome's JavaScript console to get the values `Gm`, `kB`, `gs`. 4 | 3. Execute this code in https://astexplorer.net/ using `@baber/parser` + `babelv7` transform. 5 | 4. Use http://jsnice.org/ to make the code look better. 6 | 7 | 8 | ```javascript 9 | export default function (babel) { 10 | const { types: t } = babel; 11 | const strs = { 12 | Gm: 'RegExpchangedTouchesreadPixelsfillcreateEventaudio/mpeg_phantom11pt ArialfillStyleHelveticaNeueTRIANGLE_STRIPSerifaabortMAX_VERTEX_UNIFORM_VECTORSHIGH_FLOATerroredAgControl.AgControlcreateShaderheadaudio/wav; codecs="1"randomparentElementPristinaLOW_FLOATheightuserAgenttype..HIGH_INTcontentWindowfunction f(j){var results=0;for(i=0;i<5;i++){results+=i;}if(j%2==0){results+=3;return results;}else{return result;}}availTopwebgl_hpluginsDOMContentLoadedfilteravailHeightsupportedEntryTypesappNameMonotypeCorsivaskippedLeelawadeebeginPathShell.UIHelpervideo/ogg; codecs="theora"webgl_cccanvasavailLeftfbufferDatamintouchend\\sFuturaBkBTtagNameRealVideo.RealVideo(tm) ActiveX Control (32-bit)screenYAudioSimHei__webdriver_script_funcstringifytoUpperCase::EdwardianScriptCenturyglobalCompositeOperationdocumentElement, JuiceITlinkProgramgetAttribLocationwebgl_dNetscapelastModifiedFLOATaih^_[a-zA-Z]serif]getAttributekeys18pt Arialrgb(0,255,255)__webdriver_script_fn__webdriver_unwrappedimplementationQuickTimeCheckObject.QuickTimeCheck.1SequentumtouchmovegetUniformLocationtimeStamp#069scriptMEDIUM_FLOATconsoleVENDORKokilaMTmouseoverptcompileShaderLOW_INTindexedDBperformanceselenium-evaluatewindowcpuClassmapmultiplyWMPlayer.OCXonbindexOfArrayLucidaSansPMingLiUeattrVertexGOTHAMMicrosoftUighur72pxMAX_VARYING_VECTORS applyGillSanssic__SENTRY__pushgetBatteryisPointInPathwebglopenDatabaseno Error.nameActiveXObjectAcroPDF.PDFpermissionsinnerHTMLsuffixesdebugappFRAGMENT_SHADERchromevideotopcauseprecision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}nowinnerWidthMAX_VERTEX_TEXTURE_IMAGE_UNITSDocumentTimelineZWAdobeFIFRAME', 13 | UU: 'SWCtl.SWCtlmousedownMeiryoUIgetImageDataWebGLRenderingContextpstopInternalMsxml2.DOMDocumentfillTextwebgl_iomouseupmsMaxTouchPointsfunctionBatangsrcsmaxTouchPoints#f60ginnerHeightcreateBufferaddBehavioriframeparseIntexternal{[nativecode]}ARRAY_BUFFERAparajitaMTfontseleniumidentifierwebgl_metastartalphabeticsetTimeoutaudio/ogg; codecs="vorbis"Humanst521BTVERTEX_SHADERorientationtouchstartundefinedMAX_VIEWPORT_DIMSgetShaderPrecisionFormatJSONMTExtrauseProgramaudio/aac;canvas_hstring cast failedPerformanceObserverObjectclearTimeoutUNMASKED_RENDERER_WEBGLvendor(^|[^SmallFontsclientYdblclickFunctionsubstringduckduckgoHaettenschweilermessagerttaudio/x-m4a;GREEN_BITSCalibriGishaMTscreenTEMPORARYdriverdevicePixelRatiowebdriverirgetContextAttributesrgb(255,0,255)WorkergetExtension_Selenium_IDE_RecorderTrident__proto__mousemoveJSON.stringify exceptionunknownavailWidthsorttestbodytouchcancelno Error.stackmouseenter]|$)', 14 | kB: "BitstreamVeraSansMonoVERSIONFranklinGothicbaseRemoveChild_e421bb29PDF.PdfCtrlEXT_texture_filter_anisotropiccallSeleniumgetpowDateALIASED_LINE_WIDTH_RANGEsrprotocolAvantGardeBkBTQuickTime.QuickTimetArialUnicodeMSdocumentinsertBefore_e421bb29ogactualBoundingBoxAscentaudiochildrensymbolbuniformOffsetUniversCE55MediumlanguageexceededontouchstartRealPlayerMAX_TEXTURE_SIZETDCCtl.TDCCtlouterHeightstop2dcontainersetMathproductSubenableVertexAttribArraytext[valuerangeMinloadTimeslanguagescallPhantomdataslice])[fillRectMsxml2.XMLHTTPinterrogateMinionProhardwareConcurrencymatchcalltiminginterrogationnoneoffsetUniformonucreateHTMLDocumentnumItemsAdodb.StreamSTENCIL_BITSVrindaRGBAtoLowerCasedumpStringatcreateElementSHADING_LANGUAGE_VERSIONdriver-evaluatenametoStringLetterGothicfromCharCoderepeat ;; vertexPosArrayshaderSourceLucidaBrightrgb(255,255,0)addEventListenerUNSIGNED_BYTEUint8ArrayRealPlayer.RealPlayer(tm) ActiveX Control (32-bit)product__selenium_unwrappedvertexAttribPointerUNMASKED_VENDOR_WEBGL__nightmaredrawArrays~getSupportedExtensionscanvas_dsubstrlocationprecisionactualBoundingBoxDescentuniform2fWEBKIT_EXT_texture_filter_anisotropicMSOutlookMAX_COMBINED_TEXTURE_IMAGE_UNITSfirstChildSegoeUILightnamedItemradiusXgetParameterstyleMAX_TEXTURE_IMAGE_UNITSitemgetTimezoneOffsetcontentDocumentBLUE_BITSmmmmmmmmllicanPlayType_seleniumClarendoncharCodeAtclosePathStaccato222BTBiomeMT$evenoddprototypergba(102, 204, 0, 0.7)TRAJANPROcreateElementNSsltmeasureTextlengthwebdriver-evaluateHighTowergetTimebindWebGL2RenderingContextcreateImageDatastring cast: BankGothicMdBTnavigationStartarcrefreshAVENIRLTProArabicTypesettingdescription,", 15 | gs: `RED_BITSgetOwnPropertyNamesPIabsMAX_CUBE_MAP_TEXTURE_SIZEwidthstringTouchEventbtoaforceselfSTATIC_DRAWSkype.DetectionSCRIPTfromnopemonospaceMacromediaFlashPaper.MacromediaFlashPaperloadbindBufferALPHA_BITSMarlettMSReferenceSpecialtyinlineattachShaderuncollectablegetContextLevenimMTquerySelectorcurrentTimeMAX_TEXTURE_MAX_ANISOTROPY_EXTtoDataURLMAX_VERTEX_ATTRIBSnavigatorscreenX__fxdriver_unwrappedFilebuildIDhistoryvideo/webm; codecs="vp8, vorbis"reese84interrogator[depth limit]removeChildDEPTH_BITSjavascript:rmocx.RealPlayer G2 Control.1[\\u0080-\\uFFFF]insertBeforeprop_ocanvas_fontsjoin__fxdriver_evaluateno Error.cause.pixelDepthactualBoundingBoxRightMOZ_EXT_texture_filter_anisotropic'experimental-webglcreateProgramMYRIADPROFloat32ArrayitemSizeclientXobjectMSMinchomouseoutenabledPluginputImageDatadisplayPERSISTENT__webdriver_evaluateSCRIPTINARENDERERHELVforEachrmocx.RealPlayer G2 Controlplatform;;;textBaselinesans-serifdivgetPrototypeOfradiusY-actualBoundingBoxLeftantialiasARNOPROconnectioncrreeseSkipExpirationCheckBauhaus93$1MEDIUM_INTappendChildMAX_FRAGMENT_UNIFORM_VECTORSctscalevisualViewportremoveEventListener__selenium_evaluatedeviceMemoryvideo/mp4; codecs="avc1.4D401E"canvas_ioano Error.messageImpactedattribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}createAttributeparentNode__driver_unwrapped[\\ud800-\\udbff]$startInternaldata:image/webpScripting.DictionarycFuturaMdBTShockwaveFlash.ShockwaveFlashDevalVRXCtrl.DevalVRXCtrl.1filenamemimeTypesCenturyGothicstMAX_RENDERBUFFER_SIZE__driver_evaluateALIASED_POINT_SIZE_RANGEMicrosoft Internet ExplorerreplaceMSUIGothiccanvas_oCwm fjordbank glyphs vext quiz,stack]([^__webdriver_script_functionvertexPosAttribEUROSTILEAgencyFBouterWidthimage/webpwebgl_o;video/mp4; codecs="avc1.42E01E"rangeMaxrectmouseleaveWebAssemblygetOwnPropertyDescriptorWEBGL_debug_renderer_inforotationAngledoNotTrack`, 16 | }; 17 | 18 | return { 19 | name: "ast-transform", // not required 20 | visitor: { 21 | CallExpression(path) { 22 | if ( 23 | t.isMemberExpression(path.node.callee) && 24 | t.isIdentifier(path.node.callee.object) && 25 | Object.keys(strs).includes(path.node.callee.object.name) && 26 | t.isIdentifier(path.node.callee.property, { name: "substr" }) 27 | ) { 28 | path.replaceWith( 29 | t.stringLiteral( 30 | strs[path.node.callee.object.name].substr( 31 | path.node.arguments[0].value, 32 | path.node.arguments[1].value 33 | ) 34 | ) 35 | ); 36 | } 37 | }, 38 | }, 39 | }; 40 | } 41 | ``` -------------------------------------------------------------------------------- /autoReverseMain.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { traverse, types } from '@babel/core'; 4 | import { generate } from '@babel/generator'; 5 | import parser from '@babel/parser'; 6 | import axios from 'axios'; 7 | import fs from 'fs/promises'; 8 | import { JSDOM } from 'jsdom'; 9 | import { deobfuscate } from 'obfuscator-io-deobfuscator'; 10 | import { Script } from 'vm'; 11 | import { convertComputedToProperty, extractIIFEBodyMain1, inlineImmutableBindings } from './utils.js'; 12 | 13 | (async () => { 14 | const appId = 'PXzC5j78di'; 15 | const url = `https://client.px-cloud.net/${appId}/main.min.js`; 16 | 17 | /** @type {string} */ 18 | let originalScript = ''; 19 | try { 20 | const response = await axios.get(url); 21 | originalScript = response.data; 22 | } catch (err) { 23 | console.error('Error fetching the script:', err); 24 | return; 25 | } 26 | 27 | const deobfedScript = deobfuscate(originalScript, { 28 | objectSimplification: { isEnabled: true }, 29 | objectPacking: { isEnabled: true }, 30 | proxyFunctionInlining: { isEnabled: true }, 31 | stringRevealing: { isEnabled: true }, 32 | expressionSimplification: { isEnabled: true }, 33 | constantPropagation: { isEnabled: true }, 34 | reassignmentRemoval: { isEnabled: true }, 35 | sequenceSplitting: { isEnabled: true }, 36 | controlFlowRecovery: { isEnabled: true }, 37 | deadBranchRemoval: { isEnabled: false }, 38 | antiTamperRemoval: { isEnabled: true }, 39 | unusedVariableRemoval: { isEnabled: true }, 40 | propertySimplification: { isEnabled: true }, 41 | }); 42 | 43 | const ast = parser.parse(deobfedScript); 44 | 45 | // Extract the body of the IIFE and execute it in a JSDOM context 46 | const iifeBodyResult = extractIIFEBodyMain1(ast); 47 | const jsdom = new JSDOM( 48 | ` 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | HUMAN Iframe Page 57 | 63 | 64 | 65 |
66 | 98 | 99 | 100 | 101 | `, 102 | { 103 | runScripts: 'dangerously', 104 | } 105 | ); 106 | 107 | const script = new Script(iifeBodyResult?.code || ''); 108 | 109 | // Execute the IIFE body in jsdom context 110 | try { 111 | script.runInContext(jsdom.getInternalVMContext()); 112 | } catch (err) {} 113 | 114 | // run the IIFE body in a JSDOM context 115 | const { window } = jsdom; 116 | 117 | for (;;) { 118 | const needToReplaceNumberCalls = []; 119 | traverse(ast, { 120 | CallExpression(path) { 121 | const node = path.node; 122 | 123 | if (node.arguments.length !== 1) return; 124 | 125 | const arg1Value = path.get('arguments.0').evaluate(); 126 | if (arg1Value.confident && typeof arg1Value.value === 'number') { 127 | const fnName = node.callee.name; 128 | if (fnName && typeof window[fnName] === 'function') { 129 | const result = window[fnName](arg1Value.value); 130 | needToReplaceNumberCalls.push({ 131 | path, 132 | result, 133 | }); 134 | } 135 | } 136 | }, 137 | }); 138 | 139 | needToReplaceNumberCalls.forEach((elem) => { 140 | const { path, result } = elem; 141 | path.replaceWith(types.stringLiteral(result)); 142 | }); 143 | 144 | const needToReplaceStrCalls = []; 145 | traverse(ast, { 146 | CallExpression(path) { 147 | const node = path.node; 148 | 149 | if (node.arguments.length !== 1) return; 150 | 151 | const arg1Value = path.get('arguments.0').evaluate(); 152 | if (arg1Value.confident && typeof arg1Value.value === 'string') { 153 | const fnName = node.callee.name; 154 | if (fnName && typeof window[fnName] === 'function') { 155 | try { 156 | const result = window[fnName](arg1Value.value); 157 | if (typeof result === 'string') { 158 | needToReplaceStrCalls.push({ 159 | path, 160 | result, 161 | }); 162 | } 163 | } catch (err) {} 164 | } 165 | } 166 | }, 167 | }); 168 | 169 | needToReplaceStrCalls.forEach((elem) => { 170 | const { path, result } = elem; 171 | path.replaceWith(types.stringLiteral(result)); 172 | }); 173 | 174 | if (needToReplaceNumberCalls.length === 0 && needToReplaceStrCalls.length === 0) { 175 | break; 176 | } 177 | } 178 | 179 | // Traverse the AST to find and replace function calls 180 | inlineImmutableBindings(ast); 181 | 182 | // Convert computed properties to regular properties 183 | convertComputedToProperty(ast); 184 | 185 | window.close(); 186 | 187 | // generate the modified script from the AST 188 | const modifiedScript = generate(ast, { retainLines: false }).code; 189 | 190 | // Save the modified script to a file 191 | const outputPath = `./main_${appId}.transformed.js`; 192 | const prettier = await import('prettier'); 193 | const prettierConfig = await prettier.resolveConfig(outputPath); 194 | const formatted = await prettier.format(modifiedScript, { 195 | ...prettierConfig, 196 | filepath: outputPath, 197 | }); 198 | await fs.writeFile(outputPath, formatted, 'utf-8'); 199 | })(); 200 | -------------------------------------------------------------------------------- /source/iamNotaRobot.js: -------------------------------------------------------------------------------- 1 | function pxLang(a) { 2 | if (a) 3 | a = a.toLowerCase(); 4 | const m = { 5 | en: "en", 6 | "en-us": "en", 7 | "it": "it", 8 | "it-it": "it", 9 | "it-ch": "it", 10 | "fr": "fr", 11 | "fr-ca": "fr-ch", 12 | "fr-fr": "fr", 13 | "es-mx": "es" 14 | }; 15 | var b = m[a]; 16 | if (!b) 17 | b = 'en'; 18 | return b; 19 | } 20 | 21 | function iamNotaRobotPX(lang, brand='api', action='captcha', epsCaptcha, baseUrl) { 22 | if (typeof _isPxMobile === 'undefined' || _isPxMobile === null) { 23 | _isPxMobile = 0; 24 | } 25 | epsCaptcha.innerHTML = "
"; 26 | const captchaDiv = epsCaptcha.querySelector('#captcha-box'); 27 | captchaDiv.innerHTML = '
'; 28 | window._pxSelectedLocale = pxLang(lang); 29 | window._pxAppId = _pxAppId; 30 | window._pxHostUrl = `https://collector-${_pxAppId}.perimeterx.net`; 31 | window._pxJsClientSrc = `//client.perimeterx.net/${_pxAppId}/main.min.js`; 32 | window._pxFirstPartyEnabled = 'true'; 33 | window._pxTranslation = { 34 | fr: [{ 35 | selector: ".px-captcha-header", 36 | text: "Veuillez vérifier que vous êtes un humain" 37 | }, { 38 | selector: ".px-captcha-message", 39 | text: "Appuyez et maintenez enfoncé pour confirmer que vous êtes un humain (et non un bot)." 40 | }], 41 | it: [{ 42 | selector: ".px-captcha-header", 43 | text: "Per favore verifica di essere un essere umano" 44 | }, { 45 | selector: ".px-captcha-message", 46 | text: "Tieni premuto per confermare che sei un essere umano (e non un bot)." 47 | }], 48 | es: [{ 49 | selector: ".px-captcha-header", 50 | text: "Por favor, compruebe que es un ser humano." 51 | }, { 52 | selector: ".px-captcha-message", 53 | text: "Mantén presionado para confirmar que eres un humano (y no un bot)." 54 | }], 55 | en: [{ 56 | selector: ".px-captcha-header", 57 | text: "Please Verify You Are A Human" 58 | }, { 59 | selector: ".px-captcha-message", 60 | text: "Press & Hold to confirm you are a human (and not a bot)." 61 | }] 62 | }; 63 | var pc = document.createElement('script'); 64 | const captchaHost = 'https://captcha.px-cdn.net'; 65 | const altCaptchaHost = 'https://captcha.px-cloud.net'; 66 | pc.src = `${captchaHost}/${_pxAppId}/captcha.js?a=c&m=${_isPxMobile}`; 67 | document.head.appendChild(pc); 68 | pc.onerror = function() { 69 | pc = document.createElement('script'); 70 | pc.src = `${altCaptchaHost}/${_pxAppId}/captcha.js?a=c&m=${_isPxMobile}`; 71 | document.head.appendChild(pc); 72 | } 73 | ; 74 | document.head.appendChild(pc); 75 | loadCommonResources(baseUrl, 'captcha'); 76 | } 77 | 78 | function setGlobalVariables(vars) { 79 | const globalVariabes = document.createElement('script'); 80 | globalVariabes.setAttribute('type', 'text/javascript'); 81 | globalVariabes.textContent = vars; 82 | document.head.appendChild(globalVariabes); 83 | } 84 | 85 | function loadCommonResources(baseUrl, action) { 86 | const actionScript = document.createElement('script'); 87 | actionScript.setAttribute('type', 'text/javascript'); 88 | actionScript.setAttribute('src', `${baseUrl}/asset/${action}.js`); 89 | actionScript.onload = ()=>eval('load()'); 90 | document.head.appendChild(actionScript); 91 | actionScript.remove(); 92 | const actionCss = document.createElement('link'); 93 | actionCss.setAttribute('type', 'text/css'); 94 | actionCss.setAttribute('href', `${baseUrl}/asset/eps.css`) 95 | actionCss.setAttribute('rel', 'stylesheet') 96 | document.head.appendChild(actionCss); 97 | const viewport = document.createElement('meta') 98 | viewport.setAttribute('name', 'viewport'); 99 | viewport.setAttribute('content', 'width=device-width, initial-scale=1'); 100 | document.head.appendChild(viewport); 101 | } 102 | 103 | function iamNotaRobotD(lang, brand='api', action='captcha', epsCaptcha, baseUrl) { 104 | let xhr = new XMLHttpRequest(); 105 | xhr.open('GET', baseUrl + '/amigood'); 106 | xhr.setRequestHeader('x-lang', lang); 107 | xhr.setRequestHeader('brand', brand); 108 | xhr.setRequestHeader('requesting-host', window.location.host); 109 | xhr.onreadystatechange = function() { 110 | if (xhr.readyState === XMLHttpRequest.DONE) { 111 | const parser = new DOMParser(); 112 | const epsContent = parser.parseFromString(xhr.responseText, 'text/html'); 113 | const scripts = Array.from(epsContent.querySelectorAll('script')); 114 | scripts.filter(script=>script.hasAttribute('src') && script.getAttribute('src').includes('geetest')).map(script=>{ 115 | const scriptEL = document.createElement('script'); 116 | scriptEL.setAttribute('src', script.getAttribute('src')); 117 | document.head.appendChild(scriptEL); 118 | script.remove(); 119 | epsCaptcha.innerHTML = epsContent.body.innerHTML; 120 | scriptEL.onload = ()=>{ 121 | scripts.filter(script=>script.textContent.includes('#captcha-box') || script.textContent.includes('function solvedCaptcha(payload)')).forEach(element=>{ 122 | const scriptEL = document.createElement('script'); 123 | scriptEL.textContent = element.textContent; 124 | scriptEL.setAttribute('type', 'text/javascript'); 125 | document.head.appendChild(scriptEL); 126 | element.remove() 127 | } 128 | ); 129 | } 130 | } 131 | ); 132 | loadCommonResources(baseUrl, 'captcha'); 133 | } 134 | } 135 | ; 136 | xhr.send(); 137 | } 138 | ; 139 | function iamNotaRobot(lang, brand='api', action='captcha') { 140 | const realBrand = (brand === 'api' ? 'tm' : brand); 141 | const epsCaptcha = document.querySelector('#eps-captcha'); 142 | epsCaptcha.style = "background: rgb(255, 255, 255);"; 143 | const baseUrl = Array.from(document.querySelectorAll('script')).filter(script=>script.hasAttribute('src') && script.getAttribute('src').includes('eps-mgr')).map(script=>{ 144 | const elements = script.getAttribute('src').split('/'); 145 | return elements[0] + "//" + elements[2]; 146 | } 147 | )[0]; 148 | if (action == 'block') { 149 | setGlobalVariables(`var rid="${dt}"; var ip="${client_ip}";var al="${lang}";`); 150 | epsCaptcha.innerHTML = "
"; 151 | loadCommonResources(baseUrl, 'block'); 152 | return; 153 | } 154 | 155 | setGlobalVariables(`var tc="";var rid="${dt}";var rr="";var host="${window.location.host}";var ip="${client_ip}";var action="${action}";var al="${lang}";var ss="${realBrand}.css";`); 156 | 157 | if (eps_dg == 'p') { 158 | iamNotaRobotPX(lang, brand, action, epsCaptcha, baseUrl); 159 | } else { 160 | iamNotaRobotD(lang, brand, action, epsCaptcha, baseUrl); 161 | } 162 | } 163 | -------------------------------------------------------------------------------- /source/eps-mgr: -------------------------------------------------------------------------------- 1 | var s = document.createElement('script'); 2 | s.src = 'https://epsf.ticketmaster.com/asset/iamNotaRobot.js'; 3 | s.charset = 'utf-8'; 4 | document.head.appendChild(s); 5 | var nd_enabled = false; 6 | var client_ip = '24.225.131.119'; 7 | var dt = '2024-08-05T19:27:30Z-400'; 8 | var h = window.location.host; 9 | var d_f = new Map([["www.ticketmaster.co.uk", ["d", "g"]], ["my.ticketmaster.com", ["d"]], ["my.livenation.com", ["d"]], ["my.ticketmaster.ca", ["d"]], ["my.ticketmaster.ae", ["p"]], ["my.ticketmaster.at", ["p"]], ["my.ticketmaster.be", ["p"]], ["my.ticketmaster.ch", ["p"]], ["my.ticketmaster.co.nz", ["p"]], ["my.ticketmaster.co.uk", ["p"]], ["my.ticketmaster.co.za", ["p"]], ["my.ticketmaster.com.au", ["p"]], ["my.ticketmaster.com.mx", ["p"]], ["my.ticketmaster.cz", ["p"]], ["my.ticketmaster.de", ["p"]], ["my.ticketmaster.dk", ["p"]], ["my.ticketmaster.es", ["p"]], ["my.ticketmaster.fi", ["p"]], ["my.ticketmaster.ie", ["p"]], ["my.ticketmaster.nl", ["p"]], ["my.ticketmaster.no", ["p"]], ["my.ticketmaster.pl", ["p"]], ["my.ticketmaster.se", ["p"]], ["citylive.trium.fr", ["p"]], ["am.ticketmaster.com", ["d"]], ["auth.ticketmaster.com", ["d", "g"]], ["payments.ticketmaster.com", ["p"]], ["payments.ticketmaster.co.uk", ["p"]], ["www.ticketmaster.com", ["d", "p", "g"]], ["www.ticketmaster.ca", ["d", "p", "g"]], ["checkout.ticketmaster.com", ["d", "p", "g"]], ["www.ticketmaster.ae", ["p", "g", "d"]], ["www.ticketmaster.at", ["p", "g", "d"]], ["www.ticketmaster.se", ["p", "g", "d"]], ["www.ticketmaster.be", ["p", "g", "d"]], ["www.ticketmaster.ch", ["p", "g", "d"]], ["www.ticketmaster.cz", ["p", "g", "d"]], ["www.ticketmaster.de", ["p", "g", "d"]], ["www.ticketmaster.dk", ["p", "g", "d"]], ["www.ticketmaster.es", ["p", "g", "d"]], ["www.ticketmaster.fi", ["p", "g", "d"]], ["www.ticketmaster.nl", ["p", "g", "d"]], ["www.ticketmaster.no", ["p", "g", "d"]], ["www.ticketmaster.pl", ["p", "g", "d"]], ["www.ticketmaster.co.za", ["p", "g", "d"]], ["beta.ticketmaster.ae", ["p", "g", "d"]], ["beta.ticketmaster.at", ["p", "g", "d"]], ["beta.ticketmaster.se", ["p", "g", "d"]], ["beta.ticketmaster.be", ["p", "g", "d"]], ["beta.ticketmaster.ch", ["p", "g", "d"]], ["beta.ticketmaster.cz", ["p", "g", "d"]], ["beta.ticketmaster.de", ["p", "g", "d"]], ["beta.ticketmaster.dk", ["p", "g", "d"]], ["beta.ticketmaster.es", ["p", "g", "d"]], ["beta.ticketmaster.fi", ["p", "g", "d"]], ["beta.ticketmaster.nl", ["p", "g", "d"]], ["beta.ticketmaster.no", ["p", "g", "d"]], ["beta.ticketmaster.pl", ["p", "g", "d"]], ["beta.ticketmaster.co.za", ["p", "g", "d"]], ["alpha.ticketmaster.ae", ["p", "g", "d"]], ["alpha.ticketmaster.at", ["p", "g", "d"]], ["alpha.ticketmaster.se", ["p", "g", "d"]], ["alpha.ticketmaster.be", ["p", "g", "d"]], ["alpha.ticketmaster.ch", ["p", "g", "d"]], ["alpha.ticketmaster.cz", ["p", "g", "d"]], ["alpha.ticketmaster.de", ["p", "g", "d"]], ["alpha.ticketmaster.dk", ["p", "g", "d"]], ["alpha.ticketmaster.es", ["p", "g", "d"]], ["alpha.ticketmaster.fi", ["p", "g", "d"]], ["alpha.ticketmaster.nl", ["p", "g", "d"]], ["alpha.ticketmaster.no", ["p", "g", "d"]], ["alpha.ticketmaster.pl", ["p", "g", "d"]], ["alpha.ticketmaster.co.za", ["p", "g", "d"]], ["www.zz.ticketmaster.eu", ["p", "d"]], ["recette.ticketmaster.fr", ["p"]], ["billetterie.groupama-stadium.com", ["p"]], ["billetterie-stg.groupama-stadium.com", ["p"]], ["billetterie.ldlcarena.com", ["p"]], ["billetterie-stg.ldlcarena.com", ["p"]], ["billetterie.cultura.com", ["p"]], ["billetterie-stg.accorarena.com", ["p"]], ["billetterie.accorarena.com", ["p"]], ["recette.spectacles.carrefour.fr", ["p"]], ["spectacles.carrefour.fr", ["p"]], ["www.spectacles.carrefour.fr", ["p"]], ["www.spectaclescarrefour.leparisien.fr", ["p"]], ["www.leclercbilletterie.com", ["p"]], ["tickets.cdiscount.com", ["p"]], ["billetterie.adidasarena.com", ["p"]], ["billetterie.arkeaarena.com", ["p"]], ["billetterie.arenaaix.com", ["p"]], ["www.loisirs.showroomprive.com", ["p"]], ["demo.ticketmaster.fr", ["g", "p"]], ["www.ticketmaster.fr", ["g", "p"]], ["recette.spectacles.carrefour.fr", ["p"]], ["www.ticketmaster.ie", ["d", "g"]], ["www.ticketmaster.com.au", ["d", "g"]], ["nflhospitality.tmtickets.de", ["d", "g"]], ["nflhospitality.uat.tmtickets.de", ["d", "g"]], ["concerts.livenation.com", ["d", "g"]], ["ticketmaster.com.mx", ["d", "g"]], ["www.ticketmaster.com.mx", ["d", "g"]], ["billetterie.aegpresents.fr", ["g", "p"]]]); 10 | let features = d_f.get(h); 11 | if (features && features.length > 0) { 12 | for (let i = 0; i < features.length; i++) { 13 | if (features[i] == 'h') { 14 | try { 15 | var tagLoaded, sm, humanConfig = {}, humanScriptSrc = 'https://s.jwndnv.com/static/2.64.1/pagespeed.js?mo=2&ci=411638&dt=4116381628729041890000&pd=acc&spa=1&dom=s.jwndnv.com', maxFailCount = 5, debug = !0, maxHeaderSize = 4e3, appName = 'tm_pp', regex = 'am.ticketmaster.com' === h || 'stg1-am.ticketmaster.com' === h ? /\/render-ticket\/secure-barcode/ : /.+/, humanRequestFailCount = (setHumanConfig({ 16 | protectedRequestRules: [{ 17 | apiDomain: h, 18 | pathRegexes: [regex] 19 | }], 20 | excludedRequestRules: [] 21 | }), 22 | 0), humanScriptURLdomain = getLocation(humanScriptSrc).hostname, signalHandler = function(e) { 23 | for (var t = { 24 | OZ_TC: e.OZ_TC 25 | }, n = e.OZ_DT, a = 0; t['OZ_DT' + a] = n.substring(0, maxHeaderSize), 26 | n = n.substring(maxHeaderSize); a++) 27 | ; 28 | var r = utf8_to_b64(e.OZ_SG); 29 | for (a = 0; ; a++) { 30 | 1; 31 | if (t['OZ_SG' + a] = r.substring(0, maxHeaderSize), 32 | !(r = r.substring(maxHeaderSize))) 33 | break 34 | } 35 | return t 36 | }; 37 | function setHumanConfig(e) { 38 | humanConfig = e 39 | } 40 | function utf8_to_b64(e) { 41 | try { 42 | return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g, function(e, t) { 43 | return String.fromCharCode(parseInt(t, 16)) 44 | })) 45 | } catch (e) { 46 | return errorHandler(e, 'Error converting UTF8 to B64.'), 47 | '' 48 | } 49 | } 50 | function errorHandler(e, t) { 51 | t = (t += ' (') + (null != e ? e.message : 'null') + ')'; 52 | debug && console.log(t) 53 | } 54 | function buildRouteRegex() { 55 | try { 56 | for (var e = 0; e < humanConfig.protectedRequestRules.length; e++) 57 | humanConfig.protectedRequestRules[e].domainRegex = new RegExp(humanConfig.protectedRequestRules[e].apiDomain,'i'), 58 | 0 != humanConfig.protectedRequestRules[e].pathRegexes.length && (t = humanConfig.protectedRequestRules[e].pathRegexes.map(e=>'string' == typeof e ? e : new RegExp(e).source).join('|'), 59 | humanConfig.protectedRequestRules[e].routesRegex = new RegExp(t,'i')); 60 | for (var t, e = 0; e < humanConfig.excludedRequestRules.length; e++) 61 | humanConfig.excludedRequestRules[e].domainRegex = new RegExp(humanConfig.excludedRequestRules[e].apiDomain,'i'), 62 | 0 != humanConfig.excludedRequestRules[e].pathRegexes.length && (t = humanConfig.excludedRequestRules[e].pathRegexes.map(e=>'string' == typeof e ? e : new RegExp(e).source).join('|'), 63 | humanConfig.excludedRequestRules[e].routesRegex = new RegExp(t,'i')) 64 | } catch (e) { 65 | errorHandler(e, 'Error creating Regex.') 66 | } 67 | } 68 | function getLocation(e) { 69 | var t = e.match(/^(https?\:)\/\/(([^:\/?#]*)(?:\:([0-9]+))?)([\/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/); 70 | return t && { 71 | href: e, 72 | protocol: t[1], 73 | host: t[2], 74 | hostname: t[3], 75 | port: t[4], 76 | pathname: t[5], 77 | search: t[6], 78 | hash: t[7] 79 | } 80 | } 81 | function checkRoute(t, n) { 82 | try { 83 | return 0 < humanConfig.protectedRequestRules.filter(e=>!(!e.domainRegex.test(t) || !e.routesRegex.test(n))).length && 0 == humanConfig.excludedRequestRules.filter(e=>!(!e.domainRegex.test(t) || !e.routesRegex.test(n))).length 84 | } catch (e) { 85 | return errorHandler(e, 'Failed while comparing XHR Route to Regex.'), 86 | !1 87 | } 88 | } 89 | var ht = document.createElement('script') 90 | , hs = (ht.type = 'text/javascript', 91 | ht.src = humanScriptSrc, 92 | tagLoaded = new Promise(function(e, t) { 93 | ht.onload = function() { 94 | try { 95 | sm = window.$$$.start({ 96 | si: appName 97 | }) 98 | } catch (e) { 99 | t() 100 | } 101 | e() 102 | } 103 | } 104 | ).catch(e=>{ 105 | errorHandler(e, 'Error in tagLoaded Promise.') 106 | } 107 | ), 108 | document.getElementsByTagName('script')[0]); 109 | hs.parentNode.insertBefore(ht, hs) 110 | } catch (e) { 111 | errorHandler(e, 'failed while creating Script Object.') 112 | } 113 | buildRouteRegex(), 114 | function() { 115 | try { 116 | var t = XMLHttpRequest.prototype.open; 117 | XMLHttpRequest.prototype.open = function() { 118 | if (maxFailCount <= humanRequestFailCount) 119 | return t.apply(this, [].slice.call(arguments)); 120 | try { 121 | this._method = arguments[0]; 122 | return /^https?:\/\//i.test(arguments[1]) ? this._urlObj = getLocation(arguments[1]) : this._urlObj = getLocation(new URL(arguments[1],document.baseURI).href), 123 | this._urlObj.hostname.toLowerCase() == humanScriptURLdomain.toLowerCase() ? this._dontPatch = !0 : this._dontPatch = !1, 124 | this._urlObj && !checkRoute(this._urlObj.hostname, this._urlObj.pathname) && (this._dontPatch = !0), 125 | this._async = arguments.length < 3 || arguments[2], 126 | t.apply(this, [].slice.call(arguments)) 127 | } catch (e) { 128 | return humanRequestFailCount++, 129 | console.log(e), 130 | t.apply(this, [].slice.call(arguments)) 131 | } 132 | } 133 | } catch (e) { 134 | errorHandler(e, 'Failed while monkey patching XMLHttpRequest.open().') 135 | } 136 | try { 137 | var r = XMLHttpRequest.prototype.send; 138 | XMLHttpRequest.prototype.send = function(a) { 139 | maxFailCount <= humanRequestFailCount || this._dontPatch ? r.call(this, a) : tagLoaded.then(()=>{ 140 | sm.report().then(signalHandler).then(e=>{ 141 | for (var t = Object.keys(e), n = 0; n < t.length; n++) 142 | this.setRequestHeader(t[n], e[t[n]]); 143 | r.call(this, a) 144 | } 145 | ).catch(e=>{ 146 | humanRequestFailCount++, 147 | errorHandler(e, 'Error in Live Signal Route report() call.'), 148 | r.call(this, a) 149 | } 150 | ) 151 | } 152 | ).catch(e=>{ 153 | humanRequestFailCount++, 154 | r.call(this, a) 155 | } 156 | ) 157 | } 158 | } catch (e) { 159 | errorHandler(e, 'Failed while monkey patching XMLHttpRequest.send().') 160 | } 161 | }(); 162 | try { 163 | let i = window.fetch; 164 | window.fetch = async function(o, s) { 165 | return maxFailCount <= humanRequestFailCount ? i.call(this, o, s) : tagLoaded.then(()=>{ 166 | var e, t; 167 | return t = ('string' != typeof o || /^https?:\/\//i.test(o) ? (e = getLocation('string' == typeof o ? new URL(o).href : o.url).hostname, 168 | getLocation('string' == typeof o ? new URL(o).href : o.url)) : (e = getLocation(new URL(o,document.baseURI).href).hostname, 169 | getLocation(new URL(o,document.baseURI).href))).pathname, 170 | e.toLowerCase() != humanScriptURLdomain.toLowerCase() && checkRoute(e, t) ? sm.report().then(signalHandler).then(e=>{ 171 | for (var t = new Request(o,s), n = new Headers(t.headers), a = Object.keys(e), r = 0; r < a.length; r++) 172 | n.append(a[r], e[a[r]]); 173 | return i.call(this, t, { 174 | headers: n 175 | }) 176 | } 177 | ).catch(e=>(humanRequestFailCount++, 178 | errorHandler(e, 'Error in Live Signal Route report() call.'), 179 | i.call(this, o, s))) : i.call(this, o, s) 180 | } 181 | ).catch(e=>(humanRequestFailCount++, 182 | errorHandler(e, 'The tag load promise failed'), 183 | i.call(this, o, s))) 184 | } 185 | } catch (e) { 186 | errorHandler(e, 'Failed while monkey patching fetch().') 187 | } 188 | } else if (features[i] == 'd') { 189 | var eps_dg = 'd'; 190 | s = document.createElement('script'); 191 | s.src = 'https://epsf.ticketmaster.com/eps-d'; 192 | s.charset = 'utf-8'; 193 | document.head.appendChild(s); 194 | } else if (features[i] == 'n') { 195 | nd_enabled = true; 196 | } else if (features[i] == 'g') { 197 | { 198 | const gecHost = 'epsf.ticketmaster.com'; 199 | (async()=>{ 200 | function e(c, o) { 201 | return new Promise((t,e)=>{ 202 | let a = !0 203 | , n = async()=>{ 204 | var e = await c(); 205 | if (e) 206 | return t(e); 207 | a && setTimeout(n, 100) 208 | } 209 | ; 210 | n(), 211 | o && setTimeout(()=>{ 212 | a = !1, 213 | t() 214 | } 215 | , o) 216 | } 217 | ) 218 | } 219 | let n = '6LdWxZEkAAAAAIHtgtxW_lIfRHlcLWzZMMiwx9E1'; 220 | var t, a, c = document.createElement('style'), c = (c.innerHTML = '.grecaptcha-badge { visibility: hidden; }', 221 | document.head.appendChild(c), 222 | document.createElement('script')), o = { 223 | '.*tmtickets.*': 'sports' 224 | }; 225 | let i = 'default'; 226 | for (t in o) 227 | a = document.URL, 228 | new RegExp(t).test(a) && (i = o[t]); 229 | c.src = 'https://www.google.com/recaptcha/enterprise.js?render=' + n, 230 | c.defer = !0, 231 | c.onload = async()=>{ 232 | let a = ''; 233 | 'sports' === i ? (a = window.dataLayer[0].ClientIdentifier, 234 | a += '_' + window.dataLayer[0].PageType.toLowerCase()) : a = await e(()=>window.digitalData?.page?.pageInfo?.pageName, 5e3), 235 | a = a || document.URL.split('/').slice(2, 5).join('/'), 236 | (await e(()=>window.grecaptcha?.enterprise?.ready))(async()=>{ 237 | var e = a.replace(/[^A-Z]+/gi, '_') 238 | , t = await grecaptcha.enterprise.execute(n, { 239 | action: e 240 | }).catch(e=>console.error('gec execute failed: ' + e)); 241 | t && (e = [window.location.hostname, n, encodeURIComponent(e), encodeURIComponent(t)].join('/'), 242 | t = `https://${gecHost}/gec/v2/` + e + document.location.search, 243 | (new Image).src = t) 244 | } 245 | ) 246 | } 247 | , 248 | document.head.appendChild(c) 249 | } 250 | )().catch(e=>{ 251 | console.error('gec failed: ' + e) 252 | } 253 | ); 254 | } 255 | } else if (features[i] == 'm') { 256 | (async()=>{ 257 | var e, a, t, n, o; 258 | e = window, 259 | a = document, 260 | t = 'script', 261 | n = 'https://www.datadoghq-browser-agent.com/us1/v5/datadog-rum.js', 262 | e = e[o = 'DD_RUM'] = e[o] || { 263 | q: [], 264 | onReady: function(a) { 265 | e.q.push(a) 266 | } 267 | }, 268 | (o = a.createElement(t)).async = 1, 269 | o.src = 'https://www.datadoghq-browser-agent.com/us1/v5/datadog-rum.js', 270 | (n = a.getElementsByTagName(t)[0]).parentNode.insertBefore(o, n); 271 | window.DD_RUM.onReady(function() { 272 | window.DD_RUM.init({ 273 | clientToken: 'pub83028f47283c30775066b8fc4ee6d05f', 274 | applicationId: '344438d7-5732-4fff-ba1a-78189a1ea812', 275 | site: 'datadoghq.com', 276 | service: (((window.digitalData || {}).page || {}).pageInfo || {}).domain || 'unknown', 277 | env: (((window.digitalData || {}).page || {}).pageInfo || {}).environment || 'prod', 278 | sessionSampleRate: 100, 279 | sessionReplaySampleRate: 0, 280 | trackUserInteractions: !0, 281 | trackResources: !0, 282 | trackLongTasks: !0, 283 | defaultPrivacyLevel: 'mask' 284 | }), 285 | TMAuthAdaptorStandalone && TMAuthAdaptorStandalone.init({ 286 | integratorId: 'prd124.abuse-prevention', 287 | placementId: 'datadog' 288 | }).getUser(!1).then(a=>{ 289 | window.DD_RUM.setUser({ 290 | id: a.hmacUserId, 291 | name: a.firstName + ' ' + a.lastName, 292 | email: a.emailAddress 293 | }) 294 | } 295 | ) 296 | }) 297 | } 298 | )().catch(a=>{ 299 | console.error('datadog failed: ' + a) 300 | } 301 | ); 302 | } else if (features[i] == 'p') { 303 | var eps_dg = 'p'; 304 | var pp = document.createElement('script'); 305 | pp.src = 'https://epsf.ticketmaster.com/eps-p'; 306 | pp.charset = 'utf-8'; 307 | document.head.appendChild(pp); 308 | } else if (features[i] == 'i') { 309 | i_sdk = document.createElement('script'); 310 | i_sdk.src = 'https://www.ipqscdn.com/api/ticketmaster.co.uk/FO7QZkCuyNhsd5pyrXGwbD1Pjo2nXPVR32tvxupSSKShG8NxLoZ7MR7vW01glZRWm4hN7fj1D1Rmp5S4V8sOpINsxOiQVcKlf5zBZUlJ106qq8PXg9lzu3DamqPsIacBRFbYxxCuXbOeSJZbJMn7f0o8iFC96hP1rXufJGwZdulqMVe8OsPZ54MgWz7VllPTPcFToQ8xHA4ivIo2gmrnUQ3pUm6WEkLwToo9T0axKQxqlIf7EesIBLM75G8hEfxd/learn.js'; 311 | i_sdk.charset = 'utf-8'; 312 | document.head.appendChild(i_sdk); 313 | } 314 | ; 315 | } 316 | } else { 317 | var eps_dg = 'd'; 318 | s = document.createElement('script'); 319 | s.src = 'https://epsf.ticketmaster.com/eps-d'; 320 | s.charset = 'utf-8'; 321 | document.head.appendChild(s); 322 | } 323 | ;if (nd_enabled) { 324 | var epsSID = '523b198b89ce5a28c5edf2fe284ed5f24fe5acab'; 325 | var ns = document.createElement('script'); 326 | ns.src = 'https://epsf.ticketmaster.com/asset/nd.js'; 327 | ns.charset = 'utf-8'; 328 | document.head.appendChild(ns); 329 | } 330 | -------------------------------------------------------------------------------- /readable/init_8.9.6.md: -------------------------------------------------------------------------------- 1 | ### The steps to de-obfuscate init_8.9.6: 2 | 1. Paste `init_8.9.6` of the source into `https://obf-io.deobfuscate.io/`. 3 | 2. You may get a code like `0++`, it's okay, you can just change it to `e.cssFromStyleSheets++;`. 4 | 3. Looking at the code, we see that the call to function `R` needs to be replaced. It looks like computing the string. 5 | 4. I also found a lot of similar operations: `gl`, `Ef`, `Fs`, `Qf`, `Xh`, `Ri`, `Ey`, `cp`, `$h`, `mh` function, etc. 6 | 5. Specifically, I noticed that the code contains something like `+ parseInt`, this is a special treatment of the order of the array of strings. We have to adjust the strings in `Ri`, `Ef`, `gl`, `cp`, `Qf`, `Fs`, `mh`, `Xh`, `Ey`, `$h` accordingly. 7 | 6. Put some special treatment on the function `c`. 8 | 7. Execute this code in https://astexplorer.net/ using `@baber/parser` + `babelv7` transform. 9 | 8. Paste the code into https://obf-io.deobfuscate.io/ (uncheck "Simplify Objects") and let it help us optimize the code structure. 10 | 11 | 12 | ```javascript 13 | export default function (babel) { 14 | const { types: t } = babel; 15 | var E = (function () { 16 | try { 17 | return window.atob; 18 | } catch (t) {} 19 | })(); 20 | 21 | function f(t) { 22 | f = 23 | "function" == typeof Symbol && "symbol" == typeof Symbol.iterator 24 | ? function (t) { 25 | return typeof t; 26 | } 27 | : function (t) { 28 | return t && 29 | "function" == typeof Symbol && 30 | t.constructor === Symbol && 31 | t !== Symbol.prototype 32 | ? "symbol" 33 | : typeof t; 34 | }; 35 | return f(t); 36 | } 37 | 38 | function R(t) { 39 | return f(E) === "function" 40 | ? E(t) 41 | : (function (t) { 42 | var e; 43 | var n; 44 | var r; 45 | var a; 46 | var o = []; 47 | var c = 0; 48 | var i = t.length; 49 | try { 50 | if ( 51 | /[^+/=0-9A-Za-z]/.test(t) || 52 | (/=/.test(t) && (/=[^=]/.test(t) || /={3}/.test(t))) 53 | ) { 54 | return null; 55 | } 56 | for ( 57 | i % 4 > 0 && 58 | (i = (t += window.Array(4 - (i % 4) + 1).join("=")).length); 59 | c < i; 60 | 61 | ) { 62 | n = []; 63 | for (a = c; c < a + 4; ) { 64 | n.push( 65 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf( 66 | t.charAt(c++) 67 | ) 68 | ); 69 | } 70 | r = [ 71 | ((e = 72 | (n[0] << 18) + 73 | (n[1] << 12) + 74 | ((63 & n[2]) << 6) + 75 | (63 & n[3])) & 76 | 16711680) >> 77 | 16, 78 | 64 === n[2] ? -1 : (65280 & e) >> 8, 79 | 64 === n[3] ? -1 : 255 & e, 80 | ]; 81 | for (a = 0; a < 3; ++a) { 82 | if (r[a] >= 0 || 0 === a) { 83 | o.push(String.fromCharCode(r[a])); 84 | } 85 | } 86 | } 87 | return o.join(""); 88 | } catch (t) { 89 | return null; 90 | } 91 | })(t); 92 | } 93 | 94 | function gl(t, e) { 95 | const n = [ 96 | "HyhDBUZYdQ", 97 | "push", 98 | "outerWidth", 99 | "HyhDBkNQdw", 100 | "input", 101 | "getAttribute", 102 | "HyhDBkZZdQ", 103 | "HyhDBURRfg", 104 | "4320224yAoFuM", 105 | "documentMode", 106 | "HyhDBUdQdg", 107 | "HyhDBUBRdg", 108 | "d2ViZHJpdmVy", 109 | "deviceMemory", 110 | "HyhDBkBZcg", 111 | "architecture", 112 | "HyhDBkJZfg", 113 | "constructor", 114 | "HyhDBkNbcQ", 115 | "test", 116 | "HyhDBkJddg", 117 | "enabledPlugin", 118 | "2238xWgSdL", 119 | "HyhDBkNQdg", 120 | "call", 121 | "HyhDBUZfdg", 122 | "length", 123 | "true", 124 | "HyhDBUZQdQ", 125 | "width", 126 | "rtt", 127 | "battery", 128 | "DateTimeFormat", 129 | "matches", 130 | "HyhDBUdYcA", 131 | "HyhDBURdcg", 132 | "value", 133 | "HyhDBUBffg", 134 | "HyhDBUdbdw", 135 | "(any-hover: none), (any-pointer: coarse)", 136 | "HyhDBkBccQ", 137 | "HyhDBUtfcQ", 138 | "HyhDBkBbcw", 139 | "moz", 140 | "HyhDBkVZdQ", 141 | "164OpdsXF", 142 | "localStorage", 143 | "HyhDBUBYdQ", 144 | "HyhDBkdQcA", 145 | "HyhDBkZcfg", 146 | "HyhDBkFYcQ", 147 | "webView", 148 | "HyhDBkdZdw", 149 | "HyhDBUtccQ", 150 | "AudioWorkletNode", 151 | "HyhDBUZadA", 152 | "maxTouchPoints", 153 | "HyhDBUdecg", 154 | "log", 155 | "HyhDBkZYcA", 156 | "callPhantom", 157 | "appVersion", 158 | "get", 159 | "HyhDBUVccw", 160 | "permissions", 161 | "doNotTrack", 162 | "awesomium", 163 | "HyhDBkBQfw", 164 | "openDatabase", 165 | "getElementsByTagName", 166 | "HyhDBUtafw", 167 | "HyhDBkNffw", 168 | "HyhDBUBdcA", 169 | "__webdriver_script_fn", 170 | "sort", 171 | "HyhDBUVYdA", 172 | "bmF2aWdhdG9yLndlYmRyaXZlcg==", 173 | "HyhDBkBddg", 174 | "HyhDBUtZdA", 175 | "HyhDBUVQdQ", 176 | "bitness", 177 | "shift", 178 | "HyhDBkZYfw", 179 | "runtime", 180 | "HyhDBUBcfw", 181 | "forEach", 182 | "scrollY", 183 | "HyhDBkBbdg", 184 | "2,10", 185 | "defaultView", 186 | "innerHeight", 187 | "HyhDBUZbdQ", 188 | "HyhDBUZcdg", 189 | "getPrototypeOf", 190 | "HyhDBUtYcg", 191 | "HyhDBUZbfw", 192 | "mobile", 193 | "geolocation", 194 | "HyhDBkdadw", 195 | "HyhDBUpQcg", 196 | "domAutomation", 197 | "HyhDBkdadg", 198 | "HyhDBkdcfw", 199 | "HyhDBUpbfg", 200 | "HyhDBUBfdA", 201 | "appCodeName", 202 | "AudioWorklet", 203 | "HyhDBkJafg", 204 | "null", 205 | "effectiveType", 206 | "9bgLOEd", 207 | "mimeTypes", 208 | "HyhDBUZedw", 209 | "517290tapWUW", 210 | "HyhDBkddcg", 211 | "HyhDBkNbcA", 212 | "HyhDBUdffw", 213 | "anNIZWFwU2l6ZUxpbWl0", 214 | "pageXOffset", 215 | "Android", 216 | "HyhDBUZecg", 217 | "HyhDBkBfcQ", 218 | "HyhDBUtbdQ", 219 | "HyhDBUVQcg", 220 | "HyhDBkZYcQ", 221 | "HyhDBkZYdw", 222 | "platformVersion", 223 | "product", 224 | "pdfViewerEnabled", 225 | "HyhDBkBZfg", 226 | "HyhDBUVedQ", 227 | "HyhDBkZRfg", 228 | "onLine", 229 | "HyhDBkdacA", 230 | "HyhDBkNYdQ", 231 | "atob", 232 | "HyhDBkNefw", 233 | "[object HTMLPluginsCollection]", 234 | " Mobile/", 235 | "HyhDBUZfcA", 236 | "pageYOffset", 237 | "HyhDBUZdcw", 238 | "referrer", 239 | "Content Security Policy", 240 | "3212kcAgYN", 241 | "HyhDBUVbcA", 242 | "30951FlmlBj", 243 | "voiceURI", 244 | "1259172mZvRGu", 245 | "orientation", 246 | "HyhDBURadQ", 247 | "buildID", 248 | "standalone", 249 | "HyhDBUtbfw", 250 | "aGFyZHdhcmVDb25jdXJyZW5jeQ==", 251 | "HyhDBUBQcg", 252 | "WebAssembly", 253 | "scrollX", 254 | "HyhDBUVffg", 255 | "BatteryManager", 256 | "dXNlZEpTSGVhcFNpemU=", 257 | "HyhDBUVddw", 258 | "HyhDBUZacg", 259 | "appName", 260 | "HyhDBUtcdg", 261 | "html", 262 | "name", 263 | "HyhDBkNdcg", 264 | "visibility", 265 | "getTime", 266 | "brands", 267 | "availHeight", 268 | "HyhDBkZRcQ", 269 | "v8Locale", 270 | "HyhDBkZccQ", 271 | "HyhDBkZacQ", 272 | "substring", 273 | "getEntries", 274 | "hardwareConcurrency", 275 | "spawn", 276 | "HyhDBkNddQ", 277 | "HyhDBUpYfg", 278 | "downlink", 279 | "[object Geolocation]", 280 | "platform", 281 | "HyhDBUVfcg", 282 | "uaFullVersion", 283 | "HyhDBUVQdw", 284 | "setInterval", 285 | "HyhDBUZZcQ", 286 | "userAgentData", 287 | "missing", 288 | "PX12073", 289 | "fmget_targets", 290 | "undefined", 291 | "setItem", 292 | "HyhDBkNadw", 293 | "timing", 294 | "getBoundingClientRect", 295 | "HyhDBUtRcQ", 296 | "HyhDBkZddg", 297 | "(pointer:fine)", 298 | "HyhDBkJacg", 299 | "sendBeacon", 300 | "format", 301 | "HyhDBUZbfg", 302 | "onorientationchange", 303 | "map", 304 | "height", 305 | "visible", 306 | "HyhDBUtbcQ", 307 | "msDoNotTrack", 308 | "HyhDBkNafw", 309 | "HyhDBkBYcg", 310 | "addEventListener", 311 | "HyhDBkJYdA", 312 | "HyhDBkFRdw", 313 | "HyhDBUZcfg", 314 | "elementFromPoint", 315 | "emit", 316 | "Worklet", 317 | "toString", 318 | "HyhDBUZafg", 319 | "RequestAnimationFrame", 320 | "HyhDBUtcdQ", 321 | "setTimeout", 322 | "Buffer", 323 | "isSecureContext", 324 | "HyhDBkZZdg", 325 | "label", 326 | "pixelDepth", 327 | "HyhDBkJYdg", 328 | "HyhDBkFcdw", 329 | "HyhDBkNadQ", 330 | "HyhDBUpRdw", 331 | "hidden", 332 | "HyhDBkFcfw", 333 | "offsetHeight", 334 | "indexOf", 335 | "[object MimeTypeArray]", 336 | "HyhDBkZZdA", 337 | "availWidth", 338 | "connection", 339 | "HyhDBUVcfw", 340 | "fontFromResourceApi", 341 | "domAutomationController", 342 | "HyhDBUBbcQ", 343 | "prototype", 344 | "offsetWidth", 345 | "performance", 346 | "type", 347 | "HyhDBUtadw", 348 | "dG90YWxKU0hlYXBTaXpl", 349 | "matchMedia", 350 | "ontouchstart", 351 | "HyhDBkZYfg", 352 | "HyhDBUBQcQ", 353 | "hasOwnProperty", 354 | "bWVtb3J5", 355 | "HyhDBkZZdw", 356 | "HyhDBUtcfw", 357 | "[object PluginArray]", 358 | "geb", 359 | "HyhDBURRdw", 360 | "HyhDBkBcdg", 361 | "HyhDBUVbdA", 362 | "HyhDBUdccA", 363 | "_cordovaNative", 364 | "random", 365 | "languages", 366 | "HyhDBUBQfw", 367 | "648GOisVI", 368 | "HyhDBUdYfw", 369 | "HyhDBUtQdQ", 370 | "plugins", 371 | "HyhDBUpdfw", 372 | "MatchesSelector", 373 | "HyhDBUVYfw", 374 | "22sbVOzV", 375 | "HyhDBUVQcw", 376 | "HyhDBURccA", 377 | "imgFromResourceApi", 378 | "colorDepth", 379 | "HyhDBkZadg", 380 | "getOwnPropertyDescriptor", 381 | "HyhDBkJefw", 382 | "HyhDBUtQdw", 383 | "cookie", 384 | "HyhDBkdccQ", 385 | "navigation", 386 | "T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcg==", 387 | "getTimezoneOffset", 388 | "HyhDBkJadw", 389 | "chrome", 390 | "HyhDBkFYcg", 391 | "HyhDBkZefg", 392 | "ancestorOrigins", 393 | "HyhDBkFfdw", 394 | "HyhDBUBQdg", 395 | "caches", 396 | "HyhDBUZafw", 397 | "dispatchEvent", 398 | "HyhDBkBdcA", 399 | "HyhDBUVdcQ", 400 | "HyhDBkBZcQ", 401 | "ActiveXObject", 402 | "webkit", 403 | "userAgent", 404 | "_Selenium_IDE_Recorder", 405 | "HyhDBURYcw", 406 | "keys", 407 | "HyhDBkJRdA", 408 | "innerWidth", 409 | "HyhDBUVddg", 410 | "HyhDBkZcfw", 411 | "TouchEvent", 412 | "Date", 413 | "HyhDBkdYfg", 414 | "HyhDBkJbdQ", 415 | "HyhDBUZZcw", 416 | "console", 417 | "cookieEnabled", 418 | "query", 419 | "getComputedStyle", 420 | "HyhDBkZQfw", 421 | "HyhDBkBQcQ", 422 | "message", 423 | "Performance", 424 | "HyhDBUdddA", 425 | "__nightmare", 426 | "HyhDBkdbdw", 427 | "bmF2aWdhdG9yLnVzZXJBZ2VudA==", 428 | "language", 429 | "HyhDBUZRcQ", 430 | "requestAnimationFrame", 431 | "HyhDBkZccg", 432 | "tagName", 433 | "10473730eQAQrv", 434 | "cssFromResourceApi", 435 | "ondeviceready", 436 | "HyhDBURQdw", 437 | "HyhDBUtQcA", 438 | " Safari/", 439 | "HyhDBUVadw", 440 | "productSub", 441 | "HyhDBUdRcg", 442 | "HyhDBUZacA", 443 | "HyhDBkdcdQ", 444 | "instantiate", 445 | "add", 446 | "showModalDialog", 447 | "cssFromStyleSheets", 448 | "RunPerfTest", 449 | "HyhDBkdecg", 450 | "HyhDBkZacg", 451 | "notify", 452 | "HyhDBkFedg", 453 | "item", 454 | "HyhDBUBfdw", 455 | "external", 456 | "HyhDBkdfcQ", 457 | "HyhDBkFdcg", 458 | "HyhDBUtecQ", 459 | "1631zxWmOw", 460 | "outerHeight", 461 | "HyhDBkddfg", 462 | "documentElement", 463 | "XDomainRequest", 464 | "PointerEvent", 465 | "split", 466 | "bind", 467 | "HyhDBkdQdQ", 468 | "HyhDBkBRcQ", 469 | "model", 470 | "getBattery", 471 | "HyhDBURYdw", 472 | "EventSource", 473 | "HyhDBUdedg", 474 | "HyhDBURbfg", 475 | "[object MSPluginsCollection]", 476 | "HyhDBkFQcA", 477 | "saveData" 478 | ]; 479 | return n[(t -= 154)]; 480 | } 481 | 482 | function Ef(t, e) { 483 | var n = [ 484 | "charCodeAt", 485 | "slice", 486 | "substring", 487 | "4qGCCyw", 488 | "indexOf", 489 | "15548787BDMOTV", 490 | "50533550hTZSHu", 491 | "floor", 492 | "577046gbwZJy", 493 | "length", 494 | "9120IYrAbT", 495 | "push", 496 | "split", 497 | "sort", 498 | "1604064986000", 499 | "2476209ddDxWg", 500 | "40PXgOlY", 501 | "280mOVJiO", 502 | "6566768iMFEqh", 503 | "797881JsIrYL" 504 | ]; 505 | return n[(t -= 157)]; 506 | } 507 | 508 | function Fs(t, e) { 509 | var n = [ 510 | "5yGDazF", 511 | "trigger", 512 | "sid", 513 | "HyhDBUpddQ", 514 | "_pxPreventAnalyticsCookie", 515 | "HyhDBkNdcA", 516 | "_pxAppId", 517 | "HyhDBURedA", 518 | "isChallengeDone", 519 | "true", 520 | "_pr_c", 521 | "HyhDBkNfcA", 522 | "cls", 523 | "removeItem", 524 | "shift", 525 | "1026132kRrnMU", 526 | "href", 527 | "18lJqiyh", 528 | "365958ugAyqG", 529 | "reload", 530 | "enrich", 531 | "1oo1o1", 532 | "risk", 533 | "24174760jxCtqV", 534 | "sts", 535 | "slice", 536 | "HyhDBUVdfw", 537 | "setItem", 538 | "HyhDBUdY", 539 | "bake", 540 | "ttl", 541 | "28NYExkP", 542 | "apply", 543 | "1371744AMCIhD", 544 | "forceSent", 545 | "pxqp", 546 | "getItem", 547 | "HyhDBkdQfg", 548 | "YmFrZQ==", 549 | "split", 550 | "622780bzMcpF", 551 | "length", 552 | "drc", 553 | "~~~~", 554 | "unshift", 555 | "toLowerCase", 556 | "push", 557 | "584648HnGcjN", 558 | "args", 559 | "concat", 560 | "1306868ivqNvh" 561 | ]; 562 | return n[(t -= 208)]; 563 | } 564 | 565 | function Qf(t, e) { 566 | var n = [ 567 | "HyhDBkZQfg", 568 | "style", 569 | "getOwnPropertyDescriptor", 570 | "tof", 571 | "HyhDBkZddw", 572 | "Opera", 573 | "webkit", 574 | "gecko", 575 | "HyhDBkZdfw", 576 | "support", 577 | "6mSjIIz", 578 | "88HVIuWp", 579 | "plugins", 580 | "pqp", 581 | "toUpperCase", 582 | "concat", 583 | "toString", 584 | "7333529uzrNxE", 585 | "query", 586 | "nqbDcbnfasn76cspMYzpsy", 587 | "onhelp", 588 | "keys", 589 | "jnyehf", 590 | "inject_failed", 591 | "push", 592 | "try_to_inject", 593 | "toSource", 594 | "Function", 595 | "presto", 596 | "get", 597 | "HyhDBkZdcQ", 598 | "_len", 599 | "HyhDBkZddA", 600 | "onload", 601 | "HyhDBkZfdw", 602 | "match", 603 | "HyhDBkZedg", 604 | "type", 605 | "permissions", 606 | "toS", 607 | "sort", 608 | "slice", 609 | "HyhDBkZffw", 610 | "2iAJTdH", 611 | "allowedFeatures", 612 | "webkitNotifications", 613 | "angvir pbqr", 614 | "stringify", 615 | "charCodeAt", 616 | "HyhDBkZffg", 617 | "5cdfwqZ", 618 | "T2JqZWN0Lm5ld0hhbmRsZXIuPGNvbXB1dGVkPg==", 619 | "every", 620 | "iframe", 621 | "cmVhZCBvbmx5", 622 | "prototype", 623 | "featurePolicy", 624 | "maxConnectionsPerServer", 625 | "HyhDBkZddQ", 626 | "CynlvatSynt", 627 | "fubjZbqnyQvnybt", 628 | "haxabja", 629 | "msLaunchUri", 630 | "HyhDBkZRcg", 631 | "chrome", 632 | "removeChild", 633 | "Flzoby", 634 | "createElement", 635 | "jroxvgRkvgShyyfperra", 636 | "substring", 637 | "isn", 638 | "ActiveXObject", 639 | "async", 640 | "24704asEwxx", 641 | "HyhDBkZQdA", 642 | "HyhDBkZecA", 643 | "HyhDBkZQcQ", 644 | "HyhDBkZdcg", 645 | "undef", 646 | "connection", 647 | "brave", 648 | "String", 649 | "cyhtrkg", 650 | "HyhDBkZdfg", 651 | "nhqvb", 652 | "jroxvgShyyfperraRyrzrag", 653 | "mozConnection", 654 | "HyhDBkZedA", 655 | "navigator", 656 | "replace", 657 | "toLowerCase", 658 | "input", 659 | "document", 660 | "prefixes", 661 | "HyhDBkZfcQ", 662 | "getElementById", 663 | "pncgher", 664 | "display:none", 665 | "&ci=", 666 | "indexOf", 667 | "HyhDBkZdcw", 668 | "HyhDBkZecQ", 669 | "smd", 670 | "hasOwnProperty", 671 | "519729jdsOPr", 672 | "fryravhz-vqr-vaqvpngbe", 673 | "HyhDBkZfcA", 674 | "description", 675 | "axabja", 676 | "length", 677 | "jroxvg", 678 | "w3c", 679 | "HyhDBkZQdw", 680 | "27444010UucOvB", 681 | "nyreg", 682 | "status", 683 | "userAgent", 684 | "unknown", 685 | "OPR", 686 | "trg", 687 | "name", 688 | "HyhDBkZdcA", 689 | "resolvedOptions", 690 | "styleMedia", 691 | "onerror", 692 | "Object", 693 | "Intl", 694 | "cyhtvaf", 695 | "value", 696 | "fromCharCode", 697 | "message", 698 | "webkitConnection", 699 | "Neenl", 700 | "body", 701 | "call", 702 | "script", 703 | "zbm", 704 | "&ti=", 705 | "appendChild", 706 | "123129RIHTrT", 707 | "timeZone", 708 | "Notification", 709 | "isArray", 710 | "Cebzvfr", 711 | "jroxvgVfShyyFperra", 712 | "filename", 713 | "permission", 714 | "HyhDBkZQcg", 715 | "head", 716 | "onoperadetachedviewchange", 717 | "exec", 718 | "trident", 719 | "AngvirVBSvyr", 720 | "T2JqZWN0LmFwcGx5", 721 | "UGZYCbchcRyrzrag", 722 | "__proto__", 723 | "HyhDBkZQdg", 724 | "protocol", 725 | "9146880Owqhmw", 726 | "HyhDBkZedw", 727 | "share", 728 | "inject_succeeded", 729 | "1104999YVkXvO", 730 | "src", 731 | "HyhDBkZQdQ", 732 | "DateTimeFormat", 733 | "setAttribute", 734 | "getOwnPropertyDescriptors", 735 | "outerHTML" 736 | ]; 737 | return n[(t -= 177)]; 738 | } 739 | 740 | function Xh(t, e) { 741 | var n = [ 742 | "HyhDBUVRcg", 743 | "bmF2aWdhdG9y", 744 | "onlostpointercapture", 745 | "getBoxQuads", 746 | "join", 747 | "HyhDBkZRdQ", 748 | "onhashchange", 749 | "Keyboard", 750 | "onvrdisplaydisconnect", 751 | "onselect", 752 | "webkitURL", 753 | "fileSize", 754 | "ondurationchange", 755 | "onpointerout", 756 | "match", 757 | "fragmentDirective", 758 | "onmousemove", 759 | "requestStorageAccess", 760 | "createTouch", 761 | "exitPictureInPicture", 762 | "HyhDBkZZcA", 763 | "onpageshow", 764 | "274580tmwwMF", 765 | "HyhDBURecg", 766 | "Close", 767 | "ontoggle", 768 | "ondragover", 769 | "HyhDBkFRcg", 770 | "createExpression", 771 | "Onafterprint", 772 | "registerProtocolHandler", 773 | "onwebkitanimationstart", 774 | "usedJSHeapSize", 775 | "createProcessingInstruction", 776 | "onmousedown", 777 | "onbeforeunload", 778 | "onuserproximity", 779 | "createcdatasECTION", 780 | "onactivateinvisible", 781 | "onselectionchange", 782 | "ondragexit", 783 | "oncancel", 784 | "onoffline", 785 | "VRFieldOfView", 786 | "onmouseenter", 787 | "elementsFromPoint", 788 | "speechSynthesis", 789 | "Yandex", 790 | "onvolumechange", 791 | "ondevicemotion", 792 | "eWFuZGV4", 793 | "VRDispaly", 794 | "queryCommandValue", 795 | "Onappinstalled", 796 | "onsubmit", 797 | "mozSyntheticDocument", 798 | "appName", 799 | "Onanimationend", 800 | "onplaying", 801 | "onrejectionhandled", 802 | "Open", 803 | "ongotpointercapture", 804 | "onreset", 805 | "toLowerCase", 806 | "taintEnabled", 807 | "onload", 808 | "ononline", 809 | "createNodeIterator", 810 | "productSub (important returns the build number of the current browser)", 811 | "onloadstart", 812 | "slice", 813 | "onshow", 814 | "Evaluate", 815 | "Dump", 816 | "Locks", 817 | "adoptNode", 818 | "styleSheetSets", 819 | "3326310FApFDX", 820 | "execComandShowHelp", 821 | "cookieEnabled", 822 | "webkitMediaStream", 823 | "onvrdisplaypresentchange", 824 | "onblur", 825 | "createRange", 826 | "webkitRTCPeerConnection", 827 | "Oncopy", 828 | "Append", 829 | "ontransitionstart", 830 | "Math", 831 | "createEntityReference", 832 | "onwebkitanimationiteration", 833 | "Serial", 834 | "onvrdisplaydeactivate", 835 | "VRStageParameters", 836 | "HyhDBUdddA", 837 | "hasOwnProperty", 838 | "oninput", 839 | "onwaiting", 840 | "RELEASEevents", 841 | "ol_originalAddEventListener", 842 | "onoverscroll", 843 | "HyhDBkJQdQ", 844 | "cGx1Z2lucw==", 845 | "onscroll", 846 | "mozFullScreenEnabled", 847 | "RnVuY3Rpb24=", 848 | "onscrollend", 849 | "queryCommandEnabled", 850 | "selectedStyleSheetSet", 851 | "onelementpainted", 852 | "oncut", 853 | "b3BlcmE=", 854 | "HyhDBUVccQ", 855 | "onlanguagechange", 856 | "HyhDBUZYfg", 857 | "performance", 858 | "getBattery", 859 | "ondeviceproximity", 860 | "Prepend", 861 | "onunload", 862 | "getvrdISPLAYS", 863 | "mediaSession", 864 | "[object global]", 865 | "onmouseup", 866 | "onmouseover", 867 | "CREATEdOCUMENTfRAGMENT", 868 | "caches", 869 | "length", 870 | "onpointerenter", 871 | "onmouseout", 872 | "onmozfullscreenerror", 873 | "onmouseleave", 874 | "Standalone", 875 | "HyhDBkZZcw", 876 | "vendorSub (important return vendor version number)", 877 | "plugins", 878 | "width", 879 | "importNode", 880 | "vendorName", 881 | "Plugins", 882 | "ondrop", 883 | "19504771tsqWfi", 884 | "mozInnerScreenX", 885 | "onunhandledrejection", 886 | "preferredStyleSheetSet", 887 | "Onmozfullscreenerror", 888 | "queryCommandIndeterm", 889 | "onwebkitanimationend", 890 | "Product", 891 | "getUserMedia", 892 | "onafterscriptexecute", 893 | "VRDisplayEvent", 894 | "onplay", 895 | "registerElement", 896 | "onmessageerror", 897 | "onpointerover", 898 | "42PrMCAS", 899 | "getElementbyTagName", 900 | "bGFuZ3VhZ2Vz", 901 | "menubar", 902 | "Permissions", 903 | "44obbHUv", 904 | "onkeyup", 905 | "Doctype", 906 | "ondeviceorientation", 907 | "onseeking", 908 | "createTextNode", 909 | "xmlVersion", 910 | "onsearch", 911 | "231585qUNKFZ", 912 | "webkitSpeechRecognition", 913 | "HTMLElement", 914 | "CREATEelement", 915 | "HyhDBkdQdw", 916 | "ontransitionrun", 917 | "onmozfullscreenchange", 918 | "carePositionsFromPoint", 919 | "webkitSpeechRecognitionError", 920 | "mozRTCSessionDescription", 921 | "onmousewheel", 922 | "setAppBadge", 923 | "HyhDBkFefg", 924 | "onstalled", 925 | "getElementByName", 926 | "1362ykYiRa", 927 | "prototype", 928 | "Onabort", 929 | "onerror", 930 | "Onanimationstart", 931 | "pushNotification", 932 | "oninvalid", 933 | "getElementsByClassName", 934 | "addressSpace", 935 | "getComputedStyle", 936 | "getSelection", 937 | "onpagehide", 938 | "hasStorageAccess", 939 | "HyhDBkZZfg", 940 | "createElementNS", 941 | "featurePolicy", 942 | "onratechange", 943 | "releaseCapture", 944 | "ondevicelight", 945 | "webkitSpeechGrammar", 946 | "onloadeddata", 947 | "Vibrate", 948 | "onwheel", 949 | "HyhDBUVcdw", 950 | "oncontextmenu", 951 | "Onselectionchange", 952 | "safari", 953 | "onloadedmetadata", 954 | "oncanplay", 955 | "enableStyleSheetsForSet", 956 | "scrollbars", 957 | "contentType", 958 | "onpointerup", 959 | "Share", 960 | "[object process]", 961 | "normalizeDocument", 962 | "ondblclick", 963 | "scheduler", 964 | "hasFocus", 965 | "totalJSHeapSize", 966 | "cmVmcmVzaA==", 967 | "Onpaste", 968 | "caretRangeFromPoint", 969 | "mozFullScreen", 970 | "exitPointerLock", 971 | "toString", 972 | "b3By", 973 | "jsHeapSizeLimit", 974 | "clearAppBadge", 975 | "ondragstart", 976 | "Y2hyb21lOi8vanVnZ2xlci9jb250ZW50", 977 | "memory", 978 | "onformdata", 979 | "Clipboard", 980 | "createNSResolver", 981 | "Chrome", 982 | "Onbeforescriptexecute", 983 | "Onafterscriptexecute", 984 | "onbeforescriptexecute", 985 | "ondragleave", 986 | "release", 987 | "HyhDBkZZfw", 988 | "Write", 989 | "getDefaultComputedStyle", 990 | "buildID (important return the buildID on firefox in addition to productSub)", 991 | "onended", 992 | "onclick", 993 | "mediaDevices", 994 | "visibilityState", 995 | "Opera", 996 | "onrendersubtreeactivation", 997 | "requestMediaKeySystemAccess", 998 | "HyhDBUdbdA", 999 | "Onauxclick", 1000 | "createElementFromPoint", 1001 | "call", 1002 | "oncuechange", 1003 | "ondragend", 1004 | "CreateAttributeNS", 1005 | "webkitSpeechRecognitionEvent", 1006 | "VRFrameData", 1007 | "mozFullScreenElement", 1008 | "ondeviceorientationabsolute", 1009 | "HyhDBkZZcQ", 1010 | "onpointerdown", 1011 | "VRPose", 1012 | "HyhDBkFffg", 1013 | "VRDisplayCapabilities", 1014 | "W29iamVjdCBTYWZhcmlSZW1vdGVOb3RpZmljYXRpb25d", 1015 | "elementFromPoint", 1016 | "filter", 1017 | "sort", 1018 | "c2FmYXJp", 1019 | "onpointerleave", 1020 | "closed", 1021 | "Bluetooth", 1022 | "toolbar", 1023 | "queryCommandState", 1024 | "Onreadystatechange", 1025 | "onseeked", 1026 | "writeIn", 1027 | "180XGEVgo", 1028 | "compatMode", 1029 | "dmFsdWU=", 1030 | "locationbar", 1031 | "HyhDBkFZfg", 1032 | "onchange", 1033 | "onbeforeprint", 1034 | "onselectstart", 1035 | "caretPositionFromPoint", 1036 | "onsuspend", 1037 | "substring", 1038 | "mozCancelFullScreen", 1039 | "mozSetImageElement", 1040 | "onclose", 1041 | "onpause", 1042 | "754867zOwMCl", 1043 | "Y2FsbA==", 1044 | "test", 1045 | "HyhDBkZZcg", 1046 | "HyhDBkZccw", 1047 | "crypto", 1048 | "querySelector", 1049 | "mozRTCIceCandidate", 1050 | "querySelectorAll", 1051 | "onfocus", 1052 | "onwebkittransitionend", 1053 | "CaptureEvents", 1054 | "getAnimatinos", 1055 | "onkeypress", 1056 | "lastStyleSheetSet", 1057 | "loadOverlay", 1058 | "onstorage", 1059 | "webkitSpeechGrammarList", 1060 | "HyhDBkBQdw", 1061 | "queryCommandSupported", 1062 | "onpointermove", 1063 | "yandexAPI", 1064 | "Onfullscreenchange", 1065 | "ontransitionend", 1066 | "oncanplaythrough", 1067 | "appCodeName", 1068 | "getOwnPropertyNames", 1069 | "createEvent", 1070 | "onpointercancel", 1071 | "ondrag", 1072 | "getOverrideStyle", 1073 | "Onanimationiteration", 1074 | "onbeforeinstallprompt", 1075 | "onvrdisplayactivate", 1076 | "onvrdisplayconnect", 1077 | "Onvisibilitychange", 1078 | "javaEnabled", 1079 | "ontimeupdate", 1080 | "onpointerrawupdate", 1081 | "undefined", 1082 | "1466zUggwt", 1083 | "ondragenter", 1084 | "HyhDBkZRcw", 1085 | "rootScroller", 1086 | "mediaCapabilities", 1087 | "devicePixelRatio", 1088 | "onprogress", 1089 | "onemptied", 1090 | "createElementsFromPoint", 1091 | "onresize", 1092 | "HyhDBURQdg", 1093 | "919336noLzKJ", 1094 | "personalbar", 1095 | "getCSSCanvasContext", 1096 | "documentElement", 1097 | "createAttribute", 1098 | "VREyeParameters", 1099 | "Clear", 1100 | "eval", 1101 | "onabsolutedeviceorientation", 1102 | "onbeforexrselect", 1103 | "Replacechildren", 1104 | "getBoxObjectFor", 1105 | "ancestorOrigins", 1106 | "mozInnerScreenY", 1107 | "onloadend", 1108 | "createTreeWalker", 1109 | "cHJvdG90eXBl", 1110 | "createTouchList", 1111 | "d2ViZHJpdmVy", 1112 | "queryCommandText", 1113 | "onmessage", 1114 | "Securitypolicy", 1115 | "CREATEcOMMENT", 1116 | "ontransitioncancel", 1117 | "onkeydown", 1118 | "onpopstate", 1119 | "name", 1120 | "mozRTCPeerConnection", 1121 | "HyhDBUBccQ", 1122 | "Presentation", 1123 | "getElementsById" 1124 | ]; 1125 | return n[(t -= 293)]; 1126 | } 1127 | 1128 | function Ri(t, e) { 1129 | var n = [ 1130 | "defineProperty", 1131 | "HyhHAkI", 1132 | "handler", 1133 | "HyhDBUtbcQ", 1134 | "HyhDBURZfw", 1135 | "captcha_max_stale", 1136 | "HyhFAkA", 1137 | "ODlkNWZhOGQtMTgwZi00NGExLTg0OTctMDZiNWRlMjMwMmQ0", 1138 | "HyhDBUBc", 1139 | "HyhDBUVbdA", 1140 | "HyhDBUBb", 1141 | "HyhDBUVdcQ", 1142 | "28ToIWEp", 1143 | "languages", 1144 | "HyhDBkNY", 1145 | "HyhDBUpbdQ", 1146 | "75303hnVlhI", 1147 | "fontFromResourceApi", 1148 | "HyhDBUBa", 1149 | "HyhDBkNRcw", 1150 | "HyhDBUpQcg", 1151 | "length", 1152 | "cssFromResourceApi", 1153 | "HyhDBkZYdw", 1154 | "HyhDBERe", 1155 | "HyhDBkNRfw", 1156 | "replace", 1157 | "HyhDBUpYfw", 1158 | "random", 1159 | "HyhDBERY", 1160 | "HyhDBkVbcw", 1161 | "HyhDBUddcg", 1162 | "HyhFAkc", 1163 | "HyhDBUdd", 1164 | "hasOwnProperty", 1165 | "HyhDBURccw", 1166 | "HyhDBkFecg", 1167 | "HyhDBUVdfw", 1168 | "HyhDBUpffg", 1169 | "18890660hyqGzd", 1170 | "HyhFAUY", 1171 | "HyhDBURQdA", 1172 | "HyhDBUpRdw", 1173 | "HyhDBkVZcA", 1174 | "HyhDBkJacA", 1175 | "HyhDBkFbdg", 1176 | "querySelectorAll", 1177 | "HyhDBERQ", 1178 | "4221qqSExc", 1179 | "HyhDBkZadg", 1180 | "imgFromResourceApi", 1181 | "nodeName", 1182 | "2089630RggBhk", 1183 | "HyhFAkE", 1184 | "HyhDBUVRfw", 1185 | "705974fBHepm", 1186 | "636420XeImkt", 1187 | "HyhDBkVZcQ", 1188 | "HyhEAEY", 1189 | "getElementById", 1190 | "HyhDBUBd", 1191 | "21PtfmVb", 1192 | "round", 1193 | "1205596AIaNEn", 1194 | "toLowerCase", 1195 | "HyhDBUdYfw", 1196 | "cssFromStyleSheets", 1197 | "1616YoNOWq" 1198 | ]; 1199 | return n[(t -= 329)]; 1200 | } 1201 | 1202 | function Ey(t, e) { 1203 | var n = [ 1204 | "35260980wplrPy", 1205 | "1490478gJjMTr", 1206 | "splice", 1207 | "HyhDBkZecw", 1208 | "filter", 1209 | "202638ERBpVm", 1210 | "sendActivitiesCount", 1211 | "params", 1212 | "join", 1213 | "HyhDBkFQdg", 1214 | "HyhDBUdRcA", 1215 | "activities", 1216 | "trigger", 1217 | "Events", 1218 | "bind", 1219 | "HyhDBUZRdg", 1220 | "HyhDBUBbdA", 1221 | "48324JYphKF", 1222 | "clientFailures", 1223 | "HyhDBUtRdw", 1224 | "Blob", 1225 | "xhrSuccess", 1226 | "postData", 1227 | "px_c_p_", 1228 | "clientRoutesLength", 1229 | "push", 1230 | "setItem", 1231 | "HyhHAkI", 1232 | "hasOwnProperty", 1233 | "_px", 1234 | "_px2", 1235 | "333ArFCca", 1236 | "clientHttpErrorStatuses", 1237 | "extend", 1238 | "386792TlTCGu", 1239 | "HyhDBkNRcw", 1240 | "getTime", 1241 | "sendBeacon", 1242 | "HyhDBUBQcw", 1243 | "HyhDBkFcfg", 1244 | "Hyg6dzEHKTsDBkYSGBI9GRdH", 1245 | "4296436cwFxQY", 1246 | "xhrFailure", 1247 | "_px3", 1248 | "length", 1249 | "148spysiH", 1250 | "xhrResponse", 1251 | "clientXhrErrors", 1252 | "203ikeYdh", 1253 | "fallbackStartIndex", 1254 | "testDefaultPath", 1255 | "2236215JIIfKa", 1256 | "HyhDBkZecg", 1257 | "captchaFailures", 1258 | "Hyg6dzUJLSomF0YaDi8sEQZdHAYUKgMCWx0bIw", 1259 | "getItem" 1260 | ]; 1261 | return n[(t -= 487)]; 1262 | } 1263 | 1264 | function cp(t, e) { 1265 | var n = [ 1266 | "20ztQlha", 1267 | "xhrSuccess", 1268 | "reload", 1269 | "vid", 1270 | "xhrFailure", 1271 | "HyhDBURQdA", 1272 | "HyhDBUZRdg", 1273 | "xhrResponse", 1274 | "_pxVid", 1275 | "pxvid", 1276 | "HyhDBUVccw", 1277 | "HyhDBkFYcQ", 1278 | "22tnEQUr", 1279 | "496095iBoyFw", 1280 | "length", 1281 | "platform", 1282 | "HyhDBUBadg", 1283 | "180528NieMUV", 1284 | "removeItem", 1285 | "HyhDBkNRcw", 1286 | "bind", 1287 | "Hyg", 1288 | "getItem", 1289 | "pxInit", 1290 | "4278765cWcfmx", 1291 | "_asyncInit", 1292 | "val", 1293 | "189cIkkUk", 1294 | "getTime", 1295 | "uid", 1296 | "8282583edIsWM", 1297 | "_pxRootUrl", 1298 | "HyhDBkFecg", 1299 | "ttl", 1300 | "3966896hYFkSr", 1301 | "random", 1302 | "trigger", 1303 | "HyhDBkddfg", 1304 | "14783HyWrao", 1305 | "subscribe", 1306 | "13347100TVBdtk", 1307 | "one", 1308 | "_pxmvid", 1309 | "HyhDBUtRfg", 1310 | "HyhDBUdecw" 1311 | ]; 1312 | return n[(t -= 141)]; 1313 | } 1314 | 1315 | function $h(t, e) { 1316 | var n = [ 1317 | "HNKDfr0Iz4", 1318 | "caR", 1319 | "10aINaRW", 1320 | "4vtwATU", 1321 | "pIY6sc", 1322 | "7cXqKg", 1323 | "floor", 1324 | "UmFj", 1325 | "112120PbTFQA", 1326 | "7ncQN", 1327 | "1574356UncXCG", 1328 | "5425629BFYylJ", 1329 | "QiugjY", 1330 | "reverse", 1331 | "475744gSKbwD", 1332 | "join", 1333 | "split", 1334 | "375603AQaSvr", 1335 | "18OyvpTc", 1336 | "87568iRkbUm", 1337 | "cztI3", 1338 | "8qzt0QH", 1339 | "90XmhrEQ", 1340 | "458852jQkxdn", 1341 | "HyhDBkZfdQ", 1342 | "apply" 1343 | ]; 1344 | return n[(t -= 288)]; 1345 | } 1346 | 1347 | function mh(t, e) { 1348 | var n = [ 1349 | "webdriver", 1350 | "toJSON", 1351 | "fetch", 1352 | "http", 1353 | "runtime", 1354 | "929847YGAzAw", 1355 | "YXBw", 1356 | "indexOf", 1357 | "2994idCmBe", 1358 | "238ZwXSwl", 1359 | "1565500vcVECh", 1360 | "loadTimes", 1361 | "csi", 1362 | "timing", 1363 | "dispatchToListener", 1364 | "1731QlDfni", 1365 | "15320LdbFHk", 1366 | "performance", 1367 | "sendMessage", 1368 | "length", 1369 | "15ZDGXhH", 1370 | "install", 1371 | "constructor", 1372 | "cnVudGltZQ==", 1373 | "webstore", 1374 | "342lvdEMg", 1375 | "createElement", 1376 | "onInstallStageChanged", 1377 | "Y2hyb21l", 1378 | "5400252qyQKjU", 1379 | "195160yfnXSb", 1380 | "6376579MZFQxH", 1381 | "protocol" 1382 | ]; 1383 | return n[(t -= 257)]; 1384 | } 1385 | 1386 | var a = (function () { 1387 | try { 1388 | if (atob && "test" === atob("dGVzdA==")) { 1389 | return atob; 1390 | } 1391 | } catch (t) {} 1392 | 1393 | function t(t) { 1394 | this.message = t; 1395 | } 1396 | 1397 | t.prototype = new Error(); 1398 | t.prototype.name = "InvalidCharacterError"; 1399 | return function (e) { 1400 | var n = String(e).replace(/[=]+$/, ""); 1401 | 1402 | if (n.length % 4 == 1) { 1403 | throw new t( 1404 | "'atob' failed: The string to be decoded is not correctly encoded." 1405 | ); 1406 | } 1407 | 1408 | var r; 1409 | var a; 1410 | var o = 0; 1411 | var c = 0; 1412 | 1413 | for ( 1414 | var i = ""; 1415 | (a = n.charAt(c++)); 1416 | ~a && ((r = o % 4 ? 64 * r + a : a), o++ % 4) 1417 | ? (i += String.fromCharCode(255 & (r >> ((-2 * o) & 6)))) 1418 | : 0 1419 | ) { 1420 | a = 1421 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf( 1422 | a 1423 | ); 1424 | } 1425 | 1426 | return i; 1427 | }; 1428 | })(); 1429 | 1430 | function c(n) { 1431 | var i = a(n); 1432 | var u = ""; 1433 | 1434 | for (var f = 0; f < i.length; ++f) { 1435 | var s = "Opr4shF".charCodeAt(f % 7); 1436 | u += String.fromCharCode(s ^ i.charCodeAt(f)); 1437 | } 1438 | 1439 | return u; 1440 | } 1441 | 1442 | const calls = { gl, Ef, Fs, Qf, Xh, Ri, Ey, cp, $h, mh }; 1443 | 1444 | function apply_R_Transform(path) { 1445 | if ( 1446 | t.isIdentifier(path.node.callee, { name: "R" }) && 1447 | path.node.arguments.length === 1 && 1448 | t.isStringLiteral(path.node.arguments[0]) 1449 | ) { 1450 | const rValue = R(path.node.arguments[0].value); 1451 | path.replaceWith(t.stringLiteral(rValue)); 1452 | } 1453 | } 1454 | 1455 | function apply_c_Transform(path) { 1456 | if ( 1457 | t.isIdentifier(path.node.callee, { name: "c" }) && 1458 | path.node.arguments.length === 1 && 1459 | t.isStringLiteral(path.node.arguments[0]) 1460 | ) { 1461 | try { 1462 | const rValue = c(path.node.arguments[0].value); 1463 | path.replaceWith(t.stringLiteral(rValue)); 1464 | } catch (err) {} 1465 | } 1466 | } 1467 | 1468 | return { 1469 | name: "ast-transform", // not required 1470 | visitor: { 1471 | Program(path) { 1472 | path.traverse({ 1473 | CallExpression(path) { 1474 | apply_R_Transform(path); 1475 | apply_c_Transform(path); 1476 | 1477 | if ( 1478 | t.isIdentifier(path.node.callee) && 1479 | path.node.callee.name in calls && 1480 | path.node.arguments.length === 1 && 1481 | t.isNumericLiteral(path.node.arguments[0]) 1482 | ) { 1483 | const rValue = calls[path.node.callee.name]( 1484 | path.node.arguments[0].value 1485 | ); 1486 | try { 1487 | path.replaceWith(t.stringLiteral(rValue)); 1488 | } catch (err) {} 1489 | } 1490 | }, 1491 | }); 1492 | 1493 | // Replace the remaining calls to the functions of R and c with the following 1494 | path.traverse({ 1495 | CallExpression(path) { 1496 | apply_R_Transform(path); 1497 | apply_c_Transform(path); 1498 | }, 1499 | }); 1500 | 1501 | // Remove these codes, which can send execution into a dead loop 1502 | path.traverse({ 1503 | ExpressionStatement(path) { 1504 | const code = path.getSource(); 1505 | if (code.split("\n").length > 13) return; 1506 | const regex = /!?\s*function\s*\(\s*\w+\s*,\s*\w+\s*\)\s*{\s*for\s*\(.*\)\s*{\s*try\s*{\s*.*parseInt.*\s*\.push\(.*\.shift\(\)\);\s*} catch/s; 1507 | if (regex.test(code)) path.remove(); 1508 | }, 1509 | }) 1510 | }, 1511 | }, 1512 | }; 1513 | } 1514 | 1515 | ``` -------------------------------------------------------------------------------- /readable/init_9.0.8.md: -------------------------------------------------------------------------------- 1 | ### The steps to de-obfuscate init_9.0.8: 2 | 1. Paste `init_9.0.8.js` of the source into `https://obf-io.deobfuscate.io/`. 3 | 2. You may get a code like `0++`, it's okay, you can just change it to `n.cssFromStyleSheets++`. 4 | 3. Looking at the code, we see that the call to function `X` needs to be replaced. It looks like computing the string. 5 | 4. Searching for `= ["`, I found many such similar string definitions in the code and similar operations: `Dc`, `rf`, `gf`, `jf`, `Zl`, `dh`, `bh`, `fd`, `Fp`, `kg` function, etc. 6 | 5. Put some special treatment on the function `c`. 7 | 6. Execute this code in https://astexplorer.net/ using `@baber/parser` + `babelv7` transform. 8 | 8. Paste the code into https://obf-io.deobfuscate.io/ (uncheck "Simplify Objects") and let it help us optimize the code structure. 9 | 8. TODO: Maybe in the future we can use `babel/parser` to write automated de-obfuscation programs to deal with this shit upgrade. 10 | 11 | 12 | ```javascript 13 | // @ts-check 14 | 15 | export default function (babel) { 16 | const { types: t } = babel; 17 | var x = (function () { 18 | try { 19 | return window.atob; 20 | } catch (t) {} 21 | })(); 22 | 23 | function M(t) { 24 | f = 25 | "function" == typeof Symbol && "symbol" == typeof Symbol.iterator 26 | ? function (t) { 27 | return typeof t; 28 | } 29 | : function (t) { 30 | return t && 31 | "function" == typeof Symbol && 32 | t.constructor === Symbol && 33 | t !== Symbol.prototype 34 | ? "symbol" 35 | : typeof t; 36 | }; 37 | return f(t); 38 | } 39 | 40 | function X(t) { 41 | return M === "function" 42 | ? x(t) 43 | : (function (t) { 44 | var e; 45 | var n; 46 | var r; 47 | var a; 48 | var o = []; 49 | var i = 0; 50 | var c = t.length; 51 | try { 52 | if ( 53 | /[^+/=0-9A-Za-z]/.test(t) || 54 | (/=/.test(t) && (/=[^=]/.test(t) || /={3}/.test(t))) 55 | ) { 56 | return null; 57 | } 58 | for ( 59 | c % 4 > 0 && 60 | (c = (t += window.Array(4 - (c % 4) + 1).join("=")).length); 61 | i < c; 62 | 63 | ) { 64 | n = []; 65 | for (a = i; i < a + 4; ) { 66 | n.push( 67 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf( 68 | t.charAt(i++) 69 | ) 70 | ); 71 | } 72 | r = [ 73 | ((e = 74 | (n[0] << 18) + 75 | (n[1] << 12) + 76 | ((63 & n[2]) << 6) + 77 | (63 & n[3])) & 78 | 16711680) >> 79 | 16, 80 | 64 === n[2] ? -1 : (65280 & e) >> 8, 81 | 64 === n[3] ? -1 : 255 & e, 82 | ]; 83 | for (a = 0; a < 3; ++a) { 84 | if (r[a] >= 0 || 0 === a) { 85 | o.push(String.fromCharCode(r[a])); 86 | } 87 | } 88 | } 89 | return o.join(""); 90 | } catch (t) { 91 | return null; 92 | } 93 | })(t); 94 | } 95 | 96 | var a = (function () { 97 | try { 98 | if (atob && "test" === atob("dGVzdA==")) { 99 | return atob; 100 | } 101 | } catch (t) {} 102 | 103 | function t(t) { 104 | this.message = t; 105 | } 106 | 107 | t.prototype = new Error(); 108 | t.prototype.name = "InvalidCharacterError"; 109 | return function (e) { 110 | var n = String(e).replace(/[=]+$/, ""); 111 | 112 | if (n.length % 4 == 1) { 113 | throw new t( 114 | "'atob' failed: The string to be decoded is not correctly encoded." 115 | ); 116 | } 117 | 118 | var r; 119 | var a; 120 | var o = 0; 121 | var c = 0; 122 | 123 | for ( 124 | var i = ""; 125 | (a = n.charAt(c++)); 126 | ~a && ((r = o % 4 ? 64 * r + a : a), o++ % 4) 127 | ? (i += String.fromCharCode(255 & (r >> ((-2 * o) & 6)))) 128 | : 0 129 | ) { 130 | a = 131 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf( 132 | a 133 | ); 134 | } 135 | 136 | return i; 137 | }; 138 | })(); 139 | 140 | function c(n) { 141 | var i = a(n); 142 | var u = ""; 143 | 144 | for (var f = 0; f < i.length; ++f) { 145 | var s = "Opr4shF".charCodeAt(f % 7); 146 | u += String.fromCharCode(s ^ i.charCodeAt(f)); 147 | } 148 | 149 | return u; 150 | } 151 | 152 | function Dc(t, e) { 153 | var n = [ 154 | "fyNMZTpPSFY=", 155 | "4406701nDsUUi", 156 | "PX1145", 157 | "toLowerCase", 158 | "12qwgquJ", 159 | "PX12635", 160 | "UFgxMDc2", 161 | "egYJQDxrDXs=", 162 | "cHADdjYfAkM=", 163 | "QABzQAJs", 164 | "PX1135", 165 | "round", 166 | "cssFromStyleSheets", 167 | "PX561", 168 | "hasOwnProperty", 169 | "nodeName", 170 | "PX11745", 171 | "PX764", 172 | "cssFromResourceApi", 173 | "handler", 174 | "fontFromResourceApi", 175 | "UFgxMDcw", 176 | "PX1078", 177 | "aRlaHyx1XC0=", 178 | "9auVrEH", 179 | "PX11659", 180 | "12786VjchMA", 181 | "259130AzTDcJ", 182 | "dW1GKzMNSxg=", 183 | "PX12617", 184 | "207tvlNgc", 185 | "698176BwcuCM", 186 | "PX1200", 187 | "BFw3GkI9MC8=", 188 | "UFg3NTU=", 189 | "length", 190 | "6kisfua", 191 | "IUESR2QoH3A=", 192 | "imgFromResourceApi", 193 | "random", 194 | "defineProperty", 195 | "PX12616", 196 | "replace", 197 | "AWFyJ0cPfhc=", 198 | "414sARfbQ", 199 | "PX762", 200 | "8xnJtpF", 201 | "ODlkNWZhOGQtMTgwZi00NGExLTg0OTctMDZiNWRlMjMwMmQ0", 202 | "UFg2NDU=", 203 | "UFgxMTcxOQ==", 204 | "11554683DfJoAl", 205 | "12548327bOpNXN", 206 | "PX763", 207 | "4973215JzpVSo", 208 | "languages", 209 | "ChY5UE9+P2Q=", 210 | "querySelectorAll", 211 | "PX11978", 212 | "ZR1WGyNyUSs=", 213 | "DhI9VEh9MG8=" 214 | ]; 215 | return n[(t -= 374)]; 216 | } 217 | 218 | function rf(t, e) { 219 | var n = [ 220 | "push", 221 | "length", 222 | "9cHfImq", 223 | "44IpXzRP", 224 | "sort", 225 | "slice", 226 | "188559qbucbk", 227 | "substring", 228 | "150958SITkhT", 229 | "charCodeAt", 230 | "12479336teiHdr", 231 | "30xqRqgb", 232 | "floor", 233 | "1604064986000", 234 | "252507DSLvvH", 235 | "592045XnoIBt", 236 | "indexOf", 237 | "6154220jzGHOZ", 238 | "split", 239 | "925137NyvhaU" 240 | ]; 241 | return n[(t -= 414)]; 242 | } 243 | 244 | function gf(t, e) { 245 | var n = [ 246 | "w3c", 247 | "stringify", 248 | "AWFyJ0QNcBI=", 249 | "get", 250 | "WiZpIB9KahU=", 251 | "getOwnPropertyDescriptors", 252 | "toLowerCase", 253 | "jroxvgVfShyyFperra", 254 | "61384edLuOs", 255 | "zbm", 256 | "isn", 257 | "U08gSRYjLHs=", 258 | "src", 259 | "String", 260 | "&ti=", 261 | "15417PgEcsb", 262 | "call", 263 | "fubjZbqnyQvnybt", 264 | "DXV+M0gZfwI=", 265 | "removeChild", 266 | "concat", 267 | "S3c4MQ4bNAE=", 268 | "appendChild", 269 | "jroxvgRkvgShyyfperra", 270 | "PARPQnloTHE=", 271 | "maxConnectionsPerServer", 272 | "nqbDcbnfasn76cspMYzpsy", 273 | "document", 274 | "634160Fxbtir", 275 | "ZjoVPCNWFgg=", 276 | "jroxvg", 277 | "setAttribute", 278 | "iframe", 279 | "134yGuruQ", 280 | "axabja", 281 | "jnyehf", 282 | "trg", 283 | "async", 284 | "tof", 285 | "toString", 286 | "prototype", 287 | "angvir pbqr", 288 | "replace", 289 | "presto", 290 | "CynlvatSynt", 291 | "value", 292 | "sort", 293 | "plugins", 294 | "style", 295 | "inject_failed", 296 | "featurePolicy", 297 | "2004013VbNRTb", 298 | "timeZone", 299 | "LDRfMmlYXQY=", 300 | "CFg7Hk00OiU=", 301 | "allowedFeatures", 302 | "script", 303 | "status", 304 | "cyhtrkg", 305 | "Opera", 306 | "cmVhZCBvbmx5", 307 | "75JHoeFu", 308 | "690PaeTwu", 309 | "Az9weUZTcU0=", 310 | "toS", 311 | "Object", 312 | "connection", 313 | "jroxvgShyyfperraRyrzrag", 314 | "onoperadetachedviewchange", 315 | "haxabja", 316 | "chrome", 317 | "length", 318 | "Bho1XEN2OW8=", 319 | "OPR", 320 | "indexOf", 321 | "Ql5xGAcycCg=", 322 | "cyhtvaf", 323 | "support", 324 | "KxcYEW57GiI=", 325 | "1027232DmHXec", 326 | "Cebzvfr", 327 | "resolvedOptions", 328 | "match", 329 | "every", 330 | "onhelp", 331 | "isArray", 332 | "share", 333 | "substring", 334 | "permissions", 335 | "HwNsBVpvYTM=", 336 | "getElementById", 337 | "slice", 338 | "pncgher", 339 | "protocol", 340 | "W0coQR4rKXs=", 341 | "eydIYT5LRFs=", 342 | "unknown", 343 | "Neenl", 344 | "DzN8dUpffUI=", 345 | "DateTimeFormat", 346 | "HmItZFsOLFI=", 347 | "input", 348 | "DXV+M0gZcgU=", 349 | "brave", 350 | "T3M8NQofPgc=", 351 | "__proto__", 352 | "WGhrbh0Eal0=", 353 | "userAgent", 354 | "body", 355 | "styleMedia", 356 | "message", 357 | "gecko", 358 | "permission", 359 | "query", 360 | "try_to_inject", 361 | "head", 362 | "createElement", 363 | "AngvirVBSvyr", 364 | "keys", 365 | "type", 366 | "filename", 367 | "prefixes", 368 | "onload", 369 | "6gTlJau", 370 | "inject_succeeded", 371 | "webkitNotifications", 372 | "fromCharCode", 373 | "navigator", 374 | "display:none", 375 | "eWlKLzwFRho=", 376 | "exec", 377 | "webkit", 378 | "nhqvb", 379 | "&ci=", 380 | "UGZYCbchcRyrzrag", 381 | "toSource", 382 | "Notification", 383 | "mozConnection", 384 | "a1dYUS47VGA=", 385 | "msLaunchUri", 386 | "GUlqT1wlaXQ=", 387 | "push", 388 | "trident", 389 | "undef", 390 | "210tHbLmg", 391 | "Flzoby", 392 | "bjIdNCteHAE=", 393 | "pqp", 394 | "Intl", 395 | "_len", 396 | "65538eWlXDL", 397 | "onerror", 398 | "Ui5hKBdCYhI=", 399 | "ActiveXObject", 400 | "smd", 401 | "egYJQD9qC3A=", 402 | "fryravhz-vqr-vaqvpngbe", 403 | "Function", 404 | "webkitConnection", 405 | "hasOwnProperty", 406 | "outerHTML", 407 | "toUpperCase", 408 | "T2JqZWN0LmFwcGx5", 409 | "getOwnPropertyDescriptor", 410 | "description", 411 | "nyreg", 412 | "charCodeAt", 413 | "T2JqZWN0Lm5ld0hhbmRsZXIuPGNvbXB1dGVkPg==", 414 | "name" 415 | ]; 416 | return n[(t -= 432)]; 417 | } 418 | 419 | function jf(t, e) { 420 | var n = [ 421 | "_pxAppId", 422 | "getItem", 423 | "forceSent", 424 | "X0MsRRktLnU=", 425 | "1461GhrOGf", 426 | "_pr_c", 427 | "unshift", 428 | "shift", 429 | "LVUeU2s6H2g=", 430 | "toLowerCase", 431 | "980371rEXZuD", 432 | "enrich", 433 | "args", 434 | "slice", 435 | "638VBfkFc", 436 | "apply", 437 | "sts", 438 | "12924KiiNaG", 439 | "bake", 440 | "true", 441 | "push", 442 | "trigger", 443 | "isChallengeDone", 444 | "~~~~", 445 | "YmFrZQ==", 446 | "55396eDVagG", 447 | "concat", 448 | "split", 449 | "length", 450 | "_pxPreventAnalyticsCookie", 451 | "RBx3WgF1dm4=", 452 | "2JedngF", 453 | "PX12488", 454 | "cls", 455 | "href", 456 | "12rmsQJJ", 457 | "11oo1o", 458 | "removeItem", 459 | "eC1weC1jb29raWVz", 460 | "reload", 461 | "sid", 462 | "1016Yzjvlv", 463 | "664oKHFKr", 464 | "risk", 465 | "12043272nDtgjt", 466 | "pxqp", 467 | "drc", 468 | "ttl", 469 | "MVECV3Q4AWM=", 470 | "25110obuOOA", 471 | "662565KGVFrX", 472 | "setItem", 473 | "ICBTJmZAUhc=" 474 | ]; 475 | return n[(t -= 263)]; 476 | } 477 | 478 | function Zl(t, e) { 479 | var n = [ 480 | "onInstallStageChanged", 481 | "YXBw", 482 | "171iYrRVD", 483 | "http", 484 | "length", 485 | "1224418IhulZa", 486 | "timing", 487 | "performance", 488 | "toJSON", 489 | "Y2hyb21l", 490 | "3881410SCnFHe", 491 | "webstore", 492 | "csi", 493 | "loadTimes", 494 | "3546ilnrbQ", 495 | "webdriver", 496 | "365648fwPOVc", 497 | "install", 498 | "14LZLMhP", 499 | "16940bzGcuS", 500 | "indexOf", 501 | "fetch", 502 | "protocol", 503 | "cnVudGltZQ==", 504 | "5371460asscnH", 505 | "sendMessage", 506 | "531130QUfrzd", 507 | "64170YmWkFx", 508 | "dispatchToListener", 509 | "createElement", 510 | "constructor", 511 | "runtime" 512 | ]; 513 | return n[(t -= 157)]; 514 | } 515 | 516 | function dh(t, e) { 517 | var n = [ 518 | "onlostpointercapture", 519 | "23915nKpmkP", 520 | "onoffline", 521 | "onwebkitanimationstart", 522 | "onbeforescriptexecute", 523 | "ontransitioncancel", 524 | "Clipboard", 525 | "onloadedmetadata", 526 | "ol_originalAddEventListener", 527 | "Onbeforescriptexecute", 528 | "Prepend", 529 | "onpointerout", 530 | "ontransitionrun", 531 | "mediaDevices", 532 | "memory", 533 | "onprogress", 534 | "appCodeName", 535 | "GCgrLl5HJhg=", 536 | "menubar", 537 | "S3c4MQ4bPQc=", 538 | "mozRTCIceCandidate", 539 | "W29iamVjdCBTYWZhcmlSZW1vdGVOb3RpZmljYXRpb25d", 540 | "documentElement", 541 | "Evaluate", 542 | "onrendersubtreeactivation", 543 | "Write", 544 | "UTEidxRdJ0A=", 545 | "onresize", 546 | "requestMediaKeySystemAccess", 547 | "oncancel", 548 | "Onafterscriptexecute", 549 | "onloadeddata", 550 | "mozCancelFullScreen", 551 | "preferredStyleSheetSet", 552 | "ondeviceproximity", 553 | "onsearch", 554 | "onpointercancel", 555 | "3209728chpyGP", 556 | "onselectionchange", 557 | "onratechange", 558 | "webkitSpeechGrammarList", 559 | "onpointerleave", 560 | "execComandShowHelp", 561 | "webkitSpeechRecognitionEvent", 562 | "440072lhkFPp", 563 | "getElementsById", 564 | "CFg7Hk0zPiQ=", 565 | "onstorage", 566 | "VRDispaly", 567 | "addressSpace", 568 | "onmouseup", 569 | "getCSSCanvasContext", 570 | "Append", 571 | "onmousemove", 572 | "VRDisplayEvent", 573 | "caretPositionFromPoint", 574 | "VGxnahIGZ18=", 575 | "Standalone", 576 | "vendorName", 577 | "onpointerover", 578 | "onkeydown", 579 | "scrollbars", 580 | "queryCommandIndeterm", 581 | "createExpression", 582 | "ondevicemotion", 583 | "onelementpainted", 584 | "onloadend", 585 | "Opera", 586 | "console", 587 | "oninput", 588 | "24mytfbX", 589 | "Onafterprint", 590 | "length", 591 | "onpointerdown", 592 | "onloadstart", 593 | "onwheel", 594 | "Clear", 595 | "cookieEnabled", 596 | "Onreadystatechange", 597 | "visibilityState", 598 | "onchange", 599 | "STk6fw9VPkU=", 600 | "getElementByName", 601 | "createNodeIterator", 602 | "createElementNS", 603 | "onmouseout", 604 | "Oncopy", 605 | "60685sEedSs", 606 | "1097118SzpeSJ", 607 | "normalizeDocument", 608 | "mozSetImageElement", 609 | "vendorSub (important return vendor version number)", 610 | "Y2FsbA==", 611 | "getBoxQuads", 612 | "onabsolutedeviceorientation", 613 | "Onpaste", 614 | "Onanimationend", 615 | "styleSheetSets", 616 | "onkeyup", 617 | "querySelectorAll", 618 | "undefined", 619 | "onclick", 620 | "mediaCapabilities", 621 | "ancestorOrigins", 622 | "SlZ5EAw7eCA=", 623 | "onwebkitanimationend", 624 | "createTextNode", 625 | "Chrome", 626 | "ondragleave", 627 | "oncut", 628 | "onstalled", 629 | "onended", 630 | "MDBDNnVYTwc=", 631 | "getAnimatinos", 632 | "onhashchange", 633 | "ontimeupdate", 634 | "createcdatasECTION", 635 | "oncuechange", 636 | "ondblclick", 637 | "createTouchList", 638 | "createElementFromPoint", 639 | "ondevicelight", 640 | "javaEnabled", 641 | "queryCommandText", 642 | "performance", 643 | "ondeviceorientationabsolute", 644 | "toolbar", 645 | "getOwnPropertyNames", 646 | "onvrdisplaypresentchange", 647 | "cGx1Z2lucw==", 648 | "mozInnerScreenX", 649 | "onvrdisplaydisconnect", 650 | "speechSynthesis", 651 | "ondrag", 652 | "rootScroller", 653 | "webkitSpeechGrammar", 654 | "createNSResolver", 655 | "onblur", 656 | "ontransitionstart", 657 | "taintEnabled", 658 | "scheduler", 659 | "onuserproximity", 660 | "bmF2aWdhdG9y", 661 | "Keyboard", 662 | "caretRangeFromPoint", 663 | "40zqqbEx", 664 | "onmessageerror", 665 | "onpointerup", 666 | "onseeked", 667 | "CREATEcOMMENT", 668 | "hasStorageAccess", 669 | "registerProtocolHandler", 670 | "ondragstart", 671 | "carePositionsFromPoint", 672 | "VRDisplayCapabilities", 673 | "onkeypress", 674 | "onfocus", 675 | "d2ViZHJpdmVy", 676 | "ondragenter", 677 | "yandexAPI", 678 | "Onmozfullscreenerror", 679 | "30UZNPOf", 680 | "onplay", 681 | "a1dYUS06X2E=", 682 | "onpause", 683 | "test", 684 | "createTreeWalker", 685 | "Math", 686 | "oninvalid", 687 | "registerElement", 688 | "Onabort", 689 | "lastStyleSheetSet", 690 | "onbeforeprint", 691 | "23464YjaHbB", 692 | "join", 693 | "compatMode", 694 | "onmessage", 695 | "GmYpYF8NJFY=", 696 | "exitPictureInPicture", 697 | "onvrdisplaydeactivate", 698 | "onscroll", 699 | "Onvisibilitychange", 700 | "mozFullScreenEnabled", 701 | "getBattery", 702 | "Share", 703 | "mozSyntheticDocument", 704 | "b3BlcmE=", 705 | "toLowerCase", 706 | "onload", 707 | "cg4BSDRgDXo=", 708 | "Onselectionchange", 709 | "VRStageParameters", 710 | "createTouch", 711 | "webkitSpeechRecognition", 712 | "onclose", 713 | "Vibrate", 714 | "toString", 715 | "jsHeapSizeLimit", 716 | "cmVmcmVzaA==", 717 | "onwaiting", 718 | "Onauxclick", 719 | "closed", 720 | "enableStyleSheetsForSet", 721 | "cHADdjUcDkc=", 722 | "elementsFromPoint", 723 | "oncanplaythrough", 724 | "[object global]", 725 | "onpagehide", 726 | "Dump", 727 | "devicePixelRatio", 728 | "writeIn", 729 | "NS0Ga3BBA18=", 730 | "Y2hyb21lOi8vanVnZ2xlci9jb250ZW50", 731 | "onmouseleave", 732 | "elementFromPoint", 733 | "contentType", 734 | "onselect", 735 | "onmousewheel", 736 | "Doctype", 737 | "onlanguagechange", 738 | "onscrollend", 739 | "aHgbfi0VF00=", 740 | "oncontextmenu", 741 | "Replacechildren", 742 | "queryCommandEnabled", 743 | "VRFieldOfView", 744 | "onformdata", 745 | "clearAppBadge", 746 | "ondragexit", 747 | "RELEASEevents", 748 | "locationbar", 749 | "GwdoAV5oajE=", 750 | "usedJSHeapSize", 751 | "importNode", 752 | "Bluetooth", 753 | "Securitypolicy", 754 | "getElementsByClassName", 755 | "exitPointerLock", 756 | "createEvent", 757 | "webkitRTCPeerConnection", 758 | "ononline", 759 | "adoptNode", 760 | "createEntityReference", 761 | "VRPose", 762 | "onbeforexrselect", 763 | "Open", 764 | "onsubmit", 765 | "onsuspend", 766 | "Permissions", 767 | "Onappinstalled", 768 | "onpointermove", 769 | "personalbar", 770 | "queryCommandValue", 771 | "onvolumechange", 772 | "requestStorageAccess", 773 | "WQkqDxxiKDU=", 774 | "ongotpointercapture", 775 | "mozInnerScreenY", 776 | "ondragend", 777 | "width", 778 | "1372IAfRcb", 779 | "3cytsdC", 780 | "ondeviceorientation", 781 | "safari", 782 | "webkitSpeechRecognitionError", 783 | "IUESR2QtF3w=", 784 | "onoverscroll", 785 | "getDefaultComputedStyle", 786 | "onshow", 787 | "createAttribute", 788 | "productSub (important returns the build number of the current browser)", 789 | "OAhLTn1jSHQ=", 790 | "onselectstart", 791 | "KVkaX282Gmo=", 792 | "[object process]", 793 | "crypto", 794 | "mozFullScreen", 795 | "CaptureEvents", 796 | "onmouseenter", 797 | "dmFsdWU=", 798 | "onunload", 799 | "sort", 800 | "plugins", 801 | "onreset", 802 | "webkitURL", 803 | "onwebkitanimationiteration", 804 | "mozFullScreenElement", 805 | "Plugins", 806 | "onmousedown", 807 | "onpointerenter", 808 | "buildID (important return the buildID on firefox in addition to productSub)", 809 | "cHJvdG90eXBl", 810 | "onvrdisplayactivate", 811 | "mozRTCPeerConnection", 812 | "onpointerrawupdate", 813 | "filter", 814 | "VREyeParameters", 815 | "mozRTCSessionDescription", 816 | "getComputedStyle", 817 | "createProcessingInstruction", 818 | "onbeforeinstallprompt", 819 | "getSelection", 820 | "onbeforeunload", 821 | "onwebkittransitionend", 822 | "ondurationchange", 823 | "Product", 824 | "onemptied", 825 | "prototype", 826 | "c2FmYXJp", 827 | "HTMLElement", 828 | "ontransitionend", 829 | "webkitMediaStream", 830 | "querySelector", 831 | "onactivateinvisible", 832 | "onvrdisplayconnect", 833 | "fragmentDirective", 834 | "onmozfullscreenerror", 835 | "queryCommandState", 836 | "call", 837 | "fyNMZTpJQFY=", 838 | "onpopstate", 839 | "NkpFDHMmSDs=", 840 | "RnVuY3Rpb24=", 841 | "Locks", 842 | "onmozfullscreenchange", 843 | "Serial", 844 | "onseeking", 845 | "eWFuZGV4", 846 | "caches", 847 | "hasFocus", 848 | "CREATEdOCUMENTfRAGMENT", 849 | "match", 850 | "createElementsFromPoint", 851 | "release", 852 | "onmouseover", 853 | "totalJSHeapSize", 854 | "name", 855 | "featurePolicy", 856 | "onerror", 857 | "ondrop", 858 | "ondragover", 859 | "Yandex", 860 | "onafterscriptexecute", 861 | "bGFuZ3VhZ2Vz", 862 | "hasOwnProperty", 863 | "b3By", 864 | "getElementbyTagName", 865 | "fileSize", 866 | "onunhandledrejection", 867 | "selectedStyleSheetSet", 868 | "substring", 869 | "eval", 870 | "getUserMedia", 871 | "xmlVersion", 872 | "releaseCapture", 873 | "setAppBadge", 874 | "Close", 875 | "appName", 876 | "getvrdISPLAYS", 877 | "ajYZMC9aHAo=", 878 | "onpageshow", 879 | "BX12O0MSdgg=", 880 | "VRFrameData", 881 | "LnJddGgcX0I=", 882 | "CreateAttributeNS", 883 | "getBoxObjectFor", 884 | "CREATEelement", 885 | "Onanimationstart", 886 | "mediaSession", 887 | "Presentation", 888 | "pushNotification", 889 | "queryCommandSupported", 890 | "getOverrideStyle", 891 | "Onanimationiteration", 892 | "createRange", 893 | "loadOverlay", 894 | "KnZZcG8aWUc=", 895 | "onrejectionhandled", 896 | "VGxnahEAYl8=", 897 | "slice", 898 | "onplaying", 899 | "ontoggle", 900 | "2832753hiJxcy", 901 | "Onfullscreenchange", 902 | "oncanplay" 903 | ]; 904 | return n[(t -= 479)]; 905 | } 906 | 907 | function bh(t, e) { 908 | var n = [ 909 | "1340lpVjDc", 910 | "GmVgpc", 911 | "6372KKzTjO", 912 | "join", 913 | "floor", 914 | "9131zIOdRo", 915 | "WXxeLfKGyO", 916 | "reverse", 917 | "6qkyh6vQe", 918 | "YMsdv", 919 | "2655666NDncXD", 920 | "46FpfnKv", 921 | "1550152GCSFzQ", 922 | "b7R", 923 | "split", 924 | "T3lHS2ZMZXhYVw==", 925 | "376458dHgdjo", 926 | "kYudzCSg", 927 | "1972180NUlSue", 928 | "Odv9UP", 929 | "1132648IWZZDw", 930 | "bRVeEyh5XSI=", 931 | "dOq86K9SQG", 932 | "apply" 933 | ]; 934 | return n[(t -= 354)]; 935 | } 936 | 937 | function fd(t, e) { 938 | var n = [ 939 | "ontouchstart", 940 | "platform", 941 | "referrer", 942 | "T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcg==", 943 | "uaFullVersion", 944 | "cy9AaTVDRFg=", 945 | "battery", 946 | "Rlp1HAA7ci0=", 947 | "Ql5xGAcyfCM=", 948 | "spawn", 949 | "get", 950 | "dEwHCjIjBjg=", 951 | "maxTouchPoints", 952 | "b1NcVSo+Wmc=", 953 | "offsetHeight", 954 | "push", 955 | "getTime", 956 | "missing", 957 | "N2sELXIBBR8=", 958 | "ondeviceready", 959 | "innerHeight", 960 | "eydIYT5LTVI=", 961 | "Czd4cU5dfUQ=", 962 | "aRlaHyx0Wi4=", 963 | "getPrototypeOf", 964 | "PkJNBHsqTz8=", 965 | "WiZpIB9JbRc=", 966 | "WebAssembly", 967 | "VQ0mCxBkIT8=", 968 | "3904125bVGTeA", 969 | "userAgent", 970 | "GmYpYF8MLVY=", 971 | "ZR1WGyNyVyg=", 972 | "webView", 973 | "fontFromResourceApi", 974 | "pixelDepth", 975 | "DateTimeFormat", 976 | "dispatchEvent", 977 | "moz", 978 | "WGhrbh4Fa1o=", 979 | "userAgentData", 980 | "sort", 981 | "outerWidth", 982 | "DFQ/Ekk5Oyg=", 983 | "OAhLTn1hSng=", 984 | "availHeight", 985 | "DhI9VEh+PmY=", 986 | "message", 987 | "Q38wOQYXNQM=", 988 | "45wjqeqr", 989 | "XGRvYhoOY1k=", 990 | "Buffer", 991 | "localStorage", 992 | "ZHwXeiEQF08=", 993 | "_Selenium_IDE_Recorder", 994 | "pageYOffset", 995 | "cookieEnabled", 996 | "prototype", 997 | "msDoNotTrack", 998 | "PARPQnlsS3I=", 999 | "cg4BSDdkBno=", 1000 | "dG90YWxKU0hlYXBTaXpl", 1001 | "2724416PEgfXr", 1002 | "scrollX", 1003 | "addEventListener", 1004 | "split", 1005 | "undefined", 1006 | "(pointer:fine)", 1007 | "height", 1008 | "callPhantom", 1009 | "getEntries", 1010 | "languages", 1011 | "MVECV3Q7A2M=", 1012 | "JDxXOmFVVQE=", 1013 | "RBx3WgFzcms=", 1014 | "U08gSRYkIHI=", 1015 | "TlJ9FAs+eCU=", 1016 | "item", 1017 | "ActiveXObject", 1018 | "bjIdNChdEQc=", 1019 | "O2cIIX0LChc=", 1020 | "Bho1XENwOWc=", 1021 | "HUVuQ1sqang=", 1022 | "PSUOY3tEC1M=", 1023 | "HuNv", 1024 | "IUESR2QtEnw=", 1025 | "dW1GKzMDRh8=", 1026 | "DFQ/Ekk5OiE=", 1027 | "HUVuQ1sqaHA=", 1028 | "KxcYEW5+GyA=", 1029 | "MVECV3Q9Bmw=", 1030 | "Ah4xWEdyPG0=", 1031 | "brands", 1032 | "visible", 1033 | "defaultView", 1034 | "random", 1035 | "rtt", 1036 | "name", 1037 | "TBR/Ugl9eWk=", 1038 | "console", 1039 | "domAutomationController", 1040 | "navigation", 1041 | "value", 1042 | "JDxXOmFVWwk=", 1043 | "setItem", 1044 | "Ix8QGWZwFC0=", 1045 | "cHADdjYfAkM=", 1046 | "BFw3GkI9MC8=", 1047 | "deviceMemory", 1048 | "AEAzBkUsMTw=", 1049 | "20990vSYiTr", 1050 | "YQFSByRsVDM=", 1051 | "JV0WW2AxG2E=", 1052 | "VQ0mCxBhJzk=", 1053 | "outerHeight", 1054 | "bHQfcikYGUQ=", 1055 | "sendBeacon", 1056 | "TBR/Ugl9fmM=", 1057 | " Mobile/", 1058 | "O2cIIX0LDxo=", 1059 | "Czd4cU1We0Q=", 1060 | "appName", 1061 | "onLine", 1062 | "aGFyZHdhcmVDb25jdXJyZW5jeQ==", 1063 | "getComputedStyle", 1064 | "M28AKXUCAhs=", 1065 | "colorDepth", 1066 | "input", 1067 | "mobile", 1068 | "ICBTJmZKXxA=", 1069 | "hasOwnProperty", 1070 | "cRFCFzdwRCw=", 1071 | "BatteryManager", 1072 | "getBattery", 1073 | "RunPerfTest", 1074 | "availWidth", 1075 | "PARPQnpuQ3c=", 1076 | "EFAjFlY+LyU=", 1077 | "LVUeU2s1Gmk=", 1078 | "matches", 1079 | "2550408chIUtG", 1080 | "downlink", 1081 | "effectiveType", 1082 | "GwdoAV5uZDM=", 1083 | "substring", 1084 | "cssFromResourceApi", 1085 | "In5ReGQRUkI=", 1086 | "Content Security Policy", 1087 | "M28AKXYHARs=", 1088 | "HUVuQ1srY3A=", 1089 | "DXV+M0sUcgc=", 1090 | "XiJtJBhPahc=", 1091 | "153688ZoUiqp", 1092 | "Bzt0fUJWeEk=", 1093 | "openDatabase", 1094 | "anNIZWFwU2l6ZUxpbWl0", 1095 | "hidden", 1096 | "DXV+M0sfeQY=", 1097 | "DhI9VEt6O2c=", 1098 | "GCgrLl1FLR0=", 1099 | "isSecureContext", 1100 | "U08gSRUuJH8=", 1101 | "P2MMJXkJDRE=", 1102 | "dytEbTFHR1k=", 1103 | "HwNsBVliaz4=", 1104 | "bRVeEyt7Uyk=", 1105 | "fbRv~argX$hBxMA", 1106 | "MDBDNnVcRwI=", 1107 | "architecture", 1108 | "PkJNBHgjTTY=", 1109 | "YGATZiYNF1I=", 1110 | "O2cIIX0HBBc=", 1111 | "bRVeEyh+XSA=", 1112 | "JxsUHWJ0EC4=", 1113 | "v8Locale", 1114 | "ZR1WGyN8Vi4=", 1115 | "toString", 1116 | "MVECV3c7AW0=", 1117 | "fgINRDtpCXI=", 1118 | "emit", 1119 | "indexOf", 1120 | "JnpVfGAWU0Y=", 1121 | "getBoundingClientRect", 1122 | "notify", 1123 | "VGxnahINZV8=", 1124 | "P2MMJXoLCh8=", 1125 | "shift", 1126 | "buildID", 1127 | "offsetWidth", 1128 | "Ew9gCVZjZDw=", 1129 | "awesomium", 1130 | "egYJQDxrDXs=", 1131 | "scrollY", 1132 | "cg4BSDdnB3k=", 1133 | "YGATZiYOFFw=", 1134 | "productSub", 1135 | "matchMedia", 1136 | "DhI9VEhzPWU=", 1137 | "XDomainRequest", 1138 | "map", 1139 | "d2ViZHJpdmVy", 1140 | "forEach", 1141 | "performance", 1142 | "length", 1143 | "JV0WW2A0FWA=", 1144 | "dW1GKzMMShg=", 1145 | "SBh7Xg53d2k=", 1146 | "LnJddGgcWUM=", 1147 | "getAttribute", 1148 | " Safari/", 1149 | "query", 1150 | "requestAnimationFrame", 1151 | "geolocation", 1152 | "KVkaX2wyFms=", 1153 | "aRlaHyx1XC0=", 1154 | "ViplLBNGYB4=", 1155 | "voiceURI", 1156 | "Rlp1HAA3eS4=", 1157 | "label", 1158 | "FmolbFAFKVo=", 1159 | "VQ0mCxBlID0=", 1160 | "atob", 1161 | "BFw3GkIwNyg=", 1162 | "NS0Ga3NHClk=", 1163 | "Date", 1164 | "XiJtJBtNaRU=", 1165 | "visibility", 1166 | "VGxnahEGZ1g=", 1167 | "external", 1168 | "eydIYT5ISlI=", 1169 | "KxcYEW19GCo=", 1170 | "FU1mS1Mga30=", 1171 | "cRFCFzR7RSA=", 1172 | "SBh7Xg1ydms=", 1173 | "HwNsBVpubjM=", 1174 | "Performance", 1175 | "runtime", 1176 | "ZjoVPCBVGQ0=", 1177 | "167769tdFDzD", 1178 | "TBR/Ugl4f2g=", 1179 | "instantiate", 1180 | "AudioWorklet", 1181 | "documentElement", 1182 | "JV0WW2AyEmA=", 1183 | "type", 1184 | "true", 1185 | "S3c4MQ0WNQQ=", 1186 | "keys", 1187 | "chrome", 1188 | "ancestorOrigins", 1189 | "XiJtJBhPbh8=", 1190 | "48kQCYnQ", 1191 | "SlZ5EA89eCY=", 1192 | "imgFromResourceApi", 1193 | "LVUeU2s1H2g=", 1194 | "platformVersion", 1195 | "geb", 1196 | "saveData", 1197 | "connection", 1198 | "JnpVfGAQWE4=", 1199 | "V0skTRIgJH4=", 1200 | "[object PluginArray]", 1201 | "TTU+cwtaPUU=", 1202 | "html", 1203 | "FwtkDVFkZDo=", 1204 | "enabledPlugin", 1205 | "tagName", 1206 | "appVersion", 1207 | "caches", 1208 | "orientation", 1209 | "standalone", 1210 | "bmF2aWdhdG9yLndlYmRyaXZlcg==", 1211 | "HUVuQ1spb3Q=", 1212 | "mimeTypes", 1213 | "width", 1214 | "test", 1215 | "[object HTMLPluginsCollection]", 1216 | "XQUuAxtpKTI=", 1217 | "format", 1218 | "HCQvIllPIhE=", 1219 | "Q38wOQURNAo=", 1220 | "call", 1221 | "EventSource", 1222 | "RequestAnimationFrame", 1223 | "cookie", 1224 | "hardwareConcurrency", 1225 | "_cordovaNative", 1226 | "fgINRDhuC38=", 1227 | "EXFiN1cdbgY=", 1228 | "Worklet", 1229 | "VQ0mCxNhIz4=", 1230 | "VGxnahEAY1A=", 1231 | "Bzt0fUJSck4=", 1232 | "AEAzBkYhMz0=", 1233 | "getTimezoneOffset", 1234 | "documentMode", 1235 | "plugins", 1236 | "XGRvYhoLb1k=", 1237 | "PkJNBHgiSj4=", 1238 | "HUVuQ1sqanM=", 1239 | "ZjoVPCBWEgY=", 1240 | "Ah4xWEd0PW0=", 1241 | "null", 1242 | "domAutomation", 1243 | "Rlp1HAMwcCo=", 1244 | "(any-hover: none), (any-pointer: coarse)", 1245 | "setInterval", 1246 | "elementFromPoint", 1247 | "IUESR2ctEn0=", 1248 | "setTimeout", 1249 | "Em4haFQAJ1k=", 1250 | "egYJQD9rCnU=", 1251 | "bHQfcikdGEc=", 1252 | "bHQfcioZHUQ=", 1253 | "cssFromStyleSheets", 1254 | "dW1GKzMNSxg=", 1255 | "PointerEvent", 1256 | "pageXOffset", 1257 | "ViplLBNHZRk=", 1258 | "getElementsByTagName", 1259 | "SlZ5EAw7eCA=", 1260 | "LnJddGsZWUE=", 1261 | "bjIdNCtfHAI=", 1262 | "timing", 1263 | "[object MimeTypeArray]", 1264 | "__nightmare", 1265 | "bmF2aWdhdG9yLnVzZXJBZ2VudA==", 1266 | "ZR1WGyNyUSs=", 1267 | "ViplLBNHZRc=", 1268 | "language", 1269 | "LxMcFWp5GS8=", 1270 | "TTU+cwhdOUI=", 1271 | "appCodeName", 1272 | "__webdriver_script_fn", 1273 | "pdfViewerEnabled", 1274 | "innerWidth", 1275 | "log", 1276 | "ajYZMCxaGwM=", 1277 | "[object MSPluginsCollection]", 1278 | "fmget_targets", 1279 | "PARPQnluT3c=", 1280 | "cRFCFzR8Qy0=", 1281 | "AudioWorkletNode", 1282 | "getOwnPropertyDescriptor", 1283 | "product", 1284 | "showModalDialog", 1285 | "15535070MTAgcB", 1286 | "bitness", 1287 | "QSEyZwdAPlY=", 1288 | "doNotTrack", 1289 | "AWFyJ0QIdhY=", 1290 | "constructor", 1291 | "[object Geolocation]", 1292 | "T3M8NQkZPwY=", 1293 | "cg4BSDRhBnw=", 1294 | "dXNlZEpTSGVhcFNpemU=", 1295 | "bRVeEyt5UyY=", 1296 | "In5ReGQRU0k=", 1297 | "bWVtb3J5", 1298 | "QABzRgVsdnY=", 1299 | "NkpFDHMmQzk=", 1300 | "HUVuQ1spaHM=", 1301 | "LxMcFWl/GiM=", 1302 | "model", 1303 | "SBh7Xg55fW0=", 1304 | "cy9AaTZEQls=", 1305 | "2,10", 1306 | "Android", 1307 | "permissions", 1308 | "webkit", 1309 | "W0coQR4vJXE=", 1310 | "cRFCFzR8TiY=", 1311 | "BDxAnFW", 1312 | "AEAzBkUsPz0=", 1313 | "19kheNiS", 1314 | "MatchesSelector", 1315 | "ChY5UE98OmU=", 1316 | "OSkKb39DCV8=", 1317 | "bind", 1318 | "ajYZMC9aGQY=", 1319 | "fWVOIzgNShE=", 1320 | "TouchEvent", 1321 | "HUVuQ1spa3Q=", 1322 | "PARPQnpqTnQ=", 1323 | "add", 1324 | "onorientationchange", 1325 | "fyNMZTpPSFY=", 1326 | "V0skTRImI34=", 1327 | "Rlp1HAAwcS0=", 1328 | "dEwHCjIgAT4=" 1329 | ]; 1330 | return n[(t -= 223)]; 1331 | } 1332 | 1333 | function Fp(t, e) { 1334 | var n = [ 1335 | "199990DBVxdf", 1336 | "bind", 1337 | "SlZ5EA89dSI=", 1338 | "10336508jIqtFA", 1339 | "xhrSuccess", 1340 | "2ddcKuz", 1341 | "Em4haFQELV8=", 1342 | "postData", 1343 | "T3M8NQoYPA8=", 1344 | "FCwnKlJNKhk=", 1345 | "Blob", 1346 | "fallbackStartIndex", 1347 | "activities", 1348 | "fEQPAjopAjY=", 1349 | "3658266FdJQsE", 1350 | "clientXhrErrors", 1351 | "testDefaultPath", 1352 | "MDBDNnVcQQE=", 1353 | "setItem", 1354 | "clientHttpErrorStatuses", 1355 | "length", 1356 | "splice", 1357 | "PXHCFakeVerificationResponse", 1358 | "ChY5UEx8PmA=", 1359 | "IUESR2QoH3A=", 1360 | "xhrFailure", 1361 | "10490814NfTjOd", 1362 | "xhrResponse", 1363 | "captchaFailures", 1364 | "57059oCFOxB", 1365 | "trigger", 1366 | "KnZZcG8aW0Y=", 1367 | "params", 1368 | "462496UyYrXG", 1369 | "Events", 1370 | "hasOwnProperty", 1371 | "ZHwXeiIQGkg=", 1372 | "join", 1373 | "_px3", 1374 | "_px", 1375 | "push", 1376 | "px_c_p_", 1377 | "getItem", 1378 | "getTime", 1379 | "sendBeacon", 1380 | "filter", 1381 | "clientRoutesLength", 1382 | "sendActivitiesCount", 1383 | "PXHCBootstrapTries", 1384 | "clientFailures", 1385 | "PX561", 1386 | "3811923cRKNvl", 1387 | "572atJeRK", 1388 | "extend", 1389 | "24xdKnxc", 1390 | "60BTptRI", 1391 | "_px2" 1392 | ]; 1393 | return n[(t -= 462)]; 1394 | } 1395 | 1396 | function kg(t, e) { 1397 | var n = [ 1398 | "removeItem", 1399 | "uid", 1400 | "reload", 1401 | "vid", 1402 | "4628364MiBuNc", 1403 | "length", 1404 | "getTime", 1405 | "_pxRootUrl", 1406 | "ttl", 1407 | "pxvid", 1408 | "trigger", 1409 | "bind", 1410 | "_pxmvid", 1411 | "9031890ZQAhgz", 1412 | "_asyncInit", 1413 | "KnZZcGwcX0I=", 1414 | "NkpFDHAnRzs=", 1415 | "3448bztBqM", 1416 | "223210VNTJMS", 1417 | "subscribe", 1418 | "3646173Ludexn", 1419 | "random", 1420 | "IUESR2QoH3A=", 1421 | "AWFyJ0cPfhc=", 1422 | "ZHwXeiIQGkg=", 1423 | "4068540YYrhOg", 1424 | "one", 1425 | "val", 1426 | "cRFCFzdwTy0=", 1427 | "getItem", 1428 | "5VRMHZB", 1429 | "_pxVid", 1430 | "xhrSuccess", 1431 | "15711540wqskBO", 1432 | "pxInit", 1433 | "xhrFailure", 1434 | "xhrResponse", 1435 | "platform", 1436 | "9027CTQCED", 1437 | "2oFZulk" 1438 | ]; 1439 | return n[(t -= 189)]; 1440 | } 1441 | 1442 | const calls = { Dc, rf, gf, jf, Zl, dh, bh, fd, Fp, kg }; 1443 | 1444 | function apply_X_Transform(path) { 1445 | if ( 1446 | t.isIdentifier(path.node.callee, { name: "X" }) && 1447 | path.node.arguments.length === 1 && 1448 | t.isStringLiteral(path.node.arguments[0]) 1449 | ) { 1450 | const rValue = X(path.node.arguments[0].value); 1451 | path.replaceWith(t.stringLiteral(rValue)); 1452 | } 1453 | } 1454 | 1455 | function apply_c_Transform(path) { 1456 | if ( 1457 | t.isIdentifier(path.node.callee, { name: "c" }) && 1458 | path.node.arguments.length === 1 && 1459 | t.isStringLiteral(path.node.arguments[0]) 1460 | ) { 1461 | const rValue = c(path.node.arguments[0].value); 1462 | path.replaceWith(t.stringLiteral(rValue)); 1463 | } 1464 | } 1465 | 1466 | return { 1467 | name: "ast-transform", // not required 1468 | visitor: { 1469 | Program(path) { 1470 | path.traverse({ 1471 | CallExpression(path) { 1472 | apply_X_Transform(path); 1473 | apply_c_Transform(path); 1474 | 1475 | if ( 1476 | t.isIdentifier(path.node.callee) && 1477 | path.node.callee.name in calls && 1478 | path.node.arguments.length === 1 && 1479 | t.isNumericLiteral(path.node.arguments[0]) 1480 | ) { 1481 | const rValue = calls[path.node.callee.name]( 1482 | path.node.arguments[0].value 1483 | ); 1484 | path.replaceWith(t.stringLiteral(rValue)); 1485 | } 1486 | }, 1487 | }); 1488 | 1489 | // Replace the remaining calls to the functions of X and c with the following 1490 | path.traverse({ 1491 | CallExpression(path) { 1492 | apply_X_Transform(path); 1493 | apply_c_Transform(path); 1494 | }, 1495 | }); 1496 | 1497 | // Remove these codes, which can send execution into a dead loop 1498 | path.traverse({ 1499 | ExpressionStatement(path) { 1500 | const code = path.getSource(); 1501 | if (code.split("\n").length > 13) return; 1502 | const regex = /!?\s*function\s*\(\s*\w+\s*,\s*\w+\s*\)\s*{\s*for\s*\(.*\)\s*{\s*try\s*{\s*.*parseInt.*\s*\.push\(.*\.shift\(\)\);\s*} catch/s; 1503 | if (regex.test(code)) path.remove(); 1504 | }, 1505 | }); 1506 | }, 1507 | }, 1508 | }; 1509 | } 1510 | 1511 | 1512 | ``` -------------------------------------------------------------------------------- /payload.md: -------------------------------------------------------------------------------- 1 | # PerimeterX Payload Analysis - Privacy Research 2 | 3 | ## ⚠️ PRIVACY RESEARCH USE ONLY 4 | 5 | **📋 [Complete Legal Disclaimer and Terms of Use](DISCLAIMER.md)** 6 | 7 | This document contains educational analysis of browser fingerprinting techniques for **authorized privacy and security research** in controlled environments that comply with all applicable laws and institutional ethics guidelines. 8 | 9 | **Important:** This analysis is provided solely for **research purposes** and must not be used to circumvent security systems or violate terms of service. 10 | 11 | --- 12 | 13 | ## Fingerprint Collection Analysis 14 | 15 | ### PX11307 16 | n / a 17 | 18 | ### PX11309 19 | ```javascript 20 | function gd(t, e) { 21 | try { 22 | if (t && t[e]) { 23 | var n = new t[e](""); 24 | var r = ""; 25 | for (var a in n) if (n.hasOwnProperty(a)) { 26 | r += a; 27 | } 28 | return undefined ? undefined ? At(undefined, r) : Et(At(undefined, r)) : undefined ? Rt(r) : Et(Rt(r)); 29 | } 30 | } catch (t) {} 31 | return "no_fp"; 32 | } 33 | 34 | return gd(window, "WebKitCSSMatrix"); 35 | ``` 36 | 37 | ### PX11311 38 | ```javascript 39 | function Wd(t) { 40 | if (Pd !== t) { 41 | (t ? zo : Jo)(document, "click", Gd); 42 | Pd = t; 43 | } 44 | } 45 | 46 | function zo(t, e, n, r) { 47 | try { 48 | var a; 49 | if (t && e && f(n) === "function" && f(e) === "string") { 50 | if (f(t.addEventListener) === "function") { 51 | if (Wo) { 52 | a = false; 53 | if (f(r) === "boolean") { 54 | a = r; 55 | } else if (r && f(r.useCapture) === "boolean") { 56 | a = r.useCapture; 57 | } else if (r && f(r.capture) === "boolean") { 58 | a = r.capture; 59 | } 60 | } else if (f(r) === "object" && null !== r) { 61 | a = {}; 62 | if (r.hasOwnProperty("capture")) { 63 | a.capture = r.capture || false; 64 | } 65 | if (r.hasOwnProperty("once")) { 66 | a.once = r.once; 67 | } 68 | if (r.hasOwnProperty("passive")) { 69 | a.passive = r.passive; 70 | } 71 | if (r.hasOwnProperty("mozSystemGroup")) { 72 | a.mozSystemGroup = r.mozSystemGroup; 73 | } 74 | } else { 75 | a = { 76 | passive: true, 77 | capture: f(r) === "boolean" && r || false 78 | }; 79 | } 80 | t.addEventListener(e, n, a); 81 | } else if (f(t.attachEvent) === "function") { 82 | t.attachEvent("on" + e, n); 83 | } 84 | } 85 | } catch (t) {} 86 | } 87 | 88 | function Jo(t, e, n) { 89 | try { 90 | if (t && e && f(n) === "function" && f(e) === "string") { 91 | if (f(t.removeEventListener) === "function") { 92 | t.removeEventListener(e, n); 93 | } else if (f(t.detachEvent) === "function") { 94 | t.detachEvent("on" + e, n); 95 | } 96 | } 97 | } catch (t) {} 98 | } 99 | 100 | function Wd(t) { 101 | if (Pd !== t) { 102 | (t ? zo : Jo)(document, "click", Gd); 103 | Pd = t; 104 | } 105 | } 106 | 107 | function Gd(t) { 108 | var e; 109 | if (Qd) { 110 | var r = function (t) { 111 | try { 112 | if (!t || !t.isTrusted) { 113 | return false; 114 | } 115 | var e = Io(t); 116 | if (!e) { 117 | return false; 118 | } 119 | var n = e.getClientRects(); 120 | var r = { 121 | x: n[0].left + n[0].width / 2, 122 | y: n[0].top + n[0].height / 2 123 | }; 124 | var a = Math.abs(r.x - t.clientX); 125 | var o = Math.abs(r.y - t.clientY); 126 | if (a < 1 && o < 1) { 127 | return { 128 | centerX: a, 129 | centerY: o 130 | }; 131 | } 132 | } catch (t) {} 133 | return null; 134 | }(t); 135 | if (r) { 136 | Yd++; 137 | var a = Io(t); 138 | var o = Zo(a); 139 | var i = No(a); 140 | u(e = {}, "PX11652", o); 141 | u(e, "PX12305", r.centerX); 142 | u(e, "PX11311", r.centerY); 143 | u(e, "PX11427", i.top); 144 | u(e, "PX12208", i.left); 145 | u(e, "PX11824", a.offsetWidth); 146 | u(e, "PX11631", a.offsetHeight); 147 | u(e, "PX12129", Yd); 148 | lf("PX12030", e); 149 | if (5 <= Yd) { 150 | Qd = false; 151 | Wd(false); 152 | } 153 | } 154 | } 155 | } 156 | 157 | ``` 158 | 159 | ### PX11316 160 | ```javascript 161 | { 162 | name: "PX11316", 163 | func: function () { 164 | return !!document.body.addBehavior; 165 | }, 166 | defValue: false 167 | } 168 | ``` 169 | 170 | ### PX11325 171 | n / a 172 | 173 | ### PX11339 174 | ```javascript 175 | var Bv = function () { 176 | var e = new RegExp("/api/v2/collector", "g"); 177 | return ft ? [new RegExp("/".concat(Gy[Me].replace("PX", ""), "/init.js"), "g"), e] : [/(?:https?:)?\/\/client(?:-stg)?\.(?:perimeterx\.net|a\.pxi\.pub|px-cdn\.net|px-cloud\.net)\/PX[A-Za-z0-9]{4,8}\/main\.min\.js/g, e]; 178 | }; 179 | 180 | var my = function () { 181 | var t = arguments.length > 0 && undefined !== arguments[0] ? arguments[0] : {}; 182 | var e = t.regexList; 183 | var n = t.urlContainsList; 184 | var r = t.entriesFilter; 185 | var a = undefined === r ? function () { 186 | return true; 187 | } : r; 188 | if (!(f(or(window, "performance.getEntries", null)) === "function")) { 189 | return []; 190 | } 191 | var o = window.performance.getEntries().filter(a); 192 | var c = []; 193 | for (var i = 0; i < o.length; i++) { 194 | var u = o[i]; 195 | if (e) { 196 | for (var s = 0; s < e.length; s++) { 197 | var h = e[s]; 198 | if ("string" == typeof h) { 199 | h = new RegExp(e[s]); 200 | } 201 | if (h && f(h.test) === "function" && h.test(u.name)) { 202 | c.push(u); 203 | } 204 | } 205 | } else if (n) { 206 | for (var l = 0; l < n.length; l++) { 207 | var d = n[l]; 208 | if (-1 !== u.name.indexOf(d)) { 209 | c.push(u); 210 | } 211 | } 212 | } 213 | } 214 | return c; 215 | }; 216 | 217 | function gv() { 218 | if (Yn && Yn.hasOwnProperty(Fn[jt])) { 219 | try { 220 | var e = Bv(); 221 | var n = my({ 222 | regexList: [e[0]] 223 | })[0]; 224 | if (n) { 225 | mv("PX11807", n.duration); 226 | } 227 | var r = my({ 228 | regexList: [e[1]] 229 | })[0]; 230 | if (r) { 231 | mv("PX11339", r.duration); 232 | mv("PX12298", r.domainLookupEnd - r.domainLookupStart); 233 | } 234 | } catch (t) {} 235 | } 236 | } 237 | ``` 238 | 239 | ### PX11344 240 | ```javascript 241 | function Zo(t, e) { 242 | if (!(t && (t instanceof Element || f(t) === "object" && null !== t && 1 === t.nodeType))) { 243 | return ""; 244 | } 245 | var n; 246 | var r = t[Eo]; 247 | if (r) { 248 | return e ? Mo(r) : r; 249 | } 250 | try { 251 | n = function (t) { 252 | if (t.id) { 253 | return "#" + t.id; 254 | } 255 | var e; 256 | var n = ""; 257 | for (var r = 0; r < 20; r++) { 258 | if (!(t && t instanceof Element)) { 259 | return n; 260 | } 261 | if ("html" === t.tagName.toLowerCase()) { 262 | return n; 263 | } 264 | if (t.id) { 265 | return "#" + t.id + n; 266 | } 267 | if (!((e = xo(t)) instanceof Element)) { 268 | return t.tagName + n; 269 | } 270 | if (Co(n = Oo(t, e) + n)) { 271 | return n; 272 | } 273 | t = e; 274 | n = ">" + n; 275 | } 276 | }(t); 277 | n = n.replace(/^>/, ""); 278 | n = e ? Mo(n) : n; 279 | t[Eo] = n; 280 | } catch (t) {} 281 | return n || t.id || t.tagName || ""; 282 | } 283 | 284 | function Vc(t, e, n) { 285 | var r; 286 | if (e) { 287 | u(r = {}, "PX11918", e || ""); 288 | u(r, "PX12242", n || ""); 289 | u(r, "PX11652", Zo(t, true)); 290 | lc("PX11344", r); 291 | } 292 | } 293 | ``` 294 | 295 | ### PX11352 296 | ```javascript 297 | try { 298 | r = t.createBuffer(); 299 | t.bindBuffer(t.ARRAY_BUFFER, r); 300 | var u = new Float32Array([-.2, -.9, 0, .4, -.26, 0, 0, .732134444, 0]); 301 | t.bufferData(t.ARRAY_BUFFER, u, t.STATIC_DRAW); 302 | r.itemSize = 3; 303 | r.numItems = 3; 304 | a = t.createProgram(); 305 | o = t.createShader(t.VERTEX_SHADER); 306 | t.shaderSource(o, "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}"); 307 | t.compileShader(o); 308 | i = t.createShader(t.FRAGMENT_SHADER); 309 | t.shaderSource(i, "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}"); 310 | t.compileShader(i); 311 | t.attachShader(a, o); 312 | t.attachShader(a, i); 313 | t.linkProgram(a); 314 | t.useProgram(a); 315 | a.vertexPosAttrib = t.getAttribLocation(a, "attrVertex"); 316 | a.offsetUniform = t.getUniformLocation(a, "uniformOffset"); 317 | t.enableVertexAttribArray(a.vertexPosArray); 318 | t.vertexAttribPointer(a.vertexPosAttrib, r.itemSize, t.FLOAT, false, 0, 0); 319 | t.uniform2f(a.offsetUniform, 1, 1); 320 | t.drawArrays(t.TRIANGLE_STRIP, 0, r.numItems); 321 | e.canvasfp = null === t.canvas ? "no_fp" : undefined ? undefined ? At(undefined, t.canvas.toDataURL()) : Et(At(undefined, t.canvas.toDataURL())) : undefined ? Rt(t.canvas.toDataURL()) : Et(Rt(t.canvas.toDataURL())); 322 | e.extensions = t.getSupportedExtensions() || ["no_fp"]; 323 | } catch (t) { 324 | e.errors.push("PX11982"); 325 | } 326 | 327 | r.PX11352 = n.canvasfp; 328 | ``` 329 | 330 | ### PX11353 331 | ```javascript 332 | function n(n) { 333 | if (e) { 334 | for (var a = 0; a < zc.length; a++) { 335 | var o = zc[a]; 336 | document.removeEventListener(o, e[o]); 337 | } 338 | e = null; 339 | t("PX11353", n); 340 | } 341 | } 342 | ``` 343 | 344 | ### PX11362 345 | ```javascript 346 | function ci(t) { 347 | var n = ["storeItem", "retrieveItem", "isNodeReachable_"]; 348 | try { 349 | var r = Object.getOwnPropertyNames(document); 350 | for (var a = 0; a < r.length; a++) { 351 | try { 352 | var o = document[r[a]]; 353 | var i = Object.getOwnPropertyNames(o.__proto__).toString(); 354 | for (var u = 0; u < n.length && -1 !== i.indexOf(n[u]); u++) { 355 | if (u === n.length - 1) { 356 | t("PX11362"); 357 | } 358 | } 359 | } catch (t) {} 360 | } 361 | } catch (t) {} 362 | } 363 | ``` 364 | 365 | ### PX11380 366 | ```javascript 367 | t.PX11380 = screen && +screen.colorDepth || 0; 368 | ``` 369 | 370 | ### PX11388 371 | n / a 372 | 373 | ### PX11390 374 | ```javascript 375 | t.PX11390 = function () { 376 | try { 377 | return new Date().getTimezoneOffset(); 378 | } catch (t) { 379 | return 9999; 380 | } 381 | }(); 382 | ``` 383 | 384 | ### PX11393 385 | ```javascript 386 | if (t.type === "mousemove" && f(t.movementX) === "number" && f(t.movementY) === "number") { 387 | if (Nu.length < 10) { 388 | Nu.push(+t.movementX.toFixed(2) + "," + +t.movementY.toFixed(2) + "," + ((e || +new Date()) - (Ao || 0))); 389 | } 390 | if (Vu.length < 50) { 391 | Vu.push(Wu(t)); 392 | } 393 | } 394 | u(n, "PX11393", Nu.join("|")); 395 | ``` 396 | 397 | ### PX11405 398 | n / a 399 | 400 | ### PX11427 401 | ```javascript 402 | function No(t) { 403 | try { 404 | var e = Element.prototype.getBoundingClientRect.call(t); 405 | return { 406 | left: e.left, 407 | top: e.top 408 | }; 409 | } catch (t) { 410 | return { 411 | left: -1, 412 | top: -1 413 | }; 414 | } 415 | } 416 | n.PX11427 = f.top; 417 | ``` 418 | 419 | ### PX11429 420 | ```javascript 421 | function _c(t, e, n) { 422 | var r = t[e]; 423 | if (r) { 424 | t[e] = function () { 425 | var e = f(Array.from) === "function" ? Array.from(arguments) : Array.prototype.slice.call(arguments); 426 | try { 427 | Oc(n, u({}, "PX11976", e)); 428 | } catch (t) {} 429 | return r.apply(this, e); 430 | }; 431 | } 432 | } 433 | _c(document, "getElementsByTagName", "PX11429"); 434 | ``` 435 | 436 | ### PX11433 437 | ```javascript 438 | (function (t, e) { 439 | if (t.type === "mousemove" && f(t.movementX) === "number" && f(t.movementY) === "number") { 440 | if (Nu.length < 10) { 441 | Nu.push(+t.movementX.toFixed(2) + "," + +t.movementY.toFixed(2) + "," + ((e || +new Date()) - (Ao || 0))); 442 | } 443 | if (Vu.length < 50) { 444 | Vu.push(Wu(t)); 445 | } 446 | } else if (t.type === "touchmove") { 447 | var n = $u(t); 448 | if (n && f(n.screenX) === "number" && f(n.screenY) === "number") { 449 | if (Cu.length < 10) { 450 | var r = f(Eu.previousTouchmove.screenX) === "number" ? n.screenX - Eu.previousTouchmove.screenX : 0; 451 | var a = f(Eu.previousTouchmove.screenY) === "number" ? n.screenY - Eu.previousTouchmove.screenY : 0; 452 | Eu.previousTouchmove.screenX = n.screenX; 453 | Eu.previousTouchmove.screenY = n.screenY; 454 | Cu.push(+r.toFixed(2) + "," + +a.toFixed(2) + "," + ((e || +new Date()) - (Ao || 0))); 455 | } 456 | if (_u.length < 50) { 457 | _u.push(Wu(t)); 458 | } 459 | } 460 | } 461 | })(t, n); 462 | u(n, "PX11433", _u.length > 0 ? _t(_u) : undefined); 463 | ``` 464 | 465 | ### PX11448 466 | ```javascript 467 | { 468 | name: "PX11448", 469 | func: function () { 470 | return !!window.sessionStorage; 471 | }, 472 | defValue: false 473 | } 474 | ``` 475 | 476 | ### PX11450 477 | ```javascript 478 | function Oc(t, e) { 479 | var n = arguments.length > 2 && undefined !== arguments[2] && arguments[2]; 480 | if (Ec < 200) { 481 | var a; 482 | var o = Ct(Kn()); 483 | var i = o[o.length - 1] || {}; 484 | var f = i[0] || ""; 485 | var s = i[1] || ""; 486 | if (!n && -1 !== f.indexOf(Fa)) { 487 | return; 488 | } 489 | Ec++; 490 | u(a = {}, "PX12343", t); 491 | u(a, "PX12240", Wt(bc, s)); 492 | u(a, "PX11944", Wt(Dc, f)); 493 | wc.push(ct(a, e)); 494 | } 495 | } 496 | HTMLFormElement.prototype.submit = function () { 497 | var e = f(Array.from) === "function" ? Array.from(arguments) : Array.prototype.slice.call(arguments); 498 | try { 499 | Oc("PX11450", e); 500 | } catch (t) {} 501 | return r.apply(this, e); 502 | }; 503 | ``` 504 | 505 | ### PX11452 506 | ```javascript 507 | function Oh(t, e) { 508 | var o = ""; 509 | for (var c = 0; c < e.length; c++) { 510 | try { 511 | var i = e[c]; 512 | o += "" + t.hasOwnProperty(i); 513 | } catch (t) { 514 | o += t; 515 | } 516 | } 517 | return It(o); 518 | } 519 | var mo = ["closed", "devicePixelRatio", "getSelection", "locationbar", "scrollbars", "crypto", "caches", "speechSynthesis", "menubar", "personalbar", "toolbar", "Dump", "VRDispaly", "VRDisplayCapabilities", "VRDisplayEvent", "VREyeParameters", "VRFieldOfView", "VRFrameData", "VRPose", "VRStageParameters", "mozInnerScreenX", "mozInnerScreenY", "mozRTCIceCandidate", "mozRTCPeerConnection", "mozRTCSessionDescription", "webkitMediaStream", "webkitRTCPeerConnection", "webkitSpeechGrammar", "webkitSpeechGrammarList", "webkitSpeechRecognition", "webkitSpeechRecognitionError", "webkitSpeechRecognitionEvent", "webkitURL", "scheduler", "getDefaultComputedStyle", "Yandex", "yandexAPI", "Chrome", "Opera", "onrendersubtreeactivation", "scheduler", "onactivateinvisible", "onoverscroll", "onscrollend", "ondevicemotion", "ondeviceorientation", "onabsolutedeviceorientation", "ondeviceproximity", "onuserproximity", "ondevicelight", "onvrdisplayconnect", "onvrdisplaydisconnect", "onvrdisplayactivate", "onvrdisplaydeactivate", "onvrdisplaypresentchange", "ondragexit", "onloadend", "onshow", "onelementpainted", "onmozfullscreenchange", "Onmozfullscreenerror", "Onabort", "Onafterprint", "Onanimationend", "Onanimationiteration", "Onanimationstart", "Onappinstalled", "Onauxclick", "onbeforeinstallprompt", "onbeforeprint", "onbeforeunload", "onbeforexrselect", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontextmenu", "oncuechange", "ondblclick", "ondevicemotion", "ondeviceorientation", "ondeviceorientationabsolute", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onformdata", "ongotpointercapture", "onhashchange", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onlanguagechange", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onlostpointercapture", "onmessage", "onmessageerror", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmousewheel", "onoffline", "ononline", "onpagehide", "onpageshow", "onpause", "onplay", "onplaying", "onpointercancel", "onpointerdown", "onpointerenter", "onpointerleave", "onpointermove", "onpointerout", "onpointerover", "onpointerrawupdate", "onpointerup", "onpopstate", "onprogress", "onratechange", "onrejectionhandled", "onreset", "onresize", "onscroll", "onsearch", "onseeked", "onseeking", "onselect", "onselectionchange", "onselectstart", "onstalled", "onstorage", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "ontransitioncancel", "ontransitionend", "ontransitionrun", "ontransitionstart", "onunhandledrejection", "onunload", "onvolumechange", "onwaiting", "onwebkitanimationend", "onwebkitanimationiteration", "onwebkitanimationstart", "onwebkittransitionend", "onwheel", "Math"]; 520 | t.PX11452 = Oh(window, mo); 521 | ``` 522 | 523 | ### PX11454 524 | ```javascript 525 | function To() { 526 | var t = function () { 527 | var t = null; 528 | if (undefined !== document.hidden) { 529 | t = ""; 530 | } else { 531 | var e = ["webkit", "moz", "ms", "o"]; 532 | for (var n = 0; n < e.length; n++) { 533 | if (undefined !== document[e[n] + "Hidden"]) { 534 | t = e[n]; 535 | break; 536 | } 537 | } 538 | } 539 | return t; 540 | }(); 541 | return document[("" === t ? "v" : "V") + "isibilityState"]; 542 | } 543 | u(n, "PX11454", To()); 544 | ``` 545 | 546 | ### PX11455 547 | ```javascript 548 | r.PX11455 = n.unmaskedRenderer; 549 | ``` 550 | 551 | ### PX11463 552 | n / a 553 | 554 | ### PX11474 555 | ```javascript 556 | setTimeout(function () { 557 | var n = "no_fp"; 558 | try { 559 | var r = lh(650, 12); 560 | if (r) { 561 | var a = sh(r); 562 | n = "PX11982"; 563 | if (a) { 564 | a.font = "8px sans-serif"; 565 | var o = 1; 566 | for (var c = 128512; c < 128591; c++) { 567 | a.fillText(fo("0x" + c.toString(16)), 8 * o, 8); 568 | o++; 569 | } 570 | n = undefined ? undefined ? At(undefined, a.canvas.toDataURL()) : Et(At(undefined, a.canvas.toDataURL())) : undefined ? Rt(a.canvas.toDataURL()) : Et(Rt(a.canvas.toDataURL())); 571 | } 572 | } else { 573 | n = "PX12423"; 574 | } 575 | } catch (e) { 576 | n = "PX11474"; 577 | } 578 | e(u({}, "PX11927", n)); 579 | }, 1); 580 | ``` 581 | 582 | ### PX11477 583 | ```javascript 584 | try { 585 | var r; 586 | var a = 0; 587 | if (f(t.getChannelData) === "function") { 588 | for (var o = 4500; o < 5e3; o++) { 589 | var i = t.getChannelData(0); 590 | if (i) { 591 | a += Math.abs(i[o]); 592 | } 593 | } 594 | } 595 | var s = a.toString(); 596 | var h = s && (undefined ? undefined ? At(undefined, s) : Et(At(undefined, s)) : undefined ? Rt(s) : Et(Rt(s))); 597 | u(r = {}, "PX11477", s); 598 | u(r, "PX12109", h); 599 | e(r); 600 | } catch (t) { 601 | var l; 602 | u(l = {}, "PX11477", "no_fp"); 603 | u(l, "PX12109", "no_fp"); 604 | e(l); 605 | } 606 | ``` 607 | 608 | ### PX11488 609 | n / a 610 | 611 | ### PX11510 612 | ```javascript 613 | Rc = true; 614 | xc(); 615 | u(e = {}, "PX11949", wc); 616 | u(e, "PX12436", bc); 617 | u(e, "PX645", t); 618 | u(e, "PX11585", Dc); 619 | u(e, "PX12312", wc.length); 620 | u(e, "PX11803", kc); 621 | u(e, "PX12072", bo(Uc)); 622 | u(e, "PX12323", Tc); 623 | if (t) { 624 | var a = Ct(Kn()); 625 | var o = a[a.length - 1] || {}; 626 | e.PX12240 = Wt(bc, o[1]); 627 | e.PX11944 = Wt(Dc, o[0]); 628 | } 629 | lc("PX11510", e); 630 | ``` 631 | 632 | ### PX11528 633 | ```javascript 634 | Lt(t, "PX11528", function () { 635 | return Tl(Object.getOwnPropertyDescriptor(HTMLDocument.prototype, "cookie").get); 636 | }, ""); 637 | ``` 638 | 639 | ### PX11534 640 | ```javascript 641 | r.PX11534 = n.shadingLangulageVersion; 642 | ``` 643 | 644 | ### PX11536 645 | ```javascript 646 | r.PX11536 = n.extensions; 647 | ``` 648 | 649 | ### PX11538 650 | ```javascript 651 | Lt(t, "PX11538", function () { 652 | return history && f(history.length) === "number" && history.length || -1; 653 | }, -1); 654 | ``` 655 | 656 | ### PX11539 657 | ```javascript 658 | Lt(t, "PX11539", function () { 659 | return Tl(window.console.log); 660 | }, ""); 661 | ``` 662 | 663 | ### PX11540 664 | ```javascript 665 | t.PX11540 = window.matchMedia && window.matchMedia("(pointer:fine)").matches; 666 | ``` 667 | 668 | ### PX11544 669 | n / a 670 | 671 | ### PX11547 672 | ```javascript 673 | function Hd(t) { 674 | var n = function (t) { 675 | try { 676 | if (true || f(null) !== "function" || Yn && Yn.hasOwnProperty(Fn[ie])) { 677 | return; 678 | } 679 | return null(t, lf, function (t) { 680 | return pn(t, nn[pe]); 681 | }, Tt); 682 | } catch (t) {} 683 | }(t); 684 | t.PX12501 = ro(); 685 | if (n && !function (t) { 686 | if (!(f(t) === "object" && null !== t)) { 687 | return true; 688 | } 689 | for (var e in t) if (t.hasOwnProperty(e) && undefined !== t[e]) { 690 | return false; 691 | } 692 | return true; 693 | }(n)) { 694 | t = ct(t, n); 695 | } 696 | $l("PX11547", t); 697 | } 698 | ``` 699 | 700 | ### PX11551 701 | ```javascript 702 | { 703 | name: "PX11551", 704 | func: function () { 705 | return gd(window, "WebGLContextEvent"); 706 | } 707 | } 708 | ``` 709 | 710 | ### PX11555 711 | ```javascript 712 | var jt = function () { 713 | try { 714 | return window.performance && window.performance.memory; 715 | } catch (t) {} 716 | }(); 717 | if (jt) { 718 | t.PX11529 = jt.usedJSHeapSize; 719 | t.PX11555 = jt.jsHeapSizeLimit; 720 | t.PX11833 = jt.totalJSHeapSize; 721 | } 722 | ``` 723 | 724 | ### PX11564 725 | ```javascript 726 | t.PX11564 = window.orientation; 727 | ``` 728 | 729 | ### PX11567 730 | ```javascript 731 | r.PX11567 = n.webglRenderer; 732 | ``` 733 | 734 | ### PX11583 735 | ```javascript 736 | t.PX11583 = navigator.language; 737 | ``` 738 | 739 | ### PX11585 740 | ```javascript 741 | u(e, "PX11585", Dc); 742 | ``` 743 | 744 | ### PX11589 745 | ```javascript 746 | u(e = {}, "PX11589", r); 747 | ``` 748 | 749 | ### PX11590 750 | ```javascript 751 | function lf(t, e) { 752 | e.PX11902 = af++; 753 | e.PX11560 = Bo() || +new Date(); 754 | if (ff(t, e)) { 755 | cf.push({ 756 | t: t, 757 | d: e, 758 | ts: new Date().getTime() 759 | }); 760 | if (t === "PX11782") { 761 | Yu("PX11994"); 762 | rf.trigger("PX11782"); 763 | } 764 | } else { 765 | of.push({ 766 | t: t, 767 | d: e, 768 | ts: new Date().getTime() 769 | }); 770 | } 771 | } 772 | 773 | lf("PX11590", a); 774 | ``` 775 | 776 | ### PX11595 777 | ```javascript 778 | n.PX11892 = function (t) { 779 | var n = []; 780 | try { 781 | if (!t.clipboardData || !t.clipboardData.items) { 782 | return null; 783 | } 784 | for (var r = 0; r < t.clipboardData.items.length; r++) { 785 | var a; 786 | var o = t.clipboardData.items[r]; 787 | u(a = {}, "PX11819", o.kind); 788 | u(a, "PX11595", o.type); 789 | n.push(a); 790 | } 791 | } catch (t) {} 792 | return n; 793 | }(t); 794 | ``` 795 | 796 | ### PX11606 797 | ```javascript 798 | if (!navigator.permissions) { 799 | return void (Kr = "PX11606"); 800 | } 801 | ``` 802 | 803 | ### PX11607 804 | ```javascript 805 | function Tv(t) { 806 | var e; 807 | var r = +new Date(); 808 | u(e = {}, "PX11589", r); 809 | u(e, "PX11868", r - Ca); 810 | !function (t) { 811 | if (Yn && Yn.hasOwnProperty(Fn[de])) { 812 | t.PX12611 = fv; 813 | t.PX12612 = sv; 814 | } 815 | }(e); 816 | if (window.performance && window.performance.timing) { 817 | e.PX11742 = window.performance.timing.domComplete; 818 | e.PX12244 = window.performance.timing.loadEventEnd; 819 | } 820 | var o = { 821 | captchaMaxAge: bi, 822 | captchaMaxStale: wi 823 | }; 824 | var i = o.captchaMaxStale; 825 | var f = o.captchaMaxAge; 826 | if (null !== i) { 827 | e.PX12616 = f; 828 | } 829 | if (null !== f) { 830 | e.PX12617 = i; 831 | } 832 | var s = t[_e](); 833 | var h = s.clientXhrErrors; 834 | var l = s.clientHttpErrorStatuses; 835 | var y = s.clientRoutesLength; 836 | var v = s.fallbackStartIndex; 837 | var p = s.clientFailures; 838 | var m = s.sendActivitiesCount; 839 | var g = s.captchaFailures; 840 | var B = s.PXHCBootstrapTries; 841 | var H = s.PXHCFakeVerificationResponse; 842 | e.PX11979 = h; 843 | e.PX11511 = l; 844 | e.PX11403 = y; 845 | e.PX11675 = v; 846 | if (t[Ve] >= 1) { 847 | e.PX12445 = t[Ve]; 848 | } 849 | e.PX11346 = window.performance && f(window.performance.now) === "function"; 850 | e.PX11731 = p; 851 | e.PX11704 = m; 852 | if (g > 1) { 853 | e.PX11905 = g; 854 | } 855 | if (B > 1) { 856 | e.PX11661 = B; 857 | } 858 | if (H) { 859 | e.PX11442 = true; 860 | } 861 | if (Qi === "89d5fa8d-180f-44a1-8497-06b5de2302d4") { 862 | e.PX11470 = true; 863 | } 864 | e.PX11363 = Bf; 865 | if (Oa) { 866 | var D = cr(["/init.js", "/main.min.js"], "script"); 867 | var b = D.resourceSize; 868 | var w = D.resourcePath; 869 | e.PX12122 = b; 870 | e.PX11501 = w; 871 | } 872 | var k = window._pxAction; 873 | if (k && "b" !== k) { 874 | e.PX12057 = k; 875 | e.PX645 = Yi; 876 | e.PX11416 = Ci; 877 | e.PX1070 = Pi; 878 | e.PX1076 = Vi; 879 | } 880 | return e; 881 | } 882 | lf("PX11607", Tv(t)); 883 | ``` 884 | 885 | ### PX11621 886 | ```javascript 887 | t.PX11621 = navigator.deviceMemory; 888 | ``` 889 | 890 | ### PX11627 891 | ```javascript 892 | function _c(t, e, n) { 893 | var r = t[e]; 894 | if (r) { 895 | t[e] = function () { 896 | var e = f(Array.from) === "function" ? Array.from(arguments) : Array.prototype.slice.call(arguments); 897 | try { 898 | Oc(n, u({}, "PX11976", e)); 899 | } catch (t) {} 900 | return r.apply(this, e); 901 | }; 902 | } 903 | } 904 | _c(document, "getElementsByClassName", "PX11627"); 905 | ``` 906 | 907 | ### PX11631 908 | ```javascript 909 | function Xu(t, e) { 910 | var n; 911 | if (!t) { 912 | return null; 913 | } 914 | var a; 915 | u(n = {}, "PX12343", "DOMMouseScroll" === (a = t.type) ? Ro : a); 916 | u(n, "PX12270", _o(t)); 917 | if (e) { 918 | var i = Io(t); 919 | if (i) { 920 | var f = No(i); 921 | n.PX11427 = f.top; 922 | n.PX12208 = f.left; 923 | n.PX11652 = function (t) { 924 | var e = Zo(t, true); 925 | return e ? function (t) { 926 | if (!Hu[t]) { 927 | Hu[t] = Du++; 928 | } 929 | return Du; 930 | }(e) : 0; 931 | }(i); 932 | n.PX11824 = i.offsetWidth; 933 | n.PX11631 = i.offsetHeight; 934 | n.PX12165 = function (t) { 935 | return "submit" === t.type ? t.type : t.nodeName ? t.nodeName.toLowerCase() : ""; 936 | }(i); 937 | } else { 938 | n.PX11652 = 0; 939 | } 940 | } 941 | return n; 942 | } 943 | ``` 944 | 945 | ### PX11634 946 | ```javascript 947 | var qc = ["webdriver", "cd_frame_id_"]; 948 | function pi(t, e) { 949 | var n = -1; 950 | for (var r = 0; r < e.length; r++) { 951 | var a = e[r]; 952 | if (Element.prototype.getAttribute.call(t, a)) { 953 | n = r; 954 | break; 955 | } 956 | } 957 | return n; 958 | } 959 | 960 | function di(t) { 961 | var n = pi(document.documentElement, qc); 962 | if (-1 !== n) { 963 | t("PX11634", n); 964 | } 965 | } 966 | ``` 967 | 968 | ### PX11645 969 | ```javascript 970 | var yu = location && location.href || ""; 971 | r.PX11645 = yu; 972 | ``` 973 | 974 | ### PX11648 975 | ```javascript 976 | var n = { 977 | t: "PX12167", 978 | d: u({}, "PX11648", true) 979 | }; 980 | ``` 981 | 982 | ### PX11650 983 | ```javascript 984 | function Lt(t, e, n, r) { 985 | var a; 986 | try { 987 | a = n(); 988 | } catch (t) {} 989 | if (f(a) === "undefined") { 990 | a = f(r) === "undefined" ? "missing" : r; 991 | } 992 | t[e] = a; 993 | return a; 994 | } 995 | 996 | Lt(t, "PX11650", function () { 997 | return f(window.atob) === "function" && /\{\s*\[native code\]\s*\}/.test("" + window.atob); 998 | }, false); 999 | ``` 1000 | 1001 | ### PX11652 1002 | ```javascript 1003 | 1004 | if (!(xu[o] !== "mousemove" && xu[o] !== "touchmove")) { 1005 | e(document.body, xu[o], Lu); 1006 | } 1007 | 1008 | function Lu(t) { 1009 | try { 1010 | var n = +new Date(); 1011 | var r = n - Au; 1012 | hu = t.type; 1013 | (function (t, e) { 1014 | if (t.type === "mousemove" && f(t.movementX) === "number" && f(t.movementY) === "number") { 1015 | if (Nu.length < 10) { 1016 | Nu.push(+t.movementX.toFixed(2) + "," + +t.movementY.toFixed(2) + "," + ((e || +new Date()) - (Ao || 0))); 1017 | } 1018 | if (Vu.length < 50) { 1019 | Vu.push(Wu(t)); 1020 | } 1021 | } else if (t.type === "touchmove") { 1022 | var n = $u(t); 1023 | if (n && f(n.screenX) === "number" && f(n.screenY) === "number") { 1024 | if (Cu.length < 10) { 1025 | var r = f(Eu.previousTouchmove.screenX) === "number" ? n.screenX - Eu.previousTouchmove.screenX : 0; 1026 | var a = f(Eu.previousTouchmove.screenY) === "number" ? n.screenY - Eu.previousTouchmove.screenY : 0; 1027 | Eu.previousTouchmove.screenX = n.screenX; 1028 | Eu.previousTouchmove.screenY = n.screenY; 1029 | Cu.push(+r.toFixed(2) + "," + +a.toFixed(2) + "," + ((e || +new Date()) - (Ao || 0))); 1030 | } 1031 | if (_u.length < 50) { 1032 | _u.push(Wu(t)); 1033 | } 1034 | } 1035 | } 1036 | })(t, n); 1037 | if (r > 50) { 1038 | var a; 1039 | Au = n; 1040 | var o = Gu(t); 1041 | u(a = {}, "PX12108", o.pageX); 1042 | u(a, "PX12414", o.pageY); 1043 | u(a, "PX11699", (n || +new Date()) - (Ao || 0)); 1044 | if (null === Eu[hu]) { 1045 | var s = Xu(t, false); 1046 | s.coordination_start = [a]; 1047 | s.coordination_end = []; 1048 | Eu[hu] = s; 1049 | } else { 1050 | var h = Eu[hu].coordination_start; 1051 | if (h.length >= Ru[hu] / 2 && (h = Eu[hu].coordination_end).length >= Ru[hu] / 2) { 1052 | h.shift(); 1053 | } 1054 | h.push(a); 1055 | } 1056 | } 1057 | } catch (t) {} 1058 | } 1059 | 1060 | function Ed(t) { 1061 | var e; 1062 | if (wd && t) { 1063 | var r = function (t) { 1064 | var e = {}; 1065 | if (!t) { 1066 | return e; 1067 | } 1068 | var n = t.touches || t.changedTouches; 1069 | Fo(n ? t = n[0] : t, e); 1070 | return e; 1071 | }(t); 1072 | u(e = {}, "PX12108", r.x); 1073 | u(e, "PX12414", r.y); 1074 | u(e, "PX11984", Kn()); 1075 | u(e, "PX12303", t.type || ""); 1076 | u(e, "PX11699", (undefined || +new Date()) - (Ao || 0)); 1077 | u(e, "PX11987", _o(t)); 1078 | u(e, "PX12461", Xo(t.target)); 1079 | u(e, "PX11652", Zo(Io(t))); 1080 | lf("PX12123", e); 1081 | Ti(true); 1082 | wd = false; 1083 | } 1084 | } 1085 | ``` 1086 | 1087 | ### PX11659 1088 | ```javascript 1089 | oo1o1o: function (t, e, n) { 1090 | var i = {}; 1091 | try { 1092 | i.PX11762 = t; 1093 | i.PX12076 = e; 1094 | i.PX11953 = eval(n); 1095 | } catch (t) { 1096 | i.PX12056 = t + ""; 1097 | } 1098 | lf("PX11659", i); 1099 | } 1100 | ``` 1101 | 1102 | ### PX11663 1103 | ```javascript 1104 | return Tl(document.documentElement.dispatchEvent); 1105 | ``` 1106 | 1107 | ### PX11673 1108 | ```javascript 1109 | if (a) { 1110 | var o = function (t) { 1111 | var e; 1112 | var r = Kn(); 1113 | var a = Ct(r); 1114 | if (a.length > 0) { 1115 | var o; 1116 | var i = a[a.length - 1]; 1117 | u(o = {}, "PX11984", r); 1118 | u(o, "PX11652", t); 1119 | u(o, "PX12240", i[1] || ""); 1120 | u(o, "PX11944", i[0] || ""); 1121 | e = o; 1122 | } else { 1123 | var f; 1124 | u(f = {}, "PX11984", r); 1125 | u(f, "PX11652", t); 1126 | e = f; 1127 | } 1128 | return e; 1129 | }(a); 1130 | var i = Xo(n); 1131 | if (f(i) !== "undefined") { 1132 | o.PX12461 = i; 1133 | } 1134 | lf("PX11673", o); 1135 | if (5 <= ++ny) { 1136 | ay = false; 1137 | iy(false); 1138 | } 1139 | } 1140 | ``` 1141 | 1142 | ### PX11676 1143 | ```javascript 1144 | _c(document, "querySelectorAll", "PX11676"); 1145 | ``` 1146 | 1147 | ### PX11678 1148 | ```javascript 1149 | t.PX11678 = function () { 1150 | if (window.PointerEvent && "maxTouchPoints" in navigator) { 1151 | if (navigator.maxTouchPoints > 0) { 1152 | return true; 1153 | } 1154 | } else { 1155 | if (window.matchMedia && window.matchMedia("(any-hover: none), (any-pointer: coarse)").matches) { 1156 | return true; 1157 | } 1158 | if (window.TouchEvent || "ontouchstart" in window) { 1159 | return true; 1160 | } 1161 | } 1162 | return false; 1163 | }(); 1164 | ``` 1165 | 1166 | ### PX11679 1167 | ```javascript 1168 | u(n, "PX11679", document.body && document.body.offsetWidth + "x" + document.body.offsetHeight || ""); 1169 | ``` 1170 | 1171 | ### PX11681 1172 | ```javascript 1173 | t.PX11681 = navigator.languages; 1174 | ``` 1175 | 1176 | ### PX11685 1177 | ```javascript 1178 | t.PX11681 = navigator.languages; 1179 | ``` 1180 | 1181 | ### PX11698 1182 | ```javascript 1183 | (function (t, e) { 1184 | if (t.type === "mousemove" && f(t.movementX) === "number" && f(t.movementY) === "number") { 1185 | if (Nu.length < 10) { 1186 | Nu.push(+t.movementX.toFixed(2) + "," + +t.movementY.toFixed(2) + "," + ((e || +new Date()) - (Ao || 0))); 1187 | } 1188 | if (Vu.length < 50) { 1189 | Vu.push(Wu(t)); 1190 | } 1191 | } else if (t.type === "touchmove") { 1192 | var n = $u(t); 1193 | if (n && f(n.screenX) === "number" && f(n.screenY) === "number") { 1194 | if (Cu.length < 10) { 1195 | var r = f(Eu.previousTouchmove.screenX) === "number" ? n.screenX - Eu.previousTouchmove.screenX : 0; 1196 | var a = f(Eu.previousTouchmove.screenY) === "number" ? n.screenY - Eu.previousTouchmove.screenY : 0; 1197 | Eu.previousTouchmove.screenX = n.screenX; 1198 | Eu.previousTouchmove.screenY = n.screenY; 1199 | Cu.push(+r.toFixed(2) + "," + +a.toFixed(2) + "," + ((e || +new Date()) - (Ao || 0))); 1200 | } 1201 | if (_u.length < 50) { 1202 | _u.push(Wu(t)); 1203 | } 1204 | } 1205 | } 1206 | })(t, n); 1207 | 1208 | function _t(t) { 1209 | var e = []; 1210 | for (var n = 0; n < t.length; n += 2) { 1211 | e.push(t[n]); 1212 | } 1213 | return e; 1214 | } 1215 | 1216 | u(n, "PX11698", Vu.length > 0 ? _t(Vu) : undefined); 1217 | ``` 1218 | 1219 | ### PX11699 1220 | ```javascript 1221 | u(a, "PX11699", t[r].PX11699 - t[r - 1].PX11699); 1222 | ``` 1223 | 1224 | ### PX11702 1225 | ```javascript 1226 | var a = function (t) { 1227 | var e; 1228 | var r = Kn(); 1229 | var a = Ct(r); 1230 | if (a.length > 0) { 1231 | var o; 1232 | var i = a[a.length - 1]; 1233 | u(o = {}, "PX11984", r); 1234 | u(o, "PX11652", t); 1235 | u(o, "PX12240", i[1] || ""); 1236 | u(o, "PX11944", i[0] || ""); 1237 | e = o; 1238 | } else { 1239 | var f; 1240 | u(f = {}, "PX11984", r); 1241 | u(f, "PX11652", t); 1242 | e = f; 1243 | } 1244 | return e; 1245 | }(r); 1246 | var o = Xo(n); 1247 | if (f(o) !== "undefined") { 1248 | a.PX12461 = o; 1249 | } 1250 | lf("PX11702", a); 1251 | if (5 <= ++jd) { 1252 | zd = false; 1253 | qd(false); 1254 | } 1255 | ``` 1256 | 1257 | ### PX11719 1258 | ```javascript 1259 | u(n = {}, "PX11719", true); 1260 | ``` 1261 | 1262 | ### PX11745 1263 | ```javascript 1264 | case function () { 1265 | var t = window._pxAction; 1266 | return t === "pxhc" || "pxc" === t; 1267 | }(): 1268 | t = "PX11745"; 1269 | break; 1270 | ``` 1271 | 1272 | ### PX11747 1273 | ```javascript 1274 | u(n, "PX11747", Ou.length > 0 ? Ou : undefined); 1275 | ``` 1276 | 1277 | ### PX11754 1278 | ```javascript 1279 | t.PX11754 = navigator.userAgent; 1280 | ``` 1281 | 1282 | ### PX11771 1283 | ```javascript 1284 | var th = "".concat(yt(), "//").concat(qs, ".").concat("px-client.net").concat("/b/g"); 1285 | var eh = false; 1286 | function nh(t) { 1287 | if (!eh && window._pxAction && 0 === location.protocol.indexOf("http")) { 1288 | try { 1289 | var n = zs([{ 1290 | t: "PX11940", 1291 | d: {} 1292 | }], t).join("&"); 1293 | var r = "".concat(th, "?").concat(n); 1294 | var a = new XMLHttpRequest(); 1295 | a.onreadystatechange = function () { 1296 | if (4 === a.readyState && 0 === a.status) { 1297 | lf("PX11796", u({}, "PX11771", th)); 1298 | } 1299 | }; 1300 | a.open("get", r); 1301 | a.send(); 1302 | eh = true; 1303 | } catch (t) {} 1304 | } 1305 | } 1306 | ``` 1307 | 1308 | ### PX11781 1309 | ```javascript 1310 | var N = screen && screen.width || -1; 1311 | var C = screen && screen.height || -1; 1312 | var V = screen && screen.availWidth || -1; 1313 | var _ = screen && screen.availHeight || -1; 1314 | t.PX11843 = N; 1315 | t.PX11781 = C; 1316 | t.PX12121 = V; 1317 | t.PX12128 = _; 1318 | t.PX12387 = N + "X" + C; 1319 | t.PX12003 = screen && +screen.pixelDepth || 0; 1320 | t.PX11380 = screen && +screen.colorDepth || 0; 1321 | ``` 1322 | 1323 | ### PX11782 1324 | ```javascript 1325 | rf.subscribe("PX11782", Gy[Pe]); 1326 | ``` 1327 | 1328 | ### PX11796 1329 | ```javascript 1330 | lf("PX11796", u({}, "PX11771", th)); 1331 | ``` 1332 | 1333 | ### PX11802 1334 | ```javascript 1335 | try { 1336 | var a; 1337 | u(a = {}, "PX12151", e); 1338 | u(a, "PX11921", Zo(this, true)); 1339 | Oc("PX11802", a); 1340 | } catch (t) {} 1341 | if (f(n.set) === "function") { 1342 | return n.set.call(this, t); 1343 | } 1344 | ``` 1345 | 1346 | ### PX11803 1347 | ```javascript 1348 | function xc() { 1349 | var t; 1350 | if (null !== Ac && kc.length < 40) { 1351 | if ((t = "-" === Ac[fn][0] || "-" === Ac[sn][0] ? "0" : Ac[hn] + " " + Ac[ln]) !== kc[kc.length - 1]) { 1352 | kc.push(t); 1353 | Tc.push(bo(Uc)); 1354 | } 1355 | } 1356 | Ac = null; 1357 | } 1358 | 1359 | u(e, "PX11803", kc); 1360 | ``` 1361 | 1362 | ### PX11805 1363 | ```javascript 1364 | try { 1365 | if (!navigator.permissions) { 1366 | return void (Kr = "PX11606"); 1367 | } 1368 | if ("denied" === Notification.permission) { 1369 | navigator.permissions.query({ 1370 | name: "notifications" 1371 | }).then(function (e) { 1372 | if ("prompt" === e.state) { 1373 | Kr = "PX11805"; 1374 | } 1375 | }); 1376 | } 1377 | } catch (t) {} 1378 | ``` 1379 | 1380 | ### PX11807 1381 | ```javascript 1382 | var my = function () { 1383 | var t = arguments.length > 0 && undefined !== arguments[0] ? arguments[0] : {}; 1384 | var e = t.regexList; 1385 | var n = t.urlContainsList; 1386 | var r = t.entriesFilter; 1387 | var a = undefined === r ? function () { 1388 | return true; 1389 | } : r; 1390 | if (!(f(or(window, "performance.getEntries", null)) === "function")) { 1391 | return []; 1392 | } 1393 | var o = window.performance.getEntries().filter(a); 1394 | var c = []; 1395 | for (var i = 0; i < o.length; i++) { 1396 | var u = o[i]; 1397 | if (e) { 1398 | for (var s = 0; s < e.length; s++) { 1399 | var h = e[s]; 1400 | if ("string" == typeof h) { 1401 | h = new RegExp(e[s]); 1402 | } 1403 | if (h && f(h.test) === "function" && h.test(u.name)) { 1404 | c.push(u); 1405 | } 1406 | } 1407 | } else if (n) { 1408 | for (var l = 0; l < n.length; l++) { 1409 | var d = n[l]; 1410 | if (-1 !== u.name.indexOf(d)) { 1411 | c.push(u); 1412 | } 1413 | } 1414 | } 1415 | } 1416 | return c; 1417 | }; 1418 | 1419 | if (n) { 1420 | mv("PX11807", n.duration); 1421 | } 1422 | ``` 1423 | 1424 | ### PX11811 1425 | ```javascript 1426 | u(t, "PX11811", []); 1427 | 1428 | function lh(t, e) { 1429 | var n = document.createElement("canvas"); 1430 | n.width = t || 2e3; 1431 | n.height = e || 200; 1432 | n.style.display = "inline"; 1433 | return n; 1434 | } 1435 | 1436 | var a = lh(); 1437 | if (!a) { 1438 | r.PX11811.push("PX12423"); 1439 | return e(r); 1440 | } 1441 | 1442 | var o = a.getContext("webgl") || a.getContext("experimental-webgl"); 1443 | if (!o) { 1444 | r.PX11811.push("PX11982"); 1445 | return e(r); 1446 | } 1447 | 1448 | function fh(t, e, n) { 1449 | var r; 1450 | var a; 1451 | var o; 1452 | var i; 1453 | var u = function (e) { 1454 | t.clearColor(0, 0, 0, 1); 1455 | t.enable(t.DEPTH_TEST); 1456 | t.depthFunc(t.LEQUAL); 1457 | t.clear(t.COLOR_BUFFER_BIT | t.DEPTH_BUFFER_BIT); 1458 | return "[" + e[0] + ", " + e[1] + "]"; 1459 | }; 1460 | return function () { 1461 | return new lo(function (c) { 1462 | setTimeout(function () { 1463 | try { 1464 | r = t.createBuffer(); 1465 | t.bindBuffer(t.ARRAY_BUFFER, r); 1466 | var u = new Float32Array([-.2, -.9, 0, .4, -.26, 0, 0, .732134444, 0]); 1467 | t.bufferData(t.ARRAY_BUFFER, u, t.STATIC_DRAW); 1468 | r.itemSize = 3; 1469 | r.numItems = 3; 1470 | a = t.createProgram(); 1471 | o = t.createShader(t.VERTEX_SHADER); 1472 | t.shaderSource(o, "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}"); 1473 | t.compileShader(o); 1474 | i = t.createShader(t.FRAGMENT_SHADER); 1475 | t.shaderSource(i, "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}"); 1476 | t.compileShader(i); 1477 | t.attachShader(a, o); 1478 | t.attachShader(a, i); 1479 | t.linkProgram(a); 1480 | t.useProgram(a); 1481 | a.vertexPosAttrib = t.getAttribLocation(a, "attrVertex"); 1482 | a.offsetUniform = t.getUniformLocation(a, "uniformOffset"); 1483 | t.enableVertexAttribArray(a.vertexPosArray); 1484 | t.vertexAttribPointer(a.vertexPosAttrib, r.itemSize, t.FLOAT, false, 0, 0); 1485 | t.uniform2f(a.offsetUniform, 1, 1); 1486 | t.drawArrays(t.TRIANGLE_STRIP, 0, r.numItems); 1487 | e.canvasfp = null === t.canvas ? "no_fp" : undefined ? undefined ? At(undefined, t.canvas.toDataURL()) : Et(At(undefined, t.canvas.toDataURL())) : undefined ? Rt(t.canvas.toDataURL()) : Et(Rt(t.canvas.toDataURL())); 1488 | e.extensions = t.getSupportedExtensions() || ["no_fp"]; 1489 | } catch (t) { 1490 | e.errors.push("PX11982"); 1491 | } 1492 | c(); 1493 | }, 1); 1494 | }); 1495 | }().then(function () { 1496 | return function () { 1497 | return new lo(function (r) { 1498 | setTimeout(function () { 1499 | try { 1500 | e.webglRenderer = uh(t, t.RENDERER); 1501 | e.shadingLangulageVersion = uh(t, t.SHADING_LANGUAGE_VERSION); 1502 | e.webglVendor = uh(t, t.VENDOR); 1503 | e.webGLVersion = uh(t, t.VERSION); 1504 | var a = t.getExtension("WEBGL_debug_renderer_info"); 1505 | if (a) { 1506 | e.unmaskedVendor = uh(t, a.UNMASKED_VENDOR_WEBGL); 1507 | e.unmaskedRenderer = uh(t, a.UNMASKED_RENDERER_WEBGL); 1508 | } 1509 | e.webglParameters = []; 1510 | var o = e.webglParameters; 1511 | o.push(u(uh(t, t.ALIASED_LINE_WIDTH_RANGE))); 1512 | o.push(u(uh(t, t.ALIASED_POINT_SIZE_RANGE))); 1513 | o.push(uh(t, t.ALPHA_BITS)); 1514 | o.push(t.getContextAttributes().antialias ? "yes" : "no"); 1515 | o.push(uh(t, t.BLUE_BITS)); 1516 | o.push(uh(t, t.DEPTH_BITS)); 1517 | o.push(uh(t, t.GREEN_BITS)); 1518 | o.push(function (t) { 1519 | var e; 1520 | var n = t.getExtension("EXT_texture_filter_anisotropic") || t.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || t.getExtension("MOZ_EXT_texture_filter_anisotropic"); 1521 | return n ? (0 === (e = t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)) && (e = 2), e) : null; 1522 | }(t)); 1523 | o.push(uh(t, t.MAX_COMBINED_TEXTURE_IMAGE_UNITS)); 1524 | o.push(uh(t, t.MAX_CUBE_MAP_TEXTURE_SIZE)); 1525 | o.push(uh(t, t.MAX_FRAGMENT_UNIFORM_VECTORS)); 1526 | o.push(uh(t, t.MAX_RENDERBUFFER_SIZE)); 1527 | o.push(uh(t, t.MAX_TEXTURE_IMAGE_UNITS)); 1528 | o.push(uh(t, t.MAX_TEXTURE_SIZE)); 1529 | o.push(uh(t, t.MAX_VARYING_VECTORS)); 1530 | o.push(uh(t, t.MAX_VERTEX_ATTRIBS)); 1531 | o.push(uh(t, t.MAX_VERTEX_TEXTURE_IMAGE_UNITS)); 1532 | o.push(uh(t, t.MAX_VERTEX_UNIFORM_VECTORS)); 1533 | o.push(u(uh(t, t.MAX_VIEWPORT_DIMS))); 1534 | o.push(uh(t, t.STENCIL_BITS)); 1535 | if (t.getShaderPrecisionFormat) { 1536 | var c = ["VERTEX_SHADER", "FRAGMENT_SHADER", "VERTEX_SHADER", "FRAGMENT_SHADER"]; 1537 | var i = ["HIGH_FLOAT", "MEDIUM_FLOAT", "LOW_FLOAT"]; 1538 | for (var f = 0; f < c.length; f++) { 1539 | var s = c[f]; 1540 | for (var h = 0; h < i.length; h++) { 1541 | var l = i[h]; 1542 | var d = t.getShaderPrecisionFormat(t[s], t[l]); 1543 | o.push(d.precision, d.rangeMin, d.rangeMax); 1544 | } 1545 | } 1546 | } 1547 | } catch (t) { 1548 | e.errors.push("PX11982"); 1549 | } 1550 | r(); 1551 | }, 1); 1552 | }); 1553 | }(); 1554 | }).then(function () { 1555 | return n(e); 1556 | }); 1557 | } 1558 | 1559 | fh(o, n, function (n) { 1560 | r.PX11352 = n.canvasfp; 1561 | r.PX12292 = n.webglVendor; 1562 | r.PX11811 = n.errors; 1563 | r.PX11567 = n.webglRenderer; 1564 | r.PX12032 = n.webGLVersion; 1565 | r.PX11536 = n.extensions; 1566 | r.PX12503 = undefined ? undefined ? At(undefined, n.extensions) : Et(At(undefined, n.extensions)) : undefined ? Rt(n.extensions) : Et(Rt(n.extensions)); 1567 | r.PX12149 = n.webglParameters; 1568 | r.PX12502 = undefined ? undefined ? At(undefined, n.webglParameters) : Et(At(undefined, n.webglParameters)) : undefined ? Rt(n.webglParameters) : Et(Rt(n.webglParameters)); 1569 | r.PX12352 = n.unmaskedVendor; 1570 | r.PX11455 = n.unmaskedRenderer; 1571 | r.PX11534 = n.shadingLangulageVersion; 1572 | e(r); 1573 | }); 1574 | ``` 1575 | 1576 | ### PX11813 1577 | ```javascript 1578 | 1579 | function _c(t, e, n) { 1580 | var r = t[e]; 1581 | if (r) { 1582 | t[e] = function () { 1583 | var e = f(Array.from) === "function" ? Array.from(arguments) : Array.prototype.slice.call(arguments); 1584 | try { 1585 | Oc(n, u({}, "PX11976", e)); 1586 | } catch (t) {} 1587 | return r.apply(this, e); 1588 | }; 1589 | } 1590 | } 1591 | 1592 | _c(document, "getElementsByName", "PX11813"); 1593 | ``` 1594 | 1595 | ### PX11814 1596 | ```javascript 1597 | try { 1598 | var r; 1599 | u(r = {}, "PX12151", e); 1600 | u(r, "PX11921", Zo(this, true)); 1601 | Oc("PX11814", r); 1602 | } catch (t) {} 1603 | ``` 1604 | 1605 | ### PX11819 1606 | ```javascript 1607 | n.PX11892 = function (t) { 1608 | var n = []; 1609 | try { 1610 | if (!t.clipboardData || !t.clipboardData.items) { 1611 | return null; 1612 | } 1613 | for (var r = 0; r < t.clipboardData.items.length; r++) { 1614 | var a; 1615 | var o = t.clipboardData.items[r]; 1616 | u(a = {}, "PX11819", o.kind); 1617 | u(a, "PX11595", o.type); 1618 | n.push(a); 1619 | } 1620 | } catch (t) {} 1621 | return n; 1622 | }(t); 1623 | ``` 1624 | 1625 | ### PX11824 1626 | ```javascript 1627 | function Io(t) { 1628 | if (t) { 1629 | return t.target || t.toElement || t.srcElement; 1630 | } 1631 | } 1632 | 1633 | if (e) { 1634 | var i = Io(t); 1635 | if (i) { 1636 | var f = No(i); 1637 | n.PX11427 = f.top; 1638 | n.PX12208 = f.left; 1639 | n.PX11652 = function (t) { 1640 | var e = Zo(t, true); 1641 | return e ? function (t) { 1642 | if (!Hu[t]) { 1643 | Hu[t] = Du++; 1644 | } 1645 | return Du; 1646 | }(e) : 0; 1647 | }(i); 1648 | n.PX11824 = i.offsetWidth; 1649 | n.PX11631 = i.offsetHeight; 1650 | n.PX12165 = function (t) { 1651 | return "submit" === t.type ? t.type : t.nodeName ? t.nodeName.toLowerCase() : ""; 1652 | }(i); 1653 | } else { 1654 | n.PX11652 = 0; 1655 | } 1656 | } 1657 | 1658 | ``` 1659 | 1660 | ### PX11826 1661 | n / a 1662 | 1663 | ### PX11840 1664 | ```javascript 1665 | t.PX11840 = window.Date(); 1666 | ``` 1667 | 1668 | ### PX11842 1669 | ```javascript 1670 | function dd(t) { 1671 | var e = []; 1672 | if (t) { 1673 | try { 1674 | var n = Object.getOwnPropertyNames(t); 1675 | for (var r = 0; r < n.length; r++) { 1676 | var a = n[r]; 1677 | if (("_" === a[0] || "$" === a[0] || -1 !== lt(od, a)) && a.length <= 200 && (e.push(a), e.length >= 30)) { 1678 | break; 1679 | } 1680 | } 1681 | } catch (t) {} 1682 | } 1683 | return e; 1684 | } 1685 | 1686 | { 1687 | name: "PX12427", 1688 | func: function () { 1689 | return dd(window); 1690 | } 1691 | } 1692 | ``` 1693 | 1694 | ### PX11843 1695 | ```javascript 1696 | function ml(t) { 1697 | try { 1698 | var N = screen && screen.width || -1; 1699 | var C = screen && screen.height || -1; 1700 | var V = screen && screen.availWidth || -1; 1701 | var _ = screen && screen.availHeight || -1; 1702 | t.PX11843 = N; 1703 | t.PX11781 = C; 1704 | t.PX12121 = V; 1705 | t.PX12128 = _; 1706 | t.PX12387 = N + "X" + C; 1707 | t.PX12003 = screen && +screen.pixelDepth || 0; 1708 | t.PX11380 = screen && +screen.colorDepth || 0; 1709 | } catch (t) {} 1710 | try { 1711 | t.PX11494 = window.innerWidth || -1; 1712 | t.PX12411 = window.innerHeight || -1; 1713 | t.PX12443 = window.scrollX || window.pageXOffset || 0; 1714 | t.PX12447 = window.scrollY || window.pageYOffset || 0; 1715 | t.PX11533 = !(0 === window.outerWidth && 0 === window.outerHeight); 1716 | t.PX12079 = function () { 1717 | try { 1718 | return window.hasOwnProperty("_cordovaNative") || window.hasOwnProperty("Ti") || window.hasOwnProperty("webView") || window.hasOwnProperty("Android") || document.hasOwnProperty("ondeviceready") || navigator.hasOwnProperty("standalone") || window.external && "notify" in window.external || navigator.userAgent.indexOf(" Mobile/") > 0 && -1 === navigator.userAgent.indexOf(" Safari/"); 1719 | } catch (t) { 1720 | return false; 1721 | } 1722 | }(); 1723 | } catch (t) {} 1724 | } 1725 | ``` 1726 | 1727 | ### PX11844 1728 | ```javascript 1729 | u(n, "PX11844", bu); 1730 | ``` 1731 | 1732 | ### PX11849 1733 | ```javascript 1734 | Lt(t, "PX11849", function () { 1735 | return Tl(navigator.toString); 1736 | }, ""); 1737 | ``` 1738 | 1739 | ### PX11859 1740 | ```javascript 1741 | function Yu(t) { 1742 | if (gu) { 1743 | var n; 1744 | gu = false; 1745 | if (Bu.length > 0 || Nu.length > 0 || Cu.length > 0) { 1746 | if (du) { 1747 | u(n = {}, "PX12040", Bu); 1748 | u(n, "PX12170", t); 1749 | u(n, "PX11934", yu); 1750 | u(n, "PX12160", Hu); 1751 | u(n, "PX11875", Gr()); 1752 | u(n, "PX11844", bu); 1753 | u(n, "PX12465", Hi); 1754 | u(n, "PX11393", Nu.join("|")); 1755 | u(n, "PX12621", Cu.join("|")); 1756 | u(n, "PX12470", Ao); 1757 | u(n, "PX11747", Ou.length > 0 ? Ou : undefined); 1758 | u(n, "PX11698", Vu.length > 0 ? _t(Vu) : undefined); 1759 | u(n, "PX11433", _u.length > 0 ? _t(_u) : undefined); 1760 | u(n, "PX11679", document.body && document.body.offsetWidth + "x" + document.body.offsetHeight || ""); 1761 | du("PX12419", n); 1762 | } 1763 | } 1764 | Ju(false); 1765 | } 1766 | } 1767 | Yu("PX11859"); 1768 | ``` 1769 | 1770 | ### PX11866 1771 | n / a 1772 | 1773 | ### PX11868 1774 | ```javascript 1775 | var r = +new Date(); 1776 | u(e = {}, "PX11589", r); 1777 | u(e, "PX11868", r - Ca); 1778 | ``` 1779 | 1780 | ### PX11875 1781 | ```javascript 1782 | function Gr() { 1783 | return mr || (window._pxAction ? (f(mr = window._pxUuid || Qt("uuid") || pr()) === "string" && 36 !== mr.length && (mr = mr.trim()), window._pxUuid || (t = mr, window._pxUuid = t)) : mr = pr(), mr); 1784 | var t; 1785 | } 1786 | 1787 | u(n, "PX11875", Gr()); 1788 | ``` 1789 | 1790 | ### PX11883 1791 | ```javascript 1792 | Lt(t, "PX11883", function () { 1793 | return Tl(navigator.hasOwnProperty); 1794 | }, ""); 1795 | ``` 1796 | 1797 | ### PX11891 1798 | ```javascript 1799 | (function () { 1800 | var t; 1801 | df[Ce] = 0; 1802 | Bf += 1; 1803 | var n = navigator.userAgent; 1804 | u(t = {}, "PX11913", pf); 1805 | u(t, "PX11900", mf); 1806 | u(t, "PX12159", Bf); 1807 | u(t, "PX11754", n); 1808 | u(t, "PX12256", Hf); 1809 | u(t, "PX12445", df[Ve]); 1810 | if (Gr()) { 1811 | t.PX11804 = n ? undefined ? At(n, Gr()) : Et(At(n, Gr())) : undefined ? Rt(Gr()) : Et(Rt(Gr())); 1812 | } 1813 | if (q) { 1814 | t.PX11746 = n ? undefined ? At(n, q) : Et(At(n, q)) : undefined ? Rt(q) : Et(Rt(q)); 1815 | } 1816 | var o = no(); 1817 | if (o) { 1818 | t.PX11371 = n ? undefined ? At(n, o) : Et(At(n, o)) : undefined ? Rt(o) : Et(Rt(o)); 1819 | } 1820 | lf("PX11891", t); 1821 | })(); 1822 | ``` 1823 | 1824 | ### PX11897 1825 | ```javascript 1826 | Lt(t, "PX11897", function () { 1827 | var e = st["Object.getOwnPropertyDescriptor"].call(this, Object.getPrototypeOf(navigator), "webdriver"); 1828 | if (e) { 1829 | return It("" + (e.get || "") + (e.value || "")); 1830 | } 1831 | }, ""); 1832 | ``` 1833 | 1834 | ### PX11898 1835 | ```javascript 1836 | if (Wv.getItem("PX11898", false)) { 1837 | Wv.removeItem("PX11898", false); 1838 | t.PX11898 = true; 1839 | } 1840 | ``` 1841 | 1842 | ### PX11900 1843 | ```javascript 1844 | function Tf(t, e, n, r) { 1845 | Uf(); 1846 | if ((mf = 800 * r || 12e4) < 12e4) { 1847 | mf = 12e4; 1848 | } else if (mf > 9e5) { 1849 | mf = 9e5; 1850 | } 1851 | if (Di) { 1852 | Af(); 1853 | } 1854 | } 1855 | 1856 | u(t, "PX11900", mf); 1857 | ``` 1858 | 1859 | ### PX11909 1860 | ```javascript 1861 | t("", Li, zi); 1862 | u(s, "PX11909", t); 1863 | ``` 1864 | 1865 | ### PX11910 1866 | ```javascript 1867 | var Jc = ["__driver_evaluate", "__webdriver_evaluate", "__selenium_evaluate", "__fxdriver_evaluate", "__driver_unwrapped", "__webdriver_unwrapped", "__selenium_unwrapped", "__fxdriver_unwrapped", "_Selenium_IDE_Recorder", "_selenium", "calledSelenium", "$cdc_asdjflasutopfhvcZLmcfl_", "$chrome_asyncScriptInfo", "__$webdriverAsyncExecutor", "webdriver", "__webdriverFunc", "domAutomation", "domAutomationController", "__lastWatirAlert", "__lastWatirConfirm", "__lastWatirPrompt", "__webdriver_script_fn", "_WEBDRIVER_ELEM_CACHE"]; 1868 | 1869 | function ui(t) { 1870 | var n = vi(document, Jc); 1871 | if (-1 !== n) { 1872 | t("PX11910", n); 1873 | } 1874 | } 1875 | ``` 1876 | 1877 | ### PX11913 1878 | ```javascript 1879 | 1880 | function bf(t) { 1881 | df = t; 1882 | Af(); 1883 | Va.on("risk", Tf); 1884 | zo(window, "focus", kf); 1885 | zo(window, "blur", wf); 1886 | } 1887 | 1888 | function wf() { 1889 | pf = false; 1890 | } 1891 | function kf() { 1892 | pf = true; 1893 | } 1894 | 1895 | u(t = {}, "PX11913", pf); 1896 | ``` 1897 | 1898 | ### PX11918 1899 | ```javascript 1900 | function Vo(t, e) { 1901 | if (!(So && !t || f(e) !== "function")) { 1902 | new So(function (t) { 1903 | t.forEach(function (t) { 1904 | if (t && "attributes" === t.type) { 1905 | var n = t.attributeName; 1906 | var r = n && t.target && f(t.target.getAttribute) === "function" && Element.prototype.getAttribute.call(t.target, t.attributeName); 1907 | e(t.target, n, r); 1908 | } 1909 | }); 1910 | }).observe(t, { 1911 | attributes: true 1912 | }); 1913 | } 1914 | } 1915 | 1916 | function Vc(t, e, n) { 1917 | var r; 1918 | if (e) { 1919 | u(r = {}, "PX11918", e || ""); 1920 | u(r, "PX12242", n || ""); 1921 | u(r, "PX11652", Zo(t, true)); 1922 | lc("PX11344", r); 1923 | } 1924 | } 1925 | ``` 1926 | 1927 | ### PX11921 1928 | ```javascript 1929 | function Sc() { 1930 | if (ic = document.getElementById("g-recaptcha-response")) { 1931 | var t = fc.getElementsByTagName("iframe")[0]; 1932 | if (t && /recaptcha/gi.test(t.getAttribute("src") || "")) { 1933 | uc = t; 1934 | } 1935 | return uc && ic; 1936 | } 1937 | } 1938 | 1939 | function Ic(t, e) { 1940 | if (f(Object.defineProperty) === "function" && f(Object.getOwnPropertyDescriptor) === "function" && f(Object.getPrototypeOf) === "function") { 1941 | var n = function (t, e) { 1942 | for (; null !== t;) { 1943 | var n = Object.getOwnPropertyDescriptor(t, e); 1944 | if (n) { 1945 | return n; 1946 | } 1947 | t = Object.getPrototypeOf(t); 1948 | } 1949 | return null; 1950 | }(Object.getPrototypeOf(t), e); 1951 | if (null === n) { 1952 | var r = ct({}, n, { 1953 | get: function () { 1954 | try { 1955 | var r; 1956 | u(r = {}, "PX12151", e); 1957 | u(r, "PX11921", Zo(this, true)); 1958 | Oc("PX11814", r); 1959 | } catch (t) {} 1960 | if (f(n.get) === "function") { 1961 | return n.get.call(this); 1962 | } 1963 | }, 1964 | set: function (t) { 1965 | try { 1966 | var a; 1967 | u(a = {}, "PX12151", e); 1968 | u(a, "PX11921", Zo(this, true)); 1969 | Oc("PX11802", a); 1970 | } catch (t) {} 1971 | if (f(n.set) === "function") { 1972 | return n.set.call(this, t); 1973 | } 1974 | } 1975 | }); 1976 | Object.defineProperty(t, e, r); 1977 | } 1978 | } 1979 | } 1980 | ``` 1981 | 1982 | ### PX11925 1983 | n / a 1984 | 1985 | ### PX11927 1986 | ```javascript 1987 | function dh() { 1988 | return new lo(function (e) { 1989 | setTimeout(function () { 1990 | var n = "no_fp"; 1991 | try { 1992 | var r = lh(650, 12); 1993 | if (r) { 1994 | var a = sh(r); 1995 | n = "PX11982"; 1996 | if (a) { 1997 | a.font = "8px sans-serif"; 1998 | var o = 1; 1999 | for (var c = 128512; c < 128591; c++) { 2000 | a.fillText(fo("0x" + c.toString(16)), 8 * o, 8); 2001 | o++; 2002 | } 2003 | n = undefined ? undefined ? At(undefined, a.canvas.toDataURL()) : Et(At(undefined, a.canvas.toDataURL())) : undefined ? Rt(a.canvas.toDataURL()) : Et(Rt(a.canvas.toDataURL())); 2004 | } 2005 | } else { 2006 | n = "PX12423"; 2007 | } 2008 | } catch (e) { 2009 | n = "PX11474"; 2010 | } 2011 | e(u({}, "PX11927", n)); 2012 | }, 1); 2013 | }); 2014 | } 2015 | ``` 2016 | 2017 | ### PX11933 2018 | ```javascript 2019 | function Kn() { 2020 | try { 2021 | null[0]; 2022 | } catch (t) { 2023 | return t.stack || ""; 2024 | } 2025 | } 2026 | 2027 | u(n, "PX11933", !!Kn()); 2028 | ``` 2029 | 2030 | ### PX11934 2031 | ```javascript 2032 | 2033 | var yu = location && location.href || ""; 2034 | u(n, "PX11934", yu); 2035 | ``` 2036 | 2037 | ### PX11940 2038 | ```javascript 2039 | function zs(t, e) { 2040 | var r = Gi(); 2041 | for (var a = 0; a < t.length; a++) { 2042 | var o = t[a]; 2043 | o.d.PX11379 = ft; 2044 | if (r) { 2045 | o.d.PX12307 = r; 2046 | } 2047 | o.d.PX12615 = Kf && !!Kf; 2048 | o.d.PX12620 = Kf; 2049 | if (Rs) { 2050 | o.d.PX11375 = Rs; 2051 | } 2052 | var i = window._pxAction; 2053 | if (i) { 2054 | o.d.PX11668 = i; 2055 | o.d.PX12348 = window._pxMobile; 2056 | } 2057 | } 2058 | !function (t) { 2059 | var n = t[0]; 2060 | var r = n && n.d; 2061 | if (r) { 2062 | r.PX11645 = yu; 2063 | } 2064 | }(t); 2065 | var u; 2066 | var f; 2067 | u = e[Fe]; 2068 | f = e[Xe]; 2069 | var h = function (t, e) { 2070 | var n = e ? undefined ? At(e, t) : Et(At(e, t)) : undefined ? Rt(t) : Et(Rt(t)); 2071 | try { 2072 | var r = function (t) { 2073 | var e = ""; 2074 | var n = ""; 2075 | for (var r = 0; r < t.length; r++) { 2076 | var a = t.charCodeAt(r); 2077 | if (a >= 48 && a <= 57) { 2078 | e += t[r]; 2079 | } else { 2080 | n += a % 10; 2081 | } 2082 | } 2083 | return e + n; 2084 | }(n); 2085 | var a = ""; 2086 | for (var o = 0; o < r.length; o += 2) { 2087 | a += r[o]; 2088 | } 2089 | return a; 2090 | } catch (t) {} 2091 | }(F(t), [Gr(), u, f].join(":")); 2092 | var l = { 2093 | vid: q, 2094 | tag: e[Fe], 2095 | appID: e[Me], 2096 | cu: Gr(), 2097 | cs: ha, 2098 | pc: h 2099 | }; 2100 | var d = Nf(t, l); 2101 | var y = ["payload=" + d, "appId=" + e[Me], "tag=" + e[Fe], "uuid=" + Gr(), "ft=" + e[Xe], "seq=" + Js++, "en=NTA"]; 2102 | var v = Lr; 2103 | if (v) { 2104 | y.push("xuuid=" + v); 2105 | } 2106 | if (ha) { 2107 | y.push("cs=" + ha); 2108 | } 2109 | if (h) { 2110 | y.push("pc=" + h); 2111 | } 2112 | var p = e[Le](); 2113 | var m = js(va); 2114 | if (p || m) { 2115 | y.push("sid=" + (p || Gr()) + m); 2116 | } 2117 | var g = e[We](); 2118 | if (g.length >= 0) { 2119 | y.push.apply(y, g); 2120 | } 2121 | if (q) { 2122 | y.push("vid=" + q); 2123 | } 2124 | if (_a) { 2125 | y.push("jsc=" + _a); 2126 | } 2127 | var B = Qi; 2128 | if (B) { 2129 | y.push("ci=" + B); 2130 | } 2131 | if (!(Kf && !!Kf)) { 2132 | if (!wa) { 2133 | wa = ar("_pxhd"); 2134 | } 2135 | if (wa) { 2136 | y.push("pxhd=" + wa); 2137 | } 2138 | } 2139 | if (qr) { 2140 | y.push("cts=" + qr); 2141 | } 2142 | if (!ka) { 2143 | ka = ar("_pxac"); 2144 | } 2145 | if (ka) { 2146 | y.push("pxac=" + ka); 2147 | } 2148 | return y; 2149 | } 2150 | 2151 | var n = zs([{ 2152 | t: "PX11940", 2153 | d: {} 2154 | }], t).join("&"); 2155 | ``` 2156 | 2157 | ### PX11944 2158 | ```javascript 2159 | function Kn() { 2160 | try { 2161 | null[0]; 2162 | } catch (t) { 2163 | return t.stack || ""; 2164 | } 2165 | } 2166 | 2167 | function Ct(t) { 2168 | var e = []; 2169 | if (!t) { 2170 | return e; 2171 | } 2172 | var n; 2173 | var r = t.split("\n"); 2174 | var a = null; 2175 | var u = 0; 2176 | for (var f = r.length; u < f; ++u) { 2177 | if (n = /^\s*at (.*?) ?\(?((?:file:\/\/|https?:\/\/|blob|chrome-extension|native|webpack:\/\/|eval|).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i.exec(r[u])) { 2178 | a = [n[2] && -1 !== n[2].indexOf("native") ? "" : n[2], n[1] || "?"]; 2179 | } else if (n = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i.exec(r[u])) { 2180 | a = [n[2], n[1] || "?"]; 2181 | } else { 2182 | if (!(n = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|\[native).*?)(?::(\d+))?(?::(\d+))?\s*$/i.exec(r[u]))) { 2183 | continue; 2184 | } 2185 | a = [n[3], n[1] || "?"]; 2186 | } 2187 | e.push(a); 2188 | } 2189 | return e; 2190 | } 2191 | 2192 | var o = Kn(); 2193 | var i = Ct(o); 2194 | 2195 | if (i.length > 0) { 2196 | var s = i[i.length - 1]; 2197 | e.PX12240 = s[1] || ""; 2198 | e.PX11944 = s[0] || ""; 2199 | } 2200 | ``` 2201 | 2202 | ### PX11948 2203 | ```javascript 2204 | { 2205 | name: "PX11948", 2206 | func: function () { 2207 | return window.devicePixelRatio; 2208 | }, 2209 | defValue: "" 2210 | } 2211 | ``` 2212 | 2213 | ### PX11949 2214 | ```javascript 2215 | u(e = {}, "PX11949", wc); 2216 | ``` 2217 | 2218 | ### PX11951 2219 | ```javascript 2220 | lf("PX11951", u({}, "PX12228", F(t))); 2221 | ``` 2222 | 2223 | ### PX11959 2224 | ```javascript 2225 | function It(t) { 2226 | t = "" + t; 2227 | var e = 0; 2228 | for (var n = 0; n < t.length; n++) { 2229 | e = (e << 5) - e + t.charCodeAt(n); 2230 | e |= 0; 2231 | } 2232 | return function (t) { 2233 | if ((t |= 0) < 0) { 2234 | t += 4294967296; 2235 | } 2236 | return t.toString(16); 2237 | }(e); 2238 | } 2239 | 2240 | function Tl(t) { 2241 | if (f(t) !== "undefined") { 2242 | return It(t); 2243 | } 2244 | } 2245 | 2246 | Lt(t, "PX11959", function () { 2247 | return Tl(Object.getOwnPropertyDescriptor); 2248 | }, ""); 2249 | ``` 2250 | 2251 | ### PX11976 2252 | ```javascript 2253 | function (e, n) { 2254 | if (e && e.length) { 2255 | var r = []; 2256 | for (var a = 0; a < e.length; a++) { 2257 | r.push(Zo(e[a])); 2258 | } 2259 | Oc("PX12027", u({}, "PX11976", r), true); 2260 | } 2261 | ``` 2262 | 2263 | ### PX11978 2264 | ```javascript 2265 | case window._pxAction === "c": 2266 | t = "PX11978"; 2267 | break; 2268 | ``` 2269 | 2270 | ### PX11982 2271 | ```javascript 2272 | } catch (t) { 2273 | e.errors.push("PX11982"); 2274 | } 2275 | ``` 2276 | 2277 | ### PX11984 2278 | ```javascript 2279 | function Kn() { 2280 | try { 2281 | null[0]; 2282 | } catch (t) { 2283 | return t.stack || ""; 2284 | } 2285 | } 2286 | 2287 | function Vt(t) { 2288 | var e = t.split("\n"); 2289 | return e.length > 20 ? e.slice(e.length - 20, e.length).join("\n") : t; 2290 | } 2291 | 2292 | u(n, "PX11984", Vt(Kn())); 2293 | ``` 2294 | 2295 | ### PX11986 2296 | ```javascript 2297 | { 2298 | name: "PX11986", 2299 | func: function () { 2300 | return !!window.localStorage; 2301 | }, 2302 | defValue: false 2303 | } 2304 | ``` 2305 | 2306 | ### PX11987 2307 | ```javascript 2308 | function _o(t) { 2309 | var e = "undefined"; 2310 | if (t && t.hasOwnProperty("isTrusted")) { 2311 | e = t.isTrusted && "false" !== t.isTrusted ? "true" : "false"; 2312 | } 2313 | return e; 2314 | } 2315 | 2316 | u(e, "PX11987", _o(t)); 2317 | ``` 2318 | 2319 | ### * PX11993 2320 | ```javascript 2321 | { 2322 | name: "PX11993", 2323 | func: function () { 2324 | return va; 2325 | } 2326 | } 2327 | ``` 2328 | 2329 | ### PX11994 2330 | ```javascript 2331 | function Yu(t) { 2332 | if (gu) { 2333 | var n; 2334 | gu = false; 2335 | if (Bu.length > 0 || Nu.length > 0 || Cu.length > 0) { 2336 | if (du) { 2337 | u(n = {}, "PX12040", Bu); 2338 | u(n, "PX12170", t); 2339 | u(n, "PX11934", yu); 2340 | u(n, "PX12160", Hu); 2341 | u(n, "PX11875", Gr()); 2342 | u(n, "PX11844", bu); 2343 | u(n, "PX12465", Hi); 2344 | u(n, "PX11393", Nu.join("|")); 2345 | u(n, "PX12621", Cu.join("|")); 2346 | u(n, "PX12470", Ao); 2347 | u(n, "PX11747", Ou.length > 0 ? Ou : undefined); 2348 | u(n, "PX11698", Vu.length > 0 ? _t(Vu) : undefined); 2349 | u(n, "PX11433", _u.length > 0 ? _t(_u) : undefined); 2350 | u(n, "PX11679", document.body && document.body.offsetWidth + "x" + document.body.offsetHeight || ""); 2351 | du("PX12419", n); 2352 | } 2353 | } 2354 | Ju(false); 2355 | } 2356 | } 2357 | 2358 | Yu("PX11994"); 2359 | ``` 2360 | 2361 | ### PX12002 2362 | ```javascript 2363 | Yu("PX12002"); 2364 | ``` 2365 | 2366 | ### PX12003 2367 | ```javascript 2368 | t.PX12003 = screen && +screen.pixelDepth || 0; 2369 | ``` 2370 | 2371 | ### PX12013 2372 | ```javascript 2373 | function si(t) { 2374 | try { 2375 | var n = [document.getElementsByTagName("iframe"), document.getElementsByTagName("frame")]; 2376 | for (var r = 0; r < n.length; r++) { 2377 | var a = n[r]; 2378 | for (var o = 0; o < a.length; o++) { 2379 | var i = pi(a[o], qc); 2380 | if (-1 !== i) { 2381 | return void t("PX12013", i); 2382 | } 2383 | } 2384 | } 2385 | } catch (t) {} 2386 | } 2387 | ``` 2388 | 2389 | ### PX12015 2390 | n / a 2391 | 2392 | ### PX12027 2393 | ```javascript 2394 | function (e, n) { 2395 | if (e && e.length) { 2396 | var r = []; 2397 | for (var a = 0; a < e.length; a++) { 2398 | r.push(Zo(e[a])); 2399 | } 2400 | Oc("PX12027", u({}, "PX11976", r), true); 2401 | } 2402 | ``` 2403 | 2404 | ### PX12030 2405 | ```javascript 2406 | function Gd(t) { 2407 | var e; 2408 | if (Qd) { 2409 | var r = function (t) { 2410 | try { 2411 | if (!t || !t.isTrusted) { 2412 | return false; 2413 | } 2414 | var e = Io(t); 2415 | if (!e) { 2416 | return false; 2417 | } 2418 | var n = e.getClientRects(); 2419 | var r = { 2420 | x: n[0].left + n[0].width / 2, 2421 | y: n[0].top + n[0].height / 2 2422 | }; 2423 | var a = Math.abs(r.x - t.clientX); 2424 | var o = Math.abs(r.y - t.clientY); 2425 | if (a < 1 && o < 1) { 2426 | return { 2427 | centerX: a, 2428 | centerY: o 2429 | }; 2430 | } 2431 | } catch (t) {} 2432 | return null; 2433 | }(t); 2434 | if (r) { 2435 | Yd++; 2436 | var a = Io(t); 2437 | var o = Zo(a); 2438 | var i = No(a); 2439 | u(e = {}, "PX11652", o); 2440 | u(e, "PX12305", r.centerX); 2441 | u(e, "PX11311", r.centerY); 2442 | u(e, "PX11427", i.top); 2443 | u(e, "PX12208", i.left); 2444 | u(e, "PX11824", a.offsetWidth); 2445 | u(e, "PX11631", a.offsetHeight); 2446 | u(e, "PX12129", Yd); 2447 | lf("PX12030", e); 2448 | if (5 <= Yd) { 2449 | Qd = false; 2450 | Wd(false); 2451 | } 2452 | } 2453 | } 2454 | } 2455 | ``` 2456 | 2457 | ### PX12032 2458 | ```javascript 2459 | r.PX12032 = n.webGLVersion; 2460 | ``` 2461 | 2462 | ### PX12037 2463 | ```javascript 2464 | t.PX12037 = !!(navigator.doNotTrack || null === navigator.doNotTrack || navigator.msDoNotTrack || window.doNotTrack); 2465 | ``` 2466 | 2467 | ### PX12040 2468 | ```javascript 2469 | u(n = {}, "PX12040", Bu); 2470 | ``` 2471 | 2472 | ### PX12051 2473 | ```javascript 2474 | _c(document, "getElementsByTagNameNS", "PX12051"); 2475 | ``` 2476 | 2477 | ### PX12072 2478 | ```javascript 2479 | function bo(t) { 2480 | var e = (window.performance && f(window.performance.now) === "function" ? window.performance.now() : +new Date()) - Ho[t]; 2481 | Do[t] = Do[t] || {}; 2482 | Do[t].s = Do[t].s ? Do[t].s + e : e; 2483 | Do[t].c = Do[t].c ? Do[t].c + 1 : 1; 2484 | return function (t) { 2485 | return t >= 0 ? parseInt(t) : undefined; 2486 | }(e); 2487 | } 2488 | u(e, "PX12072", bo(Uc)); 2489 | ``` 2490 | 2491 | ### PX12073 2492 | ```javascript 2493 | t.PX11460 = !!window.PX12073 || !!window.callPhantom; 2494 | ``` 2495 | 2496 | ### PX12085 2497 | n / a 2498 | 2499 | ### PX12092 2500 | n / a 2501 | 2502 | ### PX12095 2503 | ```javascript 2504 | ``` 2505 | 2506 | ### PX12099 2507 | ```javascript 2508 | ``` 2509 | 2510 | ### PX12108 2511 | ```javascript 2512 | ``` 2513 | 2514 | ### PX12109 2515 | ```javascript 2516 | ``` 2517 | 2518 | ### PX12121 2519 | ```javascript 2520 | ``` 2521 | 2522 | ### PX12123 2523 | ```javascript 2524 | ``` 2525 | 2526 | ### PX12128 2527 | ```javascript 2528 | ``` 2529 | 2530 | ### PX12129 2531 | ```javascript 2532 | ``` 2533 | 2534 | ### PX12131 2535 | ```javascript 2536 | ``` 2537 | 2538 | ### PX12132 2539 | ```javascript 2540 | ``` 2541 | 2542 | ### PX12142 2543 | ```javascript 2544 | ``` 2545 | 2546 | ### PX12149 2547 | ```javascript 2548 | ``` 2549 | 2550 | ### PX12151 2551 | ```javascript 2552 | ``` 2553 | 2554 | ### PX12155 2555 | ```javascript 2556 | ``` 2557 | 2558 | ### PX12159 2559 | ```javascript 2560 | ``` 2561 | 2562 | ### PX12160 2563 | ```javascript 2564 | ``` 2565 | 2566 | ### PX12167 2567 | ```javascript 2568 | ``` 2569 | 2570 | ### PX12170 2571 | ```javascript 2572 | ``` 2573 | 2574 | ### PX12196 2575 | ```javascript 2576 | ``` 2577 | 2578 | ### PX12203 2579 | ```javascript 2580 | ``` 2581 | 2582 | ### PX12207 2583 | ```javascript 2584 | ``` 2585 | 2586 | ### PX12208 2587 | ```javascript 2588 | ``` 2589 | 2590 | ### PX12210 2591 | ```javascript 2592 | ``` 2593 | 2594 | ### PX12228 2595 | ```javascript 2596 | ``` 2597 | 2598 | ### PX12230 2599 | ```javascript 2600 | ``` 2601 | 2602 | ### PX12236 2603 | ```javascript 2604 | ``` 2605 | 2606 | ### PX12240 2607 | ```javascript 2608 | ``` 2609 | 2610 | ### PX12242 2611 | ```javascript 2612 | ``` 2613 | 2614 | ### PX12256 2615 | ```javascript 2616 | ``` 2617 | 2618 | ### PX12264 2619 | ```javascript 2620 | ``` 2621 | 2622 | ### PX12270 2623 | ```javascript 2624 | ``` 2625 | 2626 | ### PX12271 2627 | ```javascript 2628 | ``` 2629 | 2630 | ### PX12273 2631 | ```javascript 2632 | ``` 2633 | 2634 | ### PX12288 2635 | ```javascript 2636 | ``` 2637 | 2638 | ### PX12292 2639 | ```javascript 2640 | ``` 2641 | 2642 | ### PX12298 2643 | ```javascript 2644 | ``` 2645 | 2646 | ### PX12299 2647 | ```javascript 2648 | ``` 2649 | 2650 | ### PX12303 2651 | ```javascript 2652 | ``` 2653 | 2654 | ### PX12305 2655 | ```javascript 2656 | ``` 2657 | 2658 | ### PX12312 2659 | ```javascript 2660 | ``` 2661 | 2662 | ### PX12323 2663 | ```javascript 2664 | ``` 2665 | 2666 | ### PX12331 2667 | ```javascript 2668 | ``` 2669 | 2670 | ### PX12343 2671 | ```javascript 2672 | ``` 2673 | 2674 | ### PX12347 2675 | ```javascript 2676 | ``` 2677 | 2678 | ### PX12349 2679 | ```javascript 2680 | ``` 2681 | 2682 | ### PX12352 2683 | ```javascript 2684 | ``` 2685 | 2686 | ### PX12354 2687 | ```javascript 2688 | ``` 2689 | 2690 | ### PX12362 2691 | ```javascript 2692 | ``` 2693 | 2694 | ### PX12366 2695 | ```javascript 2696 | ``` 2697 | 2698 | ### PX12387 2699 | ```javascript 2700 | ``` 2701 | 2702 | ### PX12389 2703 | ```javascript 2704 | ``` 2705 | 2706 | ### PX12401 2707 | ```javascript 2708 | ``` 2709 | 2710 | ### PX12404 2711 | ```javascript 2712 | ``` 2713 | 2714 | ### PX12414 2715 | ```javascript 2716 | ``` 2717 | 2718 | ### PX12419 2719 | ```javascript 2720 | ``` 2721 | 2722 | ### PX12423 2723 | ```javascript 2724 | ``` 2725 | 2726 | ### PX12427 2727 | ```javascript 2728 | ``` 2729 | 2730 | ### PX12429 2731 | ```javascript 2732 | ``` 2733 | 2734 | ### PX12436 2735 | ```javascript 2736 | ``` 2737 | 2738 | ### PX12439 2739 | ```javascript 2740 | ``` 2741 | 2742 | ### PX12445 2743 | ```javascript 2744 | ``` 2745 | 2746 | ### PX12446 2747 | ```javascript 2748 | ``` 2749 | 2750 | ### PX12452 2751 | ```javascript 2752 | ``` 2753 | 2754 | ### PX12456 2755 | ```javascript 2756 | ``` 2757 | 2758 | ### PX12457 2759 | ```javascript 2760 | ``` 2761 | 2762 | ### PX12458 2763 | ```javascript 2764 | ``` 2765 | 2766 | ### PX12461 2767 | ```javascript 2768 | ``` 2769 | 2770 | ### PX12464 2771 | ```javascript 2772 | ``` 2773 | 2774 | ### PX12465 2775 | ```javascript 2776 | ``` 2777 | 2778 | ### PX12469 2779 | ```javascript 2780 | ``` 2781 | 2782 | ### PX12470 2783 | ```javascript 2784 | ``` 2785 | 2786 | ### PX12483 2787 | ```javascript 2788 | ``` 2789 | 2790 | ### PX12486 2791 | ```javascript 2792 | ``` 2793 | 2794 | ### PX12492 2795 | ```javascript 2796 | ``` 2797 | 2798 | ### PX12527 2799 | ```javascript 2800 | ``` 2801 | 2802 | ### PX12540 2803 | ```javascript 2804 | ``` 2805 | 2806 | ### PX12541 2807 | ```javascript 2808 | ``` 2809 | 2810 | ### PX12542 2811 | ```javascript 2812 | ``` 2813 | 2814 | ### PX12543 2815 | ```javascript 2816 | ``` 2817 | 2818 | ### PX12570 2819 | ```javascript 2820 | ``` 2821 | 2822 | ### PX12572 2823 | ```javascript 2824 | ``` 2825 | 2826 | ### PX12586 2827 | ```javascript 2828 | ``` 2829 | 2830 | ### PX12616 2831 | ```javascript 2832 | ``` 2833 | 2834 | ### PX12617 2835 | ```javascript 2836 | ``` 2837 | 2838 | ### PX12621 2839 | ```javascript 2840 | ``` 2841 | 2842 | ### PX12635 2843 | ```javascript 2844 | ``` 2845 | 2846 | ### PX561 2847 | ```javascript 2848 | ``` 2849 | 2850 | ### PX645 2851 | ```javascript 2852 | ``` 2853 | --------------------------------------------------------------------------------