bitburner-src/doc/build/html/terminal.html

518 lines
26 KiB
HTML
Raw Normal View History

2018-05-02 19:38:11 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="English">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Terminal &#8212; Bitburner 1.0 documentation</title>
<link rel="stylesheet" href="_static/agogo.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Keyboard Shortcuts" href="shortcuts.html" />
<link rel="prev" title="Netscript Miscellaneous" href="netscriptmisc.html" />
</head>
<body>
<div class="header-wrapper" role="banner">
<div class="header">
<div class="headertitle"><a
href="index.html">Bitburner 1.0 documentation</a></div>
<div class="rel" role="navigation" aria-label="related navigation">
<a href="netscriptmisc.html" title="Netscript Miscellaneous"
accesskey="P">previous</a> |
<a href="shortcuts.html" title="Keyboard Shortcuts"
accesskey="N">next</a> |
<a href="genindex.html" title="General Index"
accesskey="I">index</a>
</div>
</div>
</div>
<div class="content-wrapper">
<div class="content">
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="terminal">
<span id="id1"></span><h1>Terminal<a class="headerlink" href="#terminal" title="Permalink to this headline"></a></h1>
<p>The Terminal is a console emulator program that lets you interface with all of the
Servers in the game. The Terminal can be accessed by clicking the 'Terminal' tab
on the navigation menu on the left-hand side of the game (you may need to expand
the 'Hacking' header in order to see the 'Terminal' tab). Alternatively, the keyboard
shortcut Alt + t can be used to open the Terminal.</p>
<div class="section" id="configuration">
<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline"></a></h2>
<p>The terminal has a configuration file called .fconf. To edit this file, go to
the terminal and enter:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">nano</span> <span class="o">.</span><span class="n">fconf</span>
</pre></div>
</div>
</div>
<div class="section" id="commands">
<h2>Commands<a class="headerlink" href="#commands" title="Permalink to this headline"></a></h2>
<div class="section" id="alias">
<h3>alias<a class="headerlink" href="#alias" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ alias [-g] [name=&quot;value&quot;]</div></blockquote>
<p>Create or display aliases. An alias enables a replacement of a word with another
string. It can be used to abbreviate a commonly used command, or commonly used
parts of a command. The NAME of an alias defines the word that will be
replaced, while the VALUE defines what it will be replaced by. For example,
you could create the alias 'nuke' for the Terminal command 'run NUKE.exe'
using the following:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ alias nuke=&quot;run NUKE.exe&quot;
</pre></div>
</div>
<p>Then, to run the NUKE.exe program you would just have to enter 'nuke' in
Terminal rather than the full command. It is important to note that 'default'
aliases will only be substituted for the first word of a Terminal command. For
example, if the following alias was set:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ alias worm=&quot;HTTPWorm.exe&quot;
</pre></div>
</div>
<p>and then you tried to run the following terminal command:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ run worm
</pre></div>
</div>
<p>This would fail because the worm alias is not the first word of a Terminal
command. To allow an alias to be substituted anywhere in a Terminal command,
rather than just the first word, you must set it to be a global alias using the -g flag:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ alias -g worm=&quot;HTTPWorm.exe&quot;
</pre></div>
</div>
<p>Now, the 'worm' alias will be substituted anytime it shows up as an individual word in
a Terminal command.</p>
<p>Entering just the command 'alias' without any arguments prints the list of all
defined aliases in the reusable form 'alias NAME=VALUE' on the Terminal.</p>
<p>The <a class="reference internal" href="#unalias-terminal-command"><span class="std std-ref">unalias</span></a> Terminal command can be used to remove aliases.</p>
</div>
<div class="section" id="analyze">
<h3>analyze<a class="headerlink" href="#analyze" title="Permalink to this headline"></a></h3>
<p>Prints details and statistics about the current server. The information that is
printed includes basic server details such as the hostname, whether the player
has root access, what ports are opened/closed, and also hacking-related information
such as an estimated chance to successfully hack, an estimate of how much money is
available on the server, etc.</p>
</div>
<div class="section" id="buy">
<h3>buy<a class="headerlink" href="#buy" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ buy [-l/program]</div></blockquote>
<p>Purchase a program through the Dark Web. Requires a TOR Router to use.</p>
<p>If this command is ran with the '-l' flag, it will display a list of all programs
that can be purchased through the Dark Web, as well as their costs.</p>
<p>Otherwise, the name of the program must be passed in as a parameter. This name
is NOT case-sensitive:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ buy brutessh.exe
</pre></div>
</div>
<p>Note that you do not need to be connected to the actual dark web server in order
to run this command. You can use this command at any time on the Terminal.</p>
</div>
<div class="section" id="cat">
<h3>cat<a class="headerlink" href="#cat" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ cat [filename]</div></blockquote>
<p>Display a message (.msg), literature (.lit), or text (.txt) file:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ cat j1.msg
$ cat foo.lit
$ cat servers.txt
</pre></div>
</div>
</div>
<div class="section" id="check">
<h3>check<a class="headerlink" href="#check" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ check [script name] [args...]</div></blockquote>
<p>Print the logs of the script specified by the script name and arguments to the Terminal.
Each argument must be separated by a space.
<strong>Remember that a running script is uniquely identified both by its name and the arguments that are used to start it</strong>. So,
if a script was ran with the following arguments:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ run foo.script 1 2 foodnstuff
</pre></div>
</div>
<p>Then to run the 'check' command on this script you would have to pass the same arguments in:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ check foo.script 1 2 foodnstuff
</pre></div>
</div>
</div>
<div class="section" id="clear-cls">
<h3>clear/cls<a class="headerlink" href="#clear-cls" title="Permalink to this headline"></a></h3>
<p>Clear the Terminal screen, deleting all of the text. Note that this does not
delete the user's command history, so using the up and down arrow keys is
still valid. Also note that this is permanent and there is no way to undo this.
Both 'clear' and 'cls' do the same thing:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ clear
$ cls
</pre></div>
</div>
</div>
<div class="section" id="connect">
<h3>connect<a class="headerlink" href="#connect" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ connect [hostname/ip]</div></blockquote>
<p>Connect to a remote server. The hostname or IP address of the remote server must
be given as the argument to this command. Note that only servers that are immediately
adjacent to the current server in the network can be connected to. To see which
servers can be connected to, use the 'scan' command.</p>
</div>
<div class="section" id="download">
<h3>download<a class="headerlink" href="#download" title="Permalink to this headline"></a></h3>
<p>Downloads a script or text file to your computer (your real-life computer):</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ download masterScript.script
$ download importantInfo.txt
</pre></div>
</div>
<p>You can also download all of your scripts/text files as a zip file using the following
Terminal commands:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ download *
$ download *.script
$ download *.txt
2018-05-02 19:38:11 +02:00
</pre></div>
</div>
</div>
<div class="section" id="free">
<h3>free<a class="headerlink" href="#free" title="Permalink to this headline"></a></h3>
<p>Display's the memory usage on the current machine. Print the amount of RAM that
is available on the current server as well as how much of it is being used.</p>
</div>
<div class="section" id="hack">
<h3>hack<a class="headerlink" href="#hack" title="Permalink to this headline"></a></h3>
<p>Attempt to hack the current server. Requires root access in order to be run.</p>
<p>Related: Hacking Mechanics (TODO Add link here when page gets made)</p>
</div>
<div class="section" id="help">
<h3>help<a class="headerlink" href="#help" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ help [command]</div></blockquote>
<p>Display Terminal help information. Without arguments, 'help' prints a list of all
valid Terminal commands and a brief description of their functionality. You can
also pass the name of a Terminal command as an argument to 'help' to print more
detailed information about the Terminal command. Examples:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ help alias
$ help scan-analyze
</pre></div>
</div>
</div>
<div class="section" id="home">
<h3>home<a class="headerlink" href="#home" title="Permalink to this headline"></a></h3>
<p>Connect to your home computer. This will work no matter what server you are currently connected to.</p>
</div>
<div class="section" id="hostname">
<h3>hostname<a class="headerlink" href="#hostname" title="Permalink to this headline"></a></h3>
<p>Prints the hostname of the server you are currently connected to.</p>
</div>
<div class="section" id="ifconfig">
<h3>ifconfig<a class="headerlink" href="#ifconfig" title="Permalink to this headline"></a></h3>
<p>Prints the IP address of the server you are currently connected to.</p>
</div>
<div class="section" id="kill">
<h3>kill<a class="headerlink" href="#kill" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ kill [script name] [args...]</div></blockquote>
<p>Kill the script specified by the script name and arguments. Each argument must
be separated by a space. Remember that a running script is uniquely identified
by both its name and the arguments that are used to start it. So, if a script
was ran with the following arguments:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ run foo.script 50e3 sigma-cosmetics
</pre></div>
</div>
<p>Then to kill this script the same arguments would have to be used:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ kill foo.script 50e3 sigma-cosmetics
</pre></div>
</div>
<p>Note that after issuing the 'kill' command for a script, it may take a few seconds for
the script to actually stop running.</p>
</div>
<div class="section" id="killall">
<h3>killall<a class="headerlink" href="#killall" title="Permalink to this headline"></a></h3>
<p>Kills all scripts on the current server.</p>
</div>
<div class="section" id="ls">
<h3>ls<a class="headerlink" href="#ls" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ ls [| grep pattern]</div></blockquote>
<p>Prints files on the current server to the Terminal screen.</p>
<p>If this command is run with no arguments, then it prints all files on the current
server to the Terminal screen. The files will be displayed in alphabetical
order.</p>
<p>The '| grep pattern' is an optional parameter that can be used to only display files
whose filenames match the specified pattern. For example, if you wanted to only display
files with the .script extension, you could use:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ ls | grep .script
</pre></div>
</div>
<p>Alternatively, if you wanted to display all files with the word <em>purchase</em> in the filename,
you could use:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ ls | grep purchase
</pre></div>
</div>
</div>
<div class="section" id="lscpu">
<h3>lscpu<a class="headerlink" href="#lscpu" title="Permalink to this headline"></a></h3>
<p>Prints the number of CPU cores the current server has.</p>
</div>
<div class="section" id="mem">
<h3>mem<a class="headerlink" href="#mem" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ mem [script name] [-t] [num threads]</div></blockquote>
<p>Displays the amount of RAM needed to run the specified script with a single
thread. The command can also be used to print the amount of RAM needed to run
a script with multiple threads using the '-t' flag. If the '-t' flag is
specified, then an argument for the number of threads must be passed in
afterwards. Examples:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ mem foo.script
$ mem foo.script -t 50
</pre></div>
</div>
<p>The first example above will print the amount of RAM needed to run 'foo.script'
with a single thread. The second example above will print the amount of RAM needed
to run 'foo.script' with 50 threads.</p>
</div>
<div class="section" id="nano">
<h3>nano<a class="headerlink" href="#nano" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ nano [filename]</div></blockquote>
<p>Opens up the specified file in the Text Editor. Only scripts (.script, .ns, .js) and
2018-05-02 19:38:11 +02:00
text files (.txt) can be edited. If the file does not already exist, then a new
empty file will be created.</p>
</div>
<div class="section" id="ps">
<h3>ps<a class="headerlink" href="#ps" title="Permalink to this headline"></a></h3>
<p>Prints all scripts that are currently running on the current server.</p>
</div>
<div class="section" id="rm">
<h3>rm<a class="headerlink" href="#rm" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ rm [filename]</div></blockquote>
<p>Removes the specified file from the current server. This works for every file type
except literature files (.lit).</p>
<p><strong>WARNING: This is permanent and cannot be undone</strong></p>
</div>
<div class="section" id="run">
<h3>run<a class="headerlink" href="#run" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ run [file name] [-t] [num threads] [args...]</div></blockquote>
<p>Execute a program or a script.</p>
<p>The '[-t]', '[num threads]', and '[args...]' arguments are only valid when
running a script. The '-t' flag is used to indicate that the script should
be run with the specified number of threads. If the flag is omitted, then
the script will be run with a single thread by default. If the '-t' flag is
used, then it MUST come immediately after the script name, and the
[num threads] argument MUST come immediately afterwards.</p>
<p>[args...] represents a variable number of arguments that will be passed into
the script. See the documentation about script arguments. Each specified
argument must be separated by a space.</p>
<p><strong>Examples</strong></p>
<p>Run a program:</p>
<blockquote>
<div>run BruteSSH.exe</div></blockquote>
<p>Run <em>foo.script</em> with 50 threads and the arguments [1e3, 0.5, foodnstuff]:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">run</span> <span class="n">foo</span><span class="o">.</span><span class="n">script</span> <span class="o">-</span><span class="n">t</span> <span class="mi">50</span> <span class="mf">1e3</span> <span class="mf">0.5</span> <span class="n">foodnstuff</span>
</pre></div>
</div>
</div>
<div class="section" id="scan">
<h3>scan<a class="headerlink" href="#scan" title="Permalink to this headline"></a></h3>
<p>Prints all immediately-available network connections. This will print a list
of all servers that you can currently connect to using the 'connect' Terminal command.</p>
</div>
<div class="section" id="scan-analyze">
<h3>scan-analyze<a class="headerlink" href="#scan-analyze" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ scan-analyze [depth]</div></blockquote>
<p>Prints detailed information about all servers up to <em>[depth]</em> nodes away on the
network. Calling 'scan-analyze 1' will display information for the same servers
that are shown by the 'scan' Terminal command. This command also shows the
relative paths to reach each server.</p>
<p>By default, the maximum depth that can be specified for 'scan-analyze' is 3.
However, once you have the <em>DeepscanV1.exe</em> and <em>DeepscanV2.exe</em> programs, you can
execute 'scan-analyze' with a depth up to 5 and 10, respectively.</p>
<p>The information 'scan-analyze' displays about each server includes whether or
not you have root access to it, its required hacking level, the number of open
ports required to run NUKE.exe on it, and how much RAM it has.</p>
</div>
<div class="section" id="scp">
<h3>scp<a class="headerlink" href="#scp" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ scp [script name] [target server]</div></blockquote>
<p>Copies the specified script from the current server to the target server.
The second argument passed in must be the hostname or IP of the target server.</p>
</div>
<div class="section" id="sudov">
<h3>sudov<a class="headerlink" href="#sudov" title="Permalink to this headline"></a></h3>
<p>Prints whether or not you have root access to the current server.</p>
</div>
<div class="section" id="tail">
<h3>tail<a class="headerlink" href="#tail" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ tail [script name] [args...]</div></blockquote>
<p>Displays dynamic logs for the script specified by the script name and arguments.
Each argument must be separated by a space. Remember that a running script is
uniquely identified by both its name and the arguments that were used to run
it. So, if a script was ran with the following arguments:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ run foo.script 10 50000
</pre></div>
</div>
<p>Then in order to check its logs with 'tail' the same arguments must be used:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ tail foo.script 10 50000
</pre></div>
</div>
</div>
<div class="section" id="theme">
<h3>theme<a class="headerlink" href="#theme" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ theme [preset] | [#background #text #highlight]</div></blockquote>
<p>Change the color of the game's user interface</p>
<p>This command can be called with a preset theme. Currently, the supported presets are:</p>
<ul class="simple">
<li>default</li>
<li>muted</li>
<li>solarized</li>
</ul>
<p>However, you can also specify your own color scheme using hex values.
To do so, you must specify three hex color values for the background
color, the text color, and the highlight color. These hex values must
be preceded by a pound sign (#) and must be either 3 or 6 digits. Example:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ theme #ffffff #385 #235012
</pre></div>
</div>
<p>A color picker such as Google's can be used to get your desired hex color values</p>
</div>
<div class="section" id="top">
<h3>top<a class="headerlink" href="#top" title="Permalink to this headline"></a></h3>
<p>Prints a list of all scripts running on the current server as well as their
thread count and how much RAM they are using in total.</p>
</div>
<div class="section" id="unalias">
<span id="unalias-terminal-command"></span><h3>unalias<a class="headerlink" href="#unalias" title="Permalink to this headline"></a></h3>
<blockquote>
<div>$ unalias &quot;[alias name]&quot;</div></blockquote>
<p>Deletes the specified alias. Note that the double quotation marks are required.</p>
<p>As an example, if an alias was declared using:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ alias r=&quot;run&quot;
</pre></div>
</div>
<p>Then it could be removed using:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ unalias &quot;r&quot;
</pre></div>
</div>
<p>It is not necessary to differentiate between global and non-global aliases when using 'unalias'</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sidebar">
<h3>Table Of Contents</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="netscript.html"> Netscript</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#"> Terminal</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#configuration">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="#commands">Commands</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#alias">alias</a></li>
<li class="toctree-l3"><a class="reference internal" href="#analyze">analyze</a></li>
<li class="toctree-l3"><a class="reference internal" href="#buy">buy</a></li>
<li class="toctree-l3"><a class="reference internal" href="#cat">cat</a></li>
<li class="toctree-l3"><a class="reference internal" href="#check">check</a></li>
<li class="toctree-l3"><a class="reference internal" href="#clear-cls">clear/cls</a></li>
<li class="toctree-l3"><a class="reference internal" href="#connect">connect</a></li>
<li class="toctree-l3"><a class="reference internal" href="#download">download</a></li>
<li class="toctree-l3"><a class="reference internal" href="#free">free</a></li>
<li class="toctree-l3"><a class="reference internal" href="#hack">hack</a></li>
<li class="toctree-l3"><a class="reference internal" href="#help">help</a></li>
<li class="toctree-l3"><a class="reference internal" href="#home">home</a></li>
<li class="toctree-l3"><a class="reference internal" href="#hostname">hostname</a></li>
<li class="toctree-l3"><a class="reference internal" href="#ifconfig">ifconfig</a></li>
<li class="toctree-l3"><a class="reference internal" href="#kill">kill</a></li>
<li class="toctree-l3"><a class="reference internal" href="#killall">killall</a></li>
<li class="toctree-l3"><a class="reference internal" href="#ls">ls</a></li>
<li class="toctree-l3"><a class="reference internal" href="#lscpu">lscpu</a></li>
<li class="toctree-l3"><a class="reference internal" href="#mem">mem</a></li>
<li class="toctree-l3"><a class="reference internal" href="#nano">nano</a></li>
<li class="toctree-l3"><a class="reference internal" href="#ps">ps</a></li>
<li class="toctree-l3"><a class="reference internal" href="#rm">rm</a></li>
<li class="toctree-l3"><a class="reference internal" href="#run">run</a></li>
<li class="toctree-l3"><a class="reference internal" href="#scan">scan</a></li>
<li class="toctree-l3"><a class="reference internal" href="#scan-analyze">scan-analyze</a></li>
<li class="toctree-l3"><a class="reference internal" href="#scp">scp</a></li>
<li class="toctree-l3"><a class="reference internal" href="#sudov">sudov</a></li>
<li class="toctree-l3"><a class="reference internal" href="#tail">tail</a></li>
<li class="toctree-l3"><a class="reference internal" href="#theme">theme</a></li>
<li class="toctree-l3"><a class="reference internal" href="#top">top</a></li>
<li class="toctree-l3"><a class="reference internal" href="#unalias">unalias</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="shortcuts.html"> Keyboard Shortcuts</a></li>
</ul>
<div role="search">
<h3 style="margin-top: 1.5em;">Search</h3>
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="clearer"></div>
</div>
</div>
<div class="footer-wrapper">
<div class="footer">
<div class="left">
<div role="navigation" aria-label="related navigaton">
<a href="netscriptmisc.html" title="Netscript Miscellaneous"
>previous</a> |
<a href="shortcuts.html" title="Keyboard Shortcuts"
>next</a> |
<a href="genindex.html" title="General Index"
>index</a>
</div>
<div role="note" aria-label="source link">
<br/>
<a href="_sources/terminal.rst.txt"
rel="nofollow">Show Source</a>
</div>
</div>
<div class="right">
<div class="footer" role="contentinfo">
&#169; Copyright 2017, Bitburner.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.4.
</div>
</div>
<div class="clearer"></div>
</div>
</div>
</body>
</html>