From 9cef5645c384935405b1f9a09731e8995eb59987 Mon Sep 17 00:00:00 2001 From: Kris Yotam Date: Thu, 26 Feb 2026 22:31:36 -0600 Subject: [PATCH] Initial commit: deployment scripts split from lazykris Arch Linux deploy fully implemented with updated URLs pointing to srice/sdeploy repos. Skeleton structure for Gentoo, Kali, Ubuntu, macOS, and Windows 11. --- .gitignore | 7 + README.md | 30 ++ compile-all-pdfs.sh | 9 + ksd-arch/deploy.sh | 1072 ++++++++++++++++++++++++++++++++++++++ ksd-arch/dev.csv | 39 ++ ksd-arch/manual.pdf | Bin 0 -> 145171 bytes ksd-arch/manual.tex | 631 ++++++++++++++++++++++ ksd-arch/notes.csv | 9 + ksd-arch/post-install.sh | 191 +++++++ ksd-arch/progs.csv | 269 ++++++++++ ksd-gentoo/deploy.sh | 4 + ksd-gentoo/manual.tex | 26 + ksd-kali/deploy.sh | 4 + ksd-kali/manual.tex | 26 + ksd-macos/deploy.sh | 4 + ksd-macos/manual.tex | 26 + ksd-ubuntu/deploy.sh | 4 + ksd-ubuntu/manual.tex | 26 + ksd-win11/deploy.sh | 4 + ksd-win11/manual.tex | 27 + 20 files changed, 2408 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100755 compile-all-pdfs.sh create mode 100755 ksd-arch/deploy.sh create mode 100644 ksd-arch/dev.csv create mode 100644 ksd-arch/manual.pdf create mode 100644 ksd-arch/manual.tex create mode 100644 ksd-arch/notes.csv create mode 100755 ksd-arch/post-install.sh create mode 100644 ksd-arch/progs.csv create mode 100755 ksd-gentoo/deploy.sh create mode 100644 ksd-gentoo/manual.tex create mode 100755 ksd-kali/deploy.sh create mode 100644 ksd-kali/manual.tex create mode 100755 ksd-macos/deploy.sh create mode 100644 ksd-macos/manual.tex create mode 100755 ksd-ubuntu/deploy.sh create mode 100644 ksd-ubuntu/manual.tex create mode 100755 ksd-win11/deploy.sh create mode 100644 ksd-win11/manual.tex diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..bae55a13660ff04ac111e833427d6c224d18b3a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.aux +*.log +*.out +*.toc +*.fls +*.fdb_latexmk +*.synctex.gz diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..914aa6a5ec8840b1ec3e0aa1b0cc8e6c3c07525e --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# sdeploy + +Kris's Simple Deploy — OS-specific deployment scripts that install packages and configure a system using [srice](https://github.com/krisyotam/srice) dotfiles. + +## Structure + +``` +ksd-arch/ → Arch Linux (primary, fully implemented) +ksd-gentoo/ → Gentoo (planned) +ksd-kali/ → Kali Linux (planned) +ksd-ubuntu/ → Ubuntu/Debian (planned) +ksd-macos/ → macOS (planned) +ksd-win11/ → Windows 11 + WSL (planned) +``` + +## Usage (Arch) + +```bash +curl -LO https://raw.githubusercontent.com/krisyotam/sdeploy/main/ksd-arch/deploy.sh +bash deploy.sh +``` + +The deploy script will: +1. Install packages from `progs.csv` +2. Clone and stow [srice](https://github.com/krisyotam/srice) dotfiles +3. Run post-install configuration + +## Related + +- [srice](https://github.com/krisyotam/srice) — The dotfiles this deploys diff --git a/compile-all-pdfs.sh b/compile-all-pdfs.sh new file mode 100755 index 0000000000000000000000000000000000000000..9c17902bc6b6f02c875558e306f8fc3f75b56ac2 --- /dev/null +++ b/compile-all-pdfs.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# Compile all manual.tex files across KSD variants +for dir in ksd-*/; do + if [ -f "$dir/manual.tex" ]; then + echo "Compiling $dir/manual.tex..." + (cd "$dir" && latexmk -pdf manual.tex) + fi +done +echo "Done." diff --git a/ksd-arch/deploy.sh b/ksd-arch/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..4d6e590af3e861223ac9adba31c4343367007918 --- /dev/null +++ b/ksd-arch/deploy.sh @@ -0,0 +1,1072 @@ +#!/bin/sh + +# ============================================================================ +# +# ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██████╗ ██╗███████╗ Z +# ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██╔╝██╔══██╗██║██╔════╝ Z +# ██║ ███████║ ███╔╝ ╚████╔╝ █████╔╝ ██████╔╝██║███████╗ z +# ██║ ██╔══██║ ███╔╝ ╚██╔╝ ██╔═██╗ ██╔══██╗██║╚════██║ z +# ███████╗██║ ██║███████╗ ██║ ██║ ██╗██║ ██║██║███████║ +# ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝ +# +# LazyKris - Kris's Auto Rice Bootstrapping Scripts +# "The only way to do great work is to automate the boring parts." +# - Every Linux User Ever +# +# Author: Kris Yotam (aka. khr1st) +# Contact: krisyotam@protonmail.com +# Date: 2026.01.23 +# License: GNU GPLv3 +# Repository: https://github.com/krisyotam/lazykris +# ============================================================================ + +# ============================================================================ +# CONFIGURATION VARIABLES +# ============================================================================ + +# Repository URLs and branches +DOTFILES_REPO="https://github.com/krisyotam/srice.git" +DOTFILES_BRANCH="main" +PROGS_FILE="https://raw.githubusercontent.com/krisyotam/sdeploy/main/ksd-arch/progs.csv" +NOTES_FILE="https://raw.githubusercontent.com/krisyotam/sdeploy/main/ksd-arch/notes.csv" +DEV_FILE="https://raw.githubusercontent.com/krisyotam/sdeploy/main/ksd-arch/dev.csv" + +# Doom Emacs repository +DOOM_REPO="https://github.com/doomemacs/doomemacs" + +# Dev directory top-level directories +DEV_TLDS="sites systems formal foss labs parsing" + +# AUR helper of choice (yay is recommended) +AUR_HELPER="yay" + +# BlackArch repository setup script +BLACKARCH_STRAP="https://blackarch.org/strap.sh" + +# AppImages directory (relative to user home) +APPIMAGES_DIR=".local/bin/appimages" + +# Source directory for git builds (suckless, etc) +SRC_DIR=".local/src" + +# Flatpak remote +FLATPAK_REMOTE="flathub" +FLATPAK_REMOTE_URL="https://dl.flathub.org/repo/flathub.flatpakrepo" + +# Terminal settings +export TERM=ansi + +# Device type (set during installation) +# Options: "desktop" or "macbook-2015" +DEVICE_TYPE="" + +# Optional installations (set during installation) +INSTALL_NOTES="no" +INSTALL_DEV="no" + +# ============================================================================ +# UTILITY FUNCTIONS +# ============================================================================ + +# Display error message and exit +error() { + printf "\033[1;31mError:\033[0m %s\n" "$1" >&2 + exit 1 +} + +# Display info message +info() { + printf "\033[1;34m==>\033[0m %s\n" "$1" +} + +# Display success message +success() { + printf "\033[1;32m==>\033[0m %s\n" "$1" +} + +# Display warning message +warn() { + printf "\033[1;33m==>\033[0m %s\n" "$1" +} + +# Install a package from official repos (pacman) +installpkg() { + pacman --noconfirm --needed -S "$1" >/dev/null 2>&1 +} + +# ============================================================================ +# DEVICE SELECTION +# ============================================================================ + +# Ask user which device they're installing on +selectdevice() { + DEVICE_TYPE=$(whiptail --title "Device Selection" \ + --menu "Which device are you installing on?\n\nThis determines HiDPI settings, bar sizes, etc." 14 60 2 \ + "desktop" "Custom PC / Standard Display" \ + "macbook-2015" "MacBook Pro 2015 Retina (13\")" \ + 3>&1 1>&2 2>&3 3>&1) || exit 1 +} + +# Run device-specific post-installation scripts +run_device_setup() { + case "$DEVICE_TYPE" in + "macbook-2015") + whiptail --infobox "Applying MacBook Pro 2015 Retina settings..." 7 55 + # Run the laptop HiDPI script + if [ -x "/home/$name/.local/bin/laptop" ]; then + sudo -u "$name" /home/$name/.local/bin/laptop + else + warn "Laptop script not found or not executable" + fi + ;; + "desktop") + whiptail --infobox "Desktop setup - no additional configuration needed." 7 55 + sleep 1 + ;; + *) + # Unknown device, skip + ;; + esac +} + +# ============================================================================ +# GITHUB AUTHENTICATION +# ============================================================================ + +# Authenticate with GitHub for private repo access +setup_github_auth() { + # Check if gh is installed + if ! command -v gh >/dev/null 2>&1; then + warn "GitHub CLI not installed, skipping authentication" + return 1 + fi + + # Check if already authenticated + if sudo -u "$name" gh auth status >/dev/null 2>&1; then + whiptail --infobox "Already authenticated with GitHub." 7 50 + sleep 1 + return 0 + fi + + # Explain the process to user + whiptail --title "GitHub Authentication" --msgbox "To clone private repositories, you need to authenticate with GitHub. + +The next screen will show a one-time code. + +1. Visit: github.com/login/device +2. Enter the code shown +3. Approve access + +Press OK to continue." 14 55 + + # Run gh auth login with device flow + # Using --git-protocol https so git operations use the gh credential helper + clear + echo "" + echo "==========================================" + echo " GitHub Device Authentication" + echo "==========================================" + echo "" + sudo -u "$name" gh auth login --hostname github.com --git-protocol https --scopes repo,read:org + + # Verify authentication succeeded + if sudo -u "$name" gh auth status >/dev/null 2>&1; then + whiptail --infobox "GitHub authentication successful!" 7 45 + sleep 1 + return 0 + else + warn "GitHub authentication failed or was cancelled" + return 1 + fi +} + +# ============================================================================ +# OPTIONAL INSTALLATIONS +# ============================================================================ + +# Ask user about optional repo installations (notes, dev) +selectoptional() { + # Notes repositories (slipbox, etc.) + if whiptail --title "Notes Repositories" \ + --yesno "Install notes repositories (slipbox, etc.)? + +This clones Kris's personal notes repos into ~/notes/. +These are private repos and require GitHub authentication. + +Skip this if you're not Kris or don't have access." 14 60; then + INSTALL_NOTES="yes" + else + INSTALL_NOTES="no" + fi + + # Dev repositories + if whiptail --title "Dev Repositories" \ + --yesno "Install development repositories? + +This creates ~/dev/ structure with TLDs: + sites, systems, formal, foss, labs, parsing + +And clones repos from dev.csv (many are private). + +Skip this if you're not Kris or don't have access." 16 60; then + INSTALL_DEV="yes" + else + INSTALL_DEV="no" + fi +} + +# ============================================================================ +# WELCOME AND USER INPUT +# ============================================================================ + +# Display welcome message with ASCII art +welcomemsg() { + whiptail --title "Welcome!" --msgbox " + ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██████╗ ██╗███████╗ Z + ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██╔╝██╔══██╗██║██╔════╝ Z + ██║ ███████║ ███╔╝ ╚████╔╝ █████╔╝ ██████╔╝██║███████╗ z + ██║ ██╔══██║ ███╔╝ ╚██╔╝ ██╔═██╗ ██╔══██╗██║╚════██║ z + ███████╗██║ ██║███████╗ ██║ ██║ ██╗██║ ██║██║███████║ + ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝ + +Welcome to LazyKris! + +This script will automatically install a fully-featured +Arch Linux desktop with my custom builds of dwm, dmenu, +dwmblocks, st, and surf. In addition several extreme privacy +configs for the rotation of browsers ran. + +Sit back, grab a coffee, and let the automation begin. + +-Kris" 24 80 + + whiptail --title "Important Note!" \ + --yes-button "All ready!" \ + --no-button "Return..." \ + --yesno "Before we begin, please ensure: + +1. You are running this as root +2. Pacman is updated (pacman -Sy) +3. Arch keyrings are current +4. You have a stable internet connection + +If any of these are not met, the installation +may fail partway through." 14 60 +} + +# Get username and password from user +getuserandpass() { + name=$(whiptail --inputbox "Enter a username for the new account. + +This will be the user that owns the dotfiles +and runs the desktop environment." 12 60 3>&1 1>&2 2>&3 3>&1) || exit 1 + + # Validate username format + while ! echo "$name" | grep -q "^[a-z_][a-z0-9_-]*$"; do + name=$(whiptail --nocancel --inputbox "Invalid username. + +Username must: +- Start with a lowercase letter or underscore +- Contain only lowercase letters, numbers, - or _ + +Enter a valid username:" 14 60 3>&1 1>&2 2>&3 3>&1) + done + + # Get password + pass1=$(whiptail --nocancel --passwordbox "Enter a password for $name." 10 60 3>&1 1>&2 2>&3 3>&1) + pass2=$(whiptail --nocancel --passwordbox "Confirm the password." 10 60 3>&1 1>&2 2>&3 3>&1) + + # Verify password match + while [ "$pass1" != "$pass2" ]; do + unset pass2 + pass1=$(whiptail --nocancel --passwordbox "Passwords did not match. + +Enter password again:" 12 60 3>&1 1>&2 2>&3 3>&1) + pass2=$(whiptail --nocancel --passwordbox "Confirm the password." 10 60 3>&1 1>&2 2>&3 3>&1) + done +} + +# Warn if user already exists +usercheck() { + if id -u "$name" >/dev/null 2>&1; then + whiptail --title "User Exists" \ + --yes-button "Continue" \ + --no-button "Cancel" \ + --yesno "The user '$name' already exists on this system. + +LazyKris can install for an existing user, but it will +OVERWRITE any conflicting dotfiles and settings. + +Your personal files (documents, videos, etc.) will NOT +be touched. + +Note: The password will be changed to what you entered. + +Continue with installation?" 16 65 + fi +} + +# Final confirmation before install +preinstallmsg() { + whiptail --title "Ready to Install" \ + --yes-button "Let's go!" \ + --no-button "Cancel" \ + --yesno "Everything is ready! + +The installation will now proceed automatically. +This may take 30-60 minutes depending on your +internet speed and the number of packages. + +You can watch the progress, but no input is needed. + +Press 'Let's go!' to begin installation." 14 60 || { + clear + exit 1 + } +} + +# ============================================================================ +# USER MANAGEMENT +# ============================================================================ + +# Create user account and set password +adduserandpass() { + whiptail --infobox "Creating user '$name'..." 7 50 + + # Create user with fish shell, add to wheel group + useradd -m -g wheel -s /usr/bin/fish "$name" >/dev/null 2>&1 || + usermod -a -G wheel "$name" && mkdir -p /home/"$name" && chown "$name":wheel /home/"$name" + + # Set up source directory for git builds + export repodir="/home/$name/$SRC_DIR" + mkdir -p "$repodir" + chown -R "$name":wheel "$(dirname "$repodir")" + + # Set password + echo "$name:$pass1" | chpasswd + unset pass1 pass2 +} + +# ============================================================================ +# SYSTEM PREPARATION +# ============================================================================ + +# Refresh Arch keyrings (handles both Arch and Artix) +refreshkeys() { + case "$(readlink -f /sbin/init)" in + *systemd*) + whiptail --infobox "Refreshing Arch keyring..." 7 40 + pacman --noconfirm -S archlinux-keyring >/dev/null 2>&1 + ;; + *) + whiptail --infobox "Setting up Arch repos for Artix..." 7 50 + pacman --noconfirm --needed -S \ + artix-keyring artix-archlinux-support >/dev/null 2>&1 + + # Add Arch extra repo if not present + grep -q "^\[extra\]" /etc/pacman.conf || { + echo "[extra] +Include = /etc/pacman.d/mirrorlist-arch" >>/etc/pacman.conf + } + + pacman -Sy --noconfirm >/dev/null 2>&1 + pacman-key --populate archlinux >/dev/null 2>&1 + ;; + esac +} + +# Set up BlackArch repository for security tools +setup_blackarch() { + whiptail --infobox "Setting up BlackArch repository..." 7 50 + + # Check if BlackArch is already configured + if grep -q "^\[blackarch\]" /etc/pacman.conf; then + return 0 + fi + + # Download and run the strap script + curl -sL "$BLACKARCH_STRAP" -o /tmp/blackarch-strap.sh + chmod +x /tmp/blackarch-strap.sh + /tmp/blackarch-strap.sh >/dev/null 2>&1 + + # Sync repos + pacman -Sy --noconfirm >/dev/null 2>&1 +} + +# Set up Flatpak +setup_flatpak() { + whiptail --infobox "Setting up Flatpak..." 7 40 + + # Install flatpak if not present + installpkg flatpak + + # Add flathub remote + flatpak remote-add --if-not-exists "$FLATPAK_REMOTE" "$FLATPAK_REMOTE_URL" >/dev/null 2>&1 +} + +# ============================================================================ +# PACKAGE INSTALLATION FUNCTIONS +# ============================================================================ + +# Install AUR helper manually (yay) +manualinstall() { + # Skip if already installed + pacman -Qq "$1" >/dev/null 2>&1 && return 0 + + whiptail --infobox "Installing $1 manually..." 7 50 + + sudo -u "$name" mkdir -p "$repodir/$1" + sudo -u "$name" git -C "$repodir" clone --depth 1 --single-branch \ + --no-tags -q "https://aur.archlinux.org/$1.git" "$repodir/$1" 2>/dev/null || + { + cd "$repodir/$1" || return 1 + sudo -u "$name" git pull --force origin master + } + + cd "$repodir/$1" || exit 1 + sudo -u "$name" makepkg --noconfirm -si >/dev/null 2>&1 || return 1 +} + +# Install from official repos (pacman) +maininstall() { + whiptail --title "LazyKris Installation" \ + --infobox "[$n/$total] Installing: $1 + +$2" 8 70 + installpkg "$1" +} + +# Install from AUR via helper +aurinstall() { + whiptail --title "LazyKris Installation" \ + --infobox "[$n/$total] Installing from AUR: $1 + +$2" 8 70 + + # Skip if already installed + echo "$aurinstalled" | grep -q "^$1$" && return 0 + + sudo -u "$name" $AUR_HELPER -S --noconfirm "$1" >/dev/null 2>&1 +} + +# Install via git clone and make +gitmakeinstall() { + # Extract program name from URL + progname="${1##*/}" + progname="${progname%.git}" + dir="$repodir/$progname" + + whiptail --title "LazyKris Installation" \ + --infobox "[$n/$total] Building from source: $progname + +$2" 8 70 + + # Clone or update repository + sudo -u "$name" git -C "$repodir" clone --depth 1 --single-branch \ + --no-tags -q "$1" "$dir" 2>/dev/null || + { + cd "$dir" || return 1 + sudo -u "$name" git pull --force origin master + } + + # Build and install + cd "$dir" || exit 1 + make >/dev/null 2>&1 + make install >/dev/null 2>&1 + cd /tmp || return 1 +} + +# Install from Flatpak +flatpakinstall() { + whiptail --title "LazyKris Installation" \ + --infobox "[$n/$total] Installing Flatpak: $1 + +$2" 8 70 + + flatpak install -y "$FLATPAK_REMOTE" "$1" >/dev/null 2>&1 +} + +# Install AppImage from URL +appimageinstall() { + # Extract filename from URL + filename="${1##*/}" + # Clean up the filename (remove version numbers for cleaner name) + cleanname=$(echo "$filename" | sed 's/-[0-9].*\.AppImage/.AppImage/') + + whiptail --title "LazyKris Installation" \ + --infobox "[$n/$total] Downloading AppImage: $cleanname + +$2" 8 70 + + # Create appimages directory + appdir="/home/$name/$APPIMAGES_DIR" + sudo -u "$name" mkdir -p "$appdir" + + # Download and make executable + sudo -u "$name" curl -sL "$1" -o "$appdir/$cleanname" + chmod +x "$appdir/$cleanname" + chown "$name":wheel "$appdir/$cleanname" +} + +# Install from BlackArch repository +blackarchinstall() { + whiptail --title "LazyKris Installation" \ + --infobox "[$n/$total] Installing from BlackArch: $1 + +$2" 8 70 + + # Ensure BlackArch is set up + grep -q "^\[blackarch\]" /etc/pacman.conf || setup_blackarch + + installpkg "$1" +} + +# ============================================================================ +# MAIN INSTALLATION LOOP +# ============================================================================ + +installationloop() { + # Download or copy progs.csv + if [ -f "$PROGS_FILE" ]; then + cp "$PROGS_FILE" /tmp/progs.csv + else + curl -Ls "$PROGS_FILE" >/tmp/progs.csv + fi + + # Remove comments and empty lines for counting + sed '/^#/d;/^$/d' /tmp/progs.csv >/tmp/progs-clean.csv + total=$(wc -l /dev/null) + + # Track if we need special setup + needs_blackarch=false + needs_flatpak=false + + # First pass: check what we need + while IFS=, read -r tag program comment; do + case "$tag" in + "B") needs_blackarch=true ;; + "F") needs_flatpak=true ;; + esac + done /tmp/notes.csv + fi + + # Remove comments and empty lines + sed '/^#/d;/^$/d' /tmp/notes.csv >/tmp/notes-clean.csv + + notesdir="/home/$name/notes" + sudo -u "$name" mkdir -p "$notesdir" + + # Clone each repository + while IFS=, read -r repo_url target_dir description; do + # Strip quotes if present + repo_url=$(echo "$repo_url" | sed -E "s/(^\"|\"$)//g") + target_dir=$(echo "$target_dir" | sed -E "s/(^\"|\"$)//g") + description=$(echo "$description" | sed -E "s/(^\"|\"$)//g") + + whiptail --infobox "Cloning notes repo: $description" 7 60 + + if [ "$target_dir" = "." ] || [ -z "$target_dir" ]; then + # Clone directly into notes directory (merge contents) + clone_dir="$notesdir" + else + # Clone into subdirectory + clone_dir="$notesdir/$target_dir" + fi + + # Clone or update the repository + if [ -d "$clone_dir/.git" ]; then + # Already exists, pull updates + sudo -u "$name" git -C "$clone_dir" pull --ff-only >/dev/null 2>&1 + elif [ "$target_dir" = "." ] || [ -z "$target_dir" ]; then + # Clone into existing notes dir (init if empty) + sudo -u "$name" git clone --depth 1 "$repo_url" "$notesdir.tmp" >/dev/null 2>&1 + # Move contents (except .git initially, then move .git) + sudo -u "$name" cp -rfT "$notesdir.tmp" "$notesdir" + rm -rf "$notesdir.tmp" + else + sudo -u "$name" git clone --depth 1 "$repo_url" "$clone_dir" >/dev/null 2>&1 + fi + + done /tmp/dev.csv + fi + + # Remove comments and empty lines + sed '/^#/d;/^$/d' /tmp/dev.csv >/tmp/dev-clean.csv + + # Count repos for progress + total_repos=$(wc -l /dev/null 2>&1 + else + # Ensure parent directory exists + sudo -u "$name" mkdir -p "$(dirname "$clone_dir")" + # Clone the repo + sudo -u "$name" git clone --depth 1 "$repo_url" "$clone_dir" >/dev/null 2>&1 + fi + + done /dev/null 2>&1 + fi + + # Ensure doom config directory exists (should be from dotfiles) + sudo -u "$name" mkdir -p "$doomdir" + + # Run doom install (non-interactive) + whiptail --infobox "Running Doom Emacs install (this may take a while)..." 7 60 + sudo -u "$name" DOOMDIR="$doomdir" "$emacsdir/bin/doom" install --no-config --no-env --no-fonts >/dev/null 2>&1 + + # Sync doom packages + whiptail --infobox "Syncing Doom Emacs packages..." 7 50 + sudo -u "$name" DOOMDIR="$doomdir" "$emacsdir/bin/doom" sync >/dev/null 2>&1 + + # Note: doom bin path is already in fish config +} + +# Set up Neovim (LazyVim auto-bootstraps, just ensure first run works) +setup_neovim() { + whiptail --infobox "Preparing Neovim (LazyVim)..." 7 50 + + nvimdir="/home/$name/.config/nvim" + nvimdata="/home/$name/.local/share/nvim" + + # Ensure directories exist + sudo -u "$name" mkdir -p "$nvimdir" + sudo -u "$name" mkdir -p "$nvimdata" + + # LazyVim bootstraps itself on first run via lazy.lua + # Run nvim headless to trigger plugin installation + whiptail --infobox "Installing Neovim plugins (LazyVim)..." 7 55 + sudo -u "$name" nvim --headless "+Lazy! sync" +qa >/dev/null 2>&1 || true + + chown -R "$name":wheel "$nvimdir" "$nvimdata" +} + +# Create necessary directories +create_directories() { + whiptail --infobox "Creating directory structure..." 7 50 + + homedir="/home/$name" + + # Core directories + sudo -u "$name" mkdir -p "$homedir/downloads" + sudo -u "$name" mkdir -p "$homedir/dev" + sudo -u "$name" mkdir -p "$homedir/notes" + sudo -u "$name" mkdir -p "$homedir/mail" + sudo -u "$name" mkdir -p "$homedir/tmp" + sudo -u "$name" mkdir -p "$homedir/archive" + + # Media directories + sudo -u "$name" mkdir -p "$homedir/media/music" + sudo -u "$name" mkdir -p "$homedir/media/pics" + sudo -u "$name" mkdir -p "$homedir/media/videos" + sudo -u "$name" mkdir -p "$homedir/media/screenshots" + sudo -u "$name" mkdir -p "$homedir/media/wallpapers" + sudo -u "$name" mkdir -p "$homedir/media/recordings" + sudo -u "$name" mkdir -p "$homedir/media/books" + sudo -u "$name" mkdir -p "$homedir/media/docs" + + # XDG directories (.local) + sudo -u "$name" mkdir -p "$homedir/.local/bin" + sudo -u "$name" mkdir -p "$homedir/.local/bin/appimages" + sudo -u "$name" mkdir -p "$homedir/.local/bin/statusbar" + sudo -u "$name" mkdir -p "$homedir/.local/src" + sudo -u "$name" mkdir -p "$homedir/.local/share" + sudo -u "$name" mkdir -p "$homedir/.local/share/man" + sudo -u "$name" mkdir -p "$homedir/.local/state" + + # XDG config and cache + sudo -u "$name" mkdir -p "$homedir/.config" + sudo -u "$name" mkdir -p "$homedir/.cache" + sudo -u "$name" mkdir -p "$homedir/.cache/fish" + + # Flatpak data directory + sudo -u "$name" mkdir -p "$homedir/.var/app" + + # Keys and security (empty, managed by tools) + sudo -u "$name" mkdir -p "$homedir/.ssh" + sudo -u "$name" mkdir -p "$homedir/.gnupg" + chmod 700 "$homedir/.ssh" "$homedir/.gnupg" + + # Claude Code + sudo -u "$name" mkdir -p "$homedir/.claude" + + # Application-specific config directories + sudo -u "$name" mkdir -p "$homedir/.config/abook" + sudo -u "$name" mkdir -p "$homedir/.config/mpd/playlists" + sudo -u "$name" mkdir -p "$homedir/.config/newsboat" + sudo -u "$name" mkdir -p "$homedir/.config/btop/themes" + sudo -u "$name" mkdir -p "$homedir/.config/dunst" + sudo -u "$name" mkdir -p "$homedir/.config/calcurse" + sudo -u "$name" mkdir -p "$homedir/.config/rtorrent" + sudo -u "$name" mkdir -p "$homedir/.config/zathura" + sudo -u "$name" mkdir -p "$homedir/.config/wal/templates" + + # Set proper ownership + chown -R "$name":wheel "$homedir" +} + +# Set fish as default shell +setup_fish_shell() { + whiptail --infobox "Setting fish as default shell..." 7 50 + chsh -s /usr/bin/fish "$name" >/dev/null 2>&1 +} + +# Make all user bin scripts executable +setup_bin_scripts() { + whiptail --infobox "Setting up user scripts..." 7 50 + + bindir="/home/$name/.local/bin" + + # Make all scripts in .local/bin executable + if [ -d "$bindir" ]; then + find "$bindir" -type f -exec chmod +x {} \; + chown -R "$name":wheel "$bindir" + fi + + # Also handle statusbar scripts + if [ -d "$bindir/statusbar" ]; then + find "$bindir/statusbar" -type f -exec chmod +x {} \; + fi +} + +# System configuration tweaks +system_tweaks() { + whiptail --infobox "Applying system tweaks..." 7 50 + + # Disable system beep + rmmod pcspkr 2>/dev/null + echo "blacklist pcspkr" >/etc/modprobe.d/nobeep.conf + + # Make dash the default /bin/sh (faster scripts) + ln -sfT /bin/dash /bin/sh 2>/dev/null + + # Generate dbus UUID (needed for some systems) + dbus-uuidgen >/var/lib/dbus/machine-id 2>/dev/null + + # Pacman tweaks: colors, parallel downloads, candy + grep -q "ILoveCandy" /etc/pacman.conf || \ + sed -i "/#VerbosePkgLists/a ILoveCandy" /etc/pacman.conf + sed -Ei "s/^#(ParallelDownloads).*/\1 = 5/;/^#Color$/s/#//" /etc/pacman.conf + + # Use all cores for compilation + sed -i "s/-j2/-j$(nproc)/;/^#MAKEFLAGS/s/^#//" /etc/makepkg.conf +} + +# Enable tap to click for touchpads +setup_touchpad() { + [ ! -f /etc/X11/xorg.conf.d/40-libinput.conf ] && { + mkdir -p /etc/X11/xorg.conf.d + printf 'Section "InputClass" + Identifier "libinput touchpad catchall" + MatchIsTouchpad "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" + Option "Tapping" "on" +EndSection' >/etc/X11/xorg.conf.d/40-libinput.conf + } +} + +# Set up sudoers for wheel group +setup_sudoers() { + whiptail --infobox "Configuring sudo permissions..." 7 50 + + # Allow wheel users to sudo with password + echo "%wheel ALL=(ALL:ALL) ALL" >/etc/sudoers.d/00-wheel-can-sudo + + # Allow certain commands without password + echo "%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/systemctl suspend,/usr/bin/mount,/usr/bin/umount,/usr/bin/pacman -Syu,/usr/bin/pacman -Syyu,/usr/bin/pacman -Syyu --noconfirm,/usr/bin/loadkeys,/usr/bin/pacman -Syyuw --noconfirm" >/etc/sudoers.d/01-cmds-without-password + + # Set neovim as default editor for visudo + echo "Defaults editor=/usr/bin/nvim" >/etc/sudoers.d/02-visudo-editor + + # Allow dmesg for non-root + mkdir -p /etc/sysctl.d + echo "kernel.dmesg_restrict = 0" >/etc/sysctl.d/dmesg.conf + + # Disable pam_faillock (prevents account lockouts on failed logins) + for pamfile in /etc/pam.d/system-login /etc/pam.d/system-auth /etc/pam.d/login /etc/pam.d/sudo; do + [ -f "$pamfile" ] && sed -i 's/^\([^#].*pam_faillock.*\)$/# \1/' "$pamfile" + done +} + +# Clean up temporary files +cleanup() { + rm -f /tmp/progs.csv /tmp/progs-clean.csv + rm -f /etc/sudoers.d/lazykris-temp +} + +# Display completion message +finalize() { + whiptail --title "Installation Complete!" --msgbox " + ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██████╗ ██╗███████╗ Z + ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██╔╝██╔══██╗██║██╔════╝ Z + ██║ ███████║ ███╔╝ ╚████╔╝ █████╔╝ ██████╔╝██║███████╗ z + ██║ ██╔══██║ ███╔╝ ╚██╔╝ ██╔═██╗ ██╔══██╗██║╚════██║ z + ███████╗██║ ██║███████╗ ██║ ██║ ██╗██║ ██║██║███████║ + ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝ + +Congratulations! LazyKris installation is complete! + +To start using your new system: + +1. Log out of root +2. Log in as '$name' +3. Run 'startx' to start dwm + +Your default shell is fish, and all your dotfiles +have been deployed. + +Enjoy your new setup! + +-Kris" 28 80 +} + +# ============================================================================ +# MAIN SCRIPT EXECUTION +# ============================================================================ + +# Ensure we're running as root with necessary tools +pacman --noconfirm --needed -Sy libnewt || + error "This script must be run as root on an Arch-based system with internet." + +# Welcome and get user info +welcomemsg || error "User cancelled." +selectdevice || error "User cancelled." +selectoptional +getuserandpass || error "User cancelled." +usercheck || error "User cancelled." +preinstallmsg || error "User cancelled." + +### Automated installation begins ### + +# Refresh keyrings for package verification +refreshkeys || error "Failed to refresh keyrings." + +# Install essential bootstrap packages +for pkg in curl ca-certificates base-devel git ntp fish dash; do + whiptail --infobox "Installing bootstrap package: $pkg" 7 60 + installpkg "$pkg" +done + +# Sync system time for package verification +whiptail --infobox "Synchronizing system time..." 7 50 +ntpd -q -g >/dev/null 2>&1 + +# Create user account +adduserandpass || error "Failed to create user account." + +# Handle any pacnew sudoers file +[ -f /etc/sudoers.pacnew ] && cp /etc/sudoers.pacnew /etc/sudoers + +# Temporarily allow passwordless sudo for builds +trap 'rm -f /etc/sudoers.d/lazykris-temp' HUP INT QUIT TERM PWR EXIT +echo "%wheel ALL=(ALL) NOPASSWD: ALL +Defaults:%wheel,root runcwd=*" >/etc/sudoers.d/lazykris-temp + +# Apply system tweaks +system_tweaks + +# Install AUR helper +manualinstall "$AUR_HELPER" || error "Failed to install AUR helper." + +# Enable automatic updates for git AUR packages +$AUR_HELPER -Y --save --devel + +# Main installation loop - install all packages from progs.csv +installationloop + +# Deploy dotfiles to home directory +putgitrepo "$DOTFILES_REPO" "/home/$name" + +# Create directory structure +create_directories + +# Make all bin scripts executable +setup_bin_scripts + +# Set wallpaper +setup_wallpaper + +# Set up fish shell +setup_fish_shell + +# GitHub authentication (only if user wants private repos) +if [ "$INSTALL_NOTES" = "yes" ] || [ "$INSTALL_DEV" = "yes" ]; then + setup_github_auth +fi + +# Clone notes repositories (slipbox, etc.) - optional +[ "$INSTALL_NOTES" = "yes" ] && notesinstallloop + +# Clone dev repositories and create TLD structure - optional +[ "$INSTALL_DEV" = "yes" ] && devinstallloop + +# Set up Doom Emacs (install + sync packages) +setup_doom_emacs + +# Set up Neovim (LazyVim plugin installation) +setup_neovim + +# Enable touchpad tap-to-click +setup_touchpad + +# Configure sudoers +setup_sudoers + +# Run device-specific setup (laptop HiDPI, etc.) +run_device_setup + +# Clean up +cleanup + +# All done! +finalize + +# vim: ft=sh ts=4 sw=4 et diff --git a/ksd-arch/dev.csv b/ksd-arch/dev.csv new file mode 100644 index 0000000000000000000000000000000000000000..0f34459e254657cf82c217aa0ddaa256fcd71843 --- /dev/null +++ b/ksd-arch/dev.csv @@ -0,0 +1,39 @@ +#NAME,URL,DESCRIPTION,TLD +# +# Development repositories to clone into ~/dev/ +# FORMAT: repo_name,github_url,description,top_level_directory +# +# TLDs (Top Level Directories): +# sites - websites (regardless of framework) +# systems - low-level, infra, machine facing code +# formal - proofs in lean4, coq, agda, etc. +# foss - open source software contributions +# labs - experiments, prototypes, half-baked ideas +# parsing - random src downloaded for inspiration +# +# Sites +krisyotam.com,https://github.com/krisyotam/krisyotam.com,personal website,sites +notes.krisyotam.com,https://github.com/krisyotam/notes.krisyotam.com,notes website,sites +thevirtuousqueen.com,https://github.com/krisyotam/thevirtuousqueen.com,virtuous queen website,sites +donlamar.com,https://github.com/krisyotam/donlamar.com,don lamar website,sites +# +# Formal +proofs,https://github.com/krisyotam/proofs,formal proofs collection,formal +# +# Labs +malware,https://github.com/krisyotam/malware,malware research with org zettel analysis,labs +prompts,https://github.com/krisyotam/prompts,prompts for various AI models,labs +scripts,https://github.com/krisyotam/scripts,general scripts and bin testing,labs +offsec,https://github.com/krisyotam/offsec,pentesting scripts for offsec and defsec,labs +pentest,https://github.com/krisyotam/pentest,pentest directories with org notes and opvpn files,labs +compcode,https://github.com/krisyotam/compcode,competitive programming solutions and practice,labs +# +# Parsing (inspiration repos) +wifi-password,https://github.com/rauchg/wifi-password,wifi password retrieval script,parsing +next-ai-news,https://github.com/rauchg/next-ai-news,next.js AI news app,parsing +NextFaster,https://github.com/ethanniser/NextFaster,faster next.js template,parsing +blog,https://github.com/rauchg/blog,rauchg blog source,parsing +gwern.net,https://github.com/gwern/gwern.net,gwern website source,parsing +archiver-bot,https://github.com/gwern/archiver-bot,gwern archiver bot,parsing +archive-text-urls,https://github.com/gwern/archive-text-urls,gwern url archiving tools,parsing +misc-haskell,https://github.com/gwern/misc-haskell,gwern misc haskell code,parsing diff --git a/ksd-arch/manual.pdf b/ksd-arch/manual.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b35dbd0074ca64583b58053442b8ec65cf4e3782 GIT binary patch literal 145171 zcma&MV~lQHyRBQcZF`palx^F#ZQHhI*|u%l<}72DwcoY&&N(aDZ_fF~ul{2sBkA|Z z)mm@8kt>LZ(J|3;z>v=`kF3Kmv9l8~64@JB!SL|FFvytNnY&mJu`;p{{qF~cLCn&| z#ng$2LCnU`#Z<)9*xtkxhK~=%*~Q7!&=$sH(^hFpZkPydXHLDoN%k1QzMNYY57o6K zHj;_{0*-4qv$Y_m!LLVwiwUQz!@;}#3>d73IH(rmSiYwma|*o<3H5huX}MplG(;+r z1U0mhw2J+_vg4LdEXOYViL-By4s=jC5IveSWc^`(u}}ssBgGNwvk4WGc_n~91YxhE zMOIr^$Avtu1XlP?cCYK1Zs=xh_vs)!K#1IwV%{JnQZ)E?)9*(&f}1tdoYt8pdtJ$B zb~c3kj-yRt)~?(qY=TzV@v7KscU_^lrfCX74fhW}%(8U@`DCnNC@4APQl3%fEpK_q z>(``QR=;45U0<0Q&GcLqAHZIVw>KJkTo$w0ZR4^5WJY;2SZ<6`62=wfWQ;#8d~65X z2bdm`K^B#W05gqjC6C|uSoGJ=+>UCu^?)Dw6u63({ECWm^A^(kflY@`{IGFhaE4@Q zj{eLZ>>&+vDWrf>{23EsiDBqd@a3jWHb|z9QKjHmTbOZU)(pKm>iY;G4!;=ywQPf( zROYLYe|5_19-dpQ2?55`&gB10=bzPoO_rI7?f;%J6AKgbe>&r9ZE5Fh38dajbq5j1 zL{I*>xG6VVqg$@X)>gM%yn3vuWs-Rit<;B0_b^~u=*eG{LQW(;jO=xGubq82Z)QNV z%fPcM`_~?Kr%5D`Ao3v4x%a_Ci9_TsNJp~(hnsEdpUVqh9J3*YBX@gxCVl=FyAWc` zX}Y+0Mv9w!VZm*(7xUA<10x=Hb3j(o{ejP;>!3i~$s7AOunr(SKe?bhw4qJ3vss)W zLWqu~KXEzo!HA&sH`HkeWCRp&s(DH`hB{tedBehRJ31S(2lqhdUBJHF@gx$V8%AG8 z#qYJ(;(U5+de9DH5*{KcZu<^o$gchiW(nD4k$z6c5YdtZR**2+C36VG%^rFN3?h36 z3#ZY9$k#|qb;e)~;*qrYkImLdM8&>SPW(}yrPA)Cz~z_l;%EW+&cek$3*g#ykQY$Z z2{bP^q+wzSo*BsalEb9$%gjVk67Qrj!NXunO5sWUH?f2t%52K){nLDheh_G2Q<=N{ zw(-aXXtzx5H1e_*3yTX}jr5H&AE6=H;eO56&=lvcMxQk7GXkLAP^?38mt+AvDnh11 zQo=3G+n;D^5WNs|5)VfwHw26Uxds8!aJ9aVjq1X~J0^;$#grd9gM_(!h;SG;K(tCh zYy?&hPh}L^^&i%O+kFSkEfLJ)-t5-(nwb0ZC^^}pDd9!gWC)LBwkZORUcOU`%3-PH zIWuR90BWUTLA!Q)R>TO|or-&uEcs-W3V^qa)+7R1nU=DfSeQ!!Tj3!ydPpxF%k2t{ zH3sH7+&@5{tj*mDQPvGj+9o$Pdglb`E4Fns3)M=#)#;D)lVt}b<_I?O*@Onuu zl$)XR6hZ4w86jj^-j9?^m?MX!3oqQhUg!l9xmI8^u~3O$&dis}NU|y@5`?_C ziB|>Cis-Wn$g=%gkyLgi=LIDA-lE&$&~!cW)=u?=N^3_4fzX=%Fe;1kXZc_LKbx%D zoR6&*xi&*N&grh39|@f=o_Zl-DY*d1WL|l`h(E znk2(qr{k>uQ*55 zR|xH~O;wC-4XV%1OQM@vo=p8&_g%46dg9BrSy<*ID;XOJAo;IBDMzW8S_2^$!|I69 z<1qQ=is#uC)aUHxMeOCj({0)Jk;5h34VS)J%W*w5)tR&330H!dC(ErUc)^Mv>Whjo zT^AvzGE-;mXOMnph1e+pnI9joLfllZMfGqb7s|cR?m-hqY3{uf(!8~`YcA*dE6_{p zU!^IJ4P2$R89gv=)6#M1BNRZKO)ETxoA-Go?a7SKmUpg%ftp<-t{yw)RT6FMZA;YO zdDv>_zvGWy*Rb0PTYqrnlmnEz*6HKf`3@E#c!5h=NqIvm<=fe7JFpPHL09hf&;A9t z{{y!wo(`r&4Dv=+$}YAr401$FjEw&!s!q->L;z;?|3`9}0L&c!DUN$Ir<}If(RLnx z)yrUz-}|}nWIE;mW>_tiw=!EBdJ;@WS4Glzyq53xUUXoBWFpa0#r_Ne$pD@0de4Fj z1O_>pWgJd34}inUP+2ie;AhFusAN%_XE?|d344^*m?|+2iBga^;T6F*O)^?$J_Swm z=hTB;ER>-=o-1d869)_jiRDu|heT|S%Scmz2@b_E!cb%+EF*>&C)S5@QH9YL1lY4) z0If~%X0Y|M+|7c_S>$Q%Yd*kutR8aSjZ?z%n1eZ^MI=lE&smS*-GRKpcN?%d6TtOb zM}=|cc}7Nbm=Xx02ou1KBV{1|jt~Ncq``u~ED_rmEOJW&hqOa-1Ih!2a-^+E$lMoj zxkEZA0>*^a^O6h!TE_K|;R2Ie24YV@n+GvFU~N~_Q5s?)kC2;I8LW^IKqdDS#lwlh zA<|Jb2EjpN(NWPtiG+a{ZWJ~xs(>9Y#Q`^iL0n77*s8%@o?tVW;#m!YNPpT4&q3WKCcOrq0t<3QuDI| zcJ@u1MoeY8JVSx0^e`)m6a8zMTcW4vEL-eUePY&4dI@a3$S5OfH!iIZyTkH$j@2_I zsN8^{ynR1Q`HK%5w`3I_ogCf0qUF$(^DziFFMx2-f(JtzJ5e^KTh2rVR|Y{1%vIn= zp2x+bfW5~fU4bwe^bu{p8C1a@ByVL$XY^j%>r+1J<5U~vqC&ID^4ZtPM+5Sc`Y8@o zKA5%Gi~SFyImZmXl4E|9q0n{PXftfS-O{3^P%c@+)H_#?te6|hOk2HrDXY%OlTxq# zQoxw5Oh_7l;L>}FB)m(F{Fcmg#GU`%F`uip3oZgfNG;m1K}dOth%d zbSDM+w6>SK+U?-U*6!T|^lJS;WeLGuWo|F3wF*swfzxFNn2uW&XH7n-DnuXtZ8309 zV8byOLfXsgDc1GvRXL0KW|nuQvrqPdqVy>wdwIee=0 zE2)JG_w>oY?y_Uk&t74QrIOVLLJL0E;im07 zqWUdX{TGtMF%G05D*5otPn~qXT?eV# zEU;SYI7HVDwbQW32}{Vz?NPZ*g)`jn8$(_WuO~@u1fM+=@uh6(Ooena`3t{P+i;l< zHoLvy)6u%(&=G_)t}E6%?j4EjTb2SXAxl2D@2U|C`sQwLl|OglAKj(uYek(N)@QRA zlv#Spdn@vPTlT=S|2W8TkmcmoA9^r$k+la0R|CAe88q(;+?CBn7Ccygi8oQ}`YeoB z1E|Z6-ir0*s;ZJN7Cs)l=Dj(;Cucczfgo&FXPN6nZ-z`EilK=z9GsXw9awQd@4GwG zh%eJMXPj2@(HX{)FP)SGAEpk|4{aSo{J~Juk45}PXG@Ye%cP5loa8W7F>Z628D~@p zat7O%-d5l;M!E*hr5!yS6f~(2enCVp9Ue_+zk9oJXYa`S(?>BR5BzoHx!gJVy5DgI zpnrKyF6;aI8_6-w>E6Vc6umikY;egjn}ceUBXUDj#1sQcKUi@K!Ln*|ULOc0-D6hx zGgN&tVm`{qjlvk~;xrxA{Bmm^TT3(0%ygNkm)&VjF%}k9)(hDiS{vLNo*VSQ#M6zU zwT87uxenhV&Pem(J^226p%>vnd>9&mN%B7zhJoU1F8}?u)`-^F=J4j|=E&w4*I{G? zB}ra_HZ!job=6`s=e_9D9P>T?13m%gA1C>?tkE+ut<#jLmJ}?v@m77Rn-SPsCsTY3 z&|NQ1-B|Bxs0XQ&UM*jEJ)2#?O)?T}dI*#ZP9AJ$#2FrL@VZpQHaGF=h7QR>NJGaO zgkI*h_L6ACC-A1ml=CnAhq*Hh>mjbpUxr<}Z@|?S>CWoDniIi|(@kwz2p5Gu0>J;kNZJipJlf5%=N6Gx-39HVAO z4!?WH+I*XDZSeNqTpu2tnEiu6A>Z^a%EmQobIBZ%Snq=Xj%gi_BVPgp&$pbYOZHRl zj~s?h?ax!RA`>KTPoK1Kq%U)SNStsbXhRwQr;J6|(s*jhT*Vic7k(<^zMa({*S` z$!<~GX)Cx*vL-n#i`BXu+pK!`HZYg4O~;_Y_)n}7+c#YtxuWatdz<*x7)dE5p+Xni ztc|7L7ey9Jj+;f7l$Du_3Kjnx(!?tiE9fe~`jLfh)Fey2qqFaP(wyDuAg!B%tY}|g z(CsfKT}m>iRO}C=CN1s6pzJ$0TTKl^Bj}a0TglM}W17K#;Vv|XZua_f=8p88$&zO6>KdJ!T3(#E-iIg zYI^mA0O>G8#YUJ4&X_e|CaIZ0Ry8$FRd{$FTOvum&L=9s<;7k*CUV|b2YfEc4me5} zwnzD>>qc-0Jj4Sxn2=Wq#_GYU1$VwP|E-K#HWBvZr-o(013TS9vFwhEs*=iSpN)MD z^}*?#L`zYxrYOM<+yWQSl`M{oxdUn)PhoISXrrD&XZkiNwZRLqn_w5YAZiyR{xp78 z@FRqtExAX@HHHH$t~?LQr$leFRo@a2EXVoU^H}4ja(??iQoVrKs+CBE z0ULzo*LWzk#na@VjOUU!_<_GkxUqMtF}}j(E#E%@>ZxEL464mi9gF6}9<8QqP&5Q5 zA(y!q^glbXakzL*a(}c_%|pxHq*LWEX~< z+$~7HdFGV(ynoLbYg%eAHp#f0KhfQ?t&E7axy>PUvDv2h?=@YRL6&v5h6eey>4`X( zE-p3zMuZd6jjBDzZ6sbRFo~oI6Wk-?&b8!f8<6&fDpsD7Wl4w4;KrR+sS!4Wp{@p$ z!iNf7bxINJtVIqLDjMU0>6ip^eP2y*LQ`ryIP;wwAK4AY?7$O;0{tYkq!HIgePBf_ z>(2MO!8VJ%9;52L&OIqWQuG`18B(nIiSt34OSSHQ^?N)@ zoNWE8yhweGzt|%m=i|bd&yAzurl^{=No}cKQoKjAL+v3 z%3fKVDBxhHd`KtKX+7cR-wSu}6&t})`&PIt*o{odNj6trp&FPF5;q`l(xDLcvr4oy z9M>|a-WJs^6u*tlNOO|CmeS$ONR@-+j~QY@D@$8TL?1P0c;5^ZwvjCL!J;s!N?vfZ zC_~-ZhF;m*H0*G6#_8%p>ragm;^zpAsHD1~^bCo1qZj}FWowlfJYa+1I1rt2adYh6nZJpA)7 z9Nt6$%7E#!i#d>Y_PmddQny6HVeOI0ijEM1p^-UCn+M#tV&<#j@t(R!uQ~4wHnDL$ zL)MndhjlMLW+*1G)82U>g%`0{4bH_!_sQQpHhc@p**v8-X!_F=^nt$l7-f=kyu8>> z$NgWYs>X1z&g`ked|iqUN!7Iyy`ZhG;|MX?Vg{myRinH`VGLV?pxBRM6BcQDiJ#$I zYvW|kfm}B2OpNp}P(}_p@tXpt`BC?f4ur`ZAOHuApQs@|8ZocA71dL5)-DG=G_&Gz zR=gh0=m64>+(?4CN~khDJTm@-{kd;b?`qzD90err*M`?m%5Mh*41uu3N@^hXUKn-> z0l%o)G*WLZ9B)UQI2BT~vGgj%KFu9Try8tSQpwQ-vPiYdVQ~7=N+3aAugwnIvOIU& zpY)U&{6_N{@liqIXNMdR;1K)U%Q1+Ms#i>tJ3p9z(@4&L(MT57|C0s(|3|?k8nVt? z>_|PA>UR>dv=OgF0)Nv?F65E{OQTtTT(D*qf2NmmK3isP4x<*X=@RNbWCB#r5qdx=^1SA5XFb7CrZwBQr&c2P6o0saM5g)B- z;?{O&s4$=ruWwnTG+$p>4Gn8nHfi%eJ2QOp4FsYDc$vph=N}TgP;^M z!MMAu@awTiNdP_!!CMpg$>rwnCXiz&iV&miBD8*Hw8$=u5Mc_m_Xg7kHwJX45#+g3 zgpXg1<&A|}fyx<=cea($onAMKOQ%o>SJu<;-!wD|w+=xdV?UQSwH3lioe;1g#%sD8moWkqW_523~MHP{uZhF@Zy0 zK<6_@gWfeK5L^}_Y|Y>qB7+djP{O;JDcZeQ6-5+IJqkdLBRkdeB7y?@e#Wq{hnG_d zTAHIl1N|i*`rJht2zIaw@=v>K#Yh`mEEA)nrf76I*x|ur&smFM&0DS!21o*asspYdy+5y(y6O< z6LXS`&&XBt5{lj2YHM0B0;_%ZqDdIZ0ZJLK_Ze^Zved`f^#BWidGO);P8$aq)B9$d z_2~$Q_wMhY`Yo(K`e1QfbZj70ue_3mn2f*9o!zdQfpc zGku>!_)~vN#ZuRa3Vy)zKiV5`iL#bmUiq4hJpMt>s-GW;|RhY;8<@ zZ(7596<3UZ(7lup9qr&)kfc2~i*~8(S9hi#wG#XsBf`PX8h^R~8)|uq)OX}pdwH{@ za=X2nqFb@j-eFmghMA%Tg}2Gp!-Me#?No*<+GG3CMjH4ras|d#y=`&`27%9zIRp(S zvMpGeLzGEoj55pbtxz5-QZH;fJiFPxk=B{9v#eThIVvhgf~No|i+CL?)Ceed^rzF% zRtzZ|qV>~(1~Z=P>Azun&r&$30i{H|&w-Szf3l4DTEWxBfg>7RYvp&d>g2tUdn`Mz z%}2Ojsc=JHR<_OM@{+c_j;B1>?~)lEUdp!$fg0Z-UTJ4p*|lRQmtmynuf^sF?7-=y zEe0N3&bJQf1{^)F*2^HB+FZqOUqLWr^6%y7gd|5N{PW|1r{xL$)!hTzx=DkmVPPmp z7iwd5#1|W};jG4WG~M(J*jw}6yXAYw)mA*h+eV!}(XxgH%!p{o0cdEegPsnfU%U(o25_&z=LymY$Lpw!g% zXC^Ug;&?0ZtWyKgk3SME&R};4I70|9fPeVM6`$--KY?s^;9q#m0{9mmGcyDJ)10tI zeami349Ry*{Vq}H_tUQX8&;QV;4lP^G@VjAuuO8ZObBLZF%3X}@8E%CL#t-GkRgox zdX|&L`LuCe+k5@P)~zE;R|ob2IR*p|$^Pk>`l3RBm?pI?s>l0>;`8mHL+bLaZKW*Q zx)fn;3cv+<5!Py0$}~-Efy6|En|WD+5_zkl+s-O9<0rp^w`Syf>52&%{s! z_~uroa>p3Bpo-)x|6^Jc1Isqc&K9v2N#H;p91^DZXtPlflN2?UaS>B=R}mXA@>=dx zescO)bHtJnuRfAc`45xTVk5xK(jQy6Kdu~#epW$IjYbB03@&|(`8#3Dc+OJb;N>ld zhF`Apbxkr&L{_sUKjVi312DUViX+!gxv1$C8{GqLD8Rl>8ip{;uvKg~q5bJKLF_P==sS$E{Jl_K)CmTkGSMNS$YThd~_=;31;r3J% zX^PFBOzaGKJgG9{mHVVQeFoHMo3s>_EETl4f_8s2lw}?$4g~{-CanIL#8Pa+z!jAe zNKlKFr}8>gE|pa1N1weZ6l*yQrBR3iF49@fRG5f1teGCn7Gc)^$I(zq?D)?ho}F%hnOnB0uWQ`>R+ZJy4mbJA#2;E7(!jsz zrTERn%pP_3Z@8b|F&)f;yXKh=FoEZYe?!qzRntd^VRqEb6-KtQxL{=+a6?MByTSP? zum;c;mr&@2p;Ya#kjD z{Te$xOm{jWPE#KR%5XAueRuQ2?DX?gz9*(6!rac4$1poS;5Q!T6D?1jz3hH&v#Fs zf4te^Ak)`H_G_q}<+DZV!bw|H@)`-$EJB)DG~>pp0496Mw*$$?stP9CVm9KZ8@O}q zF9>iQ#i8QB^vzje_{aw2oIz~xbVb(tA+{Y0!ch|7a&+>aeN-^w!A<_y_weu5O}nJ` z`K^k|mwZi8@z4y_naokqGl#u9wdpp~RugbyrWoQ6-Fm>Xreyrc5>gzs`S6 z*wsbJBGN3Du}E#@7@Y~V`+z$lbCoUAQIl+!+yMd{Se{)uT}=uT1#eZP+g6OiffK$J0DY`Qi6B^dI*uVJ7TKZ1mY1J8t7{7V`5t&C0 zvf6vr6;efiV0%dpLXdOR=|eQ|Qt?r{!!%oDT(Lz}!k>KLct_}fcZo00?ohFB z(v z|GCq?lZYh+yB%wgJ(5dy+0?oyaCQDotz{&eNF%vY^!ZK?rO-$RMJmhSg|u$pxAWx& zd}xxoe>^tv5>!im79iv7F`3xs#-6DxM&!? za)7}*G&96uxV^Yny*R~yRyV`ujvGh78%YS9Z1%3%g2OadwO>8*F9WT^+7KnQEBbL< z5F*kA5SNMO9~TRzlEvw->&Y3n2tvOX0{lQ`gE1rC8{hTRmBs8e&lYVAzXDvTd7;{@ zO0RJp?A?K^)jy=g+iNgal}@QoU9IO~s>#o`YVKRrbQeDM=m&)6Pm9DqelO(30caYILxi4D+>5D zYx}#d!QUGK{Pm&QZK{Lvi~~`D=P#mghQS97z8&0H@8(Bg zI{WOR1E}GK!(ecObVyuFRcxAUIo!B)UVB(HDU>)T|n4@9i2(EsZ6-_fK z_&|PSDNmuBg6YQZRWsnftDva1DaX90J@mCP;xl`U5%fAAw2>zmMbHKShSq?~0(j-tr!K&V2n(5Zu> zK1=j5ZTFMxZJCIe!7v^PeCOAG*M?68%|sI+d@x-q9t~4Ghn{=8s21 zoCMI7HIvU4I6aQs1BWhh=y2oASM6zQVxaIJAiCjm#D5_k+rKomm{HQ}V0QLkWh8!2+-t<8BWI~1vU+kXj)%Lyhy7$51x;ovr-QDXkaD1@4 z1y0Hg=kxgAcF>!^sn6y}$39!q9V3Lp92e>zNb>B0ik>dGIrtW{+ zL5REFC%##~e8X@wLK3q?aexueZ(bu}WMc#-j@}PYpd=)k&#B5yGs$f;Q(%RXfc{RB zOqN4?6{ybgzbBL}oOWXACqS;l&u1ru;BJND7brY@U9W)_51W&kvH>reQz+ z?QR zw1!7)ZvAVqjnLL=mu@bB!G!%pcm>LleUoYV90t|wtBe*W)BIJ0?g0Hm$`&PXF9j%V z_8<~si~MmY#X+4FB<$*~4~_IA?bg;3?m~1Vq|gwrK$8eyM*_!RDK=wtlVmVp8;;fi zU)7{Ci5;u>I>@&<{)8UUt5Y}#~J-Q5{X5N6PN zF*|Z|;H5~=%FN-8Nt2q%9q9XvrEv1T$n+sM;pt-kl1o?};G>t?L#wJJwGwUyFYy}- z#m<$&i%sag!OmW*%j>z3h}D41XkyehF|X+bt5+&=fxDLrZ*Rqc*y@$G>Z=^1KgBr- z$%yw_zLkDZ8GP^E-MEoa`&4&(z?Dk+HTGOJwK`L}Q62h$v8W2)TBjG`jC#R^aLSTW zSA91RlZWS1Z`i1M9M>c4cALB%qxKNr0-F6w!<@?N~OAx zbyjx7F*P#p-NTa%gE^Rkd*L7M+@?l3T`b4KzP_xLcDZcjogMl14}%!Cp0Uc=hjuq7 z6ZE}>H!u{RZIddu>1@S*@!cd_HOIz)TqvQbk=Xq-@@FShGX zwrk+c!N#mn=X{#sJwdjEGq(}_7hO`FYS*|oWuDvzDPVy-1C|>toy1HwVXlYvw`atU z{tetw-=`qWln$J=8e#GWB%f5+t<;TLz%vsBx~=q+TD+asloaQkl808+unAn8j)~>h z0CfuqTJ3jad`Gekz2 zD;bEnb-sscAo8tE#G(wVH#Td`sdgqh+G=|1r5H;v#!N@5$*N~cb8=O){y-RDOPR7u zgc=vbGGtJ(N4w)+f85lbRLsqx;7iwQ*lB97r%N}&2kckvq_*hz>2K^NrJ71>jE7*? z#-D>VYzV9Dx?K6U!WVLw5+ez7$4P>~PWmb5&6s%;kzoqiYy5lI=K0%&%sJG*ETNL+ zI9&9WEmY7x!qkI5?l){*Gy@W3ogEpRo1?GFsZ5oBRkn#Np`40Ddec z(BHH5oMv&TN>7=Le?-;VJL=|P+zLgj(v(pbcI{T;ttmHmWq$i^xHr}sdX3u$VH*|v z#fT|H>iVGoM|=kA_y%p9CU%R7?(Rc(hH< z8Xl=uCRO_y7^)452^iFq5I$@zJ^oB)`@CCK#X^ zWxB_h)0607L_mfYvQPAk|F)lKyZ)fCFU!ZcJ#C}q+5G?*lf{7Sb^l{kzxqm%Uw)-l zKRr)u{co$fPP)n{jK#vBD^I|0$PoPGP9R1b*B!gj^4v}o5eCeIxjS_H0_`S&=q4eP z@Ov9J7|YSokQQcR7mFNC5$7iMDWt270%VvJ_rbfvcXEoBA$}1#`2g_*33O0XKXiyQ2>oF z(^hQSFF`cbWYr~?_N0ZKQ0=V=r%}cM@3n0y;!Tx>+z;l@Q_0f;-rGk6xZh%f&1JFc zuvD^2T{T%ZnRq2&_m1 zRslwZz;gR8{(>io%B%lnG`U~P&4?H^6AnDU0CpIQorDU86JL2?7YF=e{MVBhlS`y zbE=@JTP|1^WM5fmwdn$LZBD+%6<)xo+mXk7VeiU_`;~$gZZ|#4A~jI<+gzATB<`y= z^*wUbug2ce`Ydg*m-SDey0qpbh2mmuDMBJP@aiJAmz|C0NH2@xvZSpNO*Tg0H>Y#M zx~?Q?&3$ogw2qlL!2w5bqDj;0Ku;@djaQBF*1}Lrp$(n%b&dCR`%0=;(Sd+cC-SLw zVGLR)g&-w0A44UVB2!_PA(24wi`cit4qU6hGo#0VDa^_*H;V#Y9zpVupvyUHAU5?C zA7fNUx*4XbGLWuQ4q$zdMjM`VBDL^Y>8u#3K*f70u3H5v<;XBV`63%xUEx22Dc&a>OKO@ zaw13p2|9Sj-u8Hs_0JRrH(@k*2;a6p zL2S*r*>u?#Ms(|TadWjf7D8KldG=Fe^iCFh|u7{9OI;A zDa(Jsz@%A|a71r4p-6(Di8XK>z0UzHmXVCV{p`*0c>D{Znf_TpbzNd-X>9-9wqA;li+m;q~iMb$zl85EzHF z3siy!GTG%FTLrQCew;;~k=a>a%7ZxLTzt_;FtBeSG@!>#$La&-*JcGy=mw90QTMia0cbVuVOfJYUY?g^Vp1`)X?&s52y)|B5?)fbHx+*$Z#}oy5)gcS{hWQ>wpC_t(Xno$f3usP&aqHcoZ7Myu!ekqY7xDD>|~*+ z(O0!q|5pEY>RI#c@api4h3CW3U#SDdSF`usD%k(!Y_WnphlsQS;cQs>{TZE=YPPBot<5H5G7b?yI{=%82n=jRFWohovYoEtj zBh=|kWp$6}Nllv|Id4@WUkn|=Ku&b6tWc4+D5X?v-@oW^dp2|ZLR>tvauCbGWaYq6 zwR!Ta*lFSj_-dihY7X^^Ef+IL!&X_p5YfTK!~#D;uDHnU)zlWDYdmN2U0fVwaf-F{ z#VV5xt^%sYnWnK*YPeepA|Kd1UV{PwQn<}qLwk>i=8xi!Y9!XPl#LmZH&o`GM0`}v zGzQ`?Db+(L8bl&gDeGY&@+N3Q53NgQn#-vW$Q5#VJ3!Vr9{HA8+vKo12h>m>DXH9E zr-?dL7!|VF^IfN(UQi4QCkn#=;#P3?v_s*Wn)lzQ>qJ2aP4CX;@%Mppgp*9ccThas zW%BiC860hVs%eeF!J3(hyLWF;TZ)oteYy&w@Xu(LL6h(Fbkr{I*+CGC#RyUh|7@zeCDjj&|E z>V!r<7>52QRAF41F4pFCTe!Ye)lz^Oc#CIaLjOs5u${Y^x^>UlNAe^1I}d-Bg5Q~E zWHfEPBN#nHqZRfPc;03&V5iT&1vIqL_x{Rrqj&eqQEykzw+i#tZ^O1#p6Tu8_!Ewg zVxmvx#{46C>7}dbq-&h{@7K-Hn7jP5f69riEfIk`L*PC>Hj!R8_Xt`7F2miFYF;YG zTcp{+%TPT331+B8&uMyoa`c{`_lG84dK?cl`a7H%ewt`^&H);mTYeo4U;?H}&XGh~ zmVGF3kOeQeNbT`*6nz_?1Hb;$hx|v!WP1K%!cZp}^yOocI4(t4hbe(OM`9f>98E4R z1Cd;LrPLX3@W$ft4eWhV1296YRyl<>_J?lEhc5+%jbCtA6OccCq#*j1s&qq+7im3+ z+*jsMOh}pYt6e+9IpQP70l|SHGvb+=o*ysr5-U)!E zsG?}QsJoyEf-4jEKGm3If!4-Ubn?9hA%a{wfGh-it?zX*sbRB`dv5|3% zxoX-Y>k-Dg5*NQCt+oz#`{rjoag$Z1e_2ksbj<1ulCBZ4Ep*Ol%~q}l&EX^kZ{m!* zK1I6%DjUE5Dpl|bK(*j}$4gJ#;5`Mbllyn(9wuyv{2cRsg8+qRAO4HRar{eO&dkWk z_@8Q6i>9{oRx66%OWnRQBAc=z*nst37QnW&EK?HIU5;ClkO(DB;n7WCv5`6V`}qch z$d!qFv*L+Fkc@us#&11a$J(@GHD0~Wt`>tIEKgL2(h=2YXIm@LTvYPd!_Z{MWR>#6 z{MqzFpE_%Ukb|Gj@Aty@w!E`cA)tBXgR`Xf>x1_By3!O}uFuQa`RV5u2xSMx0iR4Bl=(;CU&2`4UK0Tz%-q#*?IKwdOEsA@HAw&;fvpt z$g^xlb;^nz68Z%veTJ^L* zI=w-2ooBL?Vp}22oB*t#%PlSZXn|CzRjY@ChFUhtW$2)y$A?r-hB~#=dQa5{os{mMj-+b67k-Vr{2&k> zUk1-D68Sb91UoOB=zKibKDwpM-HMxiBInX$>F&IXHIBXW+fM7%BLN@8;ce&x ztAW^j;No9RlR$~x2e$FW6?QYP*V(sqKNLq$Ac(79m8}X=2C)rtFvY>7a;Vc!cpM0M zLto-;OYY@_&uuJFzLb$OPch;QXCK()?AA-zPgiVInd?|UBzxce_V<|S-7;?ji^d#4 zT7QKo?|Gf$gvI11*+ZX!!^PRfy+K7^?4_Xu$pb+5^T@-x^LY;m7#`we_B)@yX#d)( z1q~kLTt}^xkr1}e^)(0j4NF>q@zf;rujQqmM%c@v z6>t0ogF*JOmydjTSI1mc}C36cUv5V1=tr^}((K6f9 zyU{gwEmf1m0YlFLcQRkzXhAC3-&sbX{&ENC39cU|ptrN1w>x*a|s!|3tKL<|gb?%byj{~#V zuKrp*Ebi1%ImRJ4Naczm)gVXUhSkH?9!#IjrM}(L9!!h1#tXGeUK~Aq<1qOOUl7!(xP`vhTby8%?hBpa2%=GN<$#!iPafw^ctxk=(&aiKVIeJAwk{S;B#X zp4=w5)vxOgsZSgD8M_(sKkp)lzTt@>2*_r)SZr1ERW1UM$ZnGCPd;>$UG(;%H5oup z_x)St9DF=zrdjUTbG_L!zJFs$&h`$o$HQKcenVgjG0jE6fD&INWmy*VEbF1wws|HL zIv|628C8WSJyZu=L{5FZFqt{?46*zLW;Cq@<7^DmEIZOrPZ1N%-|0_9I)tD@$59_W zfM@!}T>G`wCRWpukid(w^*NhBs)dlDBjr1xu4FQ6Qjr4C(|;bLU@nYr>0&XyKyWuIr@dSbL!g^0)*$k*+0CgS6VD#AT-7F(jGNVH zN>Z^UiGXmK#xnGGLXS+xWKlY{4&>b-Ja>U`)^>obK85C{(?-m2-#<+n}XIfMY<*gh#&3u4-!9?PHpz+UX+t+7(x6G+Zc0g06#G&A_6 zZ>X<>(40K91kK7yJyRiSH8`Zxo4<27L*K>4x2o!}<^-liR?exC7Vn5B<5N?L5Abg3 zr8P>%@C|z@L8zQR?9KCocXMUfPWyE|s7)nk|fc z5@zSddU{K97KWd+H!ttzNoOnbi~ZiZhBRedxWjsIPiuetM!|)?@8XBCsr7&xcl%!G zcm5KCAwifhqDyN(1)1sU?;7~gy13P-5M$DrJ537v=CX2@<62w#y2o}>!p^Y$Qupaw zXjZ7DX$)U{s~0@|mD!qpS-&Q_!nUM$R%BPY=KD0y)_t3b+GV{}$zu|8(ouk#FrT$F zT%gGF><$+)=ntg#(!u#J*5jWms{i|{o{jxK?lJXfXeKX-A^l@L=5dt*O>_A?B%xYh zi6zl#OOuudhpJgyLtL3y2Cbte?d4zoj$7ke-`k~iOB8W-^?ko%d9E%#RAUC~p9U{@ z;%W4r&30$n&tR^S)l)P@;>J*}^0d%j?`@>d*psBshQC!Ucmg(Zy*c5&CR}VT?+vlU zp7&;18?8sAa`*t*hryU?$%bK^Uxp3V*cmiuP z^vUhcY#&>)M>ldP^W@`(7GffH_2VsPvg+KWx zJwO_NCvjPnj;uv9b+P_f>SSfng+WAD>9Q^x^>6o!-W8i1V+)71Ph;U$lTF5C9Sj2M zr}oNIbpc_gBWqW3X|)COvo86W1j+!-2ID}LiLr}y_9!+4Y8S=@v@3Zv$v~ZfftB<7 zKKX@7=VA(O|3ef8brXvQ2F9yfXcPKO;sqqt4kPuN99F>oA9q*(%(Cv}Hp^IzXf1`{ z)i6fn~Zop+W^X-M5Y0h5$-XD2lPfmX&(R&!O;Pt{V42rq61`2WhYJ=+>w!i zIg-5>Yc%it6&7|&v+%+#oQOn_zc9T4w^o@J zqWq(^Tx9n^{B*y?ult&FkUW4o-oZ$9UiA~Md+=zpt{siSI2~fP&h{Lh?JR zM~yw%uI7PK#B9X}N~usIrDjsA94$w@xjmY-z=|M^HVjApZG0s_1wF840|zREup50o!C9)B2gdn;6JoSM z#A^R4p&EuHF~A67&{P+2IO3qjcxbSR^itd8oBUg$G&Yw?f!jCp82b55DHoU*2Hvai z&vFa%l$5VzR;PKT)&QcK+T_nuB?AH4T;;_=ZFx*&h{E}JFdT3Fw|DCYT6V53Rd)8` z;DZ-7)I$QzdpEf-r8!hop6IM-1#YzjBSOWw)y{mrZGNx`zeTro{~MMG;7!}bIZnNnePrT=~o z{#b_wHHShe^oB(1TC*}hN`ePrJ3=|faB0;>;fc5wyQg<-dGh6A&-R0FWR8TGkf+^( zLir~Z|8ws=rC<`p&dC_utZLNTOTu|>gwbmY!zPf)-}zXg=hXQpVi=9yBkO3J1R@p` zPm9A|#ot~yHQx@H?BN@XOkLUa4rbT(Q?;%ivbaBoeKwB$mNpC(w#>VNyT02XlPgjm zA>9fwit8p>t^LCOyrCG*=Wge$(pAmb`qw$#j|2sOsum(FW3T@cI{?;82`Ol(*cti# z9lUhS27{^VfMhaK3FApNL(3!_zey5y^&NfX+w~0A1GV<~7G2$*j*V`0q%Ud*+yB>$ zhFSUecz@Z(t`r|)EB#h$aLjFxp4ZidD--?)RQxYH%>Q-Z{2xXJHs=3U-0=T@BSW={ zj8i84e|AbZSEhkc6ZB+Bk)1D{hjJwj-Q*`8?fDn!Ydfl5TB|kUBfxqOBv_Dj%eU2d>fXGQ9XtE=X*1)57pi@CZ z;KdW6JKy?wDd(3tE3A`#<+WET7r>k}xX z3Pa7c;VX`wb9{M}_!%>?zTmGY zJi>V|6@<2yx!N`Y0{!$iQRe5&3~-(<7~X*3F`ubllvwi=v4r2Mk38}>QjcQ2(H7^^ zFgOR}tvb&tRiHCc` z;Ra5>`s1jhWA{l~#ec;-l@vIYh3n~@VJ{V!?shq1ah-Q?JXPU|?zcPu5I_TWgzi5= z9ttr0ys!rPLrnm=nJSIB*6J(wNwHxs*Wb4Sxi)StIB>2WfNI8~;N8mFnH+t;W`X$d zynM*EsFs^X6UVW-z(Ac_eMu|E!A7hre;E>yLTnd*GjmY3=6&E90X~>b#v;uR64`m# z-|j{~K&2Tvrv7)>FwxWhuRQHv8x$ie+y96jjQ9-ftQ^e$^T>q%4`uP+URp+adPa`_ zx=Z^1!z=0qR9<^?1r+MAf4g~p@8$-se>>m7d}|xBe|sAeNgD{n&CQJrA>i^bi;Cm* z^S9!)qO#*PjrSzO>AHkiMbQL-0XQ9iMBs%MhB|7h3xEMsfd3}co1{1+ zIg;j%&(U2HHZQRebu8x<56w`P-ze2By{&$-GaqOS7yr@{THgS;&i+jkkFN% zj7rJK%Rit#l4S0Nr?9-9h9A|~64d$rD;HtuD}|O8u1i|_=H@19#C0YLpA1?6%hSIz zIg*4Q^bE$?5jX?zrvOHtxdr$q6N`wOgnxQr;$06)C9XZPvmP1Yj<&9u5p;vAx3g^{ z6EGX#b{(*S@xfmXj{nmSbMkl6ANTI|1V9}_;|Kd@cgGL3q2YIPeQgQF_*CEe*22UN zkiNA66o^-1f~mv3Z4NlaEviN94}W7>yqt0Gx@537w1$;0yx5Gfk86JDGoa5%8@w z;h6583tZ0*JPx?;D;sQXbpq$@2l)2d`U(uBjlCVnr~9}3O%G&t0EoVk(FHIKfTrqd z|5w-#9eDaTcz1Spd;&Oc@{8A(8sMat_t$5^FPEMvuDkja@3A*FO+r>#Ktv$=W;f}# z5(O311E33&ogEOS3TFxc4NcY+VD&Tb_IE^qvE{?<&+lDwJsUWn`;W?vSMHBe!)C9U z|Hm%0An@C+dPLsqI4DrrFH8q66L{nKC;H^?sl)H)@$bJEqaOdd%>CMlB-FID_+6I& zn%w;svb8ieJb$$ge;##oblLp{I`cul`mHS|z0<3tf@)y-?B&EnKYZ0esBf+Nw!^N@ zBB|!~H3Wv4_pJ3w)C6x0(<_qu;j!K zah8kmCvfLI{Y&8XOZqpGeaEE)fAdx7Blf7a(U9>I+`AUyZS*I5ym#a%w%;rM#BWb; z>>`$DQ*Z7X5AbIpP&@l)|JT;=9{z1+;h{I~JG;2JG?3&j7qn-x>IZOFs^JIR`_%Rk z{!Mo71@A7qdmHb~H=F)DeCqzj@|QR3cdj=P{F~xr8}o_p!i^EmZ|SxlXGf3grG@{I z@7uuay>;o_Z)4?Ky!zAKZfSFh9$XUFTF zZ1l5u=*aLK3Mrkx`v1S*-r&A%wr!r~!G7zJnT%e6_F|483a+K7Jv~H5+tK zKL2)oE2g;mJ6@m^|KUr>E(pf551flGh8N9`J*Ij`t1-bXre4+{%1aUZ@e{FJ zUl;6i9Ec^$5p)`X8DjoS=lQqTDe0Yb{jtrMo)$*9uIVflm)wc1wehSy(T=#`-ubS_ zY~Ff!hf}MH0sc|s;3j};Wnsg2MmR8{Z; z>ExLCZtN?`K3i}C6NC}?sFR+&!)aTFDchPwnhX_C8BgNEpj(JyvS~lVabw7vbSb%JtMEc&_3>?uqHeDNi!VnK|I+%520L+;6blK`_6nkLMolnAz0okHN9YIZUZRwHdbSo{nzw_E8G-KR@%cw!z{t zUGg8JHx?vgVKl*eIb8QBE?x{^_ z)I#;pH;I^_@K40pD{wS%zJV0rd}skhBnf4w z+jtV?YmTtX%F1<8Gr@~hmgM`|i z$u?Scyn^>4m5jsdEkO|eO1=>EGwQ^tFwCi^FV%NpSCKwq{IJX+l9 zI`w0FbVybtz9t)JOG)qP0ZdH)28ht-KsG~%al9`n5b=p)*Lv*X_^N9w<1ucA<^f2A z)uBx9n{v(vB2PPOkl3mQF3*%%`F?r^Zp+@RjHZqk2*jiynN<=Pz_Udug&0d;iAlG{L7=lN%s5(r4j9qPKhV{m8a6ChY)L; z6MV6rP2w}FMQVNynq7V;zbD&di4x+z^dLkbP}0+0F7Ls6)30j*b_G;F*pey*_VcfF0niI9 zfGT{lxwy0wYS&jDBkBuym;<*jk2!S{E(*x_eU&qx@t%nAI#ulm`s*L4D?Dypl7et& zt-;Q;nZfY5D)h<1)gXSiGTCT)S=AjP=HfG#;p!Vpe-|<;@>}H_+w#Tr@fY%GY0V8f zz`_VoP41GnB|X*%x;AzR*U@jUfD`~;wwQ$v*2ywSKLRH?@OIwlMwZKIUhGnES<51$ zcf-In^cu_g6}L@Jt*j9-k+MaR*=XGc~ zDpv2-3KBuY4L!*??@~7M>?h!E^{-G&Z1`K|us>TG7nMHbh%Gi;xU*v7H@LoL((KHgd+$V+sES{L_Te zO#Ff$Ys1O`a3M2m2OA-~4YZA?rz^NPwfug!rdL?dd%Q<6sNVV`>kd;M`wL?3uDm@^4hw}aD6d$QuT42qt#0NjGzve4@{u$&zso<_ff z95L^Vd5i~Ta$prLYE8@~Pw-{gx}%hxDWT+}6_ZYZSa`}@G#>C~dRc=tA0R2BD!e_-B$gW@P7b6elQ(-^$iN|U=aeC{nh6xyM+tk`Sf z^U~ge)Uz1QA}}8@a53WAk@{MslgM43)OH4U-*I!{)Eixx+=IbB64PDR3t6KrOzgdd zcU1kWNT5{63NDZrcMM7dHQG}nX|PtCzpA>D{nIYVY%{SLV*_}+Mu-;rhhnHw9+CYD zm`0)VE5_Y1MDkTqx*E%}kGa>{&{!Tr6I$R{(2n#?$ zm-%cJBQ);A<7p9)8HpIdkd%@4tMI;oQfg$Gm>$P|jwpOD;>cQGB*e=b>0*5kS1fl4 z;|iS2RU>P!wU9ARe@Q^@&QJzTx|Lg*#0)vQXzDL=ItwAPwgJxvHR8*paP$e8B&;N^ zhO>INe&OeR$EMPE3p^+s(WeAq^<7ot9A($C&rlJtdZ5H_Ob)U(Gkk-%$!!YUZy>hL zFobk;*P5=^1BedhJSCejwJFqopczVG=-Si+Kdp*urBU8v?EGI|Tkdu*(T5?*{xx5))yJISr~XQOWY?t;r6adsIbxYn{Adq3ee# z@%(W4QQ(L-%&8t`XypUaR+LV|WBy_I(w%>?i$r)cV;b>`T~KfCwQ?qCQa z@J|qH?YDIu%B+1&oAh<2=usqn?${fb?qUVfWSco@5I?{cPn&XB9n!8HwG?6>`0&d|G5zAVsu7Ey>(P z*S}TM&s{j(4aUkr@~3%}!s~{|Ojyr*2f!uJUZFMvzx;j0_;+zEgTaT~+$OtWc+9~Y z%sTrs6Fq-BFg9#Pj31P?ySK(5JfQj#v zb?@lf;Kazn$kO0>dTyXF)y<{#ckKT$b^(K@qDYU+J6DQ0I~fMP6hy$q1zKx$bD&$C znC<9{cL6F>*&N?754-8-hz$Xo z_O~MS$VAnwotQ>+>wzI7cmzCcXhaDo$XQ8<>|wSi?MWzhv)iPtWIrkE^VKhxlPXtI zrYXoSK=vq?l>7c^JzLteIrsR;^6lV-6)_v1#)y&N)ZV~H`5n1|mRaRv_0G<9H6Uee ziJNuvlB8Z<)zHF_XP&DSqFspd&(zcPV+e$DPBKRo{(GhvU+WL;2^*({RC1?*w)&NU z%i=X%RHP1XM4vn*I!W!;i0;1i+Q2#|eaHo^LE}}WFTg6)e?Rs;S+`iAIF+ta6(6Zf z%Y|;jD+b|O;A5CTdW+8y-~)V*=n)-^(*?ftk9x5Y6-XjfV3JYo+@s6;uW%${MF4>b4%<;Kk+5JR2o~)i)^2_Qn_xdVzdUA`l6a5)K zvZ8Fh-7%Z-2Uj>9W@fOM-9cji7~O2{@sKGfFWbAe>wtDP+w92V8@{WKNuA#Ro)C75 zIQ)Ytn!RxD4QLHWPRuo$qjQ4BYFK2dN!98S1F4FOgCQb60v)hwCXFik@Fj(95AhJ~ z9V}(qQSI59=}{ii3R=dyh_4?wBm~>_r3#)k-jSf$j89f0*AH%q&6F4QxK%%gVlVBv z8&j#Jwm~vW*{s<~S2j!EedK9$8}gag?=RYoJ`SzX3*vavlLHk}CbR1hzPfq4^_2{K z5z?xUAmcl^Llu-xWci0HNqoizE4vFEti)ntP}bjdN)sWr_2o)Sl)`_ZNSh3wYSi}G zwFJGRcwz)MoFaPEWaxXkP+7eVQ%Y2sBc1lEdXd_~Qg>g|NZ0^jV8oii`^F7oFH%FK zQR9hJ)^3AV^Y9JY4o0U5$-6Zj8tcGK>x_(F2lfXL;c-GxsxH)cof9l=t~M{`XaP&ApU))pIH`y z()^pUj2m;4BVAqs(Q7|BZ(G7ob6PDAJ5mpdv4IXn+>BWMp!D>`Zz^Ku5tC_B7k=pO zk+55ni)q-$fldvxjZ3h149`D|#6klM>dVLs>sVy1*-N_BTS(+TPPKbo=(YPT?vxHd z%7C<$0e8mGmlAOlQS|)=F;e2s7`5N{W8?NmUHQgd=QJwVppRxW;pIresz1qjUae(7 z#iam>|EP6fsTo(2@!D(NIgu)45L@&6BEOi0AC3SR>Nr9$?7T-uD05eoJdtI4|4)e$ z$qkfkXg*jGE(b=ctzdjMEXSo%@k-Urnc4am@2!GOT<;zCCcSra51x#YhV?=38mM-3 z^UNS81B=>E-+0s8ozZlnxtmZ;94=K2c+hx0WwbDDYGgp6RB)Smu$R5fMr>LrxXD@=J&fk%gj^RjZiod&bPs1DB#?9E&G4v(>V4 zkjAnP6F@TUdQO`B-IhQ7<3?CN8Kyaxl{gLL4$q5XtX8E{rHii+6*ku?6_<|HUh~W} z>T`fYfRVANZ}H>NEi|N?GpQiWwL5#IU5q=hqRId&p{ws4Lw0+h7Wc~=*l5LZ0o=!K zN{0YTETs-k3;H_)BGj)mUd9Qiyh$s@ef4!?g*e(FaU#<2NrqiUYZ8b-6{rz;vVpGWWJ_DPw)1aEsa`i({dOE6TXDW0wFb1&C*pF#Kd}_J$ z;?d^QyI#w9|EPwfYRD)-kaF?lt*X0no zPs4-(;E~L<@&DoigLiSCavp?>&X0mQ(lfB**9v+zrEP1Gh!hGNI zuY$O`iLC9+DHVvRqBR_)dqw(g@weu})$uHVc0sps@8#ryR4sAGYvxnrsWGB_cc=>V z{M7x(JFJ)~mqsz!9)v(Dz~({4ew|rtPkk3Iq)j+ByUAzR3EQzQc?ZS-?zWsk^w4@$tVs z-wmN-ee86Eq?MWLw14i#jk1Q<>$;#~HDg_j)y!&@LLFRTbtTVieM0f?K*Dmri~F0) z!#^<~gKZ`Wj?=Maw&Hmm@)9q6|A?f@0N#6UVwTLB{Dm}XI1r1(BHZ1d4Jsu?Vc@MI z_Hnr9R6B7AgAWdS6q%Uq0MZ4lB^s7|Z*nxeh=FAF(3j}%JW5Ox3}vluh7f0lvhSVA zErL)9vjS%^i4z}FZfd8MV$s`NHSIH%Lj$vvBcfYyOFs`HyEt85L0tw5u5su=ss4ds zwoR>mx_h!Z9>I2WF{i#0utYv+D;xGIoGW(lRbW1xC5HsZW=8LU#p~ft zVtj#IvV7q$t%2tj6VYLrPR4pUPMht+Y+*=f^87ralC-aHO}fmQf!2FS9d36u897;( zU_Pjz?5VbuH_xqhPvh>uCj=&3)NTk_$ke@Mjd(s!rz@s*1B@UfG;z1~VR&?f&cvIg zqg-?xJ!QJ3m+PC)DY-YPEzOkJUde;>q)*_+03)D+pTSl1w)yaneI5fl#tO2Z?S^9P zl5se@n88Wt_duc!^?Yd~xLRt(nxfQjRN}^jOjbD}GwX9KDHM5i+aks3A2*`9dHR7A zy+4Zmqu^ql%%<0#7iMA8$|tq08!WWVCdadz(i|X-o6k5Qyf7_`$LRhP6C~1EZ##^@ z^}*qR#rIy}e_XJ|0+WHcCM$PR6-;@bLzZun(LOkc?dWQb!vDDqTncP81cELSA@kTf`f7d4Pw)`-zG4o<6I{y4tv?I{5jd*r0e!%z!);A8ZoFh)xmLeweRo0u9WEN=Y*pqvV|eSy^V3>1vLd`2eVCp`9$w*tjRBp`?D z5N2JHhERUV+lSi@^MRBcVe$i0DGxu4NJhP&PnyjOLIir-jQc}6gNrFaxa znkFVs<#|U~KWy+YGSxD1^oXtvep6Q1%ddC7%LujkLVHyS-l#4O zI6Ds7@89tf4KZoztV>%Rn=_#kQw(g|0)?o*!qSII_{se&SQq3&yp|+BV}cz`F?dG= zh{btHwH_%!c)KgOJR6$>WTs<*wppA3Ij1GIROr%UMw5jo1n1Ci67qM8KaGglxxjr@ zT=N-BVa*)sQQnVat&847*em*PK>fNjk`>Cb$j9W=kyiIT% zUTr*{-f@>Lb`66CgJlD{{aZci zEg)`|IN4x5DxedyQnhkZ#hOLpLwj<_UvZJ%fl9R7_F(o)cX)>RFui&&k~Yp`Z5W62`)q`7?_XfL<3a zwAX)GCG8$KmF7@wO;5D(Jgk3=R4sM9ElHtz+C~MKWxa=kcW^JHNi0oKo(A>|gonq7 z0iWgN9xJYre4<1+VQ8*ZzvXhi!~1J1q=fcRv+duzvf?|CAtD1Io}uKs>LMBSSoCm0 zBk^mUz4=JlecdL{32#I2f0Z$?wm13kI1M5;YPq&c^h^W2h4M`|SYjOgA zWOUvrP%<^hS!HbH^@ax+S0I=M>xT2j2=_4yFE1;S6 z_s}iZYD+*|+IoF0-U;))>%tDGA-i{39?kWSjAv#9(S* zCQQ*xv%DuSSj?O*s?1dURMDM`u&N>}Vn;Kv3xC&E<#8XNeJAD>3p$A-Z?k46hYsA0 zrd%Q$);awsECYE^xe5E=T+-CJ)})Y}Yvv?Dar_gcpgbLnOkl?5kNH;r0B?uJcfWQH z4G+60lT!Oe#&ZVjt6(>B?!)7ylyK(7xG}tCC?-E7Ce+4NyVM-da*c}_g;Zg0Pz=2_ z#hC=Egsjt4)@LZG*eE-$#dFK9B!_o)ykY6+VqlO0P$!=I=B#MJiH@gnh=Q0!NAB83 z(I)8^`s++7O3%tex~GDt_V7Wm$|`ArRF%g$lbbGwXEv!%bZ~B&|BT$h5{tlW3syT{ z-INf0L47j+XkVH{-&?s$xmYr5KSJ=tuTN>9I{sv+EG^UxUYzo)#SWYOGz?U?P1+p_ zQBUz%L6nBWXIxIDCjC$fpTh0+s7co;VVPQLSUx#6r4f(T|8=Tz$=RGdIK)0{;>-K$ z``nJjMa#e@NbkM&G3fG#NAkt+rpO?V;s!>er7QGzY*43%GeWg{>f2UbFGx!J^|`tk zfcAWF^&E;dxpZd1h{P~qSqV z?HEe(bXDodg7U%WuRtkaTHSM89*l`<1M8Hxa(QiNECiGBm5oapbvbY}jemMBvobbG zYSclfB)U6|8;b*!llSc~kPZZQXSo2c7vD;lsK>*g%^XX+c!!VzK`ItTRj=oLSu#c` z6G>+>bq$D|c8lZ!Idlqhrz;o)AL9$>Hfc8 zW~%LwJ^ZK;MGPY2)gKXXf*=(s2E1#Vsfj4yPIgK@(1-2tOVbLba6#zqonNJ8c>PWf z6sHO`d11KJHH?sfXQ)uQcNR0$kqT=e#KIQe(OQDgUlSsMLPo4;xi5MA6U{JF^87`> z&0JA(`PlmPLmb5{wOC`KS%de^>*nZ~z#Uy7Vos=|z8mSWaNOu4i-KLS106gdZ$vwvrv^7(UQj#z=!9 z13)y50ErKAuRhhMcel33S9|D5Ldh-g}qzKMT+$6BPYcu zz(L*G8Zm6aKqN^D)fEQ2M)^p)pK+@pef#j8vX9OummR?8F#P;uec6HR{4u))m4A0qI+9C!CW)f%nB^|m8wVmuwv}a;;0)5REDi-R-swHRCy%fL=fjn- z+A>yT$@NlrNJJZQjn2HvcT{`tk5N99$fk1@)%|-kM5>+CyjixjN z9_43&$Aa>Uq^UZG_uR{^BBF6&;IzCS#zxNABNYB$`eubrecoHKw1C^9apV-?eJ#?> zR9jRjOWP?V1}=5)UgjuzFt1;QTI15 zTv}U1yInFSr+z7$*6w5=GCEb!(qNskubU-;tp@HKYR^W5NXZ! zHKMy=oAlYJ6P&;cwIlUZ2*vRUyVJvWXKu}O+&#zFf>AIO7y56%I zhmF(Q9ghp`>Cu({EY&Kf^zZx2pgxbTQ@Ip9Td3VbTmFXu)UvGPmp( z2(ND1W+oR>PGP?Z3uqQ#FQ#d}EFaGyG3RFKboSxx4Ifu}@?>f^?gqON`>sWvO&Uxl z0Hl`&JvUkbzt2s^Tg0IlO?hM~0Yr9)`>2zCR9*FJuk!h5Edq~8c0{OP1C%Do&`{Uw zy2`7l*Y1DHlt+-ImQ^QJ+M-UzDlAJi6I98zm`}nyY0E5QE z8Bq{4VNr~e`VA(`b3;{b*6Me4=3a`|CszA3n6oz->Wmr9O$wU%?BBV;uqz)bZ4Do# zATk38{)xIe`DlxNGM+ay#4m;uQ&NUYC}ZB#qB(@98F{G2~Y^DW$F>IeRD z&xtk!MFnZcE!b0Cz1eEF zfi=oy7tY8{>4FOjS+3LW3K-Z>=D-m%imS5&Q|Cs~FSm$=&_|84fN^|5gqDH5_Gitr znr3(2i@`3G&@KCg-f$ar+4gW_8mvuiY`(6OLvt&#o5j4*IAk2SQoZk1U0eeHhz7Q& zy!y@!5xw4mFC$)nN^$+&?02-$4@Y~$fQ@=2e;eaaC_l$`rEWXl{nFpdR&6YZJQ4ftXR-GOP>B1tIATN8{iwlB^Fu|zUE!jqJo zqa;szBzcQWUJupHKGTxTa1Oz|dQB~LCZ>R_h|4%0g7h~hMC(%92LpbVaLJ|sh6D<< zA=a5n+Iw*GHj!7o=z>duqWn5E(hD2Ki*TShKVQU1W!q0dVR*&VvVy5hZ$Wy_mlkH zf_o1)c+C+M5_caI6MFRXD(6q*#&@Txm#yWEKSLM z&h8JcV`pGsSU%y5SlkIBUIfLQxE7Uo>7RU=sKfk+7A{8r#P=910EXQvWft7POQz-t z=I+gr^1&2?1y;cnJFKmNHhGBA>N!%qM@PbAvvvY`r4*YN$(TUuPTq-a9xp|#wz*4D zR{n>bZR;tP5x&`rJsLA${M5K7L_8r(0h3-tvgN*6DR7;4xRYr-D&V>6n9rAb`}XO* z@iR@d3sBQ~g$@Ef_Qn-zDwd1Qr|?6Z=n-NC!x-rc3>>{<%@8NQ0UFWourB&8wF@4T z{0k~ah6O^H!zapo5QwmHDuJv>*q&+rI)%kQmlz}&W3OT>|ElN~y(fJn1F)vZpb&fY zoLwX@jJfb8*>gMstUE*$IS}cbAehH$h>C!8NhiFE?}%PXXoSX}3J%q7JTvBPi zOq=1B79B<{%mP;nZW6~0G~AXa5rOF;L27g+jS}MB%?wSXk|UW`U#&j?(aAv%``0Vr*M|qq_9Yjt6{t++d24M(t=YY(_kFd15erOb#3%o6s zj!=g0D3!Hk*Q5?+Oo{LGUJiiw+zyR8>*=C|>$mE;bZOwT8Nc6bkqcTYyz27W$X>k4 zmmX3dd#``aG={hgah%1=nQb`Eo@r8LVzJ;F0I<+B&GGsapVGb61c$?{aR@ z5iQ$^>vesdUbSL+|?;XcoSGIqIbY{TgSlJapYI;XO#0CSuZ$K><~aXLj^*F z5EB7|(_wOSBYW-)gN3gSxv(pSSQfN&QY|+?1GR30;PJ*t>2ngV;yBz6Js9A2=Ye)= z;L)DBn^8GwnE`)cGp}%^Z`k~Hz?%EeFcAWKg8t=tyi$?urd6OPgWet0Pi9$qguQW; zNrjGdw!AcQjS>2vKX1@+U&a0E%O-Kz9{WmS;3&vc@lv0d1L%nRVyV$h43QH>!~p$U zCCAQe&P2Fe6>CyH46CAnxX4>@E$DZ$a)In3|~wiNp$o zM-v%9^9(mV6fDaZ)1V-o14wmM1PACO27)UCOKhrr(qp6Oh5hukp4=RVe|7qSoMBd# zKo&V*BVzBj#1sdKrM=epH35CZQf@sko0q2Rw$mgM?}(g44~p?k)@uDp9ZQ`00s?V> zgAnyuk}()c7O6xO-{zu&S)r9m#A*k-Qj8+TYPT}?sY;e?xdmv8U*!XrG{nMKP#(t_ zbp!aUy}Dm`5+D?o6}~V=-O3Q0kCON)5LxC%XqIORbQ?P$ij7XfjW*2Ata?7SbNlUz zuU~x%@2W$C*Wu~1vKfZ+i2cm9moQu8#?*cwdjp!@#fQM$uF1>5ZOEkfqNYIct!FYEnh7N;|+hT-O zTPd2dcH~UhqstPulpS^N#Kf~K*6Ndj+o96YFwW&a(Kx|ey#M-dDRyJsa-xxLezPuI z>;gd6Mye!aVp}rK7Tn<^10d*i1x{xif_U+8uCOjf=q6&))Lx8LEJR}|hTV)KV;DYy zJhOC8tPt=SyJLKdvQSfZ7;}F2@l15d%kUnh{~U3JbM~<(H&cu@<{j0M^P&&#^jBj7 z&<@`SC-OKX^U+?*iy)07p$itElssK)W14r96v}S%56NO(Qp-A^{r5&&M@=l=@}G`?4LzU?B>Y+9<(dU}t@`UcxfF zKLk}GSX$z}T_OgOvF%w?zh$Doo0yh%5xjVp8eav54C29t>mUcDV@AU2)SGFui(+1Y zW?(33AMf8K!OwXbt4mrx+v(_;;^^;wW-LO!mfhcyND+Fmx3$vLiWSqkx01Uhc##k? z16|(A$mtb!BN2Um^@MD_BiF8W`UoQDjA2X7WR$mr9QC&MPHt6q!kjhmolmdEQ?fV1 zAY~aLADX5XSdL=@RaoH^b~(PXjD>)~lYHY4ekR8NA>*t>bjOmEsx46nj}8#==8lj% z;sF03L$NBv+drBEC37~b7K@OIV1_PcWoe3ZXP+N?$=cXXGb#~Ct}nMK8am@6s8Tto zOrOZukQTMw{Tk_J(1OgB(QJRckQ}a*(&sN^ba6>ATi)CzvuHH61E4DB>aRjm#L)D= z--IetiV+-U4coZg(MBEPu1e09I6pZ-0pIEB-Jj18mq6AJq^)@qnNrt90+uH9#&MYp zWWqjDeT_Kog9YV_88Btzb=aqC8NtwN5I1ERsn$fgPc;7E8bcdLBnl>xwOYte>4{K6 zpRDf=g=SWIHBT{FT;U^|-CjeTp}x?J(7%57(c{0l%bUAlq#+>^EnWff@+O$o$M)14P*#go0?l?C zE}1>XTl!z|^0Wa1&2mu0$f_<@M3i|xV+l;NbnJ4CmYgE40v?c_`g$2alxBurpuU?d z(+sb-?Qpra$lU35>GB?+lJi4d2374yL5B3bl-9>!odqM*nmZKv?G}P@F>*h|knU`5 zB1YyXvhxrK>vhDn_k&BZJ#HW#3deA|%YO=9|HKRTs!YL!p0?FOJdyXpg5X{RlpLbu zA7iGg zEMfkyETUkb6FXR&r1Ire$$=g#39S&y(JP4&H-N;x(CsORvdIhqt8t|>Py8#+pJY$t zv7N54;LEg4gCXX*X`)~rg9LhC_NCcBiI=ywXvn;`)cOcc@HKlD2Fsj7xZ5m|=xa&uE#IfE8){{XFiqD0GCpIE<@7|>Eo*w z77s>#=4)f%WgX^&q^uC;h~aj`P8&-M!LBQ6yk{|Ol7izB!#XR1d;a>018?1k0B`ak z_vQG?OVVT^*Qdq(1w{{uV{J;~R(#{gYm9Uz%XW7bJy=6ODOlQTpMUm?2U67kMhLNO zjAwxb{s&|C5Tpsvr3<)h+qP}nwr$(C)nyxB*|v=?cd5&^G5z1T6LBN%EM}7tnTuTJ z;^aBcOWH-~WF_@*Vv?(N?VX07i@Ri~Bw6gJXd=*ZD!#O=Hh0Sq$bqVQ+-<_gQU=L* zzYHC2O{{5*093(#RkRhawZXZXWhZ>~zWMB2+4^)IjwlB+s-?cW5H37_wL>|F>z{fN zTd0q!$A@M)ZalL>*XTMj4A96HbCAXAemjHa>M7%&%{KLlK4IgM4=CA-D-(L~p52M+ zvbj1E7vVafQy>|K6;P2+ObgYZl<8$>nb9kzZjD)(kRQ&NP;lEQ28462j2Vh4pIM_^ zQ%&Szg*8?{&FLia!dm;gbz6IvRGdqH6rA_Y9BFF=kMdcg#g5R+kwGLxz!n5rElxbQ zhWf^iX8KjICq-q2zQibt?&$jAiq66JPP(X8%ohfd0KP7(?1r0Ow=Bjuh!lPsd4G|D z>@0`l@^s78JB(4-2z2K*hA2iR?6Y9}zEkpTtI>Aa)galH@zjln5>TzFCl?Xpt^)QL z5Or#t4sCVcr}cHfvKWM@qZSRN15sn`C`5aW%AA@t`4?u1cvmg(!0P@`j-RP=c#*- z004aXv0*JJp``j)5kaYtF`hwwOV^w*ZFt8Ulr`Ig`XjqH?Wj+1Oj~ezP#g{1-Mp_B z_XIldd^ggtyZ6M?mY5$Y3;CQnch(hw>Zx%hr7=?7 zAA-9V=`svLt1O;cu;HRA`}jS~2UY$|O_FnaUFVv7fs3ArJLY%J+<-Tyw;4HpQW}9- zO^`X4o5zx5!I3GMO6ovkDYJi0K6DV5=Ew(gAg^Y8p{cmH%ve%&Je?<@SEI#I;L27R zk#Zl_!7+K`q3%)rB^36LD303V&OOL28IfKRcCpc(^AyZ#&-9Zccn}a-;Oo~a4@??k zI}KVn4wEIRTJVE@Oj!PLU;#lb2oS zwPwm;DIuav1g#k>Q>XOC^)EdpXuuU|Q+a1)D@#>vZEc{h~?dUm|Hi z_d_W41cH&D{CE3E$?rNBe1Am(S$iZ>X+nWw_zh0j@oaHd9X+mXuhT(Ifv_-_xn!W? zrChr(=Icvf%oEWs@an{|pn}H*TKu~EOEqm){)J5Z3lypO)$osx2*k@aa(Xs*nJuRl zSgiCxuF6#XJoGN#XmysE-I6TAiJ06u%T4#)CMd-U;r4g@*Mosc#77A^s>JE;!n)~^ z>QjTYJ?)Kdox*=9P@9gIQaK|0Ga7Xe;!!2D%Y6p@af(ZRcocc}jvEpNgM~LEl&ZA6 z7ErR5D|Z>wqFMdx2^PLwZJ)mv6K}9W;u7*`aVya@`KcW&d;7HFF+t-SHKhd^MO@<1 zmenzb(35=Na$?C4Ps+#j>Mw}Pr;^o5-ODvZK??3$NG36jY9sNl!_>zlac_QU^G=Yt z$r025$J6D6aTZD-+8P#V+pB<7pPZHz3gkngu>ip*Ifwe-S&Hc9;Djww%(yuwf=@et z7^193BM1jWYXl$e_(1QfJ;}8hu@w`kpxl_r=*6SV*%ZezCt2~*qQ{5=fy^^F&X1YA zO5idV6~$w6Erla#)d1HBUG5|gS!MG4JsjDY$ng6Bf+=6T80)6zE>Q3;P~ytFBQBf;N({akPQ4^;uK{4Pf9Gr zd1wg)Rws|UU7ZD!EybHIy5EABCm}EwD|h`%6YrMw;Rf}AHTDlwU(?szixjy}zewUt zAv0?{+>L(dy_>K{*GHC(3s3^(IE)rhP1ZSz1!V3Ka8gg;zJZK2s;BzzkAnqG=45Akmq=i8(6?3^>1$e^`CvLx)%z+swh%p^`eLiu z(Q^5f$AXKut{C^~0Xa6MF8DY4>|6t6hoH-u3CeiC|v~sSdB;MW8jIwv^hwMO5 zUul+DEDSjLUmq@K`6o4G*TEWg$%hH3d=uaUG|%IQU(fS8MJJW_Mt#@Gpxy7y^Qa70 zhrP^rjrORjAyzK99}#j*m$C36OrcAj&S=Jb1iMfPAXY$P+VU$`3+v*%{VF0Ts4-toSdpH27 z`856{g^CU$QzV-ZGPn1qGEv~6-vgPnl2MssgA1IZF1na!6U>63kutztcE?4QIH^LF z-_Wp<1(LlQi%o&Sa~&`E2FMr)bWVo=N0pnorR#cPmv1&6y5GqLRyZ##KIEsB@L@w_ zPB*!60rY&8`zRm1t8bKtZ`N4AVIQtsA@aWW{2J&-(WgAnn0ph#DP{gRuv2Qf27+>N zDce?e*4!XsOQ7SOO}2|YHYBwt&?$;rlt5hxpjh8otDF4PQtQ*U9t>uK^^Vi4rRIlK zP8pG!)qg9U*h2%4Ve106fv`~E*)>uYv$CbW7e?pE>9sQWq;i1CH@<$3v5Md6w}A%RaE(ag0((k|MFMQxIXm$f*!~WI6ZB(g z+0!8XY|C%nOD3-J-h{lmtYOZMs^RV<2W*FyGkP;cOPaXIIcj)o<%YIdxM*22QnH6I zc*R+yM+i10EXU7bFtn;%MDmyh;OQ6=QZ+e6Wj8k^%g~|rzFJXisI}Z~w`i-(O%Nnh(b>ewh$r8RDudbcDRY2;Bhw4w%tQ2?4RV%| zzCHwua5})E_PL+!DfQykM!ZJ9!uS{Q=FcyCTiqr$PJTSHwbf9BL6Z&cDJZhhy2H4K z0b8U5`=nY&dAArk0PY;6%A-3c5{WC~IIx$Hms&E^yukJNEKQTl?i`Bh;a%1)6nFvu zg3RR~)*Z@JIr+sv_W2y6LTY;^XKi;?u@`beW=Xs3sZ}b*-xR3owni(H7FKvZCE4^z zle|laa95xpnPDm~*V3XsVx7bc;vaTBqtEl-q#U#XJ_`yk z?WVCi{$<;>;T^?FUIFK#KP09*_JkOvSRs-~8jUQmxJDbYBG1p$XXf12w~5fhTrLlh zJIk7Bfkn4EE7uc7cVoj3$)jn9%8NK|HLq#|G&C*d zGYvdc1RdBa3t>qc3RZPNzDZB)EZk6+^HP?!hQj?xiQKSDA3Jb@(2ZF^XD&CB$vRY^ zm|DIMG|--nmVPx-p}CX4{WQbcEsx2EBe87if$^ECRGwfHFkd-S4Et>PVTNUbNTRV^ zjJoqqQI;!|6s!rUx2eCZT|?cP8!Uo(A%{|rI1VFv9I%}iIDET!N%>VP^3aOr4aV4mQYQOh^c9&n=68T+Q*}pl8m5@dL^=qP!+;}r;gq@tyyq`v zNtk=O$GIkRq_ZDqbtb^VL@~^~-|wW!=0YYVslBQfYi8^c+-B_1M=0sh4`lVJh_!?n zF+@K4&9jE`e5D^CYEq*_%L;_657K5R|2Lgup@5$a>QVNrG|=fF6Tlj$S*WL=e@V_n z29p6qkGg5z(?-2sQJ~z!xQM+0-SI^YPBibm*bm@na-m|3-j3ksf^pa2?dD(~2|UR7gIcE72LDjS zoe-k{T(;9rbH{N86#dRNWKJHN@VPLJ*aFu%XL1`=YJ^By*eW2P13{lMd3a;Jzw}?< z)-s#ObzZU@Ij3?$$ypPa4=6W4?bBLee`YI%`8_T6TH5hD=+~s`Zt1+6zxs*(y9TCx z{sRvSW0005tq=jjZQI9U91*FOpEIPm_Z&V<1U;%M)XqFT{M?pdl8%bilV!_=845{<0%O-1pr==j75b(h&l^PhZ+xX4Ur&4vc~m`ax9P$lq->8TjkyF?;>4XK$6<1)i3N1YK^n_{z+9 zTufiH(Rf}>sH9Hb1Fufp9YVCp9 zTAM24yq=Fw5N~6G9@lCeO^G*$k35xtmUoX>_&tHl_Ohj1l}ZZi-}K5-S6b{;4YoJ+ z1@xzms+;e_I5qQQLzTCtA4bX8I{ZU0yuo{(>H7o~Jb6JC; zcw;E;D7#SOL<|rmy)s{~izLS6!~*3G3K5)|A^!IJ`jQ0X@VztceOh6+fmHc7iCe9` z-mgC$c+X~Uh7=lZDQu9bhi9{Nv-(sagEqtKk#oc8CC}BxE`w8Qr8_Mz;i?THdK}cI zn}{cX#lL_3H;OCqzqK55@65FgRr0(3YJ1-xxA1UId(Q#C9if{+oN(fyzE+Am%JW>6 zoD>Z2*XErE=C%j9c8&)?^we}OGAFKgiTE3Pl6yL~{^b-206`yTR;I7bSf3I0>0hrSy$R81f3;`}i^ z*uAjQDJt6tn$5;w!FSO;yS0Je_UPzg3}jxIeGQE{r;#eWNE6bk3k;>}71|v_R4z_M zx)^`Lrf({L+WMglw`ot)~xzv1@3Zjyb>-EjL=N!8C6R9G!=--BSukgSUt__J2IQ z8Q_TRg8W1~i`;GbtOx|TSAx4w0|nASOk@z;y~av6Jdd7hb*jaj3Y!d3Vj8N$@^d^t znle%^1(>$2OTcWp04V&Q6E2`IF)XLqC1%7Qr*EKHQV6$|97l=UW zic9w0@E?qIlO9yI9zZ9nXqkvfcTI0R&sF4ij8IFD%k|XC!L1)T<7tTa0c^|f^IU_4 zstMvQM#1^aY|guj7BHoIbi(TRm~WMqm>mxW_^Q)wUN2`9$4&1oNZ$r81RoJ0{||e)YPgm z=2i!OCXg#vf)f-lJlgzz8j#$kYz)&mQmmkVlBxM5&u zD;JU+@bw6aX~ElT=3jVrH0|t%#{&LwKnRM@y6WHmzWUN6g53(_#?8uH-&n`p@X=b& z2A!b;1P9HdxXjF5&&2_e>Mr-g#RKv#cfR8F;^_eKal7!}>Rre}B3jT!kN-!llf$FG z%*)HnqXYa?>+b)f*2QjR$82t_1KH>0A$?aX&I}=2-S2oJrUwev{i@B&sa*?9$_lTo z+Aw63)4$YSv7^V+3tBSyY4gS;{!GpS%>&j0004a3JwSz^K&K8MCU3OC)sg(ShB9sa zBR6<{J(pLPz!o=bK>`>S122J41_}~&LP5Nb--FLT-rGM%_doxxj=BHgIsIuTfyT7G2t2d? z;duR7#NE)+^8MU8@ORPA-E9}zx%S7j`v=!S+}`{~Z*1oH>gTbxEcpl5wXwHjsP1a|Fh>< zC%%Pmun)frU*PTo7a)ORhyL+(HxGe}kuQER|EM~FGQlYPf#U!8b((LXT)=eI{|@Q@ zgV=e*|B&pwz-5~ zjS~7M^cP+Tf_#>>yE=bH{&Yvb3GVTVE(8*v@QNly@}GV={4{!HXn%tCsW!j=!|N=* z{^50V$B1UWlrNNMYuzw-9O6xnvOq`Uj#GXUzp>oI9AUU#JP4q z={(Mr(j#W%oT#8U*SP@KSpy;4%d$Xl0RHM1GaEX36HVREg=mj`O9P zw^*=zdCeruwo?zf0>N8CTNkN<@5347S?rp$EvTKAZn4To>Pxe5&;5)6@6bKl+@9Kg zw9^+5Gaqv5d4>NCCZyvN5bZy(&H=kx4>ALhD&{To#o;UE`U&(%a9kAgCGFX^!yLI_ z+A^#7cd;9&%yHFyTr=kFgmG?G)cz^++#lr=M~4$8m+~Dc^8;)ozW{MpG;eFirg1(x zuR8VWCf=t#)dSnV$f7$&aq~*P(Rk$(dko&cFvh3CBrtN2FBmysJ&JL-odQTN4E7lb zb2f2?d0C*4=q3MTLC3QzZ<+KkB#^wp}_MY;}tfjmjKG6DS9CA+p%NOQ{34WX4 zgRX)5tnB30urKN-I_ei{O71vuR$)U{Y5%_7ACSjxA8W>Ljo8O>ei3mQYd^w;0ghhV z;jnSOOMFbz;UI+zIr=%|A&nF za)-)3pZH1ezv6|Suy&bQ63}w#Cl-`wm>>Kb1jhj&r}{bJAs;sJ5m-Nk2VtI$_UgsA zugaP8ACA%O1X$T$$(i6fqUv?;H8?s0lLjw!aTLKA74@~9Nss$hNVRvq0=ixqEnK9s z5|pN6l_v3l3qE%J_5%R&xnpJ;PlX|(0bq#b_+@X6ia1G|w$JoXZ&_s%Vx;U+boQs< z{g0qt3#TRbM70by)=pbw76NKNQ+A$XtYu%^79<;N+;`{bj{a#ZLP3%rOBHms>{B!(q&HUx7+g`lUECBHYWfwd%pIU*We+@bYS{S$x_Hkm(* z5H&!f3JoC^DwtNU)**-5oSbnbuzll$XWL=;MJFEq_?>u@^PHuja+mupV^FNeo~1Ju zE8bsrNBq@G`0diD=?CuB{S-c&n4_+b+Lu#L(TOE{A8}ijgPdt*(E||@GtMsHgc5Gv zt{$>5{b8LsDR152>y#UfKSIbCjAY{k$KqA7fcUC$`YQDq5~tGl`yG9F&nASu?-c8z z&rPYPgF1yU~k_!IBfizChXOG?k9Vq$*%W4V1XC$0vyJB$Z9wiNLFWZIw{-oa4 zC0(@L)i`A|pVT_WVrV5Mbz*x=&5ga}jA8!5`q+5CwJeEE%~GIVYq@N8}~A$v}PYj7Op7K(||bOcA_RPQNzPEZ?lp%@{OwI)q+w()3 z-$^U#0}PVmybxpK^S(z`W2~=&EZ;X`1$qAHaR~0L{YA}U(ThvOIK&Z=ik&4XV#iUg z1(-Y?be6%IN9PmK4UZ*9b}zFTQ(Rj=YUTbWD$rdeaE_70R-CMXl6s)a6a!a-2(M7=qu^Xi($CXHk3(PhAi}FB%bsA4-6rz z#Ue#e2A%{kv=J4@R?V_E0vDKbw>NZ2_AM+xv-{mFp@b$R8pD2Ib}8`A1I0k*%bbFD z!byKr0z(O1Kc&*-Ly4>5uPpMFWsm}4wd7~3^4dWz+=sBm5Q*)IG2N^L1d%Qx)5Q$@ zOQEJWkmOxwd_$7ji3h6<#Q2}$mMU2HBguyq4U&}%T`nVaE)9=~4)PD_dDa7xmrhfa zfpy2BmzUIk_|JW~W| z821U&*F{tTzpkF0W}v#Cg_P!8Z8%Pfa zp6(iaw8&__s~l~f5u2l?Lq0K3hmeRw>{@b9+2b}7l#wD8*%weD$mxUc)BxT*xNOhe z_?0!nCmW4q0=({(g1>p#5xfYdeNA)UHqqF;6K`4QK?V-Y8+E#XLvl1?H~8kQ@P>;sj(o z1%}(p=kk;wx>O;Bj`tHp@mJCSV2?Q3&_^V8X?IN`&!B1noA%T7Q$6CJk@IQ!y90-r zGOLA|e5fsAe20ip>$M_C;rCPBvF)>s`{%0-ct!k1W`(R;KLbs2Az@+VbU~V!Y@DuU z2=|9En5KthQ+CkfO zX07Y5<3V~!vPwEv8FXBv^?-I?oaRKez~x)R49kXOdjto3JQhMz`-F3n6iqyP0rySr zBMGTo!rgWD%ACFHD+-P8*`^bqHa1A>tXoX=TrjXYpWCfOr^zehwPPVHVo~(ISyTb+ z!ruEmuVtw7-dzqy3-Eu6&pJ;3YF@&Xla1={rv)Cd8ECxKZHu*4lZ8mrsc{Dw7ozPJ zps^5iW|F(`jV^5`0~tHDIV=-)32h_Llw#Z>FH*vV8eY{|uANgJw_@2IX=T7?PvSiihhFDqnY=3_*Qa*JALNw35Ue#O zL8y!Ri!*^X?eL2h+3{^vcr1ToccVxo+0)b&SisUHWN#x_@KYJcvF;G{CFX?}D|5#? zyjq-#fDn>gpFCQb&IJ(NUg_gBwxh$$8r9YLgdbjCNgdM#gny`wb7orVzj5uEwfyWm zmB}{QYkb9Of3(8+NbcCINiTM=arGNt++a}@?Q;4MX4NS;8Ik#`QAx-3Bwx2(CZ%Ts z^sMH#Sr!fceer<|kR>dKtX+NJtV=iOpnmw5o~_|JiHlW$@rSVp;Kl`sdODSx@IBa5 z2C`xZPN=WJTG(c*3kEV-z>y%Pwx$}fvnQ~USbc>5aO5{Tj8Rt!8d(1lx^Q3M9BhvP z%Gi1Bsv8GOvo_$MkRo7()8lCC*YfGy>Tm}aD-OR0{tgz@q=HAyce?PxuoPft%W1M8%;*d}hTeUYfI?fxb zVJs3_w~M?E<$(ghdPbqa36u4Z{8HK$@s?O8yAJDii9IQ}jOsy6t&rSFXwhRZzn4#o z&{mVhYobBT?uQxytOADai}pc=${|ge0Cj{_i=JT4-;=sO5bSvezvm z@gXnEDQ~i0(n^|mp8<&=PfWj7KH>~v58U%DyISzpc@A9>;SnSYYT}Y~lVeZa;ji=) zx~cjk3ct=?A%Vo(&Qj%N700(Tn73dg5%Nc%`yM~37y~>KQlvAmpp+@b6hJR8;ddIA zZSR}rO?Z+tV^7MxV&rCZ=Dbq2hynMQt@!?P?+W+M7H3V>-wCf3VB-~>PAM@bp+#cB zk}yt>c&_eeVW?<6#D{E|E7DKLb``Lp(=rmys9*o`G?Vt=g0u>*nh&nLB!2HrQ#mnF z>y4y+9(bjQBSYi>mWWG6Qk0{f_nephI|6MiK+P;X0X{5QdE~AP{qg8e`8BPM=hdIp zK+;Iqkn7?LxaC70A~Yajni&Wj>O%UpU&`Xm!j6nxLk+dr-7xsCt}bg2U{Zg^{^ln2 z8nDyo^*`zyI|d$;Fo+A$Uje(qdq}&%v6!$G2r@8oBL0@ld-m z5iFfWHWFu3*uO^XK!cLfxT>1%dh~Ps%@fs*e~UqF)tg_Cz1{kpP!7Lb_|%oK9$>p| z2mb^PYc*Pa5dNJ$sUU2H$OanQDs>&lh*4@efxjHUV3GmimJY#D9wFUrddYUIECuF} zmbB~XE}z>eOG~lgOZu*GJ+FLw|UCD`L2Qu0l``4LHfL(bD zy$CD*Y*AKb61t>JQKRCvC`&eJr#?H9_&B(wE}OWpH-SF~3Z|s?5!nsH@ftTl)noAS z-AR#-gRJ0fyNPjzLsLv)6^(N!+c6=g^jOCe!Fy#ZexlYN`#+@nt$K4&{yD9NBe6l! z!&F#i{vv9HS9`Zrt4Nd}h_Y-=&zz(%oZpByvh1J3JowK=EcGAhcfJ1gwxK@7j5ovf zd4GzQMSWA-Xbd`0Q8L8;5Xp|socoDsYNJJ3cmy;v1&*e|p_=lW<`CbsRZJFypYn%n z`xmUa^j$}cD=Z33o$zz~8SKq(AEACy(q(fz^4h1xhoc}+HFM<;Oy1W)S2mq_)u$Zp zbY`zn0N4lb|f1|wsf26zPpfn+_3|Mh;%`~=Y&Axmxn^Ndn7#|scMSWdu*ecvY4xU+#S z>v8Xs`bCvHVj-RcLpOK$jkva&0oMu=>vM~U?j<;f)A96plQLH}{=q|o8mgxxddiyi z=F7>@o-;B3nn|qaN4b2nUs;ncqKTuvpE_^|h3<7h?hlR?N5LC^uSJj{vSp2nw1d<| zEP1kn=RGYU^*IF&zW2s~lIPbb&wB?mtuNc%0Dhy|bF}BXDs?X1(b{ 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

BxgPVj3{ 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 xTWjLR$yjT_ob2;+sQQ$I!mt_X&t-wLi; +# If subdirectory_name is empty or ".", it clones directly into ~/notes/ +# +https://github.com/krisyotam/slipbox,.,main zettelkasten and org-roam notes diff --git a/ksd-arch/post-install.sh b/ksd-arch/post-install.sh new file mode 100755 index 0000000000000000000000000000000000000000..fb71c934470a1de0354bd544fc2c8f3c3a49c896 --- /dev/null +++ b/ksd-arch/post-install.sh @@ -0,0 +1,191 @@ +#!/bin/sh + +# ============================================================================ +# LazyKris Post-Install Script +# ============================================================================ +# +# This script installs optional large packages that take a long time. +# Run this AFTER the main lazykris.sh installation completes. +# +# Usage: +# ./post-install.sh [option] +# +# Options: +# all - Install everything +# texlive - Install full LaTeX suite +# davinci - Install DaVinci Resolve +# help - Show this help +# +# ============================================================================ + +set -e + +# Colors +RED='\033[1;31m' +GREEN='\033[1;32m' +BLUE='\033[1;34m' +YELLOW='\033[1;33m' +NC='\033[0m' + +info() { printf "${BLUE}==>${NC} %s\n" "$1"; } +success() { printf "${GREEN}==>${NC} %s\n" "$1"; } +warn() { printf "${YELLOW}==>${NC} %s\n" "$1"; } +error() { printf "${RED}Error:${NC} %s\n" "$1" >&2; exit 1; } + +# Check if running as regular user (not root) +check_user() { + if [ "$(id -u)" = "0" ]; then + error "Run this script as your regular user, not root." + fi +} + +# Check for yay +check_aur_helper() { + if ! command -v yay >/dev/null 2>&1; then + error "yay is not installed. Run lazykris.sh first." + fi +} + +# ============================================================================ +# TEXLIVE - Full LaTeX Suite (~2-3GB) +# ============================================================================ + +install_texlive() { + info "Installing TeX Live (full LaTeX suite)..." + warn "This will download ~2-3GB of packages." + echo "" + read -p "Continue? [y/N] " response + case "$response" in + [yY][eE][sS]|[yY]) + ;; + *) + warn "Skipping TeX Live installation." + return 0 + ;; + esac + + info "Installing TeX Live packages..." + + # Core packages + sudo pacman -S --noconfirm --needed \ + texlive-basic \ + texlive-latex \ + texlive-latexrecommended \ + texlive-latexextra \ + texlive-fontsrecommended \ + texlive-fontsextra \ + texlive-fontutils \ + texlive-bibtexextra \ + texlive-binextra \ + texlive-mathscience \ + texlive-pictures \ + texlive-xetex \ + texlive-luatex \ + texlive-plaingeneric + + # Optional packages (uncomment if needed) + # sudo pacman -S --noconfirm --needed \ + # texlive-context \ + # texlive-formatsextra \ + # texlive-games \ + # texlive-humanities \ + # texlive-metapost \ + # texlive-music \ + # texlive-pstricks \ + # texlive-publishers + + success "TeX Live installation complete!" + echo "" + echo "Test with: pdflatex --version" + echo "Compile a document: pdflatex document.tex" +} + +# ============================================================================ +# DAVINCI RESOLVE - Professional Video Editor (~3GB) +# ============================================================================ + +install_davinci() { + info "Installing DaVinci Resolve..." + warn "This will download ~3GB and may take 30+ minutes." + echo "" + echo "Note: DaVinci Resolve requires:" + echo " - NVIDIA GPU with proprietary drivers, OR" + echo " - AMD GPU with ROCm support" + echo "" + read -p "Continue? [y/N] " response + case "$response" in + [yY][eE][sS]|[yY]) + ;; + *) + warn "Skipping DaVinci Resolve installation." + return 0 + ;; + esac + + info "Installing DaVinci Resolve from AUR..." + yay -S --noconfirm davinci-resolve + + success "DaVinci Resolve installation complete!" + echo "" + echo "Launch with: davinci-resolve" + echo "" + echo "If you have issues, you may need to install GPU drivers:" + echo " NVIDIA: sudo pacman -S nvidia nvidia-utils" + echo " AMD: yay -S rocm-opencl-runtime" +} + +# ============================================================================ +# HELP +# ============================================================================ + +show_help() { + echo "LazyKris Post-Install Script" + echo "" + echo "Usage: $0 [option]" + echo "" + echo "Options:" + echo " all Install everything (texlive + davinci)" + echo " texlive Install full TeX Live suite (~2-3GB)" + echo " davinci Install DaVinci Resolve (~3GB)" + echo " help Show this help message" + echo "" + echo "Examples:" + echo " $0 texlive # Install just LaTeX" + echo " $0 all # Install everything" + echo "" +} + +# ============================================================================ +# MAIN +# ============================================================================ + +main() { + check_user + check_aur_helper + + case "${1:-help}" in + all) + install_texlive + echo "" + install_davinci + echo "" + success "All post-install packages complete!" + ;; + texlive|tex|latex) + install_texlive + ;; + davinci|resolve) + install_davinci + ;; + help|-h|--help) + show_help + ;; + *) + error "Unknown option: $1" + show_help + exit 1 + ;; + esac +} + +main "$@" diff --git a/ksd-arch/progs.csv b/ksd-arch/progs.csv new file mode 100644 index 0000000000000000000000000000000000000000..c9deeff7c3c323236be2be63e8df3f4b2fb3649f --- /dev/null +++ b/ksd-arch/progs.csv @@ -0,0 +1,269 @@ +#TAG,PACKAGE,DESCRIPTION +# +# Legend: +# (empty) = pacman (official repos) +# A = AUR (via yay) +# G = Git clone + make install +# F = Flatpak +# I = AppImage (download URL) +# B = BlackArch (requires strap.sh first) +# +# Basic Programs +A,lf,"terminal file browser/manager" +,btop,"task manager and system monitor" +,neomutt,"terminal email client" +A,mutt-wizard-git,"email setup wizard for neomutt" +A,abook,"address book for neomutt" +,ncmpcpp,"ncurses music player for mpd" +,networkmanager,"provides nmtui for wifi management" +,bluez,"Bluetooth protocol stack" +,bluez-utils,"Bluetooth utilities (bluetoothctl)" +,blueman,"Bluetooth manager GUI (blueman-manager)" +,newsboat,"terminal RSS feed reader" +,pulsemixer,"terminal audio control" +A,mouseless-bin,"keyboard-driven mouse control" +,tmux,"terminal multiplexer" +,emacs,"extensible text editor" +,nsxiv,"minimalist image viewer" +,calcurse,"terminal calendar and organizer" +A,sc-im,"terminal spreadsheet (Excel-like)" +# +# System/X11 +,xorg-server,"graphical server" +,xorg-xinit,"starts graphical server" +,xorg-xwininfo,"window info queries" +,xorg-xset,"X server config utility" +,xorg-xprop,"window properties tool" +,xorg-xbacklight,"screen brightness control" +,polkit,"user policy management" +,xcompmgr,"compositor for transparency" +,webkit2gtk,"web rendering engine for surf" +,gcr,"crypto UI library for surf" +,xwallpaper,"wallpaper setter" +,xclip,"clipboard from command line" +,xdotool,"window automation tool" +,xcape,"key remapping (capslock to escape)" +,unclutter,"hides inactive mouse cursor" +,slock,"simple screen locker" +,arandr,"monitor arrangement GUI" +# +# Suckless Builds +G,https://github.com/krisyotam/dwm,"tiling window manager" +G,https://github.com/krisyotam/dwmblocks,"modular status bar" +G,https://github.com/krisyotam/dmenu,"application launcher" +G,https://github.com/krisyotam/st,"terminal emulator" +G,https://github.com/krisyotam/scron,"simple cron daemon" +G,https://github.com/krisyotam/quark,"tiny HTTP server" +G,https://github.com/krisyotam/surf,"minimal webkit browser for deep work" +# +# Fonts - System +,noto-fonts,"comprehensive Unicode coverage" +,noto-fonts-cjk,"Chinese Japanese Korean support" +,noto-fonts-emoji,"emoji font" +,ttf-liberation,"metric-compatible Arial Times Courier" +,ttf-dejavu,"excellent Unicode coverage" +,ttf-roboto,"Google Roboto font" +A,ttf-opensans,"Open Sans font" +,ttf-ubuntu-font-family,"Ubuntu fonts" +,ttf-droid,"Droid fonts" +,inter-font,"modern UI font" +,adobe-source-sans-fonts,"Adobe Source Sans" +,adobe-source-serif-fonts,"Adobe Source Serif" +,adobe-source-code-pro-fonts,"Adobe Source Code Pro" +A,ttf-cascadia-code,"Microsoft Cascadia Code" +,otf-libertinus,"Libertinus serif and sans" +,ttf-font-awesome,"icons and glyphs" +# +# Fonts - Monospace/Coding +,ttf-fira-code,"coding font with ligatures" +,ttf-hack,"Hack monospace font" +,ttf-inconsolata,"Inconsolata font" +A,ttf-iosevka-bin,"Iosevka font (prebuilt)" +,ttf-jetbrains-mono,"JetBrains Mono font" +# +# Fonts - Nerd Fonts +,ttf-jetbrains-mono-nerd,"JetBrains Mono with Nerd icons" +,ttf-firacode-nerd,"Fira Code with Nerd icons" +,ttf-hack-nerd,"Hack with Nerd icons" +,ttf-meslo-nerd,"Meslo with Nerd icons" +,ttf-sourcecodepro-nerd,"Source Code Pro with Nerd icons" +A,ttf-iosevka-nerd-bin,"Iosevka with Nerd icons (prebuilt)" +,ttf-cascadia-code-nerd,"Cascadia Code with Nerd icons" +A,ttf-ubuntu-nerd,"Ubuntu Mono with Nerd icons" +A,ttf-roboto-mono-nerd,"Roboto Mono with Nerd icons" +,ttf-nerd-fonts-symbols,"standalone Nerd symbols" +# +# Font Management +,fontconfig,"font configuration" +A,fontpreview-ueberzug,"terminal font previewer" +# +# Theming +,gnome-keyring,"system keyring" +A,gtk-theme-arc-gruvbox-git,"dark GTK theme" +,python-qdarkstyle,"dark Qt theme" +,libnotify,"desktop notifications library" +,dunst,"notification daemon" +# +# Audio/Video +,mpd,"music player daemon" +,mpc,"mpd terminal interface" +,mpv,"video player" +,ffmpeg,"video and audio processing" +,ffmpegthumbnailer,"video thumbnails" +,pipewire,"audio server" +,wireplumber,"audio session manager" +,pipewire-pulse,"PulseAudio compatibility" +,alsa-utils,"ALSA utilities including amixer" +# +# Filesystem +,dosfstools,"DOS filesystem tools" +,exfatprogs,"exFAT filesystem tools" +,ntfs-3g,"NTFS partition access" +A,simple-mtpfs,"phone and MTP mounting" +# +# Utilities +,bc,"calculator language" +,man-db,"man pages database" +,maim,"screenshot tool" +,unzip,"archive extraction" +,atool,"archive management" +,poppler,"PDF utilities" +,mediainfo,"media file info" +A,task-spooler,"command queue" +,socat,"data transfer utility" +,moreutils,"unix utilities collection" +,tesseract,"OCR engine" +,tesseract-data-eng,"English OCR data" +,ueberzugpp,"terminal image previews" +,fzf,"fuzzy finder" +,fd,"fast find replacement" +,ripgrep,"fast grep replacement" +,jq,"JSON processor" +,wget,"file downloader" +,rsync,"file sync" +,rclone,"cloud storage sync" +,fastfetch,"system info display" +,lynx,"terminal browser" +,eza,"modern ls replacement" +,zoxide,"smarter cd command" +,dust,"disk usage analyzer" +A,dysk,"disk usage viewer for statusbar" +,lm_sensors,"hardware sensors for temperature" +,sysstat,"system stats including iostat" +,playerctl,"media player controller for statusbar" +,upower,"battery and power device info" +,acpi,"battery status utility" +# +# IDEs/Editors +,neovim,"modern vim" +,zed,"AI-powered IDE" +A,claude-code-bin,"Anthropic AI CLI" +# +# Terminals +A,warp-terminal,"AI terminal" +# +# Browsers +A,librewolf-bin,"privacy-focused browser" +A,librewolf-extension-localcdn-bin,"CDN emulation extension" +A,librewolf-extension-istilldontcareaboutcookies-bin,"cookie banner remover" +A,librewolf-extension-tridactyl-bin,"vim bindings extension" +A,librewolf-extension-ublock-origin-bin,"ad blocker extension" +A,arkenfox-user.js,"browser hardening config" +,torbrowser-launcher,"Tor browser" +A,mullvad-browser-bin,"Mullvad privacy browser" +# +# Writing Software (Flatpak) +I,https://github.com/vkbo/novelWriter/releases/download/v2.8.2/novelwriter-2.8.2-x86_64.AppImage,"novel writing software" +F,com.notesnook.Notesnook,"encrypted note-taking" +# +# LaTeX - use post-install.sh for full texlive suite +# +# Tools +,git,"version control" +,github-cli,"GitHub CLI" +,openssh,"SSH client and server" +,mosh,"mobile shell with auto-reconnect" +,sshfs,"mount remote filesystems via SSH" +,docker,"containerization" +,docker-compose,"multi-container Docker" +A,lazygit,"terminal UI for git" +A,lazydocker,"terminal UI for docker" +,git-delta,"better git diff viewer" +A,aws-cli-v2,"AWS command line" +A,flarectl,"Cloudflare CLI" +,curl,"data transfer tool" +,httpie,"user-friendly HTTP client" +,zathura,"PDF viewer with vim bindings" +,zathura-pdf-mupdf,"mupdf backend for zathura" +,yt-dlp,"YouTube downloader" +# +# Media/Anime +A,ani-cli,"anime streaming CLI" +A,manga-tui,"terminal manga reader with image support" +A,hakuneko-desktop,"manga and anime downloader" +I,https://api.hayase.watch/files/linux-hayase-6.4.50-linux.AppImage,"anime streaming app" +# +# Misc Programs +A,speedtest-cli,"internet speed test" +A,wikiman,"offline wiki and man pages" +A,gphoto2,"DSLR camera control" +A,v4l2loopback-dkms,"virtual webcam for DSLR" +,bat,"cat with syntax highlighting" +A,python-pywal,"colorscheme generator" +# +# VPNs +A,mullvad-vpn-bin,"Mullvad VPN client" +,openvpn,"OpenVPN client" +# +# Security +A,protonmail-bridge,"Proton Mail bridge for email clients" +A,proton-pass,"Proton Authenticator" +,proxychains-ng,"proxy chaining" +,gnupg,"GPG encryption" +,pass,"password manager using GPG" +,sqlcipher,"encrypted SQLite" +A,clipnotify,"clipboard change notifications" +# +# Video/Graphics +,obs-studio,"screen recording and streaming" +#A,davinci-resolve,"video editor - use post-install.sh" +,gimp,"image editor" +,inkscape,"vector graphics editor" +F,org.kde.SymbolEditor,"symbol and icon editor" +,imagemagick,"image manipulation CLI" +,perl-image-exiftool,"read/write EXIF metadata" +,flameshot,"screenshot with annotation" +# +# Social +F,com.discordapp.Discord,"Discord client" +,element-desktop,"Matrix client" +A,catgirl,"terminal IRC client" +# +# Torrent +,rtorrent,"terminal torrent client" +,transmission-cli,"transmission daemon and CLI tools" +# +# Shell +,fish,"friendly interactive shell" +,starship,"cross-shell prompt" +,direnv,"per-directory environment" +,gum,"fluid terminal UI toolkit" +# +# Compilers/Languages +,gcc,"C and C++ compiler" +,clang,"LLVM C and C++ compiler" +,dotnet-sdk,".NET SDK" +,rustup,"Rust toolchain installer" +,python,"Python interpreter" +,python-pip,"Python package manager" +,jdk-openjdk,"Java JDK" +,scala,"Scala language" +,sbt,"Scala build tool" +,ghc,"Haskell compiler" +,cabal-install,"Haskell package manager" +,nodejs,"JavaScript runtime" +,npm,"Node package manager" +,go,"Go language" +,inetutils,"network utilities including hostname command" +A,cmatrix-git,"matrix terminal animation with transparency" +,conky,"System monitor for X and Wayland with Lua scripting" diff --git a/ksd-gentoo/deploy.sh b/ksd-gentoo/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..a5d3aa2f643c10bc71a6cbaeeb9a62a10691da67 --- /dev/null +++ b/ksd-gentoo/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# KSD - Kris's Simple Deploy for Gentoo +echo "Not yet implemented" +exit 1 diff --git a/ksd-gentoo/manual.tex b/ksd-gentoo/manual.tex new file mode 100644 index 0000000000000000000000000000000000000000..d3cc360bedde1441275044ecad333fccbf30f36a --- /dev/null +++ b/ksd-gentoo/manual.tex @@ -0,0 +1,26 @@ +\documentclass[12pt]{article} +\usepackage[margin=1in]{geometry} +\usepackage{hyperref} + +\title{KSD Gentoo Manual} +\author{Kris Yotam} +\date{\today} + +\begin{document} +\maketitle +\tableofcontents + +\section{Introduction} +This manual covers the KSD (Kris's Simple Deploy) script for Gentoo Linux. + +\section{Prerequisites} +\begin{itemize} + \item A fresh Gentoo installation + \item Internet connection + \item Root or sudo access +\end{itemize} + +\section{Usage} +TBD. + +\end{document} diff --git a/ksd-kali/deploy.sh b/ksd-kali/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..68ed3df0ad6d77eda0eaa21c36949437a603e5b7 --- /dev/null +++ b/ksd-kali/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# KSD - Kris's Simple Deploy for Kali Linux +echo "Not yet implemented" +exit 1 diff --git a/ksd-kali/manual.tex b/ksd-kali/manual.tex new file mode 100644 index 0000000000000000000000000000000000000000..3aeee900890731ed23dc8fdcc9c6efab4e80403b --- /dev/null +++ b/ksd-kali/manual.tex @@ -0,0 +1,26 @@ +\documentclass[12pt]{article} +\usepackage[margin=1in]{geometry} +\usepackage{hyperref} + +\title{KSD Kali Linux Manual} +\author{Kris Yotam} +\date{\today} + +\begin{document} +\maketitle +\tableofcontents + +\section{Introduction} +This manual covers the KSD (Kris's Simple Deploy) script for Kali Linux. + +\section{Prerequisites} +\begin{itemize} + \item A fresh Kali Linux installation + \item Internet connection + \item Root or sudo access +\end{itemize} + +\section{Usage} +TBD. + +\end{document} diff --git a/ksd-macos/deploy.sh b/ksd-macos/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..d6689e595ac49eecde5388a6ab69fde37cfed43e --- /dev/null +++ b/ksd-macos/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# KSD - Kris's Simple Deploy for macOS +echo "Not yet implemented" +exit 1 diff --git a/ksd-macos/manual.tex b/ksd-macos/manual.tex new file mode 100644 index 0000000000000000000000000000000000000000..dbb8431fe1e6766bb84567c9fc543df8781fff1b --- /dev/null +++ b/ksd-macos/manual.tex @@ -0,0 +1,26 @@ +\documentclass[12pt]{article} +\usepackage[margin=1in]{geometry} +\usepackage{hyperref} + +\title{KSD macOS Manual} +\author{Kris Yotam} +\date{\today} + +\begin{document} +\maketitle +\tableofcontents + +\section{Introduction} +This manual covers the KSD (Kris's Simple Deploy) script for macOS. + +\section{Prerequisites} +\begin{itemize} + \item A fresh macOS installation + \item Internet connection + \item Administrator access +\end{itemize} + +\section{Usage} +TBD. + +\end{document} diff --git a/ksd-ubuntu/deploy.sh b/ksd-ubuntu/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..fa26df5d1ed9c28c9b3e37febc41e8329fa021db --- /dev/null +++ b/ksd-ubuntu/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# KSD - Kris's Simple Deploy for Ubuntu +echo "Not yet implemented" +exit 1 diff --git a/ksd-ubuntu/manual.tex b/ksd-ubuntu/manual.tex new file mode 100644 index 0000000000000000000000000000000000000000..909ea81f91facb65f111315385fdfc4c005130f2 --- /dev/null +++ b/ksd-ubuntu/manual.tex @@ -0,0 +1,26 @@ +\documentclass[12pt]{article} +\usepackage[margin=1in]{geometry} +\usepackage{hyperref} + +\title{KSD Ubuntu Manual} +\author{Kris Yotam} +\date{\today} + +\begin{document} +\maketitle +\tableofcontents + +\section{Introduction} +This manual covers the KSD (Kris's Simple Deploy) script for Ubuntu. + +\section{Prerequisites} +\begin{itemize} + \item A fresh Ubuntu installation + \item Internet connection + \item Root or sudo access +\end{itemize} + +\section{Usage} +TBD. + +\end{document} diff --git a/ksd-win11/deploy.sh b/ksd-win11/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..1d48f9ee4498e5408a82cbb504d74c15e0990876 --- /dev/null +++ b/ksd-win11/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# KSD - Kris's Simple Deploy for Windows 11 +echo "Not yet implemented" +exit 1 diff --git a/ksd-win11/manual.tex b/ksd-win11/manual.tex new file mode 100644 index 0000000000000000000000000000000000000000..6e56961debfd0b98578eefb879ef50937d5c589f --- /dev/null +++ b/ksd-win11/manual.tex @@ -0,0 +1,27 @@ +\documentclass[12pt]{article} +\usepackage[margin=1in]{geometry} +\usepackage{hyperref} + +\title{KSD Windows 11 Manual} +\author{Kris Yotam} +\date{\today} + +\begin{document} +\maketitle +\tableofcontents + +\section{Introduction} +This manual covers the KSD (Kris's Simple Deploy) script for Windows 11 with WSL. + +\section{Prerequisites} +\begin{itemize} + \item A fresh Windows 11 installation + \item WSL enabled + \item Internet connection + \item Administrator access +\end{itemize} + +\section{Usage} +TBD. + +\end{document}