@ikyyofc/gemini-cli 2.0.7 → 2.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -22,11 +22,14 @@ import {
22
22
  PasteTransform, restorePaste,
23
23
  enableBracketedPaste, disableBracketedPaste
24
24
  } from "./src/input.js";
25
+ import { setupGlobalProxy, proxyStatus, setProxyEnabled } from "./src/utils/proxy.js";
26
+ import { Spinner } from "./src/utils/spinner.js";
25
27
 
26
28
  // ─────────────────────────────────────────────────────────────────
27
29
  // Bootstrap
28
30
  // ─────────────────────────────────────────────────────────────────
29
31
  ensureGlobalDir();
32
+ setupGlobalProxy(); // aktifkan rotasi proxy sebelum request apapun
30
33
 
31
34
  let extensions = loadExtensions();
32
35
  let memoryLoaded = [];
@@ -81,13 +84,20 @@ function cleanup() {
81
84
  disableBracketedPaste();
82
85
  try { if (process.stdin.isTTY) process.stdin.setRawMode(false); } catch {}
83
86
  }
84
- process.on("exit", cleanup);
87
+ process.on("exit", cleanup);
85
88
  process.on("SIGTERM", () => { cleanup(); process.exit(0); });
86
89
 
90
+ // When terminal is resized (or focus returns on some terminals),
91
+ // only redraw prompt if we are NOT currently processing
92
+ process.on("SIGWINCH", () => { if (!processing) showPrompt(); });
93
+
87
94
  // ─────────────────────────────────────────────────────────────────
88
95
  // Prompt
89
96
  // ─────────────────────────────────────────────────────────────────
90
97
  function showPrompt() {
98
+ // Never redraw prompt while a request is in flight
99
+ if (processing) return;
100
+
91
101
  const mode = agentMode ? chalk.hex("#4EC9B0")("agent") : chalk.dim("chat");
92
102
  const yolo = autoApprove ? chalk.red(" yolo") : "";
93
103
  const file = pendingFile ? chalk.yellow(` +${path.basename(pendingPath)}`) : "";
@@ -127,29 +137,25 @@ async function send(rawLine) {
127
137
  const res = await runAgentLoop(userText, history, {
128
138
  systemInstruction: sysInstruction(),
129
139
  autoApprove,
130
- maxIterations: 5000,
131
140
  });
132
141
  if (res?.finalResponse) {
133
142
  history.push({ role: "user", content: userText });
134
143
  history.push({ role: "assistant", content: res.finalResponse });
135
144
  }
136
145
  } else {
137
- const { default: ora } = await import("ora");
138
- const sp = ora({
139
- text: "thinking…", spinner: "dots", color: "cyan",
140
- prefixText: " ", discardStdin: false
141
- }).start();
146
+ const sp = new Spinner();
142
147
  const msgs = [];
143
148
  if (sysInstruction()) msgs.push({ role: "system", content: sysInstruction() });
144
149
  msgs.push(...history, { role: "user", content: userText });
150
+ sp.start("thinking…", "#4A9EFF");
145
151
  try {
146
152
  const t0 = Date.now();
147
153
  const reply = await chat(msgs, pendingFile || null);
148
- sp.succeed(chalk.dim(`done (${((Date.now()-t0)/1000).toFixed(1)}s)`));
154
+ sp.succeed(`done ${((Date.now()-t0)/1000).toFixed(1)}s`);
149
155
  history.push({ role: "user", content: userText }, { role: "assistant", content: reply });
150
156
  printAssistant(reply);
151
157
  } catch (e) {
152
- sp.fail("failed");
158
+ sp.fail(e.message);
153
159
  printError(e.message);
154
160
  }
155
161
  }
@@ -275,13 +281,35 @@ async function handleCommand(input) {
275
281
  catch (e) { printError(e.message); }
276
282
  break;
277
283
 
278
- case "/model":
284
+ case "/model": {
285
+ const px = proxyStatus();
279
286
  printInfo(`model gemini-pro-latest`);
280
287
  printInfo(`tools ${agentMode ? "on (native function calling)" : "off"}`);
281
288
  printInfo(`yolo ${autoApprove ? "on" : "off"}`);
282
289
  printInfo(`memory ${memoryLoaded.length} file(s) · extensions: ${extensions.length}`);
290
+ printInfo(`proxy ${px.available}/${px.total} available · ${px.blocked} blocked · ${px.enabled ? "on" : "off"}`);
283
291
  printInfo(`config ${GLOBAL_DIR}`);
284
292
  break;
293
+ }
294
+
295
+ case "/proxy": {
296
+ const px = proxyStatus();
297
+ const sub = tokens[1];
298
+ if (sub === "off") {
299
+ setProxyEnabled(false);
300
+ printInfo("proxy rotation off — direct connection");
301
+ } else if (sub === "on") {
302
+ setProxyEnabled(true);
303
+ printSuccess("proxy rotation on");
304
+ } else {
305
+ // Show status
306
+ printInfo(`status ${px.enabled ? "on" : "off"}`);
307
+ printInfo(`available ${px.available} / ${px.total}`);
308
+ printInfo(`blocked ${px.blocked} (auto-unblock setelah 15 menit)`);
309
+ printInfo(`usage /proxy on | /proxy off`);
310
+ }
311
+ break;
312
+ }
285
313
 
286
314
  case "/exit": case "/quit":
287
315
  cleanup(); console.log(""); process.exit(0); break;
package/package.json CHANGED
@@ -1,25 +1,15 @@
1
1
  {
2
2
  "name": "@ikyyofc/gemini-cli",
3
- "version": "2.0.7",
4
- "description": "AI CLI Agent powered by Gemini your own terminal assistant",
3
+ "version": "2.0.8",
4
+ "description": "AI Agent CLI native function calling · GEMINI.md context · extensions",
5
5
  "type": "module",
6
- "main": "index.js",
7
- "bin": {
8
- "gemini": "./index.js"
9
- },
10
- "scripts": {
11
- "start": "node index.js",
12
- "dev": "node --watch index.js"
13
- },
6
+ "bin": { "gemini": "./index.js" },
7
+ "scripts": { "start": "node index.js" },
14
8
  "dependencies": {
15
9
  "axios": "^1.7.9",
16
10
  "chalk": "^5.3.0",
17
- "cli-spinners": "^2.9.2",
18
11
  "file-type": "^19.6.0",
19
12
  "ora": "^8.1.1",
20
- "readline": "^1.3.0",
21
- "marked": "^12.0.0",
22
- "marked-terminal": "^7.1.0",
23
- "minimist": "^1.2.8"
13
+ "toml": "^3.0.0"
24
14
  }
25
- }
15
+ }
package/src/agent.js CHANGED
@@ -1,117 +1,136 @@
1
- // src/agent.js — ReAct agent loop using NATIVE Gemini function calling
1
+ // src/agent.js — ReAct agent loop, native Gemini function calling
2
2
  import chalk from "chalk";
3
- import ora from "ora";
4
- import { callGemini } from "./gemini.js";
5
- import { GEMINI_TOOLS, executeTool } from "./tools.js";
6
- import { printAssistant, printError, printWarning, printToolCall, printToolResult } from "./renderer.js";
7
-
8
- /**
9
- * Run the agent loop until the model gives a final text answer (no more tool calls).
10
- *
11
- * Native function calling flow:
12
- * 1. Send contents + tools (functionDeclarations) to Gemini
13
- * 2. Response parts may contain: { functionCall: { name, args } }
14
- * 3. Execute the tool → get result
15
- * 4. Append model turn (with functionCall) + user turn (with functionResponse)
16
- * 5. Repeat until response has only text parts → done
17
- */
3
+ import { callGemini } from "./gemini.js";
4
+ import { GEMINI_TOOLS, FUNCTION_DECLARATIONS, executeTool } from "./tools.js";
5
+ import { Spinner } from "./utils/spinner.js";
6
+ import {
7
+ printAssistant, printError, printWarning,
8
+ printToolCall, printToolResult,
9
+ printStepHeader, printStepFooter,
10
+ } from "./renderer.js";
11
+
12
+ const TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
13
+
14
+ // ─────────────────────────────────────────────────────────────────
15
+ // System prompt
16
+ // ─────────────────────────────────────────────────────────────────
17
+ function buildSystemPrompt(extra = "") {
18
+ const toolList = FUNCTION_DECLARATIONS.map(t => `- ${t.name}: ${t.description}`).join("\n");
19
+ return `You are an autonomous AI coding agent running in the user's terminal. You have full access to their filesystem and shell through tools.
20
+
21
+ ## CORE RULE — NEVER ASK, ALWAYS ACT
22
+
23
+ You MUST use tools to complete tasks. You are NEVER allowed to:
24
+ - Ask the user to run a command themselves
25
+ - Ask the user to write or edit any code themselves
26
+ - Say "you can run...", "try running...", "create a file...", "add this code to..."
27
+ - Give instructions instead of taking action
28
+
29
+ If you need to run something → use run_shell.
30
+ If you need to read a file → use read_file first.
31
+ If you need to create/edit a file → use write_file or patch_file.
32
+ If something fails → diagnose and retry automatically, never ask user.
33
+
34
+ ## WORKFLOW
35
+ 1. EXPLORE — read existing structure/files before acting
36
+ 2. ACT — use tools to complete the task fully
37
+ 3. VERIFY — run/test after changes to confirm it works
38
+ 4. REPORT — brief summary of what was done
39
+
40
+ ## TOOLS
41
+ ${toolList}
42
+
43
+ ## RULES
44
+ - Always read files before editing them
45
+ - Use patch_file for targeted edits (safer than full rewrite)
46
+ - Verify code works by running it after changes
47
+ - If a command fails, fix it yourself and retry
48
+ - Only ask the user if the request is genuinely ambiguous
49
+ - Current working directory: ${process.cwd()}
50
+ - Platform: ${process.platform}
51
+
52
+ ${extra ? `## EXTRA INSTRUCTIONS\n${extra}` : ""}`.trim();
53
+ }
54
+
55
+ // ─────────────────────────────────────────────────────────────────
56
+ // Agent loop
57
+ // ─────────────────────────────────────────────────────────────────
18
58
  export async function runAgentLoop(userMessage, history, {
19
59
  systemInstruction = null,
20
60
  autoApprove = false,
21
- maxIterations = 5000,
22
61
  } = {}) {
23
62
 
24
- // Build initial message list
25
- const messages = [
26
- ...history,
27
- { role: "user", content: userMessage }
28
- ];
63
+ const fullSystem = buildSystemPrompt(systemInstruction ?? "");
64
+ const messages = [...history, { role: "user", content: userMessage }];
65
+ const spinner = new Spinner();
66
+ const deadline = Date.now() + TIMEOUT_MS;
67
+ let iteration = 0;
29
68
 
30
- let iteration = 0;
69
+ while (true) {
70
+ if (Date.now() > deadline) {
71
+ spinner.stop();
72
+ printWarning("timeout: 10 menit tercapai, agent dihentikan");
73
+ return { finalResponse: null, iterations: iteration };
74
+ }
31
75
 
32
- while (iteration < maxIterations) {
33
76
  iteration++;
34
77
 
35
- // ── Call Gemini API with tools ──────────────────────────
36
- const spinner = ora({
37
- text: chalk.dim(iteration === 1 ? "thinking…" : `step ${iteration}…`),
38
- spinner: "dots",
39
- color: "cyan",
40
- prefixText: " ",
41
- discardStdin: false, // prevent ora from pausing stdin after stop
42
- }).start();
78
+ // ── Animated spinner while waiting for LLM ─────────────────
79
+ spinner.start(
80
+ iteration === 1 ? "thinking…" : `thinking… (step ${iteration})`,
81
+ "#4A9EFF"
82
+ );
43
83
 
44
84
  let parts;
45
85
  try {
46
- const res = await callGemini({ messages, tools: GEMINI_TOOLS, systemInstruction });
86
+ const res = await callGemini({ messages, tools: GEMINI_TOOLS, systemInstruction: fullSystem });
47
87
  parts = res.parts;
48
- spinner.stop();
49
- clearLine();
88
+ spinner.stop(); // clear line silently
50
89
  } catch (err) {
51
- spinner.fail(chalk.hex("#F44747")("API error"));
90
+ spinner.fail(err.message);
52
91
  printError(err.message);
53
- printError(JSON.stringify(err.response.data, null, 2));
54
92
  return null;
55
93
  }
56
94
 
57
- // ── Separate text parts from functionCall parts ─────────
58
- const textParts = parts.filter(p => p.text != null);
59
- const callParts = parts.filter(p => p.functionCall != null);
60
-
61
- // Print any accompanying text (model thinking aloud)
95
+ const textParts = parts.filter(p => p.text != null);
96
+ const callParts = parts.filter(p => p.functionCall != null);
62
97
  const textContent = textParts.map(p => p.text).join("").trim();
63
- if (textContent && callParts.length > 0) {
64
- process.stdout.write(
65
- chalk.dim(" … " + textContent.replace(/\n/g, "\n ")) + "\n"
66
- );
67
- }
68
98
 
69
- // ── No tool calls final answer ────────────────────────
99
+ // ── Final answer no more tool calls ─────────────────────
70
100
  if (callParts.length === 0) {
71
- const final = textParts.map(p => p.text).join("").trim();
72
- // Close the tool section if it was opened
73
- if (iteration > 1) {
74
- process.stdout.write(
75
- chalk.hex("#4A9EFF")(" ╰") +
76
- chalk.hex("#555566")("─".repeat(47)) + "\n"
77
- );
78
- }
79
- if (final) printAssistant(final);
80
- return { finalResponse: final, iterations: iteration };
101
+ if (textContent) printAssistant(textContent);
102
+ return { finalResponse: textContent, iterations: iteration };
81
103
  }
82
104
 
83
- // ── Execute each tool call ───────────────────────────────
84
- messages.push({ role: "model", parts });
85
-
86
- // Print tool section header on first iteration
87
- if (iteration === 1) {
105
+ // ── Model reasoning text (before tool block) ───────────────
106
+ if (textContent) {
88
107
  process.stdout.write(
89
- "\n" + chalk.hex("#4A9EFF")(" ╭─ working") +
90
- chalk.hex("#555566")(" " + "─".repeat(36)) + "\n"
108
+ chalk.hex("#4A4A5E")(" ") +
109
+ chalk.hex("#7A7A9A").italic(textContent.split("\n")[0].slice(0, 72)) +
110
+ "\n"
91
111
  );
92
112
  }
93
113
 
94
- const responseParts = [];
114
+ // ── Step block — fresh per iteration ──────────────────────
115
+ printStepHeader(iteration);
116
+ messages.push({ role: "model", parts });
95
117
 
118
+ const responseParts = [];
96
119
  for (const part of callParts) {
97
120
  const { name, args } = part.functionCall;
98
- printToolCall(name, args);
121
+
122
+ // Animate the tool name while it runs
123
+ spinner.start(name + "…", "#FFD080");
124
+ printToolCall(name, args ?? {});
125
+ spinner.stop();
99
126
 
100
127
  const result = await executeTool(name, args ?? {}, { autoApprove });
101
128
  printToolResult(result);
102
129
 
103
- responseParts.push({
104
- functionResponse: { name, response: result }
105
- });
130
+ responseParts.push({ functionResponse: { name, response: result } });
106
131
  }
107
132
 
133
+ printStepFooter();
108
134
  messages.push({ role: "user", parts: responseParts });
109
135
  }
110
-
111
- printWarning(`Max iterations (${maxIterations}) reached.`);
112
- return { finalResponse: null, iterations: iteration };
113
- }
114
-
115
- function clearLine() {
116
- if (process.stdout.clearLine) { process.stdout.clearLine(0); process.stdout.cursorTo(0); }
117
136
  }
package/src/extensions.js CHANGED
@@ -67,7 +67,7 @@ export function getExtensionContextDirs(extensions) {
67
67
  return extensions.map(e => e.path);
68
68
  }
69
69
 
70
- /** Build all custom commands from: extensions + ~/.gemini/commands/** */
70
+ /** Build all custom commands from extensions + ~/.gemini/commands/** */
71
71
  export async function loadCustomCommands(extensions) {
72
72
  const cmds = {}; // "namespace:name" → { description, prompt, source }
73
73
 
@@ -192,4 +192,4 @@ export async function updateExtension(name) {
192
192
  } catch (e) {
193
193
  return { error: e.message };
194
194
  }
195
- }
195
+ }
@@ -0,0 +1,119 @@
1
+ // src/gemini.js — Gemini API client with native function calling
2
+ import axios from "axios";
3
+ import { fileTypeFromBuffer } from "file-type";
4
+
5
+ const CONFIG = {
6
+ URL: "https://us-central1-gemmy-ai-bdc03.cloudfunctions.net/gemini",
7
+ MODEL: "gemini-pro-latest",
8
+ HEADERS: {
9
+ "User-Agent": "okhttp/5.3.2",
10
+ "Accept-Encoding": "gzip",
11
+ "content-type": "application/json; charset=UTF-8"
12
+ }
13
+ };
14
+
15
+ const SUPPORTED_MIMES = new Set([
16
+ "image/jpeg","image/png","image/gif","image/webp","image/heic","image/heif",
17
+ "video/mp4","video/mpeg","video/mov","video/avi","video/x-flv","video/mpg",
18
+ "video/webm","video/wmv","video/3gpp",
19
+ "audio/wav","audio/mp3","audio/aiff","audio/aac","audio/ogg","audio/flac",
20
+ "audio/mpeg","audio/ogg; codecs=opus",
21
+ "application/pdf","text/plain","text/html","text/css","text/javascript",
22
+ "text/x-typescript","text/csv","text/markdown","text/x-python",
23
+ "application/json","application/xml","application/rtf"
24
+ ]);
25
+
26
+ async function getToken() {
27
+ const { data } = await axios.post(
28
+ "https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=AIzaSyAxof8_SbpDcww38NEQRhNh0Pzvbphh-IQ",
29
+ { clientType: "CLIENT_TYPE_ANDROID" },
30
+ { headers: {
31
+ "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 12; SM-S9280 Build/AP3A.240905.015.A2)",
32
+ "Content-Type": "application/json",
33
+ "X-Android-Package":"com.jetkite.gemmy",
34
+ "X-Android-Cert": "037CD2976D308B4EFD63EC63C48DC6E7AB7E5AF2",
35
+ "X-Firebase-GMPID": "1:652803432695:android:c4341db6033e62814f33f2"
36
+ }}
37
+ );
38
+ return data.idToken;
39
+ }
40
+
41
+ /**
42
+ * Core API call — supports:
43
+ * - plain chat (messages only)
44
+ * - file attachment (fileBuffer)
45
+ * - native function calling (tools = [{ functionDeclarations: [...] }])
46
+ * - function responses in history (parts with functionCall / functionResponse)
47
+ */
48
+ export async function callGemini({ messages = [], fileBuffer = null, tools = null, systemInstruction = null } = {}) {
49
+ const token = await getToken();
50
+
51
+ // Separate system message
52
+ const sysMsg = messages.find(m => m.role === "system");
53
+ const sysText = systemInstruction
54
+ ?? (sysMsg ? (typeof sysMsg.content === "string" ? sysMsg.content : sysMsg.parts?.[0]?.text ?? "") : null);
55
+
56
+ // Build contents array — support both {role,content} and {role,parts} formats
57
+ const contents = messages
58
+ .filter(m => m.role !== "system")
59
+ .map(m => {
60
+ if (m.parts) {
61
+ // Already in Gemini parts format (used for functionCall / functionResponse turns)
62
+ return { role: m.role === "assistant" ? "model" : m.role, parts: m.parts };
63
+ }
64
+ return {
65
+ role: m.role === "assistant" ? "model" : m.role,
66
+ parts: [{ text: typeof m.content === "string" ? m.content : JSON.stringify(m.content) }]
67
+ };
68
+ });
69
+
70
+ // Attach file to last user message if provided
71
+ if (fileBuffer) {
72
+ const result = await fileTypeFromBuffer(fileBuffer);
73
+ const mimeType = result?.mime ?? "application/octet-stream";
74
+ if (!SUPPORTED_MIMES.has(mimeType)) throw new Error(`Unsupported file type: ${mimeType}`);
75
+ const filePart = { inlineData: { mimeType, data: fileBuffer.toString("base64") } };
76
+ const last = contents[contents.length - 1];
77
+ if (last?.role === "user") last.parts.push(filePart);
78
+ else contents.push({ role: "user", parts: [filePart] });
79
+ }
80
+
81
+ const payload = {
82
+ model: CONFIG.MODEL,
83
+ request: {
84
+ contents,
85
+ generationConfig: {
86
+ thinkingConfig: { thinkingLevel: "HIGH" },
87
+ temperature: 0
88
+ },
89
+ safetySettings: [
90
+ { category: "HARM_CATEGORY_HARASSMENT", threshold: "BLOCK_NONE" },
91
+ { category: "HARM_CATEGORY_HATE_SPEECH", threshold: "BLOCK_NONE" },
92
+ { category: "HARM_CATEGORY_SEXUALLY_EXPLICIT", threshold: "BLOCK_NONE" },
93
+ { category: "HARM_CATEGORY_DANGEROUS_CONTENT", threshold: "BLOCK_NONE" }
94
+ ],
95
+ // ── Native function calling ──────────────────────────────────────
96
+ ...(tools?.length && { tools }),
97
+ // ── System instruction ───────────────────────────────────────────
98
+ ...(sysText && { systemInstruction: { role: "user", parts: [{ text: sysText }] } })
99
+ },
100
+ stream: false
101
+ };
102
+
103
+ const { data } = await axios.post(CONFIG.URL, payload, {
104
+ headers: { ...CONFIG.HEADERS, authorization: `Bearer ${token}` }
105
+ });
106
+
107
+ if (!data?.candidates?.length) throw new Error("No response candidates from API");
108
+
109
+ const candidate = data.candidates[0];
110
+ const parts = candidate.content?.parts ?? [];
111
+
112
+ return { parts, candidate, raw: data };
113
+ }
114
+
115
+ /** Convenience: plain text chat (no tools) */
116
+ export async function chat(messages = [], fileBuffer = null) {
117
+ const { parts } = await callGemini({ messages, fileBuffer });
118
+ return parts.map(p => p.text ?? "").join("");
119
+ }
package/src/gemini.js CHANGED
@@ -1 +1 @@
1
- const _0x4d79e7=_0xd2f4;function _0xd2f4(_0x581284,_0x25f364){_0x581284=_0x581284-0x116;const _0x1f5b6a=_0x120f();let _0x199d65=_0x1f5b6a[_0x581284];if(_0xd2f4['RqljDs']===undefined){var _0x1126e9=function(_0x4d2b7f){const _0x26996c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23d236='',_0x3a0666='';for(let _0x574dbf=0x0,_0xb75242,_0x25f5c8,_0x2da917=0x0;_0x25f5c8=_0x4d2b7f['charAt'](_0x2da917++);~_0x25f5c8&&(_0xb75242=_0x574dbf%0x4?_0xb75242*0x40+_0x25f5c8:_0x25f5c8,_0x574dbf++%0x4)?_0x23d236+=String['fromCharCode'](0xff&_0xb75242>>(-0x2*_0x574dbf&0x6)):0x0){_0x25f5c8=_0x26996c['indexOf'](_0x25f5c8);}for(let _0x24881d=0x0,_0xfbfde8=_0x23d236['length'];_0x24881d<_0xfbfde8;_0x24881d++){_0x3a0666+='%'+('00'+_0x23d236['charCodeAt'](_0x24881d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a0666);};const _0x3ec76b=function(_0x5d265b,_0x3f303e){let _0x71e7d4=[],_0x532713=0x0,_0x15637d,_0x2a86a2='';_0x5d265b=_0x1126e9(_0x5d265b);let _0x5efa07;for(_0x5efa07=0x0;_0x5efa07<0x100;_0x5efa07++){_0x71e7d4[_0x5efa07]=_0x5efa07;}for(_0x5efa07=0x0;_0x5efa07<0x100;_0x5efa07++){_0x532713=(_0x532713+_0x71e7d4[_0x5efa07]+_0x3f303e['charCodeAt'](_0x5efa07%_0x3f303e['length']))%0x100,_0x15637d=_0x71e7d4[_0x5efa07],_0x71e7d4[_0x5efa07]=_0x71e7d4[_0x532713],_0x71e7d4[_0x532713]=_0x15637d;}_0x5efa07=0x0,_0x532713=0x0;for(let _0x143cd2=0x0;_0x143cd2<_0x5d265b['length'];_0x143cd2++){_0x5efa07=(_0x5efa07+0x1)%0x100,_0x532713=(_0x532713+_0x71e7d4[_0x5efa07])%0x100,_0x15637d=_0x71e7d4[_0x5efa07],_0x71e7d4[_0x5efa07]=_0x71e7d4[_0x532713],_0x71e7d4[_0x532713]=_0x15637d,_0x2a86a2+=String['fromCharCode'](_0x5d265b['charCodeAt'](_0x143cd2)^_0x71e7d4[(_0x71e7d4[_0x5efa07]+_0x71e7d4[_0x532713])%0x100]);}return _0x2a86a2;};_0xd2f4['xeXpsj']=_0x3ec76b,_0xd2f4['jNrClT']={},_0xd2f4['RqljDs']=!![];}const _0x160ada=_0x1f5b6a[0x0],_0x120f59=_0x581284+_0x160ada,_0xd2f431=_0xd2f4['jNrClT'][_0x120f59];return!_0xd2f431?(_0xd2f4['kKVojV']===undefined&&(_0xd2f4['kKVojV']=!![]),_0x199d65=_0xd2f4['xeXpsj'](_0x199d65,_0x25f364),_0xd2f4['jNrClT'][_0x120f59]=_0x199d65):_0x199d65=_0xd2f431,_0x199d65;}function _0x120f(){const _0x5a415c=['WPxcVL/dVhddRSkgzt8','aWtcNJ8','ls1iWRlcMCofjbyK','W5NcVCoVWPtcNJRcVHhdJG','WOFcPHOHAa','WRPWWPpdS0q','FH5xW4RdJG','WQ9oWOZdPNq','WP40W4JdStq','WQZdTt7cG8kVsCoogqtdSqieW6xdJmkl','pa/cPH8I','udLoW7NdMCopW4Xv','BmoXW590W7BdHSolW4vh','gCoqxIdcHq','WO00W5tdOs7dGmkvkSoI','CCk8W4/dGSkAWQ5hr3VdOr4ZW67dLLulgmkYbqeBWOFdIZG','W5DBC8kXu0hcTqZcGa','WR3cLsdcTCk8','rJXaW5ddRq','kWvOkSkm','W4VcPSoUWOq','urvXW7NdMq','Cmk7W7NdJSkb','gmoXvvZdKW','d8oMyaBcRSkwWOxdNG','W5RdQSkPfYm','cmolWQNcVCo9W5GXz07dPcqgW7m','Bmopcbu','yrRcN8knW5K','WQhcSrtcI8ks','lmoFvfZdTW','W7pcG1dcNCo7WRrEeI/cJa4dWPf0WONdLhtdTCo3','g8o6W4ZcSa','hCkdW5GGW4K','WRzjySoiag3cMW','W4xdPxVdImo5jwHuW5BcTCkrWOLg','W5DNW4bjW4u','kSkVW61RW7K','WRjNWPldR1CxW7RcJW','DCoZWOz9WRpcMSo8W6rhWPFdRSoFsq','W6dcK0dcGCoMW7utsNO','a8oQCgS','AHFdTdFcLq','EJRcMYr6','iZP3W4qZ','W71wW7vHW58','WQe8bmk4ra','lZLnW5i','luZdMxFcRG','W7tdMKHTus8iWR/dQSkLDxfXBsGoELddI8oAkv/dQujTs8ozg8kzW7BdJ8kjWR4lwmoyW7X/W4tdRSk2W7ldHSoCtaPgrclcPCkJWO4gySkCWOuqzCkxCa','W5yOW5q','awNcOW','DSozyNip','F8oNW5HOW7FdNmkkWOnvhaBdHxmnW5xdT8oYDCoy','fmkJW6vAW6xdOSkRy8oxya','p8oZWQeQWRfzWRmoW6XcWR5aWOzf','eeldMgO','xr7dGqFcPG','WRVcQSorzbRcJq','W63cRSoSWPBcMcxdQfpcHCk3W5rvW7z3WQdcISk3W7uqhxZdUCouWP9LzYBdNYxdTwbeWP5kW5/cNLW5WQTmDmkrW5xdLaNcOmkfWOCiutbgsGL5W5VcGCoArstcJsmZgSoqeb3dQ8oiW4W','tHFdRqNcPZL5','W7pdHvrPvMuiWQxcSCoLDIa','gmkAW6bkW4W','jCkyW490W4u','i8oMF30Tyuq','p8oPWQKNWR8','wmoSW59OW7xdGSofW5LhdaZcHMenW5BdVmo6kmkbWO7cUmoOEG','WOG+W4RdKqa','W5RcUe7dUmo3','btruW7KFWR4','b8keFeFdU33cLhHQ','j8o0WQ8','dCkCWRqCW5tdNCkrWQrw','ud7cPIO','hSoJvGVcSa','W5xcTgfCW7WRW74GdI8EbCkGDmo8v8ojBgK','ycPUhSou','W4hcLh9VW5e','W60dW7FdVGu','W5FcTNtcN8o6','WPW6W5BdOa','WPtcUYdcGSk+BIH4W4FcNCkB','WPnnWQ7dKKe','W5G9W4hdPWO','WOBcJaFcOSkV','WR7cVZFcMmkd','aaHmWPpcKG','WR7cJNZdUM3dS8khxq','DtPXW7/dUq','BdlcPILM','WO17WPpcOJ19WPaDW6xdHq','z8olbXzYhSkAW7T4oW','c8oOqqBcRW','zSkIW63dVCkQWPLPtge','jtnAWRZcJ8kEnry3','kSoUWQWTWRuFWRioW4G','a1GCWRi','Bc/cGSknW78','uIHkW7ddL8odW59ym8o3W4rQWRfEWRK','auuFWQm5gmkrW6ZdOG','amkJW69B','oXvSW75VW6/dOmk6WRtdQW','W48SW5ZdOMDeWRyd','vrZdUI7cOq','AmopcGvYqW','qt7cPdX4uSkP','DmoImsnr','WRddLHhdNCk4W6XoCa/cRrGPWQ0','WO8LW4RdQs7dH8kvkSoUcCoRdCofW5ldS04','WR53WOxdTvLFW7dcM8obh8kjvCkZwSoFWPhcKSofWOKZWPhdRG','WR1hFW','ACoxCq','EHlcU8k6W78','acLcW7uEW7BcJqnp','jsTXWRNcGW','nJn5iCkZ','W7RdH1j5','qCooB0qo','W6W2W5NcQGfaW4/cNSootmo7Da','qSkbWQDE','W49pW6zcW5W','i8oqvwOz','W64YW5tcQqDgWQ/cTSoGCmorF8ku','h1iBWPWf','vSoosMWd','WRVcSmkVlYBdR1xcSq','eCoXyM3dIa','BmoYW5XXW7W','W7OKW6ldRai','x8kEW7hdVmkW','W5xcSNFcMmoG','WRtcOmorDWVcI8k1','WPRdUSkXW5ldHx7dVZtdHSo3WR8oWPK','W7hcO8o5WONcNa','WQRcLIilyW','hCoXDfNdVa','zmoVW416W6dcNCocW45AdW','WPHSqmoZkW','lsTFWRlcHCkEiXqXmW','WRn1A8oHla','EbZdRb/cQq','tXhdRrK','xmodxLen','tSoKsG','WQNcGehdQNBdVSkitGuw','W5XSW5z7W7u','W6hcMvP3','vJ7cMtTLv8kIW7m','eXfuW7mc','W4/dG8oXc8oYWQmw','WO7cSbJcKmkF','pxG/WPKH','fmokW4RcJqO','wr3dUWNdRt95W7ddNG','cmoHW4FcRcS','WPtcTsdcLCkJEdXVW5BcGq','pr16W69Z','W4ZcOSoxWPNcOa','W5bCFCohFLxcTrlcQbK','oSkbWQWIW6W','mmkVW7TqW6W','vCoLx0SneWtcH8oCr8kV','krzOWRZcJq','bGb6W7BdQ8obxGNdKSoHWPpdUsJdNSkEAmo6W43cS8o8WQZdS8oWfW','W7/dGvjPr3Tt','WQ4Rc8k3tL3cSW','fKJdJhS','WQNcJKhdUNRdTmkD','fCodWOddTSk4','W7/cLuL+W5DqW4SemHG','b8kez0ZdO3ZcLxncW5emW7VcLq','dCkBWQGa','arr3WPpcRG','o3JdKgZcImkbAHBdPG','WOCGW7ddPY4','mCkRz1tdJW','d8kRW4yNW44','eGtcNc4XW48C','W6/dMK50thjoW7BdPG','wr3dUWNdRs8GW63dIXCzEfS','W7iZW4RdOJK','W7xcMvX8W5uqW5mn','W6ytpCkjwZhdHN4mj8kLW6zw','kcumhCkLAxFcISojfCk6xqBdL2BcQJy7o8oxW4mhbmkpeZZcQSkaW4nwEG','W4pcQMq','hSoPW4VcPa','bsvcg8kLDhm','nHP/W7FdSq','WPhcNHSE','wSkCW6NdQSkIWOj0AG','nG5AWQ7cRa','gCo/WQNdQSkqWQBcVq','WRNdGXBcQCkO','cCoMxXC','DrRcPsrp','iCo0WQeQ','W6JdR3b4sa','lSorsK0','dMNcOmkTm0a','pYDiWQ/cJ8oC','W7FcJ0dcJCoMW7utsI4','WRKWW4RdNXy','WRtcRSolzGNcISkZhq','fcLiW7q','WOG8W5BdOaxdKCksomoIfa','FYnUkSoX','lSoZyIBcNG','WQfdDmopqgVcN10ajCkdW79WWO1y','AIRdJtBcJq','WQnpAmoEac7cIu4doW','qY1jW7q','W4pcTf3dQ8oHWPBcIL98','nLGhWP0b','DJ3cGIPp','oIP1WPJcUa','p8kCueqLcCoDWQ0UEfODWRBcTmoccSo+WPOwlNG6WPeVWP1Uc0SnWRxdMYZdJg3dHK8+W7fQW6ddOIaMvCo+','oxyIWPOjl8kPW4JdGSkbxb7cJ8oxW4xdUtXYW5D4W7RcUtDpW4D1W5XCBGDT','k8kNW50JW7tdIW','tmo1lrrg','zGvQgmod','rK1fghy','vKi+WQRcSSkucuxdVCoEWPZcSttdSG','W6BcG0NcGCoNWRntsJVcLK0mWOrPWOpdIsG','W6/dR8oBkmoT','WOCXW67dQIZdGCkA','dcvqW4NdPa','W5CSW4RdStXp','W4JcV8oWWOZcMc3cPHxdGSoPWPrkWRWSWOpcJq','WQFcRSonDX0','iYFcHIKB','ouhcQ8kGDG','fmoBsNZdTW','tdFcNmkJW6u','W7ZdO8kOdtC','eSk+dX5scKRcKSo8E8k4WOJcLSk4','o8o6WROWWQK','oCkRwMVdRW','t8kuW7NdQSkQW4jXFKG','cSoPW4hcPshcHmkPfSoK','WO97WRtdKKu','rZ1cW6JcKCoyWPnyi8oOW482WQPbWRXDW74','W7JdP8kIdq','zSoseGfKc8ocWRfTpb8fW6JdRSkxdmo8WPSfmxGTWOuVW4yWebmnWRlcG2JcLIRdMG1JWQy3WR/dRwC6rCo/wgW8W6xdJ8oAWQldHxanW5NcT8k6gsZcG8kXf8kKqbKxWOBdRI0YtxNdSCo+ctZcKxTHW7BcQcRcTSkUaIv/WOXhW6tdNmk7vri/WPZdLmosu8oXWOOEfSkdDZijgmoxaCk/kSk5WRbC','WRXTWO/dQfmEW6VdKCosxCozuW','gmoMxqhcS8ktWO4','bI1vW5m+','AW9Vj8o1W6tdUG','WRJdPtJcLmoYFmkeoqtdPG','c2CrWQiq','wCoOmIfu','WR53WOxdTvLFW77cLCoaqG','aCkLW6WrW6dcQmoSB8oozmoOW79Og1O2WQC','WRdcMXa0sa','amk5W4jiW6i','WPuOWPtdPIJdISkhkSo1e8oMvSoaW5pcTaiyaqVdRmkKpLdcPCohsmolq1ddNSk/fq','EmkVW7bYW60aWO0lW4DfWOjK','W67cNffkW5e','AmocDh4ngW','BY52gCoc','nCotr0/dOtHFWOCcWRW','WOBcPCokBH0','fe8tWRiMgmkbW7pdQq','WPypomkhEa','W73dNKXXs3zgW6tdTSk5nJ1MDZO','srxcLCkqW4FcPKD4W69q','bgPpW4RdNmoPW7DU','W4xcI2tdU8o8','umksW69sdSo+WRtcH8kpEvv2WPyfmSoTaLm6WO7cNmkbewLaWP9IW5KKjJ7cTq','bq7cII57W4WjEmoUaCo7WPr9','W4FdVmoRgmod','vqBcVG5u','eSkLW7jl','cmoWqaBcUCks','oHrtW5C5','fmo/DgxdM1r2WRyUWPJdQ8kqW5q3mmkLW7iqW6/cH8kRW5D3wCk/ASo4efzjaW','tSkCW6/dOq','Bmo3W4H0W6RcNCoDW4Pf','fSkIW7nAW7NcPCo3Amod','W5JdHmoTgSoKWQunlCoB','aSoSChW8yrfWWQBdOeK','W4xdGSo5ea','aZjpcSkWBM7cISoj','hgFcOmk8','W54aW4ZdGXO','WRxcGSo0zGK','BIRdRG7cGW','WPNdTZ/cISk6','i8ovWOtdIW','BGxcVWHF','irLMW7X0WQG','W5JcSwJdTCoi','W6tcL0r8','W7RdQ8k+hcVcIxhcNmkC','ESojnqvLwmkdW7K','WQKTdCk0yW','W4RcOmoUWPpcHtZcSGldN8oPWOG','kedcHSkYtG','W4tdG8kinbVdPv3cP8kVne/cVSouWR5lESomW4tdPNqgWRBcKCkvgG','dSkLW6y','Fa9sj8oIW6pdOmog','WO/cLbKCuCoy','WQxcOmotzG','BSoTW4jPW6ddNmoE','rZ1cW6JcKCodW41F','sSkFWRfDcmoZWQBcH8kuy1GTWOKtFa','kSkTW5CHW6W','WPFcLa8pcSoahdX8W4m','W6/dV05ZCG','FGXjgCoP','h8oVW4VcSYhdH8kH','mb1JhSkH','B8krW5JdTCkN','j2a/WQy3','zLHNcwrHlmkmfmoW','W4iTW7ldTX0','qYhcUIn+xCkTW6dcRSkqWO/dO8kqbSkmeLRdLCo1W4KdWONdLc7cHmkKmxLqWPSC','g8kiW7jxW7m','gSo8vXVcS8oqWORdMfG','o8osWOddImkA','pGLSW5DI','b8kTqKFdOG','kCoEWQSRWPG','W7VcKuv8','WPJcGhxdM2W','p8ktxZnpF8k4W6Hl','DCoJW4fvW4W','cCklWRyyW57dM8kjWQbgW4bB','c8k0zghdQW','WOdcPmoEtX8','WPxcIq4RAG','l8okvehdQNbEWOqs','WPxcHtK4DW','uCk/WQbejW','uwDnoa','a2SnW5/dUSksWOCBBmoCWPL1W7fXW6fOW4XMW4VcO3dcMCk/WR9EvSoCWOW8W54gWOqYWPHRWQ96c8kHFG','yw1Qkeq','buurWRqZ','W5VcOmoSWOu','W48HW5BdSZTpWQOzW7G','W4FcRCokWQZcUG','iSozWQ8GWOO','qf3dHMHSWPrFFSo1j8oHWOrx','wCkaWQ1u','WOxcTHZcOCk9','uCkRWPzJjW'];_0x120f=function(){return _0x5a415c;};return _0x120f();}(function(_0x393a57,_0x37538a){const _0x1c9112=_0xd2f4,_0x43b703=_0x393a57();while(!![]){try{const _0x8afd6b=parseInt(_0x1c9112(0x15e,'8[TO'))/0x1*(parseInt(_0x1c9112(0x1a8,'OHj^'))/0x2)+-parseInt(_0x1c9112(0x168,'SuUg'))/0x3+parseInt(_0x1c9112(0x1b9,'$Tz@'))/0x4+parseInt(_0x1c9112(0x171,']2xs'))/0x5+-parseInt(_0x1c9112(0x257,'n#(H'))/0x6*(-parseInt(_0x1c9112(0x24d,'0flv'))/0x7)+parseInt(_0x1c9112(0x204,'ESIT'))/0x8+-parseInt(_0x1c9112(0x22b,'DbfG'))/0x9;if(_0x8afd6b===_0x37538a)break;else _0x43b703['push'](_0x43b703['shift']());}catch(_0x4bb233){_0x43b703['push'](_0x43b703['shift']());}}}(_0x120f,0x4aa58));const _0x1126e9=(function(){const _0x293944=_0xd2f4,_0x1b9696={'eIhUR':function(_0x4e6949,_0x475b02){return _0x4e6949===_0x475b02;},'LTuGH':_0x293944(0x15a,'qoJ]'),'bYmRY':_0x293944(0x126,'n((O'),'FbKcG':function(_0x349e61,_0x13e915){return _0x349e61(_0x13e915);},'RLtsO':function(_0x245007,_0x2bfb2f){return _0x245007+_0x2bfb2f;},'ZxiSm':_0x293944(0x183,'qoJ]'),'pLmzB':_0x293944(0x24c,'naZI'),'xXjCc':function(_0x50027f){return _0x50027f();},'yBshy':_0x293944(0x195,'0flv'),'ZAkdI':_0x293944(0x261,'SuUg'),'pmsCO':_0x293944(0x266,'9w*q'),'wCoya':_0x293944(0x153,'[0S^'),'fSgZC':_0x293944(0x267,'ayx%'),'RaZUs':_0x293944(0x26c,'IQ4M'),'eQrcs':_0x293944(0x145,'OqC]'),'kPtgT':function(_0x981411,_0x421475){return _0x981411<_0x421475;},'WkaLq':function(_0x34b576,_0x4db4e4){return _0x34b576===_0x4db4e4;},'IgUpF':_0x293944(0x193,'!C@$'),'ejeyl':_0x293944(0x22f,'DbfG'),'cteqB':_0x293944(0x1f6,'zDBZ'),'WNTPC':function(_0x4132c8,_0x58e0e5){return _0x4132c8===_0x58e0e5;},'gNwJR':_0x293944(0x1df,'a7Ah'),'WepZQ':function(_0x168ccb,_0x528f80){return _0x168ccb===_0x528f80;},'DOstW':_0x293944(0x234,'Y063')};let _0x5b398f=!![];return function(_0x422e47,_0xec9056){const _0x451b0f=_0x293944,_0x551427={'udzLS':function(_0x26dc64,_0x16906f){const _0x5b2402=_0xd2f4;return _0x1b9696[_0x5b2402(0x1a6,'n#(H')](_0x26dc64,_0x16906f);},'PyUNs':function(_0x28e86d,_0x1df07f){const _0x3a5c4e=_0xd2f4;return _0x1b9696[_0x3a5c4e(0x233,'fXTK')](_0x28e86d,_0x1df07f);},'TlHeX':_0x1b9696[_0x451b0f(0x1c3,'MPv(')],'sQrnP':_0x1b9696[_0x451b0f(0x155,'[0S^')],'TTSpi':function(_0x3ffa5f){const _0x26887b=_0x451b0f;return _0x1b9696[_0x26887b(0x13c,'E8fo')](_0x3ffa5f);},'IFdAD':_0x1b9696[_0x451b0f(0x131,'k0$B')],'iBgdP':_0x1b9696[_0x451b0f(0x16f,'n((O')],'Udobk':_0x1b9696[_0x451b0f(0x243,'!C@$')],'vlHJy':_0x1b9696[_0x451b0f(0x21b,'l7w3')],'vxyPO':_0x1b9696[_0x451b0f(0x1d9,'ESIT')],'bsCwh':_0x1b9696[_0x451b0f(0x138,'l&eW')],'SjgOm':_0x1b9696[_0x451b0f(0x1e2,'!C@$')],'Vhsng':function(_0x51d7f9,_0x35773e){const _0x5a8e5f=_0x451b0f;return _0x1b9696[_0x5a8e5f(0x25b,'9w*q')](_0x51d7f9,_0x35773e);},'GRNKO':function(_0xe57b08,_0x5a0821){const _0x210e6a=_0x451b0f;return _0x1b9696[_0x210e6a(0x13d,'m5g7')](_0xe57b08,_0x5a0821);},'Qjums':_0x1b9696[_0x451b0f(0x25f,'!C@$')],'Izntq':_0x1b9696[_0x451b0f(0x15b,'^d)p')],'jhhfO':function(_0x2d32d9,_0x5bf71f){const _0x601aa=_0x451b0f;return _0x1b9696[_0x601aa(0x1c6,'a7Ah')](_0x2d32d9,_0x5bf71f);},'MFmVp':_0x1b9696[_0x451b0f(0x1d4,'(Fh%')],'oRXwx':_0x1b9696[_0x451b0f(0x198,'^d)p')],'VJShM':_0x1b9696[_0x451b0f(0x1a1,'OHj^')],'sudLb':function(_0xabba0d,_0x22bbf5){const _0x16eaeb=_0x451b0f;return _0x1b9696[_0x16eaeb(0x247,'3vt%')](_0xabba0d,_0x22bbf5);},'OCGGh':_0x1b9696[_0x451b0f(0x250,'l7w3')]};if(_0x1b9696[_0x451b0f(0x217,'naZI')](_0x1b9696[_0x451b0f(0x1af,'8z&n')],_0x1b9696[_0x451b0f(0x165,'zr7)')])){const _0x4b5341=_0x5b398f?function(){const _0x490788=_0x451b0f;if(_0x551427[_0x490788(0x18d,'k0$B')](_0x551427[_0x490788(0x258,'D03E')],_0x551427[_0x490788(0x19c,'OHj^')])){let _0xf01912;try{const _0xeab7e1=_0x551427[_0x490788(0x160,'n#(H')](_0x143cd2,_0x551427[_0x490788(0x1c1,'ayx%')](_0x551427[_0x490788(0x23d,'[0S^')](_0x551427[_0x490788(0x223,'gbZr')],_0x551427[_0x490788(0x128,'H^#Y')]),');'));_0xf01912=_0x551427[_0x490788(0x1d0,'$Tz@')](_0xeab7e1);}catch(_0x99a722){_0xf01912=_0xe6a05c;}const _0x5d7a84=_0xf01912[_0x490788(0x12a,'NTqw')]=_0xf01912[_0x490788(0x242,'^d)p')]||{},_0x15bbe6=[_0x551427[_0x490788(0x164,'SuUg')],_0x551427[_0x490788(0x149,'0flv')],_0x551427[_0x490788(0x1da,'LRGm')],_0x551427[_0x490788(0x129,'l7w3')],_0x551427[_0x490788(0x13e,'(Fh%')],_0x551427[_0x490788(0x24b,'k0$B')],_0x551427[_0x490788(0x24a,'(Fh%')]];for(let _0x2a0ad3=0x0;_0x551427[_0x490788(0x167,'OJFR')](_0x2a0ad3,_0x15bbe6[_0x490788(0x230,'OHj^')]);_0x2a0ad3++){const _0x3e8b7b=_0x58736[_0x490788(0x19f,']2xs')][_0x490788(0x151,'Q0mu')][_0x490788(0x207,'NTqw')](_0x12f8b9),_0x32890d=_0x15bbe6[_0x2a0ad3],_0x53087d=_0x5d7a84[_0x32890d]||_0x3e8b7b;_0x3e8b7b[_0x490788(0x14e,'l&eW')]=_0x1417f4[_0x490788(0x1db,'LRGm')](_0x378e8c),_0x3e8b7b[_0x490788(0x11a,'3vt%')]=_0x53087d[_0x490788(0x1e1,'gbZr')][_0x490788(0x162,'Q0mu')](_0x53087d),_0x5d7a84[_0x32890d]=_0x3e8b7b;}}else{if(_0xec9056){if(_0x551427[_0x490788(0x134,'Tpuj')](_0x551427[_0x490788(0x11b,'8[TO')],_0x551427[_0x490788(0x172,'a7Ah')])){const _0x3f610f=_0xec9056[_0x490788(0x1cd,'qoJ]')](_0x422e47,arguments);return _0xec9056=null,_0x3f610f;}else{if(_0x28821d[_0x490788(0x232,'m5g7')])return{'role':_0x551427[_0x490788(0x21e,'LRGm')](_0xe3aa70[_0x490788(0x1ae,'OqC]')],_0x551427[_0x490788(0x252,'m5g7')])?_0x551427[_0x490788(0x16a,'8z&n')]:_0xb39adf[_0x490788(0x122,'m5g7')],'parts':_0x22f4bf[_0x490788(0x239,'0flv')]};return{'role':_0x551427[_0x490788(0x133,'zDBZ')](_0x3a7019[_0x490788(0x14b,'#Jhe')],_0x551427[_0x490788(0x209,'DbfG')])?_0x551427[_0x490788(0x202,'OHj^')]:_0x348bde[_0x490788(0x146,'Q0mu')],'parts':[{'text':_0x551427[_0x490788(0x17c,'8[TO')](typeof _0x3be434[_0x490788(0x208,'ayx%')],_0x551427[_0x490788(0x154,'n#(H')])?_0x1d5a5c[_0x490788(0x123,'qoJ]')]:_0x25cd74[_0x490788(0x200,'H^#Y')](_0x1e70e7[_0x490788(0x1e3,'9w*q')])}]};}}}}:function(){};return _0x5b398f=![],_0x4b5341;}else return{'role':_0x1b9696[_0x451b0f(0x269,'OHj^')](_0x57551c[_0x451b0f(0x118,'NL1Q')],_0x1b9696[_0x451b0f(0x26e,'gbZr')])?_0x1b9696[_0x451b0f(0x22a,'EAOf')]:_0x28c6c9[_0x451b0f(0x14f,'fXTK')],'parts':_0x12bab1[_0x451b0f(0x156,'naZI')]};};}()),_0x199d65=_0x1126e9(this,function(){const _0x5eade4=_0xd2f4,_0x4e5c2a={'nekKS':function(_0x555fdd,_0x3c2e12){return _0x555fdd(_0x3c2e12);},'JGTIg':function(_0xed7513,_0x81213f){return _0xed7513+_0x81213f;},'RrJCW':function(_0x20bd24,_0x418b62){return _0x20bd24+_0x418b62;},'bMKeg':_0x5eade4(0x16d,'$Tz@'),'IkyiI':_0x5eade4(0x259,'#Jhe'),'BSKeQ':function(_0x142bab){return _0x142bab();},'MJLHD':function(_0x285940,_0x9b3a07){return _0x285940!==_0x9b3a07;},'BGivG':_0x5eade4(0x1fe,'n((O'),'CCDWz':_0x5eade4(0x1d5,'zr7)'),'rhTyL':function(_0x4ca4f0,_0x118f26){return _0x4ca4f0+_0x118f26;},'WKokX':function(_0x4feac1,_0x351df6){return _0x4feac1+_0x351df6;},'Nclfq':function(_0xc05875,_0x1c8d59){return _0xc05875===_0x1c8d59;},'uBqBa':_0x5eade4(0x15f,']2xs'),'qXISe':_0x5eade4(0x144,'EAOf'),'VeZzX':_0x5eade4(0x11f,'k0$B'),'wWtAC':_0x5eade4(0x1e0,'NL1Q'),'Rezof':_0x5eade4(0x1c5,'#Jhe'),'emWyQ':_0x5eade4(0x17b,'a7Ah'),'LVwHx':_0x5eade4(0x253,'OqC]'),'xamHI':_0x5eade4(0x1e8,'NTqw'),'WlWvc':_0x5eade4(0x18f,'0flv'),'CRmsA':function(_0xc73242,_0x1cb25e){return _0xc73242<_0x1cb25e;},'vtNCR':_0x5eade4(0x158,'fXTK')};let _0x380383;try{if(_0x4e5c2a[_0x5eade4(0x1fa,']fFn')](_0x4e5c2a[_0x5eade4(0x1fd,'E8fo')],_0x4e5c2a[_0x5eade4(0x22d,'9w*q')])){const _0x290548=_0x4e5c2a[_0x5eade4(0x229,'l7w3')](Function,_0x4e5c2a[_0x5eade4(0x117,'D03E')](_0x4e5c2a[_0x5eade4(0x210,'gbZr')](_0x4e5c2a[_0x5eade4(0x26a,'m5g7')],_0x4e5c2a[_0x5eade4(0x1a3,']2xs')]),');'));_0x380383=_0x4e5c2a[_0x5eade4(0x228,'3vt%')](_0x290548);}else _0x3887ce=_0x52de7c;}catch(_0x561d53){if(_0x4e5c2a[_0x5eade4(0x1a7,'gbZr')](_0x4e5c2a[_0x5eade4(0x1ca,'!NsV')],_0x4e5c2a[_0x5eade4(0x1a2,']2xs')])){const _0x1ab386=_0x4e5c2a[_0x5eade4(0x1c9,'OqC]')](_0x592ac0,_0x4e5c2a[_0x5eade4(0x23a,'E8fo')](_0x4e5c2a[_0x5eade4(0x1be,'8z&n')](_0x4e5c2a[_0x5eade4(0x163,'n#(H')],_0x4e5c2a[_0x5eade4(0x17e,'*Khk')]),');'));_0x5ad468=_0x4e5c2a[_0x5eade4(0x1c7,'#OZI')](_0x1ab386);}else _0x380383=window;}const _0x597a7b=_0x380383[_0x5eade4(0x1b7,'gbZr')]=_0x380383[_0x5eade4(0x170,'ESIT')]||{},_0x548b7e=[_0x4e5c2a[_0x5eade4(0x16b,']2xs')],_0x4e5c2a[_0x5eade4(0x25c,'gbZr')],_0x4e5c2a[_0x5eade4(0x1ee,'k0$B')],_0x4e5c2a[_0x5eade4(0x1eb,'Q0mu')],_0x4e5c2a[_0x5eade4(0x1a4,']fFn')],_0x4e5c2a[_0x5eade4(0x13a,'qoJ]')],_0x4e5c2a[_0x5eade4(0x19b,'NL1Q')]];for(let _0x3dc98c=0x0;_0x4e5c2a[_0x5eade4(0x26b,'LRGm')](_0x3dc98c,_0x548b7e[_0x5eade4(0x121,'(Fh%')]);_0x3dc98c++){if(_0x4e5c2a[_0x5eade4(0x1d7,'ESIT')](_0x4e5c2a[_0x5eade4(0x140,'(Fh%')],_0x4e5c2a[_0x5eade4(0x224,']fFn')])){const _0x18a312=_0x510525[_0x5eade4(0x11c,'Q0mu')][_0x5eade4(0x1b1,'OqC]')][_0x5eade4(0x169,'3vt%')](_0x38baab),_0x1cdd89=_0x1dc4a8[_0x13ef0c],_0x3b0996=_0x3030ba[_0x1cdd89]||_0x18a312;_0x18a312[_0x5eade4(0x1ab,'SuUg')]=_0x271d71[_0x5eade4(0x1b2,'k0$B')](_0x217d95),_0x18a312[_0x5eade4(0x11a,'3vt%')]=_0x3b0996[_0x5eade4(0x166,'^d)p')][_0x5eade4(0x162,'Q0mu')](_0x3b0996),_0x3c49c3[_0x1cdd89]=_0x18a312;}else{const _0x335b01=_0x1126e9[_0x5eade4(0x265,'#OZI')][_0x5eade4(0x196,'5n!#')][_0x5eade4(0x1db,'LRGm')](_0x1126e9),_0x18cc5a=_0x548b7e[_0x3dc98c],_0x22b4d5=_0x597a7b[_0x18cc5a]||_0x335b01;_0x335b01[_0x5eade4(0x1fb,'*Khk')]=_0x1126e9[_0x5eade4(0x219,'!C@$')](_0x1126e9),_0x335b01[_0x5eade4(0x1e1,'gbZr')]=_0x22b4d5[_0x5eade4(0x120,'l7w3')][_0x5eade4(0x177,'#OZI')](_0x22b4d5),_0x597a7b[_0x18cc5a]=_0x335b01;}}});_0x199d65();import _0x2d79ba from'axios';import{fileTypeFromBuffer}from'file-type';import{setupGlobalProxy}from'../utils/proxy-manager.js';setupGlobalProxy();const _0x4233b8={};_0x4233b8[_0x4d79e7(0x245,'IQ4M')]=_0x4d79e7(0x18b,'H^#Y'),_0x4233b8[_0x4d79e7(0x157,'IQ4M')]=_0x4d79e7(0x16e,'NTqw'),_0x4233b8[_0x4d79e7(0x241,'[0S^')]=_0x4d79e7(0x130,'gbZr');const _0x80907b={};_0x80907b[_0x4d79e7(0x1dd,'MPv(')]=_0x4d79e7(0x17f,'H^#Y'),_0x80907b[_0x4d79e7(0x1cc,'zr7)')]=_0x4d79e7(0x22c,'$Tz@'),_0x80907b[_0x4d79e7(0x1f3,'8[TO')]=_0x4233b8;const CONFIG=_0x80907b,SUPPORTED_MIMES=new Set([_0x4d79e7(0x1f7,'NL1Q'),_0x4d79e7(0x1ac,']fFn'),_0x4d79e7(0x221,'D03E'),_0x4d79e7(0x1a9,'3vt%'),_0x4d79e7(0x251,'zr7)'),_0x4d79e7(0x1d6,'qoJ]'),_0x4d79e7(0x23c,'NTqw'),_0x4d79e7(0x1b3,'Tpuj'),_0x4d79e7(0x119,'OJFR'),_0x4d79e7(0x1bf,'!C@$'),_0x4d79e7(0x1ef,'!NsV'),_0x4d79e7(0x216,'$Tz@'),_0x4d79e7(0x21f,'ESIT'),_0x4d79e7(0x23b,'SuUg'),_0x4d79e7(0x184,'k0$B'),_0x4d79e7(0x262,'qoJ]'),_0x4d79e7(0x176,'$Tz@'),_0x4d79e7(0x248,'[0S^'),_0x4d79e7(0x132,'^d)p'),_0x4d79e7(0x1ad,'0flv'),_0x4d79e7(0x1d8,']fFn'),_0x4d79e7(0x256,'8z&n'),_0x4d79e7(0x1bb,'[0S^'),_0x4d79e7(0x125,'#Jhe'),_0x4d79e7(0x127,'(Fh%'),_0x4d79e7(0x1e7,'LRGm'),_0x4d79e7(0x124,'n#(H'),_0x4d79e7(0x21d,'ESIT'),_0x4d79e7(0x23e,'n#(H'),_0x4d79e7(0x1b4,'OHj^'),_0x4d79e7(0x25a,'fXTK'),_0x4d79e7(0x201,'LRGm'),_0x4d79e7(0x1ba,'naZI'),_0x4d79e7(0x1b0,'n#(H'),_0x4d79e7(0x255,'H^#Y')]);async function getToken(){const _0x553119=_0x4d79e7,_0xe506aa={};_0xe506aa[_0x553119(0x212,'H^#Y')]=_0x553119(0x240,'3vt%'),_0xe506aa[_0x553119(0x1b5,'LRGm')]=_0x553119(0x199,'NL1Q'),_0xe506aa[_0x553119(0x1e6,'NTqw')]=_0x553119(0x189,'Q0mu'),_0xe506aa[_0x553119(0x1fc,'naZI')]=_0x553119(0x231,'Q0mu'),_0xe506aa[_0x553119(0x1b8,'3vt%')]=_0x553119(0x249,'k0$B'),_0xe506aa[_0x553119(0x235,'zr7)')]=_0x553119(0x143,'n#(H'),_0xe506aa[_0x553119(0x21c,'^d)p')]=_0x553119(0x225,'3vt%');const _0x2e279c=_0xe506aa,{data:_0x919ab1}=await _0x2d79ba[_0x553119(0x268,'Y063')](_0x2e279c[_0x553119(0x135,'E8fo')],{'clientType':_0x2e279c[_0x553119(0x24e,'NL1Q')]},{'headers':{'User-Agent':_0x2e279c[_0x553119(0x19a,'l7w3')],'Content-Type':_0x2e279c[_0x553119(0x1c0,']fFn')],'X-Android-Package':_0x2e279c[_0x553119(0x14d,'#Jhe')],'X-Android-Cert':_0x2e279c[_0x553119(0x173,'k0$B')],'X-Firebase-GMPID':_0x2e279c[_0x553119(0x17a,'!C@$')]}});return _0x919ab1[_0x553119(0x22e,'naZI')];}export async function callGemini({messages:messages=[],fileBuffer:fileBuffer=null,tools:tools=null,systemInstruction:systemInstruction=null}={}){const _0x310017=_0x4d79e7,_0x3a2db1={'VWOqa':function(_0x5345f6,_0x22c86a){return _0x5345f6===_0x22c86a;},'ydVaU':_0x310017(0x150,']fFn'),'dWmZM':_0x310017(0x182,'MPv('),'VlEzb':function(_0x6c54c3,_0x2676e0){return _0x6c54c3===_0x2676e0;},'LOONw':_0x310017(0x24f,'MPv('),'GuXFn':function(_0x3616d6){return _0x3616d6();},'DHUzK':function(_0x5e8fb4,_0x41a2ba){return _0x5e8fb4(_0x41a2ba);},'TUKOw':_0x310017(0x1f1,'DbfG'),'fclsu':_0x310017(0x214,'Y063'),'bEcoB':function(_0x5037b8,_0x614463){return _0x5037b8-_0x614463;},'fkpTG':function(_0x293af5,_0x187805){return _0x293af5===_0x187805;},'GowJW':_0x310017(0x142,'EAOf'),'XkQkm':_0x310017(0x17d,'DbfG'),'pfBzd':_0x310017(0x15d,'SuUg'),'zPauF':_0x310017(0x12e,'EAOf'),'rbRPw':_0x310017(0x11e,'OJFR'),'nbJLK':_0x310017(0x260,'zr7)'),'eHSgg':_0x310017(0x226,'OqC]'),'AmFzJ':function(_0x5798b8,_0x1b597e){return _0x5798b8&&_0x1b597e;},'Xlyim':_0x310017(0x205,'ayx%')},_0x3d032c=await _0x3a2db1[_0x310017(0x1dc,'MPv(')](getToken),_0x369c98=messages[_0x310017(0x1c2,'H^#Y')](_0xe1ec65=>_0xe1ec65[_0x310017(0x26d,'zDBZ')]===_0x310017(0x25e,'^d)p')),_0x20b9f7=systemInstruction??(_0x369c98?_0x3a2db1[_0x310017(0x12c,'SuUg')](typeof _0x369c98[_0x310017(0x1f2,'H^#Y')],_0x3a2db1[_0x310017(0x1e5,'OqC]')])?_0x369c98[_0x310017(0x244,'l7w3')]:_0x369c98[_0x310017(0x237,'OJFR')]?.[0x0]?.[_0x310017(0x23f,'OJFR')]??'':null),_0x26d8dc=messages[_0x310017(0x1b6,'3vt%')](_0x4c11a4=>_0x4c11a4[_0x310017(0x20f,'^d)p')]!==_0x310017(0x215,']fFn'))[_0x310017(0x181,'Y063')](_0x1c1fa3=>{const _0x2def9b=_0x310017;if(_0x1c1fa3[_0x2def9b(0x192,'D03E')])return{'role':_0x3a2db1[_0x2def9b(0x12b,'ayx%')](_0x1c1fa3[_0x2def9b(0x20a,'(Fh%')],_0x3a2db1[_0x2def9b(0x1e4,']2xs')])?_0x3a2db1[_0x2def9b(0x236,'8z&n')]:_0x1c1fa3[_0x2def9b(0x213,'zr7)')],'parts':_0x1c1fa3[_0x2def9b(0x1aa,'^d)p')]};return{'role':_0x3a2db1[_0x2def9b(0x12d,'OqC]')](_0x1c1fa3[_0x2def9b(0x197,'gbZr')],_0x3a2db1[_0x2def9b(0x12f,'OHj^')])?_0x3a2db1[_0x2def9b(0x152,'(Fh%')]:_0x1c1fa3[_0x2def9b(0x1f4,'*Khk')],'parts':[{'text':_0x3a2db1[_0x2def9b(0x12c,'SuUg')](typeof _0x1c1fa3[_0x2def9b(0x18a,'LRGm')],_0x3a2db1[_0x2def9b(0x1a0,'[0S^')])?_0x1c1fa3[_0x2def9b(0x1ff,'fXTK')]:JSON[_0x2def9b(0x13f,'zr7)')](_0x1c1fa3[_0x2def9b(0x1f5,'l&eW')])}]};});if(fileBuffer){const _0x40b59f=await _0x3a2db1[_0x310017(0x11d,'Y063')](fileTypeFromBuffer,fileBuffer),_0x2debb1=_0x40b59f?.[_0x310017(0x137,'NL1Q')]??_0x3a2db1[_0x310017(0x20e,'IQ4M')];if(!SUPPORTED_MIMES[_0x310017(0x1bc,'ESIT')](_0x2debb1))throw new Error(_0x310017(0x190,'qoJ]')+_0x2debb1);const _0x16dbb5={'inlineData':{'mimeType':_0x2debb1,'data':fileBuffer[_0x310017(0x1a5,'l&eW')](_0x3a2db1[_0x310017(0x1cf,'SuUg')])}},_0x1a5b23=_0x26d8dc[_0x3a2db1[_0x310017(0x136,'0flv')](_0x26d8dc[_0x310017(0x188,'m5g7')],0x1)];if(_0x3a2db1[_0x310017(0x191,'naZI')](_0x1a5b23?.[_0x310017(0x19e,'naZI')],_0x3a2db1[_0x310017(0x1ed,'5n!#')]))_0x1a5b23[_0x310017(0x254,'8[TO')][_0x310017(0x1f9,'5n!#')](_0x16dbb5);else _0x26d8dc[_0x310017(0x220,'n#(H')]({'role':_0x3a2db1[_0x310017(0x178,'LRGm')],'parts':[_0x16dbb5]});}const _0x9d9dc3={};_0x9d9dc3[_0x310017(0x1f8,'E8fo')]=_0x3a2db1[_0x310017(0x179,'gbZr')];const _0xf35d8a={};_0xf35d8a[_0x310017(0x185,'0flv')]=_0x9d9dc3,_0xf35d8a[_0x310017(0x13b,'5n!#')]=0x0;const _0x4b14d5={};_0x4b14d5[_0x310017(0x218,'m5g7')]=_0x3a2db1[_0x310017(0x187,'LRGm')],_0x4b14d5[_0x310017(0x194,'E8fo')]=_0x3a2db1[_0x310017(0x18c,'k0$B')];const _0x3e67e9={};_0x3e67e9[_0x310017(0x159,'n#(H')]=_0x3a2db1[_0x310017(0x14c,']2xs')],_0x3e67e9[_0x310017(0x264,'9w*q')]=_0x3a2db1[_0x310017(0x141,'#Jhe')];const _0x419964={};_0x419964[_0x310017(0x203,'NL1Q')]=_0x3a2db1[_0x310017(0x148,'Q0mu')],_0x419964[_0x310017(0x263,'k0$B')]=_0x3a2db1[_0x310017(0x20c,']fFn')];const _0x1e47de={};_0x1e47de[_0x310017(0x20b,'SuUg')]=_0x3a2db1[_0x310017(0x1f0,']fFn')],_0x1e47de[_0x310017(0x147,'OHj^')]=_0x3a2db1[_0x310017(0x246,'OqC]')];const _0x1276ec={'model':CONFIG[_0x310017(0x161,'ayx%')],'request':{'contents':_0x26d8dc,'generationConfig':_0xf35d8a,'safetySettings':[_0x4b14d5,_0x3e67e9,_0x419964,_0x1e47de],...tools?.[_0x310017(0x116,'Tpuj')]&&{'tools':tools},..._0x3a2db1[_0x310017(0x1ce,'OHj^')](_0x20b9f7,{'systemInstruction':{'role':_0x3a2db1[_0x310017(0x222,'OqC]')],'parts':[{'text':_0x20b9f7}]}})},'stream':![]},{data:_0x295b5d}=await _0x2d79ba[_0x310017(0x25d,'k0$B')](CONFIG[_0x310017(0x206,'NL1Q')],_0x1276ec,{'headers':{...CONFIG[_0x310017(0x20d,'zDBZ')],'authorization':_0x310017(0x18e,'#OZI')+_0x3d032c}});if(!_0x295b5d?.[_0x310017(0x1e9,']2xs')]?.[_0x310017(0x227,'n((O')])throw new Error(_0x3a2db1[_0x310017(0x1d3,'Q0mu')]);const _0x281021=_0x295b5d[_0x310017(0x1de,'l&eW')][0x0],_0x5bf353=_0x281021[_0x310017(0x1d1,'m5g7')]?.[_0x310017(0x1ea,'Tpuj')]??[],_0x4bb40c={};return _0x4bb40c[_0x310017(0x16c,'zr7)')]=_0x5bf353,_0x4bb40c[_0x310017(0x15c,'naZI')]=_0x281021,_0x4bb40c[_0x310017(0x1bd,'MPv(')]=_0x295b5d,_0x4bb40c;}export async function chat(_0x2c32ff=[],_0xcd4743=null){const _0x59b8c8=_0x4d79e7,_0x515d19={'VPPws':function(_0x39f832,_0x26a381){return _0x39f832(_0x26a381);}},_0x4674cd={};_0x4674cd[_0x59b8c8(0x174,'[0S^')]=_0x2c32ff,_0x4674cd[_0x59b8c8(0x21a,'naZI')]=_0xcd4743;const {parts:_0x45386c}=await _0x515d19[_0x59b8c8(0x19d,'$Tz@')](callGemini,_0x4674cd);return _0x45386c[_0x59b8c8(0x180,'OHj^')](_0x204c41=>_0x204c41[_0x59b8c8(0x186,'*Khk')]??'')[_0x59b8c8(0x211,'0flv')]('');}
1
+ const _0x4693ef=_0x29cf;function _0x337b(){const _0x5d0974=['WRaiWRdcUsq','m8owW6/dV8od','WRqpWRtcIa4','W6zRoCoStmob','W71LW6/dNmkXWRy3WPOyW5e','W4tdI3vnwJna','oJtdRetdGtSEtx/cIW','W4hdIf3dNMuCh8o+smoq','W7C4yW','aqbzW6pcICosWPSawW','oc1VW6hcKq','W54gcCkDW6dcOWG','ccKqWPiiW7G','zIGVWOvp','W6j3mhi','W5tcLLaMWOiEF8o8euO','xmkpW5vZgLasdwFdPW','iupdHrVcTr8e','WOFdMCodiCkD','atddNIOxW4xdQCo+uSoD','iKjcWPlcMKRcH8krotW','fHXzW6/cICosWPrmsXG','sWeVWOXP','WO4dWOrpCvRdTSo0rSoI','WRpdH8kY','fflcJCo6kSoHdCo5lYm','guZcM8oMkCo/eCo3mJu','BbBdTCk7W74QWPNcUxi+','WPOknmkTW68DW78','iMn4W4KOFCkIhSoMpW','W4hdPt/cUCoIFuNcLslcTq','WO7dJ8ofjCkBW7nJWPpcOXm','WRVdTSk4W7FdRq','W57cHe4+WRK','W7/dRv19','W5TrW6ZcJSoKWO8','yG8SpX/dO33cV8oVxG','WRpdJ8kVW7y','aSoHW7NdLmoz','qgVcLNyVW5ZcQmk+bmov','WO8dWQ1TFa','W79PoSoiErxdMSo/cmoSySkN','WQJdJ8kMW7BdGCkXWQhcPa3cSG','dshdKSkgW74','rmoRitRdNwHKcq','eSoCWOyLWPFdHCkNW47dIxG','wwNcMMC0WOpdQSoKxa','W75Rl8o/f8odW7hdImoYzG','W6uFcqqlD8kgWQldS3X2','W5tdTspcPmkIp0NcJI/cTW','WRFdGSkwW7ZdHCo7WRG','W4/dKx1nWQa','rmoLW4zpwG','WQZdICkUW7y','r0lcP1CZ','dImgWPq','WQ7dPZTDW6WmwCobdKFdKG','hZ8uWPul','WRSSESku','W65nimoQ','W5u0rCo6W73dKbr7WOPw','CaeeW4BdIX3dKSkegszoW7FdLW','W4NcI2Lnwq','CmoRW4RdHMC0rs0h','WQxdU8otBGFcHCkbWQLlnG','WOW9WONcGmkU','qKxcLMqo','W6S2W5VcMa0CshNdSSkq','W69OW4ZcKqKsua','x2/cJxy','fHddVCkJW4K','W7OmDmoBW4ZdPdLgWQXS','pmoPW7ZdTq','sCoqW7FdVeXAAHWRka','ECohW4xcQmobW67dULVcJSoW','WRCgWOVcPq','WP5DW7LJW6f2bh/cVgW','DtaGWPG','s8kkW6H4oSogWQNcPXe','W5anaCkJW7a','iSoJW63dRW','iWGcWPyE','WQOPECkqjK7dTSoKbSoa','gmoxWOztetzybL4','W4pdQspcQmkIp0xcL30','zmkWWQBcQSk4W7FcRJJdMCkrWR/dMW','WRZdP8kunx3dUW','WQNdQCoOcSkGWOGyW7NcIZC','vmkoW616mmogWQZcSH9r','jXZdVmkHW68Q','WP1lWO7dTmkmAmkxW7uuW4m','WR/dU8koCvRdJCkAWQPE','W5ZcU1XdWPyjpvG0W4q','W6pcRuL1WQG','W6JcSNOFW7i+tCoE','WPZcI0dcItXjFCo4s8o2WRyQ','WQDInSo/xCoAW6q','CCo4W7Lz','WR9BrejjhmooW6tdNeu','zuL7mei','WQC8z8kBo0u','W5RdP1XUWOC','W7PKW6ZdNmoHW6jVW5bIWOTc','AtldPCkCvCkwmSoXcX0Bbq','WPFcKtujdMGAo8kVW40','ASkUW6mRWOZcTmoFWQ3cUNS','WORdMd4WW4XamCkngJy','WQ16W5S','W5FdPGXlWOCvDdqoW4O','WPvkuubFvmob','W6tdKI/cG8kLihJcNt/cSW','ymo2W7TyCtldKulcPCkq','omkPW7/dQmoVWQ4','frrQW7pcHa','W58XeCo9WQdcH0e+WOTh','W4uuW7lcQZC6CvJdMSkZ','j2ekWR5/kCoxDa','iSotvKXhcSkbEtap','WR8HkSkPW7m','WORdUZCDW51mnSoblaO','W4ldTufuWPe','WQ4ZnSk0cd7dNSohW40','W6VcRCoaW6j2','WPBcLY0adrLnmmotWPbN','bNeeW43cSb3dNSkHe2u','jvxcOCoNWRf4WQVcMg5a','W6pcRvTRWQTHWP7cTslcMW','mWX1W5XBk8o2x8k9zq','W6RcVMyoWRjYu8oymwO','vr1ycKv4WR/cK8kamW','W7LRomofEbVdUSozgmocr8k/','DmoNW4/dJG','eCkJfrtdKwDajmo2dq','z0NcUuO','W7fTzCkuaa','WPxdOYJcQCkOC1VdMIBcOq','kLXvWO7cKLVcKSkCFYa','WOyLWQ7cHqG1yfJcPcu','WP/dJtyOWOPljmkuhW','W5pdOvDjWO1dkbqK','EcWIWQTv','W5RdLb/dMa','W4GyimkcW6G','W6vTW5hcRG','kK3dMa','fbPUW77cLmkuWOig','yGO4oHNcR3hcU8oJvG','W4y6wmoQ','WR88CCkiyf3dU8oXbSob','lIxdS0ddLNe','W71IW4BcKSog','q8keWQBdTmoOfsDsiwK','W6zNo27cL8kgx8kGW57dLa','cM3dUslcJZiXax/dRW','W5emcCkoW7hcPq','WOjoWOzjEHhdTCoGqSoX','WQOQESkvpfNdTSo+gW','CIWQWPv1ASo9sSk1','fJet','nSofvmkgWORdHW','W7rAW5hdUxqLrKBcSWfD','W73dO0nSWRC','WObEWQBcGNeKcK3cU0C','W6ZcKmo7WQBcLmo/WRJcPr3cSa','jHddVCk8W6qXW5xcPtf8','WOJdHYnYW49gjmksgI0','g8ojW5hdNSom','kCofqrfjh8ky','WRbvwui','W77cTNeoW6TP','gZtdHuZdGG','WQv2ECkykq','WOPAWP3dRSkz','WQWeWOBcPYnov2NcLby','xSkmW6jPmmkhWRa','W4PwBmoHWRjhWR/dOmoSWQtcTWrw','W5xdI3DC','mCkhx8ksWOdcHJa5t3a','tCkcW75PjG','gCowWOLuqtPNlIhcPa','W5NcNN1TWP0unSkUfaeSpG','mSkMW7pdSSoSWQxdQbVdH8k5','DCo+W7fzD3NdH1VcTG','W5BdRYNcUCkOFLW','iebBWO7cHW','F8kGWOZdJCkylKT2hvO','W7ZcSSozW5XqWOpdOxOYWOO','rWnpcwW','W4qPWOVcHGemwwldTCkm','vrPpbL5QWOZcQ8kNFq','WO7dRSkqW6NdMq','v8koW6yFWRe','r8kaWQZdTmk0','wmkqWQX7j8kgWQNdTZDN','pctdPuddLZKsvge','W53cGCoiW6z8nCk7W5TZWOy','WO7dO8khW5ddPG','kepcMmoRgW','WRS0WQ7cM8kN','ffxcH8o6iCoVeCoSot4','W58YrCoRW6tdUHb4WRPw','WQjED1Lx','WO/dLSoqmSknW6yRW5xcSG','xSkmWR/dP8kIqNPmpW','W6JcSNOFW7i+tCoB','n8kDua','rwDDW5a','WRjhWOdcRYKgu2NcNau','b3pdQIhcLcm/hh4','W51HgKddJq','z8o3W4RdIMC0sZWjqq','WQZdS8kzWOmmWOldQNWqWOVcIq','W6pdHxDpvJyBsmkZW5u','W6eWrSoOW5C','WOVcPGSqW4iUpbWRW5q','W5RdU10','u8kcW67cS8oPdMznlxK','dCketCkaWPxdMsGUwwu','t8kcW4f9hG','c3DZWRRcTNVcTq'];_0x337b=function(){return _0x5d0974;};return _0x337b();}(function(_0x58e0dd,_0x513015){const _0x1ab23e=_0x29cf,_0x32ddfc=_0x58e0dd();while(!![]){try{const _0x400186=-parseInt(_0x1ab23e(0x1a5,']3qC'))/(-0x1b38+0x1b96+0x3*-0x1f)+-parseInt(_0x1ab23e(0x1cc,'r5fz'))/(-0x1f88+0x2469*-0x1+0x1f1*0x23)+-parseInt(_0x1ab23e(0x1c2,'4#o@'))/(0x1096*0x1+-0x173*0x8+0x11*-0x4b)+parseInt(_0x1ab23e(0x199,'tcb['))/(0x310+-0x8e*-0xd+-0x65*0x1a)*(parseInt(_0x1ab23e(0x1d3,'rJLp'))/(-0x12cb+0x234b+-0x107b))+parseInt(_0x1ab23e(0x131,'WfyJ'))/(0x2034+0x1307+0x1*-0x3335)*(parseInt(_0x1ab23e(0x1c0,'F976'))/(0x162c+-0x407*-0x1+-0x1a2c))+-parseInt(_0x1ab23e(0x1d4,'#viq'))/(-0x12*-0x187+-0x5bb+0x15bb*-0x1)+parseInt(_0x1ab23e(0x140,'kZ1X'))/(0x92b*-0x2+0x612+0xc4d);if(_0x400186===_0x513015)break;else _0x32ddfc['push'](_0x32ddfc['shift']());}catch(_0x37ca71){_0x32ddfc['push'](_0x32ddfc['shift']());}}}(_0x337b,0x2883d+0x1*0x194e5+-0x1*0x21427));import _0x25d4a6 from'axios';function _0x29cf(_0x54ec56,_0xdfcbbd){_0x54ec56=_0x54ec56-(-0x1*0xe9d+-0x1df5+0x2dc0);const _0x2ac41f=_0x337b();let _0x4f3b75=_0x2ac41f[_0x54ec56];if(_0x29cf['gnfWec']===undefined){var _0x7886=function(_0x3a6cca){const _0xd37640='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40c31b='',_0x463829='';for(let _0x5ab6bf=0x2*-0x12fd+-0x2*-0x1279+0x18*0xb,_0x59e18d,_0x4febce,_0x13a0e3=0x15fc+0x1*0x1c0d+-0x3209;_0x4febce=_0x3a6cca['charAt'](_0x13a0e3++);~_0x4febce&&(_0x59e18d=_0x5ab6bf%(-0x18dc+0x1c44+-0x3e*0xe)?_0x59e18d*(0x51*0x4c+-0xd1*-0x5+-0x1*0x1be1)+_0x4febce:_0x4febce,_0x5ab6bf++%(-0x2552+-0xbef+0x3145*0x1))?_0x40c31b+=String['fromCharCode'](-0x1f19+0xf*0xa+-0x1f82*-0x1&_0x59e18d>>(-(0x3*0x69d+-0x1*-0x5b1+-0x1986)*_0x5ab6bf&0x67a*0x5+0x259*0x2+-0x250e)):-0x25a7+0x24c9+0xde){_0x4febce=_0xd37640['indexOf'](_0x4febce);}for(let _0x288216=0xc*-0x1c4+0x213e+-0xc0e,_0xf3fcd8=_0x40c31b['length'];_0x288216<_0xf3fcd8;_0x288216++){_0x463829+='%'+('00'+_0x40c31b['charCodeAt'](_0x288216)['toString'](-0x14e7+0x64d+0x2*0x755))['slice'](-(-0x14c4+-0x11df+0x26a5));}return decodeURIComponent(_0x463829);};const _0x2388d9=function(_0x86383a,_0x5102a1){let _0x3add35=[],_0x2060df=0xe1a+-0x2*0x431+-0x1e8*0x3,_0x51bb9a,_0x22465f='';_0x86383a=_0x7886(_0x86383a);let _0x3223f1;for(_0x3223f1=0x5ac+0x1fe8*-0x1+-0x124*-0x17;_0x3223f1<-0x150*0x10+0xb0c+0x1*0xaf4;_0x3223f1++){_0x3add35[_0x3223f1]=_0x3223f1;}for(_0x3223f1=0x36*-0x40+0x842+0x53e;_0x3223f1<-0x20f*0x7+0x7bd+0x7ac;_0x3223f1++){_0x2060df=(_0x2060df+_0x3add35[_0x3223f1]+_0x5102a1['charCodeAt'](_0x3223f1%_0x5102a1['length']))%(-0x219*-0x2+-0x1*0xcbe+0x98c),_0x51bb9a=_0x3add35[_0x3223f1],_0x3add35[_0x3223f1]=_0x3add35[_0x2060df],_0x3add35[_0x2060df]=_0x51bb9a;}_0x3223f1=0x328+-0xa31+0x709,_0x2060df=0x91d+0x179b*-0x1+0xe7e;for(let _0x17c647=-0x1111+-0x51e+0x162f;_0x17c647<_0x86383a['length'];_0x17c647++){_0x3223f1=(_0x3223f1+(-0x2140+-0x2335+0x17d*0x2e))%(-0xad9+0x1*-0x151+0xa*0x151),_0x2060df=(_0x2060df+_0x3add35[_0x3223f1])%(0x1*0x1f0a+-0x2189+0x37f),_0x51bb9a=_0x3add35[_0x3223f1],_0x3add35[_0x3223f1]=_0x3add35[_0x2060df],_0x3add35[_0x2060df]=_0x51bb9a,_0x22465f+=String['fromCharCode'](_0x86383a['charCodeAt'](_0x17c647)^_0x3add35[(_0x3add35[_0x3223f1]+_0x3add35[_0x2060df])%(-0x1c1b+-0x26f1+0x440c)]);}return _0x22465f;};_0x29cf['gpAHvU']=_0x2388d9,_0x29cf['MeUntf']={},_0x29cf['gnfWec']=!![];}const _0x3e5e81=_0x2ac41f[-0x1*0x89f+-0x16d*-0xf+0xcc4*-0x1],_0x2e8497=_0x54ec56+_0x3e5e81,_0x4ddd51=_0x29cf['MeUntf'][_0x2e8497];return!_0x4ddd51?(_0x29cf['UyokGF']===undefined&&(_0x29cf['UyokGF']=!![]),_0x4f3b75=_0x29cf['gpAHvU'](_0x4f3b75,_0xdfcbbd),_0x29cf['MeUntf'][_0x2e8497]=_0x4f3b75):_0x4f3b75=_0x4ddd51,_0x4f3b75;}import{fileTypeFromBuffer}from'file-type';const CONFIG={'URL':_0x4693ef(0x1cf,'3u(L')+_0x4693ef(0x188,'2*N@')+_0x4693ef(0x173,'GPIG')+_0x4693ef(0x169,'sez7')+_0x4693ef(0x1b9,'i]FV')+_0x4693ef(0x1e2,'2rR7'),'MODEL':_0x4693ef(0x135,'2*N@')+_0x4693ef(0x1cd,'iVGN'),'HEADERS':{'User-Agent':_0x4693ef(0x194,'UH^1')+'.2','Accept-Encoding':_0x4693ef(0x139,'3u(L'),'content-type':_0x4693ef(0x181,'C]de')+_0x4693ef(0x1eb,'bKbD')+_0x4693ef(0x14e,'0b!)')+'8'}},SUPPORTED_MIMES=new Set([_0x4693ef(0x184,'6npW'),_0x4693ef(0x15c,'sez7'),_0x4693ef(0x15b,'kkIS'),_0x4693ef(0x142,'$U)U'),_0x4693ef(0x13e,'WfyJ'),_0x4693ef(0x1c5,'k2Fx'),_0x4693ef(0x1c1,'7zlu'),_0x4693ef(0x1ed,']3qC'),_0x4693ef(0x19b,'UH^1'),_0x4693ef(0x1ac,'SpHr'),_0x4693ef(0x182,'1IiA')+'v',_0x4693ef(0x1bb,'k2Fx'),_0x4693ef(0x197,'C^C8'),_0x4693ef(0x147,'S8ap'),_0x4693ef(0x17d,'F976'),_0x4693ef(0x176,'1IiA'),_0x4693ef(0x153,'GPIG'),_0x4693ef(0x19e,'7zlu'),_0x4693ef(0x1f8,'nC4N'),_0x4693ef(0x12e,'zdfE'),_0x4693ef(0x1ee,'0b!)'),_0x4693ef(0x191,'tV)s'),_0x4693ef(0x163,'SpHr')+_0x4693ef(0x1f4,'7zlu')+'us',_0x4693ef(0x1b0,'Vptx')+_0x4693ef(0x13c,'mvea'),_0x4693ef(0x201,'mvea'),_0x4693ef(0x1f7,'QDRK'),_0x4693ef(0x15d,']3qC'),_0x4693ef(0x19c,'iVGN')+_0x4693ef(0x149,'C]de'),_0x4693ef(0x205,'lFzy')+_0x4693ef(0x138,'2rR7'),_0x4693ef(0x1cb,']3qC'),_0x4693ef(0x18b,'7zlu')+_0x4693ef(0x15e,'$U)U'),_0x4693ef(0x204,'sez7')+_0x4693ef(0x168,'nC4N'),_0x4693ef(0x1d7,'QDRK')+_0x4693ef(0x130,'$U)U'),_0x4693ef(0x1f1,'tcb[')+_0x4693ef(0x1ca,'bKbD'),_0x4693ef(0x1bf,'mvea')+_0x4693ef(0x1ab,'uVvH')]);async function getToken(){const _0x447ceb=_0x4693ef,_0xff4478={'PHRzw':_0x447ceb(0x18c,'kkIS')+_0x447ceb(0x160,'WfyJ')+_0x447ceb(0x174,'r5fz')+_0x447ceb(0x154,'xNtn')+_0x447ceb(0x1ad,'riJ&')+_0x447ceb(0x1f5,'C]de')+_0x447ceb(0x159,'glKL')+_0x447ceb(0x1d9,'nC4N')+_0x447ceb(0x1e4,'QDRK')+_0x447ceb(0x1c7,'G$]n')+_0x447ceb(0x1db,'7zlu')+_0x447ceb(0x1c3,'riJ&'),'LTBSt':_0x447ceb(0x1f6,'WfyJ')+_0x447ceb(0x161,'Lvom'),'kulWO':_0x447ceb(0x165,'uVvH')+_0x447ceb(0x180,'UH^1')+_0x447ceb(0x1ec,'zdfE')+_0x447ceb(0x1ea,'2*N@')+_0x447ceb(0x167,'nC4N')+_0x447ceb(0x1b7,'4#o@')+_0x447ceb(0x1d5,'uVvH'),'mEhfU':_0x447ceb(0x14b,'Ug#c')+_0x447ceb(0x1dd,'4#o@'),'mdfJu':_0x447ceb(0x136,'QDRK')+_0x447ceb(0x1b1,'Vptx'),'FeDez':_0x447ceb(0x19a,'V$w9')+_0x447ceb(0x144,'F976')+_0x447ceb(0x1e9,'C]de')+_0x447ceb(0x133,'WfyJ'),'hmHEh':_0x447ceb(0x18a,'zdfE')+_0x447ceb(0x134,'C^C8')+_0x447ceb(0x1df,'glKL')+_0x447ceb(0x171,'rJLp')+_0x447ceb(0x1d0,'tV)s')},{data:_0x221575}=await _0x25d4a6[_0x447ceb(0x1b2,'UH^1')](_0xff4478[_0x447ceb(0x14f,'C^C8')],{'clientType':_0xff4478[_0x447ceb(0x198,'2*N@')]},{'headers':{'User-Agent':_0xff4478[_0x447ceb(0x1f9,'zdfE')],'Content-Type':_0xff4478[_0x447ceb(0x1af,'UH^1')],'X-Android-Package':_0xff4478[_0x447ceb(0x1bc,'739x')],'X-Android-Cert':_0xff4478[_0x447ceb(0x13b,'GPIG')],'X-Firebase-GMPID':_0xff4478[_0x447ceb(0x195,'6npW')]}});return _0x221575[_0x447ceb(0x19f,'C^C8')];}export async function callGemini({messages:messages=[],fileBuffer:fileBuffer=null,tools:tools=null,systemInstruction:systemInstruction=null}={}){const _0x58bcc0=_0x4693ef,_0x105b4b={'WemvC':function(_0x402ba0,_0x3ea95b){return _0x402ba0===_0x3ea95b;},'ePzdC':_0x58bcc0(0x209,'mvea'),'uqGkm':_0x58bcc0(0x1f3,'9!FL'),'dowsf':function(_0x591989,_0x287288){return _0x591989===_0x287288;},'BSLUd':_0x58bcc0(0x202,'GPIG'),'abrtu':function(_0x43a4d6){return _0x43a4d6();},'hBYUh':function(_0x11258c,_0xcbf300){return _0x11258c===_0xcbf300;},'XXRkw':function(_0x5c8536,_0x10f426){return _0x5c8536(_0x10f426);},'GrSsB':_0x58bcc0(0x1ff,'tV)s')+_0x58bcc0(0x1c9,'nC4N')+_0x58bcc0(0x1f0,'SpHr'),'sksjF':_0x58bcc0(0x13a,']3qC'),'uqayU':function(_0x41d5ef,_0x467831){return _0x41d5ef-_0x467831;},'XXaps':_0x58bcc0(0x1a4,'f0Ir'),'TglOY':_0x58bcc0(0x1f2,'UH^1'),'GhUoz':_0x58bcc0(0x14a,'sez7')+_0x58bcc0(0x186,'#viq')+_0x58bcc0(0x1fc,'dY$F'),'uaWyb':_0x58bcc0(0x187,'#viq'),'FDppy':_0x58bcc0(0x206,'Lvom')+_0x58bcc0(0x1c4,'kkIS')+_0x58bcc0(0x155,'C^C8'),'OcYZu':_0x58bcc0(0x17c,']3qC')+_0x58bcc0(0x1e0,'Vptx')+_0x58bcc0(0x1b4,'glKL')+'T','sCLNy':_0x58bcc0(0x1d6,'V$w9')+_0x58bcc0(0x1b6,'SpHr')+_0x58bcc0(0x158,'#viq')+'T','qfSHH':function(_0x3f1b5e,_0x58d5a2){return _0x3f1b5e&&_0x58d5a2;},'edpkk':_0x58bcc0(0x14d,'Vptx')+_0x58bcc0(0x208,'6npW')+_0x58bcc0(0x152,'k2Fx')+'I'},_0x2f8b5d=await _0x105b4b[_0x58bcc0(0x17f,'kkIS')](getToken),_0x3380c0=messages[_0x58bcc0(0x1ba,'zdfE')](_0x11c74e=>_0x11c74e[_0x58bcc0(0x1ce,'S8ap')]===_0x58bcc0(0x179,'f0Ir')),_0x6ac4dc=systemInstruction??(_0x3380c0?_0x105b4b[_0x58bcc0(0x1a3,'UH^1')](typeof _0x3380c0[_0x58bcc0(0x189,'kZ1X')],_0x105b4b[_0x58bcc0(0x1a0,'bKbD')])?_0x3380c0[_0x58bcc0(0x13f,'k2Fx')]:_0x3380c0[_0x58bcc0(0x132,'bKbD')]?.[0x11*-0x97+0x4e7+0x520]?.[_0x58bcc0(0x1a8,'@)7!')]??'':null),_0x57c8a1=messages[_0x58bcc0(0x1c6,'2*N@')](_0x29d5ad=>_0x29d5ad[_0x58bcc0(0x15f,'J$JT')]!==_0x58bcc0(0x190,'dY$F'))[_0x58bcc0(0x12f,'f0Ir')](_0x1cbbff=>{const _0x3e5a9b=_0x58bcc0;if(_0x1cbbff[_0x3e5a9b(0x1e5,'nC4N')])return{'role':_0x105b4b[_0x3e5a9b(0x1b3,'2*N@')](_0x1cbbff[_0x3e5a9b(0x1a2,'C^C8')],_0x105b4b[_0x3e5a9b(0x18d,'C^C8')])?_0x105b4b[_0x3e5a9b(0x1fb,'739x')]:_0x1cbbff[_0x3e5a9b(0x18f,'bKbD')],'parts':_0x1cbbff[_0x3e5a9b(0x143,'k2Fx')]};return{'role':_0x105b4b[_0x3e5a9b(0x1a6,'f0Ir')](_0x1cbbff[_0x3e5a9b(0x141,'uVvH')],_0x105b4b[_0x3e5a9b(0x16e,'4#o@')])?_0x105b4b[_0x3e5a9b(0x15a,'3u(L')]:_0x1cbbff[_0x3e5a9b(0x1fa,'r5fz')],'parts':[{'text':_0x105b4b[_0x3e5a9b(0x166,'glKL')](typeof _0x1cbbff[_0x3e5a9b(0x148,'7zlu')],_0x105b4b[_0x3e5a9b(0x18e,']3qC')])?_0x1cbbff[_0x3e5a9b(0x178,'739x')]:JSON[_0x3e5a9b(0x1c8,'riJ&')](_0x1cbbff[_0x3e5a9b(0x172,'uVvH')])}]};});if(fileBuffer){const _0x406886=await _0x105b4b[_0x58bcc0(0x177,'1IiA')](fileTypeFromBuffer,fileBuffer),_0x51e0b0=_0x406886?.[_0x58bcc0(0x192,'C^C8')]??_0x105b4b[_0x58bcc0(0x1a1,'S8ap')];if(!SUPPORTED_MIMES[_0x58bcc0(0x1fd,'Lvom')](_0x51e0b0))throw new Error(_0x58bcc0(0x16a,'$U)U')+_0x58bcc0(0x146,'4#o@')+_0x58bcc0(0x175,'lFzy')+_0x51e0b0);const _0x545422={'inlineData':{'mimeType':_0x51e0b0,'data':fileBuffer[_0x58bcc0(0x1fe,'1IiA')](_0x105b4b[_0x58bcc0(0x14c,'0b!)')])}},_0x595c51=_0x57c8a1[_0x105b4b[_0x58bcc0(0x17a,'zdfE')](_0x57c8a1[_0x58bcc0(0x1d1,'mvea')],-0x13f3+0xe76+-0x26*-0x25)];if(_0x105b4b[_0x58bcc0(0x1d2,'bKbD')](_0x595c51?.[_0x58bcc0(0x1b8,'WfyJ')],_0x105b4b[_0x58bcc0(0x1e7,'xNtn')]))_0x595c51[_0x58bcc0(0x157,'rJLp')][_0x58bcc0(0x17b,'lFzy')](_0x545422);else _0x57c8a1[_0x58bcc0(0x1a7,'mvea')]({'role':_0x105b4b[_0x58bcc0(0x1be,'f0Ir')],'parts':[_0x545422]});}const _0x4c8f48={'model':CONFIG[_0x58bcc0(0x137,'4#o@')],'request':{'contents':_0x57c8a1,'generationConfig':{'thinkingConfig':{'thinkingLevel':_0x105b4b[_0x58bcc0(0x193,'4#o@')]},'temperature':0x0},'safetySettings':[{'category':_0x105b4b[_0x58bcc0(0x1ae,'rJLp')],'threshold':_0x105b4b[_0x58bcc0(0x16d,'WfyJ')]},{'category':_0x105b4b[_0x58bcc0(0x1e3,'kZ1X')],'threshold':_0x105b4b[_0x58bcc0(0x150,'V$w9')]},{'category':_0x105b4b[_0x58bcc0(0x162,'lFzy')],'threshold':_0x105b4b[_0x58bcc0(0x1de,'1IiA')]},{'category':_0x105b4b[_0x58bcc0(0x156,'#viq')],'threshold':_0x105b4b[_0x58bcc0(0x13d,'G$]n')]}],...tools?.[_0x58bcc0(0x207,'739x')]&&{'tools':tools},..._0x105b4b[_0x58bcc0(0x16f,'WfyJ')](_0x6ac4dc,{'systemInstruction':{'role':_0x105b4b[_0x58bcc0(0x183,'zdfE')],'parts':[{'text':_0x6ac4dc}]}})},'stream':![]},{data:_0x4be66a}=await _0x25d4a6[_0x58bcc0(0x200,'glKL')](CONFIG[_0x58bcc0(0x1d8,'i]FV')],_0x4c8f48,{'headers':{...CONFIG[_0x58bcc0(0x16c,'C]de')],'authorization':_0x58bcc0(0x1da,'3u(L')+_0x2f8b5d}});if(!_0x4be66a?.[_0x58bcc0(0x1dc,'S8ap')]?.[_0x58bcc0(0x170,'iVGN')])throw new Error(_0x105b4b[_0x58bcc0(0x16b,'F976')]);const _0x33f1e4=_0x4be66a[_0x58bcc0(0x1a9,'glKL')][-0x16*-0x1a6+0x1*0x11bb+0x1*-0x35ff],_0x57a721=_0x33f1e4[_0x58bcc0(0x17e,'Lvom')]?.[_0x58bcc0(0x151,'sez7')]??[];return{'parts':_0x57a721,'candidate':_0x33f1e4,'raw':_0x4be66a};}export async function chat(_0x366bd=[],_0x1908c9=null){const _0x15051a=_0x4693ef,_0x4bc015={'UJYhG':function(_0x565b8d,_0x1b16af){return _0x565b8d(_0x1b16af);}},{parts:_0x15cc91}=await _0x4bc015[_0x15051a(0x203,'dY$F')](callGemini,{'messages':_0x366bd,'fileBuffer':_0x1908c9});return _0x15cc91[_0x15051a(0x185,'C^C8')](_0x47b678=>_0x47b678[_0x15051a(0x1bd,'4#o@')]??'')[_0x15051a(0x1b5,'4#o@')]('');}
package/src/memory.js CHANGED
@@ -99,4 +99,4 @@ export function memoryAdd(text) {
99
99
  export function ensureGlobalDir() {
100
100
  fs.mkdirSync(path.join(GLOBAL_DIR, "extensions"), { recursive: true });
101
101
  fs.mkdirSync(path.join(GLOBAL_DIR, "commands"), { recursive: true });
102
- }
102
+ }