You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've got this code (sorry it's a bit long, didn't want to edit it for now) which I use as a small script with a "hacky" argument parser, which expects something like `./myscript someArgs -- someCommand someArgs`and this it stops parsing args when it spots "--", but `biome` is telling me that the "else" clause is unused, although I'm pretty sure it is used... not sure why?#!/usr/bin/env -S pnpm tsx
import { spawn } from "node:child_process";
/*** Environment Variable Loader
** This module can be used in two ways:
** 1. As a preload script with -r flag:
* tsx -r '@workspace/config/env-loader' src/index.ts
* (Requires ENV_LOADER_PACKAGES env var as a comma-separated list of packages)
** 2. As a CLI tool:
* tsx env-loader -p package1 -p package2 -v KEY=VALUE -v ANOTHER=VALUE -- command args
** It loads environment variables from the TypeScript config
* rather than from .env files, allowing for a single source of truth.
** The loader will always load the root ENV, then each specified package in order.
* If a variable is defined in multiple places, it will exit with an error.
*/
import { config } from "@workspace/config";
const exitWithMessage = (message: string) => {
console.error(`❌ env-loader: [${config.environment}] ${message}`);
process.exit(1);
};
// Log infos to stderr to avoid interfering with stdout
const logToStderr = (message: string) => {
console.error(`👉 env-loader: [${config.environment}] ${message}`);
};
// Parse package names and custom environment variables
let packageNames: string[] = [];
// Check if ENV_LOADER_PACKAGES is set (comma-separated list)
// eslint-disable-next-line turbo/no-undeclared-env-vars
const envPackages = process.env.ENV_LOADER_PACKAGES;if (envPackages) {
packageNames = envPackages
.split(",")
.map((p) => p.trim())
.filter(Boolean);
}
const customEnvVars: Record<string, string> = {};let commandString: string | undefined;
// CLI mode: parse arguments
const args = process.argv.slice(2);let i = 0;
// Process arguments as a stream
while (i < args.length) {
const arg = args[i];if (arg === "--") {
// End of options, rest is command
const commandArgs = args.slice(i + 1);if (commandArgs.length > 0) {
commandString = commandArgs.join("");
}
break;
} elseif (arg === "-p") {
// Package argument
if (i + 1 >= args.length) {
exitWithMessage("Error: -p flag requires a package name");
}
if (args[i + 1] === "--") {
exitWithMessage("Error: -p flag requires a package name, got -- instead");
}
if (args[i + 1].startsWith("-")) {
exitWithMessage(
`Error: -p flag requires a package name, got ${args[i + 1]} instead`,
);
}
packageNames.push(args[i + 1]);
i += 2; // Skip next arg (package name)
} elseif (arg === "-v") {
// Environment variable argument
if (i + 1 >= args.length) {
exitWithMessage("Error: -v flag requires a KEY=VALUE pair");
}
if (args[i + 1] === "--") {
exitWithMessage(
"Error: -v flag requires a KEY=VALUE pair, got -- instead",
);
}
const envString = args[i + 1];
const equalIndex = envString.indexOf("=");if (equalIndex <= 0) {
exitWithMessage(
`Error: -v flag requires a KEY=VALUE pair, got ${envString} instead`,
);
}
const key = envString.substring(0, equalIndex);
const value = envString.substring(equalIndex + 1);
customEnvVars[key] = value;
i += 2; // Skip next arg (env var)
} else {
// Unknown argument
exitWithMessage(`Error: Unrecognized argument: ${arg}`);
}
}
// Prepare to collect all environment variables
const allEnvVars: Record<string, string> = {};
const envSources: Record<string, string> = {};
logToStderr(`Loading environment variables`);
// Always load the root ENV first
const rootEnv = config.ENV || {};
// logToStderr(`Loading environment variables from root ENV`);for (const [key, value] of Object.entries(rootEnv)) {
allEnvVars[key] = value as string;
envSources[key] = "root";if (config.isDevelopment) {
logToStderr(` - ${key}=${value} (from config ENV)`);
}
}
// Load each package's ENV sectionfor (const packageName of packageNames) { const packageConfig = config[packageName as keyof typeof config]; if (!packageConfig) { exitWithMessage(`Package "${packageName}" not found in config`); } const packageEnv = (packageConfig as unknown as Record<string, unknown>).ENV || {}; // logToStderr(`Loading environment variables for package "${packageName}"`); for (const [key, value] of Object.entries(packageEnv)) { if (key in allEnvVars) { exitWithMessage( `Error: Environment variable "${key}" is defined multiple times (in ${envSources[key]} and ${packageName})`, ); } allEnvVars[key] = value as string; envSources[key] = packageName; if (config.isDevelopment) { logToStderr(` - ${key}=${value} (from ${packageName} ENV)`); } }}// Add custom environment variables passed via command linefor (const [key, value] of Object.entries(customEnvVars)) { if (key in allEnvVars) { logToStderr( `Warning: Environment variable "${key}" is defined in ${envSources[key]} and also passed via command line`, ); } allEnvVars[key] = value; envSources[key] = "command-line"; if (config.isDevelopment) { logToStderr(` - ${key}=${value} (from command line)`); }}// Set all environment variablesfor (const [key, value] of Object.entries(allEnvVars)) { process.env[key] = value;}// Validate that a command was specifiedif (!commandString) { exitWithMessage( "Error: No command specified. You must provide a command to execute after the -- separator.", );}// Execute the command// logToStderr(`Executing command: ${commandString}`);// Spawn the command in a shell to support piping, redirection, etc.const child = spawn("sh", ["-c", commandString as string], { stdio: "inherit", env: process.env,});// Handle command completionawait new Promise<void>((resolve, _reject) => { child.on("close", (code) => { if (code !== 0) { // Exit with the same code but without the zx stack trace process.exit(code || 1); } resolve(); }); child.on("error", (err) => { console.error(`Error executing command: ${err.message}`); process.exit(1); });});
Environment information
Rule name
lint/style/noUselessElse
Playground link
https://biomejs.dev/playground/?code=IwAhAC8AdQBzAHIALwBiAGkAbgAvAGUAbgB2ACAALQBTACAAcABuAHAAbQAgAHQAcwB4AAoACgBpAG0AcABvAHIAdAAgAHsAIABzAHAAYQB3AG4AIAB9ACAAZgByAG8AbQAgACIAbgBvAGQAZQA6AGMAaABpAGwAZABfAHAAcgBvAGMAZQBzAHMAIgA7AAoALwAqACoACgAgACoAIABFAG4AdgBpAHIAbwBuAG0AZQBuAHQAIABWAGEAcgBpAGEAYgBsAGUAIABMAG8AYQBkAGUAcgAKACAAKgAKACAAKgAgAFQAaABpAHMAIABtAG8AZAB1AGwAZQAgAGMAYQBuACAAYgBlACAAdQBzAGUAZAAgAGkAbgAgAHQAdwBvACAAdwBhAHkAcwA6AAoAIAAqAAoAIAAqACAAMQAuACAAQQBzACAAYQAgAHAAcgBlAGwAbwBhAGQAIABzAGMAcgBpAHAAdAAgAHcAaQB0AGgAIAAtAHIAIABmAGwAYQBnADoACgAgACoAIAAgACAAIAB0AHMAeAAgAC0AcgAgACcAQAB3AG8AcgBrAHMAcABhAGMAZQAvAGMAbwBuAGYAaQBnAC8AZQBuAHYALQBsAG8AYQBkAGUAcgAnACAAcwByAGMALwBpAG4AZABlAHgALgB0AHMACgAgACoAIAAgACAAIAAoAFIAZQBxAHUAaQByAGUAcwAgAEUATgBWAF8ATABPAEEARABFAFIAXwBQAEEAQwBLAEEARwBFAFMAIABlAG4AdgAgAHYAYQByACAAYQBzACAAYQAgAGMAbwBtAG0AYQAtAHMAZQBwAGEAcgBhAHQAZQBkACAAbABpAHMAdAAgAG8AZgAgAHAAYQBjAGsAYQBnAGUAcwApAAoAIAAqAAoAIAAqACAAMgAuACAAQQBzACAAYQAgAEMATABJACAAdABvAG8AbAA6AAoAIAAqACAAIAAgACAAdABzAHgAIABlAG4AdgAtAGwAbwBhAGQAZQByACAALQBwACAAcABhAGMAawBhAGcAZQAxACAALQBwACAAcABhAGMAawBhAGcAZQAyACAALQB2ACAASwBFAFkAPQBWAEEATABVAEUAIAAtAHYAIABBAE4ATwBUAEgARQBSAD0AVgBBAEwAVQBFACAALQAtACAAYwBvAG0AbQBhAG4AZAAgAGEAcgBnAHMACgAgACoACgAgACoAIABJAHQAIABsAG8AYQBkAHMAIABlAG4AdgBpAHIAbwBuAG0AZQBuAHQAIAB2AGEAcgBpAGEAYgBsAGUAcwAgAGYAcgBvAG0AIAB0AGgAZQAgAFQAeQBwAGUAUwBjAHIAaQBwAHQAIABjAG8AbgBmAGkAZwAKACAAKgAgAHIAYQB0AGgAZQByACAAdABoAGEAbgAgAGYAcgBvAG0AIAAuAGUAbgB2ACAAZgBpAGwAZQBzACwAIABhAGwAbABvAHcAaQBuAGcAIABmAG8AcgAgAGEAIABzAGkAbgBnAGwAZQAgAHMAbwB1AHIAYwBlACAAbwBmACAAdAByAHUAdABoAC4ACgAgACoACgAgACoAIABUAGgAZQAgAGwAbwBhAGQAZQByACAAdwBpAGwAbAAgAGEAbAB3AGEAeQBzACAAbABvAGEAZAAgAHQAaABlACAAcgBvAG8AdAAgAEUATgBWACwAIAB0AGgAZQBuACAAZQBhAGMAaAAgAHMAcABlAGMAaQBmAGkAZQBkACAAcABhAGMAawBhAGcAZQAgAGkAbgAgAG8AcgBkAGUAcgAuAAoAIAAqACAASQBmACAAYQAgAHYAYQByAGkAYQBiAGwAZQAgAGkAcwAgAGQAZQBmAGkAbgBlAGQAIABpAG4AIABtAHUAbAB0AGkAcABsAGUAIABwAGwAYQBjAGUAcwAsACAAaQB0ACAAdwBpAGwAbAAgAGUAeABpAHQAIAB3AGkAdABoACAAYQBuACAAZQByAHIAbwByAC4ACgAgACoALwAKAGkAbQBwAG8AcgB0ACAAewAgAGMAbwBuAGYAaQBnACAAfQAgAGYAcgBvAG0AIAAiAEAAdwBvAHIAawBzAHAAYQBjAGUALwBjAG8AbgBmAGkAZwAiADsACgAKAGMAbwBuAHMAdAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACAAPQAgACgAbQBlAHMAcwBhAGcAZQA6ACAAcwB0AHIAaQBuAGcAKQAgAD0APgAgAHsACgAgACAAYwBvAG4AcwBvAGwAZQAuAGUAcgByAG8AcgAoAGAATCcgAGUAbgB2AC0AbABvAGEAZABlAHIAOgAgAFsAJAB7AGMAbwBuAGYAaQBnAC4AZQBuAHYAaQByAG8AbgBtAGUAbgB0AH0AXQAgACQAewBtAGUAcwBzAGEAZwBlAH0AYAApADsACgAgACAAcAByAG8AYwBlAHMAcwAuAGUAeABpAHQAKAAxACkAOwAKAH0AOwAKAC8ALwAgAEwAbwBnACAAaQBuAGYAbwBzACAAdABvACAAcwB0AGQAZQByAHIAIAB0AG8AIABhAHYAbwBpAGQAIABpAG4AdABlAHIAZgBlAHIAaQBuAGcAIAB3AGkAdABoACAAcwB0AGQAbwB1AHQACgBjAG8AbgBzAHQAIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAIAA9ACAAKABtAGUAcwBzAGEAZwBlADoAIABzAHQAcgBpAG4AZwApACAAPQA%2BACAAewAKACAAIABjAG8AbgBzAG8AbABlAC4AZQByAHIAbwByACgAYAA92EncIABlAG4AdgAtAGwAbwBhAGQAZQByADoAIABbACQAewBjAG8AbgBmAGkAZwAuAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAB9AF0AIAAkAHsAbQBlAHMAcwBhAGcAZQB9AGAAKQA7AAoAfQA7AAoACgAvAC8AIABQAGEAcgBzAGUAIABwAGEAYwBrAGEAZwBlACAAbgBhAG0AZQBzACAAYQBuAGQAIABjAHUAcwB0AG8AbQAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAAgAHYAYQByAGkAYQBiAGwAZQBzAAoACgBsAGUAdAAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQBzADoAIABzAHQAcgBpAG4AZwBbAF0AIAA9ACAAWwBdADsACgAvAC8AIABDAGgAZQBjAGsAIABpAGYAIABFAE4AVgBfAEwATwBBAEQARQBSAF8AUABBAEMASwBBAEcARQBTACAAaQBzACAAcwBlAHQAIAAoAGMAbwBtAG0AYQAtAHMAZQBwAGEAcgBhAHQAZQBkACAAbABpAHMAdAApAAoALwAvACAAZQBzAGwAaQBuAHQALQBkAGkAcwBhAGIAbABlAC0AbgBlAHgAdAAtAGwAaQBuAGUAIAB0AHUAcgBiAG8ALwBuAG8ALQB1AG4AZABlAGMAbABhAHIAZQBkAC0AZQBuAHYALQB2AGEAcgBzAAoAYwBvAG4AcwB0ACAAZQBuAHYAUABhAGMAawBhAGcAZQBzACAAPQAgAHAAcgBvAGMAZQBzAHMALgBlAG4AdgAuAEUATgBWAF8ATABPAEEARABFAFIAXwBQAEEAQwBLAEEARwBFAFMAOwAKAGkAZgAgACgAZQBuAHYAUABhAGMAawBhAGcAZQBzACkAIAB7AAoAIAAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQBzACAAPQAgAGUAbgB2AFAAYQBjAGsAYQBnAGUAcwAKACAAIAAgACAALgBzAHAAbABpAHQAKAAiACwAIgApAAoAIAAgACAAIAAuAG0AYQBwACgAKABwACkAIAA9AD4AIABwAC4AdAByAGkAbQAoACkAKQAKACAAIAAgACAALgBmAGkAbAB0AGUAcgAoAEIAbwBvAGwAZQBhAG4AKQA7AAoAfQAKAAoAYwBvAG4AcwB0ACAAYwB1AHMAdABvAG0ARQBuAHYAVgBhAHIAcwA6ACAAUgBlAGMAbwByAGQAPABzAHQAcgBpAG4AZwAsACAAcwB0AHIAaQBuAGcAPgAgAD0AIAB7AH0AOwAKAGwAZQB0ACAAYwBvAG0AbQBhAG4AZABTAHQAcgBpAG4AZwA6ACAAcwB0AHIAaQBuAGcAIAB8ACAAdQBuAGQAZQBmAGkAbgBlAGQAOwAKAAoALwAvACAAQwBMAEkAIABtAG8AZABlADoAIABwAGEAcgBzAGUAIABhAHIAZwB1AG0AZQBuAHQAcwAKAGMAbwBuAHMAdAAgAGEAcgBnAHMAIAA9ACAAcAByAG8AYwBlAHMAcwAuAGEAcgBnAHYALgBzAGwAaQBjAGUAKAAyACkAOwAKAGwAZQB0ACAAaQAgAD0AIAAwADsACgAKAC8ALwAgAFAAcgBvAGMAZQBzAHMAIABhAHIAZwB1AG0AZQBuAHQAcwAgAGEAcwAgAGEAIABzAHQAcgBlAGEAbQAKAHcAaABpAGwAZQAgACgAaQAgADwAIABhAHIAZwBzAC4AbABlAG4AZwB0AGgAKQAgAHsACgAgACAAYwBvAG4AcwB0ACAAYQByAGcAIAA9ACAAYQByAGcAcwBbAGkAXQA7AAoACgAgACAAaQBmACAAKABhAHIAZwAgAD0APQA9ACAAIgAtAC0AIgApACAAewAKACAAIAAgACAALwAvACAARQBuAGQAIABvAGYAIABvAHAAdABpAG8AbgBzACwAIAByAGUAcwB0ACAAaQBzACAAYwBvAG0AbQBhAG4AZAAKACAAIAAgACAAYwBvAG4AcwB0ACAAYwBvAG0AbQBhAG4AZABBAHIAZwBzACAAPQAgAGEAcgBnAHMALgBzAGwAaQBjAGUAKABpACAAKwAgADEAKQA7AAoAIAAgACAAIABpAGYAIAAoAGMAbwBtAG0AYQBuAGQAQQByAGcAcwAuAGwAZQBuAGcAdABoACAAPgAgADAAKQAgAHsACgAgACAAIAAgACAAIABjAG8AbQBtAGEAbgBkAFMAdAByAGkAbgBnACAAPQAgAGMAbwBtAG0AYQBuAGQAQQByAGcAcwAuAGoAbwBpAG4AKAAiACAAIgApADsACgAgACAAIAAgAH0ACgAgACAAIAAgAGIAcgBlAGEAawA7AAoAIAAgAH0AIABlAGwAcwBlACAAaQBmACAAKABhAHIAZwAgAD0APQA9ACAAIgAtAHAAIgApACAAewAKACAAIAAgACAALwAvACAAUABhAGMAawBhAGcAZQAgAGEAcgBnAHUAbQBlAG4AdAAKACAAIAAgACAAaQBmACAAKABpACAAKwAgADEAIAA%2BAD0AIABhAHIAZwBzAC4AbABlAG4AZwB0AGgAKQAgAHsACgAgACAAIAAgACAAIABlAHgAaQB0AFcAaQB0AGgATQBlAHMAcwBhAGcAZQAoACIARQByAHIAbwByADoAIAAtAHAAIABmAGwAYQBnACAAcgBlAHEAdQBpAHIAZQBzACAAYQAgAHAAYQBjAGsAYQBnAGUAIABuAGEAbQBlACIAKQA7AAoAIAAgACAAIAB9AAoAIAAgACAAIABpAGYAIAAoAGEAcgBnAHMAWwBpACAAKwAgADEAXQAgAD0APQA9ACAAIgAtAC0AIgApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgAIgBFAHIAcgBvAHIAOgAgAC0AcAAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAAcABhAGMAawBhAGcAZQAgAG4AYQBtAGUALAAgAGcAbwB0ACAALQAtACAAaQBuAHMAdABlAGEAZAAiACkAOwAKACAAIAAgACAAfQAKACAAIAAgACAAaQBmACAAKABhAHIAZwBzAFsAaQAgACsAIAAxAF0ALgBzAHQAYQByAHQAcwBXAGkAdABoACgAIgAtACIAKQApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgACgAgACAAIAAgACAAIAAgACAAYABFAHIAcgBvAHIAOgAgAC0AcAAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAAcABhAGMAawBhAGcAZQAgAG4AYQBtAGUALAAgAGcAbwB0ACAAJAB7AGEAcgBnAHMAWwBpACAAKwAgADEAXQB9ACAAaQBuAHMAdABlAGEAZABgACwACgAgACAAIAAgACAAIAApADsACgAgACAAIAAgAH0ACgAgACAAIAAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQBzAC4AcAB1AHMAaAAoAGEAcgBnAHMAWwBpACAAKwAgADEAXQApADsACgAgACAAIAAgAGkAIAArAD0AIAAyADsAIAAvAC8AIABTAGsAaQBwACAAbgBlAHgAdAAgAGEAcgBnACAAKABwAGEAYwBrAGEAZwBlACAAbgBhAG0AZQApAAoAIAAgAH0AIABlAGwAcwBlACAAaQBmACAAKABhAHIAZwAgAD0APQA9ACAAIgAtAHYAIgApACAAewAKACAAIAAgACAALwAvACAARQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlACAAYQByAGcAdQBtAGUAbgB0AAoAIAAgACAAIABpAGYAIAAoAGkAIAArACAAMQAgAD4APQAgAGEAcgBnAHMALgBsAGUAbgBnAHQAaAApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgAIgBFAHIAcgBvAHIAOgAgAC0AdgAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAASwBFAFkAPQBWAEEATABVAEUAIABwAGEAaQByACIAKQA7AAoAIAAgACAAIAB9AAoAIAAgACAAIABpAGYAIAAoAGEAcgBnAHMAWwBpACAAKwAgADEAXQAgAD0APQA9ACAAIgAtAC0AIgApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgACgAgACAAIAAgACAAIAAgACAAIgBFAHIAcgBvAHIAOgAgAC0AdgAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAASwBFAFkAPQBWAEEATABVAEUAIABwAGEAaQByACwAIABnAG8AdAAgAC0ALQAgAGkAbgBzAHQAZQBhAGQAIgAsAAoAIAAgACAAIAAgACAAKQA7AAoAIAAgACAAIAB9AAoACgAgACAAIAAgAGMAbwBuAHMAdAAgAGUAbgB2AFMAdAByAGkAbgBnACAAPQAgAGEAcgBnAHMAWwBpACAAKwAgADEAXQA7AAoAIAAgACAAIABjAG8AbgBzAHQAIABlAHEAdQBhAGwASQBuAGQAZQB4ACAAPQAgAGUAbgB2AFMAdAByAGkAbgBnAC4AaQBuAGQAZQB4AE8AZgAoACIAPQAiACkAOwAKACAAIAAgACAAaQBmACAAKABlAHEAdQBhAGwASQBuAGQAZQB4ACAAPAA9ACAAMAApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgACgAgACAAIAAgACAAIAAgACAAYABFAHIAcgBvAHIAOgAgAC0AdgAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAASwBFAFkAPQBWAEEATABVAEUAIABwAGEAaQByACwAIABnAG8AdAAgACQAewBlAG4AdgBTAHQAcgBpAG4AZwB9ACAAaQBuAHMAdABlAGEAZABgACwACgAgACAAIAAgACAAIAApADsACgAgACAAIAAgAH0ACgAKACAAIAAgACAAYwBvAG4AcwB0ACAAawBlAHkAIAA9ACAAZQBuAHYAUwB0AHIAaQBuAGcALgBzAHUAYgBzAHQAcgBpAG4AZwAoADAALAAgAGUAcQB1AGEAbABJAG4AZABlAHgAKQA7AAoAIAAgACAAIABjAG8AbgBzAHQAIAB2AGEAbAB1AGUAIAA9ACAAZQBuAHYAUwB0AHIAaQBuAGcALgBzAHUAYgBzAHQAcgBpAG4AZwAoAGUAcQB1AGEAbABJAG4AZABlAHgAIAArACAAMQApADsACgAgACAAIAAgAGMAdQBzAHQAbwBtAEUAbgB2AFYAYQByAHMAWwBrAGUAeQBdACAAPQAgAHYAYQBsAHUAZQA7AAoAIAAgACAAIABpACAAKwA9ACAAMgA7ACAALwAvACAAUwBrAGkAcAAgAG4AZQB4AHQAIABhAHIAZwAgACgAZQBuAHYAIAB2AGEAcgApAAoAIAAgAH0AIABlAGwAcwBlACAAewAKACAAIAAgACAALwAvACAAVQBuAGsAbgBvAHcAbgAgAGEAcgBnAHUAbQBlAG4AdAAKACAAIAAgACAAZQB4AGkAdABXAGkAdABoAE0AZQBzAHMAYQBnAGUAKABgAEUAcgByAG8AcgA6ACAAVQBuAHIAZQBjAG8AZwBuAGkAegBlAGQAIABhAHIAZwB1AG0AZQBuAHQAOgAgACQAewBhAHIAZwB9AGAAKQA7AAoAIAAgAH0ACgB9AAoACgAvAC8AIABQAHIAZQBwAGEAcgBlACAAdABvACAAYwBvAGwAbABlAGMAdAAgAGEAbABsACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlAHMACgBjAG8AbgBzAHQAIABhAGwAbABFAG4AdgBWAGEAcgBzADoAIABSAGUAYwBvAHIAZAA8AHMAdAByAGkAbgBnACwAIABzAHQAcgBpAG4AZwA%2BACAAPQAgAHsAfQA7AAoAYwBvAG4AcwB0ACAAZQBuAHYAUwBvAHUAcgBjAGUAcwA6ACAAUgBlAGMAbwByAGQAPABzAHQAcgBpAG4AZwAsACAAcwB0AHIAaQBuAGcAPgAgAD0AIAB7AH0AOwAKAAoAbABvAGcAVABvAFMAdABkAGUAcgByACgAYABMAG8AYQBkAGkAbgBnACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlAHMAYAApADsACgAKAC8ALwAgAEEAbAB3AGEAeQBzACAAbABvAGEAZAAgAHQAaABlACAAcgBvAG8AdAAgAEUATgBWACAAZgBpAHIAcwB0AAoAYwBvAG4AcwB0ACAAcgBvAG8AdABFAG4AdgAgAD0AIABjAG8AbgBmAGkAZwAuAEUATgBWACAAfAB8ACAAewB9ADsACgAvAC8AIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAKABgAEwAbwBhAGQAaQBuAGcAIABlAG4AdgBpAHIAbwBuAG0AZQBuAHQAIAB2AGEAcgBpAGEAYgBsAGUAcwAgAGYAcgBvAG0AIAByAG8AbwB0ACAARQBOAFYAYAApADsACgBmAG8AcgAgACgAYwBvAG4AcwB0ACAAWwBrAGUAeQAsACAAdgBhAGwAdQBlAF0AIABvAGYAIABPAGIAagBlAGMAdAAuAGUAbgB0AHIAaQBlAHMAKAByAG8AbwB0AEUAbgB2ACkAKQAgAHsACgAgACAAYQBsAGwARQBuAHYAVgBhAHIAcwBbAGsAZQB5AF0AIAA9ACAAdgBhAGwAdQBlACAAYQBzACAAcwB0AHIAaQBuAGcAOwAKACAAIABlAG4AdgBTAG8AdQByAGMAZQBzAFsAawBlAHkAXQAgAD0AIAAiAHIAbwBvAHQAIgA7AAoAIAAgAGkAZgAgACgAYwBvAG4AZgBpAGcALgBpAHMARABlAHYAZQBsAG8AcABtAGUAbgB0ACkAIAB7AAoAIAAgACAAIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAKABgACAALQAgACQAewBrAGUAeQB9AD0AJAB7AHYAYQBsAHUAZQB9ACAAKABmAHIAbwBtACAAYwBvAG4AZgBpAGcAIABFAE4AVgApAGAAKQA7AAoAIAAgAH0ACgB9AAoACgAvAC8AIABMAG8AYQBkACAAZQBhAGMAaAAgAHAAYQBjAGsAYQBnAGUAJwBzACAARQBOAFYAIABzAGUAYwB0AGkAbwBuAAoAZgBvAHIAIAAoAGMAbwBuAHMAdAAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQAgAG8AZgAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQBzACkAIAB7AAoAIAAgAGMAbwBuAHMAdAAgAHAAYQBjAGsAYQBnAGUAQwBvAG4AZgBpAGcAIAA9ACAAYwBvAG4AZgBpAGcAWwBwAGEAYwBrAGEAZwBlAE4AYQBtAGUAIABhAHMAIABrAGUAeQBvAGYAIAB0AHkAcABlAG8AZgAgAGMAbwBuAGYAaQBnAF0AOwAKACAAIABpAGYAIAAoACEAcABhAGMAawBhAGcAZQBDAG8AbgBmAGkAZwApACAAewAKACAAIAAgACAAZQB4AGkAdABXAGkAdABoAE0AZQBzAHMAYQBnAGUAKABgAFAAYQBjAGsAYQBnAGUAIAAiACQAewBwAGEAYwBrAGEAZwBlAE4AYQBtAGUAfQAiACAAbgBvAHQAIABmAG8AdQBuAGQAIABpAG4AIABjAG8AbgBmAGkAZwBgACkAOwAKACAAIAB9AAoACgAgACAAYwBvAG4AcwB0ACAAcABhAGMAawBhAGcAZQBFAG4AdgAgAD0ACgAgACAAIAAgACgAcABhAGMAawBhAGcAZQBDAG8AbgBmAGkAZwAgAGEAcwAgAHUAbgBrAG4AbwB3AG4AIABhAHMAIABSAGUAYwBvAHIAZAA8AHMAdAByAGkAbgBnACwAIAB1AG4AawBuAG8AdwBuAD4AKQAuAEUATgBWACAAfAB8ACAAewB9ADsACgAgACAALwAvACAAIAAgAGwAbwBnAFQAbwBTAHQAZABlAHIAcgAoAGAATABvAGEAZABpAG4AZwAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAAgAHYAYQByAGkAYQBiAGwAZQBzACAAZgBvAHIAIABwAGEAYwBrAGEAZwBlACAAIgAkAHsAcABhAGMAawBhAGcAZQBOAGEAbQBlAH0AIgBgACkAOwAKAAoAIAAgAGYAbwByACAAKABjAG8AbgBzAHQAIABbAGsAZQB5ACwAIAB2AGEAbAB1AGUAXQAgAG8AZgAgAE8AYgBqAGUAYwB0AC4AZQBuAHQAcgBpAGUAcwAoAHAAYQBjAGsAYQBnAGUARQBuAHYAKQApACAAewAKACAAIAAgACAAaQBmACAAKABrAGUAeQAgAGkAbgAgAGEAbABsAEUAbgB2AFYAYQByAHMAKQAgAHsACgAgACAAIAAgACAAIABlAHgAaQB0AFcAaQB0AGgATQBlAHMAcwBhAGcAZQAoAAoAIAAgACAAIAAgACAAIAAgAGAARQByAHIAbwByADoAIABFAG4AdgBpAHIAbwBuAG0AZQBuAHQAIAB2AGEAcgBpAGEAYgBsAGUAIAAiACQAewBrAGUAeQB9ACIAIABpAHMAIABkAGUAZgBpAG4AZQBkACAAbQB1AGwAdABpAHAAbABlACAAdABpAG0AZQBzACAAKABpAG4AIAAkAHsAZQBuAHYAUwBvAHUAcgBjAGUAcwBbAGsAZQB5AF0AfQAgAGEAbgBkACAAJAB7AHAAYQBjAGsAYQBnAGUATgBhAG0AZQB9ACkAYAAsAAoAIAAgACAAIAAgACAAKQA7AAoAIAAgACAAIAB9AAoAIAAgACAAIABhAGwAbABFAG4AdgBWAGEAcgBzAFsAawBlAHkAXQAgAD0AIAB2AGEAbAB1AGUAIABhAHMAIABzAHQAcgBpAG4AZwA7AAoAIAAgACAAIABlAG4AdgBTAG8AdQByAGMAZQBzAFsAawBlAHkAXQAgAD0AIABwAGEAYwBrAGEAZwBlAE4AYQBtAGUAOwAKACAAIAAgACAAaQBmACAAKABjAG8AbgBmAGkAZwAuAGkAcwBEAGUAdgBlAGwAbwBwAG0AZQBuAHQAKQAgAHsACgAgACAAIAAgACAAIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAKABgACAALQAgACQAewBrAGUAeQB9AD0AJAB7AHYAYQBsAHUAZQB9ACAAKABmAHIAbwBtACAAJAB7AHAAYQBjAGsAYQBnAGUATgBhAG0AZQB9ACAARQBOAFYAKQBgACkAOwAKACAAIAAgACAAfQAKACAAIAB9AAoAfQAKAAoALwAvACAAQQBkAGQAIABjAHUAcwB0AG8AbQAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAAgAHYAYQByAGkAYQBiAGwAZQBzACAAcABhAHMAcwBlAGQAIAB2AGkAYQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlAAoAZgBvAHIAIAAoAGMAbwBuAHMAdAAgAFsAawBlAHkALAAgAHYAYQBsAHUAZQBdACAAbwBmACAATwBiAGoAZQBjAHQALgBlAG4AdAByAGkAZQBzACgAYwB1AHMAdABvAG0ARQBuAHYAVgBhAHIAcwApACkAIAB7AAoAIAAgAGkAZgAgACgAawBlAHkAIABpAG4AIABhAGwAbABFAG4AdgBWAGEAcgBzACkAIAB7AAoAIAAgACAAIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAKAAKACAAIAAgACAAIAAgAGAAVwBhAHIAbgBpAG4AZwA6ACAARQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlACAAIgAkAHsAawBlAHkAfQAiACAAaQBzACAAZABlAGYAaQBuAGUAZAAgAGkAbgAgACQAewBlAG4AdgBTAG8AdQByAGMAZQBzAFsAawBlAHkAXQB9ACAAYQBuAGQAIABhAGwAcwBvACAAcABhAHMAcwBlAGQAIAB2AGkAYQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlAGAALAAKACAAIAAgACAAKQA7AAoAIAAgAH0ACgAgACAAYQBsAGwARQBuAHYAVgBhAHIAcwBbAGsAZQB5AF0AIAA9ACAAdgBhAGwAdQBlADsACgAgACAAZQBuAHYAUwBvAHUAcgBjAGUAcwBbAGsAZQB5AF0AIAA9ACAAIgBjAG8AbQBtAGEAbgBkAC0AbABpAG4AZQAiADsACgAgACAAaQBmACAAKABjAG8AbgBmAGkAZwAuAGkAcwBEAGUAdgBlAGwAbwBwAG0AZQBuAHQAKQAgAHsACgAgACAAIAAgAGwAbwBnAFQAbwBTAHQAZABlAHIAcgAoAGAAIAAtACAAJAB7AGsAZQB5AH0APQAkAHsAdgBhAGwAdQBlAH0AIAAoAGYAcgBvAG0AIABjAG8AbQBtAGEAbgBkACAAbABpAG4AZQApAGAAKQA7AAoAIAAgAH0ACgB9AAoACgAvAC8AIABTAGUAdAAgAGEAbABsACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlAHMACgBmAG8AcgAgACgAYwBvAG4AcwB0ACAAWwBrAGUAeQAsACAAdgBhAGwAdQBlAF0AIABvAGYAIABPAGIAagBlAGMAdAAuAGUAbgB0AHIAaQBlAHMAKABhAGwAbABFAG4AdgBWAGEAcgBzACkAKQAgAHsACgAgACAAcAByAG8AYwBlAHMAcwAuAGUAbgB2AFsAawBlAHkAXQAgAD0AIAB2AGEAbAB1AGUAOwAKAH0ACgAKAC8ALwAgAFYAYQBsAGkAZABhAHQAZQAgAHQAaABhAHQAIABhACAAYwBvAG0AbQBhAG4AZAAgAHcAYQBzACAAcwBwAGUAYwBpAGYAaQBlAGQACgBpAGYAIAAoACEAYwBvAG0AbQBhAG4AZABTAHQAcgBpAG4AZwApACAAewAKACAAIABlAHgAaQB0AFcAaQB0AGgATQBlAHMAcwBhAGcAZQAoAAoAIAAgACAAIAAiAEUAcgByAG8AcgA6ACAATgBvACAAYwBvAG0AbQBhAG4AZAAgAHMAcABlAGMAaQBmAGkAZQBkAC4AIABZAG8AdQAgAG0AdQBzAHQAIABwAHIAbwB2AGkAZABlACAAYQAgAGMAbwBtAG0AYQBuAGQAIAB0AG8AIABlAHgAZQBjAHUAdABlACAAYQBmAHQAZQByACAAdABoAGUAIAAtAC0AIABzAGUAcABhAHIAYQB0AG8AcgAuACIALAAKACAAIAApADsACgB9AAoACgAvAC8AIABFAHgAZQBjAHUAdABlACAAdABoAGUAIABjAG8AbQBtAGEAbgBkAAoALwAvACAAbABvAGcAVABvAFMAdABkAGUAcgByACgAYABFAHgAZQBjAHUAdABpAG4AZwAgAGMAbwBtAG0AYQBuAGQAOgAgACQAewBjAG8AbQBtAGEAbgBkAFMAdAByAGkAbgBnAH0AYAApADsACgAKAC8ALwAgAFMAcABhAHcAbgAgAHQAaABlACAAYwBvAG0AbQBhAG4AZAAgAGkAbgAgAGEAIABzAGgAZQBsAGwAIAB0AG8AIABzAHUAcABwAG8AcgB0ACAAcABpAHAAaQBuAGcALAAgAHIAZQBkAGkAcgBlAGMAdABpAG8AbgAsACAAZQB0AGMALgAKAGMAbwBuAHMAdAAgAGMAaABpAGwAZAAgAD0AIABzAHAAYQB3AG4AKAAiAHMAaAAiACwAIABbACIALQBjACIALAAgAGMAbwBtAG0AYQBuAGQAUwB0AHIAaQBuAGcAIABhAHMAIABzAHQAcgBpAG4AZwBdACwAIAB7AAoAIAAgAHMAdABkAGkAbwA6ACAAIgBpAG4AaABlAHIAaQB0ACIALAAKACAAIABlAG4AdgA6ACAAcAByAG8AYwBlAHMAcwAuAGUAbgB2ACwACgB9ACkAOwAKAAoALwAvACAASABhAG4AZABsAGUAIABjAG8AbQBtAGEAbgBkACAAYwBvAG0AcABsAGUAdABpAG8AbgAKAGEAdwBhAGkAdAAgAG4AZQB3ACAAUAByAG8AbQBpAHMAZQA8AHYAbwBpAGQAPgAoACgAcgBlAHMAbwBsAHYAZQAsACAAXwByAGUAagBlAGMAdAApACAAPQA%2BACAAewAKACAAIABjAGgAaQBsAGQALgBvAG4AKAAiAGMAbABvAHMAZQAiACwAIAAoAGMAbwBkAGUAKQAgAD0APgAgAHsACgAgACAAIAAgAGkAZgAgACgAYwBvAGQAZQAgACEAPQA9ACAAMAApACAAewAKACAAIAAgACAAIAAgAC8ALwAgAEUAeABpAHQAIAB3AGkAdABoACAAdABoAGUAIABzAGEAbQBlACAAYwBvAGQAZQAgAGIAdQB0ACAAdwBpAHQAaABvAHUAdAAgAHQAaABlACAAegB4ACAAcwB0AGEAYwBrACAAdAByAGEAYwBlAAoAIAAgACAAIAAgACAAcAByAG8AYwBlAHMAcwAuAGUAeABpAHQAKABjAG8AZABlACAAfAB8ACAAMQApADsACgAgACAAIAAgAH0ACgAgACAAIAAgAHIAZQBzAG8AbAB2AGUAKAApADsACgAgACAAfQApADsACgAKACAAIABjAGgAaQBsAGQALgBvAG4AKAAiAGUAcgByAG8AcgAiACwAIAAoAGUAcgByACkAIAA9AD4AIAB7AAoAIAAgACAAIABjAG8AbgBzAG8AbABlAC4AZQByAHIAbwByACgAYABFAHIAcgBvAHIAIABlAHgAZQBjAHUAdABpAG4AZwAgAGMAbwBtAG0AYQBuAGQAOgAgACQAewBlAHIAcgAuAG0AZQBzAHMAYQBnAGUAfQBgACkAOwAKACAAIAAgACAAcAByAG8AYwBlAHMAcwAuAGUAeABpAHQAKAAxACkAOwAKACAAIAB9ACkAOwAKAH0AKQA7AAoA
Expected result
It should compile normally...
Code of Conduct
The text was updated successfully, but these errors were encountered: