@pensar/apex 0.0.30-canary.0 → 0.0.31-canary.0
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/bin/pensar.js +11 -14
- package/build/index.js +5 -99
- package/package.json +8 -1
package/bin/pensar.js
CHANGED
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
import { fileURLToPath } from "url";
|
|
13
13
|
import { dirname, join } from "path";
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
// Import package.json directly so Bun can embed it at compile time
|
|
16
|
+
import packageJson from "../package.json";
|
|
15
17
|
|
|
16
18
|
const __filename = fileURLToPath(import.meta.url);
|
|
17
19
|
const __dirname = dirname(__filename);
|
|
@@ -20,9 +22,6 @@ const __dirname = dirname(__filename);
|
|
|
20
22
|
const args = process.argv.slice(2);
|
|
21
23
|
const command = args[0];
|
|
22
24
|
|
|
23
|
-
// Read package.json for version
|
|
24
|
-
const packageJsonPath = join(__dirname, "..", "package.json");
|
|
25
|
-
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
26
25
|
const version = packageJson.version;
|
|
27
26
|
|
|
28
27
|
// Handle different commands
|
|
@@ -57,7 +56,11 @@ if (command === "benchmark") {
|
|
|
57
56
|
|
|
58
57
|
// Import and run pentest
|
|
59
58
|
await import(pentestPath);
|
|
60
|
-
} else if (
|
|
59
|
+
} else if (
|
|
60
|
+
command === "version" ||
|
|
61
|
+
command === "--version" ||
|
|
62
|
+
command === "-v"
|
|
63
|
+
) {
|
|
61
64
|
// Show version
|
|
62
65
|
console.log(`v${version}`);
|
|
63
66
|
} else if (command === "help" || command === "--help" || command === "-h") {
|
|
@@ -113,9 +116,7 @@ if (command === "benchmark") {
|
|
|
113
116
|
);
|
|
114
117
|
console.log();
|
|
115
118
|
console.log("Pentest Usage:");
|
|
116
|
-
console.log(
|
|
117
|
-
" pensar pentest --target <target> [options]"
|
|
118
|
-
);
|
|
119
|
+
console.log(" pensar pentest --target <target> [options]");
|
|
119
120
|
console.log();
|
|
120
121
|
console.log("Pentest Options:");
|
|
121
122
|
console.log(
|
|
@@ -149,9 +150,7 @@ if (command === "benchmark") {
|
|
|
149
150
|
);
|
|
150
151
|
console.log();
|
|
151
152
|
console.log("Header Modes (for quicktest, pentest, swarm):");
|
|
152
|
-
console.log(
|
|
153
|
-
" none No custom headers added to requests"
|
|
154
|
-
);
|
|
153
|
+
console.log(" none No custom headers added to requests");
|
|
155
154
|
console.log(
|
|
156
155
|
" default Add 'User-Agent: pensar-apex' to all offensive requests"
|
|
157
156
|
);
|
|
@@ -170,9 +169,7 @@ if (command === "benchmark") {
|
|
|
170
169
|
console.log(
|
|
171
170
|
" pensar quicktest --target api.example.com --objective 'API testing' --headers custom --header 'User-Agent: pensar_client123'"
|
|
172
171
|
);
|
|
173
|
-
console.log(
|
|
174
|
-
" pensar pentest --target example.com"
|
|
175
|
-
);
|
|
172
|
+
console.log(" pensar pentest --target example.com");
|
|
176
173
|
console.log(
|
|
177
174
|
" pensar pentest --target example.com --headers custom --header 'User-Agent: pensar_client123'"
|
|
178
175
|
);
|
package/build/index.js
CHANGED
|
@@ -27102,82 +27102,10 @@ async function render(node, rendererConfig = {}) {
|
|
|
27102
27102
|
_render(import_react7.default.createElement(AppContext.Provider, { value: { keyHandler: renderer.keyInput, renderer } }, import_react7.default.createElement(ErrorBoundary, null, node)), renderer.root);
|
|
27103
27103
|
}
|
|
27104
27104
|
|
|
27105
|
-
// src/tui/components/ascii-art.tsx
|
|
27106
|
-
import sharp from "sharp";
|
|
27107
|
-
|
|
27108
27105
|
// node_modules/@opentui/react/jsx-dev-runtime.js
|
|
27109
27106
|
var import_jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
|
|
27110
27107
|
|
|
27111
|
-
// src/tui/components/ascii-art.tsx
|
|
27112
|
-
var ASCII_SETS = {
|
|
27113
|
-
simple: " .:-=+*#%@",
|
|
27114
|
-
detailed: " .'`^\",:;Il!i><~+_-?][}{1)(|\\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",
|
|
27115
|
-
medium: " .,:;i1tfLCG08@",
|
|
27116
|
-
blocks: " ░▒▓█",
|
|
27117
|
-
default: " .:-=+*#%@"
|
|
27118
|
-
};
|
|
27119
|
-
var ASCII_CHARS = ASCII_SETS.medium;
|
|
27120
|
-
async function convertImageToColoredAscii(path2, scale = 1, maxWidth, aspectRatio = 0.5, invert = false) {
|
|
27121
|
-
const metadata = await sharp(path2, { density: 300 }).metadata();
|
|
27122
|
-
const originalWidth = metadata.width ?? 100;
|
|
27123
|
-
const originalHeight = metadata.height ?? 100;
|
|
27124
|
-
let scaledWidth = Math.round(originalWidth * scale);
|
|
27125
|
-
let scaledHeight = Math.round(originalHeight * scale);
|
|
27126
|
-
scaledHeight = Math.round(scaledHeight * aspectRatio);
|
|
27127
|
-
if (maxWidth && scaledWidth > maxWidth) {
|
|
27128
|
-
const ratio = maxWidth / scaledWidth;
|
|
27129
|
-
scaledWidth = maxWidth;
|
|
27130
|
-
scaledHeight = Math.round(scaledHeight * ratio);
|
|
27131
|
-
}
|
|
27132
|
-
const resizeOptions = {
|
|
27133
|
-
width: scaledWidth,
|
|
27134
|
-
height: scaledHeight,
|
|
27135
|
-
fit: "fill",
|
|
27136
|
-
kernel: "lanczos3",
|
|
27137
|
-
background: { r: 0, g: 0, b: 0, alpha: 0 }
|
|
27138
|
-
};
|
|
27139
|
-
const colorBuffer = await sharp(path2, { density: 300 }).resize(resizeOptions).ensureAlpha().raw().toBuffer({ resolveWithObject: true });
|
|
27140
|
-
const grayscaleBuffer = await sharp(colorBuffer.data, {
|
|
27141
|
-
raw: {
|
|
27142
|
-
width: colorBuffer.info.width,
|
|
27143
|
-
height: colorBuffer.info.height,
|
|
27144
|
-
channels: 4,
|
|
27145
|
-
premultiplied: false
|
|
27146
|
-
}
|
|
27147
|
-
}).grayscale().raw().toBuffer({ resolveWithObject: true });
|
|
27148
|
-
const { width: w, height: h2 } = grayscaleBuffer.info;
|
|
27149
|
-
const result = [];
|
|
27150
|
-
for (let y = 0;y < h2; y++) {
|
|
27151
|
-
const row = [];
|
|
27152
|
-
for (let x = 0;x < w; x++) {
|
|
27153
|
-
const grayIdx = y * w + x;
|
|
27154
|
-
const colorIdx = (y * w + x) * 4;
|
|
27155
|
-
const alpha = colorBuffer.data[colorIdx + 3] ?? 0;
|
|
27156
|
-
if (alpha < 128) {
|
|
27157
|
-
row.push({
|
|
27158
|
-
char: " ",
|
|
27159
|
-
r: 0,
|
|
27160
|
-
g: 0,
|
|
27161
|
-
b: 0
|
|
27162
|
-
});
|
|
27163
|
-
continue;
|
|
27164
|
-
}
|
|
27165
|
-
let brightness = grayscaleBuffer.data[grayIdx] ?? 0;
|
|
27166
|
-
if (invert) {
|
|
27167
|
-
brightness = 255 - brightness;
|
|
27168
|
-
}
|
|
27169
|
-
const charIndex = Math.floor(brightness / 255 * (ASCII_CHARS.length - 1));
|
|
27170
|
-
row.push({
|
|
27171
|
-
char: ASCII_CHARS[charIndex] ?? " ",
|
|
27172
|
-
r: colorBuffer.data[colorIdx] ?? 0,
|
|
27173
|
-
g: colorBuffer.data[colorIdx + 1] ?? 0,
|
|
27174
|
-
b: colorBuffer.data[colorIdx + 2] ?? 0
|
|
27175
|
-
});
|
|
27176
|
-
}
|
|
27177
|
-
result.push(row);
|
|
27178
|
-
}
|
|
27179
|
-
return result;
|
|
27180
|
-
}
|
|
27108
|
+
// src/tui/components/ascii-art-component.tsx
|
|
27181
27109
|
function ColoredAsciiArt({ ascii, title }) {
|
|
27182
27110
|
return /* @__PURE__ */ import_jsx_dev_runtime2.jsxDEV("box", {
|
|
27183
27111
|
position: "absolute",
|
|
@@ -76874,33 +76802,11 @@ function ModelsDisplay({
|
|
|
76874
76802
|
}, undefined, false, undefined, this);
|
|
76875
76803
|
}
|
|
76876
76804
|
|
|
76805
|
+
// src/tui/generated-ascii-art.json
|
|
76806
|
+
var generated_ascii_art_default = [[{ char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 91 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 91 }, { char: ";", r: 32, g: 196, b: 91 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 31, g: 194, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }], [{ char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 30, g: 193, b: 91 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 35, g: 208, b: 98 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 30, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 203, b: 95 }, { char: ";", r: 33, g: 198, b: 94 }, { char: ";", r: 32, g: 195, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ":", r: 35, g: 210, b: 99 }, { char: ";", r: 32, g: 196, b: 91 }, { char: ";", r: 32, g: 196, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 34, g: 204, b: 96 }, { char: ";", r: 31, g: 196, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }], [{ char: ";", r: 30, g: 195, b: 90 }, { char: ";", r: 35, g: 207, b: 98 }, { char: ";", r: 32, g: 196, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 35, g: 207, b: 98 }, { char: ";", r: 31, g: 196, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 197, b: 91 }, { char: ";", r: 34, g: 202, b: 96 }, { char: ";", r: 32, g: 196, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 34, g: 205, b: 97 }, { char: ";", r: 32, g: 195, b: 91 }], [{ char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 195, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 34, g: 202, b: 95 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 198, b: 94 }, { char: ";", r: 33, g: 197, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 91 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 91 }], [{ char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 195, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 195, b: 92 }], [{ char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 196, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 91 }], [{ char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 196, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 193, b: 91 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 195, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 92 }], [{ char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 30, g: 194, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 91 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 33, g: 201, b: 95 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 200, b: 94 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 31, g: 196, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 91 }], [{ char: ";", r: 31, g: 195, b: 91 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 195, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 195, b: 92 }, { char: ";", r: 35, g: 208, b: 98 }, { char: ";", r: 32, g: 195, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 196, b: 90 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 34, g: 202, b: 95 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 34, g: 204, b: 96 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 91 }, { char: ";", r: 35, g: 209, b: 99 }, { char: ";", r: 32, g: 196, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 90 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 91 }], [{ char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 34, g: 207, b: 98 }, { char: ";", r: 32, g: 195, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 30, g: 194, b: 91 }, { char: ";", r: 33, g: 199, b: 94 }, { char: ";", r: 33, g: 196, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 34, g: 203, b: 96 }, { char: ";", r: 30, g: 195, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 91 }, { char: ";", r: 35, g: 208, b: 98 }, { char: ";", r: 31, g: 195, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 92 }, { char: ";", r: 33, g: 198, b: 93 }, { char: ";", r: 31, g: 194, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 200, b: 94 }, { char: ";", r: 34, g: 205, b: 97 }, { char: ";", r: 31, g: 194, b: 92 }], [{ char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 197, b: 91 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 33, g: 202, b: 95 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 33, g: 199, b: 93 }, { char: ";", r: 34, g: 202, b: 95 }, { char: ";", r: 32, g: 196, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 194, b: 91 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ":", r: 35, g: 210, b: 99 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 33, g: 197, b: 92 }, { char: ";", r: 33, g: 196, b: 91 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 34, g: 205, b: 97 }, { char: ";", r: 33, g: 195, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }], [{ char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 196, b: 92 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 31, g: 196, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 197, b: 93 }, { char: ";", r: 33, g: 196, b: 91 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 195, b: 91 }, { char: ";", r: 31, g: 197, b: 91 }, { char: ";", r: 31, g: 197, b: 91 }, { char: ";", r: 31, g: 197, b: 91 }, { char: ";", r: 31, g: 197, b: 91 }, { char: ";", r: 31, g: 197, b: 91 }, { char: ";", r: 31, g: 197, b: 91 }, { char: ";", r: 31, g: 195, b: 91 }, { char: ";", r: 31, g: 195, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }], [{ char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 196, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }], [{ char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 91 }, { char: ";", r: 31, g: 197, b: 92 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 195, b: 91 }, { char: ";", r: 33, g: 195, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 194, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 195, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }], [{ char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 34, g: 205, b: 97 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ":", r: 35, g: 210, b: 99 }, { char: ";", r: 32, g: 196, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 194, b: 92 }, { char: ";", r: 32, g: 197, b: 93 }, { char: ":", r: 35, g: 210, b: 99 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ":", r: 35, g: 210, b: 99 }, { char: ";", r: 31, g: 195, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }], [{ char: ";", r: 31, g: 194, b: 90 }, { char: ";", r: 34, g: 204, b: 96 }, { char: ";", r: 33, g: 198, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 30, g: 193, b: 90 }, { char: ";", r: 34, g: 200, b: 94 }, { char: ";", r: 33, g: 196, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 34, g: 207, b: 98 }, { char: ";", r: 31, g: 195, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 91 }, { char: ";", r: 35, g: 208, b: 98 }, { char: ";", r: 32, g: 195, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 92 }, { char: ";", r: 33, g: 199, b: 94 }, { char: ";", r: 31, g: 193, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 34, g: 207, b: 98 }, { char: ";", r: 30, g: 195, b: 90 }], [{ char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 30, g: 194, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 35, g: 208, b: 98 }, { char: ";", r: 33, g: 196, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 91 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 34, g: 204, b: 96 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 34, g: 202, b: 96 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ":", r: 35, g: 210, b: 99 }, { char: ";", r: 32, g: 196, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 90 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 91 }], [{ char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 197, b: 92 }, { char: ";", r: 31, g: 196, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 196, b: 90 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 195, b: 91 }], [{ char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 196, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 194, b: 90 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 195, b: 91 }], [{ char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 195, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 91 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 195, b: 91 }], [{ char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 195, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 33, g: 196, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 33, g: 197, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 91 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 32, g: 195, b: 91 }], [{ char: ";", r: 33, g: 199, b: 94 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 195, b: 89 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 34, g: 200, b: 95 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 198, b: 94 }, { char: ";", r: 33, g: 196, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 90 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 31, g: 195, b: 92 }], [{ char: ";", r: 31, g: 195, b: 91 }, { char: ";", r: 35, g: 207, b: 98 }, { char: ";", r: 32, g: 196, b: 93 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 195, b: 92 }, { char: ";", r: 34, g: 205, b: 97 }, { char: ";", r: 32, g: 195, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 34, g: 203, b: 96 }, { char: ";", r: 31, g: 195, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 91 }, { char: ";", r: 35, g: 206, b: 97 }, { char: ";", r: 31, g: 195, b: 91 }], [{ char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 194, b: 91 }, { char: ";", r: 33, g: 200, b: 95 }, { char: ";", r: 33, g: 202, b: 95 }, { char: ";", r: 31, g: 196, b: 92 }, { char: ";", r: 31, g: 195, b: 91 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 33, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 34, g: 206, b: 97 }, { char: ";", r: 32, g: 195, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 35, g: 208, b: 98 }, { char: ";", r: 32, g: 196, b: 91 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 31, g: 195, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 32, g: 194, b: 92 }, { char: ";", r: 32, g: 196, b: 91 }, { char: ";", r: 33, g: 197, b: 93 }, { char: ";", r: 34, g: 202, b: 95 }, { char: ";", r: 31, g: 195, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }], [{ char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 196, b: 92 }, { char: ";", r: 32, g: 197, b: 93 }, { char: ";", r: 31, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 32, g: 195, b: 91 }, { char: ";", r: 32, g: 195, b: 92 }, { char: ";", r: 31, g: 196, b: 93 }, { char: ";", r: 32, g: 196, b: 90 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 31, g: 196, b: 91 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 32, g: 196, b: 92 }, { char: ";", r: 33, g: 196, b: 92 }, { char: ";", r: 30, g: 194, b: 92 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }, { char: " ", r: 0, g: 0, b: 0 }]];
|
|
76807
|
+
|
|
76877
76808
|
// src/tui/index.tsx
|
|
76878
|
-
|
|
76879
|
-
import { dirname as dirname2, join as join8 } from "path";
|
|
76880
|
-
import { existsSync as existsSync13 } from "fs";
|
|
76881
|
-
var __filename2 = fileURLToPath2(import.meta.url);
|
|
76882
|
-
var __dirname2 = dirname2(__filename2);
|
|
76883
|
-
function findImagePath() {
|
|
76884
|
-
const bundledPath = join8(__dirname2, "..", "pensar.svg");
|
|
76885
|
-
if (existsSync13(bundledPath)) {
|
|
76886
|
-
return bundledPath;
|
|
76887
|
-
}
|
|
76888
|
-
const devPath = join8(__dirname2, "..", "..", "pensar.svg");
|
|
76889
|
-
if (existsSync13(devPath)) {
|
|
76890
|
-
return devPath;
|
|
76891
|
-
}
|
|
76892
|
-
throw new Error("Could not find pensar.svg");
|
|
76893
|
-
}
|
|
76894
|
-
var CONFIG = {
|
|
76895
|
-
imagePath: findImagePath(),
|
|
76896
|
-
scale: 1,
|
|
76897
|
-
maxWidth: 50,
|
|
76898
|
-
aspectRatio: 0.5,
|
|
76899
|
-
invert: true,
|
|
76900
|
-
title: "Pensar Logo"
|
|
76901
|
-
};
|
|
76902
|
-
var coloredAscii = await convertImageToColoredAscii(CONFIG.imagePath, CONFIG.scale, CONFIG.maxWidth, CONFIG.aspectRatio, CONFIG.invert);
|
|
76903
|
-
console.log(`Generated colored ASCII: ${coloredAscii.length} rows x ${coloredAscii[0]?.length || 0} columns (scale: ${CONFIG.scale * 100}%)`);
|
|
76809
|
+
var coloredAscii = generated_ascii_art_default;
|
|
76904
76810
|
function App() {
|
|
76905
76811
|
const [appConfig, setAppConfig] = import_react30.useState(null);
|
|
76906
76812
|
const [focusIndex, setFocusIndex] = import_react30.useState(0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pensar/apex",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.31-canary.0",
|
|
4
4
|
"description": "AI-powered penetration testing CLI tool with terminal UI",
|
|
5
5
|
"module": "src/tui/index.tsx",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -20,6 +20,13 @@
|
|
|
20
20
|
],
|
|
21
21
|
"scripts": {
|
|
22
22
|
"build": "bun build src/tui/index.tsx --outdir build --target node --format esm --external sharp && bun build scripts/benchmark.ts --outdir build --target node --format esm --external sharp && bun build scripts/quicktest.ts --outdir build --target node --format esm --external sharp && bun build scripts/pentest.ts --outdir build --target node --format esm --external sharp && bun build scripts/swarm.ts --outdir build --target node --format esm --external sharp",
|
|
23
|
+
"generate:ascii": "bun run scripts/generate-ascii-art.ts",
|
|
24
|
+
"build:binary": "bun run generate:ascii && bun build src/cli.ts --compile --outfile pensar",
|
|
25
|
+
"build:binary:macos-arm64": "bun build src/cli.ts --compile --target=bun-darwin-arm64 --outfile dist/pensar-darwin-arm64",
|
|
26
|
+
"build:binary:macos-x64": "bun build src/cli.ts --compile --target=bun-darwin-x64 --outfile dist/pensar-darwin-x64",
|
|
27
|
+
"build:binary:linux-x64": "bun build src/cli.ts --compile --target=bun-linux-x64 --outfile dist/pensar-linux-x64",
|
|
28
|
+
"build:binary:linux-arm64": "bun build src/cli.ts --compile --target=bun-linux-arm64 --outfile dist/pensar-linux-arm64",
|
|
29
|
+
"build:binaries": "bun run generate:ascii && mkdir -p dist && bun run build:binary:macos-arm64 && bun run build:binary:macos-x64 && bun run build:binary:linux-x64 && bun run build:binary:linux-arm64",
|
|
23
30
|
"dev": "bun run scripts/watch.ts",
|
|
24
31
|
"dev:debug": "SHOW_CONSOLE=true bun run scripts/watch.ts",
|
|
25
32
|
"start": "bun run src/tui/index.tsx",
|