@evomap/evolver-proxy 2.0.0-beta.9 → 2.0.1

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.
Files changed (59) hide show
  1. package/dist/bin/evolver-proxy.d.ts +26 -2
  2. package/dist/bin/evolver-proxy.js +284 -51
  3. package/dist/daemon/atpConsent.js +5 -2
  4. package/dist/daemon/collaborationFacade.js +23 -13
  5. package/dist/daemon/proxyDaemon.d.ts +52 -0
  6. package/dist/daemon/proxyDaemon.js +1067 -24
  7. package/dist/daemon/publishRecallVerifier.d.ts +114 -0
  8. package/dist/daemon/publishRecallVerifier.js +495 -0
  9. package/dist/daemon/selectHub.js +5 -3
  10. package/dist/daemon/systemdNotifier.d.ts +46 -0
  11. package/dist/daemon/systemdNotifier.js +153 -0
  12. package/dist/index.d.ts +4 -1
  13. package/dist/index.js +4 -1
  14. package/dist/lifecycle/claimNudge.d.ts +20 -0
  15. package/dist/lifecycle/claimNudge.js +1 -0
  16. package/dist/lifecycle/deployGuard.js +1 -53
  17. package/dist/lifecycle/legacyNodeId.js +1 -178
  18. package/dist/lifecycle/manager.d.ts +4 -0
  19. package/dist/lifecycle/manager.js +1 -390
  20. package/dist/llm/bodyCapture.js +1 -293
  21. package/dist/llm/index.js +1 -3
  22. package/dist/llm/server.js +1 -359
  23. package/dist/llm/traceBackfill.js +1 -525
  24. package/dist/llm/traceConfig.js +1 -44
  25. package/dist/llm/traceControl.js +1 -85
  26. package/dist/llm/traceEnvelope.js +1 -286
  27. package/dist/llm/traceSink.js +1 -278
  28. package/dist/llm/traceUploadPayload.js +1 -27
  29. package/dist/llm/upstream.d.ts +5 -1
  30. package/dist/llm/upstream.js +1 -491
  31. package/dist/private/accountAssetCompatibility.d.ts +29 -0
  32. package/dist/private/accountAssetCompatibility.js +196 -0
  33. package/dist/private/adapterLoader.d.ts +21 -1
  34. package/dist/private/adapterLoader.js +242 -7
  35. package/dist/private/nodeCredentialStore.d.ts +23 -0
  36. package/dist/private/nodeCredentialStore.js +210 -0
  37. package/dist/router/cachePassthrough.js +1 -13
  38. package/dist/router/features.js +1 -52
  39. package/dist/router/index.js +1 -6
  40. package/dist/router/messagesRoute.js +1 -809
  41. package/dist/router/modelRouter.js +1 -66
  42. package/dist/router/providerRoutes.js +1 -1579
  43. package/dist/router/sseScan.js +1 -543
  44. package/dist/selfUpdate/bootstrap.d.ts +69 -0
  45. package/dist/selfUpdate/bootstrap.js +282 -0
  46. package/dist/selfUpdate/builtinKey.d.ts +4 -0
  47. package/dist/selfUpdate/builtinKey.js +16 -0
  48. package/dist/selfUpdate/executor.d.ts +1 -1
  49. package/dist/selfUpdate/executor.js +1 -1
  50. package/dist/selfUpdate/failureCodes.d.ts +4 -0
  51. package/dist/selfUpdate/failureCodes.js +7 -0
  52. package/dist/selfUpdate/migration.d.ts +93 -0
  53. package/dist/selfUpdate/migration.js +315 -0
  54. package/dist/selfUpdate/policy.d.ts +19 -2
  55. package/dist/selfUpdate/policy.js +82 -2
  56. package/dist/selfUpdate/releaseBinary.js +4 -1
  57. package/dist/sync/engine.d.ts +12 -0
  58. package/dist/sync/engine.js +1 -505
  59. package/package.json +7 -4
@@ -1,359 +1 @@
1
- // The local HTTP shell that puts the /v1/messages handler on the wire (the listen half v1 kept in
2
- // proxy/server/http.js). Binding model: loopback only, bearer-token self-auth (token mediation — the client
3
- // exports ANTHROPIC_BASE_URL=http://127.0.0.1:<port> and ANTHROPIC_AUTH_TOKEN=<proxy token>; the upstream
4
- // factory strips that header and substitutes real credentials). Loopback is NOT a trust boundary on a shared
5
- // host (other local users, container neighbors, postinstall scripts), hence the mandatory token.
6
- import { createServer } from 'node:http';
7
- import { timingSafeEqual } from 'node:crypto';
8
- export const DEFAULT_LLM_PORT = 19821; // one above the mailbox IPC default — the two daemons co-exist
9
- const MAX_PORT_ATTEMPTS = 100;
10
- /** /v1/messages bodies legitimately reach tens of MiB (long contexts); the 1 MiB IPC-style cap would break
11
- * real clients. Still bounded — an unauthenticated local writer must not be able to balloon memory. */
12
- export const DEFAULT_LLM_MAX_BODY_BYTES = 32 * 1024 * 1024;
13
- const SENSITIVE_QUERY_PARAMS = new Set([
14
- 'key',
15
- 'api_key',
16
- 'apikey',
17
- 'access_token',
18
- 'token',
19
- 'authorization',
20
- 'auth',
21
- 'client_secret',
22
- 'refresh_token',
23
- 'id_token',
24
- 'signature',
25
- 'sig',
26
- ]);
27
- function resolveMaxBodyBytes(opts, env) {
28
- if (typeof opts.maxBodyBytes === 'number' && opts.maxBodyBytes > 0)
29
- return Math.floor(opts.maxBodyBytes);
30
- const raw = Number(env['EVOLVER_LLM_MAX_BODY_BYTES']);
31
- if (Number.isFinite(raw) && raw > 0)
32
- return Math.floor(raw);
33
- return DEFAULT_LLM_MAX_BODY_BYTES;
34
- }
35
- function safeExtraHeaders(extraHeaders = {}) {
36
- const out = {};
37
- for (const [name, value] of Object.entries(extraHeaders)) {
38
- if (value === undefined || value === null)
39
- continue;
40
- const lower = name.toLowerCase();
41
- if (lower === 'content-length' || lower === 'content-type' || lower === 'transfer-encoding' || lower === 'connection')
42
- continue;
43
- if (/[\r\n]/.test(value))
44
- continue;
45
- out[name] = value;
46
- }
47
- return out;
48
- }
49
- function sendJson(res, status, body, extraHeaders = {}) {
50
- const payload = JSON.stringify(body);
51
- res.writeHead(status, {
52
- ...safeExtraHeaders(extraHeaders),
53
- 'Content-Type': 'application/json',
54
- 'Content-Length': Buffer.byteLength(payload),
55
- });
56
- res.end(payload);
57
- }
58
- function readBody(req, maxBytes) {
59
- return new Promise((resolve, reject) => {
60
- const declared = Number(req.headers['content-length']);
61
- if (Number.isFinite(declared) && declared > maxBytes) {
62
- reject(Object.assign(new Error('Request body too large'), { statusCode: 413 }));
63
- return;
64
- }
65
- const chunks = [];
66
- let received = 0;
67
- let settled = false;
68
- const fail = (err) => {
69
- if (settled)
70
- return;
71
- settled = true;
72
- try {
73
- req.destroy();
74
- }
75
- catch { /* already gone */ }
76
- reject(err);
77
- };
78
- req.on('data', (c) => {
79
- if (settled)
80
- return;
81
- received += c.length;
82
- if (received > maxBytes) {
83
- fail(Object.assign(new Error('Request body too large'), { statusCode: 413 }));
84
- return;
85
- }
86
- chunks.push(c);
87
- });
88
- req.on('end', () => {
89
- if (settled)
90
- return;
91
- settled = true;
92
- const raw = Buffer.concat(chunks).toString();
93
- if (!raw) {
94
- resolve({});
95
- return;
96
- }
97
- try {
98
- const parsed = JSON.parse(raw);
99
- if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
100
- resolve(parsed);
101
- else
102
- reject(Object.assign(new Error('Body must be a JSON object'), { statusCode: 400 }));
103
- }
104
- catch {
105
- reject(Object.assign(new Error('Invalid JSON body'), { statusCode: 400 }));
106
- }
107
- });
108
- req.on('error', fail);
109
- });
110
- }
111
- function lowerHeaders(req) {
112
- const out = {};
113
- for (const [k, v] of Object.entries(req.headers))
114
- out[k.toLowerCase()] = Array.isArray(v) ? v.join(', ') : v;
115
- return out;
116
- }
117
- function redactedRequestTarget(rawUrl, actualPort) {
118
- try {
119
- const url = new URL(rawUrl ?? '/', `http://127.0.0.1:${actualPort ?? 0}`);
120
- const query = new URLSearchParams();
121
- for (const [name, value] of url.searchParams.entries()) {
122
- query.append(name, SENSITIVE_QUERY_PARAMS.has(name.toLowerCase()) ? 'REDACTED' : value);
123
- }
124
- const qs = query.toString();
125
- return `${url.pathname}${qs ? `?${qs}` : ''}`;
126
- }
127
- catch {
128
- return '?';
129
- }
130
- }
131
- function routeTable(opts) {
132
- return {
133
- 'POST /v1/messages': opts.handler,
134
- ...(opts.routes ?? {}),
135
- };
136
- }
137
- function matchRoute(routes, method, pathname) {
138
- const direct = routes[`${method} ${pathname}`];
139
- if (direct)
140
- return { handler: direct, params: {} };
141
- const actual = pathname.split('/').filter(Boolean);
142
- for (const [key, handler] of Object.entries(routes)) {
143
- const [routeMethod, pattern] = key.split(' ', 2);
144
- if (routeMethod !== method || !pattern)
145
- continue;
146
- const expected = pattern.split('/').filter(Boolean);
147
- if (expected.length !== actual.length)
148
- continue;
149
- const params = {};
150
- let ok = true;
151
- for (let i = 0; i < expected.length; i++) {
152
- const part = expected[i];
153
- const got = actual[i];
154
- if (part.startsWith(':')) {
155
- params[part.slice(1)] = got;
156
- }
157
- else if (part !== got) {
158
- ok = false;
159
- break;
160
- }
161
- }
162
- if (ok)
163
- return { handler, params };
164
- }
165
- return null;
166
- }
167
- export class LlmProxyServer {
168
- opts;
169
- server;
170
- actualPort = null;
171
- log;
172
- env;
173
- maxBodyBytes;
174
- constructor(opts) {
175
- this.opts = opts;
176
- if (!opts.token)
177
- throw new Error('LlmProxyServer requires a non-empty token');
178
- this.log = opts.logger ?? console;
179
- this.env = opts.env ?? process.env;
180
- this.maxBodyBytes = resolveMaxBodyBytes(opts, this.env);
181
- }
182
- authed(req) {
183
- const header = req.headers['authorization'] ?? '';
184
- const provided = typeof header === 'string' && header.startsWith('Bearer ') ? header.slice(7) : '';
185
- const a = Buffer.from(provided, 'utf8');
186
- const b = Buffer.from(this.opts.token, 'utf8');
187
- return a.length === b.length && timingSafeEqual(a, b);
188
- }
189
- async start() {
190
- if (this.server)
191
- throw new Error('LlmProxyServer already started');
192
- const host = this.opts.host ?? '127.0.0.1';
193
- const basePort = this.opts.port ?? Number(this.env['EVOLVER_LLM_PORT'] || DEFAULT_LLM_PORT);
194
- const server = createServer((req, res) => { void this.handle(req, res); });
195
- const tryListen = (port) => new Promise((resolve, reject) => {
196
- server.once('error', (err) => {
197
- if (err.code === 'EADDRINUSE')
198
- resolve(false);
199
- else
200
- reject(err);
201
- });
202
- server.listen(port, host, () => resolve(true));
203
- });
204
- let port = basePort;
205
- for (let i = 0; i < MAX_PORT_ATTEMPTS; i++) {
206
- if (await tryListen(port)) {
207
- const addr = server.address();
208
- this.actualPort = typeof addr === 'object' && addr ? addr.port : port;
209
- this.server = server;
210
- const url = `http://${host}:${this.actualPort}`;
211
- this.log.log?.(`[evolver-llm-proxy] listening on ${url}`);
212
- return { port: this.actualPort, url };
213
- }
214
- if (basePort === 0)
215
- break; // kernel-assigned can't collide; a failure here is real
216
- port++;
217
- }
218
- throw new Error(`LlmProxyServer: no free port after ${MAX_PORT_ATTEMPTS} attempts from ${basePort}`);
219
- }
220
- async stop() {
221
- if (!this.server)
222
- return;
223
- const s = this.server;
224
- this.server = undefined;
225
- // close() alone waits for keep-alive sockets (undici/fetch pools them), which can park shutdown
226
- // indefinitely; drop them so stop() always completes.
227
- s.closeAllConnections();
228
- await new Promise((resolve) => { s.close(() => resolve()); });
229
- }
230
- async handle(req, res) {
231
- try {
232
- const url = new URL(req.url ?? '/', `http://127.0.0.1:${this.actualPort}`);
233
- if (req.method === 'GET' && url.pathname === '/healthz') {
234
- sendJson(res, 200, { ok: true });
235
- return;
236
- }
237
- if (!this.authed(req)) {
238
- sendJson(res, 401, { error: 'Unauthorized' });
239
- return;
240
- }
241
- const method = req.method ?? 'GET';
242
- const matched = matchRoute(routeTable(this.opts), method, url.pathname);
243
- if (!matched) {
244
- sendJson(res, 404, { error: 'Not found', path: url.pathname });
245
- return;
246
- }
247
- const body = method === 'POST' || method === 'PUT' || method === 'PATCH'
248
- ? await readBody(req, this.maxBodyBytes)
249
- : {};
250
- const request = {
251
- body,
252
- headers: lowerHeaders(req),
253
- params: matched.params,
254
- query: Object.fromEntries(url.searchParams.entries()),
255
- };
256
- const result = await matched.handler(request);
257
- if (result.stream) {
258
- await this.relayStream(res, result);
259
- return;
260
- }
261
- sendJson(res, result.status || 200, result.body ?? {}, result.headers);
262
- }
263
- catch (err) {
264
- const sc = err.statusCode;
265
- const status = typeof sc === 'number' ? sc : 500;
266
- this.log.warn?.(`[evolver-llm-proxy] ${req.method ?? '?'} ${redactedRequestTarget(req.url, this.actualPort)} → ${status}: ${err instanceof Error ? err.message : String(err)}`);
267
- if (res.headersSent) {
268
- try {
269
- res.end();
270
- }
271
- catch { /* socket already gone */ }
272
- }
273
- else {
274
- sendJson(res, status, { error: err instanceof Error ? err.message : 'Internal error' });
275
- }
276
- }
277
- }
278
- // SSE / passthrough relay (port of v1 ProxyHttpServer._streamResponse). The client closing mid-stream is
279
- // routine (Ctrl-C, network blip); without watching `close`, awaiting `drain` on a destroyed socket hangs
280
- // this coroutine forever AND pins the upstream fetch body open — a real upstream socket leak. Web
281
- // ReadableStream upstreams are read via an explicit reader so cancellation propagates; async iterables
282
- // (incl. the trace tee) fall back to for-await.
283
- async relayStream(res, result) {
284
- const headers = {
285
- 'Content-Type': 'text/event-stream',
286
- 'Cache-Control': 'no-cache',
287
- Connection: 'keep-alive',
288
- ...(result.headers ?? {}),
289
- };
290
- res.writeHead(result.status || 200, headers);
291
- const stream = result.stream;
292
- const reader = stream && typeof stream.getReader === 'function'
293
- ? stream.getReader()
294
- : null;
295
- let clientGone = false;
296
- const onClose = () => {
297
- clientGone = true;
298
- if (reader) {
299
- reader.cancel().catch(() => { });
300
- }
301
- else if (stream && typeof stream.return === 'function') {
302
- void stream.return(undefined).catch(() => undefined);
303
- }
304
- };
305
- res.once('close', onClose);
306
- const awaitBackpressure = () => new Promise((resolve) => {
307
- let settled = false;
308
- const onDrain = () => {
309
- if (settled)
310
- return;
311
- settled = true;
312
- res.off('close', onCloseInner);
313
- resolve();
314
- };
315
- const onCloseInner = () => {
316
- if (settled)
317
- return;
318
- settled = true;
319
- res.off('drain', onDrain);
320
- resolve();
321
- };
322
- res.once('drain', onDrain);
323
- res.once('close', onCloseInner);
324
- });
325
- const write = (chunk) => res.write(typeof chunk === 'string' || chunk instanceof Uint8Array ? chunk : String(chunk));
326
- try {
327
- if (reader) {
328
- for (;;) {
329
- const { value, done } = await reader.read();
330
- if (done || clientGone)
331
- break;
332
- if (!write(value)) {
333
- await awaitBackpressure();
334
- if (clientGone)
335
- break;
336
- }
337
- }
338
- }
339
- else if (stream && typeof stream[Symbol.asyncIterator] === 'function') {
340
- for await (const chunk of stream) {
341
- if (clientGone)
342
- break;
343
- if (!write(chunk)) {
344
- await awaitBackpressure();
345
- if (clientGone)
346
- break;
347
- }
348
- }
349
- }
350
- }
351
- finally {
352
- res.off('close', onClose);
353
- try {
354
- res.end();
355
- }
356
- catch { /* socket may already be destroyed */ }
357
- }
358
- }
359
- }
1
+ const _0x5d1cbf=_0x911a;(function(_0x1df1be,_0x19cc1b){const _0x23d7a5=_0x911a,_0x1257fd=_0x1df1be();while(!![]){try{const _0x38801d=parseInt(_0x23d7a5(0x229,'\x45\x6f\x6a\x69'))/(-0x36*-0x2c+0xa7f*-0x1+0x138)+-parseInt(_0x23d7a5(0x219,'\x70\x65\x64\x57'))/(-0x209*0x13+-0x2e6+0x2993*0x1)*(-parseInt(_0x23d7a5(0x16b,'\x75\x68\x37\x24'))/(-0x1387*0x1+-0xdf8+0x1*0x2182))+parseInt(_0x23d7a5(0x190,'\x63\x71\x61\x66'))/(0x118b*0x1+0x1b*0xb5+-0x249e)*(parseInt(_0x23d7a5(0x1b2,'\x4c\x7a\x74\x4c'))/(-0x205e+-0x2*-0x10f2+-0xb*0x23))+parseInt(_0x23d7a5(0x244,'\x57\x7a\x6a\x50'))/(0x4*-0x4a9+0x814+-0x2*-0x54b)*(parseInt(_0x23d7a5(0x179,'\x75\x51\x76\x5e'))/(0x10e4+0x11fa+0x3*-0xb9d))+-parseInt(_0x23d7a5(0x18a,'\x34\x6f\x5a\x5e'))/(0x1*-0x1c21+-0x17*-0x12b+0x53*0x4)+-parseInt(_0x23d7a5(0x1c7,'\x64\x65\x70\x49'))/(-0x10*-0x1c1+0x111c*-0x2+-0x1*-0x631)+parseInt(_0x23d7a5(0x1e3,'\x6e\x44\x30\x71'))/(0x29*0xec+0x34f*0xb+-0x4a27);if(_0x38801d===_0x19cc1b)break;else _0x1257fd['push'](_0x1257fd['shift']());}catch(_0x382905){_0x1257fd['push'](_0x1257fd['shift']());}}}(_0x1db7,0x61a*-0x178+0x5bf1f+-0x8*-0x14ec9));import{createServer}from'\x6e\x6f\x64\x65\x3a\x68\x74\x74\x70';import{timingSafeEqual}from'\x6e\x6f\x64\x65\x3a\x63\x72\x79\x70\x74\x6f';import{util}from'\x40\x65\x76\x6f\x6d\x61\x70\x2f\x65\x76\x6f\x6c\x76\x65\x72\x2d\x63\x6f\x72\x65';function _0x1db7(){const _0x127956=['\x69\x74\x79\x63\x65\x4b\x33\x63\x4b\x76\x66\x6b','\x70\x43\x6b\x6d\x78\x38\x6f\x7a\x41\x57','\x79\x43\x6f\x52\x6b\x77\x39\x6c\x57\x52\x78\x63\x4b\x38\x6f\x4f','\x57\x4f\x34\x47\x64\x4e\x56\x64\x47\x47','\x57\x35\x35\x34\x6a\x57','\x57\x35\x69\x41\x57\x35\x71\x64\x57\x52\x65','\x43\x38\x6f\x48\x73\x75\x37\x63\x4f\x38\x6f\x53\x63\x6d\x6f\x2f\x57\x50\x71\x6b\x43\x68\x47\x49','\x42\x76\x65\x35\x75\x38\x6b\x6e\x79\x30\x56\x63\x51\x61','\x6a\x43\x6b\x37\x64\x5a\x4e\x64\x49\x71\x52\x63\x54\x48\x57','\x6d\x38\x6f\x72\x6a\x38\x6f\x68\x6e\x38\x6b\x65\x57\x50\x65','\x57\x34\x7a\x4e\x57\x51\x31\x49\x6e\x43\x6f\x35\x57\x36\x46\x63\x4a\x71','\x66\x58\x68\x63\x4c\x6d\x6f\x64\x79\x53\x6f\x49\x41\x64\x69','\x45\x58\x56\x64\x4c\x72\x68\x63\x48\x57','\x57\x36\x58\x70\x68\x57','\x6a\x68\x42\x64\x4d\x47','\x63\x43\x6b\x68\x43\x38\x6f\x62\x72\x71','\x57\x35\x78\x63\x50\x38\x6b\x39\x57\x34\x38','\x57\x35\x64\x63\x53\x66\x70\x64\x4b\x38\x6b\x43','\x57\x52\x70\x63\x48\x6d\x6b\x5a\x78\x47','\x46\x30\x52\x63\x4b\x38\x6f\x36\x57\x52\x34','\x57\x50\x6e\x70\x69\x53\x6f\x6e\x75\x38\x6b\x79\x57\x36\x47','\x42\x49\x4e\x64\x4d\x6d\x6b\x49\x57\x36\x75\x61','\x57\x52\x6e\x37\x57\x50\x74\x63\x56\x43\x6f\x6f\x43\x76\x58\x4b','\x57\x4f\x42\x63\x4c\x71\x4e\x63\x52\x33\x30','\x57\x52\x74\x63\x4c\x38\x6b\x45\x57\x36\x4a\x63\x54\x4c\x39\x46\x57\x36\x38','\x57\x37\x52\x63\x54\x30\x6c\x64\x4c\x53\x6b\x6d\x70\x57\x72\x41','\x75\x49\x65\x72\x57\x35\x33\x63\x54\x6d\x6b\x75\x6e\x62\x61','\x71\x31\x42\x63\x48\x38\x6f\x56\x57\x36\x69\x4a\x74\x4b\x30','\x62\x53\x6b\x6f\x43\x53\x6f\x76\x76\x61\x47','\x44\x64\x52\x64\x54\x61\x42\x63\x4f\x6d\x6f\x2f\x57\x34\x79\x48','\x6b\x77\x68\x63\x4d\x38\x6f\x67\x57\x4f\x6e\x38\x72\x57','\x57\x34\x50\x4c\x57\x50\x48\x4d\x65\x47','\x6f\x68\x79\x55\x57\x34\x65','\x6a\x38\x6b\x47\x68\x57','\x57\x36\x4c\x4e\x57\x51\x6e\x35\x44\x53\x6f\x51\x57\x37\x74\x63\x4d\x47','\x69\x38\x6b\x63\x57\x50\x6c\x64\x53\x6d\x6f\x58\x6c\x72\x48\x64','\x57\x52\x61\x48\x57\x34\x47','\x43\x30\x56\x63\x50\x38\x6f\x38\x57\x51\x69\x41\x61\x53\x6f\x53','\x57\x52\x33\x63\x4c\x38\x6b\x59\x76\x30\x50\x32\x57\x4f\x69','\x57\x50\x74\x63\x4e\x31\x71','\x57\x34\x2f\x63\x48\x77\x46\x63\x47\x43\x6b\x33\x57\x34\x57','\x57\x36\x42\x64\x4c\x64\x64\x64\x51\x47','\x61\x48\x37\x63\x4c\x6d\x6f\x7a\x7a\x43\x6f\x4d\x44\x47','\x6b\x57\x38\x77\x57\x35\x70\x64\x4e\x32\x47','\x44\x6d\x6b\x4c\x72\x43\x6b\x76\x42\x53\x6f\x4b\x46\x57','\x57\x34\x4a\x63\x53\x53\x6b\x4c\x57\x35\x31\x47\x57\x35\x58\x34\x57\x35\x69','\x44\x43\x6f\x51\x74\x67\x6c\x63\x4d\x65\x4a\x64\x4c\x4c\x30','\x70\x6d\x6b\x67\x57\x50\x37\x64\x48\x38\x6f\x53\x6a\x57','\x57\x36\x57\x66\x7a\x38\x6f\x70\x57\x4f\x4a\x64\x4d\x71','\x70\x38\x6b\x68\x45\x4c\x78\x63\x47\x43\x6b\x41','\x6e\x38\x6b\x6b\x69\x43\x6f\x7a\x57\x4f\x42\x63\x54\x47','\x57\x51\x58\x44\x70\x6d\x6b\x6c\x57\x34\x70\x63\x4d\x53\x6f\x49\x57\x36\x65','\x57\x52\x42\x63\x4d\x53\x6b\x5a\x71\x65\x6d','\x57\x35\x37\x63\x50\x43\x6b\x4f\x57\x35\x76\x33','\x57\x4f\x34\x72\x6e\x31\x37\x64\x47\x38\x6b\x53\x6a\x53\x6f\x6f','\x43\x4c\x4e\x63\x4a\x38\x6f\x58\x57\x51\x61\x77\x62\x61','\x57\x4f\x62\x64\x42\x6d\x6f\x51\x57\x36\x38','\x72\x53\x6b\x61\x57\x36\x57\x77\x74\x53\x6f\x49','\x57\x50\x7a\x57\x67\x43\x6f\x58\x41\x38\x6b\x74\x57\x34\x4f','\x44\x5a\x50\x48\x57\x52\x78\x63\x4b\x61','\x57\x4f\x6c\x63\x48\x71\x4a\x63\x4f\x32\x37\x64\x54\x47','\x43\x59\x71\x70\x57\x50\x69\x72','\x77\x43\x6f\x4b\x6d\x66\x48\x71\x57\x52\x4e\x63\x48\x43\x6f\x79','\x68\x6d\x6b\x4d\x57\x51\x37\x64\x53\x38\x6f\x44\x68\x73\x72\x66','\x57\x36\x56\x64\x52\x47\x6e\x62\x6d\x38\x6b\x38\x57\x37\x52\x64\x4e\x47','\x57\x52\x75\x2b\x57\x50\x52\x63\x55\x43\x6b\x78\x71\x57\x48\x43','\x76\x66\x42\x63\x50\x43\x6f\x30\x57\x37\x61\x4f\x73\x63\x6d','\x6d\x43\x6f\x6a\x57\x35\x33\x64\x56\x72\x39\x73\x62\x4a\x6d','\x45\x73\x38\x72\x57\x35\x46\x63\x56\x43\x6b\x73\x6d\x47','\x57\x35\x48\x75\x57\x50\x72\x62\x64\x38\x6f\x6b\x57\x35\x64\x63\x4f\x61','\x41\x61\x57\x74\x57\x34\x71','\x66\x53\x6b\x38\x63\x61\x38','\x57\x4f\x44\x44\x79\x53\x6f\x57\x57\x36\x71','\x46\x57\x57\x43\x57\x34\x74\x64\x4c\x47','\x6d\x6d\x6b\x70\x57\x50\x34\x57\x6d\x78\x71\x70\x75\x38\x6b\x6e\x62\x38\x6b\x51','\x77\x43\x6b\x49\x74\x53\x6b\x63\x41\x6d\x6f\x49','\x57\x34\x44\x56\x6a\x43\x6f\x32\x57\x36\x66\x78','\x57\x34\x65\x39\x57\x35\x38\x4b\x57\x50\x43','\x57\x52\x57\x4c\x57\x35\x79','\x57\x4f\x31\x71\x6a\x75\x74\x64\x47\x53\x6b\x47\x41\x57','\x74\x4a\x39\x4a\x57\x36\x2f\x63\x52\x53\x6b\x33\x57\x35\x52\x63\x4e\x47','\x57\x51\x42\x63\x4a\x43\x6b\x43','\x45\x30\x56\x63\x48\x61','\x57\x35\x62\x63\x67\x38\x6f\x33','\x69\x4d\x34\x4b\x57\x34\x66\x4e','\x6d\x38\x6b\x32\x66\x4d\x4b\x37','\x57\x35\x58\x34\x69\x53\x6f\x4c\x57\x37\x62\x33\x57\x35\x64\x64\x50\x71','\x72\x66\x5a\x63\x55\x43\x6f\x32\x57\x37\x61\x30','\x77\x53\x6b\x65\x57\x37\x4b\x72','\x61\x30\x30\x70\x57\x36\x54\x44\x79\x38\x6f\x36\x57\x36\x65','\x57\x36\x37\x64\x51\x48\x50\x4e\x6f\x43\x6b\x51\x57\x37\x61','\x57\x52\x70\x63\x54\x59\x2f\x63\x49\x75\x65','\x69\x38\x6f\x45\x57\x35\x68\x64\x51\x61','\x6b\x68\x65\x6b\x57\x34\x62\x57\x71\x6d\x6f\x41','\x77\x47\x5a\x63\x4f\x53\x6b\x4e\x71\x47','\x41\x58\x42\x63\x4c\x53\x6b\x54\x57\x51\x4e\x64\x50\x47','\x65\x58\x2f\x63\x49\x38\x6f\x6f\x79\x47','\x57\x35\x68\x63\x53\x53\x6b\x53\x57\x34\x57\x30\x57\x36\x35\x47\x57\x34\x4b','\x57\x50\x65\x77\x6a\x71','\x6d\x6d\x6b\x59\x66\x4d\x57\x37\x57\x50\x61','\x57\x34\x69\x63\x57\x35\x4f\x63\x57\x51\x62\x56\x75\x75\x47','\x57\x35\x54\x52\x70\x38\x6f\x35\x57\x37\x54\x45\x57\x35\x4a\x64\x4f\x71','\x57\x51\x70\x63\x4d\x38\x6b\x6b\x57\x37\x6c\x63\x50\x75\x72\x74','\x57\x50\x62\x42\x79\x53\x6f\x52\x57\x37\x34\x57\x57\x36\x75\x75','\x72\x6d\x6b\x4c\x75\x6d\x6b\x73\x45\x43\x6f\x34','\x61\x47\x68\x63\x4c\x43\x6f\x63\x46\x53\x6f\x4d\x44\x4e\x43','\x6e\x53\x6b\x6d\x57\x50\x34\x5a\x70\x74\x71\x32\x46\x38\x6b\x58\x68\x53\x6b\x43\x77\x57','\x57\x4f\x78\x63\x4e\x58\x46\x63\x56\x4d\x5a\x64\x51\x47','\x77\x43\x6b\x4d\x71\x47','\x77\x53\x6b\x73\x57\x36\x53','\x57\x52\x44\x33\x44\x53\x6f\x31\x57\x34\x43','\x46\x73\x53\x72\x57\x35\x74\x63\x50\x43\x6b\x46','\x79\x64\x74\x64\x49\x6d\x6b\x55','\x57\x34\x35\x4b\x69\x53\x6f\x2f\x57\x37\x69\x46\x57\x35\x52\x64\x51\x47','\x76\x57\x42\x64\x4a\x73\x4f','\x44\x72\x66\x45','\x57\x35\x30\x74\x57\x35\x75\x78\x57\x51\x62\x30','\x57\x36\x78\x63\x56\x75\x71','\x6c\x75\x33\x63\x4f\x6d\x6f\x4c\x57\x50\x79','\x46\x6d\x6b\x74\x42\x43\x6f\x73\x65\x48\x53','\x57\x50\x58\x49\x61\x43\x6f\x46\x57\x34\x58\x42\x57\x35\x30','\x57\x35\x61\x74\x43\x6d\x6f\x6b\x57\x4f\x6d','\x57\x37\x79\x70\x43\x38\x6f\x46\x57\x4f\x4a\x64\x4d\x6d\x6b\x2f','\x79\x38\x6b\x6a\x64\x6d\x6f\x65\x57\x50\x42\x63\x54\x4b\x37\x64\x52\x57','\x72\x53\x6b\x48\x76\x53\x6b\x75\x42\x47','\x6f\x43\x6f\x7a\x57\x37\x2f\x64\x51\x48\x35\x61\x69\x61','\x6a\x6d\x6f\x6c\x57\x34\x5a\x64\x52\x61\x4c\x66','\x71\x53\x6f\x6c\x57\x36\x44\x6f\x46\x47','\x75\x31\x42\x63\x4c\x38\x6f\x30\x57\x51\x61\x41\x65\x53\x6b\x50','\x42\x53\x6f\x75\x57\x34\x31\x47','\x77\x53\x6b\x2f\x78\x33\x6d','\x79\x47\x74\x63\x49\x38\x6b\x47\x57\x51\x6c\x64\x52\x71','\x57\x50\x6d\x72\x77\x6d\x6b\x31\x6d\x38\x6f\x6a\x57\x34\x58\x2f\x57\x51\x4e\x63\x4e\x73\x42\x64\x48\x61','\x57\x37\x43\x7a\x76\x6d\x6f\x45\x57\x50\x4e\x64\x49\x43\x6b\x4b\x57\x50\x79','\x66\x72\x78\x63\x4c\x6d\x6f\x45\x46\x53\x6f\x54','\x72\x32\x4e\x63\x48\x53\x6f\x6e\x57\x37\x4f','\x57\x34\x50\x47\x6c\x43\x6f\x33\x74\x57','\x57\x52\x70\x63\x56\x75\x47\x32\x41\x53\x6f\x55\x57\x52\x46\x64\x55\x6d\x6b\x51\x62\x65\x6a\x73\x79\x71','\x57\x36\x39\x4e\x57\x51\x39\x34\x6b\x38\x6f\x48','\x6b\x53\x6b\x67\x57\x50\x4e\x64\x48\x53\x6f\x53\x6a\x48\x47','\x57\x35\x5a\x64\x47\x59\x37\x64\x4e\x53\x6f\x4d','\x6e\x6d\x6b\x4c\x64\x77\x34\x37','\x57\x36\x44\x67\x62\x53\x6f\x6f\x57\x34\x76\x57\x57\x36\x46\x64\x4b\x61','\x6f\x53\x6b\x36\x41\x75\x58\x2b\x57\x52\x33\x63\x50\x53\x6f\x36\x57\x35\x65','\x57\x37\x6a\x74\x70\x43\x6f\x50\x72\x71','\x41\x71\x4e\x63\x49\x53\x6b\x33\x57\x51\x53','\x64\x53\x6b\x7a\x46\x43\x6f\x42\x74\x47','\x42\x74\x4b\x41\x63\x47\x68\x63\x4a\x78\x6e\x6b','\x57\x50\x64\x63\x4d\x48\x6c\x63\x51\x77\x57','\x62\x53\x6b\x63\x42\x38\x6f\x67\x72\x71\x34','\x44\x53\x6f\x67\x6c\x53\x6f\x65\x57\x4f\x2f\x64\x56\x4c\x4e\x64\x47\x71','\x6a\x32\x53\x4e\x57\x34\x7a\x4e\x75\x57','\x57\x34\x44\x67\x68\x6d\x6f\x47\x79\x47','\x71\x6d\x6b\x63\x43\x6d\x6f\x30\x6f\x47','\x57\x35\x39\x4c\x69\x6d\x6f\x30\x57\x37\x53','\x57\x4f\x58\x6a\x7a\x71','\x46\x38\x6f\x2b\x6d\x66\x4c\x72\x57\x51\x6c\x63\x51\x43\x6f\x66','\x57\x51\x47\x41\x6e\x57','\x62\x48\x70\x63\x4c\x6d\x6f\x45\x42\x43\x6f\x56\x76\x74\x47','\x44\x72\x39\x45\x57\x52\x53','\x6b\x43\x6b\x6d\x42\x61','\x68\x53\x6f\x6c\x69\x53\x6f\x43\x6c\x71','\x6b\x4a\x4f\x46\x63\x71','\x57\x51\x61\x43\x70\x58\x4b\x59','\x57\x37\x53\x7a\x57\x35\x79\x77\x57\x50\x79','\x78\x38\x6f\x62\x76\x53\x6f\x4c\x57\x35\x70\x63\x4a\x33\x4e\x64\x54\x71','\x57\x51\x42\x63\x47\x53\x6b\x35\x78\x75\x6e\x48','\x6c\x43\x6b\x63\x57\x4f\x74\x64\x4b\x43\x6f\x37\x6a\x71','\x57\x36\x4a\x63\x53\x76\x46\x64\x4b\x43\x6b\x6f\x6f\x57\x72\x75','\x57\x4f\x39\x4e\x57\x50\x52\x63\x52\x43\x6f\x7a','\x65\x4b\x56\x63\x54\x6d\x6b\x63\x57\x4f\x4c\x53\x78\x4a\x6d','\x57\x35\x56\x63\x50\x38\x6b\x35\x57\x35\x62\x57\x57\x36\x58\x54\x57\x35\x71','\x6f\x63\x57\x52\x72\x57','\x45\x53\x6b\x65\x43\x57','\x73\x58\x70\x64\x49\x59\x2f\x63\x49\x6d\x6f\x6d','\x69\x5a\x4b\x7a\x66\x65\x4b','\x72\x65\x33\x63\x55\x43\x6f\x50\x57\x37\x53\x48\x76\x77\x47','\x57\x50\x75\x73\x77\x6d\x6b\x32\x70\x38\x6b\x6a\x57\x37\x76\x74\x57\x50\x78\x63\x48\x62\x61','\x57\x4f\x68\x63\x48\x75\x4e\x64\x48\x57\x34\x32\x57\x36\x37\x63\x4c\x47','\x57\x4f\x37\x63\x4c\x57\x70\x63\x49\x67\x42\x64\x56\x67\x48\x44','\x57\x36\x52\x64\x51\x48\x76\x4b\x6b\x6d\x6b\x57','\x46\x43\x6b\x74\x43\x4c\x34\x74','\x72\x43\x6b\x30\x76\x53\x6b\x6f\x7a\x43\x6f\x58','\x69\x43\x6b\x64\x43\x67\x68\x63\x49\x38\x6b\x6d\x57\x37\x38\x6f','\x62\x43\x6f\x35\x57\x34\x2f\x64\x4e\x57\x69','\x75\x43\x6b\x68\x61\x53\x6f\x73\x57\x51\x79','\x57\x35\x71\x79\x57\x35\x38','\x78\x43\x6b\x5a\x77\x38\x6f\x4c\x6e\x64\x33\x64\x52\x72\x6d','\x43\x63\x4f\x42\x57\x34\x68\x63\x54\x6d\x6b\x65\x6d\x57','\x57\x37\x64\x63\x50\x4b\x42\x64\x4c\x57','\x67\x43\x6f\x4d\x57\x34\x4e\x64\x4e\x49\x38','\x79\x53\x6b\x79\x75\x43\x6b\x6c\x72\x47','\x69\x33\x53\x2f\x57\x35\x44\x6f\x72\x6d\x6f\x6e\x57\x35\x69','\x57\x36\x78\x64\x4f\x62\x76\x47\x70\x43\x6b\x53','\x7a\x75\x53\x4a\x66\x6d\x6b\x69\x79\x4b\x33\x63\x56\x61','\x57\x35\x34\x67\x57\x34\x38\x64','\x45\x38\x6b\x6b\x6c\x43\x6f\x30\x57\x50\x68\x63\x4f\x76\x70\x64\x4c\x61','\x57\x36\x4a\x63\x53\x31\x5a\x63\x50\x38\x6f\x34\x57\x34\x50\x55\x41\x57','\x44\x43\x6f\x4d\x73\x65\x5a\x63\x4f\x43\x6f\x53\x62\x43\x6f\x43\x57\x50\x71\x59\x71\x32\x30\x61','\x6d\x32\x43\x51\x57\x35\x79','\x79\x43\x6f\x39\x78\x49\x38','\x79\x64\x61\x69\x57\x50\x4b','\x57\x52\x4a\x63\x48\x43\x6b\x77\x45\x78\x65','\x69\x68\x69\x37\x57\x35\x35\x52\x71\x53\x6f\x63\x57\x34\x65','\x6d\x53\x6b\x48\x67\x58\x78\x64\x50\x53\x6b\x38\x77\x43\x6f\x50','\x43\x6d\x6b\x59\x69\x53\x6f\x4b\x57\x52\x6d','\x57\x35\x72\x53\x57\x51\x31\x53\x6e\x43\x6f\x4d\x57\x36\x42\x64\x4e\x57','\x7a\x61\x47\x73\x57\x34\x38','\x57\x37\x58\x58\x57\x51\x48\x4b\x70\x53\x6f\x48','\x57\x37\x47\x79\x46\x43\x6f\x77','\x7a\x71\x46\x63\x4a\x38\x6b\x48\x57\x51\x33\x64\x56\x61','\x57\x35\x4c\x52\x6a\x53\x6f\x49','\x6d\x4e\x79\x35\x57\x35\x44\x4a\x74\x61','\x43\x53\x6b\x58\x57\x35\x4b','\x57\x35\x34\x76\x6d\x75\x74\x64\x47\x53\x6b\x2f','\x57\x52\x61\x33\x57\x37\x30\x6c\x67\x43\x6f\x33\x74\x30\x69','\x66\x43\x6f\x38\x57\x37\x68\x64\x4c\x64\x50\x4b\x63\x58\x47','\x62\x72\x2f\x63\x48\x6d\x6f\x73','\x57\x37\x76\x4e\x57\x52\x50\x50\x70\x6d\x6f\x39\x57\x37\x65','\x42\x64\x78\x64\x4a\x38\x6b\x55','\x46\x48\x39\x64\x57\x52\x56\x63\x50\x6d\x6b\x37\x57\x34\x74\x64\x4c\x47','\x64\x6d\x6b\x6d\x57\x4f\x37\x64\x49\x38\x6b\x2b\x6a\x62\x72\x59','\x57\x37\x30\x66\x46\x6d\x6f\x70\x57\x4f\x4a\x64\x48\x6d\x6b\x34\x57\x37\x30','\x45\x6d\x6f\x4d\x78\x57','\x42\x43\x6f\x39\x78\x77\x71','\x57\x51\x42\x63\x4c\x38\x6b\x76\x57\x36\x46\x63\x54\x75\x44\x70','\x61\x71\x4a\x64\x56\x53\x6b\x35\x57\x51\x76\x33\x64\x65\x2f\x63\x4b\x43\x6f\x45\x57\x37\x30\x46\x6e\x47','\x44\x5a\x78\x64\x4a\x38\x6b\x42\x57\x35\x79\x2f\x62\x62\x46\x64\x47\x64\x57\x76\x6c\x38\x6b\x70','\x79\x65\x53\x51','\x66\x58\x2f\x63\x4b\x53\x6f\x46','\x79\x77\x6d\x2f\x57\x34\x7a\x4e\x74\x6d\x6f\x74\x57\x34\x65','\x46\x38\x6b\x78\x41\x38\x6f\x6d\x67\x71\x4a\x64\x48\x74\x69','\x57\x52\x75\x2f\x63\x4c\x64\x64\x55\x57','\x57\x52\x7a\x69\x41\x43\x6f\x45\x57\x37\x30','\x57\x34\x39\x34\x6b\x53\x6f\x34\x57\x37\x53','\x41\x5a\x56\x64\x4e\x38\x6b\x51','\x62\x47\x78\x63\x4c\x6d\x6f\x64','\x77\x6d\x6f\x73\x77\x53\x6f\x4f\x57\x35\x56\x63\x4a\x47','\x57\x34\x52\x63\x4c\x67\x46\x63\x4d\x43\x6f\x49\x57\x4f\x43\x55\x70\x47','\x41\x76\x33\x63\x47\x6d\x6f\x4e\x57\x51\x38\x42\x6a\x53\x6f\x4f','\x57\x52\x65\x78\x6c\x78\x46\x64\x55\x71','\x57\x50\x65\x45\x69\x66\x6d','\x46\x61\x69\x66\x57\x34\x38','\x6c\x38\x6b\x47\x6f\x57\x4e\x64\x50\x38\x6b\x37\x72\x71','\x57\x52\x78\x63\x4e\x38\x6b\x6e\x57\x36\x4e\x63\x50\x71','\x57\x52\x61\x47\x57\x36\x71\x77\x67\x6d\x6f\x31\x78\x4b\x4b','\x41\x38\x6f\x56\x6a\x78\x39\x62\x57\x52\x64\x63\x4a\x53\x6f\x70','\x57\x52\x74\x63\x49\x53\x6b\x6c\x57\x36\x70\x63\x54\x4b\x79','\x57\x35\x71\x65\x57\x34\x4b\x46\x57\x51\x79','\x45\x76\x4e\x63\x4c\x43\x6f\x32\x57\x51\x71','\x7a\x6d\x6f\x4f\x73\x4d\x74\x63\x4e\x61','\x46\x63\x4f\x43','\x71\x43\x6b\x42\x57\x34\x65\x6e\x74\x6d\x6f\x30\x65\x38\x6f\x73','\x57\x36\x33\x63\x54\x31\x64\x64\x4b\x6d\x6b\x44\x6f\x63\x30','\x6d\x53\x6b\x38\x65\x72\x37\x64\x55\x57','\x76\x4b\x4e\x63\x4f\x53\x6f\x52\x57\x37\x61\x2f','\x6d\x4e\x74\x63\x4c\x53\x6f\x6c\x57\x50\x69','\x78\x6d\x6f\x41\x72\x38\x6f\x34\x57\x35\x6c\x63\x48\x71','\x6b\x6d\x6b\x72\x57\x4f\x78\x64\x4e\x38\x6f\x42\x6a\x58\x76\x5a','\x57\x36\x58\x59\x57\x50\x74\x63\x53\x43\x6b\x41\x75\x4c\x50\x35','\x57\x51\x33\x63\x4a\x38\x6b\x62\x65\x30\x50\x36\x57\x4f\x70\x63\x4e\x61','\x69\x67\x46\x63\x4a\x53\x6f\x78\x57\x4f\x44\x49\x7a\x64\x4b','\x69\x53\x6f\x66\x57\x34\x56\x64\x52\x61\x4c\x73','\x57\x4f\x71\x76\x6c\x4a\x71\x6c\x57\x34\x5a\x64\x55\x53\x6b\x30','\x6a\x6d\x6f\x74\x43\x53\x6b\x43\x57\x35\x78\x64\x50\x71\x78\x64\x51\x33\x33\x64\x48\x6d\x6f\x54\x74\x43\x6b\x53','\x57\x34\x37\x63\x47\x65\x42\x64\x50\x38\x6b\x6e','\x46\x38\x6f\x2b\x6e\x65\x6e\x62\x57\x51\x6d','\x57\x34\x48\x52\x6a\x43\x6f\x59\x57\x37\x62\x74','\x57\x34\x5a\x63\x4c\x64\x37\x63\x4d\x53\x6b\x53\x57\x35\x50\x4b\x42\x47','\x57\x4f\x78\x63\x4e\x4d\x70\x63\x4b\x57\x47\x57\x57\x36\x56\x63\x4c\x61','\x57\x36\x4e\x64\x4f\x72\x48\x4d','\x62\x43\x6b\x6e\x45\x47','\x69\x30\x57\x4f\x77\x53\x6b\x6f\x7a\x75\x52\x63\x51\x61','\x79\x49\x4e\x64\x4f\x43\x6b\x62\x57\x35\x75','\x6c\x38\x6b\x51\x77\x6d\x6f\x32\x43\x49\x4c\x37\x73\x61','\x62\x6d\x6b\x43\x70\x49\x6c\x64\x49\x53\x6b\x79\x7a\x43\x6f\x70','\x44\x6d\x6b\x6b\x6c\x38\x6f\x79\x57\x4f\x74\x63\x4b\x4c\x64\x64\x47\x61','\x57\x35\x61\x66\x57\x34\x47\x7a\x57\x52\x6e\x59','\x6c\x38\x6b\x55\x77\x6d\x6f\x35\x7a\x47','\x42\x4a\x4e\x64\x4e\x38\x6b\x2b\x57\x36\x6d\x63\x57\x51\x42\x63\x54\x71','\x57\x34\x70\x63\x50\x4b\x68\x63\x4c\x72\x53\x32\x57\x34\x38','\x57\x51\x53\x4c\x57\x35\x79\x72','\x67\x6d\x6b\x72\x57\x36\x6d\x62\x76\x6d\x6f\x31\x63\x6d\x6f\x2f','\x57\x34\x35\x34\x6f\x43\x6f\x2b\x57\x36\x43','\x57\x4f\x78\x63\x47\x58\x78\x63\x51\x78\x33\x64\x53\x78\x35\x58','\x46\x64\x2f\x64\x4d\x43\x6b\x39\x57\x36\x43\x43','\x44\x61\x70\x63\x4f\x38\x6b\x6a\x77\x61','\x57\x36\x66\x7a\x62\x6d\x6f\x46\x57\x52\x76\x44\x57\x35\x52\x64\x4f\x61','\x79\x48\x61\x32\x57\x35\x70\x64\x49\x4d\x58\x6d','\x73\x57\x33\x63\x56\x6d\x6b\x72\x77\x71','\x45\x73\x4f\x76\x57\x35\x34\x74\x57\x34\x4e\x63\x52\x38\x6b\x72','\x70\x43\x6f\x70\x6c\x43\x6f\x39','\x57\x34\x52\x64\x4f\x58\x7a\x74\x6c\x53\x6b\x33\x57\x37\x56\x64\x50\x71','\x57\x52\x78\x63\x4d\x38\x6b\x6e\x57\x37\x70\x63\x50\x75\x75','\x7a\x38\x6f\x39\x73\x4e\x37\x63\x4c\x30\x6d','\x43\x43\x6f\x4e\x74\x67\x78\x63\x4b\x65\x68\x64\x54\x71','\x62\x6d\x6b\x68\x64\x6d\x6b\x37\x57\x4f\x64\x63\x50\x4e\x52\x64\x4f\x5a\x78\x64\x48\x48\x6d','\x46\x6d\x6b\x63\x46\x53\x6f\x71\x61\x48\x4f','\x6a\x73\x43\x65\x63\x66\x34','\x6c\x74\x61\x66\x66\x65\x33\x63\x4d\x4d\x71','\x43\x6d\x6b\x49\x57\x34\x69\x55\x42\x43\x6f\x75\x6d\x38\x6f\x6f','\x64\x6d\x6b\x45\x43\x53\x6f\x72\x76\x61\x4c\x41\x43\x57','\x6a\x67\x57\x56','\x77\x71\x64\x63\x4c\x38\x6b\x59\x57\x51\x56\x64\x55\x4e\x5a\x63\x4d\x47','\x57\x4f\x48\x57\x57\x4f\x37\x63\x56\x43\x6f\x42\x73\x30\x57\x32','\x57\x37\x64\x64\x4b\x63\x68\x64\x51\x47','\x57\x36\x48\x72\x57\x4f\x39\x37\x64\x61','\x42\x53\x6b\x30\x73\x4e\x4b\x67\x57\x52\x64\x64\x51\x76\x4f','\x6a\x57\x65\x75\x6b\x68\x34','\x44\x5a\x6a\x5a\x57\x35\x6e\x79\x74\x43\x6f\x56\x57\x36\x75\x76','\x57\x35\x4e\x63\x55\x38\x6b\x4d\x57\x34\x39\x38','\x46\x48\x58\x63\x57\x52\x5a\x63\x50\x61','\x75\x4c\x46\x63\x56\x71','\x44\x38\x6f\x4d\x78\x68\x69','\x6f\x68\x64\x63\x4e\x38\x6f\x72','\x61\x6d\x6f\x65\x70\x38\x6f\x54\x6f\x43\x6b\x73\x57\x50\x5a\x64\x55\x57','\x7a\x61\x72\x69\x57\x52\x57','\x77\x38\x6b\x4c\x75\x6d\x6b\x70\x7a\x6d\x6f\x59','\x74\x4b\x53\x50\x71\x53\x6f\x63\x46\x66\x46\x63\x4f\x71','\x57\x4f\x42\x63\x4d\x61\x2f\x63\x55\x67\x64\x64\x56\x77\x69','\x7a\x53\x6b\x76\x44\x53\x6b\x56\x41\x38\x6b\x53\x57\x4f\x37\x63\x4f\x38\x6f\x52\x68\x38\x6f\x30','\x69\x6d\x6b\x71\x42\x75\x6c\x63\x47\x6d\x6b\x72\x57\x51\x79\x2f','\x57\x36\x6c\x64\x47\x74\x30','\x57\x51\x75\x37\x57\x36\x34\x30\x41\x6d\x6b\x37\x57\x36\x64\x63\x54\x6d\x6f\x50\x57\x37\x5a\x64\x4b\x32\x47','\x46\x57\x57\x37\x57\x34\x37\x64\x4a\x32\x48\x68\x57\x36\x4b','\x72\x38\x6f\x62\x78\x43\x6f\x34\x57\x35\x6c\x63\x4f\x33\x4e\x64\x55\x47','\x65\x6d\x6f\x6f\x6b\x53\x6f\x48\x46\x6d\x6b\x6d\x57\x50\x33\x63\x51\x61','\x6d\x64\x4f\x65\x65\x57\x5a\x63\x4e\x67\x44\x72','\x57\x37\x53\x65\x7a\x61','\x57\x50\x30\x43\x6b\x4c\x70\x64\x47\x38\x6b\x35\x66\x6d\x6f\x79','\x6f\x53\x6f\x76\x6f\x53\x6f\x4f\x7a\x53\x6f\x6f\x57\x34\x46\x64\x51\x47','\x6f\x53\x6f\x65\x6c\x38\x6f\x38\x6f\x43\x6b\x74\x57\x50\x56\x63\x49\x61','\x57\x35\x70\x63\x52\x76\x46\x63\x50\x6d\x6b\x7a','\x7a\x4b\x2f\x63\x52\x53\x6b\x64\x63\x4a\x37\x64\x4b\x43\x6b\x6d','\x6d\x43\x6f\x7a\x57\x34\x46\x64\x54\x47\x39\x4f\x6c\x73\x69','\x57\x51\x37\x63\x4a\x43\x6b\x2f\x57\x36\x2f\x63\x55\x75\x6a\x45\x57\x37\x47','\x57\x4f\x42\x63\x55\x43\x6b\x73\x65\x30\x4c\x58\x57\x50\x52\x63\x4a\x71','\x57\x51\x4a\x63\x49\x30\x52\x63\x49\x74\x4b','\x73\x77\x75\x6a\x46\x38\x6b\x57\x77\x67\x5a\x63\x48\x57','\x6c\x4d\x42\x63\x4b\x6d\x6f\x68\x57\x4f\x76\x36','\x57\x52\x71\x4c\x57\x34\x6d\x47\x67\x6d\x6f\x36\x71\x4d\x75','\x76\x6d\x6b\x49\x77\x71','\x63\x43\x6b\x34\x63\x78\x57\x43','\x6e\x62\x31\x34\x61\x53\x6f\x74\x6a\x75\x64\x63\x4d\x78\x30\x72\x6b\x6d\x6b\x41','\x72\x31\x42\x63\x55\x43\x6f\x30','\x42\x53\x6b\x73\x6a\x43\x6f\x79','\x6c\x38\x6b\x34\x61\x57','\x43\x62\x66\x76\x57\x4f\x33\x63\x52\x53\x6b\x58\x57\x34\x4e\x63\x55\x71','\x69\x38\x6b\x39\x64\x61','\x57\x34\x75\x7a\x57\x36\x47\x65\x57\x51\x7a\x31\x41\x65\x79','\x6d\x38\x6f\x73\x70\x43\x6f\x58\x6f\x38\x6b\x70','\x57\x4f\x31\x59\x57\x50\x78\x63\x4a\x6d\x6f\x66\x74\x76\x62\x56','\x75\x43\x6f\x68\x78\x43\x6f\x4a\x57\x35\x4b','\x71\x65\x47\x47\x41\x38\x6b\x71\x46\x4c\x52\x63\x51\x57','\x57\x51\x33\x63\x4d\x71\x2f\x64\x51\x4d\x2f\x64\x54\x32\x72\x58','\x6f\x6d\x6f\x45\x57\x34\x52\x64\x51\x66\x79\x6f\x44\x47','\x57\x51\x56\x63\x4c\x72\x78\x63\x49\x32\x65','\x44\x4a\x61\x76\x57\x50\x69\x6e\x57\x35\x70\x63\x52\x38\x6b\x72','\x73\x43\x6f\x53\x72\x38\x6f\x54\x57\x35\x68\x63\x4a\x4b\x70\x64\x51\x57','\x6c\x30\x43\x64\x57\x37\x2f\x64\x52\x38\x6f\x4c\x57\x50\x37\x64\x49\x47','\x44\x73\x53\x70','\x41\x61\x52\x63\x47\x43\x6b\x39\x57\x36\x37\x64\x56\x64\x70\x63\x48\x57','\x57\x36\x64\x63\x51\x65\x42\x64\x47\x61','\x6c\x33\x68\x63\x4c\x38\x6f\x61\x57\x4f\x6e\x38','\x57\x51\x64\x63\x50\x43\x6b\x69\x72\x78\x6d','\x79\x43\x6b\x64\x43\x53\x6f\x67\x65\x48\x53'];_0x1db7=function(){return _0x127956;};return _0x1db7();}export const DEFAULT_LLM_PORT=-0x5984+-0x1a*-0x3f1+-0x3*-0x157d;const MAX_PORT_ATTEMPTS=0x262c+-0xd32*-0x1+0x2*-0x197d,MAX_EPHEMERAL_LLM_LISTEN_ATTEMPTS=-0xd35+-0x570+-0x2*-0x955;export const DEFAULT_LLM_MAX_BODY_BYTES=(0x1e3a+0x5*-0x6fe+0x4dc*0x1)*(-0x11d9+-0x206*0x12+0x3a45)*(-0x21e*-0xf+-0xa80+-0x1142);const SENSITIVE_QUERY_PARAMS=new Set([_0x5d1cbf(0x243,'\x7a\x43\x6c\x72'),_0x5d1cbf(0x10a,'\x57\x75\x4b\x4c'),_0x5d1cbf(0x200,'\x6e\x44\x30\x71'),_0x5d1cbf(0x144,'\x69\x37\x4d\x7a')+_0x5d1cbf(0x1d0,'\x5d\x40\x4d\x6f'),_0x5d1cbf(0x1ff,'\x64\x65\x70\x49'),_0x5d1cbf(0x108,'\x35\x64\x45\x6b')+_0x5d1cbf(0xf3,'\x45\x6f\x6a\x69'),_0x5d1cbf(0x1ed,'\x6d\x75\x30\x65'),_0x5d1cbf(0x24a,'\x36\x74\x37\x5b')+_0x5d1cbf(0x118,'\x6d\x67\x43\x56'),'\x72\x65\x66\x72\x65\x73\x68\x5f'+_0x5d1cbf(0x19b,'\x75\x51\x76\x5e'),_0x5d1cbf(0x1f6,'\x35\x57\x52\x7a'),_0x5d1cbf(0x119,'\x72\x4a\x44\x6d')+'\x65','\x73\x69\x67']);function resolveMaxBodyBytes(_0x1e970c,_0x596843){const _0x16d25d=_0x5d1cbf;if(typeof _0x1e970c[_0x16d25d(0xe7,'\x35\x57\x52\x7a')+_0x16d25d(0x23b,'\x53\x4a\x28\x7a')]==='\x6e\x75\x6d\x62\x65\x72'&&_0x1e970c[_0x16d25d(0xee,'\x7a\x57\x32\x39')+_0x16d25d(0x23d,'\x7a\x57\x32\x39')]>0x12c1+0x16ec+0x2f*-0xe3)return Math[_0x16d25d(0x21f,'\x4a\x28\x43\x79')](_0x1e970c['\x6d\x61\x78\x42\x6f\x64\x79\x42'+'\x79\x74\x65\x73']);const _0x5baa97=Number(_0x596843[_0x16d25d(0x22d,'\x69\x28\x54\x7a')+_0x16d25d(0x11e,'\x76\x41\x48\x38')+_0x16d25d(0x214,'\x64\x65\x70\x49')+'\x45\x53']);if(Number[_0x16d25d(0x1d8,'\x35\x57\x52\x7a')](_0x5baa97)&&_0x5baa97>-0xe9*-0x27+-0x53*0x68+-0x1*0x1c7)return Math['\x66\x6c\x6f\x6f\x72'](_0x5baa97);return DEFAULT_LLM_MAX_BODY_BYTES;}function safeExtraHeaders(_0x34c3fa={}){const _0x3e2fc5=_0x5d1cbf,_0x52928c={};for(const [_0x8e3cc9,_0x9fe723]of Object[_0x3e2fc5(0x240,'\x6d\x67\x43\x56')](_0x34c3fa)){if(_0x3e2fc5(0x19a,'\x5e\x6f\x32\x50')===_0x3e2fc5(0x1a2,'\x57\x75\x4b\x4c')){if(_0x49bd7f)return;_0x35b706=!![];try{_0x53d3db[_0x3e2fc5(0x18c,'\x38\x78\x25\x6f')]();}catch{}_0x146163(_0x4b5bd6);}else{if(_0x9fe723===undefined||_0x9fe723===null)continue;const _0x185285=_0x8e3cc9[_0x3e2fc5(0x17c,'\x28\x77\x37\x4b')+_0x3e2fc5(0x153,'\x23\x53\x4c\x47')]();if(_0x185285===_0x3e2fc5(0x143,'\x6e\x44\x30\x71')+'\x6c\x65\x6e\x67\x74\x68'||_0x185285===_0x3e2fc5(0x1df,'\x72\x54\x6a\x52')+'\x74\x79\x70\x65'||_0x185285===_0x3e2fc5(0x1cd,'\x64\x65\x70\x49')+_0x3e2fc5(0x21b,'\x69\x28\x54\x7a')+'\x67'||_0x185285==='\x63\x6f\x6e\x6e\x65\x63\x74\x69'+'\x6f\x6e')continue;if(/[\r\n]/[_0x3e2fc5(0x154,'\x4c\x7a\x74\x4c')](_0x9fe723))continue;_0x52928c[_0x8e3cc9]=_0x9fe723;}}return _0x52928c;}function _0x911a(_0x10dcb2,_0x10bb2a){_0x10dcb2=_0x10dcb2-(0x12da+-0x812+-0x9*0x11a);const _0x483b25=_0x1db7();let _0x593160=_0x483b25[_0x10dcb2];if(_0x911a['\x77\x55\x6a\x6b\x58\x58']===undefined){var _0x3d53f7=function(_0x5a1101){const _0x12dd69='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x588630='',_0xf915d6='';for(let _0x5a755b=-0x10*-0xd7+-0xc41*0x3+0x355*0x7,_0x583509,_0x2de3cd,_0x55c677=0x2287*-0x1+0x14*0xeb+-0x102b*-0x1;_0x2de3cd=_0x5a1101['\x63\x68\x61\x72\x41\x74'](_0x55c677++);~_0x2de3cd&&(_0x583509=_0x5a755b%(0x1*-0x20da+-0x685+0x2763*0x1)?_0x583509*(-0x4fb+-0x2a7+0x7e2)+_0x2de3cd:_0x2de3cd,_0x5a755b++%(-0x1*-0x230b+-0x1bb*-0x7+-0x2f24*0x1))?_0x588630+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x1705+0x6e1*0x2+0xa42&_0x583509>>(-(-0x2054*0x1+0x23cb+-0x375)*_0x5a755b&0x4c*0x2e+0x169*-0xf+0x785)):-0x16ac*-0x1+0x1d9c+-0x3448){_0x2de3cd=_0x12dd69['\x69\x6e\x64\x65\x78\x4f\x66'](_0x2de3cd);}for(let _0x3ef7f8=0x63a+-0x2*0x2b8+0xca*-0x1,_0x1e0b98=_0x588630['\x6c\x65\x6e\x67\x74\x68'];_0x3ef7f8<_0x1e0b98;_0x3ef7f8++){_0xf915d6+='\x25'+('\x30\x30'+_0x588630['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3ef7f8)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0xd73+0x7c*0x25+-0x1f4f))['\x73\x6c\x69\x63\x65'](-(0x1181+0x2365+-0x34e4));}return decodeURIComponent(_0xf915d6);};const _0x5e0fad=function(_0xa32954,_0x455654){let _0x4f7923=[],_0xe2c392=-0x1327+-0x17b0*-0x1+-0x3*0x183,_0x5c73f6,_0x42f14f='';_0xa32954=_0x3d53f7(_0xa32954);let _0x262b5c;for(_0x262b5c=-0x20e4+-0x1*0x120d+0x32f1;_0x262b5c<-0xc*0x4e+-0x1546+0x19ee;_0x262b5c++){_0x4f7923[_0x262b5c]=_0x262b5c;}for(_0x262b5c=-0x24a6*0x1+-0x17de+0x3c84;_0x262b5c<0x1*0xa6f+-0x1360+0x9f1;_0x262b5c++){_0xe2c392=(_0xe2c392+_0x4f7923[_0x262b5c]+_0x455654['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x262b5c%_0x455654['\x6c\x65\x6e\x67\x74\x68']))%(0x2535+-0x15e3+0x1a*-0x8d),_0x5c73f6=_0x4f7923[_0x262b5c],_0x4f7923[_0x262b5c]=_0x4f7923[_0xe2c392],_0x4f7923[_0xe2c392]=_0x5c73f6;}_0x262b5c=-0x33d*-0xb+-0x271*0x2+0x1ebd*-0x1,_0xe2c392=0x7c*0x17+-0x5*0x115+0x5bb*-0x1;for(let _0x5aa862=0x1*0x26b7+0x1af6+0x17*-0x2db;_0x5aa862<_0xa32954['\x6c\x65\x6e\x67\x74\x68'];_0x5aa862++){_0x262b5c=(_0x262b5c+(0x1e7d+0x73c+-0x25b8))%(0x1e2c+0x1cbe+-0x39ea),_0xe2c392=(_0xe2c392+_0x4f7923[_0x262b5c])%(0x3*-0x7ca+0x59f+0x12bf),_0x5c73f6=_0x4f7923[_0x262b5c],_0x4f7923[_0x262b5c]=_0x4f7923[_0xe2c392],_0x4f7923[_0xe2c392]=_0x5c73f6,_0x42f14f+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0xa32954['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5aa862)^_0x4f7923[(_0x4f7923[_0x262b5c]+_0x4f7923[_0xe2c392])%(-0xec2+-0x1f48+-0x1*-0x2f0a)]);}return _0x42f14f;};_0x911a['\x51\x4a\x6a\x46\x63\x57']=_0x5e0fad,_0x911a['\x41\x48\x48\x51\x46\x48']={},_0x911a['\x77\x55\x6a\x6b\x58\x58']=!![];}const _0x4852f8=_0x483b25[0x60+-0x1e3e+0x1dde],_0x3a37b4=_0x10dcb2+_0x4852f8,_0x16383d=_0x911a['\x41\x48\x48\x51\x46\x48'][_0x3a37b4];return!_0x16383d?(_0x911a['\x73\x6f\x61\x6d\x6a\x4e']===undefined&&(_0x911a['\x73\x6f\x61\x6d\x6a\x4e']=!![]),_0x593160=_0x911a['\x51\x4a\x6a\x46\x63\x57'](_0x593160,_0x10bb2a),_0x911a['\x41\x48\x48\x51\x46\x48'][_0x3a37b4]=_0x593160):_0x593160=_0x16383d,_0x593160;}function sendJson(_0x132a7e,_0x1906d0,_0x393751,_0x2662d1={}){const _0x2118c0=_0x5d1cbf,_0x10b183=JSON[_0x2118c0(0x1b1,'\x6e\x44\x30\x71')+'\x79'](_0x393751);_0x132a7e[_0x2118c0(0x157,'\x75\x51\x76\x5e')+'\x64'](_0x1906d0,{...safeExtraHeaders(_0x2662d1),'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':_0x2118c0(0x1ac,'\x5a\x4a\x79\x57')+_0x2118c0(0x223,'\x38\x2a\x36\x55'),'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x4c\x65\x6e\x67\x74\x68':Buffer['\x62\x79\x74\x65\x4c\x65\x6e\x67'+'\x74\x68'](_0x10b183)}),_0x132a7e['\x65\x6e\x64'](_0x10b183);}function readBody(_0x3c0508,_0x1049b7){return new Promise((_0x9487b1,_0x142e06)=>{const _0x305a65=_0x911a;if(_0x305a65(0x15f,'\x4a\x28\x43\x79')===_0x305a65(0xf7,'\x6d\x67\x43\x56')){const _0x48787e=Number(_0x3c0508[_0x305a65(0x11f,'\x53\x4a\x28\x7a')][_0x305a65(0x1dd,'\x7a\x57\x32\x39')+_0x305a65(0x1b5,'\x34\x6f\x5a\x5e')]);if(Number[_0x305a65(0xe2,'\x72\x4a\x44\x6d')](_0x48787e)&&_0x48787e>_0x1049b7){_0x142e06(Object['\x61\x73\x73\x69\x67\x6e'](new Error(_0x305a65(0x23c,'\x57\x75\x4b\x4c')+_0x305a65(0xfc,'\x6d\x69\x70\x43')+_0x305a65(0x12c,'\x5d\x40\x4d\x6f')),{'\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65':0x19d}));return;}const _0xf89109=[];let _0x1e3f29=0xd1f+0xa7*0xd+-0x7*0x316,_0x195008=![];const _0x5a262d=_0x3a2599=>{const _0x273a20=_0x305a65;if(_0x195008)return;_0x195008=!![];try{if(_0x273a20(0x1b6,'\x54\x67\x61\x67')!=='\x6b\x67\x75\x49\x52')_0x3c0508[_0x273a20(0x167,'\x72\x4a\x44\x6d')]();else{_0x303fe2[_0x273a20(0x19c,'\x66\x36\x79\x61')](_0x273a20(0x139,'\x66\x36\x79\x61'),_0x2eedc2);try{_0x21d956['\x65\x6e\x64']();}catch{}}}catch{}_0x142e06(_0x3a2599);};_0x3c0508['\x6f\x6e'](_0x305a65(0x1ec,'\x70\x75\x46\x49'),_0x453f53=>{const _0x53d69a=_0x305a65;if('\x6a\x4a\x4c\x7a\x51'===_0x53d69a(0x13c,'\x7a\x57\x32\x39')){if(_0x195008)return;_0x1e3f29+=_0x453f53['\x6c\x65\x6e\x67\x74\x68'];if(_0x1e3f29>_0x1049b7){_0x5a262d(Object[_0x53d69a(0x160,'\x6d\x69\x70\x43')](new Error('\x52\x65\x71\x75\x65\x73\x74\x20'+'\x62\x6f\x64\x79\x20\x74\x6f\x6f'+_0x53d69a(0x133,'\x28\x77\x37\x4b')),{'\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65':0x19d}));return;}_0xf89109[_0x53d69a(0x1ca,'\x38\x2a\x36\x55')](_0x453f53);}else return'\x3f';}),_0x3c0508['\x6f\x6e']('\x65\x6e\x64',()=>{const _0x1ac37e=_0x305a65;if(_0x195008)return;_0x195008=!![];const _0x3af03f=Buffer[_0x1ac37e(0x1c2,'\x34\x6f\x5a\x5e')](_0xf89109)[_0x1ac37e(0xf0,'\x64\x28\x67\x68')]();if(!_0x3af03f){if('\x54\x64\x58\x58\x4f'===_0x1ac37e(0x10d,'\x76\x41\x48\x38')){if(_0x1a6319[_0x1ac37e(0x1dc,'\x70\x75\x46\x49')]==='\x45\x41\x44\x44\x52\x49\x4e\x55'+'\x53\x45')_0x4ac37a(![]);else _0x2b0a62(_0xe5f94);}else{_0x9487b1({});return;}}try{const _0x547d80=JSON[_0x1ac37e(0x156,'\x23\x37\x63\x72')](_0x3af03f);if(_0x547d80&&typeof _0x547d80===_0x1ac37e(0xe6,'\x53\x4a\x28\x7a')&&!Array[_0x1ac37e(0x221,'\x5d\x40\x4d\x6f')](_0x547d80))_0x9487b1(_0x547d80);else _0x142e06(Object[_0x1ac37e(0x216,'\x64\x28\x67\x68')](new Error(_0x1ac37e(0x247,'\x57\x75\x4b\x4c')+_0x1ac37e(0xe0,'\x4a\x28\x43\x79')+_0x1ac37e(0x151,'\x7a\x57\x32\x39')+'\x63\x74'),{'\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65':0x190}));}catch{_0x1ac37e(0x212,'\x70\x75\x46\x49')===_0x1ac37e(0x1cb,'\x68\x4a\x77\x6e')?_0x142e06(Object[_0x1ac37e(0x1d1,'\x57\x7a\x6a\x50')](new Error(_0x1ac37e(0x1cf,'\x57\x7a\x6a\x50')+'\x4a\x53\x4f\x4e\x20\x62\x6f\x64'+'\x79'),{'\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65':0x190})):_0x50a98f[_0x1ac37e(0x1fe,'\x28\x4b\x4f\x35')]();}}),_0x3c0508['\x6f\x6e'](_0x305a65(0x1f9,'\x64\x28\x67\x68'),_0x5a262d);}else return{'\x50\x4f\x53\x54\x20\x2f\x76\x31\x2f\x6d\x65\x73\x73\x61\x67\x65\x73':_0x334d8a[_0x305a65(0x138,'\x23\x53\x4c\x47')],..._0x111133[_0x305a65(0x207,'\x69\x37\x4d\x7a')]??{}};});}function lowerHeaders(_0x4f9e5e){const _0x11852f=_0x5d1cbf,_0x23f4b5={};for(const [_0x2dfd90,_0x1bef33]of Object[_0x11852f(0x228,'\x51\x5e\x53\x24')](_0x4f9e5e[_0x11852f(0x1db,'\x57\x7a\x6a\x50')]))_0x23f4b5[_0x2dfd90[_0x11852f(0x11c,'\x6e\x44\x30\x71')+_0x11852f(0xe8,'\x54\x67\x61\x67')]()]=Array[_0x11852f(0x15e,'\x30\x64\x38\x33')](_0x1bef33)?_0x1bef33[_0x11852f(0x1a3,'\x49\x68\x53\x42')]('\x2c\x20'):_0x1bef33;return _0x23f4b5;}function redactedRequestTarget(_0x3d8b26,_0x57bb9c){const _0x1294bd=_0x5d1cbf;try{const _0x164d04=new URL(_0x3d8b26??'\x2f',_0x1294bd(0x24b,'\x57\x75\x4b\x4c')+_0x1294bd(0x134,'\x72\x54\x6a\x52')+'\x3a'+(_0x57bb9c??0xb1e*0x1+-0x5e7*-0x4+-0x22ba)),_0x5929f9=new URLSearchParams();for(const [_0x760b87,_0x12ff21]of _0x164d04[_0x1294bd(0x11a,'\x28\x4b\x4f\x35')+_0x1294bd(0x1d4,'\x75\x51\x76\x5e')][_0x1294bd(0x240,'\x6d\x67\x43\x56')]()){_0x5929f9['\x61\x70\x70\x65\x6e\x64'](_0x760b87,SENSITIVE_QUERY_PARAMS[_0x1294bd(0x174,'\x7a\x57\x32\x39')](_0x760b87[_0x1294bd(0x245,'\x5d\x40\x4d\x6f')+_0x1294bd(0x152,'\x72\x4a\x44\x6d')]())?_0x1294bd(0x1bc,'\x5e\x6f\x32\x50'):_0x12ff21);}const _0x23ad8=_0x5929f9['\x74\x6f\x53\x74\x72\x69\x6e\x67']();return''+_0x164d04[_0x1294bd(0x137,'\x36\x74\x37\x5b')]+(_0x23ad8?'\x3f'+_0x23ad8:'');}catch{return'\x3f';}}function routeTable(_0xaa75f7){const _0x391200=_0x5d1cbf;return{'\x50\x4f\x53\x54\x20\x2f\x76\x31\x2f\x6d\x65\x73\x73\x61\x67\x65\x73':_0xaa75f7[_0x391200(0x145,'\x7a\x70\x55\x33')],..._0xaa75f7[_0x391200(0x131,'\x72\x54\x6a\x52')]??{}};}function matchRoute(_0x33109a,_0xe9d11b,_0x4341fb){const _0x4315d0=_0x5d1cbf,_0x3f3f4f=_0x33109a[_0xe9d11b+'\x20'+_0x4341fb];if(_0x3f3f4f)return{'\x68\x61\x6e\x64\x6c\x65\x72':_0x3f3f4f,'\x70\x61\x72\x61\x6d\x73':{}};const _0x3da689=_0x4341fb[_0x4315d0(0x201,'\x53\x4a\x28\x7a')]('\x2f')[_0x4315d0(0x198,'\x30\x64\x38\x33')](Boolean);for(const [_0x1c4159,_0x45eb67]of Object[_0x4315d0(0x12b,'\x6d\x75\x30\x65')](_0x33109a)){if(_0x4315d0(0xe9,'\x23\x37\x63\x72')!==_0x4315d0(0x1a5,'\x64\x28\x67\x68')){let _0x2e2601=![];const _0x474c0e=()=>{const _0x37c013=_0x4315d0;if(_0x2e2601)return;_0x2e2601=!![],_0x5f0edc[_0x37c013(0x163,'\x36\x74\x37\x5b')](_0x37c013(0x135,'\x68\x4a\x77\x6e'),_0x2e0be6),_0x2ba584();},_0x2e0be6=()=>{const _0x14f616=_0x4315d0;if(_0x2e2601)return;_0x2e2601=!![],_0xbcddd['\x6f\x66\x66'](_0x14f616(0x149,'\x66\x36\x79\x61'),_0x474c0e),_0x4f3fb1();};_0x25f716[_0x4315d0(0x183,'\x54\x67\x61\x67')](_0x4315d0(0x136,'\x5a\x4a\x79\x57'),_0x474c0e),_0x5c0a5f[_0x4315d0(0x20f,'\x34\x6f\x5a\x5e')](_0x4315d0(0x237,'\x5a\x4a\x79\x57'),_0x2e0be6);}else{const [_0x16834f,_0x5672e6]=_0x1c4159['\x73\x70\x6c\x69\x74']('\x20',-0x660+0x3b*0x3b+0x1*-0x737);if(_0x16834f!==_0xe9d11b||!_0x5672e6)continue;const _0x4b3065=_0x5672e6[_0x4315d0(0x201,'\x53\x4a\x28\x7a')]('\x2f')[_0x4315d0(0x16c,'\x6d\x67\x43\x56')](Boolean);if(_0x4b3065[_0x4315d0(0x175,'\x64\x28\x67\x68')]!==_0x3da689[_0x4315d0(0x11d,'\x38\x55\x55\x51')])continue;const _0x20a578={};let _0x2c81f3=!![];for(let _0x1af328=0x1*0x1e7f+0x1856+-0x36d5*0x1;_0x1af328<_0x4b3065[_0x4315d0(0x14d,'\x75\x51\x76\x5e')];_0x1af328++){if(_0x4315d0(0x235,'\x49\x68\x53\x42')===_0x4315d0(0x1ce,'\x28\x77\x37\x4b')){const _0x26173b=_0x4b3065[_0x1af328],_0x14feda=_0x3da689[_0x1af328];if(_0x26173b[_0x4315d0(0x168,'\x66\x36\x79\x61')+'\x74\x68']('\x3a')){if('\x6d\x67\x65\x48\x4b'===_0x4315d0(0x1a4,'\x34\x65\x6f\x78'))_0x20a578[_0x26173b['\x73\x6c\x69\x63\x65'](0xbc6+-0x4*0x401+-0x43f*-0x1)]=_0x14feda;else try{_0x4030cc['\x65\x6e\x64']();}catch{}}else{if(_0x26173b!==_0x14feda){_0x2c81f3=![];break;}}}else{_0x5ef08f({});return;}}if(_0x2c81f3)return{'\x68\x61\x6e\x64\x6c\x65\x72':_0x45eb67,'\x70\x61\x72\x61\x6d\x73':_0x20a578};}}return null;}export class LlmProxyServer{[_0x5d1cbf(0x12a,'\x7a\x43\x6c\x72')];[_0x5d1cbf(0x132,'\x62\x29\x56\x39')];[_0x5d1cbf(0x12f,'\x51\x5e\x53\x24')+'\x72\x74']=null;[_0x5d1cbf(0x176,'\x28\x4b\x4f\x35')];[_0x5d1cbf(0x249,'\x72\x54\x6a\x52')];[_0x5d1cbf(0x103,'\x63\x71\x61\x66')+_0x5d1cbf(0x121,'\x30\x64\x38\x33')];constructor(_0x34bbea){const _0x166abf=_0x5d1cbf;this[_0x166abf(0x173,'\x76\x41\x48\x38')]=_0x34bbea;if(!_0x34bbea[_0x166abf(0x161,'\x6d\x75\x30\x65')])throw new Error(_0x166abf(0x225,'\x34\x6f\x5a\x5e')+_0x166abf(0x230,'\x6d\x69\x70\x43')+_0x166abf(0x16a,'\x6d\x75\x30\x65')+_0x166abf(0x197,'\x28\x77\x37\x4b')+_0x166abf(0x1b3,'\x70\x65\x64\x57')+'\x6e');this[_0x166abf(0x1e0,'\x51\x5e\x53\x24')]=_0x34bbea['\x6c\x6f\x67\x67\x65\x72']??console,this[_0x166abf(0x239,'\x6e\x44\x30\x71')]=_0x34bbea[_0x166abf(0xef,'\x64\x65\x70\x49')]??process.env,this[_0x166abf(0x1b8,'\x62\x29\x56\x39')+_0x166abf(0x232,'\x7a\x43\x6c\x72')]=resolveMaxBodyBytes(_0x34bbea,this['\x65\x6e\x76']);}['\x61\x75\x74\x68\x65\x64'](_0x43cfec){const _0x50ed8b=_0x5d1cbf,_0x57ef81=_0x43cfec[_0x50ed8b(0x17b,'\x72\x54\x6a\x52')]['\x61\x75\x74\x68\x6f\x72\x69\x7a'+'\x61\x74\x69\x6f\x6e']??'',_0x285b2b=typeof _0x57ef81===_0x50ed8b(0x1b7,'\x62\x79\x54\x6b')&&_0x57ef81[_0x50ed8b(0x165,'\x64\x28\x67\x68')+'\x74\x68'](_0x50ed8b(0x12d,'\x62\x79\x54\x6b'))?_0x57ef81[_0x50ed8b(0x195,'\x6d\x67\x43\x56')](0xf65*0x1+0x35*-0x13+-0xb6f):'',_0x27c8ad=Buffer[_0x50ed8b(0x113,'\x68\x4a\x77\x6e')](_0x285b2b,_0x50ed8b(0x1c9,'\x51\x5e\x53\x24')),_0xc15770=Buffer[_0x50ed8b(0x1d2,'\x72\x54\x6a\x52')](this['\x6f\x70\x74\x73'][_0x50ed8b(0x14a,'\x5d\x40\x4d\x6f')],'\x75\x74\x66\x38');return _0x27c8ad['\x6c\x65\x6e\x67\x74\x68']===_0xc15770[_0x50ed8b(0x170,'\x7a\x70\x55\x33')]&&timingSafeEqual(_0x27c8ad,_0xc15770);}async['\x73\x74\x61\x72\x74'](){const _0xe02b49=_0x5d1cbf;if(this[_0xe02b49(0x21e,'\x70\x75\x46\x49')])throw new Error(_0xe02b49(0xf4,'\x35\x64\x45\x6b')+'\x53\x65\x72\x76\x65\x72\x20\x61'+_0xe02b49(0x242,'\x62\x29\x56\x39')+_0xe02b49(0x17f,'\x69\x37\x4d\x7a'));const _0x24a5f4=this[_0xe02b49(0x159,'\x69\x28\x54\x7a')][_0xe02b49(0x1a0,'\x7a\x57\x32\x39')]??_0xe02b49(0x109,'\x51\x5e\x53\x24')+'\x31',_0x48020b=this[_0xe02b49(0x1c4,'\x64\x28\x67\x68')][_0xe02b49(0x1e6,'\x6d\x75\x30\x65')]??Number(this['\x65\x6e\x76'][_0xe02b49(0x1d9,'\x69\x37\x4d\x7a')+_0xe02b49(0x18f,'\x75\x51\x76\x5e')]||DEFAULT_LLM_PORT),_0x2f061e=createServer((_0x598afd,_0x252dcc)=>{const _0x571a39=_0xe02b49;_0x571a39(0x18d,'\x7a\x43\x6c\x72')!==_0x571a39(0x1ea,'\x66\x36\x79\x61')?void this[_0x571a39(0x1ee,'\x45\x6f\x6a\x69')](_0x58b84d,_0x39b11f):void this[_0x571a39(0x184,'\x6d\x69\x70\x43')](_0x598afd,_0x252dcc);}),_0x6bfb74=_0x992e61=>new Promise((_0x53a235,_0x639e10)=>{const _0x2aed2e=_0xe02b49,_0x169038=_0x2d70b9=>{const _0x4b44fd=_0x911a;if(_0x4b44fd(0x120,'\x57\x7a\x6a\x50')!==_0x4b44fd(0x102,'\x38\x55\x55\x51')){if(_0x2eeb48)return;_0x2f07a4=!![];const _0x4f5d3c=_0x3c6c77['\x63\x6f\x6e\x63\x61\x74'](_0x1809f4)[_0x4b44fd(0x20e,'\x70\x65\x64\x57')]();if(!_0x4f5d3c){_0x5b29c7({});return;}try{const _0x391778=_0x29ba09[_0x4b44fd(0x1fb,'\x51\x5e\x53\x24')](_0x4f5d3c);if(_0x391778&&typeof _0x391778===_0x4b44fd(0x14c,'\x62\x79\x54\x6b')&&!_0x349701[_0x4b44fd(0x17e,'\x69\x37\x4d\x7a')](_0x391778))_0xf8a63c(_0x391778);else _0x33cd99(_0x7306dd[_0x4b44fd(0x13d,'\x6d\x67\x43\x56')](new _0x5c3d76(_0x4b44fd(0x23f,'\x35\x64\x45\x6b')+_0x4b44fd(0xe0,'\x4a\x28\x43\x79')+_0x4b44fd(0x1ab,'\x53\x4a\x28\x7a')+'\x63\x74'),{'\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65':0x190}));}catch{_0x451e62(_0x506703[_0x4b44fd(0x160,'\x6d\x69\x70\x43')](new _0x394ac2(_0x4b44fd(0x231,'\x57\x61\x24\x5a')+_0x4b44fd(0x1c6,'\x69\x6e\x4b\x21')+'\x79'),{'\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65':0x190}));}}else{if(_0x2d70b9[_0x4b44fd(0x23a,'\x51\x5e\x53\x24')]===_0x4b44fd(0x213,'\x38\x55\x55\x51')+'\x53\x45')_0x53a235(![]);else _0x639e10(_0x2d70b9);}};_0x2f061e[_0x2aed2e(0x171,'\x70\x75\x46\x49')](_0x2aed2e(0x22b,'\x49\x68\x53\x42'),_0x169038),_0x2f061e[_0x2aed2e(0x196,'\x38\x55\x55\x51')](_0x992e61,_0x24a5f4,()=>{const _0x32647d=_0x2aed2e;_0x2f061e['\x72\x65\x6d\x6f\x76\x65\x4c\x69'+_0x32647d(0x1a7,'\x68\x4a\x77\x6e')](_0x32647d(0x1f9,'\x64\x28\x67\x68'),_0x169038),_0x53a235(!![]);});}),_0x3d7d5f=()=>new Promise((_0x4b6d43,_0x5f3d55)=>{const _0x3e6b1d=_0xe02b49;_0x2f061e[_0x3e6b1d(0x155,'\x30\x64\x38\x33')](_0x469d9d=>{const _0xc0ec59=_0x3e6b1d;if(_0xc0ec59(0x1b9,'\x69\x37\x4d\x7a')===_0xc0ec59(0x1ba,'\x28\x77\x37\x4b'))_0x59db7d(_0x3cd794[_0xc0ec59(0x116,'\x70\x75\x46\x49')](new _0x6ff95(_0xc0ec59(0x181,'\x23\x53\x4c\x47')+_0xc0ec59(0x220,'\x75\x51\x76\x5e')+'\x79'),{'\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65':0x190}));else{if(_0x469d9d)_0x5f3d55(_0x469d9d);else _0x4b6d43();}});});let _0x54d7d=_0x48020b;const _0x533d1d=_0x48020b===0x2171+0xd94+-0x2f05?MAX_EPHEMERAL_LLM_LISTEN_ATTEMPTS:MAX_PORT_ATTEMPTS;for(let _0x2cfd52=-0x1c14+-0x3e4*-0x5+-0x8a0*-0x1;_0x2cfd52<_0x533d1d;_0x2cfd52++){if(await _0x6bfb74(_0x54d7d)){if(_0xe02b49(0x217,'\x38\x55\x55\x51')==='\x62\x45\x72\x6c\x67')_0x22019b['\x61\x70\x70\x65\x6e\x64'](_0x57446d,_0x23cb51['\x68\x61\x73'](_0x398b00[_0xe02b49(0x1fd,'\x69\x28\x54\x7a')+_0xe02b49(0x122,'\x64\x65\x70\x49')]())?_0xe02b49(0x140,'\x38\x78\x25\x6f'):_0x4f5ae3);else{const _0x3c4f9e=_0x2f061e[_0xe02b49(0x1bd,'\x7a\x70\x55\x33')](),_0x25c5a5=typeof _0x3c4f9e===_0xe02b49(0x1d3,'\x6d\x69\x70\x43')&&_0x3c4f9e?_0x3c4f9e[_0xe02b49(0xeb,'\x6e\x44\x30\x71')]:_0x54d7d;if(_0x48020b===0xa9f+0x1923+-0x1*0x23c2&&util[_0xe02b49(0x186,'\x72\x54\x6a\x52')+_0xe02b49(0x1a6,'\x45\x6f\x6a\x69')+_0xe02b49(0x148,'\x64\x65\x70\x49')](_0x25c5a5)){if(_0xe02b49(0xdf,'\x69\x6e\x4b\x21')!==_0xe02b49(0x1f1,'\x36\x74\x37\x5b')){await _0x3d7d5f();continue;}else{_0x37c774=!![];if(_0x105718)_0x20971b['\x63\x61\x6e\x63\x65\x6c']()[_0xe02b49(0x199,'\x4c\x7a\x74\x4c')](()=>{});else _0x5c020d&&typeof _0x2c25d8[_0xe02b49(0x226,'\x72\x4a\x44\x6d')]===_0xe02b49(0x21d,'\x6d\x67\x43\x56')&&void _0x3bac51[_0xe02b49(0x18b,'\x57\x7a\x6a\x50')](_0x297ccf)[_0xe02b49(0x13e,'\x38\x2a\x36\x55')](()=>_0x18cd76);}}this[_0xe02b49(0x218,'\x70\x75\x46\x49')+'\x72\x74']=_0x25c5a5,this[_0xe02b49(0x1af,'\x76\x41\x48\x38')]=_0x2f061e;const _0x3bfe4f=_0xe02b49(0xf6,'\x69\x37\x4d\x7a')+_0x24a5f4+'\x3a'+this[_0xe02b49(0x206,'\x53\x4a\x28\x7a')+'\x72\x74'];return this[_0xe02b49(0x1fc,'\x38\x2a\x36\x55')][_0xe02b49(0xed,'\x23\x37\x63\x72')]?.(_0xe02b49(0x234,'\x54\x67\x61\x67')+_0xe02b49(0x194,'\x49\x68\x53\x42')+_0xe02b49(0x205,'\x68\x4a\x77\x6e')+_0xe02b49(0x172,'\x75\x51\x76\x5e')+'\x20'+_0x3bfe4f),{'\x70\x6f\x72\x74':this[_0xe02b49(0x19f,'\x6d\x75\x30\x65')+'\x72\x74'],'\x75\x72\x6c':_0x3bfe4f};}}if(_0x48020b===0x1*0x9c4+0x2511*-0x1+-0x1*-0x1b4d)break;_0x54d7d++;}if(_0x48020b===-0x13d*-0x17+-0xa47+-0x2*0x91a)throw new Error(_0xe02b49(0x1c5,'\x28\x77\x37\x4b')+_0xe02b49(0xf9,'\x45\x6f\x6a\x69')+'\x6f\x72\x74\x5f\x75\x6e\x61\x76'+_0xe02b49(0x1e2,'\x72\x4a\x44\x6d'));throw new Error(_0xe02b49(0xf2,'\x57\x61\x24\x5a')+'\x53\x65\x72\x76\x65\x72\x3a\x20'+'\x6e\x6f\x20\x66\x72\x65\x65\x20'+_0xe02b49(0x248,'\x49\x68\x53\x42')+_0xe02b49(0x10f,'\x53\x4a\x28\x7a')+MAX_PORT_ATTEMPTS+(_0xe02b49(0x1e7,'\x30\x64\x38\x33')+_0xe02b49(0x150,'\x36\x74\x37\x5b'))+_0x48020b);}async[_0x5d1cbf(0x15d,'\x69\x37\x4d\x7a')](){const _0x3dd9a1=_0x5d1cbf;if(!this[_0x3dd9a1(0x178,'\x5e\x6f\x32\x50')])return;const _0x47700f=this[_0x3dd9a1(0x158,'\x6e\x44\x30\x71')];this[_0x3dd9a1(0x164,'\x23\x37\x63\x72')]=undefined,_0x47700f[_0x3dd9a1(0x215,'\x28\x77\x37\x4b')+_0x3dd9a1(0x11b,'\x7a\x70\x55\x33')+'\x6f\x6e\x73'](),await new Promise(_0x115de1=>{const _0x31804f=_0x3dd9a1;_0x31804f(0x180,'\x75\x68\x37\x24')===_0x31804f(0x1e9,'\x36\x74\x37\x5b')?void _0x159417[_0x31804f(0x130,'\x38\x78\x25\x6f')](_0xe88eb6)['\x63\x61\x74\x63\x68'](()=>_0x3fe7a4):_0x47700f[_0x31804f(0x238,'\x7a\x57\x32\x39')](()=>_0x115de1());});}async['\x68\x61\x6e\x64\x6c\x65'](_0x45a15c,_0xfc2629){const _0x2d8ad1=_0x5d1cbf;try{const _0x18785d=new URL(_0x45a15c[_0x2d8ad1(0x1ae,'\x5e\x6f\x32\x50')]??'\x2f',_0x2d8ad1(0x1ef,'\x69\x6e\x4b\x21')+_0x2d8ad1(0xfa,'\x7a\x57\x32\x39')+'\x3a'+this[_0x2d8ad1(0x1a9,'\x28\x4b\x4f\x35')+'\x72\x74']);if(_0x45a15c['\x6d\x65\x74\x68\x6f\x64']===_0x2d8ad1(0x10e,'\x75\x51\x76\x5e')&&_0x18785d[_0x2d8ad1(0x1e8,'\x5e\x6f\x32\x50')]===_0x2d8ad1(0x211,'\x35\x64\x45\x6b')){if(_0x2d8ad1(0x1c0,'\x62\x79\x54\x6b')===_0x2d8ad1(0x16f,'\x66\x36\x79\x61')){sendJson(_0xfc2629,0x151*-0x5+0x7e9+-0x8c,{'\x6f\x6b':!![]});return;}else{const _0x20ad5d=_0x3884ff[_0x2d8ad1(0x17d,'\x62\x79\x54\x6b')](_0x207165);if(_0x20ad5d&&typeof _0x20ad5d===_0x2d8ad1(0xe6,'\x53\x4a\x28\x7a')&&!_0x3311f1[_0x2d8ad1(0x1f4,'\x64\x65\x70\x49')](_0x20ad5d))_0x28dc80(_0x20ad5d);else _0x548372(_0x52c562[_0x2d8ad1(0xf1,'\x57\x75\x4b\x4c')](new _0x210ca9(_0x2d8ad1(0x1de,'\x38\x78\x25\x6f')+_0x2d8ad1(0x142,'\x57\x61\x24\x5a')+_0x2d8ad1(0xe3,'\x68\x4a\x77\x6e')+'\x63\x74'),{'\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65':0x190}));}}if(!this['\x61\x75\x74\x68\x65\x64'](_0x45a15c)){sendJson(_0xfc2629,-0x3a*0x5e+0x2*0x1190+-0xc43,{'\x65\x72\x72\x6f\x72':_0x2d8ad1(0x13f,'\x63\x71\x61\x66')+_0x2d8ad1(0xfd,'\x28\x4b\x4f\x35')});return;}const _0x43d306=_0x45a15c[_0x2d8ad1(0x23e,'\x62\x79\x54\x6b')]??_0x2d8ad1(0x1d6,'\x69\x28\x54\x7a'),_0x597696=matchRoute(routeTable(this[_0x2d8ad1(0x111,'\x5a\x4a\x79\x57')]),_0x43d306,_0x18785d[_0x2d8ad1(0x10c,'\x6d\x75\x30\x65')]);if(!_0x597696){if('\x70\x4b\x64\x54\x43'===_0x2d8ad1(0x14e,'\x64\x28\x67\x68')){sendJson(_0xfc2629,-0x80f+0x228b+-0x18e8,{'\x65\x72\x72\x6f\x72':_0x2d8ad1(0xf5,'\x6d\x67\x43\x56')+'\x64','\x70\x61\x74\x68':_0x18785d[_0x2d8ad1(0x166,'\x75\x51\x76\x5e')]});return;}else{if(_0x2f2ad6)_0x1a5373(_0x54cf36);else _0x17a3ed();}}const _0x176f21=_0x43d306==='\x50\x4f\x53\x54'||_0x43d306==='\x50\x55\x54'||_0x43d306===_0x2d8ad1(0x15c,'\x6d\x67\x43\x56')?await readBody(_0x45a15c,this[_0x2d8ad1(0x124,'\x38\x78\x25\x6f')+_0x2d8ad1(0x1e1,'\x51\x5e\x53\x24')]):{},_0x110430={'\x62\x6f\x64\x79':_0x176f21,'\x68\x65\x61\x64\x65\x72\x73':lowerHeaders(_0x45a15c),'\x70\x61\x72\x61\x6d\x73':_0x597696['\x70\x61\x72\x61\x6d\x73'],'\x71\x75\x65\x72\x79':Object[_0x2d8ad1(0x203,'\x38\x78\x25\x6f')+_0x2d8ad1(0x125,'\x35\x57\x52\x7a')](_0x18785d[_0x2d8ad1(0x1f0,'\x23\x53\x4c\x47')+_0x2d8ad1(0x21a,'\x35\x57\x52\x7a')][_0x2d8ad1(0x240,'\x6d\x67\x43\x56')]())},_0x4c4c07=await _0x597696[_0x2d8ad1(0x127,'\x68\x4a\x77\x6e')](_0x110430);if(_0x4c4c07[_0x2d8ad1(0x1d5,'\x30\x64\x38\x33')]){await this[_0x2d8ad1(0x117,'\x57\x61\x24\x5a')+_0x2d8ad1(0x19e,'\x34\x65\x6f\x78')](_0xfc2629,_0x4c4c07);return;}sendJson(_0xfc2629,_0x4c4c07[_0x2d8ad1(0x13a,'\x69\x28\x54\x7a')]||-0x1fdd+0x1387+0x49*0x2e,_0x4c4c07[_0x2d8ad1(0x1da,'\x6d\x75\x30\x65')]??{},_0x4c4c07['\x68\x65\x61\x64\x65\x72\x73']);}catch(_0x4c6e52){if(_0x2d8ad1(0x17a,'\x72\x54\x6a\x52')!==_0x2d8ad1(0x1aa,'\x57\x61\x24\x5a')){const _0x323863=_0x3c7901=>{const _0x3c188c=_0x2d8ad1;if(_0x3c7901[_0x3c188c(0x147,'\x5d\x40\x4d\x6f')]===_0x3c188c(0xe5,'\x35\x64\x45\x6b')+'\x53\x45')_0x13f0b6(![]);else _0x33d0ba(_0x3c7901);};_0x537721[_0x2d8ad1(0x182,'\x75\x68\x37\x24')](_0x2d8ad1(0x21c,'\x75\x51\x76\x5e'),_0x323863),_0x17556e[_0x2d8ad1(0x202,'\x45\x6f\x6a\x69')](_0x24d089,_0x2ba11f,()=>{const _0x175f73=_0x2d8ad1;_0x53459d['\x72\x65\x6d\x6f\x76\x65\x4c\x69'+_0x175f73(0x20b,'\x63\x71\x61\x66')](_0x175f73(0x114,'\x23\x53\x4c\x47'),_0x323863),_0x442a86(!![]);});}else{const _0x3ce07b=_0x4c6e52[_0x2d8ad1(0x19d,'\x63\x71\x61\x66')+'\x64\x65'],_0x28cd1c=typeof _0x3ce07b===_0x2d8ad1(0xfe,'\x53\x4a\x28\x7a')?_0x3ce07b:0x25df+-0x1ae*0xd+-0xe15;this[_0x2d8ad1(0x1e5,'\x35\x64\x45\x6b')][_0x2d8ad1(0x1f3,'\x5d\x40\x4d\x6f')]?.(_0x2d8ad1(0x10b,'\x57\x7a\x6a\x50')+_0x2d8ad1(0x204,'\x57\x61\x24\x5a')+_0x2d8ad1(0x1ad,'\x49\x68\x53\x42')+(_0x45a15c[_0x2d8ad1(0x129,'\x69\x6e\x4b\x21')]??'\x3f')+'\x20'+redactedRequestTarget(_0x45a15c[_0x2d8ad1(0x105,'\x75\x51\x76\x5e')],this[_0x2d8ad1(0x101,'\x49\x68\x53\x42')+'\x72\x74'])+'\x20\u2192\x20'+_0x28cd1c+'\x3a\x20'+(_0x4c6e52 instanceof Error?_0x4c6e52['\x6d\x65\x73\x73\x61\x67\x65']:String(_0x4c6e52)));if(_0xfc2629[_0x2d8ad1(0xde,'\x57\x75\x4b\x4c')+_0x2d8ad1(0xfb,'\x38\x2a\x36\x55')]){if(_0x2d8ad1(0x191,'\x4c\x7a\x74\x4c')!==_0x2d8ad1(0x177,'\x53\x4a\x28\x7a'))try{_0xfc2629[_0x2d8ad1(0x1a1,'\x62\x29\x56\x39')]();}catch{}else _0x2cbca1[_0x2d8ad1(0x110,'\x38\x55\x55\x51')](_0x132c50=>{if(_0x132c50)_0x3d7c54(_0x132c50);else _0x57039f();});}else{if(_0x2d8ad1(0x104,'\x36\x74\x37\x5b')===_0x2d8ad1(0x188,'\x6e\x44\x30\x71'))sendJson(_0xfc2629,_0x28cd1c,{'\x65\x72\x72\x6f\x72':_0x4c6e52 instanceof Error?_0x4c6e52[_0x2d8ad1(0x22c,'\x49\x68\x53\x42')]:_0x2d8ad1(0x208,'\x34\x65\x6f\x78')+_0x2d8ad1(0x1d7,'\x36\x74\x37\x5b')});else{const _0x29b201=_0x21d298['\x73\x74\x72\x69\x6e\x67\x69\x66'+'\x79'](_0x4f080e);_0xc46484['\x77\x72\x69\x74\x65\x48\x65\x61'+'\x64'](_0x360b73,{..._0x19752a(_0x13983b),'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':_0x2d8ad1(0x1cc,'\x30\x64\x38\x33')+_0x2d8ad1(0x1c3,'\x35\x64\x45\x6b'),'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x4c\x65\x6e\x67\x74\x68':_0x407ae6[_0x2d8ad1(0x1c1,'\x30\x64\x38\x33')+'\x74\x68'](_0x29b201)}),_0xa1924d[_0x2d8ad1(0x1bb,'\x64\x28\x67\x68')](_0x29b201);}}}}}async[_0x5d1cbf(0x12e,'\x5a\x4a\x79\x57')+_0x5d1cbf(0x14f,'\x35\x57\x52\x7a')](_0x49a194,_0x1c2316){const _0x45da97=_0x5d1cbf,_0x3dbee0={'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':_0x45da97(0x123,'\x57\x7a\x6a\x50')+_0x45da97(0x20d,'\x69\x6e\x4b\x21')+'\x6d','\x43\x61\x63\x68\x65\x2d\x43\x6f\x6e\x74\x72\x6f\x6c':'\x6e\x6f\x2d\x63\x61\x63\x68\x65','\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e':_0x45da97(0x162,'\x5a\x4a\x79\x57')+'\x76\x65',..._0x1c2316[_0x45da97(0x15b,'\x34\x6f\x5a\x5e')]??{}};_0x49a194[_0x45da97(0x246,'\x45\x6f\x6a\x69')+'\x64'](_0x1c2316[_0x45da97(0x22a,'\x5e\x6f\x32\x50')]||-0x14e*0x14+0xa44+0x109c,_0x3dbee0);const _0x3875dd=_0x1c2316[_0x45da97(0x1f8,'\x72\x4a\x44\x6d')],_0x298596=_0x3875dd&&typeof _0x3875dd[_0x45da97(0x1f7,'\x63\x71\x61\x66')+'\x72']==='\x66\x75\x6e\x63\x74\x69\x6f\x6e'?_0x3875dd['\x67\x65\x74\x52\x65\x61\x64\x65'+'\x72']():null;let _0x42438d=![];const _0x219ff8=()=>{const _0x1e4258=_0x45da97;if(_0x1e4258(0x233,'\x57\x7a\x6a\x50')===_0x1e4258(0xff,'\x68\x4a\x77\x6e')){_0x42438d=!![];if(_0x298596)_0x298596[_0x1e4258(0x1a8,'\x38\x78\x25\x6f')]()[_0x1e4258(0x199,'\x4c\x7a\x74\x4c')](()=>{});else _0x3875dd&&typeof _0x3875dd[_0x1e4258(0x187,'\x6d\x75\x30\x65')]===_0x1e4258(0xf8,'\x38\x2a\x36\x55')&&void _0x3875dd[_0x1e4258(0x169,'\x62\x79\x54\x6b')](undefined)['\x63\x61\x74\x63\x68'](()=>undefined);}else{if(typeof _0x3de105[_0x1e4258(0xee,'\x7a\x57\x32\x39')+_0x1e4258(0x1be,'\x28\x4b\x4f\x35')]===_0x1e4258(0x100,'\x5e\x6f\x32\x50')&&_0x326d0b[_0x1e4258(0x141,'\x34\x6f\x5a\x5e')+_0x1e4258(0xec,'\x28\x77\x37\x4b')]>0x7b3*0x4+0xa*-0x209+0x2*-0x539)return _0xfc75e8['\x66\x6c\x6f\x6f\x72'](_0x797a0f[_0x1e4258(0x1b4,'\x6d\x67\x43\x56')+'\x79\x74\x65\x73']);const _0x594d37=_0x27bb06(_0x56a036[_0x1e4258(0x146,'\x57\x7a\x6a\x50')+'\x4c\x4c\x4d\x5f\x4d\x41\x58\x5f'+_0x1e4258(0x15a,'\x30\x64\x38\x33')+'\x45\x53']);if(_0x2fd9cf[_0x1e4258(0x126,'\x23\x53\x4c\x47')](_0x594d37)&&_0x594d37>-0x1*-0x13b9+-0x2bb*0x4+-0x8cd)return _0x255535['\x66\x6c\x6f\x6f\x72'](_0x594d37);return _0x46e060;}};_0x49a194[_0x45da97(0x224,'\x57\x75\x4b\x4c')](_0x45da97(0x106,'\x64\x28\x67\x68'),_0x219ff8);const _0x5a91a1=()=>new Promise(_0x789a=>{const _0x20322d=_0x45da97;let _0x59f44d=![];const _0x1bc06d=()=>{const _0x49e777=_0x911a;if(_0x49e777(0x20a,'\x28\x4b\x4f\x35')===_0x49e777(0x1bf,'\x69\x37\x4d\x7a'))_0x3facbd[_0x49e777(0x22f,'\x30\x64\x38\x33')]();else{if(_0x59f44d)return;_0x59f44d=!![],_0x49a194[_0x49e777(0x16e,'\x69\x28\x54\x7a')](_0x49e777(0x1b0,'\x49\x68\x53\x42'),_0x4fe642),_0x789a();}},_0x4fe642=()=>{const _0x257941=_0x911a;if(_0x59f44d)return;_0x59f44d=!![],_0x49a194[_0x257941(0x210,'\x38\x55\x55\x51')](_0x257941(0x1eb,'\x75\x51\x76\x5e'),_0x1bc06d),_0x789a();};_0x49a194[_0x20322d(0x1f2,'\x36\x74\x37\x5b')](_0x20322d(0x193,'\x38\x55\x55\x51'),_0x1bc06d),_0x49a194[_0x20322d(0x182,'\x75\x68\x37\x24')](_0x20322d(0x110,'\x38\x55\x55\x51'),_0x4fe642);}),_0x54bdce=_0x985734=>_0x49a194[_0x45da97(0x18e,'\x23\x37\x63\x72')](typeof _0x985734===_0x45da97(0x227,'\x51\x5e\x53\x24')||_0x985734 instanceof Uint8Array?_0x985734:String(_0x985734));try{if(_0x298596)for(;;){const {value:_0x2b8baf,done:_0x4d0fc2}=await _0x298596[_0x45da97(0x1c8,'\x30\x64\x38\x33')]();if(_0x4d0fc2||_0x42438d)break;if(!_0x54bdce(_0x2b8baf)){await _0x5a91a1();if(_0x42438d)break;}}else{if(_0x3875dd&&typeof _0x3875dd[Symbol[_0x45da97(0xe1,'\x69\x37\x4d\x7a')+_0x45da97(0x1f5,'\x72\x4a\x44\x6d')]]===_0x45da97(0x22e,'\x38\x55\x55\x51')){if(_0x45da97(0x222,'\x4a\x28\x43\x79')===_0x45da97(0x112,'\x28\x4b\x4f\x35'))for await(const _0x24b5e5 of _0x3875dd){if(_0x42438d)break;if(!_0x54bdce(_0x24b5e5)){await _0x5a91a1();if(_0x42438d)break;}}else _0x25e577[_0x45da97(0x20c,'\x75\x51\x76\x5e')]()[_0x45da97(0x1fa,'\x23\x53\x4c\x47')](()=>{});}}}finally{_0x49a194[_0x45da97(0x16d,'\x62\x79\x54\x6b')]('\x63\x6c\x6f\x73\x65',_0x219ff8);try{_0x45da97(0xe4,'\x70\x65\x64\x57')===_0x45da97(0x189,'\x4c\x7a\x74\x4c')?_0x3800d6[_0x45da97(0x192,'\x6d\x69\x70\x43')](()=>_0x5801fa()):_0x49a194[_0x45da97(0x128,'\x70\x65\x64\x57')]();}catch{}}}}