@privacyscrubber/mcp-server 2.2.2 β†’ 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md ADDED
@@ -0,0 +1,23 @@
1
+ # PrivacyScrubber MCP Server License Agreement
2
+
3
+ **Copyright (c) 2026 Ilya Sibiryakov (BrandMeWeb). All Rights Reserved.**
4
+
5
+ ### 1. Grant of License β€” Community / Development Tier
6
+ Subject to the terms and conditions of this Agreement, BrandMeWeb grants you a personal, worldwide, non-exclusive, non-transferable license to install and run the PrivacyScrubber MCP Server (`@privacyscrubber/mcp-server`) in local IDE environments (such as Cursor, Windsurf, Claude Desktop, and CLI tools) solely for personal evaluation, development, and standard local data sanitization under published Free Tier quotas.
7
+
8
+ ### 2. Commercial, Multi-User & Enterprise Tier
9
+ Use of this software within commercial organizations, production automated pipelines, CI/CD gates, high-volume batch processing, multi-seat corporate teams, or the invocation of the 30 Specialized Industry Profiles (HIPAA PHI, Financial PAN/IBAN, Legal Privilege, DevSecOps Cloud Secrets, Automotive, Telecom, Biotech) requires a valid commercial license key:
10
+ - **PrivacyScrubber PRO**: Individual professional use ($15/mo or $110 Lifetime).
11
+ - **PrivacyScrubber TEAMS**: Team and small enterprise seats ($99/mo flat).
12
+ - **PrivacyScrubber Enterprise / Air-Gapped**: Dedicated corporate VPC clusters, Nitro Enclaves, and custom profile calibration ($12,000/yr).
13
+
14
+ Licensing and key activation: https://privacyscrubber.com/pricing
15
+
16
+ ### 3. Restrictions on Reverse-Engineering & Redistribution
17
+ Except as expressly authorized herein, you may not:
18
+ - Decompile, disassemble, reverse-engineer, or attempt to reconstruct the underlying pattern databases, regular expression taxonomies, or proprietary tokenization finite-state machines.
19
+ - Extract, harvest, or scrape the 30 specialized industry entity taxonomies to train competing machine learning models or build competing redaction products.
20
+ - Distribute, sublicense, lease, or commercially exploit standalone copies of the engine without an active Enterprise OEM agreement.
21
+
22
+ ### 4. Disclaimer of Warranties & Limitation of Liability
23
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -295,7 +295,7 @@ Looking for real-time protection directly inside your web browser?
295
295
 
296
296
  ## πŸ“„ License & Commercial Upgrade
297
297
 
298
- By default, the server runs under the **Free Tier** (restricted to 15,000 characters per request and the basic `General` PII profile). To unlock 25 specialized engineering, medical, legal, and financial PII profiles, as well as team-wide custom rules, you can purchase a commercial license.
298
+ By default, the server runs under the **Free Tier** (restricted to 15,000 characters per request and the basic `General` PII profile). To unlock 30 specialized engineering, medical, legal, and financial PII profiles, as well as team-wide custom rules, you can purchase a commercial license.
299
299
 
300
300
  ### Feature Comparison
301
301
 
@@ -304,7 +304,7 @@ By default, the server runs under the **Free Tier** (restricted to 15,000 charac
304
304
  | **Volatile Tokenization** | βœ… Yes | βœ… Yes | βœ… Yes |
305
305
  | **Standard PII Masking** | βœ… Yes | βœ… Yes | βœ… Yes |
306
306
  | **Max Character Length** | 15,000 chars | ♾️ Unlimited | ♾️ Unlimited |
307
- | **Industry Profiles** | General Only | 25 Profiles | 25 Profiles |
307
+ | **Industry Profiles** | General Only | 30 Profiles | 30 Profiles |
308
308
  | **Custom Regex Rules** | ❌ Locked | ♾️ Unlimited | ♾️ Unlimited |
309
309
  | **Team Rules Sync (GPO)** | ❌ No | ❌ No | βœ… Yes (Shared Link) |
310
310
  | **Licensing Cost** | $0 | **$110 Lifetime** | **$99/mo Flat Rate** |
package/index.js CHANGED
@@ -1234,8 +1234,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1234
1234
  const tier = license.isPro ? 'PRO' : 'FREE';
1235
1235
  const tierIcon = license.isPro ? 'βœ…' : 'πŸ”“';
1236
1236
  const profileList = license.isPro
1237
- ? 'All 25 profiles active (General, Dev, Medical, Legal, Finance, HR…)'
1238
- : 'General only β€” PRO unlocks 25 industry profiles';
1237
+ ? 'All 30 specialized profiles active (General, Dev, Medical, Legal, Finance, HR…)'
1238
+ : 'General only β€” PRO unlocks all 30 specialized industry profiles';
1239
1239
  const sizeLimit = license.isPro ? 'Unlimited' : '15,000 characters per request';
1240
1240
 
1241
1241
  const configPath = resolveConfigPath();
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": "0.3",
3
3
  "name": "privacyscrubber/pii-masking-mcp",
4
- "version": "2.2.2",
4
+ "version": "2.2.3",
5
5
  "description": "CISO-Approved Zero-Trust PII & Secrets Redaction MCP Server for Cursor, Windsurf, and Claude Desktop. Prevent API leaks and comply with HIPAA/SOC 2 locally.",
6
6
  "author": {
7
7
  "name": "PrivacyScrubber",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privacyscrubber/mcp-server",
3
- "version": "2.2.2",
3
+ "version": "2.2.3",
4
4
  "mcpName": "io.github.moxno/privacyscrubber-mcp",
5
5
  "description": "CISO-Approved Zero-Trust PII & Secrets Redaction MCP Server for Cursor, Windsurf, and Claude Desktop. Prevent API leaks and comply with HIPAA/SOC 2 locally.",
6
6
  "main": "index.js",
@@ -34,8 +34,9 @@
34
34
  },
35
35
  "scripts": {
36
36
  "start": "node index.js",
37
- "build": "echo 'No build step required for vanilla JS'",
38
- "test": "node test-mcp.js && node test-mcp-deep.js"
37
+ "build": "node ../scripts/build-mcp.js",
38
+ "test": "node test-mcp.js && node test-mcp-deep.js",
39
+ "prepublishOnly": "npm run build && npm test"
39
40
  },
40
41
  "dependencies": {
41
42
  "@modelcontextprotocol/sdk": "^1.29.0",
@@ -67,7 +68,7 @@
67
68
  "ciso"
68
69
  ],
69
70
  "author": "Ilya Sibiryakov (BrandMeWeb)",
70
- "license": "MIT",
71
+ "license": "SEE LICENSE IN LICENSE.md",
71
72
  "homepage": "https://privacyscrubber.com/pii-mcp/?utm_source=npm&utm_medium=readme&utm_campaign=mcp_server",
72
73
  "repository": {
73
74
  "type": "git",
@@ -1,257 +1,11 @@
1
- (function(global) {
2
- // ── START LICENSE CRYPTO ──
3
- const PUBLIC_KEY_N = BigInt("21317979104050344678233452423803986868842680501941538057759536089609908024281729760556922188810565541201321990374637212776148857190553192389608364990754937991254608109727112734447704854882786946805547031142530865504430968628760311494129154950865158735816268612258108296781892583171421605668998979064782378729322077179022581884976242706169323540456286526420742434868559866211716347133681429395477256705746276962607312574959642065929462114149296066812527505837608212730874704915352119747022918247963886630350365119206627670591400728523813746184290857872958847087691236909900501703203494160206941648263514117706558791691");
4
- const PUBLIC_KEY_E = 65537n;
5
-
6
- function modPow(base, exp, mod) {
7
- let res = 1n;
8
- base = base % mod;
9
- while (exp > 0n) {
10
- if (exp % 2n === 1n) res = (res * base) % mod;
11
- exp = exp / 2n;
12
- base = (base * base) % mod;
13
- }
14
- return res;
15
- }
16
-
17
- function bigIntToString(bi) {
18
- let hex = bi.toString(16);
19
- if (hex.length % 2 !== 0) hex = '0' + hex;
20
- let str = '';
21
- for (let i = 0; i < hex.length; i += 2) {
22
- str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
23
- }
24
- return str;
25
- }
26
-
27
- function stringToBigInt(str) {
28
- let hex = '';
29
- for (let i = 0; i < str.length; i++) {
30
- hex += str.charCodeAt(i).toString(16).padStart(2, '0');
31
- }
32
- return BigInt('0x' + hex);
33
- }
34
-
35
- function sha256(ascii) {
36
- function rightRotate(value, amount) { return (value>>>amount) | (value<<(32 - amount)); }
37
- var mathPow = Math.pow; var maxWord = mathPow(2, 32);
38
- var lengthProperty = 'length'; var i, j;
39
- var result = ''; var words = []; var asciiBitLength = ascii[lengthProperty]*8;
40
- var hash = sha256.h = sha256.h || [];
41
- var k = sha256.k = sha256.k || [];
42
- var primeCounter = k[lengthProperty];
43
- var isComposite = {};
44
- for (var candidate = 2; primeCounter < 64; candidate++) {
45
- if (!isComposite[candidate]) {
46
- for (i = 0; i < 313; i += candidate) { isComposite[i] = candidate; }
47
- hash[primeCounter] = (mathPow(candidate, .5)*maxWord)|0;
48
- k[primeCounter++] = (mathPow(candidate, 1/3)*maxWord)|0;
49
- }
50
- }
51
- ascii += '\x80';
52
- while (ascii[lengthProperty]%64 - 56) ascii += '\x00';
53
- for (i = 0; i < ascii[lengthProperty]; i++) {
54
- j = ascii.charCodeAt(i);
55
- if (j>>8) return;
56
- words[i>>2] |= j << ((3 - i)%4)*8;
57
- }
58
- words[words[lengthProperty]] = ((asciiBitLength/maxWord)|0);
59
- words[words[lengthProperty]] = (asciiBitLength)
60
- for (j = 0; j < words[lengthProperty];) {
61
- var w = words.slice(j, j += 16);
62
- var oldHash = hash;
63
- hash = hash.slice(0, 8);
64
- for (i = 0; i < 64; i++) {
65
- var w15 = w[i - 15], w2 = w[i - 2];
66
- var a = hash[0], e = hash[4];
67
- var temp1 = hash[7] + (rightRotate(e, 6) ^ rightRotate(e, 11) ^ rightRotate(e, 25)) + ((e&hash[5])^((~e)&hash[6])) + k[i] + (w[i] = (i < 16) ? w[i] : (w[i - 16] + (rightRotate(w15, 7) ^ rightRotate(w15, 18) ^ (w15>>>3)) + w[i - 7] + (rightRotate(w2, 17) ^ rightRotate(w2, 19) ^ (w2>>>10)))|0);
68
- var temp2 = (rightRotate(a, 2) ^ rightRotate(a, 13) ^ rightRotate(a, 22)) + ((a&hash[1])^(a&hash[2])^(hash[1]&hash[2]));
69
- hash = [(temp1 + temp2)|0].concat(hash);
70
- hash[4] = (hash[4] + temp1)|0;
71
- }
72
- for (i = 0; i < 8; i++) { hash[i] = (hash[i] + oldHash[i])|0; }
73
- }
74
- for (i = 0; i < 8; i++) {
75
- for (j = 3; j + 1; j--) {
76
- var b = (hash[i]>>(j*8))&255;
77
- result += ((b < 16) ? 0 : '') + b.toString(16);
78
- }
79
- }
80
- return result;
81
- }
82
- // ── END LICENSE CRYPTO ──
83
-
84
- class LicenseManager {
85
- /**
86
- * Validates a license key universally across all environments.
87
- * @param {string} key - The license key.
88
- * @param {object} options - Options mapping to environment specifics.
89
- * @returns {object} { valid: boolean, tier: string|null, reason?: string, expires?: number }
90
- */
91
- static validate(key, options = {}) {
92
- if (!key) return { valid: false, tier: null, reason: "No key provided" };
93
- const rawKey = key.trim();
94
- const k = rawKey.toUpperCase();
95
- const parts = k.split('-');
96
-
97
- const now = options.mockTime !== undefined && options.mockTime !== null ? options.mockTime : Date.now();
98
- let lastSeen = 0;
99
-
100
- if (options.storage) {
101
- lastSeen = parseInt(options.storage.getItem('ps_last_seen_time') || '0', 10);
102
- if (options.mockTime === undefined || options.mockTime === null) {
103
- options.storage.setItem('ps_last_seen_time', now.toString());
104
- }
105
- }
106
-
107
- // Clock rollback guard
108
- if ((options.mockTime === undefined || options.mockTime === null) && now < lastSeen) {
109
- if (options.onAnomaly) options.onAnomaly();
110
- return { valid: false, tier: null, reason: "Clock rollback anomaly detected" };
111
- }
112
-
113
- const _atob = typeof atob !== 'undefined' ? atob : (str) => Buffer.from(str, 'base64').toString('binary');
114
-
115
- // 1. Process Pilot Keys (RSA-1024 Encrypted Timestamps)
116
- if (k.startsWith('PS-PILOT-')) {
117
- try {
118
- const payload = rawKey.substring(9);
119
- const binary = _atob(payload);
120
- const bytes = new Uint8Array(binary.length);
121
- for (let i = 0; i < binary.length; i++) {
122
- bytes[i] = binary.charCodeAt(i);
123
- }
124
- let hex = '';
125
- for (let i = 0; i < bytes.length; i++) {
126
- hex += bytes[i].toString(16).padStart(2, '0');
127
- }
128
- const S = BigInt('0x' + hex);
129
-
130
- const M = modPow(S, PUBLIC_KEY_E, PUBLIC_KEY_N);
131
- const decryptedStr = bigIntToString(M);
132
-
133
- if (decryptedStr.startsWith('ZTDS-PILOT-')) {
134
- const expDate = parseInt(decryptedStr.substring(11), 10);
135
- if (!isNaN(expDate)) {
136
- if (now < expDate) return { valid: true, tier: 'TEAMS', expires: expDate };
137
-
138
- if (options.onExpired) options.onExpired('Pilot');
139
- return { valid: false, tier: null, reason: "Pilot expired" };
140
- }
141
- }
142
- } catch(e) {
143
- return { valid: false, tier: null, reason: "Pilot decryption failed" };
144
- }
145
- }
146
-
147
- // 1.5. Process RSA Signed Keys (PS-RSA-...)
148
- if (k.startsWith('PS-RSA-')) {
149
- try {
150
- const payload = rawKey.substring(7);
151
- const binary = _atob(payload);
152
- const bytes = new Uint8Array(binary.length);
153
- for (let i = 0; i < binary.length; i++) {
154
- bytes[i] = binary.charCodeAt(i);
155
- }
156
- let hex = '';
157
- for (let i = 0; i < bytes.length; i++) {
158
- hex += bytes[i].toString(16).padStart(2, '0');
159
- }
160
- const S = BigInt('0x' + hex);
161
-
162
- const M = modPow(S, PUBLIC_KEY_E, PUBLIC_KEY_N);
163
- const decryptedStr = bigIntToString(M);
164
-
165
- if (decryptedStr.startsWith('ZTDS-LIC-')) {
166
- const pieces = decryptedStr.split('-');
167
- if (pieces.length >= 5) {
168
- const tier = pieces[2];
169
- const expires = parseInt(pieces[4], 10);
170
- if (!isNaN(expires)) {
171
- if (now < expires) return { valid: true, tier: tier, expires: expires };
172
-
173
- if (options.onExpired) options.onExpired('RSA');
174
- return { valid: false, tier: null, reason: "RSA key expired" };
175
- }
176
- }
177
- }
178
- } catch(e) {
179
- return { valid: false, tier: null, reason: "RSA decryption failed" };
180
- }
181
- }
182
-
183
- // 2. Process Modern Prefixed Keys (v1.4.2+ Salted Checksum)
184
- if (parts.length === 4 && parts[0] === 'PS' && ['PRO', 'TEAMS', 'SDK', 'OEM', 'ENTERPRISE'].includes(parts[1])) {
185
- const tier = parts[1];
186
- const core = parts[2];
187
- const checksum = parts[3];
188
- const salt = "ZTDS_SALT_2026_!@#";
189
- const input = core + salt + tier;
190
- let sum = 0;
191
- for (let i = 0; i < input.length; i++) {
192
- sum += input.charCodeAt(i) * (i + 1);
193
- }
194
- const expectedChecksum = (sum % 9999).toString().padStart(4, '0');
195
- if (checksum === expectedChecksum) {
196
- return { valid: true, tier: tier };
197
- }
198
- }
199
-
200
- // 3. Process Standard RS256 JWTs (eyJ...)
201
- if (rawKey.startsWith('eyJ') && rawKey.split('.').length === 3) {
202
- try {
203
- const [b64Header, b64Payload, b64Signature] = rawKey.split('.');
204
-
205
- let sigStr = b64Signature.replace(/-/g, '+').replace(/_/g, '/');
206
- while (sigStr.length % 4) sigStr += '=';
207
- const binarySig = _atob(sigStr);
208
- let hexSig = '';
209
- for (let i = 0; i < binarySig.length; i++) {
210
- hexSig += binarySig.charCodeAt(i).toString(16).padStart(2, '0');
211
- }
212
-
213
- const S = BigInt('0x' + hexSig);
214
- const M = modPow(S, PUBLIC_KEY_E, PUBLIC_KEY_N);
215
-
216
- let mHex = M.toString(16);
217
- if (mHex.length % 2 !== 0) mHex = '0' + mHex;
218
-
219
- const expectedHash = sha256(b64Header + '.' + b64Payload);
220
-
221
- if (mHex.endsWith(expectedHash)) {
222
- const payloadJson = _atob(b64Payload.replace(/-/g, '+').replace(/_/g, '/'));
223
- const payload = JSON.parse(payloadJson);
224
-
225
- if (payload.exp && (now / 1000) < payload.exp) {
226
- return { valid: true, tier: payload.tier || 'PRO', expires: payload.exp * 1000 };
227
- } else {
228
- if (options.onExpired) options.onExpired('JWT');
229
- return { valid: false, tier: null, reason: "JWT expired" };
230
- }
231
- }
232
- } catch(e) {
233
- return { valid: false, tier: null, reason: "JWT validation failed" };
234
- }
235
- }
236
-
237
- return { valid: false, tier: null, reason: "Invalid format" };
238
- }
239
- }
240
-
241
- // Export module for ES modules, CommonJS, and Browser Global
242
- if (typeof globalThis !== 'undefined') {
243
- globalThis.LicenseManager = LicenseManager;
244
- }
245
- if (typeof global !== 'undefined') {
246
- global.LicenseManager = LicenseManager;
247
- }
248
- if (typeof window !== 'undefined') {
249
- window.LicenseManager = LicenseManager;
250
- }
251
- if (typeof exports !== 'undefined') {
252
- if (typeof module !== 'undefined' && module.exports) {
253
- module.exports = LicenseManager;
254
- }
255
- exports.LicenseManager = LicenseManager;
256
- }
257
- })(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this));
1
+ /**
2
+ * @license
3
+ * PrivacyScrubber Core Processing Engine (ZTDS)
4
+ * Copyright (c) 2026 PrivacyScrubber. All Rights Reserved.
5
+ *
6
+ * WARNING: This is proprietary, commercial software.
7
+ * Unauthorized copying, modification, distribution, or use of this source code,
8
+ * via any medium, is strictly prohibited. Protected by international copyright
9
+ * laws and treaties.
10
+ */
11
+ function _0x5922(){const _0x139d18=['nZCWnG','ALPHwG','mtmZnG','ndyWoa','sKH6Ca','mti0nZe0mgf5y3reuG','AYbYBW','DgfYDa','nJy4mq','ote2oq','z3z1rG','nZqYna','nJKXmG','twTPzG','nJmWmW','mta0ma','DhnxAq','CMvWBa','mtyWmG','odeWnq','uMvJvG','ntmXoq','AKrTDG','zxHWBW','nJa4mW','mdG1nW','AxnHqW','zw5KCW','q2XVyW','DgvK','mZC2ma','nde1mW','oda1nW','mJG1mG','lvbjta','ndq3nW','nZmWoa','ntG4na','mZqZmtq2tMjrvgfm','yxn0xW','ELPjCq','rML0tW','mtb4Bw1fCgm','C2vLBG','DgLLCG','ota4ma','BgXIyq','odq5nW','mta5nW','mJmZna','ntK2na','odqYoq','mZiXoq','m1HWtxvPzG','nJiXmq','vevbtq','ufjp','nZq3ma','nZa4nW','ntC0oq','mtCYoq','zM9YBq','u3fRAW','mdG2nq','mJe4oa','odu1oq','zgvK','ndi1mW','mJa2nG','z2v0sq','yNndEq','nZyXna','y2SGyq','nte1oa','mZyWoa','ndy3oa','BgvK','BhKGza','suXpva','mJm0mZqWrgHXufbg','yw5HzW','tgLJzq','Dg9vCa','mdy5na','nZCXnW','BgLKia','x3rPBq','q29Kzq','nJC4mq','ufmTuG','mJqYoa','mtKWnq','vgHMyW','CgLYzq','mtK3na','ugLSBW','nde0oq','Cg93','mJeZmq','CNrZ','CM92Aq','odG1nW','nZyWmW','odmXnW','mtyWnZLuBK5YquC','otm5nq','ntGXoa','mZu0ma','AKvdAW','v2L0Aa','DcbKzq','igzHAq','zxHW','BNnLtq','mJK2ma','nJi2ma','nZu5nq','Dg9tDa','nta1oa','sLDu','sfH2rW','mdq4nq','mtyYnG','teXWBW','mZq4nG','oteYnq','nteXoq','C3rVCG','mZGWmW','mtqXmq','mJeYnW','vf8Yma','ndKXnq','yMfZzq','mdGYoq','DgLVBG','nta0na','y2nXDq','mJCZna','nJG5oq','ody1mG','ode0mG','C3bSAq','nZq0vwTeBMTR','vfniqq','mdC1na','Dw5Kzq','DhjPBG','mJC2oq','mJCXmq','mZGXmW','Egz5rG','nJqYma','y1HLzq','whbhzq','mZy5ma','odCYoq','nZmWmde0CLLKwNDA','ntaZna','A2v5ia','ndG4mG','nty3ma','BvzPzG','ChnFBa','wuLktG','Bw9JAW','ody2mG','mJzFiq','ndy4ma','ndC5nG','mdu5mq','odK3oq','BM9Tyq','zxKGCa','ntaXnW','nZyWnq','u0rl','x1nbta','mte3mq','uLnb','uLnbia','ywnL','zxHWAq','odyYoa','ndC3mG','ywDL','ntaXoq','sejOqq','mdy0nW','odyXmG','otyWoq','otKWma','nZm1oa','otaZnW','C2v0sq','ntaZnG','mJC2nW','odiXmG','nJi0mG','uLbssq','ru5urq','oti5na','nJm0nW','otaYmG','t0vn','mZG4nG','mte0oq','q2HHCG','nJu1na','ndaWnW','odiZnW','yMLUyq','C21xsq','DwrLCW','y29UyW','mtqYmq','vgLTzq','odKYnq','Aw5JBa','ote4mG','nta4nG','mJyZnq','Awrnza','mZy4nZC1yw5swg5r','DMfSAq','ntu0nW','zgf0Aq','t1qT','mJuYnW','EfPoCa','u0eT','nZK3oq','ndu2mG','mtiWmq','otm3oq','nty5mG','B24GzG','ntC0nG','vwzYsG','y2HHCG','tM8GAW','AwTdwG','luXjqW','sfnorW','B25fEa','DeTUBa','BMXdEa','BwrVua','mtu0oq','ndeYoq','vvnMza','mJm4oq','otG2oa','DgHOsW','CMLUzW','nJq5oq','mJy4ma','mZiYma','nJG4na','zxLk','wLreuW','DgvT','yxnL','mty0oa','CgfYCW','ndyZnW','mZy2odeZBhrHyunh','nti0mG','rNPYra','BM93','C3vICW','Avb6vG','nZq2mq','nZa2mq','mZa5nG','mJu4mq','ntu4nW','mdmYma','sw52yq','nZG2oq','nZaYmG','nZmXmG','ywLSzq','mdmXmq','B3ruua','BgvUzW','ufmTua','zgvJCG','AMnIAa','C3rHCG','mZq5na','DhjPBq','mJa2nq','nJKZmG','B21HBa','zMLUzq','DcbLEa','Exb0Aq','CgvYqW','y3j5Ca','CgfKuW','zxrLyW','mZuYmq','C2XPyW','sLDuia','B25bBG','zNjVBq','CMvK','nJa1nG'];_0x5922=function(){return _0x139d18;};return _0x5922();}const _0x12e4b6=_0x2d78,_0x3985b6=_0x2d78;function _0x2d78(_0x57282d,_0x45d857){_0x57282d=_0x57282d-0x1c5;const _0x592285=_0x5922();let _0x2d789d=_0x592285[_0x57282d];if(_0x2d78['MZGsbt']===undefined){var _0x10921e=function(_0x5a680c){const _0x20546f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x543970='',_0x5ac342='';for(let _0x440397=0x0,_0x4b93ce,_0xbbe166,_0x397557=0x0;_0xbbe166=_0x5a680c['charAt'](_0x397557++);~_0xbbe166&&(_0x4b93ce=_0x440397%0x4?_0x4b93ce*0x40+_0xbbe166:_0xbbe166,_0x440397++%0x4)?_0x543970+=String['fromCharCode'](0xff&_0x4b93ce>>(-0x2*_0x440397&0x6)):0x0){_0xbbe166=_0x20546f['indexOf'](_0xbbe166);}for(let _0x8de9f1=0x0,_0x4d10a2=_0x543970['length'];_0x8de9f1<_0x4d10a2;_0x8de9f1++){_0x5ac342+='%'+('00'+_0x543970['charCodeAt'](_0x8de9f1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ac342);};_0x2d78['tapnHk']=_0x10921e,_0x2d78['WvKeTf']={},_0x2d78['MZGsbt']=!![];}const _0x60bed8=_0x592285[0x0],_0x67bc8c=_0x57282d+_0x60bed8,_0x543b7b=_0x2d78['WvKeTf'][_0x67bc8c];return!_0x543b7b?(_0x2d789d=_0x2d78['tapnHk'](_0x2d789d),_0x2d78['WvKeTf'][_0x67bc8c]=_0x2d789d):_0x2d789d=_0x543b7b,_0x2d789d;}(function(_0x4787e3,_0x57c6a8){const _0x3f2be0={_0x4d6a42:0x1ed,_0x5c92a2:0x24d,_0x4c37ba:0x267,_0xf3f367:0x242,_0x3cda8d:0x2b5,_0x35cd04:0x2a7},_0x307879=_0x2d78,_0x5f1c72=_0x2d78,_0x4cceb7=_0x4787e3();while(!![]){try{const _0x52a097=parseInt(_0x307879(_0x3f2be0._0x4d6a42))/0x1+-parseInt(_0x307879(0x23e))/0x2*(-parseInt(_0x307879(_0x3f2be0._0x5c92a2))/0x3)+parseInt(_0x5f1c72(_0x3f2be0._0x4c37ba))/0x4+-parseInt(_0x5f1c72(_0x3f2be0._0xf3f367))/0x5*(parseInt(_0x5f1c72(_0x3f2be0._0x3cda8d))/0x6)+-parseInt(_0x5f1c72(0x280))/0x7*(parseInt(_0x307879(_0x3f2be0._0x35cd04))/0x8)+-parseInt(_0x5f1c72(0x2f7))/0x9+parseInt(_0x5f1c72(0x21d))/0xa;if(_0x52a097===_0x57c6a8)break;else _0x4cceb7['push'](_0x4cceb7['shift']());}catch(_0x131ffb){_0x4cceb7['push'](_0x4cceb7['shift']());}}}(_0x5922,0x36a07),function(_0x15f0cd){const _0x13f321={_0x5a37ad:0x200,_0x584cf4:0x201,_0x576af4:0x2cc,_0x27ad89:0x2b7,_0x3da2d8:0x216,_0xd78e5c:0x202,_0xb505ba:0x20c,_0x1ead2d:0x1cf,_0x2b5b7d:0x1fd,_0x6bbc93:0x1e7,_0xd10ad1:0x29b,_0x27fef:0x2bf,_0x4f378c:0x28f,_0x46a77b:0x2f8,_0x789359:0x1f9,_0x324e42:0x2aa,_0x5a3beb:0x27a,_0x3d6b39:0x1ca,_0x3d1e3c:0x227,_0x3915b7:0x2b6,_0x322b24:0x263,_0x5b539e:0x249,_0x2fbb6a:0x1ee,_0x41c16f:0x1e3,_0x464eb2:0x238,_0x4e263b:0x28c,_0x71cd17:0x254,_0x536561:0x2c7,_0x275778:0x1ce,_0x2b6f5e:0x22b,_0x2d0f3b:0x2e8,_0x4f9bd2:0x2d9,_0x92227d:0x1ec,_0x3255ba:0x29a,_0x2cb969:0x27d,_0xb08ecf:0x273,_0x30b9de:0x1de,_0x2d8074:0x230,_0x185d0d:0x1cd,_0x5e6550:0x295,_0x5be3d1:0x248,_0x5680fb:0x2ad,_0x3a8b1a:0x2a2,_0x29c1de:0x23b,_0x58ab43:0x291,_0x59248e:0x2b8,_0x496301:0x1fa,_0x584f39:0x1fe,_0x36a011:0x25b,_0x2d25f5:0x257,_0x5962b1:0x1f5,_0x207376:0x2cf,_0x5b6118:0x27e,_0x16aac:0x2e6,_0x2cf3bc:0x1dc,_0x8f3cb8:0x1db,_0x1204e0:0x2f4,_0x19cc25:0x261,_0x4320fd:0x2d8,_0xe37dd2:0x292,_0x11356b:0x2d5,_0x2dd7f7:0x29e,_0x4b7791:0x270,_0xa2863f:0x2f1,_0x2a415e:0x2a3,_0x15bb2a:0x2c3,_0x44fe03:0x2d4,_0xb04a78:0x2ea,_0x4e45e3:0x2b4,_0x13260d:0x1e4,_0x67c028:0x26c,_0x47cc7c:0x282,_0x466beb:0x247,_0x5553e1:0x2de,_0x44d3e6:0x1f4,_0x3622a8:0x208,_0x37c348:0x1cb,_0x170c03:0x2a4,_0xdc275c:0x2b0,_0x1ba7c2:0x223,_0x645b30:0x259,_0x1a36fe:0x2be,_0x4e22fa:0x2e2,_0x2d119d:0x21a,_0x5c61bc:0x2a5,_0x339806:0x281,_0x243b2d:0x2d0,_0x4e2dc4:0x1d0,_0x48502c:0x2ac,_0x5eb395:0x28b,_0x5c8397:0x1fc,_0x18d906:0x24a,_0x426731:0x207,_0xf1d5f8:0x2e1,_0x13c52d:0x24e,_0x22f50e:0x278,_0xca7523:0x220,_0x2d404c:0x1c7,_0x4b9bfb:0x28e,_0x1571a9:0x236,_0x344dc1:0x2dd,_0x521fa7:0x23c,_0x4ccdde:0x251,_0x267ded:0x29c,_0x2a264f:0x211,_0x263059:0x276,_0x23d0a1:0x1fb,_0x48d998:0x2f3,_0x5df632:0x2c1,_0x4a2b02:0x2e5,_0x1130d0:0x226,_0x32257e:0x2db,_0x19e669:0x296,_0x1f9e67:0x2c2,_0x37d9b0:0x2e9,_0x435d68:0x239,_0xa2009a:0x2ae,_0x586934:0x24b,_0x349b37:0x231,_0x262039:0x224,_0xf31f0e:0x2d7,_0x354645:0x2c6,_0x51f84b:0x1f8,_0x2bc59e:0x26b,_0x132bbb:0x1ea,_0x334645:0x2f5,_0x51ad7b:0x299,_0x38c5bc:0x218,_0x10cfa9:0x1f7,_0x153adf:0x221,_0x45b9eb:0x1f2,_0xdb20e1:0x2aa,_0xc931fb:0x20a,_0x33ce88:0x269,_0x2d68b3:0x289,_0x30fe5c:0x268,_0x3497fc:0x2aa,_0x26d804:0x293,_0x163f91:0x269,_0x57d43a:0x20a,_0x317f8d:0x203,_0x33e1d9:0x241,_0x1610cc:0x22f,_0x2a15b6:0x27b,_0x1d95c7:0x289,_0x52241f:0x268},_0x2b1ce5={_0x478d1c:0x1d3,_0xcb9d1c:0x2c5,_0x2b153d:0x27c,_0x4ff561:0x26a,_0x46a7b8:0x20d,_0x372408:0x1e9,_0x3881f9:0x2a6,_0x53003d:0x222,_0x426202:0x2bd,_0x567640:0x2f0,_0x25cf3c:0x297,_0x1ec21e:0x2d1,_0x35cf08:0x25d,_0x41073b:0x1e8,_0x16219b:0x2bb,_0x234701:0x243,_0xa0c18a:0x26e,_0x539dd6:0x2bd,_0x46c58b:0x2f0,_0x122755:0x297,_0x396686:0x2d1,_0x36255f:0x1e8,_0x35a45e:0x23f,_0x501288:0x243,_0x42417d:0x26e,_0x420cc0:0x1e1,_0x1ce65e:0x2f0,_0x1d88d2:0x2bd,_0x45a7c6:0x214,_0x49f311:0x209,_0x254d06:0x209,_0x52dff4:0x21e,_0x24d575:0x2c4,_0x56fa01:0x265,_0x312a0a:0x210,_0x1cc566:0x235,_0x3dcaa:0x222,_0x34ee59:0x20a,_0x328c13:0x204,_0x469d79:0x228,_0x469146:0x1c8,_0x35e1f9:0x1f1,_0x3152a7:0x2ab,_0x528b73:0x200,_0x1e34eb:0x1d2,_0x29c78b:0x200,_0x511886:0x28d,_0x32145f:0x21f,_0x5898c5:0x204,_0xe1d9c:0x228,_0x52d522:0x1e7,_0x2bd09b:0x1c6,_0x3004de:0x1d7,_0xd488ba:0x1d7,_0x9bffc9:0x277,_0xc98e97:0x277,_0x1caf29:0x286,_0xdfae38:0x20e,_0x281a6b:0x287,_0x240f2f:0x264,_0x25f72f:0x228,_0x235090:0x271,_0x3209d6:0x1c9,_0x3ee228:0x200,_0x27851f:0x1d2,_0x5afe28:0x26f,_0x2475ad:0x204,_0x1f8fcd:0x1d5,_0x19b874:0x1d7,_0x396998:0x275,_0x53a083:0x275,_0x10525a:0x1e0,_0xc8f87b:0x200,_0x4745d6:0x250,_0x24702b:0x24f,_0x43088e:0x2c8,_0x2d50e3:0x2e4,_0x3909dd:0x2e0,_0xd3c199:0x2f2,_0x3349a8:0x2ed,_0x77e70a:0x240,_0x297e92:0x1d9,_0x368a60:0x20f,_0x529641:0x204,_0x43081f:0x1e6,_0x4d2fcb:0x229,_0x12f659:0x2cd,_0x143efd:0x2cd,_0x314b98:0x1dd,_0x158f63:0x200,_0x584715:0x290,_0x49f81e:0x26f,_0x439d87:0x28d,_0x4077ea:0x1e1,_0x34fc47:0x28d,_0x2d88a0:0x285,_0x14f641:0x2cd,_0x33000e:0x229,_0x579471:0x1eb,_0x20294a:0x288,_0x446973:0x288,_0x4017e4:0x284,_0x5da4d8:0x1d7,_0x18dbbd:0x1da,_0x2f95dd:0x2ce,_0x2e0047:0x216,_0x35fb3e:0x1d6,_0x102cea:0x2f6},_0x5747de={_0x570d8b:0x279,_0x1d8184:0x2b2,_0x24c161:0x290,_0x32b02d:0x1d8,_0x210798:0x2b1,_0x2bf312:0x1dd,_0x234cc9:0x232,_0x417c49:0x225,_0x5e92c8:0x212,_0x5b43e6:0x2bc,_0x40f496:0x2ba,_0x3121e7:0x2a1,_0x4bf0a4:0x1ef,_0x673030:0x1d4,_0x2fd08c:0x22e,_0x2f9878:0x1d1,_0x3c14b5:0x2ee,_0x49674b:0x1e1},_0x1570f5={_0x270850:0x2af},_0x1266aa={_0x3e2af7:0x256,_0x4069c5:0x1e1,_0x40c39f:0x20f,_0x44d12d:0x21f},_0x3e98eb={_0x3f812d:0x28d,_0x563ed2:0x200,_0x54e8f4:0x1d9,_0x1b04d8:0x256,_0x1fc355:0x2e7,_0x193466:0x26f,_0xaf94b4:0x1ef,_0x39f236:0x1f1},_0x3a590c={_0x50352f:0x2d3},_0x5e61d7=_0x2d78,_0x5b5889=_0x2d78,_0x576cf6={'HBhAx':function(_0x5d1085,_0x3081c7){return _0x5d1085===_0x3081c7;},'nlCxn':function(_0x3a319a,_0x376b9c){return _0x3a319a+_0x376b9c;},'Sqkky':function(_0x502f44,_0x5b22e3){return _0x502f44<_0x5b22e3;},'FzrDt':function(_0x327903,_0x5eecf,_0x51d261){return _0x327903(_0x5eecf,_0x51d261);},'xfyFf':function(_0x30804e,_0x256d62){return _0x30804e-_0x256d62;},'XpGes':_0x5e61d7(_0x13f321._0x5a37ad)+'th','HXvGJ':function(_0x7dc06a,_0xcd677c){return _0x7dc06a<_0xcd677c;},'tKnle':function(_0x542d93,_0xb2acca){return _0x542d93|_0xb2acca;},'cXeeg':function(_0x310045,_0x5432b4){return _0x310045/_0x5432b4;},'USfdl':function(_0x2eb972,_0x3380c1){return _0x2eb972%_0x3380c1;},'isaCl':function(_0x7b49a8,_0x5ad5d1){return _0x7b49a8<_0x5ad5d1;},'MkifW':function(_0x20ccaf,_0x2aea32){return _0x20ccaf*_0x2aea32;},'YIJNZ':function(_0x2fe4f6,_0x476190){return _0x2fe4f6+_0x476190;},'jDmvL':function(_0x236790,_0x327ba2,_0x3f9220){return _0x236790(_0x327ba2,_0x3f9220);},'mVifV':function(_0x1749f1,_0x2bda40){return _0x1749f1^_0x2bda40;},'ccqug':function(_0x61cc7a,_0x3a56db){return _0x61cc7a&_0x3a56db;},'otTPd':function(_0x2bb0db,_0x31fc02){return _0x2bb0db>>>_0x31fc02;},'RecVv':function(_0x3928d1,_0x169887){return _0x3928d1+_0x169887;},'ikCZW':function(_0x39e793,_0x33240e){return _0x39e793^_0x33240e;},'smWIb':function(_0x368961,_0x30cf53){return _0x368961^_0x30cf53;},'UfrJG':function(_0x25e7d1,_0x127805){return _0x25e7d1&_0x127805;},'gvuFO':function(_0x1cee2e,_0x4cf721){return _0x1cee2e!==_0x4cf721;},'xZNpA':_0x5e61d7(_0x13f321._0x584cf4)+_0x5b5889(0x266)+'-','JHzpH':function(_0xb45d74,_0x7eedcc,_0x39df60){return _0xb45d74(_0x7eedcc,_0x39df60);},'ThfcI':function(_0x1dd39d,_0x4a100f,_0x1d8ebc,_0x11c546){return _0x1dd39d(_0x4a100f,_0x1d8ebc,_0x11c546);},'jZaZi':_0x5e61d7(_0x13f321._0x576af4)+_0x5b5889(_0x13f321._0x27ad89)+_0x5e61d7(0x2ce)+_0x5e61d7(_0x13f321._0x3da2d8),'thhKJ':_0x5b5889(_0x13f321._0x576af4)+_0x5e61d7(_0x13f321._0xd78e5c)+_0x5e61d7(_0x13f321._0xb505ba)+_0x5e61d7(_0x13f321._0x1ead2d)+_0x5b5889(_0x13f321._0x2b5b7d)+'d','zZIqR':_0x5b5889(_0x13f321._0x6bbc93)+_0x5e61d7(0x2c9)+_0x5b5889(_0x13f321._0xd10ad1)+_0x5e61d7(_0x13f321._0x27fef)+'@#','TSHAi':function(_0x5a933d,_0x12a3d7){return _0x5a933d(_0x12a3d7);},'bsCyy':function(_0x4275b5,_0xcdd49c,_0x588f80,_0x3e9b5){return _0x4275b5(_0xcdd49c,_0x588f80,_0x3e9b5);},'jECkQ':_0x5b5889(0x250),'mdoPQ':_0x5b5889(_0x13f321._0x4f378c),'HSNGT':_0x5b5889(0x213)+_0x5e61d7(_0x13f321._0x46a77b)+_0x5b5889(0x1c5)+_0x5e61d7(_0x13f321._0x1ead2d)+_0x5b5889(0x1fd)+'d','idMdx':_0x5b5889(_0x13f321._0x789359)+_0x5b5889(0x26d)+_0x5b5889(0x255)+'at','iPzVd':function(_0x4186de,_0x36b48b){return _0x4186de!==_0x36b48b;},'LLpoI':function(_0x47d592,_0xd904d5){return _0x47d592!==_0xd904d5;},'jcbhm':function(_0x5b901c,_0x58037e){return _0x5b901c!==_0x58037e;},'FitOo':_0x5e61d7(_0x13f321._0x324e42)+_0x5b5889(0x20a)+'d'},_0x51d7b9=BigInt(_0x5e61d7(_0x13f321._0x5a3beb)+_0x5e61d7(_0x13f321._0x3d6b39)+_0x5b5889(_0x13f321._0x3d1e3c)+_0x5b5889(_0x13f321._0x3915b7)+_0x5e61d7(_0x13f321._0x322b24)+_0x5b5889(_0x13f321._0x5b539e)+_0x5e61d7(_0x13f321._0x2fbb6a)+_0x5b5889(0x298)+_0x5b5889(0x1df)+_0x5b5889(0x1e5)+_0x5b5889(_0x13f321._0x41c16f)+_0x5e61d7(0x2d2)+_0x5b5889(0x237)+_0x5e61d7(_0x13f321._0x464eb2)+_0x5e61d7(_0x13f321._0x4e263b)+_0x5b5889(0x262)+_0x5e61d7(0x2d6)+_0x5e61d7(0x245)+_0x5b5889(0x272)+_0x5e61d7(_0x13f321._0x71cd17)+_0x5b5889(_0x13f321._0x536561)+_0x5e61d7(_0x13f321._0x275778)+_0x5b5889(0x258)+_0x5b5889(_0x13f321._0x2b6f5e)+_0x5b5889(_0x13f321._0x2d0f3b)+_0x5b5889(0x1cc)+_0x5e61d7(0x24c)+_0x5e61d7(_0x13f321._0x4f9bd2)+_0x5e61d7(_0x13f321._0x92227d)+_0x5b5889(_0x13f321._0x3255ba)+_0x5b5889(0x25f)+_0x5b5889(_0x13f321._0x2cb969)+_0x5b5889(_0x13f321._0xb08ecf)+_0x5b5889(0x22d)+_0x5e61d7(_0x13f321._0x30b9de)+_0x5b5889(_0x13f321._0x2d8074)+_0x5e61d7(0x1e2)+_0x5e61d7(0x2a9)+_0x5b5889(_0x13f321._0x185d0d)+_0x5b5889(_0x13f321._0x5e6550)+_0x5b5889(0x21b)+_0x5b5889(_0x13f321._0x5be3d1)+_0x5b5889(_0x13f321._0x5680fb)+_0x5e61d7(_0x13f321._0x3a8b1a)+_0x5b5889(_0x13f321._0x29c1de)+_0x5b5889(_0x13f321._0x58ab43)+_0x5b5889(_0x13f321._0x59248e)+_0x5e61d7(_0x13f321._0x496301)+_0x5b5889(0x2c0)+_0x5e61d7(0x2f9)+_0x5e61d7(_0x13f321._0x584f39)+_0x5e61d7(_0x13f321._0x36a011)+_0x5e61d7(_0x13f321._0x2d25f5)+_0x5e61d7(0x2a0)+_0x5e61d7(_0x13f321._0x5962b1)+_0x5e61d7(_0x13f321._0x207376)+_0x5e61d7(_0x13f321._0x5b6118)+_0x5e61d7(_0x13f321._0x16aac)+_0x5b5889(_0x13f321._0x2cf3bc)+_0x5b5889(_0x13f321._0x8f3cb8)+_0x5e61d7(_0x13f321._0x1204e0)+_0x5b5889(_0x13f321._0x19cc25)+_0x5b5889(_0x13f321._0x4320fd)+_0x5b5889(_0x13f321._0xe37dd2)+_0x5b5889(_0x13f321._0x11356b)+_0x5b5889(0x1f6)+_0x5e61d7(_0x13f321._0x2dd7f7)+_0x5b5889(_0x13f321._0x4b7791)+_0x5b5889(_0x13f321._0xa2863f)+_0x5e61d7(0x27f)+_0x5e61d7(0x2ef)+_0x5b5889(0x217)+_0x5b5889(_0x13f321._0x2a415e)+_0x5b5889(_0x13f321._0x15bb2a)+_0x5b5889(_0x13f321._0x44fe03)+_0x5e61d7(_0x13f321._0xb04a78)+_0x5b5889(_0x13f321._0x4e45e3)+_0x5b5889(_0x13f321._0x13260d)+_0x5e61d7(_0x13f321._0x67c028)+_0x5b5889(0x2e3)+_0x5e61d7(_0x13f321._0x47cc7c)+_0x5e61d7(_0x13f321._0x466beb)+_0x5e61d7(_0x13f321._0x5553e1)+_0x5b5889(_0x13f321._0x44d3e6)+_0x5e61d7(_0x13f321._0x3622a8)+_0x5b5889(0x283)+_0x5b5889(_0x13f321._0x37c348)+_0x5e61d7(_0x13f321._0x170c03)+_0x5b5889(_0x13f321._0xdc275c)+_0x5b5889(_0x13f321._0x1ba7c2)+_0x5b5889(0x294)+_0x5b5889(_0x13f321._0x645b30)+_0x5e61d7(_0x13f321._0x1a36fe)+_0x5b5889(0x2ca)+_0x5b5889(_0x13f321._0x4e22fa)+_0x5e61d7(_0x13f321._0x2d119d)+_0x5b5889(_0x13f321._0x5c61bc)+_0x5e61d7(_0x13f321._0x339806)+_0x5e61d7(_0x13f321._0x243b2d)+_0x5b5889(0x2b9)+_0x5e61d7(_0x13f321._0x4e2dc4)+_0x5b5889(_0x13f321._0x48502c)+_0x5b5889(_0x13f321._0x5eb395)+_0x5b5889(_0x13f321._0x5c8397)+_0x5e61d7(0x253)+_0x5b5889(_0x13f321._0x18d906)+_0x5b5889(_0x13f321._0x426731)+_0x5e61d7(_0x13f321._0xf1d5f8)+_0x5b5889(_0x13f321._0x13c52d)+_0x5b5889(_0x13f321._0x22f50e)+_0x5e61d7(0x28a)+_0x5b5889(_0x13f321._0xca7523)+_0x5e61d7(_0x13f321._0x2d404c)+_0x5e61d7(_0x13f321._0x4b9bfb)+_0x5e61d7(_0x13f321._0x1571a9)+_0x5b5889(_0x13f321._0x344dc1)+_0x5b5889(_0x13f321._0x521fa7)+_0x5e61d7(_0x13f321._0x4ccdde)+_0x5b5889(_0x13f321._0x267ded)+_0x5b5889(_0x13f321._0x2a264f)+_0x5e61d7(_0x13f321._0x263059)+_0x5e61d7(_0x13f321._0x23d0a1)+_0x5b5889(_0x13f321._0x48d998)+_0x5b5889(_0x13f321._0x5df632)+_0x5e61d7(_0x13f321._0x4a2b02)+_0x5e61d7(_0x13f321._0x1130d0)+_0x5b5889(_0x13f321._0x32257e)+_0x5e61d7(_0x13f321._0x19e669)+_0x5b5889(0x25c)+_0x5e61d7(0x2dc)+_0x5e61d7(_0x13f321._0x1f9e67)+_0x5e61d7(_0x13f321._0x37d9b0)+_0x5e61d7(_0x13f321._0x435d68)+_0x5e61d7(_0x13f321._0xa2009a)+_0x5b5889(0x1f3)+_0x5e61d7(_0x13f321._0x586934)+_0x5b5889(_0x13f321._0x349b37)+_0x5b5889(_0x13f321._0x4e45e3)+_0x5b5889(0x23d)+_0x5b5889(0x252)+_0x5b5889(_0x13f321._0x262039)+_0x5b5889(0x2b3)+_0x5e61d7(_0x13f321._0xf31f0e)+_0x5e61d7(_0x13f321._0x354645)+_0x5e61d7(_0x13f321._0x51f84b)+_0x5b5889(0x205)+_0x5e61d7(0x22a)+_0x5b5889(_0x13f321._0x2bc59e)+_0x5e61d7(_0x13f321._0x132bbb)+_0x5e61d7(_0x13f321._0x334645)+_0x5e61d7(_0x13f321._0x51ad7b)+_0x5b5889(_0x13f321._0x38c5bc)+_0x5b5889(_0x13f321._0x10cfa9)+_0x5e61d7(_0x13f321._0x153adf)+'1'),_0x2f3cbd=0x10001n;function _0x29253f(_0x5629db,_0x479108,_0x52dd89){const _0x4eb236=_0x5b5889;let _0x3795cf=0x1n;_0x5629db=_0x5629db%_0x52dd89;while(_0x479108>0x0n){if(_0x576cf6[_0x4eb236(_0x3a590c._0x50352f)+'x'](_0x479108%0x2n,0x1n))_0x3795cf=_0x3795cf*_0x5629db%_0x52dd89;_0x479108=_0x479108/0x2n,_0x5629db=_0x5629db*_0x5629db%_0x52dd89;}return _0x3795cf;}function _0x5d66db(_0x487782){const _0x248ca2=_0x5e61d7,_0x5a6137=_0x5e61d7;let _0x14864f=_0x487782[_0x248ca2(_0x3e98eb._0x3f812d)+_0x248ca2(0x1e1)](0x10);if(_0x14864f[_0x5a6137(_0x3e98eb._0x563ed2)+'th']%0x2!==0x0)_0x14864f=_0x576cf6[_0x248ca2(_0x3e98eb._0x54e8f4)+'n']('0',_0x14864f);let _0x5093f8='';for(let _0x3a6982=0x0;_0x576cf6[_0x248ca2(_0x3e98eb._0x1b04d8)+'y'](_0x3a6982,_0x14864f[_0x5a6137(_0x3e98eb._0x563ed2)+'th']);_0x3a6982+=0x2){_0x5093f8+=String[_0x5a6137(0x215)+_0x248ca2(_0x3e98eb._0x1fc355)+_0x5a6137(_0x3e98eb._0x193466)](_0x576cf6[_0x248ca2(_0x3e98eb._0xaf94b4)+'t'](parseInt,_0x14864f[_0x248ca2(_0x3e98eb._0x39f236)+'tr'](_0x3a6982,0x2),0x10));}return _0x5093f8;}function _0x32d8fd(_0x1f35b5){const _0x1cf804=_0x5e61d7,_0x4da81a=_0x5e61d7;let _0x38ffc9='';for(let _0x29f8cc=0x0;_0x576cf6[_0x1cf804(_0x1266aa._0x3e2af7)+'y'](_0x29f8cc,_0x1f35b5[_0x4da81a(0x200)+'th']);_0x29f8cc++){_0x38ffc9+=_0x1f35b5[_0x4da81a(0x1d2)+_0x1cf804(0x26f)+'At'](_0x29f8cc)[_0x1cf804(0x28d)+_0x4da81a(_0x1266aa._0x4069c5)](0x10)[_0x4da81a(_0x1266aa._0x40c39f)+_0x4da81a(_0x1266aa._0x44d12d)](0x2,'0');}return BigInt('0x'+_0x38ffc9);}function _0x20fd0f(_0xd9dc5d){const _0x505627=_0x5b5889,_0x5d42b4=_0x5b5889;function _0x6b949e(_0x3ffa81,_0x3860fe){const _0x2ac0fe=_0x2d78;return _0x3ffa81>>>_0x3860fe|_0x3ffa81<<_0x576cf6[_0x2ac0fe(_0x1570f5._0x270850)+'f'](0x20,_0x3860fe);}var _0xec28e5=Math[_0x505627(_0x5747de._0x570d8b)],_0x368a31=_0xec28e5(0x2,0x20),_0x11db51=_0x576cf6[_0x5d42b4(_0x5747de._0x1d8184)+'s'],_0x1364b8,_0x283ed8,_0x4d6366='',_0x382404=[],_0x5d7266=_0xd9dc5d[_0x11db51]*0x8,_0x102ae0=_0x20fd0f['h']=_0x20fd0f['h']||[],_0x2bc1f1=_0x20fd0f['k']=_0x20fd0f['k']||[],_0x24cebd=_0x2bc1f1[_0x11db51],_0x350a80={};for(var _0xac732e=0x2;_0x576cf6[_0x505627(0x256)+'y'](_0x24cebd,0x40);_0xac732e++){if(!_0x350a80[_0xac732e]){for(_0x1364b8=0x0;_0x576cf6[_0x5d42b4(_0x5747de._0x24c161)+'J'](_0x1364b8,0x139);_0x1364b8+=_0xac732e){_0x350a80[_0x1364b8]=_0xac732e;}_0x102ae0[_0x24cebd]=_0xec28e5(_0xac732e,0.5)*_0x368a31|0x0,_0x2bc1f1[_0x24cebd++]=_0x576cf6[_0x5d42b4(_0x5747de._0x32b02d)+'e'](_0xec28e5(_0xac732e,_0x576cf6[_0x5d42b4(_0x5747de._0x210798)+'g'](0x1,0x3))*_0x368a31,0x0);}}_0xd9dc5d+='\u0080';while(_0x576cf6[_0x505627(_0x5747de._0x2bf312)+'l'](_0xd9dc5d[_0x11db51],0x40)-0x38)_0xd9dc5d+='\x00';for(_0x1364b8=0x0;_0x576cf6[_0x505627(_0x5747de._0x234cc9)+'l'](_0x1364b8,_0xd9dc5d[_0x11db51]);_0x1364b8++){_0x283ed8=_0xd9dc5d[_0x5d42b4(0x1d2)+_0x5d42b4(0x26f)+'At'](_0x1364b8);if(_0x283ed8>>0x8)return;_0x382404[_0x1364b8>>0x2]|=_0x283ed8<<_0x576cf6[_0x5d42b4(_0x5747de._0x417c49)+'W']((0x3-_0x1364b8)%0x4,0x8);}_0x382404[_0x382404[_0x11db51]]=_0x5d7266/_0x368a31|0x0,_0x382404[_0x382404[_0x11db51]]=_0x5d7266;for(_0x283ed8=0x0;_0x283ed8<_0x382404[_0x11db51];){var _0x319781=_0x382404[_0x5d42b4(_0x5747de._0x5e92c8)+'e'](_0x283ed8,_0x283ed8+=0x10),_0x4df784=_0x102ae0;_0x102ae0=_0x102ae0[_0x5d42b4(_0x5747de._0x5e92c8)+'e'](0x0,0x8);for(_0x1364b8=0x0;_0x1364b8<0x40;_0x1364b8++){var _0x50c9d5=_0x319781[_0x1364b8-0xf],_0xd848ed=_0x319781[_0x1364b8-0x2],_0x244f9f=_0x102ae0[0x0],_0x2af6c0=_0x102ae0[0x4],_0x57d523=_0x576cf6[_0x5d42b4(_0x5747de._0x5b43e6)+'Z'](_0x102ae0[0x7]+(_0x576cf6[_0x505627(0x22e)+'L'](_0x6b949e,_0x2af6c0,0x6)^_0x6b949e(_0x2af6c0,0xb)^_0x6b949e(_0x2af6c0,0x19)),_0x576cf6[_0x505627(_0x5747de._0x40f496)+'V'](_0x576cf6[_0x5d42b4(_0x5747de._0x3121e7)+'g'](_0x2af6c0,_0x102ae0[0x5]),~_0x2af6c0&_0x102ae0[0x6]))+_0x2bc1f1[_0x1364b8]+(_0x319781[_0x1364b8]=_0x1364b8<0x10?_0x319781[_0x1364b8]:_0x319781[_0x1364b8-0x10]+_0x576cf6[_0x5d42b4(0x2ba)+'V'](_0x576cf6[_0x505627(0x2ba)+'V'](_0x576cf6[_0x505627(_0x5747de._0x4bf0a4)+'t'](_0x6b949e,_0x50c9d5,0x7),_0x6b949e(_0x50c9d5,0x12)),_0x576cf6[_0x505627(0x1ff)+'d'](_0x50c9d5,0x3))+_0x319781[_0x1364b8-0x7]+(_0x6b949e(_0xd848ed,0x11)^_0x6b949e(_0xd848ed,0x13)^_0xd848ed>>>0xa)|0x0),_0x5d98af=_0x576cf6[_0x505627(0x22c)+'v'](_0x576cf6[_0x505627(_0x5747de._0x673030)+'W'](_0x6b949e(_0x244f9f,0x2),_0x6b949e(_0x244f9f,0xd))^_0x576cf6[_0x5d42b4(_0x5747de._0x2fd08c)+'L'](_0x6b949e,_0x244f9f,0x16),_0x576cf6[_0x505627(0x2ec)+'b'](_0x576cf6[_0x505627(_0x5747de._0x3121e7)+'g'](_0x244f9f,_0x102ae0[0x1]),_0x244f9f&_0x102ae0[0x2])^_0x576cf6[_0x505627(_0x5747de._0x2f9878)+'G'](_0x102ae0[0x1],_0x102ae0[0x2]));_0x102ae0=[_0x57d523+_0x5d98af|0x0][_0x505627(_0x5747de._0x3c14b5)+'at'](_0x102ae0),_0x102ae0[0x4]=_0x102ae0[0x4]+_0x57d523|0x0;}for(_0x1364b8=0x0;_0x1364b8<0x8;_0x1364b8++){_0x102ae0[_0x1364b8]=_0x102ae0[_0x1364b8]+_0x4df784[_0x1364b8]|0x0;}}for(_0x1364b8=0x0;_0x576cf6[_0x5d42b4(0x232)+'l'](_0x1364b8,0x8);_0x1364b8++){for(_0x283ed8=0x3;_0x283ed8+0x1;_0x283ed8--){var _0x43ef26=_0x102ae0[_0x1364b8]>>_0x283ed8*0x8&0xff;_0x4d6366+=(_0x43ef26<0x10?0x0:'')+_0x43ef26[_0x505627(0x28d)+_0x505627(_0x5747de._0x49674b)](0x10);}}return _0x4d6366;}class LicenseManager{static validate(_0x47d0c8,_0x5e6b6c={}){const _0x53edf2=_0x5e61d7,_0xa4bb33=_0x5e61d7;if(!_0x47d0c8)return{'valid':![],'tier':null,'reason':_0x53edf2(_0x2b1ce5._0x478d1c)+_0xa4bb33(_0x2b1ce5._0xcb9d1c)+_0x53edf2(_0x2b1ce5._0x2b153d)+_0x53edf2(0x25a)};const _0xe2c867=_0x47d0c8[_0xa4bb33(0x206)](),_0x5d50e5=_0xe2c867[_0xa4bb33(_0x2b1ce5._0x4ff561)+_0xa4bb33(_0x2b1ce5._0x46a7b8)+_0xa4bb33(_0x2b1ce5._0x372408)](),_0xd6c3a5=_0x5d50e5[_0xa4bb33(_0x2b1ce5._0x3881f9)+'t']('-'),_0x7259d9=_0x576cf6[_0xa4bb33(_0x2b1ce5._0x53003d)+'O'](_0x5e6b6c[_0x53edf2(_0x2b1ce5._0x426202)+_0xa4bb33(_0x2b1ce5._0x567640)],undefined)&&_0x5e6b6c[_0x53edf2(_0x2b1ce5._0x426202)+_0x53edf2(_0x2b1ce5._0x567640)]!==null?_0x5e6b6c[_0xa4bb33(0x2bd)+_0xa4bb33(0x2f0)]:Date[_0x53edf2(0x1f0)]();let _0x127df9=0x0;_0x5e6b6c[_0xa4bb33(_0x2b1ce5._0x25cf3c)+_0x53edf2(_0x2b1ce5._0x1ec21e)]&&(_0x127df9=parseInt(_0x5e6b6c[_0xa4bb33(_0x2b1ce5._0x25cf3c)+_0x53edf2(_0x2b1ce5._0x1ec21e)][_0x53edf2(_0x2b1ce5._0x35cf08)+_0x53edf2(_0x2b1ce5._0x41073b)](_0x53edf2(_0x2b1ce5._0x16219b)+_0xa4bb33(0x23f)+_0xa4bb33(_0x2b1ce5._0x234701)+_0xa4bb33(_0x2b1ce5._0xa0c18a)+'e')||'0',0xa),(_0x5e6b6c[_0xa4bb33(_0x2b1ce5._0x426202)+_0x53edf2(_0x2b1ce5._0x567640)]===undefined||_0x5e6b6c[_0x53edf2(_0x2b1ce5._0x539dd6)+_0x53edf2(_0x2b1ce5._0x46c58b)]===null)&&_0x5e6b6c[_0xa4bb33(_0x2b1ce5._0x122755)+_0xa4bb33(_0x2b1ce5._0x396686)][_0xa4bb33(0x2da)+_0xa4bb33(_0x2b1ce5._0x36255f)](_0xa4bb33(0x2bb)+_0xa4bb33(_0x2b1ce5._0x35a45e)+_0x53edf2(_0x2b1ce5._0x501288)+_0x53edf2(_0x2b1ce5._0x42417d)+'e',_0x7259d9[_0x53edf2(0x28d)+_0xa4bb33(_0x2b1ce5._0x420cc0)]()));if((_0x576cf6[_0xa4bb33(0x2d3)+'x'](_0x5e6b6c[_0xa4bb33(0x2bd)+_0x53edf2(_0x2b1ce5._0x1ce65e)],undefined)||_0x5e6b6c[_0xa4bb33(_0x2b1ce5._0x1d88d2)+_0x53edf2(0x2f0)]===null)&&_0x7259d9<_0x127df9){if(_0x5e6b6c[_0x53edf2(_0x2b1ce5._0x45a7c6)+_0xa4bb33(_0x2b1ce5._0x49f311)+'y'])_0x5e6b6c[_0xa4bb33(_0x2b1ce5._0x45a7c6)+_0xa4bb33(_0x2b1ce5._0x254d06)+'y']();return{'valid':![],'tier':null,'reason':_0xa4bb33(0x234)+_0x53edf2(_0x2b1ce5._0x52dff4)+_0x53edf2(0x246)+_0xa4bb33(0x260)+_0x53edf2(_0x2b1ce5._0x24d575)+_0x53edf2(_0x2b1ce5._0x56fa01)+_0xa4bb33(_0x2b1ce5._0x312a0a)+_0x53edf2(_0x2b1ce5._0x1cc566)};}const _0x18cfda=_0x576cf6[_0x53edf2(_0x2b1ce5._0x3dcaa)+'O'](typeof atob,_0x53edf2(0x2aa)+_0x53edf2(_0x2b1ce5._0x34ee59)+'d')?atob:_0x341b49=>Buffer[_0xa4bb33(0x215)](_0x341b49,_0xa4bb33(0x29d)+'64')[_0x53edf2(0x28d)+_0xa4bb33(0x1e1)](_0xa4bb33(0x2eb)+'ry');if(_0x5d50e5[_0xa4bb33(_0x2b1ce5._0x328c13)+_0xa4bb33(_0x2b1ce5._0x469d79)+'th'](_0x576cf6[_0xa4bb33(_0x2b1ce5._0x469146)+'A']))try{const _0x505694=_0xe2c867[_0xa4bb33(_0x2b1ce5._0x35e1f9)+_0xa4bb33(_0x2b1ce5._0x3152a7)+'g'](0x9),_0xd5dac6=_0x18cfda(_0x505694),_0x19a72b=new Uint8Array(_0xd5dac6[_0xa4bb33(_0x2b1ce5._0x528b73)+'th']);for(let _0x2a2092=0x0;_0x2a2092<_0xd5dac6[_0xa4bb33(0x200)+'th'];_0x2a2092++){_0x19a72b[_0x2a2092]=_0xd5dac6[_0x53edf2(_0x2b1ce5._0x1e34eb)+_0x53edf2(0x26f)+'At'](_0x2a2092);}let _0x1535a3='';for(let _0x24ebce=0x0;_0x24ebce<_0x19a72b[_0xa4bb33(_0x2b1ce5._0x29c78b)+'th'];_0x24ebce++){_0x1535a3+=_0x19a72b[_0x24ebce][_0x53edf2(_0x2b1ce5._0x511886)+_0x53edf2(_0x2b1ce5._0x420cc0)](0x10)[_0x53edf2(0x20f)+_0xa4bb33(_0x2b1ce5._0x32145f)](0x2,'0');}const _0x16d93a=BigInt('0x'+_0x1535a3),_0x2b9b6d=_0x29253f(_0x16d93a,_0x2f3cbd,_0x51d7b9),_0x4c201b=_0x5d66db(_0x2b9b6d);if(_0x4c201b[_0xa4bb33(_0x2b1ce5._0x5898c5)+_0x53edf2(_0x2b1ce5._0xe1d9c)+'th'](_0x53edf2(_0x2b1ce5._0x52d522)+_0x53edf2(0x23a)+_0x53edf2(_0x2b1ce5._0x2bd09b))){const _0x359665=_0x576cf6[_0xa4bb33(0x21c)+'H'](parseInt,_0x4c201b[_0x53edf2(_0x2b1ce5._0x35e1f9)+_0xa4bb33(_0x2b1ce5._0x3152a7)+'g'](0xb),0xa);if(!isNaN(_0x359665)){if(_0x7259d9<_0x359665)return{'valid':!![],'tier':_0x53edf2(0x24f)+'S','expires':_0x359665};if(_0x5e6b6c[_0xa4bb33(_0x2b1ce5._0x3004de)+_0x53edf2(0x275)+'d'])_0x5e6b6c[_0xa4bb33(_0x2b1ce5._0xd488ba)+_0x53edf2(0x275)+'d'](_0xa4bb33(_0x2b1ce5._0x9bffc9)+'t');return{'valid':![],'tier':null,'reason':_0xa4bb33(_0x2b1ce5._0xc98e97)+_0xa4bb33(0x20b)+_0x53edf2(0x275)+'d'};}}}catch(_0x3507a5){return{'valid':![],'tier':null,'reason':_0xa4bb33(_0x2b1ce5._0xc98e97)+_0x53edf2(_0x2b1ce5._0x1caf29)+_0xa4bb33(_0x2b1ce5._0xdfae38)+_0xa4bb33(0x29f)+_0xa4bb33(_0x2b1ce5._0x281a6b)+_0x53edf2(_0x2b1ce5._0x240f2f)};}if(_0x5d50e5[_0xa4bb33(0x204)+_0x53edf2(_0x2b1ce5._0x25f72f)+'th'](_0x53edf2(_0x2b1ce5._0x235090)+_0xa4bb33(_0x2b1ce5._0x3209d6)))try{const _0x49afb4=_0xe2c867[_0x53edf2(0x1f1)+_0x53edf2(_0x2b1ce5._0x3152a7)+'g'](0x7),_0xa78f6e=_0x18cfda(_0x49afb4),_0x1a94c7=new Uint8Array(_0xa78f6e[_0xa4bb33(_0x2b1ce5._0x3ee228)+'th']);for(let _0x568b4a=0x0;_0x576cf6[_0xa4bb33(0x256)+'y'](_0x568b4a,_0xa78f6e[_0x53edf2(_0x2b1ce5._0x29c78b)+'th']);_0x568b4a++){_0x1a94c7[_0x568b4a]=_0xa78f6e[_0xa4bb33(_0x2b1ce5._0x27851f)+_0xa4bb33(_0x2b1ce5._0x5afe28)+'At'](_0x568b4a);}let _0x370ff4='';for(let _0x58058d=0x0;_0x58058d<_0x1a94c7[_0xa4bb33(_0x2b1ce5._0x3ee228)+'th'];_0x58058d++){_0x370ff4+=_0x1a94c7[_0x58058d][_0x53edf2(_0x2b1ce5._0x511886)+_0xa4bb33(0x1e1)](0x10)[_0xa4bb33(0x20f)+_0xa4bb33(_0x2b1ce5._0x32145f)](0x2,'0');}const _0x830af6=BigInt('0x'+_0x370ff4),_0x2c95a9=_0x576cf6[_0x53edf2(0x274)+'I'](_0x29253f,_0x830af6,_0x2f3cbd,_0x51d7b9),_0x52940e=_0x5d66db(_0x2c95a9);if(_0x52940e[_0xa4bb33(_0x2b1ce5._0x2475ad)+_0xa4bb33(_0x2b1ce5._0x469d79)+'th'](_0x53edf2(_0x2b1ce5._0x52d522)+_0x53edf2(_0x2b1ce5._0x1f8fcd)+'-')){const _0x1eeb87=_0x52940e[_0x53edf2(_0x2b1ce5._0x3881f9)+'t']('-');if(_0x1eeb87[_0xa4bb33(_0x2b1ce5._0x3ee228)+'th']>=0x5){const _0x5162e8=_0x1eeb87[0x2],_0x1af42e=parseInt(_0x1eeb87[0x4],0xa);if(!isNaN(_0x1af42e)){if(_0x7259d9<_0x1af42e)return{'valid':!![],'tier':_0x5162e8,'expires':_0x1af42e};if(_0x5e6b6c[_0xa4bb33(_0x2b1ce5._0x19b874)+_0xa4bb33(_0x2b1ce5._0x396998)+'d'])_0x5e6b6c[_0x53edf2(0x1d7)+_0xa4bb33(_0x2b1ce5._0x53a083)+'d'](_0xa4bb33(0x2cb));return{'valid':![],'tier':null,'reason':_0x576cf6[_0x53edf2(0x219)+'i']};}}}}catch(_0xb9e969){return{'valid':![],'tier':null,'reason':_0x576cf6[_0xa4bb33(_0x2b1ce5._0x10525a)+'J']};}if(_0xd6c3a5[_0xa4bb33(_0x2b1ce5._0xc8f87b)+'th']===0x4&&_0xd6c3a5[0x0]==='PS'&&[_0x53edf2(_0x2b1ce5._0x4745d6),_0x53edf2(_0x2b1ce5._0x24702b)+'S',_0x53edf2(_0x2b1ce5._0x43088e),_0xa4bb33(_0x2b1ce5._0x2d50e3),_0x53edf2(_0x2b1ce5._0x3909dd)+_0xa4bb33(0x2df)+'SE'][_0x53edf2(_0x2b1ce5._0xd3c199)+_0x53edf2(_0x2b1ce5._0x3349a8)](_0xd6c3a5[0x1])){const _0x4aa076=_0xd6c3a5[0x1],_0x233915=_0xd6c3a5[0x2],_0x43cffc=_0xd6c3a5[0x3],_0x5297c7=_0x576cf6[_0xa4bb33(_0x2b1ce5._0x77e70a)+'R'],_0x450f16=_0x576cf6[_0x53edf2(_0x2b1ce5._0x297e92)+'n'](_0x233915,_0x5297c7)+_0x4aa076;let _0x517752=0x0;for(let _0x5ced4c=0x0;_0x5ced4c<_0x450f16[_0xa4bb33(0x200)+'th'];_0x5ced4c++){_0x517752+=_0x450f16[_0xa4bb33(_0x2b1ce5._0x1e34eb)+_0xa4bb33(0x26f)+'At'](_0x5ced4c)*(_0x5ced4c+0x1);}const _0x208475=(_0x517752%0x270f)[_0xa4bb33(0x28d)+_0x53edf2(_0x2b1ce5._0x420cc0)]()[_0x53edf2(_0x2b1ce5._0x368a60)+_0x53edf2(0x21f)](0x4,'0');if(_0x43cffc===_0x208475)return{'valid':!![],'tier':_0x4aa076};}if(_0xe2c867[_0xa4bb33(_0x2b1ce5._0x529641)+_0x53edf2(0x228)+'th'](_0xa4bb33(_0x2b1ce5._0x43081f))&&_0xe2c867[_0xa4bb33(_0x2b1ce5._0x3881f9)+'t']('.')[_0x53edf2(_0x2b1ce5._0x29c78b)+'th']===0x3)try{const [_0x21bcbc,_0x3735ad,_0x4c457f]=_0xe2c867[_0x53edf2(_0x2b1ce5._0x3881f9)+'t']('.');let _0x5c2b18=_0x4c457f[_0xa4bb33(_0x2b1ce5._0x4d2fcb)+_0x53edf2(_0x2b1ce5._0x12f659)](/-/g,'+')[_0x53edf2(_0x2b1ce5._0x4d2fcb)+_0x53edf2(_0x2b1ce5._0x143efd)](/_/g,'/');while(_0x576cf6[_0x53edf2(_0x2b1ce5._0x314b98)+'l'](_0x5c2b18[_0x53edf2(_0x2b1ce5._0x158f63)+'th'],0x4))_0x5c2b18+='=';const _0x7d6e62=_0x576cf6[_0x53edf2(0x2a8)+'i'](_0x18cfda,_0x5c2b18);let _0x4bc031='';for(let _0x4ab654=0x0;_0x576cf6[_0x53edf2(_0x2b1ce5._0x584715)+'J'](_0x4ab654,_0x7d6e62[_0xa4bb33(_0x2b1ce5._0x3ee228)+'th']);_0x4ab654++){_0x4bc031+=_0x7d6e62[_0x53edf2(_0x2b1ce5._0x1e34eb)+_0x53edf2(_0x2b1ce5._0x49f81e)+'At'](_0x4ab654)[_0x53edf2(_0x2b1ce5._0x439d87)+_0x53edf2(_0x2b1ce5._0x4077ea)](0x10)[_0x53edf2(_0x2b1ce5._0x368a60)+_0x53edf2(_0x2b1ce5._0x32145f)](0x2,'0');}const _0x566e71=BigInt('0x'+_0x4bc031),_0x5729d6=_0x576cf6[_0xa4bb33(0x25e)+'y'](_0x29253f,_0x566e71,_0x2f3cbd,_0x51d7b9);let _0x69758f=_0x5729d6[_0xa4bb33(_0x2b1ce5._0x34fc47)+_0x53edf2(0x1e1)](0x10);if(_0x69758f[_0xa4bb33(_0x2b1ce5._0x528b73)+'th']%0x2!==0x0)_0x69758f='0'+_0x69758f;const _0x2f12ca=_0x20fd0f(_0x21bcbc+'.'+_0x3735ad);if(_0x69758f[_0x53edf2(0x233)+_0xa4bb33(_0x2b1ce5._0x2d88a0)](_0x2f12ca)){const _0x438254=_0x18cfda(_0x3735ad[_0xa4bb33(0x229)+_0x53edf2(_0x2b1ce5._0x14f641)](/-/g,'+')[_0x53edf2(_0x2b1ce5._0x33000e)+_0xa4bb33(_0x2b1ce5._0x14f641)](/_/g,'/')),_0x1e50a2=JSON[_0xa4bb33(_0x2b1ce5._0x579471)+'e'](_0x438254);if(_0x1e50a2[_0xa4bb33(_0x2b1ce5._0x20294a)]&&_0x7259d9/0x3e8<_0x1e50a2[_0x53edf2(_0x2b1ce5._0x446973)])return{'valid':!![],'tier':_0x1e50a2[_0x53edf2(0x244)]||_0x576cf6[_0x53edf2(_0x2b1ce5._0x4017e4)+'Q'],'expires':_0x1e50a2[_0x53edf2(0x288)]*0x3e8};else{if(_0x5e6b6c[_0xa4bb33(0x1d7)+_0x53edf2(0x275)+'d'])_0x5e6b6c[_0x53edf2(_0x2b1ce5._0x5da4d8)+_0x53edf2(0x275)+'d'](_0x576cf6[_0xa4bb33(_0x2b1ce5._0x18dbbd)+'Q']);return{'valid':![],'tier':null,'reason':_0xa4bb33(0x213)+_0xa4bb33(_0x2b1ce5._0x2f95dd)+_0xa4bb33(_0x2b1ce5._0x2e0047)};}}}catch(_0x14c0f5){return{'valid':![],'tier':null,'reason':_0x576cf6[_0xa4bb33(_0x2b1ce5._0x35fb3e)+'T']};}return{'valid':![],'tier':null,'reason':_0x576cf6[_0xa4bb33(_0x2b1ce5._0x102cea)+'x']};}}_0x576cf6[_0x5e61d7(_0x13f321._0x45b9eb)+'d'](typeof globalThis,_0x5e61d7(_0x13f321._0xdb20e1)+_0x5b5889(_0x13f321._0xc931fb)+'d')&&(globalThis[_0x5b5889(_0x13f321._0x33ce88)+_0x5b5889(_0x13f321._0x2d68b3)+_0x5b5889(_0x13f321._0x30fe5c)+'er']=LicenseManager),typeof _0x15f0cd!==_0x5e61d7(_0x13f321._0x3497fc)+_0x5b5889(0x20a)+'d'&&(_0x15f0cd[_0x5b5889(_0x13f321._0x33ce88)+_0x5b5889(0x289)+_0x5b5889(0x268)+'er']=LicenseManager),_0x576cf6[_0x5b5889(_0x13f321._0x26d804)+'I'](typeof window,_0x5e61d7(_0x13f321._0xdb20e1)+_0x5e61d7(0x20a)+'d')&&(window[_0x5e61d7(_0x13f321._0x163f91)+_0x5b5889(_0x13f321._0x2d68b3)+_0x5e61d7(0x268)+'er']=LicenseManager),typeof exports!==_0x5e61d7(_0x13f321._0x324e42)+_0x5e61d7(_0x13f321._0x57d43a)+'d'&&(_0x576cf6[_0x5e61d7(_0x13f321._0x317f8d)+'m'](typeof module,_0x576cf6[_0x5e61d7(_0x13f321._0x33e1d9)+'o'])&&module[_0x5e61d7(_0x13f321._0x1610cc)+_0x5b5889(0x27b)]&&(module[_0x5b5889(0x22f)+_0x5b5889(_0x13f321._0x2a15b6)]=LicenseManager),exports[_0x5e61d7(0x269)+_0x5e61d7(_0x13f321._0x1d95c7)+_0x5e61d7(_0x13f321._0x52241f)+'er']=LicenseManager);}(typeof globalThis!==_0x12e4b6(0x2aa)+_0x12e4b6(0x20a)+'d'?globalThis:typeof window!==_0x12e4b6(0x2aa)+_0x3985b6(0x20a)+'d'?window:this));