@evomap/evolver 1.89.4 → 1.89.6

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 (108) hide show
  1. package/CONTRIBUTING.md +19 -0
  2. package/README.md +536 -86
  3. package/assets/cover.png +0 -0
  4. package/index.js +87 -7
  5. package/package.json +17 -6
  6. package/scripts/a2a_export.js +63 -0
  7. package/scripts/a2a_ingest.js +79 -0
  8. package/scripts/a2a_promote.js +118 -0
  9. package/scripts/analyze_by_skill.js +121 -0
  10. package/scripts/build_binaries.js +479 -0
  11. package/scripts/check-changelog.js +166 -0
  12. package/scripts/extract_log.js +85 -0
  13. package/scripts/generate_history.js +75 -0
  14. package/scripts/gep_append_event.js +96 -0
  15. package/scripts/gep_personality_report.js +234 -0
  16. package/scripts/human_report.js +147 -0
  17. package/scripts/recall-verify-report.js +234 -0
  18. package/scripts/recover_loop.js +61 -0
  19. package/scripts/refresh_stars_badge.js +168 -0
  20. package/scripts/seed-merchants.js +91 -0
  21. package/scripts/suggest_version.js +89 -0
  22. package/scripts/validate-modules.js +38 -0
  23. package/scripts/validate-suite.js +78 -0
  24. package/skills/index.json +14 -0
  25. package/src/adapters/scripts/_runtimePaths.js +1 -0
  26. package/src/adapters/scripts/evolver-session-end.js +1 -0
  27. package/src/adapters/scripts/evolver-session-start.js +1 -0
  28. package/src/evolve/guards.js +1 -721
  29. package/src/evolve/pipeline/collect.js +1 -1283
  30. package/src/evolve/pipeline/dispatch.js +1 -421
  31. package/src/evolve/pipeline/enrich.js +1 -440
  32. package/src/evolve/pipeline/hub.js +1 -319
  33. package/src/evolve/pipeline/select.js +1 -274
  34. package/src/evolve/pipeline/signals.js +1 -206
  35. package/src/evolve/utils.js +1 -264
  36. package/src/evolve.js +1 -350
  37. package/src/gep/a2aProtocol.js +1 -4455
  38. package/src/gep/antiAbuseTelemetry.js +1 -233
  39. package/src/gep/autoDistillConv.js +1 -205
  40. package/src/gep/autoDistillLlm.js +1 -315
  41. package/src/gep/candidateEval.js +1 -92
  42. package/src/gep/candidates.js +1 -198
  43. package/src/gep/contentHash.js +1 -30
  44. package/src/gep/conversationSniffer.js +1 -266
  45. package/src/gep/crypto.js +1 -89
  46. package/src/gep/curriculum.js +1 -163
  47. package/src/gep/deviceId.js +1 -218
  48. package/src/gep/envFingerprint.js +1 -118
  49. package/src/gep/epigenetics.js +1 -31
  50. package/src/gep/execBridge.js +1 -711
  51. package/src/gep/explore.js +1 -289
  52. package/src/gep/hash.js +1 -15
  53. package/src/gep/hubFetch.js +1 -359
  54. package/src/gep/hubReview.js +1 -207
  55. package/src/gep/hubSearch.js +1 -526
  56. package/src/gep/hubVerify.js +1 -306
  57. package/src/gep/idleScheduler.js +6 -1
  58. package/src/gep/learningSignals.js +1 -89
  59. package/src/gep/memoryGraph.js +1 -1374
  60. package/src/gep/memoryGraphAdapter.js +1 -203
  61. package/src/gep/mutation.js +1 -203
  62. package/src/gep/narrativeMemory.js +1 -108
  63. package/src/gep/openPRRegistry.js +1 -205
  64. package/src/gep/personality.js +1 -423
  65. package/src/gep/policyCheck.js +1 -599
  66. package/src/gep/prompt.js +1 -836
  67. package/src/gep/recallInject.js +1 -409
  68. package/src/gep/recallVerifier.js +1 -318
  69. package/src/gep/reflection.js +1 -177
  70. package/src/gep/savingsCore.js +1 -0
  71. package/src/gep/selector.js +1 -602
  72. package/src/gep/skillDistiller.js +1 -1294
  73. package/src/gep/solidify.js +1 -1699
  74. package/src/gep/strategy.js +1 -136
  75. package/src/gep/tokenSavings.js +1 -88
  76. package/src/gep/workspaceKeychain.js +1 -174
  77. package/src/ops/lifecycle.js +17 -4
  78. package/src/proxy/envelope.js +59 -0
  79. package/src/proxy/extensions/traceControl.js +1 -99
  80. package/src/proxy/index.js +221 -3
  81. package/src/proxy/inject.js +1 -52
  82. package/src/proxy/lifecycle/manager.js +14 -7
  83. package/src/proxy/mailbox/store.js +29 -6
  84. package/src/proxy/router/messages_route.js +4 -1
  85. package/src/proxy/router/responses_route.js +159 -0
  86. package/src/proxy/server/http.js +13 -4
  87. package/src/proxy/server/routes.js +11 -1
  88. package/src/proxy/sync/engine.js +7 -1
  89. package/src/proxy/sync/outbound.js +32 -4
  90. package/src/proxy/trace/extractor.js +1 -646
  91. package/src/proxy/trace/usage.js +1 -105
  92. package/.cursor/BUGBOT.md +0 -182
  93. package/.env.example +0 -68
  94. package/.git-commit-guard-token +0 -1
  95. package/.github/CODEOWNERS +0 -63
  96. package/.github/ISSUE_TEMPLATE/good_first_issue.md +0 -23
  97. package/.github/pull_request_template.md +0 -45
  98. package/.github/workflows/test.yml +0 -75
  99. package/CHANGELOG.md +0 -1237
  100. package/README.public.md +0 -569
  101. package/SECURITY.md +0 -108
  102. package/assets/gep/events.jsonl +0 -3
  103. package/examples/atp-consumer-quickstart.md +0 -100
  104. package/examples/hello-world.md +0 -38
  105. package/proxy-package.json +0 -39
  106. package/public.manifest.json +0 -143
  107. /package/assets/gep/{genes.json → genes.seed.json} +0 -0
  108. /package/{bundled-skills → skills}/_meta/SKILL.md +0 -0
@@ -1,359 +1 @@
1
- // hubFetch -- single chokepoint for every Hub-facing HTTP call.
2
- //
3
- // Two protections, both bypassable only via EVOMAP_HUB_ALLOW_INSECURE=1:
4
- //
5
- // 1. URL schema check. Rejects anything that does not parse as https://.
6
- // This catches every misconfigured / attacker-supplied env var even
7
- // when the caller bypassed resolveHubUrl() and read process.env
8
- // directly (httpTransportSend / getHubUrl() / per-call opts.hubUrl /
9
- // proxy this.hubUrl all reach here).
10
- //
11
- // 2. TLS verification. Built-in fetch validates certificates by default,
12
- // but NODE_TLS_REJECT_UNAUTHORIZED=0 disables that globally. Passing
13
- // an explicit undici.Agent with connect.rejectUnauthorized:true as
14
- // the dispatcher makes Hub traffic immune to that env var.
15
- //
16
- // Escape hatch: EVOMAP_HUB_ALLOW_INSECURE=1 disables BOTH protections (used
17
- // for local dev / mock hubs on http:// or with self-signed certs). Any
18
- // value other than exactly "1" is treated as absent.
19
-
20
- // Use BOTH Agent and fetch from the same undici package. Node's global
21
- // fetch is built on an internal undici, and an Agent created from the
22
- // installed `undici` package is not interface-compatible with it — mixing
23
- // them yields `UND_ERR_INVALID_ARG: invalid onRequestStart method` at
24
- // request time. Pulling fetch from the same package keeps them in sync.
25
- const https = require('https');
26
- const { Agent, fetch: undiciFetch, buildConnector } = require('undici');
27
-
28
- // Cap idle keep-alive well below consumer-router NAT eviction (typically
29
- // 60-300s). undici's default keepAliveTimeout is 600s, which means after an
30
- // idle period the next request reuses a socket the NAT has already silently
31
- // dropped and only fails after AbortSignal timeout — a major contributor to
32
- // post-idle heartbeat death. headers/bodyTimeout are bounded so a wedged
33
- // socket cannot stall the heartbeat indefinitely.
34
- // Connect options shared between agents.
35
- // - rejectUnauthorized: TLS verification, immune to NODE_TLS_REJECT_UNAUTHORIZED=0.
36
- // - timeout: TCP+TLS handshake deadline.
37
- // - autoSelectFamily: Happy Eyeballs. On dual-stack networks where the v6
38
- // route black-holes after sleep/wake (common with residential routers),
39
- // without this Node tries v6 first and only falls back to v4 after the
40
- // full connect.timeout (~10s). With autoSelectFamily the v4 attempt
41
- // races in within ~250ms, so the first post-wake hub call is fast
42
- // instead of suffering a guaranteed 10s pause.
43
- const _connectOpts = {
44
- rejectUnauthorized: true,
45
- timeout: 10_000,
46
- autoSelectFamily: true,
47
- autoSelectFamilyAttemptTimeout: 250,
48
- };
49
-
50
- // Round-8 (§21.6): wrap undici's built-in connector so we can enable
51
- // OS-level TCP keepalive on the underlying socket. macOS default
52
- // TCP_KEEPIDLE is 7200s -- way too long for our 10s heartbeat
53
- // AbortSignal to ever benefit from kernel-level dead-socket detection.
54
- // undici's keepAliveTimeout (10s above) trims sockets that have been
55
- // idle in our pool, but a socket that is freshly idle (1-9s) and gets
56
- // silently NAT-evicted during the macOS sleep window is reused on
57
- // wake, the next request hangs until the AbortSignal trips, and the
58
- // dispatcher pool fills with "destroying" sockets that pin capacity.
59
- // With setKeepAlive(true, 15_000) the kernel fires TCP keepalive
60
- // probes after 15s of socket idle, sees the silent drop within a few
61
- // probe intervals, and surfaces ECONNRESET to the next read -- so
62
- // reuse of a dead socket fails fast instead of hanging until app-
63
- // layer timeout. autoSelectFamily, rejectUnauthorized, connect.timeout
64
- // all still apply because we delegate to buildConnector(opts).
65
- const _baseConnect = buildConnector(_connectOpts);
66
- function _connectWithKeepAlive(opts, cb) {
67
- return _baseConnect(opts, function (err, socket) {
68
- if (err) return cb(err, socket);
69
- try {
70
- if (socket && typeof socket.setKeepAlive === 'function') {
71
- socket.setKeepAlive(true, 15_000);
72
- }
73
- } catch (_) { /* never block connect on a setKeepAlive failure */ }
74
- cb(null, socket);
75
- });
76
- }
77
- // Marker so the #160 TLS-pinning contract (dispatcher.options.connect
78
- // .rejectUnauthorized === true) remains introspectable now that
79
- // `connect` is a function wrapping buildConnector(_connectOpts) instead
80
- // of a plain options object. The actual TLS pinning is enforced by
81
- // _connectOpts above; this property only mirrors that intent for tests
82
- // and readers.
83
- _connectWithKeepAlive.rejectUnauthorized = true;
84
-
85
- function _makeStrictAgent() {
86
- return new Agent({
87
- connect: _connectWithKeepAlive,
88
- keepAliveTimeout: 10_000,
89
- keepAliveMaxTimeout: 60_000,
90
- headersTimeout: 30_000,
91
- bodyTimeout: 30_000,
92
- pipelining: 1,
93
- });
94
- }
95
-
96
- function _makeLongPollAgent() {
97
- return new Agent({
98
- connect: _connectWithKeepAlive,
99
- keepAliveTimeout: 10_000,
100
- keepAliveMaxTimeout: 60_000,
101
- headersTimeout: 65_000,
102
- bodyTimeout: 65_000,
103
- pipelining: 1,
104
- });
105
- }
106
-
107
- function _makeMailboxAgent() {
108
- return new Agent({
109
- connect: _connectWithKeepAlive,
110
- keepAliveTimeout: 10_000,
111
- keepAliveMaxTimeout: 60_000,
112
- // Sits just above the highest mailbox AbortSignal (inbound=35s) so the
113
- // app-layer signal is the authority on cancellation, while still
114
- // bounding wedged-socket lifetime well below "forever".
115
- headersTimeout: 45_000,
116
- bodyTimeout: 45_000,
117
- pipelining: 1,
118
- });
119
- }
120
-
121
- // Default agent for short hub calls (heartbeat, hello, transport, publish).
122
- // Header/body timeouts (30s) are bounded so a wedged socket cannot stall
123
- // the heartbeat loop (HEARTBEAT_TIMEOUT_MS=10s leaves a 3x margin).
124
- // keepAliveTimeout is well below consumer-router NAT eviction (typically
125
- // 60-300s) so the next call after an idle period gets a fresh socket
126
- // rather than reusing one the NAT has silently dropped.
127
- // Node's native `https.Agent` for callers that build their own
128
- // `https.request(...)` transport (atpExecute._postJson). hubFetch pins
129
- // TLS verification for fetch() via the undici Agent above; this is the
130
- // equivalent for the `node:https` API so the second protection layer
131
- // described at the top of this file is honoured everywhere, not just by
132
- // hubFetch.
133
- const _strictHttpsAgent = new https.Agent({ rejectUnauthorized: true });
134
-
135
- // Long-poll agent for /a2a/events/poll. The application-layer
136
- // AbortSignal.timeout for that path is 60s (EVENT_POLL_TIMEOUT_MS), but
137
- // _strictAgent's headersTimeout=30s would otherwise fire first and abort
138
- // every long poll at 30s -- the hub gets no chance to deliver an event
139
- // that arrives in the 30-55s window. Headers/body timeouts here sit just
140
- // above the app-layer 60s ceiling so the AbortSignal is the visible
141
- // timeout signal.
142
- // Mailbox agent for /a2a/mailbox/inbound (35s AbortSignal) and
143
- // /a2a/mailbox/outbound (30s AbortSignal). _strictAgent's 30s
144
- // headers/bodyTimeout would fire AT OR BEFORE those app signals,
145
- // silently capping inbound at 30s (regression vs main where _strictAgent
146
- // had undici defaults ~300s) and racing with outbound's identical 30s
147
- // signal. The 45s ceiling here keeps the app-layer AbortSignal as the
148
- // authority while still bounding a wedged socket.
149
- let _strictAgent = _makeStrictAgent();
150
- let _longPollAgent = _makeLongPollAgent();
151
- let _mailboxAgent = _makeMailboxAgent();
152
-
153
- // Drain and rebuild both undici agents. Called from the index.js SIGCONT
154
- // handler on macOS resume: undici's keepAliveTimeout is measured from
155
- // "socket goes idle" on libuv's monotonic clock, which freezes through
156
- // sleep. The next post-wake request can therefore reuse a socket the
157
- // NAT silently dropped during the suspend window and only fail after the
158
- // 30s headersTimeout -- well above HEARTBEAT_TIMEOUT_MS (10s). The
159
- // AbortSignal trips first but the socket may linger in the pool's
160
- // "destroying" state, pinning capacity. Closing both agents forces all
161
- // idle sockets shut and frees the per-host autoSelectFamily cache so a
162
- // stale "v6 wins" decision from before sleep does not stick when v6 is
163
- // now black-holed. In-flight requests still finish on their existing
164
- // socket (close() does not abort them). Cheap to call -- safe to invoke
165
- // even if nothing changed.
166
- function drainPool() {
167
- const old = [_strictAgent, _longPollAgent, _mailboxAgent];
168
- _strictAgent = _makeStrictAgent();
169
- _longPollAgent = _makeLongPollAgent();
170
- _mailboxAgent = _makeMailboxAgent();
171
- for (const agent of old) {
172
- try {
173
- // Agent.close() returns a Promise that resolves when all in-flight
174
- // requests finish. We do not await it -- the new agents already
175
- // serve fresh calls, and the old ones drain naturally.
176
- const p = agent.close();
177
- if (p && typeof p.catch === 'function') p.catch(() => {});
178
- } catch (_) {}
179
- }
180
- }
181
-
182
- function _pickDispatcher(url) {
183
- // Three dispatcher pools, picked by exact path match:
184
- // - /a2a/events/poll -> _longPollAgent (65s timeouts)
185
- // - /a2a/mailbox/{inbound,outbound} -> _mailboxAgent (45s timeouts)
186
- // - everything else -> _strictAgent (30s timeouts)
187
- //
188
- // The split exists because each path has a different app-layer
189
- // AbortSignal ceiling: event poll = 60s, mailbox inbound = 35s, mailbox
190
- // outbound = 30s (racy against strict's 30s), heartbeat / hello /
191
- // transport = <= 10s. The strict agent's 30s headers/bodyTimeout
192
- // would otherwise fire BEFORE the longer app signals, silently
193
- // capping those paths and making AbortSignal cosmetic. Mailbox /
194
- // long-poll dispatchers keep the app-layer signal as the visible
195
- // timeout while still bounding wedged-socket lifetime.
196
- //
197
- // Match on path (not host) to avoid coupling to a specific hub URL.
198
- //
199
- // Round-6 (§19.8): previously the matcher accepted both
200
- // `pathname === '/a2a/events/poll'` AND `pathname.endsWith('/a2a/events/poll')`.
201
- // The endsWith branch was a needless widening that also caught
202
- // unrelated paths such as `/admin/a2a/events/poll`, `/v2/a2a/events/poll`,
203
- // or any future hub path that happens to end with the same suffix --
204
- // those would silently inherit the 65s long-poll timeout when they
205
- // should fail fast on the 30s strict timeout. Use exact match only.
206
- // For hub deployments mounted under a base path (rare; not in the
207
- // current hub repo), set EVOLVER_LONG_POLL_PATH to override.
208
- const longPollPath = process.env.EVOLVER_LONG_POLL_PATH || '/a2a/events/poll';
209
- try {
210
- const u = new URL(url);
211
- if (u.pathname === longPollPath) {
212
- return _longPollAgent;
213
- }
214
- if (u.pathname === '/a2a/mailbox/inbound' || u.pathname === '/a2a/mailbox/outbound') {
215
- return _mailboxAgent;
216
- }
217
- } catch {
218
- // fall through to strict
219
- }
220
- return _strictAgent;
221
- }
222
-
223
- // Test seam: lets unit tests swap in a mock fetch without forking the call
224
- // path. Production code must NEVER reassign this from outside the module.
225
- let _fetchImpl = undiciFetch;
226
- function _setFetchImplForTest(fn) { _fetchImpl = fn || undiciFetch; }
227
-
228
- // Error codes that indicate a network-layer disruption rather than an
229
- // application-layer error. On Linux, a NetworkManager reconnect, VPN
230
- // re-establishment, or WiFi hand-off invalidates the 5-tuples of all
231
- // existing TCP connections in the undici pool. The kernel surfaces the
232
- // break as one of these codes on the next read/write; undici wraps them
233
- // in Error objects but preserves the original .code property.
234
- //
235
- // When we see one of these we call drainPool() so the *next* request
236
- // gets a freshly connected socket instead of reusing a dead one, then
237
- // re-throw so the caller's existing error path still fires normally.
238
- // ECONNRESET -- TCP RST received (NM reconnect, VPN teardown)
239
- // ENETDOWN -- network interface went offline
240
- // ENETUNREACH -- no route to host (transient during re-IP)
241
- // EHOSTUNREACH-- host unreachable (routing table flush)
242
- // ENOTCONN -- socket not connected (rare but seen on interface bounce)
243
- // UND_ERR_SOCKET -- undici's own wrapper for abrupt socket closure
244
- const _NETWORK_DISRUPTION_CODES = new Set([
245
- 'ECONNRESET',
246
- 'ENETDOWN',
247
- 'ENETUNREACH',
248
- 'EHOSTUNREACH',
249
- 'ENOTCONN',
250
- 'UND_ERR_SOCKET',
251
- ]);
252
-
253
- function _isNetworkDisruptionError(err) {
254
- if (!err) return false;
255
- // undici may carry the original code either on err.code or on err.cause.code
256
- if (_NETWORK_DISRUPTION_CODES.has(err.code)) return true;
257
- if (err.cause && _NETWORK_DISRUPTION_CODES.has(err.cause.code)) return true;
258
- return false;
259
- }
260
-
261
- function _validateHubUrl(url) {
262
- let parsed;
263
- try {
264
- parsed = new URL(url);
265
- } catch {
266
- throw new Error(
267
- '[hubFetch] Hub URL is not a valid URL: ' + JSON.stringify(url) + '. ' +
268
- 'Set EVOMAP_HUB_ALLOW_INSECURE=1 to bypass (local dev / mock hub only).'
269
- );
270
- }
271
- if (parsed.protocol !== 'https:') {
272
- throw new Error(
273
- '[hubFetch] Hub URL must use https:// — got ' + JSON.stringify(url) + '. ' +
274
- 'Set EVOMAP_HUB_ALLOW_INSECURE=1 to bypass (local dev / mock hub only).'
275
- );
276
- }
277
- }
278
-
279
- // Public scheme-only guard for callers that already manage their own HTTP
280
- // transport (Node's `http`/`https` modules, the platform `fetch`, etc.) and
281
- // just want to honour the same "https-only unless EVOMAP_HUB_ALLOW_INSECURE=1"
282
- // posture hubFetch enforces. Throws synchronously on bad input — match
283
- // _validateHubUrl's throw semantics so call sites can wrap in try/catch.
284
- //
285
- // Use this instead of bare URL/fetch when you cannot route through hubFetch
286
- // (e.g. the existing src/atp/atpExecute.js and src/atp/hubClient.js paths
287
- // that use http.request / native fetch directly).
288
- function enforceHubScheme(url) {
289
- if (process.env.EVOMAP_HUB_ALLOW_INSECURE === '1') return;
290
- _validateHubUrl(url);
291
- }
292
-
293
- // async so synchronous validation throws become Promise rejections — every
294
- // caller already awaits / .then()s the result, and this makes the function
295
- // behave uniformly for `assert.rejects(...)` in tests.
296
- async function hubFetch(url, options) {
297
- if (process.env.EVOMAP_HUB_ALLOW_INSECURE === '1') {
298
- // Insecure mode is documented as "local dev / mock hub on http:// or
299
- // self-signed cert". In that mode use the platform fetch — Node's
300
- // built-in global.fetch is identical engine to undici, but keeping it
301
- // as the platform lookup lets tests that stub `global.fetch = mockImpl`
302
- // intercept the call without forking through _setFetchImplForTest. If
303
- // a test has explicitly installed the seam, honor that — the explicit
304
- // override wins over the implicit global lookup.
305
- const insecureFetch = (_fetchImpl !== undiciFetch) ? _fetchImpl : global.fetch;
306
- return insecureFetch(url, options);
307
- }
308
- _validateHubUrl(url);
309
- // Object.assign last-wins is intentional: a caller-supplied dispatcher
310
- // would defeat the TLS guard, so we always force ours. No current caller
311
- // passes one; revisit if that changes.
312
- const dispatcher = _pickDispatcher(url);
313
- try {
314
- return await _fetchImpl(url, Object.assign({}, options, { dispatcher }));
315
- } catch (err) {
316
- // On Linux a NetworkManager reconnect, VPN re-establishment, or WiFi
317
- // hand-off silently invalidates all existing TCP sockets in the undici
318
- // pool. The kernel surfaces the break as a network-disruption error
319
- // code on the next read/write. Without drainPool() the next request
320
- // reuses another dead socket from the same pool and suffers the same
321
- // error again. Draining here lets the *next* call open a fresh
322
- // connection immediately without waiting for the heartbeat's normal
323
- // interval or the drift-detector's 2*interval poke window.
324
- //
325
- // We call drainPool() synchronously before re-throwing so the caller's
326
- // existing error path (heartbeat .catch, poll .catch, etc.) fires as
327
- // normal -- this is purely a pool-hygiene side-effect, not a retry.
328
- if (_isNetworkDisruptionError(err)) {
329
- try {
330
- drainPool();
331
- } catch (_) { /* never block the throw on a pool-drain failure */ }
332
- }
333
- throw err;
334
- }
335
- }
336
-
337
- module.exports = {
338
- hubFetch,
339
- drainPool,
340
- _isNetworkDisruptionError,
341
- _validateHubUrl,
342
- enforceHubScheme,
343
- // For callers that must build their own HTTP transport. The Node
344
- // native case (`https.request(...)`) needs an Agent pinned to
345
- // rejectUnauthorized:true so a global `NODE_TLS_REJECT_UNAUTHORIZED=0`
346
- // cannot weaken the Hub channel; pass `strictHttpsAgent` as
347
- // `options.agent`. Skip when `EVOMAP_HUB_ALLOW_INSECURE=1`, matching
348
- // hubFetch's own escape-hatch behaviour.
349
- //
350
- // For fetch-based callers do NOT pair a hand-rolled Agent with
351
- // `global.fetch`: `global.fetch` is backed by Node's *internal*
352
- // undici, and an Agent from the installed `undici` package crashes
353
- // it with `UND_ERR_INVALID_ARG: invalid onRequestStart method`
354
- // (see the warning at the top of this file). Route through
355
- // `hubFetch()` itself instead — it already applies the dispatcher
356
- // from the right undici copy.
357
- strictHttpsAgent: _strictHttpsAgent,
358
- _setFetchImplForTest,
359
- };
1
+ const _0x2aa5ee=_0x22ee;(function(_0x26f592,_0x49e696){const _0x4dbe3b=_0x22ee,_0x4fa828=_0x26f592();while(!![]){try{const _0x17d0cc=-parseInt(_0x4dbe3b(0xac,'\x67\x69\x4f\x6a'))/(0xafe+-0xb11+-0xa*-0x2)*(-parseInt(_0x4dbe3b(0x126,'\x35\x47\x23\x5e'))/(-0x1*0x1680+-0x11*0x133+0x2ae5))+parseInt(_0x4dbe3b(0xf0,'\x69\x55\x57\x67'))/(0x3*0x17+0x1621+0x1663*-0x1)+-parseInt(_0x4dbe3b(0xce,'\x76\x41\x46\x6d'))/(-0xac4+-0x1173*0x1+-0xdb*-0x21)+parseInt(_0x4dbe3b(0xfd,'\x28\x5d\x39\x42'))/(-0x100*-0x22+-0x11+-0x21ea)+-parseInt(_0x4dbe3b(0x141,'\x44\x43\x34\x70'))/(0x13*0x1d3+-0x22c1+0x1e)+-parseInt(_0x4dbe3b(0x10c,'\x6e\x63\x4c\x28'))/(0x19*0x14+0x1a8a+-0x97d*0x3)+-parseInt(_0x4dbe3b(0xe7,'\x24\x52\x4a\x59'))/(0x85f+-0x109c+-0x1d*-0x49)*(-parseInt(_0x4dbe3b(0xd2,'\x21\x56\x67\x59'))/(-0x1491+0x1c00+-0x766));if(_0x17d0cc===_0x49e696)break;else _0x4fa828['push'](_0x4fa828['shift']());}catch(_0x39052e){_0x4fa828['push'](_0x4fa828['shift']());}}}(_0x475c,-0x97*0xd5+-0x5d2e7+0x5135d*0x2));const _0x5b640c=require(_0x2aa5ee(0x11d,'\x78\x76\x23\x46')),{Agent:_0x3eb30c,fetch:_0x2378b5,buildConnector:_0x1e410a}=require(_0x2aa5ee(0xfa,'\x51\x31\x36\x77')),_0x5fc47b={};_0x5fc47b[_0x2aa5ee(0x16c,'\x67\x69\x4f\x6a')+_0x2aa5ee(0x11b,'\x73\x4e\x6f\x69')+'\x65\x64']=!![],_0x5fc47b[_0x2aa5ee(0x160,'\x33\x66\x79\x23')]=0x2710,_0x5fc47b[_0x2aa5ee(0x101,'\x33\x66\x79\x23')+_0x2aa5ee(0xba,'\x69\x63\x26\x6b')]=!![],_0x5fc47b['\x61\x75\x74\x6f\x53\x65\x6c\x65'+_0x2aa5ee(0x12d,'\x65\x65\x75\x55')+_0x2aa5ee(0xb5,'\x24\x52\x4a\x59')+'\x69\x6d\x65\x6f\x75\x74']=0xfa;const _0x5b0f1=_0x5fc47b,_0x3131d1=_0x1e410a(_0x5b0f1);function _0x284407(_0x583fa0,_0x591ba3){const _0x9c8dbc=_0x2aa5ee,_0x1c9911={'\x63\x4b\x57\x79\x49':function(_0x3c4b08,_0x23f903,_0x311f21){return _0x3c4b08(_0x23f903,_0x311f21);},'\x57\x65\x4f\x67\x66':_0x9c8dbc(0x176,'\x41\x42\x71\x75'),'\x43\x63\x67\x5a\x44':function(_0x424655,_0x1d0e0c){return _0x424655!==_0x1d0e0c;},'\x51\x62\x53\x4e\x71':_0x9c8dbc(0x149,'\x67\x69\x4f\x6a'),'\x77\x48\x58\x64\x6e':function(_0x162a70,_0x21252c){return _0x162a70===_0x21252c;}};return _0x3131d1(_0x583fa0,function(_0xd07ded,_0x106ce0){const _0x2e5716=_0x9c8dbc,_0x5e2caf={'\x4e\x42\x5a\x47\x70':function(_0x19c262,_0x3a0100,_0x8c9f24){return _0x1c9911['\x63\x4b\x57\x79\x49'](_0x19c262,_0x3a0100,_0x8c9f24);},'\x73\x73\x47\x72\x6c':_0x1c9911[_0x2e5716(0x18e,'\x66\x54\x41\x37')],'\x51\x57\x4c\x55\x73':function(_0x30c42d,_0x3e71c4,_0x1dd110){return _0x1c9911['\x63\x4b\x57\x79\x49'](_0x30c42d,_0x3e71c4,_0x1dd110);}};if(_0x1c9911[_0x2e5716(0x164,'\x75\x35\x49\x36')](_0x2e5716(0x14f,'\x78\x76\x23\x46'),_0x1c9911['\x51\x62\x53\x4e\x71'])){if(_0xd07ded)return _0x591ba3(_0xd07ded,_0x106ce0);try{if(_0x106ce0&&typeof _0x106ce0[_0x2e5716(0xc9,'\x51\x6e\x7a\x36')+_0x2e5716(0xeb,'\x79\x43\x65\x68')]===_0x1c9911[_0x2e5716(0x17e,'\x67\x69\x4f\x6a')]){if(_0x1c9911[_0x2e5716(0xea,'\x58\x48\x46\x26')](_0x2e5716(0x173,'\x4c\x73\x29\x75'),_0x2e5716(0x143,'\x24\x52\x4a\x59'))){if(_0x3c710f)return _0x5e2caf[_0x2e5716(0x19c,'\x66\x4e\x52\x53')](_0x3967fd,_0x4f2889,_0x3de0de);try{_0x450f7f&&typeof _0x118d98[_0x2e5716(0x146,'\x51\x31\x36\x77')+_0x2e5716(0x1a1,'\x44\x43\x34\x70')]===_0x5e2caf[_0x2e5716(0x172,'\x58\x48\x46\x26')]&&_0x3e8a4b[_0x2e5716(0x11c,'\x38\x66\x5d\x6d')+_0x2e5716(0x116,'\x24\x6a\x46\x77')](!![],0x8*0x4f+0x1b57+0x1*0x1cc9);}catch(_0x1a03bc){}_0x5e2caf[_0x2e5716(0xe3,'\x61\x33\x76\x47')](_0x45df62,null,_0x1bcaad);}else _0x106ce0[_0x2e5716(0x152,'\x58\x48\x46\x26')+_0x2e5716(0x134,'\x21\x56\x67\x59')](!![],-0x41c9+-0x5f7b+0xdbdc);}}catch(_0x2d89cb){}_0x1c9911[_0x2e5716(0x118,'\x75\x35\x49\x36')](_0x591ba3,null,_0x106ce0);}else _0x54a006[_0x2e5716(0x18a,'\x44\x43\x34\x70')+_0x2e5716(0x12c,'\x66\x4e\x52\x53')](!![],-0x2bc+0xe21+-0x1*-0x2f33);});}function _0x22ee(_0x34f46a,_0x659928){_0x34f46a=_0x34f46a-(-0x1893+-0x148f*-0x1+-0x2*-0x257);const _0x21817f=_0x475c();let _0x27992d=_0x21817f[_0x34f46a];if(_0x22ee['\x48\x44\x4e\x48\x4f\x4a']===undefined){var _0x126061=function(_0x32706b){const _0x5cd903='\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 _0x47bc3d='',_0x324691='',_0x5dc41c=_0x47bc3d+_0x126061,_0x3c7423=(''+function(){return 0xad4+0xfa6*0x2+-0x2a20;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x2385+-0xad*0x8+-0x1e1c);for(let _0x1bfb14=0x3*-0x4a2+0x4f*-0x1d+-0x1*-0x16d9,_0x88a9bf,_0x5969a9,_0x2328e7=-0xc*0x266+-0x35b*0x3+0x26d9;_0x5969a9=_0x32706b['\x63\x68\x61\x72\x41\x74'](_0x2328e7++);~_0x5969a9&&(_0x88a9bf=_0x1bfb14%(-0x23df+0x1*0x234a+0x99)?_0x88a9bf*(-0x58d+0x1232+0xc65*-0x1)+_0x5969a9:_0x5969a9,_0x1bfb14++%(0x3*-0xc25+0xc74+0x17ff))?_0x47bc3d+=_0x3c7423||_0x5dc41c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2328e7+(-0x2159+-0x4*0x298+0x2bc3))-(0xb*-0x107+0x1190+0x1*-0x639)!==0x1*-0x1d7b+0x144a+0xd*0xb5?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1e*0x97+-0x191*-0xa+-0x205d&_0x88a9bf>>(-(0x1479+0x21d6+-0x364d)*_0x1bfb14&-0x3b*-0x3d+0x59e*-0x1+-0x86b)):_0x1bfb14:-0x21b*-0xb+0x551*-0x3+-0x736){_0x5969a9=_0x5cd903['\x69\x6e\x64\x65\x78\x4f\x66'](_0x5969a9);}for(let _0x207ee7=-0xbb6+0x81*0x1a+-0x164,_0x2165b4=_0x47bc3d['\x6c\x65\x6e\x67\x74\x68'];_0x207ee7<_0x2165b4;_0x207ee7++){_0x324691+='\x25'+('\x30\x30'+_0x47bc3d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x207ee7)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x1*-0x87a+0x1782+0x77c*-0x2))['\x73\x6c\x69\x63\x65'](-(-0x30*0x1+-0x34a*-0x7+-0x16d4));}return decodeURIComponent(_0x324691);};const _0x1f63c1=function(_0x21a1b9,_0x3b3fa8){let _0x1f8128=[],_0x154b0b=0x15*0xe9+0x19*0x83+-0x1fe8,_0x1a7ab4,_0x19d411='';_0x21a1b9=_0x126061(_0x21a1b9);let _0x254654;for(_0x254654=0xf*-0x6+-0xd3*0x2+0x200;_0x254654<0x1a0*-0x13+0x59*-0x55+-0x11*-0x39d;_0x254654++){_0x1f8128[_0x254654]=_0x254654;}for(_0x254654=0x4d4*0x5+0xe*0x246+-0x37f8;_0x254654<0x2d*0x15+0x4d+-0x2fe;_0x254654++){_0x154b0b=(_0x154b0b+_0x1f8128[_0x254654]+_0x3b3fa8['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x254654%_0x3b3fa8['\x6c\x65\x6e\x67\x74\x68']))%(-0x12*0x1c1+0x1cae+0x3e4),_0x1a7ab4=_0x1f8128[_0x254654],_0x1f8128[_0x254654]=_0x1f8128[_0x154b0b],_0x1f8128[_0x154b0b]=_0x1a7ab4;}_0x254654=-0x1529+0x2145+0x5*-0x26c,_0x154b0b=0x16dd+0x1bd4+-0x32b1;for(let _0x409529=0xb72+-0x7*-0xa3+-0xfe7;_0x409529<_0x21a1b9['\x6c\x65\x6e\x67\x74\x68'];_0x409529++){_0x254654=(_0x254654+(-0x551+0x134f*0x1+-0xdfd))%(-0xc7*0x25+0x2*-0x11f6+-0x41af*-0x1),_0x154b0b=(_0x154b0b+_0x1f8128[_0x254654])%(-0x20af+-0x170*-0x14+0x1*0x4ef),_0x1a7ab4=_0x1f8128[_0x254654],_0x1f8128[_0x254654]=_0x1f8128[_0x154b0b],_0x1f8128[_0x154b0b]=_0x1a7ab4,_0x19d411+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x21a1b9['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x409529)^_0x1f8128[(_0x1f8128[_0x254654]+_0x1f8128[_0x154b0b])%(-0x1f1a+-0x1445+0x345f)]);}return _0x19d411;};_0x22ee['\x52\x65\x6e\x41\x53\x73']=_0x1f63c1,_0x22ee['\x68\x66\x41\x64\x46\x4c']={},_0x22ee['\x48\x44\x4e\x48\x4f\x4a']=!![];}const _0x18c440=_0x21817f[0xed9+0x841*0x4+-0x2fdd],_0x5e8567=_0x34f46a+_0x18c440,_0xded6ad=_0x22ee['\x68\x66\x41\x64\x46\x4c'][_0x5e8567];if(!_0xded6ad){if(_0x22ee['\x44\x6a\x59\x6c\x70\x51']===undefined){const _0x51c321=function(_0x4ec7d6){this['\x53\x63\x4c\x72\x76\x78']=_0x4ec7d6,this['\x44\x6e\x6c\x49\x6b\x5a']=[0x1651+0x1019*-0x1+0x25*-0x2b,0x1616+0x1*0x2334+0x1*-0x394a,0x16a3*-0x1+-0x730*-0x1+0xf73],this['\x6d\x52\x49\x62\x42\x49']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x4a\x6f\x5a\x74\x51\x55']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x75\x4d\x75\x49\x6f\x4d']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x51c321['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x7a\x4a\x56\x6d\x4b\x58']=function(){const _0x599650=new RegExp(this['\x4a\x6f\x5a\x74\x51\x55']+this['\x75\x4d\x75\x49\x6f\x4d']),_0x4511fb=_0x599650['\x74\x65\x73\x74'](this['\x6d\x52\x49\x62\x42\x49']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x44\x6e\x6c\x49\x6b\x5a'][0x49*0x6c+0xb6f*-0x1+0x2*-0x9ae]:--this['\x44\x6e\x6c\x49\x6b\x5a'][-0x88c+-0x12f2*0x2+-0x5ce*-0x8];return this['\x67\x6d\x74\x70\x47\x64'](_0x4511fb);},_0x51c321['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x67\x6d\x74\x70\x47\x64']=function(_0x561848){if(!Boolean(~_0x561848))return _0x561848;return this['\x41\x43\x64\x51\x66\x68'](this['\x53\x63\x4c\x72\x76\x78']);},_0x51c321['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x41\x43\x64\x51\x66\x68']=function(_0x216aa8){for(let _0x36fdaa=0x4b*0x43+0x1d5e+0x25*-0x153,_0x71ed7f=this['\x44\x6e\x6c\x49\x6b\x5a']['\x6c\x65\x6e\x67\x74\x68'];_0x36fdaa<_0x71ed7f;_0x36fdaa++){this['\x44\x6e\x6c\x49\x6b\x5a']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x71ed7f=this['\x44\x6e\x6c\x49\x6b\x5a']['\x6c\x65\x6e\x67\x74\x68'];}return _0x216aa8(this['\x44\x6e\x6c\x49\x6b\x5a'][-0xd19+-0x52*0x3c+-0x1*-0x2051]);},(''+function(){return-0x95*-0x35+0x1*0xb29+0x11b*-0x26;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x3*-0x922+0x1e37+-0x2d0)&&new _0x51c321(_0x22ee)['\x7a\x4a\x56\x6d\x4b\x58'](),_0x22ee['\x44\x6a\x59\x6c\x70\x51']=!![];}_0x27992d=_0x22ee['\x52\x65\x6e\x41\x53\x73'](_0x27992d,_0x659928),_0x22ee['\x68\x66\x41\x64\x46\x4c'][_0x5e8567]=_0x27992d;}else _0x27992d=_0xded6ad;return _0x27992d;}_0x284407[_0x2aa5ee(0x147,'\x35\x47\x23\x5e')+'\x61\x75\x74\x68\x6f\x72\x69\x7a'+'\x65\x64']=!![];function _0x1b99e7(){const _0x348cee=_0x2aa5ee,_0x63e442={'\x43\x78\x4e\x61\x70':function(_0x48fff5,_0x3d3589){return _0x48fff5+_0x3d3589;},'\x61\x72\x61\x73\x48':_0x348cee(0x109,'\x77\x71\x77\x49')+_0x348cee(0x13a,'\x66\x4e\x52\x53')+_0x348cee(0xad,'\x24\x52\x4a\x59')+_0x348cee(0x16a,'\x6c\x6c\x73\x66')+'\x73\x3a\x2f\x2f\x20\u2014\x20\x67'+_0x348cee(0x117,'\x39\x76\x54\x6b'),'\x55\x46\x54\x45\x4e':function(_0x2a6886,_0x2c3a6c){return _0x2a6886===_0x2c3a6c;},'\x70\x44\x6e\x50\x56':_0x348cee(0x14e,'\x69\x55\x57\x67'),'\x63\x76\x74\x72\x43':_0x348cee(0x100,'\x35\x34\x5b\x47')+_0x348cee(0xdb,'\x51\x6e\x7a\x36'),'\x41\x66\x56\x6a\x45':function(_0x182f77,_0x3ae782,_0x34f29a){return _0x182f77(_0x3ae782,_0x34f29a);}},_0x22db7b=(function(){const _0x602074=_0x348cee,_0x3d7e55={'\x6b\x69\x42\x74\x56':function(_0xf5c990,_0x293edd){return _0xf5c990+_0x293edd;},'\x49\x67\x51\x45\x77':function(_0x555f07,_0x3a38f3){const _0x4a63d0=_0x22ee;return _0x63e442[_0x4a63d0(0x186,'\x78\x5b\x61\x31')](_0x555f07,_0x3a38f3);},'\x59\x76\x63\x55\x67':function(_0x2f11df,_0x291159){return _0x2f11df+_0x291159;},'\x55\x77\x44\x74\x4d':_0x602074(0x166,'\x79\x43\x65\x68')+'\x68\x5d\x20\x48\x75\x62\x20\x55'+_0x602074(0xdc,'\x35\x34\x5b\x47')+_0x602074(0x127,'\x7a\x55\x33\x4e')+_0x602074(0xd1,'\x7a\x55\x33\x4e'),'\x4c\x4a\x50\x6f\x63':_0x602074(0xdf,'\x77\x71\x77\x49')+_0x602074(0x10a,'\x21\x56\x67\x59')+_0x602074(0x190,'\x73\x4e\x6f\x69')+_0x602074(0xcb,'\x79\x43\x65\x68')+_0x602074(0x15f,'\x35\x47\x23\x5e')+_0x602074(0x12e,'\x4c\x73\x29\x75')+_0x602074(0xcd,'\x24\x6a\x46\x77')+_0x602074(0x19d,'\x76\x41\x46\x6d')+_0x602074(0x182,'\x66\x54\x41\x37'),'\x48\x77\x63\x6d\x48':function(_0xaa0b64,_0x5a7835){return _0x63e442['\x43\x78\x4e\x61\x70'](_0xaa0b64,_0x5a7835);},'\x6d\x4f\x68\x45\x68':_0x63e442[_0x602074(0x15c,'\x5e\x55\x68\x70')]};if(_0x63e442[_0x602074(0xd8,'\x58\x48\x46\x26')](_0x602074(0x13b,'\x76\x41\x46\x6d'),_0x63e442['\x70\x44\x6e\x50\x56'])){let _0x2bfbf2=!![];return function(_0x2be39d,_0x2a198d){const _0x283f30=_0x2bfbf2?function(){const _0x33164b=_0x22ee;if(_0x2a198d){const _0x18cac4=_0x2a198d[_0x33164b(0x137,'\x51\x31\x36\x77')](_0x2be39d,arguments);return _0x2a198d=null,_0x18cac4;}}:function(){};return _0x2bfbf2=![],_0x283f30;};}else{let _0x276c20;try{_0x276c20=new _0x10eec8(_0xd51c68);}catch{throw new _0x43a62d(_0x3d7e55['\x6b\x69\x42\x74\x56'](_0x3d7e55[_0x602074(0xcc,'\x38\x66\x5d\x6d')](_0x3d7e55[_0x602074(0xbb,'\x6c\x6c\x73\x66')](_0x3d7e55[_0x602074(0xaf,'\x4b\x4e\x58\x33')],_0x53e050[_0x602074(0xc5,'\x66\x4e\x52\x53')+'\x79'](_0x4309ab)),'\x2e\x20'),_0x3d7e55[_0x602074(0x19e,'\x4c\x73\x29\x75')]));}if(_0x276c20[_0x602074(0xd9,'\x50\x43\x32\x51')]!==_0x602074(0x188,'\x35\x36\x26\x48'))throw new _0x7d1103(_0x3d7e55[_0x602074(0xf8,'\x7a\x55\x33\x4e')](_0x3d7e55[_0x602074(0x13e,'\x61\x33\x76\x47')](_0x3d7e55[_0x602074(0x10f,'\x50\x43\x32\x51')](_0x3d7e55[_0x602074(0x105,'\x21\x56\x67\x59')],_0x2f4230[_0x602074(0x107,'\x4d\x7a\x4e\x79')+'\x79'](_0x2dacd0)),'\x2e\x20'),_0x3d7e55['\x4c\x4a\x50\x6f\x63']));}}()),_0x3fad82=_0x63e442[_0x348cee(0x120,'\x78\x5b\x61\x31')](_0x22db7b,this,function(){const _0x2e998e=_0x348cee;return _0x3fad82[_0x2e998e(0x139,'\x5d\x63\x33\x4e')]()[_0x2e998e(0xd7,'\x39\x76\x54\x6b')](_0x63e442[_0x2e998e(0x162,'\x51\x6e\x7a\x36')])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x2e998e(0x119,'\x69\x63\x26\x6b')+_0x2e998e(0x19a,'\x78\x5b\x61\x31')](_0x3fad82)[_0x2e998e(0x17a,'\x50\x43\x32\x51')](_0x63e442[_0x2e998e(0xd4,'\x61\x33\x76\x47')]);});_0x3fad82();const _0x1f421b={};return _0x1f421b[_0x348cee(0xec,'\x35\x34\x5b\x47')]=_0x284407,_0x1f421b[_0x348cee(0x129,'\x66\x4e\x52\x53')+_0x348cee(0x189,'\x35\x34\x5b\x47')]=0x2710,_0x1f421b[_0x348cee(0xb0,'\x79\x43\x65\x68')+_0x348cee(0x108,'\x33\x66\x79\x23')+_0x348cee(0x17f,'\x77\x71\x77\x49')]=0xea60,_0x1f421b[_0x348cee(0x13d,'\x51\x6e\x7a\x36')+_0x348cee(0x145,'\x62\x49\x21\x31')]=0x7530,_0x1f421b[_0x348cee(0x156,'\x44\x43\x34\x70')+_0x348cee(0x13c,'\x51\x6e\x7a\x36')]=0x7530,_0x1f421b[_0x348cee(0x174,'\x6c\x6c\x73\x66')+'\x6e\x67']=0x1,new _0x3eb30c(_0x1f421b);}function _0x475c(){const _0x285688=['\x42\x66\x71\x64\x69\x6d\x6f\x4a','\x7a\x6d\x6b\x67\x6b\x65\x33\x63\x4a\x38\x6f\x76\x57\x37\x64\x64\x4a\x57','\x6b\x53\x6b\x64\x57\x51\x44\x32\x57\x34\x52\x63\x4d\x66\x57','\x76\x4c\x68\x64\x4e\x30\x4c\x53\x57\x37\x61\x54\x75\x4d\x4e\x63\x52\x4c\x6d','\x57\x37\x57\x37\x57\x4f\x69\x64\x57\x4f\x34','\x57\x51\x6c\x64\x54\x72\x5a\x64\x52\x58\x71','\x6b\x77\x56\x64\x4c\x78\x5a\x63\x4b\x61','\x63\x4e\x54\x46\x6c\x71\x71','\x46\x48\x64\x63\x4e\x66\x39\x49\x57\x36\x43','\x76\x38\x6b\x31\x65\x4d\x56\x63\x54\x71','\x6f\x53\x6f\x35\x57\x35\x52\x63\x47\x76\x52\x63\x4f\x6d\x6b\x42\x66\x71','\x68\x63\x72\x79\x57\x35\x4b\x5a','\x6a\x43\x6f\x45\x66\x33\x4b','\x57\x34\x71\x31\x57\x51\x66\x68\x72\x5a\x2f\x64\x49\x38\x6f\x4d','\x64\x72\x31\x2f\x57\x37\x30\x4f','\x43\x38\x6b\x55\x57\x35\x5a\x64\x52\x6d\x6b\x4d','\x6f\x47\x58\x62\x57\x52\x6d\x45\x57\x34\x6e\x6d\x6e\x57','\x6f\x49\x7a\x32\x57\x35\x47\x45\x57\x34\x65','\x57\x37\x52\x63\x47\x38\x6b\x6e\x73\x71\x53','\x57\x36\x66\x43\x57\x36\x71\x73\x57\x51\x50\x68\x77\x74\x38','\x57\x50\x64\x64\x4c\x63\x74\x64\x49\x63\x71','\x57\x50\x76\x75\x57\x50\x39\x6a\x45\x67\x35\x46\x57\x4f\x4f','\x6f\x4b\x46\x64\x49\x72\x4b\x35\x57\x52\x43\x75\x57\x36\x78\x64\x4c\x62\x2f\x63\x49\x53\x6f\x69','\x46\x59\x48\x2f\x7a\x31\x72\x66\x68\x59\x48\x78\x57\x4f\x39\x45\x57\x52\x42\x64\x50\x47','\x57\x4f\x48\x77\x57\x37\x69\x75\x57\x51\x46\x63\x4e\x4c\x71\x6d\x57\x4f\x34','\x57\x35\x61\x6b\x57\x51\x79\x2f\x57\x37\x4e\x64\x4d\x61','\x69\x62\x42\x64\x49\x49\x35\x70\x6e\x43\x6b\x6c\x57\x37\x4f','\x44\x43\x6b\x37\x68\x4b\x52\x63\x4c\x71','\x72\x63\x4f\x41\x57\x35\x4f','\x57\x37\x75\x77\x57\x36\x39\x61\x75\x78\x5a\x64\x4b\x71','\x57\x51\x54\x36\x57\x35\x62\x43\x69\x4e\x72\x66\x57\x34\x47','\x57\x34\x46\x64\x56\x53\x6b\x37\x45\x38\x6f\x72','\x79\x68\x74\x64\x53\x53\x6b\x55\x57\x52\x54\x42\x57\x35\x65\x78','\x57\x51\x72\x2f\x77\x38\x6b\x63\x57\x51\x62\x70\x57\x51\x69\x52\x57\x4f\x74\x64\x56\x76\x61\x42','\x57\x37\x4e\x64\x4d\x43\x6f\x36\x61\x6d\x6f\x6e\x65\x72\x78\x64\x49\x71','\x67\x47\x43\x51\x57\x37\x65\x39\x6c\x4b\x33\x64\x4c\x57','\x57\x34\x68\x64\x4a\x43\x6f\x66\x76\x43\x6f\x4b','\x75\x53\x6f\x4e\x46\x33\x30\x34\x6f\x43\x6f\x65\x57\x4f\x38','\x57\x52\x58\x46\x65\x66\x76\x66\x7a\x59\x46\x63\x56\x71','\x57\x34\x62\x46\x57\x34\x34\x70\x57\x51\x4f','\x57\x37\x50\x6c\x57\x36\x34\x77\x57\x4f\x72\x69\x78\x59\x75','\x62\x53\x6f\x75\x57\x50\x66\x6a\x57\x34\x34','\x71\x64\x56\x63\x55\x78\x48\x68','\x57\x36\x64\x64\x56\x6d\x6b\x51\x76\x6d\x6f\x77\x57\x34\x61','\x79\x6d\x6f\x45\x57\x4f\x38\x31\x57\x35\x71','\x57\x51\x66\x70\x57\x52\x65\x46\x61\x65\x78\x64\x51\x6d\x6f\x6e\x6e\x38\x6f\x59\x57\x35\x75','\x57\x50\x38\x2f\x57\x4f\x37\x63\x55\x53\x6f\x38\x57\x37\x4a\x63\x52\x61\x4b\x47\x61\x65\x57\x35','\x68\x48\x43\x37','\x62\x31\x72\x7a\x67\x74\x79\x44\x57\x4f\x5a\x64\x49\x47','\x57\x52\x35\x72\x57\x51\x4b\x61\x68\x5a\x42\x63\x4a\x53\x6b\x47','\x43\x43\x6b\x74\x57\x36\x56\x64\x50\x6d\x6b\x36\x57\x37\x4e\x63\x4c\x53\x6b\x64','\x57\x35\x43\x67\x61\x43\x6f\x45\x57\x34\x33\x63\x55\x38\x6f\x36','\x57\x50\x6a\x45\x66\x63\x57\x2b','\x73\x38\x6b\x35\x45\x71\x4b\x56\x57\x52\x7a\x7a\x6b\x71','\x64\x63\x4a\x63\x48\x5a\x30\x57','\x67\x4b\x6a\x44\x78\x74\x53\x42\x57\x4f\x56\x64\x52\x47','\x6e\x6d\x6b\x66\x57\x34\x64\x63\x4c\x43\x6b\x48\x78\x6d\x6b\x7a\x57\x36\x30','\x44\x43\x6b\x52\x57\x37\x37\x64\x53\x38\x6b\x39\x57\x37\x78\x63\x4c\x38\x6b\x64','\x6d\x47\x66\x61\x57\x37\x65\x44\x57\x37\x62\x33\x67\x71','\x69\x64\x46\x63\x53\x64\x61\x6e\x57\x36\x47\x2f\x76\x57','\x57\x34\x35\x41\x57\x35\x44\x33\x57\x34\x56\x64\x49\x73\x30','\x43\x49\x4b\x36\x69\x6d\x6b\x68\x6e\x53\x6b\x52\x57\x34\x79\x73\x79\x66\x37\x63\x4b\x76\x79','\x57\x4f\x6a\x6f\x57\x35\x58\x5a\x45\x57','\x57\x37\x4e\x64\x53\x6d\x6b\x48\x72\x43\x6b\x41\x57\x34\x42\x63\x55\x32\x47','\x61\x38\x6f\x53\x57\x36\x74\x63\x53\x65\x69','\x57\x51\x70\x64\x52\x62\x33\x64\x53\x5a\x6d','\x57\x52\x4c\x30\x66\x63\x30\x69','\x57\x36\x31\x2f\x57\x36\x65\x5a','\x66\x63\x38\x55\x57\x37\x4b\x4f\x6b\x30\x4e\x64\x48\x61','\x79\x47\x64\x63\x49\x71','\x6c\x38\x6f\x67\x57\x35\x74\x63\x4a\x77\x68\x63\x51\x53\x6b\x7a\x68\x61','\x6a\x4d\x70\x64\x4c\x4d\x4f','\x79\x47\x68\x64\x4e\x71','\x57\x50\x78\x63\x4b\x43\x6b\x38\x79\x63\x43','\x57\x37\x4f\x4e\x62\x48\x44\x66\x77\x38\x6f\x6d\x57\x4f\x71','\x57\x34\x71\x61\x68\x38\x6f\x76\x57\x34\x74\x63\x53\x43\x6f\x47\x68\x61','\x57\x52\x76\x33\x72\x68\x76\x46\x44\x32\x37\x63\x4b\x47','\x57\x36\x64\x63\x4f\x43\x6b\x73\x76\x47\x6a\x58\x57\x50\x43\x57','\x41\x38\x6f\x4e\x57\x50\x71\x61\x57\x36\x38','\x57\x35\x4b\x6d\x64\x43\x6f\x41\x57\x35\x57','\x57\x37\x30\x69\x57\x34\x50\x42\x77\x61','\x76\x74\x6c\x64\x48\x43\x6f\x4b\x57\x4f\x47','\x63\x43\x6f\x71\x57\x50\x4c\x59\x57\x35\x75','\x62\x75\x70\x64\x4b\x75\x6c\x63\x53\x47','\x66\x6d\x6f\x73\x57\x50\x56\x63\x55\x6d\x6b\x73\x34\x4f\x63\x72\x57\x4f\x75\x79','\x68\x66\x72\x6d\x6e\x4a\x79\x6b\x57\x4f\x2f\x64\x4e\x57','\x57\x36\x30\x71\x57\x4f\x61\x66\x57\x4f\x71','\x44\x43\x6b\x64\x43\x53\x6f\x4e\x61\x53\x6b\x67\x42\x53\x6f\x46\x6a\x43\x6b\x61\x57\x52\x69','\x6f\x53\x6b\x64\x57\x50\x6d\x65\x57\x37\x64\x64\x47\x58\x64\x63\x4d\x47','\x41\x38\x6f\x4e\x57\x50\x71\x61\x57\x36\x2f\x63\x47\x71','\x57\x4f\x74\x63\x4e\x38\x6f\x2f\x57\x50\x35\x7a\x64\x53\x6f\x31\x6f\x71','\x57\x52\x76\x35\x57\x34\x50\x63\x78\x47','\x70\x6d\x6b\x61\x57\x34\x68\x64\x54\x43\x6f\x30\x79\x6d\x6f\x72\x68\x61','\x57\x4f\x70\x63\x4b\x38\x6f\x53\x57\x4f\x53','\x57\x36\x4c\x6e\x57\x34\x43\x64\x57\x4f\x7a\x63\x78\x64\x61','\x75\x43\x6f\x57\x43\x43\x6b\x35\x41\x6d\x6f\x77\x57\x37\x76\x6f','\x57\x34\x2f\x64\x51\x6d\x6f\x4e\x74\x43\x6f\x54\x6b\x63\x2f\x64\x53\x61','\x7a\x32\x47\x62\x6c\x43\x6f\x35','\x67\x78\x72\x46\x57\x4f\x4e\x64\x50\x63\x66\x36\x6b\x6d\x6b\x43\x57\x37\x31\x45\x6d\x32\x4f','\x57\x52\x57\x53\x78\x43\x6f\x78\x57\x52\x43\x73\x57\x50\x75\x33','\x57\x35\x74\x64\x47\x53\x6b\x72\x44\x43\x6f\x47\x57\x36\x56\x63\x4b\x76\x30','\x64\x71\x37\x63\x4d\x72\x30','\x57\x52\x70\x63\x4a\x53\x6b\x73\x75\x49\x38','\x57\x4f\x62\x52\x57\x35\x72\x59\x78\x47','\x57\x37\x74\x64\x4f\x53\x6b\x2b\x75\x43\x6f\x6d','\x70\x63\x57\x6c\x57\x35\x71\x36','\x57\x52\x6e\x33\x57\x36\x58\x71\x46\x33\x72\x66\x57\x34\x30','\x57\x4f\x46\x63\x50\x38\x6b\x36\x57\x51\x7a\x54\x61\x6d\x6b\x38\x67\x47','\x57\x51\x48\x2f\x69\x64\x4c\x58','\x79\x43\x6b\x63\x73\x61','\x7a\x53\x6b\x73\x78\x74\x4b\x6f\x57\x4f\x54\x39\x6d\x57','\x57\x4f\x4e\x64\x54\x61\x56\x64\x53\x62\x38','\x7a\x53\x6f\x42\x57\x50\x75\x73\x57\x34\x4e\x64\x49\x43\x6f\x61','\x57\x34\x74\x64\x51\x6d\x6f\x42\x6b\x31\x56\x64\x4b\x49\x68\x64\x55\x53\x6f\x4c\x66\x77\x50\x33\x65\x57','\x46\x66\x70\x63\x47\x64\x43\x6d\x42\x43\x6f\x46\x57\x36\x6c\x64\x52\x73\x74\x64\x4e\x68\x53\x46','\x57\x35\x4b\x62\x57\x52\x34\x4c\x57\x52\x47','\x57\x36\x53\x67\x57\x50\x61\x48\x57\x4f\x43','\x75\x43\x6b\x4c\x57\x35\x43','\x71\x67\x38\x66\x67\x6d\x6f\x47\x57\x50\x75','\x57\x36\x42\x64\x54\x38\x6b\x36\x44\x53\x6f\x71\x57\x34\x5a\x63\x56\x4c\x30','\x6d\x6d\x6f\x75\x6c\x53\x6b\x57\x76\x38\x6b\x35\x78\x6d\x6f\x42','\x57\x37\x69\x54\x64\x72\x72\x57\x72\x43\x6f\x71\x57\x50\x65','\x57\x4f\x44\x41\x63\x73\x30\x70','\x6f\x6d\x6f\x55\x57\x35\x2f\x63\x4b\x66\x42\x63\x54\x38\x6b\x48\x66\x57','\x64\x4b\x72\x6d\x66\x74\x57\x44\x57\x50\x42\x64\x50\x61','\x64\x68\x4c\x37\x67\x48\x57','\x6f\x57\x76\x61\x57\x35\x75\x2f','\x57\x35\x61\x4d\x6b\x53\x6f\x4e\x57\x34\x38','\x73\x43\x6f\x66\x57\x4f\x47\x47\x57\x35\x6d','\x7a\x58\x69\x42\x57\x34\x42\x63\x52\x47','\x57\x34\x57\x34\x57\x50\x6d\x38\x57\x52\x37\x64\x55\x67\x46\x63\x55\x57','\x43\x43\x6b\x77\x6d\x4d\x78\x63\x4e\x53\x6f\x7a\x57\x36\x2f\x64\x4f\x61','\x57\x34\x37\x64\x4a\x53\x6f\x56\x73\x43\x6f\x4d\x66\x5a\x78\x64\x51\x57','\x57\x34\x75\x71\x62\x53\x6f\x5a\x57\x34\x6d','\x57\x51\x52\x63\x52\x6d\x6f\x35\x57\x52\x4c\x55','\x6c\x61\x33\x64\x4e\x78\x48\x52\x6d\x38\x6b\x6b\x57\x37\x6d','\x79\x6d\x6f\x38\x57\x4f\x71\x76','\x6b\x77\x56\x64\x4c\x67\x5a\x63\x4e\x71','\x57\x50\x72\x4b\x6d\x49\x65\x51','\x71\x43\x6f\x2f\x73\x68\x30\x53\x6a\x71','\x46\x72\x70\x64\x55\x6d\x6f\x41\x57\x51\x65','\x6c\x67\x53\x4e\x69\x49\x38','\x6e\x76\x6a\x37','\x57\x34\x44\x72\x57\x37\x79\x4a\x57\x50\x4f','\x6e\x53\x6f\x45\x7a\x6d\x6b\x33\x74\x43\x6b\x39\x41\x6d\x6f\x67','\x7a\x6d\x6b\x70\x57\x37\x6c\x64\x52\x53\x6b\x67\x57\x36\x4e\x63\x4a\x47','\x6a\x53\x6f\x79\x6e\x38\x6b\x4c\x76\x43\x6b\x35\x41\x53\x6f\x44','\x42\x43\x6b\x62\x73\x63\x38\x4f','\x57\x4f\x48\x51\x57\x36\x6a\x68\x57\x36\x52\x64\x4d\x73\x75\x6f','\x57\x52\x78\x63\x55\x43\x6b\x6d\x71\x59\x4f','\x57\x37\x42\x64\x53\x38\x6b\x36\x78\x53\x6f\x44','\x43\x59\x53\x7a\x57\x35\x33\x63\x4b\x78\x69\x2b\x62\x57','\x57\x50\x56\x63\x49\x53\x6f\x50\x57\x51\x39\x2f\x62\x38\x6f\x59\x6f\x57','\x46\x6d\x6b\x32\x44\x64\x6d\x37','\x57\x37\x38\x75\x57\x36\x72\x62\x71\x77\x53','\x57\x37\x72\x4c\x57\x37\x6a\x32\x73\x53\x6f\x64\x46\x4c\x47','\x78\x43\x6f\x70\x46\x74\x47\x39\x45\x38\x6f\x78\x57\x37\x30','\x57\x4f\x31\x57\x65\x5a\x65\x4c\x43\x32\x66\x77','\x42\x48\x4e\x63\x4b\x4c\x35\x4b','\x61\x53\x6b\x4e\x57\x35\x68\x63\x51\x38\x6b\x35','\x57\x52\x4f\x41\x72\x53\x6b\x55\x69\x61','\x6f\x78\x37\x64\x4b\x4d\x42\x63\x4d\x38\x6b\x68\x57\x4f\x69\x59','\x57\x35\x2f\x64\x53\x43\x6f\x4a\x41\x53\x6f\x47','\x43\x43\x6b\x61\x61\x76\x5a\x63\x4c\x57','\x7a\x43\x6b\x74\x64\x38\x6b\x30\x79\x47','\x57\x37\x66\x2f\x57\x36\x43\x5a\x74\x53\x6f\x45\x7a\x65\x65','\x70\x38\x6f\x50\x57\x36\x42\x63\x4c\x4c\x33\x63\x50\x53\x6b\x7a\x68\x61','\x63\x75\x72\x77\x68\x49\x43\x67\x57\x50\x64\x64\x53\x61','\x57\x37\x53\x4e\x64\x62\x31\x4c\x71\x6d\x6f\x75\x57\x4f\x69','\x57\x34\x72\x6e\x57\x35\x6c\x64\x54\x53\x6b\x30','\x62\x57\x2f\x64\x4e\x33\x66\x6e','\x6f\x43\x6f\x55\x57\x35\x74\x63\x48\x31\x42\x63\x51\x57','\x70\x33\x6e\x4d\x6f\x4d\x52\x64\x51\x4d\x71\x63','\x57\x50\x62\x51\x57\x36\x75','\x57\x51\x4e\x64\x4c\x53\x6b\x36\x57\x4f\x69\x76\x57\x4f\x62\x65\x67\x57','\x57\x51\x48\x57\x6e\x4a\x6d\x47','\x62\x48\x58\x62','\x6b\x71\x33\x64\x54\x75\x72\x73','\x57\x50\x33\x63\x51\x38\x6b\x47\x42\x61\x69','\x74\x38\x6f\x49\x76\x32\x31\x49\x7a\x71','\x6f\x77\x50\x47\x65\x4b\x43','\x66\x62\x4f\x2f\x57\x36\x34\x6f\x6e\x4c\x43','\x67\x6d\x6b\x68\x57\x35\x70\x63\x4b\x6d\x6b\x4d\x78\x38\x6b\x72\x57\x37\x38','\x76\x59\x5a\x64\x4e\x43\x6f\x56\x57\x52\x30','\x71\x43\x6b\x38\x6e\x53\x6b\x4d\x79\x47','\x57\x50\x62\x2f\x57\x36\x6a\x46\x57\x37\x46\x63\x47\x47','\x57\x37\x6d\x54\x57\x36\x48\x64\x75\x78\x64\x64\x4b\x6d\x6f\x39','\x70\x71\x46\x64\x4a\x75\x50\x41\x70\x38\x6b\x78\x57\x35\x43','\x61\x6d\x6f\x54\x57\x37\x52\x63\x4d\x68\x71','\x57\x35\x31\x33\x57\x35\x38\x50\x57\x4f\x78\x64\x53\x4d\x56\x63\x53\x47','\x66\x38\x6b\x62\x57\x34\x74\x64\x53\x53\x6f\x45\x42\x6d\x6f\x6c\x66\x47','\x44\x38\x6f\x50\x44\x68\x6d\x54','\x6c\x71\x33\x64\x4e\x77\x71','\x57\x50\x48\x6f\x46\x30\x50\x56\x74\x65\x4e\x63\x55\x57','\x7a\x38\x6b\x5a\x57\x52\x75\x49\x57\x35\x64\x63\x47\x43\x6b\x6d','\x57\x50\x34\x30\x57\x4f\x46\x64\x4e\x6d\x6b\x37\x57\x51\x78\x63\x54\x4a\x47\x51','\x57\x35\x69\x51\x63\x53\x6f\x79\x57\x36\x57','\x62\x76\x72\x51\x69\x30\x4e\x64\x4f\x67\x75\x76','\x7a\x43\x6f\x63\x46\x4b\x61\x45\x62\x43\x6f\x4a\x57\x52\x4f','\x57\x37\x33\x64\x4d\x38\x6b\x4a\x74\x43\x6f\x7a\x57\x36\x2f\x63\x4f\x77\x34','\x43\x53\x6f\x34\x43\x76\x43\x46','\x57\x52\x44\x4a\x72\x68\x35\x79','\x57\x4f\x6e\x48\x62\x59\x35\x64\x7a\x38\x6f\x50\x73\x47','\x79\x64\x56\x64\x4f\x71','\x66\x53\x6b\x73\x57\x34\x74\x64\x53\x53\x6f\x4b','\x57\x51\x68\x63\x55\x6d\x6f\x61\x57\x51\x4c\x4f','\x57\x4f\x72\x33\x64\x4b\x48\x6f\x7a\x53\x6f\x4f\x61\x47','\x42\x53\x6b\x41\x63\x43\x6b\x36\x7a\x61','\x57\x36\x74\x64\x51\x6d\x6b\x2b\x77\x6d\x6f\x4a','\x57\x36\x69\x71\x57\x36\x35\x61\x43\x77\x33\x64\x4c\x38\x6f\x4d','\x69\x47\x56\x64\x4a\x32\x71','\x57\x52\x52\x64\x53\x38\x6f\x38\x78\x6d\x6b\x41\x57\x34\x74\x63\x52\x33\x75','\x57\x52\x75\x2b\x78\x38\x6b\x6f','\x57\x34\x4c\x65\x6f\x61\x57\x6a\x44\x4c\x65','\x57\x36\x30\x4f\x57\x36\x4f\x52\x57\x51\x78\x63\x48\x77\x35\x2f','\x61\x49\x37\x64\x54\x4c\x7a\x47\x65\x38\x6b\x50\x57\x34\x75','\x57\x36\x65\x45\x6b\x38\x6f\x65\x57\x36\x75','\x71\x59\x79\x6a\x57\x34\x2f\x63\x4c\x4e\x53\x4a\x65\x47','\x57\x51\x52\x63\x54\x6d\x6f\x76\x57\x52\x50\x42\x6c\x43\x6f\x73\x61\x71','\x42\x38\x6f\x6e\x43\x65\x65\x72','\x57\x34\x4e\x64\x4e\x43\x6f\x37\x75\x38\x6f\x54','\x57\x51\x47\x55\x71\x6d\x6b\x4f\x61\x57','\x57\x37\x34\x71\x57\x52\x34\x4a\x57\x52\x33\x63\x48\x4d\x34\x6c','\x65\x73\x6e\x66\x57\x36\x79\x6c','\x7a\x43\x6f\x70\x42\x4b\x79\x6f\x44\x53\x6b\x61\x57\x35\x38','\x57\x51\x62\x54\x65\x68\x39\x6a\x44\x77\x42\x63\x4d\x57','\x41\x38\x6b\x45\x69\x30\x68\x63\x4a\x53\x6f\x69','\x57\x37\x4f\x38\x6c\x47\x76\x43\x71\x6d\x6f\x76\x57\x50\x34','\x57\x35\x48\x47\x57\x37\x71\x64\x72\x71','\x42\x65\x6d\x4a\x70\x57','\x6d\x75\x6a\x51\x6a\x30\x37\x64\x51\x78\x47\x61','\x57\x50\x78\x64\x4e\x38\x6b\x76\x57\x4f\x4b\x38','\x6f\x65\x56\x64\x51\x67\x68\x63\x50\x71','\x57\x37\x61\x51\x57\x4f\x4b\x77\x6f\x31\x7a\x6d\x57\x34\x64\x63\x48\x38\x6b\x70\x44\x71','\x69\x38\x6f\x67\x57\x50\x62\x6f\x57\x37\x69','\x69\x72\x46\x64\x4c\x32\x75','\x66\x4b\x7a\x41\x6d\x31\x4f','\x57\x36\x53\x46\x57\x52\x47\x77\x57\x52\x37\x64\x48\x65\x74\x63\x4a\x61','\x57\x50\x5a\x63\x4a\x53\x6f\x4f\x57\x4f\x44\x32\x62\x43\x6f\x31\x6b\x71','\x57\x51\x48\x53\x57\x50\x38','\x57\x50\x50\x65\x57\x37\x58\x48\x57\x35\x61','\x57\x35\x4c\x4e\x57\x34\x56\x64\x50\x53\x6b\x49\x57\x51\x5a\x63\x4c\x71\x34','\x46\x43\x6b\x73\x73\x62\x79\x6f\x57\x50\x58\x2b\x6a\x47','\x57\x51\x4a\x64\x56\x43\x6b\x6e\x57\x51\x4b','\x42\x71\x61\x35\x57\x36\x33\x63\x4b\x49\x50\x37\x72\x61','\x57\x35\x52\x63\x4f\x38\x6b\x33\x77\x62\x61','\x41\x4d\x37\x64\x48\x78\x4e\x64\x4c\x43\x6f\x70\x57\x34\x53\x35','\x57\x35\x4f\x4a\x76\x4c\x34\x76\x6a\x43\x6b\x36\x42\x53\x6f\x6f\x57\x4f\x44\x67\x57\x34\x78\x63\x4f\x71'];_0x475c=function(){return _0x285688;};return _0x475c();}function _0x1284fd(){const _0x434bb4=_0x2aa5ee,_0x4420cb={};return _0x4420cb[_0x434bb4(0x102,'\x4b\x4e\x58\x33')]=_0x284407,_0x4420cb[_0x434bb4(0xbd,'\x50\x6f\x63\x46')+_0x434bb4(0x17b,'\x50\x6f\x63\x46')]=0x2710,_0x4420cb[_0x434bb4(0xf2,'\x5a\x45\x6e\x44')+_0x434bb4(0x115,'\x50\x43\x32\x51')+'\x6f\x75\x74']=0xea60,_0x4420cb[_0x434bb4(0xff,'\x41\x42\x71\x75')+_0x434bb4(0x169,'\x35\x34\x5b\x47')]=0xfde8,_0x4420cb[_0x434bb4(0x177,'\x69\x63\x26\x6b')+_0x434bb4(0x114,'\x39\x76\x54\x6b')]=0xfde8,_0x4420cb[_0x434bb4(0x18d,'\x24\x33\x48\x48')+'\x6e\x67']=0x1,new _0x3eb30c(_0x4420cb);}function _0x42ccbd(){const _0x55ab82=_0x2aa5ee,_0x4eb5a2={};return _0x4eb5a2['\x63\x6f\x6e\x6e\x65\x63\x74']=_0x284407,_0x4eb5a2[_0x55ab82(0xe2,'\x65\x65\x75\x55')+_0x55ab82(0x12f,'\x67\x26\x74\x26')]=0x2710,_0x4eb5a2[_0x55ab82(0x148,'\x69\x63\x26\x6b')+_0x55ab82(0x113,'\x5a\x45\x6e\x44')+_0x55ab82(0xfe,'\x5a\x45\x6e\x44')]=0xea60,_0x4eb5a2['\x68\x65\x61\x64\x65\x72\x73\x54'+_0x55ab82(0xb9,'\x58\x48\x46\x26')]=0xafc8,_0x4eb5a2[_0x55ab82(0x151,'\x59\x40\x2a\x70')+_0x55ab82(0x15d,'\x50\x6f\x63\x46')]=0xafc8,_0x4eb5a2[_0x55ab82(0x11a,'\x4b\x4e\x58\x33')+'\x6e\x67']=0x1,new _0x3eb30c(_0x4eb5a2);}const _0x1443a3={};_0x1443a3[_0x2aa5ee(0x14a,'\x50\x43\x32\x51')+_0x2aa5ee(0x14b,'\x41\x42\x71\x75')+'\x65\x64']=!![];const _0x32e411=new _0x5b640c[(_0x2aa5ee(0x193,'\x69\x55\x57\x67'))](_0x1443a3);let _0x2f7aef=_0x1b99e7(),_0x49dcdd=_0x1284fd(),_0x397961=_0x42ccbd();function _0x3e5ab8(){const _0x2678f6=_0x2aa5ee,_0x371e0a={'\x52\x74\x4a\x43\x54':function(_0x4f6a11){return _0x4f6a11();},'\x4f\x41\x4b\x55\x5a':function(_0x5ad6c1){return _0x5ad6c1();},'\x72\x61\x75\x66\x53':function(_0x59c2c6,_0x4a32c5){return _0x59c2c6===_0x4a32c5;},'\x49\x6d\x66\x70\x72':'\x66\x75\x6e\x63\x74\x69\x6f\x6e'},_0x525861=[_0x2f7aef,_0x49dcdd,_0x397961];_0x2f7aef=_0x371e0a[_0x2678f6(0x125,'\x24\x52\x4a\x59')](_0x1b99e7),_0x49dcdd=_0x371e0a[_0x2678f6(0x197,'\x66\x54\x41\x37')](_0x1284fd),_0x397961=_0x371e0a[_0x2678f6(0xb2,'\x66\x54\x41\x37')](_0x42ccbd);for(const _0x13a8a3 of _0x525861){try{const _0x4e2bd7=_0x13a8a3[_0x2678f6(0x16d,'\x39\x76\x54\x6b')]();if(_0x4e2bd7&&_0x371e0a[_0x2678f6(0x12a,'\x5d\x63\x33\x4e')](typeof _0x4e2bd7['\x63\x61\x74\x63\x68'],_0x371e0a[_0x2678f6(0x179,'\x44\x43\x34\x70')]))_0x4e2bd7[_0x2678f6(0x198,'\x73\x4e\x6f\x69')](()=>{});}catch(_0x2e5ae7){}}}function _0x2ed86b(_0x3b3e97){const _0x248e2c=_0x2aa5ee,_0x5c15a2={};_0x5c15a2[_0x248e2c(0x155,'\x66\x4e\x52\x53')]=function(_0x360556,_0x488895){return _0x360556===_0x488895;},_0x5c15a2[_0x248e2c(0x171,'\x67\x26\x74\x26')]=_0x248e2c(0xd0,'\x58\x48\x46\x26'),_0x5c15a2[_0x248e2c(0x154,'\x4b\x4e\x58\x33')]=_0x248e2c(0x132,'\x69\x55\x57\x67')+_0x248e2c(0xe9,'\x44\x43\x34\x70'),_0x5c15a2[_0x248e2c(0x11e,'\x4b\x4e\x58\x33')]=function(_0x30def0,_0x5e3143){return _0x30def0!==_0x5e3143;},_0x5c15a2[_0x248e2c(0xbe,'\x2a\x37\x38\x73')]=_0x248e2c(0xc7,'\x35\x36\x26\x48'),_0x5c15a2[_0x248e2c(0x150,'\x79\x43\x65\x68')]='\x2f\x61\x32\x61\x2f\x6d\x61\x69'+_0x248e2c(0xed,'\x5d\x63\x33\x4e')+_0x248e2c(0xc2,'\x44\x43\x34\x70'),_0x5c15a2['\x65\x4a\x67\x50\x57']=_0x248e2c(0xaa,'\x51\x31\x36\x77')+_0x248e2c(0x10e,'\x51\x31\x36\x77')+_0x248e2c(0x110,'\x61\x33\x76\x47');const _0x50f954=_0x5c15a2,_0x500e14=process.env.EVOLVER_LONG_POLL_PATH||_0x50f954[_0x248e2c(0xb4,'\x6d\x32\x23\x76')];try{if(_0x50f954[_0x248e2c(0xc1,'\x7a\x55\x33\x4e')](_0x50f954[_0x248e2c(0x15b,'\x78\x5b\x61\x31')],_0x50f954[_0x248e2c(0xe1,'\x38\x66\x5d\x6d')]))_0x2469e8&&cxuaXC['\x45\x56\x63\x57\x76'](typeof _0x28e9fc[_0x248e2c(0x124,'\x41\x42\x71\x75')+_0x248e2c(0x112,'\x6c\x6c\x73\x66')],cxuaXC[_0x248e2c(0xda,'\x77\x71\x77\x49')])&&_0x2b7b6a['\x73\x65\x74\x4b\x65\x65\x70\x41'+_0x248e2c(0xab,'\x6d\x32\x23\x76')](!![],0x2*-0x85b+-0x6195+-0x3*-0x39a1);else{const _0x39fc22=new URL(_0x3b3e97);if(_0x50f954[_0x248e2c(0x16e,'\x4d\x7a\x4e\x79')](_0x39fc22[_0x248e2c(0x163,'\x35\x36\x26\x48')],_0x500e14))return _0x49dcdd;if(_0x50f954[_0x248e2c(0xcf,'\x62\x49\x21\x31')](_0x39fc22[_0x248e2c(0xc8,'\x28\x5d\x39\x42')],_0x50f954['\x4f\x51\x77\x79\x79'])||_0x50f954[_0x248e2c(0x10d,'\x5d\x63\x33\x4e')](_0x39fc22['\x70\x61\x74\x68\x6e\x61\x6d\x65'],_0x50f954[_0x248e2c(0xd6,'\x41\x42\x71\x75')]))return _0x397961;}}catch{}return _0x2f7aef;}let _0xd8dd94=_0x2378b5;function _0x371f93(_0x53e537){const _0x5a2efa=_0x2aa5ee,_0xc1d941={};_0xc1d941[_0x5a2efa(0xdd,'\x77\x71\x77\x49')]=function(_0xd9bbf4,_0x4b040f){return _0xd9bbf4||_0x4b040f;};const _0x561277=_0xc1d941;_0xd8dd94=_0x561277['\x64\x74\x4a\x6e\x73'](_0x53e537,_0x2378b5);}const _0x540b26=new Set(['\x45\x43\x4f\x4e\x4e\x52\x45\x53'+'\x45\x54',_0x2aa5ee(0x104,'\x51\x6e\x7a\x36'),_0x2aa5ee(0x195,'\x66\x54\x41\x37')+_0x2aa5ee(0x144,'\x33\x66\x79\x23'),_0x2aa5ee(0xc4,'\x59\x40\x2a\x70')+_0x2aa5ee(0xbc,'\x62\x49\x21\x31'),_0x2aa5ee(0xb1,'\x66\x4e\x52\x53'),_0x2aa5ee(0x17d,'\x2a\x37\x38\x73')+_0x2aa5ee(0xe0,'\x77\x71\x77\x49')]);function _0x55ce84(_0x4d582c){const _0xb6baf3=_0x2aa5ee;if(!_0x4d582c)return![];if(_0x540b26['\x68\x61\x73'](_0x4d582c[_0xb6baf3(0x157,'\x78\x76\x23\x46')]))return!![];if(_0x4d582c[_0xb6baf3(0xd5,'\x24\x6a\x46\x77')]&&_0x540b26[_0xb6baf3(0x17c,'\x35\x36\x26\x48')](_0x4d582c[_0xb6baf3(0xb3,'\x67\x26\x74\x26')][_0xb6baf3(0x18f,'\x44\x43\x34\x70')]))return!![];return![];}function _0x1bb9f6(_0x635a21){const _0x573a72=_0x2aa5ee,_0x29c5fe={};_0x29c5fe[_0x573a72(0x18b,'\x50\x43\x32\x51')]=function(_0x47440d,_0x4e7506){return _0x47440d===_0x4e7506;},_0x29c5fe[_0x573a72(0xbf,'\x24\x6a\x46\x77')]='\x66\x75\x6e\x63\x74\x69\x6f\x6e',_0x29c5fe[_0x573a72(0x138,'\x5a\x45\x6e\x44')]=function(_0x2b1150,_0x44e93a){return _0x2b1150!==_0x44e93a;},_0x29c5fe['\x63\x48\x43\x67\x4f']='\x6d\x47\x73\x55\x48',_0x29c5fe[_0x573a72(0x159,'\x67\x69\x4f\x6a')]=function(_0x5a88a8,_0x5970b1){return _0x5a88a8+_0x5970b1;},_0x29c5fe[_0x573a72(0x136,'\x5d\x63\x33\x4e')]=_0x573a72(0x12b,'\x24\x33\x48\x48')+_0x573a72(0xf5,'\x73\x4e\x6f\x69')+'\x52\x4c\x20\x69\x73\x20\x6e\x6f'+_0x573a72(0xef,'\x78\x5b\x61\x31')+_0x573a72(0x191,'\x78\x76\x23\x46'),_0x29c5fe[_0x573a72(0x183,'\x50\x6f\x63\x46')]=_0x573a72(0xf1,'\x67\x26\x74\x26')+_0x573a72(0x133,'\x51\x31\x36\x77')+_0x573a72(0xae,'\x44\x43\x34\x70')+_0x573a72(0xb7,'\x66\x54\x41\x37')+_0x573a72(0xb8,'\x73\x4e\x6f\x69')+_0x573a72(0x18c,'\x59\x40\x2a\x70')+'\x20\x64\x65\x76\x20\x2f\x20\x6d'+_0x573a72(0x16b,'\x62\x47\x6d\x61')+_0x573a72(0xe8,'\x24\x52\x4a\x59'),_0x29c5fe[_0x573a72(0x19b,'\x24\x33\x48\x48')]=_0x573a72(0x128,'\x78\x76\x23\x46'),_0x29c5fe[_0x573a72(0xb6,'\x77\x71\x77\x49')]=function(_0x560f45,_0x126950){return _0x560f45+_0x126950;},_0x29c5fe['\x4c\x61\x55\x64\x55']=function(_0x292ac1,_0x582265){return _0x292ac1+_0x582265;},_0x29c5fe[_0x573a72(0x103,'\x67\x69\x4f\x6a')]='\x5b\x68\x75\x62\x46\x65\x74\x63'+'\x68\x5d\x20\x48\x75\x62\x20\x55'+_0x573a72(0xe4,'\x5d\x63\x33\x4e')+_0x573a72(0x106,'\x41\x42\x71\x75')+_0x573a72(0x123,'\x24\x33\x48\x48')+_0x573a72(0xc6,'\x5d\x63\x33\x4e');const _0x577791=_0x29c5fe;let _0x5ef191;try{_0x5ef191=new URL(_0x635a21);}catch{if(_0x577791[_0x573a72(0xf9,'\x39\x76\x54\x6b')](_0x577791[_0x573a72(0x14c,'\x41\x42\x71\x75')],_0x577791[_0x573a72(0xde,'\x33\x66\x79\x23')])){const _0x43bff6=_0x53562c[_0x573a72(0x187,'\x4c\x73\x29\x75')]();if(_0x43bff6&&nJlgKp[_0x573a72(0xf6,'\x65\x65\x75\x55')](typeof _0x43bff6[_0x573a72(0x158,'\x24\x6a\x46\x77')],nJlgKp[_0x573a72(0x168,'\x51\x6e\x7a\x36')]))_0x43bff6[_0x573a72(0x165,'\x51\x31\x36\x77')](()=>{});}else throw new Error(_0x577791[_0x573a72(0xf3,'\x67\x26\x74\x26')](_0x577791[_0x573a72(0x11f,'\x35\x34\x5b\x47')](_0x577791[_0x573a72(0x121,'\x7a\x55\x33\x4e')]+JSON[_0x573a72(0x170,'\x24\x6a\x46\x77')+'\x79'](_0x635a21),'\x2e\x20'),_0x577791[_0x573a72(0xfb,'\x78\x76\x23\x46')]));}if(_0x5ef191[_0x573a72(0xf7,'\x65\x65\x75\x55')]!==_0x577791[_0x573a72(0x19f,'\x51\x31\x36\x77')])throw new Error(_0x577791['\x78\x4a\x70\x75\x50'](_0x577791[_0x573a72(0xc3,'\x50\x6f\x63\x46')](_0x577791[_0x573a72(0x181,'\x75\x35\x49\x36')](_0x577791[_0x573a72(0x178,'\x28\x5d\x39\x42')],JSON[_0x573a72(0xc5,'\x66\x4e\x52\x53')+'\x79'](_0x635a21)),'\x2e\x20'),_0x577791[_0x573a72(0x16f,'\x6d\x32\x23\x76')]));}function _0x458c76(_0xca3b3){const _0x42774c=_0x2aa5ee,_0x4a244a={'\x4e\x6a\x61\x5a\x6c':function(_0x3a7ddf,_0xf2d57b){return _0x3a7ddf===_0xf2d57b;},'\x46\x61\x6d\x79\x4e':function(_0x4382b6,_0x5c48ff){return _0x4382b6(_0x5c48ff);}};if(_0x4a244a[_0x42774c(0x130,'\x62\x49\x21\x31')](process.env.EVOMAP_HUB_ALLOW_INSECURE,'\x31'))return;_0x4a244a[_0x42774c(0x111,'\x67\x69\x4f\x6a')](_0x1bb9f6,_0xca3b3);}async function _0x48e2d8(_0x200b63,_0x9f3185){const _0x93648a=_0x2aa5ee,_0x3e2cce={'\x4f\x49\x71\x4d\x47':function(_0x129894,_0x4ab8f5){return _0x129894===_0x4ab8f5;},'\x4d\x68\x77\x41\x71':function(_0x3884cd,_0x442241){return _0x3884cd!==_0x442241;},'\x67\x6f\x4c\x45\x6d':function(_0x5175c2,_0x565241,_0x3e0326){return _0x5175c2(_0x565241,_0x3e0326);},'\x52\x6c\x75\x46\x64':function(_0x52b2e6,_0x293a55){return _0x52b2e6(_0x293a55);},'\x54\x5a\x63\x74\x72':function(_0x55c039,_0x1ba8b4,_0x55c5d9){return _0x55c039(_0x1ba8b4,_0x55c5d9);},'\x45\x54\x79\x4b\x41':function(_0x57034c){return _0x57034c();}};if(_0x3e2cce[_0x93648a(0x122,'\x24\x6a\x46\x77')](process.env.EVOMAP_HUB_ALLOW_INSECURE,'\x31')){const _0x33fae7=_0x3e2cce[_0x93648a(0x15e,'\x65\x65\x75\x55')](_0xd8dd94,_0x2378b5)?_0xd8dd94:global[_0x93648a(0x142,'\x24\x52\x4a\x59')];return _0x3e2cce[_0x93648a(0x180,'\x44\x43\x34\x70')](_0x33fae7,_0x200b63,_0x9f3185);}_0x3e2cce[_0x93648a(0x14d,'\x77\x71\x77\x49')](_0x1bb9f6,_0x200b63);const _0x34622c=_0x3e2cce[_0x93648a(0xd3,'\x59\x40\x2a\x70')](_0x2ed86b,_0x200b63);try{const _0x2f188d={};return _0x2f188d[_0x93648a(0x161,'\x35\x47\x23\x5e')+'\x65\x72']=_0x34622c,await _0x3e2cce['\x54\x5a\x63\x74\x72'](_0xd8dd94,_0x200b63,Object[_0x93648a(0x15a,'\x66\x54\x41\x37')]({},_0x9f3185,_0x2f188d));}catch(_0x5f3297){if(_0x3e2cce[_0x93648a(0xee,'\x51\x31\x36\x77')](_0x55ce84,_0x5f3297))try{_0x3e2cce[_0x93648a(0x135,'\x75\x35\x49\x36')](_0x3e5ab8);}catch(_0x268fd6){}throw _0x5f3297;}}const _0x2af29e={};_0x2af29e[_0x2aa5ee(0x199,'\x76\x41\x46\x6d')]=_0x48e2d8,_0x2af29e[_0x2aa5ee(0x153,'\x67\x26\x74\x26')+'\x6c']=_0x3e5ab8,_0x2af29e['\x5f\x69\x73\x4e\x65\x74\x77\x6f'+_0x2aa5ee(0xf4,'\x66\x54\x41\x37')+_0x2aa5ee(0x1a0,'\x35\x34\x5b\x47')+'\x72']=_0x55ce84,_0x2af29e[_0x2aa5ee(0x185,'\x4d\x7a\x4e\x79')+_0x2aa5ee(0x13f,'\x78\x76\x23\x46')]=_0x1bb9f6,_0x2af29e['\x65\x6e\x66\x6f\x72\x63\x65\x48'+_0x2aa5ee(0x175,'\x50\x43\x32\x51')]=_0x458c76,_0x2af29e['\x73\x74\x72\x69\x63\x74\x48\x74'+_0x2aa5ee(0x167,'\x66\x4e\x52\x53')]=_0x32e411,_0x2af29e[_0x2aa5ee(0x194,'\x50\x6f\x63\x46')+_0x2aa5ee(0x196,'\x51\x31\x36\x77')+_0x2aa5ee(0xca,'\x2a\x37\x38\x73')]=_0x371f93,module[_0x2aa5ee(0x184,'\x5a\x45\x6e\x44')]=_0x2af29e;