feat: Add 8 files
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 33s
Build-Test-Publish / build (linux/arm64) (push) Successful in 57s

This commit is contained in:
Your Name
2025-08-23 18:27:08 +12:00
parent c45004a422
commit 881d4e1642
4 changed files with 693 additions and 0 deletions

View File

@@ -0,0 +1,153 @@
#include <fstream>
#include <filesystem>
#include <string>
#include <iostream>
#include <cstring>
/*
THIS FILE IS AUTO-GENERATED BY DEHYDRATE.
DO NOT EDIT THIS FILE.
*/
#include "_agent-local.hpp"
namespace recreate_agent_local {
// Tiny dependency-free FNV-1a 64-bit hash
static uint64_t fnv1a_64(const void* data, size_t len) {
const uint8_t* p = static_cast<const uint8_t*>(data);
uint64_t h = 0xcbf29ce484222325ULL;
for (size_t i = 0; i < len; ++i)
h = (h ^ p[i]) * 0x100000001b3ULL;
return h;
}
// Base64 decoding function - no dependencies
static void base64_decode(const char* encoded_data, size_t encoded_len, unsigned char* output, size_t* output_len) {
const char* base64_chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
size_t out_pos = 0;
int val = 0, valb = -8;
for (size_t i = 0; i < encoded_len; i++) {
char c = encoded_data[i];
if (c == '=') break;
// Find position in base64_chars
const char* pos = strchr(base64_chars, c);
if (pos == nullptr) continue; // Skip invalid characters
val = (val << 6) + static_cast<int>(pos - base64_chars);
valb += 6;
if (valb >= 0) {
output[out_pos++] = static_cast<unsigned char>((val >> valb) & 0xFF);
valb -= 8;
}
}
*output_len = out_pos;
}
// Utility function to recreate a file with proper permissions
static bool _recreate_file_(const std::filesystem::path& outpath, uint64_t file_hash, std::filesystem::perms file_perms, const unsigned char* filedata, size_t filedata_len) {
namespace fs = std::filesystem;
bool needs_write = false;
// Check if file exists and has correct hash
if (fs::exists(outpath)) {
// Check content hash
std::ifstream in(outpath, std::ios::binary);
std::ostringstream oss;
oss << in.rdbuf();
std::string data = oss.str();
uint64_t existing_hash = fnv1a_64(data.data(), data.size());
needs_write = existing_hash != file_hash;
} else {
needs_write = true; // File doesn't exist, need to create it
}
bool needs_permission_update = true;
if (!needs_write) { // we always update permissions if the file is written or changed. Othewise we check.
fs::perms current_perms = fs::status(outpath).permissions();
needs_permission_update = current_perms != file_perms;
}
if (needs_write) {
bool existed = fs::exists(outpath);
fs::create_directories(outpath.parent_path());
std::ofstream out(outpath, std::ios::binary);
out.write(reinterpret_cast<const char*>(filedata), filedata_len);
out.close();
// Set the file permissions
fs::permissions(outpath, file_perms);
if (!existed) {
std::cout << "[dehydrate] " << outpath.filename() << ": created\n";
} else {
std::cout << "[dehydrate] " << outpath.filename() << ": updated (hash changed)\n";
}
return true;
}
if (needs_permission_update) {
// Update only permissions
fs::permissions(outpath, file_perms);
std::cout << "[dehydrate] " << outpath.filename() << ": updated (permissions changed)\n";
return true;
}
return false;
}
bool recreate_tree(std::string destination_folder) {
namespace fs = std::filesystem;
bool any_written = false;
{
// File: agent-install.sh
fs::path outpath = fs::path(destination_folder) / "agent-install.sh";
static const char filedata_base64[] = "IyEvYmluL2Jhc2gKCiMgaW5zdGFsbCB0aGUgZHJvcHNoZWxsIGhvc3QgYWdlbnQgb24gdGhpcyBj"\
"b21wdXRlci4KIyAobm90IGZvciByZW1vdGUgc2VydmVycykKClNDUklQVF9ESVI9JChkaXJuYW1l"\
"ICIkMCIpCgplY2hvICJJbnN0YWxsaW5nIGRyb3BzaGVsbCBob3N0IGFnZW50IG9uIHRoaXMgY29t"\
"cHV0ZXIuLi4iCgoKIyBQcmludHMgYW4gZXJyb3IgbWVzc2FnZSBpbiByZWQgYW5kIGV4aXRzIHdp"\
"dGggc3RhdHVzIGNvZGUgMS4KX2RpZSgpIHsKICAgIGVjaG8gLWUgIkVycm9yOiAkMSIKICAgIGV4"\
"aXQgMQp9CgoKIyBDaGVja3MgaWYgbGlzdGVkIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgc2V0"\
"OyBjYWxscyBfZGllKCkgaWYgYW55IGFyZSBtaXNzaW5nLgpfY2hlY2tfcmVxdWlyZWRfZW52X3Zh"\
"cnMoKSB7CiAgICBsb2NhbCByZXF1aXJlZF92YXJzPSgiJEAiKQogICAgZm9yIHZhciBpbiAiJHty"\
"ZXF1aXJlZF92YXJzW0BdfSI7IGRvCiAgICAgICAgaWYgWyAteiAiJHshdmFyfSIgXTsgdGhlbgog"\
"ICAgICAgICAgICBfZGllICJSZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAkdmFyIGlzIG5v"\
"dCBzZXQiCiAgICAgICAgZmkKICAgIGRvbmUKfQoKCmZ1bmN0aW9uIGluc3RhbGxfYmI2NCgpIHsg"\
"ICAgCiAgICAjIGNoZWNrIGN1cmwgaW5zdGFsbGVkCiAgICBpZiAhIGNvbW1hbmQgLXYgY3VybCAm"\
"PiAvZGV2L251bGw7IHRoZW4KICAgICAgICBfZGllICJDdXJsIGlzIG5vdCBpbnN0YWxsZWQuIEN1"\
"cmwgaXMgcmVxdWlyZWQgZm9yIGFnZW50IGluc3RhbGxhdGlvbi4iCiAgICBmaQoKICAgIEJCNjRf"\
"cGF0aD0iJHtBR0VOVF9MT0NBTF9QQVRIfS9iYjY0IgogICAgQVJDSD0kKHVuYW1lIC1tKQogICAg"\
"aWYgISBjdXJsICJodHRwczovL2dldGJpbi54eXovYmI2NDpsYXRlc3QtJHtBUkNIfSIgPiAiJHtC"\
"QjY0X3BhdGh9IjsgdGhlbgogICAgICAgIF9kaWUgIkZhaWxlZCB0byBpbnN0YWxsIGJiNjQuIEN1"\
"cmwgcmV0dXJuZWQgbm9uLXplcm8gZXhpdCBjb2RlLiIKICAgIGZpCiAgICBjaG93biAiJChpZCAt"\
"dSAiJFVTRVIiKTokKGlkIC1nICIkVVNFUiIpIiAiJHtCQjY0X3BhdGh9IgogICAgY2htb2QgK3gg"\
"IiR7QkI2NF9wYXRofSIKCiAgICAjIHRlc3QgaWYgYmI2NCBpcyBpbnN0YWxsZWQKICAgIGlmICEg"\
"VkVSPSQoIiR7QkI2NF9wYXRofSIgdmVyc2lvbik7IHRoZW4KICAgICAgICBfZGllICJiYjY0IGRp"\
"ZCBub3QgaW5zdGFsbCBjb3JyZWN0bHkuIgogICAgZmkKCiAgICBlY2hvICJiYjY0IHYkVkVSIGlu"\
"c3RhbGxlZC4iCiAgICByZXR1cm4gMDsKfQoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpzZXQgLWEKQUdF"\
"TlRfTE9DQUxfUEFUSD0iJFNDUklQVF9ESVIiCnNldCArYQoKX2NoZWNrX3JlcXVpcmVkX2Vudl92"\
"YXJzICJBR0VOVF9MT0NBTF9QQVRIIgplY2hvICJJbnN0YWxsaW5nIGhvc3QgYWdlbnQgaW50byAk"\
"QUdFTlRfTE9DQUxfUEFUSCIKCmluc3RhbGxfYmI2NAoK";
// Decode Base64 data
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
unsigned char* decoded_data = new unsigned char[decoded_size];
size_t actual_size;
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
bool file_written = _recreate_file_(outpath, 7211800578327693679ULL, std::filesystem::perms(493), decoded_data, actual_size);
delete[] decoded_data;
any_written = any_written || file_written;
}
return any_written;
}
}

View File

@@ -0,0 +1,15 @@
#pragma once
/*
THIS FILE IS AUTO-GENERATED BY DEHYDRATE.
DO NOT EDIT THIS FILE.
*/
#include <string>
namespace recreate_agent_local {
bool recreate_tree(std::string destination_folder);
}

View File

@@ -0,0 +1,510 @@
#include <fstream>
#include <filesystem>
#include <string>
#include <iostream>
#include <cstring>
/*
THIS FILE IS AUTO-GENERATED BY DEHYDRATE.
DO NOT EDIT THIS FILE.
*/
#include "_agent-remote.hpp"
namespace recreate_agent_remote {
// Tiny dependency-free FNV-1a 64-bit hash
static uint64_t fnv1a_64(const void* data, size_t len) {
const uint8_t* p = static_cast<const uint8_t*>(data);
uint64_t h = 0xcbf29ce484222325ULL;
for (size_t i = 0; i < len; ++i)
h = (h ^ p[i]) * 0x100000001b3ULL;
return h;
}
// Base64 decoding function - no dependencies
static void base64_decode(const char* encoded_data, size_t encoded_len, unsigned char* output, size_t* output_len) {
const char* base64_chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
size_t out_pos = 0;
int val = 0, valb = -8;
for (size_t i = 0; i < encoded_len; i++) {
char c = encoded_data[i];
if (c == '=') break;
// Find position in base64_chars
const char* pos = strchr(base64_chars, c);
if (pos == nullptr) continue; // Skip invalid characters
val = (val << 6) + static_cast<int>(pos - base64_chars);
valb += 6;
if (valb >= 0) {
output[out_pos++] = static_cast<unsigned char>((val >> valb) & 0xFF);
valb -= 8;
}
}
*output_len = out_pos;
}
// Utility function to recreate a file with proper permissions
static bool _recreate_file_(const std::filesystem::path& outpath, uint64_t file_hash, std::filesystem::perms file_perms, const unsigned char* filedata, size_t filedata_len) {
namespace fs = std::filesystem;
bool needs_write = false;
// Check if file exists and has correct hash
if (fs::exists(outpath)) {
// Check content hash
std::ifstream in(outpath, std::ios::binary);
std::ostringstream oss;
oss << in.rdbuf();
std::string data = oss.str();
uint64_t existing_hash = fnv1a_64(data.data(), data.size());
needs_write = existing_hash != file_hash;
} else {
needs_write = true; // File doesn't exist, need to create it
}
bool needs_permission_update = true;
if (!needs_write) { // we always update permissions if the file is written or changed. Othewise we check.
fs::perms current_perms = fs::status(outpath).permissions();
needs_permission_update = current_perms != file_perms;
}
if (needs_write) {
bool existed = fs::exists(outpath);
fs::create_directories(outpath.parent_path());
std::ofstream out(outpath, std::ios::binary);
out.write(reinterpret_cast<const char*>(filedata), filedata_len);
out.close();
// Set the file permissions
fs::permissions(outpath, file_perms);
if (!existed) {
std::cout << "[dehydrate] " << outpath.filename() << ": created\n";
} else {
std::cout << "[dehydrate] " << outpath.filename() << ": updated (hash changed)\n";
}
return true;
}
if (needs_permission_update) {
// Update only permissions
fs::permissions(outpath, file_perms);
std::cout << "[dehydrate] " << outpath.filename() << ": updated (permissions changed)\n";
return true;
}
return false;
}
bool recreate_tree(std::string destination_folder) {
namespace fs = std::filesystem;
bool any_written = false;
{
// File: datacommands.sh
fs::path outpath = fs::path(destination_folder) / "datacommands.sh";
static const char filedata_base64[] = "IyEvYmluL2Jhc2gKCiMgVGhpcyBzY3JpcHQgY29udGFpbnMgdGhlIGNvbW1vbiBjb2RlIGZvciB0"\
"aGUgYXV0b2NvbW1hbmRzLgoKTVlJRD0kKGlkIC11KQpNWUdSUD0kKGlkIC1nKQoKX2F1dG9jb21t"\
"YW5kcnVuX3ZvbHVtZSgpIHsKICAgIGxvY2FsIGNvbW1hbmQ9IiQxIgogICAgbG9jYWwgdm9sdW1l"\
"X25hbWU9IiQyIgogICAgbG9jYWwgYmFja3VwX2ZvbGRlcj0iJDMiCgogICAgY2FzZSAiJGNvbW1h"\
"bmQiIGluCiAgICAgICAgY3JlYXRlKQogICAgICAgICAgICBpZiBkb2NrZXIgdm9sdW1lIGxzIHwg"\
"Z3JlcCAtcSAiJHt2b2x1bWVfbmFtZX0iOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvICJWb2x1"\
"bWUgJHt2b2x1bWVfbmFtZX0gYWxyZWFkeSBleGlzdHMgLSBsZWF2aW5nIHVuY2hhbmdlZCIKICAg"\
"ICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICBmaQogICAgICAgICAgICBlY2hvICJDcmVh"\
"dGluZyB2b2x1bWUgJHt2b2x1bWVfbmFtZX0iCiAgICAgICAgICAgIGRvY2tlciB2b2x1bWUgY3Jl"\
"YXRlICIke3ZvbHVtZV9uYW1lfSIKICAgICAgICAgICAgOzsKICAgICAgICBkZXN0cm95KQogICAg"\
"ICAgICAgICBlY2hvICJEZXN0cm95aW5nIHZvbHVtZSAke3ZvbHVtZV9uYW1lfSIKICAgICAgICAg"\
"ICAgZG9ja2VyIHZvbHVtZSBybSAiJHt2b2x1bWVfbmFtZX0iCiAgICAgICAgICAgIDs7CiAgICAg"\
"ICAgYmFja3VwKQogICAgICAgICAgICBlY2hvICJCYWNraW5nIHVwIHZvbHVtZSAke3ZvbHVtZV9u"\
"YW1lfSIKICAgICAgICAgICAgZG9ja2VyIHJ1biAtLXJtIC12ICIke3ZvbHVtZV9uYW1lfSI6L3Zv"\
"bHVtZSAtdiAiJHtiYWNrdXBfZm9sZGVyfSI6L2JhY2t1cCBkZWJpYW4gYmFzaCAtYyAidGFyIC1j"\
"enZmIC9iYWNrdXAvYmFja3VwLnRneiAtQyAvdm9sdW1lIC4gJiYgY2hvd24gLVIgJE1ZSUQ6JE1Z"\
"R1JQIC9iYWNrdXAiCiAgICAgICAgICAgIDs7CiAgICAgICAgcmVzdG9yZSkKICAgICAgICAgICAg"\
"ZWNobyAiUmVzdG9yaW5nIHZvbHVtZSAke3ZvbHVtZV9uYW1lfSIKICAgICAgICAgICAgZG9ja2Vy"\
"IHZvbHVtZSBybSAiJHt2b2x1bWVfbmFtZX0iCiAgICAgICAgICAgIGRvY2tlciB2b2x1bWUgY3Jl"\
"YXRlICIke3ZvbHVtZV9uYW1lfSIKICAgICAgICAgICAgZG9ja2VyIHJ1biAtLXJtIC12ICIke3Zv"\
"bHVtZV9uYW1lfSI6L3ZvbHVtZSAtdiAiJHtiYWNrdXBfZm9sZGVyfSI6L2JhY2t1cCBkZWJpYW4g"\
"YmFzaCAtYyAidGFyIC14enZmIC9iYWNrdXAvYmFja3VwLnRneiAtQyAvdm9sdW1lIC0tc3RyaXAt"\
"Y29tcG9uZW50cz0xIgogICAgICAgICAgICA7OwogICAgZXNhYwp9ICAgCgpfYXV0b2NvbW1hbmRy"\
"dW5fcGF0aCgpIHsKICAgIGxvY2FsIGNvbW1hbmQ9IiQxIgogICAgbG9jYWwgcGF0aD0iJDIiCiAg"\
"ICBsb2NhbCBiYWNrdXBfZm9sZGVyPSIkMyIKCiAgICBjYXNlICIkY29tbWFuZCIgaW4KICAgICAg"\
"ICBjcmVhdGUpCiAgICAgICAgICAgIGlmIFsgLWQgIiR7cGF0aH0iIF07IHRoZW4KICAgICAgICAg"\
"ICAgICAgIGVjaG8gIlBhdGggJHtwYXRofSBhbHJlYWR5IGV4aXN0cyAtIHVuY2hhbmdlZCIKICAg"\
"ICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICBmaQogICAgICAgICAgICBlY2hvICJDcmVh"\
"dGluZyBwYXRoICR7cGF0aH0iCiAgICAgICAgICAgIG1rZGlyIC1wICIke3BhdGh9IgogICAgICAg"\
"ICAgICA7OwogICAgICAgIGRlc3Ryb3kpCiAgICAgICAgICAgIGVjaG8gIkRlc3Ryb3lpbmcgcGF0"\
"aCAke3BhdGh9IgogICAgICAgICAgICBsb2NhbCBwYXRoX3BhcmVudDsKICAgICAgICAgICAgcGF0"\
"aF9wYXJlbnQ9JChkaXJuYW1lICIke3BhdGh9IikKICAgICAgICAgICAgbG9jYWwgcGF0aF9jaGls"\
"ZDsKICAgICAgICAgICAgcGF0aF9jaGlsZD0kKGJhc2VuYW1lICIke3BhdGh9IikKICAgICAgICAg"\
"ICAgaWYgWyAtZCAiJHtwYXRoX3BhcmVudH0vJHtwYXRoX2NoaWxkfSIgXTsgdGhlbgogICAgICAg"\
"ICAgICAgICAgZG9ja2VyIHJ1biAtLXJtIC12ICIke3BhdGhfcGFyZW50fSI6L3ZvbHVtZSBkZWJp"\
"YW4gYmFzaCAtYyAicm0gLXJmdiAvdm9sdW1lLyR7cGF0aF9jaGlsZH0iIHx8IGVjaG8gIkZhaWxl"\
"ZCB0byBkZXN0cm95IHBhdGggJHtwYXRofSIKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg"\
"ICAgZWNobyAiUGF0aCAke3BhdGh9IGRvZXMgbm90IGV4aXN0IC0gbm90aGluZyB0byBkZXN0cm95"\
"IgogICAgICAgICAgICBmaQogICAgICAgICAgICA7OwogICAgICAgIGJhY2t1cCkKICAgICAgICAg"\
"ICAgZWNobyAiQmFja2luZyB1cCBwYXRoICR7cGF0aH0iCiAgICAgICAgICAgIGlmIFsgLWQgIiR7"\
"cGF0aH0iIF07IHRoZW4KICAgICAgICAgICAgICAgIGRvY2tlciBydW4gLS1ybSAtdiAiJHtwYXRo"\
"fSI6L3BhdGggLXYgIiR7YmFja3VwX2ZvbGRlcn0iOi9iYWNrdXAgZGViaWFuIGJhc2ggLWMgInRh"\
"ciAtY3p2ZiAvYmFja3VwL2JhY2t1cC50Z3ogLUMgL3BhdGggLiAmJiBjaG93biAtUiAkTVlJRDok"\
"TVlHUlAgL2JhY2t1cCIKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWNobyAiUGF0"\
"aCAke3BhdGh9IGRvZXMgbm90IGV4aXN0IC0gbm90aGluZyB0byBiYWNrdXAiCiAgICAgICAgICAg"\
"IGZpCiAgICAgICAgICAgIDs7CiAgICAgICAgcmVzdG9yZSkKICAgICAgICAgICAgaWYgWyAhIC1m"\
"ICIke2JhY2t1cF9mb2xkZXJ9L2JhY2t1cC50Z3oiIF07IHRoZW4KICAgICAgICAgICAgICAgIGVj"\
"aG8gIkJhY2t1cCBmaWxlICR7YmFja3VwX2ZvbGRlcn0vYmFja3VwLnRneiBkb2VzIG5vdCBleGlz"\
"dCAtIG5vdGhpbmcgdG8gcmVzdG9yZSIKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg"\
"ZWNobyAiQ2xlYXJpbmcgZXhpc3RpbmcgZGF0YSBpbiBwYXRoICR7cGF0aH0iCiAgICAgICAgICAg"\
"ICAgICBkb2NrZXIgcnVuIC0tcm0gLXYgIiR7cGF0aH0iOi9wYXRoIGRlYmlhbiBiYXNoIC1jICJy"\
"bSAtcmZ2IC9wYXRoL3sqLC4qfSIKICAgICAgICAgICAgICAgIGVjaG8gIlJlc3RvcmluZyBwYXRo"\
"ICR7cGF0aH0gZnJvbSBiYWNrdXAgZmlsZSAke2JhY2t1cF9mb2xkZXJ9L2JhY2t1cC50Z3oiCiAg"\
"ICAgICAgICAgICAgICB0YXIgLXh6dmYgIiR7YmFja3VwX2ZvbGRlcn0vYmFja3VwLnRneiIgLUMg"\
"IiR7cGF0aH0iIC0tc3RyaXAtY29tcG9uZW50cz0xCiAgICAgICAgICAgIGZpCiAgICAgICAgICAg"\
"IDs7CiAgICBlc2FjCn0KCl9hdXRvY29tbWFuZHJ1bl9maWxlKCkgewogICAgbG9jYWwgY29tbWFu"\
"ZD0iJDEiCiAgICBsb2NhbCBmaWxlcGF0aD0iJDIiCiAgICBsb2NhbCBiYWNrdXBfZm9sZGVyPSIk"\
"MyIKCiAgICBjYXNlICIkY29tbWFuZCIgaW4KICAgICAgICBjcmVhdGUpCiAgICAgICAgICAgIGxv"\
"Y2FsIGZpbGVfcGFyZW50OwogICAgICAgICAgICBmaWxlX3BhcmVudD0kKGRpcm5hbWUgIiR7Zmls"\
"ZXBhdGh9IikKICAgICAgICAgICAgbG9jYWwgZmlsZV9uYW1lOwogICAgICAgICAgICBmaWxlX25h"\
"bWU9JChiYXNlbmFtZSAiJHtmaWxlcGF0aH0iKQogICAgICAgICAgICBpZiBbICEgLWQgIiR7Zmls"\
"ZV9wYXJlbnR9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvICJQYXJlbnQgZGlyZWN0b3J5"\
"ICR7ZmlsZV9wYXJlbnR9IG9mICR7ZmlsZV9uYW1lfSBkb2VzIG5vdCBleGlzdCAtIGNyZWF0aW5n"\
"IgogICAgICAgICAgICAgICAgbWtkaXIgLXAgIiR7ZmlsZV9wYXJlbnR9IgogICAgICAgICAgICBm"\
"aQogICAgICAgICAgICA7OwogICAgICAgIGRlc3Ryb3kpCiAgICAgICAgICAgIHJtIC1mICIke2Zp"\
"bGVwYXRofSIKICAgICAgICAgICAgOzsKICAgICAgICBiYWNrdXApCiAgICAgICAgICAgIGVjaG8g"\
"IkJhY2tpbmcgdXAgZmlsZSAke2ZpbGVwYXRofSIKICAgICAgICAgICAgbG9jYWwgZmlsZV9wYXJl"\
"bnQ7CiAgICAgICAgICAgIGZpbGVfcGFyZW50PSQoZGlybmFtZSAiJHtmaWxlcGF0aH0iKQogICAg"\
"ICAgICAgICBsb2NhbCBmaWxlX25hbWU7CiAgICAgICAgICAgIGZpbGVfbmFtZT0kKGJhc2VuYW1l"\
"ICIke2ZpbGVwYXRofSIpCiAgICAgICAgICAgIGlmIFsgLWYgIiR7ZmlsZV9wYXJlbnR9LyR7Zmls"\
"ZV9uYW1lfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgZG9ja2VyIHJ1biAtLXJtIC12ICIke2Zp"\
"bGVfcGFyZW50fSI6L3ZvbHVtZSAtdiAiJHtiYWNrdXBfZm9sZGVyfSI6L2JhY2t1cCBkZWJpYW4g"\
"YmFzaCAtYyAiY3AgL3ZvbHVtZS8ke2ZpbGVfbmFtZX0gL2JhY2t1cC8ke2ZpbGVfbmFtZX0gJiYg"\
"Y2hvd24gLVIgJE1ZSUQ6JE1ZR1JQIC9iYWNrdXAiCiAgICAgICAgICAgIGVsc2UKICAgICAgICAg"\
"ICAgICAgIGVjaG8gIkZpbGUgJHtmaWxlcGF0aH0gZG9lcyBub3QgZXhpc3QgLSBub3RoaW5nIHRv"\
"IGJhY2t1cCIKICAgICAgICAgICAgZmkKICAgICAgICAgICAgOzsKICAgICAgICByZXN0b3JlKQog"\
"ICAgICAgICAgICBlY2hvICJSZXN0b3JpbmcgZmlsZSAke2ZpbGVwYXRofSIKICAgICAgICAgICAg"\
"bG9jYWwgZmlsZV9uYW1lOwogICAgICAgICAgICBmaWxlX25hbWU9JChiYXNlbmFtZSAiJHtmaWxl"\
"cGF0aH0iKQogICAgICAgICAgICBybSAtZiAiJHtmaWxlcGF0aH0iIHx8IHJldHVybl9kaWUgIlVu"\
"YWJsZSB0byByZW1vdmUgZXhpc3RpbmcgZmlsZSAke2ZpbGVwYXRofSwgcmVzdG9yZSBmYWlsZWQu"\
"IgogICAgICAgICAgICBjcCAiJHtiYWNrdXBfZm9sZGVyfS8ke2ZpbGVfbmFtZX0iICIke2ZpbGVw"\
"YXRofSIgfHwgcmV0dXJuX2RpZSAiVW5hYmxlIHRvIGNvcHkgZmlsZSAke2JhY2t1cF9mb2xkZXJ9"\
"LyR7ZmlsZV9uYW1lfSB0byAke2ZpbGVwYXRofSwgcmVzdG9yZSBmYWlsZWQuIgogICAgICAgICAg"\
"ICA7OwogICAgZXNhYwp9CgpfYXV0b2NvbW1hbmRwYXJzZSgpIHsKICAgICMgZmlyc3QgYXJndW1l"\
"bnQgaXMgdGhlIGNvbW1hbmQKICAgICMgaWYgdGhlIGNvbW1hbmQgaXMgYmFja3VwIG9yIHJlc3Rv"\
"cmUsIHRoZW4gdGhlIGxhc3QgdHdvIGFyZ3VtZW50cyBhcmUgdGhlIGJhY2t1cCBmaWxlIGFuZCB0"\
"aGUgdGVtcG9yYXJ5IHBhdGgKICAgICMgYWxsIG90aGVyIGFyZ3VtZW50cyBhcmUgb2YgZm9ybToK"\
"ICAgICMga2V5PXZhbHVlCiAgICAjIHdoZXJlIGtleSBjYW4gYmUgb25lIG9mIHZvbHVtZSwgcGF0"\
"aCBvciBmaWxlLgogICAgIyB2YWx1ZSBpcyB0aGUgcGF0aCBvciB2b2x1bWUgbmFtZS4KCiAgICAj"\
"IHdlIGl0ZXJhdGUgb3ZlciB0aGUga2V5PXZhbHVlIGFyZ3VtZW50cywgYW5kIGZvciBlYWNoIHdl"\
"IGNhbGw6CiAgICAjICAgIGF1dG9ydW4gPGNvbW1hbmQ+IDxiYWNrdXBmaWxlPiA8a2V5PiA8dmFs"\
"dWU+CgogICAgbG9jYWwgY29tbWFuZD0iJDEiCiAgICBzaGlmdAoKICAgIGxvY2FsIGJhY2t1cF90"\
"ZW1wX3BhdGg9IiQxIgogICAgc2hpZnQKCiAgICBlY2hvICJhdXRvY29tbWFuZHBhcnNlOiBjb21t"\
"YW5kPSRjb21tYW5kIGJhY2t1cF90ZW1wX3BhdGg9JGJhY2t1cF90ZW1wX3BhdGgiCgogICAgIyBF"\
"eHRyYWN0IHRoZSBiYWNrdXAgZmlsZSBhbmQgdGVtcCBwYXRoIChsYXN0IHR3byBhcmd1bWVudHMp"\
"CiAgICBsb2NhbCBhcmdzPSgiJEAiKQogICAgbG9jYWwgYXJnX2NvdW50PSR7I2FyZ3NbQF19CiAg"\
"ICAKICAgICMgUHJvY2VzcyBhbGwga2V5PXZhbHVlIHBhaXJzCiAgICBmb3IgKChpPTA7IGk8JGFy"\
"Z19jb3VudDsgaSsrKSk7IGRvCiAgICAgICAgbG9jYWwgcGFpcj0iJHthcmdzWyRpXX0iCiAgICAg"\
"ICAgCiAgICAgICAgIyBTa2lwIGlmIG5vdCBpbiBrZXk9dmFsdWUgZm9ybWF0CiAgICAgICAgaWYg"\
"W1sgIiRwYWlyIiAhPSAqIj0iKiBdXTsgdGhlbgogICAgICAgICAgICBjb250aW51ZQogICAgICAg"\
"IGZpCiAgICAgICAgCiAgICAgICAgbG9jYWwga2V5PSIke3BhaXIlJT0qfSIKICAgICAgICBsb2Nh"\
"bCB2YWx1ZT0iJHtwYWlyIyo9fSIKCiAgICAgICAgIyBjcmVhdGUgYmFja3VwIGZvbGRlciB1bmlx"\
"dWUgdG8ga2V5L3ZhbHVlLgogICAgICAgIGxvY2FsIGJmb2xkZXI7CiAgICAgICAgYmZvbGRlcj0k"\
"KGVjaG8gIiR7a2V5fV8ke3ZhbHVlfSIgfCB0ciAtY2QgJ1s6YWxudW06XV8tJykKICAgICAgICBs"\
"b2NhbCB0YXJnZXRwYXRoPSIke2JhY2t1cF90ZW1wX3BhdGh9LyR7YmZvbGRlcn0iCiAgICAgICAg"\
"bWtkaXIgLXAgIiR7dGFyZ2V0cGF0aH0iCgogICAgICAgICMgS2V5IG11c3QgYmUgb25lIG9mIHZv"\
"bHVtZSwgcGF0aCBvciBmaWxlCiAgICAgICAgY2FzZSAiJGtleSIgaW4KICAgICAgICAgICAgdm9s"\
"dW1lKQogICAgICAgICAgICAgICAgX2F1dG9jb21tYW5kcnVuX3ZvbHVtZSAiJGNvbW1hbmQiICIk"\
"dmFsdWUiICIkdGFyZ2V0cGF0aCIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIHBhdGgp"\
"CiAgICAgICAgICAgICAgICBfYXV0b2NvbW1hbmRydW5fcGF0aCAiJGNvbW1hbmQiICIkdmFsdWUi"\
"ICIkdGFyZ2V0cGF0aCIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGZpbGUpCiAgICAg"\
"ICAgICAgICAgICBfYXV0b2NvbW1hbmRydW5fZmlsZSAiJGNvbW1hbmQiICIkdmFsdWUiICIkdGFy"\
"Z2V0cGF0aCIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICopCiAgICAgICAgICAgICAg"\
"ICBfZGllICJVbmtub3duIGtleSAka2V5IHBhc3NlZCB0byBhdXRvJHtjb21tYW5kfS4gV2Ugb25s"\
"eSBzdXBwb3J0IHZvbHVtZSwgcGF0aCBhbmQgZmlsZS4iCiAgICAgICAgICAgICAgICA7OwogICAg"\
"ICAgIGVzYWMKICAgIGRvbmUKfQoKCmRhdGFjcmVhdGUoKSB7CiAgICBfYXV0b2NvbW1hbmRwYXJz"\
"ZSBjcmVhdGUgbm9uZSAiJEAiCn0KCgpkYXRhZGVzdHJveSgpIHsKICAgIF9hdXRvY29tbWFuZHBh"\
"cnNlIGRlc3Ryb3kgbm9uZSAiJEAiCn0KCmRhdGFiYWNrdXAoKSB7CiAgICBfY2hlY2tfcmVxdWly"\
"ZWRfZW52X3ZhcnMgIkJBQ0tVUF9GSUxFIiAiVEVNUF9ESVIiCiAgICBCQUNLVVBfVEVNUF9QQVRI"\
"PSIkVEVNUF9ESVIvYmFja3VwIgoKCiAgICBta2RpciAtcCAiJEJBQ0tVUF9URU1QX1BBVEgiCiAg"\
"ICBlY2hvICJfYXV0b2NvbW1hbmRwYXJzZSBbYmFja3VwXSBbJEJBQ0tVUF9URU1QX1BBVEhdIiAi"\
"JEAiCiAgICBfYXV0b2NvbW1hbmRwYXJzZSBiYWNrdXAgIiRCQUNLVVBfVEVNUF9QQVRIIiAiJEAi"\
"CgogICAgdGFyIHpjdmYgIiRCQUNLVVBfRklMRSIgLUMgIiRCQUNLVVBfVEVNUF9QQVRIIiAuCn0K"\
"CmRhdGFyZXN0b3JlKCkgewogICAgX2NoZWNrX3JlcXVpcmVkX2Vudl92YXJzICJCQUNLVVBfRklM"\
"RSIgIlRFTVBfRElSIgogICAgQkFDS1VQX1RFTVBfUEFUSD0iJFRFTVBfRElSL3Jlc3RvcmUiCgog"\
"ICAgZWNobyAiX2F1dG9jb21tYW5kcGFyc2UgW3Jlc3RvcmVdIFskQkFDS1VQX1RFTVBfUEFUSF0i"\
"ICIkQCIKCiAgICBta2RpciAtcCAiJEJBQ0tVUF9URU1QX1BBVEgiCiAgICB0YXIgenh2ZiAiJEJB"\
"Q0tVUF9GSUxFIiAtQyAiJEJBQ0tVUF9URU1QX1BBVEgiIC0tc3RyaXAtY29tcG9uZW50cz0xCgog"\
"ICAgX2F1dG9jb21tYW5kcGFyc2UgcmVzdG9yZSAiJEJBQ0tVUF9URU1QX1BBVEgiICIkQCIKfQo=";
// Decode Base64 data
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
unsigned char* decoded_data = new unsigned char[decoded_size];
size_t actual_size;
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
bool file_written = _recreate_file_(outpath, 11153801105139786982ULL, std::filesystem::perms(493), decoded_data, actual_size);
delete[] decoded_data;
any_written = any_written || file_written;
}
{
// File: agent-install.sh
fs::path outpath = fs::path(destination_folder) / "agent-install.sh";
static const char filedata_base64[] = "IyEvYmluL2Jhc2gKCiMgVGhpcyBzY3JpcHQgaXMgdXNlZCB0byBpbnN0YWxsIHRoZSBkcm9wc2hl"\
"bGwgYWdlbnQgb24gYSByZW1vdGUgc2VydmVyLgoKU0NSSVBUX0RJUj0kKGRpcm5hbWUgIiQwIikK"\
"CnNldCAtYQoKQUdFTlRfUEFUSD0iJFNDUklQVF9ESVIiCgpzZXQgK2EKCgppZiBbIC1mICIkU0NS"\
"SVBUX0RJUi9jb21tb24uc2giIF07IHRoZW4KICAgIHNvdXJjZSAiJFNDUklQVF9ESVIvY29tbW9u"\
"LnNoIgplbHNlCiAgICBlY2hvICJFcnJvcjogY29tbW9uLnNoIG5vdCBmb3VuZCBpbiAkU0NSSVBU"\
"X0RJUiIKICAgIGV4aXQgMQpmaQoKX2NoZWNrX3JlcXVpcmVkX2Vudl92YXJzICJBR0VOVF9QQVRI"\
"IgoKZnVuY3Rpb24gaW5zdGFsbF9iYjY0KCkgeyAgICAKICAgIEJCNjRfcGF0aD0iJHtBR0VOVF9Q"\
"QVRIfS9iYjY0IgogICAgQVJDSD0kKHVuYW1lIC1tKQogICAgaWYgISBjdXJsIC1zICJodHRwczov"\
"L2dldGJpbi54eXovYmI2NDpsYXRlc3QtJHtBUkNIfSIgPiAiJHtCQjY0X3BhdGh9IjsgdGhlbgog"\
"ICAgICAgIF9kaWUgIkZhaWxlZCB0byBpbnN0YWxsIGJiNjQuIEN1cmwgcmV0dXJuZWQgbm9uLXpl"\
"cm8gZXhpdCBjb2RlLiIKICAgIGZpCiAgICBjaG93biAiJChpZCAtdSAiJFVTRVIiKTokKGlkIC1n"\
"ICIkVVNFUiIpIiAiJHtCQjY0X3BhdGh9IgogICAgY2htb2QgK3ggIiR7QkI2NF9wYXRofSIKCiAg"\
"ICAjIHRlc3QgaWYgYmI2NCBpcyBpbnN0YWxsZWQKICAgIGlmIFZFUj0kKCIke0JCNjRfcGF0aH0i"\
"IHZlcnNpb24pOyB0aGVuCiAgICAgICAgZWNobyAiYmI2NCB2JFZFUiBpbnN0YWxsZWQuIgogICAg"\
"ZWxzZQogICAgICAgIF9kaWUgImJiNjQgZGlkIG5vdCBpbnN0YWxsIGNvcnJlY3RseS4iCiAgICBm"\
"aQoKICAgIHJldHVybiAwOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBDaGVjayBwcmUtcmVxdWlz"\
"aXRlcwoKIyBDaGVjayBpZiBjdXJsIGlzIGluc3RhbGxlZAppZiAhIGNvbW1hbmQgLXYgY3VybCAm"\
"PiAvZGV2L251bGw7IHRoZW4KICAgIF9kaWUgIkN1cmwgaXMgbm90IGluc3RhbGxlZC4gQ3VybCBp"\
"cyByZXF1aXJlZCBmb3IgYWdlbnQgaW5zdGFsbGF0aW9uLiIKZmkKCiMgY2hlY2sgZG9ja2VyIGlu"\
"c3RhbGxhdGlvbgppZiAhIGNvbW1hbmQgLXYgZG9ja2VyICY+IC9kZXYvbnVsbDsgdGhlbgogICAg"\
"ZWNobyAiRG9ja2VyIGlzIG5vdCBpbnN0YWxsZWQuIERvY2tlciBpcyByZXF1aXJlZCBmb3IgYWdl"\
"bnQgaW5zdGFsbGF0aW9uLiIKICAgIGV4aXQgMQpmaQoKIyBjaGVjayByc3luYyBpbnN0YWxsYXRp"\
"b24KaWYgISBjb21tYW5kIC12IHJzeW5jICY+IC9kZXYvbnVsbDsgdGhlbgogICAgZWNobyAiUnN5"\
"bmMgaXMgbm90IGluc3RhbGxlZC4gUnN5bmMgaXMgcmVxdWlyZWQgZm9yIGFnZW50IGluc3RhbGxh"\
"dGlvbi4iCiAgICBleGl0IDEKZmkKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZWNobyAiSW5zdGFsbGlu"\
"ZyBkcm9wc2hlbGwgYWdlbnQuLi4iCgppbnN0YWxsX2JiNjQKCiMtLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoj"\
"IGNvbmZpcm0gd2UncmUgaW4gYSBnb29kIHN0YXRlLgoKcmVxdWlyZWRfZmlsZXM9KAogICAgIiRB"\
"R0VOVF9QQVRIL2JiNjQiCiAgICAiJEFHRU5UX1BBVEgvX2FsbHNlcnZpY2Vzc3RhdHVzLnNoIgog"\
"ICAgIiRBR0VOVF9QQVRIL2NvbW1vbi5zaCIKICAgICIkQUdFTlRfUEFUSC9kYXRhY29tbWFuZHMu"\
"c2giCikKCiMgY2hlY2sgaWYgYWxsIGZpbGVzIGV4aXN0CmZvciBmaWxlIGluICIke3JlcXVpcmVk"\
"X2ZpbGVzW0BdfSI7IGRvCiAgICBpZiBbICEgLWYgIiRmaWxlIiBdOyB0aGVuCiAgICAgICAgX2Rp"\
"ZSAiJGZpbGUgZG9lcyBub3QgZXhpc3QuIFBsZWFzZSBjaGVjayB0aGUgaW5zdGFsbGF0aW9uLiIK"\
"ICAgIGZpCmRvbmUKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgplY2hvICJDb21wbGV0ZWQgZHJvcHNoZWxs"\
"IGFnZW50IGluc3RhbGxhdGlvbi4iCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZXhpdCAwCg==";
// Decode Base64 data
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
unsigned char* decoded_data = new unsigned char[decoded_size];
size_t actual_size;
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
bool file_written = _recreate_file_(outpath, 15303959887899096456ULL, std::filesystem::perms(493), decoded_data, actual_size);
delete[] decoded_data;
any_written = any_written || file_written;
}
{
// File: _allservicesstatus.sh
fs::path outpath = fs::path(destination_folder) / "_allservicesstatus.sh";
static const char filedata_base64[] = "IyEvYmluL2Jhc2gKCiMgVGhpcyBzY3JpcHQgY2hlY2tzIEFMTCBzZXJ2aWNlcyBvbiB0aGUgc2Vy"\
"dmVyIGFuZCByZXR1cm5zIGEgc3RhdHVzIGZvciBlYWNoLgoKIyBSZXR1cm4gZm9ybWF0IGlzIHNp"\
"bXBsZSBFTlYgd2l0aCB0aGUgZm9sbG93aW5nIGZvcm1hdDoKIyBTRVJWSUNFX05BTUVfSEVBTFRI"\
"PWhlYWx0aHl8dW5oZWFsdGh5fHVua25vd24KIyBTRVJWSUNFX05BTUVfUE9SVFM9cG9ydDEscG9y"\
"dDIscG9ydDMKCiMgR2V0IGFsbCBzZXJ2aWNlcyBvbiB0aGUgc2VydmVyClNDUklQVF9ESVI9IiQo"\
"ZGlybmFtZSAiJDAiKSIKCiAgICAjIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tCiAgICAjIC8vIHJlbW90ZSBwYXRocwogICAgIyAvLyBEUk9QU0hFTExfRElSCiAgICAj"\
"IC8vICAgfC0tIGJhY2t1cHMKICAgICMgLy8gICB8LS0gdGVtcF9maWxlcwogICAgIyAvLyAgIHwt"\
"LSBhZ2VudAogICAgIyAvLyAgIHwgICB8LS0gYmI2NAogICAgIyAvLyAgIHwgICB8LS0gKG90aGVy"\
"IGFnZW50IGZpbGVzLCBpbmNsdWRpbmcgX2FsbHNlcnZpY2Vzc3RhdHVzLnNoKQogICAgIyAvLyAg"\
"IHwtLSBzZXJ2aWNlcwogICAgIyAvLyAgICAgICB8LS0gc2VydmljZSBuYW1lCiAgICAjIC8vICAg"\
"ICAgICAgICB8LS0gY29uZmlnCiAgICAjIC8vICAgICAgICAgICAgICAgfC0tIHNlcnZpY2UuZW52"\
"IChhY3R1YWwgc2VydmljZSBjb25maWcpCiAgICAjIC8vICAgICAgICAgICAgICAgfC0tIC50ZW1w"\
"bGF0ZV9pbmZvLmVudgogICAgIyAvLyAgICAgICAgICAgfC0tIHRlbXBsYXRlCiAgICAjIC8vICAg"\
"ICAgICAgICAgICAgfC0tIChzY3JpcHQgZmlsZXMpCiAgICAjIC8vICAgICAgICAgICAgICAgfC0t"\
"IGNvbmZpZwogICAgIyAvLyAgICAgICAgICAgICAgICAgICB8LS0gc2VydmljZS5lbnYgKGRlZmF1"\
"bHQgc2VydmljZSBjb25maWcpCiAgICAjIC8vICAgICAgICAgICAgICAgICAgIHwtLSAudGVtcGxh"\
"dGVfaW5mby5lbnYKICAgICMgLy8gICAgICAgICAgICAgICAgICAgfC0tIChvdGhlciBjb25maWcg"\
"ZmlsZXMgZm9yIHNwZWNpZmljIHNlcnZlciZzZXJ2aWNlKQoKIyBHZXQgYWxsIHNlcnZpY2VzIG9u"\
"IHRoZSBzZXJ2ZXIKU0VSVklDRVNfUEFUSD0kKHJlYWxwYXRoICIke1NDUklQVF9ESVJ9Ly4uL3Nl"\
"cnZpY2VzLyIpCgpDVVJSRU5UX09VVFBVVD0iIgpDVVJSRU5UX0VYSVRfQ09ERT0wCgpsb2FkX2Rv"\
"dGVudigpewogICAgbG9jYWwgZmlsZV9wYXRoPSQxCiAgICBpZiBbIC1mICIke2ZpbGVfcGF0aH0i"\
"IF07IHRoZW4KICAgICMgc2hlbGxjaGVjayBzb3VyY2U9L2Rldi9udWxsCiAgICAgICAgc291cmNl"\
"ICIke2ZpbGVfcGF0aH0iCiAgICBmaQp9CgpfY2hlY2tfcmVxdWlyZWRfZW52X3ZhcnNfYWxsc2Vy"\
"dmljZXNzdGF0dXMoKSB7CiAgICBsb2NhbCByZXF1aXJlZF92YXJzPSgiJEAiKQogICAgZm9yIHZh"\
"ciBpbiAiJHtyZXF1aXJlZF92YXJzW0BdfSI7IGRvCiAgICAgICAgaWYgWyAteiAiJHshdmFyfSIg"\
"XTsgdGhlbgogICAgICAgICAgICBfZGllICJSZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAk"\
"dmFyIGlzIG5vdCBzZXQiCiAgICAgICAgZmkKICAgIGRvbmUKfQoKZnVuY3Rpb24gcnVuX2NvbW1h"\
"bmQoKSB7CiAgICBsb2NhbCBzZXJ2aWNlX3BhdGg9JDEKICAgIGxvY2FsIGNvbW1hbmQ9JDIKICAg"\
"IGxvY2FsIGNhcHR1cmVfb3V0cHV0PSR7MzotZmFsc2V9ICAjIGRlZmF1bHQgdG8gZmFsc2UgaWYg"\
"bm90IHNwZWNpZmllZAoKICAgICMgY2hlY2sgaWYgdGhlIGNvbW1hbmQgaXMgYSBmaWxlCiAgICBp"\
"ZiBbICEgLWYgIiR7c2VydmljZV9wYXRofS90ZW1wbGF0ZS8ke2NvbW1hbmR9LnNoIiBdOyB0aGVu"\
"CiAgICAgICAgcmV0dXJuOwogICAgZmkKCiAgICAjIHJ1biB0aGUgY29tbWFuZCBpbiBhIHN1YnNo"\
"ZWxsIHRvIHByZXZlbnQgZW52aXJvbm1lbnQgY2hhbmdlcwogICAgQ1VSUkVOVF9PVVRQVVQ9JCgK"\
"ICAgICAgICBzZXQgLWEKCiAgICAgICAgbG9hZF9kb3RlbnYgIiR7c2VydmljZV9wYXRofS9jb25m"\
"aWcvc2VydmljZS5lbnYiCiAgICAgICAgbG9hZF9kb3RlbnYgIiR7c2VydmljZV9wYXRofS9jb25m"\
"aWcvLnRlbXBsYXRlX2luZm8uZW52IgoKICAgICAgICAjIHVwZGF0ZSB0aGUgbWFpbiB2YXJpYWJs"\
"ZXMuCiAgICAgICAgZXhwb3J0IENPTkZJR19QQVRIPSIke3NlcnZpY2VfcGF0aH0vY29uZmlnIgog"\
"ICAgICAgIGV4cG9ydCBTRVJWSUNFPSIke1NFUlZJQ0VfTkFNRX0iCiAgICAgICAgZXhwb3J0IERP"\
"Q0tFUl9DTElfSElOVFM9ZmFsc2UKCiAgICAgICAgc2V0ICthCgogICAgICAgIF9jaGVja19yZXF1"\
"aXJlZF9lbnZfdmFyc19hbGxzZXJ2aWNlc3N0YXR1cyAiQ09ORklHX1BBVEgiICJTRVJWRVIiICJT"\
"RVJWSUNFIiAiQUdFTlRfUEFUSCIgIkhPU1RfTkFNRSIgIlRFTVBMQVRFIgoKICAgICAgICBpZiBb"\
"ICIkY2FwdHVyZV9vdXRwdXQiID0gInRydWUiIF07IHRoZW4KICAgICAgICAgICAgIyBDYXB0dXJl"\
"IGFuZCByZXR1cm4gb3V0cHV0CiAgICAgICAgICAgIGJhc2ggIiR7c2VydmljZV9wYXRofS90ZW1w"\
"bGF0ZS8ke2NvbW1hbmR9LnNoIiAyPiYxCiAgICAgICAgZWxzZQogICAgICAgICAgICAjIFJ1biBz"\
"aWxlbnRseSBhbmQgcmV0dXJuIGV4aXQgY29kZQogICAgICAgICAgICBiYXNoICIke3NlcnZpY2Vf"\
"cGF0aH0vdGVtcGxhdGUvJHtjb21tYW5kfS5zaCIgPiAvZGV2L251bGwgMj4mMQogICAgICAgIGZp"\
"CiAgICApCiAgICBDVVJSRU5UX0VYSVRfQ09ERT0kPwp9CgpmdW5jdGlvbiBjb21tYW5kX2V4aXN0"\
"cygpIHsKICAgIGxvY2FsIHNlcnZpY2VfcGF0aD0kMQogICAgbG9jYWwgY29tbWFuZD0kMgogICAg"\
"aWYgWyAhIC1mICIke3NlcnZpY2VfcGF0aH0vdGVtcGxhdGUvJHtjb21tYW5kfS5zaCIgXTsgdGhl"\
"bgogICAgICAgIHJldHVybiAxCiAgICBmaQogICAgcmV0dXJuIDAKfQoKCmlmIFsgISAtZCAiJHtT"\
"RVJWSUNFU19QQVRIfSIgXTsgdGhlbgogICAgZWNobyAiU2VydmljZXMgcGF0aCBkb2VzIG5vdCBl"\
"eGlzdDogJHtTRVJWSUNFU19QQVRIfSIKICAgIGV4aXQgMApmaQoKIyBHZXQgYWxsIHNlcnZpY2Ug"\
"bmFtZXMKU0VSVklDRV9OQU1FUz0kKGxzICIke1NFUlZJQ0VTX1BBVEh9IikKCiMgSXRlcmF0ZSBv"\
"dmVyIGFsbCBzZXJ2aWNlIG5hbWVzCmZvciBTRVJWSUNFX05BTUUgaW4gJHtTRVJWSUNFX05BTUVT"\
"fTsgZG8KCiAgICBTRVJWSUNFX1BBVEg9JChyZWFscGF0aCAiJHtTRVJWSUNFU19QQVRIfS8ke1NF"\
"UlZJQ0VfTkFNRX0iKQoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg"\
"IyBHZXQgdGhlIHNlcnZpY2UgaGVhbHRoCiAgICBpZiAhIGNvbW1hbmRfZXhpc3RzICIke1NFUlZJ"\
"Q0VfUEFUSH0iICJzdGF0dXMiOyB0aGVuCiAgICAgICAgU0VSVklDRV9IRUFMVEg9InVua25vd24i"\
"CiAgICBlbHNlCiAgICAgICAgcnVuX2NvbW1hbmQgIiR7U0VSVklDRV9QQVRIfSIgInN0YXR1cyIg"\
"ImZhbHNlIgogICAgICAgIGlmIFsgIiR7Q1VSUkVOVF9FWElUX0NPREV9IiAtZXEgMCBdOyB0aGVu"\
"CiAgICAgICAgICAgIFNFUlZJQ0VfSEVBTFRIPSJoZWFsdGh5IgogICAgICAgIGVsc2UKICAgICAg"\
"ICAgICAgU0VSVklDRV9IRUFMVEg9InVuaGVhbHRoeSIKICAgICAgICBmaQogICAgZmkKCiAgICAj"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICMgR2V0IHRoZSBzZXJ2aWNlIHBv"\
"cnRzCiAgICBpZiAhIGNvbW1hbmRfZXhpc3RzICIke1NFUlZJQ0VfUEFUSH0iICJwb3J0cyI7IHRo"\
"ZW4KICAgICAgICBTRVJWSUNFX1BPUlRTPSIiCiAgICBlbHNlCiAgICAgICAgcnVuX2NvbW1hbmQg"\
"IiR7U0VSVklDRV9QQVRIfSIgInBvcnRzIiAidHJ1ZSIKICAgICAgICBTRVJWSUNFX1BPUlRTPSIk"\
"e0NVUlJFTlRfT1VUUFVUfSIKICAgIGZpCgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tCiAgICAjIHJldHVybiB0aGUgaGVhbHRoIGFuZCBwb3J0cwogICAgZWNobyAiJHtTRVJW"\
"SUNFX05BTUV9X0hFQUxUSD0ke1NFUlZJQ0VfSEVBTFRIfSIKICAgIGVjaG8gIiR7U0VSVklDRV9O"\
"QU1FfV9QT1JUUz0ke1NFUlZJQ0VfUE9SVFN9Igpkb25lCg==";
// Decode Base64 data
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
unsigned char* decoded_data = new unsigned char[decoded_size];
size_t actual_size;
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
bool file_written = _recreate_file_(outpath, 5357556424345185129ULL, std::filesystem::perms(493), decoded_data, actual_size);
delete[] decoded_data;
any_written = any_written || file_written;
}
{
// File: common.sh
fs::path outpath = fs::path(destination_folder) / "common.sh";
static const char filedata_base64[] = "IyBDT01NT04gRlVOQ1RJT05TCiMgSkRFCiMgMjAyNS0wNS0wMwoKIyBUaGlzIGZpbGUgaXMgYXZh"\
"aWxhYmxlIFRPICoqKkFMTCoqKiB0ZW1wbGF0ZXMsIGFzICR7QUdFTlRfUEFUSH0vX2NvbW1vbi5z"\
"aAoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoj"\
"IHN1bW1hcnkgb2YgZnVuY3Rpb25zOgojICAgX2RpZSAibWVzc2FnZSIgICAgICAgICAgICAgICAg"\
"ICAgICAgICAgOiBQcmludHMgYW4gZXJyb3IgbWVzc2FnZSBpbiByZWQgYW5kIGV4aXRzIHdpdGgg"\
"c3RhdHVzIGNvZGUgMS4KIyAgIF9ncmV5X3N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAg"\
"IDogU3dpdGNoZXMgdGVybWluYWwgb3V0cHV0IGNvbG9yIHRvIGdyZXkuCiMgICBfZ3JleV9lbmQg"\
"ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFJlc2V0cyB0ZXJtaW5hbCBvdXRwdXQgY29s"\
"b3IgZnJvbSBncmV5LgojICAgX2NyZWF0ZV9hbmRfc3RhcnRfY29udGFpbmVyICI8cnVuX2NtZD4i"\
"IDxjb250YWluZXJfbmFtZT4gOiBDcmVhdGVzL3N0YXJ0cyBhIGNvbnRhaW5lciwgdmVyaWZ5aW5n"\
"IGl0IHJ1bnMuCiMgICBfY3JlYXRlX2ZvbGRlciA8Zm9sZGVyX3BhdGg+ICAgICAgICAgICA6IENy"\
"ZWF0ZXMgYSBkaXJlY3RvcnkgaWYgaXQgZG9lc24ndCBleGlzdCAoY2htb2QgNzc3KS4KIyAgIF9j"\
"aGVja19kb2NrZXJfaW5zdGFsbGVkICAgICAgICAgICAgICAgOiBDaGVja3MgaWYgRG9ja2VyIGlz"\
"IGluc3RhbGxlZCwgcnVubmluZywgYW5kIHVzZXIgaGFzIHBlcm1pc3Npb24uIFJldHVybnMgMSBv"\
"biBmYWlsdXJlLgojICAgX2lzX2NvbnRhaW5lcl9leGlzdHMgPGNvbnRhaW5lcl9uYW1lPiA6IENo"\
"ZWNrcyBpZiBhIGNvbnRhaW5lciAoYW55IHN0YXRlKSBleGlzdHMuIFJldHVybnMgMSBpZiBub3Qg"\
"Zm91bmQuCiMgICBfaXNfY29udGFpbmVyX3J1bm5pbmcgPGNvbnRhaW5lcl9uYW1lPjogQ2hlY2tz"\
"IGlmIGEgY29udGFpbmVyIGlzIGN1cnJlbnRseSBydW5uaW5nLiBSZXR1cm5zIDEgaWYgbm90IHJ1"\
"bm5pbmcuCiMgICBfZ2V0X2NvbnRhaW5lcl9pZCA8Y29udGFpbmVyX25hbWU+ICAgIDogUHJpbnRz"\
"IHRoZSBJRCBvZiB0aGUgbmFtZWQgY29udGFpbmVyLgojICAgX2dldF9jb250YWluZXJfc3RhdHVz"\
"IDxjb250YWluZXJfbmFtZT46IFByaW50cyB0aGUgc3RhdHVzIHN0cmluZyBvZiB0aGUgbmFtZWQg"\
"Y29udGFpbmVyLgojICAgX3N0YXJ0X2NvbnRhaW5lciA8Y29udGFpbmVyX25hbWU+ICAgICA6IFN0"\
"YXJ0cyBhbiBleGlzdGluZywgc3RvcHBlZCBjb250YWluZXIuCiMgICBfc3RvcF9jb250YWluZXIg"\
"PGNvbnRhaW5lcl9uYW1lPiAgICAgIDogU3RvcHMgYSBydW5uaW5nIGNvbnRhaW5lci4KIyAgIF9y"\
"ZW1vdmVfY29udGFpbmVyIDxjb250YWluZXJfbmFtZT4gICAgOiBTdG9wcyAoaWYgbmVlZGVkKSBh"\
"bmQgcmVtb3ZlcyBhIGNvbnRhaW5lci4KIyAgIF9nZXRfY29udGFpbmVyX2xvZ3MgPGNvbnRhaW5l"\
"cl9uYW1lPiAgOiBQcmludHMgdGhlIGxvZ3MgZm9yIGEgY29udGFpbmVyLgojICAgX2NoZWNrX3Jl"\
"cXVpcmVkX2Vudl92YXJzICJWQVIxIiAuLi4gICAgOiBDaGVja3MgaWYgbGlzdGVkIGVudmlyb25t"\
"ZW50IHZhcmlhYmxlcyBhcmUgc2V0OyBjYWxscyBfZGllKCkgaWYgYW55IGFyZSBtaXNzaW5nLgoj"\
"ICAgX3Jvb3RfcmVtb3ZlX3RyZWUgPHBhdGg+ICAgICAgICAgICAgICA6IFJlbW92ZXMgYSBwYXRo"\
"IHVzaW5nIGEgcm9vdCBEb2NrZXIgY29udGFpbmVyIChmb3IgcGVybWlzc2lvbnMpLgoKIyAtLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIFByaW50cyBh"\
"biBlcnJvciBtZXNzYWdlIGluIHJlZCBhbmQgZXhpdHMgd2l0aCBzdGF0dXMgY29kZSAxLgpfZGll"\
"KCkgewogICAgZWNobyAtZSAiRXJyb3I6ICQxIgogICAgZXhpdCAxCn0KCiMgQ3JlYXRlcy9zdGFy"\
"dHMgYSBjb250YWluZXIsIHZlcmlmeWluZyBpdCBydW5zLgpfY3JlYXRlX2FuZF9zdGFydF9jb250"\
"YWluZXIoKSB7CiAgICBpZiBbIC16ICIkMSIgXSB8fCBbIC16ICIkMiIgXTsgdGhlbgogICAgICAg"\
"IF9kaWUgIlRlbXBsYXRlIGVycm9yOiBjcmVhdGVfYW5kX3N0YXJ0X2NvbnRhaW5lciA8cnVuX2Nt"\
"ZD4gPGNvbnRhaW5lcl9uYW1lPiIKICAgIGZpCgogICAgbG9jYWwgcnVuX2NtZD0iJDEiCiAgICBs"\
"b2NhbCBjb250YWluZXJfbmFtZT0iJDIiCgogICAgaWYgX2lzX2NvbnRhaW5lcl9leGlzdHMgIiRj"\
"b250YWluZXJfbmFtZSI7IHRoZW4KICAgICAgICBfaXNfY29udGFpbmVyX3J1bm5pbmcgIiRjb250"\
"YWluZXJfbmFtZSIgJiYgcmV0dXJuIDAKICAgICAgICBfc3RhcnRfY29udGFpbmVyICIkY29udGFp"\
"bmVyX25hbWUiCiAgICBlbHNlCiAgICAgICAgJHJ1bl9jbWQKICAgIGZpCgogICAgaWYgISBfaXNf"\
"Y29udGFpbmVyX3J1bm5pbmcgIiRjb250YWluZXJfbmFtZSI7IHRoZW4KICAgICAgICBfZGllICJD"\
"b250YWluZXIgJHtjb250YWluZXJfbmFtZX0gZmFpbGVkIHRvIHN0YXJ0IgogICAgZmkKCiAgICBJ"\
"RD0kKF9nZXRfY29udGFpbmVyX2lkICIkY29udGFpbmVyX25hbWUiKQogICAgZWNobyAiQ29udGFp"\
"bmVyICR7Y29udGFpbmVyX25hbWV9IGlzIHJ1bm5pbmcgd2l0aCBJRCAke0lEfSIKfQoKIyBDcmVh"\
"dGVzIGEgZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgZXhpc3QgKGNobW9kIDc3NykuCl9jcmVhdGVf"\
"Zm9sZGVyKCkgewogICAgbG9jYWwgZm9sZGVyPSIkMSIKICAgIGlmIFsgLWQgIiRmb2xkZXIiIF07"\
"IHRoZW4KICAgICAgICByZXR1cm4gMAogICAgZmkKICAgIGlmICEgbWtkaXIgLXAgIiRmb2xkZXIi"\
"OyB0aGVuCiAgICAgICAgX2RpZSAiRmFpbGVkIHRvIGNyZWF0ZSBmb2xkZXI6ICRmb2xkZXIiCiAg"\
"ICBmaQogICAgY2htb2QgNzc3ICIkZm9sZGVyIgogICAgZWNobyAiRm9sZGVyIGNyZWF0ZWQ6ICRm"\
"b2xkZXIiCn0KCiMgQ2hlY2tzIGlmIERvY2tlciBpcyBpbnN0YWxsZWQsIHJ1bm5pbmcsIGFuZCB1"\
"c2VyIGhhcyBwZXJtaXNzaW9uLiBSZXR1cm5zIDEgb24gZmFpbHVyZS4KX2NoZWNrX2RvY2tlcl9p"\
"bnN0YWxsZWQoKSB7CiAgICBpZiAhIGNvbW1hbmQgLXYgZG9ja2VyICY+IC9kZXYvbnVsbDsgdGhl"\
"bgogICAgICAgIGVjaG8gIkRvY2tlciBpcyBub3QgaW5zdGFsbGVkIgogICAgICAgIHJldHVybiAx"\
"CiAgICBmaQoKICAgICMgY2hlY2sgaWYgZG9ja2VyIGRhZW1vbiBpcyBydW5uaW5nCiAgICBpZiAh"\
"IGRvY2tlciBpbmZvICY+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgIGVjaG8gIkRvY2tlciBkYWVt"\
"b24gaXMgbm90IHJ1bm5pbmciCiAgICAgICAgcmV0dXJuIDEKICAgIGZpCgogICAgIyBjaGVjayBp"\
"ZiB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHJ1biBkb2NrZXIKICAgIGlmICEgZG9ja2VyIHJ1biAt"\
"LXJtIGhlbGxvLXdvcmxkICY+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgIGVjaG8gIlVzZXIgZG9l"\
"cyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHJ1biBkb2NrZXIiCiAgICAgICAgcmV0dXJuIDEKICAg"\
"IGZpCgogICAgcmV0dXJuIDAKfQoKIyBDaGVja3MgaWYgYSBjb250YWluZXIgKGFueSBzdGF0ZSkg"\
"ZXhpc3RzLiBSZXR1cm5zIDEgaWYgbm90IGZvdW5kLgpfaXNfY29udGFpbmVyX2V4aXN0cygpIHsK"\
"ICAgIFsgLW4gIiR7MTotfSIgXSB8fCB7IGVjaG8gIl9pc19jb250YWluZXJfZXhpc3RzOiBDb250"\
"YWluZXIgbmFtZSBpcyBlbXB0eSIgPiYyOyByZXR1cm4gMTsgfQogICAgaWYgISBkb2NrZXIgcHMg"\
"LWEgLS1mb3JtYXQgInt7Lk5hbWVzfX0iIHwgZ3JlcCAtcSAiXiQxJCI7IHRoZW4KICAgICAgICBy"\
"ZXR1cm4gMQogICAgZmkKICAgIHJldHVybiAwCn0KCiMgQ2hlY2tzIGlmIGEgY29udGFpbmVyIGlz"\
"IGN1cnJlbnRseSBydW5uaW5nLiBSZXR1cm5zIDEgaWYgbm90IHJ1bm5pbmcuCl9pc19jb250YWlu"\
"ZXJfcnVubmluZygpIHsKICAgIFsgLW4gIiR7MTotfSIgXSB8fCB7IGVjaG8gIl9pc19jb250YWlu"\
"ZXJfcnVubmluZzogQ29udGFpbmVyIG5hbWUgaXMgZW1wdHkiID4mMjsgcmV0dXJuIDE7IH0KICAg"\
"IGlmICEgZG9ja2VyIHBzIC0tZm9ybWF0ICJ7ey5OYW1lc319IiB8IGdyZXAgLXEgIl4kMSQiOyB0"\
"aGVuCiAgICAgICAgcmV0dXJuIDEKICAgIGZpCiAgICByZXR1cm4gMAp9CgojIFByaW50cyB0aGUg"\
"SUQgb2YgdGhlIG5hbWVkIGNvbnRhaW5lci4KX2dldF9jb250YWluZXJfaWQoKSB7CiAgICBkb2Nr"\
"ZXIgcHMgLS1mb3JtYXQgInt7LklEfX0iIC0tZmlsdGVyICJuYW1lPSQxIgp9CgojIFByaW50cyB0"\
"aGUgc3RhdHVzIHN0cmluZyBvZiB0aGUgbmFtZWQgY29udGFpbmVyLgpfZ2V0X2NvbnRhaW5lcl9z"\
"dGF0dXMoKSB7CiAgICBkb2NrZXIgcHMgLS1mb3JtYXQgInt7LlN0YXR1c319IiAtLWZpbHRlciAi"\
"bmFtZT0kMSIKfQoKIyBTdGFydHMgYW4gZXhpc3RpbmcsIHN0b3BwZWQgY29udGFpbmVyLgpfc3Rh"\
"cnRfY29udGFpbmVyKCkgewogICAgX2lzX2NvbnRhaW5lcl9leGlzdHMgIiQxIiB8fCByZXR1cm4g"\
"MQogICAgX2lzX2NvbnRhaW5lcl9ydW5uaW5nICIkMSIgJiYgcmV0dXJuIDAKICAgIGRvY2tlciBz"\
"dGFydCAiJDEiCn0KCiMgU3RvcHMgYSBydW5uaW5nIGNvbnRhaW5lci4KX3N0b3BfY29udGFpbmVy"\
"KCkgewogICAgX2lzX2NvbnRhaW5lcl9ydW5uaW5nICIkMSIgfHwgcmV0dXJuIDA7CiAgICBkb2Nr"\
"ZXIgc3RvcCAiJDEiCn0gICAKCiMgU3RvcHMgKGlmIG5lZWRlZCkgYW5kIHJlbW92ZXMgYSBjb250"\
"YWluZXIuCl9yZW1vdmVfY29udGFpbmVyKCkgewogICAgX3N0b3BfY29udGFpbmVyICIkMSIKICAg"\
"IF9pc19jb250YWluZXJfZXhpc3RzICIkMSIgfHwgcmV0dXJuIDA7CiAgICBkb2NrZXIgcm0gIiQx"\
"Igp9CgojIFByaW50cyB0aGUgbG9ncyBmb3IgYSBjb250YWluZXIuCl9nZXRfY29udGFpbmVyX2xv"\
"Z3MoKSB7CiAgICBpZiAhIF9pc19jb250YWluZXJfZXhpc3RzICIkMSI7IHRoZW4KICAgICAgICBl"\
"Y2hvICJDb250YWluZXIgJDEgZG9lcyBub3QgZXhpc3QiCiAgICAgICAgcmV0dXJuIDEKICAgIGZp"\
"CgogICAgZG9ja2VyIGxvZ3MgIiQxIgp9CgojIENoZWNrcyBpZiBsaXN0ZWQgZW52aXJvbm1lbnQg"\
"dmFyaWFibGVzIGFyZSBzZXQ7IGNhbGxzIF9kaWUoKSBpZiBhbnkgYXJlIG1pc3NpbmcuCl9jaGVj"\
"a19yZXF1aXJlZF9lbnZfdmFycygpIHsKICAgIGxvY2FsIHJlcXVpcmVkX3ZhcnM9KCIkQCIpCiAg"\
"ICBmb3IgdmFyIGluICIke3JlcXVpcmVkX3ZhcnNbQF19IjsgZG8KICAgICAgICBpZiBbIC16ICIk"\
"eyF2YXI6LX0iIF07IHRoZW4KICAgICAgICAgICAgX2RpZSAiUmVxdWlyZWQgZW52aXJvbm1lbnQg"\
"dmFyaWFibGUgJHZhciBpcyBub3Qgc2V0IgogICAgICAgIGZpCiAgICBkb25lCn0KCiMgUmVtb3Zl"\
"cyBhIHBhdGggdXNpbmcgYSByb290IERvY2tlciBjb250YWluZXIgKGZvciBwZXJtaXNzaW9ucyku"\
"Cl9yb290X3JlbW92ZV90cmVlKCkgewogICAgbG9jYWwgdG9fcmVtb3ZlPSIkMSIKICAgIHBhcmVu"\
"dD0kKGRpcm5hbWUgIiR0b19yZW1vdmUiKQogICAgYWJzX3BhcmVudD0kKHJlYWxwYXRoICIkcGFy"\
"ZW50IikKICAgIGNoaWxkPSQoYmFzZW5hbWUgIiR0b19yZW1vdmUiKQogICAgZG9ja2VyIHJ1biAt"\
"LXJtIC12ICIkYWJzX3BhcmVudCI6L2RhdGEgYWxwaW5lIHJtIC1yZiAiL2RhdGEvJGNoaWxkIgp9"\
"CgoKIyBMb2FkIGF1dG9jb21tYW5kcwpzb3VyY2UgIiR7QUdFTlRfUEFUSH0vZGF0YWNvbW1hbmRz"\
"LnNoIg==";
// Decode Base64 data
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
unsigned char* decoded_data = new unsigned char[decoded_size];
size_t actual_size;
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
bool file_written = _recreate_file_(outpath, 10529534466039467911ULL, std::filesystem::perms(493), decoded_data, actual_size);
delete[] decoded_data;
any_written = any_written || file_written;
}
return any_written;
}
}

View File

@@ -0,0 +1,15 @@
#pragma once
/*
THIS FILE IS AUTO-GENERATED BY DEHYDRATE.
DO NOT EDIT THIS FILE.
*/
#include <string>
namespace recreate_agent_remote {
bool recreate_tree(std::string destination_folder);
}