@scheduler-systems/gal-run 0.0.248 → 0.0.253
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 +75 -9
- package/dist/index.cjs +92668 -215103
- package/dist/postinstall.cjs +907 -2529
- package/dist/preuninstall.cjs +224 -350
- package/package.json +2 -2
package/dist/postinstall.cjs
CHANGED
|
@@ -1,2554 +1,932 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
2
|
+
/**
|
|
3
|
+
* GAL CLI Postinstall Script
|
|
4
|
+
*
|
|
5
|
+
* Automatically installs Claude Code integrations when GAL CLI is installed via pnpm.
|
|
6
|
+
* This script runs as a pnpm lifecycle hook after package installation completes.
|
|
7
|
+
*
|
|
8
|
+
* What it installs:
|
|
9
|
+
* 1. SessionStart hook → ~/.claude/hooks/gal-sync-reminder.js
|
|
10
|
+
* - Shows sync status at the start of each Claude session
|
|
11
|
+
* - Prompts user to login/sync if needed
|
|
12
|
+
* 2. Status line script → ~/.claude/status_lines/gal-sync-status.py
|
|
13
|
+
* - Displays sync warnings in Claude's status bar (when not synced)
|
|
14
|
+
* 3. GAL CLI rules → ~/.claude/rules/gal-cli.md
|
|
15
|
+
* - Provides persistent GAL CLI awareness to Claude Code
|
|
16
|
+
*
|
|
17
|
+
* Scope:
|
|
18
|
+
* - These are CLI-level integrations (user-wide, not project-specific)
|
|
19
|
+
* - Org-specific configs are handled by `gal sync --pull`
|
|
20
|
+
*
|
|
21
|
+
* Key behaviors:
|
|
22
|
+
* - Idempotent: Safe to run multiple times, only updates when versions change
|
|
23
|
+
* - Version-aware: Checks version markers before overwriting files
|
|
24
|
+
* - Self-cleaning: Installed scripts remove themselves if GAL CLI is uninstalled
|
|
25
|
+
* - Non-destructive: Won't overwrite user's custom configs (e.g., custom statusLine)
|
|
26
|
+
* - Telemetry: Queues installation event for next CLI run (GAL-114)
|
|
27
|
+
*
|
|
28
|
+
* When it runs:
|
|
29
|
+
* - Automatically during `pnpm add -g @scheduler-systems/gal-run`
|
|
30
|
+
* - Can be manually triggered via `pnpm run postinstall` in the CLI package directory
|
|
31
|
+
*
|
|
32
|
+
* Prerequisites:
|
|
33
|
+
* - Node.js 18+ (CommonJS module)
|
|
34
|
+
* - Writable ~/.claude directory
|
|
35
|
+
*
|
|
36
|
+
* Related files:
|
|
37
|
+
* - apps/cli/scripts/preuninstall.cjs - Cleanup script (runs before uninstall)
|
|
38
|
+
* - apps/cli/package.json - pnpm lifecycle hooks configuration
|
|
39
|
+
*
|
|
40
|
+
* @see specs/gal-cli/installation.md
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
const fs = require('fs');
|
|
44
|
+
const path = require('path');
|
|
45
|
+
const os = require('os');
|
|
46
|
+
|
|
47
|
+
// =============================================================================
|
|
48
|
+
// Version Configuration
|
|
49
|
+
// =============================================================================
|
|
50
|
+
// Version markers control when files get updated.
|
|
51
|
+
// Bump these when file contents change to trigger reinstallation.
|
|
52
|
+
|
|
53
|
+
// Get current CLI version from package.json
|
|
54
|
+
const cliPackageJson = require('../package.json');
|
|
55
|
+
const cliVersion = cliPackageJson.version;
|
|
56
|
+
|
|
57
|
+
// Version markers for idempotency checks
|
|
58
|
+
// Bump these to force updates to installed files
|
|
59
|
+
const HOOK_VERSION = '4.0.0'; // SessionStart hook (4.0.0: Background cache refresh + sync)
|
|
60
|
+
const STATUS_LINE_VERSION = '1.0.0'; // Status line script
|
|
61
|
+
const RULES_VERSION = '1.0.0'; // GAL CLI rules
|
|
62
|
+
|
|
63
|
+
// =============================================================================
|
|
64
|
+
// GAL CLI Rules Content
|
|
65
|
+
// =============================================================================
|
|
66
|
+
// Injected into ~/.claude/rules/gal-cli.md
|
|
67
|
+
// Provides persistent GAL CLI awareness to Claude without hook overhead.
|
|
68
|
+
// Claude automatically loads rules from ~/.claude/rules/ at session start.
|
|
69
|
+
// =============================================================================
|
|
70
|
+
|
|
71
|
+
const GAL_CLI_RULES_CONTENT = `# GAL CLI
|
|
72
|
+
|
|
73
|
+
<!-- GAL_RULES_VERSION = "${RULES_VERSION}" -->
|
|
74
|
+
|
|
75
|
+
The \`gal\` CLI is available for managing org-approved AI agent configurations.
|
|
76
|
+
|
|
77
|
+
## Available Commands
|
|
78
|
+
- \`gal sync --pull\` - Download latest approved config from your organization
|
|
79
|
+
- \`gal auth login\` - Authenticate with GitHub
|
|
80
|
+
- \`gal --help\` - See all available commands
|
|
81
|
+
|
|
82
|
+
## Behavior Rules
|
|
83
|
+
- **Confirmation Required**: Always ask the user before running any \`gal\` command
|
|
84
|
+
- **Self-Discovery**: If unsure about syntax, run \`gal --help\` or \`gal <command> --help\` first
|
|
85
|
+
- **Sync Notifications**: When you see a GAL sync notification, ask: "Do you want me to sync gal now?"
|
|
86
|
+
`;
|
|
87
|
+
|
|
88
|
+
// =============================================================================
|
|
89
|
+
// SessionStart Hook Content
|
|
90
|
+
// =============================================================================
|
|
91
|
+
// Shows sync status notification at Claude session start.
|
|
92
|
+
// Appears once at the top of the chat window and stays visible.
|
|
93
|
+
// For continuous status updates, see the status line script below.
|
|
94
|
+
// =============================================================================
|
|
95
|
+
|
|
96
|
+
const HOOK_CONTENT = `#!/usr/bin/env node
|
|
97
|
+
/**
|
|
98
|
+
* GAL Config Sync Hook for Claude Code (SessionStart)
|
|
99
|
+
* Version: ${HOOK_VERSION}
|
|
100
|
+
*
|
|
101
|
+
* Shows sync status at session start:
|
|
102
|
+
* - Not authenticated → prompt to login
|
|
103
|
+
* - Token expired → prompt to re-login
|
|
104
|
+
* - Not synced → prompt to sync
|
|
105
|
+
* - Config outdated → prompt to sync
|
|
106
|
+
* - All good → show synced status
|
|
107
|
+
*
|
|
108
|
+
* Self-cleaning: removes itself if GAL CLI is uninstalled.
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
// GAL_HOOK_VERSION = "${HOOK_VERSION}"
|
|
112
|
+
|
|
113
|
+
const fs = require('fs');
|
|
114
|
+
const path = require('path');
|
|
115
|
+
const { execSync, spawn } = require('child_process');
|
|
116
|
+
const os = require('os');
|
|
117
|
+
|
|
118
|
+
const GAL_DIR = '.gal';
|
|
119
|
+
const SYNC_STATE_FILE = 'sync-state.json';
|
|
120
|
+
const GAL_CONFIG_FILE = path.join(os.homedir(), '.gal', 'config.json');
|
|
121
|
+
|
|
122
|
+
function showMessage(message, status) {
|
|
123
|
+
// Queue telemetry event before showing message
|
|
124
|
+
queueTelemetryEvent(status);
|
|
125
|
+
console.log(JSON.stringify({ systemMessage: message }));
|
|
126
|
+
process.exit(0);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// =============================================================================
|
|
130
|
+
// Telemetry: Queue events for CLI to send on next run (GAL-114)
|
|
131
|
+
// =============================================================================
|
|
132
|
+
// Hook runs in Claude context (no network access), so we queue telemetry events
|
|
133
|
+
// in a JSON file that the CLI reads and flushes on next run. This allows us to
|
|
134
|
+
// track hook executions without blocking the user or requiring network calls.
|
|
135
|
+
// =============================================================================
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Queue a telemetry event for the next CLI run.
|
|
139
|
+
*
|
|
140
|
+
* Since hooks run synchronously in Claude's context, we can't send telemetry
|
|
141
|
+
* directly. Instead, we write events to a pending queue file that the CLI
|
|
142
|
+
* reads and flushes on its next execution.
|
|
143
|
+
*
|
|
144
|
+
* @param {string} status - Sync status from the hook (auth_required, synced, etc.)
|
|
145
|
+
*/
|
|
146
|
+
function queueTelemetryEvent(status) {
|
|
147
|
+
const pendingEventsPath = path.join(os.homedir(), '.gal', 'telemetry-pending-events.json');
|
|
148
|
+
const galDir = path.join(os.homedir(), '.gal');
|
|
149
|
+
|
|
150
|
+
let pending = [];
|
|
151
|
+
try {
|
|
152
|
+
if (fs.existsSync(pendingEventsPath)) {
|
|
153
|
+
pending = JSON.parse(fs.readFileSync(pendingEventsPath, 'utf-8'));
|
|
154
|
+
}
|
|
155
|
+
} catch {}
|
|
156
|
+
|
|
157
|
+
// Add session start hook event
|
|
158
|
+
pending.push({
|
|
159
|
+
id: require('crypto').randomUUID(),
|
|
160
|
+
eventType: 'hook_triggered',
|
|
161
|
+
timestamp: new Date().toISOString(),
|
|
162
|
+
payload: {
|
|
163
|
+
notificationType: 'session_start',
|
|
164
|
+
hookVersion: '${HOOK_VERSION}',
|
|
165
|
+
status: status,
|
|
166
|
+
cwd: process.cwd(),
|
|
167
|
+
platform: process.platform,
|
|
168
|
+
nodeVersion: process.version,
|
|
169
|
+
},
|
|
170
|
+
queuedAt: Date.now(),
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
try {
|
|
174
|
+
if (!fs.existsSync(galDir)) {
|
|
175
|
+
fs.mkdirSync(galDir, { recursive: true });
|
|
176
|
+
}
|
|
177
|
+
fs.writeFileSync(pendingEventsPath, JSON.stringify(pending), 'utf-8');
|
|
178
|
+
} catch {
|
|
179
|
+
// Ignore errors - telemetry is optional
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// =============================================================================
|
|
184
|
+
// Self-cleaning: Remove hook if GAL CLI is uninstalled
|
|
185
|
+
// =============================================================================
|
|
186
|
+
|
|
187
|
+
function isGalInstalled() {
|
|
188
|
+
try {
|
|
189
|
+
execSync('which gal', { stdio: 'ignore' });
|
|
190
|
+
return true;
|
|
191
|
+
} catch {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function selfClean() {
|
|
197
|
+
const hookPath = __filename;
|
|
198
|
+
const claudeDir = path.join(os.homedir(), '.claude');
|
|
199
|
+
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
200
|
+
const rulesPath = path.join(claudeDir, 'rules', 'gal-cli.md');
|
|
201
|
+
|
|
202
|
+
// Remove hook file
|
|
203
|
+
try { fs.unlinkSync(hookPath); } catch {}
|
|
204
|
+
|
|
205
|
+
// Remove rules file
|
|
206
|
+
try { fs.unlinkSync(rulesPath); } catch {}
|
|
207
|
+
|
|
208
|
+
// Remove hook entries from settings.json
|
|
209
|
+
try {
|
|
210
|
+
if (fs.existsSync(settingsPath)) {
|
|
211
|
+
const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
|
|
212
|
+
const hookEvents = ['SessionStart', 'UserPromptSubmit'];
|
|
213
|
+
|
|
214
|
+
for (const event of hookEvents) {
|
|
215
|
+
if (settings.hooks?.[event]) {
|
|
216
|
+
settings.hooks[event] = settings.hooks[event].filter(entry => {
|
|
217
|
+
if (!entry.hooks) return true;
|
|
218
|
+
entry.hooks = entry.hooks.filter(h => !h.command?.includes('gal-'));
|
|
219
|
+
return entry.hooks.length > 0;
|
|
220
|
+
});
|
|
221
|
+
if (settings.hooks[event].length === 0) delete settings.hooks[event];
|
|
25
222
|
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
if (Object.keys(settings.hooks || {}).length === 0) delete settings.hooks;
|
|
226
|
+
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
|
|
26
227
|
}
|
|
27
|
-
}
|
|
28
|
-
const fs = require('fs'), path = require(_0x52049f(0x4b6)), os = require('os'), cliPackageJson = require(_0x52049f(0xe4) + _0x52049f(0x61c) + _0x52049f(0x423)), cliVersion = cliPackageJson[_0x52049f(0x2a9) + 'on'], HOOK_VERSION = _0x52049f(0x82), STATUS_LINE_VERSION = _0x52049f(0x11a), RULES_VERSION = _0x52049f(0x11a), GAL_CLI_RULES_CONTENT = _0x52049f(0x724) + _0x52049f(0x62f) + _0x52049f(0x5f6) + _0x52049f(0x162) + _0x52049f(0x677) + _0x52049f(0x1bf) + _0x52049f(0x4bc) + '\x20\x22' + RULES_VERSION + (_0x52049f(0xd7) + _0x52049f(0x2d0) + _0x52049f(0x85a) + _0x52049f(0x532) + _0x52049f(0x408) + _0x52049f(0x194) + _0x52049f(0x7c1) + _0x52049f(0x53f) + _0x52049f(0x4d3) + _0x52049f(0x708) + _0x52049f(0x52c) + _0x52049f(0x2ff) + _0x52049f(0x20d) + _0x52049f(0x2e0) + _0x52049f(0x746) + _0x52049f(0x4da) + _0x52049f(0x3b2) + _0x52049f(0x5f7) + _0x52049f(0x194) + _0x52049f(0x11c) + _0x52049f(0x2f8) + _0x52049f(0x36d) + _0x52049f(0x237) + _0x52049f(0x13c) + _0x52049f(0x3d7) + _0x52049f(0x7a3) + _0x52049f(0x4cd) + _0x52049f(0x747) + _0x52049f(0x6b2) + _0x52049f(0x6a6) + _0x52049f(0x2ff) + _0x52049f(0x689) + _0x52049f(0x556) + _0x52049f(0x12b) + _0x52049f(0x1ea) + _0x52049f(0x231) + _0x52049f(0x6ce) + _0x52049f(0x712) + _0x52049f(0x5c4) + _0x52049f(0x2c2) + _0x52049f(0x477) + _0x52049f(0x109) + _0x52049f(0x18e) + _0x52049f(0x630) + _0x52049f(0x60d) + _0x52049f(0x752) + _0x52049f(0x7a4) + _0x52049f(0x7d5) + _0x52049f(0x292) + _0x52049f(0x439) + _0x52049f(0xad) + _0x52049f(0x5d3) + _0x52049f(0x647) + _0x52049f(0x635) + _0x52049f(0x521) + _0x52049f(0x4a7) + _0x52049f(0x386) + _0x52049f(0x4f2) + _0x52049f(0x825) + _0x52049f(0x34e) + _0x52049f(0x789) + _0x52049f(0x466) + _0x52049f(0x3ce) + _0x52049f(0x59f) + _0x52049f(0x15a) + _0x52049f(0x7cd) + _0x52049f(0x758) + _0x52049f(0x69f) + _0x52049f(0x819) + _0x52049f(0x36c) + _0x52049f(0x415) + _0x52049f(0x3ca) + _0x52049f(0x426) + _0x52049f(0x3e3) + _0x52049f(0x61e) + _0x52049f(0x7f3) + _0x52049f(0x62d) + _0x52049f(0x56c) + _0x52049f(0x1a4) + _0x52049f(0x5fb) + _0x52049f(0x3fe) + _0x52049f(0x68b) + _0x52049f(0x335) + _0x52049f(0x37a) + _0x52049f(0x366) + _0x52049f(0x85a) + _0x52049f(0x13f) + _0x52049f(0x4ab) + _0x52049f(0x373) + _0x52049f(0x3a3) + _0x52049f(0x61e) + _0x52049f(0x420) + _0x52049f(0x215) + _0x52049f(0x5af) + _0x52049f(0x7f3) + _0x52049f(0x6b4) + _0x52049f(0x1c3) + _0x52049f(0x587) + _0x52049f(0x172) + _0x52049f(0x1c5) + _0x52049f(0x4fa) + _0x52049f(0x4fe) + _0x52049f(0x171) + _0x52049f(0x131) + _0x52049f(0x105) + _0x52049f(0x71) + _0x52049f(0x41f) + _0x52049f(0x38d) + _0x52049f(0x851) + _0x52049f(0x1bc) + _0x52049f(0x318) + _0x52049f(0x868) + _0x52049f(0x263) + _0x52049f(0x573) + _0x52049f(0x1ef)), HOOK_CONTENT = _0x52049f(0x1e4) + _0x52049f(0x656) + _0x52049f(0x602) + _0x52049f(0x38c) + _0x52049f(0x68f) + _0x52049f(0x45d) + _0x52049f(0x7d0) + _0x52049f(0x7e0) + _0x52049f(0x3af) + _0x52049f(0x65e) + _0x52049f(0x14c) + _0x52049f(0x78d) + _0x52049f(0x365) + _0x52049f(0x205) + _0x52049f(0x814) + _0x52049f(0x45c) + _0x52049f(0x2ed) + _0x52049f(0x24a) + '\x20' + HOOK_VERSION + (_0x52049f(0x536) + _0x52049f(0x872) + _0x52049f(0x618) + _0x52049f(0x412) + _0x52049f(0x425) + _0x52049f(0x30a) + _0x52049f(0x5ea) + _0x52049f(0x167) + _0x52049f(0x19a) + _0x52049f(0x55a) + _0x52049f(0x815) + _0x52049f(0x294) + _0x52049f(0x272) + _0x52049f(0x7ca) + _0x52049f(0x19d) + _0x52049f(0x321) + _0x52049f(0x3f9) + _0x52049f(0x73c) + _0x52049f(0x523) + _0x52049f(0x302) + _0x52049f(0x3b6) + _0x52049f(0x619) + _0x52049f(0x7ff) + _0x52049f(0x6a4) + _0x52049f(0x3f9) + _0x52049f(0xca) + _0x52049f(0x2c6) + _0x52049f(0x28b) + _0x52049f(0x4b2) + _0x52049f(0x8b) + _0x52049f(0x24d) + _0x52049f(0x64b) + _0x52049f(0x394) + _0x52049f(0x60b) + _0x52049f(0xbc) + _0x52049f(0x3b6) + _0x52049f(0x619) + _0x52049f(0x7ff) + _0x52049f(0x671) + _0x52049f(0x482) + _0x52049f(0x622) + _0x52049f(0x4ff) + _0x52049f(0x785) + _0x52049f(0x131) + _0x52049f(0x3d8) + _0x52049f(0x11e) + _0x52049f(0xf1) + _0x52049f(0x4b4) + _0x52049f(0x7ed) + _0x52049f(0x29d) + _0x52049f(0x516) + _0x52049f(0x687) + _0x52049f(0x7a8) + _0x52049f(0x6dd) + _0x52049f(0x5e4) + _0x52049f(0x4b7) + _0x52049f(0x28c) + _0x52049f(0x1c2) + _0x52049f(0x1fc) + _0x52049f(0x7f5) + _0x52049f(0x162) + _0x52049f(0x1e8) + _0x52049f(0x655) + _0x52049f(0xe5) + '\x22') + HOOK_VERSION + (_0x52049f(0xe8) + _0x52049f(0x222) + _0x52049f(0x77d) + _0x52049f(0xb5) + _0x52049f(0x70b) + _0x52049f(0x419) + _0x52049f(0x492) + _0x52049f(0x778) + _0x52049f(0x17f) + _0x52049f(0x59b) + _0x52049f(0x308) + _0x52049f(0x419) + _0x52049f(0x492) + _0x52049f(0x665) + _0x52049f(0xb3) + _0x52049f(0x4ec) + _0x52049f(0x7d) + _0x52049f(0x17f) + _0x52049f(0x59b) + _0x52049f(0x2c9) + _0x52049f(0x33a) + _0x52049f(0xc0) + _0x52049f(0x2b6) + _0x52049f(0x24e) + _0x52049f(0x77d) + _0x52049f(0xb5) + _0x52049f(0x104) + _0x52049f(0x78) + _0x52049f(0x38f) + _0x52049f(0x162) + _0x52049f(0x10d) + _0x52049f(0x1fe) + _0x52049f(0x4c3) + _0x52049f(0x492) + _0x52049f(0x12a) + _0x52049f(0x57e) + _0x52049f(0x5b4) + _0x52049f(0x239) + _0x52049f(0x837) + _0x52049f(0x1c4) + _0x52049f(0x601) + _0x52049f(0x5d8) + _0x52049f(0x6e2) + _0x52049f(0x3fc) + _0x52049f(0x429) + _0x52049f(0x5d7) + _0x52049f(0x392) + _0x52049f(0x2d1) + _0x52049f(0x4f0) + _0x52049f(0x108) + _0x52049f(0x347) + _0x52049f(0x1af) + _0x52049f(0x6e5) + _0x52049f(0x746) + _0x52049f(0x423) + _0x52049f(0x78) + _0x52049f(0x520) + _0x52049f(0x756) + _0x52049f(0x522) + _0x52049f(0x72a) + _0x52049f(0x3ee) + _0x52049f(0x7cf) + _0x52049f(0x3ba) + _0x52049f(0x287) + _0x52049f(0x1b9) + _0x52049f(0x66d) + _0x52049f(0x45e) + _0x52049f(0x2b3) + _0x52049f(0x579) + _0x52049f(0x56d) + _0x52049f(0x36b) + _0x52049f(0x7f) + _0x52049f(0x586) + _0x52049f(0x228) + _0x52049f(0x49a) + _0x52049f(0x330) + _0x52049f(0x64e) + _0x52049f(0x4f6) + _0x52049f(0x242) + _0x52049f(0x531) + _0x52049f(0x73d) + _0x52049f(0x6cf) + _0x52049f(0x168) + _0x52049f(0x4f7) + _0x52049f(0x2e7) + _0x52049f(0x596) + _0x52049f(0x3d2) + _0x52049f(0x285) + _0x52049f(0x72a) + _0x52049f(0x4c5) + _0x52049f(0x5a5) + _0x52049f(0x509) + _0x52049f(0x3d3) + _0x52049f(0x1fb) + _0x52049f(0x696) + _0x52049f(0x6d8) + _0x52049f(0x1ba) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x23b) + _0x52049f(0x21a) + _0x52049f(0x2b3) + _0x52049f(0x3cc) + _0x52049f(0x668) + _0x52049f(0xab) + _0x52049f(0xde) + _0x52049f(0x2f9) + _0x52049f(0x99) + _0x52049f(0x7d2) + _0x52049f(0x65a) + _0x52049f(0x804) + _0x52049f(0x55e) + _0x52049f(0x66) + _0x52049f(0x7b5) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x560) + _0x52049f(0x598) + _0x52049f(0x46b) + _0x52049f(0x510) + _0x52049f(0x3bd) + _0x52049f(0x3dc) + _0x52049f(0x553) + _0x52049f(0x43f) + _0x52049f(0x7fe) + _0x52049f(0x691) + _0x52049f(0x554) + _0x52049f(0x488) + _0x52049f(0x4e2) + _0x52049f(0x4aa) + _0x52049f(0x481) + _0x52049f(0x610) + _0x52049f(0x4af) + _0x52049f(0x377) + _0x52049f(0x183) + _0x52049f(0x3df) + _0x52049f(0x6a7) + _0x52049f(0xd9) + _0x52049f(0x77) + _0x52049f(0x38a) + _0x52049f(0x4ed) + _0x52049f(0x402) + _0x52049f(0x10b) + _0x52049f(0x609) + _0x52049f(0x697) + _0x52049f(0x337) + _0x52049f(0x2fa) + _0x52049f(0x6a0) + _0x52049f(0x650) + _0x52049f(0xe9) + _0x52049f(0x664) + _0x52049f(0x188) + _0x52049f(0x7fc) + _0x52049f(0x6df) + _0x52049f(0x480) + _0x52049f(0x1c0) + _0x52049f(0x843) + _0x52049f(0x446) + _0x52049f(0x644) + _0x52049f(0x470) + _0x52049f(0xb5) + _0x52049f(0x4e3) + _0x52049f(0x7fe) + _0x52049f(0x36f) + _0x52049f(0x859) + _0x52049f(0x60a) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + (_0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x865) + _0x52049f(0x842) + _0x52049f(0x1c9) + _0x52049f(0x31b) + _0x52049f(0x45e) + _0x52049f(0x2b3) + _0x52049f(0x579) + _0x52049f(0x5f5) + _0x52049f(0x3f1) + _0x52049f(0x7fa) + _0x52049f(0x80) + _0x52049f(0x80a) + _0x52049f(0x866) + _0x52049f(0x126) + _0x52049f(0x4ad) + _0x52049f(0x362) + _0x52049f(0x131) + _0x52049f(0x649) + _0x52049f(0x3f3) + _0x52049f(0x616) + _0x52049f(0x3c5) + _0x52049f(0x256) + _0x52049f(0x4df) + _0x52049f(0x6ff) + _0x52049f(0x14b) + _0x52049f(0x32e) + _0x52049f(0x43e) + _0x52049f(0x34d) + _0x52049f(0x259) + _0x52049f(0x3da) + _0x52049f(0x78e) + _0x52049f(0x5ee) + _0x52049f(0x161) + _0x52049f(0x18b) + _0x52049f(0x579) + _0x52049f(0x49d) + _0x52049f(0x193) + _0x52049f(0x1d4) + _0x52049f(0x6fb) + _0x52049f(0x2ea) + _0x52049f(0x803) + _0x52049f(0x54b) + _0x52049f(0x62f) + _0x52049f(0x206) + _0x52049f(0x555) + _0x52049f(0x1a7) + _0x52049f(0x1b1) + _0x52049f(0x640) + _0x52049f(0x1f0) + _0x52049f(0x406) + _0x52049f(0x876) + _0x52049f(0x50d) + _0x52049f(0x866) + _0x52049f(0x6e6) + _0x52049f(0x676) + _0x52049f(0x54d) + _0x52049f(0x123) + _0x52049f(0x241) + _0x52049f(0x6b4) + _0x52049f(0x3ba) + _0x52049f(0x5be) + _0x52049f(0x2c4) + _0x52049f(0x4ad) + _0x52049f(0x143) + _0x52049f(0xa5) + _0x52049f(0x6b3) + _0x52049f(0x368) + _0x52049f(0x3fa) + _0x52049f(0x839) + _0x52049f(0x76e) + _0x52049f(0x520) + _0x52049f(0x300) + _0x52049f(0x790) + _0x52049f(0x54c) + _0x52049f(0x716) + _0x52049f(0x6c) + _0x52049f(0x74c) + _0x52049f(0x4f3) + _0x52049f(0x760) + _0x52049f(0x5a3) + _0x52049f(0x3eb) + _0x52049f(0x780) + _0x52049f(0x227) + _0x52049f(0x147) + _0x52049f(0x2f2) + _0x52049f(0x633) + _0x52049f(0x585) + _0x52049f(0x68e) + _0x52049f(0x1fe) + _0x52049f(0x1f4) + _0x52049f(0x43e) + _0x52049f(0x22d) + _0x52049f(0x249) + _0x52049f(0x83d) + _0x52049f(0x72c) + _0x52049f(0x601) + _0x52049f(0x5a0) + _0x52049f(0x38f) + _0x52049f(0x64d) + _0x52049f(0x417) + _0x52049f(0x750) + _0x52049f(0x41e) + _0x52049f(0x4fd) + _0x52049f(0x3c0) + _0x52049f(0xa1) + _0x52049f(0x6c5) + _0x52049f(0x1eb) + _0x52049f(0x3a7) + _0x52049f(0x249) + _0x52049f(0x2ae) + _0x52049f(0x495) + _0x52049f(0x153) + _0x52049f(0x497) + _0x52049f(0x452) + _0x52049f(0x2c7) + _0x52049f(0x3d9) + _0x52049f(0x120) + _0x52049f(0x58c) + _0x52049f(0x7be) + _0x52049f(0x738) + _0x52049f(0x597) + _0x52049f(0x270) + _0x52049f(0x474) + _0x52049f(0x7e7) + _0x52049f(0x70a) + _0x52049f(0x58d) + _0x52049f(0x5ce) + _0x52049f(0xc6) + _0x52049f(0x348) + _0x52049f(0x120) + _0x52049f(0x58c) + _0x52049f(0x7be) + _0x52049f(0x738) + _0x52049f(0x759) + _0x52049f(0x6b9) + _0x52049f(0x502) + _0x52049f(0x23d) + _0x52049f(0x1ff) + _0x52049f(0xfa) + _0x52049f(0xb7) + _0x52049f(0x5dd) + _0x52049f(0x1ad) + _0x52049f(0x5ea) + _0x52049f(0x167) + _0x52049f(0x36a) + _0x52049f(0x73) + _0x52049f(0x6f8) + _0x52049f(0x249) + _0x52049f(0x72) + _0x52049f(0xe2) + _0x52049f(0x1e1) + _0x52049f(0x31c) + _0x52049f(0x5a8) + _0x52049f(0x877) + _0x52049f(0x797) + _0x52049f(0x5e7) + _0x52049f(0x71b) + _0x52049f(0x53b) + _0x52049f(0x33e) + _0x52049f(0x779) + _0x52049f(0x2eb) + _0x52049f(0x277) + _0x52049f(0x58e) + _0x52049f(0x7af) + _0x52049f(0x293) + _0x52049f(0x14a) + _0x52049f(0x6a1) + _0x52049f(0x265) + _0x52049f(0x443) + _0x52049f(0x45a) + _0x52049f(0x658) + _0x52049f(0x628) + _0x52049f(0x5d2) + _0x52049f(0x380) + _0x52049f(0x581) + _0x52049f(0x7b0) + _0x52049f(0x6db) + _0x52049f(0x3f4) + _0x52049f(0x587) + _0x52049f(0x154) + _0x52049f(0x864) + _0x52049f(0x620) + _0x52049f(0x69) + _0x52049f(0x342) + _0x52049f(0x6db) + _0x52049f(0x4ad) + _0x52049f(0x659) + _0x52049f(0x821))) + HOOK_VERSION + (_0x52049f(0x293) + _0x52049f(0x1ae) + _0x52049f(0x74c) + _0x52049f(0x13b) + _0x52049f(0x625) + _0x52049f(0x6db) + _0x52049f(0x582) + _0x52049f(0x3e8) + _0x52049f(0x1e5) + _0x52049f(0x461) + _0x52049f(0x270) + _0x52049f(0x135) + _0x52049f(0xbd) + _0x52049f(0x7cb) + _0x52049f(0x1fb) + _0x52049f(0x41b) + _0x52049f(0x54a) + _0x52049f(0x6db) + _0x52049f(0x22c) + _0x52049f(0x659) + _0x52049f(0x338) + _0x52049f(0x2e8) + _0x52049f(0x400) + _0x52049f(0x700) + _0x52049f(0x270) + _0x52049f(0x854) + _0x52049f(0x49a) + _0x52049f(0x20a) + _0x52049f(0x753) + _0x52049f(0x83) + _0x52049f(0x5d2) + _0x52049f(0x6d7) + _0x52049f(0x783) + _0x52049f(0x462) + _0x52049f(0xa6) + _0x52049f(0x79a) + _0x52049f(0x3b8) + _0x52049f(0x79c) + _0x52049f(0x773) + _0x52049f(0x107) + _0x52049f(0x58b) + _0x52049f(0x7ee) + _0x52049f(0xea) + _0x52049f(0x7b7) + _0x52049f(0x773) + _0x52049f(0x56e) + _0x52049f(0xc3) + _0x52049f(0x7c8) + _0x52049f(0x2d7) + _0x52049f(0x719) + _0x52049f(0x284) + _0x52049f(0x4b1) + _0x52049f(0x5ab) + _0x52049f(0x18b) + _0x52049f(0x348) + _0x52049f(0x120) + _0x52049f(0x58c) + _0x52049f(0x7be) + _0x52049f(0x738) + _0x52049f(0x5e9) + _0x52049f(0x378) + _0x52049f(0x4e6) + _0x52049f(0x49b) + _0x52049f(0x1d4) + _0x52049f(0x70e) + _0x52049f(0x6b9) + _0x52049f(0x5a0) + _0x52049f(0x116) + _0x52049f(0x56b) + _0x52049f(0x5d0) + _0x52049f(0x754) + _0x52049f(0x15d) + _0x52049f(0x1f7) + _0x52049f(0xf7) + _0x52049f(0x481) + _0x52049f(0xaf) + _0x52049f(0x27f) + _0x52049f(0x164) + _0x52049f(0x3ef) + _0x52049f(0x1ba) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x23b) + _0x52049f(0x4b4) + _0x52049f(0x7ed) + _0x52049f(0x29d) + _0x52049f(0x735) + _0x52049f(0x2a5) + _0x52049f(0x5a2) + _0x52049f(0x151) + _0x52049f(0x71d) + _0x52049f(0x82c) + _0x52049f(0x25e) + _0x52049f(0x3e7) + _0x52049f(0x60a) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x865) + _0x52049f(0x7f1) + _0x52049f(0x2a0) + _0x52049f(0x111) + _0x52049f(0x6ad) + _0x52049f(0x1be) + _0x52049f(0x4f3) + _0x52049f(0x153) + _0x52049f(0x497) + _0x52049f(0x76c) + _0x52049f(0x763) + _0x52049f(0x346) + _0x52049f(0x6d5) + _0x52049f(0x73f) + _0x52049f(0x2ee) + _0x52049f(0x355) + _0x52049f(0x25d) + _0x52049f(0x6d7) + _0x52049f(0x372) + _0x52049f(0x310) + _0x52049f(0x571) + _0x52049f(0x6c3) + _0x52049f(0x58a) + _0x52049f(0x229) + _0x52049f(0x7b3) + _0x52049f(0xb4) + _0x52049f(0x878) + _0x52049f(0x6c3) + _0x52049f(0x33f) + _0x52049f(0x7bd) + _0x52049f(0x69a) + _0x52049f(0x562) + _0x52049f(0xf3) + _0x52049f(0xeb) + _0x52049f(0x492) + _0x52049f(0x79b) + _0x52049f(0x186) + _0x52049f(0x83c) + _0x52049f(0x28a) + _0x52049f(0x93) + _0x52049f(0x38f) + _0x52049f(0x385) + _0x52049f(0x77b) + _0x52049f(0x593) + _0x52049f(0xff) + _0x52049f(0x612) + _0x52049f(0x487) + _0x52049f(0x291) + _0x52049f(0x6b6) + _0x52049f(0x112) + _0x52049f(0x74d) + _0x52049f(0x760) + _0x52049f(0x87b) + _0x52049f(0x1f2) + _0x52049f(0x227) + _0x52049f(0x147) + _0x52049f(0x2f2) + _0x52049f(0x2c8) + _0x52049f(0x2fd) + _0x52049f(0x6aa) + _0x52049f(0x794) + _0x52049f(0x30d) + _0x52049f(0x7db) + _0x52049f(0x73d) + _0x52049f(0x77f) + _0x52049f(0x6f4) + _0x52049f(0x186) + _0x52049f(0x392) + _0x52049f(0x2d1) + _0x52049f(0x316) + _0x52049f(0x77b) + _0x52049f(0x4d7) + _0x52049f(0x468) + _0x52049f(0xcd) + _0x52049f(0x5b3) + _0x52049f(0x85c) + _0x52049f(0x409) + _0x52049f(0x7c9) + (_0x52049f(0x283) + _0x52049f(0x2a2) + _0x52049f(0x303) + _0x52049f(0x153) + _0x52049f(0x7b) + _0x52049f(0x464) + _0x52049f(0x7cc) + _0x52049f(0x27d) + _0x52049f(0x5ba) + _0x52049f(0x317) + _0x52049f(0xfa) + _0x52049f(0xb7) + _0x52049f(0x101) + _0x52049f(0x319) + _0x52049f(0x575) + _0x52049f(0x705) + _0x52049f(0x6f0) + _0x52049f(0x55d) + _0x52049f(0x4c0) + _0x52049f(0x861) + _0x52049f(0x524) + _0x52049f(0x6f4) + _0x52049f(0x46e) + _0x52049f(0x703) + _0x52049f(0x43b) + _0x52049f(0x810) + _0x52049f(0x1c7) + _0x52049f(0xbb) + _0x52049f(0x4f5) + _0x52049f(0x298) + _0x52049f(0x2bc) + _0x52049f(0x23e) + _0x52049f(0x40c) + _0x52049f(0x806) + _0x52049f(0xe6) + _0x52049f(0x134) + _0x52049f(0x1e1) + _0x52049f(0x467) + _0x52049f(0x3b8) + _0x52049f(0x79c) + _0x52049f(0x5da) + _0x52049f(0x1f2) + _0x52049f(0x5ba) + _0x52049f(0x4f3) + _0x52049f(0x6db) + _0x52049f(0x38f) + _0x52049f(0x6a2) + _0x52049f(0x17a) + _0x52049f(0x70a) + _0x52049f(0x58d) + _0x52049f(0x5ce) + _0x52049f(0xc6) + _0x52049f(0x348) + _0x52049f(0x558) + _0x52049f(0x794) + _0x52049f(0x235) + _0x52049f(0x759) + _0x52049f(0x6b9) + _0x52049f(0x502) + _0x52049f(0x6db) + _0x52049f(0x38f) + _0x52049f(0x4ad) + _0x52049f(0x70f) + _0x52049f(0x4a1) + _0x52049f(0x672) + _0x52049f(0x3a1) + _0x52049f(0x475) + _0x52049f(0x305) + _0x52049f(0x307) + _0x52049f(0x5aa) + _0x52049f(0x187) + _0x52049f(0x654) + _0x52049f(0x7ee) + _0x52049f(0x63d) + _0x52049f(0x492) + _0x52049f(0x7a6) + _0x52049f(0x3c1) + _0x52049f(0xcc) + _0x52049f(0x765) + _0x52049f(0x58b) + _0x52049f(0x6db) + _0x52049f(0x452) + _0x52049f(0xe1) + _0x52049f(0x334) + _0x52049f(0x3cd) + _0x52049f(0x398) + _0x52049f(0x9c) + _0x52049f(0x497) + _0x52049f(0x6db) + _0x52049f(0x16d) + _0x52049f(0x1f2) + _0x52049f(0x812) + _0x52049f(0x85d) + _0x52049f(0x723) + _0x52049f(0x6a2) + _0x52049f(0x152) + _0x52049f(0x240) + _0x52049f(0xdf) + _0x52049f(0x1db) + _0x52049f(0x7f0) + _0x52049f(0x721) + _0x52049f(0x19f) + _0x52049f(0x270) + _0x52049f(0x6db) + _0x52049f(0xa6) + _0x52049f(0xb2) + _0x52049f(0x3d5) + _0x52049f(0x1fd) + _0x52049f(0x34f) + _0x52049f(0x213) + _0x52049f(0x869) + _0x52049f(0x6db) + _0x52049f(0x6db) + _0x52049f(0x6de) + _0x52049f(0x133) + _0x52049f(0x407) + _0x52049f(0x721) + _0x52049f(0x812) + _0x52049f(0x793) + _0x52049f(0x621) + _0x52049f(0xaa) + _0x52049f(0x53e) + _0x52049f(0x156) + _0x52049f(0x766) + _0x52049f(0x589) + _0x52049f(0x539) + _0x52049f(0xa0) + _0x52049f(0x6db) + _0x52049f(0x6db) + _0x52049f(0x62a) + _0x52049f(0x1f8) + _0x52049f(0x599) + _0x52049f(0x240) + _0x52049f(0x30e) + _0x52049f(0x1bd) + _0x52049f(0xec) + _0x52049f(0x6db) + _0x52049f(0x2e3) + _0x52049f(0x284) + _0x52049f(0x6db) + _0x52049f(0x218) + _0x52049f(0xd5) + _0x52049f(0x152) + _0x52049f(0x240) + _0x52049f(0xdf) + _0x52049f(0x667) + _0x52049f(0x852) + _0x52049f(0x21c) + _0x52049f(0x51f) + _0x52049f(0x37f) + _0x52049f(0x794) + _0x52049f(0x7ef) + _0x52049f(0x3f0) + _0x52049f(0x3c9) + _0x52049f(0x284) + _0x52049f(0x6db) + _0x52049f(0x42e) + _0x52049f(0x23d) + _0x52049f(0x270) + _0x52049f(0x218) + _0x52049f(0x699) + _0x52049f(0x110) + _0x52049f(0x493) + _0x52049f(0x40c) + _0x52049f(0x22a) + _0x52049f(0x5bd) + _0x52049f(0x762) + _0x52049f(0x5cc) + _0x52049f(0x4ac) + _0x52049f(0x69c) + _0x52049f(0xac) + _0x52049f(0x6a2) + _0x52049f(0x152) + _0x52049f(0x240) + _0x52049f(0x284) + _0x52049f(0x733) + _0x52049f(0x42c) + _0x52049f(0x84c) + _0x52049f(0x763) + _0x52049f(0xe1) + _0x52049f(0x3cf) + _0x52049f(0x220) + _0x52049f(0x629) + _0x52049f(0x628) + _0x52049f(0x57a) + _0x52049f(0x794) + _0x52049f(0x421) + _0x52049f(0x713) + _0x52049f(0x141) + _0x52049f(0x3d0) + _0x52049f(0x801) + _0x52049f(0x5de) + _0x52049f(0x1b6) + _0x52049f(0x1ba) + _0x52049f(0x4b0) + _0x52049f(0x6dd) + _0x52049f(0x3b9) + _0x52049f(0x34c) + _0x52049f(0x2b8) + _0x52049f(0x55f)) + (_0x52049f(0x313) + _0x52049f(0x7ac) + _0x52049f(0x2f1) + _0x52049f(0x3a2) + _0x52049f(0x111) + _0x52049f(0x6ad) + _0x52049f(0x1be) + _0x52049f(0x207) + _0x52049f(0x688) + _0x52049f(0x6ab) + _0x52049f(0x38b) + _0x52049f(0x3d3) + _0x52049f(0x1fb) + _0x52049f(0x696) + _0x52049f(0x6d8) + _0x52049f(0x1ba) + _0x52049f(0x857) + _0x52049f(0x26e) + _0x52049f(0x432) + _0x52049f(0x6c6) + _0x52049f(0x354) + _0x52049f(0x47f) + _0x52049f(0x5ef) + _0x52049f(0x306) + _0x52049f(0x196) + _0x52049f(0x7f1) + _0x52049f(0x2a0) + _0x52049f(0x88) + _0x52049f(0x1a3) + _0x52049f(0x84d) + _0x52049f(0x58b) + _0x52049f(0x3a2) + _0x52049f(0x2c7) + _0x52049f(0x3d9) + _0x52049f(0x5c9) + _0x52049f(0x40e) + _0x52049f(0x5a9) + _0x52049f(0x5dc) + _0x52049f(0x2dd) + _0x52049f(0x6d4) + _0x52049f(0x26f) + _0x52049f(0x137) + _0x52049f(0x58b) + _0x52049f(0x62a) + _0x52049f(0x7d3) + _0x52049f(0x770) + _0x52049f(0x322) + _0x52049f(0x5cb) + _0x52049f(0x6c2) + _0x52049f(0x74a) + _0x52049f(0x8a) + _0x52049f(0x360) + _0x52049f(0x1ed) + _0x52049f(0x29e) + _0x52049f(0x6b9) + _0x52049f(0x502) + _0x52049f(0x703) + _0x52049f(0x43b) + _0x52049f(0x34f) + _0x52049f(0x6fd) + _0x52049f(0x16f) + _0x52049f(0x28d) + _0x52049f(0x60e) + _0x52049f(0x46a) + _0x52049f(0x7ec) + _0x52049f(0x9e) + _0x52049f(0x744) + _0x52049f(0x71) + _0x52049f(0x4bf) + _0x52049f(0x26d) + _0x52049f(0x1b4) + _0x52049f(0x279) + _0x52049f(0x8e) + _0x52049f(0x2be) + _0x52049f(0x7f1) + _0x52049f(0x2a0) + _0x52049f(0x6e4) + _0x52049f(0x44f) + _0x52049f(0x542) + _0x52049f(0x4f3) + _0x52049f(0x153) + _0x52049f(0x497) + _0x52049f(0x760) + _0x52049f(0x2d2) + _0x52049f(0x459) + _0x52049f(0x542) + _0x52049f(0x5fa) + _0x52049f(0x485) + _0x52049f(0x5a0) + _0x52049f(0x218) + _0x52049f(0xa2) + _0x52049f(0x17d) + _0x52049f(0x86b) + _0x52049f(0x16e) + _0x52049f(0x34f) + _0x52049f(0x6fd) + _0x52049f(0x6af) + _0x52049f(0x121) + _0x52049f(0x63a) + _0x52049f(0x35f) + _0x52049f(0x1e3) + _0x52049f(0x770) + _0x52049f(0x322) + _0x52049f(0x79d) + _0x52049f(0x6d6) + _0x52049f(0x5c8) + _0x52049f(0x11b) + _0x52049f(0x6d2) + _0x52049f(0x275) + _0x52049f(0x528) + _0x52049f(0x628) + _0x52049f(0x6ee) + _0x52049f(0xa4) + _0x52049f(0x284) + _0x52049f(0x34f) + _0x52049f(0x67b) + _0x52049f(0x581) + _0x52049f(0x6c3) + _0x52049f(0x58a) + _0x52049f(0x508) + _0x52049f(0x310) + _0x52049f(0x639) + _0x52049f(0x5c2) + _0x52049f(0x1ba) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x23b) + _0x52049f(0x458) + _0x52049f(0x124) + _0x52049f(0x11d) + _0x52049f(0x605) + _0x52049f(0x48b) + _0x52049f(0x65b) + _0x52049f(0x6dc) + _0x52049f(0x48f) + _0x52049f(0x3b7) + _0x52049f(0x534) + _0x52049f(0x255) + _0x52049f(0x24f) + _0x52049f(0x820) + _0x52049f(0x60a) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x865) + _0x52049f(0x520) + _0x52049f(0x245) + _0x52049f(0x84) + _0x52049f(0x75) + _0x52049f(0x1e7) + _0x52049f(0x7bc) + _0x52049f(0xeb) + _0x52049f(0x492) + _0x52049f(0x4ae) + _0x52049f(0x59a) + _0x52049f(0x782) + _0x52049f(0x593) + _0x52049f(0xff) + _0x52049f(0x612) + _0x52049f(0x487) + _0x52049f(0x291) + _0x52049f(0x1e2) + _0x52049f(0x1e6) + _0x52049f(0x369) + _0x52049f(0x26c) + _0x52049f(0x772) + _0x52049f(0x5b8) + _0x52049f(0x7bf) + _0x52049f(0x22f) + _0x52049f(0x64c) + _0x52049f(0x40d) + _0x52049f(0x496) + _0x52049f(0x4d4) + _0x52049f(0x309) + _0x52049f(0x824) + _0x52049f(0x34f)) + (_0x52049f(0x6fd) + _0x52049f(0x6af) + _0x52049f(0x153) + _0x52049f(0x497) + _0x52049f(0x760) + _0x52049f(0xfd) + _0x52049f(0x55c) + _0x52049f(0x4f7) + _0x52049f(0x77e) + _0x52049f(0x6b0) + _0x52049f(0x788) + _0x52049f(0x858) + _0x52049f(0x476) + _0x52049f(0x42d) + _0x52049f(0x1a2) + _0x52049f(0x4c4) + _0x52049f(0x211) + _0x52049f(0xa0) + _0x52049f(0x1e1) + _0x52049f(0x73e) + _0x52049f(0x7e2) + _0x52049f(0x1c8) + _0x52049f(0x350) + _0x52049f(0x84b) + _0x52049f(0x9d) + _0x52049f(0x181) + _0x52049f(0x1cc) + _0x52049f(0x3ad) + _0x52049f(0x614) + _0x52049f(0x6c4) + _0x52049f(0x23a) + _0x52049f(0x284) + _0x52049f(0x153) + _0x52049f(0x497) + _0x52049f(0x749) + _0x52049f(0x5a1) + _0x52049f(0x659) + _0x52049f(0x290) + _0x52049f(0x3e4) + _0x52049f(0x5c1) + _0x52049f(0x6c9) + _0x52049f(0x53a) + _0x52049f(0xe7) + _0x52049f(0x434) + _0x52049f(0x23c) + _0x52049f(0x690) + _0x52049f(0x82a) + _0x52049f(0x3ae) + _0x52049f(0x669) + _0x52049f(0x795) + _0x52049f(0x684) + _0x52049f(0x875) + _0x52049f(0x2fb) + _0x52049f(0x24c) + _0x52049f(0x32c) + _0x52049f(0x5de) + _0x52049f(0x2cf) + _0x52049f(0xb4) + _0x52049f(0x81f) + _0x52049f(0x4b1) + _0x52049f(0x867) + _0x52049f(0x2a1) + _0x52049f(0x8d) + _0x52049f(0x5a1) + _0x52049f(0x659) + _0x52049f(0x57f) + _0x52049f(0x5cd) + _0x52049f(0x4b9) + _0x52049f(0x49f) + _0x52049f(0x5fa) + _0x52049f(0x485) + _0x52049f(0x541) + _0x52049f(0x117) + _0x52049f(0x31a) + _0x52049f(0x68) + _0x52049f(0x492) + _0x52049f(0x280) + _0x52049f(0x55b) + _0x52049f(0x543) + _0x52049f(0x6f) + _0x52049f(0x5f2) + _0x52049f(0x29a) + _0x52049f(0x879) + _0x52049f(0x4e0) + _0x52049f(0x81d) + _0x52049f(0x20c) + _0x52049f(0x6c1) + _0x52049f(0x390) + _0x52049f(0x7dd) + _0x52049f(0x284) + _0x52049f(0x3a7) + _0x52049f(0x715) + _0x52049f(0x7a0) + _0x52049f(0x79f) + _0x52049f(0x436) + _0x52049f(0x270) + _0x52049f(0x7de) + _0x52049f(0x166) + _0x52049f(0x19e) + _0x52049f(0x7a9) + _0x52049f(0x78f) + _0x52049f(0x592) + _0x52049f(0x6db) + _0x52049f(0x452) + _0x52049f(0x5c3) + _0x52049f(0x491) + _0x52049f(0x5e1) + _0x52049f(0x5f3) + _0x52049f(0x491) + _0x52049f(0x1a6) + _0x52049f(0x822) + _0x52049f(0x4c1) + _0x52049f(0x247) + _0x52049f(0x118) + _0x52049f(0x442) + _0x52049f(0x3f6) + _0x52049f(0x6db) + _0x52049f(0x452) + _0x52049f(0x5c3) + _0x52049f(0x491) + _0x52049f(0x855) + _0x52049f(0x5f3) + _0x52049f(0x491) + _0x52049f(0x2c5) + _0x52049f(0x340) + _0x52049f(0x270) + _0x52049f(0x42e) + _0x52049f(0x452) + _0x52049f(0xd4) + _0x52049f(0x4c1) + _0x52049f(0x77a) + _0x52049f(0x310) + _0x52049f(0x639) + _0x52049f(0x284) + _0x52049f(0x452) + _0x52049f(0x807) + _0x52049f(0x3f8) + _0x52049f(0x179) + _0x52049f(0x437) + _0x52049f(0xda) + _0x52049f(0x711) + _0x52049f(0x74e) + _0x52049f(0x28f) + _0x52049f(0x7b6) + _0x52049f(0x1fb) + _0x52049f(0x6ba) + _0x52049f(0x333) + _0x52049f(0xb4) + _0x52049f(0x81f) + _0x52049f(0x270) + _0x52049f(0x1d7) + _0x52049f(0x270) + _0x52049f(0x2f3) + _0x52049f(0xb3) + _0x52049f(0x472) + _0x52049f(0x356) + _0x52049f(0x1dc) + _0x52049f(0x96) + _0x52049f(0x714) + _0x52049f(0x6a) + _0x52049f(0x2b1) + _0x52049f(0x50f) + _0x52049f(0x7f9) + _0x52049f(0x192) + _0x52049f(0x270) + _0x52049f(0x62a) + _0x52049f(0x2e6) + _0x52049f(0x7e2) + _0x52049f(0x1c8) + _0x52049f(0x350) + _0x52049f(0x4ca) + _0x52049f(0x3d0) + _0x52049f(0x58a) + _0x52049f(0x508) + _0x52049f(0x310) + _0x52049f(0x639) + _0x52049f(0x7f7) + _0x52049f(0x703) + _0x52049f(0x43b) + _0x52049f(0x34f) + _0x52049f(0x6fd) + _0x52049f(0x16f) + _0x52049f(0x28d) + _0x52049f(0x39b) + _0x52049f(0x645) + _0x52049f(0x4ae) + _0x52049f(0x706) + _0x52049f(0x5fd) + _0x52049f(0x648) + _0x52049f(0x81c) + _0x52049f(0x351) + _0x52049f(0x20e) + _0x52049f(0x547) + _0x52049f(0x94) + _0x52049f(0x545) + _0x52049f(0x25f) + _0x52049f(0x796) + _0x52049f(0x314) + _0x52049f(0x182) + _0x52049f(0x445)) + (_0x52049f(0x1cb) + _0x52049f(0x100) + _0x52049f(0x134) + _0x52049f(0x68) + _0x52049f(0x492) + _0x52049f(0x4ae) + _0x52049f(0x59a) + _0x52049f(0x782) + _0x52049f(0x593) + _0x52049f(0xff) + _0x52049f(0x612) + _0x52049f(0x487) + _0x52049f(0x291) + _0x52049f(0x1e2) + _0x52049f(0x1e6) + _0x52049f(0x369) + _0x52049f(0x26c) + _0x52049f(0x772) + _0x52049f(0x5b8) + _0x52049f(0x284) + _0x52049f(0x3a7) + _0x52049f(0x715) + _0x52049f(0xa3) + _0x52049f(0x68a) + _0x52049f(0x118) + _0x52049f(0x270) + _0x52049f(0x327) + _0x52049f(0x64c) + _0x52049f(0x40d) + _0x52049f(0x496) + _0x52049f(0x4d4) + _0x52049f(0x309) + _0x52049f(0x824) + _0x52049f(0x58b) + _0x52049f(0x7c4) + _0x52049f(0x134) + _0x52049f(0x6db) + _0x52049f(0x121) + _0x52049f(0x375) + _0x52049f(0x4c6) + _0x52049f(0x70a) + _0x52049f(0x58d) + _0x52049f(0x5ce) + _0x52049f(0xc6) + _0x52049f(0x348) + _0x52049f(0x818) + _0x52049f(0x314) + _0x52049f(0x182) + _0x52049f(0x853) + _0x52049f(0x26b) + _0x52049f(0xa4) + _0x52049f(0x284) + _0x52049f(0x6db) + _0x52049f(0x49e) + _0x52049f(0x7e2) + _0x52049f(0x6d1) + _0x52049f(0x85f) + _0x52049f(0x739) + _0x52049f(0x3ff) + _0x52049f(0x682) + _0x52049f(0xb1) + _0x52049f(0xe3) + _0x52049f(0x25c) + _0x52049f(0x6fc) + _0x52049f(0x448) + _0x52049f(0x18f) + _0x52049f(0x18f) + _0x52049f(0xdb) + _0x52049f(0x4f3) + _0x52049f(0x6db) + _0x52049f(0x6f9) + _0x52049f(0x722) + _0x52049f(0x246) + _0x52049f(0x42f) + _0x52049f(0x436) + _0x52049f(0x270) + _0x52049f(0x3d0) + _0x52049f(0x270) + _0x52049f(0x1ff) + _0x52049f(0xfa) + _0x52049f(0x41c) + _0x52049f(0x4a8) + _0x52049f(0xa6) + _0x52049f(0x35e) + _0x52049f(0x236) + _0x52049f(0x274) + _0x52049f(0x58b) + _0x52049f(0x68) + _0x52049f(0x492) + _0x52049f(0x473) + _0x52049f(0x7a1) + _0x52049f(0x6fe) + _0x52049f(0x42a) + _0x52049f(0x4d6) + _0x52049f(0x122) + _0x52049f(0x81a) + _0x52049f(0x873) + _0x52049f(0x526) + _0x52049f(0x270) + _0x52049f(0x1ae) + _0x52049f(0x4a4) + _0x52049f(0xa7) + _0x52049f(0x5f4) + _0x52049f(0x270) + _0x52049f(0x18a) + _0x52049f(0x6e8) + _0x52049f(0x34a) + _0x52049f(0x4b8) + _0x52049f(0x6db) + _0x52049f(0x6d7) + _0x52049f(0x6db) + _0x52049f(0x460) + _0x52049f(0x14f) + _0x52049f(0x1f5) + _0x52049f(0x270) + _0x52049f(0x31f) + _0x52049f(0x58a) + _0x52049f(0x7c) + _0x52049f(0x607) + _0x52049f(0x63c) + _0x52049f(0x314) + _0x52049f(0x8f) + _0x52049f(0x741) + _0x52049f(0x4b5) + _0x52049f(0x768) + _0x52049f(0x6ed) + _0x52049f(0x504) + _0x52049f(0x2ef) + _0x52049f(0x139) + _0x52049f(0x7a0) + _0x52049f(0x59a) + _0x52049f(0x500) + _0x52049f(0xfc) + _0x52049f(0x209) + _0x52049f(0x7bb) + _0x52049f(0xd1) + _0x52049f(0x294) + _0x52049f(0x47b) + _0x52049f(0x397) + _0x52049f(0x6e) + _0x52049f(0x492) + _0x52049f(0x278) + _0x52049f(0x6c6) + _0x52049f(0x7ba) + _0x52049f(0xc7) + _0x52049f(0x746) + _0x52049f(0x5e0) + _0x52049f(0x72b) + _0x52049f(0x216) + _0x52049f(0x41d) + _0x52049f(0x6a5) + _0x52049f(0x18e) + _0x52049f(0x5b2) + _0x52049f(0x3a2) + _0x52049f(0x278) + _0x52049f(0x6c6) + _0x52049f(0x646) + _0x52049f(0x1a3) + _0x52049f(0x10c) + _0x52049f(0xf4) + _0x52049f(0x514) + _0x52049f(0x22b) + _0x52049f(0x522) + _0x52049f(0x72a) + _0x52049f(0x201) + _0x52049f(0x27c) + _0x52049f(0x50b) + _0x52049f(0x679) + _0x52049f(0x6ec) + _0x52049f(0xb5) + _0x52049f(0x97) + _0x52049f(0x7a) + _0x52049f(0x138) + _0x52049f(0x3e5) + _0x52049f(0x5cf) + _0x52049f(0x387) + _0x52049f(0x3bb) + _0x52049f(0x5a8) + _0x52049f(0x6cd) + _0x52049f(0x636) + _0x52049f(0x7bb) + _0x52049f(0x2b0) + _0x52049f(0x78a) + _0x52049f(0x517) + _0x52049f(0x3d4) + _0x52049f(0x492) + _0x52049f(0x542) + _0x52049f(0x83a) + _0x52049f(0x5a6) + _0x52049f(0x6e4) + _0x52049f(0x44f) + _0x52049f(0x278) + _0x52049f(0x39a) + _0x52049f(0x66a) + _0x52049f(0x35d) + _0x52049f(0xd6) + _0x52049f(0x61b) + _0x52049f(0x250) + _0x52049f(0x2cc) + _0x52049f(0x1f1)) + (_0x52049f(0x3c6) + _0x52049f(0x552) + _0x52049f(0x70) + _0x52049f(0xeb) + _0x52049f(0x492) + _0x52049f(0x302) + _0x52049f(0x19b) + _0x52049f(0x70c) + _0x52049f(0x3c6) + _0x52049f(0x552) + _0x52049f(0x800) + _0x52049f(0xdb) + _0x52049f(0x7bf) + _0x52049f(0x617) + _0x52049f(0x455) + _0x52049f(0x51b) + _0x52049f(0x517) + _0x52049f(0x2d9) + _0x52049f(0x4f3) + _0x52049f(0x847) + _0x52049f(0x82d) + _0x52049f(0x833) + _0x52049f(0x591) + _0x52049f(0x50a) + _0x52049f(0x5ea) + _0x52049f(0x517) + _0x52049f(0x1a8) + _0x52049f(0x4c7) + _0x52049f(0x257) + _0x52049f(0x5f0) + _0x52049f(0x71a) + _0x52049f(0x7d8) + _0x52049f(0x653) + _0x52049f(0x302) + _0x52049f(0x413) + _0x52049f(0x405) + _0x52049f(0x636) + _0x52049f(0x7bb) + _0x52049f(0x418) + _0x52049f(0x311) + _0x52049f(0x388) + _0x52049f(0x7ad) + _0x52049f(0x637) + _0x52049f(0x7bd) + _0x52049f(0x416) + _0x52049f(0x6e3) + _0x52049f(0x1ca) + _0x52049f(0x47a) + _0x52049f(0x73d) + _0x52049f(0xdd) + _0x52049f(0x5e2) + _0x52049f(0x186) + _0x52049f(0x392) + _0x52049f(0x2d1) + _0x52049f(0xc4) + _0x52049f(0x1e5) + _0x52049f(0x461) + _0x52049f(0x162) + _0x52049f(0x7c5) + _0x52049f(0x12a) + _0x52049f(0x57e) + _0x52049f(0x5b4) + _0x52049f(0x5a0) + _0x52049f(0x3a2) + _0x52049f(0x2c7) + _0x52049f(0x3d9) + _0x52049f(0x558) + _0x52049f(0x5e2) + _0x52049f(0x824) + _0x52049f(0x34f) + _0x52049f(0x6fd) + _0x52049f(0x6af) + _0x52049f(0x153) + _0x52049f(0x497) + _0x52049f(0x34f) + _0x52049f(0x533) + _0x52049f(0x570) + _0x52049f(0x325) + _0x52049f(0x253) + _0x52049f(0x72d) + _0x52049f(0x763) + _0x52049f(0x1d5) + _0x52049f(0x853) + _0x52049f(0x26b) + _0x52049f(0xa4) + _0x52049f(0x6c3) + _0x52049f(0x58a) + _0x52049f(0x508) + _0x52049f(0x310) + _0x52049f(0x639) + _0x52049f(0x5c2) + _0x52049f(0x106) + _0x52049f(0x123) + _0x52049f(0x86e) + _0x52049f(0x393) + _0x52049f(0x32f) + _0x52049f(0x7d7) + _0x52049f(0x5ad) + _0x52049f(0x734) + _0x52049f(0x4a3) + _0x52049f(0x2cd) + _0x52049f(0x2bf) + _0x52049f(0x214) + _0x52049f(0x65f) + _0x52049f(0x396) + _0x52049f(0x153) + _0x52049f(0x497) + _0x52049f(0x76c) + _0x52049f(0x763) + _0x52049f(0x6f5) + _0x52049f(0x13c) + _0x52049f(0x3d7) + _0x52049f(0x233) + _0x52049f(0x68c) + _0x52049f(0x434) + _0x52049f(0x23c) + _0x52049f(0x690) + _0x52049f(0x82a) + _0x52049f(0x3ae) + _0x52049f(0x537) + _0x52049f(0x3cb) + _0x52049f(0x284) + _0x52049f(0x123) + _0x52049f(0x86e) + _0x52049f(0x393) + _0x52049f(0x32f) + _0x52049f(0x7d7) + _0x52049f(0x801) + _0x52049f(0x5de) + _0x52049f(0x771) + _0x52049f(0x218) + _0x52049f(0x734) + _0x52049f(0x4a3) + _0x52049f(0x270) + _0x52049f(0x38f) + _0x52049f(0x3e0) + _0x52049f(0x75b) + _0x52049f(0x68d) + _0x52049f(0x746) + _0x52049f(0x787) + _0x52049f(0x5df) + _0x52049f(0x732) + _0x52049f(0x447) + _0x52049f(0x62e) + _0x52049f(0x578) + _0x52049f(0x3fd) + _0x52049f(0x270) + _0x52049f(0x80d) + _0x52049f(0x1e0) + _0x52049f(0x6e7) + _0x52049f(0x3b4) + _0x52049f(0x329) + _0x52049f(0x195) + _0x52049f(0x86a) + _0x52049f(0x62b) + _0x52049f(0x212) + _0x52049f(0x17e) + _0x52049f(0x565) + _0x52049f(0x19c) + _0x52049f(0x39a) + _0x52049f(0x264) + _0x52049f(0x248) + _0x52049f(0x131) + _0x52049f(0x761) + _0x52049f(0x2ce) + _0x52049f(0x81b) + _0x52049f(0x269) + _0x52049f(0x6cd) + _0x52049f(0x3ef) + _0x52049f(0x1ba) + _0x52049f(0x4b0) + _0x52049f(0x6a9) + _0x52049f(0x746) + _0x52049f(0x30c) + _0x52049f(0x5b2) + _0x52049f(0x281) + _0x52049f(0x7b4) + _0x52049f(0x4e5) + _0x52049f(0x3db) + _0x52049f(0x83e) + _0x52049f(0x31d) + _0x52049f(0x4c2) + _0x52049f(0x123) + _0x52049f(0x856) + _0x52049f(0x3bf) + _0x52049f(0x61a) + _0x52049f(0x86) + _0x52049f(0x4f3) + _0x52049f(0x5dd) + _0x52049f(0x37b) + _0x52049f(0x815) + _0x52049f(0x4d5) + _0x52049f(0x289) + _0x52049f(0x30c) + _0x52049f(0x1df) + _0x52049f(0x689) + _0x52049f(0x66e) + _0x52049f(0x1d7) + _0x52049f(0x270) + _0x52049f(0x3e4)) + (_0x52049f(0x5c1) + _0x52049f(0x87a) + _0x52049f(0x588) + _0x52049f(0x479) + _0x52049f(0x1de) + _0x52049f(0x98) + _0x52049f(0x96) + _0x52049f(0x714) + _0x52049f(0x6a) + _0x52049f(0x2b1) + _0x52049f(0x50f) + _0x52049f(0x7f9) + _0x52049f(0x192) + _0x52049f(0x270) + _0x52049f(0x1d5) + _0x52049f(0x6b5) + _0x52049f(0x6e3) + _0x52049f(0x1ca) + _0x52049f(0x826) + _0x52049f(0x1ff) + _0x52049f(0xfa) + _0x52049f(0xb7) + _0x52049f(0x452) + _0x52049f(0x1d5) + _0x52049f(0x384) + _0x52049f(0x1c4) + _0x52049f(0x4e4) + _0x52049f(0x2c0) + _0x52049f(0x3de) + _0x52049f(0x720) + _0x52049f(0x6d3) + _0x52049f(0x363) + _0x52049f(0x33b) + _0x52049f(0x2ac) + _0x52049f(0x75a) + _0x52049f(0x68) + _0x52049f(0x492) + _0x52049f(0x1f9) + _0x52049f(0x12f) + _0x52049f(0x66b) + _0x52049f(0x39f) + _0x52049f(0x3ff) + _0x52049f(0x682) + _0x52049f(0x67d) + _0x52049f(0x184) + _0x52049f(0x764) + _0x52049f(0x80f) + _0x52049f(0x3a0) + _0x52049f(0x81e) + _0x52049f(0x2c3) + _0x52049f(0x7b2) + _0x52049f(0x549) + _0x52049f(0x383) + _0x52049f(0x54e) + _0x52049f(0x5e8) + _0x52049f(0x5e8) + _0x52049f(0x511) + _0x52049f(0x5a0) + _0x52049f(0x4a9) + _0x52049f(0x119) + _0x52049f(0xf0) + _0x52049f(0x150) + _0x52049f(0x320) + _0x52049f(0x743) + _0x52049f(0x830) + _0x52049f(0x414) + _0x52049f(0xc5) + _0x52049f(0x223) + _0x52049f(0x367) + _0x52049f(0x1b3) + _0x52049f(0xc8) + _0x52049f(0x231) + _0x52049f(0x5f1) + _0x52049f(0x75c) + _0x52049f(0x363) + _0x52049f(0x5ca) + _0x52049f(0x5f2) + _0x52049f(0x264) + _0x52049f(0x248) + _0x52049f(0x131) + _0x52049f(0x761) + _0x52049f(0x2ce) + _0x52049f(0x33c) + _0x52049f(0x85e) + _0x52049f(0x428) + _0x52049f(0x6cd) + _0x52049f(0x3ef) + _0x52049f(0x1ba) + _0x52049f(0x4b0) + _0x52049f(0x7e5) + _0x52049f(0x4e9) + _0x52049f(0x652) + _0x52049f(0x4a2) + _0x52049f(0x4c9) + _0x52049f(0x281) + _0x52049f(0x7b4) + _0x52049f(0x4e5) + _0x52049f(0x10f) + _0x52049f(0x195) + _0x52049f(0x52b) + _0x52049f(0x384) + _0x52049f(0x1c4) + _0x52049f(0x269) + _0x52049f(0x72d) + _0x52049f(0x17d) + _0x52049f(0xd2) + _0x52049f(0x3fb) + _0x52049f(0x73d) + _0x52049f(0x568) + _0x52049f(0x4e9) + _0x52049f(0x21d) + _0x52049f(0x27a) + _0x52049f(0x1c4) + _0x52049f(0x269) + _0x52049f(0x72d) + _0x52049f(0x793) + _0x52049f(0x80e) + _0x52049f(0x19f) + _0x52049f(0x270) + _0x52049f(0x38f) + _0x52049f(0x73a) + _0x52049f(0x227) + _0x52049f(0x147) + _0x52049f(0x2f2) + _0x52049f(0x499) + _0x52049f(0x1fb) + _0x52049f(0x4de) + _0x52049f(0x1d6) + _0x52049f(0x270) + _0x52049f(0x9d) + _0x52049f(0x2de) + _0x52049f(0x3b8) + _0x52049f(0x79c) + _0x52049f(0x799) + _0x52049f(0x725) + _0x52049f(0x5a0) + _0x52049f(0x146) + _0x52049f(0x218) + _0x52049f(0x7ea) + _0x52049f(0x14d) + _0x52049f(0x870) + _0x52049f(0x2df) + _0x52049f(0x731) + _0x52049f(0x58b) + _0x52049f(0x4a9) + _0x52049f(0x119) + _0x52049f(0xf0) + _0x52049f(0x150) + _0x52049f(0x21b) + _0x52049f(0x4ee) + _0x52049f(0x269) + _0x52049f(0x6c8) + _0x52049f(0x4ea) + _0x52049f(0x513) + _0x52049f(0x5ac) + _0x52049f(0x52b) + _0x52049f(0x2d1) + _0x52049f(0x142) + _0x52049f(0x540) + _0x52049f(0x7a) + _0x52049f(0x87a) + _0x52049f(0x588) + _0x52049f(0x479) + _0x52049f(0x60f) + _0x52049f(0x4e9) + _0x52049f(0x251) + _0x52049f(0x6b) + _0x52049f(0x405) + _0x52049f(0x636) + _0x52049f(0xbe) + _0x52049f(0x7f4) + _0x52049f(0x538) + _0x52049f(0x678) + _0x52049f(0x28b) + _0x52049f(0x3ba) + _0x52049f(0x50e) + _0x52049f(0x5a5) + _0x52049f(0x583) + _0x52049f(0x450) + _0x52049f(0x23f) + _0x52049f(0x651) + _0x52049f(0x204) + _0x52049f(0xba) + _0x52049f(0x5f8) + _0x52049f(0x641) + _0x52049f(0x58b) + _0x52049f(0x80d) + _0x52049f(0x1e0) + _0x52049f(0x25b) + _0x52049f(0x3b4) + _0x52049f(0x31e) + _0x52049f(0x296) + _0x52049f(0x195) + _0x52049f(0x140) + _0x52049f(0x106) + _0x52049f(0x131) + _0x52049f(0x234) + _0x52049f(0x114) + _0x52049f(0x27b) + _0x52049f(0x463)) + (_0x52049f(0x28b) + _0x52049f(0x583) + _0x52049f(0x84f) + _0x52049f(0x51d) + _0x52049f(0x61f) + _0x52049f(0x466) + _0x52049f(0x17e) + _0x52049f(0x565) + _0x52049f(0x19c) + _0x52049f(0x6c6) + _0x52049f(0x6b7) + _0x52049f(0x1c4) + _0x52049f(0x2a9) + _0x52049f(0x6cb) + _0x52049f(0x449) + _0x52049f(0x46f) + _0x52049f(0x159) + _0x52049f(0x85) + _0x52049f(0x314) + _0x52049f(0x8f) + _0x52049f(0x84b) + _0x52049f(0x22b) + _0x52049f(0x391) + _0x52049f(0x72a) + _0x52049f(0x80b) + _0x52049f(0xf6) + _0x52049f(0x3f2) + _0x52049f(0x3c7) + _0x52049f(0x642) + _0x52049f(0x4ae) + _0x52049f(0x2d6) + _0x52049f(0x557) + _0x52049f(0x3a4) + _0x52049f(0x131) + _0x52049f(0x234) + _0x52049f(0x258) + _0x52049f(0x1ba) + _0x52049f(0x13d) + _0x52049f(0x6b1) + _0x52049f(0x7e1) + _0x52049f(0x575) + _0x52049f(0x210) + _0x52049f(0x6be) + _0x52049f(0x102) + _0x52049f(0x76f) + _0x52049f(0x57c) + _0x52049f(0x462) + _0x52049f(0x760) + _0x52049f(0x6b1) + _0x52049f(0x7e1) + _0x52049f(0x227) + _0x52049f(0x147) + _0x52049f(0x2f2) + _0x52049f(0x499) + _0x52049f(0x1fb) + _0x52049f(0x4de) + _0x52049f(0x1e2) + _0x52049f(0x1e6) + _0x52049f(0x546) + _0x52049f(0x224) + _0x52049f(0x4cb) + _0x52049f(0x423) + _0x52049f(0x74d) + _0x52049f(0x452) + _0x52049f(0x2c7) + _0x52049f(0x3d9) + _0x52049f(0x1ce) + _0x52049f(0x651) + _0x52049f(0x4e8) + _0x52049f(0x597) + _0x52049f(0x270) + _0x52049f(0x38f) + _0x52049f(0x575) + _0x52049f(0x505) + _0x52049f(0x770) + _0x52049f(0x322) + _0x52049f(0x5cb) + _0x52049f(0x6c2) + _0x52049f(0x74a) + _0x52049f(0x5d1) + _0x52049f(0x4cc) + _0x52049f(0x1f6) + _0x52049f(0x2bd) + _0x52049f(0x67f) + _0x52049f(0x270) + _0x52049f(0x2e4) + _0x52049f(0x12e) + _0x52049f(0x451) + _0x52049f(0x6f1) + _0x52049f(0x575) + _0x52049f(0x600) + _0x52049f(0x7d9) + _0x52049f(0x1d8) + _0x52049f(0x270) + _0x52049f(0x867) + _0x52049f(0x16a) + _0x52049f(0x328) + _0x52049f(0x86e) + _0x52049f(0x12e) + _0x52049f(0x2b4) + _0x52049f(0x404) + _0x52049f(0x15b) + _0x52049f(0x71c) + _0x52049f(0x62c) + _0x52049f(0x451) + _0x52049f(0x422) + _0x52049f(0x28e) + _0x52049f(0x62c) + _0x52049f(0x529) + _0x52049f(0x284) + _0x52049f(0x121) + _0x52049f(0x95) + _0x52049f(0xf5) + _0x52049f(0x7fb) + _0x52049f(0x332) + _0x52049f(0x2f0) + _0x52049f(0x46d) + _0x52049f(0x45b) + _0x52049f(0x57b) + _0x52049f(0x61d) + _0x52049f(0x3e6) + _0x52049f(0x7b1) + _0x52049f(0x76b) + _0x52049f(0x836) + _0x52049f(0x631) + _0x52049f(0x270) + _0x52049f(0x218) + _0x52049f(0x1d3) + _0x52049f(0x69e) + _0x52049f(0x5cc) + _0x52049f(0x76d) + _0x52049f(0x4f3) + _0x52049f(0x6db) + _0x52049f(0x576) + _0x52049f(0x358) + _0x52049f(0x774) + _0x52049f(0x435) + _0x52049f(0x4dc) + _0x52049f(0x6ca) + _0x52049f(0x48c) + _0x52049f(0x86c) + _0x52049f(0x2a8) + _0x52049f(0x63e) + _0x52049f(0x83f) + _0x52049f(0x7a5) + _0x52049f(0x44d) + _0x52049f(0x7b8) + _0x52049f(0x128) + _0x52049f(0x52e) + _0x52049f(0x86c) + _0x52049f(0x331) + _0x52049f(0x694) + _0x52049f(0x737) + _0x52049f(0x852) + _0x52049f(0x56f) + _0x52049f(0xf2) + _0x52049f(0x163) + _0x52049f(0x1c6) + _0x52049f(0x6bd) + _0x52049f(0x47c) + _0x52049f(0x626) + _0x52049f(0x323) + _0x52049f(0x577) + _0x52049f(0x663) + _0x52049f(0x6db) + _0x52049f(0x4b1) + _0x52049f(0x4a8) + _0x52049f(0x299) + _0x52049f(0x5de) + _0x52049f(0x58b) + _0x52049f(0x1aa) + _0x52049f(0x86c) + _0x52049f(0x4b3) + _0x52049f(0x1b7) + _0x52049f(0x456) + _0x52049f(0x374) + _0x52049f(0x41a) + _0x52049f(0x4a5) + _0x52049f(0x254) + _0x52049f(0x4e7) + _0x52049f(0x80d) + _0x52049f(0x1e0) + _0x52049f(0x24b) + _0x52049f(0x358) + _0x52049f(0x7cf) + _0x52049f(0x73b) + _0x52049f(0x413) + '\x0a')), STATUS_LINE_CONTENT = _0x52049f(0x1e4) + _0x52049f(0x656) + _0x52049f(0x602) + _0x52049f(0x1d0) + _0x52049f(0x3ea) + _0x52049f(0x623) + _0x52049f(0x403) + _0x52049f(0x326) + _0x52049f(0x35b) + _0x52049f(0x70d) + _0x52049f(0xb5) + _0x52049f(0x7d1) + _0x52049f(0x662) + _0x52049f(0x1ee) + _0x52049f(0x823) + _0x52049f(0x7c3) + _0x52049f(0x430) + _0x52049f(0x7f2) + _0x52049f(0x608) + _0x52049f(0x2b7) + _0x52049f(0x12d) + _0x52049f(0x39d) + _0x52049f(0x4d0) + _0x52049f(0x3b0) + _0x52049f(0x5f9) + _0x52049f(0x512) + _0x52049f(0x427) + _0x52049f(0xce) + _0x52049f(0x18d) + _0x52049f(0x2f7) + _0x52049f(0x4bd) + _0x52049f(0x14c) + _0x52049f(0x78d) + _0x52049f(0x813) + _0x52049f(0x1da) + _0x52049f(0xb8) + _0x52049f(0x34b) + _0x52049f(0x62f) + _0x52049f(0x65c) + _0x52049f(0x5c0) + STATUS_LINE_VERSION + (_0x52049f(0x465) + _0x52049f(0x2ad) + _0x52049f(0x6e0) + _0x52049f(0x252) + _0x52049f(0x17b) + _0x52049f(0x8c) + _0x52049f(0x353) + _0x52049f(0x1cd) + _0x52049f(0x67e) + _0x52049f(0x359) + _0x52049f(0x17b) + _0x52049f(0x871) + _0x52049f(0x828) + _0x52049f(0x6f6) + _0x52049f(0x638) + _0x52049f(0x44b) + _0x52049f(0x724) + _0x52049f(0xdc) + _0x52049f(0x40b) + _0x52049f(0x90) + _0x52049f(0x4fb) + _0x52049f(0x202)) + STATUS_LINE_VERSION + (_0x52049f(0x381) + _0x52049f(0x2ab) + _0x52049f(0x717) + _0x52049f(0x69d) + _0x52049f(0x777) + _0x52049f(0x69d) + _0x52049f(0x32d) + _0x52049f(0x2fc) + _0x52049f(0x802) + _0x52049f(0x632) + _0x52049f(0x1b5) + _0x52049f(0x6c0) + _0x52049f(0x66c) + _0x52049f(0x5b7) + _0x52049f(0x173) + _0x52049f(0x2e5) + _0x52049f(0x15c) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x865) + _0x52049f(0x129) + _0x52049f(0x82b) + _0x52049f(0x438) + _0x52049f(0xfe) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x379) + _0x52049f(0x20f) + _0x52049f(0x10d) + _0x52049f(0x1fe) + _0x52049f(0xc2) + _0x52049f(0x382) + _0x52049f(0x3e9) + _0x52049f(0x5d7) + _0x52049f(0x584) + _0x52049f(0x78c) + _0x52049f(0x775) + _0x52049f(0x6ea) + _0x52049f(0x40e) + _0x52049f(0x5a9) + _0x52049f(0x81) + _0x52049f(0x1f3) + _0x52049f(0x2a7) + _0x52049f(0x155) + _0x52049f(0x1fe) + _0x52049f(0x5ec) + _0x52049f(0x33c) + _0x52049f(0x844) + _0x52049f(0x401) + _0x52049f(0x37c) + _0x52049f(0x76a) + _0x52049f(0x566) + _0x52049f(0x1c2) + _0x52049f(0x75e) + _0x52049f(0x808) + _0x52049f(0x411) + _0x52049f(0x49c) + _0x52049f(0x4b0) + _0x52049f(0x6dd) + _0x52049f(0x5e4) + _0x52049f(0x4b7) + _0x52049f(0x13a) + _0x52049f(0x5ae) + _0x52049f(0x834) + _0x52049f(0x1ab) + _0x52049f(0x2a4) + _0x52049f(0x6db) + _0x52049f(0x507) + _0x52049f(0x2e8) + _0x52049f(0x832) + _0x52049f(0x132) + _0x52049f(0x710) + _0x52049f(0xcd) + _0x52049f(0x9a) + _0x52049f(0x471) + _0x52049f(0x125) + _0x52049f(0x7a2) + _0x52049f(0x4d1) + _0x52049f(0x873) + _0x52049f(0x136) + _0x52049f(0x324) + _0x52049f(0x6db) + _0x52049f(0x9d) + _0x52049f(0x5db) + _0x52049f(0x745) + _0x52049f(0x7c6) + _0x52049f(0xc9) + _0x52049f(0x312) + _0x52049f(0x1fb) + _0x52049f(0x2f5) + _0x52049f(0x7dc) + _0x52049f(0x1a1) + _0x52049f(0x5a4) + _0x52049f(0x698) + _0x52049f(0x13e) + _0x52049f(0x5fc) + _0x52049f(0x301) + _0x52049f(0x6db) + _0x52049f(0x7b3) + _0x52049f(0xb4) + _0x52049f(0x695) + _0x52049f(0x364) + _0x52049f(0x3a5) + _0x52049f(0x178) + _0x52049f(0x767) + _0x52049f(0x270) + _0x52049f(0x453) + _0x52049f(0xbb) + _0x52049f(0x498) + _0x52049f(0x3ba) + _0x52049f(0x315) + _0x52049f(0x454) + _0x52049f(0x26e) + _0x52049f(0xf9) + _0x52049f(0x786) + _0x52049f(0x7eb) + _0x52049f(0x80c) + _0x52049f(0x564) + _0x52049f(0x3a6) + _0x52049f(0x48a) + _0x52049f(0x727) + _0x52049f(0x60c) + _0x52049f(0x838) + _0x52049f(0x3c3) + _0x52049f(0x6f2) + _0x52049f(0xef) + _0x52049f(0x1ae) + _0x52049f(0x794) + _0x52049f(0x5b6) + _0x52049f(0x727) + _0x52049f(0x59d) + _0x52049f(0x674) + _0x52049f(0x345) + _0x52049f(0x624) + _0x52049f(0x3ed) + _0x52049f(0x3ac) + _0x52049f(0x1f2) + _0x52049f(0x423) + _0x52049f(0x208) + _0x52049f(0x22e) + _0x52049f(0x319) + _0x52049f(0x3a6) + _0x52049f(0x260) + _0x52049f(0x850) + _0x52049f(0x137) + _0x52049f(0x5b1) + _0x52049f(0x6db) + _0x52049f(0x35b) + _0x52049f(0x127) + _0x52049f(0x6eb) + _0x52049f(0x805) + _0x52049f(0x270) + _0x52049f(0x675) + _0x52049f(0x39c) + _0x52049f(0x1a9) + _0x52049f(0x43a) + _0x52049f(0x219) + _0x52049f(0x5b1) + _0x52049f(0x6db) + _0x52049f(0x544) + _0x52049f(0x270) + _0x52049f(0x177) + _0x52049f(0x39e) + _0x52049f(0x685) + _0x52049f(0x794) + _0x52049f(0x30d) + _0x52049f(0x4ce) + _0x52049f(0x137) + _0x52049f(0x5b1) + _0x52049f(0x6db) + _0x52049f(0x5c6) + _0x52049f(0x40c) + _0x52049f(0x9f) + _0x52049f(0x33d) + _0x52049f(0x670) + _0x52049f(0x5b1) + (_0x52049f(0x6db) + _0x52049f(0x1ae) + _0x52049f(0x794) + _0x52049f(0x3d6) + _0x52049f(0xae) + _0x52049f(0x835) + _0x52049f(0xd5) + _0x52049f(0x11f) + _0x52049f(0x750) + _0x52049f(0xa9) + _0x52049f(0x6b8) + _0x52049f(0x190) + _0x52049f(0x6db) + _0x52049f(0x6db) + _0x52049f(0x3ba) + _0x52049f(0x1d9) + _0x52049f(0x1cf) + _0x52049f(0x197) + _0x52049f(0x40c) + _0x52049f(0x30f) + _0x52049f(0x519) + _0x52049f(0x1e9) + _0x52049f(0x551) + _0x52049f(0x840) + _0x52049f(0x21e) + _0x52049f(0x2f8) + _0x52049f(0x1a5) + _0x52049f(0x6ef) + _0x52049f(0x6db) + _0x52049f(0x6db) + _0x52049f(0x5fe) + _0x52049f(0x52d) + _0x52049f(0x7ae) + _0x52049f(0x5bb) + _0x52049f(0x91) + _0x52049f(0x74c) + _0x52049f(0x7c7) + _0x52049f(0x271) + _0x52049f(0x270) + _0x52049f(0x6db) + _0x52049f(0x6db) + _0x52049f(0x15e) + _0x52049f(0x6a2) + _0x52049f(0x52f) + _0x52049f(0x831) + _0x52049f(0x395) + _0x52049f(0x2b2) + _0x52049f(0x6db) + _0x52049f(0x6db) + _0x52049f(0x6db) + _0x52049f(0xe1) + _0x52049f(0x203) + _0x52049f(0x6bb) + _0x52049f(0x63f) + _0x52049f(0x6b8) + _0x52049f(0xae) + _0x52049f(0x506) + _0x52049f(0xd5) + _0x52049f(0x45f) + _0x52049f(0x2af) + _0x52049f(0x410) + _0x52049f(0x324) + _0x52049f(0x7c6) + _0x52049f(0x336) + _0x52049f(0x7a7) + _0x52049f(0xb0) + _0x52049f(0x221) + _0x52049f(0x64f) + _0x52049f(0x590) + _0x52049f(0x5ff) + _0x52049f(0x270) + _0x52049f(0x35a) + _0x52049f(0x79e) + _0x52049f(0x37c) + _0x52049f(0xa9) + _0x52049f(0x6bc) + _0x52049f(0x746) + _0x52049f(0x74b) + _0x52049f(0x5d4) + _0x52049f(0x7c0) + _0x52049f(0x151) + _0x52049f(0x5bf) + _0x52049f(0x746) + _0x52049f(0x143) + _0x52049f(0x2d4) + _0x52049f(0x158) + _0x52049f(0x2d3) + _0x52049f(0x15f) + _0x52049f(0x530) + _0x52049f(0x270) + _0x52049f(0x849) + _0x52049f(0x550) + _0x52049f(0x84a) + _0x52049f(0x169) + _0x52049f(0x160) + _0x52049f(0x89) + _0x52049f(0x304) + _0x52049f(0x6db) + _0x52049f(0x34f) + _0x52049f(0x64a) + _0x52049f(0x5eb) + _0x52049f(0x137) + _0x52049f(0x5b1) + _0x52049f(0x6db) + _0x52049f(0x9d) + _0x52049f(0x3e2) + _0x52049f(0x72f) + _0x52049f(0x185) + _0x52049f(0x3fc) + _0x52049f(0x429) + _0x52049f(0x82e) + _0x52049f(0x71f) + _0x52049f(0x37d) + _0x52049f(0x324) + _0x52049f(0x7c6) + _0x52049f(0x336) + _0x52049f(0x7a7) + _0x52049f(0xb0) + _0x52049f(0x221) + _0x52049f(0x64f) + _0x52049f(0x590) + _0x52049f(0x5ff) + _0x52049f(0x270) + _0x52049f(0x372) + _0x52049f(0x310) + _0x52049f(0x862) + _0x52049f(0x364) + _0x52049f(0xf8) + _0x52049f(0x7e9) + _0x52049f(0x2ca) + _0x52049f(0x37e) + _0x52049f(0x270) + _0x52049f(0x453) + _0x52049f(0x36e) + _0x52049f(0x412) + _0x52049f(0x10e) + _0x52049f(0x27e) + _0x52049f(0x845) + _0x52049f(0x837) + _0x52049f(0x1c4) + _0x52049f(0x2bb) + _0x52049f(0x174) + _0x52049f(0x5a1) + _0x52049f(0x595) + _0x52049f(0x829) + _0x52049f(0x47d) + _0x52049f(0x1ae) + _0x52049f(0x5e3) + _0x52049f(0x778) + _0x52049f(0x1f3) + _0x52049f(0x44a) + _0x52049f(0x17c) + _0x52049f(0x1d2) + _0x52049f(0x191) + _0x52049f(0x12a) + _0x52049f(0x57e) + _0x52049f(0x5b4) + _0x52049f(0x270) + _0x52049f(0x849) + _0x52049f(0x10a) + _0x52049f(0x43c) + _0x52049f(0x704) + _0x52049f(0x89) + _0x52049f(0x304) + _0x52049f(0x6db) + _0x52049f(0x34f) + _0x52049f(0x64a) + _0x52049f(0x5eb) + _0x52049f(0x137) + _0x52049f(0x5b1) + _0x52049f(0x6db) + _0x52049f(0x9d) + _0x52049f(0x3e2) + _0x52049f(0x72f) + _0x52049f(0x2da) + _0x52049f(0x1bb) + _0x52049f(0x603) + _0x52049f(0x71f) + _0x52049f(0x37d) + _0x52049f(0x324) + _0x52049f(0x7c6) + _0x52049f(0x336) + _0x52049f(0x7a7) + _0x52049f(0xb0) + _0x52049f(0x221) + _0x52049f(0x64f) + _0x52049f(0x590) + _0x52049f(0x5ff) + _0x52049f(0x270) + _0x52049f(0x372) + _0x52049f(0x310) + _0x52049f(0x862) + _0x52049f(0x364) + _0x52049f(0x32a) + _0x52049f(0x84e) + _0x52049f(0x7f8) + _0x52049f(0x4f8) + _0x52049f(0x32b) + _0x52049f(0xb6) + _0x52049f(0xcb)) + (_0x52049f(0x270) + _0x52049f(0x21f) + _0x52049f(0x43d) + _0x52049f(0x7e) + _0x52049f(0x151) + _0x52049f(0x13c) + _0x52049f(0x3ba) + _0x52049f(0x315) + _0x52049f(0x580) + _0x52049f(0x115) + _0x52049f(0x751) + _0x52049f(0x75d) + _0x52049f(0x7b9) + _0x52049f(0x252) + _0x52049f(0x17b) + _0x52049f(0x8c) + _0x52049f(0x353) + _0x52049f(0x1cd) + _0x52049f(0x67e) + _0x52049f(0x67c) + _0x52049f(0x657) + _0x52049f(0x3dd) + _0x52049f(0x742) + _0x52049f(0xce) + _0x52049f(0x170) + _0x52049f(0x3be) + _0x52049f(0x67c) + _0x52049f(0x16c) + _0x52049f(0x574) + _0x52049f(0x5d4) + _0x52049f(0x53d) + _0x52049f(0x484) + _0x52049f(0x51a) + _0x52049f(0x130) + _0x52049f(0x361) + _0x52049f(0x6ae) + _0x52049f(0x28c) + _0x52049f(0x1c2) + _0x52049f(0x1d1) + _0x52049f(0x199) + _0x52049f(0x681) + _0x52049f(0x267) + _0x52049f(0x13a) + _0x52049f(0x1be) + _0x52049f(0x304) + _0x52049f(0x6db) + _0x52049f(0x273) + _0x52049f(0x6bf) + _0x52049f(0x157) + _0x52049f(0x6db) + _0x52049f(0x62a) + _0x52049f(0x7aa) + _0x52049f(0x53d) + _0x52049f(0x22e) + _0x52049f(0x841) + _0x52049f(0x7e3) + _0x52049f(0x604) + _0x52049f(0x4a0) + _0x52049f(0x148) + _0x52049f(0x6c6) + _0x52049f(0x7ba) + _0x52049f(0x76) + _0x52049f(0x225) + _0x52049f(0x3a8) + _0x52049f(0x270) + _0x52049f(0x3ab) + _0x52049f(0xb9) + _0x52049f(0xe0) + _0x52049f(0x594) + _0x52049f(0xc1) + _0x52049f(0x781) + _0x52049f(0x72e) + _0x52049f(0x353) + _0x52049f(0x58f) + _0x52049f(0x218) + _0x52049f(0x4a6) + _0x52049f(0x148) + _0x52049f(0x6c6) + _0x52049f(0x730) + _0x52049f(0x145) + _0x52049f(0x225) + _0x52049f(0x71e) + _0x52049f(0x35c) + _0x52049f(0x5d5) + _0x52049f(0x6d9) + _0x52049f(0x270) + _0x52049f(0x372) + _0x52049f(0x310) + _0x52049f(0x7e4) + _0x52049f(0x2fe) + _0x52049f(0x486) + _0x52049f(0x29f) + _0x52049f(0x3c4) + _0x52049f(0x2ec) + _0x52049f(0x748) + _0x52049f(0x7d6) + _0x52049f(0x4eb) + _0x52049f(0x613) + _0x52049f(0x6d0) + _0x52049f(0x144) + _0x52049f(0x195) + _0x52049f(0x846) + _0x52049f(0x7cd) + _0x52049f(0x798) + _0x52049f(0x1ae) + _0x52049f(0x7b4) + _0x52049f(0x7ba) + _0x52049f(0x7e9) + _0x52049f(0x2ca) + _0x52049f(0x2f4) + _0x52049f(0x270) + _0x52049f(0x849) + _0x52049f(0x10a) + _0x52049f(0x2db) + _0x52049f(0x6db) + _0x52049f(0x62a) + _0x52049f(0x7aa) + _0x52049f(0x7f6) + _0x52049f(0x4f4) + _0x52049f(0x3b4) + _0x52049f(0x501) + _0x52049f(0x3c8) + _0x52049f(0x7da) + _0x52049f(0x5b0) + _0x52049f(0x4b0) + _0x52049f(0xd0) + _0x52049f(0x746) + _0x52049f(0x30c) + _0x52049f(0x1df) + _0x52049f(0x3c2) + _0x52049f(0x503) + _0x52049f(0x3ec) + _0x52049f(0x846) + _0x52049f(0x7cd) + _0x52049f(0x798) + _0x52049f(0x1e1) + _0x52049f(0x424) + _0x52049f(0x75f) + _0x52049f(0x1ec) + _0x52049f(0x244) + _0x52049f(0x1b8) + _0x52049f(0x5d6) + _0x52049f(0x123) + _0x52049f(0x341) + _0x52049f(0x692) + _0x52049f(0x3bf) + _0x52049f(0x61a) + _0x52049f(0x86) + _0x52049f(0x26a) + _0x52049f(0x6db) + _0x52049f(0x62a) + _0x52049f(0x7aa) + _0x52049f(0x7f6) + _0x52049f(0x634) + _0x52049f(0x3b4) + _0x52049f(0x2dc) + _0x52049f(0x5a7) + _0x52049f(0x59e) + _0x52049f(0x53d) + _0x52049f(0x791) + _0x52049f(0x85f) + _0x52049f(0xd3) + _0x52049f(0x5ac) + _0x52049f(0x131) + _0x52049f(0x811) + _0x52049f(0x433) + _0x52049f(0x72e) + _0x52049f(0x353) + _0x52049f(0x58f) + _0x52049f(0x576) + _0x52049f(0x701) + _0x52049f(0x86d) + _0x52049f(0x720) + _0x52049f(0x75f) + _0x52049f(0x457) + _0x52049f(0x5d9) + _0x52049f(0x6c7) + _0x52049f(0x440) + _0x52049f(0x270) + _0x52049f(0x2b5) + _0x52049f(0x50c) + _0x52049f(0x79) + _0x52049f(0x5b1) + _0x52049f(0x6db) + _0x52049f(0x615) + _0x52049f(0x2ae) + _0x52049f(0x494) + _0x52049f(0x606) + _0x52049f(0x42b) + _0x52049f(0x701) + _0x52049f(0x86d) + _0x52049f(0x849) + _0x52049f(0x478) + _0x52049f(0x165) + _0x52049f(0x1fa) + _0x52049f(0x4be) + _0x52049f(0x3b3) + _0x52049f(0x548) + _0x52049f(0x6db) + _0x52049f(0x218)) + (_0x52049f(0x615) + _0x52049f(0x2ba) + _0x52049f(0x6db) + _0x52049f(0x6db) + _0x52049f(0x34f) + _0x52049f(0x740) + _0x52049f(0x44c) + _0x52049f(0x5c7) + _0x52049f(0x707) + _0x52049f(0x4e9) + _0x52049f(0x2e9) + _0x52049f(0x863) + _0x52049f(0x2ec) + _0x52049f(0x748) + _0x52049f(0x483) + _0x52049f(0x28b) + _0x52049f(0x757) + _0x52049f(0x627) + _0x52049f(0x238) + _0x52049f(0x7b3) + _0x52049f(0xb4) + _0x52049f(0x2e1) + _0x52049f(0x2a3) + _0x52049f(0x370) + _0x52049f(0x5b1) + _0x52049f(0x52a) + _0x52049f(0x270) + _0x52049f(0x6e1) + _0x52049f(0x51c) + _0x52049f(0x56a) + _0x52049f(0x7ab) + _0x52049f(0x12c) + _0x52049f(0x40a) + _0x52049f(0x3e1) + _0x52049f(0x112) + _0x52049f(0x67a) + _0x52049f(0x74f) + _0x52049f(0x848) + _0x52049f(0x6a8) + _0x52049f(0x324) + _0x52049f(0x6db) + _0x52049f(0x3a9) + _0x52049f(0x444) + _0x52049f(0x569) + _0x52049f(0x1a0) + _0x52049f(0x5ed) + _0x52049f(0x389) + _0x52049f(0x83b) + _0x52049f(0x38e) + _0x52049f(0x288) + _0x52049f(0x6db) + _0x52049f(0x9b) + _0x52049f(0x43d) + _0x52049f(0x198) + _0x52049f(0x6f3) + _0x52049f(0x29c) + _0x52049f(0x6db) + _0x52049f(0x7e6) + _0x52049f(0x189) + _0x52049f(0x25a) + _0x52049f(0x769) + _0x52049f(0x4d8) + _0x52049f(0x3ba) + _0x52049f(0x1d9) + _0x52049f(0x2f6) + _0x52049f(0x666) + _0x52049f(0x567) + _0x52049f(0x6db) + _0x52049f(0x5b0) + _0x52049f(0x48d) + _0x52049f(0x63b) + _0x52049f(0x559) + _0x52049f(0x176) + _0x52049f(0x525) + _0x52049f(0x7fd) + _0x52049f(0xcf) + _0x52049f(0x785) + _0x52049f(0x270) + _0x52049f(0x1e1) + _0x52049f(0x424) + _0x52049f(0x189) + _0x52049f(0x87) + _0x52049f(0x6db) + _0x52049f(0x6db) + _0x52049f(0x1b0) + _0x52049f(0x7d4) + _0x52049f(0x4c8) + _0x52049f(0x20b) + _0x52049f(0x748) + _0x52049f(0x6db) + _0x52049f(0x4d2) + _0x52049f(0x673) + _0x52049f(0x288) + _0x52049f(0x18c) + _0x52049f(0x399) + _0x52049f(0x7a7) + _0x52049f(0xb0) + _0x52049f(0x221) + _0x52049f(0x776) + _0x52049f(0x270) + _0x52049f(0x6e1) + _0x52049f(0x718) + _0x52049f(0x67) + _0x52049f(0x5c5) + _0x52049f(0x266) + _0x52049f(0x254) + _0x52049f(0xbf) + _0x52049f(0x286) + _0x52049f(0x7e8) + _0x52049f(0x6fa) + _0x52049f(0x5e6) + _0x52049f(0x809) + _0x52049f(0x6db) + _0x52049f(0x4d2) + _0x52049f(0x673) + _0x52049f(0x324) + _0x52049f(0x7c6) + _0x52049f(0x262) + _0x52049f(0x349) + _0x52049f(0x431) + _0x52049f(0x6db) + _0x52049f(0x47e) + _0x52049f(0x441) + _0x52049f(0x611) + _0x52049f(0x230) + _0x52049f(0x4e1) + _0x52049f(0x729) + _0x52049f(0x44e) + _0x52049f(0x69b) + _0x52049f(0x4d9) + _0x52049f(0x561) + _0x52049f(0x6f8) + _0x52049f(0x6db) + _0x52049f(0x344) + _0x52049f(0x696) + _0x52049f(0x827) + _0x52049f(0x282) + _0x52049f(0x5e5) + _0x52049f(0x5b5) + _0x52049f(0x816) + _0x52049f(0x30b) + _0x52049f(0x5b1) + _0x52049f(0x2b9) + _0x52049f(0x680)));
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
_0x318ccd: 0x736,
|
|
65
|
-
_0x52e702: 0x240,
|
|
66
|
-
_0x1b1611: 0x4db,
|
|
67
|
-
_0x2ea923: 0x65,
|
|
68
|
-
_0x5cdee4: 0x736,
|
|
69
|
-
_0x2c8441: 0x4ba,
|
|
70
|
-
_0xc3dfba: 0x4db,
|
|
71
|
-
_0x3a640b: 0x736,
|
|
72
|
-
_0x2db651: 0x5cc,
|
|
73
|
-
_0x1dd8fc: 0x65,
|
|
74
|
-
_0x13f035: 0x736,
|
|
75
|
-
_0x2b5c42: 0x3f7,
|
|
76
|
-
_0x5e736d: 0x240,
|
|
77
|
-
_0x4c0f6: 0x205,
|
|
78
|
-
_0x5652d7: 0x814,
|
|
79
|
-
_0x579f62: 0x240,
|
|
80
|
-
_0x182b02: 0x814,
|
|
81
|
-
_0x401c7c: 0x240,
|
|
82
|
-
_0x2397a5: 0x814,
|
|
83
|
-
_0x13cf7e: 0x2d8,
|
|
84
|
-
_0x3f7f3a: 0x240,
|
|
85
|
-
_0x361f4b: 0x814,
|
|
86
|
-
_0x312fbb: 0x643,
|
|
87
|
-
_0x45da0e: 0x82f,
|
|
88
|
-
_0x54d7b4: 0x18b,
|
|
89
|
-
_0x40bb40: 0x2e7,
|
|
90
|
-
_0x3bb956: 0xfb,
|
|
91
|
-
_0x4255d5: 0x7ce,
|
|
92
|
-
_0x38ecb1: 0x16b,
|
|
93
|
-
_0x2864ea: 0x86f,
|
|
94
|
-
_0x41b55d: 0x3a1,
|
|
95
|
-
_0x44b730: 0x3b5,
|
|
96
|
-
_0x5b99c5: 0x2cb,
|
|
97
|
-
_0x142739: 0x25e,
|
|
98
|
-
_0x4dc3ce: 0x572
|
|
99
|
-
}, _0x27e6f7 = {
|
|
100
|
-
_0x2ccab1: 0x240,
|
|
101
|
-
_0x227f0a: 0x240,
|
|
102
|
-
_0x533aa9: 0x4ba,
|
|
103
|
-
_0x3e50a5: 0x5cc
|
|
104
|
-
}, _0x4a5e4a = _0x53af, _0x51dce9 = path[_0x4a5e4a(_0x330039._0x524000)](os[_0x4a5e4a(_0x330039._0x427421) + 'ir'](), _0x4a5e4a(_0x330039._0x45a73d) + 'de'), _0x4719d5 = path[_0x4a5e4a(_0x330039._0x42f15c)](_0x51dce9, _0x4a5e4a(_0x330039._0x5d9485)), _0x47695d = path[_0x4a5e4a(_0x330039._0xa214e8)](_0x4719d5, _0x4a5e4a(_0x330039._0x9ee105) + _0x4a5e4a(_0x330039._0x5d2de1) + _0x4a5e4a(_0x330039._0x13b43a) + _0x4a5e4a(_0x330039._0x4ac11f)), _0x2d9813 = path[_0x4a5e4a(_0x330039._0x42f15c)](_0x51dce9, _0x4a5e4a(_0x330039._0x1e4ed2) + _0x4a5e4a(_0x330039._0x2c2985) + _0x4a5e4a(_0x330039._0x4ff2ec));
|
|
228
|
+
} catch {}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// Check if GAL is installed, self-clean if not
|
|
232
|
+
if (!isGalInstalled()) {
|
|
233
|
+
selfClean();
|
|
234
|
+
process.exit(0);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Read GAL CLI config (auth token, default org)
|
|
238
|
+
function readGalConfig() {
|
|
239
|
+
if (!fs.existsSync(GAL_CONFIG_FILE)) return null;
|
|
240
|
+
try {
|
|
241
|
+
return JSON.parse(fs.readFileSync(GAL_CONFIG_FILE, 'utf-8'));
|
|
242
|
+
} catch { return null; }
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// Decode JWT without verification (just to check expiration)
|
|
246
|
+
function decodeJwt(token) {
|
|
247
|
+
try {
|
|
248
|
+
const parts = token.split('.');
|
|
249
|
+
if (parts.length !== 3) return null;
|
|
250
|
+
const payload = JSON.parse(Buffer.from(parts[1], 'base64').toString('utf-8'));
|
|
251
|
+
return payload;
|
|
252
|
+
} catch { return null; }
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// =============================================================================
|
|
256
|
+
// Auto-update check: run gal update if a newer version is cached
|
|
257
|
+
// =============================================================================
|
|
258
|
+
function checkAndAutoUpdate() {
|
|
259
|
+
const updateCachePath = path.join(os.homedir(), '.gal', 'update-cache.json');
|
|
260
|
+
if (!fs.existsSync(updateCachePath)) return null;
|
|
261
|
+
try {
|
|
262
|
+
const cache = JSON.parse(fs.readFileSync(updateCachePath, 'utf-8'));
|
|
263
|
+
if (!cache.latestVersion) return null;
|
|
264
|
+
let currentVersion;
|
|
105
265
|
try {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
266
|
+
currentVersion = execSync('gal --version', { stdio: 'pipe', timeout: 5000 }).toString().trim();
|
|
267
|
+
} catch { return null; }
|
|
268
|
+
const cv = currentVersion.replace(/^v/, '').split('.').map(Number);
|
|
269
|
+
const lv = cache.latestVersion.replace(/^v/, '').split('.').map(Number);
|
|
270
|
+
let needsUpdate = false;
|
|
271
|
+
for (let i = 0; i < 3; i++) {
|
|
272
|
+
if ((cv[i] || 0) < (lv[i] || 0)) { needsUpdate = true; break; }
|
|
273
|
+
if ((cv[i] || 0) > (lv[i] || 0)) break;
|
|
274
|
+
}
|
|
275
|
+
if (!needsUpdate) return null;
|
|
276
|
+
if (process.env.GAL_NO_AUTO_UPDATE === '1' || process.env.CI) return null;
|
|
277
|
+
try {
|
|
278
|
+
execSync('gal update', { stdio: 'pipe', timeout: 30000 });
|
|
279
|
+
return cache.latestVersion;
|
|
280
|
+
} catch { return null; }
|
|
281
|
+
} catch { return null; }
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// Refresh update cache in background if stale (>24h)
|
|
285
|
+
function refreshUpdateCacheIfStale() {
|
|
286
|
+
try {
|
|
287
|
+
const updateCachePath = path.join(os.homedir(), '.gal', 'update-cache.json');
|
|
288
|
+
let needsRefresh = true;
|
|
289
|
+
if (fs.existsSync(updateCachePath)) {
|
|
290
|
+
try {
|
|
291
|
+
const cache = JSON.parse(fs.readFileSync(updateCachePath, 'utf-8'));
|
|
292
|
+
if (cache.lastCheck && (Date.now() - cache.lastCheck) < 24 * 60 * 60 * 1000) {
|
|
293
|
+
needsRefresh = false;
|
|
111
294
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
295
|
+
} catch {}
|
|
296
|
+
}
|
|
297
|
+
if (needsRefresh) {
|
|
298
|
+
const child = spawn('gal', ['update', '--check'], {
|
|
299
|
+
stdio: 'ignore',
|
|
300
|
+
detached: true,
|
|
301
|
+
});
|
|
302
|
+
child.unref();
|
|
303
|
+
}
|
|
304
|
+
} catch {}
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
const updatedVersion = checkAndAutoUpdate();
|
|
308
|
+
refreshUpdateCacheIfStale();
|
|
309
|
+
|
|
310
|
+
// Check authentication status
|
|
311
|
+
const galConfig = readGalConfig();
|
|
312
|
+
|
|
313
|
+
// Check 1: Not authenticated
|
|
314
|
+
if (!galConfig || !galConfig.authToken) {
|
|
315
|
+
showMessage("🔐 GAL: Authentication required.\\nRun: gal auth login", 'auth_required');
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
// Check 2: Token expired
|
|
319
|
+
const tokenPayload = decodeJwt(galConfig.authToken);
|
|
320
|
+
if (tokenPayload && tokenPayload.exp) {
|
|
321
|
+
const expiresAt = tokenPayload.exp * 1000;
|
|
322
|
+
if (Date.now() > expiresAt) {
|
|
323
|
+
showMessage("🔐 GAL: Session expired.\\nRun: gal auth login", 'token_expired');
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// Check 3: Project not synced
|
|
328
|
+
function readSyncState() {
|
|
329
|
+
const statePath = path.join(process.cwd(), GAL_DIR, SYNC_STATE_FILE);
|
|
330
|
+
if (!fs.existsSync(statePath)) return null;
|
|
331
|
+
try {
|
|
332
|
+
return JSON.parse(fs.readFileSync(statePath, 'utf-8'));
|
|
333
|
+
} catch { return null; }
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
let state = readSyncState();
|
|
337
|
+
|
|
338
|
+
if (!state) {
|
|
339
|
+
// Attempt auto-sync
|
|
340
|
+
try {
|
|
341
|
+
execSync('gal sync --pull --auto', { stdio: 'pipe', timeout: 30000 });
|
|
342
|
+
state = readSyncState();
|
|
343
|
+
} catch {}
|
|
344
|
+
|
|
345
|
+
if (!state) {
|
|
346
|
+
const orgName = galConfig.defaultOrg || 'your organization';
|
|
347
|
+
showMessage(\`📥 GAL: Not synced with \${orgName}'s approved config.\\nRun: gal sync --pull\`, 'not_synced');
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// Check 4: Config outdated
|
|
352
|
+
if (state && state.lastSyncHash !== state.approvedConfigHash) {
|
|
353
|
+
// Attempt auto-sync for outdated configs
|
|
354
|
+
try {
|
|
355
|
+
execSync('gal sync --pull --auto', { stdio: 'pipe', timeout: 30000 });
|
|
356
|
+
state = readSyncState();
|
|
357
|
+
} catch {}
|
|
358
|
+
|
|
359
|
+
if (state && state.lastSyncHash !== state.approvedConfigHash) {
|
|
360
|
+
const days = Math.floor((Date.now() - new Date(state.lastSyncTimestamp).getTime()) / (24 * 60 * 60 * 1000));
|
|
361
|
+
showMessage(\`⚠️ GAL: Config is \${days} day(s) behind \${state.organization}'s approved version.\\nRun: gal sync --pull\`, 'config_outdated');
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// Check 5: Missing synced files
|
|
366
|
+
if (state && state.syncedFiles && state.syncedFiles.length > 0) {
|
|
367
|
+
const missingFiles = state.syncedFiles.filter(f => {
|
|
368
|
+
const fullPath = path.join(process.cwd(), f);
|
|
369
|
+
return !fs.existsSync(fullPath);
|
|
370
|
+
});
|
|
371
|
+
|
|
372
|
+
if (missingFiles.length > 0) {
|
|
373
|
+
showMessage(\`⚠️ GAL: Missing synced file(s): \${missingFiles.join(', ')}.\\nRun: gal sync --pull\`, 'missing_files');
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// All good - build synced status message with optional dispatch rules
|
|
378
|
+
if (!state) {
|
|
379
|
+
showMessage("✅ GAL: Ready", 'synced');
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
let syncMessage = \`✅ GAL: Synced with \${state.organization}'s approved config (v\${state.version || 'latest'})\`;
|
|
383
|
+
|
|
384
|
+
if (updatedVersion) {
|
|
385
|
+
syncMessage = \`🔄 GAL: Updated to v\${updatedVersion}. \` + syncMessage;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
// Inject dispatch rules summary if available
|
|
389
|
+
try {
|
|
390
|
+
const dispatchPath = path.join(process.cwd(), '.gal', 'dispatch-rules.json');
|
|
391
|
+
if (fs.existsSync(dispatchPath)) {
|
|
392
|
+
const rules = JSON.parse(fs.readFileSync(dispatchPath, 'utf-8'));
|
|
393
|
+
if (rules.enabled && rules.categories) {
|
|
394
|
+
const eligible = rules.categories.filter(c => c.enabled).map(c => c.name);
|
|
395
|
+
const local = rules.categories.filter(c => !c.enabled).map(c => c.name);
|
|
396
|
+
if (eligible.length > 0) {
|
|
397
|
+
syncMessage += \`\\n📋 Background dispatch: \${eligible.join(', ')} → use \\\`gal dispatch\\\`. \${local.length > 0 ? local.join(', ') + ' → keep local.' : ''}\`;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
} catch {
|
|
402
|
+
// Dispatch rules are optional - ignore errors
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
showMessage(syncMessage, 'synced');
|
|
406
|
+
`;
|
|
407
|
+
|
|
408
|
+
// =============================================================================
|
|
409
|
+
// Status Line Script Content
|
|
410
|
+
// =============================================================================
|
|
411
|
+
// Python script that runs continuously in Claude's status bar.
|
|
412
|
+
// Shows warnings when not synced, silent when synced (avoids status bar spam).
|
|
413
|
+
// Uses uv's inline script runner for dependency management.
|
|
414
|
+
// =============================================================================
|
|
415
|
+
|
|
416
|
+
const STATUS_LINE_CONTENT = `#!/usr/bin/env -S uv run --script
|
|
417
|
+
# /// script
|
|
418
|
+
# requires-python = ">=3.11"
|
|
419
|
+
# dependencies = [
|
|
420
|
+
# "python-dotenv",
|
|
421
|
+
# ]
|
|
422
|
+
# ///
|
|
423
|
+
"""
|
|
424
|
+
GAL Sync Status Line for Claude Code
|
|
425
|
+
Generated by GAL CLI
|
|
426
|
+
|
|
427
|
+
Version: ${STATUS_LINE_VERSION}
|
|
428
|
+
|
|
429
|
+
Behavior:
|
|
430
|
+
- NOT synced: Always show warning
|
|
431
|
+
- Synced: Silent (no output)
|
|
432
|
+
"""
|
|
433
|
+
|
|
434
|
+
# GAL_STATUS_LINE_VERSION = "${STATUS_LINE_VERSION}"
|
|
435
|
+
|
|
436
|
+
import json
|
|
437
|
+
import os
|
|
438
|
+
import sys
|
|
439
|
+
import subprocess
|
|
440
|
+
from pathlib import Path
|
|
441
|
+
|
|
442
|
+
# =============================================================================
|
|
443
|
+
# CONFIGURATION
|
|
444
|
+
# =============================================================================
|
|
445
|
+
GAL_DIR = '.gal'
|
|
446
|
+
SYNC_STATE_FILE = 'sync-state.json'
|
|
447
|
+
GAL_CONFIG_FILE = Path.home() / '.gal' / 'config.json'
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
def is_gal_installed() -> bool:
|
|
451
|
+
"""Check if GAL CLI is installed."""
|
|
452
|
+
try:
|
|
453
|
+
subprocess.run(['which', 'gal'], capture_output=True, check=True)
|
|
454
|
+
return True
|
|
455
|
+
except (subprocess.CalledProcessError, FileNotFoundError):
|
|
456
|
+
return False
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
def self_clean():
|
|
460
|
+
"""Remove this status line if GAL CLI is uninstalled."""
|
|
461
|
+
script_path = Path(__file__).resolve()
|
|
462
|
+
settings_path = Path.home() / '.claude' / 'settings.json'
|
|
463
|
+
|
|
464
|
+
# Remove script file
|
|
465
|
+
try:
|
|
466
|
+
script_path.unlink()
|
|
467
|
+
except (OSError, IOError):
|
|
468
|
+
pass
|
|
469
|
+
|
|
470
|
+
# Remove from settings.json
|
|
471
|
+
try:
|
|
472
|
+
if settings_path.exists():
|
|
473
|
+
settings = json.loads(settings_path.read_text())
|
|
474
|
+
status_line_cmd = settings.get('statusLine', {}).get('command', '')
|
|
475
|
+
if 'gal-sync-status' in status_line_cmd:
|
|
476
|
+
del settings['statusLine']
|
|
477
|
+
settings_path.write_text(json.dumps(settings, indent=2))
|
|
478
|
+
except (json.JSONDecodeError, IOError):
|
|
479
|
+
pass
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
def read_gal_config():
|
|
483
|
+
"""Read GAL CLI config (auth token, default org)."""
|
|
484
|
+
if not GAL_CONFIG_FILE.exists():
|
|
485
|
+
return None
|
|
486
|
+
try:
|
|
487
|
+
return json.loads(GAL_CONFIG_FILE.read_text())
|
|
488
|
+
except (json.JSONDecodeError, IOError):
|
|
489
|
+
return None
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
def read_sync_state():
|
|
493
|
+
"""Read sync state from .gal/sync-state.json in current directory."""
|
|
494
|
+
state_path = Path.cwd() / GAL_DIR / SYNC_STATE_FILE
|
|
495
|
+
if not state_path.exists():
|
|
496
|
+
return None
|
|
497
|
+
try:
|
|
498
|
+
return json.loads(state_path.read_text())
|
|
499
|
+
except (json.JSONDecodeError, IOError):
|
|
500
|
+
return None
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
def generate_status_line(input_data):
|
|
504
|
+
"""Generate the GAL sync status line.
|
|
505
|
+
|
|
506
|
+
Behavior:
|
|
507
|
+
- NOT synced: Always show warning (no throttle)
|
|
508
|
+
- Synced: Silent (no message)
|
|
509
|
+
"""
|
|
510
|
+
|
|
511
|
+
# Self-clean if GAL is uninstalled
|
|
512
|
+
if not is_gal_installed():
|
|
513
|
+
self_clean()
|
|
514
|
+
return ""
|
|
515
|
+
|
|
516
|
+
# Read GAL config
|
|
517
|
+
gal_config = read_gal_config()
|
|
518
|
+
|
|
519
|
+
# Check 1: Not authenticated - always show
|
|
520
|
+
if not gal_config or not gal_config.get('authToken'):
|
|
521
|
+
return "\\033[33m🔐 GAL: login\\033[0m"
|
|
522
|
+
|
|
523
|
+
# Check 2: Project not synced - always show
|
|
524
|
+
state = read_sync_state()
|
|
525
|
+
|
|
526
|
+
if not state:
|
|
527
|
+
return "\\033[33m📥 GAL: sync\\033[0m"
|
|
528
|
+
|
|
529
|
+
# Check 3: Config outdated (hash mismatch) - always show
|
|
530
|
+
if state.get('lastSyncHash') != state.get('approvedConfigHash'):
|
|
531
|
+
return "\\033[33m⚠️ GAL: outdated\\033[0m"
|
|
532
|
+
|
|
533
|
+
# Check 4: Missing synced files - always show
|
|
534
|
+
synced_files = state.get('syncedFiles', [])
|
|
535
|
+
if synced_files:
|
|
536
|
+
missing = [f for f in synced_files if not (Path.cwd() / f).exists()]
|
|
537
|
+
if missing:
|
|
538
|
+
return "\\033[33m⚠️ GAL: missing files\\033[0m"
|
|
539
|
+
|
|
540
|
+
# Synced - stay silent
|
|
541
|
+
return ""
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
def main():
|
|
545
|
+
try:
|
|
546
|
+
# Read JSON input from stdin (Claude Code passes context)
|
|
547
|
+
input_data = json.loads(sys.stdin.read())
|
|
548
|
+
|
|
549
|
+
# Generate status line
|
|
550
|
+
status_line = generate_status_line(input_data)
|
|
551
|
+
|
|
552
|
+
# Only output if there's something to show
|
|
553
|
+
if status_line:
|
|
554
|
+
print(status_line)
|
|
555
|
+
|
|
556
|
+
sys.exit(0)
|
|
557
|
+
|
|
558
|
+
except json.JSONDecodeError:
|
|
559
|
+
# Handle JSON decode errors gracefully - stay silent
|
|
560
|
+
sys.exit(0)
|
|
561
|
+
except Exception:
|
|
562
|
+
# Handle any other errors gracefully - stay silent
|
|
563
|
+
sys.exit(0)
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
if __name__ == '__main__':
|
|
567
|
+
main()
|
|
568
|
+
`;
|
|
569
|
+
|
|
570
|
+
// =============================================================================
|
|
571
|
+
// Installation Functions
|
|
572
|
+
// =============================================================================
|
|
573
|
+
|
|
574
|
+
// =============================================================================
|
|
575
|
+
// Installation Functions - SessionStart Hook
|
|
576
|
+
// =============================================================================
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* Install the SessionStart hook to ~/.claude/hooks/gal-sync-reminder.js
|
|
580
|
+
*
|
|
581
|
+
* The hook shows sync status at the start of each Claude session, prompting
|
|
582
|
+
* users to login or sync if needed. It checks:
|
|
583
|
+
* 1. Authentication status (GAL CLI login)
|
|
584
|
+
* 2. Project sync state (gal sync --pull)
|
|
585
|
+
* 3. Config staleness (hash mismatch)
|
|
586
|
+
* 4. Missing synced files
|
|
587
|
+
*
|
|
588
|
+
* Key behaviors:
|
|
589
|
+
* - Idempotent: Checks HOOK_VERSION marker before writing
|
|
590
|
+
* - Migration: Cleans up old UserPromptSubmit hooks (v1.x used those)
|
|
591
|
+
* - Registration: Adds hook to ~/.claude/settings.json
|
|
592
|
+
* - Self-cleaning: Hook removes itself if GAL CLI is uninstalled
|
|
593
|
+
*
|
|
594
|
+
* @returns {boolean} True if hook was installed or updated, false on error
|
|
595
|
+
*/
|
|
596
|
+
function installHook() {
|
|
597
|
+
const claudeDir = path.join(os.homedir(), '.claude');
|
|
598
|
+
const hooksDir = path.join(claudeDir, 'hooks');
|
|
599
|
+
const hookPath = path.join(hooksDir, 'gal-sync-reminder.js');
|
|
600
|
+
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
601
|
+
|
|
602
|
+
try {
|
|
603
|
+
// Create directories if needed
|
|
604
|
+
if (!fs.existsSync(hooksDir)) {
|
|
605
|
+
fs.mkdirSync(hooksDir, { recursive: true });
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
// Check if hook already exists with current version
|
|
609
|
+
let needsUpdate = true;
|
|
610
|
+
if (fs.existsSync(hookPath)) {
|
|
611
|
+
const existingContent = fs.readFileSync(hookPath, 'utf-8');
|
|
612
|
+
const versionMatch = existingContent.match(/GAL_HOOK_VERSION = "([^"]+)"/);
|
|
613
|
+
if (versionMatch && versionMatch[1] === HOOK_VERSION) {
|
|
614
|
+
needsUpdate = false;
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
// Write the hook file if needed
|
|
619
|
+
if (needsUpdate) {
|
|
620
|
+
fs.writeFileSync(hookPath, HOOK_CONTENT, 'utf-8');
|
|
621
|
+
fs.chmodSync(hookPath, '755');
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
// Update settings.json
|
|
625
|
+
let settings = {};
|
|
626
|
+
if (fs.existsSync(settingsPath)) {
|
|
627
|
+
try {
|
|
628
|
+
settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
|
|
629
|
+
} catch {
|
|
630
|
+
settings = {};
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
// CLEANUP: Remove old UserPromptSubmit hooks (v1.x migration)
|
|
635
|
+
// GAL CLI v1.x used UserPromptSubmit hooks, but they caused performance issues
|
|
636
|
+
// by running on every user message. v2.x uses SessionStart hooks instead.
|
|
637
|
+
if (settings.hooks?.UserPromptSubmit) {
|
|
638
|
+
settings.hooks.UserPromptSubmit = settings.hooks.UserPromptSubmit.filter(entry => {
|
|
639
|
+
if (!entry.hooks) return true;
|
|
640
|
+
entry.hooks = entry.hooks.filter(h =>
|
|
641
|
+
!h.command?.includes('gal-') && !h.command?.includes('/gal/')
|
|
642
|
+
);
|
|
643
|
+
return entry.hooks.length > 0;
|
|
644
|
+
});
|
|
645
|
+
if (settings.hooks.UserPromptSubmit.length === 0) {
|
|
646
|
+
delete settings.hooks.UserPromptSubmit;
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
// Register SessionStart hook if not already registered
|
|
651
|
+
const hookCommand = `node ${hookPath}`;
|
|
652
|
+
if (!settings.hooks) settings.hooks = {};
|
|
653
|
+
if (!settings.hooks.SessionStart) settings.hooks.SessionStart = [];
|
|
654
|
+
|
|
655
|
+
const alreadyRegistered = settings.hooks.SessionStart.some(entry =>
|
|
656
|
+
entry.hooks?.some(h => h.command?.includes('gal-sync-reminder'))
|
|
657
|
+
);
|
|
658
|
+
|
|
659
|
+
if (!alreadyRegistered) {
|
|
660
|
+
settings.hooks.SessionStart.push({
|
|
661
|
+
hooks: [{ type: 'command', command: hookCommand }]
|
|
662
|
+
});
|
|
140
663
|
}
|
|
664
|
+
|
|
665
|
+
// Write settings
|
|
666
|
+
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
|
|
667
|
+
|
|
668
|
+
if (needsUpdate) {
|
|
669
|
+
console.log('✓ GAL SessionStart hook installed');
|
|
670
|
+
}
|
|
671
|
+
return true;
|
|
672
|
+
} catch (error) {
|
|
673
|
+
// Silent fail - hook is optional enhancement
|
|
674
|
+
return false;
|
|
675
|
+
}
|
|
141
676
|
}
|
|
677
|
+
|
|
678
|
+
// =============================================================================
|
|
679
|
+
// Installation Functions - GAL CLI Rules
|
|
680
|
+
// =============================================================================
|
|
681
|
+
|
|
682
|
+
/**
|
|
683
|
+
* Install GAL CLI rules to ~/.claude/rules/gal-cli.md
|
|
684
|
+
*
|
|
685
|
+
* Rules provide persistent awareness of GAL CLI commands without hook overhead.
|
|
686
|
+
* Claude automatically loads rules from ~/.claude/rules/ at session start,
|
|
687
|
+
* so the AI knows about `gal` commands and can suggest their usage.
|
|
688
|
+
*
|
|
689
|
+
* Key behaviors:
|
|
690
|
+
* - Idempotent: Checks RULES_VERSION marker before writing
|
|
691
|
+
* - Lightweight: No runtime overhead (unlike hooks that execute on events)
|
|
692
|
+
* - Persistent: Remains loaded for entire Claude session
|
|
693
|
+
*
|
|
694
|
+
* @returns {boolean} True if rules were installed or updated, false on error
|
|
695
|
+
*/
|
|
142
696
|
function installRules() {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
_0x19205a: 0x792,
|
|
152
|
-
_0x5917f4: 0x518,
|
|
153
|
-
_0x348817: 0x78b,
|
|
154
|
-
_0x14f50d: 0x469,
|
|
155
|
-
_0x1e4ff3: 0x792,
|
|
156
|
-
_0x143bc5: 0x14e,
|
|
157
|
-
_0x189da5: 0x103,
|
|
158
|
-
_0x17c38d: 0x211,
|
|
159
|
-
_0x236327: 0x65d,
|
|
160
|
-
_0x178912: 0x18b,
|
|
161
|
-
_0xf39f7f: 0x348,
|
|
162
|
-
_0x19d26a: 0x683,
|
|
163
|
-
_0x1eaec8: 0x7ce,
|
|
164
|
-
_0x10b038: 0x16b,
|
|
165
|
-
_0x3e75d1: 0x92,
|
|
166
|
-
_0xf4cb55: 0x34c,
|
|
167
|
-
_0x2b4c66: 0x2b8
|
|
168
|
-
}, _0x2e6d5c = _0x53af, _0x37575b = path[_0x2e6d5c(_0x565e22._0x31fde9)](os[_0x2e6d5c(_0x565e22._0x87192d) + 'ir'](), _0x2e6d5c(_0x565e22._0x171d5c) + 'de'), _0x28f25b = path[_0x2e6d5c(_0x565e22._0x31fde9)](_0x37575b, _0x2e6d5c(_0x565e22._0x66e27b)), _0x2d6417 = path[_0x2e6d5c(_0x565e22._0xc794c6)](_0x28f25b, _0x2e6d5c(_0x565e22._0x13d3d3) + _0x2e6d5c(_0x565e22._0x540f19));
|
|
169
|
-
try {
|
|
170
|
-
!fs[_0x2e6d5c(_0x565e22._0x19205a) + _0x2e6d5c(_0x565e22._0x5917f4)](_0x28f25b) && fs[_0x2e6d5c(_0x565e22._0x348817) + _0x2e6d5c(_0x565e22._0x14f50d)](_0x28f25b, { 'recursive': !![] });
|
|
171
|
-
let _0x59109c = !![];
|
|
172
|
-
if (fs[_0x2e6d5c(_0x565e22._0x1e4ff3) + _0x2e6d5c(_0x565e22._0x5917f4)](_0x2d6417)) {
|
|
173
|
-
const _0xb7d788 = fs[_0x2e6d5c(_0x565e22._0x143bc5) + _0x2e6d5c(_0x565e22._0x189da5) + 'nc'](_0x2d6417, _0x2e6d5c(_0x565e22._0x17c38d)), _0x359218 = _0xb7d788[_0x2e6d5c(_0x565e22._0x236327)](/GAL_RULES_VERSION = "([^"]+)"/);
|
|
174
|
-
_0x359218 && _0x359218[0x1] === RULES_VERSION && (_0x59109c = ![]);
|
|
175
|
-
}
|
|
176
|
-
return _0x59109c && (fs[_0x2e6d5c(_0x565e22._0x178912) + _0x2e6d5c(_0x565e22._0xf39f7f) + _0x2e6d5c(_0x565e22._0x19d26a)](_0x2d6417, GAL_CLI_RULES_CONTENT, _0x2e6d5c(_0x565e22._0x17c38d)), console[_0x2e6d5c(_0x565e22._0x1eaec8)](_0x2e6d5c(_0x565e22._0x10b038) + _0x2e6d5c(_0x565e22._0x3e75d1) + _0x2e6d5c(_0x565e22._0x66e27b) + _0x2e6d5c(_0x565e22._0xf4cb55) + _0x2e6d5c(_0x565e22._0x2b4c66))), !![];
|
|
177
|
-
} catch (_0x3f9b33) {
|
|
178
|
-
return ![];
|
|
697
|
+
const claudeDir = path.join(os.homedir(), '.claude');
|
|
698
|
+
const rulesDir = path.join(claudeDir, 'rules');
|
|
699
|
+
const rulesPath = path.join(rulesDir, 'gal-cli.md');
|
|
700
|
+
|
|
701
|
+
try {
|
|
702
|
+
// Create rules directory if needed
|
|
703
|
+
if (!fs.existsSync(rulesDir)) {
|
|
704
|
+
fs.mkdirSync(rulesDir, { recursive: true });
|
|
179
705
|
}
|
|
706
|
+
|
|
707
|
+
// Check if rules file already exists with current version
|
|
708
|
+
let needsUpdate = true;
|
|
709
|
+
if (fs.existsSync(rulesPath)) {
|
|
710
|
+
const existingContent = fs.readFileSync(rulesPath, 'utf-8');
|
|
711
|
+
const versionMatch = existingContent.match(/GAL_RULES_VERSION = "([^"]+)"/);
|
|
712
|
+
if (versionMatch && versionMatch[1] === RULES_VERSION) {
|
|
713
|
+
needsUpdate = false;
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
// Write the rules file if needed
|
|
718
|
+
if (needsUpdate) {
|
|
719
|
+
fs.writeFileSync(rulesPath, GAL_CLI_RULES_CONTENT, 'utf-8');
|
|
720
|
+
console.log('✓ GAL CLI rules installed');
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
return true;
|
|
724
|
+
} catch (error) {
|
|
725
|
+
// Silent fail - rules are optional enhancement
|
|
726
|
+
return false;
|
|
727
|
+
}
|
|
180
728
|
}
|
|
729
|
+
|
|
730
|
+
// =============================================================================
|
|
731
|
+
// Installation Functions - Telemetry Queue
|
|
732
|
+
// =============================================================================
|
|
733
|
+
|
|
734
|
+
/**
|
|
735
|
+
* Queue a telemetry event for the next CLI run (GAL-114)
|
|
736
|
+
*
|
|
737
|
+
* This postinstall script is CommonJS, but the telemetry module is ESM,
|
|
738
|
+
* so we can't import it directly. Instead, we write events to a pending
|
|
739
|
+
* file (~/.gal/telemetry-pending-events.json) that the CLI picks up and
|
|
740
|
+
* flushes on its next execution.
|
|
741
|
+
*
|
|
742
|
+
* Events are structured as:
|
|
743
|
+
* - id: Unique event identifier (UUID)
|
|
744
|
+
* - eventType: 'hook_triggered' for installation
|
|
745
|
+
* - timestamp: ISO 8601 timestamp
|
|
746
|
+
* - payload: Event-specific data (cliVersion, platform, nodeVersion)
|
|
747
|
+
* - queuedAt: Unix timestamp when event was queued
|
|
748
|
+
*
|
|
749
|
+
* @returns {void}
|
|
750
|
+
*/
|
|
181
751
|
function queueTelemetryEvent() {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
_0x109068: 0x83d,
|
|
190
|
-
_0x238f85: 0x72c,
|
|
191
|
-
_0x456d8a: 0x5b9,
|
|
192
|
-
_0x1e65b7: 0x585,
|
|
193
|
-
_0x329db3: 0x693,
|
|
194
|
-
_0x29dd70: 0x792,
|
|
195
|
-
_0x426d31: 0x518,
|
|
196
|
-
_0xffc141: 0x77e,
|
|
197
|
-
_0x3310e7: 0x14e,
|
|
198
|
-
_0x2c6df6: 0x103,
|
|
199
|
-
_0x1cc351: 0x211,
|
|
200
|
-
_0x21d412: 0x643,
|
|
201
|
-
_0x2d9c49: 0x6d,
|
|
202
|
-
_0xeabf23: 0x5bc,
|
|
203
|
-
_0x21816d: 0x226,
|
|
204
|
-
_0x490e7c: 0x489,
|
|
205
|
-
_0x125ea1: 0x4dd,
|
|
206
|
-
_0x57c93f: 0x2c1,
|
|
207
|
-
_0x185c94: 0x2aa,
|
|
208
|
-
_0x3c53a3: 0x755,
|
|
209
|
-
_0x541700: 0x343,
|
|
210
|
-
_0x1096f9: 0x25e,
|
|
211
|
-
_0x3d42ce: 0x41b,
|
|
212
|
-
_0x1d42b8: 0x149,
|
|
213
|
-
_0x34dfa7: 0x2a9,
|
|
214
|
-
_0x2c095d: 0x1b2,
|
|
215
|
-
_0x2a0e82: 0x792,
|
|
216
|
-
_0x224b42: 0x518,
|
|
217
|
-
_0x5ac48b: 0x78b,
|
|
218
|
-
_0x27f3b7: 0x469,
|
|
219
|
-
_0x40c1e7: 0x18b,
|
|
220
|
-
_0x4d1394: 0x348,
|
|
221
|
-
_0x2b872b: 0x683,
|
|
222
|
-
_0x145ab7: 0x2e7,
|
|
223
|
-
_0x5c19d0: 0xfb
|
|
224
|
-
}, _0xe7d9be = _0x53af, _0x25bf09 = path[_0xe7d9be(_0x470887._0x224285)](os[_0xe7d9be(_0x470887._0x27b6cf) + 'ir'](), _0xe7d9be(_0x470887._0x57eb3f), _0xe7d9be(_0x470887._0x1a3e90) + _0xe7d9be(_0x470887._0x564da2) + _0xe7d9be(_0x470887._0x5cb04f) + _0xe7d9be(_0x470887._0x109068) + _0xe7d9be(_0x470887._0x238f85) + _0xe7d9be(_0x470887._0x456d8a)), _0x16618e = path[_0xe7d9be(_0x470887._0x224285)](os[_0xe7d9be(_0x470887._0x1e65b7) + 'ir'](), _0xe7d9be(_0x470887._0x329db3));
|
|
225
|
-
let _0x49f622 = [];
|
|
226
|
-
try {
|
|
227
|
-
fs[_0xe7d9be(_0x470887._0x29dd70) + _0xe7d9be(_0x470887._0x426d31)](_0x25bf09) && (_0x49f622 = JSON[_0xe7d9be(_0x470887._0xffc141)](fs[_0xe7d9be(_0x470887._0x3310e7) + _0xe7d9be(_0x470887._0x2c6df6) + 'nc'](_0x25bf09, _0xe7d9be(_0x470887._0x1cc351))));
|
|
228
|
-
} catch {
|
|
752
|
+
const pendingEventsPath = path.join(os.homedir(), '.gal', 'telemetry-pending-events.json');
|
|
753
|
+
const galDir = path.join(os.homedir(), '.gal');
|
|
754
|
+
|
|
755
|
+
let pending = [];
|
|
756
|
+
try {
|
|
757
|
+
if (fs.existsSync(pendingEventsPath)) {
|
|
758
|
+
pending = JSON.parse(fs.readFileSync(pendingEventsPath, 'utf-8'));
|
|
229
759
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
760
|
+
} catch {}
|
|
761
|
+
|
|
762
|
+
// Add postinstall hook event
|
|
763
|
+
pending.push({
|
|
764
|
+
id: require('crypto').randomUUID(),
|
|
765
|
+
eventType: 'hook_triggered',
|
|
766
|
+
timestamp: new Date().toISOString(),
|
|
767
|
+
payload: {
|
|
768
|
+
notificationType: 'postinstall',
|
|
769
|
+
cliVersion,
|
|
770
|
+
platform: process.platform,
|
|
771
|
+
nodeVersion: process.version,
|
|
772
|
+
},
|
|
773
|
+
queuedAt: Date.now(),
|
|
774
|
+
});
|
|
775
|
+
|
|
776
|
+
try {
|
|
777
|
+
if (!fs.existsSync(galDir)) {
|
|
778
|
+
fs.mkdirSync(galDir, { recursive: true });
|
|
245
779
|
}
|
|
780
|
+
fs.writeFileSync(pendingEventsPath, JSON.stringify(pending), 'utf-8');
|
|
781
|
+
} catch {
|
|
782
|
+
// Ignore errors - telemetry is optional
|
|
783
|
+
}
|
|
246
784
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
'zw4NktO',
|
|
268
|
-
'Cg5WBs8',
|
|
269
|
-
'icaGica',
|
|
270
|
-
'zgf0zsa',
|
|
271
|
-
'igLMieC',
|
|
272
|
-
'igvUDhi',
|
|
273
|
-
'Aw9UCYa',
|
|
274
|
-
'oGOTie4',
|
|
275
|
-
'icaGicm',
|
|
276
|
-
'C3qGr0e',
|
|
277
|
-
'ywrtEw4',
|
|
278
|
-
'zgvJB2q',
|
|
279
|
-
'jYWGj2m',
|
|
280
|
-
'qhbHCMe',
|
|
281
|
-
'zsHG8j+tPsa',
|
|
282
|
-
'zxrHy2G',
|
|
283
|
-
'Dg9Tihm',
|
|
284
|
-
'B24NcKC',
|
|
285
|
-
'Ac51BMW',
|
|
286
|
-
'Aw9Uihi',
|
|
287
|
-
'DxrVvxa',
|
|
288
|
-
'kcD1Dgy',
|
|
289
|
-
'jYKkica',
|
|
290
|
-
'zqOGihq',
|
|
291
|
-
'zwqGjIy',
|
|
292
|
-
'CMvZB2W',
|
|
293
|
-
'DhvZigW',
|
|
294
|
-
'DwXLC1a',
|
|
295
|
-
'j2DHBca',
|
|
296
|
-
'BYbVDxq',
|
|
297
|
-
'B2DPBIa',
|
|
298
|
-
'BNqkica',
|
|
299
|
-
'icaGig4',
|
|
300
|
-
'C3rHEsa',
|
|
301
|
-
'ihf1zxu',
|
|
302
|
-
'y2SPidW',
|
|
303
|
-
'CM4GBNu',
|
|
304
|
-
'yxDUkcC',
|
|
305
|
-
'ihDLigm',
|
|
306
|
-
'C2LVBIW',
|
|
307
|
-
'y2vKx2y',
|
|
308
|
-
'mJiYmJC4rvjIvgDp',
|
|
309
|
-
'ih0Gy2e',
|
|
310
|
-
'DgGUzxG',
|
|
311
|
-
'CYbMAwW',
|
|
312
|
-
'zsbJywm',
|
|
313
|
-
'quW6ig0',
|
|
314
|
-
'zYbVCMC',
|
|
315
|
-
'icaYlIa',
|
|
316
|
-
'psbku08',
|
|
317
|
-
'zsGNzNm',
|
|
318
|
-
'psb0B2S',
|
|
319
|
-
'DaOJihi',
|
|
320
|
-
'ksWGj3u',
|
|
321
|
-
'rxzLBNq',
|
|
322
|
-
'AwnOjYW',
|
|
323
|
-
'uerbveu',
|
|
324
|
-
'lsbGz2e',
|
|
325
|
-
'DwXSlca',
|
|
326
|
-
'Aw86icC',
|
|
327
|
-
'BMvLzhm',
|
|
328
|
-
'Dhj5rxy',
|
|
329
|
-
'ANnVBGO',
|
|
330
|
-
'ieHHBMq',
|
|
331
|
-
'DwuGFsK',
|
|
332
|
-
'Bg9NAw4',
|
|
333
|
-
'B21vvuK',
|
|
334
|
-
'zxiOyYa',
|
|
335
|
-
'q0XjigK',
|
|
336
|
-
'AwCUz2u',
|
|
337
|
-
'zwfKx3q',
|
|
338
|
-
'psbZDge',
|
|
339
|
-
'zw50CNK',
|
|
340
|
-
'zwvKC1i',
|
|
341
|
-
'BNrDid0',
|
|
342
|
-
'iYbhquW',
|
|
343
|
-
'BfbHDgG',
|
|
344
|
-
'Aw5NieC',
|
|
345
|
-
'DgGGpsa',
|
|
346
|
-
'zxiUANm',
|
|
347
|
-
'CNmGz3i',
|
|
348
|
-
'C3nHz2u',
|
|
349
|
-
'lY8Gq2G',
|
|
350
|
-
'zw50CY4',
|
|
351
|
-
'zezPBgu',
|
|
352
|
-
'igfSD2e',
|
|
353
|
-
'BI5SB2e',
|
|
354
|
-
'B3iGBM8',
|
|
355
|
-
'id4GmcK',
|
|
356
|
-
'zYb8Fca',
|
|
357
|
-
'icaGzNm',
|
|
358
|
-
'kcfZDge',
|
|
359
|
-
'ifjLBw8',
|
|
360
|
-
'u3vIBwK',
|
|
361
|
-
'ywWUBgu',
|
|
362
|
-
'Dhnqyxq',
|
|
363
|
-
'jIyGkeq',
|
|
364
|
-
'igz1BgW',
|
|
365
|
-
'j3n5BMm',
|
|
366
|
-
'kIaTifq',
|
|
367
|
-
'cIaGy28',
|
|
368
|
-
'zIaOiwm',
|
|
369
|
-
'jYWGEYa',
|
|
370
|
-
'CM4GiLW',
|
|
371
|
-
'Aw9Uid0',
|
|
372
|
-
'icaGic0',
|
|
373
|
-
'zMLNigK',
|
|
374
|
-
'ihzLCMK',
|
|
375
|
-
'zqOGica',
|
|
376
|
-
'B25MAwC',
|
|
377
|
-
'B2fKigW',
|
|
378
|
-
'cGOGica',
|
|
379
|
-
'icaGy3u',
|
|
380
|
-
'zvn5BMm',
|
|
381
|
-
'kcK6cIa',
|
|
382
|
-
'Dgf0Dxm',
|
|
383
|
-
'jYK7cIa',
|
|
384
|
-
'id09psa',
|
|
385
|
-
'ihbHC3m',
|
|
386
|
-
'Cgf0Ac4',
|
|
387
|
-
'Agf2Aw8',
|
|
388
|
-
'AxriDwi',
|
|
389
|
-
'oIbeyxq',
|
|
390
|
-
'lYbjz24',
|
|
391
|
-
'u3rYAw4',
|
|
392
|
-
'Aw9Uihm',
|
|
393
|
-
'lsbZDge',
|
|
394
|
-
'yxnRihq',
|
|
395
|
-
'AcWGj3u',
|
|
396
|
-
'AcKGEWO',
|
|
397
|
-
'yw1Lid0',
|
|
398
|
-
'j3mGyxa',
|
|
399
|
-
'CJOkica',
|
|
400
|
-
'zcGPic0',
|
|
401
|
-
'DguUz2u',
|
|
402
|
-
'ignVBNm',
|
|
403
|
-
'ic0TChu',
|
|
404
|
-
'ihT9ks4',
|
|
405
|
-
'u3LUyYG',
|
|
406
|
-
'khn0yxq',
|
|
407
|
-
'zw50CYK',
|
|
408
|
-
'lMLUy2W',
|
|
409
|
-
'yw4OktO',
|
|
410
|
-
'A0fUzee',
|
|
411
|
-
'igDLBMu',
|
|
412
|
-
'AxnFz2e',
|
|
413
|
-
'CcHJid0',
|
|
414
|
-
'igv4zwm',
|
|
415
|
-
'Aca+ida',
|
|
416
|
-
'cIaQlWO',
|
|
417
|
-
'ywLSywi',
|
|
418
|
-
'u09olNa',
|
|
419
|
-
'ihT9cGO',
|
|
420
|
-
'y2HLlMO',
|
|
421
|
-
'yYHNywW',
|
|
422
|
-
'ywDLicS',
|
|
423
|
-
'DguUANm',
|
|
424
|
-
'CNjVCJO',
|
|
425
|
-
'DcbVCWO',
|
|
426
|
-
'Cgf0Aca',
|
|
427
|
-
'DMvUDfq',
|
|
428
|
-
'DguPihi',
|
|
429
|
-
'zgveAxi',
|
|
430
|
-
'4Os5ien1CW',
|
|
431
|
-
'CYa9ihi',
|
|
432
|
-
'CgfYC2u',
|
|
433
|
-
'BNn0ihi',
|
|
434
|
-
'DMvUDhm',
|
|
435
|
-
'DgvKic0',
|
|
436
|
-
'zvbHDgG',
|
|
437
|
-
'cIaGDhi',
|
|
438
|
-
'yxvKzsa',
|
|
439
|
-
'ihnOB3C',
|
|
440
|
-
'ihvUAw4',
|
|
441
|
-
'lMrLzMe',
|
|
442
|
-
'zwfKrMK',
|
|
443
|
-
'BMzPCM0',
|
|
444
|
-
'vg9Rzw4',
|
|
445
|
-
'BwTKAxi',
|
|
446
|
-
'yY1ZDge',
|
|
447
|
-
'DwrLiem',
|
|
448
|
-
'Es4Gsw4',
|
|
449
|
-
'mZSGAsS',
|
|
450
|
-
'Dwv1zvq',
|
|
451
|
-
'icaJiem',
|
|
452
|
-
'zxHPC3q',
|
|
453
|
-
'CY5MAwW',
|
|
454
|
-
'zxr0Aw4',
|
|
455
|
-
'mcb9ks4',
|
|
456
|
-
'CMvZAfu',
|
|
457
|
-
'ChrVjYK',
|
|
458
|
-
'C2HVDWO',
|
|
459
|
-
'yYHMDwW',
|
|
460
|
-
'icGHzNm',
|
|
461
|
-
'Ag9VA1a',
|
|
462
|
-
'DhntEw4',
|
|
463
|
-
'qNvMzMu',
|
|
464
|
-
'yxnZcGO',
|
|
465
|
-
'zsa9igy',
|
|
466
|
-
'vxbKyxq',
|
|
467
|
-
'id0GC3a',
|
|
468
|
-
'Chv0pvq',
|
|
469
|
-
'BgaGlsa',
|
|
470
|
-
'cI0GygC',
|
|
471
|
-
'B2LUkcC',
|
|
472
|
-
'zxzLBNq',
|
|
473
|
-
'C29UlKO',
|
|
474
|
-
'DhnLBgy',
|
|
475
|
-
'igKGpca',
|
|
476
|
-
'DxjUici',
|
|
477
|
-
'igLUChu',
|
|
478
|
-
'yw4GAwy',
|
|
479
|
-
'DcbZEw4',
|
|
480
|
-
'BMmTC3q',
|
|
481
|
-
'z2vYzwq',
|
|
482
|
-
'oIb7cIa',
|
|
483
|
-
'zcKUBwe',
|
|
484
|
-
'lMDLDfq',
|
|
485
|
-
'icaGCMu',
|
|
486
|
-
'Dgf0zsa',
|
|
487
|
-
'id09pt0',
|
|
488
|
-
'FcbWCM8',
|
|
489
|
-
'AxjtEw4',
|
|
490
|
-
'iokgKIb1CW',
|
|
491
|
-
'icaTie4',
|
|
492
|
-
'psbYzwe',
|
|
493
|
-
'ienOzwm',
|
|
494
|
-
'DguOksa',
|
|
495
|
-
'Dw5JDgK',
|
|
496
|
-
'z0v2zw4',
|
|
497
|
-
'oWOGigK',
|
|
498
|
-
'iLjLywq',
|
|
499
|
-
'yMXLigy',
|
|
500
|
-
'Dw5RBM8',
|
|
501
|
-
'cImGzgu',
|
|
502
|
-
'icaGihq',
|
|
503
|
-
'reLslca',
|
|
504
|
-
'igv4y2u',
|
|
505
|
-
'x2XPBMu',
|
|
506
|
-
'DxjZAxy',
|
|
507
|
-
'lYbszw0',
|
|
508
|
-
'iokgKIbWCG',
|
|
509
|
-
'oIbWCM8',
|
|
510
|
-
'A1n5BMm',
|
|
511
|
-
'D2f5CYa',
|
|
512
|
-
'Bg9N',
|
|
513
|
-
'ywDLlca',
|
|
514
|
-
'ienVBMy',
|
|
515
|
-
'zxmTChK',
|
|
516
|
-
'ig9Uig4',
|
|
517
|
-
'DxjUieO',
|
|
518
|
-
'BNqOC3q',
|
|
519
|
-
'ywWGls0',
|
|
520
|
-
'icmGq2G',
|
|
521
|
-
'DguOktS',
|
|
522
|
-
'iIWGj3q',
|
|
523
|
-
'zwDVCMK',
|
|
524
|
-
'BsikcIa',
|
|
525
|
-
'B24NktS',
|
|
526
|
-
'zfbYB2m',
|
|
527
|
-
'BwjLCIK',
|
|
528
|
-
'zM9YicG',
|
|
529
|
-
'mZa1ntK0nhLIrNH5sa',
|
|
530
|
-
'AwCGu3K',
|
|
531
|
-
'Cgf0y2G',
|
|
532
|
-
'ywnOzs4',
|
|
533
|
-
'quWGy28',
|
|
534
|
-
'icjCmdm',
|
|
535
|
-
'idu6ie0',
|
|
536
|
-
'icbZDge',
|
|
537
|
-
'zgLUzYa',
|
|
538
|
-
'BhKGlsa',
|
|
539
|
-
'zf9ZEw4',
|
|
540
|
-
'kg1PC3m',
|
|
541
|
-
'C3rHBgW',
|
|
542
|
-
'v1qGD2K',
|
|
543
|
-
'lwnSzwe',
|
|
544
|
-
'icaGigy',
|
|
545
|
-
'z3mUAg8',
|
|
546
|
-
'BhrLCIG',
|
|
547
|
-
'cMz1BMm',
|
|
548
|
-
'BMnPzxm',
|
|
549
|
-
'cI0GkIO',
|
|
550
|
-
'z29Vzca',
|
|
551
|
-
'lWOklY8',
|
|
552
|
-
'xdaZm1S',
|
|
553
|
-
'oYb9cIa',
|
|
554
|
-
'x3n0yxq',
|
|
555
|
-
'idmWmda',
|
|
556
|
-
'BMv4Dca',
|
|
557
|
-
'psbYDwW',
|
|
558
|
-
'EgvJDxq',
|
|
559
|
-
'Bwv0AgK',
|
|
560
|
-
'zxr3B3i',
|
|
561
|
-
'Dcb0BYa',
|
|
562
|
-
'zxHWicO',
|
|
563
|
-
'cIaGFsa',
|
|
564
|
-
'CNqGC3u',
|
|
565
|
-
'zsb0Age',
|
|
566
|
-
'Dw4GkeC',
|
|
567
|
-
'Aw5RkcK',
|
|
568
|
-
'CY5QC28',
|
|
569
|
-
'ChjVy2u',
|
|
570
|
-
'pIbIB28',
|
|
571
|
-
'DaOGica',
|
|
572
|
-
'Dw4UcIa',
|
|
573
|
-
'id0GypcFLiq',
|
|
574
|
-
'zwqUiIi',
|
|
575
|
-
'C2HVD00',
|
|
576
|
-
'DgvYkgy',
|
|
577
|
-
'zs5Syxm',
|
|
578
|
-
'FqOkica',
|
|
579
|
-
'zwqGzMK',
|
|
580
|
-
'lMHVB2S',
|
|
581
|
-
'B2rLcKC',
|
|
582
|
-
'B25tDge',
|
|
583
|
-
'DcbHDxq',
|
|
584
|
-
'j19FBwe',
|
|
585
|
-
'BNbTlW',
|
|
586
|
-
'Ew5Jkhu',
|
|
587
|
-
'zxiGyMu',
|
|
588
|
-
'lcaNls0',
|
|
589
|
-
'j25VDf8',
|
|
590
|
-
'z3jVDw4',
|
|
591
|
-
'jYKUC3a',
|
|
592
|
-
'vgLTzxm',
|
|
593
|
-
'BNvSBdS',
|
|
594
|
-
'AgvKcI8',
|
|
595
|
-
'B246icC',
|
|
596
|
-
'ig5Lzwq',
|
|
597
|
-
'mY4Xmsi',
|
|
598
|
-
'yxrOksK',
|
|
599
|
-
'BgvZcI0',
|
|
600
|
-
'zsGPoWO',
|
|
601
|
-
'mcKkcGO',
|
|
602
|
-
'BNqGkg4',
|
|
603
|
-
'y3rVCNK',
|
|
604
|
-
'jYWGDgK',
|
|
605
|
-
'rKLhvvi',
|
|
606
|
-
'CYb1BMK',
|
|
607
|
-
'B3Dnzxm',
|
|
608
|
-
'suXflNi',
|
|
609
|
-
'y29TBwe',
|
|
610
|
-
'CYaKE2q',
|
|
611
|
-
'j3n0yxq',
|
|
612
|
-
'CY5YDw4',
|
|
613
|
-
'C2fNzsG',
|
|
614
|
-
'iIiIcIa',
|
|
615
|
-
'Bg9Hzhm',
|
|
616
|
-
'pIbJlM4',
|
|
617
|
-
'Ew5Jlxm',
|
|
618
|
-
'x19MAwW',
|
|
619
|
-
'zxrJlIK',
|
|
620
|
-
'ugf5Bg8',
|
|
621
|
-
'zgLUlNi',
|
|
622
|
-
'if9FzMK',
|
|
623
|
-
'BMCTzxy',
|
|
624
|
-
'yxn0u3K',
|
|
625
|
-
'yMXLlMO',
|
|
626
|
-
'E30PlMC',
|
|
627
|
-
'zwfKieC',
|
|
628
|
-
'cI8QkGO',
|
|
629
|
-
'B2nRAw4',
|
|
630
|
-
'AwCUANm',
|
|
631
|
-
'z2fSl3m',
|
|
632
|
-
'ic0GywW',
|
|
633
|
-
'icaGC2G',
|
|
634
|
-
'zxmGy28',
|
|
635
|
-
'AwyGBM8',
|
|
636
|
-
'x0nptKy',
|
|
637
|
-
'Aw9Uksa',
|
|
638
|
-
'zuzPBgu',
|
|
639
|
-
'zMLNkcK',
|
|
640
|
-
'zxjHDgu',
|
|
641
|
-
'jhTZDge',
|
|
642
|
-
'Bgukica',
|
|
643
|
-
'iKrVihK',
|
|
644
|
-
'BMD0Aca',
|
|
645
|
-
'ugf0AcW',
|
|
646
|
-
'FsWkica',
|
|
647
|
-
'mcKGpIa',
|
|
648
|
-
'zs5HCha',
|
|
649
|
-
'uMvHzca',
|
|
650
|
-
'BgvtEw4',
|
|
651
|
-
'BhmUcI8',
|
|
652
|
-
'igbNywW',
|
|
653
|
-
'BNbTx2m',
|
|
654
|
-
'BwqNktS',
|
|
655
|
-
'C1TLDMu',
|
|
656
|
-
'AwDFB3u',
|
|
657
|
-
'AgvJAYa',
|
|
658
|
-
'x2fNzw4',
|
|
659
|
-
'BgLUA1m',
|
|
660
|
-
'ie5VBMu',
|
|
661
|
-
'zxnCmdm',
|
|
662
|
-
'ztOGj3m',
|
|
663
|
-
'pt09pqO',
|
|
664
|
-
'kGOGkIa',
|
|
665
|
-
'icbJB24',
|
|
666
|
-
'ihrVihm',
|
|
667
|
-
'Dwu7cIa',
|
|
668
|
-
'ihDPDgG',
|
|
669
|
-
'z3rOice',
|
|
670
|
-
'C3bHDgm',
|
|
671
|
-
'AwXLCYa',
|
|
672
|
-
'zsa9ihi',
|
|
673
|
-
'ifnLC3m',
|
|
674
|
-
'BgvZlMW',
|
|
675
|
-
'ifnPBgu',
|
|
676
|
-
'kIbtAg8',
|
|
677
|
-
'y2HLy2S',
|
|
678
|
-
'DxmGBgK',
|
|
679
|
-
'Aw5NkcK',
|
|
680
|
-
'zwn1DgK',
|
|
681
|
-
'kcDJCNK',
|
|
682
|
-
'zMfSC2u',
|
|
683
|
-
'y2uOl14',
|
|
684
|
-
'z2fSihm',
|
|
685
|
-
'DcbZzxq',
|
|
686
|
-
'CM9TChq',
|
|
687
|
-
'ncKklY8',
|
|
688
|
-
'BguGsLm',
|
|
689
|
-
'icaGigm',
|
|
690
|
-
'BL9ZDge',
|
|
691
|
-
'CgLWzsC',
|
|
692
|
-
'zxmNktS',
|
|
693
|
-
'zw50khm',
|
|
694
|
-
'y3j5Chq',
|
|
695
|
-
'DhvZcMm',
|
|
696
|
-
'C3rwzxi',
|
|
697
|
-
'zxHWksa',
|
|
698
|
-
'zMLJyxq',
|
|
699
|
-
'BMCUChu',
|
|
700
|
-
'AYbLDMu',
|
|
701
|
-
'Cg5WBq',
|
|
702
|
-
'BMrbDxq',
|
|
703
|
-
'zf9NywW',
|
|
704
|
-
'zsbdteK',
|
|
705
|
-
'jYK7cGO',
|
|
706
|
-
'zMLSzxm',
|
|
707
|
-
'uNvUoIa',
|
|
708
|
-
'EYbMCY4',
|
|
709
|
-
'Acb7FqO',
|
|
710
|
-
'D24GFsa',
|
|
711
|
-
'zsb0Agu',
|
|
712
|
-
'Ag93Aw4',
|
|
713
|
-
'q0Xjihi',
|
|
714
|
-
'rKLmrsa',
|
|
715
|
-
'nc4WlJa',
|
|
716
|
-
'zs5UB3C',
|
|
717
|
-
'AgvJA0e',
|
|
718
|
-
'AwyGkhu',
|
|
719
|
-
'z0HHC2G',
|
|
720
|
-
'Aw5LoGO',
|
|
721
|
-
'CMvHzeC',
|
|
722
|
-
'Axn0CYG',
|
|
723
|
-
'keDbtf8',
|
|
724
|
-
'Bxb0ihq',
|
|
725
|
-
'iefSD2e',
|
|
726
|
-
'id0Gy3u',
|
|
727
|
-
'EhbPCMe',
|
|
728
|
-
'zfzLCNm',
|
|
729
|
-
'tKvFvKu',
|
|
730
|
-
'igLUihm',
|
|
731
|
-
'ienmssa',
|
|
732
|
-
'ztSkica',
|
|
733
|
-
'AcKkzNu',
|
|
734
|
-
'BNn0igW',
|
|
735
|
-
'EYbZDgq',
|
|
736
|
-
'zwqUxg4',
|
|
737
|
-
'Dg8Nlca',
|
|
738
|
-
'ihnLBMq',
|
|
739
|
-
'j10Sigm',
|
|
740
|
-
'icmGr2u',
|
|
741
|
-
'BNrDksa',
|
|
742
|
-
'CMv0Dxi',
|
|
743
|
-
'DgHVDxq',
|
|
744
|
-
'C19Wyxq',
|
|
745
|
-
'jYKPoWO',
|
|
746
|
-
'kcKSicC',
|
|
747
|
-
'khbHCNq',
|
|
748
|
-
'uMvMCMu',
|
|
749
|
-
'ltGNksK',
|
|
750
|
-
'Af9Yzxe',
|
|
751
|
-
'icaGAwy',
|
|
752
|
-
'icDPz24',
|
|
753
|
-
'ndm0otm3sNHdzhnt',
|
|
754
|
-
'CMvHzf8',
|
|
755
|
-
'id0+ice',
|
|
756
|
-
'zw50CYa',
|
|
757
|
-
'zwXLDgu',
|
|
758
|
-
'zsbHBgW',
|
|
759
|
-
'ANnVBI4',
|
|
760
|
-
'CNKGAxm',
|
|
761
|
-
'u09orgu',
|
|
762
|
-
'lsbJywm',
|
|
763
|
-
'icGHzw4',
|
|
764
|
-
'y1n5BMm',
|
|
765
|
-
'DhvYBIa',
|
|
766
|
-
'zxf1Axi',
|
|
767
|
-
'Chv0x2q',
|
|
768
|
-
'E30kcIa',
|
|
769
|
-
'DgvKigi',
|
|
770
|
-
'y2SGmtO',
|
|
771
|
-
'BgvZcMK',
|
|
772
|
-
'Bw92zsa',
|
|
773
|
-
'DxrKyxq',
|
|
774
|
-
'DgzVCM0',
|
|
775
|
-
'iefSBca',
|
|
776
|
-
'CYbNCMe',
|
|
777
|
-
'y2vZCYC',
|
|
778
|
-
'BNrPy2e',
|
|
779
|
-
'BcCku1K',
|
|
780
|
-
'EYbYzwm',
|
|
781
|
-
'khbYB2m',
|
|
782
|
-
'zgf5khm',
|
|
783
|
-
'lNjLywq',
|
|
784
|
-
'zeDHBem',
|
|
785
|
-
'zs5VCMC',
|
|
786
|
-
'ChqGkhm',
|
|
787
|
-
'kIaTie4',
|
|
788
|
-
'yxrHktO',
|
|
789
|
-
'B29Rrxy',
|
|
790
|
-
'icDNywW',
|
|
791
|
-
'ifn5BMm',
|
|
792
|
-
'BMCGDg8',
|
|
793
|
-
'idm6iem',
|
|
794
|
-
'AYbHDxq',
|
|
795
|
-
'z3rOid4',
|
|
796
|
-
'ndOGtwK',
|
|
797
|
-
'iw5Lzwq',
|
|
798
|
-
'khnLDhq',
|
|
799
|
-
'oWPPzIa',
|
|
800
|
-
'iIaTlt4',
|
|
801
|
-
'ys5QC28',
|
|
802
|
-
'yxqGDgG',
|
|
803
|
-
'vvrpx1u',
|
|
804
|
-
'ideWmda',
|
|
805
|
-
'x1nuqvq',
|
|
806
|
-
'BNn0ihm',
|
|
807
|
-
'zM9Yiem',
|
|
808
|
-
'w2v2zw4',
|
|
809
|
-
'ie5VDca',
|
|
810
|
-
'C2v0DgK',
|
|
811
|
-
'C2GOEWO',
|
|
812
|
-
'AguUBge',
|
|
813
|
-
'lI4VCge',
|
|
814
|
-
't04Gpsa',
|
|
815
|
-
'BGOGihq',
|
|
816
|
-
'Aw9UjYW',
|
|
817
|
-
'iGOky28',
|
|
818
|
-
'lY8GDhi',
|
|
819
|
-
'CY5TA2q',
|
|
820
|
-
'EWOGigm',
|
|
821
|
-
'mdSkica',
|
|
822
|
-
'Aw5KzxG',
|
|
823
|
-
'icaXlIa',
|
|
824
|
-
'DMuOkqO',
|
|
825
|
-
'ywDLkga',
|
|
826
|
-
'icOkicO',
|
|
827
|
-
'igXVy2e',
|
|
828
|
-
'yw4Oksa',
|
|
829
|
-
'DxrOvg8',
|
|
830
|
-
'B2nHBca',
|
|
831
|
-
'ieDbtdO',
|
|
832
|
-
'ic0GDgu',
|
|
833
|
-
'zIbYzwe',
|
|
834
|
-
'teKGAxm',
|
|
835
|
-
'yxrJAca',
|
|
836
|
-
'z2LMEq',
|
|
837
|
-
'ywXLkcK',
|
|
838
|
-
'DcbJywm',
|
|
839
|
-
'cImGpt0',
|
|
840
|
-
'DgGUAM8',
|
|
841
|
-
'EWOGihq',
|
|
842
|
-
'ic8Vifi',
|
|
843
|
-
'AwyGyxy',
|
|
844
|
-
'AwXLu3K',
|
|
845
|
-
'zsGNB3m',
|
|
846
|
-
'ig5VDgK',
|
|
847
|
-
'cGPSzxq',
|
|
848
|
-
'rgLYksK',
|
|
849
|
-
'B21LzgK',
|
|
850
|
-
'ief1DgG',
|
|
851
|
-
'DcbZDge',
|
|
852
|
-
'AgvZig8',
|
|
853
|
-
'zMLNlMe',
|
|
854
|
-
'reLsid0',
|
|
855
|
-
'yxrLigy',
|
|
856
|
-
'yxrLlNm',
|
|
857
|
-
'y3qUA2u',
|
|
858
|
-
'AxnhywW',
|
|
859
|
-
'Bgf1zgu',
|
|
860
|
-
'tgLUzsa',
|
|
861
|
-
'z2uGpsa',
|
|
862
|
-
'icaGqMu',
|
|
863
|
-
'FsbJyxq',
|
|
864
|
-
'ke51Bwi',
|
|
865
|
-
'Dhj1ztS',
|
|
866
|
-
'D01LC3m',
|
|
867
|
-
'ms4WlJa',
|
|
868
|
-
'DhnBmv0',
|
|
869
|
-
'yMXLiem',
|
|
870
|
-
'DguGy2G',
|
|
871
|
-
'yxr1CWO',
|
|
872
|
-
'Aw5NC18',
|
|
873
|
-
'Ew5Jkha',
|
|
874
|
-
'icaGy28',
|
|
875
|
-
'zgf0zsC',
|
|
876
|
-
'ihn0yxq',
|
|
877
|
-
'lxvWzge',
|
|
878
|
-
'zv9VDxq',
|
|
879
|
-
'u2LUy2u',
|
|
880
|
-
'Df9Wyxq',
|
|
881
|
-
'zsbCygC',
|
|
882
|
-
'iYbdt04',
|
|
883
|
-
'u1Loq18',
|
|
884
|
-
'Bsb5B3u',
|
|
885
|
-
'DcbMCM8',
|
|
886
|
-
'icjWExq',
|
|
887
|
-
'DwXLCY4',
|
|
888
|
-
'psbnyxq',
|
|
889
|
-
'BgvHBIa',
|
|
890
|
-
'ihn5BMm',
|
|
891
|
-
'kfSND2G',
|
|
892
|
-
'Es5OB28',
|
|
893
|
-
'CNKGEWO',
|
|
894
|
-
'icbWBge',
|
|
895
|
-
'pvrYDwu',
|
|
896
|
-
'icb0CNK',
|
|
897
|
-
'z2fSige',
|
|
898
|
-
'zNjLC2G',
|
|
899
|
-
'Aw5ZDge',
|
|
900
|
-
'oIbZDge',
|
|
901
|
-
'C3LUyYa',
|
|
902
|
-
'sw5Qzwm',
|
|
903
|
-
'B3rgB3u',
|
|
904
|
-
'ic0TAgu',
|
|
905
|
-
'jYK7cN0',
|
|
906
|
-
'mIKPoWO',
|
|
907
|
-
'kcCSicC',
|
|
908
|
-
'icHHDxq',
|
|
909
|
-
'BM90ihm',
|
|
910
|
-
'DcbNywW',
|
|
911
|
-
'FsK7cGO',
|
|
912
|
-
'psbWyxq',
|
|
913
|
-
'ywXFy28',
|
|
914
|
-
'B3jT',
|
|
915
|
-
'icb0Aw0',
|
|
916
|
-
'yw4NDca',
|
|
917
|
-
'CIbdBge',
|
|
918
|
-
'Aw5NrMK',
|
|
919
|
-
'CMvHzey',
|
|
920
|
-
'zc51BNi',
|
|
921
|
-
'4PQG77IpieDbta',
|
|
922
|
-
'ieDbtca',
|
|
923
|
-
'Aw5NCY4',
|
|
924
|
-
'ihrYEsa',
|
|
925
|
-
'B25uExa',
|
|
926
|
-
'zsGPic8',
|
|
927
|
-
'BwfUzd8',
|
|
928
|
-
'BIGPcIa',
|
|
929
|
-
'zw4Sigq',
|
|
930
|
-
'kwa7cGO',
|
|
931
|
-
'kJOGqwW',
|
|
932
|
-
'lMzPBhq',
|
|
933
|
-
'iYa9pt0',
|
|
934
|
-
'B3jLigu',
|
|
935
|
-
'icbKzwW',
|
|
936
|
-
'DcbVCMC',
|
|
937
|
-
'teuUzxG',
|
|
938
|
-
'lcb3zsa',
|
|
939
|
-
'ieDbtf8',
|
|
940
|
-
'Bc5QB2K',
|
|
941
|
-
'B25HBaO',
|
|
942
|
-
'DgGUy3C',
|
|
943
|
-
'Bgv0igK',
|
|
944
|
-
'ihn0yxi',
|
|
945
|
-
'lMXVzYG',
|
|
946
|
-
'suDFrKK',
|
|
947
|
-
'C3qGzwW',
|
|
948
|
-
'4PYtieDbta',
|
|
949
|
-
'BwvZC2e',
|
|
950
|
-
'icbZzxq',
|
|
951
|
-
'pt0GmYK',
|
|
952
|
-
'BgW7ih0',
|
|
953
|
-
'zwq6ifm',
|
|
954
|
-
'ysbhquW',
|
|
955
|
-
'B25ZkIO',
|
|
956
|
-
'B3j0ifa',
|
|
957
|
-
'Aw4Gy3u',
|
|
958
|
-
'C29U',
|
|
959
|
-
'DgHLCMu',
|
|
960
|
-
'iYbszw0',
|
|
961
|
-
'zL9JBgu',
|
|
962
|
-
'DI5hquW',
|
|
963
|
-
'Aw5NCYa',
|
|
964
|
-
'BMnLzdO',
|
|
965
|
-
'kcKGlYa',
|
|
966
|
-
'CY5Szw4',
|
|
967
|
-
'FsDZige',
|
|
968
|
-
'psbYzxe',
|
|
969
|
-
'z2fSlq',
|
|
970
|
-
'BIbUDwW',
|
|
971
|
-
'q2fJAgu',
|
|
972
|
-
'igeGsLm',
|
|
973
|
-
'ierHDgu',
|
|
974
|
-
'zhmOr0e',
|
|
975
|
-
'yxrOid0',
|
|
976
|
-
'BwL0j10',
|
|
977
|
-
'B29Rigu',
|
|
978
|
-
'DhvZx2W',
|
|
979
|
-
'icaGigq',
|
|
980
|
-
'D3jPDgu',
|
|
981
|
-
'icbLEgm',
|
|
982
|
-
'ifn0yxq',
|
|
983
|
-
'zw50Awm',
|
|
984
|
-
'idyWicO',
|
|
985
|
-
'ksKkica',
|
|
986
|
-
'sviGlYa',
|
|
987
|
-
'mcb9ktS',
|
|
988
|
-
'igeGCgu',
|
|
989
|
-
'DMfPBge',
|
|
990
|
-
'Ew5Jzwq',
|
|
991
|
-
'ig9YzYK',
|
|
992
|
-
'id0GC2u',
|
|
993
|
-
'zsbZDge',
|
|
994
|
-
'igLMig4',
|
|
995
|
-
'DdOkicO',
|
|
996
|
-
'zxnbDca',
|
|
997
|
-
'zwqGy28',
|
|
998
|
-
'B21WDca',
|
|
999
|
-
'id0GmdS',
|
|
1000
|
-
'id0+ihS',
|
|
1001
|
-
'B24UBg8',
|
|
1002
|
-
'zxnZrxi',
|
|
1003
|
-
'y2HLuge',
|
|
1004
|
-
'ywXdB24',
|
|
1005
|
-
'DMvYEsO',
|
|
1006
|
-
'zcCSicC',
|
|
1007
|
-
'mcKPihS',
|
|
1008
|
-
'BMqGzMW',
|
|
1009
|
-
'CMvKlLW',
|
|
1010
|
-
'rxjYB3i',
|
|
1011
|
-
'lY8GrgK',
|
|
1012
|
-
'icaGDhi',
|
|
1013
|
-
'q29Kzs8',
|
|
1014
|
-
'zgqGC2u',
|
|
1015
|
-
'icaGihm',
|
|
1016
|
-
'jY5NywW',
|
|
1017
|
-
'icbWCMK',
|
|
1018
|
-
'DxnOzxm',
|
|
1019
|
-
'BM93',
|
|
1020
|
-
'E3n0yxq',
|
|
1021
|
-
'Dg8Gy2G',
|
|
1022
|
-
'zxnZcMy',
|
|
1023
|
-
'ihT9cN0',
|
|
1024
|
-
'zxmGyxi',
|
|
1025
|
-
'y0HHC2G',
|
|
1026
|
-
'icaVlYa',
|
|
1027
|
-
'cGOVlYa',
|
|
1028
|
-
'yxrLx3a',
|
|
1029
|
-
'B3uGD2e',
|
|
1030
|
-
'DgGGpIa',
|
|
1031
|
-
'BgXLzcG',
|
|
1032
|
-
'x1zfuLm',
|
|
1033
|
-
'DxqGyMW',
|
|
1034
|
-
'zw1PBMq',
|
|
1035
|
-
'DgfSBgu',
|
|
1036
|
-
'tM90Awy',
|
|
1037
|
-
'Dgf0zs4',
|
|
1038
|
-
'oIbxAgu',
|
|
1039
|
-
'BIGNlca',
|
|
1040
|
-
'lY8GuMu',
|
|
1041
|
-
'Bgf0zxm',
|
|
1042
|
-
'icOGuxu',
|
|
1043
|
-
'y1n0yxq',
|
|
1044
|
-
'BguOksa',
|
|
1045
|
-
'BdSkica',
|
|
1046
|
-
'B3CGD2e',
|
|
1047
|
-
'Ew5Jkgq',
|
|
1048
|
-
'zv9JBwq',
|
|
1049
|
-
'lvmGDxy',
|
|
1050
|
-
'zaOGica',
|
|
1051
|
-
'r0fmx0q',
|
|
1052
|
-
'kgvSAwC',
|
|
1053
|
-
'BMrPBMC',
|
|
1054
|
-
'C3rHDgu',
|
|
1055
|
-
'lcbMktS',
|
|
1056
|
-
'Dhj5ihS',
|
|
1057
|
-
'zxmPihS',
|
|
1058
|
-
'C19SAw4',
|
|
1059
|
-
'zw5LCMe',
|
|
1060
|
-
'Df0UzMK',
|
|
1061
|
-
'DguNlca',
|
|
1062
|
-
'zw52',
|
|
1063
|
-
'ic0Tyxu',
|
|
1064
|
-
'yxrLzca',
|
|
1065
|
-
'zxnZywC',
|
|
1066
|
-
'icaGigK',
|
|
1067
|
-
'lcaNlMC',
|
|
1068
|
-
'zca9ieO',
|
|
1069
|
-
'iYeVDxm',
|
|
1070
|
-
'zxnZlMm',
|
|
1071
|
-
'ywWNlca',
|
|
1072
|
-
'B1vWzge',
|
|
1073
|
-
'se9ps18',
|
|
1074
|
-
'DhvZtgK',
|
|
1075
|
-
'CIbVCMC',
|
|
1076
|
-
'ktSkcIa',
|
|
1077
|
-
'DcGNBge',
|
|
1078
|
-
'r19gsuW',
|
|
1079
|
-
'psaIpJ0',
|
|
1080
|
-
'DZ8IcG',
|
|
1081
|
-
'DhmGBMu',
|
|
1082
|
-
'jIb0B2S',
|
|
1083
|
-
'DgLUz3m',
|
|
1084
|
-
'psbqyxq',
|
|
1085
|
-
'BcCSicC',
|
|
1086
|
-
'zwyOktS',
|
|
1087
|
-
'yxrOlca',
|
|
1088
|
-
'CNjVCNm',
|
|
1089
|
-
'DxjUigu',
|
|
1090
|
-
'zgf5CYa',
|
|
1091
|
-
'zcGPic8',
|
|
1092
|
-
'y2vZCY4',
|
|
1093
|
-
'zc4kicO',
|
|
1094
|
-
'B29RCYK',
|
|
1095
|
-
'icCUz2e',
|
|
1096
|
-
'icb9igm',
|
|
1097
|
-
'mZGWmZGXmeHqENHwuG',
|
|
1098
|
-
'kclWN5sqieC',
|
|
1099
|
-
'id0GiG',
|
|
1100
|
-
'BMDZx3a',
|
|
1101
|
-
'y2GGCNu',
|
|
1102
|
-
'u2vZC2K',
|
|
1103
|
-
'icOGCMu',
|
|
1104
|
-
'ksKGEWO',
|
|
1105
|
-
'jWOkica',
|
|
1106
|
-
'oWOklY8',
|
|
1107
|
-
'DwvKqxq',
|
|
1108
|
-
'BgLUzsK',
|
|
1109
|
-
'BgL0kcC',
|
|
1110
|
-
'quKGywC',
|
|
1111
|
-
'C3rHBgu',
|
|
1112
|
-
'cKDbtf8',
|
|
1113
|
-
'CYbZDw0',
|
|
1114
|
-
'DxrMltG',
|
|
1115
|
-
'z05HBwu',
|
|
1116
|
-
'CM4GDhi',
|
|
1117
|
-
'Bxb0ige',
|
|
1118
|
-
'zwXWyca',
|
|
1119
|
-
'zwnRide',
|
|
1120
|
-
'CNqGq2W',
|
|
1121
|
-
'icbPzIa',
|
|
1122
|
-
'CNjVCIK',
|
|
1123
|
-
'ifrLBgu',
|
|
1124
|
-
'oIbnAxm',
|
|
1125
|
-
'pt09ida',
|
|
1126
|
-
'z0zPBgu',
|
|
1127
|
-
'zxqOj2m',
|
|
1128
|
-
'iIiIr2u',
|
|
1129
|
-
'DgGSieO',
|
|
1130
|
-
'y29Kzuu',
|
|
1131
|
-
'BNn0igy',
|
|
1132
|
-
'ksbIzwG',
|
|
1133
|
-
'yxrJAc0',
|
|
1134
|
-
'x2nVBMy',
|
|
1135
|
-
'Bvvvsuq',
|
|
1136
|
-
'ugf0Aca',
|
|
1137
|
-
'C2fNzqO',
|
|
1138
|
-
'Acb7cIa',
|
|
1139
|
-
'CY5OB28',
|
|
1140
|
-
'EWOGihm',
|
|
1141
|
-
'ig5Vzgu',
|
|
1142
|
-
'zxrYEs0',
|
|
1143
|
-
'icaJifi',
|
|
1144
|
-
'zIaOiwy',
|
|
1145
|
-
'B3rOzxi',
|
|
1146
|
-
'yw5PEMe',
|
|
1147
|
-
'zgvZ',
|
|
1148
|
-
'BcaTlwe',
|
|
1149
|
-
'twvZC2e',
|
|
1150
|
-
'z3nqyxq',
|
|
1151
|
-
'zhnszwy',
|
|
1152
|
-
'ygDHBca',
|
|
1153
|
-
'zw50cIa',
|
|
1154
|
-
'id0Gj3m',
|
|
1155
|
-
'CNnPB24',
|
|
1156
|
-
'pt0klY8',
|
|
1157
|
-
'zgLVoIa',
|
|
1158
|
-
'icaGFqO',
|
|
1159
|
-
'B20GC2u',
|
|
1160
|
-
'BMfSigq',
|
|
1161
|
-
'Ag9VA3m',
|
|
1162
|
-
'DxmGlsa',
|
|
1163
|
-
'DcHZDge',
|
|
1164
|
-
'q3vYC28',
|
|
1165
|
-
'C3rtEw4',
|
|
1166
|
-
'Aw9Uigm',
|
|
1167
|
-
'zwzYzxm',
|
|
1168
|
-
'DguGpsa',
|
|
1169
|
-
'oIbNywW',
|
|
1170
|
-
'CgvUzgK',
|
|
1171
|
-
'C2LVBJO',
|
|
1172
|
-
'zsHZEw4',
|
|
1173
|
-
'kcK7cIa',
|
|
1174
|
-
'BYbZEw4',
|
|
1175
|
-
'BNn0ig8',
|
|
1176
|
-
'CYbJywm',
|
|
1177
|
-
'BLbHEwW',
|
|
1178
|
-
'z19MAwW',
|
|
1179
|
-
't1qGC3K',
|
|
1180
|
-
'CY5Yzwe',
|
|
1181
|
-
'zxjYB3i',
|
|
1182
|
-
'Aw9UigK',
|
|
1183
|
-
'CYbJB24',
|
|
1184
|
-
'igDHBca',
|
|
1185
|
-
'z2u7cN0',
|
|
1186
|
-
'icOGzgK',
|
|
1187
|
-
'Aw5Lid0',
|
|
1188
|
-
'zsGI4PYfia',
|
|
1189
|
-
'C3rdAgu',
|
|
1190
|
-
'BM9YzsC',
|
|
1191
|
-
'BNn0ywW',
|
|
1192
|
-
'BIbYzwy',
|
|
1193
|
-
'ChqGzMK',
|
|
1194
|
-
'l2DHBc8',
|
|
1195
|
-
'ChqGrxG',
|
|
1196
|
-
'Ew5JigC',
|
|
1197
|
-
'xg5sDw4',
|
|
1198
|
-
'CdOGBMu',
|
|
1199
|
-
'y29Kzsa',
|
|
1200
|
-
'x2DHBf8',
|
|
1201
|
-
'nte1ndu2yxLjuxDb',
|
|
1202
|
-
'C3LUy2u',
|
|
1203
|
-
'jYK6cIa',
|
|
1204
|
-
'icD1Dgy',
|
|
1205
|
-
'DguTy2e',
|
|
1206
|
-
'ANvZDca',
|
|
1207
|
-
'r0fmiem',
|
|
1208
|
-
'DwXSoWO',
|
|
1209
|
-
'cIaGica',
|
|
1210
|
-
'x2nTzdO',
|
|
1211
|
-
'y2f0zwq',
|
|
1212
|
-
'ihnLBgy',
|
|
1213
|
-
'CMvZAcK',
|
|
1214
|
-
'C2u2ncC',
|
|
1215
|
-
'CIbMB3i',
|
|
1216
|
-
'j2HVB2S',
|
|
1217
|
-
'z2fSq28',
|
|
1218
|
-
'zwnRigu',
|
|
1219
|
-
'CYa9ihm',
|
|
1220
|
-
'yokCHsbhqq',
|
|
1221
|
-
'quW6iee',
|
|
1222
|
-
'kgHVB2S',
|
|
1223
|
-
'CM9Tic4',
|
|
1224
|
-
'ig9WDgK',
|
|
1225
|
-
'BhyGpsa',
|
|
1226
|
-
'AwyGkhm',
|
|
1227
|
-
'AwyGx18',
|
|
1228
|
-
'B3zLigG',
|
|
1229
|
-
'oWOGica',
|
|
1230
|
-
'DgvTtwu',
|
|
1231
|
-
'y2vMDwW',
|
|
1232
|
-
'CYKGEWO',
|
|
1233
|
-
'kqOkica',
|
|
1234
|
-
'yYbMB3i',
|
|
1235
|
-
'BgvUyw0',
|
|
1236
|
-
'BMnLzca',
|
|
1237
|
-
'Dw5PBNm',
|
|
1238
|
-
'cN0kcI8',
|
|
1239
|
-
'yxaOyYa',
|
|
1240
|
-
'jZeNihW',
|
|
1241
|
-
'B24Gpsa',
|
|
1242
|
-
'zgLYkcK',
|
|
1243
|
-
'AgvSCga',
|
|
1244
|
-
'jYWkica',
|
|
1245
|
-
'AgvUDgK',
|
|
1246
|
-
'C3rLChm',
|
|
1247
|
-
'iIWGj3m',
|
|
1248
|
-
'BYb0ywS',
|
|
1249
|
-
'zw50CMK',
|
|
1250
|
-
'ih0kFsa',
|
|
1251
|
-
'CMvWBge',
|
|
1252
|
-
'zsbLzMy',
|
|
1253
|
-
'Aw5LcIa',
|
|
1254
|
-
'BMLUzZO',
|
|
1255
|
-
'rsWGj3u',
|
|
1256
|
-
'oIbSB2C',
|
|
1257
|
-
'DgLVBIa',
|
|
1258
|
-
'C3qGy3y',
|
|
1259
|
-
'B29Rigy',
|
|
1260
|
-
'zgvMig0',
|
|
1261
|
-
'EtOkica',
|
|
1262
|
-
'DMuGAg8',
|
|
1263
|
-
'Aw5JBhu',
|
|
1264
|
-
'Ac5OB20',
|
|
1265
|
-
'AdOGjhS',
|
|
1266
|
-
'DMvYC2K',
|
|
1267
|
-
'Dg9ju08',
|
|
1268
|
-
'Cg9YDca',
|
|
1269
|
-
'AwDiyxm',
|
|
1270
|
-
'yxzPB3i',
|
|
1271
|
-
'BMCGpsa',
|
|
1272
|
-
'igLUzgu',
|
|
1273
|
-
'AYaYoIa',
|
|
1274
|
-
'lcb0Aw0',
|
|
1275
|
-
'zsDDcIa',
|
|
1276
|
-
'Bwv0CNK',
|
|
1277
|
-
'y2f0zwC',
|
|
1278
|
-
'AwyGC3K',
|
|
1279
|
-
'ktSky28',
|
|
1280
|
-
'iYaGica',
|
|
1281
|
-
'ywXSzwq',
|
|
1282
|
-
'ig1HAw4',
|
|
1283
|
-
'BMC6cIa',
|
|
1284
|
-
'ANnVBIa',
|
|
1285
|
-
'zxmGzNi',
|
|
1286
|
-
'j3v0zI0',
|
|
1287
|
-
'DgLVBIK',
|
|
1288
|
-
'ief0Dgu',
|
|
1289
|
-
'Ew5Jsge',
|
|
1290
|
-
'zxjLza',
|
|
1291
|
-
'AcbSB2C',
|
|
1292
|
-
'DgfTCcK',
|
|
1293
|
-
'Bsb0Agu',
|
|
1294
|
-
'mcKPigi',
|
|
1295
|
-
'B3qGC3K',
|
|
1296
|
-
'zNmUzxG',
|
|
1297
|
-
'BIHJBge',
|
|
1298
|
-
'j2nOAwW',
|
|
1299
|
-
'y19ZDge',
|
|
1300
|
-
'B29RigK',
|
|
1301
|
-
'B2fKicy',
|
|
1302
|
-
'cIaGlY8',
|
|
1303
|
-
'BgXGlca',
|
|
1304
|
-
'ihSGCMu',
|
|
1305
|
-
'cGPuAgu',
|
|
1306
|
-
'lMPVAw4',
|
|
1307
|
-
'DcbWyxi',
|
|
1308
|
-
'zwzHDwW',
|
|
1309
|
-
'Acb0B2S',
|
|
1310
|
-
'zwn0lG',
|
|
1311
|
-
'zwrwzxi',
|
|
1312
|
-
'ztOGDhi',
|
|
1313
|
-
'C29Tzq',
|
|
1314
|
-
'CMvZqxq',
|
|
1315
|
-
'zhmOC3q',
|
|
1316
|
-
'Dgu6cIa',
|
|
1317
|
-
'B3v0zge',
|
|
1318
|
-
'ksbYzxq',
|
|
1319
|
-
'BIaHzNm',
|
|
1320
|
-
'zw5NDgG',
|
|
1321
|
-
'zw50igm',
|
|
1322
|
-
'iIikcGO',
|
|
1323
|
-
'tMv4Dca',
|
|
1324
|
-
'icaGFsK',
|
|
1325
|
-
'AwyGkhi',
|
|
1326
|
-
'yxrOcGO',
|
|
1327
|
-
'DxjUigm',
|
|
1328
|
-
'C3rYAw4',
|
|
1329
|
-
'CM9Jzxm',
|
|
1330
|
-
'zYbMAwW',
|
|
1331
|
-
'zsbMAwW',
|
|
1332
|
-
'ExbLoIa',
|
|
1333
|
-
'm1SWBsi',
|
|
1334
|
-
'kIbwzxi',
|
|
1335
|
-
'C3rKAw8',
|
|
1336
|
-
'ktSkCMu',
|
|
1337
|
-
'DgvNB3i',
|
|
1338
|
-
'ig5VDaO',
|
|
1339
|
-
'Ac5QB2K',
|
|
1340
|
-
'icbLEgu',
|
|
1341
|
-
'DguOkqO',
|
|
1342
|
-
'q2fSBgu',
|
|
1343
|
-
'zsHPBNa',
|
|
1344
|
-
'DxmGtgK',
|
|
1345
|
-
'B21Tyw4',
|
|
1346
|
-
'teKGDg8',
|
|
1347
|
-
'CYbHBgW',
|
|
1348
|
-
'lNrYAw0',
|
|
1349
|
-
'cMLTCg8',
|
|
1350
|
-
'DwrLrgK',
|
|
1351
|
-
'm1SZm20',
|
|
1352
|
-
'B3zLzca',
|
|
1353
|
-
'Aw9Uihe',
|
|
1354
|
-
'B3iPoGO',
|
|
1355
|
-
'zxHWAxi',
|
|
1356
|
-
'AwXLcIa',
|
|
1357
|
-
'ktOkica',
|
|
1358
|
-
'icDvC2u',
|
|
1359
|
-
'zMf1Bhq',
|
|
1360
|
-
'CLbYB20',
|
|
1361
|
-
'j3bHDgG',
|
|
1362
|
-
'ywnOzva',
|
|
1363
|
-
'yxqGC2u',
|
|
1364
|
-
'Aw5FxYC',
|
|
1365
|
-
'ig91Dgq',
|
|
1366
|
-
'z3mUANm',
|
|
1367
|
-
'lMXLBMC',
|
|
1368
|
-
'CY5Nzxq',
|
|
1369
|
-
'zxr1CM4',
|
|
1370
|
-
'uhjVAMu',
|
|
1371
|
-
'DwjWCM8',
|
|
1372
|
-
'zI1JBgu',
|
|
1373
|
-
'CgrHDgu',
|
|
1374
|
-
'CYbSAw4',
|
|
1375
|
-
'kgnSyxu',
|
|
1376
|
-
'oYb9igm',
|
|
1377
|
-
'BNqGBwu',
|
|
1378
|
-
'zw1VDMu',
|
|
1379
|
-
'zxiPoWO',
|
|
1380
|
-
'zxvLige',
|
|
1381
|
-
'zdOGCMu',
|
|
1382
|
-
'BMniyxm',
|
|
1383
|
-
'uMvHzhK',
|
|
1384
|
-
'FqOGih0',
|
|
1385
|
-
'oIbdB24',
|
|
1386
|
-
'Dg8GBg8',
|
|
1387
|
-
'yxjZzsG',
|
|
1388
|
-
'B2nHBc4',
|
|
1389
|
-
'kqOGica',
|
|
1390
|
-
'CNnLkgy',
|
|
1391
|
-
'ic8VlYa',
|
|
1392
|
-
'AwyGkgy',
|
|
1393
|
-
'AwDPyMW',
|
|
1394
|
-
'tM90ihm',
|
|
1395
|
-
'zIbNzw4',
|
|
1396
|
-
'BMuOAw4',
|
|
1397
|
-
'icaGFsa',
|
|
1398
|
-
'DcbZExm',
|
|
1399
|
-
'C2vUzca',
|
|
1400
|
-
'BMntDge',
|
|
1401
|
-
'DwvuzwW',
|
|
1402
|
-
'AfXGlIa',
|
|
1403
|
-
'zxmUy2e',
|
|
1404
|
-
'ssKGCMu',
|
|
1405
|
-
'BMDZlMG',
|
|
1406
|
-
'B3v0ihm',
|
|
1407
|
-
'ChqGkgO',
|
|
1408
|
-
'lIbuAgK',
|
|
1409
|
-
'B246iha',
|
|
1410
|
-
'z2vZihq',
|
|
1411
|
-
'zf9WCM8',
|
|
1412
|
-
'zenVBMy',
|
|
1413
|
-
'j2nVBMy',
|
|
1414
|
-
'Ac5LEgK',
|
|
1415
|
-
'icaGigu',
|
|
1416
|
-
'cN0kcMy',
|
|
1417
|
-
'CMvHAZS',
|
|
1418
|
-
'zs5Nzxq',
|
|
1419
|
-
'CNqNlaO',
|
|
1420
|
-
'Cg9ZDgK',
|
|
1421
|
-
'ihn5CY4',
|
|
1422
|
-
'ksaVicC',
|
|
1423
|
-
'j3DOAwm',
|
|
1424
|
-
'CIGPlca',
|
|
1425
|
-
'rMLSzvm',
|
|
1426
|
-
'y2vWDgK',
|
|
1427
|
-
'zwq6ihq',
|
|
1428
|
-
'EsbhquW',
|
|
1429
|
-
'igLUC3q',
|
|
1430
|
-
'zxrYEqO',
|
|
1431
|
-
'icOQq28',
|
|
1432
|
-
'ihjLDhu',
|
|
1433
|
-
'DfzLCNm',
|
|
1434
|
-
'zcbPzIa',
|
|
1435
|
-
'nZu1',
|
|
1436
|
-
'ExmGC2G',
|
|
1437
|
-
'kgf1DgG',
|
|
1438
|
-
'oIaNAwC',
|
|
1439
|
-
'ihvWzge',
|
|
1440
|
-
'AM9PBG',
|
|
1441
|
-
'y01LC3m',
|
|
1442
|
-
'cI0Gu3K',
|
|
1443
|
-
'icaGiha',
|
|
1444
|
-
'C2nYAxa',
|
|
1445
|
-
'DcGNyxu',
|
|
1446
|
-
'B2TLBIK',
|
|
1447
|
-
'icHUzwu',
|
|
1448
|
-
'yxLSB2e',
|
|
1449
|
-
'q09orKK',
|
|
1450
|
-
'AwyGr0e',
|
|
1451
|
-
'CYbYDw4',
|
|
1452
|
-
'ChjVDMu',
|
|
1453
|
-
'cGOkzgu',
|
|
1454
|
-
'B2rLicG',
|
|
1455
|
-
'lcbYDw4',
|
|
1456
|
-
'Aw5Kicq',
|
|
1457
|
-
'lcbZEw4',
|
|
1458
|
-
'j3vWzge',
|
|
1459
|
-
'DcbOB28',
|
|
1460
|
-
'B3jLihm',
|
|
1461
|
-
'zM9Yzsa',
|
|
1462
|
-
'zhmklsa',
|
|
1463
|
-
'ywqGC3K',
|
|
1464
|
-
'AYbJywW',
|
|
1465
|
-
'ywLUkcK',
|
|
1466
|
-
'zgv0zwm',
|
|
1467
|
-
'icaGihi',
|
|
1468
|
-
'CIbGz2e',
|
|
1469
|
-
'Aw9UywW',
|
|
1470
|
-
'BNn0igm',
|
|
1471
|
-
'BMzPzW',
|
|
1472
|
-
'lY8GAw4',
|
|
1473
|
-
't04UC3q',
|
|
1474
|
-
'pt09pt0',
|
|
1475
|
-
'Ew50yxG',
|
|
1476
|
-
'DhrLBxa',
|
|
1477
|
-
'cMrLzIa',
|
|
1478
|
-
'zxH0kcK',
|
|
1479
|
-
'DguOktO',
|
|
1480
|
-
'zxrLihm',
|
|
1481
|
-
'icaGCge',
|
|
1482
|
-
'iGOkAw0',
|
|
1483
|
-
'tKnFu1q',
|
|
1484
|
-
'ksaVicG',
|
|
1485
|
-
'icyMihm',
|
|
1486
|
-
'ignSyxu',
|
|
1487
|
-
'zwHHDMK',
|
|
1488
|
-
'lcaNyxu',
|
|
1489
|
-
'y3qGBM8',
|
|
1490
|
-
'ExmUC3q',
|
|
1491
|
-
'ihjLywq',
|
|
1492
|
-
'BIGPoWO',
|
|
1493
|
-
'BM9KzqO',
|
|
1494
|
-
'yxnRoIa',
|
|
1495
|
-
'zwfKkcK',
|
|
1496
|
-
'y29UC3q',
|
|
1497
|
-
'yxaOtNu',
|
|
1498
|
-
'Ew5Jtwu',
|
|
1499
|
-
'ihbHDgG',
|
|
1500
|
-
'zwfKu3K',
|
|
1501
|
-
'lsbdB24',
|
|
1502
|
-
'DxnmAw4',
|
|
1503
|
-
'Ew5JcIa',
|
|
1504
|
-
'BIbZDge',
|
|
1505
|
-
'lLTLDMu',
|
|
1506
|
-
'zxb0igO',
|
|
1507
|
-
'BMzPzY4',
|
|
1508
|
-
'lYbszwy',
|
|
1509
|
-
'DcaOt1m',
|
|
1510
|
-
'Ag9Ulwq',
|
|
1511
|
-
'B3zLigy',
|
|
1512
|
-
'B3iOkeq',
|
|
1513
|
-
'Dfn5BMm',
|
|
1514
|
-
'Aw9Uu3q',
|
|
1515
|
-
'AwyGkce',
|
|
1516
|
-
'Bca8y28',
|
|
1517
|
-
'lIbGicS',
|
|
1518
|
-
'zIbZzwW',
|
|
1519
|
-
'ihnJCMK',
|
|
1520
|
-
'igXLDca',
|
|
1521
|
-
'AwCOkqO',
|
|
1522
|
-
'Aw5WDxq',
|
|
1523
|
-
'quWGC3q',
|
|
1524
|
-
'iYbdAgu',
|
|
1525
|
-
'icDZzxq',
|
|
1526
|
-
'icbSzxq',
|
|
1527
|
-
'BwvVDxq',
|
|
1528
|
-
'BMmGsg8',
|
|
1529
|
-
'iIWkiYa',
|
|
1530
|
-
'B3jNlwe',
|
|
1531
|
-
'B25ZlGO',
|
|
1532
|
-
'EgLZDhm',
|
|
1533
|
-
'r0fmoIa',
|
|
1534
|
-
'yxj0igG',
|
|
1535
|
-
'zwqG4OAsia',
|
|
1536
|
-
'BMv3zxi',
|
|
1537
|
-
'lMv4Axm',
|
|
1538
|
-
'quWGAxm',
|
|
1539
|
-
'C3rHDhu',
|
|
1540
|
-
'DgHFCMu',
|
|
1541
|
-
'C1DPDgG',
|
|
1542
|
-
'q2XHDwq',
|
|
1543
|
-
'AwXLBNq',
|
|
1544
|
-
'CM92zwq',
|
|
1545
|
-
'BwvKAxi',
|
|
1546
|
-
'ig9MigG',
|
|
1547
|
-
'kgHHC2G',
|
|
1548
|
-
'zv9Fks4',
|
|
1549
|
-
'Aw5Cmdm',
|
|
1550
|
-
'yxvKzsC',
|
|
1551
|
-
'zw5qyxK',
|
|
1552
|
-
'DgvKihq',
|
|
1553
|
-
'mdmZwZa',
|
|
1554
|
-
'DMvUDf0',
|
|
1555
|
-
'BMCGyw4',
|
|
1556
|
-
'mdaGFsK',
|
|
1557
|
-
'oIbrDwu',
|
|
1558
|
-
'B29RCZ8',
|
|
1559
|
-
'ifjLCxu',
|
|
1560
|
-
'BMDZuge',
|
|
1561
|
-
'icaGih0',
|
|
1562
|
-
'Bg9Hzca',
|
|
1563
|
-
'EYbZExm',
|
|
1564
|
-
'icbWCM8',
|
|
1565
|
-
'CMvKcMm',
|
|
1566
|
-
'Dhj5lMG',
|
|
1567
|
-
'z3mGpsa',
|
|
1568
|
-
'ls1WDwW',
|
|
1569
|
-
'zwqGC3q',
|
|
1570
|
-
'Axn0C1m',
|
|
1571
|
-
'CMvJDgW',
|
|
1572
|
-
'yxrLlMW',
|
|
1573
|
-
'zsbJB24',
|
|
1574
|
-
'DgXLkqO',
|
|
1575
|
-
'C2GGit0',
|
|
1576
|
-
't04GzMK',
|
|
1577
|
-
'ig9Yz04',
|
|
1578
|
-
'Aw4Gkem',
|
|
1579
|
-
'BIbQC28',
|
|
1580
|
-
'BgaGy28',
|
|
1581
|
-
'zxHLy1m',
|
|
1582
|
-
'DxrOigW',
|
|
1583
|
-
'BMfIBgu',
|
|
1584
|
-
'BgvKcI8',
|
|
1585
|
-
'ihbYB2m',
|
|
1586
|
-
'qvrfx0y',
|
|
1587
|
-
'ihj1BIa',
|
|
1588
|
-
'zgLUz0u',
|
|
1589
|
-
'yxrJAcK',
|
|
1590
|
-
'zguNic8',
|
|
1591
|
-
'kg1LC3m',
|
|
1592
|
-
'icb9cN0',
|
|
1593
|
-
'B2TZw2u',
|
|
1594
|
-
'ihrOzsa',
|
|
1595
|
-
'ifvWzge',
|
|
1596
|
-
'DxnSEsa',
|
|
1597
|
-
'BM90Awy',
|
|
1598
|
-
'uMvZDge',
|
|
1599
|
-
'AZSGFqO',
|
|
1600
|
-
'BM9Kzsa',
|
|
1601
|
-
'C3mUzw4',
|
|
1602
|
-
'z2LUcIa',
|
|
1603
|
-
'y2vKlca',
|
|
1604
|
-
'idaPihS',
|
|
1605
|
-
'tf9dt04',
|
|
1606
|
-
'Aw9UjZS',
|
|
1607
|
-
'ihvUC3u',
|
|
1608
|
-
'yxrLlM4',
|
|
1609
|
-
'CY52zxi',
|
|
1610
|
-
'B24NcGO',
|
|
1611
|
-
'igzSDxm',
|
|
1612
|
-
'Axb0cIm',
|
|
1613
|
-
'B3jPzxm',
|
|
1614
|
-
'cIaGFqO',
|
|
1615
|
-
'EhqGzxG',
|
|
1616
|
-
'A3mGpsa',
|
|
1617
|
-
'igLZige',
|
|
1618
|
-
'cGOGic8',
|
|
1619
|
-
'BsbZDgq',
|
|
1620
|
-
'vvnFteK',
|
|
1621
|
-
'DhrPBMC',
|
|
1622
|
-
'C3rZu3K',
|
|
1623
|
-
'quXFq08',
|
|
1624
|
-
'mtq0sgDSB1ji',
|
|
1625
|
-
'BNq9mIK',
|
|
1626
|
-
'BdOkica',
|
|
1627
|
-
'BMmGC3q',
|
|
1628
|
-
'zwqNktS',
|
|
1629
|
-
'yxLZFsa',
|
|
1630
|
-
'CNvUBMK',
|
|
1631
|
-
'B24GCMu',
|
|
1632
|
-
'AxiGpsa',
|
|
1633
|
-
'AYaZoIa',
|
|
1634
|
-
'jYK7cMm',
|
|
1635
|
-
'ic0GAwC',
|
|
1636
|
-
'CgXHDgy',
|
|
1637
|
-
'E30kica',
|
|
1638
|
-
'oIboB3q',
|
|
1639
|
-
'AM9PBIG',
|
|
1640
|
-
'Aw9Ulca',
|
|
1641
|
-
'pIaTlwG',
|
|
1642
|
-
'z3mSig4',
|
|
1643
|
-
'zwqPlM0',
|
|
1644
|
-
'lMPZB24',
|
|
1645
|
-
'zIbZDge',
|
|
1646
|
-
'yxr1CYa',
|
|
1647
|
-
'EsbGz2e',
|
|
1648
|
-
'iGPhquW',
|
|
1649
|
-
'DgrHDgu',
|
|
1650
|
-
'rKLhx0y',
|
|
1651
|
-
'z2fSjYW',
|
|
1652
|
-
'BIbZEw4',
|
|
1653
|
-
'lNDYAxq',
|
|
1654
|
-
'yxrLq2e',
|
|
1655
|
-
'FqOGica',
|
|
1656
|
-
'Aca9igy',
|
|
1657
|
-
'CgvUzgu',
|
|
1658
|
-
'B246cIa',
|
|
1659
|
-
'teKGy28',
|
|
1660
|
-
'BgvZic0',
|
|
1661
|
-
'ihSGC3q',
|
|
1662
|
-
'psbGxg4',
|
|
1663
|
-
'ywXZztS',
|
|
1664
|
-
'x05px0e',
|
|
1665
|
-
'qvrjt04',
|
|
1666
|
-
'ic0Gu2u',
|
|
1667
|
-
'lcbjt0u',
|
|
1668
|
-
'DgnOihS',
|
|
1669
|
-
'DgvFCge',
|
|
1670
|
-
'BMvYyxq',
|
|
1671
|
-
'DgvSzw0',
|
|
1672
|
-
'kg5Vig4',
|
|
1673
|
-
'lcbBxsK',
|
|
1674
|
-
'yw5KBgu',
|
|
1675
|
-
'igjYzwe',
|
|
1676
|
-
'DYbeyxq',
|
|
1677
|
-
'x2rHDge',
|
|
1678
|
-
'swztDge',
|
|
1679
|
-
'zYb0Agu',
|
|
1680
|
-
'j3LVDxi',
|
|
1681
|
-
'idi0icO',
|
|
1682
|
-
'icDSyxq',
|
|
1683
|
-
'Ac5JD2q',
|
|
1684
|
-
'iIiIcGO',
|
|
1685
|
-
'mdmZwZm',
|
|
1686
|
-
'lcaNkx0',
|
|
1687
|
-
'ywnLzNu',
|
|
1688
|
-
'zuP3DcG',
|
|
1689
|
-
'B3b0Aw8',
|
|
1690
|
-
'zw5HyMW',
|
|
1691
|
-
'igLMicG',
|
|
1692
|
-
'iIiIuMu',
|
|
1693
|
-
'zsbPzIa',
|
|
1694
|
-
'DguUBM8',
|
|
1695
|
-
'zsbVChq',
|
|
1696
|
-
'DcGNC3K',
|
|
1697
|
-
'ief1Dg8',
|
|
1698
|
-
'DhmGpsa',
|
|
1699
|
-
'zsGPlNq',
|
|
1700
|
-
'AwX0zxi',
|
|
1701
|
-
'CNqPcIa',
|
|
1702
|
-
'kIbhquW',
|
|
1703
|
-
'ihrLBgu',
|
|
1704
|
-
'Aw5NCYW',
|
|
1705
|
-
'ignOAwW',
|
|
1706
|
-
'D2qOksW',
|
|
1707
|
-
'Esb7cIa',
|
|
1708
|
-
'tdOGu3K',
|
|
1709
|
-
'Dw5SAw4',
|
|
1710
|
-
'cGPczwG',
|
|
1711
|
-
'yxrPB24',
|
|
1712
|
-
'zIaOzNm',
|
|
1713
|
-
'BgvZjYW',
|
|
1714
|
-
'u3LUyW',
|
|
1715
|
-
'B2rLieO',
|
|
1716
|
-
'AYbYDw4',
|
|
1717
|
-
'ndv4D2vRz3C',
|
|
1718
|
-
'AwvZlMy',
|
|
1719
|
-
'yxrOktS',
|
|
1720
|
-
'zxn0j30',
|
|
1721
|
-
'ig9Yihi',
|
|
1722
|
-
'yxb0Dxi',
|
|
1723
|
-
'kcDNywW',
|
|
1724
|
-
'y2HPBgq',
|
|
1725
|
-
'icbWzw4',
|
|
1726
|
-
'yxj0jYW',
|
|
1727
|
-
'yYH1Cgq',
|
|
1728
|
-
'Aw5Gic0',
|
|
1729
|
-
'DcaOuge',
|
|
1730
|
-
'lxb1BgW',
|
|
1731
|
-
'zsGPihS',
|
|
1732
|
-
'y2f0Aw8',
|
|
1733
|
-
'jYdIHPiGAW',
|
|
1734
|
-
'lIiIiGO',
|
|
1735
|
-
'icaJieG',
|
|
1736
|
-
'ihrVA2u',
|
|
1737
|
-
'D2L0Ag8',
|
|
1738
|
-
'BgvTzxq',
|
|
1739
|
-
'icOGlsa',
|
|
1740
|
-
'icmGu3K',
|
|
1741
|
-
'icaJifm',
|
|
1742
|
-
'DcGNlIC',
|
|
1743
|
-
'8j+uKcbhquW',
|
|
1744
|
-
'lMHVBwu',
|
|
1745
|
-
'ihnVihC',
|
|
1746
|
-
'Ag9VA18',
|
|
1747
|
-
'ChrFCge',
|
|
1748
|
-
'CNvUigC',
|
|
1749
|
-
'BMqGzgK',
|
|
1750
|
-
't25SEsa',
|
|
1751
|
-
'BgLUzq',
|
|
1752
|
-
'AwyGysa',
|
|
1753
|
-
'mZG0nZaYnuLkDwDkrG',
|
|
1754
|
-
'xsb8Fca',
|
|
1755
|
-
'B25ZDca',
|
|
1756
|
-
'ExmOC2u',
|
|
1757
|
-
'w2yGzM8',
|
|
1758
|
-
'w107cIa',
|
|
1759
|
-
'BMmODxa',
|
|
1760
|
-
'EWOGica',
|
|
1761
|
-
'DgHPCYa',
|
|
1762
|
-
'BIHWCM8',
|
|
1763
|
-
'icbXDwu',
|
|
1764
|
-
'zNKOCgu',
|
|
1765
|
-
'icaIiIi',
|
|
1766
|
-
'DhmGDg8',
|
|
1767
|
-
'AwyGkgm',
|
|
1768
|
-
'lcaNjYK',
|
|
1769
|
-
'icaGigC',
|
|
1770
|
-
'CYa9ifS',
|
|
1771
|
-
'y2vKigy',
|
|
1772
|
-
'DguPihS',
|
|
1773
|
-
'DgrPBZO',
|
|
1774
|
-
'BM9Yzsa',
|
|
1775
|
-
'BM90igC',
|
|
1776
|
-
'cImJiei',
|
|
1777
|
-
'icb9cIa',
|
|
1778
|
-
'icbZAg8',
|
|
1779
|
-
'DwuGDgu',
|
|
1780
|
-
'BhbGig8',
|
|
1781
|
-
'Aca9pt0',
|
|
1782
|
-
'igHVB2S',
|
|
1783
|
-
'DxbKyxq',
|
|
1784
|
-
'zw50CWO',
|
|
1785
|
-
'q2HLy2S',
|
|
1786
|
-
'ih0kica',
|
|
1787
|
-
'4OAsihbYBW',
|
|
1788
|
-
'AcbYDwW',
|
|
1789
|
-
'ifnLBgy',
|
|
1790
|
-
'ignOzwm',
|
|
1791
|
-
'Cgf0Aa',
|
|
1792
|
-
'ssbPCYa',
|
|
1793
|
-
'CNvLlaO',
|
|
1794
|
-
'kc9EDI8',
|
|
1795
|
-
'zMLSDgu',
|
|
1796
|
-
'C3rHCNq',
|
|
1797
|
-
'su9oid0',
|
|
1798
|
-
'BMuGzM8',
|
|
1799
|
-
'igyPlMu',
|
|
1800
|
-
'Aw9UicG',
|
|
1801
|
-
'zNmUDw4',
|
|
1802
|
-
'C1vWzge',
|
|
1803
|
-
'AcaHpt0',
|
|
1804
|
-
'BcC7cMm',
|
|
1805
|
-
'DgGSicC',
|
|
1806
|
-
'oIbTzxm',
|
|
1807
|
-
'ywnOzsa',
|
|
1808
|
-
'BLj1BJO',
|
|
1809
|
-
'yxr1C18',
|
|
1810
|
-
'AwXLCWO',
|
|
1811
|
-
'Aw9UoWO',
|
|
1812
|
-
'CNvSzxm',
|
|
1813
|
-
'yxrJAfa',
|
|
1814
|
-
'rg93BMW',
|
|
1815
|
-
'B24kica',
|
|
1816
|
-
'x3vZzxi',
|
|
1817
|
-
'B3rLBNy',
|
|
1818
|
-
'CNvLlca',
|
|
1819
|
-
'C3LZlMu',
|
|
1820
|
-
'BMfNAw4',
|
|
1821
|
-
'zgf0zum',
|
|
1822
|
-
'BY1ZEw4',
|
|
1823
|
-
'ifSNDxa',
|
|
1824
|
-
'lcaNCNu',
|
|
1825
|
-
'CMf0zv8',
|
|
1826
|
-
'ihn0yxK',
|
|
1827
|
-
'DxjHDgK',
|
|
1828
|
-
'vxnLCLa',
|
|
1829
|
-
'8j+tIYbcywm',
|
|
1830
|
-
'DhjPz2C',
|
|
1831
|
-
'y3DKkcK',
|
|
1832
|
-
'Dgv4DcW',
|
|
1833
|
-
'DI8SicC',
|
|
1834
|
-
'igvYCM8',
|
|
1835
|
-
'zsbXDwu',
|
|
1836
|
-
'Aw5Nig4',
|
|
1837
|
-
'BgfZDfm',
|
|
1838
|
-
'jIyGC3q',
|
|
1839
|
-
'CMLUz2K',
|
|
1840
|
-
'CWP9cGO',
|
|
1841
|
-
'y2Hqyxq',
|
|
1842
|
-
'AxnZAw4',
|
|
1843
|
-
'zsHZktO',
|
|
1844
|
-
'zwnRidi',
|
|
1845
|
-
'lcbZCge',
|
|
1846
|
-
'CYbHBMq',
|
|
1847
|
-
'C2LUzYa',
|
|
1848
|
-
'ierVD24',
|
|
1849
|
-
'kg9ZlMG',
|
|
1850
|
-
'Ew5Jlxi',
|
|
1851
|
-
'B3iGuNu',
|
|
1852
|
-
'ksb7cIa',
|
|
1853
|
-
'mZnT8j+tPsa',
|
|
1854
|
-
'Ag9VAYa',
|
|
1855
|
-
'Euv2zw4',
|
|
1856
|
-
'sLnptI4',
|
|
1857
|
-
'DxnFBgK',
|
|
1858
|
-
'mtbXAxPkuha',
|
|
1859
|
-
'BIb5B3u',
|
|
1860
|
-
'uLnjt04',
|
|
1861
|
-
'BgKUBwq',
|
|
1862
|
-
'B3mUAg8',
|
|
1863
|
-
'ihnLzsa',
|
|
1864
|
-
'B29KiokgKG',
|
|
1865
|
-
'zuLMu3q',
|
|
1866
|
-
'C3LUy1W',
|
|
1867
|
-
'ksK7cIa',
|
|
1868
|
-
'ig1PC20',
|
|
1869
|
-
'zgf0zsG',
|
|
1870
|
-
'CYa9ieO',
|
|
1871
|
-
'zhvTChm',
|
|
1872
|
-
'ihn1yNa',
|
|
1873
|
-
'Acb7ihi',
|
|
1874
|
-
'FsKPoWO',
|
|
1875
|
-
'tdOGu2u',
|
|
1876
|
-
'DxrOzw4',
|
|
1877
|
-
'BMnLzf8',
|
|
1878
|
-
'B24UcIa',
|
|
1879
|
-
'CYbTzxm',
|
|
1880
|
-
'zw91DdO',
|
|
1881
|
-
'CYbPBIa',
|
|
1882
|
-
'mtaWmcK',
|
|
1883
|
-
'lY8kiIi',
|
|
1884
|
-
'icr7BwK',
|
|
1885
|
-
'A2vUksa',
|
|
1886
|
-
'BNbT',
|
|
1887
|
-
'ihjLBw8',
|
|
1888
|
-
'igv4CgK',
|
|
1889
|
-
'C1n5BMm',
|
|
1890
|
-
'kcDZDge',
|
|
1891
|
-
'zwXMlwm',
|
|
1892
|
-
'DYGPid4',
|
|
1893
|
-
'ifjLywq',
|
|
1894
|
-
'DguUB3i',
|
|
1895
|
-
'C0XPBMu',
|
|
1896
|
-
'ksbKzwW',
|
|
1897
|
-
'zNvUy3q',
|
|
1898
|
-
'yw5KCWO',
|
|
1899
|
-
'Ag93twu',
|
|
1900
|
-
'B2TLBIa',
|
|
1901
|
-
'Ew5Jkhi',
|
|
1902
|
-
'j3mGC28',
|
|
1903
|
-
'j10SihS',
|
|
1904
|
-
'BgWTBwu',
|
|
1905
|
-
'ks50B1m',
|
|
1906
|
-
'BMfTzsK',
|
|
1907
|
-
'ihrYEtO',
|
|
1908
|
-
'rMLSzxm',
|
|
1909
|
-
'lwfWChi',
|
|
1910
|
-
'ywWTC3K',
|
|
1911
|
-
'ywWGzgK',
|
|
1912
|
-
'Aw5NC1S',
|
|
1913
|
-
'ks4IiIi',
|
|
1914
|
-
'DhvZktS',
|
|
1915
|
-
'ycbdteK',
|
|
1916
|
-
'CM4GsLm',
|
|
1917
|
-
'ihzLCNm',
|
|
1918
|
-
'zgLZDa',
|
|
1919
|
-
'cIaQcIa',
|
|
1920
|
-
'oIaZmda',
|
|
1921
|
-
'lsbIDwK',
|
|
1922
|
-
'j2DHBc0',
|
|
1923
|
-
'lxzLCNm',
|
|
1924
|
-
'rcGPlaO',
|
|
1925
|
-
'DgfKyxq',
|
|
1926
|
-
'iGOkica',
|
|
1927
|
-
'Ac5JB20',
|
|
1928
|
-
'B3iGBwe',
|
|
1929
|
-
'kx0Uxg4',
|
|
1930
|
-
'ks5Tyxa',
|
|
1931
|
-
'Dg9Rzw4',
|
|
1932
|
-
'lMXHDgu',
|
|
1933
|
-
'CgfZCWO',
|
|
1934
|
-
'BMn0Aw8',
|
|
1935
|
-
'j2rPC3a',
|
|
1936
|
-
'icG+mJq',
|
|
1937
|
-
'kcLDcIa',
|
|
1938
|
-
'Aw1LkcK',
|
|
1939
|
-
'B3jTlaO',
|
|
1940
|
-
'Dcb0Agu',
|
|
1941
|
-
'zwXLBwu',
|
|
1942
|
-
'CMLUz30',
|
|
1943
|
-
'mJqGkIa',
|
|
1944
|
-
'C2TPCha',
|
|
1945
|
-
'DcbhquW',
|
|
1946
|
-
'BMuNlca',
|
|
1947
|
-
'Bg9Hzc4',
|
|
1948
|
-
'Dgv4Dca',
|
|
1949
|
-
'zxnZksW',
|
|
1950
|
-
'ywrZige',
|
|
1951
|
-
'zYbMCM8',
|
|
1952
|
-
'C2LVBN0',
|
|
1953
|
-
'Ew5Jkhm',
|
|
1954
|
-
'DcbPzIa',
|
|
1955
|
-
'ic0GtM8',
|
|
1956
|
-
'y2fJAgu',
|
|
1957
|
-
'AguGpsa',
|
|
1958
|
-
'CNKGEYa',
|
|
1959
|
-
'quWTmte',
|
|
1960
|
-
'lcbZzwW',
|
|
1961
|
-
'pt09cI8',
|
|
1962
|
-
'ihnPBgu',
|
|
1963
|
-
'BgzdBgu',
|
|
1964
|
-
'lNb5',
|
|
1965
|
-
'iGOGica',
|
|
1966
|
-
'ChbYB3y',
|
|
1967
|
-
'Bf9PBNm',
|
|
1968
|
-
'DgePcGO',
|
|
1969
|
-
'BNn0ig0',
|
|
1970
|
-
'id0GANm',
|
|
1971
|
-
'iePtt04',
|
|
1972
|
-
'y2GGEWO',
|
|
1973
|
-
'rgLZy28',
|
|
1974
|
-
'DcbIzwy',
|
|
1975
|
-
'rgLYlca',
|
|
1976
|
-
'pIaWid8',
|
|
1977
|
-
't04UCge',
|
|
1978
|
-
'ihrYDwu',
|
|
1979
|
-
'BgvK',
|
|
1980
|
-
'ywWGBM8',
|
|
1981
|
-
'z2uPcIa',
|
|
1982
|
-
'ihj1Bgu',
|
|
1983
|
-
'icbZEw4',
|
|
1984
|
-
'jYa6icC',
|
|
1985
|
-
'BML6yxq',
|
|
1986
|
-
'igv2zw4',
|
|
1987
|
-
'Awz5khm',
|
|
1988
|
-
'kgmGpt4',
|
|
1989
|
-
'BgukDhi',
|
|
1990
|
-
'ignOyw4',
|
|
1991
|
-
'u1rbveu',
|
|
1992
|
-
'B24UCMu',
|
|
1993
|
-
'zs4kcIa',
|
|
1994
|
-
'EwXVywq',
|
|
1995
|
-
'ign3zdO',
|
|
1996
|
-
'D2L0Aca',
|
|
1997
|
-
'icDZEw4',
|
|
1998
|
-
'Ag9Tzwq',
|
|
1999
|
-
'zYbTzxm',
|
|
2000
|
-
'AwnHDgK',
|
|
2001
|
-
'Ew5Jic0',
|
|
2002
|
-
'DwrLCYG',
|
|
2003
|
-
'ignHDgm',
|
|
2004
|
-
'ihSkica',
|
|
2005
|
-
'zw5KAw4',
|
|
2006
|
-
'tI5Wyxi',
|
|
2007
|
-
'x3rYAwC',
|
|
2008
|
-
'B3Ckica',
|
|
2009
|
-
'ieLprxi',
|
|
2010
|
-
'iVcFLjaGr0e',
|
|
2011
|
-
'kYKGEWO',
|
|
2012
|
-
'id0GCge',
|
|
2013
|
-
'yxv0Agu',
|
|
2014
|
-
'igrPCMu',
|
|
2015
|
-
'z2LMEsG',
|
|
2016
|
-
'AcKPihS',
|
|
2017
|
-
'lYbiB28',
|
|
2018
|
-
'BNrYEs4',
|
|
2019
|
-
'zunHy2G',
|
|
2020
|
-
'DwLYzsG',
|
|
2021
|
-
'lMnQCW',
|
|
2022
|
-
'ugf0Ac4',
|
|
2023
|
-
'mZnBmg0',
|
|
2024
|
-
'AxjLzcO',
|
|
2025
|
-
'ktSkica',
|
|
2026
|
-
'CNjLBNq',
|
|
2027
|
-
'B2SGAwy',
|
|
2028
|
-
'DcbWzw4',
|
|
2029
|
-
'CM9Ylca',
|
|
2030
|
-
'C2fNzsa',
|
|
2031
|
-
'ywqGpsa',
|
|
2032
|
-
'DgvKxda',
|
|
2033
|
-
'CxvPCMu',
|
|
2034
|
-
'tKzjr18',
|
|
2035
|
-
'ChrtDwi',
|
|
2036
|
-
'icbMCY4',
|
|
2037
|
-
'C3nPBMC',
|
|
2038
|
-
'cGPPzIa',
|
|
2039
|
-
'BgXLzc4',
|
|
2040
|
-
'zMLYC3q',
|
|
2041
|
-
'icaGiYa',
|
|
2042
|
-
'oGOGica',
|
|
2043
|
-
'yxrLzaO',
|
|
2044
|
-
'lwnSAs4',
|
|
2045
|
-
'x0zjteu',
|
|
2046
|
-
'xYa9psa',
|
|
2047
|
-
'z3nFCge',
|
|
2048
|
-
'yIbPBxa',
|
|
2049
|
-
'C29UjYK',
|
|
2050
|
-
'ANnVBG',
|
|
2051
|
-
'ugf0AcK',
|
|
2052
|
-
'yxr1CYC',
|
|
2053
|
-
'CMfUzg8',
|
|
2054
|
-
'A3mGFhW',
|
|
2055
|
-
'CYbMCM8',
|
|
2056
|
-
'q0Xjigm',
|
|
2057
|
-
'Aw9UoIa',
|
|
2058
|
-
'Ew5JkcC',
|
|
2059
|
-
'oYb9cN0',
|
|
2060
|
-
'kgn2w2K',
|
|
2061
|
-
'BcbHDxq',
|
|
2062
|
-
't04Gzgu',
|
|
2063
|
-
'AwyGC2u',
|
|
2064
|
-
'm23IMQdVUi8GrW',
|
|
2065
|
-
'BsHWyxi',
|
|
2066
|
-
'Ew5JkeC',
|
|
2067
|
-
'zcb2zxi',
|
|
2068
|
-
'zNmUCMu',
|
|
2069
|
-
'BgvUz3q',
|
|
2070
|
-
'CgXHy2u',
|
|
2071
|
-
'C2uOzNm',
|
|
2072
|
-
'B2DPBIi',
|
|
2073
|
-
'icaGic8',
|
|
2074
|
-
'kgrPC3a',
|
|
2075
|
-
'kcKScIa',
|
|
2076
|
-
'igf2ywK',
|
|
2077
|
-
'icaGiIi',
|
|
2078
|
-
'DgHuB2S',
|
|
2079
|
-
'jYKGit0',
|
|
2080
|
-
'suXfid0',
|
|
2081
|
-
'oWPJB24',
|
|
2082
|
-
'BMnLzey',
|
|
2083
|
-
'yYHZzxq',
|
|
2084
|
-
'BIbuCNu',
|
|
2085
|
-
'rKLmrsK',
|
|
2086
|
-
'ic8Viee',
|
|
2087
|
-
'y2f0y2G',
|
|
2088
|
-
'DwX0t3i',
|
|
2089
|
-
'kcK7cGO',
|
|
2090
|
-
'mcKGpca',
|
|
2091
|
-
'Dgf0zva',
|
|
2092
|
-
'Dgf0zv8',
|
|
2093
|
-
'quWGq0W',
|
|
2094
|
-
'BMfTzv8',
|
|
2095
|
-
'C2LSzw4',
|
|
2096
|
-
'lNjHBMq',
|
|
2097
|
-
'nJaGkIa',
|
|
2098
|
-
'AcWGsLm',
|
|
2099
|
-
'C3nPB24',
|
|
2100
|
-
'BMukica',
|
|
2101
|
-
'BcCGlYa',
|
|
2102
|
-
'ywrZkhm',
|
|
2103
|
-
'C3rLywq',
|
|
2104
|
-
'BIWGzgu',
|
|
2105
|
-
'yxv0Aca',
|
|
2106
|
-
'DgLVBN0',
|
|
2107
|
-
'C2LVBI4',
|
|
2108
|
-
'kgX2w2K',
|
|
2109
|
-
'B3jLjYW',
|
|
2110
|
-
'DcbMB3i',
|
|
2111
|
-
'cJWHls0',
|
|
2112
|
-
'cImJiee',
|
|
2113
|
-
'zIaOixm',
|
|
2114
|
-
'xqOJic8',
|
|
2115
|
-
'lNnWBgK',
|
|
2116
|
-
'kJOGswy',
|
|
2117
|
-
'BMrfCNi',
|
|
2118
|
-
'AguGAw4',
|
|
2119
|
-
'AwyGj2C',
|
|
2120
|
-
'CM9YktO',
|
|
2121
|
-
'CY5Jyxq',
|
|
2122
|
-
'ANnVBIC',
|
|
2123
|
-
'l2vUDIa',
|
|
2124
|
-
'yxrOlNi',
|
|
2125
|
-
'BMzPzWO',
|
|
2126
|
-
'zwnRoIa',
|
|
2127
|
-
'CIbMigK',
|
|
2128
|
-
'FqOky28',
|
|
2129
|
-
'id0GwWO',
|
|
2130
|
-
'BIbUzxG',
|
|
2131
|
-
'lYa9pt0',
|
|
2132
|
-
'zMLNig8',
|
|
2133
|
-
'ugf0AcG',
|
|
2134
|
-
'AxrOieC',
|
|
2135
|
-
'lYbezwm',
|
|
2136
|
-
'ycWGj20',
|
|
2137
|
-
'CNKGzxy',
|
|
2138
|
-
'igfUEsa',
|
|
2139
|
-
'Aw4OB3m',
|
|
2140
|
-
'oIbqCM8',
|
|
2141
|
-
'ign1CNi',
|
|
2142
|
-
'BwLZC2K',
|
|
2143
|
-
'Aw4Gq2W',
|
|
2144
|
-
'zIaOrge',
|
|
2145
|
-
'D3mGC3K',
|
|
2146
|
-
'ChjVBxa',
|
|
2147
|
-
'q29UzMK',
|
|
2148
|
-
'khrVA2u',
|
|
2149
|
-
'y2THz2u',
|
|
2150
|
-
'icfJlMu',
|
|
2151
|
-
'Bw1HBMq',
|
|
2152
|
-
'z2fUAxO',
|
|
2153
|
-
'zxnZAw8',
|
|
2154
|
-
'DgvYkgG',
|
|
2155
|
-
'qwXSigC',
|
|
2156
|
-
'ls1Zy3i',
|
|
2157
|
-
'lMnSyxu',
|
|
2158
|
-
'DhvZlaO',
|
|
2159
|
-
'zwvWigW',
|
|
2160
|
-
'EsbZAwW',
|
|
2161
|
-
'DhjPBMC',
|
|
2162
|
-
'u09olNm',
|
|
2163
|
-
'icbYzxq',
|
|
2164
|
-
'icr7B3i',
|
|
2165
|
-
'pt4GyY4',
|
|
2166
|
-
'u2vSzI0',
|
|
2167
|
-
'ig9Yz2e',
|
|
2168
|
-
'ienmsqO',
|
|
2169
|
-
'yxrLihC',
|
|
2170
|
-
'yw1LktS',
|
|
2171
|
-
'yNbYB2m',
|
|
2172
|
-
'BIHVCY4',
|
|
2173
|
-
'mZnT4PQG77Ipia',
|
|
2174
|
-
'ignVBw0',
|
|
2175
|
-
'FqOklY8',
|
|
2176
|
-
'y2vKcMy',
|
|
2177
|
-
'Chv0kqO',
|
|
2178
|
-
'ig51BgW',
|
|
2179
|
-
'BNn0iha',
|
|
2180
|
-
'B3v0Chu',
|
|
2181
|
-
'BNn0ihu',
|
|
2182
|
-
'B3iGkgm',
|
|
2183
|
-
'zwXPz2K',
|
|
2184
|
-
'CML0zv8',
|
|
2185
|
-
'ig9UigK',
|
|
2186
|
-
'Dgf0zsK',
|
|
2187
|
-
'BYb2jhS',
|
|
2188
|
-
'ChvZAa',
|
|
2189
|
-
'ihvZzxi',
|
|
2190
|
-
'CMvZAca',
|
|
2191
|
-
'FhWGiwC',
|
|
2192
|
-
'BgfIBgu',
|
|
2193
|
-
'igjHy2S',
|
|
2194
|
-
'AhjVBM8',
|
|
2195
|
-
'CM4GtM8',
|
|
2196
|
-
'yWOGkIa',
|
|
2197
|
-
'CY5LEgK',
|
|
2198
|
-
'igDHBeq',
|
|
2199
|
-
'zw1LDhi',
|
|
2200
|
-
'CNjVCIW',
|
|
2201
|
-
'CYb0BWO',
|
|
2202
|
-
'AxnWyxq',
|
|
2203
|
-
'zYbZEw4',
|
|
2204
|
-
'B2TLBL8',
|
|
2205
|
-
'oWOkica',
|
|
2206
|
-
'vKvsu0K',
|
|
2207
|
-
'CI9IAw4',
|
|
2208
|
-
'DgHYB3q',
|
|
2209
|
-
'B0Ltt1m',
|
|
2210
|
-
'vMvYC2K',
|
|
2211
|
-
'zxH0ihi',
|
|
2212
|
-
'ywWGDxa',
|
|
2213
|
-
'cLzLCNm',
|
|
2214
|
-
'Bwf0y2G',
|
|
2215
|
-
'B2SGzM8',
|
|
2216
|
-
'DxrVlxm',
|
|
2217
|
-
'z2fSlwm',
|
|
2218
|
-
'BMuGAw4',
|
|
2219
|
-
'DgHVBIa',
|
|
2220
|
-
'j31GoWO',
|
|
2221
|
-
'ywnRigG',
|
|
2222
|
-
'EYbLEgu',
|
|
2223
|
-
'DxrFzge',
|
|
2224
|
-
'Df0UBgu',
|
|
2225
|
-
'DwuGzxy',
|
|
2226
|
-
'oIa1mda',
|
|
2227
|
-
'yxv0Afq',
|
|
2228
|
-
'Ac5MBg8',
|
|
2229
|
-
'yxrOBgK',
|
|
2230
|
-
'uxvLDwu',
|
|
2231
|
-
'z3mkica',
|
|
2232
|
-
'BMDZlMO',
|
|
2233
|
-
'C3rZkcK',
|
|
2234
|
-
'C3LUyWO',
|
|
2235
|
-
'j1nLC3m',
|
|
2236
|
-
'EgL0kda',
|
|
2237
|
-
'Ag9TzsG',
|
|
2238
|
-
'zxHJzxa',
|
|
2239
|
-
'Bsb7C3q',
|
|
2240
|
-
'uLvmrvm',
|
|
2241
|
-
'BgqGC3K',
|
|
2242
|
-
'DgLJyxq',
|
|
2243
|
-
'ienVzgu',
|
|
2244
|
-
'CM4GCge',
|
|
2245
|
-
'icHUBYa',
|
|
2246
|
-
'lsbUzxC',
|
|
2247
|
-
'CM5PBMC',
|
|
2248
|
-
'ocCPktS',
|
|
2249
|
-
'kcKk',
|
|
2250
|
-
'B3qGAxm',
|
|
2251
|
-
'B3COksa',
|
|
2252
|
-
'Ew5J',
|
|
2253
|
-
'Dg9tDhi',
|
|
2254
|
-
'CM9Tihm',
|
|
2255
|
-
'z2fSlxm',
|
|
2256
|
-
'DMvZigK',
|
|
2257
|
-
'icbZzwW',
|
|
2258
|
-
'y29UzMK',
|
|
2259
|
-
'C2GGpsa',
|
|
2260
|
-
'CMuGywi',
|
|
2261
|
-
'DxrVjYW',
|
|
2262
|
-
'igDHBem',
|
|
2263
|
-
'AxiOksW',
|
|
2264
|
-
'lYOQcIa',
|
|
2265
|
-
'j3bPCgu',
|
|
2266
|
-
'AYbHy2m',
|
|
2267
|
-
'kcDHCha',
|
|
2268
|
-
'lMDHBa',
|
|
2269
|
-
'jhTSB2m',
|
|
2270
|
-
'rMfSC2u',
|
|
2271
|
-
'zxHPDcG',
|
|
2272
|
-
'DcbYDw4',
|
|
2273
|
-
'rMLSzu4',
|
|
2274
|
-
'ke9IAMu',
|
|
2275
|
-
'B24GC2u',
|
|
2276
|
-
'BgX5ic0',
|
|
2277
|
-
'idaPigq',
|
|
2278
|
-
'Aw1WB3i',
|
|
2279
|
-
'AwjSzs4',
|
|
2280
|
-
'AguGDxm',
|
|
2281
|
-
'B3DZihu',
|
|
2282
|
-
'zxn0yw0',
|
|
2283
|
-
'ihnLDhq',
|
|
2284
|
-
'ntaXntq2Ahn3zu5U',
|
|
2285
|
-
'CMuTBg8',
|
|
2286
|
-
'igf1DgG',
|
|
2287
|
-
'igfWChi',
|
|
2288
|
-
'BguGDgG',
|
|
2289
|
-
'BNrLEhq',
|
|
2290
|
-
'idq6iem',
|
|
2291
|
-
'CIWGj3m',
|
|
2292
|
-
'zKnSzwe',
|
|
2293
|
-
'y2HTB2q',
|
|
2294
|
-
'sw5ZDge',
|
|
2295
|
-
'tcbPCYa',
|
|
2296
|
-
'BgW7cIa',
|
|
2297
|
-
'kgzZlNi',
|
|
2298
|
-
'DcbKAxm',
|
|
2299
|
-
'yxrLC3q',
|
|
2300
|
-
'DwLYzwq',
|
|
2301
|
-
'u3LUyYa',
|
|
2302
|
-
'id0GCMu',
|
|
2303
|
-
'lcaNlMm',
|
|
2304
|
-
'khyKE3m',
|
|
2305
|
-
'Dgv4DcG',
|
|
2306
|
-
'DgyTocC',
|
|
2307
|
-
'zw52lKm',
|
|
2308
|
-
'yxrOlNC',
|
|
2309
|
-
'z2fSx2m',
|
|
2310
|
-
'jYKGkYa',
|
|
2311
|
-
'BwfYEsa',
|
|
2312
|
-
'x2nSzwe',
|
|
2313
|
-
'CM9Tiha',
|
|
2314
|
-
'lICPlM0',
|
|
2315
|
-
'ywrgAwW',
|
|
2316
|
-
'oWOGih0',
|
|
2317
|
-
'zw50vMu',
|
|
2318
|
-
'lMDHBcC',
|
|
2319
|
-
'BMzPzYa'
|
|
2320
|
-
];
|
|
2321
|
-
_0x4078 = function () {
|
|
2322
|
-
return _0x3067c8;
|
|
2323
|
-
};
|
|
2324
|
-
return _0x4078();
|
|
2325
|
-
}
|
|
785
|
+
|
|
786
|
+
// =============================================================================
|
|
787
|
+
// Installation Functions - Status Line Script
|
|
788
|
+
// =============================================================================
|
|
789
|
+
|
|
790
|
+
/**
|
|
791
|
+
* Install the status line script to ~/.claude/status_lines/gal-sync-status.py
|
|
792
|
+
*
|
|
793
|
+
* The status line script runs continuously in Claude's status bar, showing
|
|
794
|
+
* sync warnings when the project is not synced with the org's approved config.
|
|
795
|
+
* Silent when synced (avoids status bar spam).
|
|
796
|
+
*
|
|
797
|
+
* Key behaviors:
|
|
798
|
+
* - Idempotent: Checks STATUS_LINE_VERSION marker before writing
|
|
799
|
+
* - Respectful: Won't overwrite user's existing custom statusLine
|
|
800
|
+
* - Registration: Adds to ~/.claude/settings.json statusLine field
|
|
801
|
+
* - Self-cleaning: Script removes itself if GAL CLI is uninstalled
|
|
802
|
+
*
|
|
803
|
+
* @returns {boolean} True if status line was installed or updated, false on error
|
|
804
|
+
*/
|
|
2326
805
|
function installStatusLine() {
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
_0x392223: 0x726,
|
|
2364
|
-
_0x1b66aa: 0x3aa,
|
|
2365
|
-
_0x11f5e2: 0x425,
|
|
2366
|
-
_0x20cdf4: 0x48e,
|
|
2367
|
-
_0x50fc1b: 0x792,
|
|
2368
|
-
_0xbb285a: 0x518,
|
|
2369
|
-
_0x17ef7f: 0x78b,
|
|
2370
|
-
_0x142854: 0x469,
|
|
2371
|
-
_0x3b07a5: 0x792,
|
|
2372
|
-
_0x10e28: 0x518,
|
|
2373
|
-
_0x42b6d9: 0x14e,
|
|
2374
|
-
_0x4cf84a: 0x65d,
|
|
2375
|
-
_0xd2af2e: 0x82f,
|
|
2376
|
-
_0x3d3cf6: 0x2a6,
|
|
2377
|
-
_0x408594: 0x232,
|
|
2378
|
-
_0x174118: 0x686,
|
|
2379
|
-
_0x503567: 0x837,
|
|
2380
|
-
_0x1e88d8: 0x18b,
|
|
2381
|
-
_0x15f51a: 0x348,
|
|
2382
|
-
_0x43163e: 0x683,
|
|
2383
|
-
_0x50d6a2: 0x6ac,
|
|
2384
|
-
_0x27f29d: 0x352,
|
|
2385
|
-
_0x2cce11: 0x3ba,
|
|
2386
|
-
_0x128aa1: 0x51e,
|
|
2387
|
-
_0x3fefd6: 0x82f,
|
|
2388
|
-
_0x5796da: 0x18b,
|
|
2389
|
-
_0x55bc4e: 0x2e7,
|
|
2390
|
-
_0x597638: 0xfb,
|
|
2391
|
-
_0x4e5375: 0x7ce,
|
|
2392
|
-
_0x4f6688: 0x16b,
|
|
2393
|
-
_0x40f242: 0x123,
|
|
2394
|
-
_0x4b6265: 0x874,
|
|
2395
|
-
_0x3a5fad: 0x661,
|
|
2396
|
-
_0x10e52b: 0x7eb
|
|
2397
|
-
}, _0x4ec121 = _0x53af, _0x5a767e = path[_0x4ec121(_0x18672b._0x4b97fa)](os[_0x4ec121(_0x18672b._0x9f1b8) + 'ir'](), _0x4ec121(_0x18672b._0x1ac7ec) + 'de'), _0x22232f = path[_0x4ec121(_0x18672b._0x4b97fa)](_0x5a767e, _0x4ec121(_0x18672b._0x571c68) + _0x4ec121(_0x18672b._0x59d5a6) + 'es'), _0x244dd0 = path[_0x4ec121(_0x18672b._0x4b97fa)](_0x22232f, _0x4ec121(_0x18672b._0x1018b7) + _0x4ec121(_0x18672b._0x3c1022) + _0x4ec121(_0x18672b._0x2216a6) + _0x4ec121(_0x18672b._0x3028eb)), _0x3c9767 = path[_0x4ec121(_0x18672b._0x546a0c)](_0x5a767e, _0x4ec121(_0x18672b._0x1fb2e0) + _0x4ec121(_0x18672b._0x2e0ef2) + _0x4ec121(_0x18672b._0x5467c3));
|
|
2398
|
-
try {
|
|
2399
|
-
let _0x3c4737 = {};
|
|
2400
|
-
if (fs[_0x4ec121(_0x18672b._0x1039dc) + _0x4ec121(_0x18672b._0x1cd4eb)](_0x3c9767))
|
|
2401
|
-
try {
|
|
2402
|
-
_0x3c4737 = JSON[_0x4ec121(_0x18672b._0x369f39)](fs[_0x4ec121(_0x18672b._0x7ab69d) + _0x4ec121(_0x18672b._0x33705b) + 'nc'](_0x3c9767, _0x4ec121(_0x18672b._0x5ce644)));
|
|
2403
|
-
} catch {
|
|
2404
|
-
_0x3c4737 = {};
|
|
2405
|
-
}
|
|
2406
|
-
if (_0x3c4737[_0x4ec121(_0x18672b._0x571c68) + _0x4ec121(_0x18672b._0x209572)]?.[_0x4ec121(_0x18672b._0xb31ba1) + 'nd'] && !_0x3c4737[_0x4ec121(_0x18672b._0x571c68) + _0x4ec121(_0x18672b._0x209572)][_0x4ec121(_0x18672b._0xa2c068) + 'nd'][_0x4ec121(_0x18672b._0x1dada9) + _0x4ec121(_0x18672b._0x41cc22)](_0x4ec121(_0x18672b._0x25f229) + _0x4ec121(_0x18672b._0x22fd9e) + _0x4ec121(_0x18672b._0x4bbf22)))
|
|
2407
|
-
return console[_0x4ec121(_0x18672b._0x45da9b)](_0x4ec121(_0x18672b._0x2c18c8) + _0x4ec121(_0x18672b._0x59eebb) + _0x4ec121(_0x18672b._0x23153a) + _0x4ec121(_0x18672b._0x557390) + _0x4ec121(_0x18672b._0x18ba4a) + _0x4ec121(_0x18672b._0xa1161) + _0x4ec121(_0x18672b._0x433461) + _0x4ec121(_0x18672b._0x392223) + _0x4ec121(_0x18672b._0x1b66aa) + _0x4ec121(_0x18672b._0x11f5e2) + _0x4ec121(_0x18672b._0x20cdf4)), ![];
|
|
2408
|
-
!fs[_0x4ec121(_0x18672b._0x50fc1b) + _0x4ec121(_0x18672b._0xbb285a)](_0x22232f) && fs[_0x4ec121(_0x18672b._0x17ef7f) + _0x4ec121(_0x18672b._0x142854)](_0x22232f, { 'recursive': !![] });
|
|
2409
|
-
let _0x18f97d = !![];
|
|
2410
|
-
if (fs[_0x4ec121(_0x18672b._0x3b07a5) + _0x4ec121(_0x18672b._0x10e28)](_0x244dd0)) {
|
|
2411
|
-
const _0x1dee92 = fs[_0x4ec121(_0x18672b._0x42b6d9) + _0x4ec121(_0x18672b._0x33705b) + 'nc'](_0x244dd0, _0x4ec121(_0x18672b._0x5ce644)), _0x2bd51e = _0x1dee92[_0x4ec121(_0x18672b._0x4cf84a)](/GAL_STATUS_LINE_VERSION = "([^"]+)"/);
|
|
2412
|
-
_0x2bd51e && _0x2bd51e[0x1] === STATUS_LINE_VERSION && (_0x3c4737[_0x4ec121(_0x18672b._0x571c68) + _0x4ec121(_0x18672b._0x209572)]?.[_0x4ec121(_0x18672b._0xd2af2e) + 'nd']?.[_0x4ec121(_0x18672b._0x3d3cf6) + _0x4ec121(_0x18672b._0x408594)](_0x4ec121(_0x18672b._0x174118) + _0x4ec121(_0x18672b._0x503567) + _0x4ec121(_0x18672b._0x4bbf22)) && (_0x18f97d = ![]));
|
|
806
|
+
const claudeDir = path.join(os.homedir(), '.claude');
|
|
807
|
+
const statusLinesDir = path.join(claudeDir, 'status_lines');
|
|
808
|
+
const scriptPath = path.join(statusLinesDir, 'gal-sync-status.py');
|
|
809
|
+
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
810
|
+
|
|
811
|
+
try {
|
|
812
|
+
// Check existing settings for custom statusLine
|
|
813
|
+
let settings = {};
|
|
814
|
+
if (fs.existsSync(settingsPath)) {
|
|
815
|
+
try {
|
|
816
|
+
settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
|
|
817
|
+
} catch {
|
|
818
|
+
settings = {};
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
// Don't overwrite user's custom statusLine (respect user's existing config)
|
|
823
|
+
if (settings.statusLine?.command && !settings.statusLine.command.includes('gal-sync-status')) {
|
|
824
|
+
console.log('ℹ Custom statusLine detected, skipping GAL status line');
|
|
825
|
+
return false;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
// Create directories if needed
|
|
829
|
+
if (!fs.existsSync(statusLinesDir)) {
|
|
830
|
+
fs.mkdirSync(statusLinesDir, { recursive: true });
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
// Check if script already exists with current version
|
|
834
|
+
let needsUpdate = true;
|
|
835
|
+
if (fs.existsSync(scriptPath)) {
|
|
836
|
+
const existingContent = fs.readFileSync(scriptPath, 'utf-8');
|
|
837
|
+
const versionMatch = existingContent.match(/GAL_STATUS_LINE_VERSION = "([^"]+)"/);
|
|
838
|
+
if (versionMatch && versionMatch[1] === STATUS_LINE_VERSION) {
|
|
839
|
+
// Also check if it's registered in settings
|
|
840
|
+
if (settings.statusLine?.command?.includes('gal-sync-status')) {
|
|
841
|
+
needsUpdate = false;
|
|
2413
842
|
}
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
// Write the script file if needed
|
|
847
|
+
if (needsUpdate) {
|
|
848
|
+
fs.writeFileSync(scriptPath, STATUS_LINE_CONTENT, 'utf-8');
|
|
849
|
+
fs.chmodSync(scriptPath, '755');
|
|
850
|
+
|
|
851
|
+
// Register in settings.json
|
|
852
|
+
settings.statusLine = {
|
|
853
|
+
type: 'command',
|
|
854
|
+
command: scriptPath
|
|
855
|
+
};
|
|
856
|
+
|
|
857
|
+
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
|
|
858
|
+
console.log('✓ GAL status line installed');
|
|
2420
859
|
}
|
|
860
|
+
|
|
861
|
+
return true;
|
|
862
|
+
} catch (error) {
|
|
863
|
+
// Silent fail - status line is optional enhancement
|
|
864
|
+
return false;
|
|
865
|
+
}
|
|
2421
866
|
}
|
|
867
|
+
|
|
2422
868
|
function detectPackageManager() {
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
_0x207279: 0x515,
|
|
2435
|
-
_0x158750: 0x7c2
|
|
2436
|
-
}, _0x476ae2 = _0x53af, _0x115b6c = process[_0x476ae2(_0x118feb._0x43bdfd)][_0x476ae2(_0x118feb._0x245d1b) + _0x476ae2(_0x118feb._0x323930) + _0x476ae2(_0x118feb._0xd5c71a) + _0x476ae2(_0x118feb._0x4570ef) + 't'] || '';
|
|
2437
|
-
if (_0x115b6c[_0x476ae2(_0x118feb._0x1dd532) + _0x476ae2(_0x118feb._0x3a91c3)](_0x476ae2(_0x118feb._0x9bf2ad)))
|
|
2438
|
-
return _0x476ae2(_0x118feb._0x4761d2);
|
|
2439
|
-
if (_0x115b6c[_0x476ae2(_0x118feb._0x1dd532) + _0x476ae2(_0x118feb._0x3a91c3)](_0x476ae2(_0x118feb._0x1edf84)))
|
|
2440
|
-
return _0x476ae2(_0x118feb._0x207279);
|
|
2441
|
-
return _0x476ae2(_0x118feb._0x158750) + 'wn';
|
|
2442
|
-
}
|
|
2443
|
-
function _0x53af(_0x2ac867, _0x5452ea) {
|
|
2444
|
-
_0x2ac867 = _0x2ac867 - 0x65;
|
|
2445
|
-
const _0x407873 = _0x4078();
|
|
2446
|
-
let _0x53afa4 = _0x407873[_0x2ac867];
|
|
2447
|
-
if (_0x53af['CYHQSX'] === undefined) {
|
|
2448
|
-
var _0x10085e = function (_0x5473a6) {
|
|
2449
|
-
const _0x139cae = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';
|
|
2450
|
-
let _0x51dce9 = '', _0x4719d5 = '';
|
|
2451
|
-
for (let _0x47695d = 0x0, _0x2d9813, _0x3b89cc, _0x4c9296 = 0x0; _0x3b89cc = _0x5473a6['charAt'](_0x4c9296++); ~_0x3b89cc && (_0x2d9813 = _0x47695d % 0x4 ? _0x2d9813 * 0x40 + _0x3b89cc : _0x3b89cc, _0x47695d++ % 0x4) ? _0x51dce9 += String['fromCharCode'](0xff & _0x2d9813 >> (-0x2 * _0x47695d & 0x6)) : 0x0) {
|
|
2452
|
-
_0x3b89cc = _0x139cae['indexOf'](_0x3b89cc);
|
|
2453
|
-
}
|
|
2454
|
-
for (let _0x15c7d4 = 0x0, _0x5203e8 = _0x51dce9['length']; _0x15c7d4 < _0x5203e8; _0x15c7d4++) {
|
|
2455
|
-
_0x4719d5 += '%' + ('00' + _0x51dce9['charCodeAt'](_0x15c7d4)['toString'](0x10))['slice'](-0x2);
|
|
2456
|
-
}
|
|
2457
|
-
return decodeURIComponent(_0x4719d5);
|
|
2458
|
-
};
|
|
2459
|
-
_0x53af['HtepCb'] = _0x10085e, _0x53af['yPVSWW'] = {}, _0x53af['CYHQSX'] = !![];
|
|
2460
|
-
}
|
|
2461
|
-
const _0x290392 = _0x407873[0x0], _0x2aa324 = _0x2ac867 + _0x290392, _0xf5edc4 = _0x53af['yPVSWW'][_0x2aa324];
|
|
2462
|
-
return !_0xf5edc4 ? (_0x53afa4 = _0x53af['HtepCb'](_0x53afa4), _0x53af['yPVSWW'][_0x2aa324] = _0x53afa4) : _0x53afa4 = _0xf5edc4, _0x53afa4;
|
|
869
|
+
const userAgent = process.env.npm_config_user_agent || '';
|
|
870
|
+
|
|
871
|
+
if (userAgent.startsWith('pnpm/')) {
|
|
872
|
+
return 'pnpm';
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
if (userAgent.startsWith('npm/')) {
|
|
876
|
+
return 'npm';
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
return 'unknown';
|
|
2463
880
|
}
|
|
881
|
+
|
|
2464
882
|
function recordInstallMetadata() {
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
_0x469160: 0x792,
|
|
2470
|
-
_0x5d5be: 0x518,
|
|
2471
|
-
_0x3d4b27: 0x78b,
|
|
2472
|
-
_0x250d55: 0x469,
|
|
2473
|
-
_0xfcc4d0: 0x74,
|
|
2474
|
-
_0x3ae307: 0x515,
|
|
2475
|
-
_0x2e7184: 0x7c2,
|
|
2476
|
-
_0x1d759f: 0x535,
|
|
2477
|
-
_0x5c1eec: 0xed,
|
|
2478
|
-
_0x43db31: 0x59c,
|
|
2479
|
-
_0x416bf2: 0x357,
|
|
2480
|
-
_0x5167ba: 0x13a,
|
|
2481
|
-
_0x2ab6bf: 0x527,
|
|
2482
|
-
_0x3faa6c: 0x53c,
|
|
2483
|
-
_0x3e1f3f: 0xd8,
|
|
2484
|
-
_0x134e4d: 0x2aa,
|
|
2485
|
-
_0x387ea3: 0x755,
|
|
2486
|
-
_0x196e8a: 0x41b,
|
|
2487
|
-
_0x406e74: 0x149,
|
|
2488
|
-
_0x3057b8: 0x18b,
|
|
2489
|
-
_0x4ad412: 0x348,
|
|
2490
|
-
_0x1b3b90: 0x683,
|
|
2491
|
-
_0x3dc4cc: 0x2e7,
|
|
2492
|
-
_0x525c6c: 0xfb,
|
|
2493
|
-
_0x59ee46: 0x211
|
|
2494
|
-
}, _0xdc9877 = _0x53af;
|
|
2495
|
-
try {
|
|
2496
|
-
const _0x28cec6 = path[_0xdc9877(_0x215371._0x36844a)](os[_0xdc9877(_0x215371._0x4ec2b0) + 'ir'](), _0xdc9877(_0x215371._0x135f3d));
|
|
2497
|
-
!fs[_0xdc9877(_0x215371._0x469160) + _0xdc9877(_0x215371._0x5d5be)](_0x28cec6) && fs[_0xdc9877(_0x215371._0x3d4b27) + _0xdc9877(_0x215371._0x250d55)](_0x28cec6, { 'recursive': !![] });
|
|
2498
|
-
const _0x1db4f7 = detectPackageManager(), _0x50db35 = _0x1db4f7 === _0xdc9877(_0x215371._0xfcc4d0) ? _0xdc9877(_0x215371._0xfcc4d0) : _0x1db4f7 === _0xdc9877(_0x215371._0x3ae307) ? _0xdc9877(_0x215371._0x3ae307) : _0xdc9877(_0x215371._0x2e7184) + 'wn', _0x233199 = path[_0xdc9877(_0x215371._0x36844a)](__dirname, '..', _0xdc9877(_0x215371._0x1d759f), _0xdc9877(_0x215371._0x5c1eec) + _0xdc9877(_0x215371._0x43db31)), _0x1a13cc = path[_0xdc9877(_0x215371._0x416bf2)](_0x28cec6, _0xdc9877(_0x215371._0x5167ba) + _0xdc9877(_0x215371._0x2ab6bf) + _0xdc9877(_0x215371._0x3faa6c) + _0xdc9877(_0x215371._0x3e1f3f) + 'n'), _0x354daf = {
|
|
2499
|
-
'binaryPath': _0x233199,
|
|
2500
|
-
'installedAt': new Date()[_0xdc9877(_0x215371._0x134e4d) + _0xdc9877(_0x215371._0x387ea3) + 'g'](),
|
|
2501
|
-
'method': _0x50db35,
|
|
2502
|
-
'packageManager': _0x1db4f7,
|
|
2503
|
-
'platform': process[_0xdc9877(_0x215371._0x196e8a) + _0xdc9877(_0x215371._0x406e74)],
|
|
2504
|
-
'version': cliVersion
|
|
2505
|
-
};
|
|
2506
|
-
fs[_0xdc9877(_0x215371._0x3057b8) + _0xdc9877(_0x215371._0x4ad412) + _0xdc9877(_0x215371._0x1b3b90)](_0x1a13cc, JSON[_0xdc9877(_0x215371._0x3dc4cc) + _0xdc9877(_0x215371._0x525c6c)](_0x354daf, null, 0x2), _0xdc9877(_0x215371._0x59ee46));
|
|
2507
|
-
} catch {
|
|
883
|
+
try {
|
|
884
|
+
const galDir = path.join(os.homedir(), '.gal');
|
|
885
|
+
if (!fs.existsSync(galDir)) {
|
|
886
|
+
fs.mkdirSync(galDir, { recursive: true });
|
|
2508
887
|
}
|
|
888
|
+
|
|
889
|
+
const packageManager = detectPackageManager();
|
|
890
|
+
const method = packageManager === 'pnpm' ? 'pnpm' : packageManager === 'npm' ? 'npm' : 'unknown';
|
|
891
|
+
const binaryPath = path.join(__dirname, '..', 'dist', 'index.cjs');
|
|
892
|
+
const metadataPath = path.join(galDir, 'install-metadata.json');
|
|
893
|
+
const metadata = {
|
|
894
|
+
binaryPath,
|
|
895
|
+
installedAt: new Date().toISOString(),
|
|
896
|
+
method,
|
|
897
|
+
packageManager,
|
|
898
|
+
platform: process.platform,
|
|
899
|
+
version: cliVersion,
|
|
900
|
+
};
|
|
901
|
+
|
|
902
|
+
fs.writeFileSync(metadataPath, JSON.stringify(metadata, null, 2), 'utf-8');
|
|
903
|
+
} catch {
|
|
904
|
+
// Silent fail - metadata is best-effort only
|
|
905
|
+
}
|
|
2509
906
|
}
|
|
907
|
+
|
|
908
|
+
// =============================================================================
|
|
909
|
+
// Main
|
|
910
|
+
// =============================================================================
|
|
911
|
+
|
|
2510
912
|
function main() {
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
_0x44dc7c: 0x138,
|
|
2529
|
-
_0x661220: 0x3e5,
|
|
2530
|
-
_0x97de89: 0x6f7,
|
|
2531
|
-
_0x1e3f37: 0x742,
|
|
2532
|
-
_0x3cc52a: 0x109,
|
|
2533
|
-
_0x3d75aa: 0x18e,
|
|
2534
|
-
_0x50db05: 0x630,
|
|
2535
|
-
_0x15d4ef: 0x60d,
|
|
2536
|
-
_0x14b9ad: 0x752,
|
|
2537
|
-
_0x35a656: 0x7ce,
|
|
2538
|
-
_0x5d2f16: 0x709,
|
|
2539
|
-
_0x3a6700: 0x87a,
|
|
2540
|
-
_0x22cfdb: 0x588,
|
|
2541
|
-
_0x152308: 0x479,
|
|
2542
|
-
_0x460869: 0x4ef,
|
|
2543
|
-
_0xa28dd3: 0x3d1,
|
|
2544
|
-
_0x1ff12f: 0x3b1,
|
|
2545
|
-
_0x13efd2: 0x565,
|
|
2546
|
-
_0x587042: 0x19c,
|
|
2547
|
-
_0x406cf8: 0x376,
|
|
2548
|
-
_0x388d54: 0x7ce
|
|
2549
|
-
}, _0x45a200 = _0x53af;
|
|
2550
|
-
recordInstallMetadata();
|
|
2551
|
-
const _0x4debb5 = installHook(), _0x3da103 = installRules(), _0x26af7e = installStatusLine();
|
|
2552
|
-
queueTelemetryEvent(), (_0x4debb5 || _0x3da103 || _0x26af7e) && (console[_0x45a200(_0x47f649._0x37ca14)](''), console[_0x45a200(_0x47f649._0x37ca14)](_0x45a200(_0x47f649._0x1d51cd) + _0x45a200(_0x47f649._0x33278c) + _0x45a200(_0x47f649._0x32585f) + _0x45a200(_0x47f649._0xc84f24) + _0x45a200(_0x47f649._0x32f1d4) + _0x45a200(_0x47f649._0x3f51d9) + _0x45a200(_0x47f649._0x72d297) + _0x45a200(_0x47f649._0x3827a1) + _0x45a200(_0x47f649._0x9424fd) + _0x45a200(_0x47f649._0x135ec7) + _0x45a200(_0x47f649._0x219b21)), console[_0x45a200(_0x47f649._0x37ca14)](''), console[_0x45a200(_0x47f649._0x100259)](_0x45a200(_0x47f649._0x48cb71) + _0x45a200(_0x47f649._0x54e11f) + ':'), console[_0x45a200(_0x47f649._0x100259)](_0x45a200(_0x47f649._0x2e5bf9) + _0x45a200(_0x47f649._0x44dc7c) + _0x45a200(_0x47f649._0x661220) + _0x45a200(_0x47f649._0x97de89) + _0x45a200(_0x47f649._0x1e3f37) + _0x45a200(_0x47f649._0x3cc52a) + _0x45a200(_0x47f649._0x3d75aa) + _0x45a200(_0x47f649._0x50db05) + _0x45a200(_0x47f649._0x15d4ef) + _0x45a200(_0x47f649._0x14b9ad)), console[_0x45a200(_0x47f649._0x35a656)](_0x45a200(_0x47f649._0x5d2f16) + _0x45a200(_0x47f649._0x3a6700) + _0x45a200(_0x47f649._0x22cfdb) + _0x45a200(_0x47f649._0x152308) + _0x45a200(_0x47f649._0x1e3f37) + _0x45a200(_0x47f649._0x460869) + _0x45a200(_0x47f649._0xa28dd3) + _0x45a200(_0x47f649._0x1ff12f) + _0x45a200(_0x47f649._0x13efd2) + _0x45a200(_0x47f649._0x587042) + _0x45a200(_0x47f649._0x406cf8)), console[_0x45a200(_0x47f649._0x388d54)](''));
|
|
913
|
+
recordInstallMetadata();
|
|
914
|
+
const hookInstalled = installHook();
|
|
915
|
+
const rulesInstalled = installRules();
|
|
916
|
+
const statusLineInstalled = installStatusLine();
|
|
917
|
+
|
|
918
|
+
// Queue telemetry event (GAL-114)
|
|
919
|
+
queueTelemetryEvent();
|
|
920
|
+
|
|
921
|
+
if (hookInstalled || rulesInstalled || statusLineInstalled) {
|
|
922
|
+
console.log('');
|
|
923
|
+
console.log('Restart Claude Code/Cursor for changes to take effect.');
|
|
924
|
+
console.log('');
|
|
925
|
+
console.log('Next steps:');
|
|
926
|
+
console.log(' 1. gal auth login - Authenticate with GitHub');
|
|
927
|
+
console.log(' 2. gal sync --pull - Download org-approved config');
|
|
928
|
+
console.log('');
|
|
929
|
+
}
|
|
2553
930
|
}
|
|
2554
|
-
|
|
931
|
+
|
|
932
|
+
main();
|