From e7454e12227d0234eb4022ea2f004c1e3001c169 Mon Sep 17 00:00:00 2001 From: <> Date: Wed, 7 Aug 2024 21:43:56 +0000 Subject: [PATCH] Deployed 8e0b6ad with MkDocs version: 1.4.3 --- .nojekyll | 0 404.html | 356 + CHANGELOG/index.html | 693 ++ CNAME | 1 + LICENSE/index.html | 406 + Terminal Profiles/Basic (Modified).terminal | 900 +++ .../gnome-terminal-profiles.dconf | 30 + assets/images/favicon.png | Bin 0 -> 1870 bytes assets/javascripts/bundle.b425cdc4.min.js | 29 + assets/javascripts/bundle.b425cdc4.min.js.map | 8 + assets/javascripts/lunr/min/lunr.ar.min.js | 1 + assets/javascripts/lunr/min/lunr.da.min.js | 18 + assets/javascripts/lunr/min/lunr.de.min.js | 18 + assets/javascripts/lunr/min/lunr.du.min.js | 18 + assets/javascripts/lunr/min/lunr.es.min.js | 18 + assets/javascripts/lunr/min/lunr.fi.min.js | 18 + assets/javascripts/lunr/min/lunr.fr.min.js | 18 + assets/javascripts/lunr/min/lunr.hi.min.js | 1 + assets/javascripts/lunr/min/lunr.hu.min.js | 18 + assets/javascripts/lunr/min/lunr.hy.min.js | 1 + assets/javascripts/lunr/min/lunr.it.min.js | 18 + assets/javascripts/lunr/min/lunr.ja.min.js | 1 + assets/javascripts/lunr/min/lunr.jp.min.js | 1 + assets/javascripts/lunr/min/lunr.kn.min.js | 1 + assets/javascripts/lunr/min/lunr.ko.min.js | 1 + assets/javascripts/lunr/min/lunr.multi.min.js | 1 + assets/javascripts/lunr/min/lunr.nl.min.js | 18 + assets/javascripts/lunr/min/lunr.no.min.js | 18 + assets/javascripts/lunr/min/lunr.pt.min.js | 18 + assets/javascripts/lunr/min/lunr.ro.min.js | 18 + assets/javascripts/lunr/min/lunr.ru.min.js | 18 + assets/javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/min/lunr.sv.min.js | 18 + assets/javascripts/lunr/min/lunr.ta.min.js | 1 + assets/javascripts/lunr/min/lunr.te.min.js | 1 + assets/javascripts/lunr/min/lunr.th.min.js | 1 + assets/javascripts/lunr/min/lunr.tr.min.js | 18 + assets/javascripts/lunr/min/lunr.vi.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 1 + assets/javascripts/lunr/tinyseg.js | 206 + assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.208ed371.min.js | 42 + .../workers/search.208ed371.min.js.map | 8 + assets/stylesheets/main.26e3688c.min.css | 1 + assets/stylesheets/main.26e3688c.min.css.map | 1 + assets/stylesheets/palette.ecc896b0.min.css | 1 + .../stylesheets/palette.ecc896b0.min.css.map | 1 + includes/csv/cli-colors-explained.csv | 12 + includes/csv/neovim-plugin-info.csv | 9 + includes/csv/oh-my-zsh-plugins.csv | 7 + includes/csv/useful-packages-npm.csv | 35 + includes/csv/useful-packages-tppm.csv | 45 + .../neovim-init-non-vim-plug.vim | 21 + .../neovim-init-vim-plug.vim | 105 + includes/zshrc-files/zshrc-linux-snippet.zsh | 67 + includes/zshrc-files/zshrc-linux.zsh | 173 + includes/zshrc-files/zshrc-macos-snippet.zsh | 79 + includes/zshrc-files/zshrc-macos.zsh | 214 + index.html | 2891 +++++++ search/search_index.json | 1 + sitemap.xml | 3 + sitemap.xml.gz | Bin 0 -> 127 bytes stylesheets/extra.css | 3 + 64 files changed, 13341 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 CHANGELOG/index.html create mode 100644 CNAME create mode 100644 LICENSE/index.html create mode 100644 Terminal Profiles/Basic (Modified).terminal create mode 100644 Terminal Profiles/gnome-terminal-profiles.dconf create mode 100644 assets/images/favicon.png create mode 100644 assets/javascripts/bundle.b425cdc4.min.js create mode 100644 assets/javascripts/bundle.b425cdc4.min.js.map create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 assets/javascripts/lunr/tinyseg.js create mode 100644 assets/javascripts/lunr/wordcut.js create mode 100644 assets/javascripts/workers/search.208ed371.min.js create mode 100644 assets/javascripts/workers/search.208ed371.min.js.map create mode 100644 assets/stylesheets/main.26e3688c.min.css create mode 100644 assets/stylesheets/main.26e3688c.min.css.map create mode 100644 assets/stylesheets/palette.ecc896b0.min.css create mode 100644 assets/stylesheets/palette.ecc896b0.min.css.map create mode 100644 includes/csv/cli-colors-explained.csv create mode 100644 includes/csv/neovim-plugin-info.csv create mode 100644 includes/csv/oh-my-zsh-plugins.csv create mode 100644 includes/csv/useful-packages-npm.csv create mode 100644 includes/csv/useful-packages-tppm.csv create mode 100644 includes/neovim-init-files/neovim-init-non-vim-plug.vim create mode 100644 includes/neovim-init-files/neovim-init-vim-plug.vim create mode 100644 includes/zshrc-files/zshrc-linux-snippet.zsh create mode 100644 includes/zshrc-files/zshrc-linux.zsh create mode 100644 includes/zshrc-files/zshrc-macos-snippet.zsh create mode 100644 includes/zshrc-files/zshrc-macos.zsh create mode 100644 index.html create mode 100644 search/search_index.json create mode 100644 sitemap.xml create mode 100644 sitemap.xml.gz create mode 100644 stylesheets/extra.css diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..6fff760 --- /dev/null +++ b/404.html @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + Customized Unix Terminal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/CHANGELOG/index.html b/CHANGELOG/index.html new file mode 100644 index 0000000..8aee172 --- /dev/null +++ b/CHANGELOG/index.html @@ -0,0 +1,693 @@ + + + + + + + + + + + + + + + + + + + + + + Changelog - Customized Unix Terminal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Changelog

+

All notable changes to this project will be documented in this file.

+

As a note, if the changelog only says "removed(program)", assume it's been removed from the entire readme. If it's only from a specific section, it'll be specified within the parentheses of the change.

+

2024.4.25

+
    +
  • added(programs): cheat
  • +
  • added(programs): fzf-tab
  • +
  • added(programs): eza
  • +
  • added(init.vim): mechatroner/rainbow_csv
  • +
  • added(zshrc): Updated and added new zstyle settings. They are now located in a section called "Zsh Style Configurations".
  • +
  • added(readme): Added a few new sections for future documentation.
  • +
  • changed(zshrc): Checks if fzf is installed before sourcing fzf-tab.
  • +
  • changed(zshrc): Removed azure autoload and source.
  • +
  • changed(readme): Add recommended method of installing fzf on Linux.
  • +
  • changed(aliases): Rename several aliases.
  • +
  • changed(aliases): Add new alias for eza.
  • +
  • removed(aliases): Removed lsd based aliases.
  • +
  • removed(zshrc): PATH variable updated.
  • +
+

2024.4.22

+

This update is a major overhaul and rewrite of the entire repository. Because of this, I will not be listing all of the changes, as it would be too much to list. However, I will list some of the major changes:

+
    +
  • changed(programs): Added and removed many programs. The programs better reflect what I consistently use and/or like to have on hand at any given time.
  • +
  • changed(vim => neovim): I've switched from using Vim to Neovim. All configurations and documentation referring to vim have been updated to reflect this change.
  • +
  • changed(init.vim): The main configuration file for Neovim has been updated to reflect the changes made to the programs and plugins.
  • +
  • changed(aliases): Updated and added new aliases.
  • +
  • changed(readme): Rewrote 90% of the documentation to improve wording, clarity, and overall readability. I've also added new sections and removed old ones that were no longer relevant.
  • +
  • changed(readme): Added a notice section to inform users to view the document on my website, to view it in its entirety.
  • +
+

2023.6.27

+
    +
  • added(vimrc): ntpeters/vim-better-whitespace.
  • +
  • added(vimrc): New file specific configurations.
  • +
  • changed(readme): Update url link of website status badge.
  • +
  • changed(readme/misc): Using new feature provided by updated dependencies/packages, I've removed many redundant files and replaced them with a single file that is used in multiple places. This should make maintaining this repository much easier.
  • +
+

2022.8.25

+
    +
  • added(zshrc): New aliases.
  • +
  • added(zshrc): git plugin.
  • +
  • added(vimrc): Add specific configurations for markdown and txt files.
  • +
  • changed(zshrc): Update existing aliases.
  • +
  • changed(zshrc): The contents of .zshrc no longer contain the ENTIRE contents of my .zshrc, rather just most of the general configurations. It was becoming too much of a pain to continuously document every little change.
  • +
  • changed(vimrc): Slight wording/formatting changes.
  • +
  • removed(zshrc): Unnecessary code.
  • +
  • removed(program): fd/fd-find
  • +
  • removed(program): git-quick-stats
  • +
+

2022.7.17

+
    +
  • added(vimrc): valloric/youcompleteme.
  • +
  • added(zshrc): New aliases.
  • +
  • added(readme): A link to the repository of the newly added vimrc plugin.
  • +
  • added(zshrc): Comments on the commands to download the zsh plugins.
  • +
  • changed(vimrc): Slight formatting change.
  • +
  • changed(zshrc): Modified plugins.
  • +
  • changed(zshrc): General refactoring.
  • +
  • changed(zshrc): A bunch of other small changes.
  • +
+

2022.5.26

+
    +
  • changed(zshrc): Removed some code in the linux zshrc files that I don't consider to be general configurations.
  • +
  • changed(vimrc): Add specific configurations for Markdown files.
  • +
  • changed(readme): Changed the website status badge.
  • +
+

2022.5.24

+
    +
  • added(zshrc): LS_COLORS, to match LSCOLORS...
  • +
  • added(vimrc): set colorcolumn=89.
  • +
  • added(profile): Terminal profile for the gnome terminal.
  • +
  • added(programs): fzf.
  • +
  • added(programs): zsh-completions.
  • +
  • added(programs): gallery-dl.
  • +
  • added(ohmyzsh-plugin): zsh-autosuggestions, removing the need to source it.
  • +
  • changed: Update information in section Modifying LSCOLORS (which is now Modifying CLI Colors) to include information about LS_COLORS.
  • +
  • changed: Update information, wording, and other things small throughout the document...
  • +
  • changed(vimrc): Now using vim-plug instead of Vundle. All information relating or referencing to Vundle, has been changed to vim-plug.
  • +
  • changed(zshrc): LSCOLOR is now set from exgxfxDxcxegDhabagacaD to exgxfxDxcxegDhabagacaD.
  • +
  • changed(zshrc): Created two separate versions of the linux zshrc file. One specific to desktop and the other to server.
  • +
  • changed(aliases): Update alias information.
  • +
  • removed(aliases): Unneeded aliases + alias content.
  • +
  • removed(program): bottom.
  • +
  • removed(program): hstr.
  • +
+

2022.3.1

+
    +
  • added(programs): comments to mkdocs.yml.
  • +
  • changed(mkdocs): Updated plugins, features, and extensions used via mkdocs.yml.
  • +
  • changed(mkdocs): Updated version number of all packages in mkdocs-requirements.txt.
  • +
  • changed(zshrc): Updated deprecated zsh plugin copydir to copypath.
  • +
  • changed(README): The section of the document displaying my .zshrc and .vimrc files, uses the code from the files in the insides folder.
  • +
+

2021.12.21

+
    +
  • added(programs): git-quick-stats.
  • +
  • added(programs): pyenv.
  • +
  • added(programs): ffmpeg.
  • +
  • added(programs): asciinema.
  • +
  • added(programs): m-cli.
  • +
  • added(programs): .tmux.
  • +
  • added(programs): tmux.
  • +
  • added(programs): imagemagick.
  • +
  • added(misc): a few other things that I can't remember.
  • +
  • changed: Updated the Custom Aliases section.
  • +
  • changed: Updated the My .zshrc section.
  • +
  • changed: Updated Terminal Profile.
  • +
  • removed(program): duti.
  • +
  • removed(program): jq.
  • +
  • removed(program): Homebrew Command Not Found.
  • +
  • removed(program): symboliclinker.
  • +
  • removed(program): tmux and wget and tree, as they are usually installed by default.
  • +
  • removed(program): gistome.
  • +
  • removed(program): git-extras.
  • +
  • removed(vimrc): davidhalter/jedi-vim.
  • +
  • removed(vimrc): tpope/vim-fugitive.
  • +
  • removed(program): edkolev/tmuxline.vim.
  • +
  • removed(program): pdfgrep.
  • +
  • removed(program): hub.
  • +
  • removed(program): cloc.
  • +
  • fixed(readme): Wording and grammar throughout README.md.
  • +
+

2021.6.5

+

This is the first "release" where all configurations and such have been completely added.

+ +
+
+ + + Last update: + August 7, 2024 + + + +
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..0ab96a9 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +cut.hthompson.dev diff --git a/LICENSE/index.html b/LICENSE/index.html new file mode 100644 index 0000000..fcb6ab8 --- /dev/null +++ b/LICENSE/index.html @@ -0,0 +1,406 @@ + + + + + + + + + + + + + + + + + + + + License - Customized Unix Terminal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

License

+ +

MIT License

+

Copyright © 2020-2024 Hunter T. (StrangeRanger)

+

Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.

+ +
+
+ + + Last update: + August 7, 2024 + + + +
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/Terminal Profiles/Basic (Modified).terminal b/Terminal Profiles/Basic (Modified).terminal new file mode 100644 index 0000000..d2a2297 --- /dev/null +++ b/Terminal Profiles/Basic (Modified).terminal @@ -0,0 +1,900 @@ + + + + + ANSIBlackColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO + U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzRjAgMCAwABACgALSFBUWF1okY2xhc3NuYW1l + WCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmplY3QIERokKTI3SUxRU1ddZGp3foWHiY6Z + oqqtAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAALY= + + ANSIBlueColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPEBIwIDAuMzY0NzA1ODgyNCAxIDFPECgwLjAxMzM0NzUxMDI1 + IDAuMjQ3ODEzNjU2OSAwLjk5ODI5Mzg3NjYAEAGAAoAF0xgZERobHFROU0lEVU5TSUND + EAeAA4AETxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BN + U0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAA + M2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdY + WVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQA + AANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQw + AAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29w + eXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAA + ABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVog + AAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA4 + 9QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAA + AAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93 + d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNw + YWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s + b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxS + ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAA + AAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwAD + XJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAA + AAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAj + ACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8A + pACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQEr + ATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB + 6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLV + AuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kE + BgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVn + BXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcH + GQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7 + CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyIL + OQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2p + DcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQ + fhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxOD + E6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW + +hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe + GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQe + vh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMK + IzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn + 3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizX + LQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioy + YzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgU + OFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+ + YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTO + RRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL + 4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MT + U19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa + 9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLw + Y0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09r + p2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRw + dMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+ + AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4ef + iASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiS + EZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJ + nPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n + 4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4 + s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/ + er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2 + zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY + 6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN + 5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0 + NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//9IfICEiWiRj + bGFzc25hbWVYJGNsYXNzZXNcTlNDb2xvclNwYWNloiMkXE5TQ29sb3JTcGFjZVhOU09i + amVjdNIfICYnV05TQ29sb3KiJiQACAARABoAJAApADIANwBJAEwAUQBTAFoAYABrAHgA + fgCLAKAApwC8AOcA6QDrAO0A9AD5AP8BAQEDAQUNUQ1WDWENag13DXoNhw2QDZUNnQAA + AAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAA2g + + ANSIBrightBlueColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPEBIwIDAuMzY0NzA1ODgyNCAxIDFPECgwLjAxMzM0NzUxMDI1 + IDAuMjQ3ODEzNjU2OSAwLjk5ODI5Mzg3NjYAEAGAAoAF0xgZERobHFROU0lEVU5TSUND + EAeAA4AETxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BN + U0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAA + M2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdY + WVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQA + AANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQw + AAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29w + eXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAA + ABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVog + AAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA4 + 9QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAA + AAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93 + d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNw + YWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s + b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxS + ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAA + AAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwAD + XJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAA + AAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAj + ACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8A + pACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQEr + ATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB + 6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLV + AuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kE + BgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVn + BXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcH + GQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7 + CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyIL + OQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2p + DcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQ + fhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxOD + E6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW + +hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe + GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQe + vh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMK + IzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn + 3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizX + LQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioy + YzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgU + OFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+ + YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTO + RRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL + 4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MT + U19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa + 9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLw + Y0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09r + p2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRw + dMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+ + AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4ef + iASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiS + EZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJ + nPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n + 4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4 + s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/ + er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2 + zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY + 6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN + 5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0 + NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//9IfICEiWiRj + bGFzc25hbWVYJGNsYXNzZXNcTlNDb2xvclNwYWNloiMkXE5TQ29sb3JTcGFjZVhOU09i + amVjdNIfICYnV05TQ29sb3KiJiQACAARABoAJAApADIANwBJAEwAUQBTAFoAYABrAHgA + fgCLAKAApwC8AOcA6QDrAO0A9AD5AP8BAQEDAQUNUQ1WDWENag13DXoNhw2QDZUNnQAA + AAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAA2g + + ANSIBrightCyanColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO + U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAcMCAwLjg5ODAzOTIxNTcgMC44OTgwMzky + MTU3ABACgALSFBUWF1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmpl + Y3QIERokKTI3SUxRU1ddZGp3fp2foaaxusLFAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAA + AAAAAAAAAM4= + + ANSIBrightGreenColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO + U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxARMCAwLjg1MDk4MDM5MjIgMAAQAoAC0hQV + FhdaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohYYWE5TT2JqZWN0CBEaJCkyN0lM + UVNXXWRqd36SlJabpq+3ugAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADD + + ANSIBrightMagentaColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO + U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAcMC44OTgwMzkyMTU3IDAgMC44OTgwMzky + MTU3ABACgALSFBUWF1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmpl + Y3QIERokKTI3SUxRU1ddZGp3fp2foaaxusLFAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAA + AAAAAAAAAM4= + + ANSIBrightRedColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPEBIwLjg5ODAzOTIxNTcgMCAwIDFPEBEwLjk2MzI1NzYxMDgg + MCAwABABgAKABdMYERkaGxxVTlNJQ0NZTlNTcGFjZUlEgAOABBAMTxECGAAAAhhhcHBs + BAAAAG1udHJSR0IgWFlaIAfmAAEAAQAAAAAAAGFjc3BBUFBMAAAAAEFQUEwAAAAAAAAA + AAAAAAAAAAAAAAD21gABAAAAANMtYXBwbOz9o444hUfDbbS9T3raGC8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAACmRlc2MAAAD8AAAAMGNwcnQAAAEsAAAAUHd0cHQA + AAF8AAAAFHJYWVoAAAGQAAAAFGdYWVoAAAGkAAAAFGJYWVoAAAG4AAAAFHJUUkMAAAHM + AAAAIGNoYWQAAAHsAAAALGJUUkMAAAHMAAAAIGdUUkMAAAHMAAAAIG1sdWMAAAAAAAAA + AQAAAAxlblVTAAAAFAAAABwARABpAHMAcABsAGEAeQAgAFAAM21sdWMAAAAAAAAAAQAA + AAxlblVTAAAANAAAABwAQwBvAHAAeQByAGkAZwBoAHQAIABBAHAAcABsAGUAIABJAG4A + YwAuACwAIAAyADAAMgAyWFlaIAAAAAAAAPbVAAEAAAAA0yxYWVogAAAAAAAAg98AAD2/ + ////u1hZWiAAAAAAAABKvwAAsTcAAAq5WFlaIAAAAAAAACg4AAARCwAAyLlwYXJhAAAA + AAADAAAAAmZmAADypwAADVkAABPQAAAKW3NmMzIAAAAAAAEMQgAABd7///MmAAAHkwAA + /ZD///ui///9owAAA9wAAMBu0h8gISJaJGNsYXNzbmFtZVgkY2xhc3Nlc1xOU0NvbG9y + U3BhY2WiIyRcTlNDb2xvclNwYWNlWE5TT2JqZWN00h8gJidXTlNDb2xvcqImJAAIABEA + GgAkACkAMgA3AEkATABRAFMAWgBgAGsAeAB+AIsAoACnALwA0ADSANQA1gDdAOMA7QDv + APEA8wMPAxQDHwMoAzUDOANFA04DUwNbAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAA + AAAAA14= + + ANSIBrightWhiteColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO + U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAnMC44OTgwMzkyMTU3IDAuODk4MDM5MjE1 + NyAwLjg5ODAzOTIxNTcAEAKAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xv + cqIWGFhOU09iamVjdAgRGiQpMjdJTFFTV11kand+qKqssbzFzdAAAAAAAAABAQAAAAAA + AAAZAAAAAAAAAAAAAAAAAAAA2Q== + + ANSIBrightYellowColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPECowLjg5NDExNzY0NzEgMC44OTAxOTYwNzg0IDAuMDA3ODQz + MTM3MjU1IDFPECcwLjg2OTM4MTU0NyAwLjg3OTg4MzQ2ODIgMC4wNDA0MzgzMDE4NgAQ + AYACgAXTGBkRGhscVE5TSURVTlNJQ0MQB4ADgARPEQxIAAAMSExpbm8CEAAAbW50clJH + QiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAA + APbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtw + dAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAA + AlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gA + AAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgM + YlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNr + YXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAA + AAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAA + AAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFla + IAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gA + AAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIu + MSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYx + OTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBp + biBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRp + b24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAA + AAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521l + YXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYA + AAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBo + AG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA + 6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGL + AZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0C + ZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNy + A34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYE + xATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZI + BlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsI + HwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQon + Cj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUM + jgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8l + D0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcS + JhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVW + FXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY + +hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzM + HPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAh + HCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWX + Jccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1Kmgq + myrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/H + L/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01 + hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtr + O6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB + 7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iR + SNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP + 3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dE + V5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9f + YV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeT + Z+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtw + hnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJ + eed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSD + V4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0x + jZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX + 4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKW + owajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1Erbiu + La6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnC + uju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjG + RsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB + 00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/g + NuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c + 7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8 + B/yY/Sn9uv5L/tz/bf//0h8gISJaJGNsYXNzbmFtZVgkY2xhc3Nlc1xOU0NvbG9yU3Bh + Y2WiIyRcTlNDb2xvclNwYWNlWE5TT2JqZWN00h8gJidXTlNDb2xvcqImJAAIABEAGgAk + ACkAMgA3AEkATABRAFMAWgBgAGsAeAB+AIsAoACnANQA/gEAAQIBBAELARABFgEYARoB + HA1oDW0NeA2BDY4NkQ2eDacNrA20AAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAA + Dbc= + + ANSICyanColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO + U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAcMCAwLjY1MDk4MDM5MjIgMC42OTgwMzky + MTU3ABACgALSFBUWF1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmpl + Y3QIERokKTI3SUxRU1ddZGp3fp2foaaxusLFAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAA + AAAAAAAAAM4= + + ANSIGreenColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPECgwLjMwMTk2MDc4NDMgMC42MTE3NjQ3MDU5IDAuMjY2NjY2 + NjY2NyAxTxAnMC4yNDgwMTk3ODQ3IDAuNTU1NDQzMTY3NyAwLjIwNjEwODM5MTMAEAGA + AoAF0xgZERobHFROU0lEVU5TSUNDEAeAA4AETxEMSAAADEhMaW5vAhAAAG1udHJSR0Ig + WFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD2 + 1gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQA + AAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJU + AAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAA + FG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJU + UkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2Fy + ZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA + EnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAA + AAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAA + AAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAA + AAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEg + RGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2 + Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAA + AAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g + SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9u + IGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAA + E6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFz + AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAA + AAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABt + AHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA + 8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGS + AZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcC + cQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+ + A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE + 0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZ + BmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8I + MghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9 + ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4M + pwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9B + D14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYS + RRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4 + FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZ + IBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1 + HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwh + SCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXH + JfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsq + zysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+ + MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1 + wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuq + O+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5C + MEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjX + SR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91Q + J1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS + V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ff + s2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fp + aD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw + 4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnn + ekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eD + uoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Y + jf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CY + TJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMG + o3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2u + oa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7 + urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbG + w8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE + 08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4Dbg + veFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o + 7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8 + mP0p/br+S/7c/23//9IfICEiWiRjbGFzc25hbWVYJGNsYXNzZXNcTlNDb2xvclNwYWNl + oiMkXE5TQ29sb3JTcGFjZVhOU09iamVjdNIfICYnV05TQ29sb3KiJiQACAARABoAJAAp + ADIANwBJAEwAUQBTAFoAYABrAHgAfgCLAKAApwDSAPwA/gEAAQIBCQEOARQBFgEYARoN + Zg1rDXYNfw2MDY8NnA2lDaoNsgAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAA21 + + ANSIMagentaColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO + U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAcMC42OTgwMzkyMTU3IDAgMC42OTgwMzky + MTU3ABACgALSFBUWF1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmpl + Y3QIERokKTI3SUxRU1ddZGp3fp2foaaxusLFAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAA + AAAAAAAAAM4= + + ANSIRedColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NJMC42IDAgMCAxTxARMC41ODQyMjkxMTE3IDAgMAAQAYACgAXT + GBEZGhscVU5TSUNDWU5TU3BhY2VJRIADgAQQDE8RAhgAAAIYYXBwbAQAAABtbnRyUkdC + IFhZWiAH5gABAAEAAAAAAABhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA + 9tYAAQAAAADTLWFwcGzs/aOOOIVHw220vU962hgvAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAApkZXNjAAAA/AAAADBjcHJ0AAABLAAAAFB3dHB0AAABfAAAABRyWFla + AAABkAAAABRnWFlaAAABpAAAABRiWFlaAAABuAAAABRyVFJDAAABzAAAACBjaGFkAAAB + 7AAAACxiVFJDAAABzAAAACBnVFJDAAABzAAAACBtbHVjAAAAAAAAAAEAAAAMZW5VUwAA + ABQAAAAcAEQAaQBzAHAAbABhAHkAIABQADNtbHVjAAAAAAAAAAEAAAAMZW5VUwAAADQA + AAAcAEMAbwBwAHkAcgBpAGcAaAB0ACAAQQBwAHAAbABlACAASQBuAGMALgAsACAAMgAw + ADIAMlhZWiAAAAAAAAD21QABAAAAANMsWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAA + AAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA + 8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMA + AAPcAADAbtIfICEiWiRjbGFzc25hbWVYJGNsYXNzZXNcTlNDb2xvclNwYWNloiMkXE5T + Q29sb3JTcGFjZVhOU09iamVjdNIfICYnV05TQ29sb3KiJiQACAARABoAJAApADIANwBJ + AEwAUQBTAFoAYABrAHgAfgCLAKAApwCxAMUAxwDJAMsA0gDYAOIA5ADmAOgDBAMJAxQD + HQMqAy0DOgNDA0gDUAAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAANT + + ANSIWhiteColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPECgwLjU1Njg2Mjc0NTEgMC41NTY4NjI3NDUxIDAuNTU2ODYy + NzQ1MSAxTxAnMC40ODM2NTQ2Nzc5IDAuNDgzNjU0NjQ4MSAwLjQ4MzY1NDY0ODEAEAGA + AoAF0xgZERobHFROU0lEVU5TSUNDEAeAA4AETxEMSAAADEhMaW5vAhAAAG1udHJSR0Ig + WFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD2 + 1gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQA + AAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJU + AAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAA + FG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJU + UkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2Fy + ZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA + EnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAA + AAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAA + AAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAA + AAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEg + RGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2 + Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAA + AAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g + SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9u + IGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAA + E6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFz + AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAA + AAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABt + AHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA + 8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGS + AZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcC + cQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+ + A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE + 0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZ + BmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8I + MghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9 + ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4M + pwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9B + D14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYS + RRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4 + FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZ + IBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1 + HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwh + SCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXH + JfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsq + zysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+ + MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1 + wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuq + O+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5C + MEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjX + SR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91Q + J1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS + V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ff + s2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fp + aD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw + 4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnn + ekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eD + uoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Y + jf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CY + TJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMG + o3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2u + oa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7 + urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbG + w8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE + 08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4Dbg + veFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o + 7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8 + mP0p/br+S/7c/23//9IfICEiWiRjbGFzc25hbWVYJGNsYXNzZXNcTlNDb2xvclNwYWNl + oiMkXE5TQ29sb3JTcGFjZVhOU09iamVjdNIfICYnV05TQ29sb3KiJiQACAARABoAJAAp + ADIANwBJAEwAUQBTAFoAYABrAHgAfgCLAKAApwDSAPwA/gEAAQIBCQEOARQBFgEYARoN + Zg1rDXYNfw2MDY8NnA2lDaoNsgAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAA21 + + ANSIYellowColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPECowLjY5MDE5NjA3ODQgMC42OTAxOTYwNzg0IDAuMDAzOTIx + NTY4NjI3IDFPECYwLjYyOTgwOTkxNiAwLjY0MDkyMDM0MSAwLjAyNzM0MTU0NDYzABAB + gAKABdMYGREaGxxUTlNJRFVOU0lDQxAHgAOABE8RDEgAAAxITGlubwIQAABtbnRyUkdC + IFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA + 9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0 + AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAAC + VAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAA + ABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxi + VFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2th + cmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA + ABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAA + AAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVog + AAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAA + AAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4x + IERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5 + NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGlu + IElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlv + biBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAA + ABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVh + cwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAA + AAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgA + bQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDr + APAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsB + kgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJn + AnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3ID + fgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTE + BNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgG + WQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgf + CDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicK + PQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyO + DKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUP + QQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxIm + EkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYV + eBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6 + GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc + 9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc + IUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZcl + xyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqb + Ks8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv + /jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWH + NcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7 + qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHu + QjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI + 10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/d + UCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RX + klfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19h + X7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn + 6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CG + cOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl5 + 53pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INX + g7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGN + mI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfg + mEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopaj + BqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t + rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6 + O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZG + xsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHT + RNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A2 + 4L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7Zzu + KO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH + /Jj9Kf26/kv+3P9t///SHyAhIlokY2xhc3NuYW1lWCRjbGFzc2VzXE5TQ29sb3JTcGFj + ZaIjJFxOU0NvbG9yU3BhY2VYTlNPYmplY3TSHyAmJ1dOU0NvbG9yoiYkAAgAEQAaACQA + KQAyADcASQBMAFEAUwBaAGAAawB4AH4AiwCgAKcA1AD9AP8BAQEDAQoBDwEVARcBGQEb + DWcNbA13DYANjQ2QDZ0Npg2rDbMAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAAN + tg== + + BackgroundBlur + 1 + BackgroundColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPECgwLjExNzY0NzA1ODggMC4xMTc2NDcwNTg4IDAuMTE3NjQ3 + MDU4OCAxTxAqMC4wODk1MTA4MjA4MSAwLjA4OTUxMDgyMDgxIDAuMDg5NTEwODIwODEA + EAGAAoAF0xgRGRobHFVOU0lDQ1lOU1NwYWNlSUSAA4AEEAxPEQIYAAACGGFwcGwEAAAA + bW50clJHQiBYWVogB+YAAQABAAAAAAAAYWNzcEFQUEwAAAAAQVBQTAAAAAAAAAAAAAAA + AAAAAAAAAPbWAAEAAAAA0y1hcHBs7P2jjjiFR8NttL1PetoYLwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAKZGVzYwAAAPwAAAAwY3BydAAAASwAAABQd3RwdAAAAXwA + AAAUclhZWgAAAZAAAAAUZ1hZWgAAAaQAAAAUYlhZWgAAAbgAAAAUclRSQwAAAcwAAAAg + Y2hhZAAAAewAAAAsYlRSQwAAAcwAAAAgZ1RSQwAAAcwAAAAgbWx1YwAAAAAAAAABAAAA + DGVuVVMAAAAUAAAAHABEAGkAcwBwAGwAYQB5ACAAUAAzbWx1YwAAAAAAAAABAAAADGVu + VVMAAAA0AAAAHABDAG8AcAB5AHIAaQBnAGgAdAAgAEEAcABwAGwAZQAgAEkAbgBjAC4A + LAAgADIAMAAyADJYWVogAAAAAAAA9tUAAQAAAADTLFhZWiAAAAAAAACD3wAAPb////+7 + WFlaIAAAAAAAAEq/AACxNwAACrlYWVogAAAAAAAAKDgAABELAADIuXBhcmEAAAAAAAMA + AAACZmYAAPKnAAANWQAAE9AAAApbc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeTAAD9kP// + +6L///2jAAAD3AAAwG7SHyAhIlokY2xhc3NuYW1lWCRjbGFzc2VzXE5TQ29sb3JTcGFj + ZaIjJFxOU0NvbG9yU3BhY2VYTlNPYmplY3TSHyAmJ1dOU0NvbG9yoiYkAAgAEQAaACQA + KQAyADcASQBMAFEAUwBaAGAAawB4AH4AiwCgAKcA0gD/AQEBAwEFAQwBEgEcAR4BIAEi + Az4DQwNOA1cDZANnA3QDfQOCA4oAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAAD + jQ== + + BackgroundSettingsForInactiveWindows + + BellBounceCritical + + BlinkText + + BookmarkRestorations + + CursorBlink + + CursorColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO + U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAnMC41NDUwOTgwMzkyIDAuNTQ1MDk4MDM5 + MiAwLjU0NTA5ODAzOTIAEAGAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xv + cqIWGFhOU09iamVjdAgRGiQpMjdJTFFTV11kand+qKqssbzFzdAAAAAAAAABAQAAAAAA + AAAZAAAAAAAAAAAAAAAAAAAA2Q== + + CursorType + 0 + DisableANSIColor + + Font + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGkCwwVFlUkbnVsbNQNDg8QERIT + FFZOU1NpemVYTlNmRmxhZ3NWTlNOYW1lViRjbGFzcyNAKAAAAAAAABAQgAKAA18QE01l + c2xvTEdTLU5GLVJlZ3VsYXLSFxgZGlokY2xhc3NuYW1lWCRjbGFzc2VzVk5TRm9udKIZ + G1hOU09iamVjdAgRGiQpMjdJTFFTWF5nbnd+hY6QkpSqr7rDys0AAAAAAAABAQAAAAAA + AAAcAAAAAAAAAAAAAAAAAAAA1g== + + FontAntialias + + FontHeightSpacing + 1 + FontWidthSpacing + 1.0502172459893049 + ProfileCurrentVersion + 2.0699999999999998 + SelectionColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPECcwLjIzMTM3MjU0OSAwLjI5NDExNzY0NzEgMC4zMDE5NjA3 + ODQzIDFPECcwLjE3NzIyNDkzNDEgMC4yMjk2MTI5NjE0IDAuMjM1NjcwMDAwMwAQAYAC + gAXTGBkRGhscVE5TSURVTlNJQ0MQB4ADgARPEQxIAAAMSExpbm8CEAAAbW50clJHQiBY + WVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbW + AAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAA + AgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQA + AABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAU + bWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRS + QwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJk + IENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAS + c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAA + AAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAA + AAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA + AAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBE + ZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2 + LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJ + RUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24g + aW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAAT + pP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMA + AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAA + AAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0A + cgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDw + APYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIB + mgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJx + AnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34D + igOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATT + BOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkG + agZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgy + CEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0K + VApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgyn + DMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EP + Xg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJF + EmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgV + mxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg + GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUd + Hh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFI + IXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl + 9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrP + KwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4w + NTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXC + Nf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o7 + 6DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIw + QnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJ + HUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAn + UHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX + 4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+z + YAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+lo + P2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDg + cTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6 + RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6 + hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN + /45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhM + mLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowaj + dqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6h + rxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6 + tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbD + x0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TT + xtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC9 + 4UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7iju + tO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY + /Sn9uv5L/tz/bf//0h8gISJaJGNsYXNzbmFtZVgkY2xhc3Nlc1xOU0NvbG9yU3BhY2Wi + IyRcTlNDb2xvclNwYWNlWE5TT2JqZWN00h8gJidXTlNDb2xvcqImJAAIABEAGgAkACkA + MgA3AEkATABRAFMAWgBgAGsAeAB+AIsAoACnANEA+wD9AP8BAQEIAQ0BEwEVARcBGQ1l + DWoNdQ1+DYsNjg2bDaQNqQ2xAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAADbQ= + + ShowActiveProcessArgumentsInTabTitle + + ShowActiveProcessArgumentsInTitle + + ShowActiveProcessInTabTitle + + ShowActiveProcessInTitle + + ShowActivityIndicatorInTab + + ShowCommandKeyInTitle + + ShowComponentsWhenTabHasCustomTitle + + ShowDimensionsInTitle + + ShowRepresentedURLInTabTitle + + ShowRepresentedURLInTitle + + ShowRepresentedURLPathInTabTitle + + ShowRepresentedURLPathInTitle + + ShowShellCommandInTitle + + ShowTTYNameInTabTitle + + ShowTTYNameInTitle + + ShowTerminalInDockIcon + + ShowWindowSettingsNameInTitle + + TerminalType + xterm-256color + TextBoldColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPECgwLjg4NjI3NDUwOTggMC44ODYyNzQ1MDk4IDAuODg2Mjc0 + NTA5OCAxTxAlMC44NTg5MTgxOSAwLjg1ODkxODEzMDQgMC44NTg5MTgxMzA0ABABgAKA + BdMYGREaGxxUTlNJRFVOU0lDQxAHgAOABE8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZ + WiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYA + AQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAAC + BAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAA + AHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRt + ZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJD + AAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQg + Q29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAA + AAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAA + AAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAA + AAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERl + ZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYt + Mi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElF + QzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBp + biBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk + /gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAA + AAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQBy + AHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA + 9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGa + AaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnEC + egKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOK + A5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME + 4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZq + BnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDII + RghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpU + CmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcM + wAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9e + D3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUS + ZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWb + Fb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZ + RRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0e + HUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUgh + dSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 + JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8r + Ais2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1 + MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1 + /TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvo + PCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBC + ckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kd + SWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQ + cVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfg + WC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7Ng + BWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/ + aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBx + OnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pG + eqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qE + HYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/ + jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyY + uJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2 + o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGv + Fq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1 + uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPH + Qce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG + 1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3h + ROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO60 + 70DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9 + Kf26/kv+3P9t///SHyAhIlokY2xhc3NuYW1lWCRjbGFzc2VzXE5TQ29sb3JTcGFjZaIj + JFxOU0NvbG9yU3BhY2VYTlNPYmplY3TSHyAmJ1dOU0NvbG9yoiYkAAgAEQAaACQAKQAy + ADcASQBMAFEAUwBaAGAAawB4AH4AiwCgAKcA0gD6APwA/gEAAQcBDAESARQBFgEYDWQN + aQ10DX0Nig2NDZoNow2oDbAAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAANsw== + + TextColor + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR + EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s + b3JTcGFjZVYkY2xhc3NPECgwLjg4NjI3NDUwOTggMC44ODYyNzQ1MDk4IDAuODg2Mjc0 + NTA5OCAxTxAlMC44NTg5MTgxOSAwLjg1ODkxODEzMDQgMC44NTg5MTgxMzA0ABABgAKA + BdMYGREaGxxUTlNJRFVOU0lDQxAHgAOABE8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZ + WiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYA + AQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAAC + BAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAA + AHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRt + ZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJD + AAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQg + Q29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAA + AAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAA + AAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAA + AAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERl + ZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYt + Mi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElF + QzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBp + biBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk + /gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAA + AAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQBy + AHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA + 9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGa + AaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnEC + egKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOK + A5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME + 4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZq + BnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDII + RghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpU + CmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcM + wAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9e + D3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUS + ZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWb + Fb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZ + RRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0e + HUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUgh + dSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 + JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8r + Ais2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1 + MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1 + /TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvo + PCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBC + ckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kd + SWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQ + cVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfg + WC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7Ng + BWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/ + aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBx + OnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pG + eqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qE + HYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/ + jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyY + uJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2 + o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGv + Fq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1 + uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPH + Qce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG + 1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3h + ROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO60 + 70DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9 + Kf26/kv+3P9t///SHyAhIlokY2xhc3NuYW1lWCRjbGFzc2VzXE5TQ29sb3JTcGFjZaIj + JFxOU0NvbG9yU3BhY2VYTlNPYmplY3TSHyAmJ1dOU0NvbG9yoiYkAAgAEQAaACQAKQAy + ADcASQBMAFEAUwBaAGAAawB4AH4AiwCgAKcA0gD6APwA/gEAAQcBDAESARQBFgEYDWQN + aQ10DX0Nig2NDZoNow2oDbAAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAANsw== + + UseBoldFonts + + UseBrightBold + + WindowTitle + Terminal + columnCount + 89 + fontAllowsDisableAntialias + 0 + name + Personal + rowCount + 25 + shellExitAction + 1 + type + Window Settings + + diff --git a/Terminal Profiles/gnome-terminal-profiles.dconf b/Terminal Profiles/gnome-terminal-profiles.dconf new file mode 100644 index 0000000..388d995 --- /dev/null +++ b/Terminal Profiles/gnome-terminal-profiles.dconf @@ -0,0 +1,30 @@ +[/] +default='c7f0a3e3-6ee8-4e3d-9b90-ba00331f2c9c' +list=['b1dcc9dd-5262-4d8d-a863-c897e6d979b9', 'c7f0a3e3-6ee8-4e3d-9b90-ba00331f2c9c'] + +[:b1dcc9dd-5262-4d8d-a863-c897e6d979b9] +default-size-columns=80 +default-size-rows=24 +font='MesloLGS NF 12' +use-system-font=false + +[:c7f0a3e3-6ee8-4e3d-9b90-ba00331f2c9c] +audible-bell=true +background-color='rgb(30,30,30)' +bold-color='rgb(226,226,226)' +bold-color-same-as-fg=true +cursor-background-color='rgb(139,139,139)' +cursor-blink-mode='off' +cursor-colors-set=true +cursor-foreground-color='rgb(139,139,139)' +default-size-columns=89 +default-size-rows=25 +font='MesloLGS NF 12' +foreground-color='rgb(226,226,226)' +highlight-background-color='rgb(59,75,77)' +highlight-colors-set=true +highlight-foreground-color='rgb(255,255,255)' +palette=['rgb(0,0,0)', 'rgb(153,0,0)', 'rgb(77,156,68)', 'rgb(176,176,1)', 'rgb(0,93,255)', 'rgb(178,0,178)', 'rgb(0,166,178)', 'rgb(142,142,142)', 'rgb(102,102,102)', 'rgb(229,0,0)', 'rgb(0,217,0)', 'rgb(228,227,2)', 'rgb(0,143,255)', 'rgb(229,0,229)', 'rgb(0,229,229)', 'rgb(229,229,229)'] +use-system-font=false +use-theme-colors=false +visible-name='Personal' diff --git a/assets/images/favicon.png b/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/assets/javascripts/bundle.b425cdc4.min.js b/assets/javascripts/bundle.b425cdc4.min.js new file mode 100644 index 0000000..201e523 --- /dev/null +++ b/assets/javascripts/bundle.b425cdc4.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var Ci=Object.create;var gr=Object.defineProperty;var Ri=Object.getOwnPropertyDescriptor;var ki=Object.getOwnPropertyNames,Ht=Object.getOwnPropertySymbols,Hi=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable;var rn=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))yr.call(t,r)&&rn(e,r,t[r]);if(Ht)for(var r of Ht(t))nn.call(t,r)&&rn(e,r,t[r]);return e};var on=(e,t)=>{var r={};for(var n in e)yr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Ht)for(var n of Ht(e))t.indexOf(n)<0&&nn.call(e,n)&&(r[n]=e[n]);return r};var Pt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Pi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ki(t))!yr.call(e,o)&&o!==r&&gr(e,o,{get:()=>t[o],enumerable:!(n=Ri(t,o))||n.enumerable});return e};var yt=(e,t,r)=>(r=e!=null?Ci(Hi(e)):{},Pi(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var sn=Pt((xr,an)=>{(function(e,t){typeof xr=="object"&&typeof an!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(xr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(O){return!!(O&&O!==document&&O.nodeName!=="HTML"&&O.nodeName!=="BODY"&&"classList"in O&&"contains"in O.classList)}function f(O){var Qe=O.type,De=O.tagName;return!!(De==="INPUT"&&s[Qe]&&!O.readOnly||De==="TEXTAREA"&&!O.readOnly||O.isContentEditable)}function c(O){O.classList.contains("focus-visible")||(O.classList.add("focus-visible"),O.setAttribute("data-focus-visible-added",""))}function u(O){O.hasAttribute("data-focus-visible-added")&&(O.classList.remove("focus-visible"),O.removeAttribute("data-focus-visible-added"))}function p(O){O.metaKey||O.altKey||O.ctrlKey||(a(r.activeElement)&&c(r.activeElement),n=!0)}function m(O){n=!1}function d(O){a(O.target)&&(n||f(O.target))&&c(O.target)}function h(O){a(O.target)&&(O.target.classList.contains("focus-visible")||O.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),u(O.target))}function v(O){document.visibilityState==="hidden"&&(o&&(n=!0),Y())}function Y(){document.addEventListener("mousemove",N),document.addEventListener("mousedown",N),document.addEventListener("mouseup",N),document.addEventListener("pointermove",N),document.addEventListener("pointerdown",N),document.addEventListener("pointerup",N),document.addEventListener("touchmove",N),document.addEventListener("touchstart",N),document.addEventListener("touchend",N)}function B(){document.removeEventListener("mousemove",N),document.removeEventListener("mousedown",N),document.removeEventListener("mouseup",N),document.removeEventListener("pointermove",N),document.removeEventListener("pointerdown",N),document.removeEventListener("pointerup",N),document.removeEventListener("touchmove",N),document.removeEventListener("touchstart",N),document.removeEventListener("touchend",N)}function N(O){O.target.nodeName&&O.target.nodeName.toLowerCase()==="html"||(n=!1,B())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",m,!0),document.addEventListener("pointerdown",m,!0),document.addEventListener("touchstart",m,!0),document.addEventListener("visibilitychange",v,!0),Y(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var cn=Pt(Er=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(c){return!1}},r=t(),n=function(c){var u={next:function(){var p=c.shift();return{done:p===void 0,value:p}}};return r&&(u[Symbol.iterator]=function(){return u}),u},o=function(c){return encodeURIComponent(c).replace(/%20/g,"+")},i=function(c){return decodeURIComponent(String(c).replace(/\+/g," "))},s=function(){var c=function(p){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var m=typeof p;if(m!=="undefined")if(m==="string")p!==""&&this._fromString(p);else if(p instanceof c){var d=this;p.forEach(function(B,N){d.append(N,B)})}else if(p!==null&&m==="object")if(Object.prototype.toString.call(p)==="[object Array]")for(var h=0;hd[0]?1:0}),c._entries&&(c._entries={});for(var p=0;p1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(f,c){typeof f!="string"&&(f=String(f)),c&&typeof c!="string"&&(c=String(c));var u=document,p;if(c&&(e.location===void 0||c!==e.location.href)){c=c.toLowerCase(),u=document.implementation.createHTMLDocument(""),p=u.createElement("base"),p.href=c,u.head.appendChild(p);try{if(p.href.indexOf(c)!==0)throw new Error(p.href)}catch(O){throw new Error("URL unable to set base "+c+" due to "+O)}}var m=u.createElement("a");m.href=f,p&&(u.body.appendChild(m),m.href=m.href);var d=u.createElement("input");if(d.type="url",d.value=f,m.protocol===":"||!/:/.test(m.href)||!d.checkValidity()&&!c)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:m});var h=new e.URLSearchParams(this.search),v=!0,Y=!0,B=this;["append","delete","set"].forEach(function(O){var Qe=h[O];h[O]=function(){Qe.apply(h,arguments),v&&(Y=!1,B.search=h.toString(),Y=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var N=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==N&&(N=this.search,Y&&(v=!1,this.searchParams._fromString(this.search),v=!0))}})},s=i.prototype,a=function(f){Object.defineProperty(s,f,{get:function(){return this._anchorElement[f]},set:function(c){this._anchorElement[f]=c},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(f){a(f)}),Object.defineProperty(s,"search",{get:function(){return this._anchorElement.search},set:function(f){this._anchorElement.search=f,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(s,{toString:{get:function(){var f=this;return function(){return f.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(f){this._anchorElement.href=f,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(f){this._anchorElement.pathname=f},enumerable:!0},origin:{get:function(){var f={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],c=this._anchorElement.port!=f&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(c?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(f){},enumerable:!0},username:{get:function(){return""},set:function(f){},enumerable:!0}}),i.createObjectURL=function(f){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(f){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er)});var qr=Pt((Mt,Nr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Mt=="object"&&typeof Nr=="object"?Nr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Mt=="object"?Mt.ClipboardJS=r():t.ClipboardJS=r()})(Mt,function(){return function(){var e={686:function(n,o,i){"use strict";i.d(o,{default:function(){return Ai}});var s=i(279),a=i.n(s),f=i(370),c=i.n(f),u=i(817),p=i.n(u);function m(j){try{return document.execCommand(j)}catch(T){return!1}}var d=function(T){var E=p()(T);return m("cut"),E},h=d;function v(j){var T=document.documentElement.getAttribute("dir")==="rtl",E=document.createElement("textarea");E.style.fontSize="12pt",E.style.border="0",E.style.padding="0",E.style.margin="0",E.style.position="absolute",E.style[T?"right":"left"]="-9999px";var H=window.pageYOffset||document.documentElement.scrollTop;return E.style.top="".concat(H,"px"),E.setAttribute("readonly",""),E.value=j,E}var Y=function(T,E){var H=v(T);E.container.appendChild(H);var I=p()(H);return m("copy"),H.remove(),I},B=function(T){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},H="";return typeof T=="string"?H=Y(T,E):T instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(T==null?void 0:T.type)?H=Y(T.value,E):(H=p()(T),m("copy")),H},N=B;function O(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O=function(E){return typeof E}:O=function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E},O(j)}var Qe=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},E=T.action,H=E===void 0?"copy":E,I=T.container,q=T.target,Me=T.text;if(H!=="copy"&&H!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(q!==void 0)if(q&&O(q)==="object"&&q.nodeType===1){if(H==="copy"&&q.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(H==="cut"&&(q.hasAttribute("readonly")||q.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Me)return N(Me,{container:I});if(q)return H==="cut"?h(q):N(q,{container:I})},De=Qe;function $e(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?$e=function(E){return typeof E}:$e=function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E},$e(j)}function Ei(j,T){if(!(j instanceof T))throw new TypeError("Cannot call a class as a function")}function tn(j,T){for(var E=0;E0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof I.action=="function"?I.action:this.defaultAction,this.target=typeof I.target=="function"?I.target:this.defaultTarget,this.text=typeof I.text=="function"?I.text:this.defaultText,this.container=$e(I.container)==="object"?I.container:document.body}},{key:"listenClick",value:function(I){var q=this;this.listener=c()(I,"click",function(Me){return q.onClick(Me)})}},{key:"onClick",value:function(I){var q=I.delegateTarget||I.currentTarget,Me=this.action(q)||"copy",kt=De({action:Me,container:this.container,target:this.target(q),text:this.text(q)});this.emit(kt?"success":"error",{action:Me,text:kt,trigger:q,clearSelection:function(){q&&q.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(I){return vr("action",I)}},{key:"defaultTarget",value:function(I){var q=vr("target",I);if(q)return document.querySelector(q)}},{key:"defaultText",value:function(I){return vr("text",I)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(I){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return N(I,q)}},{key:"cut",value:function(I){return h(I)}},{key:"isSupported",value:function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],q=typeof I=="string"?[I]:I,Me=!!document.queryCommandSupported;return q.forEach(function(kt){Me=Me&&!!document.queryCommandSupported(kt)}),Me}}]),E}(a()),Ai=Li},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,f){for(;a&&a.nodeType!==o;){if(typeof a.matches=="function"&&a.matches(f))return a;a=a.parentNode}}n.exports=s},438:function(n,o,i){var s=i(828);function a(u,p,m,d,h){var v=c.apply(this,arguments);return u.addEventListener(m,v,h),{destroy:function(){u.removeEventListener(m,v,h)}}}function f(u,p,m,d,h){return typeof u.addEventListener=="function"?a.apply(null,arguments):typeof m=="function"?a.bind(null,document).apply(null,arguments):(typeof u=="string"&&(u=document.querySelectorAll(u)),Array.prototype.map.call(u,function(v){return a(v,p,m,d,h)}))}function c(u,p,m,d){return function(h){h.delegateTarget=s(h.target,p),h.delegateTarget&&d.call(u,h)}}n.exports=f},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}},370:function(n,o,i){var s=i(879),a=i(438);function f(m,d,h){if(!m&&!d&&!h)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(h))throw new TypeError("Third argument must be a Function");if(s.node(m))return c(m,d,h);if(s.nodeList(m))return u(m,d,h);if(s.string(m))return p(m,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(m,d,h){return m.addEventListener(d,h),{destroy:function(){m.removeEventListener(d,h)}}}function u(m,d,h){return Array.prototype.forEach.call(m,function(v){v.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(m,function(v){v.removeEventListener(d,h)})}}}function p(m,d,h){return a(document.body,m,d,h)}n.exports=f},817:function(n){function o(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var f=window.getSelection(),c=document.createRange();c.selectNodeContents(i),f.removeAllRanges(),f.addRange(c),s=f.toString()}return s}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,s,a){var f=this.e||(this.e={});return(f[i]||(f[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var f=this;function c(){f.off(i,c),s.apply(a,arguments)}return c._=s,this.on(i,c,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),f=0,c=a.length;for(f;f{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var rs=/["'&<>]/;Yo.exports=ns;function ns(e){var t=""+e,r=rs.exec(t);if(!r)return t;var n,o="",i=0,s=0;for(i=r.index;i0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function W(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),o,i=[],s;try{for(;(t===void 0||t-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return i}function D(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,i;n1||a(m,d)})})}function a(m,d){try{f(n[m](d))}catch(h){p(i[0][3],h)}}function f(m){m.value instanceof et?Promise.resolve(m.value.v).then(c,u):p(i[0][2],m)}function c(m){a("next",m)}function u(m){a("throw",m)}function p(m,d){m(d),i.shift(),i.length&&a(i[0][0],i[0][1])}}function pn(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Ee=="function"?Ee(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[i]=e[i]&&function(s){return new Promise(function(a,f){s=e[i](s),o(a,f,s.done,s.value)})}}function o(i,s,a,f){Promise.resolve(f).then(function(c){i({value:c,done:a})},s)}}function C(e){return typeof e=="function"}function at(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var It=at(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(n,o){return o+1+") "+n.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Ve(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Ie=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,n,o,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=Ee(s),f=a.next();!f.done;f=a.next()){var c=f.value;c.remove(this)}}catch(v){t={error:v}}finally{try{f&&!f.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var u=this.initialTeardown;if(C(u))try{u()}catch(v){i=v instanceof It?v.errors:[v]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var m=Ee(p),d=m.next();!d.done;d=m.next()){var h=d.value;try{ln(h)}catch(v){i=i!=null?i:[],v instanceof It?i=D(D([],W(i)),W(v.errors)):i.push(v)}}}catch(v){n={error:v}}finally{try{d&&!d.done&&(o=m.return)&&o.call(m)}finally{if(n)throw n.error}}}if(i)throw new It(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)ln(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Ve(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Ve(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Sr=Ie.EMPTY;function jt(e){return e instanceof Ie||e&&"closed"in e&&C(e.remove)&&C(e.add)&&C(e.unsubscribe)}function ln(e){C(e)?e():e.unsubscribe()}var Le={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var st={setTimeout:function(e,t){for(var r=[],n=2;n0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,s=o.isStopped,a=o.observers;return i||s?Sr:(this.currentObservers=null,a.push(r),new Ie(function(){n.currentObservers=null,Ve(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,s=n.isStopped;o?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,n){return new xn(r,n)},t}(F);var xn=function(e){ie(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:Sr},t}(x);var Et={now:function(){return(Et.delegate||Date).now()},delegate:void 0};var wt=function(e){ie(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=Et);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,s=n._infiniteTimeWindow,a=n._timestampProvider,f=n._windowTime;o||(i.push(r),!s&&i.push(a.now()+f)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,s=o._buffer,a=s.slice(),f=0;f0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=ut.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){var i;if(o===void 0&&(o=0),o!=null?o>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);var s=r.actions;n!=null&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==n&&(ut.cancelAnimationFrame(n),r._scheduled=void 0)},t}(Wt);var Sn=function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(Dt);var Oe=new Sn(wn);var M=new F(function(e){return e.complete()});function Vt(e){return e&&C(e.schedule)}function Cr(e){return e[e.length-1]}function Ye(e){return C(Cr(e))?e.pop():void 0}function Te(e){return Vt(Cr(e))?e.pop():void 0}function zt(e,t){return typeof Cr(e)=="number"?e.pop():t}var pt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Nt(e){return C(e==null?void 0:e.then)}function qt(e){return C(e[ft])}function Kt(e){return Symbol.asyncIterator&&C(e==null?void 0:e[Symbol.asyncIterator])}function Qt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function zi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Yt=zi();function Gt(e){return C(e==null?void 0:e[Yt])}function Bt(e){return un(this,arguments,function(){var r,n,o,i;return $t(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,et(r.read())];case 3:return n=s.sent(),o=n.value,i=n.done,i?[4,et(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,et(o)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function Jt(e){return C(e==null?void 0:e.getReader)}function U(e){if(e instanceof F)return e;if(e!=null){if(qt(e))return Ni(e);if(pt(e))return qi(e);if(Nt(e))return Ki(e);if(Kt(e))return On(e);if(Gt(e))return Qi(e);if(Jt(e))return Yi(e)}throw Qt(e)}function Ni(e){return new F(function(t){var r=e[ft]();if(C(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function qi(e){return new F(function(t){for(var r=0;r=2;return function(n){return n.pipe(e?A(function(o,i){return e(o,i,n)}):de,ge(1),r?He(t):Dn(function(){return new Zt}))}}function Vn(){for(var e=[],t=0;t=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new x}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,f=a===void 0?!0:a;return function(c){var u,p,m,d=0,h=!1,v=!1,Y=function(){p==null||p.unsubscribe(),p=void 0},B=function(){Y(),u=m=void 0,h=v=!1},N=function(){var O=u;B(),O==null||O.unsubscribe()};return y(function(O,Qe){d++,!v&&!h&&Y();var De=m=m!=null?m:r();Qe.add(function(){d--,d===0&&!v&&!h&&(p=$r(N,f))}),De.subscribe(Qe),!u&&d>0&&(u=new rt({next:function($e){return De.next($e)},error:function($e){v=!0,Y(),p=$r(B,o,$e),De.error($e)},complete:function(){h=!0,Y(),p=$r(B,s),De.complete()}}),U(O).subscribe(u))})(c)}}function $r(e,t){for(var r=[],n=2;ne.next(document)),e}function K(e,t=document){return Array.from(t.querySelectorAll(e))}function z(e,t=document){let r=ce(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ce(e,t=document){return t.querySelector(e)||void 0}function _e(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function tr(e){return L(b(document.body,"focusin"),b(document.body,"focusout")).pipe(ke(1),l(()=>{let t=_e();return typeof t!="undefined"?e.contains(t):!1}),V(e===_e()),J())}function Xe(e){return{x:e.offsetLeft,y:e.offsetTop}}function Kn(e){return L(b(window,"load"),b(window,"resize")).pipe(Ce(0,Oe),l(()=>Xe(e)),V(Xe(e)))}function rr(e){return{x:e.scrollLeft,y:e.scrollTop}}function dt(e){return L(b(e,"scroll"),b(window,"resize")).pipe(Ce(0,Oe),l(()=>rr(e)),V(rr(e)))}var Yn=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!Wr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),va?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!Wr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=ba.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Gn=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),Jn=typeof WeakMap!="undefined"?new WeakMap:new Yn,Xn=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=ga.getInstance(),n=new La(t,r,this);Jn.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){Xn.prototype[e]=function(){var t;return(t=Jn.get(this))[e].apply(t,arguments)}});var Aa=function(){return typeof nr.ResizeObserver!="undefined"?nr.ResizeObserver:Xn}(),Zn=Aa;var eo=new x,Ca=$(()=>k(new Zn(e=>{for(let t of e)eo.next(t)}))).pipe(g(e=>L(ze,k(e)).pipe(R(()=>e.disconnect()))),X(1));function he(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ye(e){return Ca.pipe(S(t=>t.observe(e)),g(t=>eo.pipe(A(({target:r})=>r===e),R(()=>t.unobserve(e)),l(()=>he(e)))),V(he(e)))}function bt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function ar(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var to=new x,Ra=$(()=>k(new IntersectionObserver(e=>{for(let t of e)to.next(t)},{threshold:0}))).pipe(g(e=>L(ze,k(e)).pipe(R(()=>e.disconnect()))),X(1));function sr(e){return Ra.pipe(S(t=>t.observe(e)),g(t=>to.pipe(A(({target:r})=>r===e),R(()=>t.unobserve(e)),l(({isIntersecting:r})=>r))))}function ro(e,t=16){return dt(e).pipe(l(({y:r})=>{let n=he(e),o=bt(e);return r>=o.height-n.height-t}),J())}var cr={drawer:z("[data-md-toggle=drawer]"),search:z("[data-md-toggle=search]")};function no(e){return cr[e].checked}function Ke(e,t){cr[e].checked!==t&&cr[e].click()}function Ue(e){let t=cr[e];return b(t,"change").pipe(l(()=>t.checked),V(t.checked))}function ka(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ha(){return L(b(window,"compositionstart").pipe(l(()=>!0)),b(window,"compositionend").pipe(l(()=>!1))).pipe(V(!1))}function oo(){let e=b(window,"keydown").pipe(A(t=>!(t.metaKey||t.ctrlKey)),l(t=>({mode:no("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),A(({mode:t,type:r})=>{if(t==="global"){let n=_e();if(typeof n!="undefined")return!ka(n,r)}return!0}),pe());return Ha().pipe(g(t=>t?M:e))}function le(){return new URL(location.href)}function ot(e){location.href=e.href}function io(){return new x}function ao(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)ao(e,r)}function _(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)ao(n,o);return n}function fr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function so(){return location.hash.substring(1)}function Dr(e){let t=_("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Pa(e){return L(b(window,"hashchange"),e).pipe(l(so),V(so()),A(t=>t.length>0),X(1))}function co(e){return Pa(e).pipe(l(t=>ce(`[id="${t}"]`)),A(t=>typeof t!="undefined"))}function Vr(e){let t=matchMedia(e);return er(r=>t.addListener(()=>r(t.matches))).pipe(V(t.matches))}function fo(){let e=matchMedia("print");return L(b(window,"beforeprint").pipe(l(()=>!0)),b(window,"afterprint").pipe(l(()=>!1))).pipe(V(e.matches))}function zr(e,t){return e.pipe(g(r=>r?t():M))}function ur(e,t={credentials:"same-origin"}){return ue(fetch(`${e}`,t)).pipe(fe(()=>M),g(r=>r.status!==200?Ot(()=>new Error(r.statusText)):k(r)))}function We(e,t){return ur(e,t).pipe(g(r=>r.json()),X(1))}function uo(e,t){let r=new DOMParser;return ur(e,t).pipe(g(n=>n.text()),l(n=>r.parseFromString(n,"text/xml")),X(1))}function pr(e){let t=_("script",{src:e});return $(()=>(document.head.appendChild(t),L(b(t,"load"),b(t,"error").pipe(g(()=>Ot(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(l(()=>{}),R(()=>document.head.removeChild(t)),ge(1))))}function po(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function lo(){return L(b(window,"scroll",{passive:!0}),b(window,"resize",{passive:!0})).pipe(l(po),V(po()))}function mo(){return{width:innerWidth,height:innerHeight}}function ho(){return b(window,"resize",{passive:!0}).pipe(l(mo),V(mo()))}function bo(){return G([lo(),ho()]).pipe(l(([e,t])=>({offset:e,size:t})),X(1))}function lr(e,{viewport$:t,header$:r}){let n=t.pipe(ee("size")),o=G([n,r]).pipe(l(()=>Xe(e)));return G([r,t,o]).pipe(l(([{height:i},{offset:s,size:a},{x:f,y:c}])=>({offset:{x:s.x-f,y:s.y-c+i},size:a})))}(()=>{function e(n,o){parent.postMessage(n,o||"*")}function t(...n){return n.reduce((o,i)=>o.then(()=>new Promise(s=>{let a=document.createElement("script");a.src=i,a.onload=s,document.body.appendChild(a)})),Promise.resolve())}var r=class extends EventTarget{constructor(n){super(),this.url=n,this.m=i=>{i.source===this.w&&(this.dispatchEvent(new MessageEvent("message",{data:i.data})),this.onmessage&&this.onmessage(i))},this.e=(i,s,a,f,c)=>{if(s===`${this.url}`){let u=new ErrorEvent("error",{message:i,filename:s,lineno:a,colno:f,error:c});this.dispatchEvent(u),this.onerror&&this.onerror(u)}};let o=document.createElement("iframe");o.hidden=!0,document.body.appendChild(this.iframe=o),this.w.document.open(),this.w.document.write(` + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + + + +

Customized Unix Terminal

+

Project Tracker

+

This document serves as a guide for how I customize my macOS and Linux terminals. It includes a variety of configurations, settings, and programs that I find useful for my daily workflow. The document is divided into several sections, each focusing on a different aspect of terminal customization.

+

NOTICE

+

If you view this document on GitHub or as a standard markdown file, you will not see the interactive elements, such as the details and tabs. To view the document in its entirety, please visit the website.

+

Useful Programs

+

The following table contains a list of terminal programs that I find particularly useful. These programs are separated into two categories: Third Party Package Managers (TPPM) and Native Package Managers (NPM).

+

The Third Party Package Managers section includes programs not installed using the system's default package manager. These programs are typically installed using tools like Homebrew, Pip, Cargo, Npm, Gem, or Git. I've included a brief description of each program and the relevant package manager(s) that can install it.

+
+Git Installations +

While most of these programs can be installed via git, they will not be marked as such unless recommended by the program's documentation or myself, or if it's the only other way to install the program.

+
+

The Native Package Managers section includes programs that can be installed using the system's default package manager. Since the primary Linux distributions I use are Debian based, all of the programs in this section are confirmed installable via apt. For other Linux distributions, you can check Repology to see if the program is available in your distribution's package manager. Like with TPPM, I've included a brief description for each program and a link with the number of repository families featuring the package.

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProgramsDescriptionApplicable OS'sAvailable Package ManagersIs a CommandOther Info
.tmuxOh my tmux! My self-contained, pretty & versatile tmux configuration made with.macOS
Linux
GithubNoRequires tmux to be installed.
bandwhichTerminal bandwidth utilization tool.macOS
Linux
homebrew version
Crates.io
Yes
batA cat(1) clone with wings.macOS
Linux
homebrew version
Crates.io
Yes
blackThe uncompromising Python code formatter.macOS
Linux
homebrew version
PyPI
Yes
cheatCheat allows you to create and view interactive cheatsheets on the command-line.macOS
Linux
homebrew versionYes
codespellCheck code for common misspellings.macOS
Linux
homebrew version
PyPI
Yes
coreutilsThese are the GNU core utilities. This package is the union of the GNU fileutils, sh-utils, and textutils packages.macOShomebrew versionCollectionAll GNU commands installed via coreutils, are the same as they are on Linux, but prefixed with a g (i.e. gcp for cp).
dufDisk Usage/Free Utility - a better 'df' alternative.macOS
Linux
homebrew versionYes
ezaA modern, maintained replacement for ls.macOS
Linux
homebrew version
Crates.io
Yes
ffmpegFFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.macOS
Linux
homebrew versionYes
fzfA command-line fuzzy finder.macOS
Linux
homebrew versionYes
fzf-tabReplace zsh's default completion selection menu with fzf!macOS
Linux
homebrew version
Github
No
gallery-dlCommand-line program to download image galleries and collections from several image hosting sites.macOS
Linux
homebrew version
PyPI
Yes
gitGit is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.macOS
Linux
homebrew versionYes
git-deltaA syntax-highlighting pager for git, diff, and grep outputmacOS
Linux
homebrew version
Crates.io
No
git-openType git open to open the GitHub page or website for a repository in your browser.macOS
Linux
homebrew versionYes
git open
gnupgThe GNU Privacy GuardmacOS
Linux
homebrew versionYes
gpg or gpg2
htopImproved top (interactive process viewer).macOS
Linux
homebrew versionYes
imagemagickUse ImageMagick® to create, edit, compose, or convert digital images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, WebP, HEIC, SVG, PDF, DPX, EXR and TIFF.macOS
Linux
homebrew versionYes
magick
More info here.
isortA Python utility / library to sort imports.macOS
Linux
homebrew version
PyPI
Yes
lazygitSimple terminal UI for git commands.macOS
Linux
homebrew versionYes
lynisSecurity and system auditing tool to harden systems.macOS
Linux
homebrew version
Github
YesRecommended install method: Git.
ncduncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.macOS
Linux
homebrew versionYes
neovimVim-fork focused on extensibility and usability.macOS
Linux
homebrew versionNo
nvim
prettierCode formatter for JavaScript, CSS, JSON, GraphQL, Markdown, YAML.macOS
Linux
homebrew version
npm
Yes
pstreeList processes as a tree.macOS
Linux
homebrew versionYes
pipenvPython dependency management tool.macOS
Linux
homebrew version
PyPI
Yes
pipxInstall and Run Python Applications in Isolated Environments.macOS
Linux
homebrew version
PyPI
Yes
pyenvSimple Python version management.macOS
Linux
homebrew versionYes
pylintIt's not just a linter that annoys you!macOS
Linux
homebrew version
PyPI
Yes
shellcheckShell script analysis tool.macOS
Linux
homebrew versionYes
shellhardenShellharden is a syntax highlighter and a tool to semi-automate the rewriting of scripts to ShellCheck conformance, mainly focused on quoting.macOS
Linux
homebrew version
Crates.io
Yes
terminal-notifierSend macOS User Notifications from the command-line.macOS
Linux
homebrew version
Gem
NoAlso see the bgnotify plugin.
tmuxtmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen.macOS
Linux
homebrew version
trash-cliCommand line interface to the freedesktop.org trashcan.macOS
Linux
homebrew version
PyPI
Collection
treeDisplay directories as trees (with optional color/HTML output).macOS
Linux
homebrew versionYes
tree-sitterTree-sitter is a parser generator tool and an incremental parsing library.macOS
Linux
homebrew version
Crates.io
No
wgetWget is a free utility for non-interactive download of files from the Web.macOS
Linux
homebrew versionYes
yt-dlpA feature-rich command-line audio/video downloader.macOS
Linux
homebrew version
PyPI
Yes
zipCompression and file packaging/archive utility.macOS
Linux
homebrew versionYes
zshUNIX shell (command interpreter).macOS
Linux
homebrew versionNo
zsh-autosuggestionsFish-like autosuggestions for zsh.macOS
Linux
homebrew version
Github
NoZsh must be installed.
Install instructions.
zsh-completionsAdditional completion definitions for Zsh.macOS
Linux
homebrew version
Github
NoZsh must be installed.
zsh-syntax-highlightingFish shell like syntax highlighting for Zsh.macOS
Linux
homebrew version
Github
NoZsh must be installed.
Install instructions.
+
+
+

Applicable Operating Systems: Linux

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProgramsDescriptionNumber of Repository Families Featuring this PackageIs a CommandOther Info
apt-listchangesPackage change history notification tool.Packaging statusYesSpecific to Debian based distributions.
Rarely used as a command.
bandwhichTerminal bandwidth utilization tool.Packaging statusYes
bat-catA cat(1) clone with wings.Packaging statusYes
bat or batcat or bat-cat
blackThe uncompromising Python code formatter.Packaging statusYesRecommended install method: Homebrew OR Pip.
codespellCheck code for common misspellings.Packaging statusYes
deborphanProgram that can find unused packages, e.g. libraries.Packaging statusYesSpecific to Debian based distributions.
dufDisk Usage/Free Utility - a better 'df' alternative.Packaging statusYes
ezaA modern, maintained replacement for ls.Packaging statusYesFor the apt package installation, see here.
ffmpegFFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.Packaging status???
fzfA command-line fuzzy finder.Packaging statusYesRecommended install method: Git OR Oh My Zsh
gallery-dlCommand-line program to download image galleries and collections from several image hosting sites.Packaging statusYes
gitGit is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.Packaging statusYes
git-deltaA syntax-highlighting pager for git, diff, and grep outputPackaging statusNo
gnupgThe GNU Privacy GuardPackaging statusYes
gpg or gpg2
htopA cross-platform interactive process viewer.Packaging statusYes
imagemagickUse ImageMagick® to create, edit, compose, or convert digital images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, WebP, HEIC, SVG, PDF, DPX, EXR and TIFF.Packaging statusYes
magick

More info here.
Recommended install method: Homebrew.
lazygitSimple terminal UI for git commands.Packaging statusYes
lynisSecurity and system auditing tool to harden systems.Packaging statusYesRecommended install method: Git.
ncduncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.Packaging statusYes
neovimVim-fork focused on extensibility and usability.Packaging statusYes
nvim
pstreeList processes as a tree.Packaging statusYes
pipenvPython dependency management tool.Packaging statusYes
pipxInstall and Run Python Applications in Isolated Environments.Packaging statusYesRecommended install method: Homebrew OR Pip.
python-is-python3symlinks /usr/bin/python to python3.nanNo
shellcheckShell script analysis tool.Packaging statusYes
tmuxtmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen.Packaging statusYes
trash-cliCommand line interface to the freedesktop.org trashcan.Packaging statusCollectionRecommended install method: Homebrew OR Pip.
treeDisplay directories as trees (with optional color/HTML output).nanYes
yt-dlpA feature-rich command-line audio/video downloader.Packaging statusYes
zipCompression and file packaging/archive utility.Packaging statusYes
zshUNIX shell (command interpreter).Packaging statusNo
zsh-autosuggestionsFish-like autosuggestions for zsh.Packaging statusNoNot a command.
Zsh must be installed.
Recommended install method: Git.
zsh-completionsAdditional completion definitions for Zsh.Packaging statusNoNot a command.
Zsh must be installed.
Recommended install method: Git.
zsh-syntax-highlightingFish shell like syntax highlighting for Zsh.Packaging statusNoNot a command.
Zsh must be installed.
Recommended install method: Git.
+
+
+
+

Customizing ZSH Shell

+

Framework

+

Oh-my-zsh is my preferred framework due to its popularity, reliability, and consistent updates. As one of the leading zsh frameworks, it made its initial commit on August 23, 2009, allowing it enough time to develop and refine its features.

+

Below is a list of oh-my-zsh plugins that I use and find to provide useful functionality.

+

Shell Theme

+

In combination with oh-my-zsh, I use Powerlevel10k as my shell theme. It's highly configurable and very appealing to the eyes.

+

ZSH Resource File

+

Below are tshe configurations for my .zshrc file, divided into two sections: macOS and Linux. The macOS configurations are tailored for macOS, while the other is designed for Linux.

+

You are welcome to use this resource in any manner you prefer. My intention is to offer it as a guide for structuring your own .zshrc file and to present additional configurations not detailed elsewhere in this document.

+
+My ZSH Resource File +
+
+
+
.zshrc
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
# CodeWhisperer pre block. Keep at the top of this file.
+[[ -f "${HOME}/Library/Application Support/codewhisperer/shell/zshrc.pre.zsh" ]] && builtin source "${HOME}/Library/Application Support/codewhisperer/shell/zshrc.pre.zsh"
+# If PowerLevel10K's Instant Prompt is enabled, `export GPG_TTY=$(tty)` needs to be
+# placed at the top of this file. Find more information here:
+# https://unix.stackexchange.com/questions/608842/zshrc-export-gpg-tty-tty-says-not-a-tty/608921#608921
+export GPG_TTY=$(tty)
+
+# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
+# Initialization code that may require console input (password prompts, [y/n]
+# confirmations, etc.) must go above this block; everything else may go below.
+if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
+    source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
+fi
+
+# Path to your oh-my-zsh installation.
+export ZSH="$HOME/.oh-my-zsh"
+
+# Set name of the theme to load --- if set to "random", it will
+# load a random theme each time oh-my-zsh is loaded, in which case,
+# to know which specific one was loaded, run: echo $RANDOM_THEME
+# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
+ZSH_THEME="powerlevel10k/powerlevel10k"
+
+# Uncomment the following line to use case-sensitive completion.
+# CASE_SENSITIVE="true"
+
+# Uncomment the following line to use hyphen-insensitive completion.
+# Case-sensitive completion must be off. _ and - will be interchangeable.
+# HYPHEN_INSENSITIVE="true"
+
+# Uncomment the following line if pasting URLs and other text is messed up.
+# DISABLE_MAGIC_FUNCTIONS=true
+
+# Uncomment the following line to enable command auto-correction.
+# ENABLE_CORRECTION="true"
+
+# Uncomment the following line if you want to change the command execution time
+# stamp shown in the history command output.
+# You can set one of the optional three formats:
+# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
+# or set a custom format using the strftime function format specifications,
+# see 'man strftime' for details.
+HIST_STAMPS="yyyy-mm-dd"
+
+# Which plugins would you like to load?
+# Standard plugins can be found in ~/.oh-my-zsh/plugins/*
+# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
+# Example format: plugins=(rails git textmate ruby lighthouse)
+# Add wisely, as too many plugins slow down shell startup.
+plugins=(colored-man-pages copybuffer copypath copyfile bgnotify)
+
+# Zsh "plugin" installed via git and the following command:
+# git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
+zsh_completion="${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src"
+[[ -d $zsh_completion ]] && fpath+=${zsh_completion}
+
+source "$ZSH/oh-my-zsh.sh"
+
+
+####[ Personal Configurations ]#########################################################
+####[[ Aliases ]]#######################################################################
+####[[[ Group 1 ]]]#####################################################################
+
+
+## General aliases.
+alias ic="cd ~/Library/Mobile\ Documents/com~apple~CloudDocs"
+alias edisk="cd /Volumes && ll"
+alias zls="eza"
+alias rmdsstore="find . -name '*.DS_Store' -type f -delete"
+alias code="open -a 'Visual Studio Code.app' ."
+alias formatc="find . -name '*.cs' -type f -exec clang-format --style=file:~/Programs/Mine/Formatter\ Configs/CSharp_clang-format/_clang-format -i {} +"
+
+## Update based aliases.
+alias updatezshplugins="bash ~/Programs/mass-git/mass-git -p ~/.oh-my-zsh/custom/plugins/ -r"
+alias updatecopilot="bash ~/Programs/mass-git/mass-git -p ~/.config/nvim/pack/github/ -r"
+alias updatebrew="brew update && brew upgrade && brew autoremove && brew cleanup && brew doctor"
+alias updateomz="omz update"
+alias updateall="updatebrew; updateomz; updatecopilot; updatezshplugins"
+
+## GNU command aliases.
+alias cp="gcp"
+alias mv="gmv"
+
+
+####[[[ Group 2 ]]]#####################################################################
+#### Due to the number of commands that I find to be useful, I've created aliases
+#### containing some of these commands. They are specifically commands that I don't
+#### often use, but are useful to have on hand. Having these aliases allows me to see
+#### a list of these commands, without having to commit them to memeory.
+
+alias lt="echo -e \"
+####[ Package Manager installed commands ]##############################################
+
+bandwhich  - Terminal bandwidth utilization tool.
+bat        - A cat(1) clone with wings.
+codespell  - Check code for common misspellings.
+duf        - Disk Usage/Free Utility - a better 'df' alternative.
+fzf        - A command-line fuzzy finder.
+ncdu       - ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.
+pstree     - List processes as a tree.
+tmux       - Terminal multiplexer.
+
+####[[ Grouped commands ]]##############################################################
+
+lt_conversion - List of programs used for converting the formats of videos, images, etc.
+lt_git        - List of programs used for git related commands.
+
+
+####[ Keyboard combinations ]###########################################################
+
+Ctrl + O - Allows you to copy what you are currently typing, via 'Ctrl' + 'O'.
+\""
+alias lt_conversion="echo -e \"
+########################################################################################
+#### [ Image and video formatters ]
+
+ffmpeg - FFmpeg is a collection of libraries and tools to process multimedia content.
+magick - Convert between image formats as well as resize an image, blur, crop,
+         despeckle, dither, draw on, flip, join, re-sample, and much more.
+\""
+alias lt_git="echo -e \"
+####[ Git Related Commands ]###########################################################
+
+lazygit  - Simple terminal UI for git commands.
+git open - Opens the GitHub page for a repo/branch in your browser.
+ugit     - ugit helps you undo git commands without much effort.
+\""
+
+
+####[[[ SSH related commands ]]]########################################################
+
+
+alias hthompson="ssh -p 16449 hunter@143.198.55.59"
+alias voidtech="ssh ranger@135.181.75.52"
+
+
+####[[ Environmental Variables ]]#######################################################
+
+
+# 1Password auth socket.
+export SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
+
+## NVM setup...
+export NVM_DIR="$HOME/.nvm"
+[ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
+[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion
+
+# Path purpose:
+#   /usr/local/opt/curl/bin:       ...
+#   /usr/local/sbin:               ???
+#   /usr/local/opt/openjdk@17/bin: Prefered java version.
+#   /usr/local/opt/node@18/bin:    Prefered node version.
+export PATH="/usr/local/opt/curl/bin:/usr/local/sbin:/usr/local/opt/openjdk@17/bin:/usr/local/opt/node@18/bin:$PATH"
+
+# Modifies colors of files and directories when using `ls`.
+export LSCOLORS="exgxfxDxcxegDaabagacaD"
+## Version of LSCOLORS compatible with zsh and GNU based commands.
+## You can find more information about LS_COLORS and why it's needed in addition to LSCOLORS,
+## here: https://github.com/ohmyzsh/ohmyzsh/issues/6060#issuecomment-327934559
+export LS_COLORS="di=34:ln=36:so=35:pi=1;33:ex=32:bd=34;46:cd=1;33;40:su=30;41:sg=30;46:tw=30;42:ow=30;1;43"
+
+## Editor configurations.
+export EDITOR=nvim
+export VISUAL=$EDITOR
+
+
+####[[ Sourced Files ]]#################################################################
+
+
+# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
+[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
+
+# Zsh "plugin" installed via git and the following command:
+# git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
+zsh_syntax_highlighting="${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
+[[ -f $zsh_syntax_highlighting ]] && source "$zsh_syntax_highlighting"
+
+# Zsh "plugin" installed via git and the following command:
+# git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
+zsh_autosuggestions="${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh"
+[[ -f $zsh_autosuggestions ]] && source "$zsh_autosuggestions"
+
+# Zsh "plugin" installed via git and the following command:
+# git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab
+fzf_tab="${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab/fzf-tab.plugin.zsh"
+[[ -f $fzf_tab ]] && hash fzf 2>/dev/null && source "$fzf_tab"
+
+# Enable the use of '1password-cli' plugins.
+source "$HOME/.config/op/plugins.sh"
+
+
+####[[ Zsh Style Configurations ]]######################################################
+
+
+# Disable sort when completing `git checkout`.
+zstyle ':completion:*:git-checkout:*' sort false
+# Set descriptions format to enable group support.
+# NOTE: Don't use escape sequences here, fzf-tab will ignore them.
+zstyle ':completion:*:descriptions' format '[%d]'
+# Set list-colors to enable filename colorizing.
+zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
+## Preview directory's content with `eza` when completing `cd`.
+hash eza 2>/dev/null \
+&& zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
+# Switch group using `<` and `>`.
+zstyle ':fzf-tab:*' switch-group '<' '>'
+
+
+####[[ Others ]]########################################################################
+#### These are generally configurations set up by setup scripts or other programs.
+
+
+# CodeWhisperer post block. Keep at the bottom of this file.
+[[ -f "${HOME}/Library/Application Support/codewhisperer/shell/zshrc.post.zsh" ]] && builtin source "${HOME}/Library/Application Support/codewhisperer/shell/zshrc.post.zsh"
+
+
+
+
.zshrc
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
# If PowerLevel10K's Instant Prompt is enabled, `export GPG_TTY=$(tty)` needs to be
+# placed at the top of this file. Find more information here:
+# https://unix.stackexchange.com/questions/608842/zshrc-export-gpg-tty-tty-says-not-a-tty/608921#608921
+export GPG_TTY=$(tty)
+
+# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
+# Initialization code that may require console input (password prompts, [y/n]
+# confirmations, etc.) must go above this block; everything else may go below.
+if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
+    source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
+fi
+
+# Path to your oh-my-zsh installation.
+export ZSH="$HOME/.oh-my-zsh"
+
+# Set name of the theme to load --- if set to "random", it will
+# load a random theme each time oh-my-zsh is loaded, in which case,
+# to know which specific one was loaded, run: echo $RANDOM_THEME
+# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
+ZSH_THEME="powerlevel10k/powerlevel10k"
+
+# Uncomment the following line to use case-sensitive completion.
+# CASE_SENSITIVE="true"
+
+# Uncomment the following line to use hyphen-insensitive completion.
+# Case-sensitive completion must be off. _ and - will be interchangeable.
+# HYPHEN_INSENSITIVE="true"
+
+# Uncomment the following line if pasting URLs and other text is messed up.
+# DISABLE_MAGIC_FUNCTIONS=true
+
+# Uncomment the following line to enable command auto-correction.
+# ENABLE_CORRECTION="true"
+
+# Uncomment the following line if you want to change the command execution time
+# stamp shown in the history command output.
+# You can set one of the optional three formats:
+# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
+# or set a custom format using the strftime function format specifications,
+# see 'man strftime' for details.
+HIST_STAMPS="yyyy-mm-dd"
+
+# Which plugins would you like to load?
+# Standard plugins can be found in $ZSH/plugins/
+# Custom plugins may be added to $ZSH_CUSTOM/plugins/
+# Example format: plugins=(rails git textmate ruby lighthouse)
+# Add wisely, as too many plugins slow down shell startup.
+#plugins=(git colored-man-pages copybuffer copypath copyfile bgnotify)  # Desktop
+plugins=(git colored-man-pages)  # Server
+
+# Zsh "plugin" installed via git and the following command:
+# git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
+zsh_completion="${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src"
+[[ -d $zsh_completion ]] && fpath+=${zsh_completion}
+
+source "$ZSH/oh-my-zsh.sh"
+
+
+####[ Personal Configurations ]#########################################################
+####[[ Aliases ]]#######################################################################
+####[[[ Group 1 ]]]#####################################################################
+
+
+## General aliases.
+alias zls="eza"
+
+## Update based aliases.
+alias updatezshplugins="bash ~/Programs/mass-git/mass-git -p ~/.oh-my-zsh/custom/plugins/ -r"
+alias updatecopilot="bash ~/Programs/mass-git/mass-git -p ~/.config/nvim/pack/github/ -r"
+alias updateapt="sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y"
+alias updateomz="omz update"
+alias updateall="updateapt; updateomz; updatecopilot; updatezshplugins"
+
+
+####[[[ Group 2 ]]]#####################################################################
+#### Due to the number of commands that I find to be useful, I've created aliases
+#### containing some of these commands. They are specifically commands that I don't
+#### often use, but are useful to have on hand. Having these aliases allows me to see
+#### a list of these commands, without having to commit them to memeory.
+
+alias lt="echo -e \"
+####[ Package Manager installed commands ]##############################################
+
+bandwhich  - Terminal bandwidth utilization tool.
+bat        - A cat(1) clone with wings.
+cheat      - Allows you to create and view interactive cheatsheets on the command-line.
+codespell  - Check code for common misspellings.
+duf        - Disk Usage/Free Utility - a better 'df' alternative.
+fzf        - A command-line fuzzy finder.
+ncdu       - ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.
+pstree     - List processes as a tree.
+tmux       - Terminal multiplexer.
+
+####[[ Grouped commands ]]##############################################################
+
+lt_conversion - List of programs used for converting the formats of videos, images, etc.
+lt_git        - List of programs used for git related commands.
+
+
+####[ Keyboard combinations ]###########################################################
+
+Ctrl + O - Allows you to copy what you are currently typing, via 'Ctrl' + 'O'.
+\""
+alias lt_conversion="echo -e \"
+########################################################################################
+#### [ Image and video formatters ]
+
+ffmpeg - FFmpeg is a collection of libraries and tools to process multimedia content.
+magick - Convert between image formats as well as resize an image, blur, crop,
+         despeckle, dither, draw on, flip, join, re-sample, and much more.
+\""
+alias lt_git="echo -e \"
+####[ Git Related Commands ]###########################################################
+
+lazygit  - Simple terminal UI for git commands.
+git open - Opens the GitHub page for a repo/branch in your browser.
+ugit     - ugit helps you undo git commands without much effort.
+\""
+
+
+####[[ Environmental Variables ]]#######################################################
+
+
+## Modifies the colors of files and directories in the terminal.
+export LS_COLORS="di=34:ln=36:so=35:pi=1;33:ex=32:bd=34;46:cd=1;33;40:su=30;41:sg=30;46:tw=30;42:ow=30;1;43"
+# This is set in the Zsh Style Configurations section.
+#zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
+
+# PATH value...
+export PATH="$PATH:$HOME/.local/bin"
+
+
+####[[ Sourced Files ]]#################################################################
+
+
+# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
+[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
+
+# Zsh "plugin" installed via git and the following command:
+# git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
+zsh_syntax_highlighting="${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
+[[ -f $zsh_syntax_highlighting ]] && source "$zsh_syntax_highlighting"
+
+# Zsh "plugin" installed via git and the following command:
+# git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
+zsh_autosuggestions="${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh"
+[[ -f $zsh_autosuggestions ]] && source "$zsh_autosuggestions"
+
+# Zsh "plugin" installed via git and the following command:
+# git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab
+fzf_tab="${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab/fzf-tab.plugin.zsh"
+[[ -f $fzf_tab ]] && hash fzf 2>/dev/null && source "$fzf_tab"
+
+
+####[[ Zsh Style Configurations ]]######################################################
+
+
+# Disable sort when completing `git checkout`.
+zstyle ':completion:*:git-checkout:*' sort false
+# Set descriptions format to enable group support.
+# NOTE: Don't use escape sequences here, fzf-tab will ignore them.
+zstyle ':completion:*:descriptions' format '[%d]'
+# Set list-colors to enable filename colorizing.
+zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
+## Preview directory's content with `eza` when completing `cd`.
+hash eza 2>/dev/null \
+&& zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
+# Wwitch group using `<` and `>`.
+zstyle ':fzf-tab:*' switch-group '<' '>'
+
+
+####[[ Others ]]########################################################################
+#### These are generally configurations set up by setup scripts or other programs.
+
+
+
+
+
+

Oh-my-zsh Plugins

+

This is a list of all the oh-my-zsh plugins that I use and find to provide useful functionality.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PluginsDescriptionIs a CommandOther Info
gitThe git plugin provides many aliases and a few useful functionsCollection
colored-man-pagesAdds colors to man pagesNo
copybufferAllows you to copy what you are currently typing, via Ctrl+OYesKey Combination: Ctrl+O
copypathCopies the path of your working directoryYes
copyfileCopies the contents of a fileYes
bgnotifycross-platform background notifications for long running commandsNoExtra install instructions
+

Custom Aliases

+

Below is a list of aliases that are in my .zshrc files. They are broken up into two groups: Group 1 and Group 2. Group 1 contains general aliases, while Group 2 contains aliases listing categorized commands. Most of these commands are programs mentioned in Useful Programs, that I don't frequently use, but still want to have quick access to.

+
+
+
+
.zshrc
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
####[[ Aliases ]]#######################################################################
+####[[[ Group 1 ]]]#####################################################################
+
+
+## General aliases.
+alias ic="cd ~/Library/Mobile\ Documents/com~apple~CloudDocs"
+alias edisk="cd /Volumes && ll"
+alias zls="eza"
+alias rmdsstore="find . -name '*.DS_Store' -type f -delete"
+alias code="open -a 'Visual Studio Code.app' ."
+alias formatc="find . -name '*.cs' -type f -exec clang-format --style=file:~/Programs/Mine/Formatter\ Configs/CSharp_clang-format/_clang-format -i {} +"
+
+## Update based aliases.
+alias updatezshplugins="bash ~/Programs/mass-git/mass-git -p ~/.oh-my-zsh/custom/plugins/ -r"
+alias updatecopilot="bash ~/Programs/mass-git/mass-git -p ~/.config/nvim/pack/github/ -r"
+alias updatebrew="brew update && brew upgrade && brew autoremove && brew cleanup && brew doctor"
+alias updateomz="omz update"
+alias updateall="updatebrew; updateomz; updatecopilot; updatezshplugins"
+
+## GNU command aliases.
+alias cp="gcp"
+alias mv="gmv"
+
+
+####[[[ Group 2 ]]]#####################################################################
+#### Due to the number of commands that I find to be useful, I've created aliases
+#### containing some of these commands. They are specifically commands that I don't
+#### often use, but are useful to have on hand. Having these aliases allows me to see
+#### a list of these commands, without having to commit them to memeory.
+
+alias lt="echo -e \"
+####[ Package Manager installed commands ]##############################################
+
+bandwhich  - Terminal bandwidth utilization tool.
+bat        - A cat(1) clone with wings.
+codespell  - Check code for common misspellings.
+duf        - Disk Usage/Free Utility - a better 'df' alternative.
+fzf        - A command-line fuzzy finder.
+ncdu       - ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.
+pstree     - List processes as a tree.
+tmux       - Terminal multiplexer.
+
+####[[ Grouped commands ]]##############################################################
+
+lt_conversion - List of programs used for converting the formats of videos, images, etc.
+lt_git        - List of programs used for git related commands.
+
+
+####[ Keyboard combinations ]###########################################################
+
+Ctrl + O - Allows you to copy what you are currently typing, via 'Ctrl' + 'O'.
+\""
+alias lt_conversion="echo -e \"
+########################################################################################
+#### [ Image and video formatters ]
+
+ffmpeg - FFmpeg is a collection of libraries and tools to process multimedia content.
+magick - Convert between image formats as well as resize an image, blur, crop,
+         despeckle, dither, draw on, flip, join, re-sample, and much more.
+\""
+alias lt_git="echo -e \"
+####[ Git Related Commands ]###########################################################
+
+lazygit  - Simple terminal UI for git commands.
+git open - Opens the GitHub page for a repo/branch in your browser.
+ugit     - ugit helps you undo git commands without much effort.
+\""
+
+
+
+
.zshrc
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
####[[ Aliases ]]#######################################################################
+####[[[ Group 1 ]]]#####################################################################
+
+
+## General aliases.
+alias zls="eza"
+
+## Update based aliases.
+alias updatezshplugins="bash ~/Programs/mass-git/mass-git -p ~/.oh-my-zsh/custom/plugins/ -r"
+alias updatecopilot="bash ~/Programs/mass-git/mass-git -p ~/.config/nvim/pack/github/ -r"
+alias updateapt="sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y"
+alias updateomz="omz update"
+alias updateall="updateapt; updateomz; updatecopilot; updatezshplugins"
+
+
+####[[[ Group 2 ]]]#####################################################################
+#### Due to the number of commands that I find to be useful, I've created aliases
+#### containing some of these commands. They are specifically commands that I don't
+#### often use, but are useful to have on hand. Having these aliases allows me to see
+#### a list of these commands, without having to commit them to memeory.
+
+alias lt="echo -e \"
+####[ Package Manager installed commands ]##############################################
+
+bandwhich  - Terminal bandwidth utilization tool.
+bat        - A cat(1) clone with wings.
+cheat      - Allows you to create and view interactive cheatsheets on the command-line.
+codespell  - Check code for common misspellings.
+duf        - Disk Usage/Free Utility - a better 'df' alternative.
+fzf        - A command-line fuzzy finder.
+ncdu       - ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.
+pstree     - List processes as a tree.
+tmux       - Terminal multiplexer.
+
+####[[ Grouped commands ]]##############################################################
+
+lt_conversion - List of programs used for converting the formats of videos, images, etc.
+lt_git        - List of programs used for git related commands.
+
+
+####[ Keyboard combinations ]###########################################################
+
+Ctrl + O - Allows you to copy what you are currently typing, via 'Ctrl' + 'O'.
+\""
+alias lt_conversion="echo -e \"
+########################################################################################
+#### [ Image and video formatters ]
+
+ffmpeg - FFmpeg is a collection of libraries and tools to process multimedia content.
+magick - Convert between image formats as well as resize an image, blur, crop,
+         despeckle, dither, draw on, flip, join, re-sample, and much more.
+\""
+alias lt_git="echo -e \"
+####[ Git Related Commands ]###########################################################
+
+lazygit  - Simple terminal UI for git commands.
+git open - Opens the GitHub page for a repo/branch in your browser.
+ugit     - ugit helps you undo git commands without much effort.
+\""
+
+
+
+
+

Modifying CLI Colors

+

The terminal colors that are used for folders, files, and other items in the command line interface can be customized using the LS_COLORS (macOS & Linux) and LSCOLORS (macOS) environment variables. If you want to modify these colors, you can do so by setting the LS_COLORS or LSCOLORS variable in your .zshrc file.

+
+LS_COLORS & LSCOLORS Explained +

On macOS, both LSCOLORS and LS_COLORS are necessary for specifying terminal colors. LSCOLORS is used for commands like ls, determining the colors in the command line interface, whereas LS_COLORS is used by zsh for similar purposes. In contrast, Linux only requires LS_COLORS, which is employed by both the ls command and zsh.

+

The underlying reason for this difference lies in the distinct versions of the ls command on macOS (FreeBSD version) and Linux (GNU version). macOS's ls command relies on LSCOLORS for color settings, while Linux uses LS_COLORS, each with its unique formatting. Moreover, since zsh recognizes only the LS_COLORS format, it's imperative to use it on macOS to ensure proper display and functionality of CLI colors.

+

Included below is a key that explains the values of LSCOLORS and LS_COLORS in my configurations:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LSCOLORSLS_COLORSTypeText ColorForeground/Background Color
exdi=34Directoriesbluedefault
gxln=36Symbolic linkcyandefault
fxso=35Socketmagentadefault
Dxpi=1;33Pipebold yellowdefault
cxex=32Executablegreendefault
egbd=34;46Block specialgreencyan
Dacd=1;33;40Character specialbold yellowblack
absu=30;41Executable with setuid bit setblackred
agsg=30;46Executable with setgid bit setblackcyan
actw=30;42Directory writeable to others (with a sticky bit)blackgreen
aDow=30;1;43Directory writeable to others (without sticky bit)blackbold yellow
+

For an in-depth understanding of LS_COLORS and LSCOLORS, I recommend visiting this gist.

+
+

Below are my configurations for both macOS and Linux systems. To apply these settings, simply insert the following code into your ~/.zshrc file:

+
+
+
+
CLI Color Configuration
1
+2
+3
+4
+5
+6
+7
# Modifies colors of files and directories when using `ls`.
+export LSCOLORS="exgxfxDxcxegDaabagacaD"
+## Version of LSCOLORS compatible with zsh and GNU based commands.
+## You can find more information about LS_COLORS and why it's needed in addition to LSCOLORS,
+## here: https://github.com/ohmyzsh/ohmyzsh/issues/6060#issuecomment-327934559
+export LS_COLORS="di=34:ln=36:so=35:pi=1;33:ex=32:bd=34;46:cd=1;33;40:su=30;41:sg=30;46:tw=30;42:ow=30;1;43"
+zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
+
+
+
+
CLI Color Configuration
1
+2
+3
## Modifies the colors of files and directories in the terminal.
+export LS_COLORS="di=34:ln=36:so=35:pi=1;33:ex=32:bd=34;46:cd=1;33;40:su=30;41:sg=30;46:tw=30;42:ow=30;1;43"
+zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
+
+
+
+
+

You can additionally modify the shading and appearance of the CLI colors by adjusting the ANSI-color scheme in your terminal profile. This can be done manually, with guides available for both macOS and Linux (gnome specific instructions). Alternatively, you can use my custom profile schemes, which are detailed in the Terminal Profile section.

+

Neovim Resource File

+

Due to the extensibility and community of Neovim, I have chosen it as my primary text editor, favoring it over the traditional Vi or Vim. Below are the configurations for my init.vim file, which is located in the ~/.config/nvim/ directory. The configurations are divided into two sections: with and without vim-plug plugins.

+

With Vim-Plug Plugins

+

The following configurations modify the behavior and appearance of vim. To use these settings, you'll first need to install vim-plug, a plugin manager for vim. While other vim package managers can be used, the configurations are tailored specifically for vim-plug.

+

After installing vim-plug, copy the code below into your ~/.config/nvim/init.vim file. With init.vim open in nvim, initiate the plugin installation by entering :source % and :PlugInstall as separate commands. This will prompt vim-plug to begin the installation of the plugins outlined in the configurations below.

+
+

Note

+

When using :source %, you can ignore any errors that might occur, as they are (most likely) a result of nvim looking for the plugins that have yet to be installed.

+
+
+Vim Plugin Information +

Here is a list of all the plugins listed in init.vim, along with a description of what they do.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PluginsDescription
HiPhish/rainbow-delimiters.nvimRainbow delimiters for Neovim with Tree-sitter.
vim-airline/vim-airlineLean & mean status/tabline for vim that's light as air.
vim-airline/vim-airline-themesA collection of themes for vim-airline.
morhetz/gruvboxRetro groove color scheme for Vim.
dense-analysis/aleCheck syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support.
ntpeters/vim-better-whitespaceBetter whitespace highlighting for Vim.
nvim-treesitter/nvim-treesitterNvim Treesitter configurations and abstraction layer.
mechatroner/rainbow_csvHighlight columns in CSV and TSV files and run queries in SQL-like language.
+
+
init.vim
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
""""[ vim-plug Configurations ]"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+
+call plug#begin(stdpath('data') . '/plugged')
+" Make sure you use single quotes
+
+" Vim help for vim-plug itself
+Plug 'junegunn/vim-plug'
+
+" Rainbow delimiters for Neovim with Tree-sitter.
+Plug 'HiPhish/rainbow-delimiters.nvim'
+" Lean & mean status/tabline for vim that's light as air.
+Plug 'vim-airline/vim-airline'
+" A collection of themes for vim-airline.
+Plug 'vim-airline/vim-airline-themes'
+" Retro groove color scheme for Vim.
+Plug 'sainnhe/gruvbox-material'
+" Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP)
+" support.
+Plug 'dense-analysis/ale'
+" Better whitespace highlighting for Vim.
+Plug 'ntpeters/vim-better-whitespace'
+" An incremental parsing system for programming tools.
+Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
+" Highlight columns in CSV and TSV files and run queries in SQL-like language.
+Plug 'mechatroner/rainbow_csv'
+
+" Initialize plugin system
+call plug#end()
+"
+" Brief help:
+"   PlugInstall  - Install plugins
+"   PlugUpdate   - Install or update plugins
+"   PlugClean    - Remove unlisted plugins (bang version will clean without prompt)
+"   PlugUpgrade  - Upgrade vim-plug itself
+"   PlugStatus   - Check the status of plugins
+"   PlugDiff     - Examine changes from the previous update and the pending changes
+"   PlugSnapshot - Generate script for restoring the current snapshot of the plugins
+
+
+""""[ Non-vim-plug Related Configurations ]"""""""""""""""""""""""""""""""""""""""""""""
+
+
+"" Overwrites specified default setting.
+set tabstop=4       " Tells vim how many columns a tab counts for.
+set shiftwidth=4    " 'Levels of indentation', where a level of indentation is
+                    " shiftwidth columns of whitespace.
+set expandtab       " Ensure that when you hit tab it will actually use spaces.
+set colorcolumn=88  " Set a colored line at column 88 in every row.
+
+"" Markdown files
+autocmd Filetype markdown setlocal colorcolumn=0
+"" TXT files
+autocmd Filetype text setlocal colorcolumn=0
+"" Java
+autocmd Filetype java setlocal colorcolumn=94
+"" C#
+autocmd Filetype cs setlocal colorcolumn=120
+"" HTML
+autocmd Filetype html setlocal colorcolumn=100 tabstop=2 shiftwidth=2 nowrap
+"" CSS
+autocmd Filetype css setlocal colorcolumn=100 tabstop=2 shiftwidth=2 nowrap
+"" Vue
+autocmd Filetype vue setlocal colorcolumn=100 tabstop=2 shiftwidth=2
+
+
+""""[ vim-plug Plugin Configurations ]""""""""""""""""""""""""""""""""""""""""""""""""""
+
+
+" Font: Power Line Font
+set guifont=MesloLGS_NF:h12
+
+"" Plugin: gruvbox-material
+colorscheme gruvbox-material
+set background=dark
+let g:gruvbox_material_foreground = 'original'
+let g:gruvbox_material_enable_bold = 1
+let g:gruvbox_material_enable_italic = 1
+
+"" Plugin: vim-airline
+let g:airline#extensions#tabline#enabled = 1
+let g:airline#extensions#tabline#left_sep = ' '
+let g:airline#extensions#tabline#left_alt_sep = '|'
+let g:airline#extensions#tabline#formatter = 'default'
+let g:airline#extensions#ale#enabled = 1
+let g:airline_powerline_fonts = 1
+
+"" Plugin: better-whitespace
+let g:better_whitespace_enabled = 1
+let g:strip_whitespace_on_save = 1
+
+"" Plugin: ale
+"let g:ale_use_neovim_diagnostics_api = 0
+
+
+""""[ Useful Commands ]"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+
+" :NERDTree        - Opens NERDTree file system explorer.
+" :StripWhitespace - Clean extra whitespace.
+" :ALEInfo         - Show ALE information.
+" :ALEToggle       - Toggle ALE on/off.
+" :TSInstall       - Install treesitter parsers.
+" :TSUpdate        - Update treesitter parsers.
+" :TSInstallInfo   - Show treesitter information.
+
+

Without Vim-Plug Plugins

+

If you prefer not to use all the features offered by vim-plug, you can opt for a more basic setup by incorporating the configurations listed below into your .vimrc file. These adjustments modify certain default settings of vim without altering the core functionality, providing a simpler, more streamlined experience while maintaining the essence of vim's default behavior.

+
init.vim
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
"" Overwrites specified default setting.
+set tabstop=4       " Tells vim how many columns a tab counts for.
+set shiftwidth=4    " 'Levels of indentation', where a level of indentation is
+                    " shiftwidth columns of whitespace.
+set expandtab       " Ensure that when you hit tab it will actually use spaces.
+set colorcolumn=88  " Set a colored line at column 88 in every row.
+
+"" Markdown files
+autocmd Filetype markdown setlocal colorcolumn=0
+"" TXT files
+autocmd Filetype text setlocal colorcolumn=0
+"" Java
+autocmd Filetype java setlocal colorcolumn=94
+"" C#
+autocmd Filetype cs setlocal colorcolumn=120
+"" HTML
+autocmd Filetype html setlocal colorcolumn=100 tabstop=2 shiftwidth=2 nowrap
+"" CSS
+autocmd Filetype css setlocal colorcolumn=100 tabstop=2 shiftwidth=2 nowrap
+"" Vue
+autocmd Filetype vue setlocal colorcolumn=100 tabstop=2 shiftwidth=2
+
+

Neovim GitHub Copilot

+

...coming soon...

+

Installed TreeSitter Parsers

+

...coming soon...

+

Terminal Profile

+
+
+
+

My custom terminal profile is a modified version of the Basic profile that comes pre-installed on macOS. To add it to your list of profiles, follow the instructions below:

+
    +
  1. Download the terminal profile using the following link: Terminal Profile
  2. +
  3. Open a terminal window.
  4. +
  5. Click on Preferences... ==> Profiles ==> the gear icon at the bottom left of the window ==> Import... ==> locate and click on the 'Basic (Modified).terminal' tab
  6. +
  7. Click on the new terminal profile, then press the "Default" button located at the bottom of the window.
  8. +
+
+
+

My custom terminal profile is a based on the Terminal Profile that I use on macOS. To add it to your list of profiles, follow the instructions below:

+
    +
  1. Download the terminal profile using the following link: Terminal Profile
  2. +
  3. Open a terminal window.
  4. +
  5. Enter the following command to import the profiles: dconf load /org/gnome/terminal/legacy/profiles:/ < LOCATION_OF_DOWNLOADED_FILE
  6. +
+
+

Warning

+

Using the above dconf command will overwrite all existing profiles

+
+
+
+
+ +
+
+ + + Last update: + August 7, 2024 + + + +
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 0000000..0678ac1 --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Home","text":""},{"location":"#customized-unix-terminal","title":"Customized Unix Terminal","text":"

This document serves as a guide for how I customize my macOS and Linux terminals. It includes a variety of configurations, settings, and programs that I find useful for my daily workflow. The document is divided into several sections, each focusing on a different aspect of terminal customization.

"},{"location":"#notice","title":"NOTICE","text":"

If you view this document on GitHub or as a standard markdown file, you will not see the interactive elements, such as the details and tabs. To view the document in its entirety, please visit the website.

"},{"location":"#useful-programs","title":"Useful Programs","text":"

The following table contains a list of terminal programs that I find particularly useful. These programs are separated into two categories: Third Party Package Managers (TPPM) and Native Package Managers (NPM).

The Third Party Package Managers section includes programs not installed using the system's default package manager. These programs are typically installed using tools like Homebrew, Pip, Cargo, Npm, Gem, or Git. I've included a brief description of each program and the relevant package manager(s) that can install it.

Git Installations

While most of these programs can be installed via git, they will not be marked as such unless recommended by the program's documentation or myself, or if it's the only other way to install the program.

The Native Package Managers section includes programs that can be installed using the system's default package manager. Since the primary Linux distributions I use are Debian based, all of the programs in this section are confirmed installable via apt. For other Linux distributions, you can check Repology to see if the program is available in your distribution's package manager. Like with TPPM, I've included a brief description for each program and a link with the number of repository families featuring the package.

Third Party Package ManagerNative Package Manager Programs Description Applicable OS's Available Package Managers Is a Command Other Info .tmux Oh my tmux! My self-contained, pretty & versatile tmux configuration made with. macOSLinux No Requires tmux to be installed. bandwhich Terminal bandwidth utilization tool. macOSLinux Yes bat A cat(1) clone with wings. macOSLinux Yes black The uncompromising Python code formatter. macOSLinux Yes cheat Cheat allows you to create and view interactive cheatsheets on the command-line. macOSLinux Yes codespell Check code for common misspellings. macOSLinux Yes coreutils These are the GNU core utilities. This package is the union of the GNU fileutils, sh-utils, and textutils packages. macOS Collection All GNU commands installed via coreutils, are the same as they are on Linux, but prefixed with a g (i.e. gcp for cp). duf Disk Usage/Free Utility - a better 'df' alternative. macOSLinux Yes eza A modern, maintained replacement for ls. macOSLinux Yes ffmpeg FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata. macOSLinux Yes fzf A command-line fuzzy finder. macOSLinux Yes fzf-tab Replace zsh's default completion selection menu with fzf! macOSLinux No gallery-dl Command-line program to download image galleries and collections from several image hosting sites. macOSLinux Yes git Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals. macOSLinux Yes git-delta A syntax-highlighting pager for git, diff, and grep output macOSLinux No git-open Type git open to open the GitHub page or website for a repository in your browser. macOSLinux Yesgit open gnupg The GNU Privacy Guard macOSLinux Yesgpg or gpg2 htop Improved top (interactive process viewer). macOSLinux Yes imagemagick Use ImageMagick\u00ae to create, edit, compose, or convert digital images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, WebP, HEIC, SVG, PDF, DPX, EXR and TIFF. macOSLinux Yesmagick More info here. isort A Python utility / library to sort imports. macOSLinux Yes lazygit Simple terminal UI for git commands. macOSLinux Yes lynis Security and system auditing tool to harden systems. macOSLinux Yes Recommended install method: Git. ncdu ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'. macOSLinux Yes neovim Vim-fork focused on extensibility and usability. macOSLinux Nonvim prettier Code formatter for JavaScript, CSS, JSON, GraphQL, Markdown, YAML. macOSLinux Yes pstree List processes as a tree. macOSLinux Yes pipenv Python dependency management tool. macOSLinux Yes pipx Install and Run Python Applications in Isolated Environments. macOSLinux Yes pyenv Simple Python version management. macOSLinux Yes pylint It's not just a linter that annoys you! macOSLinux Yes shellcheck Shell script analysis tool. macOSLinux Yes shellharden Shellharden is a syntax highlighter and a tool to semi-automate the rewriting of scripts to ShellCheck conformance, mainly focused on quoting. macOSLinux Yes terminal-notifier Send macOS User Notifications from the command-line. macOSLinux No Also see the bgnotify plugin. tmux tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. macOSLinux trash-cli Command line interface to the freedesktop.org trashcan. macOSLinux Collection tree Display directories as trees (with optional color/HTML output). macOSLinux Yes tree-sitter Tree-sitter is a parser generator tool and an incremental parsing library. macOSLinux No wget Wget is a free utility for non-interactive download of files from the Web. macOSLinux Yes yt-dlp A feature-rich command-line audio/video downloader. macOSLinux Yes zip Compression and file packaging/archive utility. macOSLinux Yes zsh UNIX shell (command interpreter). macOSLinux No zsh-autosuggestions Fish-like autosuggestions for zsh. macOSLinux No Zsh must be installed.Install instructions. zsh-completions Additional completion definitions for Zsh. macOSLinux No Zsh must be installed. zsh-syntax-highlighting Fish shell like syntax highlighting for Zsh. macOSLinux No Zsh must be installed.Install instructions.

Applicable Operating Systems: Linux

Programs Description Number of Repository Families Featuring this Package Is a Command Other Info apt-listchanges Package change history notification tool. Yes Specific to Debian based distributions.Rarely used as a command. bandwhich Terminal bandwidth utilization tool. Yes bat-cat A cat(1) clone with wings. Yesbat or batcat or bat-cat black The uncompromising Python code formatter. Yes Recommended install method: Homebrew OR Pip. codespell Check code for common misspellings. Yes deborphan Program that can find unused packages, e.g. libraries. Yes Specific to Debian based distributions. duf Disk Usage/Free Utility - a better 'df' alternative. Yes eza A modern, maintained replacement for ls. Yes For the apt package installation, see here. ffmpeg FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata. ??? fzf A command-line fuzzy finder. Yes Recommended install method: Git OR Oh My Zsh gallery-dl Command-line program to download image galleries and collections from several image hosting sites. Yes git Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals. Yes git-delta A syntax-highlighting pager for git, diff, and grep output No gnupg The GNU Privacy Guard Yesgpg or gpg2 htop A cross-platform interactive process viewer. Yes imagemagick Use ImageMagick\u00ae to create, edit, compose, or convert digital images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, WebP, HEIC, SVG, PDF, DPX, EXR and TIFF. Yesmagick More info here.Recommended install method: Homebrew. lazygit Simple terminal UI for git commands. Yes lynis Security and system auditing tool to harden systems. Yes Recommended install method: Git. ncdu ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'. Yes neovim Vim-fork focused on extensibility and usability. Yesnvim pstree List processes as a tree. Yes pipenv Python dependency management tool. Yes pipx Install and Run Python Applications in Isolated Environments. Yes Recommended install method: Homebrew OR Pip. python-is-python3 symlinks /usr/bin/python to python3. nan No shellcheck Shell script analysis tool. Yes tmux tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. Yes trash-cli Command line interface to the freedesktop.org trashcan. Collection Recommended install method: Homebrew OR Pip. tree Display directories as trees (with optional color/HTML output). nan Yes yt-dlp A feature-rich command-line audio/video downloader. Yes zip Compression and file packaging/archive utility. Yes zsh UNIX shell (command interpreter). No zsh-autosuggestions Fish-like autosuggestions for zsh. No Not a command.Zsh must be installed.Recommended install method: Git. zsh-completions Additional completion definitions for Zsh. No Not a command.Zsh must be installed. Recommended install method: Git. zsh-syntax-highlighting Fish shell like syntax highlighting for Zsh. No Not a command.Zsh must be installed.Recommended install method: Git."},{"location":"#customizing-zsh-shell","title":"Customizing ZSH Shell","text":""},{"location":"#framework","title":"Framework","text":"

Oh-my-zsh is my preferred framework due to its popularity, reliability, and consistent updates. As one of the leading zsh frameworks, it made its initial commit on August 23, 2009, allowing it enough time to develop and refine its features.

Below is a list of oh-my-zsh plugins that I use and find to provide useful functionality.

"},{"location":"#shell-theme","title":"Shell Theme","text":"

In combination with oh-my-zsh, I use Powerlevel10k as my shell theme. It's highly configurable and very appealing to the eyes.

"},{"location":"#zsh-resource-file","title":"ZSH Resource File","text":"

Below are tshe configurations for my .zshrc file, divided into two sections: macOS and Linux. The macOS configurations are tailored for macOS, while the other is designed for Linux.

You are welcome to use this resource in any manner you prefer. My intention is to offer it as a guide for structuring your own .zshrc file and to present additional configurations not detailed elsewhere in this document.

My ZSH Resource File macOSLinux .zshrc
# CodeWhisperer pre block. Keep at the top of this file.\n[[ -f \"${HOME}/Library/Application Support/codewhisperer/shell/zshrc.pre.zsh\" ]] && builtin source \"${HOME}/Library/Application Support/codewhisperer/shell/zshrc.pre.zsh\"\n# If PowerLevel10K's Instant Prompt is enabled, `export GPG_TTY=$(tty)` needs to be\n# placed at the top of this file. Find more information here:\n# https://unix.stackexchange.com/questions/608842/zshrc-export-gpg-tty-tty-says-not-a-tty/608921#608921\nexport GPG_TTY=$(tty)\n# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.\n# Initialization code that may require console input (password prompts, [y/n]\n# confirmations, etc.) must go above this block; everything else may go below.\nif [[ -r \"${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\" ]]; then\nsource \"${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\"\nfi\n# Path to your oh-my-zsh installation.\nexport ZSH=\"$HOME/.oh-my-zsh\"\n# Set name of the theme to load --- if set to \"random\", it will\n# load a random theme each time oh-my-zsh is loaded, in which case,\n# to know which specific one was loaded, run: echo $RANDOM_THEME\n# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes\nZSH_THEME=\"powerlevel10k/powerlevel10k\"\n# Uncomment the following line to use case-sensitive completion.\n# CASE_SENSITIVE=\"true\"\n# Uncomment the following line to use hyphen-insensitive completion.\n# Case-sensitive completion must be off. _ and - will be interchangeable.\n# HYPHEN_INSENSITIVE=\"true\"\n# Uncomment the following line if pasting URLs and other text is messed up.\n# DISABLE_MAGIC_FUNCTIONS=true\n# Uncomment the following line to enable command auto-correction.\n# ENABLE_CORRECTION=\"true\"\n# Uncomment the following line if you want to change the command execution time\n# stamp shown in the history command output.\n# You can set one of the optional three formats:\n# \"mm/dd/yyyy\"|\"dd.mm.yyyy\"|\"yyyy-mm-dd\"\n# or set a custom format using the strftime function format specifications,\n# see 'man strftime' for details.\nHIST_STAMPS=\"yyyy-mm-dd\"\n# Which plugins would you like to load?\n# Standard plugins can be found in ~/.oh-my-zsh/plugins/*\n# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/\n# Example format: plugins=(rails git textmate ruby lighthouse)\n# Add wisely, as too many plugins slow down shell startup.\nplugins=(colored-man-pages copybuffer copypath copyfile bgnotify)\n# Zsh \"plugin\" installed via git and the following command:\n# git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions\nzsh_completion=\"${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src\"\n[[ -d $zsh_completion ]] && fpath+=${zsh_completion}\nsource \"$ZSH/oh-my-zsh.sh\"\n####[ Personal Configurations ]#########################################################\n####[[ Aliases ]]#######################################################################\n####[[[ Group 1 ]]]#####################################################################\n## General aliases.\nalias ic=\"cd ~/Library/Mobile\\ Documents/com~apple~CloudDocs\"\nalias edisk=\"cd /Volumes && ll\"\nalias zls=\"eza\"\nalias rmdsstore=\"find . -name '*.DS_Store' -type f -delete\"\nalias code=\"open -a 'Visual Studio Code.app' .\"\nalias formatc=\"find . -name '*.cs' -type f -exec clang-format --style=file:~/Programs/Mine/Formatter\\ Configs/CSharp_clang-format/_clang-format -i {} +\"\n## Update based aliases.\nalias updatezshplugins=\"bash ~/Programs/mass-git/mass-git -p ~/.oh-my-zsh/custom/plugins/ -r\"\nalias updatecopilot=\"bash ~/Programs/mass-git/mass-git -p ~/.config/nvim/pack/github/ -r\"\nalias updatebrew=\"brew update && brew upgrade && brew autoremove && brew cleanup && brew doctor\"\nalias updateomz=\"omz update\"\nalias updateall=\"updatebrew; updateomz; updatecopilot; updatezshplugins\"\n## GNU command aliases.\nalias cp=\"gcp\"\nalias mv=\"gmv\"\n####[[[ Group 2 ]]]#####################################################################\n#### Due to the number of commands that I find to be useful, I've created aliases\n#### containing some of these commands. They are specifically commands that I don't\n#### often use, but are useful to have on hand. Having these aliases allows me to see\n#### a list of these commands, without having to commit them to memeory.\nalias lt=\"echo -e \\\"\n####[ Package Manager installed commands ]##############################################\nbandwhich  - Terminal bandwidth utilization tool.\nbat        - A cat(1) clone with wings.\ncodespell  - Check code for common misspellings.\nduf        - Disk Usage/Free Utility - a better 'df' alternative.\nfzf        - A command-line fuzzy finder.\nncdu       - ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.\npstree     - List processes as a tree.\ntmux       - Terminal multiplexer.\n####[[ Grouped commands ]]##############################################################\nlt_conversion - List of programs used for converting the formats of videos, images, etc.\nlt_git        - List of programs used for git related commands.\n####[ Keyboard combinations ]###########################################################\nCtrl + O - Allows you to copy what you are currently typing, via 'Ctrl' + 'O'.\n\\\"\"\nalias lt_conversion=\"echo -e \\\"\n########################################################################################\n#### [ Image and video formatters ]\nffmpeg - FFmpeg is a collection of libraries and tools to process multimedia content.\nmagick - Convert between image formats as well as resize an image, blur, crop,\n         despeckle, dither, draw on, flip, join, re-sample, and much more.\n\\\"\"\nalias lt_git=\"echo -e \\\"\n####[ Git Related Commands ]###########################################################\nlazygit  - Simple terminal UI for git commands.\ngit open - Opens the GitHub page for a repo/branch in your browser.\nugit     - ugit helps you undo git commands without much effort.\n\\\"\"\n####[[[ SSH related commands ]]]########################################################\nalias hthompson=\"ssh -p 16449 hunter@143.198.55.59\"\nalias voidtech=\"ssh ranger@135.181.75.52\"\n####[[ Environmental Variables ]]#######################################################\n# 1Password auth socket.\nexport SSH_AUTH_SOCK=\"$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock\"\n## NVM setup...\nexport NVM_DIR=\"$HOME/.nvm\"\n[ -s \"/usr/local/opt/nvm/nvm.sh\" ] && \\. \"/usr/local/opt/nvm/nvm.sh\"  # This loads nvm\n[ -s \"/usr/local/opt/nvm/etc/bash_completion.d/nvm\" ] && \\. \"/usr/local/opt/nvm/etc/bash_completion.d/nvm\"  # This loads nvm bash_completion\n# Path purpose:\n#   /usr/local/opt/curl/bin:       ...\n#   /usr/local/sbin:               ???\n#   /usr/local/opt/openjdk@17/bin: Prefered java version.\n#   /usr/local/opt/node@18/bin:    Prefered node version.\nexport PATH=\"/usr/local/opt/curl/bin:/usr/local/sbin:/usr/local/opt/openjdk@17/bin:/usr/local/opt/node@18/bin:$PATH\"\n# Modifies colors of files and directories when using `ls`.\nexport LSCOLORS=\"exgxfxDxcxegDaabagacaD\"\n## Version of LSCOLORS compatible with zsh and GNU based commands.\n## You can find more information about LS_COLORS and why it's needed in addition to LSCOLORS,\n## here: https://github.com/ohmyzsh/ohmyzsh/issues/6060#issuecomment-327934559\nexport LS_COLORS=\"di=34:ln=36:so=35:pi=1;33:ex=32:bd=34;46:cd=1;33;40:su=30;41:sg=30;46:tw=30;42:ow=30;1;43\"\n## Editor configurations.\nexport EDITOR=nvim\nexport VISUAL=$EDITOR\n####[[ Sourced Files ]]#################################################################\n# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.\n[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh\n\n# Zsh \"plugin\" installed via git and the following command:\n# git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting\nzsh_syntax_highlighting=\"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh\"\n[[ -f $zsh_syntax_highlighting ]] && source \"$zsh_syntax_highlighting\"\n# Zsh \"plugin\" installed via git and the following command:\n# git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions\nzsh_autosuggestions=\"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh\"\n[[ -f $zsh_autosuggestions ]] && source \"$zsh_autosuggestions\"\n# Zsh \"plugin\" installed via git and the following command:\n# git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab\nfzf_tab=\"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab/fzf-tab.plugin.zsh\"\n[[ -f $fzf_tab ]] && hash fzf 2>/dev/null && source \"$fzf_tab\"\n# Enable the use of '1password-cli' plugins.\nsource \"$HOME/.config/op/plugins.sh\"\n####[[ Zsh Style Configurations ]]######################################################\n# Disable sort when completing `git checkout`.\nzstyle ':completion:*:git-checkout:*' sort false\n# Set descriptions format to enable group support.\n# NOTE: Don't use escape sequences here, fzf-tab will ignore them.\nzstyle ':completion:*:descriptions' format '[%d]'\n# Set list-colors to enable filename colorizing.\nzstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}\n## Preview directory's content with `eza` when completing `cd`.\nhash eza 2>/dev/null \\\n&& zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'\n# Switch group using `<` and `>`.\nzstyle ':fzf-tab:*' switch-group '<' '>'\n####[[ Others ]]########################################################################\n#### These are generally configurations set up by setup scripts or other programs.\n# CodeWhisperer post block. Keep at the bottom of this file.\n[[ -f \"${HOME}/Library/Application Support/codewhisperer/shell/zshrc.post.zsh\" ]] && builtin source \"${HOME}/Library/Application Support/codewhisperer/shell/zshrc.post.zsh\"\n
.zshrc
# If PowerLevel10K's Instant Prompt is enabled, `export GPG_TTY=$(tty)` needs to be\n# placed at the top of this file. Find more information here:\n# https://unix.stackexchange.com/questions/608842/zshrc-export-gpg-tty-tty-says-not-a-tty/608921#608921\nexport GPG_TTY=$(tty)\n# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.\n# Initialization code that may require console input (password prompts, [y/n]\n# confirmations, etc.) must go above this block; everything else may go below.\nif [[ -r \"${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\" ]]; then\nsource \"${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\"\nfi\n# Path to your oh-my-zsh installation.\nexport ZSH=\"$HOME/.oh-my-zsh\"\n# Set name of the theme to load --- if set to \"random\", it will\n# load a random theme each time oh-my-zsh is loaded, in which case,\n# to know which specific one was loaded, run: echo $RANDOM_THEME\n# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes\nZSH_THEME=\"powerlevel10k/powerlevel10k\"\n# Uncomment the following line to use case-sensitive completion.\n# CASE_SENSITIVE=\"true\"\n# Uncomment the following line to use hyphen-insensitive completion.\n# Case-sensitive completion must be off. _ and - will be interchangeable.\n# HYPHEN_INSENSITIVE=\"true\"\n# Uncomment the following line if pasting URLs and other text is messed up.\n# DISABLE_MAGIC_FUNCTIONS=true\n# Uncomment the following line to enable command auto-correction.\n# ENABLE_CORRECTION=\"true\"\n# Uncomment the following line if you want to change the command execution time\n# stamp shown in the history command output.\n# You can set one of the optional three formats:\n# \"mm/dd/yyyy\"|\"dd.mm.yyyy\"|\"yyyy-mm-dd\"\n# or set a custom format using the strftime function format specifications,\n# see 'man strftime' for details.\nHIST_STAMPS=\"yyyy-mm-dd\"\n# Which plugins would you like to load?\n# Standard plugins can be found in $ZSH/plugins/\n# Custom plugins may be added to $ZSH_CUSTOM/plugins/\n# Example format: plugins=(rails git textmate ruby lighthouse)\n# Add wisely, as too many plugins slow down shell startup.\n#plugins=(git colored-man-pages copybuffer copypath copyfile bgnotify)  # Desktop\nplugins=(git colored-man-pages)  # Server\n# Zsh \"plugin\" installed via git and the following command:\n# git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions\nzsh_completion=\"${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src\"\n[[ -d $zsh_completion ]] && fpath+=${zsh_completion}\nsource \"$ZSH/oh-my-zsh.sh\"\n####[ Personal Configurations ]#########################################################\n####[[ Aliases ]]#######################################################################\n####[[[ Group 1 ]]]#####################################################################\n## General aliases.\nalias zls=\"eza\"\n## Update based aliases.\nalias updatezshplugins=\"bash ~/Programs/mass-git/mass-git -p ~/.oh-my-zsh/custom/plugins/ -r\"\nalias updatecopilot=\"bash ~/Programs/mass-git/mass-git -p ~/.config/nvim/pack/github/ -r\"\nalias updateapt=\"sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y\"\nalias updateomz=\"omz update\"\nalias updateall=\"updateapt; updateomz; updatecopilot; updatezshplugins\"\n####[[[ Group 2 ]]]#####################################################################\n#### Due to the number of commands that I find to be useful, I've created aliases\n#### containing some of these commands. They are specifically commands that I don't\n#### often use, but are useful to have on hand. Having these aliases allows me to see\n#### a list of these commands, without having to commit them to memeory.\nalias lt=\"echo -e \\\"\n####[ Package Manager installed commands ]##############################################\nbandwhich  - Terminal bandwidth utilization tool.\nbat        - A cat(1) clone with wings.\ncheat      - Allows you to create and view interactive cheatsheets on the command-line.\ncodespell  - Check code for common misspellings.\nduf        - Disk Usage/Free Utility - a better 'df' alternative.\nfzf        - A command-line fuzzy finder.\nncdu       - ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.\npstree     - List processes as a tree.\ntmux       - Terminal multiplexer.\n####[[ Grouped commands ]]##############################################################\nlt_conversion - List of programs used for converting the formats of videos, images, etc.\nlt_git        - List of programs used for git related commands.\n####[ Keyboard combinations ]###########################################################\nCtrl + O - Allows you to copy what you are currently typing, via 'Ctrl' + 'O'.\n\\\"\"\nalias lt_conversion=\"echo -e \\\"\n########################################################################################\n#### [ Image and video formatters ]\nffmpeg - FFmpeg is a collection of libraries and tools to process multimedia content.\nmagick - Convert between image formats as well as resize an image, blur, crop,\n         despeckle, dither, draw on, flip, join, re-sample, and much more.\n\\\"\"\nalias lt_git=\"echo -e \\\"\n####[ Git Related Commands ]###########################################################\nlazygit  - Simple terminal UI for git commands.\ngit open - Opens the GitHub page for a repo/branch in your browser.\nugit     - ugit helps you undo git commands without much effort.\n\\\"\"\n####[[ Environmental Variables ]]#######################################################\n## Modifies the colors of files and directories in the terminal.\nexport LS_COLORS=\"di=34:ln=36:so=35:pi=1;33:ex=32:bd=34;46:cd=1;33;40:su=30;41:sg=30;46:tw=30;42:ow=30;1;43\"\n# This is set in the Zsh Style Configurations section.\n#zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}\n# PATH value...\nexport PATH=\"$PATH:$HOME/.local/bin\"\n####[[ Sourced Files ]]#################################################################\n# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.\n[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh\n\n# Zsh \"plugin\" installed via git and the following command:\n# git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting\nzsh_syntax_highlighting=\"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh\"\n[[ -f $zsh_syntax_highlighting ]] && source \"$zsh_syntax_highlighting\"\n# Zsh \"plugin\" installed via git and the following command:\n# git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions\nzsh_autosuggestions=\"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh\"\n[[ -f $zsh_autosuggestions ]] && source \"$zsh_autosuggestions\"\n# Zsh \"plugin\" installed via git and the following command:\n# git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab\nfzf_tab=\"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab/fzf-tab.plugin.zsh\"\n[[ -f $fzf_tab ]] && hash fzf 2>/dev/null && source \"$fzf_tab\"\n####[[ Zsh Style Configurations ]]######################################################\n# Disable sort when completing `git checkout`.\nzstyle ':completion:*:git-checkout:*' sort false\n# Set descriptions format to enable group support.\n# NOTE: Don't use escape sequences here, fzf-tab will ignore them.\nzstyle ':completion:*:descriptions' format '[%d]'\n# Set list-colors to enable filename colorizing.\nzstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}\n## Preview directory's content with `eza` when completing `cd`.\nhash eza 2>/dev/null \\\n&& zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'\n# Wwitch group using `<` and `>`.\nzstyle ':fzf-tab:*' switch-group '<' '>'\n####[[ Others ]]########################################################################\n#### These are generally configurations set up by setup scripts or other programs.\n
"},{"location":"#oh-my-zsh-plugins","title":"Oh-my-zsh Plugins","text":"

This is a list of all the oh-my-zsh plugins that I use and find to provide useful functionality.

Plugins Description Is a Command Other Info git The git plugin provides many aliases and a few useful functions Collection colored-man-pages Adds colors to man pages No copybuffer Allows you to copy what you are currently typing, via Ctrl+O Yes Key Combination: Ctrl+O copypath Copies the path of your working directory Yes copyfile Copies the contents of a file Yes bgnotify cross-platform background notifications for long running commands No Extra install instructions"},{"location":"#custom-aliases","title":"Custom Aliases","text":"

Below is a list of aliases that are in my .zshrc files. They are broken up into two groups: Group 1 and Group 2. Group 1 contains general aliases, while Group 2 contains aliases listing categorized commands. Most of these commands are programs mentioned in Useful Programs, that I don't frequently use, but still want to have quick access to.

macOSLinux .zshrc
####[[ Aliases ]]#######################################################################\n####[[[ Group 1 ]]]#####################################################################\n## General aliases.\nalias ic=\"cd ~/Library/Mobile\\ Documents/com~apple~CloudDocs\"\nalias edisk=\"cd /Volumes && ll\"\nalias zls=\"eza\"\nalias rmdsstore=\"find . -name '*.DS_Store' -type f -delete\"\nalias code=\"open -a 'Visual Studio Code.app' .\"\nalias formatc=\"find . -name '*.cs' -type f -exec clang-format --style=file:~/Programs/Mine/Formatter\\ Configs/CSharp_clang-format/_clang-format -i {} +\"\n## Update based aliases.\nalias updatezshplugins=\"bash ~/Programs/mass-git/mass-git -p ~/.oh-my-zsh/custom/plugins/ -r\"\nalias updatecopilot=\"bash ~/Programs/mass-git/mass-git -p ~/.config/nvim/pack/github/ -r\"\nalias updatebrew=\"brew update && brew upgrade && brew autoremove && brew cleanup && brew doctor\"\nalias updateomz=\"omz update\"\nalias updateall=\"updatebrew; updateomz; updatecopilot; updatezshplugins\"\n## GNU command aliases.\nalias cp=\"gcp\"\nalias mv=\"gmv\"\n####[[[ Group 2 ]]]#####################################################################\n#### Due to the number of commands that I find to be useful, I've created aliases\n#### containing some of these commands. They are specifically commands that I don't\n#### often use, but are useful to have on hand. Having these aliases allows me to see\n#### a list of these commands, without having to commit them to memeory.\nalias lt=\"echo -e \\\"\n####[ Package Manager installed commands ]##############################################\nbandwhich  - Terminal bandwidth utilization tool.\nbat        - A cat(1) clone with wings.\ncodespell  - Check code for common misspellings.\nduf        - Disk Usage/Free Utility - a better 'df' alternative.\nfzf        - A command-line fuzzy finder.\nncdu       - ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.\npstree     - List processes as a tree.\ntmux       - Terminal multiplexer.\n####[[ Grouped commands ]]##############################################################\nlt_conversion - List of programs used for converting the formats of videos, images, etc.\nlt_git        - List of programs used for git related commands.\n####[ Keyboard combinations ]###########################################################\nCtrl + O - Allows you to copy what you are currently typing, via 'Ctrl' + 'O'.\n\\\"\"\nalias lt_conversion=\"echo -e \\\"\n########################################################################################\n#### [ Image and video formatters ]\nffmpeg - FFmpeg is a collection of libraries and tools to process multimedia content.\nmagick - Convert between image formats as well as resize an image, blur, crop,\n         despeckle, dither, draw on, flip, join, re-sample, and much more.\n\\\"\"\nalias lt_git=\"echo -e \\\"\n####[ Git Related Commands ]###########################################################\nlazygit  - Simple terminal UI for git commands.\ngit open - Opens the GitHub page for a repo/branch in your browser.\nugit     - ugit helps you undo git commands without much effort.\n\\\"\"\n
.zshrc
####[[ Aliases ]]#######################################################################\n####[[[ Group 1 ]]]#####################################################################\n## General aliases.\nalias zls=\"eza\"\n## Update based aliases.\nalias updatezshplugins=\"bash ~/Programs/mass-git/mass-git -p ~/.oh-my-zsh/custom/plugins/ -r\"\nalias updatecopilot=\"bash ~/Programs/mass-git/mass-git -p ~/.config/nvim/pack/github/ -r\"\nalias updateapt=\"sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y\"\nalias updateomz=\"omz update\"\nalias updateall=\"updateapt; updateomz; updatecopilot; updatezshplugins\"\n####[[[ Group 2 ]]]#####################################################################\n#### Due to the number of commands that I find to be useful, I've created aliases\n#### containing some of these commands. They are specifically commands that I don't\n#### often use, but are useful to have on hand. Having these aliases allows me to see\n#### a list of these commands, without having to commit them to memeory.\nalias lt=\"echo -e \\\"\n####[ Package Manager installed commands ]##############################################\nbandwhich  - Terminal bandwidth utilization tool.\nbat        - A cat(1) clone with wings.\ncheat      - Allows you to create and view interactive cheatsheets on the command-line.\ncodespell  - Check code for common misspellings.\nduf        - Disk Usage/Free Utility - a better 'df' alternative.\nfzf        - A command-line fuzzy finder.\nncdu       - ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du'.\npstree     - List processes as a tree.\ntmux       - Terminal multiplexer.\n####[[ Grouped commands ]]##############################################################\nlt_conversion - List of programs used for converting the formats of videos, images, etc.\nlt_git        - List of programs used for git related commands.\n####[ Keyboard combinations ]###########################################################\nCtrl + O - Allows you to copy what you are currently typing, via 'Ctrl' + 'O'.\n\\\"\"\nalias lt_conversion=\"echo -e \\\"\n########################################################################################\n#### [ Image and video formatters ]\nffmpeg - FFmpeg is a collection of libraries and tools to process multimedia content.\nmagick - Convert between image formats as well as resize an image, blur, crop,\n         despeckle, dither, draw on, flip, join, re-sample, and much more.\n\\\"\"\nalias lt_git=\"echo -e \\\"\n####[ Git Related Commands ]###########################################################\nlazygit  - Simple terminal UI for git commands.\ngit open - Opens the GitHub page for a repo/branch in your browser.\nugit     - ugit helps you undo git commands without much effort.\n\\\"\"\n
"},{"location":"#modifying-cli-colors","title":"Modifying CLI Colors","text":"

The terminal colors that are used for folders, files, and other items in the command line interface can be customized using the LS_COLORS (macOS & Linux) and LSCOLORS (macOS) environment variables. If you want to modify these colors, you can do so by setting the LS_COLORS or LSCOLORS variable in your .zshrc file.

LS_COLORS & LSCOLORS Explained

On macOS, both LSCOLORS and LS_COLORS are necessary for specifying terminal colors. LSCOLORS is used for commands like ls, determining the colors in the command line interface, whereas LS_COLORS is used by zsh for similar purposes. In contrast, Linux only requires LS_COLORS, which is employed by both the ls command and zsh.

The underlying reason for this difference lies in the distinct versions of the ls command on macOS (FreeBSD version) and Linux (GNU version). macOS's ls command relies on LSCOLORS for color settings, while Linux uses LS_COLORS, each with its unique formatting. Moreover, since zsh recognizes only the LS_COLORS format, it's imperative to use it on macOS to ensure proper display and functionality of CLI colors.

Included below is a key that explains the values of LSCOLORS and LS_COLORS in my configurations:

LSCOLORS LS_COLORS Type Text Color Foreground/Background Color ex di=34 Directories blue default gx ln=36 Symbolic link cyan default fx so=35 Socket magenta default Dx pi=1;33 Pipe bold yellow default cx ex=32 Executable green default eg bd=34;46 Block special green cyan Da cd=1;33;40 Character special bold yellow black ab su=30;41 Executable with setuid bit set black red ag sg=30;46 Executable with setgid bit set black cyan ac tw=30;42 Directory writeable to others (with a sticky bit) black green aD ow=30;1;43 Directory writeable to others (without sticky bit) black bold yellow

For an in-depth understanding of LS_COLORS and LSCOLORS, I recommend visiting this gist.

Below are my configurations for both macOS and Linux systems. To apply these settings, simply insert the following code into your ~/.zshrc file:

macOSLinux CLI Color Configuration
# Modifies colors of files and directories when using `ls`.\nexport LSCOLORS=\"exgxfxDxcxegDaabagacaD\"\n## Version of LSCOLORS compatible with zsh and GNU based commands.\n## You can find more information about LS_COLORS and why it's needed in addition to LSCOLORS,\n## here: https://github.com/ohmyzsh/ohmyzsh/issues/6060#issuecomment-327934559\nexport LS_COLORS=\"di=34:ln=36:so=35:pi=1;33:ex=32:bd=34;46:cd=1;33;40:su=30;41:sg=30;46:tw=30;42:ow=30;1;43\"\nzstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}\n
CLI Color Configuration
## Modifies the colors of files and directories in the terminal.\nexport LS_COLORS=\"di=34:ln=36:so=35:pi=1;33:ex=32:bd=34;46:cd=1;33;40:su=30;41:sg=30;46:tw=30;42:ow=30;1;43\"\nzstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}\n

You can additionally modify the shading and appearance of the CLI colors by adjusting the ANSI-color scheme in your terminal profile. This can be done manually, with guides available for both macOS and Linux (gnome specific instructions). Alternatively, you can use my custom profile schemes, which are detailed in the Terminal Profile section.

"},{"location":"#neovim-resource-file","title":"Neovim Resource File","text":"

Due to the extensibility and community of Neovim, I have chosen it as my primary text editor, favoring it over the traditional Vi or Vim. Below are the configurations for my init.vim file, which is located in the ~/.config/nvim/ directory. The configurations are divided into two sections: with and without vim-plug plugins.

"},{"location":"#with-vim-plug-plugins","title":"With Vim-Plug Plugins","text":"

The following configurations modify the behavior and appearance of vim. To use these settings, you'll first need to install vim-plug, a plugin manager for vim. While other vim package managers can be used, the configurations are tailored specifically for vim-plug.

After installing vim-plug, copy the code below into your ~/.config/nvim/init.vim file. With init.vim open in nvim, initiate the plugin installation by entering :source % and :PlugInstall as separate commands. This will prompt vim-plug to begin the installation of the plugins outlined in the configurations below.

Note

When using :source %, you can ignore any errors that might occur, as they are (most likely) a result of nvim looking for the plugins that have yet to be installed.

Vim Plugin Information

Here is a list of all the plugins listed in init.vim, along with a description of what they do.

Plugins Description HiPhish/rainbow-delimiters.nvim Rainbow delimiters for Neovim with Tree-sitter. vim-airline/vim-airline Lean & mean status/tabline for vim that's light as air. vim-airline/vim-airline-themes A collection of themes for vim-airline. morhetz/gruvbox Retro groove color scheme for Vim. dense-analysis/ale Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support. ntpeters/vim-better-whitespace Better whitespace highlighting for Vim. nvim-treesitter/nvim-treesitter Nvim Treesitter configurations and abstraction layer. mechatroner/rainbow_csv Highlight columns in CSV and TSV files and run queries in SQL-like language. init.vim
\"\"\"\"[ vim-plug Configurations ]\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\ncall plug#begin(stdpath('data') . '/plugged')\n\" Make sure you use single quotes\n\" Vim help for vim-plug itself\nPlug 'junegunn/vim-plug'\n\" Rainbow delimiters for Neovim with Tree-sitter.\nPlug 'HiPhish/rainbow-delimiters.nvim'\n\" Lean & mean status/tabline for vim that's light as air.\nPlug 'vim-airline/vim-airline'\n\" A collection of themes for vim-airline.\nPlug 'vim-airline/vim-airline-themes'\n\" Retro groove color scheme for Vim.\nPlug 'sainnhe/gruvbox-material'\n\" Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP)\n\" support.\nPlug 'dense-analysis/ale'\n\" Better whitespace highlighting for Vim.\nPlug 'ntpeters/vim-better-whitespace'\n\" An incremental parsing system for programming tools.\nPlug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}\n\" Highlight columns in CSV and TSV files and run queries in SQL-like language.\nPlug 'mechatroner/rainbow_csv'\n\" Initialize plugin system\ncall plug#end()\n\"\n\" Brief help:\n\"   PlugInstall  - Install plugins\n\"   PlugUpdate   - Install or update plugins\n\"   PlugClean    - Remove unlisted plugins (bang version will clean without prompt)\n\"   PlugUpgrade  - Upgrade vim-plug itself\n\"   PlugStatus   - Check the status of plugins\n\"   PlugDiff     - Examine changes from the previous update and the pending changes\n\"   PlugSnapshot - Generate script for restoring the current snapshot of the plugins\n\"\"\"\"[ Non-vim-plug Related Configurations ]\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\" Overwrites specified default setting.\nset tabstop=4       \" Tells vim how many columns a tab counts for.\nset shiftwidth=4    \" 'Levels of indentation', where a level of indentation is\n                    \" shiftwidth columns of whitespace.\nset expandtab       \" Ensure that when you hit tab it will actually use spaces.\nset colorcolumn=88  \" Set a colored line at column 88 in every row.\n\"\" Markdown files\nautocmd Filetype markdown setlocal colorcolumn=0\n\"\" TXT files\nautocmd Filetype text setlocal colorcolumn=0\n\"\" Java\nautocmd Filetype java setlocal colorcolumn=94\n\"\" C#\nautocmd Filetype cs setlocal colorcolumn=120\n\"\" HTML\nautocmd Filetype html setlocal colorcolumn=100 tabstop=2 shiftwidth=2 nowrap\n\"\" CSS\nautocmd Filetype css setlocal colorcolumn=100 tabstop=2 shiftwidth=2 nowrap\n\"\" Vue\nautocmd Filetype vue setlocal colorcolumn=100 tabstop=2 shiftwidth=2\n\"\"\"\"[ vim-plug Plugin Configurations ]\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\" Font: Power Line Font\nset guifont=MesloLGS_NF:h12\n\n\"\" Plugin: gruvbox-material\ncolorscheme gruvbox-material\nset background=dark\nlet g:gruvbox_material_foreground = 'original'\nlet g:gruvbox_material_enable_bold = 1\nlet g:gruvbox_material_enable_italic = 1\n\"\" Plugin: vim-airline\nlet g:airline#extensions#tabline#enabled = 1\nlet g:airline#extensions#tabline#left_sep = ' '\nlet g:airline#extensions#tabline#left_alt_sep = '|'\nlet g:airline#extensions#tabline#formatter = 'default'\nlet g:airline#extensions#ale#enabled = 1\nlet g:airline_powerline_fonts = 1\n\"\" Plugin: better-whitespace\nlet g:better_whitespace_enabled = 1\nlet g:strip_whitespace_on_save = 1\n\"\" Plugin: ale\n\"let g:ale_use_neovim_diagnostics_api = 0\n\"\"\"\"[ Useful Commands ]\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\" :NERDTree        - Opens NERDTree file system explorer.\n\" :StripWhitespace - Clean extra whitespace.\n\" :ALEInfo         - Show ALE information.\n\" :ALEToggle       - Toggle ALE on/off.\n\" :TSInstall       - Install treesitter parsers.\n\" :TSUpdate        - Update treesitter parsers.\n\" :TSInstallInfo   - Show treesitter information.\n
"},{"location":"#without-vim-plug-plugins","title":"Without Vim-Plug Plugins","text":"

If you prefer not to use all the features offered by vim-plug, you can opt for a more basic setup by incorporating the configurations listed below into your .vimrc file. These adjustments modify certain default settings of vim without altering the core functionality, providing a simpler, more streamlined experience while maintaining the essence of vim's default behavior.

init.vim
\"\" Overwrites specified default setting.\nset tabstop=4       \" Tells vim how many columns a tab counts for.\nset shiftwidth=4    \" 'Levels of indentation', where a level of indentation is\n                    \" shiftwidth columns of whitespace.\nset expandtab       \" Ensure that when you hit tab it will actually use spaces.\nset colorcolumn=88  \" Set a colored line at column 88 in every row.\n\"\" Markdown files\nautocmd Filetype markdown setlocal colorcolumn=0\n\"\" TXT files\nautocmd Filetype text setlocal colorcolumn=0\n\"\" Java\nautocmd Filetype java setlocal colorcolumn=94\n\"\" C#\nautocmd Filetype cs setlocal colorcolumn=120\n\"\" HTML\nautocmd Filetype html setlocal colorcolumn=100 tabstop=2 shiftwidth=2 nowrap\n\"\" CSS\nautocmd Filetype css setlocal colorcolumn=100 tabstop=2 shiftwidth=2 nowrap\n\"\" Vue\nautocmd Filetype vue setlocal colorcolumn=100 tabstop=2 shiftwidth=2\n
"},{"location":"#neovim-github-copilot","title":"Neovim GitHub Copilot","text":"

...coming soon...

"},{"location":"#installed-treesitter-parsers","title":"Installed TreeSitter Parsers","text":"

...coming soon...

"},{"location":"#terminal-profile","title":"Terminal Profile","text":"macOSLinux

My custom terminal profile is a modified version of the Basic profile that comes pre-installed on macOS. To add it to your list of profiles, follow the instructions below:

  1. Download the terminal profile using the following link: Terminal Profile
  2. Open a terminal window.
  3. Click on Preferences... ==> Profiles ==> the gear icon at the bottom left of the window ==> Import... ==> locate and click on the 'Basic (Modified).terminal' tab
  4. Click on the new terminal profile, then press the \"Default\" button located at the bottom of the window.

My custom terminal profile is a based on the Terminal Profile that I use on macOS. To add it to your list of profiles, follow the instructions below:

  1. Download the terminal profile using the following link: Terminal Profile
  2. Open a terminal window.
  3. Enter the following command to import the profiles: dconf load /org/gnome/terminal/legacy/profiles:/ < LOCATION_OF_DOWNLOADED_FILE

Warning

Using the above dconf command will overwrite all existing profiles

"},{"location":"CHANGELOG/","title":"Changelog","text":"

All notable changes to this project will be documented in this file.

As a note, if the changelog only says \"removed(program)\", assume it's been removed from the entire readme. If it's only from a specific section, it'll be specified within the parentheses of the change.

"},{"location":"CHANGELOG/#2024425","title":"2024.4.25","text":"
  • added(programs): cheat
  • added(programs): fzf-tab
  • added(programs): eza
  • added(init.vim): mechatroner/rainbow_csv
  • added(zshrc): Updated and added new zstyle settings. They are now located in a section called \"Zsh Style Configurations\".
  • added(readme): Added a few new sections for future documentation.
  • changed(zshrc): Checks if fzf is installed before sourcing fzf-tab.
  • changed(zshrc): Removed azure autoload and source.
  • changed(readme): Add recommended method of installing fzf on Linux.
  • changed(aliases): Rename several aliases.
  • changed(aliases): Add new alias for eza.
  • removed(aliases): Removed lsd based aliases.
  • removed(zshrc): PATH variable updated.
"},{"location":"CHANGELOG/#2024422","title":"2024.4.22","text":"

This update is a major overhaul and rewrite of the entire repository. Because of this, I will not be listing all of the changes, as it would be too much to list. However, I will list some of the major changes:

  • changed(programs): Added and removed many programs. The programs better reflect what I consistently use and/or like to have on hand at any given time.
  • changed(vim => neovim): I've switched from using Vim to Neovim. All configurations and documentation referring to vim have been updated to reflect this change.
  • changed(init.vim): The main configuration file for Neovim has been updated to reflect the changes made to the programs and plugins.
  • changed(aliases): Updated and added new aliases.
  • changed(readme): Rewrote 90% of the documentation to improve wording, clarity, and overall readability. I've also added new sections and removed old ones that were no longer relevant.
  • changed(readme): Added a notice section to inform users to view the document on my website, to view it in its entirety.
"},{"location":"CHANGELOG/#2023627","title":"2023.6.27","text":"
  • added(vimrc): ntpeters/vim-better-whitespace.
  • added(vimrc): New file specific configurations.
  • changed(readme): Update url link of website status badge.
  • changed(readme/misc): Using new feature provided by updated dependencies/packages, I've removed many redundant files and replaced them with a single file that is used in multiple places. This should make maintaining this repository much easier.
"},{"location":"CHANGELOG/#2022825","title":"2022.8.25","text":"
  • added(zshrc): New aliases.
  • added(zshrc): git plugin.
  • added(vimrc): Add specific configurations for markdown and txt files.
  • changed(zshrc): Update existing aliases.
  • changed(zshrc): The contents of .zshrc no longer contain the ENTIRE contents of my .zshrc, rather just most of the general configurations. It was becoming too much of a pain to continuously document every little change.
  • changed(vimrc): Slight wording/formatting changes.
  • removed(zshrc): Unnecessary code.
  • removed(program): fd/fd-find
  • removed(program): git-quick-stats
"},{"location":"CHANGELOG/#2022717","title":"2022.7.17","text":"
  • added(vimrc): valloric/youcompleteme.
  • added(zshrc): New aliases.
  • added(readme): A link to the repository of the newly added vimrc plugin.
  • added(zshrc): Comments on the commands to download the zsh plugins.
  • changed(vimrc): Slight formatting change.
  • changed(zshrc): Modified plugins.
  • changed(zshrc): General refactoring.
  • changed(zshrc): A bunch of other small changes.
"},{"location":"CHANGELOG/#2022526","title":"2022.5.26","text":"
  • changed(zshrc): Removed some code in the linux zshrc files that I don't consider to be general configurations.
  • changed(vimrc): Add specific configurations for Markdown files.
  • changed(readme): Changed the website status badge.
"},{"location":"CHANGELOG/#2022524","title":"2022.5.24","text":"
  • added(zshrc): LS_COLORS, to match LSCOLORS...
  • added(vimrc): set colorcolumn=89.
  • added(profile): Terminal profile for the gnome terminal.
  • added(programs): fzf.
  • added(programs): zsh-completions.
  • added(programs): gallery-dl.
  • added(ohmyzsh-plugin): zsh-autosuggestions, removing the need to source it.
  • changed: Update information in section Modifying LSCOLORS (which is now Modifying CLI Colors) to include information about LS_COLORS.
  • changed: Update information, wording, and other things small throughout the document...
  • changed(vimrc): Now using vim-plug instead of Vundle. All information relating or referencing to Vundle, has been changed to vim-plug.
  • changed(zshrc): LSCOLOR is now set from exgxfxDxcxegDhabagacaD to exgxfxDxcxegDhabagacaD.
  • changed(zshrc): Created two separate versions of the linux zshrc file. One specific to desktop and the other to server.
  • changed(aliases): Update alias information.
  • removed(aliases): Unneeded aliases + alias content.
  • removed(program): bottom.
  • removed(program): hstr.
"},{"location":"CHANGELOG/#202231","title":"2022.3.1","text":"
  • added(programs): comments to mkdocs.yml.
  • changed(mkdocs): Updated plugins, features, and extensions used via mkdocs.yml.
  • changed(mkdocs): Updated version number of all packages in mkdocs-requirements.txt.
  • changed(zshrc): Updated deprecated zsh plugin copydir to copypath.
  • changed(README): The section of the document displaying my .zshrc and .vimrc files, uses the code from the files in the insides folder.
"},{"location":"CHANGELOG/#20211221","title":"2021.12.21","text":"
  • added(programs): git-quick-stats.
  • added(programs): pyenv.
  • added(programs): ffmpeg.
  • added(programs): asciinema.
  • added(programs): m-cli.
  • added(programs): .tmux.
  • added(programs): tmux.
  • added(programs): imagemagick.
  • added(misc): a few other things that I can't remember.
  • changed: Updated the Custom Aliases section.
  • changed: Updated the My .zshrc section.
  • changed: Updated Terminal Profile.
  • removed(program): duti.
  • removed(program): jq.
  • removed(program): Homebrew Command Not Found.
  • removed(program): symboliclinker.
  • removed(program): tmux and wget and tree, as they are usually installed by default.
  • removed(program): gistome.
  • removed(program): git-extras.
  • removed(vimrc): davidhalter/jedi-vim.
  • removed(vimrc): tpope/vim-fugitive.
  • removed(program): edkolev/tmuxline.vim.
  • removed(program): pdfgrep.
  • removed(program): hub.
  • removed(program): cloc.
  • fixed(readme): Wording and grammar throughout README.md.
"},{"location":"CHANGELOG/#202165","title":"2021.6.5","text":"

This is the first \"release\" where all configurations and such have been completely added.

"},{"location":"LICENSE/","title":"License","text":"

MIT License

Copyright \u00a9 2020-2024 Hunter T. (StrangeRanger)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..0f8724e --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..6d5aaa133e6988186c8cd358156f4344c2424afd GIT binary patch literal 127 zcmV-_0D%7=iwFpu>a%77|8r?{Wo=<_E_iKh04<9_3V)_WXo8&M?ytk3HC}0~zlG)Vu